diff options
author | Alastair J. Houghton <ajh8@doc.ic.ac.uk> | 1999-10-15 08:42:02 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-10-15 02:42:02 -0600 |
commit | ffc3b0f915b0f510a92a0604d0ddae4b6e7dd34e (patch) | |
tree | 8bc53910e67e019a077ccea4058a4d9f91b9d391 | |
parent | e57ad0c81569d506af52ff39efd2fcd9719ef53a (diff) | |
download | gcc-ffc3b0f915b0f510a92a0604d0ddae4b6e7dd34e.zip gcc-ffc3b0f915b0f510a92a0604d0ddae4b6e7dd34e.tar.gz gcc-ffc3b0f915b0f510a92a0604d0ddae4b6e7dd34e.tar.bz2 |
c-parse.in (component_decl): Support anonymous struct/union.
* c-parse.in (component_decl): Support anonymous struct/union.
(%expect): Update.
* c-parse.y: Regenerate.
* c-parse.c: Likewise.
* objc/objc-parse.y: Likewise.
* objc/objc-parse.c: Likewise.
* c-decl.c (finish_struct): Don't sort the fields.
(field_decl_cmp): Delete unused function.
Co-Authored-By: Mumit Khan <khan@xraylith.wisc.edu>
From-SVN: r30016
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/c-decl.c | 60 | ||||
-rw-r--r-- | gcc/c-parse.c | 1665 | ||||
-rw-r--r-- | gcc/c-parse.in | 25 | ||||
-rw-r--r-- | gcc/c-parse.y | 23 | ||||
-rw-r--r-- | gcc/objc/objc-parse.c | 2543 | ||||
-rw-r--r-- | gcc/objc/objc-parse.y | 23 |
7 files changed, 2176 insertions, 2175 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2e9aacb..abc3e1c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +Fri Oct 15 02:37:28 1999 Alastair J. Houghton <ajh8@doc.ic.ac.uk> + Mumit Khan <khan@xraylith.wisc.edu> + + * c-parse.in (component_decl): Support anonymous struct/union. + (%expect): Update. + * c-parse.y: Regenerate. + * c-parse.c: Likewise. + * objc/objc-parse.y: Likewise. + * objc/objc-parse.c: Likewise. + * c-decl.c (finish_struct): Don't sort the fields. + (field_decl_cmp): Delete unused function. + Fri Oct 15 01:20:52 1999 Richard Henderson <rth@cygnus.com> * sparc.md (movsf_const_intreg): Revert last constraint change. diff --git a/gcc/c-decl.c b/gcc/c-decl.c index ca9940c..3a38c4f 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -290,7 +290,6 @@ static tree lookup_tag_reverse PROTO((tree)); static tree grokdeclarator PROTO((tree, tree, enum decl_context, int)); static tree grokparms PROTO((tree, int)); -static int field_decl_cmp PROTO((const PTR, const PTR)); static void layout_array_type PROTO((tree)); /* C-specific option variables. */ @@ -5287,26 +5286,6 @@ grokfield (filename, line, declarator, declspecs, width) return value; } -/* Function to help qsort sort FIELD_DECLs by name order. */ - -static int -field_decl_cmp (xp, yp) - const PTR xp; - const PTR yp; -{ - tree *x = (tree *)xp, *y = (tree *)yp; - - if (DECL_NAME (*x) == DECL_NAME (*y)) - return 0; - if (DECL_NAME (*x) == NULL) - return -1; - if (DECL_NAME (*y) == NULL) - return 1; - if (DECL_NAME (*x) < DECL_NAME (*y)) - return -1; - return 1; -} - /* Fill in the fields of a RECORD_TYPE or UNION_TYPE node, T. FIELDLIST is a chain of FIELD_DECL nodes for the fields. ATTRIBUTES are attributes to be applied to the structure. @@ -5541,45 +5520,6 @@ finish_struct (t, fieldlist, attributes) TYPE_FIELDS (t) = fieldlist; - /* If there are lots of fields, sort so we can look through them fast. - We arbitrarily consider 16 or more elts to be "a lot". */ - { - int len = 0; - - for (x = fieldlist; x; x = TREE_CHAIN (x)) - { - if (len > 15) - break; - len += 1; - } - if (len > 15) - { - tree *field_array; - char *space; - - len += list_length (x); - /* Use the same allocation policy here that make_node uses, to - ensure that this lives as long as the rest of the struct decl. - All decls in an inline function need to be saved. */ - if (ggc_p) - space = ggc_alloc (sizeof (struct lang_type) + len * sizeof (tree)); - else if (allocation_temporary_p ()) - space = savealloc (sizeof (struct lang_type) + len * sizeof (tree)); - else - space = oballoc (sizeof (struct lang_type) + len * sizeof (tree)); - - TYPE_LANG_SPECIFIC (t) = (struct lang_type *) space; - TYPE_LANG_SPECIFIC (t)->len = len; - - field_array = &TYPE_LANG_SPECIFIC (t)->elts[0]; - len = 0; - for (x = fieldlist; x; x = TREE_CHAIN (x)) - field_array[len++] = x; - - qsort (field_array, len, sizeof (tree), field_decl_cmp); - } - } - for (x = TYPE_MAIN_VARIANT (t); x; x = TYPE_NEXT_VARIANT (x)) { TYPE_FIELDS (x) = TYPE_FIELDS (t); diff --git a/gcc/c-parse.c b/gcc/c-parse.c index ac70226..e358450 100644 --- a/gcc/c-parse.c +++ b/gcc/c-parse.c @@ -155,7 +155,7 @@ c_parse_init () -#define YYFINAL 702 +#define YYFINAL 706 #define YYFLAG -32768 #define YYNTBASE 86 @@ -224,21 +224,21 @@ static const short yyprhs[] = { 0, 718, 722, 726, 730, 735, 740, 744, 748, 750, 752, 755, 757, 760, 762, 765, 766, 774, 780, 783, 784, 792, 798, 801, 802, 811, 812, 820, 823, 824, 826, - 827, 829, 831, 834, 835, 839, 842, 846, 848, 852, - 854, 856, 859, 861, 865, 870, 877, 883, 885, 889, - 891, 893, 897, 900, 903, 904, 906, 908, 911, 912, - 915, 919, 923, 926, 930, 935, 939, 942, 946, 949, - 953, 955, 957, 960, 963, 964, 966, 969, 970, 971, - 973, 975, 978, 982, 984, 987, 989, 991, 997, 1002, - 1007, 1010, 1013, 1016, 1019, 1024, 1025, 1030, 1031, 1032, - 1036, 1041, 1045, 1047, 1049, 1051, 1053, 1056, 1057, 1062, - 1064, 1068, 1069, 1070, 1078, 1084, 1087, 1088, 1089, 1090, - 1103, 1104, 1111, 1114, 1117, 1120, 1124, 1131, 1140, 1151, - 1164, 1168, 1173, 1175, 1177, 1178, 1185, 1189, 1195, 1198, - 1202, 1203, 1205, 1206, 1208, 1209, 1211, 1213, 1217, 1222, - 1224, 1228, 1229, 1232, 1235, 1236, 1241, 1244, 1245, 1247, - 1249, 1253, 1255, 1259, 1264, 1269, 1274, 1279, 1284, 1285, - 1288, 1290, 1293, 1295, 1299, 1301, 1305 + 827, 829, 831, 834, 835, 839, 842, 846, 852, 856, + 858, 860, 863, 865, 869, 874, 881, 887, 889, 893, + 895, 897, 901, 904, 907, 908, 910, 912, 915, 916, + 919, 923, 927, 930, 934, 939, 943, 946, 950, 953, + 957, 959, 961, 964, 967, 968, 970, 973, 974, 975, + 977, 979, 982, 986, 988, 991, 993, 995, 1001, 1006, + 1011, 1014, 1017, 1020, 1023, 1028, 1029, 1034, 1035, 1036, + 1040, 1045, 1049, 1051, 1053, 1055, 1057, 1060, 1061, 1066, + 1068, 1072, 1073, 1074, 1082, 1088, 1091, 1092, 1093, 1094, + 1107, 1108, 1115, 1118, 1121, 1124, 1128, 1135, 1144, 1155, + 1168, 1172, 1177, 1179, 1181, 1182, 1189, 1193, 1199, 1202, + 1206, 1207, 1209, 1210, 1212, 1213, 1215, 1217, 1221, 1226, + 1228, 1232, 1233, 1236, 1239, 1240, 1245, 1248, 1249, 1251, + 1253, 1257, 1259, 1263, 1268, 1273, 1278, 1283, 1288, 1289, + 1292, 1294, 1297, 1299, 1303, 1305, 1309 }; static const short yyrhs[] = { -1, @@ -326,53 +326,53 @@ static const short yyrhs[] = { -1, 0, 171, 84, 176, 184, 178, 80, 143, 0, 171, 99, 0, 0, 83, 0, 0, 83, 0, 180, 0, 180, 181, 0, 0, 180, 181, 79, 0, 180, 79, - 0, 132, 123, 182, 0, 132, 0, 188, 123, 182, - 0, 188, 0, 1, 0, 243, 181, 0, 183, 0, - 182, 83, 183, 0, 208, 209, 165, 143, 0, 208, - 209, 165, 40, 109, 143, 0, 208, 209, 40, 109, - 143, 0, 185, 0, 184, 83, 185, 0, 1, 0, - 99, 0, 99, 38, 109, 0, 132, 187, 0, 188, - 187, 0, 0, 190, 0, 7, 0, 188, 7, 0, - 0, 189, 7, 0, 61, 190, 78, 0, 52, 189, - 190, 0, 52, 189, 0, 190, 61, 231, 0, 190, - 62, 101, 85, 0, 190, 62, 85, 0, 61, 231, - 0, 62, 101, 85, 0, 62, 85, 0, 144, 124, - 190, 0, 192, 0, 211, 0, 192, 211, 0, 192, - 194, 0, 0, 191, 0, 1, 79, 0, 0, 0, - 197, 0, 198, 0, 197, 198, 0, 32, 242, 79, - 0, 203, 0, 1, 203, 0, 84, 0, 80, 0, - 195, 196, 122, 193, 80, 0, 195, 196, 1, 80, - 0, 195, 196, 191, 80, 0, 61, 84, 0, 200, - 201, 0, 205, 210, 0, 205, 1, 0, 15, 61, - 101, 78, 0, 0, 18, 207, 210, 17, 0, 0, - 0, 208, 209, 213, 0, 208, 209, 224, 210, 0, - 208, 209, 212, 0, 213, 0, 224, 0, 203, 0, - 221, 0, 101, 79, 0, 0, 204, 16, 214, 210, - 0, 204, 0, 204, 16, 1, 0, 0, 0, 17, - 215, 61, 101, 78, 216, 210, 0, 206, 61, 101, - 78, 79, 0, 206, 1, 0, 0, 0, 0, 19, - 61, 226, 79, 217, 226, 79, 218, 226, 78, 219, - 210, 0, 0, 20, 61, 101, 78, 220, 210, 0, - 23, 79, 0, 24, 79, 0, 25, 79, 0, 25, - 101, 79, 0, 27, 225, 61, 101, 78, 79, 0, - 27, 225, 61, 101, 40, 227, 78, 79, 0, 27, - 225, 61, 101, 40, 227, 40, 227, 78, 79, 0, - 27, 225, 61, 101, 40, 227, 40, 227, 40, 230, - 78, 79, 0, 26, 99, 79, 0, 26, 52, 101, - 79, 0, 79, 0, 222, 0, 0, 19, 61, 115, - 78, 223, 210, 0, 21, 109, 40, 0, 21, 109, - 10, 109, 40, 0, 22, 40, 0, 99, 40, 143, - 0, 0, 7, 0, 0, 101, 0, 0, 228, 0, - 229, 0, 228, 83, 229, 0, 9, 61, 101, 78, - 0, 116, 0, 230, 83, 116, 0, 0, 232, 233, - 0, 235, 78, 0, 0, 236, 79, 234, 233, 0, - 1, 78, 0, 0, 10, 0, 236, 0, 236, 83, - 10, 0, 237, 0, 236, 83, 237, 0, 126, 123, - 167, 143, 0, 126, 123, 168, 143, 0, 126, 123, - 187, 143, 0, 130, 123, 168, 143, 0, 130, 123, - 187, 143, 0, 0, 239, 240, 0, 233, 0, 241, - 78, 0, 3, 0, 241, 83, 3, 0, 99, 0, - 242, 83, 99, 0, 31, 0 + 0, 132, 123, 182, 0, 132, 123, 208, 209, 143, + 0, 188, 123, 182, 0, 188, 0, 1, 0, 243, + 181, 0, 183, 0, 182, 83, 183, 0, 208, 209, + 165, 143, 0, 208, 209, 165, 40, 109, 143, 0, + 208, 209, 40, 109, 143, 0, 185, 0, 184, 83, + 185, 0, 1, 0, 99, 0, 99, 38, 109, 0, + 132, 187, 0, 188, 187, 0, 0, 190, 0, 7, + 0, 188, 7, 0, 0, 189, 7, 0, 61, 190, + 78, 0, 52, 189, 190, 0, 52, 189, 0, 190, + 61, 231, 0, 190, 62, 101, 85, 0, 190, 62, + 85, 0, 61, 231, 0, 62, 101, 85, 0, 62, + 85, 0, 144, 124, 190, 0, 192, 0, 211, 0, + 192, 211, 0, 192, 194, 0, 0, 191, 0, 1, + 79, 0, 0, 0, 197, 0, 198, 0, 197, 198, + 0, 32, 242, 79, 0, 203, 0, 1, 203, 0, + 84, 0, 80, 0, 195, 196, 122, 193, 80, 0, + 195, 196, 1, 80, 0, 195, 196, 191, 80, 0, + 61, 84, 0, 200, 201, 0, 205, 210, 0, 205, + 1, 0, 15, 61, 101, 78, 0, 0, 18, 207, + 210, 17, 0, 0, 0, 208, 209, 213, 0, 208, + 209, 224, 210, 0, 208, 209, 212, 0, 213, 0, + 224, 0, 203, 0, 221, 0, 101, 79, 0, 0, + 204, 16, 214, 210, 0, 204, 0, 204, 16, 1, + 0, 0, 0, 17, 215, 61, 101, 78, 216, 210, + 0, 206, 61, 101, 78, 79, 0, 206, 1, 0, + 0, 0, 0, 19, 61, 226, 79, 217, 226, 79, + 218, 226, 78, 219, 210, 0, 0, 20, 61, 101, + 78, 220, 210, 0, 23, 79, 0, 24, 79, 0, + 25, 79, 0, 25, 101, 79, 0, 27, 225, 61, + 101, 78, 79, 0, 27, 225, 61, 101, 40, 227, + 78, 79, 0, 27, 225, 61, 101, 40, 227, 40, + 227, 78, 79, 0, 27, 225, 61, 101, 40, 227, + 40, 227, 40, 230, 78, 79, 0, 26, 99, 79, + 0, 26, 52, 101, 79, 0, 79, 0, 222, 0, + 0, 19, 61, 115, 78, 223, 210, 0, 21, 109, + 40, 0, 21, 109, 10, 109, 40, 0, 22, 40, + 0, 99, 40, 143, 0, 0, 7, 0, 0, 101, + 0, 0, 228, 0, 229, 0, 228, 83, 229, 0, + 9, 61, 101, 78, 0, 116, 0, 230, 83, 116, + 0, 0, 232, 233, 0, 235, 78, 0, 0, 236, + 79, 234, 233, 0, 1, 78, 0, 0, 10, 0, + 236, 0, 236, 83, 10, 0, 237, 0, 236, 83, + 237, 0, 126, 123, 167, 143, 0, 126, 123, 168, + 143, 0, 126, 123, 187, 143, 0, 130, 123, 168, + 143, 0, 130, 123, 187, 143, 0, 0, 239, 240, + 0, 233, 0, 241, 78, 0, 3, 0, 241, 83, + 3, 0, 99, 0, 242, 83, 99, 0, 31, 0 }; #endif @@ -405,21 +405,21 @@ static const short yyrline[] = { 0, 1276, 1282, 1284, 1286, 1291, 1293, 1300, 1302, 1305, 1308, 1312, 1315, 1319, 1322, 1326, 1331, 1333, 1337, 1339, 1341, 1343, 1347, 1349, 1352, 1355, 1358, 1361, 1365, 1367, 1370, - 1372, 1377, 1380, 1385, 1387, 1389, 1403, 1410, 1415, 1421, - 1426, 1428, 1433, 1435, 1439, 1443, 1447, 1457, 1459, 1464, - 1469, 1472, 1476, 1479, 1483, 1486, 1489, 1492, 1496, 1499, - 1503, 1507, 1509, 1511, 1513, 1515, 1517, 1519, 1521, 1525, - 1533, 1541, 1543, 1545, 1549, 1551, 1554, 1557, 1568, 1570, - 1575, 1577, 1580, 1594, 1597, 1600, 1602, 1604, 1612, 1620, - 1630, 1648, 1653, 1658, 1661, 1675, 1684, 1688, 1692, 1696, - 1702, 1706, 1711, 1714, 1719, 1722, 1723, 1740, 1745, 1748, - 1760, 1762, 1772, 1782, 1783, 1791, 1794, 1806, 1810, 1827, - 1837, 1846, 1851, 1856, 1861, 1865, 1869, 1880, 1887, 1894, - 1901, 1912, 1918, 1921, 1926, 1949, 1983, 2014, 2045, 2060, - 2074, 2078, 2082, 2085, 2090, 2092, 2095, 2097, 2101, 2106, - 2109, 2115, 2120, 2125, 2127, 2136, 2137, 2143, 2145, 2155, - 2157, 2161, 2164, 2170, 2180, 2189, 2198, 2208, 2222, 2227, - 2232, 2234, 2243, 2246, 2251, 2254, 2258 + 1372, 1377, 1380, 1385, 1387, 1389, 1403, 1410, 1424, 1430, + 1435, 1437, 1442, 1444, 1448, 1452, 1456, 1466, 1468, 1473, + 1478, 1481, 1485, 1488, 1492, 1495, 1498, 1501, 1505, 1508, + 1512, 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1534, + 1542, 1550, 1552, 1554, 1558, 1560, 1563, 1566, 1577, 1579, + 1584, 1586, 1589, 1603, 1606, 1609, 1611, 1613, 1621, 1629, + 1639, 1657, 1662, 1667, 1670, 1684, 1693, 1697, 1701, 1705, + 1711, 1715, 1720, 1723, 1728, 1731, 1732, 1749, 1754, 1757, + 1769, 1771, 1781, 1791, 1792, 1800, 1803, 1815, 1819, 1836, + 1846, 1855, 1860, 1865, 1870, 1874, 1878, 1889, 1896, 1903, + 1910, 1921, 1927, 1930, 1935, 1958, 1992, 2023, 2054, 2069, + 2083, 2087, 2091, 2094, 2099, 2101, 2104, 2106, 2110, 2115, + 2118, 2124, 2129, 2134, 2136, 2145, 2146, 2152, 2154, 2164, + 2166, 2170, 2173, 2179, 2189, 2198, 2207, 2217, 2231, 2236, + 2241, 2243, 2252, 2255, 2260, 2263, 2267 }; #endif @@ -535,7 +535,7 @@ static const short yyr2[] = { 0, 3, 3, 3, 4, 4, 3, 3, 1, 1, 2, 1, 2, 1, 2, 0, 7, 5, 2, 0, 7, 5, 2, 0, 8, 0, 7, 2, 0, 1, 0, - 1, 1, 2, 0, 3, 2, 3, 1, 3, 1, + 1, 1, 2, 0, 3, 2, 3, 5, 3, 1, 1, 2, 1, 3, 4, 6, 5, 1, 3, 1, 1, 3, 2, 2, 0, 1, 1, 2, 0, 2, 3, 3, 2, 3, 4, 3, 2, 3, 2, 3, @@ -593,675 +593,675 @@ static const short yydefact[] = { 3, 383, 298, 300, 294, 296, 0, 175, 177, 87, 0, 164, 387, 285, 285, 384, 385, 0, 402, 0, 0, 316, 29, 308, 314, 105, 119, 119, 136, 0, 0, - 165, 219, 0, 267, 273, 329, 269, 171, 171, 282, - 279, 171, 0, 0, 0, 81, 84, 313, 0, 319, - 118, 117, 306, 0, 320, 304, 329, 303, 0, 295, - 180, 0, 182, 230, 289, 382, 120, 171, 171, 171, - 289, 120, 171, 171, 0, 391, 393, 404, 315, 322, - 112, 0, 113, 0, 136, 134, 190, 188, 187, 169, - 21, 0, 25, 328, 0, 246, 250, 256, 171, 56, - 203, 87, 0, 0, 200, 0, 202, 0, 258, 193, - 199, 0, 0, 0, 406, 318, 0, 153, 0, 342, - 326, 0, 0, 0, 0, 0, 0, 0, 0, 371, - 363, 0, 0, 114, 119, 119, 335, 340, 0, 0, - 332, 333, 336, 364, 334, 0, 0, 293, 0, 399, - 0, 394, 395, 396, 293, 0, 397, 398, 386, 0, - 0, 163, 135, 138, 137, 0, 166, 274, 0, 171, - 254, 206, 0, 0, 197, 62, 0, 192, 0, 205, - 196, 82, 0, 0, 328, 373, 0, 0, 369, 353, - 354, 355, 0, 0, 0, 372, 0, 171, 337, 125, - 0, 126, 0, 0, 324, 329, 323, 346, 0, 127, - 181, 228, 229, 224, 0, 227, 0, 110, 111, 0, - 171, 0, 275, 0, 208, 0, 0, 194, 195, 0, - 0, 0, 374, 45, 0, 0, 0, 367, 356, 0, - 361, 0, 370, 0, 123, 209, 0, 124, 212, 341, - 328, 0, 0, 225, 226, 189, 277, 171, 0, 201, - 198, 325, 0, 327, 365, 347, 351, 0, 362, 0, - 121, 0, 122, 0, 339, 330, 328, 0, 276, 207, - 343, 328, 373, 328, 368, 375, 0, 210, 213, 331, - 345, 328, 366, 0, 352, 0, 0, 376, 377, 357, - 0, 0, 344, 348, 0, 375, 0, 0, 211, 214, - 373, 0, 0, 358, 378, 0, 379, 0, 0, 349, - 380, 0, 359, 328, 0, 0, 350, 360, 381, 0, - 0, 0 + 165, 219, 0, 267, 273, 329, 269, 329, 171, 171, + 282, 279, 171, 0, 0, 0, 81, 84, 313, 0, + 319, 118, 117, 306, 0, 320, 304, 329, 303, 0, + 295, 180, 0, 182, 230, 289, 382, 120, 171, 171, + 171, 289, 120, 171, 171, 0, 391, 393, 404, 315, + 322, 112, 0, 113, 0, 136, 134, 190, 188, 187, + 169, 21, 0, 25, 328, 171, 0, 246, 250, 256, + 171, 56, 203, 87, 0, 0, 200, 0, 202, 0, + 258, 193, 199, 0, 0, 0, 406, 318, 0, 153, + 0, 342, 326, 0, 0, 0, 0, 0, 0, 0, + 0, 371, 363, 0, 0, 114, 119, 119, 335, 340, + 0, 0, 332, 333, 336, 364, 334, 0, 0, 293, + 0, 399, 0, 394, 395, 396, 293, 0, 397, 398, + 386, 0, 0, 163, 135, 138, 137, 0, 166, 274, + 0, 268, 120, 171, 254, 206, 0, 0, 197, 62, + 0, 192, 0, 205, 196, 82, 0, 0, 328, 373, + 0, 0, 369, 353, 354, 355, 0, 0, 0, 372, + 0, 171, 337, 125, 0, 126, 0, 0, 324, 329, + 323, 346, 0, 127, 181, 228, 229, 224, 0, 227, + 0, 110, 111, 0, 171, 0, 275, 0, 208, 0, + 0, 194, 195, 0, 0, 0, 374, 45, 0, 0, + 0, 367, 356, 0, 361, 0, 370, 0, 123, 209, + 0, 124, 212, 341, 328, 0, 0, 225, 226, 189, + 277, 171, 0, 201, 198, 325, 0, 327, 365, 347, + 351, 0, 362, 0, 121, 0, 122, 0, 339, 330, + 328, 0, 276, 207, 343, 328, 373, 328, 368, 375, + 0, 210, 213, 331, 345, 328, 366, 0, 352, 0, + 0, 376, 377, 357, 0, 0, 344, 348, 0, 375, + 0, 0, 211, 214, 373, 0, 0, 358, 378, 0, + 379, 0, 0, 349, 380, 0, 359, 328, 0, 0, + 350, 360, 381, 0, 0, 0 }; -static const short yydefgoto[] = { 700, +static const short yydefgoto[] = { 704, 1, 2, 3, 17, 18, 19, 231, 400, 237, 403, - 114, 319, 476, 86, 148, 281, 88, 89, 90, 91, - 92, 415, 93, 266, 265, 263, 484, 264, 94, 95, - 218, 219, 220, 395, 361, 362, 20, 109, 504, 308, - 57, 396, 456, 309, 23, 100, 193, 24, 131, 119, - 44, 115, 120, 462, 45, 399, 223, 224, 26, 202, - 203, 204, 460, 536, 478, 479, 480, 597, 481, 544, - 482, 483, 615, 642, 671, 618, 644, 672, 209, 123, - 438, 124, 27, 28, 29, 30, 245, 247, 252, 139, - 548, 345, 134, 135, 242, 404, 405, 250, 251, 102, - 191, 103, 105, 192, 363, 364, 424, 221, 183, 286, - 287, 288, 392, 393, 184, 96, 394, 508, 509, 510, - 555, 576, 323, 577, 367, 511, 512, 621, 554, 662, - 653, 681, 694, 654, 513, 514, 652, 515, 567, 605, - 667, 668, 669, 692, 292, 293, 310, 445, 311, 312, + 114, 319, 478, 86, 148, 281, 88, 89, 90, 91, + 92, 416, 93, 266, 265, 263, 486, 264, 94, 95, + 218, 219, 220, 395, 361, 362, 20, 229, 506, 308, + 57, 396, 457, 309, 23, 100, 193, 24, 131, 119, + 44, 115, 120, 463, 45, 399, 223, 224, 26, 202, + 203, 204, 461, 538, 480, 481, 482, 601, 483, 548, + 484, 485, 619, 646, 675, 622, 648, 676, 209, 123, + 439, 124, 27, 28, 29, 30, 245, 247, 252, 139, + 552, 345, 134, 135, 242, 404, 405, 250, 251, 102, + 191, 103, 105, 192, 363, 364, 425, 221, 183, 286, + 287, 288, 392, 393, 184, 96, 394, 510, 511, 512, + 559, 580, 323, 581, 367, 513, 514, 625, 558, 666, + 657, 685, 698, 658, 515, 516, 656, 517, 571, 609, + 671, 672, 673, 696, 292, 293, 310, 446, 311, 312, 313, 212, 213, 314, 315, 359, 97 }; -static const short yypact[] = { 130, - 136, 2364, 2364, 105,-32768,-32768,-32768,-32768, 117, 117, - 117, 22, 103, 137,-32768,-32768,-32768,-32768,-32768, 288, - 134, 461, 168,-32768, 117,-32768, 48, 86, 95,-32768, - 2364,-32768,-32768,-32768, 117, 117, 117, 2180, 2090, 139, --32768,-32768, 288, 127,-32768, 117, 1396,-32768, 245,-32768, - 288, 168,-32768, 117,-32768,-32768, 559,-32768,-32768,-32768, --32768, 135,-32768, 144,-32768, 169,-32768,-32768,-32768,-32768, --32768,-32768, 2180, 2180, 179, 328,-32768,-32768,-32768, 2180, --32768,-32768, 1133,-32768,-32768, 2180, 185, 188,-32768, 2215, - 2270,-32768, 2495, 1061, 265, 627, 2180,-32768, 206, 228, --32768, 209, 978, 689, 350, 215,-32768, 245, 288,-32768, - 196,-32768, 1496, 855, 117,-32768,-32768, 245, 237,-32768, - 117, 1488, 367, 386, 273, 1460, 559,-32768,-32768,-32768, --32768, 117,-32768, 222, 949,-32768, 270,-32768, 438,-32768, --32768,-32768, 2180,-32768,-32768, 230,-32768, 239, 267,-32768, - 313, 2180, 1133,-32768, 1133,-32768, 2180, 2180, 321,-32768, --32768, 2180, 2180, 2180, 2180, 2180, 2180, 2180, 2180, 2180, - 2180, 2180, 2180,-32768,-32768, 328, 328, 2180, 2180,-32768, - 286,-32768, 363, 320,-32768,-32768,-32768, 228, 1551, 117, --32768, 416, 376,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 35,-32768, 347,-32768, 386,-32768,-32768, 387, 386, - 443,-32768, 1051, 1589,-32768, 370, 379,-32768, 323, 55, --32768,-32768, 425, 117, 240, 285,-32768, 245, 245,-32768, - 855, 117,-32768, 1644,-32768,-32768, 855, 117,-32768,-32768, - 305, 393, 431, 1919,-32768, 117,-32768,-32768, 452, 410, --32768, 438, 2430,-32768,-32768, 1975,-32768, 2495, 421, 444, - 2495, 2495, 2180, 463, 2180, 2180, 2518, 571, 2059, 727, - 1401, 733, 733, 104, 104,-32768,-32768,-32768,-32768,-32768, - 446, 188, 432,-32768, 328, 794, 363,-32768,-32768, 351, - 316,-32768, 1653,-32768, 445, 228,-32768, 1682,-32768, 376, - 450, 689, 2305, 94, 454,-32768,-32768,-32768, 743,-32768, - 456, 276,-32768,-32768, 110,-32768,-32768,-32768, 71,-32768, --32768,-32768, 2188,-32768, 367,-32768,-32768, 367,-32768, 471, --32768,-32768, 453,-32768,-32768,-32768,-32768,-32768,-32768, 436, --32768, 457, 2180, 328, 459, 410, 945,-32768,-32768,-32768, --32768, 509, 2180, 2354, 2507,-32768,-32768,-32768, 296, 401, - 709, 476, 477, 885,-32768,-32768,-32768,-32768, 416,-32768, --32768,-32768, 416,-32768,-32768, 482,-32768,-32768, 131, 484, --32768,-32768, 234, 156,-32768,-32768, 661,-32768, 565, 485, --32768,-32768, 490,-32768,-32768, 497, 1745,-32768, 1330, 71, --32768,-32768, 71, 495,-32768,-32768, 495, 117, 117, 2495, --32768, 117, 499, 502, 1168,-32768, 2241,-32768, 328,-32768, --32768,-32768,-32768, 501,-32768,-32768,-32768,-32768, 1858,-32768, --32768, 2180,-32768,-32768,-32768, 156, 117, 253, 282, 117, --32768, 117, 282, 117, 1653,-32768,-32768,-32768,-32768,-32768, --32768, 245,-32768, 288,-32768, 420,-32768,-32768, 2495,-32768, --32768, 1330,-32768,-32768, 248,-32768,-32768,-32768, 117,-32768, --32768, 543, 328, 2180,-32768, 545, 2495, 506, 504,-32768, --32768, 83, 1292, 2180,-32768,-32768, 1940, 552, 532,-32768, --32768, 533, 534, 2180, 558, 521, 535, 2125, 98, 606, --32768, 587, 550,-32768, 584, 547,-32768, 648, 992, 53, --32768,-32768,-32768,-32768,-32768, 2034, 138, 220, 234,-32768, - 1737,-32768,-32768,-32768, 174, 156,-32768,-32768,-32768, 314, - 326, 121, 420,-32768,-32768, 1168,-32768,-32768, 2180, 64, --32768,-32768, 2403, 1168,-32768,-32768, 1230,-32768, 1387,-32768, --32768, 2241, 2180, 609,-32768, 2180, 2180, 1801,-32768,-32768, --32768,-32768, 597, 2180, 601,-32768, 620, 117,-32768,-32768, - 245,-32768, 288, 1074,-32768,-32768,-32768,-32768, 2180,-32768, --32768, 424, 424,-32768, 1775,-32768, 600,-32768,-32768, 602, - 2455, 2180,-32768, 2180,-32768, 607, 1387,-32768,-32768, 608, - 2180, 673,-32768, 641, 646, 621, 2180,-32768,-32768, 662, --32768, 2180,-32768, 337,-32768, 467, 338,-32768, 1143,-32768, --32768, 1940, 667,-32768,-32768,-32768,-32768, 2455, 2385,-32768, --32768,-32768, 668,-32768,-32768,-32768,-32768, 2477,-32768, 29, --32768, 855,-32768, 855,-32768,-32768,-32768, 674,-32768,-32768, --32768,-32768, 2180,-32768,-32768, 749, 683,-32768,-32768,-32768, --32768,-32768,-32768, 684,-32768, 691, 31, 681,-32768,-32768, - 485, 485,-32768,-32768, 2180, 749, 688, 749,-32768,-32768, - 2180, 690, 33,-32768,-32768, 694,-32768, 443, 715,-32768, - 265, 178,-32768,-32768, 717, 443,-32768,-32768, 265, 769, - 804,-32768 +static const short yypact[] = { 74, + 77, 2389, 2389, 126,-32768,-32768,-32768,-32768, 73, 73, + 73, 84, 88, 98,-32768,-32768,-32768,-32768,-32768, 361, + 35, 1677, 248,-32768, 73,-32768, 55, 76, 91,-32768, + 2389,-32768,-32768,-32768, 73, 73, 73, 2205, 2115, 111, +-32768,-32768, 361, 65,-32768, 73, 1485,-32768, 629,-32768, + 361, 248,-32768, 73,-32768,-32768, 329,-32768,-32768,-32768, +-32768, 44,-32768, 106,-32768, 134,-32768,-32768,-32768,-32768, +-32768,-32768, 2205, 2205, 121, 426,-32768,-32768,-32768, 2205, +-32768,-32768, 732,-32768,-32768, 2205, 163, 180,-32768, 2240, + 2295,-32768, 2520, 656, 235, 820, 2205,-32768, 187, 206, +-32768, 222, 381, 545, 292, 219,-32768, 629, 361,-32768, + 241,-32768, 1521, 648, 73,-32768,-32768, 629, 114,-32768, + 73, 319, 444, 451, 151, 1513, 329,-32768,-32768,-32768, +-32768, 73,-32768, 227, 483,-32768, 234,-32768, 552,-32768, +-32768,-32768, 2205,-32768,-32768, 249,-32768, 252, 259,-32768, + 261, 2205, 732,-32768, 732,-32768, 2205, 2205, 311,-32768, +-32768, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, + 2205, 2205, 2205,-32768,-32768, 426, 426, 2205, 2205,-32768, + 283,-32768, 358, 321,-32768,-32768,-32768, 206, 1576, 73, +-32768, 463, 457,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 125,-32768, 354,-32768, 451,-32768,-32768, 393, 451, + 423,-32768, 1043, 1614,-32768, 349, 360,-32768, 595, 66, +-32768,-32768, 403, 73, 614, 267,-32768, 629, 629,-32768, + 648, 73,-32768, 1669,-32768,-32768, 648, 73,-32768,-32768, +-32768, 365, 233, 1209,-32768, 73,-32768,-32768, 410, 373, +-32768, 552, 2455,-32768,-32768, 2000,-32768, 2520, 387, 389, + 2520, 2520, 2205, 435, 2205, 2205, 2377, 2085, 2437, 1081, + 1090, 718, 718, 429, 429,-32768,-32768,-32768,-32768,-32768, + 408, 180, 406,-32768, 426, 984, 358,-32768,-32768, 242, + 396,-32768, 790,-32768, 409, 206,-32768, 1707,-32768, 457, + 420, 545, 2330, 53, 422,-32768,-32768,-32768, 1917,-32768, + 438, 195,-32768,-32768, 137,-32768,-32768,-32768, 46,-32768, +-32768,-32768, 884,-32768, 444,-32768,-32768, 444,-32768, 450, +-32768,-32768, 433,-32768,-32768,-32768,-32768,-32768,-32768, 427, +-32768, 447, 2205, 426, 456, 373, 966,-32768,-32768,-32768, +-32768, 491, 2205, 2265, 2174,-32768,-32768,-32768, 210, 460, + 902, 464, 480, 1066,-32768,-32768,-32768,-32768, 463,-32768, +-32768,-32768, 463,-32768,-32768, 488,-32768,-32768, 143, 501, +-32768,-32768, 224, 161,-32768,-32768, 936,-32768, 578, 503, +-32768,-32768, 517,-32768,-32768, 525, 172,-32768, 669, 46, +-32768,-32768, 46, 528,-32768,-32768, 528,-32768, 73, 73, + 2520,-32768, 73, 533, 536, 1265,-32768, 1907,-32768, 426, +-32768,-32768,-32768,-32768, 540,-32768,-32768,-32768,-32768, 1883, +-32768,-32768, 2205,-32768,-32768,-32768, 161, 73, 208, 247, + 73,-32768, 73, 247, 73, 790,-32768,-32768,-32768,-32768, +-32768,-32768, 629,-32768, 361,-32768, 679,-32768,-32768, 2520, +-32768,-32768, 669,-32768,-32768, 582, 582,-32768,-32768,-32768, + 73,-32768,-32768, 588, 426, 2205,-32768, 591, 2520, 555, + 553,-32768,-32768, 150, 1389, 2205,-32768,-32768, 1965, 598, + 579,-32768,-32768, 581, 584, 2205, 606, 569, 571, 2150, + 82, 650,-32768, 618, 585,-32768, 586, 1770,-32768, 647, + 1148, 59,-32768,-32768,-32768,-32768,-32768, 2059, 223, 554, + 224,-32768, 1762,-32768,-32768,-32768, 398, 161,-32768,-32768, +-32768, 317, 325, 75, 679,-32768,-32768, 1265,-32768,-32768, + 2205,-32768, 67, 58,-32768,-32768, 2428, 1265,-32768,-32768, + 1327,-32768, 1427,-32768,-32768, 1907, 2205, 607,-32768, 2205, + 2205, 1826,-32768,-32768,-32768,-32768, 590, 2205, 592,-32768, + 612, 73,-32768,-32768, 629,-32768, 361, 1230,-32768,-32768, +-32768,-32768, 2205,-32768,-32768, 504, 504,-32768, 1800,-32768, + 597,-32768,-32768, 587, 2480, 2205,-32768, 2205,-32768, 603, + 1427,-32768,-32768, 610, 2205, 672,-32768, 515, 615, 617, + 2205,-32768,-32768, 620,-32768, 2205,-32768, 327,-32768, 205, + 335,-32768, 1075,-32768,-32768, 1965, 623,-32768,-32768,-32768, +-32768, 2480, 2410,-32768,-32768,-32768, 627,-32768,-32768,-32768, +-32768, 2502,-32768, 29,-32768, 648,-32768, 648,-32768,-32768, +-32768, 630,-32768,-32768,-32768,-32768, 2205,-32768,-32768, 697, + 631,-32768,-32768,-32768,-32768,-32768,-32768, 643,-32768, 662, + 43, 625,-32768,-32768, 503, 503,-32768,-32768, 2205, 697, + 645, 697,-32768,-32768, 2205, 649, 49,-32768,-32768, 653, +-32768, 423, 655,-32768, 235, 289,-32768,-32768, 658, 423, +-32768,-32768, 235, 728, 742,-32768 }; static const short yypgoto[] = {-32768, --32768,-32768,-32768, 54,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, -23,-32768, -38, 507, -138, 397,-32768,-32768, - -65,-32768, 439,-32768,-32768,-32768,-32768,-32768, 274, -182, - -188, 611,-32768,-32768, 464,-32768, -10, -66, 317, 28, - 779,-32768, 380, 32, -4, -77, 638, 25, -171, -402, - -44, -112, -62,-32768,-32768,-32768, -70, 17, 42,-32768, - 538,-32768, 375,-32768, -417,-32768, 294,-32768, -407,-32768, --32768, 360,-32768,-32768,-32768,-32768,-32768,-32768, -46, -26, - -6, -18,-32768,-32768,-32768, -41,-32768,-32768,-32768,-32768, --32768, 503, -25,-32768, 599, 510, 383, 605, 508, -22, - -80, -73, -81, -95, 491,-32768,-32768, -149,-32768,-32768, --32768, 576, -288,-32768, 465,-32768, -349,-32768,-32768,-32768, --32768, -97, -322, -460, 500,-32768, 243,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 244,-32768, -571, - 194,-32768, 193,-32768, 575,-32768, -248,-32768,-32768,-32768, - 487, -209,-32768,-32768,-32768,-32768, 11 +-32768,-32768,-32768, 93,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, -23,-32768, -38, 445, -137, 478,-32768,-32768, + -57,-32768, 211,-32768,-32768,-32768,-32768,-32768, 194, -199, + -193, 527,-32768,-32768, 394,-32768, 30, -3, 237, 17, + 705,-32768, 320, 24, -4, -89, 577, 39, -165, -417, + -43, -100, -59,-32768,-32768,-32768, 185, 62, -22,-32768, + 473,-32768, 315,-32768, -430,-32768, 228,-32768, -428,-32768, +-32768, 297,-32768,-32768,-32768,-32768,-32768,-32768, -42, -73, + 71, -18,-32768,-32768,-32768, 11,-32768,-32768,-32768,-32768, +-32768, 439, -28,-32768, 542, 449, 333, 538, 448, -49, + -66, -81, -86, -48, 437,-32768,-32768, -163,-32768,-32768, +-32768, 514, -337,-32768, 412,-32768, -360,-32768,-32768,-32768, +-32768, -105, -316, -442, 442,-32768, 182,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 184,-32768, -524, + 131,-32768, 133,-32768, 522,-32768, -251,-32768,-32768,-32768, + 443, -212,-32768,-32768,-32768,-32768, 8 }; -#define YYLAST 2572 +#define YYLAST 2574 static const short yytable[] = { 87, - 99, 47, 122, 62, 64, 66, 125, 141, 142, 232, - 49, 51, 31, 31, 145, 133, 222, 52, 25, 25, - 150, 299, 197, 331, 106, 35, 36, 37, 304, 21, - 21, 185, 126, 22, 22, 225, 46, 137, 54, 282, - 449, 31, 329, 429, 371, 208, 53, 25, 334, 530, - 59, 60, 144, 578, 229, -103, 32, 241, 21, 46, - 149, 243, 22, 101, 321, 121, 58, 46, 656, 320, - 676, 390, 688, 132, 216, 551, 58, 58, 58, 507, - 201, 664, 38, 465, 67, 133, 206, 58, 59, 60, - 210, 226, 291, 14, 602, 58, 232, 59, 60, 106, - 59, 60, 180, 592, 487, 290, 657, 101, 677, 686, - 689, 461, 301, 579, 463, 249, 190, 302, 590, 190, - 549, 46, 222, 296, 121, 46, 596, 196, 299, -1, - 259, 61, 260, 222, 121, -2, 365, 507, -103, 222, - 283, 599, 473, 132, 474, 244, 14, 111, 145, 564, - 295, 133, 279, 280, 391, 171, 172, 173, 41, 101, - 645, 330, 58, 39, 282, 327, 241, 335, 614, 63, - 243, 381, 55, 58, 56, 341, 41, 101, 65, 101, - 205, 112, 113, 33, 34, 14, 660, 388, 366, 631, - 349, 663, 389, 665, 369, 333, 529, 40, 325, 104, - 373, 673, 328, 14, 190, 107, 206, 441, 431, 108, - 210, 421, 48, 432, 426, 581, 436, 189, 136, 340, - 152, 342, 41, 434, 352, 441, 205, 138, 249, 25, - 336, 58, 338, 697, 436, 189, 41, 434, 406, 143, - 406, 121, 41, 116, 121, 121, 205, 41, 116, 14, - 41, 116, 140, 622, 244, 695, 211, 14, 133, 376, - 696, 358, 151, 14, 366, 58, 427, 196, 101, 14, - 152, 435, 507, 180, 14, 112, 113, 14, 201, 187, - 436, 189, 14, 186, 535, 435, 194, 539, 188, 189, - 41, 117, 207, 517, 436, 189, 117, 383, 384, 117, - 118, 238, 440, 444, 52, 118, 190, 254, 118, 25, - 584, 14, 190, 520, 521, 227, 255, 14, 397, 228, - 249, 679, 680, 217, 414, 54, -106, -106, -106, -106, - 59, 60, -106, 53, -106, -106, -106, 466, 467, 42, - 291, 468, 112, 113, 256, 233, 234, 398, 43, 246, - -106, 235, 41, 518, 386, 108, 205, 205, 387, 525, - -83, 535, 326, 284, 439, 443, 406, 522, 523, 524, - 519, 101, 527, 528, 418, 526, 297, 298, 419, 14, - 14, 129, 130, -268, -268, 452, 454, 9, 10, 11, - 503, 257, 588, 370, 285, 485, 228, 289, 541, 437, - 442, 42, 187, 25, 589, 502, -106, 303, 108, 531, - 43, 188, 189, 111, 133, 641, 643, 106, 540, 228, - 108, 455, 369, 373, 534, 129, 130, 233, 234, 369, - 373, 9, 10, 11, 5, 532, 7, 195, 248, 516, - 59, 60, 9, 10, 11, 25, 112, 113, 503, 542, - 185, 70, 442, 658, 317, 659, 505, 318, 13, 563, - 506, 25, 324, 502, 5, 6, 7, 8, 121, 593, - 46, 337, 9, 10, 11, 565, 297, 298, 58, 318, - 420, 121, 587, 58, 520, 521, 154, 156, 13, 343, - 14, 133, 344, 111, 571, 573, -163, 613, 350, 206, - 210, 52, 353, 232, -163, 691, 206, 210, 401, -270, - -270, 582, 583, 699, 600, 408, 357, 603, 606, 145, - 627, 351, 54, 356, 616, 610, 516, 377, 617, 372, - 53, 382, 25, 385, 437, 437, 409, 402, 412, 50, - 623, 442, 442, 505, 222, -163, 222, 506, 416, -163, - 5, 6, 7, 8, 619, -305, 425, 649, 9, 10, - 11, 433, 633, 128, 129, 130, 430, 448, 391, 182, - 9, 10, 11, 640, 13, 451, 14, 464, 469, 470, - 486, 253, -31, 503, 545, 546, 547, 121, 14, 46, - 258, -32, 553, 556, 557, 261, 262, 559, 502, 560, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 566, 561, 603, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 572, 568, 181, 569, -308, - -308, -308, -308, -308, -308, -308, 682, -308, -308, -308, - -308, -308, 603, -308, -308, -308, -308, -308, -308, -308, + 99, 47, 58, 62, 64, 66, 122, 125, 222, 31, + 31, 304, 58, 58, 58, 141, 142, 52, 21, 21, + 331, 232, 145, 58, 106, 22, 22, 299, 150, 450, + 225, 58, 126, 149, 137, 532, 197, 329, 31, 185, + 282, 371, 109, 334, 226, 241, 390, 21, 208, 430, + 49, 51, 144, 243, 22, 320, 555, 59, 60, 582, + 53, 180, 462, 25, 25, 464, -103, 133, 660, 509, + 35, 36, 37, -1, 216, 321, -2, 101, 59, 60, + 201, 46, 680, 54, 59, 60, 206, 14, 692, 466, + 210, 467, 25, 59, 60, 32, 14, 596, 58, 106, + 290, 111, 14, 259, 46, 260, 661, 594, 232, 58, + 121, 489, 46, 48, 222, 249, 606, 600, 132, 583, + 681, 101, 365, 67, 603, 222, 693, 136, 509, 391, + 381, 222, 668, 568, 299, 112, 113, 133, 61, 291, + 283, 196, 244, 107, 38, -172, -172, 108, 39, -103, + 295, 325, 279, 280, 241, 328, 145, 618, 40, 63, + 690, 190, 243, 41, 190, 282, 46, 58, 327, 121, + 46, 104, 635, 101, 65, 5, 55, 7, 56, 121, + 366, 143, 649, 9, 10, 11, 296, 553, 132, 138, + 14, 101, 227, 101, 531, 333, 228, 422, 349, 13, + 427, 58, 301, 133, 33, 34, 206, 302, 664, 475, + 210, 476, 442, 667, 388, 669, 340, 140, 342, 389, + 432, 437, 189, 677, 352, 433, 41, 435, 249, 235, + 406, 111, 408, 108, -163, 14, 5, 14, 7, 195, + 151, 369, -163, 180, 9, 10, 11, 373, 205, 190, + 454, 244, 55, 14, 56, 701, 366, 187, 428, 376, + 13, 358, 152, 626, 186, 509, 188, 189, 522, 523, + 336, 14, 338, 386, 25, 436, 14, 387, 201, 112, + 113, 196, 101, -163, 437, 189, 121, -163, 419, 121, + 121, 537, 420, 187, 41, 519, 207, 415, 205, 194, + 585, 211, 188, 189, 52, 152, 238, 112, 113, 588, + 133, -270, -270, 246, 683, 684, 441, 445, 397, 230, + 249, 14, -19, -19, -19, -19, 254, 233, 234, 255, + -19, -19, -19, 128, 129, 130, 256, 383, 384, 257, + 9, 10, 11, 42, 326, 111, -19, 53, -163, 520, + -83, 190, 43, 253, 25, 527, -163, 190, 14, 408, + 284, 398, 258, 41, 440, 444, 699, 261, 262, 537, + 54, 700, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 5, 101, 7, 195, 291, 285, + 14, 505, 9, 10, 11, 592, 487, -163, 289, 228, + 41, -163, -19, 593, 205, 645, 504, 108, 13, 228, + 14, 533, 42, 647, 303, 58, 330, 108, 106, 111, + 58, 43, 335, 544, 544, 453, 455, 14, 59, 60, + 341, 70, 187, 317, 521, 456, 534, 518, 318, 528, + 324, 188, 189, 337, 438, 443, 507, 343, 25, 442, + 505, 546, 662, 508, 663, 344, 297, 298, 437, 189, + 185, 567, 129, 130, 350, 504, 351, 133, 9, 10, + 11, 369, 373, 370, 353, 354, 355, 569, 369, 373, + 171, 172, 173, 239, 591, 356, 5, 401, 7, 98, + 357, 25, 695, 372, 9, 10, 11, 377, 443, 382, + 703, 206, 210, 52, 233, 234, 409, 25, 206, 210, + 13, 112, 113, 15, 121, 385, 46, 402, 604, 232, + 58, 607, 610, 297, 298, 518, 410, 543, 121, 614, + 417, 145, 620, 621, 507, 413, 575, 577, 318, 421, + 222, 508, 222, -305, 627, 133, 53, 59, 60, 198, + 199, 200, 248, 411, 59, 60, 41, 435, 623, 426, + 205, 240, -262, 418, 522, 523, 637, 154, 156, 54, + 174, 175, 431, 176, 177, 178, 179, 644, 434, 25, + 449, 438, 438, 14, 41, 116, 391, 505, 443, 443, + 586, 587, 639, 468, 469, 217, 182, 470, -106, -106, + -106, -106, 504, 452, -106, 436, -106, -106, -106, 460, + 465, 14, 471, 472, 437, 189, 41, 116, 607, 488, + 205, 541, -106, 524, 525, 526, 479, -31, 529, 530, + 549, 41, 116, 117, 550, 551, 121, -32, 46, 557, + 686, 560, 118, 14, 561, 563, 607, 564, 217, 565, + 542, -328, -328, -328, -328, 545, 570, 572, 14, -328, + -328, -328, 578, 573, 574, 117, 630, 605, 613, 458, + 615, 68, 616, 460, 118, -328, 69, 70, -106, 71, + 117, 629, 634, 536, 129, 130, 547, 636, 638, 118, + 9, 10, 11, 640, 641, 479, 556, 72, 643, 15, + 652, 73, 74, 75, 655, 670, 562, 682, 665, 674, + 76, 174, 175, 77, 176, 177, 178, 179, 78, 79, + 80, 678, 679, 688, 81, 82, 691, 705, 597, 83, + 694, -102, 146, 697, 68, 5, 702, 7, 98, 69, + 70, 706, 71, 9, 10, 11, 322, 380, 479, 84, + 85, 595, 459, 608, 584, 423, 617, 127, 479, 13, + 72, 479, 15, 479, 73, 74, 75, 169, 170, 171, + 172, 173, 300, 76, 378, 535, 77, 539, 602, 631, + 554, 78, 79, 80, 414, 339, 407, 81, 82, 346, + 305, 412, 83, 5, 6, 7, 8, 540, 424, 307, + 368, 9, 10, 11, 451, 429, 632, 650, 633, 651, + 687, 479, 84, 85, 689, 147, 653, 13, 374, 14, + 181, 642, -308, -308, -308, -308, -308, -308, -308, 448, + -308, -308, -308, -308, -308, 0, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, - -308, -308, 570, 574, 5, 6, 7, 8, -308, 601, - 446, -308, 9, 10, 11, 609, -308, -308, -308, 611, - 612, 626, -308, -308, 625, 632, 630, -308, 13, 634, - 14, 59, 60, 198, 199, 200, 174, 175, 637, 176, - 177, 178, 179, 354, 355, -308, 182, -308, -308, 217, - -308, -115, -115, -115, -115, -115, -115, -115, 635, -115, - -115, -115, -115, -115, 636, -115, -115, -115, -115, -115, + -308, -308, -308, -308, -308, 0, 0, 0, 0, 0, + 0, -308, 0, 0, -308, 0, 0, -388, 0, -308, + -308, -308, 0, 0, 0, -308, -308, 0, 0, 0, + -308, 0, 0, 0, 0, 0, 0, 5, 6, 7, + 8, 0, 0, 0, 0, 9, 10, 11, -308, 182, + -308, -308, 217, -308, -115, -115, -115, -115, -115, -115, + -115, 13, -115, -115, -115, -115, -115, 0, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, - 639, -115, -115, -115, 648, 651, 5, 6, 7, 8, - -115, 675, 661, -115, 9, 10, 11, 666, -115, -115, - -115, 670, 674, 678, -115, -115, 684, 687, 701, -115, - 13, 690, 14, 166, 167, 168, 169, 170, 171, 172, - 173, 410, 169, 170, 171, 172, 173, -115, -115, -115, - -115, 417, -115, 693, 360, 698, -328, -328, -328, -328, - -328, -328, -328, 702, -328, -328, -328, -328, -328, 380, + -115, -115, -115, 0, -115, -115, -115, 0, 0, 5, + 6, 7, 8, -115, 0, 447, -115, 9, 10, 11, + 0, -115, -115, -115, 0, 0, 0, -115, -115, 0, + 0, 0, -115, 13, 0, 14, 0, 0, 0, 5, + 0, 7, 98, 0, 0, 0, 0, 9, 10, 11, + -115, -115, -115, -115, 360, -115, -328, -328, -328, -328, + -328, -328, -328, 13, -328, -328, -328, -328, -328, 0, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, - -328, -328, -328, -328, -328, 422, -328, -328, -328, 604, - 322, 127, 580, 300, 533, -328, 537, 459, -328, 378, - 598, 550, 339, -328, -328, -328, 538, 407, 413, -328, - -328, 411, 423, 477, -328, 217, 346, 450, -328, -328, - -328, -328, 368, 428, 646, 647, -328, -328, -328, 683, - 685, 374, -328, 447, -328, -328, 0, -328, 0, 0, - 0, 0, -328, 0, 0, 217, 0, -328, -328, 0, - 0, 0, -328, -328, 0, -328, 0, 0, 0, -328, - 459, -328, -328, -328, -328, -328, -328, -328, -328, -328, - -328, -328, 543, -328, 0, -328, 0, -328, -328, -328, - 0, 477, 552, 0, 0, 0, -328, 0, 0, -328, - 0, 0, 558, 0, -328, -328, -328, 0, -102, 0, - -328, -328, 0, 0, 0, -328, 0, 0, 5, 239, - 7, 98, 5, 0, 7, 98, 9, 10, 11, 0, - 9, 10, 11, -328, -301, -328, -328, 0, -328, 0, - 0, 0, 13, 0, 477, 0, 13, 591, 0, 15, - 0, 5, 477, 7, 195, 477, 0, 477, 0, 9, - 10, 11, 575, 0, -328, -328, 0, 0, 0, -328, - -328, 0, -328, 0, 0, 13, -328, 14, -328, -328, - -328, -328, -328, -328, -328, -328, -328, -328, -328, 0, - -328, 0, -328, 0, -328, -328, -328, 240, -262, 187, - 628, 0, 629, -328, 0, 477, -328, 0, 188, 189, - 0, -328, -328, -328, 0, 638, 0, -328, -328, 0, - 0, 305, -328, 306, 5, 6, 7, 8, 0, 0, - 307, 0, 9, 10, 11, 0, 0, 0, 0, 0, - -328, 0, -328, -328, 620, -328, -338, -338, 13, 0, - 14, -338, -338, 0, -338, 0, 0, 0, -338, 0, - -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, - -338, 0, -338, 0, -338, 0, -338, -338, -338, 0, - 0, 0, 0, 0, 0, -338, 174, 175, -338, 176, - 177, 178, 179, -338, -338, -338, 0, 0, -388, -338, - -338, 0, 0, 146, -338, 68, 5, 0, 7, 98, - 69, 70, 0, 71, 9, 10, 11, 0, 0, 0, - 0, 0, -338, 0, -338, -338, 0, -338, 0, 0, - 13, 72, 0, 15, 0, 73, 74, 75, 471, 111, - 472, 60, -163, 0, 76, 69, 70, 77, 71, 0, - -163, 0, 78, 79, 80, 0, 0, 0, 81, 82, - 0, 0, 0, 83, 0, 0, 72, 0, 15, 0, - 73, 74, 75, 112, 113, 0, 0, 0, 0, 76, - 0, 0, 77, 84, 85, 0, 147, 78, 79, 80, - 0, -163, 0, 81, 82, -163, 0, 473, 83, 474, - 471, 0, 472, 60, 0, 0, 0, 69, 70, 0, - 71, 0, 0, 0, 0, 0, 0, -191, 84, 85, - 0, 475, 0, 0, 0, 0, 0, 0, 72, 0, - 15, 0, 73, 74, 75, 0, 0, 0, 0, 0, - 0, 76, 0, 0, 77, 0, 0, 0, 0, 78, - 79, 80, 0, 0, 0, 81, 82, 0, 0, 473, - 83, 474, 471, 0, 68, 0, 0, 0, 0, 69, - 70, 0, 71, 0, 0, 0, 0, 0, 0, -259, - 84, 85, 0, 475, 0, 0, 0, 0, 0, 0, - 72, 0, 15, 0, 73, 74, 75, 0, 0, -204, - 457, 0, 68, 76, 0, 0, 77, 69, 70, 0, - 71, 78, 79, 80, 0, 0, 0, 81, 82, 0, - 0, -204, 83, -204, 0, 0, 0, 0, 72, 0, - 15, 0, 73, 74, 75, 0, 0, 0, 0, 0, - 0, 76, 84, 85, 77, 475, 0, 0, 0, 78, - 79, 80, 0, 0, 0, 81, 82, 471, 0, 68, - 83, 0, 0, 0, 69, 70, 110, 71, 0, -27, - -27, -27, -27, 0, 0, 0, 0, -27, -27, -27, - 84, 85, 0, 458, 0, 72, 0, 15, 0, 73, - 74, 75, 111, -27, 0, -163, 0, 0, 76, 0, - 0, 77, 0, -163, 0, 0, 78, 79, 80, 0, - 0, 0, 81, 82, 0, 0, 0, 83, 167, 168, - 169, 170, 171, 172, 173, 0, 112, 113, 0, 0, - 236, 0, 0, -23, -23, -23, -23, 84, 85, 0, - 475, -23, -23, -23, -163, 0, 0, 0, -163, -27, - 0, 0, 0, 0, 0, 0, 111, -23, 230, -163, - 0, -19, -19, -19, -19, 0, 0, -163, 68, -19, - -19, -19, 0, 69, 70, 0, 71, 0, 0, 0, - 0, 0, 0, 0, 111, -19, 0, -163, 0, 0, - 112, 113, 0, 0, 72, -163, 15, 0, 73, 74, - 75, 0, 0, 0, 0, 0, 0, 76, -163, 0, - 77, 0, -163, -23, 0, 78, 79, 214, 0, 0, - 0, 81, 82, 68, 0, 0, 83, 0, 69, 70, - 0, 71, 0, 0, 0, 0, -163, 0, 0, 0, - -163, -19, 0, 0, 0, 0, 84, 85, 0, 72, - 215, 15, 0, 73, 74, 75, 0, 0, 0, 0, - 0, 68, 76, 0, 0, 77, 69, 70, 0, 71, - 78, 79, 80, 0, 0, 0, 81, 82, 0, 0, - 0, 83, 0, 0, 0, 0, 0, 72, 0, 15, - 0, 73, 74, 75, 0, 0, 0, 0, 0, 0, - 76, 84, 85, 77, 0, 294, 0, 0, 78, 79, - 80, 0, 0, 0, 81, 82, 68, 0, 0, 83, - 0, 69, 70, 305, 71, 0, 5, 6, 7, 8, - 0, 0, 307, 0, 9, 10, 11, 0, 0, 84, - 85, 0, 72, 316, 15, 0, 73, 74, 75, 0, - 13, 0, 14, 0, 68, 76, 0, 0, 77, 69, - 70, 0, 71, 78, 79, 80, 0, 0, 0, 81, - 82, 0, 0, 0, 83, 0, 0, 0, 0, 0, - 72, 0, 15, 0, 73, 74, 75, 0, 0, 0, - 0, 0, 0, 76, 84, 85, 77, 0, 332, 0, - -388, 78, 79, 80, 0, 0, 0, 81, 82, 68, - 0, 0, 83, 0, 69, 70, 0, 71, 5, 55, - 7, 56, 0, 0, 0, 0, 9, 10, 11, 0, - 0, 0, 84, 85, 0, 72, 375, 15, 0, 73, - 74, 75, 13, 0, 0, 0, 0, 68, 76, 0, - 0, 77, 69, 70, 0, 71, 78, 79, 585, 0, - 0, 0, 81, 82, 0, 0, 0, 83, 0, 0, - 0, 0, 0, 72, 0, 15, 0, 73, 74, 75, - 607, 0, 0, 0, 0, 0, 76, 84, 85, 77, - 0, 586, 0, 453, 78, 79, 80, 0, 0, 0, - 81, 82, 0, 0, 0, 83, 0, 157, 158, 159, - 608, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 84, 85, 0, 0, 624, - 472, 488, 6, 7, 8, 69, 70, 0, 71, 9, - 10, 11, 489, 0, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 13, 72, 14, 15, 0, - 73, 74, 75, 0, 0, 0, 0, 0, 0, 76, - 0, 0, 77, 0, 0, 0, 0, 78, 79, 80, - 0, 0, 0, 81, 82, 0, 0, 0, 83, 239, + -328, -328, -328, -328, -328, 0, -328, -328, -328, 0, + 0, 0, 0, 0, 0, -328, 0, 0, -328, 0, + 0, 0, 0, -328, -328, -328, 0, 0, 0, -328, + -328, 0, 0, 305, -328, 306, 5, 6, 7, 8, + 0, 0, 307, 0, 9, 10, 11, 0, 0, 0, + 0, 0, -328, 0, -328, -328, 217, -328, -328, -328, + 13, 0, 14, -328, -328, 0, -328, 0, 0, 0, + -328, 0, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, 0, -328, 0, -328, 0, -328, -328, + -328, 111, 0, 0, -163, 0, 0, -328, 0, 0, + -328, 0, -163, 0, 0, -328, -328, -328, 0, 0, + -388, -328, -328, 0, 0, 0, -328, 166, 167, 168, + 169, 170, 171, 172, 173, 112, 113, 167, 168, 169, + 170, 171, 172, 173, -328, -301, -328, -328, 579, -328, + -328, -328, 0, -163, 0, -328, -328, -163, -328, 0, + 0, 0, -328, 0, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, 0, -328, 0, -328, 0, + -328, -328, -328, 0, 0, 0, 0, 0, 0, -328, + 0, 0, -328, 0, 0, 0, 0, -328, -328, -328, + 0, 0, 0, -328, -328, 0, 0, 0, -328, 239, 0, 0, 5, 0, 7, 98, 0, 0, 0, 0, - 9, 10, 11, 0, 0, 0, 501, 0, 84, 85, - 0, 391, 472, 60, 0, 0, 13, 69, 70, 15, - 71, 0, 0, 0, 489, 0, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 0, 72, 0, - 15, 0, 73, 74, 75, 0, 0, 68, 0, 0, - 0, 76, 69, 70, 77, 71, 0, 0, 0, 78, + 9, 10, 11, 0, 0, 0, -328, 0, -328, -328, + 624, -328, -338, -338, 0, 0, 13, -338, -338, 15, + -338, 0, 0, 0, -338, 0, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, 0, -338, 0, + -338, 0, -338, -338, -338, 473, 0, 474, 60, 0, + 0, -338, 69, 70, -338, 71, 0, 0, 0, -338, + -338, -338, 0, 0, 0, -338, -338, 0, 0, 0, + -338, 0, 0, 72, 0, 15, 0, 73, 74, 75, + 0, 0, 0, 0, 0, 0, 76, 0, -338, 77, + -338, -338, 0, -338, 78, 79, 80, 0, 0, 0, + 81, 82, 0, 0, 475, 83, 476, 473, 0, 474, + 60, 0, 0, 0, 69, 70, 0, 71, 0, 0, + 0, 0, 0, 0, -191, 84, 85, 0, 477, 0, + 0, 0, 0, 0, 0, 72, 0, 15, 0, 73, + 74, 75, 0, 0, 0, 0, 0, 0, 76, 0, + 0, 77, 0, 0, 0, 0, 78, 79, 80, 0, + 0, 0, 81, 82, 0, 0, 475, 83, 476, 473, + 0, 68, 0, 0, 0, 0, 69, 70, 0, 71, + 0, 0, 0, 0, 0, 0, -259, 84, 85, 0, + 477, 0, 0, 0, 0, 0, 0, 72, 0, 15, + 0, 73, 74, 75, 0, 0, -204, 473, 0, 68, + 76, 0, 0, 77, 69, 70, 0, 71, 78, 79, + 80, 0, 0, 0, 81, 82, 0, 0, -204, 83, + -204, 0, 0, 0, 0, 72, 0, 15, 0, 73, + 74, 75, 0, 0, 0, 0, 0, 0, 76, 84, + 85, 77, 477, 0, 0, 0, 78, 79, 80, 0, + 0, 0, 81, 82, 0, 110, 0, 83, -27, -27, + -27, -27, 0, 0, 0, 0, -27, -27, -27, 0, + 0, 0, 0, 0, 0, 0, 0, 84, 85, 0, + 477, 111, -27, 236, -163, 0, -23, -23, -23, -23, + 0, 0, -163, 68, -23, -23, -23, 0, 69, 70, + 0, 71, 0, 0, 0, 0, 0, 0, 0, 111, + -23, 0, -163, 0, 0, 112, 113, 0, 0, 72, + -163, 15, 0, 73, 74, 75, 0, 0, 0, 0, + 0, 0, 76, -163, 0, 77, 0, -163, -27, 0, + 78, 79, 214, 112, 113, 0, 81, 82, 68, 0, + 0, 83, 0, 69, 70, 0, 71, 0, 0, 0, + 0, -163, 0, 0, 0, -163, -23, 0, 0, 0, + 0, 84, 85, 0, 72, 215, 15, 0, 73, 74, + 75, 0, 0, 0, 0, 0, 68, 76, 0, 0, + 77, 69, 70, 0, 71, 78, 79, 80, 0, 0, + 0, 81, 82, 0, 0, 0, 83, 0, 0, 0, + 0, 0, 72, 0, 15, 0, 73, 74, 75, 0, + 0, 0, 0, 0, 0, 76, 84, 85, 77, 0, + 294, 0, 0, 78, 79, 80, 0, 0, 0, 81, + 82, 68, 0, 0, 83, 0, 69, 70, 0, 71, + 5, 6, 7, 8, 0, 0, 0, 0, 9, 10, + 11, 0, 0, 0, 84, 85, 0, 72, 316, 15, + 0, 73, 74, 75, 13, 0, 14, 0, 0, 68, + 76, 0, 0, 77, 69, 70, 0, 71, 78, 79, + 80, 0, 0, 0, 81, 82, 0, 0, 0, 83, + 0, 0, 0, 0, 0, 72, 0, 15, 0, 73, + 74, 75, 0, 0, 0, 0, 0, 0, 76, 84, + 85, 77, 0, 332, 0, 50, 78, 79, 80, 0, + 0, 0, 81, 82, 68, 0, 0, 83, 0, 69, + 70, 0, 71, 5, 6, 7, 8, 0, 0, 0, + 0, 9, 10, 11, 0, 0, 0, 84, 85, 0, + 72, 375, 15, 0, 73, 74, 75, 13, 0, 14, + 0, 0, 68, 76, 0, 0, 77, 69, 70, 0, + 71, 78, 79, 589, 0, 0, 0, 81, 82, 0, + 0, 0, 83, 0, 0, 0, 0, 0, 72, 0, + 15, 0, 73, 74, 75, 611, 0, 0, 0, 0, + 0, 76, 84, 85, 77, 0, 590, 0, 576, 78, 79, 80, 0, 0, 0, 81, 82, 0, 0, 0, - 83, 0, 0, 72, 0, 15, 0, 73, 74, 75, - 0, 0, 0, 0, 0, 0, 76, 0, 501, 77, - 84, 85, 0, 391, 78, 79, 80, 0, 0, 0, - 81, 82, 0, 0, 0, 83, 68, 5, 6, 7, - 8, 69, 70, 0, 71, 9, 10, 11, 0, 0, - 0, 0, 0, 0, 0, 84, 85, 0, 348, 0, - 0, 13, 72, 14, 15, 0, 73, 74, 75, 0, - 0, 0, 0, 0, 0, 76, 0, 0, 77, 0, - 0, 0, 0, 78, 79, 80, 0, 0, 0, 81, - 82, 0, 68, 5, 83, 7, 98, 69, 70, 0, - 71, 9, 10, 11, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 0, 84, 85, 0, 13, 72, 0, - 15, 0, 73, 74, 75, 0, 0, 68, 0, 0, - 0, 76, 69, 70, 77, 71, 0, 0, 0, 78, - 79, 80, 0, 0, 0, 81, 82, 0, 0, 0, - 83, 0, 0, 72, 0, 15, 0, 73, 74, 75, - 0, 0, 0, 0, 0, 0, 76, 0, 0, 77, - 84, 85, 0, 0, 78, 79, 80, 0, 0, 0, - 81, 82, 68, 0, 0, 83, 0, 69, 70, 0, - 71, 5, 6, 7, 8, 0, 0, 0, 0, 9, - 10, 11, 0, 562, 0, 84, 85, 0, 72, 0, - 15, 0, 73, 74, 75, 13, 0, 68, 0, 0, - 0, 76, 69, 70, 77, 71, 0, 0, 0, 78, - 79, 80, 0, 0, 0, 81, 82, 0, 0, 0, - 83, 0, 0, 72, 0, 15, 0, 73, 74, 75, - 0, 0, 0, 0, 0, 0, 76, 0, 0, 77, - 84, 85, 0, 0, 78, 79, 80, 0, 0, 0, - 81, 82, 68, 0, 0, 153, 0, 69, 70, 159, - 71, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 84, 85, 0, 72, 0, - 15, 0, 73, 74, 75, 0, 0, 379, 0, 0, - 0, 76, 69, 70, 77, 71, 0, 0, 0, 78, + 83, 0, 157, 158, 159, 612, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 84, 85, 0, 0, 628, 474, 490, 6, 7, 8, + 69, 70, 0, 71, 9, 10, 11, 491, 0, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 13, 72, 14, 15, 0, 73, 74, 75, 0, 0, + 5, 6, 7, 8, 76, 0, 0, 77, 9, 10, + 11, 0, 78, 79, 80, 0, 0, 0, 81, 82, + 0, 0, 0, 83, 13, 159, 14, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 503, 0, 84, 85, 0, 391, 474, 60, 0, + 0, 0, 69, 70, 0, 71, 0, 0, 0, 491, + 0, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 0, 72, 0, 15, 0, 73, 74, 75, + 0, 0, 68, 0, 0, 0, 76, 69, 70, 77, + 71, 0, 0, 0, 78, 79, 80, 0, 0, 0, + 81, 82, 0, 0, 0, 83, 0, 0, 72, 0, + 15, 0, 73, 74, 75, 0, 0, 0, 0, 0, + 0, 76, 0, 503, 77, 84, 85, 0, 391, 78, 79, 80, 0, 0, 0, 81, 82, 0, 0, 0, - 155, 0, 0, 72, 0, 15, 0, 73, 74, 75, - 0, 0, 0, 0, 0, 0, 76, 0, 0, 77, - 84, 85, 0, 0, 78, 79, 80, 0, 0, 0, - 81, 82, 0, 0, 4, 83, -119, 5, 6, 7, - 8, 0, 0, 0, 0, 9, 10, 11, 0, 0, - 0, 0, 0, 0, 0, 84, 85, 0, 0, 0, - 12, 13, 0, 14, 15, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 0, 0, - 0, 0, 594, 0, 0, -119, 0, 0, 0, 0, - 0, 157, 158, 159, -119, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 157, - 158, 159, 16, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 157, 158, 159, 650, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 14, 0, 0, 595, 0, 0, - 0, 157, 158, 159, 0, 160, 161, 162, 163, 164, + 83, 68, 5, 6, 7, 8, 69, 70, 0, 71, + 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, + 84, 85, 0, 348, 0, 0, 13, 72, 14, 15, + 0, 73, 74, 75, 0, 0, 0, 0, 0, 0, + 76, 0, 0, 77, 0, 0, 0, 0, 78, 79, + 80, 0, 0, 0, 81, 82, 0, 68, 5, 83, + 7, 98, 69, 70, 0, 71, 9, 10, 11, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 84, + 85, 0, 13, 72, 0, 15, 0, 73, 74, 75, + 0, 0, 68, 0, 0, 0, 76, 69, 70, 77, + 71, 0, 0, 0, 78, 79, 80, 0, 0, 0, + 81, 82, 0, 0, 0, 83, 0, 0, 72, 0, + 15, 0, 73, 74, 75, 0, 0, 0, 0, 0, + 0, 76, 0, 0, 77, 84, 85, 0, 0, 78, + 79, 80, 0, 0, 0, 81, 82, 68, 0, 0, + 83, 0, 69, 70, 0, 71, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 566, 0, + 84, 85, 0, 72, 0, 15, 0, 73, 74, 75, + 0, 0, 68, 0, 0, 0, 76, 69, 70, 77, + 71, 0, 0, 0, 78, 79, 80, 0, 0, 0, + 81, 82, 0, 0, 0, 83, 0, 0, 72, 0, + 15, 0, 73, 74, 75, 0, 0, 0, 0, 0, + 0, 76, 0, 0, 77, 84, 85, 0, 0, 78, + 79, 80, 0, 0, 0, 81, 82, 68, 0, 0, + 153, 0, 69, 70, 0, 71, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 0, - 0, 0, 347, 157, 158, 159, 655, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 157, 158, 159, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 162, + 84, 85, 0, 72, 0, 15, 0, 73, 74, 75, + 0, 0, 379, 0, 0, 0, 76, 69, 70, 77, + 71, 0, 0, 0, 78, 79, 80, 0, 0, 0, + 81, 82, 0, 0, 0, 155, 0, 0, 72, 0, + 15, 0, 73, 74, 75, 0, 0, 0, 0, 0, + 0, 76, 0, 0, 77, 84, 85, 0, 0, 78, + 79, 80, 0, 0, 0, 81, 82, 0, 0, 4, + 83, -119, 5, 6, 7, 8, 0, 0, 0, 0, + 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, + 84, 85, 0, 0, 0, 12, 13, 0, 14, 15, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173 + 173, 0, 0, 0, 0, 0, 0, 598, 0, 0, + -119, 0, 0, 0, 0, 0, 157, 158, 159, -119, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 157, 158, 159, 16, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 157, 158, 159, 654, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 14, + 0, 0, 599, 0, 0, 0, 157, 158, 159, 0, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 0, 0, 0, 347, 157, 158, + 159, 659, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 157, 158, 159, 0, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173 }; static const short yycheck[] = { 38, - 39, 20, 49, 27, 28, 29, 51, 73, 74, 122, - 21, 22, 2, 3, 80, 57, 114, 22, 2, 3, - 86, 193, 103, 233, 43, 9, 10, 11, 211, 2, - 3, 97, 51, 2, 3, 117, 20, 63, 22, 178, - 390, 31, 231, 366, 293, 108, 22, 31, 237, 452, - 3, 4, 76, 1, 121, 1, 3, 135, 31, 43, - 83, 135, 31, 39, 10, 49, 25, 51, 40, 219, - 40, 1, 40, 57, 113, 483, 35, 36, 37, 429, - 104, 653, 61, 406, 31, 127, 105, 46, 3, 4, - 109, 118, 188, 30, 555, 54, 209, 3, 4, 118, - 3, 4, 9, 40, 427, 187, 78, 83, 78, 681, - 78, 400, 78, 61, 403, 139, 100, 83, 536, 103, - 38, 105, 220, 190, 108, 109, 544, 103, 300, 0, - 153, 84, 155, 231, 118, 0, 286, 487, 84, 237, - 179, 549, 60, 127, 62, 135, 30, 27, 214, 52, - 189, 193, 176, 177, 84, 52, 53, 54, 3, 135, - 621, 232, 121, 61, 303, 228, 244, 238, 571, 84, - 244, 78, 5, 132, 7, 246, 3, 153, 84, 155, - 7, 61, 62, 79, 80, 30, 647, 78, 286, 597, - 256, 652, 83, 654, 290, 234, 445, 61, 225, 61, - 296, 662, 229, 30, 188, 79, 225, 52, 78, 83, - 229, 361, 79, 83, 364, 78, 61, 62, 84, 245, - 83, 247, 3, 4, 263, 52, 7, 84, 252, 213, - 241, 190, 243, 694, 61, 62, 3, 4, 336, 61, - 338, 225, 3, 4, 228, 229, 7, 3, 4, 30, - 3, 4, 84, 576, 244, 78, 61, 30, 300, 298, - 83, 285, 78, 30, 362, 224, 364, 243, 244, 30, - 83, 52, 622, 9, 30, 61, 62, 30, 302, 52, - 61, 62, 30, 78, 456, 52, 78, 40, 61, 62, - 3, 52, 78, 432, 61, 62, 52, 308, 309, 52, - 61, 80, 383, 384, 309, 61, 290, 78, 61, 293, - 520, 30, 296, 61, 62, 79, 78, 30, 323, 83, - 344, 671, 672, 1, 347, 309, 4, 5, 6, 7, - 3, 4, 10, 309, 12, 13, 14, 408, 409, 52, - 436, 412, 61, 62, 78, 61, 62, 323, 61, 80, - 28, 79, 3, 435, 79, 83, 7, 7, 83, 441, - 40, 533, 78, 78, 383, 384, 464, 438, 439, 440, - 437, 347, 443, 444, 79, 442, 61, 62, 83, 30, - 30, 6, 7, 79, 80, 396, 397, 12, 13, 14, - 429, 79, 79, 78, 32, 419, 83, 78, 469, 383, - 384, 52, 52, 387, 79, 429, 84, 61, 83, 454, - 61, 61, 62, 27, 456, 79, 79, 436, 465, 83, - 83, 397, 518, 519, 5, 6, 7, 61, 62, 525, - 526, 12, 13, 14, 4, 454, 6, 7, 1, 429, - 3, 4, 12, 13, 14, 429, 61, 62, 487, 473, - 516, 9, 436, 642, 85, 644, 429, 79, 28, 498, - 429, 445, 38, 487, 4, 5, 6, 7, 452, 540, - 454, 79, 12, 13, 14, 499, 61, 62, 437, 79, - 80, 465, 521, 442, 61, 62, 90, 91, 28, 38, - 30, 533, 83, 27, 505, 506, 30, 568, 78, 518, - 519, 506, 40, 616, 38, 688, 525, 526, 38, 79, - 80, 518, 519, 696, 553, 80, 85, 556, 557, 585, - 591, 78, 506, 78, 571, 564, 516, 78, 573, 85, - 506, 78, 516, 78, 518, 519, 80, 85, 80, 79, - 579, 525, 526, 516, 642, 79, 644, 516, 40, 83, - 4, 5, 6, 7, 573, 80, 80, 628, 12, 13, - 14, 78, 601, 5, 6, 7, 85, 3, 84, 80, - 12, 13, 14, 612, 28, 79, 30, 83, 80, 78, - 80, 143, 40, 622, 40, 80, 83, 571, 30, 573, - 152, 40, 61, 61, 61, 157, 158, 40, 622, 79, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 7, 79, 653, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 79, 40, 1, 79, 3, - 4, 5, 6, 7, 8, 9, 675, 11, 12, 13, - 14, 15, 681, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 79, 16, 4, 5, 6, 7, 42, 61, - 10, 45, 12, 13, 14, 79, 50, 51, 52, 79, - 61, 80, 56, 57, 85, 78, 80, 61, 28, 17, - 30, 3, 4, 5, 6, 7, 56, 57, 78, 59, - 60, 61, 62, 265, 266, 79, 80, 81, 82, 1, - 84, 3, 4, 5, 6, 7, 8, 9, 78, 11, - 12, 13, 14, 15, 79, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 79, 33, 34, 35, 78, 78, 4, 5, 6, 7, - 42, 61, 79, 45, 12, 13, 14, 9, 50, 51, - 52, 79, 79, 83, 56, 57, 79, 78, 0, 61, - 28, 78, 30, 47, 48, 49, 50, 51, 52, 53, - 54, 343, 50, 51, 52, 53, 54, 79, 80, 81, - 82, 353, 84, 79, 1, 79, 3, 4, 5, 6, - 7, 8, 9, 0, 11, 12, 13, 14, 15, 303, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 362, 33, 34, 35, 556, - 220, 53, 516, 196, 455, 42, 462, 399, 45, 302, - 547, 482, 244, 50, 51, 52, 464, 338, 346, 56, - 57, 344, 362, 415, 61, 1, 252, 393, 4, 5, - 6, 7, 287, 364, 622, 622, 12, 13, 14, 676, - 678, 297, 79, 387, 81, 82, -1, 84, -1, -1, - -1, -1, 28, -1, -1, 1, -1, 3, 4, -1, - -1, -1, 8, 9, -1, 11, -1, -1, -1, 15, - 462, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 474, 29, -1, 31, -1, 33, 34, 35, - -1, 483, 484, -1, -1, -1, 42, -1, -1, 45, - -1, -1, 494, -1, 50, 51, 52, -1, 84, -1, - 56, 57, -1, -1, -1, 61, -1, -1, 4, 1, - 6, 7, 4, -1, 6, 7, 12, 13, 14, -1, - 12, 13, 14, 79, 80, 81, 82, -1, 84, -1, - -1, -1, 28, -1, 536, -1, 28, 539, -1, 31, - -1, 4, 544, 6, 7, 547, -1, 549, -1, 12, - 13, 14, 1, -1, 3, 4, -1, -1, -1, 8, - 9, -1, 11, -1, -1, 28, 15, 30, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, - 29, -1, 31, -1, 33, 34, 35, 79, 80, 52, - 592, -1, 594, 42, -1, 597, 45, -1, 61, 62, - -1, 50, 51, 52, -1, 607, -1, 56, 57, -1, - -1, 1, 61, 3, 4, 5, 6, 7, -1, -1, - 10, -1, 12, 13, 14, -1, -1, -1, -1, -1, - 79, -1, 81, 82, 1, 84, 3, 4, 28, -1, - 30, 8, 9, -1, 11, -1, -1, -1, 15, -1, + 39, 20, 25, 27, 28, 29, 49, 51, 114, 2, + 3, 211, 35, 36, 37, 73, 74, 22, 2, 3, + 233, 122, 80, 46, 43, 2, 3, 193, 86, 390, + 117, 54, 51, 83, 63, 453, 103, 231, 31, 97, + 178, 293, 46, 237, 118, 135, 1, 31, 108, 366, + 21, 22, 76, 135, 31, 219, 485, 3, 4, 1, + 22, 9, 400, 2, 3, 403, 1, 57, 40, 430, + 9, 10, 11, 0, 113, 10, 0, 39, 3, 4, + 104, 20, 40, 22, 3, 4, 105, 30, 40, 406, + 109, 408, 31, 3, 4, 3, 30, 40, 121, 118, + 187, 27, 30, 153, 43, 155, 78, 538, 209, 132, + 49, 428, 51, 79, 220, 139, 559, 548, 57, 61, + 78, 83, 286, 31, 553, 231, 78, 84, 489, 84, + 78, 237, 657, 52, 300, 61, 62, 127, 84, 188, + 179, 103, 135, 79, 61, 79, 80, 83, 61, 84, + 189, 225, 176, 177, 244, 229, 214, 575, 61, 84, + 685, 100, 244, 3, 103, 303, 105, 190, 228, 108, + 109, 61, 601, 135, 84, 4, 5, 6, 7, 118, + 286, 61, 625, 12, 13, 14, 190, 38, 127, 84, + 30, 153, 79, 155, 446, 234, 83, 361, 256, 28, + 364, 224, 78, 193, 79, 80, 225, 83, 651, 60, + 229, 62, 52, 656, 78, 658, 245, 84, 247, 83, + 78, 61, 62, 666, 263, 83, 3, 4, 252, 79, + 336, 27, 338, 83, 30, 30, 4, 30, 6, 7, + 78, 290, 38, 9, 12, 13, 14, 296, 7, 188, + 79, 244, 5, 30, 7, 698, 362, 52, 364, 298, + 28, 285, 83, 580, 78, 626, 61, 62, 61, 62, + 241, 30, 243, 79, 213, 52, 30, 83, 302, 61, + 62, 243, 244, 79, 61, 62, 225, 83, 79, 228, + 229, 457, 83, 52, 3, 433, 78, 347, 7, 78, + 78, 61, 61, 62, 309, 83, 80, 61, 62, 522, + 300, 79, 80, 80, 675, 676, 383, 384, 323, 1, + 344, 30, 4, 5, 6, 7, 78, 61, 62, 78, + 12, 13, 14, 5, 6, 7, 78, 308, 309, 79, + 12, 13, 14, 52, 78, 27, 28, 309, 30, 436, + 40, 290, 61, 143, 293, 442, 38, 296, 30, 465, + 78, 323, 152, 3, 383, 384, 78, 157, 158, 535, + 309, 83, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 4, 347, 6, 7, 437, 32, + 30, 430, 12, 13, 14, 79, 420, 79, 78, 83, + 3, 83, 84, 79, 7, 79, 430, 83, 28, 83, + 30, 455, 52, 79, 61, 438, 232, 83, 437, 27, + 443, 61, 238, 466, 467, 396, 397, 30, 3, 4, + 246, 9, 52, 85, 438, 397, 455, 430, 79, 443, + 38, 61, 62, 79, 383, 384, 430, 38, 387, 52, + 489, 475, 646, 430, 648, 83, 61, 62, 61, 62, + 518, 500, 6, 7, 78, 489, 78, 457, 12, 13, + 14, 520, 521, 78, 40, 265, 266, 501, 527, 528, + 52, 53, 54, 1, 523, 78, 4, 38, 6, 7, + 85, 430, 692, 85, 12, 13, 14, 78, 437, 78, + 700, 520, 521, 508, 61, 62, 80, 446, 527, 528, + 28, 61, 62, 31, 453, 78, 455, 85, 557, 620, + 543, 560, 561, 61, 62, 518, 80, 466, 467, 568, + 40, 589, 575, 577, 518, 80, 507, 508, 79, 80, + 646, 518, 648, 80, 583, 535, 508, 3, 4, 5, + 6, 7, 1, 343, 3, 4, 3, 4, 577, 80, + 7, 79, 80, 353, 61, 62, 605, 90, 91, 508, + 56, 57, 85, 59, 60, 61, 62, 616, 78, 518, + 3, 520, 521, 30, 3, 4, 84, 626, 527, 528, + 520, 521, 78, 409, 410, 1, 80, 413, 4, 5, + 6, 7, 626, 79, 10, 52, 12, 13, 14, 399, + 83, 30, 80, 78, 61, 62, 3, 4, 657, 80, + 7, 40, 28, 439, 440, 441, 416, 40, 444, 445, + 40, 3, 4, 52, 80, 83, 575, 40, 577, 61, + 679, 61, 61, 30, 61, 40, 685, 79, 1, 79, + 466, 4, 5, 6, 7, 471, 7, 40, 30, 12, + 13, 14, 16, 79, 79, 52, 80, 61, 79, 1, + 79, 3, 61, 463, 61, 28, 8, 9, 84, 11, + 52, 85, 80, 5, 6, 7, 476, 78, 17, 61, + 12, 13, 14, 79, 78, 485, 486, 29, 79, 31, + 78, 33, 34, 35, 78, 9, 496, 83, 79, 79, + 42, 56, 57, 45, 59, 60, 61, 62, 50, 51, + 52, 79, 61, 79, 56, 57, 78, 0, 544, 61, + 78, 84, 1, 79, 3, 4, 79, 6, 7, 8, + 9, 0, 11, 12, 13, 14, 220, 303, 538, 81, + 82, 541, 84, 560, 518, 362, 572, 53, 548, 28, + 29, 551, 31, 553, 33, 34, 35, 50, 51, 52, + 53, 54, 196, 42, 302, 456, 45, 463, 551, 595, + 484, 50, 51, 52, 346, 244, 338, 56, 57, 252, + 1, 344, 61, 4, 5, 6, 7, 465, 362, 10, + 287, 12, 13, 14, 393, 364, 596, 626, 598, 626, + 680, 601, 81, 82, 682, 84, 632, 28, 297, 30, + 1, 611, 3, 4, 5, 6, 7, 8, 9, 387, + 11, 12, 13, 14, 15, -1, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, + -1, 42, -1, -1, 45, -1, -1, 78, -1, 50, + 51, 52, -1, -1, -1, 56, 57, -1, -1, -1, + 61, -1, -1, -1, -1, -1, -1, 4, 5, 6, + 7, -1, -1, -1, -1, 12, 13, 14, 79, 80, + 81, 82, 1, 84, 3, 4, 5, 6, 7, 8, + 9, 28, 11, 12, 13, 14, 15, -1, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, -1, 33, 34, 35, -1, -1, 4, + 5, 6, 7, 42, -1, 10, 45, 12, 13, 14, + -1, 50, 51, 52, -1, -1, -1, 56, 57, -1, + -1, -1, 61, 28, -1, 30, -1, -1, -1, 4, + -1, 6, 7, -1, -1, -1, -1, 12, 13, 14, + 79, 80, 81, 82, 1, 84, 3, 4, 5, 6, + 7, 8, 9, 28, 11, 12, 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, -1, 29, -1, 31, -1, 33, 34, 35, -1, - -1, -1, -1, -1, -1, 42, 56, 57, 45, 59, - 60, 61, 62, 50, 51, 52, -1, -1, 78, 56, - 57, -1, -1, 1, 61, 3, 4, -1, 6, 7, - 8, 9, -1, 11, 12, 13, 14, -1, -1, -1, - -1, -1, 79, -1, 81, 82, -1, 84, -1, -1, - 28, 29, -1, 31, -1, 33, 34, 35, 1, 27, - 3, 4, 30, -1, 42, 8, 9, 45, 11, -1, - 38, -1, 50, 51, 52, -1, -1, -1, 56, 57, - -1, -1, -1, 61, -1, -1, 29, -1, 31, -1, - 33, 34, 35, 61, 62, -1, -1, -1, -1, 42, - -1, -1, 45, 81, 82, -1, 84, 50, 51, 52, - -1, 79, -1, 56, 57, 83, -1, 60, 61, 62, - 1, -1, 3, 4, -1, -1, -1, 8, 9, -1, - 11, -1, -1, -1, -1, -1, -1, 80, 81, 82, - -1, 84, -1, -1, -1, -1, -1, -1, 29, -1, - 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, - -1, 42, -1, -1, 45, -1, -1, -1, -1, 50, - 51, 52, -1, -1, -1, 56, 57, -1, -1, 60, - 61, 62, 1, -1, 3, -1, -1, -1, -1, 8, - 9, -1, 11, -1, -1, -1, -1, -1, -1, 80, - 81, 82, -1, 84, -1, -1, -1, -1, -1, -1, - 29, -1, 31, -1, 33, 34, 35, -1, -1, 38, - 1, -1, 3, 42, -1, -1, 45, 8, 9, -1, - 11, 50, 51, 52, -1, -1, -1, 56, 57, -1, - -1, 60, 61, 62, -1, -1, -1, -1, 29, -1, - 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, - -1, 42, 81, 82, 45, 84, -1, -1, -1, 50, - 51, 52, -1, -1, -1, 56, 57, 1, -1, 3, - 61, -1, -1, -1, 8, 9, 1, 11, -1, 4, - 5, 6, 7, -1, -1, -1, -1, 12, 13, 14, - 81, 82, -1, 84, -1, 29, -1, 31, -1, 33, - 34, 35, 27, 28, -1, 30, -1, -1, 42, -1, - -1, 45, -1, 38, -1, -1, 50, 51, 52, -1, - -1, -1, 56, 57, -1, -1, -1, 61, 48, 49, - 50, 51, 52, 53, 54, -1, 61, 62, -1, -1, - 1, -1, -1, 4, 5, 6, 7, 81, 82, -1, - 84, 12, 13, 14, 79, -1, -1, -1, 83, 84, - -1, -1, -1, -1, -1, -1, 27, 28, 1, 30, - -1, 4, 5, 6, 7, -1, -1, 38, 3, 12, - 13, 14, -1, 8, 9, -1, 11, -1, -1, -1, - -1, -1, -1, -1, 27, 28, -1, 30, -1, -1, - 61, 62, -1, -1, 29, 38, 31, -1, 33, 34, - 35, -1, -1, -1, -1, -1, -1, 42, 79, -1, - 45, -1, 83, 84, -1, 50, 51, 52, -1, -1, - -1, 56, 57, 3, -1, -1, 61, -1, 8, 9, - -1, 11, -1, -1, -1, -1, 79, -1, -1, -1, - 83, 84, -1, -1, -1, -1, 81, 82, -1, 29, - 85, 31, -1, 33, 34, 35, -1, -1, -1, -1, - -1, 3, 42, -1, -1, 45, 8, 9, -1, 11, - 50, 51, 52, -1, -1, -1, 56, 57, -1, -1, - -1, 61, -1, -1, -1, -1, -1, 29, -1, 31, - -1, 33, 34, 35, -1, -1, -1, -1, -1, -1, - 42, 81, 82, 45, -1, 85, -1, -1, 50, 51, - 52, -1, -1, -1, 56, 57, 3, -1, -1, 61, - -1, 8, 9, 1, 11, -1, 4, 5, 6, 7, - -1, -1, 10, -1, 12, 13, 14, -1, -1, 81, - 82, -1, 29, 85, 31, -1, 33, 34, 35, -1, - 28, -1, 30, -1, 3, 42, -1, -1, 45, 8, - 9, -1, 11, 50, 51, 52, -1, -1, -1, 56, - 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, - 29, -1, 31, -1, 33, 34, 35, -1, -1, -1, - -1, -1, -1, 42, 81, 82, 45, -1, 85, -1, - 78, 50, 51, 52, -1, -1, -1, 56, 57, 3, - -1, -1, 61, -1, 8, 9, -1, 11, 4, 5, - 6, 7, -1, -1, -1, -1, 12, 13, 14, -1, - -1, -1, 81, 82, -1, 29, 85, 31, -1, 33, - 34, 35, 28, -1, -1, -1, -1, 3, 42, -1, - -1, 45, 8, 9, -1, 11, 50, 51, 52, -1, - -1, -1, 56, 57, -1, -1, -1, 61, -1, -1, - -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, - 10, -1, -1, -1, -1, -1, 42, 81, 82, 45, - -1, 85, -1, 79, 50, 51, 52, -1, -1, -1, - 56, 57, -1, -1, -1, 61, -1, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 81, 82, -1, -1, 85, - 3, 4, 5, 6, 7, 8, 9, -1, 11, 12, - 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, + 27, 28, 29, 30, 31, -1, 33, 34, 35, -1, + -1, -1, -1, -1, -1, 42, -1, -1, 45, -1, + -1, -1, -1, 50, 51, 52, -1, -1, -1, 56, + 57, -1, -1, 1, 61, 3, 4, 5, 6, 7, + -1, -1, 10, -1, 12, 13, 14, -1, -1, -1, + -1, -1, 79, -1, 81, 82, 1, 84, 3, 4, + 28, -1, 30, 8, 9, -1, 11, -1, -1, -1, + 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, -1, 31, -1, 33, 34, + 35, 27, -1, -1, 30, -1, -1, 42, -1, -1, + 45, -1, 38, -1, -1, 50, 51, 52, -1, -1, + 78, 56, 57, -1, -1, -1, 61, 47, 48, 49, + 50, 51, 52, 53, 54, 61, 62, 48, 49, 50, + 51, 52, 53, 54, 79, 80, 81, 82, 1, 84, + 3, 4, -1, 79, -1, 8, 9, 83, 11, -1, + -1, -1, 15, -1, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, -1, 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, -1, 42, -1, -1, 45, -1, -1, -1, -1, 50, 51, 52, -1, -1, -1, 56, 57, -1, -1, -1, 61, 1, -1, -1, 4, -1, 6, 7, -1, -1, -1, -1, 12, 13, 14, -1, -1, -1, 79, -1, 81, 82, - -1, 84, 3, 4, -1, -1, 28, 8, 9, 31, + 1, 84, 3, 4, -1, -1, 28, 8, 9, 31, 11, -1, -1, -1, 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, -1, - 31, -1, 33, 34, 35, -1, -1, 3, -1, -1, + 31, -1, 33, 34, 35, 1, -1, 3, 4, -1, -1, 42, 8, 9, 45, 11, -1, -1, -1, 50, 51, 52, -1, -1, -1, 56, 57, -1, -1, -1, 61, -1, -1, 29, -1, 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, -1, 42, -1, 79, 45, 81, 82, -1, 84, 50, 51, 52, -1, -1, -1, - 56, 57, -1, -1, -1, 61, 3, 4, 5, 6, - 7, 8, 9, -1, 11, 12, 13, 14, -1, -1, - -1, -1, -1, -1, -1, 81, 82, -1, 84, -1, - -1, 28, 29, 30, 31, -1, 33, 34, 35, -1, - -1, -1, -1, -1, -1, 42, -1, -1, 45, -1, - -1, -1, -1, 50, 51, 52, -1, -1, -1, 56, - 57, -1, 3, 4, 61, 6, 7, 8, 9, -1, - 11, 12, 13, 14, 46, 47, 48, 49, 50, 51, - 52, 53, 54, -1, 81, 82, -1, 28, 29, -1, - 31, -1, 33, 34, 35, -1, -1, 3, -1, -1, - -1, 42, 8, 9, 45, 11, -1, -1, -1, 50, - 51, 52, -1, -1, -1, 56, 57, -1, -1, -1, - 61, -1, -1, 29, -1, 31, -1, 33, 34, 35, - -1, -1, -1, -1, -1, -1, 42, -1, -1, 45, - 81, 82, -1, -1, 50, 51, 52, -1, -1, -1, - 56, 57, 3, -1, -1, 61, -1, 8, 9, -1, - 11, 4, 5, 6, 7, -1, -1, -1, -1, 12, - 13, 14, -1, 79, -1, 81, 82, -1, 29, -1, - 31, -1, 33, 34, 35, 28, -1, 3, -1, -1, - -1, 42, 8, 9, 45, 11, -1, -1, -1, 50, + 56, 57, -1, -1, 60, 61, 62, 1, -1, 3, + 4, -1, -1, -1, 8, 9, -1, 11, -1, -1, + -1, -1, -1, -1, 80, 81, 82, -1, 84, -1, + -1, -1, -1, -1, -1, 29, -1, 31, -1, 33, + 34, 35, -1, -1, -1, -1, -1, -1, 42, -1, + -1, 45, -1, -1, -1, -1, 50, 51, 52, -1, + -1, -1, 56, 57, -1, -1, 60, 61, 62, 1, + -1, 3, -1, -1, -1, -1, 8, 9, -1, 11, + -1, -1, -1, -1, -1, -1, 80, 81, 82, -1, + 84, -1, -1, -1, -1, -1, -1, 29, -1, 31, + -1, 33, 34, 35, -1, -1, 38, 1, -1, 3, + 42, -1, -1, 45, 8, 9, -1, 11, 50, 51, + 52, -1, -1, -1, 56, 57, -1, -1, 60, 61, + 62, -1, -1, -1, -1, 29, -1, 31, -1, 33, + 34, 35, -1, -1, -1, -1, -1, -1, 42, 81, + 82, 45, 84, -1, -1, -1, 50, 51, 52, -1, + -1, -1, 56, 57, -1, 1, -1, 61, 4, 5, + 6, 7, -1, -1, -1, -1, 12, 13, 14, -1, + -1, -1, -1, -1, -1, -1, -1, 81, 82, -1, + 84, 27, 28, 1, 30, -1, 4, 5, 6, 7, + -1, -1, 38, 3, 12, 13, 14, -1, 8, 9, + -1, 11, -1, -1, -1, -1, -1, -1, -1, 27, + 28, -1, 30, -1, -1, 61, 62, -1, -1, 29, + 38, 31, -1, 33, 34, 35, -1, -1, -1, -1, + -1, -1, 42, 79, -1, 45, -1, 83, 84, -1, + 50, 51, 52, 61, 62, -1, 56, 57, 3, -1, + -1, 61, -1, 8, 9, -1, 11, -1, -1, -1, + -1, 79, -1, -1, -1, 83, 84, -1, -1, -1, + -1, 81, 82, -1, 29, 85, 31, -1, 33, 34, + 35, -1, -1, -1, -1, -1, 3, 42, -1, -1, + 45, 8, 9, -1, 11, 50, 51, 52, -1, -1, + -1, 56, 57, -1, -1, -1, 61, -1, -1, -1, + -1, -1, 29, -1, 31, -1, 33, 34, 35, -1, + -1, -1, -1, -1, -1, 42, 81, 82, 45, -1, + 85, -1, -1, 50, 51, 52, -1, -1, -1, 56, + 57, 3, -1, -1, 61, -1, 8, 9, -1, 11, + 4, 5, 6, 7, -1, -1, -1, -1, 12, 13, + 14, -1, -1, -1, 81, 82, -1, 29, 85, 31, + -1, 33, 34, 35, 28, -1, 30, -1, -1, 3, + 42, -1, -1, 45, 8, 9, -1, 11, 50, 51, + 52, -1, -1, -1, 56, 57, -1, -1, -1, 61, + -1, -1, -1, -1, -1, 29, -1, 31, -1, 33, + 34, 35, -1, -1, -1, -1, -1, -1, 42, 81, + 82, 45, -1, 85, -1, 79, 50, 51, 52, -1, + -1, -1, 56, 57, 3, -1, -1, 61, -1, 8, + 9, -1, 11, 4, 5, 6, 7, -1, -1, -1, + -1, 12, 13, 14, -1, -1, -1, 81, 82, -1, + 29, 85, 31, -1, 33, 34, 35, 28, -1, 30, + -1, -1, 3, 42, -1, -1, 45, 8, 9, -1, + 11, 50, 51, 52, -1, -1, -1, 56, 57, -1, + -1, -1, 61, -1, -1, -1, -1, -1, 29, -1, + 31, -1, 33, 34, 35, 10, -1, -1, -1, -1, + -1, 42, 81, 82, 45, -1, 85, -1, 79, 50, 51, 52, -1, -1, -1, 56, 57, -1, -1, -1, - 61, -1, -1, 29, -1, 31, -1, 33, 34, 35, - -1, -1, -1, -1, -1, -1, 42, -1, -1, 45, - 81, 82, -1, -1, 50, 51, 52, -1, -1, -1, - 56, 57, 3, -1, -1, 61, -1, 8, 9, 39, - 11, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 81, 82, -1, 29, -1, - 31, -1, 33, 34, 35, -1, -1, 3, -1, -1, - -1, 42, 8, 9, 45, 11, -1, -1, -1, 50, + 61, -1, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 81, 82, -1, -1, 85, 3, 4, 5, 6, 7, + 8, 9, -1, 11, 12, 13, 14, 15, -1, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, -1, 33, 34, 35, -1, -1, + 4, 5, 6, 7, 42, -1, -1, 45, 12, 13, + 14, -1, 50, 51, 52, -1, -1, -1, 56, 57, + -1, -1, -1, 61, 28, 39, 30, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 79, -1, 81, 82, -1, 84, 3, 4, -1, + -1, -1, 8, 9, -1, 11, -1, -1, -1, 15, + -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, -1, 31, -1, 33, 34, 35, + -1, -1, 3, -1, -1, -1, 42, 8, 9, 45, + 11, -1, -1, -1, 50, 51, 52, -1, -1, -1, + 56, 57, -1, -1, -1, 61, -1, -1, 29, -1, + 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, + -1, 42, -1, 79, 45, 81, 82, -1, 84, 50, 51, 52, -1, -1, -1, 56, 57, -1, -1, -1, - 61, -1, -1, 29, -1, 31, -1, 33, 34, 35, - -1, -1, -1, -1, -1, -1, 42, -1, -1, 45, - 81, 82, -1, -1, 50, 51, 52, -1, -1, -1, - 56, 57, -1, -1, 1, 61, 3, 4, 5, 6, - 7, -1, -1, -1, -1, 12, 13, 14, -1, -1, - -1, -1, -1, -1, -1, 81, 82, -1, -1, -1, - 27, 28, -1, 30, 31, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, -1, -1, - -1, -1, 10, -1, -1, 52, -1, -1, -1, -1, - -1, 37, 38, 39, 61, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 37, - 38, 39, 79, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 37, 38, 39, 85, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 30, -1, -1, 85, -1, -1, - -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, + 61, 3, 4, 5, 6, 7, 8, 9, -1, 11, + 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, + 81, 82, -1, 84, -1, -1, 28, 29, 30, 31, + -1, 33, 34, 35, -1, -1, -1, -1, -1, -1, + 42, -1, -1, 45, -1, -1, -1, -1, 50, 51, + 52, -1, -1, -1, 56, 57, -1, 3, 4, 61, + 6, 7, 8, 9, -1, 11, 12, 13, 14, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 81, + 82, -1, 28, 29, -1, 31, -1, 33, 34, 35, + -1, -1, 3, -1, -1, -1, 42, 8, 9, 45, + 11, -1, -1, -1, 50, 51, 52, -1, -1, -1, + 56, 57, -1, -1, -1, 61, -1, -1, 29, -1, + 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, + -1, 42, -1, -1, 45, 81, 82, -1, -1, 50, + 51, 52, -1, -1, -1, 56, 57, 3, -1, -1, + 61, -1, 8, 9, -1, 11, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 79, -1, + 81, 82, -1, 29, -1, 31, -1, 33, 34, 35, + -1, -1, 3, -1, -1, -1, 42, 8, 9, 45, + 11, -1, -1, -1, 50, 51, 52, -1, -1, -1, + 56, 57, -1, -1, -1, 61, -1, -1, 29, -1, + 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, + -1, 42, -1, -1, 45, 81, 82, -1, -1, 50, + 51, 52, -1, -1, -1, 56, 57, 3, -1, -1, + 61, -1, 8, 9, -1, 11, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, - -1, -1, 83, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 37, 38, 39, -1, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 43, + 81, 82, -1, 29, -1, 31, -1, 33, 34, 35, + -1, -1, 3, -1, -1, -1, 42, 8, 9, 45, + 11, -1, -1, -1, 50, 51, 52, -1, -1, -1, + 56, 57, -1, -1, -1, 61, -1, -1, 29, -1, + 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, + -1, 42, -1, -1, 45, 81, 82, -1, -1, 50, + 51, 52, -1, -1, -1, 56, 57, -1, -1, 1, + 61, 3, 4, 5, 6, 7, -1, -1, -1, -1, + 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, + 81, 82, -1, -1, -1, 27, 28, -1, 30, 31, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54 + 54, -1, -1, -1, -1, -1, -1, 10, -1, -1, + 52, -1, -1, -1, -1, -1, 37, 38, 39, 61, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 37, 38, 39, 79, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 37, 38, 39, 85, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 30, + -1, -1, 85, -1, -1, -1, 37, 38, 39, -1, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, -1, -1, -1, 83, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 37, 38, 39, -1, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/cygnus/TBD-TBD/share/bison.simple" @@ -2982,13 +2982,22 @@ case 267: break;} case 268: #line 1411 "c-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids member declarations with no members"); - shadow_tag(yyvsp[0].ttype); - yyval.ttype = NULL_TREE; ; +{ + /* Support for unnamed structs or unions as members of + structs or unions (which is [a] useful and [b] supports + MS P-SDK). */ + if (pedantic) + pedwarn ("ANSI C doesn't support unnamed structs/unions"); + + yyval.ttype = grokfield(yyvsp[-2].filename, yyvsp[-1].lineno, NULL, current_declspecs, NULL_TREE); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-3].itype); + ; break;} case 269: -#line 1416 "c-parse.y" +#line 1425 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; current_declspecs = TREE_VALUE (declspec_stack); prefix_attributes = TREE_PURPOSE (declspec_stack); @@ -2996,144 +3005,144 @@ case 269: resume_momentary (yyvsp[-1].itype); ; break;} case 270: -#line 1422 "c-parse.y" +#line 1431 "c-parse.y" { if (pedantic) pedwarn ("ANSI C forbids member declarations with no members"); shadow_tag(yyvsp[0].ttype); yyval.ttype = NULL_TREE; ; break;} case 271: -#line 1427 "c-parse.y" +#line 1436 "c-parse.y" { yyval.ttype = NULL_TREE; ; break;} case 272: -#line 1429 "c-parse.y" +#line 1438 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; RESTORE_WARN_FLAGS (yyvsp[-1].itype); ; break;} case 274: -#line 1436 "c-parse.y" +#line 1445 "c-parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 275: -#line 1441 "c-parse.y" +#line 1450 "c-parse.y" { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE); decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 276: -#line 1445 "c-parse.y" +#line 1454 "c-parse.y" { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype); decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 277: -#line 1448 "c-parse.y" +#line 1457 "c-parse.y" { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype); decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 279: -#line 1460 "c-parse.y" +#line 1469 "c-parse.y" { if (yyvsp[-2].ttype == error_mark_node) yyval.ttype = yyvsp[-2].ttype; else yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ; break;} case 280: -#line 1465 "c-parse.y" +#line 1474 "c-parse.y" { yyval.ttype = error_mark_node; ; break;} case 281: -#line 1471 "c-parse.y" +#line 1480 "c-parse.y" { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ; break;} case 282: -#line 1473 "c-parse.y" +#line 1482 "c-parse.y" { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 283: -#line 1478 "c-parse.y" +#line 1487 "c-parse.y" { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 284: -#line 1480 "c-parse.y" +#line 1489 "c-parse.y" { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 285: -#line 1485 "c-parse.y" +#line 1494 "c-parse.y" { yyval.ttype = NULL_TREE; ; break;} case 287: -#line 1491 "c-parse.y" +#line 1500 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; break;} case 288: -#line 1493 "c-parse.y" +#line 1502 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 289: -#line 1498 "c-parse.y" +#line 1507 "c-parse.y" { yyval.ttype = NULL_TREE; ; break;} case 290: -#line 1500 "c-parse.y" +#line 1509 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 291: -#line 1505 "c-parse.y" +#line 1514 "c-parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 292: -#line 1508 "c-parse.y" +#line 1517 "c-parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 293: -#line 1510 "c-parse.y" +#line 1519 "c-parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 294: -#line 1512 "c-parse.y" +#line 1521 "c-parse.y" { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 295: -#line 1514 "c-parse.y" +#line 1523 "c-parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 296: -#line 1516 "c-parse.y" +#line 1525 "c-parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; break;} case 297: -#line 1518 "c-parse.y" +#line 1527 "c-parse.y" { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; break;} case 298: -#line 1520 "c-parse.y" +#line 1529 "c-parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} case 299: -#line 1522 "c-parse.y" +#line 1531 "c-parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ; break;} case 300: -#line 1526 "c-parse.y" +#line 1535 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 301: -#line 1535 "c-parse.y" +#line 1544 "c-parse.y" { if (pedantic && yyvsp[0].ends_in_label) pedwarn ("ANSI C forbids label at end of compound statement"); ; break;} case 303: -#line 1544 "c-parse.y" +#line 1553 "c-parse.y" { yyval.ends_in_label = yyvsp[0].ends_in_label; ; break;} case 304: -#line 1546 "c-parse.y" +#line 1555 "c-parse.y" { yyval.ends_in_label = 0; ; break;} case 308: -#line 1558 "c-parse.y" +#line 1567 "c-parse.y" { emit_line_note (input_filename, lineno); pushlevel (0); clear_last_expr (); @@ -3142,12 +3151,12 @@ case 308: ; break;} case 310: -#line 1571 "c-parse.y" +#line 1580 "c-parse.y" { if (pedantic) pedwarn ("ANSI C forbids label declarations"); ; break;} case 313: -#line 1582 "c-parse.y" +#line 1591 "c-parse.y" { tree link; for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) { @@ -3158,19 +3167,19 @@ case 313: ; break;} case 314: -#line 1596 "c-parse.y" +#line 1605 "c-parse.y" {; break;} case 316: -#line 1600 "c-parse.y" +#line 1609 "c-parse.y" { compstmt_count++; ; break;} case 317: -#line 1603 "c-parse.y" +#line 1612 "c-parse.y" { yyval.ttype = convert (void_type_node, integer_zero_node); ; break;} case 318: -#line 1605 "c-parse.y" +#line 1614 "c-parse.y" { emit_line_note (input_filename, lineno); expand_end_bindings (getdecls (), 1, 0); yyval.ttype = poplevel (1, 1, 0); @@ -3180,7 +3189,7 @@ case 318: pop_momentary (); ; break;} case 319: -#line 1613 "c-parse.y" +#line 1622 "c-parse.y" { emit_line_note (input_filename, lineno); expand_end_bindings (getdecls (), kept_level_p (), 0); yyval.ttype = poplevel (kept_level_p (), 0, 0); @@ -3190,7 +3199,7 @@ case 319: pop_momentary (); ; break;} case 320: -#line 1621 "c-parse.y" +#line 1630 "c-parse.y" { emit_line_note (input_filename, lineno); expand_end_bindings (getdecls (), kept_level_p (), 0); yyval.ttype = poplevel (kept_level_p (), 0, 0); @@ -3200,7 +3209,7 @@ case 320: pop_momentary (); ; break;} case 321: -#line 1632 "c-parse.y" +#line 1641 "c-parse.y" { if (current_function_decl == 0) { error ("braced-group within expression allowed only inside a function"); @@ -3218,11 +3227,11 @@ case 321: ; break;} case 322: -#line 1649 "c-parse.y" +#line 1658 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 325: -#line 1663 "c-parse.y" +#line 1672 "c-parse.y" { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, compstmt_count); @@ -3232,7 +3241,7 @@ case 325: position_after_white_space (); ; break;} case 326: -#line 1677 "c-parse.y" +#line 1686 "c-parse.y" { stmt_count++; compstmt_count++; emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); @@ -3242,43 +3251,43 @@ case 326: position_after_white_space (); ; break;} case 327: -#line 1685 "c-parse.y" +#line 1694 "c-parse.y" { expand_loop_continue_here (); ; break;} case 328: -#line 1689 "c-parse.y" +#line 1698 "c-parse.y" { yyval.filename = input_filename; ; break;} case 329: -#line 1693 "c-parse.y" +#line 1702 "c-parse.y" { yyval.lineno = lineno; ; break;} case 330: -#line 1698 "c-parse.y" +#line 1707 "c-parse.y" { ; break;} case 331: -#line 1703 "c-parse.y" +#line 1712 "c-parse.y" { ; break;} case 332: -#line 1708 "c-parse.y" +#line 1717 "c-parse.y" { yyval.ends_in_label = yyvsp[0].ends_in_label; ; break;} case 333: -#line 1713 "c-parse.y" +#line 1722 "c-parse.y" { yyval.ends_in_label = 0; ; break;} case 334: -#line 1715 "c-parse.y" +#line 1724 "c-parse.y" { yyval.ends_in_label = 1; ; break;} case 335: -#line 1721 "c-parse.y" +#line 1730 "c-parse.y" { stmt_count++; ; break;} case 337: -#line 1724 "c-parse.y" +#line 1733 "c-parse.y" { stmt_count++; emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); /* It appears that this should not be done--that a non-lvalue array @@ -3297,19 +3306,19 @@ case 337: clear_momentary (); ; break;} case 338: -#line 1741 "c-parse.y" +#line 1750 "c-parse.y" { c_expand_start_else (); yyvsp[-1].itype = stmt_count; position_after_white_space (); ; break;} case 339: -#line 1745 "c-parse.y" +#line 1754 "c-parse.y" { c_expand_end_cond (); if (extra_warnings && stmt_count == yyvsp[-3].itype) warning ("empty body in an else-statement"); ; break;} case 340: -#line 1749 "c-parse.y" +#line 1758 "c-parse.y" { c_expand_end_cond (); /* This warning is here instead of in simple_if, because we do not want a warning if an empty if is followed by an @@ -3320,11 +3329,11 @@ case 340: "empty body in an if-statement"); ; break;} case 341: -#line 1761 "c-parse.y" +#line 1770 "c-parse.y" { c_expand_end_cond (); ; break;} case 342: -#line 1763 "c-parse.y" +#line 1772 "c-parse.y" { stmt_count++; emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); /* The emit_nop used to come before emit_line_note, @@ -3336,7 +3345,7 @@ case 342: emit_nop (); ; break;} case 343: -#line 1773 "c-parse.y" +#line 1782 "c-parse.y" { /* Don't start the loop till we have succeeded in parsing the end test. This is to make sure that we end every loop we start. */ @@ -3347,11 +3356,11 @@ case 343: position_after_white_space (); ; break;} case 344: -#line 1782 "c-parse.y" +#line 1791 "c-parse.y" { expand_end_loop (); ; break;} case 345: -#line 1785 "c-parse.y" +#line 1794 "c-parse.y" { emit_line_note (input_filename, lineno); expand_exit_loop_if_false (NULL_PTR, truthvalue_conversion (yyvsp[-2].ttype)); @@ -3359,12 +3368,12 @@ case 345: clear_momentary (); ; break;} case 346: -#line 1792 "c-parse.y" +#line 1801 "c-parse.y" { expand_end_loop (); clear_momentary (); ; break;} case 347: -#line 1796 "c-parse.y" +#line 1805 "c-parse.y" { stmt_count++; emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); /* See comment in `while' alternative, above. */ @@ -3377,12 +3386,12 @@ case 347: ; break;} case 348: -#line 1808 "c-parse.y" +#line 1817 "c-parse.y" { yyvsp[0].lineno = lineno; yyval.filename = input_filename; ; break;} case 349: -#line 1811 "c-parse.y" +#line 1820 "c-parse.y" { /* Start the loop. Doing this after parsing all the expressions ensures we will end the loop. */ @@ -3400,7 +3409,7 @@ case 349: position_after_white_space (); ; break;} case 350: -#line 1827 "c-parse.y" +#line 1836 "c-parse.y" { /* Emit the increment expression, with a line number. */ emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno); expand_loop_continue_here (); @@ -3413,7 +3422,7 @@ case 350: expand_end_loop (); ; break;} case 351: -#line 1838 "c-parse.y" +#line 1847 "c-parse.y" { stmt_count++; emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); c_expand_start_case (yyvsp[-1].ttype); @@ -3423,7 +3432,7 @@ case 351: position_after_white_space (); ; break;} case 352: -#line 1846 "c-parse.y" +#line 1855 "c-parse.y" { expand_end_case (yyvsp[-3].ttype); if (yychar == CONSTANT || yychar == STRING) pop_momentary_nofree (); @@ -3431,33 +3440,33 @@ case 352: pop_momentary (); ; break;} case 353: -#line 1852 "c-parse.y" +#line 1861 "c-parse.y" { stmt_count++; emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); if ( ! expand_exit_something ()) error ("break statement not within loop or switch"); ; break;} case 354: -#line 1857 "c-parse.y" +#line 1866 "c-parse.y" { stmt_count++; emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); if (! expand_continue_loop (NULL_PTR)) error ("continue statement not within a loop"); ; break;} case 355: -#line 1862 "c-parse.y" +#line 1871 "c-parse.y" { stmt_count++; emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); c_expand_return (NULL_TREE); ; break;} case 356: -#line 1866 "c-parse.y" +#line 1875 "c-parse.y" { stmt_count++; emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); c_expand_return (yyvsp[-1].ttype); ; break;} case 357: -#line 1870 "c-parse.y" +#line 1879 "c-parse.y" { stmt_count++; emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno); STRIP_NOPS (yyvsp[-2].ttype); @@ -3469,7 +3478,7 @@ case 357: error ("argument of `asm' is not a constant string"); ; break;} case 358: -#line 1881 "c-parse.y" +#line 1890 "c-parse.y" { stmt_count++; emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno); c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, @@ -3477,7 +3486,7 @@ case 358: input_filename, lineno); ; break;} case 359: -#line 1888 "c-parse.y" +#line 1897 "c-parse.y" { stmt_count++; emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno); c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, @@ -3485,7 +3494,7 @@ case 359: input_filename, lineno); ; break;} case 360: -#line 1896 "c-parse.y" +#line 1905 "c-parse.y" { stmt_count++; emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno); c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, @@ -3493,7 +3502,7 @@ case 360: input_filename, lineno); ; break;} case 361: -#line 1902 "c-parse.y" +#line 1911 "c-parse.y" { tree decl; stmt_count++; emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); @@ -3506,7 +3515,7 @@ case 361: ; break;} case 362: -#line 1913 "c-parse.y" +#line 1922 "c-parse.y" { if (pedantic) pedwarn ("ANSI C forbids `goto *expr;'"); stmt_count++; @@ -3514,7 +3523,7 @@ case 362: expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ; break;} case 365: -#line 1928 "c-parse.y" +#line 1937 "c-parse.y" { /* The value returned by this action is */ /* 1 if everything is OK */ @@ -3537,14 +3546,14 @@ case 365: ; break;} case 366: -#line 1949 "c-parse.y" +#line 1958 "c-parse.y" { if (yyvsp[-1].itype) iterator_for_loop_end (yyvsp[-3].ttype); ; break;} case 367: -#line 1984 "c-parse.y" +#line 1993 "c-parse.y" { register tree value = check_case_value (yyvsp[-1].ttype); register tree label = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE); @@ -3577,7 +3586,7 @@ case 367: position_after_white_space (); ; break;} case 368: -#line 2015 "c-parse.y" +#line 2024 "c-parse.y" { register tree value1 = check_case_value (yyvsp[-3].ttype); register tree value2 = check_case_value (yyvsp[-1].ttype); register tree label @@ -3610,7 +3619,7 @@ case 368: position_after_white_space (); ; break;} case 369: -#line 2046 "c-parse.y" +#line 2055 "c-parse.y" { tree duplicate; register tree label @@ -3627,7 +3636,7 @@ case 369: position_after_white_space (); ; break;} case 370: -#line 2061 "c-parse.y" +#line 2070 "c-parse.y" { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype); stmt_count++; emit_nop (); @@ -3639,52 +3648,52 @@ case 370: position_after_white_space (); ; break;} case 371: -#line 2076 "c-parse.y" +#line 2085 "c-parse.y" { emit_line_note (input_filename, lineno); yyval.ttype = NULL_TREE; ; break;} case 372: -#line 2079 "c-parse.y" +#line 2088 "c-parse.y" { emit_line_note (input_filename, lineno); ; break;} case 373: -#line 2084 "c-parse.y" +#line 2093 "c-parse.y" { yyval.ttype = NULL_TREE; ; break;} case 375: -#line 2091 "c-parse.y" +#line 2100 "c-parse.y" { yyval.ttype = NULL_TREE; ; break;} case 378: -#line 2098 "c-parse.y" +#line 2107 "c-parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 379: -#line 2103 "c-parse.y" +#line 2112 "c-parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 380: -#line 2108 "c-parse.y" +#line 2117 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ; break;} case 381: -#line 2110 "c-parse.y" +#line 2119 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; break;} case 382: -#line 2116 "c-parse.y" +#line 2125 "c-parse.y" { pushlevel (0); clear_parm_order (); declare_parm_level (0); ; break;} case 383: -#line 2120 "c-parse.y" +#line 2129 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; parmlist_tags_warning (); poplevel (0, 0, 0); ; break;} case 385: -#line 2128 "c-parse.y" +#line 2137 "c-parse.y" { tree parm; if (pedantic) pedwarn ("ANSI C forbids forward parameter declarations"); @@ -3694,19 +3703,19 @@ case 385: clear_parm_order (); ; break;} case 386: -#line 2136 "c-parse.y" +#line 2145 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 387: -#line 2138 "c-parse.y" +#line 2147 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ; break;} case 388: -#line 2144 "c-parse.y" +#line 2153 "c-parse.y" { yyval.ttype = get_parm_info (0); ; break;} case 389: -#line 2146 "c-parse.y" +#line 2155 "c-parse.y" { yyval.ttype = get_parm_info (0); /* Gcc used to allow this as an extension. However, it does not work for all targets, and thus has been disabled. @@ -3718,23 +3727,23 @@ case 389: ; break;} case 390: -#line 2156 "c-parse.y" +#line 2165 "c-parse.y" { yyval.ttype = get_parm_info (1); ; break;} case 391: -#line 2158 "c-parse.y" +#line 2167 "c-parse.y" { yyval.ttype = get_parm_info (0); ; break;} case 392: -#line 2163 "c-parse.y" +#line 2172 "c-parse.y" { push_parm_decl (yyvsp[0].ttype); ; break;} case 393: -#line 2165 "c-parse.y" +#line 2174 "c-parse.y" { push_parm_decl (yyvsp[0].ttype); ; break;} case 394: -#line 2172 "c-parse.y" +#line 2181 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), build_tree_list (prefix_attributes, @@ -3745,7 +3754,7 @@ case 394: resume_momentary (yyvsp[-2].itype); ; break;} case 395: -#line 2181 "c-parse.y" +#line 2190 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), build_tree_list (prefix_attributes, @@ -3756,7 +3765,7 @@ case 395: resume_momentary (yyvsp[-2].itype); ; break;} case 396: -#line 2190 "c-parse.y" +#line 2199 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), build_tree_list (prefix_attributes, @@ -3767,7 +3776,7 @@ case 396: resume_momentary (yyvsp[-2].itype); ; break;} case 397: -#line 2199 "c-parse.y" +#line 2208 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), build_tree_list (prefix_attributes, @@ -3778,7 +3787,7 @@ case 397: resume_momentary (yyvsp[-2].itype); ; break;} case 398: -#line 2209 "c-parse.y" +#line 2218 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), build_tree_list (prefix_attributes, @@ -3789,19 +3798,19 @@ case 398: resume_momentary (yyvsp[-2].itype); ; break;} case 399: -#line 2223 "c-parse.y" +#line 2232 "c-parse.y" { pushlevel (0); clear_parm_order (); declare_parm_level (1); ; break;} case 400: -#line 2227 "c-parse.y" +#line 2236 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; parmlist_tags_warning (); poplevel (0, 0, 0); ; break;} case 402: -#line 2235 "c-parse.y" +#line 2244 "c-parse.y" { tree t; for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t)) if (TREE_VALUE (t) == NULL_TREE) @@ -3809,23 +3818,23 @@ case 402: yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ; break;} case 403: -#line 2245 "c-parse.y" +#line 2254 "c-parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 404: -#line 2247 "c-parse.y" +#line 2256 "c-parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 405: -#line 2253 "c-parse.y" +#line 2262 "c-parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 406: -#line 2255 "c-parse.y" +#line 2264 "c-parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 407: -#line 2260 "c-parse.y" +#line 2269 "c-parse.y" { yyval.itype = SAVE_WARN_FLAGS(); pedantic = 0; warn_pointer_arith = 0; ; @@ -4028,5 +4037,5 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 2265 "c-parse.y" +#line 2274 "c-parse.y" diff --git a/gcc/c-parse.in b/gcc/c-parse.in index 92b50cc..3259eca 100644 --- a/gcc/c-parse.in +++ b/gcc/c-parse.in @@ -28,10 +28,10 @@ Boston, MA 02111-1307, USA. */ written by AT&T, but I have never seen it. */ ifobjc -%expect 73 +%expect 74 end ifobjc ifc -%expect 52 +%expect 53 end ifc %{ @@ -1598,12 +1598,21 @@ component_decl: prefix_attributes = TREE_PURPOSE (declspec_stack); declspec_stack = TREE_CHAIN (declspec_stack); resume_momentary ($2); } - | typed_typespecs - { if (pedantic) - pedwarn ("ANSI C forbids member declarations with no members"); - shadow_tag($1); - $$ = NULL_TREE; } - | nonempty_type_quals setspecs components + | typed_typespecs setspecs save_filename save_lineno maybe_attribute + { + /* Support for unnamed structs or unions as members of + structs or unions (which is [a] useful and [b] supports + MS P-SDK). */ + if (pedantic) + pedwarn ("ANSI C doesn't support unnamed structs/unions"); + + $$ = grokfield($3, $4, NULL, current_declspecs, NULL_TREE); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary ($2); + } + | nonempty_type_quals setspecs components { $$ = $3; current_declspecs = TREE_VALUE (declspec_stack); prefix_attributes = TREE_PURPOSE (declspec_stack); diff --git a/gcc/c-parse.y b/gcc/c-parse.y index 7d4e2c6..f9092d7 100644 --- a/gcc/c-parse.y +++ b/gcc/c-parse.y @@ -28,7 +28,7 @@ Boston, MA 02111-1307, USA. */ /* To whomever it may concern: I have heard that such a thing was once written by AT&T, but I have never seen it. */ -%expect 52 +%expect 53 %{ #include "config.h" @@ -1407,12 +1407,21 @@ component_decl: prefix_attributes = TREE_PURPOSE (declspec_stack); declspec_stack = TREE_CHAIN (declspec_stack); resume_momentary ($2); } - | typed_typespecs - { if (pedantic) - pedwarn ("ANSI C forbids member declarations with no members"); - shadow_tag($1); - $$ = NULL_TREE; } - | nonempty_type_quals setspecs components + | typed_typespecs setspecs save_filename save_lineno maybe_attribute + { + /* Support for unnamed structs or unions as members of + structs or unions (which is [a] useful and [b] supports + MS P-SDK). */ + if (pedantic) + pedwarn ("ANSI C doesn't support unnamed structs/unions"); + + $$ = grokfield($3, $4, NULL, current_declspecs, NULL_TREE); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary ($2); + } + | nonempty_type_quals setspecs components { $$ = $3; current_declspecs = TREE_VALUE (declspec_stack); prefix_attributes = TREE_PURPOSE (declspec_stack); diff --git a/gcc/objc/objc-parse.c b/gcc/objc/objc-parse.c index f414ae6..0a9eb50 100644 --- a/gcc/objc/objc-parse.c +++ b/gcc/objc/objc-parse.c @@ -167,7 +167,7 @@ c_parse_init () -#define YYFINAL 965 +#define YYFINAL 969 #define YYFLAG -32768 #define YYNTBASE 86 @@ -237,36 +237,36 @@ static const short yyprhs[] = { 0, 732, 734, 738, 742, 746, 751, 755, 759, 761, 763, 766, 768, 771, 773, 776, 777, 785, 791, 794, 795, 803, 809, 812, 813, 822, 823, 831, 834, 835, 837, - 838, 840, 842, 845, 846, 850, 853, 858, 862, 864, - 868, 870, 872, 875, 877, 881, 886, 893, 899, 901, - 905, 907, 909, 913, 916, 919, 920, 922, 924, 927, - 928, 931, 935, 939, 942, 946, 951, 955, 958, 962, - 965, 969, 971, 973, 976, 979, 980, 982, 985, 986, - 987, 989, 991, 994, 998, 1000, 1003, 1005, 1007, 1013, - 1018, 1023, 1026, 1029, 1032, 1035, 1040, 1041, 1046, 1047, - 1048, 1052, 1057, 1061, 1063, 1065, 1067, 1069, 1072, 1073, - 1078, 1080, 1084, 1085, 1086, 1094, 1100, 1103, 1104, 1105, - 1106, 1119, 1120, 1127, 1130, 1133, 1136, 1140, 1147, 1156, - 1167, 1180, 1184, 1189, 1191, 1193, 1194, 1201, 1205, 1211, - 1214, 1218, 1219, 1221, 1222, 1224, 1225, 1227, 1229, 1233, - 1238, 1240, 1244, 1245, 1248, 1251, 1252, 1257, 1260, 1261, - 1263, 1265, 1269, 1271, 1275, 1280, 1285, 1290, 1295, 1300, - 1301, 1304, 1306, 1309, 1311, 1315, 1317, 1321, 1323, 1325, - 1327, 1329, 1331, 1333, 1335, 1337, 1341, 1345, 1350, 1351, - 1352, 1363, 1364, 1371, 1372, 1373, 1386, 1387, 1396, 1397, - 1404, 1407, 1408, 1417, 1422, 1423, 1433, 1439, 1440, 1447, - 1448, 1450, 1454, 1458, 1460, 1462, 1464, 1466, 1467, 1471, - 1474, 1478, 1482, 1484, 1485, 1487, 1491, 1493, 1497, 1500, - 1501, 1502, 1503, 1511, 1512, 1513, 1514, 1522, 1523, 1524, - 1527, 1529, 1531, 1534, 1535, 1539, 1541, 1543, 1544, 1545, - 1551, 1552, 1553, 1559, 1564, 1566, 1572, 1575, 1576, 1579, - 1580, 1582, 1584, 1586, 1589, 1592, 1597, 1600, 1603, 1605, - 1609, 1612, 1615, 1618, 1619, 1622, 1623, 1627, 1629, 1631, - 1634, 1636, 1638, 1640, 1642, 1644, 1646, 1648, 1650, 1652, - 1654, 1656, 1658, 1660, 1662, 1664, 1666, 1668, 1670, 1672, - 1674, 1676, 1678, 1680, 1682, 1684, 1691, 1695, 1701, 1704, - 1706, 1708, 1710, 1713, 1715, 1719, 1722, 1724, 1726, 1727, - 1728, 1735, 1737, 1739, 1741, 1744, 1747, 1749, 1754, 1759 + 838, 840, 842, 845, 846, 850, 853, 858, 862, 868, + 872, 874, 876, 879, 881, 885, 890, 897, 903, 905, + 909, 911, 913, 917, 920, 923, 924, 926, 928, 931, + 932, 935, 939, 943, 946, 950, 955, 959, 962, 966, + 969, 973, 975, 977, 980, 983, 984, 986, 989, 990, + 991, 993, 995, 998, 1002, 1004, 1007, 1009, 1011, 1017, + 1022, 1027, 1030, 1033, 1036, 1039, 1044, 1045, 1050, 1051, + 1052, 1056, 1061, 1065, 1067, 1069, 1071, 1073, 1076, 1077, + 1082, 1084, 1088, 1089, 1090, 1098, 1104, 1107, 1108, 1109, + 1110, 1123, 1124, 1131, 1134, 1137, 1140, 1144, 1151, 1160, + 1171, 1184, 1188, 1193, 1195, 1197, 1198, 1205, 1209, 1215, + 1218, 1222, 1223, 1225, 1226, 1228, 1229, 1231, 1233, 1237, + 1242, 1244, 1248, 1249, 1252, 1255, 1256, 1261, 1264, 1265, + 1267, 1269, 1273, 1275, 1279, 1284, 1289, 1294, 1299, 1304, + 1305, 1308, 1310, 1313, 1315, 1319, 1321, 1325, 1327, 1329, + 1331, 1333, 1335, 1337, 1339, 1341, 1345, 1349, 1354, 1355, + 1356, 1367, 1368, 1375, 1376, 1377, 1390, 1391, 1400, 1401, + 1408, 1411, 1412, 1421, 1426, 1427, 1437, 1443, 1444, 1451, + 1452, 1454, 1458, 1462, 1464, 1466, 1468, 1470, 1471, 1475, + 1478, 1482, 1486, 1488, 1489, 1491, 1495, 1497, 1501, 1504, + 1505, 1506, 1507, 1515, 1516, 1517, 1518, 1526, 1527, 1528, + 1531, 1533, 1535, 1538, 1539, 1543, 1545, 1547, 1548, 1549, + 1555, 1556, 1557, 1563, 1568, 1570, 1576, 1579, 1580, 1583, + 1584, 1586, 1588, 1590, 1593, 1596, 1601, 1604, 1607, 1609, + 1613, 1616, 1619, 1622, 1623, 1626, 1627, 1631, 1633, 1635, + 1638, 1640, 1642, 1644, 1646, 1648, 1650, 1652, 1654, 1656, + 1658, 1660, 1662, 1664, 1666, 1668, 1670, 1672, 1674, 1676, + 1678, 1680, 1682, 1684, 1686, 1688, 1695, 1699, 1705, 1708, + 1710, 1712, 1714, 1717, 1719, 1723, 1726, 1728, 1730, 1731, + 1732, 1739, 1741, 1743, 1745, 1748, 1751, 1753, 1758, 1763 }; static const short yyrhs[] = { -1, @@ -356,97 +356,97 @@ static const short yyrhs[] = { -1, 172, 99, 0, 0, 83, 0, 0, 83, 0, 181, 0, 181, 182, 0, 0, 181, 182, 79, 0, 181, 79, 0, 67, 61, 69, 78, 0, 133, 124, 183, - 0, 133, 0, 189, 124, 183, 0, 189, 0, 1, - 0, 244, 182, 0, 184, 0, 183, 83, 184, 0, - 209, 210, 166, 144, 0, 209, 210, 166, 40, 109, - 144, 0, 209, 210, 40, 109, 144, 0, 186, 0, - 185, 83, 186, 0, 1, 0, 99, 0, 99, 38, - 109, 0, 133, 188, 0, 189, 188, 0, 0, 191, - 0, 7, 0, 189, 7, 0, 0, 190, 7, 0, - 61, 191, 78, 0, 52, 190, 191, 0, 52, 190, - 0, 191, 61, 232, 0, 191, 62, 101, 85, 0, - 191, 62, 85, 0, 61, 232, 0, 62, 101, 85, - 0, 62, 85, 0, 145, 125, 191, 0, 193, 0, - 212, 0, 193, 212, 0, 193, 195, 0, 0, 192, - 0, 1, 79, 0, 0, 0, 198, 0, 199, 0, - 198, 199, 0, 32, 243, 79, 0, 204, 0, 1, - 204, 0, 84, 0, 80, 0, 196, 197, 123, 194, - 80, 0, 196, 197, 1, 80, 0, 196, 197, 192, - 80, 0, 61, 84, 0, 201, 202, 0, 206, 211, - 0, 206, 1, 0, 15, 61, 101, 78, 0, 0, - 18, 208, 211, 17, 0, 0, 0, 209, 210, 214, - 0, 209, 210, 225, 211, 0, 209, 210, 213, 0, - 214, 0, 225, 0, 204, 0, 222, 0, 101, 79, - 0, 0, 205, 16, 215, 211, 0, 205, 0, 205, - 16, 1, 0, 0, 0, 17, 216, 61, 101, 78, - 217, 211, 0, 207, 61, 101, 78, 79, 0, 207, - 1, 0, 0, 0, 0, 19, 61, 227, 79, 218, - 227, 79, 219, 227, 78, 220, 211, 0, 0, 20, - 61, 101, 78, 221, 211, 0, 23, 79, 0, 24, - 79, 0, 25, 79, 0, 25, 101, 79, 0, 27, - 226, 61, 101, 78, 79, 0, 27, 226, 61, 101, - 40, 228, 78, 79, 0, 27, 226, 61, 101, 40, - 228, 40, 228, 78, 79, 0, 27, 226, 61, 101, - 40, 228, 40, 228, 40, 231, 78, 79, 0, 26, - 99, 79, 0, 26, 52, 101, 79, 0, 79, 0, - 223, 0, 0, 19, 61, 115, 78, 224, 211, 0, - 21, 109, 40, 0, 21, 109, 10, 109, 40, 0, - 22, 40, 0, 99, 40, 144, 0, 0, 7, 0, - 0, 101, 0, 0, 229, 0, 230, 0, 229, 83, - 230, 0, 9, 61, 101, 78, 0, 116, 0, 231, - 83, 116, 0, 0, 233, 234, 0, 236, 78, 0, - 0, 237, 79, 235, 234, 0, 1, 78, 0, 0, - 10, 0, 237, 0, 237, 83, 10, 0, 238, 0, - 237, 83, 238, 0, 127, 124, 168, 144, 0, 127, - 124, 169, 144, 0, 127, 124, 188, 144, 0, 131, - 124, 169, 144, 0, 131, 124, 188, 144, 0, 0, - 240, 241, 0, 234, 0, 242, 78, 0, 3, 0, - 242, 83, 3, 0, 99, 0, 243, 83, 99, 0, - 31, 0, 249, 0, 247, 0, 248, 0, 259, 0, - 269, 0, 65, 0, 99, 0, 246, 83, 99, 0, - 75, 246, 79, 0, 76, 99, 99, 79, 0, 0, - 0, 63, 99, 261, 84, 250, 263, 80, 251, 276, - 65, 0, 0, 63, 99, 261, 252, 276, 65, 0, - 0, 0, 63, 99, 40, 99, 261, 84, 253, 263, - 80, 254, 276, 65, 0, 0, 63, 99, 40, 99, - 261, 255, 276, 65, 0, 0, 64, 99, 84, 256, - 263, 80, 0, 64, 99, 0, 0, 64, 99, 40, - 99, 84, 257, 263, 80, 0, 64, 99, 40, 99, - 0, 0, 63, 99, 61, 99, 78, 261, 258, 276, - 65, 0, 64, 99, 61, 99, 78, 0, 0, 73, - 99, 261, 260, 276, 65, 0, 0, 262, 0, 47, - 246, 47, 0, 263, 264, 265, 0, 265, 0, 71, - 0, 72, 0, 70, 0, 0, 265, 266, 79, 0, - 265, 79, 0, 133, 124, 267, 0, 189, 124, 267, - 0, 1, 0, 0, 268, 0, 267, 83, 268, 0, - 166, 0, 166, 40, 109, 0, 40, 109, 0, 0, - 0, 0, 50, 270, 286, 271, 287, 272, 200, 0, - 0, 0, 0, 51, 273, 286, 274, 287, 275, 200, - 0, 0, 0, 277, 278, 0, 281, 0, 91, 0, - 278, 281, 0, 0, 278, 279, 91, 0, 79, 0, - 1, 0, 0, 0, 50, 282, 286, 283, 280, 0, - 0, 0, 51, 284, 286, 285, 280, 0, 61, 187, - 78, 295, 0, 295, 0, 61, 187, 78, 296, 293, - 0, 296, 293, 0, 0, 79, 288, 0, 0, 289, - 0, 290, 0, 195, 0, 289, 290, 0, 290, 195, - 0, 127, 124, 291, 79, 0, 127, 79, 0, 131, - 79, 0, 292, 0, 291, 83, 292, 0, 168, 144, - 0, 169, 144, 0, 188, 144, 0, 0, 83, 10, - 0, 0, 83, 294, 236, 0, 297, 0, 299, 0, - 296, 299, 0, 3, 0, 4, 0, 74, 0, 298, - 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, - 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, - 0, 22, 0, 23, 0, 24, 0, 25, 0, 26, - 0, 27, 0, 11, 0, 28, 0, 29, 0, 6, - 0, 7, 0, 297, 40, 61, 187, 78, 99, 0, - 297, 40, 99, 0, 40, 61, 187, 78, 99, 0, - 40, 99, 0, 297, 0, 301, 0, 303, 0, 301, - 303, 0, 103, 0, 297, 40, 302, 0, 40, 302, - 0, 101, 0, 69, 0, 0, 0, 62, 306, 304, - 307, 300, 85, 0, 297, 0, 309, 0, 310, 0, - 309, 310, 0, 297, 40, 0, 40, 0, 66, 61, - 308, 78, 0, 73, 61, 99, 78, 0, 68, 61, - 187, 78, 0 + 0, 133, 124, 209, 210, 144, 0, 189, 124, 183, + 0, 189, 0, 1, 0, 244, 182, 0, 184, 0, + 183, 83, 184, 0, 209, 210, 166, 144, 0, 209, + 210, 166, 40, 109, 144, 0, 209, 210, 40, 109, + 144, 0, 186, 0, 185, 83, 186, 0, 1, 0, + 99, 0, 99, 38, 109, 0, 133, 188, 0, 189, + 188, 0, 0, 191, 0, 7, 0, 189, 7, 0, + 0, 190, 7, 0, 61, 191, 78, 0, 52, 190, + 191, 0, 52, 190, 0, 191, 61, 232, 0, 191, + 62, 101, 85, 0, 191, 62, 85, 0, 61, 232, + 0, 62, 101, 85, 0, 62, 85, 0, 145, 125, + 191, 0, 193, 0, 212, 0, 193, 212, 0, 193, + 195, 0, 0, 192, 0, 1, 79, 0, 0, 0, + 198, 0, 199, 0, 198, 199, 0, 32, 243, 79, + 0, 204, 0, 1, 204, 0, 84, 0, 80, 0, + 196, 197, 123, 194, 80, 0, 196, 197, 1, 80, + 0, 196, 197, 192, 80, 0, 61, 84, 0, 201, + 202, 0, 206, 211, 0, 206, 1, 0, 15, 61, + 101, 78, 0, 0, 18, 208, 211, 17, 0, 0, + 0, 209, 210, 214, 0, 209, 210, 225, 211, 0, + 209, 210, 213, 0, 214, 0, 225, 0, 204, 0, + 222, 0, 101, 79, 0, 0, 205, 16, 215, 211, + 0, 205, 0, 205, 16, 1, 0, 0, 0, 17, + 216, 61, 101, 78, 217, 211, 0, 207, 61, 101, + 78, 79, 0, 207, 1, 0, 0, 0, 0, 19, + 61, 227, 79, 218, 227, 79, 219, 227, 78, 220, + 211, 0, 0, 20, 61, 101, 78, 221, 211, 0, + 23, 79, 0, 24, 79, 0, 25, 79, 0, 25, + 101, 79, 0, 27, 226, 61, 101, 78, 79, 0, + 27, 226, 61, 101, 40, 228, 78, 79, 0, 27, + 226, 61, 101, 40, 228, 40, 228, 78, 79, 0, + 27, 226, 61, 101, 40, 228, 40, 228, 40, 231, + 78, 79, 0, 26, 99, 79, 0, 26, 52, 101, + 79, 0, 79, 0, 223, 0, 0, 19, 61, 115, + 78, 224, 211, 0, 21, 109, 40, 0, 21, 109, + 10, 109, 40, 0, 22, 40, 0, 99, 40, 144, + 0, 0, 7, 0, 0, 101, 0, 0, 229, 0, + 230, 0, 229, 83, 230, 0, 9, 61, 101, 78, + 0, 116, 0, 231, 83, 116, 0, 0, 233, 234, + 0, 236, 78, 0, 0, 237, 79, 235, 234, 0, + 1, 78, 0, 0, 10, 0, 237, 0, 237, 83, + 10, 0, 238, 0, 237, 83, 238, 0, 127, 124, + 168, 144, 0, 127, 124, 169, 144, 0, 127, 124, + 188, 144, 0, 131, 124, 169, 144, 0, 131, 124, + 188, 144, 0, 0, 240, 241, 0, 234, 0, 242, + 78, 0, 3, 0, 242, 83, 3, 0, 99, 0, + 243, 83, 99, 0, 31, 0, 249, 0, 247, 0, + 248, 0, 259, 0, 269, 0, 65, 0, 99, 0, + 246, 83, 99, 0, 75, 246, 79, 0, 76, 99, + 99, 79, 0, 0, 0, 63, 99, 261, 84, 250, + 263, 80, 251, 276, 65, 0, 0, 63, 99, 261, + 252, 276, 65, 0, 0, 0, 63, 99, 40, 99, + 261, 84, 253, 263, 80, 254, 276, 65, 0, 0, + 63, 99, 40, 99, 261, 255, 276, 65, 0, 0, + 64, 99, 84, 256, 263, 80, 0, 64, 99, 0, + 0, 64, 99, 40, 99, 84, 257, 263, 80, 0, + 64, 99, 40, 99, 0, 0, 63, 99, 61, 99, + 78, 261, 258, 276, 65, 0, 64, 99, 61, 99, + 78, 0, 0, 73, 99, 261, 260, 276, 65, 0, + 0, 262, 0, 47, 246, 47, 0, 263, 264, 265, + 0, 265, 0, 71, 0, 72, 0, 70, 0, 0, + 265, 266, 79, 0, 265, 79, 0, 133, 124, 267, + 0, 189, 124, 267, 0, 1, 0, 0, 268, 0, + 267, 83, 268, 0, 166, 0, 166, 40, 109, 0, + 40, 109, 0, 0, 0, 0, 50, 270, 286, 271, + 287, 272, 200, 0, 0, 0, 0, 51, 273, 286, + 274, 287, 275, 200, 0, 0, 0, 277, 278, 0, + 281, 0, 91, 0, 278, 281, 0, 0, 278, 279, + 91, 0, 79, 0, 1, 0, 0, 0, 50, 282, + 286, 283, 280, 0, 0, 0, 51, 284, 286, 285, + 280, 0, 61, 187, 78, 295, 0, 295, 0, 61, + 187, 78, 296, 293, 0, 296, 293, 0, 0, 79, + 288, 0, 0, 289, 0, 290, 0, 195, 0, 289, + 290, 0, 290, 195, 0, 127, 124, 291, 79, 0, + 127, 79, 0, 131, 79, 0, 292, 0, 291, 83, + 292, 0, 168, 144, 0, 169, 144, 0, 188, 144, + 0, 0, 83, 10, 0, 0, 83, 294, 236, 0, + 297, 0, 299, 0, 296, 299, 0, 3, 0, 4, + 0, 74, 0, 298, 0, 12, 0, 13, 0, 14, + 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, + 0, 20, 0, 21, 0, 22, 0, 23, 0, 24, + 0, 25, 0, 26, 0, 27, 0, 11, 0, 28, + 0, 29, 0, 6, 0, 7, 0, 297, 40, 61, + 187, 78, 99, 0, 297, 40, 99, 0, 40, 61, + 187, 78, 99, 0, 40, 99, 0, 297, 0, 301, + 0, 303, 0, 301, 303, 0, 103, 0, 297, 40, + 302, 0, 40, 302, 0, 101, 0, 69, 0, 0, + 0, 62, 306, 304, 307, 300, 85, 0, 297, 0, + 309, 0, 310, 0, 309, 310, 0, 297, 40, 0, + 40, 0, 66, 61, 308, 78, 0, 73, 61, 99, + 78, 0, 68, 61, 187, 78, 0 }; #endif @@ -480,36 +480,36 @@ static const short yyrline[] = { 0, 1391, 1397, 1403, 1405, 1407, 1409, 1416, 1418, 1421, 1424, 1428, 1431, 1435, 1438, 1442, 1447, 1449, 1453, 1455, 1457, 1459, 1463, 1465, 1468, 1471, 1474, 1477, 1481, 1483, 1486, - 1488, 1493, 1496, 1501, 1503, 1505, 1509, 1533, 1540, 1545, - 1551, 1556, 1558, 1563, 1565, 1569, 1573, 1577, 1587, 1589, - 1594, 1599, 1602, 1606, 1609, 1613, 1616, 1619, 1622, 1626, - 1629, 1633, 1637, 1639, 1641, 1643, 1645, 1647, 1649, 1651, - 1655, 1663, 1671, 1673, 1675, 1679, 1681, 1684, 1687, 1700, - 1702, 1707, 1709, 1712, 1726, 1729, 1732, 1734, 1736, 1744, - 1752, 1762, 1780, 1785, 1790, 1793, 1807, 1816, 1820, 1824, - 1828, 1834, 1838, 1843, 1846, 1851, 1854, 1855, 1872, 1877, - 1880, 1892, 1894, 1904, 1914, 1915, 1923, 1926, 1938, 1942, - 1959, 1969, 1978, 1983, 1988, 1993, 1997, 2001, 2012, 2019, - 2026, 2033, 2044, 2050, 2053, 2058, 2081, 2115, 2146, 2177, - 2192, 2206, 2210, 2214, 2217, 2222, 2224, 2227, 2229, 2233, - 2238, 2241, 2247, 2252, 2257, 2259, 2268, 2269, 2275, 2277, - 2287, 2289, 2293, 2296, 2302, 2312, 2321, 2330, 2340, 2354, - 2359, 2364, 2366, 2375, 2378, 2383, 2386, 2390, 2399, 2401, - 2402, 2403, 2404, 2405, 2419, 2422, 2426, 2432, 2438, 2445, - 2450, 2456, 2463, 2469, 2475, 2480, 2486, 2493, 2499, 2505, - 2511, 2519, 2525, 2531, 2539, 2546, 2552, 2561, 2568, 2576, - 2581, 2584, 2594, 2596, 2599, 2601, 2602, 2605, 2610, 2611, - 2628, 2635, 2641, 2645, 2648, 2649, 2652, 2660, 2666, 2675, - 2685, 2692, 2696, 2701, 2710, 2717, 2721, 2731, 2733, 2734, - 2736, 2738, 2739, 2740, 2741, 2743, 2745, 2748, 2756, 2763, - 2763, 2770, 2776, 2778, 2784, 2789, 2794, 2803, 2805, 2811, - 2813, 2816, 2818, 2819, 2820, 2823, 2829, 2831, 2835, 2838, - 2845, 2851, 2856, 2863, 2868, 2873, 2878, 2885, 2889, 2892, - 2898, 2900, 2901, 2902, 2905, 2907, 2908, 2909, 2910, 2911, - 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, - 2922, 2923, 2924, 2925, 2925, 2928, 2934, 2939, 2944, 2950, - 2952, 2955, 2957, 2964, 2976, 2981, 2987, 2989, 2995, 2999, - 3000, 3006, 3008, 3011, 3013, 3019, 3024, 3030, 3037, 3046 + 1488, 1493, 1496, 1501, 1503, 1505, 1509, 1533, 1540, 1554, + 1560, 1565, 1567, 1572, 1574, 1578, 1582, 1586, 1596, 1598, + 1603, 1608, 1611, 1615, 1618, 1622, 1625, 1628, 1631, 1635, + 1638, 1642, 1646, 1648, 1650, 1652, 1654, 1656, 1658, 1660, + 1664, 1672, 1680, 1682, 1684, 1688, 1690, 1693, 1696, 1709, + 1711, 1716, 1718, 1721, 1735, 1738, 1741, 1743, 1745, 1753, + 1761, 1771, 1789, 1794, 1799, 1802, 1816, 1825, 1829, 1833, + 1837, 1843, 1847, 1852, 1855, 1860, 1863, 1864, 1881, 1886, + 1889, 1901, 1903, 1913, 1923, 1924, 1932, 1935, 1947, 1951, + 1968, 1978, 1987, 1992, 1997, 2002, 2006, 2010, 2021, 2028, + 2035, 2042, 2053, 2059, 2062, 2067, 2090, 2124, 2155, 2186, + 2201, 2215, 2219, 2223, 2226, 2231, 2233, 2236, 2238, 2242, + 2247, 2250, 2256, 2261, 2266, 2268, 2277, 2278, 2284, 2286, + 2296, 2298, 2302, 2305, 2311, 2321, 2330, 2339, 2349, 2363, + 2368, 2373, 2375, 2384, 2387, 2392, 2395, 2399, 2408, 2410, + 2411, 2412, 2413, 2414, 2428, 2431, 2435, 2441, 2447, 2454, + 2459, 2465, 2472, 2478, 2484, 2489, 2495, 2502, 2508, 2514, + 2520, 2528, 2534, 2540, 2548, 2555, 2561, 2570, 2577, 2585, + 2590, 2593, 2603, 2605, 2608, 2610, 2611, 2614, 2619, 2620, + 2637, 2644, 2650, 2654, 2657, 2658, 2661, 2669, 2675, 2684, + 2694, 2701, 2705, 2710, 2719, 2726, 2730, 2740, 2742, 2743, + 2745, 2747, 2748, 2749, 2750, 2752, 2754, 2757, 2765, 2772, + 2772, 2779, 2785, 2787, 2793, 2798, 2803, 2812, 2814, 2820, + 2822, 2825, 2827, 2828, 2829, 2832, 2838, 2840, 2844, 2847, + 2854, 2860, 2865, 2872, 2877, 2882, 2887, 2894, 2898, 2901, + 2907, 2909, 2910, 2911, 2914, 2916, 2917, 2918, 2919, 2920, + 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, + 2931, 2932, 2933, 2934, 2934, 2937, 2943, 2948, 2953, 2959, + 2961, 2964, 2966, 2973, 2985, 2990, 2996, 2998, 3004, 3008, + 3009, 3015, 3017, 3020, 3022, 3028, 3033, 3039, 3046, 3055 }; #endif @@ -651,7 +651,7 @@ static const short yyr2[] = { 0, 1, 3, 3, 3, 4, 3, 3, 1, 1, 2, 1, 2, 1, 2, 0, 7, 5, 2, 0, 7, 5, 2, 0, 8, 0, 7, 2, 0, 1, 0, - 1, 1, 2, 0, 3, 2, 4, 3, 1, 3, + 1, 1, 2, 0, 3, 2, 4, 3, 5, 3, 1, 1, 2, 1, 3, 4, 6, 5, 1, 3, 1, 1, 3, 2, 2, 0, 1, 1, 2, 0, 2, 3, 3, 2, 3, 4, 3, 2, 3, 2, @@ -743,835 +743,833 @@ static const short yydefact[] = { 3, 440, 458, 463, 460, 129, 129, 0, 449, 177, 398, 296, 296, 395, 396, 0, 413, 0, 0, 327, 30, 319, 325, 115, 129, 129, 146, 0, 0, 178, 230, - 0, 277, 278, 284, 340, 280, 184, 184, 293, 290, - 184, 0, 0, 0, 0, 550, 0, 551, 552, 84, - 87, 324, 0, 330, 128, 127, 317, 0, 331, 315, - 340, 314, 0, 306, 193, 0, 195, 548, 496, 507, - 296, 508, 504, 505, 473, 0, 477, 458, 0, 479, - 430, 0, 0, 176, 0, 0, 0, 483, 0, 0, - 464, 464, 459, 241, 300, 393, 130, 184, 184, 184, - 300, 130, 184, 184, 0, 402, 404, 415, 326, 333, - 122, 0, 123, 0, 146, 144, 203, 201, 200, 182, - 22, 0, 26, 339, 0, 256, 260, 266, 184, 59, - 216, 90, 0, 213, 0, 215, 0, 268, 206, 212, - 0, 0, 554, 556, 0, 561, 0, 553, 0, 417, - 329, 0, 163, 0, 353, 337, 0, 0, 0, 0, - 0, 0, 0, 0, 382, 450, 450, 374, 0, 0, - 124, 129, 129, 346, 351, 0, 0, 343, 344, 347, - 375, 345, 0, 0, 184, 184, 184, 0, 509, 546, - 0, 438, 0, 479, 489, 492, 485, 443, 0, 467, - 461, 465, 462, 304, 0, 410, 0, 405, 406, 407, - 304, 0, 408, 409, 397, 0, 0, 145, 148, 147, - 0, 179, 285, 0, 184, 264, 219, 0, 210, 65, - 0, 205, 0, 218, 209, 555, 85, 0, 0, 339, - 384, 0, 0, 380, 364, 365, 366, 0, 0, 0, - 383, 0, 184, 348, 135, 0, 136, 0, 0, 335, - 340, 334, 357, 0, 137, 194, 511, 512, 513, 506, - 296, 435, 446, 0, 0, 0, 469, 0, 0, 239, - 240, 236, 238, 0, 120, 121, 0, 184, 0, 286, - 0, 0, 207, 208, 0, 0, 0, 385, 48, 0, - 0, 0, 378, 367, 0, 372, 0, 381, 0, 133, - 220, 0, 134, 223, 352, 339, 0, 0, 510, 479, - 431, 487, 486, 490, 493, 468, 466, 237, 202, 288, - 184, 214, 211, 336, 0, 338, 376, 358, 362, 0, - 373, 0, 131, 0, 132, 0, 350, 341, 339, 0, - 0, 287, 354, 339, 384, 339, 379, 386, 0, 221, - 224, 342, 356, 436, 339, 377, 0, 363, 0, 0, - 387, 388, 368, 0, 0, 355, 359, 0, 386, 0, - 0, 222, 225, 384, 0, 0, 369, 389, 0, 390, - 0, 0, 360, 391, 0, 370, 339, 0, 0, 361, - 371, 392, 0, 0, 0 + 0, 277, 278, 284, 340, 280, 340, 184, 184, 293, + 290, 184, 0, 0, 0, 0, 550, 0, 551, 552, + 84, 87, 324, 0, 330, 128, 127, 317, 0, 331, + 315, 340, 314, 0, 306, 193, 0, 195, 548, 496, + 507, 296, 508, 504, 505, 473, 0, 477, 458, 0, + 479, 430, 0, 0, 176, 0, 0, 0, 483, 0, + 0, 464, 464, 459, 241, 300, 393, 130, 184, 184, + 184, 300, 130, 184, 184, 0, 402, 404, 415, 326, + 333, 122, 0, 123, 0, 146, 144, 203, 201, 200, + 182, 22, 0, 26, 339, 184, 0, 256, 260, 266, + 184, 59, 216, 90, 0, 213, 0, 215, 0, 268, + 206, 212, 0, 0, 554, 556, 0, 561, 0, 553, + 0, 417, 329, 0, 163, 0, 353, 337, 0, 0, + 0, 0, 0, 0, 0, 0, 382, 450, 450, 374, + 0, 0, 124, 129, 129, 346, 351, 0, 0, 343, + 344, 347, 375, 345, 0, 0, 184, 184, 184, 0, + 509, 546, 0, 438, 0, 479, 489, 492, 485, 443, + 0, 467, 461, 465, 462, 304, 0, 410, 0, 405, + 406, 407, 304, 0, 408, 409, 397, 0, 0, 145, + 148, 147, 0, 179, 285, 0, 279, 130, 184, 264, + 219, 0, 210, 65, 0, 205, 0, 218, 209, 555, + 85, 0, 0, 339, 384, 0, 0, 380, 364, 365, + 366, 0, 0, 0, 383, 0, 184, 348, 135, 0, + 136, 0, 0, 335, 340, 334, 357, 0, 137, 194, + 511, 512, 513, 506, 296, 435, 446, 0, 0, 0, + 469, 0, 0, 239, 240, 236, 238, 0, 120, 121, + 0, 184, 0, 286, 0, 0, 207, 208, 0, 0, + 0, 385, 48, 0, 0, 0, 378, 367, 0, 372, + 0, 381, 0, 133, 220, 0, 134, 223, 352, 339, + 0, 0, 510, 479, 431, 487, 486, 490, 493, 468, + 466, 237, 202, 288, 184, 214, 211, 336, 0, 338, + 376, 358, 362, 0, 373, 0, 131, 0, 132, 0, + 350, 341, 339, 0, 0, 287, 354, 339, 384, 339, + 379, 386, 0, 221, 224, 342, 356, 436, 339, 377, + 0, 363, 0, 0, 387, 388, 368, 0, 0, 355, + 359, 0, 386, 0, 0, 222, 225, 384, 0, 0, + 369, 389, 0, 390, 0, 0, 360, 391, 0, 370, + 339, 0, 0, 361, 371, 392, 0, 0, 0 }; -static const short yydefgoto[] = { 963, +static const short yydefgoto[] = { 967, 1, 2, 3, 28, 29, 30, 343, 588, 349, 591, - 200, 460, 695, 123, 236, 404, 125, 126, 127, 128, - 129, 604, 130, 389, 388, 386, 709, 387, 131, 132, - 133, 330, 331, 332, 583, 510, 511, 31, 195, 731, - 450, 91, 584, 676, 451, 34, 142, 286, 35, 218, - 206, 78, 201, 207, 682, 79, 587, 335, 336, 37, - 295, 296, 297, 680, 781, 697, 698, 699, 852, 700, - 788, 701, 702, 870, 904, 934, 873, 906, 935, 322, - 210, 745, 211, 38, 39, 40, 41, 358, 360, 365, - 227, 792, 487, 222, 223, 355, 593, 594, 363, 364, - 144, 747, 145, 191, 285, 512, 513, 618, 333, 276, - 409, 410, 411, 580, 581, 277, 134, 582, 735, 736, - 737, 800, 821, 464, 822, 516, 738, 739, 876, 799, - 925, 915, 944, 957, 916, 740, 741, 914, 742, 812, - 860, 930, 931, 932, 955, 415, 416, 452, 665, 453, + 200, 460, 697, 123, 236, 404, 125, 126, 127, 128, + 129, 605, 130, 389, 388, 386, 711, 387, 131, 132, + 133, 330, 331, 332, 583, 510, 511, 31, 341, 733, + 450, 91, 584, 677, 451, 34, 142, 286, 35, 218, + 206, 78, 201, 207, 683, 79, 587, 335, 336, 37, + 295, 296, 297, 681, 783, 699, 700, 701, 856, 702, + 792, 703, 704, 874, 908, 938, 877, 910, 939, 322, + 210, 747, 211, 38, 39, 40, 41, 358, 360, 365, + 227, 796, 487, 222, 223, 355, 593, 594, 363, 364, + 144, 749, 145, 191, 285, 512, 513, 619, 333, 276, + 409, 410, 411, 580, 581, 277, 134, 582, 737, 738, + 739, 804, 825, 464, 826, 516, 740, 741, 880, 803, + 929, 919, 948, 961, 920, 742, 743, 918, 744, 816, + 864, 934, 935, 936, 959, 415, 416, 452, 666, 453, 454, 455, 325, 326, 456, 457, 508, 135, 43, 64, - 44, 45, 46, 438, 754, 312, 638, 880, 545, 315, - 557, 640, 47, 316, 69, 48, 443, 562, 444, 567, - 761, 762, 49, 65, 302, 539, 66, 308, 543, 439, - 440, 555, 647, 884, 556, 642, 835, 643, 836, 175, - 430, 536, 537, 538, 748, 749, 304, 432, 176, 177, - 178, 179, 180, 607, 608, 704, 609, 372, 136, 238, + 44, 45, 46, 438, 756, 312, 639, 884, 545, 315, + 557, 641, 47, 316, 69, 48, 443, 562, 444, 567, + 763, 764, 49, 65, 302, 539, 66, 308, 543, 439, + 440, 555, 648, 888, 556, 643, 839, 644, 840, 175, + 430, 536, 537, 538, 750, 751, 304, 432, 176, 177, + 178, 179, 180, 608, 609, 706, 610, 372, 136, 238, 492, 375, 376, 377, 137, 138, 139 }; -static const short yypact[] = { 101, - 110, 3362, 3362, 129,-32768,-32768,-32768,-32768, 94, 94, - 94, 134, 169, 178,-32768, 303,-32768,-32768, 303, 303, --32768, 80, 303, 80, 303, 303,-32768,-32768,-32768,-32768, - 112, 177, 2761, 217,-32768, 94,-32768, 82, 133, 239, --32768, 3362,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 94, 94, 94, 2998, 2830, 211,-32768,-32768, --32768,-32768,-32768, 46, 3614, 3614, 210, 51,-32768,-32768, - 80,-32768, 231, 303,-32768,-32768, 112, 336,-32768, 94, - 1979,-32768, 601,-32768, 112, 217,-32768, 94,-32768,-32768, - 677,-32768, 207, 78, 207, 196,-32768, 200,-32768,-32768, --32768,-32768,-32768,-32768, 2998, 2998, 237, 303,-32768,-32768, --32768, 2998,-32768,-32768, 1497,-32768, 261, 272, 299,-32768, --32768,-32768, 2998, 292, 310,-32768, 3054, 3110,-32768, 3935, - 735, 366, 326, 1011, 2998,-32768,-32768,-32768,-32768,-32768, - 340, 497,-32768, 343, 3738, 322,-32768, 303,-32768,-32768, +static const short yypact[] = { 118, + 137, 3350, 3350, 190,-32768,-32768,-32768,-32768, 204, 204, + 204, 104, 161, 189,-32768, 294,-32768,-32768, 294, 294, +-32768, 236, 294, 236, 294, 294,-32768,-32768,-32768,-32768, + 226, 174, 2782, 382,-32768, 204,-32768, 135, 192, 208, +-32768, 3350,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 204, 204, 204, 3019, 2851, 241,-32768,-32768, +-32768,-32768,-32768, 158, 3627, 3627, 346, 123,-32768,-32768, + 236,-32768, 237, 294,-32768,-32768, 226, 249,-32768, 204, + 870,-32768, 416,-32768, 226, 382,-32768, 204,-32768,-32768, + 793,-32768, 238, 242, 238, 258,-32768, 266,-32768,-32768, +-32768,-32768,-32768,-32768, 3019, 3019, 300, 294,-32768,-32768, +-32768, 3019,-32768,-32768, 1277,-32768, 354, 357, 362,-32768, +-32768,-32768, 3019, 330, 371,-32768, 3075, 3131,-32768, 3955, + 1125, 457, 403, 986, 3019,-32768,-32768,-32768,-32768,-32768, + 411, 297,-32768, 413, 3751, 303,-32768, 294,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 278, 3809,-32768,-32768,-32768, 2720, 386,-32768,-32768, --32768, 303, 303, 348, 303, 303,-32768,-32768,-32768, 367, - 460, 47,-32768, 601, 112,-32768, 390,-32768, 2173, 2152, - 94,-32768,-32768, 601,-32768, 345,-32768, 94, 2066, 293, - 306, 383, 2007, 677,-32768,-32768,-32768,-32768, 94,-32768, - 393, 381, 3282,-32768, 411,-32768, 127,-32768,-32768,-32768, - 2998,-32768,-32768, 427,-32768, 432, 448, 2886, 3644, 3809, - 303,-32768, 462, 2998, 1497,-32768, 1497,-32768, 2998, 2998, - 491,-32768,-32768, 2998, 2998, 2998, 2998, 2998, 2998, 2998, - 2998, 2998, 2998, 2998, 2998,-32768,-32768, 303, 303, 2998, - 2998,-32768,-32768, 461,-32768, 518, 479,-32768,-32768,-32768, - 497, 2234, 94,-32768, 377, 753,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 35,-32768, 522,-32768, 3809,-32768, - 490, 510, 583,-32768, 386,-32768, 395, 510, 80, 517, --32768, 535, 529, 523,-32768, 535,-32768,-32768, 306,-32768, --32768, 590, 306, 610,-32768, 1209,-32768, 540, 547,-32768, - 290, 95,-32768,-32768, 589, 94, 328, 171,-32768, 601, - 601,-32768, 2152, 94,-32768, 2295,-32768,-32768, 2152, 560, - 94,-32768,-32768, 414, 554, 801, 3550, 207, 94, 207, --32768, 596, 553,-32768, 127, 3856,-32768,-32768, 2638,-32768, --32768,-32768,-32768, 597, 561, 3644,-32768, 564, 565,-32768, - 3935, 568, 569, 3935, 3935, 2998, 618, 2998, 2998, 845, - 1546, 1152, 1626, 1553, 814, 814, 333, 333,-32768,-32768, --32768,-32768,-32768, 572, 310, 576,-32768, 303, 1246, 518, --32768,-32768, 644, 284,-32768, 3467,-32768, 578, 497,-32768, - 2356,-32768, 753, 587, 322, 3166, 593, 3679, 2094,-32768, --32768, 3392, 3809,-32768,-32768, 584, 80,-32768, 611, 3439, --32768,-32768, 342, 3245, 613, 83, 602,-32768,-32768,-32768, - 3797,-32768, 603, 397,-32768,-32768, 38,-32768,-32768, 65, --32768,-32768,-32768, 2018,-32768, 293,-32768,-32768, 293,-32768, - 650,-32768,-32768, 609,-32768, 621,-32768,-32768,-32768,-32768, --32768, 622,-32768, 623, 2998, 303, 628, 553, 3809,-32768, --32768, 3709,-32768,-32768, 597,-32768,-32768,-32768,-32768,-32768, - 653, 2998, 1054, 1469,-32768,-32768,-32768, 400, 423, 1113, - 632, 637, 908,-32768,-32768,-32768,-32768, 377,-32768,-32768, --32768, 377,-32768,-32768, 616,-32768,-32768, 67, 640, 303, --32768, 2720, 645, 3497,-32768,-32768, 3797, 2114, 65,-32768, - 636, 648, 65,-32768, 535,-32768, 452,-32768,-32768,-32768, --32768, 112, 177, 2761, 236,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 3822, 652,-32768,-32768,-32768, - 608, 216,-32768,-32768, 3750,-32768, 724, 649,-32768,-32768, - 656,-32768,-32768, 659, 541,-32768, 1820, 65,-32768,-32768, - 65,-32768, 646,-32768,-32768, 646, 94, 94, 3935,-32768, - 94, 667, 654, 1579, 2998, 710, 666, 3709,-32768,-32768, - 952,-32768, 303,-32768,-32768,-32768,-32768, 682,-32768,-32768, --32768,-32768, 2500,-32768,-32768, 2998,-32768,-32768,-32768,-32768, - 608,-32768,-32768,-32768,-32768, 303,-32768,-32768, 708, 535, --32768, 3614, 3614, 126, 601, 112, 1908,-32768, 494, 3262, - 413, 413,-32768,-32768,-32768, 216, 94, 167, 259, 94, --32768, 94, 259, 94, 3467,-32768,-32768,-32768,-32768,-32768, --32768, 601,-32768, 112,-32768, 830,-32768,-32768, 3935,-32768, --32768, 1820,-32768,-32768, 456,-32768,-32768,-32768, 94,-32768, --32768, 736, 303,-32768, 737, 3935, 698, 715,-32768,-32768, - 60, 1743, 310,-32768, 2998,-32768, 710,-32768, 2998,-32768, --32768, 2582, 759, 740,-32768,-32768, 742, 743, 2998, 766, - 730, 731, 2942, 201, 809, 159, 212,-32768, 782, 746, --32768, 747, 3525,-32768, 811, 1333, 87,-32768,-32768,-32768, --32768,-32768, 2750, 241, 167, 259, 94, 473,-32768,-32768, - 615,-32768, 763, 535,-32768,-32768,-32768,-32768, 2998, 791, - 749,-32768, 749, 445, 608,-32768, 2417,-32768,-32768,-32768, - 375, 216,-32768,-32768,-32768, 496, 498, 830,-32768,-32768, - 1579,-32768,-32768, 2998, 77,-32768,-32768, 1579,-32768,-32768, - 1661,-32768, 1897,-32768,-32768,-32768, 952, 2998, 777,-32768, - 2998, 2998, 3874,-32768,-32768,-32768,-32768, 760, 2998, 767, --32768, 784, 94,-32768,-32768, 601,-32768, 112, 1415,-32768, --32768,-32768,-32768, 2998,-32768,-32768,-32768,-32768,-32768,-32768, - 608,-32768,-32768, 787, 86, 86, 3935, 2998, 413, 482, - 482,-32768,-32768, 762,-32768,-32768, 778, 3899, 2998,-32768, - 780, 1897,-32768,-32768, 779, 2998, 844,-32768, 794, 783, - 793, 2998,-32768,-32768, 790,-32768, 2998,-32768, 499,-32768, - 454, 507,-32768, 346,-32768,-32768, 2582, 795,-32768, 535, --32768,-32768,-32768,-32768,-32768, 3935,-32768,-32768,-32768,-32768, - 3899,-32768,-32768,-32768, 796,-32768,-32768,-32768,-32768, 3917, --32768, 55,-32768, 2152,-32768, 2152,-32768,-32768,-32768, 798, - 813,-32768,-32768,-32768, 2998,-32768,-32768, 870, 804,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 805,-32768, 825, 63, - 818,-32768,-32768, 649, 649,-32768,-32768, 2998, 870, 823, - 870,-32768,-32768, 2998, 826, 66,-32768,-32768, 832,-32768, - 610, 824,-32768, 366, 270,-32768,-32768, 836, 610,-32768, --32768, 366, 918, 920,-32768 +-32768, 188, 2179,-32768,-32768,-32768, 2741, 458,-32768,-32768, +-32768, 294, 294, 423, 294, 294,-32768,-32768,-32768, 421, + 98, 52,-32768, 416, 226,-32768, 452,-32768, 2194, 498, + 204,-32768,-32768, 416,-32768, 327,-32768, 204, 2082, 317, + 329, 347, 2054, 793,-32768,-32768,-32768,-32768, 204,-32768, + 454, 442, 3270,-32768, 444,-32768, 106,-32768,-32768,-32768, + 3019,-32768,-32768, 464,-32768, 465, 466, 2907, 3657, 2179, + 294,-32768, 455, 3019, 1277,-32768, 1277,-32768, 3019, 3019, + 510,-32768,-32768, 3019, 3019, 3019, 3019, 3019, 3019, 3019, + 3019, 3019, 3019, 3019, 3019,-32768,-32768, 294, 294, 3019, + 3019,-32768,-32768, 473,-32768, 531, 486,-32768,-32768,-32768, + 297, 2255, 204,-32768, 379, 907,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 41,-32768, 515,-32768, 2179,-32768, + 493, 504, 567,-32768, 458,-32768, 353, 504, 236, 513, +-32768, 527, 519, 516,-32768, 527,-32768,-32768, 329,-32768, +-32768, 579, 329, 599,-32768, 3455,-32768, 524, 532,-32768, + 1371, 80,-32768,-32768, 589, 204, 308, 182,-32768, 416, + 416,-32768, 498, 204,-32768, 2316,-32768,-32768, 498, 560, + 204,-32768,-32768,-32768, 551, 3296, 3563, 238, 204, 238, +-32768, 594, 552,-32768, 106, 3876,-32768,-32768, 2659,-32768, +-32768,-32768,-32768, 598, 558, 3657,-32768, 562, 568,-32768, + 3955, 569, 570, 3955, 3955, 3019, 610, 3019, 3019, 1863, + 912, 675, 1126, 1034, 535, 535, 63, 63,-32768,-32768, +-32768,-32768,-32768, 576, 371, 571,-32768, 294, 1191, 531, +-32768,-32768, 409, 185,-32768, 3485,-32768, 575, 297,-32768, + 2377,-32768, 907, 577, 303, 3187, 583, 3692, 2140,-32768, +-32768, 3763, 2179,-32768,-32768, 573, 236,-32768, 601, 3427, +-32768,-32768, 449, 898, 602, 84, 586,-32768,-32768,-32768, + 3829,-32768, 592, 364,-32768,-32768, 211,-32768,-32768, 83, +-32768,-32768,-32768, 2093,-32768, 317,-32768,-32768, 317,-32768, + 634,-32768,-32768, 590,-32768, 600,-32768,-32768,-32768,-32768, +-32768, 604,-32768, 605, 3019, 294, 607, 552, 2179,-32768, +-32768, 3722,-32768,-32768, 598,-32768,-32768,-32768,-32768,-32768, + 639, 3019, 1706, 1787,-32768,-32768,-32768, 435, 372, 1088, + 609, 613, 1408,-32768,-32768,-32768,-32768, 379,-32768,-32768, +-32768, 379,-32768,-32768, 595,-32768,-32768, 246, 617, 294, +-32768, 2741, 624, 3513,-32768,-32768, 3829, 2168, 83,-32768, + 591, 626, 83,-32768, 527,-32768, 476,-32768,-32768,-32768, +-32768, 226, 174, 2782, 399,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 3842, 627,-32768,-32768,-32768, + 471, 93,-32768,-32768, 3817,-32768, 702, 623,-32768,-32768, + 628,-32768,-32768, 632, 3314,-32768, 1895, 83,-32768,-32768, + 83,-32768, 631,-32768,-32768, 631,-32768, 204, 204, 3955, +-32768, 204, 655, 658, 1654, 3019, 701, 659, 3722,-32768, +-32768, 1625,-32768, 294,-32768,-32768,-32768,-32768, 663,-32768, +-32768,-32768,-32768, 2521,-32768,-32768, 3019,-32768,-32768,-32768, +-32768, 471,-32768,-32768,-32768,-32768, 294,-32768,-32768, 680, + 527,-32768, 3627, 3627, 206, 416, 226, 1983,-32768, 489, + 3266, 314, 314,-32768,-32768,-32768, 93, 204, 261, 273, + 204,-32768, 204, 273, 204, 3485,-32768,-32768,-32768,-32768, +-32768,-32768, 416,-32768, 226,-32768, 829,-32768,-32768, 3955, +-32768,-32768, 1895,-32768,-32768, 343, 343,-32768,-32768,-32768, + 204,-32768,-32768, 708, 294,-32768, 711, 3955, 672, 670, +-32768,-32768, 143, 1818, 371,-32768, 3019,-32768, 701,-32768, + 3019,-32768,-32768, 2603, 714, 694,-32768,-32768, 697, 698, + 3019, 721, 684, 685, 2963, 227, 759, 212, 324,-32768, + 727, 692,-32768, 695, 3543,-32768, 757, 1490, 99,-32768, +-32768,-32768,-32768,-32768, 2771, 270, 261, 273, 204, 456, +-32768,-32768, 572,-32768, 712, 527,-32768,-32768,-32768,-32768, + 3019, 738, 699,-32768, 699, 621, 471,-32768, 2438,-32768, +-32768,-32768, 735, 93,-32768,-32768,-32768, 474, 487, 829, +-32768,-32768, 1654,-32768,-32768, 3019,-32768, 73, 184,-32768, +-32768, 1654,-32768,-32768, 1736,-32768, 1972,-32768,-32768,-32768, + 1625, 3019, 719,-32768, 3019, 3019, 3894,-32768,-32768,-32768, +-32768, 705, 3019, 706,-32768, 725, 204,-32768,-32768, 416, +-32768, 226, 1572,-32768,-32768,-32768,-32768, 3019,-32768,-32768, +-32768,-32768,-32768,-32768, 471,-32768,-32768, 723, 77, 77, + 3955, 3019, 314, 397, 397,-32768,-32768, 707,-32768,-32768, + 710, 3919, 3019,-32768, 713, 1972,-32768,-32768, 716, 3019, + 778,-32768, 375, 724, 730, 3019,-32768,-32768, 733,-32768, + 3019,-32768, 522,-32768, 95, 539,-32768, 479,-32768,-32768, + 2603, 731,-32768, 527,-32768,-32768,-32768,-32768,-32768, 3955, +-32768,-32768,-32768,-32768, 3919,-32768,-32768,-32768, 741,-32768, +-32768,-32768,-32768, 3937,-32768, 48,-32768, 498,-32768, 498, +-32768,-32768,-32768, 737, 755,-32768,-32768,-32768, 3019,-32768, +-32768, 812, 743,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 747,-32768, 767, 64, 746,-32768,-32768, 623, 623,-32768, +-32768, 3019, 812, 751, 812,-32768,-32768, 3019, 753, 66, +-32768,-32768, 760,-32768, 599, 765,-32768, 457, 284,-32768, +-32768, 768, 599,-32768,-32768, 457, 839, 862,-32768 }; static const short yypgoto[] = {-32768, --32768,-32768,-32768, 96, -378,-32768,-32768,-32768,-32768,-32768, --32768,-32768, -14,-32768, -56, 495, -234, 435,-32768,-32768, - -77,-32768, 525,-32768,-32768,-32768,-32768,-32768, 121, -302, --32768, -290, 592,-32768,-32768, 425,-32768, 7, -144, 195, - 1, 853,-32768, 269, 5, -20, -200, 657, 143, -253, - -591, -66, -199, -117,-32768,-32768,-32768, 160, 69, 2, --32768, 524,-32768, 265,-32768, -447,-32768, 157,-32768, -634, --32768,-32768, 250,-32768,-32768,-32768,-32768,-32768,-32768, -67, - -121, -498, -1,-32768,-32768,-32768, -74,-32768,-32768,-32768, --32768,-32768, 464, -43,-32768, 598, 474, 273, 591, 475, - -54, -94, -182, -166, -236, 451,-32768,-32768, -262,-32768, --32768,-32768, 556, -354,-32768, 382,-32768, -534,-32768,-32768, --32768,-32768, -169, -440, -678, 455,-32768, 90,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 98,-32768, - -818, 32,-32768, 31,-32768, 558,-32768, -366,-32768, 548, - 551, 404, -311,-32768,-32768,-32768,-32768, 12,-32768, 959, +-32768,-32768,-32768, 105, -375,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, -14,-32768, -56, 439, -226, 355,-32768,-32768, + -74,-32768, 596,-32768,-32768,-32768,-32768,-32768, 65, -310, +-32768, -313, 536,-32768,-32768, 358,-32768, 248, -46, 127, + 15, 786,-32768, 202, 38, -26, -172, 606, 492, -244, + -602, -82, -181, -120,-32768,-32768,-32768, -262, 44, -32, +-32768, 460,-32768, 197,-32768, -672,-32768, 86,-32768, -631, +-32768,-32768, 186,-32768,-32768,-32768,-32768,-32768,-32768, -73, + -109, -502, 2,-32768,-32768,-32768, -78,-32768,-32768,-32768, +-32768,-32768, 400, -27,-32768, 533, 414, 216, 526, 407, + -24, -75, -159, -168, -236, 392,-32768,-32768, -239,-32768, +-32768,-32768, 496, -143,-32768, 326,-32768, -526,-32768,-32768, +-32768,-32768, -192, -449, -719, 396,-32768, 34,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 35,-32768, + -817, -25,-32768, -22,-32768, 502,-32768, -353,-32768, 495, + 497, 349, -306,-32768,-32768,-32768,-32768, 17,-32768, 903, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 3, -4, -373,-32768, 424,-32768, - 355, 170,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -284, --32768,-32768,-32768, 175, 458,-32768,-32768,-32768,-32768, -45, - 713,-32768,-32768, 511,-32768, 218, 515,-32768, 624, 626, - -135,-32768, -128,-32768,-32768, 350, 442,-32768,-32768,-32768, --32768,-32768,-32768, 681,-32768,-32768,-32768 +-32768,-32768,-32768,-32768, -9, 5, -355,-32768, 368,-32768, + 280, 91,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -300, +-32768,-32768,-32768, 97, 380,-32768,-32768,-32768,-32768, -23, + 630,-32768,-32768, 404,-32768, 107, 408,-32768, 518, 520, + -140,-32768, -127,-32768,-32768, 240, 341,-32768,-32768,-32768, +-32768,-32768,-32768, 597,-32768,-32768,-32768 }; -#define YYLAST 3989 +#define YYLAST 4009 static const short yytable[] = { 124, - 141, 63, 32, 32, 67, 68, 33, 33, 71, 344, - 63, 74, 86, 42, 42, 209, 220, 70, 212, 70, - 181, 446, 354, 94, 96, 98, 72, 229, 230, 81, - 334, 445, 422, 472, 233, 405, 337, 92, 83, 85, - 356, 305, 32, 669, 414, 242, 33, 284, 306, 520, - 290, 225, 470, 42, 92, 92, 92, 278, 475, 190, - 237, 551, 70, 341, 547, 578, 70, 795, 461, 184, - 36, 36, 658, 188, 623, 192, 321, 53, 54, 55, - 776, 92, 338, 213, 59, 60, 882, 823, 734, 92, - 185, 272, 147, 232, 918, -113, 927, 793, 50, 80, - -1, 88, 939, 374, 462, 951, 14, 198, 199, -2, - 36, 186, 424, 413, 75, 576, 849, 425, 301, 693, - 577, 857, 344, 14, 320, 949, 16, 361, 148, 59, - 60, 294, 919, 298, 187, 59, 60, 99, 419, 220, - 940, 14, 328, 952, 625, 80, 514, 824, 579, 626, - 61, 208, 197, 80, 685, 62, 354, 300, 854, 219, - 569, 224, 334, 76, 883, 93, 535, 309, 310, 422, - 313, 314, 77, 334, 356, 87, 518, 734, -113, 334, - 712, 371, 522, 649, 635, 378, 198, 199, 637, 319, - 382, 405, 383, 323, 56, 61, 14, 907, -35, 143, - 62, 61, 192, 59, 60, 16, 62, 51, 52, 92, - 283, 220, 362, 283, 406, 466, 95, 893, 75, 469, - 92, 89, 468, 90, 869, 418, 379, 766, 767, 57, - 922, 345, 346, 681, 357, 926, 683, 928, 58, 515, - 495, 59, 60, 565, 427, 14, 936, 615, 467, 182, - 620, -34, 809, 402, 403, 82, 16, 143, 16, 80, - 639, 566, 208, 80, 751, 840, 841, 661, 757, 61, - 183, 146, 208, 221, 62, 634, 656, 282, 960, 226, - 59, 60, 219, 228, 92, 549, 550, 289, 14, 474, - 329, 491, 434, -116, -116, -116, -116, 231, 775, -116, - -480, -116, -116, -116, 70, 59, 60, 61, 595, 189, - 595, 436, 62, 148, 482, 143, 484, -116, 826, 198, - 199, 239, 97, 244, 59, 60, 291, 292, 293, 501, - 75, 202, 240, 847, 318, 319, -116, 92, 299, 323, - 851, 515, 734, 621, 420, 421, 61, 958, 220, 283, - 362, 62, 959, 345, 346, 753, 606, 14, -116, 241, - 478, 519, 480, -116, 525, 143, 198, 199, 357, 243, - 703, 61, 197, -116, 272, -176, 62, 75, 542, 203, - 877, 318, 143, -176, 263, 264, 265, 143, 204, 143, - 61, 744, 244, 507, 36, 62, 305, 59, 60, 942, - 943, 205, 273, 306, 14, 208, 198, 199, 208, 208, - 294, 558, 559, 560, 193, 75, 202, 279, 194, 414, - 287, 561, 780, 339, -176, 307, 661, 340, -176, 533, - 86, 311, 70, 534, 603, 656, 282, 420, 421, 546, - 553, 143, 14, 585, 554, 317, 552, 75, 654, 565, - 324, 318, 759, 350, 842, 433, 571, 572, 75, 202, - 351, 347, 75, 61, 203, 194, 318, 566, 62, 834, - 703, 362, 707, 204, 14, 574, 660, 664, 612, 575, - 197, 283, 613, -176, 36, 14, 205, 283, 764, 14, - 359, -176, -279, -279, 771, 784, 655, 36, 289, 143, - 36, 459, 614, 471, 367, 656, 282, 203, 36, 368, - 477, 76, 765, 86, 595, 628, 204, 772, 483, 88, - 77, 558, 559, 560, 780, 369, 14, 518, 522, 205, - -86, 641, -176, 86, 518, 522, -176, 533, 407, 631, - 380, 534, 766, 767, 5, 89, 7, 90, 280, 408, - 644, 830, 9, 10, 11, 831, 412, 281, 282, 645, - 646, 246, 248, 558, 559, 560, 730, 428, 13, 659, - 663, 651, 652, 758, 845, 143, 846, 903, 340, 212, - 194, 340, 426, 760, 760, 905, 143, 16, 429, 194, - 672, 674, 431, 87, 437, 911, 755, 756, 710, -478, - 442, 220, 88, 75, 202, 36, 586, 777, 729, 22, - 75, 654, 441, 920, 24, 921, 197, 785, 102, 673, - 80, 750, 88, 732, 458, 459, 465, 733, 476, 746, - 14, 143, 479, 485, 743, 486, 493, 14, 494, 657, - 662, 497, 498, 36, 644, 499, 500, 553, 954, 505, - 318, 554, 203, 552, 192, 730, 962, 502, 92, 655, - 506, 204, 521, 92, 526, 278, 808, 544, 656, 282, - 530, 344, 644, 14, 205, 548, 87, 568, 787, 570, - 573, 215, 216, 217, 558, 559, 560, 589, 9, 10, - 11, 36, 610, 590, 832, 280, 87, 729, 592, 657, - 624, 597, 598, 220, 281, 282, 14, 601, 289, 810, - 844, -316, 86, 208, 80, 36, 619, 627, 575, 208, - 208, 70, 70, 630, 662, 636, 668, 675, 684, 72, - 653, 690, 579, 36, 334, 275, 334, 671, 816, 818, - 208, 855, 80, 732, 858, 861, 689, 733, 871, 705, - 706, 872, 865, 208, 743, 366, 686, 687, 216, 217, - 688, 711, 319, 323, 9, 10, 11, 878, 381, 319, - 323, 760, 752, 384, 385, -32, 789, 790, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 266, 267, 143, 268, 269, 270, 271, 791, -33, 895, - 798, 88, 801, 802, 5, 804, 7, 288, 805, 806, - 902, 36, 9, 10, 11, 811, 874, 768, 769, 770, - 730, 813, 773, 774, 814, 815, 819, 833, 13, 746, - 838, 839, 657, 657, 779, 216, 217, 856, 864, 662, - 662, 9, 10, 11, 867, 866, 888, 16, 786, 266, - 267, 881, 268, 269, 270, 271, 894, 889, 858, 892, - 896, 898, 729, 261, 262, 263, 264, 265, 901, 22, - 899, 897, 910, 913, 24, 87, 923, 924, 929, -281, - -281, 945, 933, 937, 208, 938, 80, 858, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 657, - 941, 947, 956, 950, 827, 828, 829, 208, 329, 953, - -339, -339, 503, 504, 961, -339, -339, 964, -339, 965, - 529, 859, -339, 463, -339, -339, -339, -339, -339, -339, - -339, -339, -339, -339, -339, 616, -339, 825, -339, 214, - -339, -339, -339, 778, 850, 423, 782, 853, 527, -339, - 794, 602, -339, 596, 481, 488, 783, -339, -339, -339, - 600, 617, 670, -339, -339, 517, 908, 622, -339, -339, - 946, 948, 868, -339, 909, -339, -339, 523, 667, 540, - -339, -339, 541, 73, -339, 650, -339, -312, -339, -339, - 251, -339, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 763, 890, 887, 599, - 885, 274, 648, -319, -319, -319, -319, -319, -319, -319, - 435, -319, -319, -319, -319, -319, 611, -319, -319, -319, + 141, 63, 212, 92, 67, 68, 86, 334, 71, 209, + 63, 74, 220, 446, 72, 445, 32, 32, 42, 42, + 92, 92, 92, 94, 96, 98, 70, 344, 70, 470, + 229, 230, 81, 195, 337, 475, 305, 233, 472, 33, + 33, 422, 181, 405, 414, 36, 36, 92, 242, 306, + 354, 670, 53, 54, 55, 92, 32, 184, 42, 190, + 278, 188, 520, 356, 551, 624, 284, 225, 659, 290, + 778, 70, 799, 321, 80, 70, 88, 886, 192, 33, + -113, 471, 547, 578, 861, 36, 213, 922, 477, 462, + 237, 461, 272, 232, 338, 75, 483, 736, 374, 827, + 75, 931, 14, 943, 318, 955, 361, 50, 59, 60, + 851, 413, 198, 199, 263, 264, 265, -1, 424, 855, + 80, 197, 14, 425, -176, 923, 208, 14, 80, 320, + 953, 294, -176, 298, 219, 220, -2, 59, 60, 334, + 344, 944, 328, 956, 662, 686, 99, 687, 301, 76, + 334, -185, -185, 657, 282, 887, 334, 300, 77, 828, + 911, 569, 185, -113, 56, 858, 579, 309, 310, 514, + 313, 314, 714, -176, 61, 92, 518, -176, 422, 62, + 797, 371, 522, 186, 354, 283, 92, 736, 283, 535, + 59, 60, 319, 926, 59, 60, 323, 356, 930, 405, + 932, 650, 695, 61, 147, 192, 187, 220, 62, 940, + 59, 60, 362, 14, 406, 378, 515, 873, 93, 468, + 382, 57, 383, 853, 897, 418, 379, 466, 75, 59, + 60, 469, 197, 14, 80, 495, 419, 208, 80, 357, + 148, 964, 345, 346, 640, 420, 421, 208, 299, 58, + 92, -35, 82, 402, 403, 14, 61, 219, 16, 467, + 61, 62, 519, 844, 845, 62, 198, 199, 51, 52, + 616, 565, 759, 621, 427, 95, 61, 76, 813, 83, + 85, 62, 16, 753, 566, 595, 77, 597, 576, 474, + 14, 97, 434, 577, 491, 61, 59, 60, 635, 436, + 62, 146, 14, 92, 221, 59, 60, 291, 292, 293, + 75, 202, 777, 70, 318, 189, 75, 202, 515, 148, + 622, 768, 769, 626, 283, 224, 14, 193, 627, 501, + 482, 194, 484, 198, 199, 688, 689, 14, 319, 690, + 755, 226, 323, 14, 220, 75, 202, 830, 280, 228, + 362, 607, 244, 761, 736, 59, 60, 281, 282, 203, + 231, 962, 61, -34, 525, 203, 963, 62, 204, 36, + 16, 61, 14, 357, 204, 881, 62, 345, 346, 705, + 208, 205, 786, 208, 208, 182, 89, 205, 90, 198, + 199, 305, 16, 507, 203, 636, 770, 771, 772, 638, + 746, 775, 776, 204, 306, 339, 183, 243, 542, 340, + 294, 946, 947, 433, 239, 318, 205, 240, 75, 202, + 414, 61, 241, 787, 86, 347, 62, 546, 790, 194, + 266, 267, 782, 268, 269, 270, 271, 585, 14, 420, + 421, 70, 574, 533, 682, 14, 575, 684, 549, 550, + 459, 615, 901, 244, 553, 838, 283, 768, 769, 36, + 280, 846, 283, -480, 604, 272, 534, 203, 709, 281, + 282, 362, 36, 75, 655, 36, 204, 554, 565, 273, + 705, 246, 248, 36, 831, 832, 833, 766, 279, 205, + 287, 566, 597, 773, 88, 661, 665, 307, 329, 317, + 14, -339, -339, -339, -339, 197, 311, 86, -176, -339, + -339, -339, 324, 613, 350, 629, -176, 614, 558, 559, + 560, 351, 656, 359, 87, -339, 854, 86, 561, 518, + 522, 657, 282, 380, 834, 782, 518, 522, 835, 198, + 199, 367, 368, 369, -339, 558, 559, 560, 143, -86, + 407, 533, 849, 645, 872, 642, 340, -176, 558, 559, + 560, -176, 408, 412, 212, 850, -339, 732, 760, 194, + 428, -339, 660, 664, 534, 426, 431, 88, 762, 762, + 36, -112, 429, 915, 261, 262, 263, 264, 265, 894, + 437, -478, 779, 442, 924, 80, 925, 88, 220, 712, + 907, 478, 441, 480, 340, 197, 143, 102, 458, 731, + 459, 767, 789, 789, 658, 663, 774, 909, 36, 757, + 758, 194, 752, 75, 655, 92, 465, 318, 476, 479, + 92, 485, 916, 748, 486, 494, 289, 493, 734, 497, + 745, 558, 559, 560, 958, 498, 499, 500, 645, 502, + 14, 836, 966, 505, 526, 506, 544, 732, 192, 521, + 530, 735, 553, 570, 143, 548, 568, 36, 812, 573, + 278, 589, 656, 575, 590, 658, 645, 592, 611, 625, + 791, 657, 282, 598, 599, 554, 602, 552, -316, 208, + 80, 36, 620, 344, 628, 208, 208, 571, 572, 731, + 663, 220, 631, 637, 669, 654, 579, 275, 86, 36, + 672, 814, 848, 685, 143, 334, 208, 334, 80, 72, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 788, + 208, 143, 70, 70, 691, 692, 143, 75, 143, 876, + 707, 318, 713, 708, 754, 859, 875, -32, 862, 865, + 793, 794, 795, -33, 802, 92, 869, 805, 806, 734, + 808, 745, 809, 810, 14, 815, 817, 319, 323, 762, + 818, 882, 823, 819, 319, 323, 837, 842, 88, 860, + 632, 843, 735, 868, 870, 871, 662, 885, 36, 893, + 143, 892, 896, 898, 900, 657, 282, 215, 216, 217, + 646, 647, 902, 899, 9, 10, 11, 903, 914, 658, + 658, 905, 652, 653, 906, 927, 663, 663, 917, 928, + 933, 937, 14, 878, 732, 941, 366, 942, 945, 951, + 954, 673, 675, 781, 216, 217, 748, 957, 968, 381, + 9, 10, 11, 960, 384, 385, 965, 289, 143, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 969, 862, 208, 529, 80, 731, 463, 617, 863, + 196, 829, 214, -28, -28, -28, -28, 780, 658, 784, + 857, -28, -28, -28, 527, 949, 208, 603, 798, 481, + 488, 862, 601, 596, 423, 552, 197, -28, 563, -176, + 785, 5, 618, 7, 140, 517, 671, -176, 623, 9, + 10, 11, 216, 217, 912, 913, -28, 950, 9, 10, + 11, 523, 952, 668, 143, 13, 540, 73, 541, 651, + 198, 199, 765, 891, 649, 143, 889, 435, -28, 630, + 634, 883, 87, -28, 16, 531, 800, 532, -176, 710, + 0, 0, -176, -28, 0, 586, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 22, -454, -454, -454, + 0, 24, 496, 0, 0, 0, 564, -454, 0, 0, + 143, 820, 822, 503, 504, 0, 274, 0, -319, -319, + -319, -319, -319, -319, -319, 0, -319, -319, -319, -319, + -319, 0, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, - -319, -319, -319, -319, -319, -319, 629, 633, 879, 708, - 912, 531, -319, 532, 796, -319, 496, -319, 0, 0, - -319, -319, -319, 0, 0, 0, -319, -319, 0, 0, - 0, -319, -319, 0, 0, 0, -319, 0, -319, -319, - 0, 0, 0, -319, -319, 0, 0, -319, 0, -319, - 275, -319, -319, 0, -319, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 0, 0, - 0, 679, 0, 329, 0, -125, -125, -125, -125, -125, - -125, -125, 0, -125, -125, -125, -125, -125, 696, -125, - -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, - -125, -125, -125, -125, 0, -125, -125, -125, 0, 0, - 0, 0, 0, 0, -125, 0, 0, -125, 0, -125, - 0, 0, -125, -125, -125, 0, 0, 0, -125, -125, - 0, 0, 0, -125, -125, 0, 0, 0, -125, 0, - -125, -125, 0, 0, 0, -125, -125, 0, 0, -125, - 0, -125, -125, -125, -125, 0, -125, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 679, 0, 0, 447, - 0, 448, 5, 6, 7, 8, 0, 0, 449, 0, - 9, 10, 11, 0, 0, 0, 696, 0, 0, 0, - 0, 0, 0, 797, 0, 0, 13, 0, 14, 0, - 0, 0, 0, 803, 0, 0, 509, 0, -339, -339, - -339, -339, -339, -339, -339, 16, -339, -339, -339, -339, - -339, 0, -339, -339, -339, -339, -339, -339, -339, -339, - -339, -339, -339, -339, -339, -339, -339, 22, -339, -339, - -339, 0, 24, 837, 0, 0, -399, -339, 0, 0, - -339, 0, -339, 0, 0, -339, -339, -339, 0, 0, - 0, -339, -339, 0, 0, 696, -339, -339, 848, 0, - 0, -339, 696, -339, -339, 696, 0, 696, -339, -339, - 0, 0, -339, 0, -339, 0, -339, -339, 0, -339, - 0, 0, 0, 820, 0, -339, -339, 0, 0, 0, - -339, -339, 0, -339, 0, 0, 0, -339, 0, -339, + -319, 0, 0, 0, 0, 87, 0, -319, 0, 0, + -319, 0, -319, 0, 0, -319, -319, -319, 0, 0, + 0, -319, -319, 0, 0, 87, -319, -319, 0, 0, + 0, -319, 0, -319, -319, 0, 0, 289, -319, -319, + 0, 0, -319, 0, -319, 275, -319, -319, 0, -319, + 0, 0, 0, 0, 0, 0, 676, 0, 0, 0, + 600, 259, 260, 261, 262, 263, 264, 265, 329, 0, + -125, -125, -125, -125, -125, -125, -125, 612, -125, -125, + -125, -125, -125, 0, -125, -125, -125, -125, -125, -125, + -125, -125, -125, -125, -125, -125, -125, -125, -125, 0, + -125, -125, -125, 0, 0, 0, 0, 0, 0, -125, + 0, 0, -125, 0, -125, 0, 0, -125, -125, -125, + 0, 0, 143, -125, -125, 0, 0, 0, -125, -125, + 0, 0, 0, -125, 0, -125, -125, 0, 0, 0, + -125, -125, 0, 0, -125, 0, -125, -125, -125, -125, + 0, -125, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 680, 268, 269, 270, 271, 0, 0, 0, + 0, 509, 0, -339, -339, -339, -339, -339, -339, -339, + 698, -339, -339, -339, -339, -339, 0, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, - 0, -339, 886, -339, 0, -339, -339, -339, 0, 0, - 0, 0, 0, 891, -339, 0, 696, -339, 0, 0, - 0, 0, -339, -339, -339, 0, 900, 0, -339, -339, - 0, 0, 0, -339, -339, 0, 0, 0, -339, 0, - -339, -339, 0, 0, 0, -339, -339, 0, 0, -339, - 0, -339, 0, -339, -339, 875, -339, -349, -349, 0, - 0, 0, -349, -349, 0, -349, 0, 0, 0, -349, - 0, -349, -349, -349, -349, -349, -349, -349, -349, -349, - -349, -349, 0, -349, 0, -349, 0, -349, -349, -349, - 0, 0, 0, 0, 0, 0, -349, 0, 0, -349, - 0, 0, 0, 0, -349, -349, -349, 0, 0, 0, - -349, -349, 0, 0, 0, -349, -349, 0, 0, 0, - -349, 0, -349, -349, 0, 0, 0, -349, -349, 0, - 0, -349, 0, -349, 0, -349, -349, 234, -349, 100, + -339, -339, 0, -339, -339, -339, 87, 0, 0, 0, + 0, 0, -339, 0, 0, -339, 0, -339, 0, 0, + -339, -339, -339, 0, 0, 0, -339, -339, 0, 0, + 0, -339, -339, 0, 0, 0, -339, 0, -339, -339, + 0, 0, 0, -339, -339, 0, 0, -339, 0, -339, + 0, -339, -339, 0, -339, 0, 0, 234, 680, 100, 5, 0, 7, 140, 101, 102, 0, 103, 9, 10, - 11, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 0, 13, 104, 0, 15, 0, 105, - 106, 107, 0, 0, 0, 0, 0, 0, 108, 0, + 11, 0, 0, 0, 0, 0, 0, 0, 0, 698, + 0, 0, 0, 0, 13, 104, 801, 15, 0, 105, + 106, 107, 0, 0, 0, 0, 807, 0, 108, 0, 0, 109, 0, 16, 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, 0, 0, 0, 115, 116, 0, 0, 0, 117, 0, 118, 22, 0, 0, 0, 119, - 24, 0, 0, 120, 0, 0, 0, 121, 122, 691, - 235, 692, 60, 0, 0, 0, 101, 102, 0, 103, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 259, 260, 261, 262, 263, 264, 265, 104, 0, 15, - 0, 105, 106, 107, 0, 0, 0, 0, 0, 0, - 108, 0, 0, 109, 0, 0, 0, 0, 110, 111, - 112, 0, 0, 0, 113, 114, 0, 0, 693, 115, - 116, 0, 0, 0, 117, 0, 118, 61, 0, 0, - 0, 119, 62, 0, 0, 120, 0, 0, -204, 121, - 122, 691, 694, 692, 60, 0, 0, 0, 101, 102, - 0, 103, 258, 259, 260, 261, 262, 263, 264, 265, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, - 0, 15, 0, 105, 106, 107, 0, 0, 0, 0, - 0, 0, 108, 0, 0, 109, 0, 0, 0, 0, - 110, 111, 112, 0, 0, 0, 113, 114, 0, 0, - 693, 115, 116, 0, 0, 0, 117, 0, 118, 61, - 0, 0, 0, 119, 62, 0, 0, 120, 0, 0, - -269, 121, 122, 691, 694, 100, 0, 0, 0, 0, - 101, 102, 0, 103, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 104, 0, 15, 0, 105, 106, 107, 0, 0, - -217, 0, 0, 0, 108, 0, 0, 109, 0, 0, - 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, - 0, 0, -217, 115, 116, 0, 0, 0, 117, 0, - 118, 0, 0, 0, 0, 119, 0, 0, 0, 120, - 677, 0, 100, 121, 122, 0, 694, 101, 102, 0, - 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 104, 0, - 15, 0, 105, 106, 107, 0, 0, 0, 0, 0, - 0, 108, 0, 0, 109, 0, 0, 0, 0, 110, - 111, 112, 0, 0, 0, 113, 114, 0, 0, 0, - 115, 116, 0, 0, 0, 117, 0, 118, 0, 0, - 0, 0, 119, 0, 0, 0, 120, 691, 0, 100, - 121, 122, 0, 678, 101, 102, 0, 103, 4, 0, - -129, 5, 6, 7, 8, 0, 0, 0, 0, 9, - 10, 11, 0, 0, 0, 104, 0, 15, 0, 105, - 106, 107, 0, 0, 0, 13, 0, 14, 108, 0, - 0, 109, 0, 0, 0, 0, 110, 111, 112, 0, - 0, 0, 113, 114, 16, 0, 0, 115, 116, -129, - 0, 0, 117, 0, 118, 0, 0, 0, -129, 119, - 0, 0, 0, 120, 0, 0, 22, 121, 122, 196, - 694, 24, -28, -28, -28, -28, 27, 0, 0, 0, - -28, -28, -28, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 197, -28, 348, -176, 0, - -24, -24, -24, -24, 0, 0, -176, 0, -24, -24, - -24, 5, 6, 7, 8, -28, 0, 0, 0, 9, - 10, 11, 0, 197, -24, 0, -176, 0, 0, 198, - 199, 0, 0, 0, -176, 13, 0, -28, 0, 0, - 0, 0, -28, -24, 0, 0, 0, -176, 0, 0, - 0, -176, -28, 0, 16, 0, 342, 198, 199, -20, - -20, -20, -20, 0, 0, -24, 0, -20, -20, -20, - -24, 0, 0, 0, 0, -176, 22, 0, 0, -176, - -24, 24, 197, -20, 329, -176, 0, 5, 6, 7, - 8, 0, 0, -176, 0, 9, 10, 11, 0, 0, - 0, 0, -20, 0, 329, 0, 0, -502, -502, -502, - -502, 13, 0, 14, 0, -502, -502, -502, 0, 0, - 0, 0, 0, 0, -20, 0, 0, 0, 0, -20, - 16, -502, 0, -502, -176, 0, 0, 0, -176, -20, - 0, 0, 329, 0, 0, -339, -339, -339, -339, 0, - -502, 0, 22, -339, -339, -339, 0, 24, 0, 0, - 0, 0, 0, 0, 0, 100, 0, -500, 0, -339, - 101, 102, -502, 103, 0, 0, 0, -502, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -502, -339, 0, - 0, 104, 0, 15, 0, 105, 106, 107, 0, 0, - 0, 0, 0, 0, 108, 0, 0, 109, 0, 0, - -339, 0, 110, 111, 112, -339, 0, 0, 113, 114, - 0, 0, 0, 115, 116, -112, 100, 0, 117, 0, - 118, 101, 102, 0, 103, 119, 0, 0, 0, 120, - 0, 0, 0, 121, 122, 0, 0, 327, 0, 0, + 24, 0, 0, 120, 0, 0, 841, 121, 122, 0, + 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 329, 0, 0, -116, -116, -116, -116, 698, 0, + -116, 852, -116, -116, -116, 0, 0, 698, 0, 0, + 698, 0, 698, 0, 0, 0, 0, 0, -116, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 329, 0, + -339, -339, 0, 0, 0, -339, -339, -116, -339, 0, + 0, 0, -339, 0, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, 0, -339, 890, -339, -116, + -339, -339, -339, 0, -116, 0, 0, 0, 895, -339, + 0, 698, -339, 0, -116, 0, 0, -339, -339, -339, + 0, 904, 0, -339, -339, 0, 0, 0, -339, -339, + 0, 0, 0, -339, 0, -339, -339, 0, 0, 0, + -339, -339, 0, 0, -339, 0, -339, -312, -339, -339, + 824, -339, -339, -339, 0, 0, 0, -339, -339, 0, + -339, 0, 0, 0, -339, 0, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, 0, -339, 0, + -339, 0, -339, -339, -339, 0, 0, 0, 0, 0, + 0, -339, 0, 0, -339, 0, 0, 0, 0, -339, + -339, -339, 0, 0, 0, -339, -339, 0, 0, 0, + -339, -339, 0, 0, 0, -339, 0, -339, -339, 0, + 0, 0, -339, -339, 0, 0, -339, 0, -339, 0, + -339, -339, 879, -339, -349, -349, 0, 0, 0, -349, + -349, 0, -349, 0, 0, 0, -349, 0, -349, -349, + -349, -349, -349, -349, -349, -349, -349, -349, -349, 0, + -349, 0, -349, 0, -349, -349, -349, 0, 0, 0, + 0, 0, 0, -349, 0, 0, -349, 0, 0, 0, + 0, -349, -349, -349, 0, 0, 0, -349, -349, 0, + 0, 0, -349, -349, 0, 0, 0, -349, 0, -349, + -349, 0, 0, 0, -349, -349, 0, 0, -349, 0, + -349, 0, -349, -349, 693, -349, 694, 60, 0, 0, + 0, 101, 102, 251, 103, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 0, 0, 0, 104, 0, 15, 0, 105, 106, 107, 0, 0, 0, 0, 0, 0, 108, 0, 0, 109, 0, 0, 0, 0, 110, 111, 112, 0, 0, 0, 113, - 114, 0, 0, 0, 115, 116, 0, 100, 0, 117, + 114, 0, 0, 695, 115, 116, 0, 0, 0, 117, + 0, 118, 61, 0, 0, 0, 119, 62, 0, 0, + 120, 0, 0, -204, 121, 122, 693, 696, 694, 60, + 0, 0, 0, 101, 102, 0, 103, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 0, 0, 0, 0, 104, 0, 15, 0, 105, 106, + 107, 0, 0, 0, 0, 0, 0, 108, 0, 0, + 109, 0, 0, 0, 0, 110, 111, 112, 0, 0, + 0, 113, 114, 0, 0, 695, 115, 116, 0, 0, + 0, 117, 0, 118, 61, 0, 0, 0, 119, 62, + 0, 0, 120, 0, 0, -269, 121, 122, 693, 696, + 100, 0, 0, 0, 0, 101, 102, 0, 103, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 0, 0, 0, 0, 0, 104, 0, 15, 0, + 105, 106, 107, 0, 0, -217, 0, 0, 0, 108, + 0, 0, 109, 0, 0, 0, 0, 110, 111, 112, + 0, 0, 0, 113, 114, 0, 0, -217, 115, 116, + 0, 0, 0, 117, 0, 118, 0, 0, 0, 0, + 119, 0, 0, 0, 120, 678, 0, 100, 121, 122, + 0, 696, 101, 102, 0, 103, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 0, 0, 0, + 0, 0, 0, 104, 0, 15, 0, 105, 106, 107, + 0, 0, 0, 0, 0, 0, 108, 0, 0, 109, + 0, 0, 0, 0, 110, 111, 112, 0, 0, 0, + 113, 114, 0, 0, 0, 115, 116, 0, 0, 0, + 117, 0, 118, 0, 0, 0, 0, 119, 0, 0, + 0, 120, 693, 0, 100, 121, 122, 0, 679, 101, + 102, 0, 103, 4, 0, -129, 5, 6, 7, 8, + 0, 0, 0, 0, 9, 10, 11, 0, 0, 0, + 104, 0, 15, 0, 105, 106, 107, 0, 0, 0, + 13, 0, 14, 108, 0, 0, 109, 0, 0, 0, + 0, 110, 111, 112, 0, 0, 0, 113, 114, 16, + 0, 0, 115, 116, -129, 0, 0, 117, 0, 118, + 0, 0, 0, -129, 119, 0, 0, 0, 120, 0, + 0, 22, 121, 122, 348, 696, 24, -24, -24, -24, + -24, 27, 0, 0, 0, -24, -24, -24, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 197, -24, 342, -176, 0, -20, -20, -20, -20, 0, + 0, -176, 0, -20, -20, -20, 5, 6, 7, 8, + -24, 0, 0, 0, 9, 10, 11, 0, 197, -20, + 0, -176, 0, 0, 198, 199, 0, 0, 0, -176, + 13, 0, -24, 0, 0, 0, 0, -24, -20, 0, + 0, 0, -176, 0, 0, 0, -176, -24, 0, 16, + 329, 0, 0, 5, 6, 7, 8, 0, 0, 0, + -20, 9, 10, 11, 0, -20, 0, 0, 0, 0, + -176, 22, 0, 0, -176, -20, 24, 13, 329, 14, + 0, -502, -502, -502, -502, 0, 0, 0, 0, -502, + -502, -502, 5, 0, 7, 140, 16, 0, 0, 0, + 9, 10, 11, 0, 0, -502, 100, -502, 0, 0, + 0, 101, 102, 0, 103, 0, 13, 0, 22, 0, + 0, 0, 0, 24, -502, 0, 0, 0, 0, 0, + 0, 0, 104, -500, 15, 16, 105, 106, 107, 0, + 0, 0, 0, 0, 0, 108, -502, 0, 109, 0, + 0, -502, 0, 110, 111, 112, 0, 22, 0, 113, + 114, -502, 24, 0, 115, 116, 0, 100, 0, 117, 0, 118, 101, 102, 0, 103, 119, 0, 0, 0, - 120, 0, 0, 0, 121, 122, 0, 0, 417, 0, + 120, 0, 0, 0, 121, 122, 0, 0, 327, 0, 0, 0, 0, 104, 0, 15, 0, 105, 106, 107, 0, 0, 0, 0, 0, 0, 108, 0, 0, 109, 0, 0, 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, 0, 0, 0, 115, 116, 0, 100, 0, 117, 0, 118, 101, 102, 0, 103, 119, 0, 0, - 0, 120, 0, 0, 0, 121, 122, 0, 0, 473, + 0, 120, 0, 0, 0, 121, 122, 0, 0, 417, 0, 0, 0, 0, 104, 0, 15, 0, 105, 106, 107, 0, 0, 0, 0, 0, 0, 108, 0, 0, 109, 0, 0, 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, 0, 0, 0, 115, 116, 0, 100, 0, 117, 0, 118, 101, 102, 0, 103, 119, 0, 0, 0, 120, 0, 0, 0, 121, 122, 0, 0, - 524, 0, 0, 0, 0, 104, 0, 15, 0, 105, + 473, 0, 0, 0, 0, 104, 0, 15, 0, 105, 106, 107, 0, 0, 0, 0, 0, 0, 108, 0, 0, 109, 0, 0, 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, 0, 0, 0, 115, 116, 0, - 0, 0, 117, 0, 118, 0, 0, 0, 0, 119, + 100, 0, 117, 0, 118, 101, 102, 0, 103, 119, 0, 0, 0, 120, 0, 0, 0, 121, 122, 0, - 0, 843, 692, 713, 6, 7, 8, 101, 102, 0, - 103, 9, 10, 11, 714, 0, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 13, 104, 14, - 15, 0, 105, 106, 107, 0, 0, 0, 0, 0, - 0, 108, 0, 0, 109, 0, 16, 0, 0, 110, - 111, 112, 0, 0, 0, 113, 114, 0, 0, 0, - 115, 116, 0, 0, 0, 117, 0, 118, 726, 0, - 0, 0, 119, 727, 0, 0, 120, 0, 728, 0, - 121, 122, 0, 579, 692, 60, 0, 0, 0, 101, - 102, 0, 103, 0, 0, 0, 714, 0, 715, 716, - 717, 718, 719, 720, 721, 722, 723, 724, 725, 0, - 104, 0, 15, 0, 105, 106, 107, 0, 0, 0, - 0, 0, 0, 108, 0, 0, 109, 0, 0, 0, - 0, 110, 111, 112, 0, 0, 0, 113, 114, 0, - 100, 0, 115, 116, 0, 101, 102, 117, 103, 118, - 61, 0, 0, 0, 119, 62, 0, 0, 120, 0, - 728, 0, 121, 122, 0, 579, 104, 0, 15, 0, + 0, 524, 0, 0, 0, 0, 104, 0, 15, 0, 105, 106, 107, 0, 0, 0, 0, 0, 0, 108, 0, 0, 109, 0, 0, 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, 0, 0, 0, 115, 116, 0, 0, 0, 117, 0, 118, 0, 0, 0, 0, 119, 0, 0, 0, 120, 0, 0, 0, 121, 122, - 0, 490, 149, 150, 0, 151, 152, 0, 0, 0, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, - 0, 0, 100, 5, 6, 7, 8, 101, 102, 172, - 103, 9, 10, 11, 5, 6, 7, 8, 0, 0, - 0, 0, 9, 10, 11, 0, 0, 13, 104, 14, - 15, 0, 105, 106, 107, 0, 0, 0, 13, 0, - 14, 108, 0, 174, 109, 0, 16, 0, 0, 110, - 111, 112, 303, 0, 0, 113, 114, 16, 0, 0, - 115, 116, 0, 0, 0, 117, 0, 118, 22, 0, - 0, 0, 119, 24, 0, 0, 120, 0, 0, 22, - 121, 122, 100, 5, 24, 7, 140, 101, 102, 84, - 103, 9, 10, 11, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 13, 104, 0, - 15, 0, 105, 106, 107, 0, 0, 0, 0, 0, - 0, 108, 0, 0, 109, 0, 16, 0, 0, 110, - 111, 112, 0, 0, 0, 113, 114, 0, 100, 0, - 115, 116, 0, 101, 102, 117, 103, 118, 22, 0, - 0, 0, 119, 24, 0, 0, 120, 0, 0, 0, - 121, 122, 0, 0, 104, 0, 15, 0, 105, 106, - 107, 0, 0, 0, 0, 0, 0, 108, 0, 0, - 109, 0, 0, 0, 0, 110, 111, 112, 0, 0, - 0, 113, 114, 0, 100, 0, 115, 116, 0, 101, - 102, 117, 103, 118, 370, 0, 0, 0, 119, 0, - 0, 0, 120, 0, 0, 0, 121, 122, 0, 0, - 104, 0, 15, 0, 105, 106, 107, 0, 0, 0, - 0, 0, 0, 108, 0, 0, 109, 0, 0, 0, - 0, 110, 111, 112, 0, 0, 0, 113, 114, 0, - 100, 0, 115, 116, 0, 101, 102, 117, 103, 118, - 0, 0, 0, 0, 119, 0, 0, 0, 120, 0, - 807, 0, 121, 122, 0, 0, 104, 0, 15, 0, - 105, 106, 107, 0, 0, 0, 0, 0, 0, 108, - 0, 0, 109, 0, 0, 0, 0, 110, 111, 112, - 0, 0, 0, 113, 114, 0, 100, 0, 115, 116, - 0, 101, 102, 117, 103, 118, 0, 0, 0, 0, - 119, 0, 0, 0, 120, 0, 0, 0, 121, 122, - 0, 0, 104, 0, 15, 0, 105, 106, 107, 0, - 0, 0, 0, 0, 0, 108, 0, 0, 109, 0, - 0, 0, 0, 110, 111, 112, 0, 0, 0, 113, - 114, 0, 100, 0, 245, 116, 0, 101, 102, 117, - 103, 118, 0, 0, 0, 0, 119, 0, 0, 0, - 120, 0, 0, 0, 121, 122, 0, 0, 104, 0, - 15, 0, 105, 106, 107, 0, 0, 0, 0, 0, - 0, 108, 0, 0, 109, 0, 0, 0, 0, 110, - 111, 112, 0, 0, 0, 113, 114, 0, 528, 0, - 247, 116, 0, 101, 102, 117, 103, 118, 0, 0, - 0, 0, 119, 0, 0, 0, 120, 0, 0, 0, - 121, 122, 0, 0, 104, 0, 15, 0, 105, 106, - 107, 0, 0, 0, 0, 0, 0, 108, 0, 0, - 109, 0, 0, 0, 0, 110, 111, 112, 0, 0, - 0, 113, 114, 0, 0, 0, 115, 116, 0, 0, - 0, 117, 0, 118, 0, 0, 0, 0, 119, 0, - 0, 0, 120, 0, 0, 563, 121, 122, 5, 0, - 7, 140, 0, 0, 0, 0, 9, 10, 11, 0, - 0, 0, 563, 0, 0, 5, 0, 7, 140, 0, - 0, 0, 13, 9, 10, 11, 0, 0, 0, 0, - 0, 0, 352, 0, 0, 5, 0, 7, 140, 13, - 0, 16, 0, 9, 10, 11, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 13, - 0, 0, 15, 22, -454, -454, -454, 0, 24, 0, - 0, 0, 0, 564, -454, 0, 0, 0, 16, 0, - 22, -453, -453, -453, 0, 24, 0, 0, 0, 0, - 564, -453, 0, 0, 0, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 0, 24, 0, 0, 0, 0, - 353, -272, 4, 0, -129, 5, 6, 7, 8, 0, - 0, 0, 0, 9, 10, 11, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, - 0, 14, 15, 0, 0, 5, 6, 7, 8, 0, - 0, 449, 0, 9, 10, 11, 0, 0, 16, 0, - 0, 17, 18, -129, 0, 0, 0, 0, 0, 13, - 0, 14, -129, 0, 19, 20, 21, 0, 0, 0, - 22, 0, 0, 0, 23, 24, 25, 26, 16, 4, - 27, -129, 5, 6, 7, 8, 0, 0, 0, 0, - 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 0, 24, 13, 447, 14, 0, - 5, 6, 7, 8, 0, 0, 449, 0, 9, 10, - 11, 0, 0, 0, 0, 16, 0, 0, 549, 550, - -129, 0, 0, 0, 13, 0, 14, 0, 0, -129, - 5, 6, 7, 8, 0, 0, 0, 22, 9, 10, - 11, 0, 24, 16, 0, 0, 0, 27, 0, 0, - 0, 0, 0, 0, 13, 0, 14, 0, 5, 6, - 7, 8, 0, 0, 0, 22, 9, 10, 11, 0, - 24, 0, 0, 16, -399, 0, 0, 0, 0, 0, - 352, 0, 13, 5, 14, 7, 140, 0, 0, 0, - 0, 9, 10, 11, 0, 22, 0, 0, 0, 0, - 24, 16, 0, 0, 0, 632, 0, 13, 0, 0, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 0, 0, 16, 0, 24, 0, - 0, 0, 0, 817, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 149, 150, 22, 151, - 152, 0, 0, 24, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 0, 0, 0, 149, 150, 0, 151, - 152, 0, 0, 172, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 0, 173, 0, 0, 0, 0, 0, - 0, 149, 150, 373, 151, 152, 0, 174, 0, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, - 0, 149, 150, 0, 151, 152, 0, 174, 172, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, - 0, 5, 0, 7, 288, 0, 0, 0, 605, 9, - 10, 11, 174, 5, 6, 7, 8, 0, 0, 666, - 0, 9, 10, 11, 0, 13, 0, 14, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 13, 0, 14, - 0, 0, 174, 0, 16, 0, 0, 0, 0, 280, - 0, 0, 0, 0, 0, 0, 16, 0, 281, 282, - 5, 6, 7, 8, 0, 0, 22, 0, 9, 10, - 11, 24, 5, 0, 7, 140, 0, 0, 22, 0, - 9, 10, 11, 24, 13, 5, 14, 7, 288, 0, - 0, 0, 0, 9, 10, 11, 13, 0, 0, 0, + 0, 0, 847, 694, 715, 6, 7, 8, 101, 102, + 0, 103, 9, 10, 11, 716, 0, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 13, 104, + 14, 15, 0, 105, 106, 107, 0, 0, 0, 0, + 0, 0, 108, 0, 0, 109, 0, 16, 0, 0, + 110, 111, 112, 0, 0, 0, 113, 114, 0, 0, + 0, 115, 116, 0, 0, 0, 117, 0, 118, 728, + 0, 0, 0, 119, 729, 0, 0, 120, 0, 730, + 0, 121, 122, 0, 579, 694, 60, 0, 0, 0, + 101, 102, 0, 103, 0, 0, 0, 716, 0, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 0, 104, 0, 15, 0, 105, 106, 107, 0, 0, + 0, 0, 0, 0, 108, 0, 0, 109, 0, 0, + 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, + 0, 100, 0, 115, 116, 0, 101, 102, 117, 103, + 118, 61, 0, 0, 0, 119, 62, 0, 0, 120, + 0, 730, 0, 121, 122, 0, 579, 104, 0, 15, + 0, 105, 106, 107, 0, 0, 0, 0, 0, 0, + 108, 0, 0, 109, 0, 0, 0, 0, 110, 111, + 112, 0, 0, 0, 113, 114, 0, 0, 0, 115, + 116, 0, 0, 0, 117, 0, 118, 0, 0, 0, + 0, 119, 0, 0, 0, 120, 0, 0, 0, 121, + 122, 0, 490, 149, 150, 0, 151, 152, 0, 0, + 0, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 0, 0, 0, 100, 5, 6, 7, 8, 101, 102, + 172, 103, 9, 10, 11, 5, 6, 7, 8, 0, + 0, 0, 0, 9, 10, 11, 0, 0, 13, 104, + 14, 15, 0, 105, 106, 107, 0, 0, 0, 13, + 0, 14, 108, 0, 174, 109, 0, 16, 0, 0, + 110, 111, 112, 303, 0, 0, 113, 114, 16, 0, + 0, 115, 116, 0, 0, 0, 117, 0, 118, 22, + 0, 0, 0, 119, 24, 0, 0, 120, 0, 0, + 22, 121, 122, 100, 5, 24, 7, 140, 101, 102, + 84, 103, 9, 10, 11, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 13, 104, + 0, 15, 0, 105, 106, 107, 0, 0, 0, 0, + 0, 0, 108, 0, 0, 109, 0, 16, 0, 0, + 110, 111, 112, 0, 0, 0, 113, 114, 0, 100, + 0, 115, 116, 0, 101, 102, 117, 103, 118, 22, + 0, 0, 0, 119, 24, 0, 0, 120, 0, 0, + 0, 121, 122, 0, 0, 104, 0, 15, 0, 105, + 106, 107, 0, 0, 0, 0, 0, 0, 108, 0, + 0, 109, 0, 0, 0, 0, 110, 111, 112, 0, + 0, 0, 113, 114, 0, 100, 0, 115, 116, 0, + 101, 102, 117, 103, 118, 370, 0, 0, 0, 119, + 0, 0, 0, 120, 0, 0, 0, 121, 122, 0, + 0, 104, 0, 15, 0, 105, 106, 107, 0, 0, + 0, 0, 0, 0, 108, 0, 0, 109, 0, 0, + 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, + 0, 100, 0, 115, 116, 0, 101, 102, 117, 103, + 118, 0, 0, 0, 0, 119, 0, 0, 0, 120, + 0, 811, 0, 121, 122, 0, 0, 104, 0, 15, + 0, 105, 106, 107, 0, 0, 0, 0, 0, 0, + 108, 0, 0, 109, 0, 0, 0, 0, 110, 111, + 112, 0, 0, 0, 113, 114, 0, 100, 0, 115, + 116, 0, 101, 102, 117, 103, 118, 0, 0, 0, + 0, 119, 0, 0, 0, 120, 0, 0, 0, 121, + 122, 0, 0, 104, 0, 15, 0, 105, 106, 107, + 0, 0, 0, 0, 0, 0, 108, 0, 0, 109, + 0, 0, 0, 0, 110, 111, 112, 0, 0, 0, + 113, 114, 0, 100, 0, 245, 116, 0, 101, 102, + 117, 103, 118, 0, 0, 0, 0, 119, 0, 0, + 0, 120, 0, 0, 0, 121, 122, 0, 0, 104, + 0, 15, 0, 105, 106, 107, 0, 0, 0, 0, + 0, 0, 108, 0, 0, 109, 0, 0, 0, 0, + 110, 111, 112, 0, 0, 0, 113, 114, 0, 528, + 0, 247, 116, 0, 101, 102, 117, 103, 118, 0, + 0, 0, 0, 119, 0, 0, 0, 120, 0, 0, + 0, 121, 122, 0, 0, 104, 0, 15, 0, 105, + 106, 107, 0, 0, 0, 0, 0, 0, 108, 0, + 0, 109, 0, 0, 0, 0, 110, 111, 112, 0, + 0, 0, 113, 114, 0, 0, 0, 115, 116, 0, + 0, 0, 117, 0, 118, 0, 0, 0, 0, 119, + 0, 0, 0, 120, 0, 0, 563, 121, 122, 5, + 352, 7, 140, 5, 0, 7, 140, 9, 10, 11, + 0, 9, 10, 11, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 13, 0, 0, 0, 13, 0, 5, + 15, 7, 288, 0, 0, 0, 0, 9, 10, 11, + 0, 0, 16, 0, 0, 0, 16, 5, 89, 7, + 90, 0, 0, 13, 0, 9, 10, 11, 0, 0, + 0, 0, 0, 0, 22, -453, -453, -453, 22, 24, + 0, 13, 16, 24, 564, -453, 0, 0, 353, -272, + 4, 0, -129, 5, 6, 7, 8, 0, 0, 0, + 16, 9, 10, 11, 22, 0, 0, 0, 0, 24, + 0, 0, 0, 0, -281, -281, 12, 13, 0, 14, + 15, 0, 22, 0, 0, 0, 0, 24, 0, 0, + 0, 0, 674, 0, 0, 0, 16, 0, 0, 17, + 18, -129, 0, 0, 0, 0, 0, 0, 0, 0, + -129, 0, 19, 20, 21, 0, 0, 0, 22, 0, + 0, 0, 23, 24, 25, 26, 0, 4, 27, -129, + 5, 6, 7, 8, 0, 0, 0, 0, 9, 10, + 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 13, 447, 14, 448, 5, 6, + 7, 8, 0, 0, 449, 0, 9, 10, 11, 0, + 0, 0, 0, 16, 0, 0, 549, 550, -129, 0, + 0, 0, 13, 0, 14, 447, 0, -129, 5, 6, + 7, 8, 0, 0, 449, 22, 9, 10, 11, 0, + 24, 16, 0, 0, 0, 27, 0, 0, 0, 0, + 0, 0, 13, 0, 14, 0, 5, 6, 7, 8, + 0, 0, 0, 22, 9, 10, 11, 0, 24, 0, + 0, 16, -399, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 14, 0, 0, 0, 5, 6, 7, 8, + 0, 0, 0, 22, 9, 10, 11, 0, 24, 16, + 0, 0, -399, 352, 0, 0, 5, 0, 7, 140, + 13, 0, 14, 0, 9, 10, 11, 0, 0, 0, + 0, 22, 0, 0, 0, 0, 24, 0, 0, 16, + 13, 633, 0, 15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, + 0, 22, 0, 0, 0, 0, 24, 0, 0, 0, + 0, 821, 0, 0, 0, 0, 0, 0, 0, 149, + 150, 22, 151, 152, 0, 0, 24, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 0, 0, 0, 149, + 150, 0, 151, 152, 0, 0, 172, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 0, 173, 0, 0, + 0, 0, 0, 0, 149, 150, 373, 151, 152, 0, + 174, 0, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 0, 0, 0, 149, 150, 0, 151, 152, 0, + 174, 172, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 0, 0, 0, 5, 0, 7, 288, 0, 0, + 0, 606, 9, 10, 11, 174, 5, 6, 7, 8, + 0, 0, 449, 0, 9, 10, 11, 0, 13, 0, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 14, 0, 0, 174, 0, 16, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 16, + 0, 281, 282, 0, 0, 0, 0, 0, 0, 22, + 5, 6, 7, 8, 24, 0, 667, 0, 9, 10, + 11, 22, 5, 6, 7, 8, 24, 0, 0, 0, + 9, 10, 11, 0, 13, 5, 14, 7, 288, 0, + 0, 0, 0, 9, 10, 11, 13, 0, 14, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 16, 0, 24, 0, 0, 0, 0, 0, 0, 22, 0, 0, - 0, 0, 24, 862, 0, 0, 0, 0, 0, 0, + 0, 0, 24, 866, 0, 0, 0, 0, 0, 0, 22, 0, 249, 250, 251, 24, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 249, 250, 251, 863, 252, 253, 254, 255, 256, 257, + 249, 250, 251, 867, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 14, 0, 0, 0, 0, 0, 0, 249, 250, 251, 489, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 249, 250, 251, 917, 252, 253, 254, + 263, 264, 265, 249, 250, 251, 921, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265 }; static const short yycheck[] = { 56, - 57, 16, 2, 3, 19, 20, 2, 3, 23, 209, - 25, 26, 33, 2, 3, 83, 91, 22, 85, 24, - 66, 324, 223, 38, 39, 40, 24, 105, 106, 31, - 200, 316, 286, 345, 112, 270, 203, 36, 32, 33, - 223, 177, 42, 578, 281, 123, 42, 142, 177, 416, - 145, 95, 343, 42, 53, 54, 55, 135, 349, 74, - 115, 440, 67, 208, 438, 1, 71, 702, 331, 67, - 2, 3, 571, 71, 515, 77, 194, 9, 10, 11, - 672, 80, 204, 85, 3, 4, 1, 1, 623, 88, - 40, 9, 47, 108, 40, 1, 915, 38, 3, 31, - 0, 33, 40, 239, 10, 40, 30, 61, 62, 0, - 42, 61, 78, 280, 3, 78, 40, 83, 173, 60, - 83, 800, 322, 30, 78, 944, 47, 1, 83, 3, - 4, 146, 78, 148, 84, 3, 4, 42, 283, 214, - 78, 30, 199, 78, 78, 77, 409, 61, 84, 83, - 69, 83, 27, 85, 595, 74, 357, 172, 793, 91, - 78, 84, 332, 52, 79, 84, 429, 182, 183, 423, - 185, 186, 61, 343, 357, 33, 413, 712, 84, 349, - 621, 238, 419, 557, 539, 240, 61, 62, 543, 191, - 245, 426, 247, 195, 61, 69, 30, 876, 40, 57, - 74, 69, 204, 3, 4, 47, 74, 79, 80, 208, - 142, 286, 227, 145, 271, 337, 84, 852, 3, 341, - 219, 5, 340, 7, 816, 282, 241, 61, 62, 61, - 909, 61, 62, 588, 223, 914, 591, 916, 61, 409, - 376, 3, 4, 444, 299, 30, 925, 510, 78, 40, - 513, 40, 52, 268, 269, 79, 47, 115, 47, 191, - 545, 444, 194, 195, 638, 764, 765, 52, 647, 69, - 61, 61, 204, 67, 74, 538, 61, 62, 957, 84, - 3, 4, 214, 84, 283, 50, 51, 145, 30, 346, - 1, 369, 307, 4, 5, 6, 7, 61, 665, 10, - 65, 12, 13, 14, 309, 3, 4, 69, 478, 79, - 480, 309, 74, 83, 358, 173, 360, 28, 78, 61, - 62, 61, 84, 83, 3, 4, 5, 6, 7, 386, - 3, 4, 61, 781, 7, 337, 47, 336, 61, 341, - 788, 511, 877, 513, 61, 62, 69, 78, 423, 281, - 365, 74, 83, 61, 62, 640, 492, 30, 69, 61, - 354, 78, 356, 74, 421, 223, 61, 62, 357, 78, - 605, 69, 27, 84, 9, 30, 74, 3, 433, 52, - 821, 7, 240, 38, 52, 53, 54, 245, 61, 247, - 69, 626, 83, 408, 326, 74, 532, 3, 4, 934, - 935, 74, 77, 532, 30, 337, 61, 62, 340, 341, - 425, 70, 71, 72, 79, 3, 4, 78, 83, 656, - 78, 80, 676, 79, 79, 40, 52, 83, 83, 429, - 451, 84, 437, 429, 489, 61, 62, 61, 62, 437, - 440, 299, 30, 464, 440, 79, 440, 3, 4, 650, - 61, 7, 40, 61, 766, 61, 450, 451, 3, 4, - 80, 79, 3, 69, 52, 83, 7, 650, 74, 754, - 705, 486, 608, 61, 30, 79, 571, 572, 79, 83, - 27, 413, 83, 30, 416, 30, 74, 419, 655, 30, - 80, 38, 79, 80, 661, 40, 52, 429, 356, 357, - 432, 79, 80, 344, 78, 61, 62, 52, 440, 78, - 351, 52, 657, 534, 684, 530, 61, 662, 359, 451, - 61, 70, 71, 72, 778, 78, 30, 764, 765, 74, - 40, 80, 79, 554, 771, 772, 83, 537, 78, 533, - 79, 537, 61, 62, 4, 5, 6, 7, 52, 32, - 552, 79, 12, 13, 14, 83, 78, 61, 62, 553, - 554, 127, 128, 70, 71, 72, 623, 78, 28, 571, - 572, 565, 566, 80, 79, 433, 79, 79, 83, 646, - 83, 83, 61, 651, 652, 79, 444, 47, 79, 83, - 584, 585, 10, 451, 78, 880, 642, 643, 613, 65, - 78, 676, 534, 3, 4, 537, 464, 674, 623, 69, - 3, 4, 84, 904, 74, 906, 27, 685, 9, 79, - 552, 636, 554, 623, 85, 79, 38, 623, 69, 631, - 30, 489, 79, 38, 623, 83, 40, 30, 78, 571, - 572, 78, 78, 575, 646, 78, 78, 647, 951, 78, - 7, 647, 52, 647, 656, 712, 959, 40, 657, 52, - 85, 61, 85, 662, 78, 743, 723, 84, 61, 62, - 78, 871, 674, 30, 74, 65, 534, 65, 693, 78, - 78, 5, 6, 7, 70, 71, 72, 38, 12, 13, - 14, 623, 40, 85, 80, 52, 554, 712, 78, 631, - 85, 80, 80, 778, 61, 62, 30, 80, 566, 724, - 767, 80, 733, 645, 646, 647, 80, 78, 83, 651, - 652, 726, 727, 79, 656, 78, 3, 585, 83, 727, - 79, 78, 84, 665, 904, 80, 906, 79, 732, 733, - 672, 798, 674, 743, 801, 802, 80, 743, 816, 40, - 85, 818, 809, 685, 743, 231, 597, 598, 6, 7, - 601, 80, 764, 765, 12, 13, 14, 824, 244, 771, - 772, 839, 65, 249, 250, 40, 40, 80, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 56, 57, 650, 59, 60, 61, 62, 83, 40, 856, - 61, 733, 61, 61, 4, 40, 6, 7, 79, 79, - 867, 743, 12, 13, 14, 7, 818, 658, 659, 660, - 877, 40, 663, 664, 79, 79, 16, 65, 28, 831, - 40, 83, 764, 765, 5, 6, 7, 61, 79, 771, - 772, 12, 13, 14, 61, 79, 85, 47, 689, 56, - 57, 65, 59, 60, 61, 62, 78, 80, 915, 80, - 17, 79, 877, 50, 51, 52, 53, 54, 79, 69, - 78, 78, 78, 78, 74, 733, 79, 65, 9, 79, - 80, 938, 79, 79, 816, 61, 818, 944, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 831, - 83, 79, 79, 78, 745, 746, 747, 839, 1, 78, - 3, 4, 388, 389, 79, 8, 9, 0, 11, 0, - 426, 801, 15, 332, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 511, 29, 743, 31, 87, - 33, 34, 35, 675, 785, 289, 682, 791, 425, 42, - 701, 488, 45, 480, 357, 365, 684, 50, 51, 52, - 486, 511, 581, 56, 57, 410, 877, 513, 61, 62, - 939, 941, 813, 66, 877, 68, 69, 420, 575, 432, - 73, 74, 432, 25, 77, 562, 79, 80, 81, 82, - 39, 84, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 652, 848, 839, 485, - 836, 1, 555, 3, 4, 5, 6, 7, 8, 9, - 308, 11, 12, 13, 14, 15, 502, 17, 18, 19, + 57, 16, 85, 36, 19, 20, 33, 200, 23, 83, + 25, 26, 91, 324, 24, 316, 2, 3, 2, 3, + 53, 54, 55, 38, 39, 40, 22, 209, 24, 343, + 105, 106, 31, 80, 203, 349, 177, 112, 345, 2, + 3, 286, 66, 270, 281, 2, 3, 80, 123, 177, + 223, 578, 9, 10, 11, 88, 42, 67, 42, 74, + 135, 71, 416, 223, 440, 515, 142, 95, 571, 145, + 673, 67, 704, 194, 31, 71, 33, 1, 77, 42, + 1, 344, 438, 1, 804, 42, 85, 40, 351, 10, + 115, 331, 9, 108, 204, 3, 359, 624, 239, 1, + 3, 919, 30, 40, 7, 40, 1, 3, 3, 4, + 783, 280, 61, 62, 52, 53, 54, 0, 78, 792, + 77, 27, 30, 83, 30, 78, 83, 30, 85, 78, + 948, 146, 38, 148, 91, 214, 0, 3, 4, 332, + 322, 78, 199, 78, 52, 595, 42, 597, 173, 52, + 343, 79, 80, 61, 62, 79, 349, 172, 61, 61, + 880, 78, 40, 84, 61, 797, 84, 182, 183, 409, + 185, 186, 622, 79, 69, 208, 413, 83, 423, 74, + 38, 238, 419, 61, 357, 142, 219, 714, 145, 429, + 3, 4, 191, 913, 3, 4, 195, 357, 918, 426, + 920, 557, 60, 69, 47, 204, 84, 286, 74, 929, + 3, 4, 227, 30, 271, 240, 409, 820, 84, 340, + 245, 61, 247, 40, 856, 282, 241, 337, 3, 3, + 4, 341, 27, 30, 191, 376, 283, 194, 195, 223, + 83, 961, 61, 62, 545, 61, 62, 204, 61, 61, + 283, 40, 79, 268, 269, 30, 69, 214, 47, 78, + 69, 74, 78, 766, 767, 74, 61, 62, 79, 80, + 510, 444, 648, 513, 299, 84, 69, 52, 52, 32, + 33, 74, 47, 639, 444, 478, 61, 480, 78, 346, + 30, 84, 307, 83, 369, 69, 3, 4, 538, 309, + 74, 61, 30, 336, 67, 3, 4, 5, 6, 7, + 3, 4, 666, 309, 7, 79, 3, 4, 511, 83, + 513, 61, 62, 78, 281, 84, 30, 79, 83, 386, + 358, 83, 360, 61, 62, 598, 599, 30, 337, 602, + 641, 84, 341, 30, 423, 3, 4, 78, 52, 84, + 365, 492, 83, 40, 881, 3, 4, 61, 62, 52, + 61, 78, 69, 40, 421, 52, 83, 74, 61, 326, + 47, 69, 30, 357, 61, 825, 74, 61, 62, 606, + 337, 74, 40, 340, 341, 40, 5, 74, 7, 61, + 62, 532, 47, 408, 52, 539, 659, 660, 661, 543, + 627, 664, 665, 61, 532, 79, 61, 78, 433, 83, + 425, 938, 939, 61, 61, 7, 74, 61, 3, 4, + 657, 69, 61, 686, 451, 79, 74, 437, 691, 83, + 56, 57, 677, 59, 60, 61, 62, 464, 30, 61, + 62, 437, 79, 429, 588, 30, 83, 591, 50, 51, + 79, 80, 78, 83, 440, 756, 413, 61, 62, 416, + 52, 768, 419, 65, 489, 9, 429, 52, 609, 61, + 62, 486, 429, 3, 4, 432, 61, 440, 651, 77, + 707, 127, 128, 440, 747, 748, 749, 656, 78, 74, + 78, 651, 685, 662, 451, 571, 572, 40, 1, 79, + 30, 4, 5, 6, 7, 27, 84, 534, 30, 12, + 13, 14, 61, 79, 61, 530, 38, 83, 70, 71, + 72, 80, 52, 80, 33, 28, 789, 554, 80, 766, + 767, 61, 62, 79, 79, 780, 773, 774, 83, 61, + 62, 78, 78, 78, 47, 70, 71, 72, 57, 40, + 78, 537, 79, 552, 817, 80, 83, 79, 70, 71, + 72, 83, 32, 78, 647, 79, 69, 624, 80, 83, + 78, 74, 571, 572, 537, 61, 10, 534, 652, 653, + 537, 84, 79, 884, 50, 51, 52, 53, 54, 852, + 78, 65, 675, 78, 908, 552, 910, 554, 677, 614, + 79, 354, 84, 356, 83, 27, 115, 9, 85, 624, + 79, 658, 686, 687, 571, 572, 663, 79, 575, 643, + 644, 83, 637, 3, 4, 658, 38, 7, 69, 79, + 663, 38, 895, 632, 83, 78, 145, 40, 624, 78, + 624, 70, 71, 72, 955, 78, 78, 78, 647, 40, + 30, 80, 963, 78, 78, 85, 84, 714, 657, 85, + 78, 624, 648, 78, 173, 65, 65, 624, 725, 78, + 745, 38, 52, 83, 85, 632, 675, 78, 40, 85, + 695, 61, 62, 80, 80, 648, 80, 440, 80, 646, + 647, 648, 80, 875, 78, 652, 653, 450, 451, 714, + 657, 780, 79, 78, 3, 79, 84, 80, 735, 666, + 79, 726, 769, 83, 223, 908, 673, 910, 675, 729, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 686, + 687, 240, 728, 729, 80, 78, 245, 3, 247, 822, + 40, 7, 80, 85, 65, 802, 820, 40, 805, 806, + 40, 80, 83, 40, 61, 788, 813, 61, 61, 745, + 40, 745, 79, 79, 30, 7, 40, 766, 767, 843, + 79, 828, 16, 79, 773, 774, 65, 40, 735, 61, + 533, 83, 745, 79, 79, 61, 52, 65, 745, 80, + 299, 85, 80, 78, 17, 61, 62, 5, 6, 7, + 553, 554, 79, 860, 12, 13, 14, 78, 78, 766, + 767, 79, 565, 566, 871, 79, 773, 774, 78, 65, + 9, 79, 30, 822, 881, 79, 231, 61, 83, 79, + 78, 584, 585, 5, 6, 7, 835, 78, 0, 244, + 12, 13, 14, 79, 249, 250, 79, 356, 357, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 0, 919, 820, 426, 822, 881, 332, 511, 805, + 1, 745, 87, 4, 5, 6, 7, 676, 835, 683, + 795, 12, 13, 14, 425, 942, 843, 488, 703, 357, + 365, 948, 486, 480, 289, 648, 27, 28, 1, 30, + 685, 4, 511, 6, 7, 410, 581, 38, 513, 12, + 13, 14, 6, 7, 881, 881, 47, 943, 12, 13, + 14, 420, 945, 575, 433, 28, 432, 25, 432, 562, + 61, 62, 653, 843, 555, 444, 840, 308, 69, 532, + 537, 835, 451, 74, 47, 428, 707, 428, 79, 609, + -1, -1, 83, 84, -1, 464, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 69, 70, 71, 72, + -1, 74, 376, -1, -1, -1, 79, 80, -1, -1, + 489, 734, 735, 388, 389, -1, 1, -1, 3, 4, + 5, 6, 7, 8, 9, -1, 11, 12, 13, 14, + 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, -1, -1, -1, -1, 534, -1, 42, -1, -1, + 45, -1, 47, -1, -1, 50, 51, 52, -1, -1, + -1, 56, 57, -1, -1, 554, 61, 62, -1, -1, + -1, 66, -1, 68, 69, -1, -1, 566, 73, 74, + -1, -1, 77, -1, 79, 80, 81, 82, -1, 84, + -1, -1, -1, -1, -1, -1, 585, -1, -1, -1, + 485, 48, 49, 50, 51, 52, 53, 54, 1, -1, + 3, 4, 5, 6, 7, 8, 9, 502, 11, 12, + 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, + 33, 34, 35, -1, -1, -1, -1, -1, -1, 42, + -1, -1, 45, -1, 47, -1, -1, 50, 51, 52, + -1, -1, 651, 56, 57, -1, -1, -1, 61, 62, + -1, -1, -1, 66, -1, 68, 69, -1, -1, -1, + 73, 74, -1, -1, 77, -1, 79, 80, 81, 82, + -1, 84, 47, 48, 49, 50, 51, 52, 53, 54, + 56, 57, 587, 59, 60, 61, 62, -1, -1, -1, + -1, 1, -1, 3, 4, 5, 6, 7, 8, 9, + 605, 11, 12, 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 532, 537, 831, 608, - 891, 428, 42, 428, 705, 45, 376, 47, -1, -1, + 30, 31, -1, 33, 34, 35, 735, -1, -1, -1, + -1, -1, 42, -1, -1, 45, -1, 47, -1, -1, 50, 51, 52, -1, -1, -1, 56, 57, -1, -1, -1, 61, 62, -1, -1, -1, 66, -1, 68, 69, -1, -1, -1, 73, 74, -1, -1, 77, -1, 79, - 80, 81, 82, -1, 84, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, -1, -1, - -1, 587, -1, 1, -1, 3, 4, 5, 6, 7, - 8, 9, -1, 11, 12, 13, 14, 15, 604, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, -1, 33, 34, 35, -1, -1, - -1, -1, -1, -1, 42, -1, -1, 45, -1, 47, - -1, -1, 50, 51, 52, -1, -1, -1, 56, 57, - -1, -1, -1, 61, 62, -1, -1, -1, 66, -1, - 68, 69, -1, -1, -1, 73, 74, -1, -1, 77, - -1, 79, 80, 81, 82, -1, 84, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 682, -1, -1, 1, - -1, 3, 4, 5, 6, 7, -1, -1, 10, -1, - 12, 13, 14, -1, -1, -1, 702, -1, -1, -1, - -1, -1, -1, 709, -1, -1, 28, -1, 30, -1, - -1, -1, -1, 719, -1, -1, 1, -1, 3, 4, - 5, 6, 7, 8, 9, 47, 11, 12, 13, 14, - 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 69, 33, 34, - 35, -1, 74, 759, -1, -1, 78, 42, -1, -1, - 45, -1, 47, -1, -1, 50, 51, 52, -1, -1, - -1, 56, 57, -1, -1, 781, 61, 62, 784, -1, - -1, 66, 788, 68, 69, 791, -1, 793, 73, 74, - -1, -1, 77, -1, 79, -1, 81, 82, -1, 84, - -1, -1, -1, 1, -1, 3, 4, -1, -1, -1, - 8, 9, -1, 11, -1, -1, -1, 15, -1, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - -1, 29, 838, 31, -1, 33, 34, 35, -1, -1, - -1, -1, -1, 849, 42, -1, 852, 45, -1, -1, - -1, -1, 50, 51, 52, -1, 862, -1, 56, 57, - -1, -1, -1, 61, 62, -1, -1, -1, 66, -1, - 68, 69, -1, -1, -1, 73, 74, -1, -1, 77, - -1, 79, -1, 81, 82, 1, 84, 3, 4, -1, - -1, -1, 8, 9, -1, 11, -1, -1, -1, 15, - -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, -1, 29, -1, 31, -1, 33, 34, 35, - -1, -1, -1, -1, -1, -1, 42, -1, -1, 45, - -1, -1, -1, -1, 50, 51, 52, -1, -1, -1, - 56, 57, -1, -1, -1, 61, 62, -1, -1, -1, - 66, -1, 68, 69, -1, -1, -1, 73, 74, -1, - -1, 77, -1, 79, -1, 81, 82, 1, 84, 3, + -1, 81, 82, -1, 84, -1, -1, 1, 683, 3, 4, -1, 6, 7, 8, 9, -1, 11, 12, 13, - 14, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, -1, 28, 29, -1, 31, -1, 33, - 34, 35, -1, -1, -1, -1, -1, -1, 42, -1, + 14, -1, -1, -1, -1, -1, -1, -1, -1, 704, + -1, -1, -1, -1, 28, 29, 711, 31, -1, 33, + 34, 35, -1, -1, -1, -1, 721, -1, 42, -1, -1, 45, -1, 47, -1, -1, 50, 51, 52, -1, -1, -1, 56, 57, -1, -1, -1, 61, 62, -1, -1, -1, 66, -1, 68, 69, -1, -1, -1, 73, - 74, -1, -1, 77, -1, -1, -1, 81, 82, 1, - 84, 3, 4, -1, -1, -1, 8, 9, -1, 11, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 48, 49, 50, 51, 52, 53, 54, 29, -1, 31, - -1, 33, 34, 35, -1, -1, -1, -1, -1, -1, - 42, -1, -1, 45, -1, -1, -1, -1, 50, 51, - 52, -1, -1, -1, 56, 57, -1, -1, 60, 61, - 62, -1, -1, -1, 66, -1, 68, 69, -1, -1, - -1, 73, 74, -1, -1, 77, -1, -1, 80, 81, - 82, 1, 84, 3, 4, -1, -1, -1, 8, 9, - -1, 11, 47, 48, 49, 50, 51, 52, 53, 54, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, - -1, 31, -1, 33, 34, 35, -1, -1, -1, -1, - -1, -1, 42, -1, -1, 45, -1, -1, -1, -1, - 50, 51, 52, -1, -1, -1, 56, 57, -1, -1, - 60, 61, 62, -1, -1, -1, 66, -1, 68, 69, - -1, -1, -1, 73, 74, -1, -1, 77, -1, -1, - 80, 81, 82, 1, 84, 3, -1, -1, -1, -1, - 8, 9, -1, 11, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 29, -1, 31, -1, 33, 34, 35, -1, -1, - 38, -1, -1, -1, 42, -1, -1, 45, -1, -1, - -1, -1, 50, 51, 52, -1, -1, -1, 56, 57, - -1, -1, 60, 61, 62, -1, -1, -1, 66, -1, - 68, -1, -1, -1, -1, 73, -1, -1, -1, 77, - 1, -1, 3, 81, 82, -1, 84, 8, 9, -1, - 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, + 74, -1, -1, 77, -1, -1, 761, 81, 82, -1, + 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1, -1, -1, 4, 5, 6, 7, 783, -1, + 10, 786, 12, 13, 14, -1, -1, 792, -1, -1, + 795, -1, 797, -1, -1, -1, -1, -1, 28, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, + 3, 4, -1, -1, -1, 8, 9, 47, 11, -1, + -1, -1, 15, -1, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 842, 31, 69, + 33, 34, 35, -1, 74, -1, -1, -1, 853, 42, + -1, 856, 45, -1, 84, -1, -1, 50, 51, 52, + -1, 866, -1, 56, 57, -1, -1, -1, 61, 62, + -1, -1, -1, 66, -1, 68, 69, -1, -1, -1, + 73, 74, -1, -1, 77, -1, 79, 80, 81, 82, + 1, 84, 3, 4, -1, -1, -1, 8, 9, -1, + 11, -1, -1, -1, 15, -1, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, -1, 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, -1, 42, -1, -1, 45, -1, -1, -1, -1, 50, 51, 52, -1, -1, -1, 56, 57, -1, -1, -1, - 61, 62, -1, -1, -1, 66, -1, 68, -1, -1, - -1, -1, 73, -1, -1, -1, 77, 1, -1, 3, - 81, 82, -1, 84, 8, 9, -1, 11, 1, -1, - 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, - 13, 14, -1, -1, -1, 29, -1, 31, -1, 33, - 34, 35, -1, -1, -1, 28, -1, 30, 42, -1, - -1, 45, -1, -1, -1, -1, 50, 51, 52, -1, - -1, -1, 56, 57, 47, -1, -1, 61, 62, 52, - -1, -1, 66, -1, 68, -1, -1, -1, 61, 73, - -1, -1, -1, 77, -1, -1, 69, 81, 82, 1, - 84, 74, 4, 5, 6, 7, 79, -1, -1, -1, - 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 27, 28, 1, 30, -1, - 4, 5, 6, 7, -1, -1, 38, -1, 12, 13, - 14, 4, 5, 6, 7, 47, -1, -1, -1, 12, - 13, 14, -1, 27, 28, -1, 30, -1, -1, 61, - 62, -1, -1, -1, 38, 28, -1, 69, -1, -1, - -1, -1, 74, 47, -1, -1, -1, 79, -1, -1, - -1, 83, 84, -1, 47, -1, 1, 61, 62, 4, - 5, 6, 7, -1, -1, 69, -1, 12, 13, 14, - 74, -1, -1, -1, -1, 79, 69, -1, -1, 83, - 84, 74, 27, 28, 1, 30, -1, 4, 5, 6, - 7, -1, -1, 38, -1, 12, 13, 14, -1, -1, - -1, -1, 47, -1, 1, -1, -1, 4, 5, 6, - 7, 28, -1, 30, -1, 12, 13, 14, -1, -1, - -1, -1, -1, -1, 69, -1, -1, -1, -1, 74, - 47, 28, -1, 30, 79, -1, -1, -1, 83, 84, - -1, -1, 1, -1, -1, 4, 5, 6, 7, -1, - 47, -1, 69, 12, 13, 14, -1, 74, -1, -1, - -1, -1, -1, -1, -1, 3, -1, 84, -1, 28, - 8, 9, 69, 11, -1, -1, -1, 74, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 84, 47, -1, - -1, 29, -1, 31, -1, 33, 34, 35, -1, -1, - -1, -1, -1, -1, 42, -1, -1, 45, -1, -1, - 69, -1, 50, 51, 52, 74, -1, -1, 56, 57, - -1, -1, -1, 61, 62, 84, 3, -1, 66, -1, - 68, 8, 9, -1, 11, 73, -1, -1, -1, 77, - -1, -1, -1, 81, 82, -1, -1, 85, -1, -1, + 61, 62, -1, -1, -1, 66, -1, 68, 69, -1, + -1, -1, 73, 74, -1, -1, 77, -1, 79, -1, + 81, 82, 1, 84, 3, 4, -1, -1, -1, 8, + 9, -1, 11, -1, -1, -1, 15, -1, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, + 29, -1, 31, -1, 33, 34, 35, -1, -1, -1, + -1, -1, -1, 42, -1, -1, 45, -1, -1, -1, + -1, 50, 51, 52, -1, -1, -1, 56, 57, -1, + -1, -1, 61, 62, -1, -1, -1, 66, -1, 68, + 69, -1, -1, -1, 73, 74, -1, -1, 77, -1, + 79, -1, 81, 82, 1, 84, 3, 4, -1, -1, + -1, 8, 9, 39, 11, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, -1, 42, -1, -1, 45, -1, -1, -1, -1, 50, 51, 52, -1, -1, -1, 56, - 57, -1, -1, -1, 61, 62, -1, 3, -1, 66, + 57, -1, -1, 60, 61, 62, -1, -1, -1, 66, + -1, 68, 69, -1, -1, -1, 73, 74, -1, -1, + 77, -1, -1, 80, 81, 82, 1, 84, 3, 4, + -1, -1, -1, 8, 9, -1, 11, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, + 35, -1, -1, -1, -1, -1, -1, 42, -1, -1, + 45, -1, -1, -1, -1, 50, 51, 52, -1, -1, + -1, 56, 57, -1, -1, 60, 61, 62, -1, -1, + -1, 66, -1, 68, 69, -1, -1, -1, 73, 74, + -1, -1, 77, -1, -1, 80, 81, 82, 1, 84, + 3, -1, -1, -1, -1, 8, 9, -1, 11, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, -1, -1, -1, -1, -1, 29, -1, 31, -1, + 33, 34, 35, -1, -1, 38, -1, -1, -1, 42, + -1, -1, 45, -1, -1, -1, -1, 50, 51, 52, + -1, -1, -1, 56, 57, -1, -1, 60, 61, 62, + -1, -1, -1, 66, -1, 68, -1, -1, -1, -1, + 73, -1, -1, -1, 77, 1, -1, 3, 81, 82, + -1, 84, 8, 9, -1, 11, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, -1, -1, -1, + -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, + -1, -1, -1, -1, -1, -1, 42, -1, -1, 45, + -1, -1, -1, -1, 50, 51, 52, -1, -1, -1, + 56, 57, -1, -1, -1, 61, 62, -1, -1, -1, + 66, -1, 68, -1, -1, -1, -1, 73, -1, -1, + -1, 77, 1, -1, 3, 81, 82, -1, 84, 8, + 9, -1, 11, 1, -1, 3, 4, 5, 6, 7, + -1, -1, -1, -1, 12, 13, 14, -1, -1, -1, + 29, -1, 31, -1, 33, 34, 35, -1, -1, -1, + 28, -1, 30, 42, -1, -1, 45, -1, -1, -1, + -1, 50, 51, 52, -1, -1, -1, 56, 57, 47, + -1, -1, 61, 62, 52, -1, -1, 66, -1, 68, + -1, -1, -1, 61, 73, -1, -1, -1, 77, -1, + -1, 69, 81, 82, 1, 84, 74, 4, 5, 6, + 7, 79, -1, -1, -1, 12, 13, 14, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 27, 28, 1, 30, -1, 4, 5, 6, 7, -1, + -1, 38, -1, 12, 13, 14, 4, 5, 6, 7, + 47, -1, -1, -1, 12, 13, 14, -1, 27, 28, + -1, 30, -1, -1, 61, 62, -1, -1, -1, 38, + 28, -1, 69, -1, -1, -1, -1, 74, 47, -1, + -1, -1, 79, -1, -1, -1, 83, 84, -1, 47, + 1, -1, -1, 4, 5, 6, 7, -1, -1, -1, + 69, 12, 13, 14, -1, 74, -1, -1, -1, -1, + 79, 69, -1, -1, 83, 84, 74, 28, 1, 30, + -1, 4, 5, 6, 7, -1, -1, -1, -1, 12, + 13, 14, 4, -1, 6, 7, 47, -1, -1, -1, + 12, 13, 14, -1, -1, 28, 3, 30, -1, -1, + -1, 8, 9, -1, 11, -1, 28, -1, 69, -1, + -1, -1, -1, 74, 47, -1, -1, -1, -1, -1, + -1, -1, 29, 84, 31, 47, 33, 34, 35, -1, + -1, -1, -1, -1, -1, 42, 69, -1, 45, -1, + -1, 74, -1, 50, 51, 52, -1, 69, -1, 56, + 57, 84, 74, -1, 61, 62, -1, 3, -1, 66, -1, 68, 8, 9, -1, 11, 73, -1, -1, -1, 77, -1, -1, -1, 81, 82, -1, -1, 85, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, @@ -1590,142 +1588,148 @@ static const short yycheck[] = { 56, 34, 35, -1, -1, -1, -1, -1, -1, 42, -1, -1, 45, -1, -1, -1, -1, 50, 51, 52, -1, -1, -1, 56, 57, -1, -1, -1, 61, 62, -1, - -1, -1, 66, -1, 68, -1, -1, -1, -1, 73, + 3, -1, 66, -1, 68, 8, 9, -1, 11, 73, -1, -1, -1, 77, -1, -1, -1, 81, 82, -1, - -1, 85, 3, 4, 5, 6, 7, 8, 9, -1, - 11, 12, 13, 14, 15, -1, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, - -1, 42, -1, -1, 45, -1, 47, -1, -1, 50, - 51, 52, -1, -1, -1, 56, 57, -1, -1, -1, - 61, 62, -1, -1, -1, 66, -1, 68, 69, -1, - -1, -1, 73, 74, -1, -1, 77, -1, 79, -1, - 81, 82, -1, 84, 3, 4, -1, -1, -1, 8, - 9, -1, 11, -1, -1, -1, 15, -1, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, - 29, -1, 31, -1, 33, 34, 35, -1, -1, -1, - -1, -1, -1, 42, -1, -1, 45, -1, -1, -1, - -1, 50, 51, 52, -1, -1, -1, 56, 57, -1, - 3, -1, 61, 62, -1, 8, 9, 66, 11, 68, - 69, -1, -1, -1, 73, 74, -1, -1, 77, -1, - 79, -1, 81, 82, -1, 84, 29, -1, 31, -1, + -1, 85, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, -1, 42, -1, -1, 45, -1, -1, -1, -1, 50, 51, 52, -1, -1, -1, 56, 57, -1, -1, -1, 61, 62, -1, -1, -1, 66, -1, 68, -1, -1, -1, -1, 73, -1, -1, -1, 77, -1, -1, -1, 81, 82, - -1, 84, 3, 4, -1, 6, 7, -1, -1, -1, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 40, - 11, 12, 13, 14, 4, 5, 6, 7, -1, -1, - -1, -1, 12, 13, 14, -1, -1, 28, 29, 30, - 31, -1, 33, 34, 35, -1, -1, -1, 28, -1, - 30, 42, -1, 74, 45, -1, 47, -1, -1, 50, - 51, 52, 83, -1, -1, 56, 57, 47, -1, -1, - 61, 62, -1, -1, -1, 66, -1, 68, 69, -1, - -1, -1, 73, 74, -1, -1, 77, -1, -1, 69, - 81, 82, 3, 4, 74, 6, 7, 8, 9, 79, - 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 28, 29, -1, - 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, - -1, 42, -1, -1, 45, -1, 47, -1, -1, 50, - 51, 52, -1, -1, -1, 56, 57, -1, 3, -1, - 61, 62, -1, 8, 9, 66, 11, 68, 69, -1, - -1, -1, 73, 74, -1, -1, 77, -1, -1, -1, - 81, 82, -1, -1, 29, -1, 31, -1, 33, 34, - 35, -1, -1, -1, -1, -1, -1, 42, -1, -1, - 45, -1, -1, -1, -1, 50, 51, 52, -1, -1, - -1, 56, 57, -1, 3, -1, 61, 62, -1, 8, - 9, 66, 11, 68, 69, -1, -1, -1, 73, -1, - -1, -1, 77, -1, -1, -1, 81, 82, -1, -1, - 29, -1, 31, -1, 33, 34, 35, -1, -1, -1, - -1, -1, -1, 42, -1, -1, 45, -1, -1, -1, - -1, 50, 51, 52, -1, -1, -1, 56, 57, -1, - 3, -1, 61, 62, -1, 8, 9, 66, 11, 68, - -1, -1, -1, -1, 73, -1, -1, -1, 77, -1, - 79, -1, 81, 82, -1, -1, 29, -1, 31, -1, - 33, 34, 35, -1, -1, -1, -1, -1, -1, 42, - -1, -1, 45, -1, -1, -1, -1, 50, 51, 52, - -1, -1, -1, 56, 57, -1, 3, -1, 61, 62, - -1, 8, 9, 66, 11, 68, -1, -1, -1, -1, - 73, -1, -1, -1, 77, -1, -1, -1, 81, 82, - -1, -1, 29, -1, 31, -1, 33, 34, 35, -1, - -1, -1, -1, -1, -1, 42, -1, -1, 45, -1, - -1, -1, -1, 50, 51, 52, -1, -1, -1, 56, - 57, -1, 3, -1, 61, 62, -1, 8, 9, 66, - 11, 68, -1, -1, -1, -1, 73, -1, -1, -1, - 77, -1, -1, -1, 81, 82, -1, -1, 29, -1, - 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, - -1, 42, -1, -1, 45, -1, -1, -1, -1, 50, - 51, 52, -1, -1, -1, 56, 57, -1, 3, -1, - 61, 62, -1, 8, 9, 66, 11, 68, -1, -1, - -1, -1, 73, -1, -1, -1, 77, -1, -1, -1, - 81, 82, -1, -1, 29, -1, 31, -1, 33, 34, - 35, -1, -1, -1, -1, -1, -1, 42, -1, -1, - 45, -1, -1, -1, -1, 50, 51, 52, -1, -1, - -1, 56, 57, -1, -1, -1, 61, 62, -1, -1, - -1, 66, -1, 68, -1, -1, -1, -1, 73, -1, - -1, -1, 77, -1, -1, 1, 81, 82, 4, -1, - 6, 7, -1, -1, -1, -1, 12, 13, 14, -1, - -1, -1, 1, -1, -1, 4, -1, 6, 7, -1, - -1, -1, 28, 12, 13, 14, -1, -1, -1, -1, - -1, -1, 1, -1, -1, 4, -1, 6, 7, 28, - -1, 47, -1, 12, 13, 14, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 47, 28, - -1, -1, 31, 69, 70, 71, 72, -1, 74, -1, - -1, -1, -1, 79, 80, -1, -1, -1, 47, -1, - 69, 70, 71, 72, -1, 74, -1, -1, -1, -1, - 79, 80, -1, -1, -1, -1, -1, -1, -1, -1, - 69, -1, -1, -1, -1, 74, -1, -1, -1, -1, - 79, 80, 1, -1, 3, 4, 5, 6, 7, -1, - -1, -1, -1, 12, 13, 14, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 27, 28, - -1, 30, 31, -1, -1, 4, 5, 6, 7, -1, - -1, 10, -1, 12, 13, 14, -1, -1, 47, -1, - -1, 50, 51, 52, -1, -1, -1, -1, -1, 28, - -1, 30, 61, -1, 63, 64, 65, -1, -1, -1, - 69, -1, -1, -1, 73, 74, 75, 76, 47, 1, - 79, 3, 4, 5, 6, 7, -1, -1, -1, -1, - 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, - 69, -1, -1, -1, -1, 74, 28, 1, 30, -1, - 4, 5, 6, 7, -1, -1, 10, -1, 12, 13, - 14, -1, -1, -1, -1, 47, -1, -1, 50, 51, - 52, -1, -1, -1, 28, -1, 30, -1, -1, 61, - 4, 5, 6, 7, -1, -1, -1, 69, 12, 13, - 14, -1, 74, 47, -1, -1, -1, 79, -1, -1, - -1, -1, -1, -1, 28, -1, 30, -1, 4, 5, - 6, 7, -1, -1, -1, 69, 12, 13, 14, -1, - 74, -1, -1, 47, 78, -1, -1, -1, -1, -1, - 1, -1, 28, 4, 30, 6, 7, -1, -1, -1, - -1, 12, 13, 14, -1, 69, -1, -1, -1, -1, - 74, 47, -1, -1, -1, 79, -1, 28, -1, -1, - 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 69, -1, -1, 47, -1, 74, -1, - -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 3, 4, 69, 6, - 7, -1, -1, 74, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, -1, -1, -1, 3, 4, -1, 6, - 7, -1, -1, 40, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, -1, 61, -1, -1, -1, -1, -1, - -1, 3, 4, 40, 6, 7, -1, 74, -1, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, - -1, 3, 4, -1, 6, 7, -1, 74, 40, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, - -1, 4, -1, 6, 7, -1, -1, -1, 40, 12, - 13, 14, 74, 4, 5, 6, 7, -1, -1, 10, - -1, 12, 13, 14, -1, 28, -1, 30, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, - -1, -1, 74, -1, 47, -1, -1, -1, -1, 52, - -1, -1, -1, -1, -1, -1, 47, -1, 61, 62, - 4, 5, 6, 7, -1, -1, 69, -1, 12, 13, - 14, 74, 4, -1, 6, 7, -1, -1, 69, -1, - 12, 13, 14, 74, 28, 4, 30, 6, 7, -1, - -1, -1, -1, 12, 13, 14, 28, -1, -1, -1, + -1, -1, 85, 3, 4, 5, 6, 7, 8, 9, + -1, 11, 12, 13, 14, 15, -1, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, -1, 33, 34, 35, -1, -1, -1, -1, + -1, -1, 42, -1, -1, 45, -1, 47, -1, -1, + 50, 51, 52, -1, -1, -1, 56, 57, -1, -1, + -1, 61, 62, -1, -1, -1, 66, -1, 68, 69, + -1, -1, -1, 73, 74, -1, -1, 77, -1, 79, + -1, 81, 82, -1, 84, 3, 4, -1, -1, -1, + 8, 9, -1, 11, -1, -1, -1, 15, -1, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, -1, 31, -1, 33, 34, 35, -1, -1, + -1, -1, -1, -1, 42, -1, -1, 45, -1, -1, + -1, -1, 50, 51, 52, -1, -1, -1, 56, 57, + -1, 3, -1, 61, 62, -1, 8, 9, 66, 11, + 68, 69, -1, -1, -1, 73, 74, -1, -1, 77, + -1, 79, -1, 81, 82, -1, 84, 29, -1, 31, + -1, 33, 34, 35, -1, -1, -1, -1, -1, -1, + 42, -1, -1, 45, -1, -1, -1, -1, 50, 51, + 52, -1, -1, -1, 56, 57, -1, -1, -1, 61, + 62, -1, -1, -1, 66, -1, 68, -1, -1, -1, + -1, 73, -1, -1, -1, 77, -1, -1, -1, 81, + 82, -1, 84, 3, 4, -1, 6, 7, -1, -1, + -1, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 40, 11, 12, 13, 14, 4, 5, 6, 7, -1, + -1, -1, -1, 12, 13, 14, -1, -1, 28, 29, + 30, 31, -1, 33, 34, 35, -1, -1, -1, 28, + -1, 30, 42, -1, 74, 45, -1, 47, -1, -1, + 50, 51, 52, 83, -1, -1, 56, 57, 47, -1, + -1, 61, 62, -1, -1, -1, 66, -1, 68, 69, + -1, -1, -1, 73, 74, -1, -1, 77, -1, -1, + 69, 81, 82, 3, 4, 74, 6, 7, 8, 9, + 79, 11, 12, 13, 14, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, + -1, 31, -1, 33, 34, 35, -1, -1, -1, -1, + -1, -1, 42, -1, -1, 45, -1, 47, -1, -1, + 50, 51, 52, -1, -1, -1, 56, 57, -1, 3, + -1, 61, 62, -1, 8, 9, 66, 11, 68, 69, + -1, -1, -1, 73, 74, -1, -1, 77, -1, -1, + -1, 81, 82, -1, -1, 29, -1, 31, -1, 33, + 34, 35, -1, -1, -1, -1, -1, -1, 42, -1, + -1, 45, -1, -1, -1, -1, 50, 51, 52, -1, + -1, -1, 56, 57, -1, 3, -1, 61, 62, -1, + 8, 9, 66, 11, 68, 69, -1, -1, -1, 73, + -1, -1, -1, 77, -1, -1, -1, 81, 82, -1, + -1, 29, -1, 31, -1, 33, 34, 35, -1, -1, + -1, -1, -1, -1, 42, -1, -1, 45, -1, -1, + -1, -1, 50, 51, 52, -1, -1, -1, 56, 57, + -1, 3, -1, 61, 62, -1, 8, 9, 66, 11, + 68, -1, -1, -1, -1, 73, -1, -1, -1, 77, + -1, 79, -1, 81, 82, -1, -1, 29, -1, 31, + -1, 33, 34, 35, -1, -1, -1, -1, -1, -1, + 42, -1, -1, 45, -1, -1, -1, -1, 50, 51, + 52, -1, -1, -1, 56, 57, -1, 3, -1, 61, + 62, -1, 8, 9, 66, 11, 68, -1, -1, -1, + -1, 73, -1, -1, -1, 77, -1, -1, -1, 81, + 82, -1, -1, 29, -1, 31, -1, 33, 34, 35, + -1, -1, -1, -1, -1, -1, 42, -1, -1, 45, + -1, -1, -1, -1, 50, 51, 52, -1, -1, -1, + 56, 57, -1, 3, -1, 61, 62, -1, 8, 9, + 66, 11, 68, -1, -1, -1, -1, 73, -1, -1, + -1, 77, -1, -1, -1, 81, 82, -1, -1, 29, + -1, 31, -1, 33, 34, 35, -1, -1, -1, -1, + -1, -1, 42, -1, -1, 45, -1, -1, -1, -1, + 50, 51, 52, -1, -1, -1, 56, 57, -1, 3, + -1, 61, 62, -1, 8, 9, 66, 11, 68, -1, + -1, -1, -1, 73, -1, -1, -1, 77, -1, -1, + -1, 81, 82, -1, -1, 29, -1, 31, -1, 33, + 34, 35, -1, -1, -1, -1, -1, -1, 42, -1, + -1, 45, -1, -1, -1, -1, 50, 51, 52, -1, + -1, -1, 56, 57, -1, -1, -1, 61, 62, -1, + -1, -1, 66, -1, 68, -1, -1, -1, -1, 73, + -1, -1, -1, 77, -1, -1, 1, 81, 82, 4, + 1, 6, 7, 4, -1, 6, 7, 12, 13, 14, + -1, 12, 13, 14, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 28, -1, -1, -1, 28, -1, 4, + 31, 6, 7, -1, -1, -1, -1, 12, 13, 14, + -1, -1, 47, -1, -1, -1, 47, 4, 5, 6, + 7, -1, -1, 28, -1, 12, 13, 14, -1, -1, + -1, -1, -1, -1, 69, 70, 71, 72, 69, 74, + -1, 28, 47, 74, 79, 80, -1, -1, 79, 80, + 1, -1, 3, 4, 5, 6, 7, -1, -1, -1, + 47, 12, 13, 14, 69, -1, -1, -1, -1, 74, + -1, -1, -1, -1, 79, 80, 27, 28, -1, 30, + 31, -1, 69, -1, -1, -1, -1, 74, -1, -1, + -1, -1, 79, -1, -1, -1, 47, -1, -1, 50, + 51, 52, -1, -1, -1, -1, -1, -1, -1, -1, + 61, -1, 63, 64, 65, -1, -1, -1, 69, -1, + -1, -1, 73, 74, 75, 76, -1, 1, 79, 3, + 4, 5, 6, 7, -1, -1, -1, -1, 12, 13, + 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 28, 1, 30, 3, 4, 5, + 6, 7, -1, -1, 10, -1, 12, 13, 14, -1, + -1, -1, -1, 47, -1, -1, 50, 51, 52, -1, + -1, -1, 28, -1, 30, 1, -1, 61, 4, 5, + 6, 7, -1, -1, 10, 69, 12, 13, 14, -1, + 74, 47, -1, -1, -1, 79, -1, -1, -1, -1, + -1, -1, 28, -1, 30, -1, 4, 5, 6, 7, + -1, -1, -1, 69, 12, 13, 14, -1, 74, -1, + -1, 47, 78, -1, -1, -1, -1, -1, -1, -1, + 28, -1, 30, -1, -1, -1, 4, 5, 6, 7, + -1, -1, -1, 69, 12, 13, 14, -1, 74, 47, + -1, -1, 78, 1, -1, -1, 4, -1, 6, 7, + 28, -1, 30, -1, 12, 13, 14, -1, -1, -1, + -1, 69, -1, -1, -1, -1, 74, -1, -1, 47, + 28, 79, -1, 31, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, + -1, 69, -1, -1, -1, -1, 74, -1, -1, -1, + -1, 79, -1, -1, -1, -1, -1, -1, -1, 3, + 4, 69, 6, 7, -1, -1, 74, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, -1, -1, -1, 3, + 4, -1, 6, 7, -1, -1, 40, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 61, -1, -1, + -1, -1, -1, -1, 3, 4, 40, 6, 7, -1, + 74, -1, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, -1, -1, -1, 3, 4, -1, 6, 7, -1, + 74, 40, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, -1, -1, -1, 4, -1, 6, 7, -1, -1, + -1, 40, 12, 13, 14, 74, 4, 5, 6, 7, + -1, -1, 10, -1, 12, 13, 14, -1, 28, -1, + 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 28, -1, 30, -1, -1, 74, -1, 47, -1, -1, + -1, -1, 52, -1, -1, -1, -1, -1, -1, 47, + -1, 61, 62, -1, -1, -1, -1, -1, -1, 69, + 4, 5, 6, 7, 74, -1, 10, -1, 12, 13, + 14, 69, 4, 5, 6, 7, 74, -1, -1, -1, + 12, 13, 14, -1, 28, 4, 30, 6, 7, -1, + -1, -1, -1, 12, 13, 14, 28, -1, 30, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, -1, -1, 47, -1, @@ -3567,13 +3571,22 @@ case 278: break;} case 279: #line 1541 "objc-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids member declarations with no members"); - shadow_tag(yyvsp[0].ttype); - yyval.ttype = NULL_TREE; ; +{ + /* Support for unnamed structs or unions as members of + structs or unions (which is [a] useful and [b] supports + MS P-SDK). */ + if (pedantic) + pedwarn ("ANSI C doesn't support unnamed structs/unions"); + + yyval.ttype = grokfield(yyvsp[-2].filename, yyvsp[-1].lineno, NULL, current_declspecs, NULL_TREE); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary (yyvsp[-3].itype); + ; break;} case 280: -#line 1546 "objc-parse.y" +#line 1555 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; current_declspecs = TREE_VALUE (declspec_stack); prefix_attributes = TREE_PURPOSE (declspec_stack); @@ -3581,144 +3594,144 @@ case 280: resume_momentary (yyvsp[-1].itype); ; break;} case 281: -#line 1552 "objc-parse.y" +#line 1561 "objc-parse.y" { if (pedantic) pedwarn ("ANSI C forbids member declarations with no members"); shadow_tag(yyvsp[0].ttype); yyval.ttype = NULL_TREE; ; break;} case 282: -#line 1557 "objc-parse.y" +#line 1566 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} case 283: -#line 1559 "objc-parse.y" +#line 1568 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; RESTORE_WARN_FLAGS (yyvsp[-1].itype); ; break;} case 285: -#line 1566 "objc-parse.y" +#line 1575 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 286: -#line 1571 "objc-parse.y" +#line 1580 "objc-parse.y" { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE); decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 287: -#line 1575 "objc-parse.y" +#line 1584 "objc-parse.y" { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype); decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 288: -#line 1578 "objc-parse.y" +#line 1587 "objc-parse.y" { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype); decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 290: -#line 1590 "objc-parse.y" +#line 1599 "objc-parse.y" { if (yyvsp[-2].ttype == error_mark_node) yyval.ttype = yyvsp[-2].ttype; else yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ; break;} case 291: -#line 1595 "objc-parse.y" +#line 1604 "objc-parse.y" { yyval.ttype = error_mark_node; ; break;} case 292: -#line 1601 "objc-parse.y" +#line 1610 "objc-parse.y" { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ; break;} case 293: -#line 1603 "objc-parse.y" +#line 1612 "objc-parse.y" { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 294: -#line 1608 "objc-parse.y" +#line 1617 "objc-parse.y" { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 295: -#line 1610 "objc-parse.y" +#line 1619 "objc-parse.y" { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 296: -#line 1615 "objc-parse.y" +#line 1624 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} case 298: -#line 1621 "objc-parse.y" +#line 1630 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; break;} case 299: -#line 1623 "objc-parse.y" +#line 1632 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 300: -#line 1628 "objc-parse.y" +#line 1637 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} case 301: -#line 1630 "objc-parse.y" +#line 1639 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 302: -#line 1635 "objc-parse.y" +#line 1644 "objc-parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 303: -#line 1638 "objc-parse.y" +#line 1647 "objc-parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 304: -#line 1640 "objc-parse.y" +#line 1649 "objc-parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 305: -#line 1642 "objc-parse.y" +#line 1651 "objc-parse.y" { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 306: -#line 1644 "objc-parse.y" +#line 1653 "objc-parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 307: -#line 1646 "objc-parse.y" +#line 1655 "objc-parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; break;} case 308: -#line 1648 "objc-parse.y" +#line 1657 "objc-parse.y" { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; break;} case 309: -#line 1650 "objc-parse.y" +#line 1659 "objc-parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} case 310: -#line 1652 "objc-parse.y" +#line 1661 "objc-parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ; break;} case 311: -#line 1656 "objc-parse.y" +#line 1665 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 312: -#line 1665 "objc-parse.y" +#line 1674 "objc-parse.y" { if (pedantic && yyvsp[0].ends_in_label) pedwarn ("ANSI C forbids label at end of compound statement"); ; break;} case 314: -#line 1674 "objc-parse.y" +#line 1683 "objc-parse.y" { yyval.ends_in_label = yyvsp[0].ends_in_label; ; break;} case 315: -#line 1676 "objc-parse.y" +#line 1685 "objc-parse.y" { yyval.ends_in_label = 0; ; break;} case 319: -#line 1688 "objc-parse.y" +#line 1697 "objc-parse.y" { emit_line_note (input_filename, lineno); pushlevel (0); clear_last_expr (); @@ -3729,12 +3742,12 @@ case 319: ; break;} case 321: -#line 1703 "objc-parse.y" +#line 1712 "objc-parse.y" { if (pedantic) pedwarn ("ANSI C forbids label declarations"); ; break;} case 324: -#line 1714 "objc-parse.y" +#line 1723 "objc-parse.y" { tree link; for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) { @@ -3745,19 +3758,19 @@ case 324: ; break;} case 325: -#line 1728 "objc-parse.y" +#line 1737 "objc-parse.y" {; break;} case 327: -#line 1732 "objc-parse.y" +#line 1741 "objc-parse.y" { compstmt_count++; ; break;} case 328: -#line 1735 "objc-parse.y" +#line 1744 "objc-parse.y" { yyval.ttype = convert (void_type_node, integer_zero_node); ; break;} case 329: -#line 1737 "objc-parse.y" +#line 1746 "objc-parse.y" { emit_line_note (input_filename, lineno); expand_end_bindings (getdecls (), 1, 0); yyval.ttype = poplevel (1, 1, 0); @@ -3767,7 +3780,7 @@ case 329: pop_momentary (); ; break;} case 330: -#line 1745 "objc-parse.y" +#line 1754 "objc-parse.y" { emit_line_note (input_filename, lineno); expand_end_bindings (getdecls (), kept_level_p (), 0); yyval.ttype = poplevel (kept_level_p (), 0, 0); @@ -3777,7 +3790,7 @@ case 330: pop_momentary (); ; break;} case 331: -#line 1753 "objc-parse.y" +#line 1762 "objc-parse.y" { emit_line_note (input_filename, lineno); expand_end_bindings (getdecls (), kept_level_p (), 0); yyval.ttype = poplevel (kept_level_p (), 0, 0); @@ -3787,7 +3800,7 @@ case 331: pop_momentary (); ; break;} case 332: -#line 1764 "objc-parse.y" +#line 1773 "objc-parse.y" { if (current_function_decl == 0) { error ("braced-group within expression allowed only inside a function"); @@ -3805,11 +3818,11 @@ case 332: ; break;} case 333: -#line 1781 "objc-parse.y" +#line 1790 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 336: -#line 1795 "objc-parse.y" +#line 1804 "objc-parse.y" { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, compstmt_count); @@ -3819,7 +3832,7 @@ case 336: position_after_white_space (); ; break;} case 337: -#line 1809 "objc-parse.y" +#line 1818 "objc-parse.y" { stmt_count++; compstmt_count++; emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); @@ -3829,43 +3842,43 @@ case 337: position_after_white_space (); ; break;} case 338: -#line 1817 "objc-parse.y" +#line 1826 "objc-parse.y" { expand_loop_continue_here (); ; break;} case 339: -#line 1821 "objc-parse.y" +#line 1830 "objc-parse.y" { yyval.filename = input_filename; ; break;} case 340: -#line 1825 "objc-parse.y" +#line 1834 "objc-parse.y" { yyval.lineno = lineno; ; break;} case 341: -#line 1830 "objc-parse.y" +#line 1839 "objc-parse.y" { ; break;} case 342: -#line 1835 "objc-parse.y" +#line 1844 "objc-parse.y" { ; break;} case 343: -#line 1840 "objc-parse.y" +#line 1849 "objc-parse.y" { yyval.ends_in_label = yyvsp[0].ends_in_label; ; break;} case 344: -#line 1845 "objc-parse.y" +#line 1854 "objc-parse.y" { yyval.ends_in_label = 0; ; break;} case 345: -#line 1847 "objc-parse.y" +#line 1856 "objc-parse.y" { yyval.ends_in_label = 1; ; break;} case 346: -#line 1853 "objc-parse.y" +#line 1862 "objc-parse.y" { stmt_count++; ; break;} case 348: -#line 1856 "objc-parse.y" +#line 1865 "objc-parse.y" { stmt_count++; emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); /* It appears that this should not be done--that a non-lvalue array @@ -3884,19 +3897,19 @@ case 348: clear_momentary (); ; break;} case 349: -#line 1873 "objc-parse.y" +#line 1882 "objc-parse.y" { c_expand_start_else (); yyvsp[-1].itype = stmt_count; position_after_white_space (); ; break;} case 350: -#line 1877 "objc-parse.y" +#line 1886 "objc-parse.y" { c_expand_end_cond (); if (extra_warnings && stmt_count == yyvsp[-3].itype) warning ("empty body in an else-statement"); ; break;} case 351: -#line 1881 "objc-parse.y" +#line 1890 "objc-parse.y" { c_expand_end_cond (); /* This warning is here instead of in simple_if, because we do not want a warning if an empty if is followed by an @@ -3907,11 +3920,11 @@ case 351: "empty body in an if-statement"); ; break;} case 352: -#line 1893 "objc-parse.y" +#line 1902 "objc-parse.y" { c_expand_end_cond (); ; break;} case 353: -#line 1895 "objc-parse.y" +#line 1904 "objc-parse.y" { stmt_count++; emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); /* The emit_nop used to come before emit_line_note, @@ -3923,7 +3936,7 @@ case 353: emit_nop (); ; break;} case 354: -#line 1905 "objc-parse.y" +#line 1914 "objc-parse.y" { /* Don't start the loop till we have succeeded in parsing the end test. This is to make sure that we end every loop we start. */ @@ -3934,11 +3947,11 @@ case 354: position_after_white_space (); ; break;} case 355: -#line 1914 "objc-parse.y" +#line 1923 "objc-parse.y" { expand_end_loop (); ; break;} case 356: -#line 1917 "objc-parse.y" +#line 1926 "objc-parse.y" { emit_line_note (input_filename, lineno); expand_exit_loop_if_false (NULL_PTR, truthvalue_conversion (yyvsp[-2].ttype)); @@ -3946,12 +3959,12 @@ case 356: clear_momentary (); ; break;} case 357: -#line 1924 "objc-parse.y" +#line 1933 "objc-parse.y" { expand_end_loop (); clear_momentary (); ; break;} case 358: -#line 1928 "objc-parse.y" +#line 1937 "objc-parse.y" { stmt_count++; emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); /* See comment in `while' alternative, above. */ @@ -3964,12 +3977,12 @@ case 358: ; break;} case 359: -#line 1940 "objc-parse.y" +#line 1949 "objc-parse.y" { yyvsp[0].lineno = lineno; yyval.filename = input_filename; ; break;} case 360: -#line 1943 "objc-parse.y" +#line 1952 "objc-parse.y" { /* Start the loop. Doing this after parsing all the expressions ensures we will end the loop. */ @@ -3987,7 +4000,7 @@ case 360: position_after_white_space (); ; break;} case 361: -#line 1959 "objc-parse.y" +#line 1968 "objc-parse.y" { /* Emit the increment expression, with a line number. */ emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno); expand_loop_continue_here (); @@ -4000,7 +4013,7 @@ case 361: expand_end_loop (); ; break;} case 362: -#line 1970 "objc-parse.y" +#line 1979 "objc-parse.y" { stmt_count++; emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); c_expand_start_case (yyvsp[-1].ttype); @@ -4010,7 +4023,7 @@ case 362: position_after_white_space (); ; break;} case 363: -#line 1978 "objc-parse.y" +#line 1987 "objc-parse.y" { expand_end_case (yyvsp[-3].ttype); if (yychar == CONSTANT || yychar == STRING) pop_momentary_nofree (); @@ -4018,33 +4031,33 @@ case 363: pop_momentary (); ; break;} case 364: -#line 1984 "objc-parse.y" +#line 1993 "objc-parse.y" { stmt_count++; emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); if ( ! expand_exit_something ()) error ("break statement not within loop or switch"); ; break;} case 365: -#line 1989 "objc-parse.y" +#line 1998 "objc-parse.y" { stmt_count++; emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); if (! expand_continue_loop (NULL_PTR)) error ("continue statement not within a loop"); ; break;} case 366: -#line 1994 "objc-parse.y" +#line 2003 "objc-parse.y" { stmt_count++; emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); c_expand_return (NULL_TREE); ; break;} case 367: -#line 1998 "objc-parse.y" +#line 2007 "objc-parse.y" { stmt_count++; emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); c_expand_return (yyvsp[-1].ttype); ; break;} case 368: -#line 2002 "objc-parse.y" +#line 2011 "objc-parse.y" { stmt_count++; emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno); STRIP_NOPS (yyvsp[-2].ttype); @@ -4056,7 +4069,7 @@ case 368: error ("argument of `asm' is not a constant string"); ; break;} case 369: -#line 2013 "objc-parse.y" +#line 2022 "objc-parse.y" { stmt_count++; emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno); c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, @@ -4064,7 +4077,7 @@ case 369: input_filename, lineno); ; break;} case 370: -#line 2020 "objc-parse.y" +#line 2029 "objc-parse.y" { stmt_count++; emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno); c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, @@ -4072,7 +4085,7 @@ case 370: input_filename, lineno); ; break;} case 371: -#line 2028 "objc-parse.y" +#line 2037 "objc-parse.y" { stmt_count++; emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno); c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, @@ -4080,7 +4093,7 @@ case 371: input_filename, lineno); ; break;} case 372: -#line 2034 "objc-parse.y" +#line 2043 "objc-parse.y" { tree decl; stmt_count++; emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); @@ -4093,7 +4106,7 @@ case 372: ; break;} case 373: -#line 2045 "objc-parse.y" +#line 2054 "objc-parse.y" { if (pedantic) pedwarn ("ANSI C forbids `goto *expr;'"); stmt_count++; @@ -4101,7 +4114,7 @@ case 373: expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ; break;} case 376: -#line 2060 "objc-parse.y" +#line 2069 "objc-parse.y" { /* The value returned by this action is */ /* 1 if everything is OK */ @@ -4124,14 +4137,14 @@ case 376: ; break;} case 377: -#line 2081 "objc-parse.y" +#line 2090 "objc-parse.y" { if (yyvsp[-1].itype) iterator_for_loop_end (yyvsp[-3].ttype); ; break;} case 378: -#line 2116 "objc-parse.y" +#line 2125 "objc-parse.y" { register tree value = check_case_value (yyvsp[-1].ttype); register tree label = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE); @@ -4164,7 +4177,7 @@ case 378: position_after_white_space (); ; break;} case 379: -#line 2147 "objc-parse.y" +#line 2156 "objc-parse.y" { register tree value1 = check_case_value (yyvsp[-3].ttype); register tree value2 = check_case_value (yyvsp[-1].ttype); register tree label @@ -4197,7 +4210,7 @@ case 379: position_after_white_space (); ; break;} case 380: -#line 2178 "objc-parse.y" +#line 2187 "objc-parse.y" { tree duplicate; register tree label @@ -4214,7 +4227,7 @@ case 380: position_after_white_space (); ; break;} case 381: -#line 2193 "objc-parse.y" +#line 2202 "objc-parse.y" { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype); stmt_count++; emit_nop (); @@ -4226,52 +4239,52 @@ case 381: position_after_white_space (); ; break;} case 382: -#line 2208 "objc-parse.y" +#line 2217 "objc-parse.y" { emit_line_note (input_filename, lineno); yyval.ttype = NULL_TREE; ; break;} case 383: -#line 2211 "objc-parse.y" +#line 2220 "objc-parse.y" { emit_line_note (input_filename, lineno); ; break;} case 384: -#line 2216 "objc-parse.y" +#line 2225 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} case 386: -#line 2223 "objc-parse.y" +#line 2232 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} case 389: -#line 2230 "objc-parse.y" +#line 2239 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 390: -#line 2235 "objc-parse.y" +#line 2244 "objc-parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 391: -#line 2240 "objc-parse.y" +#line 2249 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ; break;} case 392: -#line 2242 "objc-parse.y" +#line 2251 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; break;} case 393: -#line 2248 "objc-parse.y" +#line 2257 "objc-parse.y" { pushlevel (0); clear_parm_order (); declare_parm_level (0); ; break;} case 394: -#line 2252 "objc-parse.y" +#line 2261 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; parmlist_tags_warning (); poplevel (0, 0, 0); ; break;} case 396: -#line 2260 "objc-parse.y" +#line 2269 "objc-parse.y" { tree parm; if (pedantic) pedwarn ("ANSI C forbids forward parameter declarations"); @@ -4281,19 +4294,19 @@ case 396: clear_parm_order (); ; break;} case 397: -#line 2268 "objc-parse.y" +#line 2277 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 398: -#line 2270 "objc-parse.y" +#line 2279 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ; break;} case 399: -#line 2276 "objc-parse.y" +#line 2285 "objc-parse.y" { yyval.ttype = get_parm_info (0); ; break;} case 400: -#line 2278 "objc-parse.y" +#line 2287 "objc-parse.y" { yyval.ttype = get_parm_info (0); /* Gcc used to allow this as an extension. However, it does not work for all targets, and thus has been disabled. @@ -4305,23 +4318,23 @@ case 400: ; break;} case 401: -#line 2288 "objc-parse.y" +#line 2297 "objc-parse.y" { yyval.ttype = get_parm_info (1); ; break;} case 402: -#line 2290 "objc-parse.y" +#line 2299 "objc-parse.y" { yyval.ttype = get_parm_info (0); ; break;} case 403: -#line 2295 "objc-parse.y" +#line 2304 "objc-parse.y" { push_parm_decl (yyvsp[0].ttype); ; break;} case 404: -#line 2297 "objc-parse.y" +#line 2306 "objc-parse.y" { push_parm_decl (yyvsp[0].ttype); ; break;} case 405: -#line 2304 "objc-parse.y" +#line 2313 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), build_tree_list (prefix_attributes, @@ -4332,7 +4345,7 @@ case 405: resume_momentary (yyvsp[-2].itype); ; break;} case 406: -#line 2313 "objc-parse.y" +#line 2322 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), build_tree_list (prefix_attributes, @@ -4343,7 +4356,7 @@ case 406: resume_momentary (yyvsp[-2].itype); ; break;} case 407: -#line 2322 "objc-parse.y" +#line 2331 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), build_tree_list (prefix_attributes, @@ -4354,7 +4367,7 @@ case 407: resume_momentary (yyvsp[-2].itype); ; break;} case 408: -#line 2331 "objc-parse.y" +#line 2340 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), build_tree_list (prefix_attributes, @@ -4365,7 +4378,7 @@ case 408: resume_momentary (yyvsp[-2].itype); ; break;} case 409: -#line 2341 "objc-parse.y" +#line 2350 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), build_tree_list (prefix_attributes, @@ -4376,19 +4389,19 @@ case 409: resume_momentary (yyvsp[-2].itype); ; break;} case 410: -#line 2355 "objc-parse.y" +#line 2364 "objc-parse.y" { pushlevel (0); clear_parm_order (); declare_parm_level (1); ; break;} case 411: -#line 2359 "objc-parse.y" +#line 2368 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; parmlist_tags_warning (); poplevel (0, 0, 0); ; break;} case 413: -#line 2367 "objc-parse.y" +#line 2376 "objc-parse.y" { tree t; for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t)) if (TREE_VALUE (t) == NULL_TREE) @@ -4396,29 +4409,29 @@ case 413: yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ; break;} case 414: -#line 2377 "objc-parse.y" +#line 2386 "objc-parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 415: -#line 2379 "objc-parse.y" +#line 2388 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 416: -#line 2385 "objc-parse.y" +#line 2394 "objc-parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 417: -#line 2387 "objc-parse.y" +#line 2396 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 418: -#line 2392 "objc-parse.y" +#line 2401 "objc-parse.y" { yyval.itype = SAVE_WARN_FLAGS(); pedantic = 0; warn_pointer_arith = 0; ; break;} case 424: -#line 2406 "objc-parse.y" +#line 2415 "objc-parse.y" { if (objc_implementation_context) { @@ -4431,27 +4444,27 @@ case 424: ; break;} case 425: -#line 2421 "objc-parse.y" +#line 2430 "objc-parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 426: -#line 2423 "objc-parse.y" +#line 2432 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 427: -#line 2428 "objc-parse.y" +#line 2437 "objc-parse.y" { objc_declare_class (yyvsp[-1].ttype); ; break;} case 428: -#line 2434 "objc-parse.y" +#line 2443 "objc-parse.y" { objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 429: -#line 2440 "objc-parse.y" +#line 2449 "objc-parse.y" { objc_interface_context = objc_ivar_context = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype); @@ -4459,20 +4472,20 @@ case 429: ; break;} case 430: -#line 2446 "objc-parse.y" +#line 2455 "objc-parse.y" { continue_class (objc_interface_context); ; break;} case 431: -#line 2451 "objc-parse.y" +#line 2460 "objc-parse.y" { finish_class (objc_interface_context); objc_interface_context = NULL_TREE; ; break;} case 432: -#line 2457 "objc-parse.y" +#line 2466 "objc-parse.y" { objc_interface_context = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype); @@ -4480,14 +4493,14 @@ case 432: ; break;} case 433: -#line 2464 "objc-parse.y" +#line 2473 "objc-parse.y" { finish_class (objc_interface_context); objc_interface_context = NULL_TREE; ; break;} case 434: -#line 2470 "objc-parse.y" +#line 2479 "objc-parse.y" { objc_interface_context = objc_ivar_context = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); @@ -4495,20 +4508,20 @@ case 434: ; break;} case 435: -#line 2476 "objc-parse.y" +#line 2485 "objc-parse.y" { continue_class (objc_interface_context); ; break;} case 436: -#line 2481 "objc-parse.y" +#line 2490 "objc-parse.y" { finish_class (objc_interface_context); objc_interface_context = NULL_TREE; ; break;} case 437: -#line 2487 "objc-parse.y" +#line 2496 "objc-parse.y" { objc_interface_context = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); @@ -4516,14 +4529,14 @@ case 437: ; break;} case 438: -#line 2494 "objc-parse.y" +#line 2503 "objc-parse.y" { finish_class (objc_interface_context); objc_interface_context = NULL_TREE; ; break;} case 439: -#line 2500 "objc-parse.y" +#line 2509 "objc-parse.y" { objc_implementation_context = objc_ivar_context = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); @@ -4531,14 +4544,14 @@ case 439: ; break;} case 440: -#line 2506 "objc-parse.y" +#line 2515 "objc-parse.y" { objc_ivar_chain = continue_class (objc_implementation_context); ; break;} case 441: -#line 2512 "objc-parse.y" +#line 2521 "objc-parse.y" { objc_implementation_context = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE); @@ -4547,7 +4560,7 @@ case 441: ; break;} case 442: -#line 2520 "objc-parse.y" +#line 2529 "objc-parse.y" { objc_implementation_context = objc_ivar_context = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); @@ -4555,14 +4568,14 @@ case 442: ; break;} case 443: -#line 2526 "objc-parse.y" +#line 2535 "objc-parse.y" { objc_ivar_chain = continue_class (objc_implementation_context); ; break;} case 444: -#line 2532 "objc-parse.y" +#line 2541 "objc-parse.y" { objc_implementation_context = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); @@ -4571,7 +4584,7 @@ case 444: ; break;} case 445: -#line 2540 "objc-parse.y" +#line 2549 "objc-parse.y" { objc_interface_context = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); @@ -4579,14 +4592,14 @@ case 445: ; break;} case 446: -#line 2547 "objc-parse.y" +#line 2556 "objc-parse.y" { finish_class (objc_interface_context); objc_interface_context = NULL_TREE; ; break;} case 447: -#line 2553 "objc-parse.y" +#line 2562 "objc-parse.y" { objc_implementation_context = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); @@ -4595,7 +4608,7 @@ case 447: ; break;} case 448: -#line 2563 "objc-parse.y" +#line 2572 "objc-parse.y" { remember_protocol_qualifiers (); objc_interface_context @@ -4603,7 +4616,7 @@ case 448: ; break;} case 449: -#line 2569 "objc-parse.y" +#line 2578 "objc-parse.y" { forget_protocol_qualifiers(); finish_protocol(objc_interface_context); @@ -4611,13 +4624,13 @@ case 449: ; break;} case 450: -#line 2578 "objc-parse.y" +#line 2587 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} case 452: -#line 2586 "objc-parse.y" +#line 2595 "objc-parse.y" { if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR) yyval.ttype = yyvsp[-1].ttype; @@ -4626,32 +4639,32 @@ case 452: ; break;} case 455: -#line 2600 "objc-parse.y" +#line 2609 "objc-parse.y" { objc_public_flag = 2; ; break;} case 456: -#line 2601 "objc-parse.y" +#line 2610 "objc-parse.y" { objc_public_flag = 0; ; break;} case 457: -#line 2602 "objc-parse.y" +#line 2611 "objc-parse.y" { objc_public_flag = 1; ; break;} case 458: -#line 2607 "objc-parse.y" +#line 2616 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} case 460: -#line 2612 "objc-parse.y" +#line 2621 "objc-parse.y" { if (pedantic) pedwarn ("extra semicolon in struct or union specified"); ; break;} case 461: -#line 2630 "objc-parse.y" +#line 2639 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; current_declspecs = TREE_VALUE (declspec_stack); prefix_attributes = TREE_PURPOSE (declspec_stack); @@ -4659,7 +4672,7 @@ case 461: resume_momentary (yyvsp[-1].itype); ; break;} case 462: -#line 2636 "objc-parse.y" +#line 2645 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; current_declspecs = TREE_VALUE (declspec_stack); prefix_attributes = TREE_PURPOSE (declspec_stack); @@ -4667,15 +4680,15 @@ case 462: resume_momentary (yyvsp[-1].itype); ; break;} case 463: -#line 2642 "objc-parse.y" +#line 2651 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} case 464: -#line 2647 "objc-parse.y" +#line 2656 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} case 467: -#line 2654 "objc-parse.y" +#line 2663 "objc-parse.y" { yyval.ttype = add_instance_variable (objc_ivar_context, objc_public_flag, @@ -4684,7 +4697,7 @@ case 467: ; break;} case 468: -#line 2661 "objc-parse.y" +#line 2670 "objc-parse.y" { yyval.ttype = add_instance_variable (objc_ivar_context, objc_public_flag, @@ -4692,7 +4705,7 @@ case 468: ; break;} case 469: -#line 2667 "objc-parse.y" +#line 2676 "objc-parse.y" { yyval.ttype = add_instance_variable (objc_ivar_context, objc_public_flag, @@ -4701,7 +4714,7 @@ case 469: ; break;} case 470: -#line 2677 "objc-parse.y" +#line 2686 "objc-parse.y" { remember_protocol_qualifiers (); if (objc_implementation_context) @@ -4711,7 +4724,7 @@ case 470: ; break;} case 471: -#line 2685 "objc-parse.y" +#line 2694 "objc-parse.y" { forget_protocol_qualifiers (); add_class_method (objc_implementation_context, yyvsp[0].ttype); @@ -4720,20 +4733,20 @@ case 471: ; break;} case 472: -#line 2692 "objc-parse.y" +#line 2701 "objc-parse.y" { continue_method_def (); ; break;} case 473: -#line 2696 "objc-parse.y" +#line 2705 "objc-parse.y" { finish_method_def (); objc_method_context = NULL_TREE; ; break;} case 474: -#line 2702 "objc-parse.y" +#line 2711 "objc-parse.y" { remember_protocol_qualifiers (); if (objc_implementation_context) @@ -4743,7 +4756,7 @@ case 474: ; break;} case 475: -#line 2710 "objc-parse.y" +#line 2719 "objc-parse.y" { forget_protocol_qualifiers (); add_instance_method (objc_implementation_context, yyvsp[0].ttype); @@ -4752,28 +4765,28 @@ case 475: ; break;} case 476: -#line 2717 "objc-parse.y" +#line 2726 "objc-parse.y" { continue_method_def (); ; break;} case 477: -#line 2721 "objc-parse.y" +#line 2730 "objc-parse.y" { finish_method_def (); objc_method_context = NULL_TREE; ; break;} case 479: -#line 2733 "objc-parse.y" +#line 2742 "objc-parse.y" {yyval.ttype = NULL_TREE; ; break;} case 484: -#line 2740 "objc-parse.y" +#line 2749 "objc-parse.y" {yyval.ttype = NULL_TREE; ; break;} case 488: -#line 2750 "objc-parse.y" +#line 2759 "objc-parse.y" { /* Remember protocol qualifiers in prototypes. */ remember_protocol_qualifiers (); @@ -4781,7 +4794,7 @@ case 488: ; break;} case 489: -#line 2756 "objc-parse.y" +#line 2765 "objc-parse.y" { /* Forget protocol qualifiers here. */ forget_protocol_qualifiers (); @@ -4789,7 +4802,7 @@ case 489: ; break;} case 491: -#line 2764 "objc-parse.y" +#line 2773 "objc-parse.y" { /* Remember protocol qualifiers in prototypes. */ remember_protocol_qualifiers (); @@ -4797,7 +4810,7 @@ case 491: ; break;} case 492: -#line 2770 "objc-parse.y" +#line 2779 "objc-parse.y" { /* Forget protocol qualifiers here. */ forget_protocol_qualifiers (); @@ -4805,94 +4818,94 @@ case 492: ; break;} case 494: -#line 2780 "objc-parse.y" +#line 2789 "objc-parse.y" { yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 495: -#line 2785 "objc-parse.y" +#line 2794 "objc-parse.y" { yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; break;} case 496: -#line 2790 "objc-parse.y" +#line 2799 "objc-parse.y" { yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 497: -#line 2795 "objc-parse.y" +#line 2804 "objc-parse.y" { yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 506: -#line 2825 "objc-parse.y" +#line 2834 "objc-parse.y" { current_declspecs = TREE_VALUE (declspec_stack); prefix_attributes = TREE_PURPOSE (declspec_stack); declspec_stack = TREE_CHAIN (declspec_stack); resume_momentary (yyvsp[-2].itype); ; break;} case 507: -#line 2830 "objc-parse.y" +#line 2839 "objc-parse.y" { shadow_tag (yyvsp[-1].ttype); ; break;} case 508: -#line 2832 "objc-parse.y" +#line 2841 "objc-parse.y" { pedwarn ("empty declaration"); ; break;} case 509: -#line 2837 "objc-parse.y" +#line 2846 "objc-parse.y" { push_parm_decl (yyvsp[0].ttype); ; break;} case 510: -#line 2839 "objc-parse.y" +#line 2848 "objc-parse.y" { push_parm_decl (yyvsp[0].ttype); ; break;} case 511: -#line 2847 "objc-parse.y" +#line 2856 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), build_tree_list (prefix_attributes, yyvsp[0].ttype)); ; break;} case 512: -#line 2852 "objc-parse.y" +#line 2861 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), build_tree_list (prefix_attributes, yyvsp[0].ttype)); ; break;} case 513: -#line 2857 "objc-parse.y" +#line 2866 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), build_tree_list (prefix_attributes, yyvsp[0].ttype)); ; break;} case 514: -#line 2865 "objc-parse.y" +#line 2874 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} case 515: -#line 2869 "objc-parse.y" +#line 2878 "objc-parse.y" { /* oh what a kludge! */ yyval.ttype = (tree)1; ; break;} case 516: -#line 2874 "objc-parse.y" +#line 2883 "objc-parse.y" { pushlevel (0); ; break;} case 517: -#line 2878 "objc-parse.y" +#line 2887 "objc-parse.y" { /* returns a tree list node generated by get_parm_info */ yyval.ttype = yyvsp[0].ttype; @@ -4900,119 +4913,119 @@ case 517: ; break;} case 520: -#line 2893 "objc-parse.y" +#line 2902 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 525: -#line 2906 "objc-parse.y" +#line 2915 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 526: -#line 2907 "objc-parse.y" +#line 2916 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 527: -#line 2908 "objc-parse.y" +#line 2917 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 528: -#line 2909 "objc-parse.y" +#line 2918 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 529: -#line 2910 "objc-parse.y" +#line 2919 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 530: -#line 2911 "objc-parse.y" +#line 2920 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 531: -#line 2912 "objc-parse.y" +#line 2921 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 532: -#line 2913 "objc-parse.y" +#line 2922 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 533: -#line 2914 "objc-parse.y" +#line 2923 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 534: -#line 2915 "objc-parse.y" +#line 2924 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 535: -#line 2916 "objc-parse.y" +#line 2925 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 536: -#line 2917 "objc-parse.y" +#line 2926 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 537: -#line 2918 "objc-parse.y" +#line 2927 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 538: -#line 2919 "objc-parse.y" +#line 2928 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 539: -#line 2920 "objc-parse.y" +#line 2929 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 540: -#line 2921 "objc-parse.y" +#line 2930 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 541: -#line 2922 "objc-parse.y" +#line 2931 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 542: -#line 2923 "objc-parse.y" +#line 2932 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 543: -#line 2924 "objc-parse.y" +#line 2933 "objc-parse.y" { yyval.ttype = get_identifier (token_buffer); ; break;} case 546: -#line 2930 "objc-parse.y" +#line 2939 "objc-parse.y" { yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 547: -#line 2935 "objc-parse.y" +#line 2944 "objc-parse.y" { yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype); ; break;} case 548: -#line 2940 "objc-parse.y" +#line 2949 "objc-parse.y" { yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 549: -#line 2945 "objc-parse.y" +#line 2954 "objc-parse.y" { yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ; break;} case 553: -#line 2958 "objc-parse.y" +#line 2967 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 554: -#line 2966 "objc-parse.y" +#line 2975 "objc-parse.y" { if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE) /* just return the expr., remove a level of indirection */ @@ -5023,69 +5036,69 @@ case 554: ; break;} case 555: -#line 2978 "objc-parse.y" +#line 2987 "objc-parse.y" { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 556: -#line 2982 "objc-parse.y" +#line 2991 "objc-parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 558: -#line 2990 "objc-parse.y" +#line 2999 "objc-parse.y" { yyval.ttype = get_class_reference (yyvsp[0].ttype); ; break;} case 559: -#line 2997 "objc-parse.y" +#line 3006 "objc-parse.y" { objc_receiver_context = 1; ; break;} case 560: -#line 2999 "objc-parse.y" +#line 3008 "objc-parse.y" { objc_receiver_context = 0; ; break;} case 561: -#line 3001 "objc-parse.y" +#line 3010 "objc-parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 565: -#line 3014 "objc-parse.y" +#line 3023 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 566: -#line 3021 "objc-parse.y" +#line 3030 "objc-parse.y" { yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE); ; break;} case 567: -#line 3025 "objc-parse.y" +#line 3034 "objc-parse.y" { yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE); ; break;} case 568: -#line 3032 "objc-parse.y" +#line 3041 "objc-parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 569: -#line 3039 "objc-parse.y" +#line 3048 "objc-parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 570: -#line 3048 "objc-parse.y" +#line 3057 "objc-parse.y" { yyval.ttype = groktypename (yyvsp[-1].ttype); ; @@ -5288,5 +5301,5 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 3053 "objc-parse.y" +#line 3062 "objc-parse.y" diff --git a/gcc/objc/objc-parse.y b/gcc/objc/objc-parse.y index f22926f..24d39f0 100644 --- a/gcc/objc/objc-parse.y +++ b/gcc/objc/objc-parse.y @@ -28,7 +28,7 @@ Boston, MA 02111-1307, USA. */ /* To whomever it may concern: I have heard that such a thing was once written by AT&T, but I have never seen it. */ -%expect 73 +%expect 74 %{ #include "config.h" @@ -1537,12 +1537,21 @@ component_decl: prefix_attributes = TREE_PURPOSE (declspec_stack); declspec_stack = TREE_CHAIN (declspec_stack); resume_momentary ($2); } - | typed_typespecs - { if (pedantic) - pedwarn ("ANSI C forbids member declarations with no members"); - shadow_tag($1); - $$ = NULL_TREE; } - | nonempty_type_quals setspecs components + | typed_typespecs setspecs save_filename save_lineno maybe_attribute + { + /* Support for unnamed structs or unions as members of + structs or unions (which is [a] useful and [b] supports + MS P-SDK). */ + if (pedantic) + pedwarn ("ANSI C doesn't support unnamed structs/unions"); + + $$ = grokfield($3, $4, NULL, current_declspecs, NULL_TREE); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary ($2); + } + | nonempty_type_quals setspecs components { $$ = $3; current_declspecs = TREE_VALUE (declspec_stack); prefix_attributes = TREE_PURPOSE (declspec_stack); |