- Applied several (old, external) patches that enable the support for anonymous structs and unions in C as well as in C++ (application of this patch has been sugggested by execom through BeBits-talkback).
This mail-thread explains the problem & solution:
http://gcc.gnu.org/ml/gcc-bugs/1999-08n/msg00914.html
These are the patches that have been applied:
gcc-2.95-anon-struct-union.diff
gcc-2.95-c++-tidy.diff
gcc-2.95-c++-anon-struct.diff
gcc-2.95-c++-anon-struct2.diff
which can all be found here:
ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/cygwin/gcc-2.95/patches/
git-svn-id: file:///srv/svn/repos/haiku/trunk/buildtools@11421 a95241bf-73f2-0310-859d-f6bbb57e9c96
Diff
gcc/gcc/c-decl.c | 37 -------------------------------------
gcc/gcc/c-parse.c | 1597 +++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------
gcc/gcc/c-parse.in | 25 +++++++++++++++++--------
gcc/gcc/c-parse.y | 23 ++++++++++++++++-------
gcc/gcc/cp/call.c | 125 --------------------------------------------------------------------------------
gcc/gcc/cp/class.c | 12 ++++--------
gcc/gcc/cp/cp-tree.h | 20 +++++++++-----------
gcc/gcc/cp/decl.c | 17 ++++++++++-------
gcc/gcc/cp/decl2.c | 13 +++++++++----
gcc/gcc/cp/init.c | 59 +++++++++++++++++++++++++++++------------------------------
gcc/gcc/cp/method.c | 31 +++++++------------------------
gcc/gcc/cp/pt.c | 4 ++--
gcc/gcc/cp/ptree.c | 6 +-----
gcc/gcc/cp/search.c | 8 ++++----
gcc/gcc/cp/typeck.c | 12 +++++-------
gcc/gcc/cp/typeck2.c | 2 +-
gcc/gcc/objc/objc-parse.y | 23 ++++++++++++++++-------
17 files changed, 934 insertions(+), 1080 deletions(-)
@@ -6046,43 +6046,6 @@
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 (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);
@@ -144,7 +144,7 @@
#define YYFINAL 692
#define YYFINAL 696
#define YYFLAG -32768
#define YYNTBASE 84
@@ -213,21 +213,21 @@
713, 717, 721, 726, 731, 735, 739, 741, 743, 746,
748, 751, 753, 756, 757, 765, 771, 774, 775, 783,
789, 792, 793, 802, 803, 811, 814, 815, 817, 818,
820, 822, 825, 826, 830, 833, 837, 839, 843, 845,
847, 850, 852, 856, 861, 868, 874, 876, 880, 882,
884, 888, 891, 894, 895, 897, 899, 902, 903, 906,
910, 914, 917, 921, 926, 930, 933, 937, 940, 944,
946, 948, 951, 954, 955, 957, 960, 961, 962, 964,
966, 969, 973, 975, 978, 980, 983, 990, 996, 1002,
1005, 1008, 1013, 1014, 1019, 1020, 1021, 1025, 1030, 1034,
1036, 1038, 1040, 1042, 1045, 1046, 1051, 1053, 1057, 1058,
1059, 1067, 1073, 1076, 1077, 1078, 1079, 1092, 1093, 1100,
1103, 1106, 1109, 1113, 1120, 1129, 1140, 1153, 1157, 1162,
1164, 1166, 1167, 1174, 1178, 1184, 1187, 1191, 1192, 1194,
1195, 1197, 1198, 1200, 1202, 1206, 1211, 1213, 1217, 1218,
1221, 1224, 1225, 1230, 1233, 1234, 1236, 1238, 1242, 1244,
1248, 1253, 1258, 1263, 1268, 1273, 1274, 1277, 1279, 1282,
1284, 1288, 1290, 1294
820, 822, 825, 826, 830, 833, 837, 843, 847, 849,
851, 854, 856, 860, 865, 872, 878, 880, 884, 886,
888, 892, 895, 898, 899, 901, 903, 906, 907, 910,
914, 918, 921, 925, 930, 934, 937, 941, 944, 948,
950, 952, 955, 958, 959, 961, 964, 965, 966, 968,
970, 973, 977, 979, 982, 984, 987, 994, 1000, 1006,
1009, 1012, 1017, 1018, 1023, 1024, 1025, 1029, 1034, 1038,
1040, 1042, 1044, 1046, 1049, 1050, 1055, 1057, 1061, 1062,
1063, 1071, 1077, 1080, 1081, 1082, 1083, 1096, 1097, 1104,
1107, 1110, 1113, 1117, 1124, 1133, 1144, 1157, 1161, 1166,
1168, 1170, 1171, 1178, 1182, 1188, 1191, 1195, 1196, 1198,
1199, 1201, 1202, 1204, 1206, 1210, 1215, 1217, 1221, 1222,
1225, 1228, 1229, 1234, 1237, 1238, 1240, 1242, 1246, 1248,
1252, 1257, 1262, 1267, 1272, 1277, 1278, 1281, 1283, 1286,
1288, 1292, 1294, 1298
};
static const short yyrhs[] = { -1,
@@ -314,53 +314,53 @@
0, 0, 170, 82, 175, 183, 177, 78, 142, 0,
170, 97, 0, 0, 81, 0, 0, 81, 0, 179,
0, 179, 180, 0, 0, 179, 180, 77, 0, 179,
77, 0, 131, 122, 181, 0, 131, 0, 187, 122,
181, 0, 187, 0, 1, 0, 240, 180, 0, 182,
0, 181, 81, 182, 0, 205, 206, 164, 142, 0,
205, 206, 164, 38, 107, 142, 0, 205, 206, 38,
107, 142, 0, 184, 0, 183, 81, 184, 0, 1,
0, 97, 0, 97, 36, 107, 0, 131, 186, 0,
187, 186, 0, 0, 189, 0, 7, 0, 187, 7,
0, 0, 188, 7, 0, 59, 189, 76, 0, 50,
188, 189, 0, 50, 188, 0, 189, 59, 228, 0,
189, 60, 99, 83, 0, 189, 60, 83, 0, 59,
228, 0, 60, 99, 83, 0, 60, 83, 0, 143,
123, 189, 0, 191, 0, 208, 0, 191, 208, 0,
191, 193, 0, 0, 190, 0, 1, 77, 0, 0,
0, 196, 0, 197, 0, 196, 197, 0, 32, 239,
77, 0, 200, 0, 1, 200, 0, 82, 0, 199,
78, 0, 199, 194, 195, 121, 192, 78, 0, 199,
194, 195, 1, 78, 0, 199, 194, 195, 190, 78,
0, 202, 207, 0, 202, 1, 0, 15, 59, 99,
76, 0, 0, 18, 204, 207, 17, 0, 0, 0,
205, 206, 210, 0, 205, 206, 221, 207, 0, 205,
206, 209, 0, 210, 0, 221, 0, 200, 0, 218,
0, 99, 77, 0, 0, 201, 16, 211, 207, 0,
201, 0, 201, 16, 1, 0, 0, 0, 17, 212,
59, 99, 76, 213, 207, 0, 203, 59, 99, 76,
77, 0, 203, 1, 0, 0, 0, 0, 19, 59,
223, 77, 214, 223, 77, 215, 223, 76, 216, 207,
0, 0, 20, 59, 99, 76, 217, 207, 0, 23,
77, 0, 24, 77, 0, 25, 77, 0, 25, 99,
77, 0, 27, 222, 59, 99, 76, 77, 0, 27,
222, 59, 99, 38, 224, 76, 77, 0, 27, 222,
59, 99, 38, 224, 38, 224, 76, 77, 0, 27,
222, 59, 99, 38, 224, 38, 224, 38, 227, 76,
77, 0, 26, 97, 77, 0, 26, 50, 99, 77,
0, 77, 0, 219, 0, 0, 19, 59, 113, 76,
220, 207, 0, 21, 107, 38, 0, 21, 107, 10,
107, 38, 0, 22, 38, 0, 97, 38, 142, 0,
0, 7, 0, 0, 99, 0, 0, 225, 0, 226,
0, 225, 81, 226, 0, 9, 59, 99, 76, 0,
115, 0, 227, 81, 115, 0, 0, 229, 230, 0,
232, 76, 0, 0, 233, 77, 231, 230, 0, 1,
76, 0, 0, 10, 0, 233, 0, 233, 81, 10,
0, 234, 0, 233, 81, 234, 0, 125, 122, 166,
142, 0, 125, 122, 167, 142, 0, 125, 122, 186,
142, 0, 129, 122, 167, 142, 0, 129, 122, 186,
142, 0, 0, 236, 237, 0, 230, 0, 238, 76,
0, 3, 0, 238, 81, 3, 0, 97, 0, 239,
81, 97, 0, 31, 0
77, 0, 131, 122, 181, 0, 131, 122, 205, 206,
142, 0, 187, 122, 181, 0, 187, 0, 1, 0,
240, 180, 0, 182, 0, 181, 81, 182, 0, 205,
206, 164, 142, 0, 205, 206, 164, 38, 107, 142,
0, 205, 206, 38, 107, 142, 0, 184, 0, 183,
81, 184, 0, 1, 0, 97, 0, 97, 36, 107,
0, 131, 186, 0, 187, 186, 0, 0, 189, 0,
7, 0, 187, 7, 0, 0, 188, 7, 0, 59,
189, 76, 0, 50, 188, 189, 0, 50, 188, 0,
189, 59, 228, 0, 189, 60, 99, 83, 0, 189,
60, 83, 0, 59, 228, 0, 60, 99, 83, 0,
60, 83, 0, 143, 123, 189, 0, 191, 0, 208,
0, 191, 208, 0, 191, 193, 0, 0, 190, 0,
1, 77, 0, 0, 0, 196, 0, 197, 0, 196,
197, 0, 32, 239, 77, 0, 200, 0, 1, 200,
0, 82, 0, 199, 78, 0, 199, 194, 195, 121,
192, 78, 0, 199, 194, 195, 1, 78, 0, 199,
194, 195, 190, 78, 0, 202, 207, 0, 202, 1,
0, 15, 59, 99, 76, 0, 0, 18, 204, 207,
17, 0, 0, 0, 205, 206, 210, 0, 205, 206,
221, 207, 0, 205, 206, 209, 0, 210, 0, 221,
0, 200, 0, 218, 0, 99, 77, 0, 0, 201,
16, 211, 207, 0, 201, 0, 201, 16, 1, 0,
0, 0, 17, 212, 59, 99, 76, 213, 207, 0,
203, 59, 99, 76, 77, 0, 203, 1, 0, 0,
0, 0, 19, 59, 223, 77, 214, 223, 77, 215,
223, 76, 216, 207, 0, 0, 20, 59, 99, 76,
217, 207, 0, 23, 77, 0, 24, 77, 0, 25,
77, 0, 25, 99, 77, 0, 27, 222, 59, 99,
76, 77, 0, 27, 222, 59, 99, 38, 224, 76,
77, 0, 27, 222, 59, 99, 38, 224, 38, 224,
76, 77, 0, 27, 222, 59, 99, 38, 224, 38,
224, 38, 227, 76, 77, 0, 26, 97, 77, 0,
26, 50, 99, 77, 0, 77, 0, 219, 0, 0,
19, 59, 113, 76, 220, 207, 0, 21, 107, 38,
0, 21, 107, 10, 107, 38, 0, 22, 38, 0,
97, 38, 142, 0, 0, 7, 0, 0, 99, 0,
0, 225, 0, 226, 0, 225, 81, 226, 0, 9,
59, 99, 76, 0, 115, 0, 227, 81, 115, 0,
0, 229, 230, 0, 232, 76, 0, 0, 233, 77,
231, 230, 0, 1, 76, 0, 0, 10, 0, 233,
0, 233, 81, 10, 0, 234, 0, 233, 81, 234,
0, 125, 122, 166, 142, 0, 125, 122, 167, 142,
0, 125, 122, 186, 142, 0, 129, 122, 167, 142,
0, 129, 122, 186, 142, 0, 0, 236, 237, 0,
230, 0, 238, 76, 0, 3, 0, 238, 81, 3,
0, 97, 0, 239, 81, 97, 0, 31, 0
};
#endif
@@ -393,21 +393,21 @@
1289, 1291, 1293, 1298, 1300, 1307, 1309, 1312, 1315, 1319,
1322, 1326, 1329, 1333, 1338, 1340, 1344, 1346, 1348, 1350,
1354, 1356, 1359, 1362, 1365, 1368, 1372, 1374, 1377, 1379,
1384, 1387, 1392, 1394, 1396, 1410, 1417, 1422, 1428, 1433,
1435, 1440, 1442, 1446, 1450, 1454, 1464, 1466, 1471, 1476,
1479, 1483, 1486, 1490, 1493, 1496, 1499, 1503, 1506, 1510,
1514, 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1532, 1540,
1548, 1550, 1552, 1556, 1558, 1561, 1564, 1575, 1577, 1582,
1584, 1587, 1601, 1604, 1607, 1609, 1611, 1619, 1627, 1638,
1643, 1646, 1660, 1669, 1673, 1677, 1681, 1687, 1691, 1696,
1699, 1704, 1707, 1708, 1725, 1730, 1733, 1745, 1747, 1757,
1767, 1768, 1776, 1779, 1791, 1795, 1812, 1822, 1831, 1836,
1841, 1846, 1850, 1854, 1865, 1872, 1879, 1886, 1897, 1903,
1906, 1911, 1934, 1968, 1999, 2030, 2045, 2059, 2063, 2067,
2070, 2075, 2077, 2080, 2082, 2086, 2091, 2094, 2100, 2105,
2110, 2112, 2121, 2122, 2128, 2130, 2140, 2142, 2146, 2149,
2155, 2165, 2174, 2183, 2193, 2207, 2212, 2217, 2219, 2228,
2231, 2236, 2239, 2243
1384, 1387, 1392, 1394, 1396, 1410, 1417, 1431, 1437, 1442,
1444, 1449, 1451, 1455, 1459, 1463, 1473, 1475, 1480, 1485,
1488, 1492, 1495, 1499, 1502, 1505, 1508, 1512, 1515, 1519,
1523, 1525, 1527, 1529, 1531, 1533, 1535, 1537, 1541, 1549,
1557, 1559, 1561, 1565, 1567, 1570, 1573, 1584, 1586, 1591,
1593, 1596, 1610, 1613, 1616, 1618, 1620, 1628, 1636, 1647,
1652, 1655, 1669, 1678, 1682, 1686, 1690, 1696, 1700, 1705,
1708, 1713, 1716, 1717, 1734, 1739, 1742, 1754, 1756, 1766,
1776, 1777, 1785, 1788, 1800, 1804, 1821, 1831, 1840, 1845,
1850, 1855, 1859, 1863, 1874, 1881, 1888, 1895, 1906, 1912,
1915, 1920, 1943, 1977, 2008, 2039, 2054, 2068, 2072, 2076,
2079, 2084, 2086, 2089, 2091, 2095, 2100, 2103, 2109, 2114,
2119, 2121, 2130, 2131, 2137, 2139, 2149, 2151, 2155, 2158,
2164, 2174, 2183, 2192, 2202, 2216, 2221, 2226, 2228, 2237,
2240, 2245, 2248, 2252
};
#endif
@@ -522,7 +522,7 @@
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, 1,
@@ -578,641 +578,643 @@
380, 297, 299, 293, 295, 0, 174, 176, 86, 0,
163, 384, 284, 284, 381, 382, 0, 399, 0, 0,
29, 313, 104, 118, 118, 135, 0, 0, 164, 218,
0, 266, 272, 326, 268, 170, 170, 281, 278, 170,
0, 0, 0, 309, 310, 0, 80, 83, 294, 179,
0, 181, 229, 288, 379, 119, 170, 170, 170, 288,
119, 170, 170, 0, 388, 390, 401, 314, 111, 0,
112, 0, 135, 133, 189, 187, 186, 168, 21, 0,
25, 325, 0, 245, 249, 255, 170, 402, 0, 0,
0, 325, 0, 0, 115, 326, 301, 311, 202, 86,
0, 0, 199, 0, 201, 0, 257, 192, 198, 0,
0, 0, 0, 292, 0, 396, 0, 391, 392, 393,
292, 0, 394, 395, 383, 0, 0, 162, 134, 137,
136, 0, 165, 273, 0, 170, 253, 312, 0, 318,
117, 116, 305, 0, 319, 303, 326, 302, 0, 205,
0, 0, 196, 61, 0, 191, 0, 204, 195, 81,
180, 227, 228, 223, 0, 226, 0, 109, 110, 0,
170, 0, 274, 403, 317, 0, 152, 0, 339, 323,
0, 0, 0, 0, 0, 0, 0, 0, 368, 360,
0, 0, 113, 118, 118, 332, 337, 0, 0, 329,
330, 333, 361, 331, 0, 0, 207, 0, 0, 193,
194, 224, 225, 188, 276, 170, 0, 0, 325, 370,
0, 0, 366, 350, 351, 352, 0, 0, 0, 369,
0, 170, 334, 124, 0, 125, 0, 0, 321, 326,
320, 343, 0, 126, 0, 200, 197, 275, 0, 0,
0, 371, 45, 0, 0, 0, 364, 353, 0, 358,
0, 367, 0, 122, 208, 0, 123, 211, 338, 325,
0, 0, 206, 322, 0, 324, 362, 344, 348, 0,
359, 0, 120, 0, 121, 0, 336, 327, 325, 0,
340, 325, 370, 325, 365, 372, 0, 209, 212, 328,
342, 325, 363, 0, 349, 0, 0, 373, 374, 354,
0, 0, 341, 345, 0, 372, 0, 0, 210, 213,
370, 0, 0, 355, 375, 0, 376, 0, 0, 346,
377, 0, 356, 325, 0, 0, 347, 357, 378, 0,
0, 0
0, 266, 272, 326, 268, 326, 170, 170, 281, 278,
170, 0, 0, 0, 309, 310, 0, 80, 83, 294,
179, 0, 181, 229, 288, 379, 119, 170, 170, 170,
288, 119, 170, 170, 0, 388, 390, 401, 314, 111,
0, 112, 0, 135, 133, 189, 187, 186, 168, 21,
0, 25, 325, 170, 0, 245, 249, 255, 170, 402,
0, 0, 0, 325, 0, 0, 115, 326, 301, 311,
202, 86, 0, 0, 199, 0, 201, 0, 257, 192,
198, 0, 0, 0, 0, 292, 0, 396, 0, 391,
392, 393, 292, 0, 394, 395, 383, 0, 0, 162,
134, 137, 136, 0, 165, 273, 0, 267, 119, 170,
253, 312, 0, 318, 117, 116, 305, 0, 319, 303,
326, 302, 0, 205, 0, 0, 196, 61, 0, 191,
0, 204, 195, 81, 180, 227, 228, 223, 0, 226,
0, 109, 110, 0, 170, 0, 274, 403, 317, 0,
152, 0, 339, 323, 0, 0, 0, 0, 0, 0,
0, 0, 368, 360, 0, 0, 113, 118, 118, 332,
337, 0, 0, 329, 330, 333, 361, 331, 0, 0,
207, 0, 0, 193, 194, 224, 225, 188, 276, 170,
0, 0, 325, 370, 0, 0, 366, 350, 351, 352,
0, 0, 0, 369, 0, 170, 334, 124, 0, 125,
0, 0, 321, 326, 320, 343, 0, 126, 0, 200,
197, 275, 0, 0, 0, 371, 45, 0, 0, 0,
364, 353, 0, 358, 0, 367, 0, 122, 208, 0,
123, 211, 338, 325, 0, 0, 206, 322, 0, 324,
362, 344, 348, 0, 359, 0, 120, 0, 121, 0,
336, 327, 325, 0, 340, 325, 370, 325, 365, 372,
0, 209, 212, 328, 342, 325, 363, 0, 349, 0,
0, 373, 374, 354, 0, 0, 341, 345, 0, 372,
0, 0, 210, 213, 370, 0, 0, 355, 375, 0,
376, 0, 0, 346, 377, 0, 356, 325, 0, 0,
347, 357, 378, 0, 0, 0
};
static const short yydefgoto[] = { 690,
static const short yydefgoto[] = { 694,
1, 2, 3, 17, 18, 19, 224, 378, 230, 381,
112, 308, 454, 85, 144, 276, 87, 88, 89, 90,
91, 396, 92, 261, 260, 258, 462, 259, 93, 145,
94, 211, 212, 213, 373, 441, 442, 20, 107, 543,
297, 57, 374, 424, 298, 23, 98, 186, 24, 129,
117, 44, 113, 118, 430, 45, 377, 216, 217, 26,
195, 196, 197, 428, 482, 456, 457, 458, 559, 459,
502, 460, 461, 614, 634, 661, 617, 636, 662, 202,
121, 407, 122, 27, 28, 29, 30, 238, 240, 245,
137, 506, 334, 132, 133, 235, 382, 383, 243, 244,
100, 184, 101, 103, 185, 443, 444, 494, 214, 337,
393, 394, 395, 371, 249, 372, 547, 548, 549, 569,
590, 312, 591, 447, 550, 551, 620, 568, 652, 643,
671, 684, 644, 552, 553, 642, 554, 581, 604, 657,
658, 659, 682, 281, 282, 299, 414, 300, 301, 302,
205, 206, 303, 304, 439, 95
112, 308, 456, 85, 144, 276, 87, 88, 89, 90,
91, 397, 92, 261, 260, 258, 464, 259, 93, 145,
94, 211, 212, 213, 373, 443, 444, 20, 222, 547,
297, 57, 374, 425, 298, 23, 98, 186, 24, 129,
117, 44, 113, 118, 431, 45, 377, 216, 217, 26,
195, 196, 197, 429, 484, 458, 459, 460, 563, 461,
506, 462, 463, 618, 638, 665, 621, 640, 666, 202,
121, 408, 122, 27, 28, 29, 30, 238, 240, 245,
137, 510, 334, 132, 133, 235, 382, 383, 243, 244,
100, 184, 101, 103, 185, 445, 446, 498, 214, 337,
394, 395, 396, 371, 249, 372, 551, 552, 553, 573,
594, 312, 595, 449, 554, 555, 624, 572, 656, 647,
675, 688, 648, 556, 557, 646, 558, 585, 608, 661,
662, 663, 686, 281, 282, 299, 415, 300, 301, 302,
205, 206, 303, 304, 441, 95
};
static const short yypact[] = { 95,
110, 2206, 2206, 260,-32768,-32768,-32768,-32768, 40, 40,
40, 57, 59, 89,-32768,-32768,-32768,-32768,-32768, 42,
99, 2234, 79,-32768, 40,-32768, 87, 93, 108,-32768,
2206,-32768,-32768,-32768, 40, 40, 40, 2068, 2002, 125,
-32768,-32768, 42, 147,-32768, 40, 1355,-32768, 257,-32768,
42, 79,-32768, 40,-32768,-32768, 696,-32768,-32768,-32768,
-32768, 76,-32768, 124,-32768, 132,-32768,-32768,-32768,-32768,
-32768,-32768, 2068, 2068, 373,-32768,-32768,-32768, 2068,-32768,
-32768, 721,-32768,-32768, 2068, 149, 153,-32768, 2095, 2122,
-32768, 2335, 881, 231, 2068,-32768, 186, 319,-32768, 203,
578, 708, 627, 304,-32768, 257, 42,-32768, 194,-32768,
1430, 438, 40,-32768,-32768, 257, 177,-32768, 40, 276,
398, 417, 188, 1417, 696,-32768,-32768,-32768,-32768, 40,
-32768, 208, 778,-32768, 214,-32768, 468,-32768,-32768,-32768,
-32768,-32768, 223, 269, 288, 312,-32768, 315, 2068, 721,
-32768, 721,-32768, 2068, 2068, 362,-32768,-32768, 2068, 2068,
2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068,
-32768,-32768, 373, 373, 2068, 2068,-32768,-32768,-32768,-32768,
319, 1457, 40,-32768, 426, 760,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768, 50,-32768, 344,-32768, 417,-32768,
-32768, 385, 417, 419,-32768, 611, 1512,-32768, 349, 361,
-32768, 316, 70,-32768,-32768, 405, 40, 545, 323,-32768,
257, 257,-32768, 438, 40,-32768, 1539,-32768,-32768, 438,
40,-32768,-32768, 428, 370, 198, 953,-32768, 40,-32768,
-32768, 413, 383,-32768, 468,-32768,-32768,-32768, 376, 391,
1891,-32768, 2335, 402, 411, 2335, 2335, 2068, 443, 2068,
2068, 1564, 1645, 1859, 1078, 747, 838, 838, 356, 356,
-32768,-32768,-32768,-32768,-32768, 432, 153, 412, 463, 485,
-32768, 871,-32768, 434, 319,-32768, 1594,-32768, 760, 445,
708, 2149, 54, 448,-32768,-32768,-32768, 1036,-32768, 450,
197,-32768,-32768, 81,-32768,-32768,-32768, 39,-32768,-32768,
-32768, 846,-32768, 398,-32768,-32768, 398,-32768, 483,-32768,
-32768, 452,-32768,-32768,-32768,-32768,-32768,-32768, 461,-32768,
473, 2068, 373, 480, 383,-32768, 496,-32768,-32768,-32768,
-32768,-32768, 508, 2068, 2258, 1483,-32768,-32768, 426,-32768,
-32768,-32768, 426,-32768,-32768, 493,-32768,-32768, 85, 510,
-32768,-32768, 550, 497,-32768,-32768, 1006,-32768, 585, 288,
-32768,-32768,-32768, 512, 328,-32768, 1291, 39,-32768,-32768,
39, 513,-32768,-32768, 513, 40, 40, 2335,-32768, 40,
515, 373, 814, 496,-32768, 1111,-32768, 2351,-32768,-32768,
2068,-32768,-32768,-32768, 497, 40, 133, 140, 40,-32768,
40, 140, 40, 871,-32768,-32768,-32768,-32768,-32768, 257,
-32768, 42,-32768, 692,-32768,-32768, 2335,-32768,-32768, 1291,
-32768,-32768, 430,-32768,-32768,-32768, 40,-32768, 220, 433,
641, 518, 520, 894,-32768,-32768,-32768,-32768,-32768, 563,
373, 2068,-32768, 564, 2335, 525, 526,-32768,-32768, 326,
1231, 2068, 146, 500, 550,-32768, 1621,-32768,-32768,-32768,
423, 497,-32768,-32768,-32768, 237, 250, 112, 692,-32768,
-32768, 1111,-32768,-32768, 2068, 49,-32768,-32768, 373,-32768,
-32768,-32768,-32768, 541,-32768,-32768,-32768,-32768, 1757,-32768,
2245, 1111,-32768,-32768, 1171,-32768, 1346,-32768,-32768, 2351,
-32768, 504, 504,-32768, 1676,-32768, 537,-32768,-32768, 544,
1778, 2068,-32768,-32768,-32768, 1837, 588, 570,-32768,-32768,
572, 576, 2068, 598, 566, 596, 2015, 193, 633,-32768,
638, 601,-32768, 602, 2238,-32768, 664, 974, 66,-32768,
-32768,-32768,-32768,-32768, 1948, 2068,-32768, 604, 1346,-32768,
-32768,-32768,-32768,-32768,-32768, 1778, 2068, 624,-32768, 2068,
2068, 1701,-32768,-32768,-32768,-32768, 615, 2068, 616,-32768,
629, 40,-32768,-32768, 257,-32768, 42, 1054,-32768,-32768,
-32768,-32768, 2068,-32768, 2290,-32768,-32768,-32768, 618, 2068,
714,-32768, 687, 659, 662, 2068,-32768,-32768, 666,-32768,
2068,-32768, 271,-32768, 266, 284,-32768, 158,-32768,-32768,
1837, 663,-32768,-32768, 672,-32768,-32768,-32768,-32768, 2308,
-32768, 24,-32768, 438,-32768, 438,-32768,-32768,-32768, 674,
-32768,-32768, 2068,-32768,-32768, 744, 679,-32768,-32768,-32768,
-32768,-32768,-32768, 681,-32768, 700, 43, 684,-32768,-32768,
288, 288,-32768,-32768, 2068, 744, 691, 744,-32768,-32768,
2068, 702, 61,-32768,-32768, 705,-32768, 419, 706,-32768,
231, 176,-32768,-32768, 709, 419,-32768,-32768, 231, 787,
789,-32768
static const short yypact[] = { 97,
106, 2218, 2218, 295,-32768,-32768,-32768,-32768, 47, 47,
47, 86, 92, 99,-32768,-32768,-32768,-32768,-32768, 98,
42, 2246, 355,-32768, 47,-32768, 90, 114, 121,-32768,
2218,-32768,-32768,-32768, 47, 47, 47, 2080, 2014, 119,
-32768,-32768, 98, 116,-32768, 47, 1367,-32768, 331,-32768,
98, 355,-32768, 47,-32768,-32768, 874,-32768,-32768,-32768,
-32768, 127,-32768, 163,-32768, 166,-32768,-32768,-32768,-32768,
-32768,-32768, 2080, 2080, 396,-32768,-32768,-32768, 2080,-32768,
-32768, 1066,-32768,-32768, 2080, 125, 182,-32768, 2107, 2134,
-32768, 2347, 783, 260, 2080,-32768, 212, 222,-32768, 229,
1665, 689, 495, 288,-32768, 331, 98,-32768, 252,-32768,
1442, 309, 47,-32768,-32768, 331, 174,-32768, 47, 889,
349, 382, 189, 1429, 874,-32768,-32768,-32768,-32768, 47,
-32768, 247, 201,-32768, 287,-32768, 410,-32768,-32768,-32768,
-32768,-32768, 263, 339, 338, 346,-32768, 347, 2080, 1066,
-32768, 1066,-32768, 2080, 2080, 388,-32768,-32768, 2080, 2080,
2080, 2080, 2080, 2080, 2080, 2080, 2080, 2080, 2080, 2080,
-32768,-32768, 396, 396, 2080, 2080,-32768,-32768,-32768,-32768,
222, 1469, 47,-32768, 387, 517,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768, 10,-32768, 369,-32768, 382,-32768,
-32768, 403, 382, 435,-32768, 855, 1524,-32768, 367, 376,
-32768, 677, 71,-32768,-32768, 421, 47, 294, 290,-32768,
331, 331,-32768, 309, 47,-32768, 1551,-32768,-32768, 309,
47,-32768,-32768,-32768, 385, 469, 1314,-32768, 47,-32768,
-32768, 423, 383,-32768, 410,-32768,-32768,-32768, 390, 404,
1903,-32768, 2347, 417, 428, 2347, 2347, 2080, 481, 2080,
2080, 1576, 1657, 949, 861, 1372, 658, 658, 384, 384,
-32768,-32768,-32768,-32768,-32768, 445, 182, 449, 373, 342,
-32768, 1137,-32768, 452, 222,-32768, 1606,-32768, 517, 458,
689, 2161, 66, 462,-32768,-32768,-32768, 773,-32768, 463,
203,-32768,-32768, 56,-32768,-32768,-32768, 61,-32768,-32768,
-32768, 482,-32768, 349,-32768,-32768, 349,-32768, 430,-32768,
-32768, 457,-32768,-32768,-32768,-32768,-32768,-32768, 450,-32768,
471, 2080, 396, 473, 383,-32768, 523,-32768,-32768,-32768,
-32768,-32768, 518, 2080, 2270, 1495,-32768,-32768, 387,-32768,
-32768,-32768, 387,-32768,-32768, 475,-32768,-32768, 136, 484,
-32768,-32768, 327, 96,-32768,-32768, 744,-32768, 558, 338,
-32768,-32768,-32768, 485, 576,-32768, 1303, 61,-32768,-32768,
61, 483,-32768,-32768, 483,-32768, 47, 47, 2347,-32768,
47, 493, 396, 712, 523,-32768, 1123,-32768, 2363,-32768,
-32768, 2080,-32768,-32768,-32768, 96, 47, 181, 214, 47,
-32768, 47, 214, 47, 1137,-32768,-32768,-32768,-32768,-32768,
331,-32768, 98,-32768, 653,-32768,-32768, 2347,-32768,-32768,
1303,-32768,-32768, 413, 413,-32768,-32768,-32768, 47,-32768,
226, 407, 621, 494, 496, 796,-32768,-32768,-32768,-32768,
-32768, 537, 396, 2080,-32768, 540, 2347, 501, 503,-32768,
-32768, 217, 1243, 2080, 147, 325, 327,-32768, 1633,-32768,
-32768,-32768, 333, 96,-32768,-32768,-32768, 231, 261, 159,
653,-32768,-32768, 1123,-32768,-32768, 2080,-32768, 117, 58,
-32768,-32768, 396,-32768,-32768,-32768,-32768, 507,-32768,-32768,
-32768,-32768, 1769,-32768, 2257, 1123,-32768,-32768, 1183,-32768,
1358,-32768,-32768, 2363,-32768, 440, 440,-32768, 1688,-32768,
508,-32768,-32768, 514, 1790, 2080,-32768,-32768,-32768, 1849,
548, 535,-32768,-32768, 538, 539, 2080, 561, 519, 525,
2027, 184, 596,-32768, 569, 531,-32768, 546, 2250,-32768,
640, 925, 82,-32768,-32768,-32768,-32768,-32768, 1960, 2080,
-32768, 579, 1358,-32768,-32768,-32768,-32768,-32768,-32768, 1790,
2080, 603,-32768, 2080, 2080, 1713,-32768,-32768,-32768,-32768,
586, 2080, 591,-32768, 613, 47,-32768,-32768, 331,-32768,
98, 1009,-32768,-32768,-32768,-32768, 2080,-32768, 2302,-32768,
-32768,-32768, 597, 2080, 657,-32768, 932, 600, 609, 2080,
-32768,-32768, 602,-32768, 2080,-32768, 293,-32768, 100, 301,
-32768, 431,-32768,-32768, 1849, 610,-32768,-32768, 612,-32768,
-32768,-32768,-32768, 2320,-32768, 83,-32768, 309,-32768, 309,
-32768,-32768,-32768, 620,-32768,-32768, 2080,-32768,-32768, 693,
627,-32768,-32768,-32768,-32768,-32768,-32768, 637,-32768, 663,
123, 647,-32768,-32768, 338, 338,-32768,-32768, 2080, 693,
667, 693,-32768,-32768, 2080, 671, 160,-32768,-32768, 687,
-32768, 435, 676,-32768, 260, 219,-32768,-32768, 688, 435,
-32768,-32768, 260, 764, 768,-32768
};
static const short yypgoto[] = {-32768,
-32768,-32768,-32768, 103,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768, -24,-32768, -38, 516, -110, 477,-32768,-32768,
-21,-32768, 255,-32768,-32768,-32768,-32768,-32768, 232,-32768,
-194, -199, 591,-32768,-32768, 363,-32768, -3, -60, 252,
10, 757,-32768, 389, 19, -14, -90, 635, 27, -169,
-390, -49, -114, -68,-32768,-32768,-32768, -171, 26, 68,
-32768, 522,-32768, 386,-32768, -347,-32768, 325,-32768, -405,
-32768,-32768, 406,-32768,-32768,-32768,-32768,-32768,-32768, -42,
-77, 105, -9,-32768,-32768,-32768, -43,-32768,-32768,-32768,
-32768,-32768, 511, -37,-32768, 612, 538, 435, 625, 546,
-35, -92, -72, -91, -105, 429,-32768,-32768, -185,-32768,
-32768,-32768, 486, 16,-32768, -125,-32768,-32768,-32768,-32768,
-57, -361, -461, 456,-32768, 261,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768, 283,-32768, -503, 226,
-32768, 238,-32768, 621,-32768, -250,-32768,-32768,-32768, 543,
-193,-32768,-32768,-32768,-32768, 13
-32768,-32768,-32768, 77,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768, -24,-32768, -38, 477, -126, 426,-32768,-32768,
-45,-32768, 451,-32768,-32768,-32768,-32768,-32768, 196,-32768,
-177, -186, 560,-32768,-32768, 332,-32768, 20, 0, 216,
8, 728,-32768, 358, 17, -6, -69, 595, 21, -154,
-398, -34, -102, -47,-32768,-32768,-32768, -149, 4, 33,
-32768, 497,-32768, 359,-32768, -392,-32768, 284,-32768, -396,
-32768,-32768, 334,-32768,-32768,-32768,-32768,-32768,-32768, -37,
-42, 60, -18,-32768,-32768,-32768, -21,-32768,-32768,-32768,
-32768,-32768, 467, -7,-32768, 571, 479, 365, 564, 491,
-19, -70, -62, -85, -115, 366,-32768,-32768, -147,-32768,
-32768,-32768, 436, -151,-32768, -124,-32768,-32768,-32768,-32768,
-90, -332, -464, 380,-32768, 187,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768, 207,-32768, -563, 164,
-32768, 161,-32768, 549,-32768, -225,-32768,-32768,-32768, 480,
-181,-32768,-32768,-32768,-32768, 6
};
#define YYLAST 2403
#define YYLAST 2415
static const short yytable[] = { 86,
97, 123, 62, 64, 66, 225, 120, 52, 190, 293,
47, 21, 21, 131, 31, 31, 288, 49, 51, 250,
22, 22, 433, 218, 318, 135, 309, 25, 25, 476,
323, 351, 320, 104, 35, 36, 37, 201, 219, 370,
21, 124, 234, 31, 41, 46, 146, 54, 53, 22,
141, 139, 140, 319, 215, 509, 25, 142, 222, 324,
236, 646, 177, 147, 277, 99, 592, 330, 46, 14,
-102, 14, 209, 178, 119, 280, 46, 194, 14, 310,
666, 131, 130, 55, 499, 56, 522, 225, 279, 59,
60, 42, 58, 199, -1, 59, 60, 203, 678, 647,
43, 561, 58, 58, 58, 32, 104, 601, 99, -2,
59, 60, 242, 58, 254, 38, 255, 39, 667, 288,
248, 58, 285, 183, 593, 290, 183, 189, 46, 361,
291, 119, 46, 67, 520, 526, 679, 278, 109, 654,
314, 119, 131, 284, 317, 237, 234, 40, 274, 275,
130, -102, 316, 597, 558, 215, 368, 134, 637, 99,
400, 369, 14, 475, 236, 401, 215, 676, 61, 14,
110, 111, 215, 349, 63, 48, 99, 650, 99, 353,
653, 277, 655, 102, 109, 142, 58, -162, 322, 65,
663, 466, 467, -162, 613, 59, 60, 58, 110, 111,
329, 5, 331, 7, 188, 136, 183, 445, 199, 9,
10, 11, 203, 138, 434, 435, 110, 111, 436, 343,
242, 511, 687, 105, 148, 13, 149, 106, 621, 340,
325, 25, 327, 149, -162, 468, 469, 470, -162, 177,
473, 474, 578, 119, 418, 131, 119, 119, 356, 237,
58, 685, 204, 220, 481, 491, 686, 221, 496, 41,
114, 179, 189, 99, 228, 487, 194, 384, 106, 384,
409, 413, 514, 366, -269, -269, 223, 367, 187, -19,
-19, -19, -19, 52, 58, 231, 14, -19, -19, -19,
463, 239, 109, 363, 364, -162, 488, 375, 246, 280,
489, -162, 109, -19, 183, -162, 115, 25, 242, 481,
183, -162, 464, 518, 523, 116, 210, 221, 471, -105,
-105, -105, -105, 54, 53, -105, 519, -105, -105, -105,
106, 5, 55, 7, 56, 446, 33, 34, 376, 9,
10, 11, -162, -105, 247, 465, -162, 633, 14, 565,
472, 221, -162, 408, 412, 13, -162, -19, 349, 353,
635, 507, 110, 111, 106, 349, 353, 438, 180, 248,
420, 422, 477, 546, 384, 59, 60, 181, 182, 200,
131, 226, 227, 451, 446, 452, 497, 251, 406, 411,
486, 252, 25, 429, 598, 104, 431, -105, 315, -82,
546, 423, 292, 253, 421, 168, 169, 170, 256, 257,
612, 109, 478, 262, 263, 264, 265, 266, 267, 268,
269, 270, 271, 272, 273, 41, 500, 70, 517, 198,
411, 306, 41, 114, 648, 131, 649, 307, 210, 25,
313, -325, -325, -325, -325, 119, 326, 46, 332, -325,
-325, -325, 14, 336, 199, 203, 226, 227, 119, 14,
542, 199, 203, 333, 524, -325, 338, 485, 241, 198,
59, 60, 410, 58, 541, 110, 111, 341, 58, 115,
344, 405, 182, 681, 286, 287, 342, 542, 116, 406,
406, 689, 14, 142, 348, 546, 411, 411, 577, 41,
225, 541, 41, 403, -267, -267, 198, 347, 544, 307,
490, 555, 180, 579, 345, 346, 352, 545, 379, -101,
357, 181, 182, 362, 25, 365, 14, 392, 599, 14,
52, 602, 605, 178, 380, 669, 670, 616, 386, 609,
585, 587, 615, 286, 287, 397, 410, 41, 114, 404,
387, 198, 41, 403, 622, 405, 182, 390, 405, 182,
350, 625, 466, 467, 544, 151, 153, 555, 512, 513,
54, 53, 632, 545, 14, 399, 215, 618, 215, 14,
25, 5, 542, 7, 188, 402, 388, 417, 419, 9,
10, 11, 437, 432, 115, -304, 541, 495, 398, 404,
-31, 503, 504, 116, 602, 13, 505, 14, 405, 182,
119, 294, 46, 295, 5, 6, 7, 8, 525, 563,
296, 564, 9, 10, 11, -32, 672, 180, 567, 41,
570, 427, 602, 198, 571, 573, 181, 182, 13, 580,
14, 210, 574, -114, -114, -114, -114, -114, -114, -114,
455, -114, -114, -114, -114, -114, 14, -114, -114, -114,
97, 47, 62, 64, 66, 25, 25, 31, 31, 21,
21, 120, 35, 36, 37, 52, 123, 225, 22, 22,
250, 215, 478, 46, 104, 54, 293, 139, 140, 218,
190, 288, 124, 142, 25, 131, 31, 318, 21, 147,
49, 51, 53, 323, 320, 107, 46, 22, 277, 178,
141, 434, 119, 435, 46, 135, 351, 58, 201, 99,
130, 370, 146, 234, 309, 280, 513, 58, 58, 58,
236, -102, 209, 219, 177, 319, 14, 194, 58, 32,
310, 324, 596, 658, 199, 290, 58, 14, 203, 330,
291, 524, 59, 60, 279, 526, -1, 104, 41, 225,
41, 183, 99, 131, 183, -2, 46, 67, 605, 119,
46, 680, 242, 562, 565, 503, 59, 60, 48, 119,
650, 189, 215, 59, 60, 14, 109, 14, 130, -162,
254, 368, 255, 215, 288, -162, 369, 278, 237, 215,
597, 361, 248, 284, 38, 411, 14, 42, 274, 275,
39, 58, -102, 99, 406, 182, 43, 40, 651, 641,
670, 142, 58, 349, 131, 277, 601, 234, 530, 353,
99, 61, 99, 316, 236, 314, -162, 102, 654, 317,
-162, 657, 285, 659, 183, 109, 59, 60, 322, 477,
617, 667, 105, -171, -171, 63, 106, 682, 671, 199,
148, 232, 65, 203, 5, 340, 7, 96, 134, 25,
14, 401, 9, 10, 11, 58, 402, 110, 111, 343,
242, 119, 515, 691, 119, 119, 430, 149, 13, 432,
329, 15, 331, 582, 384, 683, 386, 436, 437, 468,
469, 438, 237, 14, 136, 419, 447, 138, 356, 58,
220, 14, 511, 325, 221, 327, 189, 99, 470, 471,
472, 625, 149, 475, 476, 228, 194, 131, 177, 106,
483, 180, 110, 111, 453, 465, 454, 233, -261, 366,
181, 182, 183, 367, 488, 25, 518, 179, 183, 491,
280, 52, 410, 414, 689, 495, 41, 114, 500, 690,
198, 54, 492, 448, 187, 375, 493, 522, 242, 210,
204, 221, -325, -325, -325, -325, 363, 364, 53, 466,
-325, -325, -325, 14, 231, 473, 483, 41, 404, 41,
404, 198, 376, 41, 114, 41, -325, 523, 246, 198,
527, 106, 386, 115, 409, 413, 110, 111, 226, 227,
349, 353, 116, 448, 14, 501, 14, 349, 353, 55,
14, 56, 14, 200, 239, 315, 407, 412, 440, 637,
25, 33, 34, 221, 405, 569, 405, 639, 550, 198,
115, 106, 411, 406, 182, 406, 182, 104, 479, 116,
-101, 406, 182, 421, 423, 424, 490, 490, 59, 60,
286, 287, 14, 131, 480, 550, 467, 226, 227, 412,
241, 474, 59, 60, 247, 41, 114, 350, 25, 248,
602, 251, 180, 252, 119, -82, 46, 292, 504, 109,
521, 181, 182, 168, 169, 170, 616, 489, 119, 58,
110, 111, 14, 70, 58, 286, 287, 199, 203, 306,
487, 652, 307, 653, 199, 203, 313, 109, 332, 131,
-162, 326, 115, 333, 546, 379, -162, 336, 528, 407,
407, 116, 5, 142, 7, 188, 412, 412, 545, 338,
9, 10, 11, 307, 494, 5, 6, 7, 8, 110,
111, 546, 341, 9, 10, 11, 13, 41, 468, 469,
550, 198, 581, 342, 685, 545, 25, -162, 559, 13,
548, -162, 693, 178, 151, 153, 225, 583, 344, 549,
347, 58, 127, 128, 14, 516, 517, 387, 9, 10,
11, 348, 603, 357, 352, 606, 609, 362, 365, 380,
673, 674, 52, 613, 42, -269, -269, 215, 388, 215,
391, 619, 54, 43, 393, 398, 620, 400, 626, 403,
418, 420, 25, 433, 559, 629, 548, 589, 591, 53,
439, -304, 622, 499, -31, 549, 636, 507, 508, 5,
55, 7, 56, 509, 529, -32, 546, 9, 10, 11,
567, 568, 119, 571, 46, 578, 574, 575, 577, 253,
545, 579, 584, 13, 256, 257, 586, 587, 606, 262,
263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
273, 210, 588, -114, -114, -114, -114, -114, -114, -114,
676, -114, -114, -114, -114, -114, 606, -114, -114, -114,
-114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
-114, -114, 575, -114, -114, 582, 42, 583, 584, 588,
-114, 596, 600, -114, 427, 43, -385, 611, -114, -114,
-114, 608, 610, 624, -114, -114, 480, 127, 128, -114,
126, 127, 128, 9, 10, 11, 501, 9, 10, 11,
59, 60, 191, 192, 193, 455, 510, -114, -114, -114,
-114, 143, -114, 68, 5, 14, 7, 96, 69, 70,
626, 71, 9, 10, 11, 628, 455, 629, 640, 521,
171, 172, 631, 173, 174, 175, 176, 641, 13, 72,
651, 15, 656, 73, 74, 660, 455, 664, 665, 455,
75, 455, 627, 76, 668, 127, 128, 674, 77, 78,
79, 9, 10, 11, 80, 81, 566, 677, 232, 82,
680, 5, 683, 7, 96, 688, 691, 572, 692, 9,
10, 11, 164, 165, 166, 167, 168, 169, 170, 83,
84, 603, -91, 311, 492, 13, 594, 360, 15, 125,
595, 479, 358, 455, 440, 483, -325, -325, -325, -325,
-325, -325, -325, 289, -325, -325, -325, -325, -325, 560,
-114, -114, 422, -114, -114, 592, 600, 482, 127, 128,
-114, 604, 612, -114, 9, 10, 11, 614, -114, -114,
-114, 615, 628, 630, -114, -114, 632, 210, 635, -114,
-105, -105, -105, -105, 633, 644, -105, 645, -105, -105,
-105, 59, 60, 191, 192, 193, 655, -114, -114, -114,
-114, 660, -114, 664, -105, 166, 167, 168, 169, 170,
345, 346, 442, 668, -325, -325, -325, -325, -325, -325,
-325, 669, -325, -325, -325, -325, -325, 672, -325, -325,
-325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
-325, -325, -325, -325, -325, 391, -325, -325, 328, 5,
6, 7, 8, -325, 233, -261, -325, 9, 10, 11,
630, -325, -325, -325, 385, 508, 484, -325, -325, 335,
493, 294, -325, 13, 5, 6, 7, 8, 389, 448,
296, 638, 9, 10, 11, 166, 167, 168, 169, 170,
-325, 673, -325, -325, 210, -325, -325, -325, 13, 498,
14, -325, -325, 639, -325, 675, 354, 0, -325, 416,
-325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
-325, 0, -325, 0, -325, 0, -325, -325, 0, 0,
0, 0, 0, -325, 171, 172, -325, 173, 174, 175,
176, -325, -325, -325, 0, 0, -385, -325, -325, 0,
0, 0, -325, 232, 0, 0, 5, 0, 7, 96,
0, 0, 0, 0, 9, 10, 11, 0, 0, 0,
-325, -300, -325, -325, 589, -325, -325, -325, 0, 0,
13, -325, -325, 15, -325, 0, 0, 0, -325, 0,
-325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
-325, 0, -325, 0, -325, 0, -325, -325, 0, 5,
6, 7, 8, -325, 0, 415, -325, 9, 10, 11,
0, -325, -325, -325, 0, 0, 0, -325, -325, 0,
0, 0, -325, 13, 0, 14, 0, 0, 0, 5,
6, 7, 8, 0, 0, 0, 0, 9, 10, 11,
-325, 0, -325, -325, 619, -325, -335, -335, 0, 0,
0, -335, -335, 13, -335, 14, 0, 0, -335, 0,
-335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
-335, 0, -335, 0, -335, 0, -335, -335, 0, 0,
0, 0, 0, -335, 0, 0, -335, 0, 0, 0,
0, -335, -335, -335, 0, 0, 0, -335, -335, 0,
0, 449, -335, 450, 60, 0, 0, 0, 69, 70,
0, 71, 163, 164, 165, 166, 167, 168, 169, 170,
-335, 0, -335, -335, 0, -335, 0, 0, 0, 72,
0, 15, 0, 73, 74, 0, 0, 0, 0, 0,
75, 0, 0, 76, 0, 0, 0, 0, 77, 78,
79, 0, 0, 0, 80, 81, 0, 0, 451, 82,
452, 449, 0, 450, 60, 0, 0, 0, 69, 70,
0, 71, 0, 0, 0, 0, 0, 0, -190, 83,
84, 0, 453, 0, 0, 0, 0, 0, 0, 72,
0, 15, 0, 73, 74, 0, 0, 0, 0, 0,
75, 0, 0, 76, 0, 0, 0, 0, 77, 78,
79, 0, 0, 0, 80, 81, 0, 0, 451, 82,
452, 449, 0, 68, 0, 0, 0, 0, 69, 70,
0, 71, 0, 0, 0, 0, 0, 0, -258, 83,
84, 0, 453, 0, 0, 0, 0, 0, 0, 72,
0, 15, 0, 73, 74, 0, -203, 0, 0, 0,
75, 0, 0, 76, 0, 0, 0, 0, 77, 78,
79, 0, 0, 0, 80, 81, 0, 0, -203, 82,
-203, 425, 0, 68, 0, 0, 0, 0, 69, 70,
0, 71, 0, 0, 0, 0, 0, 0, 0, 83,
84, 0, 453, 0, 0, 0, 0, 0, 0, 72,
0, 15, 0, 73, 74, 0, 0, 0, 0, 0,
75, 0, 0, 76, 0, 0, 0, 0, 77, 78,
79, 0, 0, 0, 80, 81, 449, 0, 68, 82,
0, 0, 0, 69, 70, 108, 71, 0, -27, -27,
-27, -27, 0, 0, 0, 0, -27, -27, -27, 83,
84, 0, 426, 0, 72, 0, 15, 0, 73, 74,
0, 109, -27, 0, -162, 75, 0, 0, 76, 0,
-162, 0, 0, 77, 78, 79, 0, 0, 0, 80,
81, 0, 0, 0, 82, 0, 0, 0, 0, 0,
0, 0, 0, 110, 111, 0, 0, 229, 0, 0,
-23, -23, -23, -23, 83, 84, 0, 453, -23, -23,
-23, -162, 68, 0, 0, -162, -27, 69, 70, 0,
71, 0, 0, 109, -23, 0, -162, 0, 0, 0,
0, 0, -162, 0, 0, 0, 0, 0, 72, 68,
15, 0, 73, 74, 69, 70, 0, 71, 0, 75,
0, 0, 76, 0, 0, 110, 111, 77, 78, 207,
0, 0, 0, 80, 81, 72, 0, 15, 82, 73,
74, 0, 0, -162, 0, 0, 75, -162, -23, 76,
0, 0, 0, 0, 77, 78, 79, 0, 83, 84,
80, 81, 208, 0, 68, 82, 0, 0, 0, 69,
70, 0, 71, 159, 160, 161, 162, 163, 164, 165,
166, 167, 168, 169, 170, 83, 84, 0, 0, 283,
-325, -325, -325, 678, -325, -325, 681, 5, 6, 7,
8, -325, 687, 416, -325, 9, 10, 11, -105, -325,
-325, -325, 684, 695, 692, -325, -325, 696, 360, 607,
-325, 13, 311, 14, 598, 496, 5, 6, 7, 8,
125, 481, 389, 289, 9, 10, 11, 358, -325, 485,
-325, -325, 564, -325, 399, 512, 210, 486, -325, -325,
13, 392, 14, -325, -325, 385, -325, 328, 335, 497,
-325, 642, -325, -325, -325, -325, -325, -325, -325, -325,
-325, -325, -325, 390, -325, 502, -325, 428, -325, -325,
450, 643, 679, 677, 354, -325, 171, 172, -325, 173,
174, 175, 176, -325, -325, -325, 417, 457, 0, -325,
-325, 0, 0, 0, -325, 294, 0, 295, 5, 6,
7, 8, 0, 0, 296, 0, 9, 10, 11, 0,
0, 0, -325, -300, -325, -325, 0, -325, 126, 127,
128, 428, 13, 0, 14, 9, 10, 11, 0, 223,
0, 0, -19, -19, -19, -19, 0, 0, 0, 0,
-19, -19, -19, 14, 505, 163, 164, 165, 166, 167,
168, 169, 170, 457, 514, 109, -19, 0, -162, 0,
0, 0, 0, 0, -162, 593, 0, -325, -325, 0,
-385, 0, -325, -325, 457, -325, 0, 525, 0, -325,
0, -325, -325, -325, -325, -325, -325, -325, -325, -325,
-325, -325, 0, -325, 0, -325, 457, -325, -325, 457,
0, 457, 0, 0, -325, -162, 0, -325, 0, -162,
-19, 0, -325, -325, -325, 0, 570, 0, -325, -325,
0, 0, 0, -325, 0, 171, 172, 576, 173, 174,
175, 176, 162, 163, 164, 165, 166, 167, 168, 169,
170, -325, 0, -325, -325, 0, -325, 631, 0, 623,
599, -335, -335, 457, 0, 0, -335, -335, 0, -335,
0, 0, 0, -335, 0, -335, -335, -335, -335, -335,
-335, -335, -335, -335, -335, -335, 0, -335, 0, -335,
0, -335, -335, 0, 0, 0, 0, 0, -335, 0,
0, -335, 0, 0, 0, 0, -335, -335, -335, 0,
634, 0, -335, -335, 0, 0, 143, -335, 68, 5,
0, 7, 96, 69, 70, 0, 71, 9, 10, 11,
0, 0, 0, 0, 0, -335, 0, -335, -335, 0,
-335, 0, 0, 13, 72, 0, 15, 0, 73, 74,
0, 0, 0, 0, 0, 75, 0, 0, 76, 0,
0, 0, 0, 77, 78, 79, 0, 0, 0, 80,
81, 0, 0, 451, 82, 452, 60, 0, 0, 0,
69, 70, 0, 71, 0, 0, 0, 294, 0, 0,
5, 6, 7, 8, 83, 84, 296, -91, 9, 10,
11, 72, 0, 15, 0, 73, 74, 0, 0, 0,
0, 0, 75, 0, 13, 76, 14, 0, 0, 0,
77, 78, 79, 0, 0, 0, 80, 81, 0, 0,
453, 82, 454, 451, 0, 452, 60, 0, 0, 0,
69, 70, 0, 71, 0, 0, 0, 0, 0, 0,
-190, 83, 84, 0, 455, 0, 0, 0, 0, 0,
0, 72, -385, 15, 0, 73, 74, 0, 0, 0,
0, 0, 75, 0, 0, 76, 0, 0, 0, 0,
77, 78, 79, 0, 0, 0, 80, 81, 0, 0,
453, 82, 454, 451, 0, 68, 0, 0, 0, 0,
69, 70, 0, 71, 0, 0, 0, 0, 0, 0,
-258, 83, 84, 0, 455, 0, 0, 0, 0, 0,
0, 72, 0, 15, 0, 73, 74, 0, -203, 0,
0, 0, 75, 0, 0, 76, 0, 0, 0, 0,
77, 78, 79, 0, 0, 0, 80, 81, 0, 0,
-203, 82, -203, 426, 0, 68, 0, 0, 0, 0,
69, 70, 0, 71, 232, 0, 0, 5, 0, 7,
96, 83, 84, 0, 455, 9, 10, 11, 0, 0,
0, 72, 0, 15, 0, 73, 74, 0, 0, 0,
0, 13, 75, 0, 15, 76, 0, 0, 0, 0,
77, 78, 79, 0, 0, 0, 80, 81, 451, 0,
68, 82, 0, 0, 0, 69, 70, 108, 71, 0,
-27, -27, -27, -27, 0, 0, 0, 0, -27, -27,
-27, 83, 84, 0, 427, 0, 72, 0, 15, 0,
73, 74, 0, 109, -27, 0, -162, 75, 0, 0,
76, 0, -162, 0, 0, 77, 78, 79, 0, 0,
0, 80, 81, 0, 0, 0, 82, 164, 165, 166,
167, 168, 169, 170, 0, 110, 111, 0, 0, 229,
0, 0, -23, -23, -23, -23, 83, 84, 0, 455,
-23, -23, -23, -162, 68, 0, 0, -162, -27, 69,
70, 0, 71, 0, 0, 109, -23, 0, -162, 0,
0, 0, 0, 0, -162, 0, 0, 0, 0, 0,
72, 68, 15, 0, 73, 74, 69, 70, 0, 71,
0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
78, 79, 0, 0, 0, 80, 81, 72, 0, 15,
82, 73, 74, 0, 0, 0, 0, 0, 75, 0,
0, 76, 0, 0, 0, 0, 77, 78, 79, 0,
83, 84, 80, 81, 305, 0, 68, 82, 0, 0,
0, 69, 70, 0, 71, 160, 161, 162, 163, 164,
165, 166, 167, 168, 169, 170, 0, 83, 84, 0,
0, 321, 72, 68, 15, 0, 73, 74, 69, 70,
0, 75, 0, 0, 76, 0, 0, 110, 111, 77,
78, 207, 0, 0, 0, 80, 81, 72, 0, 15,
82, 73, 74, 0, 0, -162, 0, 0, 75, -162,
-23, 76, 0, 0, 0, 0, 77, 78, 79, 0,
83, 84, 80, 81, 208, 0, 68, 82, 0, 0,
0, 69, 70, 0, 71, 159, 160, 161, 162, 163,
164, 165, 166, 167, 168, 169, 170, 83, 84, 0,
0, 283, 72, 68, 15, 0, 73, 74, 69, 70,
0, 71, 0, 75, 0, 0, 76, 0, 0, 0,
0, 77, 78, 79, 0, 0, 0, 80, 81, 72,
0, 15, 82, 73, 74, 0, 0, 0, 0, 0,
75, 0, 0, 76, 0, 0, 0, 0, 77, 78,
515, 0, 83, 84, 80, 81, 355, 0, 68, 82,
0, 0, 0, 69, 70, 0, 71, 161, 162, 163,
164, 165, 166, 167, 168, 169, 170, 0, 0, 83,
84, 0, 0, 516, 72, 0, 15, 0, 73, 74,
606, 0, 0, 0, 0, 75, 0, 0, 76, 0,
79, 0, 83, 84, 80, 81, 305, 0, 68, 82,
0, 0, 0, 69, 70, 0, 71, 160, 161, 162,
163, 164, 165, 166, 167, 168, 169, 170, 0, 83,
84, 0, 0, 321, 72, 68, 15, 0, 73, 74,
69, 70, 0, 71, 0, 75, 0, 0, 76, 0,
0, 0, 0, 77, 78, 79, 0, 0, 0, 80,
81, 0, 0, 0, 82, 154, 155, 156, 607, 157,
158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
168, 169, 170, 0, 83, 84, 0, 0, 562, 450,
527, 6, 7, 8, 69, 70, 0, 71, 9, 10,
11, 528, 0, 529, 530, 531, 532, 533, 534, 535,
536, 537, 538, 539, 13, 72, 14, 15, 0, 73,
74, 0, 0, 0, 0, 0, 75, 0, 0, 76,
0, 0, 0, 0, 77, 78, 79, 14, 0, 0,
80, 81, 154, 155, 156, 82, 157, 158, 159, 160,
161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
0, 0, 0, 540, 0, 83, 84, 0, 248, 450,
60, 0, 0, 0, 69, 70, 0, 71, 0, 0,
0, 528, 0, 529, 530, 531, 532, 533, 534, 535,
536, 537, 538, 539, 0, 72, 0, 15, 0, 73,
74, 0, 0, 0, 0, 0, 75, 0, 0, 76,
0, 0, 0, 0, 77, 78, 79, 0, 0, 0,
80, 81, 0, 68, 0, 82, 0, 0, 69, 70,
0, 71, 162, 163, 164, 165, 166, 167, 168, 169,
170, 0, 0, 540, 0, 83, 84, 0, 248, 72,
0, 15, 0, 73, 74, 0, 0, 0, 0, 0,
75, 0, 0, 76, 0, 0, 0, 0, 77, 78,
79, 0, 0, 0, 80, 81, 0, 0, 0, 82,
68, 5, 6, 7, 8, 69, 70, 0, 71, 9,
10, 11, 0, 0, 0, 0, 0, 0, 0, 83,
84, 0, 339, 0, 0, 13, 72, 14, 15, 0,
73, 74, 0, 0, 0, 0, 0, 75, 0, 0,
76, 0, 0, 0, 0, 77, 78, 79, 0, 0,
0, 80, 81, 0, 68, 5, 82, 7, 96, 69,
70, 0, 71, 9, 10, 11, 0, 68, 0, 0,
0, 0, 69, 70, 0, 71, 83, 84, 0, 13,
72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
0, 75, 0, 72, 76, 15, 0, 73, 74, 77,
78, 79, 0, 0, 75, 80, 81, 76, 0, 0,
82, 0, 77, 78, 79, 0, 0, 0, 80, 81,
68, 0, 0, 82, 0, 69, 70, 0, 71, 0,
83, 84, 0, 0, 0, 0, 0, 0, 0, 0,
0, 576, 0, 83, 84, 0, 72, 68, 15, 0,
73, 74, 69, 70, 0, 71, 0, 75, 0, 0,
81, 72, 0, 15, 82, 73, 74, 0, 5, 0,
7, 188, 75, 0, 0, 76, 9, 10, 11, 0,
77, 78, 519, 0, 83, 84, 80, 81, 355, 0,
68, 82, 13, 0, 14, 69, 70, 0, 71, 161,
162, 163, 164, 165, 166, 167, 168, 169, 170, 0,
0, 83, 84, 0, 180, 520, 72, 0, 15, 0,
73, 74, 610, 181, 182, 0, 0, 75, 0, 0,
76, 0, 0, 0, 0, 77, 78, 79, 0, 0,
0, 80, 81, 72, 68, 15, 82, 73, 74, 69,
70, 0, 71, 0, 75, 0, 0, 76, 0, 0,
0, 0, 77, 78, 79, 0, 83, 84, 80, 81,
72, 359, 15, 150, 73, 74, 69, 70, 0, 71,
0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
78, 79, 0, 83, 84, 80, 81, 72, 0, 15,
152, 73, 74, 0, 0, 0, 0, 0, 75, 0,
0, 80, 81, 0, 0, 0, 82, 154, 155, 156,
611, 157, 158, 159, 160, 161, 162, 163, 164, 165,
166, 167, 168, 169, 170, 0, 83, 84, 0, 0,
566, 452, 531, 6, 7, 8, 69, 70, 0, 71,
9, 10, 11, 532, 0, 533, 534, 535, 536, 537,
538, 539, 540, 541, 542, 543, 13, 72, 14, 15,
0, 73, 74, 0, 0, 0, 0, 0, 75, 0,
0, 76, 0, 0, 0, 0, 77, 78, 79, 14,
0, 0, 80, 81, 154, 155, 156, 82, 157, 158,
159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
169, 170, 0, 0, 0, 544, 0, 83, 84, 0,
248, 452, 60, 0, 0, 0, 69, 70, 0, 71,
0, 0, 0, 532, 0, 533, 534, 535, 536, 537,
538, 539, 540, 541, 542, 543, 0, 72, 0, 15,
0, 73, 74, 0, 0, 0, 0, 0, 75, 0,
0, 76, 0, 0, 0, 0, 77, 78, 79, 0,
83, 84, 80, 81, 0, 0, 4, 82, -118, 5,
6, 7, 8, 0, 0, 0, 0, 9, 10, 11,
0, 0, 0, 0, 0, 0, 0, 83, 84, 0,
0, 0, 12, 13, 0, 14, 15, 5, 6, 7,
8, 5, 6, 7, 8, 9, 10, 11, 0, 9,
10, 11, 0, 0, 556, -118, 0, 0, 0, 0,
0, 13, 0, 14, -118, 13, 0, 14, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 154,
155, 156, 16, 157, 158, 159, 160, 161, 162, 163,
164, 165, 166, 167, 168, 169, 170, 158, 159, 160,
161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
50, 0, 0, 0, 586, 0, 0, 0, 0, 0,
0, 0, 0, 0, 154, 155, 156, 557, 157, 158,
0, 0, 80, 81, 0, 68, 0, 82, 0, 0,
69, 70, 0, 71, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 544, 0, 83, 84, 0,
248, 72, 0, 15, 0, 73, 74, 0, 0, 0,
0, 0, 75, 0, 0, 76, 0, 0, 0, 0,
77, 78, 79, 0, 0, 0, 80, 81, 0, 0,
0, 82, 68, 5, 6, 7, 8, 69, 70, 0,
71, 9, 10, 11, 0, 0, 0, 0, 0, 0,
0, 83, 84, 0, 339, 0, 0, 13, 72, 14,
15, 0, 73, 74, 0, 0, 0, 0, 0, 75,
0, 0, 76, 0, 0, 0, 0, 77, 78, 79,
0, 0, 0, 80, 81, 0, 68, 5, 82, 7,
96, 69, 70, 0, 71, 9, 10, 11, 0, 68,
0, 0, 0, 0, 69, 70, 0, 71, 83, 84,
0, 13, 72, 0, 15, 0, 73, 74, 0, 0,
0, 0, 0, 75, 0, 72, 76, 15, 0, 73,
74, 77, 78, 79, 0, 0, 75, 80, 81, 76,
0, 0, 82, 0, 77, 78, 79, 0, 0, 0,
80, 81, 68, 0, 0, 82, 0, 69, 70, 0,
71, 0, 83, 84, 0, 0, 0, 0, 0, 0,
0, 0, 0, 580, 0, 83, 84, 0, 72, 68,
15, 0, 73, 74, 69, 70, 0, 71, 0, 75,
0, 0, 76, 0, 0, 0, 0, 77, 78, 79,
0, 0, 0, 80, 81, 72, 68, 15, 82, 73,
74, 69, 70, 0, 71, 0, 75, 0, 0, 76,
0, 0, 0, 0, 77, 78, 79, 0, 83, 84,
80, 81, 72, 359, 15, 150, 73, 74, 69, 70,
0, 71, 0, 75, 0, 0, 76, 0, 0, 0,
0, 77, 78, 79, 0, 83, 84, 80, 81, 72,
0, 15, 152, 73, 74, 0, 0, 0, 0, 0,
75, 0, 0, 76, 0, 0, 0, 0, 77, 78,
79, 0, 83, 84, 80, 81, 0, 0, 4, 82,
-118, 5, 6, 7, 8, 0, 0, 0, 0, 9,
10, 11, 0, 0, 0, 0, 0, 0, 0, 83,
84, 0, 0, 0, 12, 13, 0, 14, 15, 5,
6, 7, 8, 5, 6, 7, 8, 9, 10, 11,
0, 9, 10, 11, 0, 0, 560, -118, 0, 0,
0, 0, 0, 13, 0, 14, -118, 13, 0, 14,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 154, 155, 156, 16, 157, 158, 159, 160, 161,
162, 163, 164, 165, 166, 167, 168, 169, 170, 158,
159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
169, 170, 154, 155, 156, 645, 157, 158, 159, 160,
161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
0, 0, 0, 0, 0, 0, 0, 0, 0, 154,
155, 156, 623, 157, 158, 159, 160, 161, 162, 163,
164, 165, 166, 167, 168, 169, 170, 156, 0, 157,
158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
168, 169, 170
169, 170, 50, 0, 0, 0, 590, 0, 0, 0,
0, 0, 0, 0, 0, 0, 154, 155, 156, 561,
157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
167, 168, 169, 170, 154, 155, 156, 649, 157, 158,
159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
169, 170, 0, 0, 0, 0, 0, 0, 0, 0,
0, 154, 155, 156, 627, 157, 158, 159, 160, 161,
162, 163, 164, 165, 166, 167, 168, 169, 170, 156,
0, 157, 158, 159, 160, 161, 162, 163, 164, 165,
166, 167, 168, 169, 170
};
static const short yycheck[] = { 38,
39, 51, 27, 28, 29, 120, 49, 22, 101, 204,
20, 2, 3, 57, 2, 3, 186, 21, 22, 145,
2, 3, 384, 115, 224, 63, 212, 2, 3, 420,
230, 282, 226, 43, 9, 10, 11, 106, 116, 1,
31, 51, 133, 31, 3, 20, 82, 22, 22, 31,
75, 73, 74, 225, 112, 461, 31, 79, 119, 231,
133, 38, 9, 85, 175, 39, 1, 239, 43, 30,
1, 30, 111, 95, 49, 181, 51, 102, 30, 10,
38, 125, 57, 5, 446, 7, 38, 202, 180, 3,
4, 50, 25, 103, 0, 3, 4, 107, 38, 76,
59, 507, 35, 36, 37, 3, 116, 569, 82, 0,
3, 4, 137, 46, 150, 59, 152, 59, 76, 289,
82, 54, 183, 98, 59, 76, 101, 101, 103, 76,
81, 106, 107, 31, 482, 497, 76, 176, 27, 643,
218, 116, 186, 182, 222, 133, 237, 59, 173, 174,
125, 82, 221, 559, 502, 213, 76, 82, 620, 133,
76, 81, 30, 414, 237, 81, 224, 671, 82, 30,
59, 60, 230, 279, 82, 77, 150, 639, 152, 285,
642, 292, 644, 59, 27, 207, 119, 30, 227, 82,
652, 59, 60, 36, 585, 3, 4, 130, 59, 60,
238, 4, 240, 6, 7, 82, 181, 393, 218, 12,
13, 14, 222, 82, 386, 387, 59, 60, 390, 258,
245, 76, 684, 77, 76, 28, 81, 81, 590, 251,
234, 206, 236, 81, 77, 407, 408, 409, 81, 9,
412, 413, 50, 218, 370, 289, 221, 222, 287, 237,
183, 76, 59, 77, 424, 441, 81, 81, 444, 3,
4, 76, 236, 237, 77, 437, 291, 325, 81, 327,
363, 364, 466, 77, 77, 78, 1, 81, 76, 4,
5, 6, 7, 298, 217, 78, 30, 12, 13, 14,
401, 78, 27, 297, 298, 30, 77, 312, 76, 405,
81, 36, 27, 28, 279, 30, 50, 282, 333, 479,
285, 36, 404, 77, 486, 59, 1, 81, 410, 4,
5, 6, 7, 298, 298, 10, 77, 12, 13, 14,
81, 4, 5, 6, 7, 393, 77, 78, 312, 12,
13, 14, 77, 28, 76, 406, 81, 77, 30, 521,
411, 81, 77, 363, 364, 28, 81, 82, 464, 465,
77, 36, 59, 60, 81, 471, 472, 392, 50, 82,
374, 375, 422, 499, 432, 3, 4, 59, 60, 76,
424, 59, 60, 58, 442, 60, 444, 76, 363, 364,
433, 77, 367, 378, 566, 405, 381, 82, 76, 38,
526, 375, 59, 149, 77, 50, 51, 52, 154, 155,
582, 27, 422, 159, 160, 161, 162, 163, 164, 165,
166, 167, 168, 169, 170, 3, 451, 9, 467, 7,
405, 83, 3, 4, 634, 479, 636, 77, 1, 414,
36, 4, 5, 6, 7, 420, 77, 422, 36, 12,
13, 14, 30, 78, 464, 465, 59, 60, 433, 30,
499, 471, 472, 81, 489, 28, 76, 38, 1, 7,
3, 4, 50, 406, 499, 59, 60, 76, 411, 50,
38, 59, 60, 678, 59, 60, 76, 526, 59, 464,
465, 686, 30, 515, 83, 621, 471, 472, 537, 3,
615, 526, 3, 4, 77, 78, 7, 76, 499, 77,
78, 499, 50, 538, 260, 261, 83, 499, 36, 82,
76, 59, 60, 76, 499, 76, 30, 32, 567, 30,
545, 570, 571, 555, 83, 661, 662, 587, 78, 578,
544, 545, 585, 59, 60, 38, 50, 3, 4, 50,
78, 7, 3, 4, 593, 59, 60, 78, 59, 60,
76, 600, 59, 60, 555, 89, 90, 555, 464, 465,
545, 545, 611, 555, 30, 83, 634, 587, 636, 30,
555, 4, 621, 6, 7, 76, 332, 3, 77, 12,
13, 14, 78, 81, 50, 78, 621, 78, 344, 50,
38, 38, 78, 59, 643, 28, 81, 30, 59, 60,
585, 1, 587, 3, 4, 5, 6, 7, 78, 83,
10, 78, 12, 13, 14, 38, 665, 50, 59, 3,
59, 377, 671, 7, 59, 38, 59, 60, 28, 7,
30, 1, 77, 3, 4, 5, 6, 7, 8, 9,
396, 11, 12, 13, 14, 15, 30, 17, 18, 19,
39, 20, 27, 28, 29, 2, 3, 2, 3, 2,
3, 49, 9, 10, 11, 22, 51, 120, 2, 3,
145, 112, 421, 20, 43, 22, 204, 73, 74, 115,
101, 186, 51, 79, 31, 57, 31, 224, 31, 85,
21, 22, 22, 230, 226, 46, 43, 31, 175, 95,
75, 384, 49, 386, 51, 63, 282, 25, 106, 39,
57, 1, 82, 133, 212, 181, 463, 35, 36, 37,
133, 1, 111, 116, 9, 225, 30, 102, 46, 3,
10, 231, 1, 647, 103, 76, 54, 30, 107, 239,
81, 484, 3, 4, 180, 38, 0, 116, 3, 202,
3, 98, 82, 125, 101, 0, 103, 31, 573, 106,
107, 675, 137, 506, 511, 448, 3, 4, 77, 116,
38, 101, 213, 3, 4, 30, 27, 30, 125, 30,
150, 76, 152, 224, 289, 36, 81, 176, 133, 230,
59, 76, 82, 182, 59, 50, 30, 50, 173, 174,
59, 119, 82, 133, 59, 60, 59, 59, 76, 624,
38, 207, 130, 279, 186, 292, 563, 237, 501, 285,
150, 82, 152, 221, 237, 218, 77, 59, 643, 222,
81, 646, 183, 648, 181, 27, 3, 4, 227, 415,
589, 656, 77, 77, 78, 82, 81, 38, 76, 218,
76, 1, 82, 222, 4, 251, 6, 7, 82, 206,
30, 76, 12, 13, 14, 183, 81, 59, 60, 258,
245, 218, 76, 688, 221, 222, 378, 81, 28, 381,
238, 31, 240, 50, 325, 76, 327, 387, 388, 59,
60, 391, 237, 30, 82, 370, 394, 82, 287, 217,
77, 30, 36, 234, 81, 236, 236, 237, 408, 409,
410, 594, 81, 413, 414, 77, 291, 289, 9, 81,
425, 50, 59, 60, 58, 402, 60, 77, 78, 77,
59, 60, 279, 81, 434, 282, 468, 76, 285, 439,
406, 298, 363, 364, 76, 443, 3, 4, 446, 81,
7, 298, 77, 394, 76, 312, 81, 77, 333, 1,
59, 81, 4, 5, 6, 7, 297, 298, 298, 405,
12, 13, 14, 30, 78, 411, 481, 3, 4, 3,
4, 7, 312, 3, 4, 3, 28, 77, 76, 7,
490, 81, 433, 50, 363, 364, 59, 60, 59, 60,
466, 467, 59, 444, 30, 446, 30, 473, 474, 5,
30, 7, 30, 76, 78, 76, 363, 364, 393, 77,
367, 77, 78, 81, 50, 525, 50, 77, 503, 7,
50, 81, 50, 59, 60, 59, 60, 406, 423, 59,
82, 59, 60, 374, 375, 375, 434, 435, 3, 4,
59, 60, 30, 425, 423, 530, 407, 59, 60, 406,
1, 412, 3, 4, 76, 3, 4, 76, 415, 82,
570, 76, 50, 77, 421, 38, 423, 59, 453, 27,
469, 59, 60, 50, 51, 52, 586, 434, 435, 407,
59, 60, 30, 9, 412, 59, 60, 466, 467, 83,
38, 638, 77, 640, 473, 474, 36, 27, 36, 481,
30, 77, 50, 81, 503, 36, 36, 78, 493, 466,
467, 59, 4, 519, 6, 7, 473, 474, 503, 76,
12, 13, 14, 77, 78, 4, 5, 6, 7, 59,
60, 530, 76, 12, 13, 14, 28, 3, 59, 60,
625, 7, 541, 76, 682, 530, 503, 77, 503, 28,
503, 81, 690, 559, 89, 90, 619, 542, 38, 503,
76, 489, 6, 7, 30, 466, 467, 78, 12, 13,
14, 83, 571, 76, 83, 574, 575, 76, 76, 83,
665, 666, 549, 582, 50, 77, 78, 638, 78, 640,
78, 589, 549, 59, 32, 38, 591, 83, 597, 76,
3, 77, 559, 81, 559, 604, 559, 548, 549, 549,
78, 78, 591, 78, 38, 559, 615, 38, 78, 4,
5, 6, 7, 81, 78, 38, 625, 12, 13, 14,
83, 78, 589, 59, 591, 77, 59, 59, 38, 149,
625, 77, 7, 28, 154, 155, 38, 77, 647, 159,
160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
170, 1, 77, 3, 4, 5, 6, 7, 8, 9,
669, 11, 12, 13, 14, 15, 675, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 77, 33, 34, 38, 50, 77, 77, 16,
40, 78, 59, 43, 430, 59, 76, 59, 48, 49,
50, 77, 77, 76, 54, 55, 5, 6, 7, 59,
5, 6, 7, 12, 13, 14, 452, 12, 13, 14,
3, 4, 5, 6, 7, 461, 462, 77, 78, 79,
80, 1, 82, 3, 4, 30, 6, 7, 8, 9,
17, 11, 12, 13, 14, 77, 482, 76, 76, 485,
54, 55, 77, 57, 58, 59, 60, 76, 28, 29,
77, 31, 9, 33, 34, 77, 502, 77, 59, 505,
40, 507, 76, 43, 81, 6, 7, 77, 48, 49,
50, 12, 13, 14, 54, 55, 522, 76, 1, 59,
76, 4, 77, 6, 7, 77, 0, 533, 0, 12,
13, 14, 46, 47, 48, 49, 50, 51, 52, 79,
80, 570, 82, 213, 442, 28, 555, 292, 31, 53,
556, 423, 291, 559, 1, 430, 3, 4, 5, 6,
7, 8, 9, 189, 11, 12, 13, 14, 15, 505,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 335, 33, 34, 237, 4,
5, 6, 7, 40, 77, 78, 43, 12, 13, 14,
606, 48, 49, 50, 327, 460, 432, 54, 55, 245,
442, 1, 59, 28, 4, 5, 6, 7, 333, 394,
10, 621, 12, 13, 14, 48, 49, 50, 51, 52,
77, 666, 79, 80, 1, 82, 3, 4, 28, 444,
30, 8, 9, 621, 11, 668, 286, -1, 15, 367,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, -1, 29, -1, 31, -1, 33, 34, -1, -1,
-1, -1, -1, 40, 54, 55, 43, 57, 58, 59,
60, 48, 49, 50, -1, -1, 76, 54, 55, -1,
-1, -1, 59, 1, -1, -1, 4, -1, 6, 7,
-1, -1, -1, -1, 12, 13, 14, -1, -1, -1,
77, 78, 79, 80, 1, 82, 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, -1, 4,
5, 6, 7, 40, -1, 10, 43, 12, 13, 14,
-1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
-1, -1, 59, 28, -1, 30, -1, -1, -1, 4,
5, 6, 7, -1, -1, -1, -1, 12, 13, 14,
77, -1, 79, 80, 1, 82, 3, 4, -1, -1,
-1, 8, 9, 28, 11, 30, -1, -1, 15, -1,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, -1, 29, -1, 31, -1, 33, 34, -1, -1,
-1, -1, -1, 40, -1, -1, 43, -1, -1, -1,
-1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
-1, 1, 59, 3, 4, -1, -1, -1, 8, 9,
-1, 11, 45, 46, 47, 48, 49, 50, 51, 52,
77, -1, 79, 80, -1, 82, -1, -1, -1, 29,
-1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
50, -1, -1, -1, 54, 55, -1, -1, 58, 59,
60, 1, -1, 3, 4, -1, -1, -1, 8, 9,
-1, 11, -1, -1, -1, -1, -1, -1, 78, 79,
80, -1, 82, -1, -1, -1, -1, -1, -1, 29,
-1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
50, -1, -1, -1, 54, 55, -1, -1, 58, 59,
60, 1, -1, 3, -1, -1, -1, -1, 8, 9,
-1, 11, -1, -1, -1, -1, -1, -1, 78, 79,
80, -1, 82, -1, -1, -1, -1, -1, -1, 29,
-1, 31, -1, 33, 34, -1, 36, -1, -1, -1,
40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
50, -1, -1, -1, 54, 55, -1, -1, 58, 59,
60, 1, -1, 3, -1, -1, -1, -1, 8, 9,
-1, 11, -1, -1, -1, -1, -1, -1, -1, 79,
80, -1, 82, -1, -1, -1, -1, -1, -1, 29,
-1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
50, -1, -1, -1, 54, 55, 1, -1, 3, 59,
-1, -1, -1, 8, 9, 1, 11, -1, 4, 5,
6, 7, -1, -1, -1, -1, 12, 13, 14, 79,
80, -1, 82, -1, 29, -1, 31, -1, 33, 34,
-1, 27, 28, -1, 30, 40, -1, -1, 43, -1,
36, -1, -1, 48, 49, 50, -1, -1, -1, 54,
55, -1, -1, -1, 59, -1, -1, -1, -1, -1,
-1, -1, -1, 59, 60, -1, -1, 1, -1, -1,
4, 5, 6, 7, 79, 80, -1, 82, 12, 13,
14, 77, 3, -1, -1, 81, 82, 8, 9, -1,
11, -1, -1, 27, 28, -1, 30, -1, -1, -1,
-1, -1, 36, -1, -1, -1, -1, -1, 29, 3,
31, -1, 33, 34, 8, 9, -1, 11, -1, 40,
-1, -1, 43, -1, -1, 59, 60, 48, 49, 50,
-1, -1, -1, 54, 55, 29, -1, 31, 59, 33,
34, -1, -1, 77, -1, -1, 40, 81, 82, 43,
-1, -1, -1, -1, 48, 49, 50, -1, 79, 80,
54, 55, 83, -1, 3, 59, -1, -1, -1, 8,
9, -1, 11, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 79, 80, -1, -1, 83,
30, 31, 77, 33, 34, 16, 78, 5, 6, 7,
40, 59, 77, 43, 12, 13, 14, 77, 48, 49,
50, 59, 76, 17, 54, 55, 77, 1, 77, 59,
4, 5, 6, 7, 76, 76, 10, 76, 12, 13,
14, 3, 4, 5, 6, 7, 77, 77, 78, 79,
80, 9, 82, 77, 28, 48, 49, 50, 51, 52,
260, 261, 1, 77, 3, 4, 5, 6, 7, 8,
9, 59, 11, 12, 13, 14, 15, 81, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 77, 33, 34, 76, 4, 5, 6,
7, 40, 77, 10, 43, 12, 13, 14, 82, 48,
49, 50, 76, 0, 77, 54, 55, 0, 292, 574,
59, 28, 213, 30, 559, 444, 4, 5, 6, 7,
53, 424, 332, 189, 12, 13, 14, 291, 77, 431,
79, 80, 509, 82, 344, 462, 1, 433, 3, 4,
28, 335, 30, 8, 9, 327, 11, 237, 245, 444,
15, 625, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 333, 29, 446, 31, 377, 33, 34,
395, 625, 672, 670, 286, 40, 54, 55, 43, 57,
58, 59, 60, 48, 49, 50, 367, 397, -1, 54,
55, -1, -1, -1, 59, 1, -1, 3, 4, 5,
6, 7, -1, -1, 10, -1, 12, 13, 14, -1,
-1, -1, 77, 78, 79, 80, -1, 82, 5, 6,
7, 431, 28, -1, 30, 12, 13, 14, -1, 1,
-1, -1, 4, 5, 6, 7, -1, -1, -1, -1,
12, 13, 14, 30, 454, 45, 46, 47, 48, 49,
50, 51, 52, 463, 464, 27, 28, -1, 30, -1,
-1, -1, -1, -1, 36, 1, -1, 3, 4, -1,
76, -1, 8, 9, 484, 11, -1, 487, -1, 15,
-1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, -1, 29, -1, 31, 506, 33, 34, 509,
-1, 511, -1, -1, 40, 77, -1, 43, -1, 81,
82, -1, 48, 49, 50, -1, 526, -1, 54, 55,
-1, -1, -1, 59, -1, 54, 55, 537, 57, 58,
59, 60, 44, 45, 46, 47, 48, 49, 50, 51,
52, 77, -1, 79, 80, -1, 82, 76, -1, 1,
560, 3, 4, 563, -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, -1, -1, -1, -1, -1, 40, -1,
-1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
610, -1, 54, 55, -1, -1, 1, 59, 3, 4,
-1, 6, 7, 8, 9, -1, 11, 12, 13, 14,
-1, -1, -1, -1, -1, 77, -1, 79, 80, -1,
82, -1, -1, 28, 29, -1, 31, -1, 33, 34,
-1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
-1, -1, -1, 48, 49, 50, -1, -1, -1, 54,
55, -1, -1, 1, 59, 3, 4, -1, -1, -1,
8, 9, -1, 11, -1, -1, -1, 1, -1, -1,
4, 5, 6, 7, 79, 80, 10, 82, 12, 13,
14, 29, -1, 31, -1, 33, 34, -1, -1, -1,
-1, -1, 40, -1, 28, 43, 30, -1, -1, -1,
48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
58, 59, 60, 1, -1, 3, 4, -1, -1, -1,
8, 9, -1, 11, -1, -1, -1, -1, -1, -1,
78, 79, 80, -1, 82, -1, -1, -1, -1, -1,
-1, 29, 76, 31, -1, 33, 34, -1, -1, -1,
-1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
58, 59, 60, 1, -1, 3, -1, -1, -1, -1,
8, 9, -1, 11, -1, -1, -1, -1, -1, -1,
78, 79, 80, -1, 82, -1, -1, -1, -1, -1,
-1, 29, -1, 31, -1, 33, 34, -1, 36, -1,
-1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
58, 59, 60, 1, -1, 3, -1, -1, -1, -1,
8, 9, -1, 11, 1, -1, -1, 4, -1, 6,
7, 79, 80, -1, 82, 12, 13, 14, -1, -1,
-1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
-1, 28, 40, -1, 31, 43, -1, -1, -1, -1,
48, 49, 50, -1, -1, -1, 54, 55, 1, -1,
3, 59, -1, -1, -1, 8, 9, 1, 11, -1,
4, 5, 6, 7, -1, -1, -1, -1, 12, 13,
14, 79, 80, -1, 82, -1, 29, -1, 31, -1,
33, 34, -1, 27, 28, -1, 30, 40, -1, -1,
43, -1, 36, -1, -1, 48, 49, 50, -1, -1,
-1, 54, 55, -1, -1, -1, 59, 46, 47, 48,
49, 50, 51, 52, -1, 59, 60, -1, -1, 1,
-1, -1, 4, 5, 6, 7, 79, 80, -1, 82,
12, 13, 14, 77, 3, -1, -1, 81, 82, 8,
9, -1, 11, -1, -1, 27, 28, -1, 30, -1,
-1, -1, -1, -1, 36, -1, -1, -1, -1, -1,
29, 3, 31, -1, 33, 34, 8, 9, -1, 11,
-1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
-1, 40, -1, -1, 43, -1, -1, 59, 60, 48,
49, 50, -1, -1, -1, 54, 55, 29, -1, 31,
59, 33, 34, -1, -1, -1, -1, -1, 40, -1,
-1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
59, 33, 34, -1, -1, 77, -1, -1, 40, 81,
82, 43, -1, -1, -1, -1, 48, 49, 50, -1,
79, 80, 54, 55, 83, -1, 3, 59, -1, -1,
-1, 8, 9, -1, 11, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, -1, 79, 80, -1,
-1, 8, 9, -1, 11, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 79, 80, -1,
-1, 83, 29, 3, 31, -1, 33, 34, 8, 9,
-1, 11, -1, 40, -1, -1, 43, -1, -1, -1,
-1, 48, 49, 50, -1, -1, -1, 54, 55, 29,
-1, 31, 59, 33, 34, -1, -1, -1, -1, -1,
40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
50, -1, 79, 80, 54, 55, 83, -1, 3, 59,
-1, -1, -1, 8, 9, -1, 11, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, -1, -1, 79,
80, -1, -1, 83, 29, -1, 31, -1, 33, 34,
10, -1, -1, -1, -1, 40, -1, -1, 43, -1,
-1, -1, -1, 8, 9, -1, 11, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, -1, 79,
80, -1, -1, 83, 29, 3, 31, -1, 33, 34,
8, 9, -1, 11, -1, 40, -1, -1, 43, -1,
-1, -1, -1, 48, 49, 50, -1, -1, -1, 54,
55, -1, -1, -1, 59, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
50, 51, 52, -1, 79, 80, -1, -1, 83, 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, -1, -1, -1, -1, -1, 40, -1, -1, 43,
-1, -1, -1, -1, 48, 49, 50, 30, -1, -1,
54, 55, 35, 36, 37, 59, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
-1, -1, -1, 77, -1, 79, 80, -1, 82, 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, -1, -1, -1, -1, -1, 40, -1, -1, 43,
-1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
54, 55, -1, 3, -1, 59, -1, -1, 8, 9,
-1, 11, 44, 45, 46, 47, 48, 49, 50, 51,
52, -1, -1, 77, -1, 79, 80, -1, 82, 29,
-1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
50, -1, -1, -1, 54, 55, -1, -1, -1, 59,
3, 4, 5, 6, 7, 8, 9, -1, 11, 12,
13, 14, -1, -1, -1, -1, -1, -1, -1, 79,
80, -1, 82, -1, -1, 28, 29, 30, 31, -1,
33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
55, 29, -1, 31, 59, 33, 34, -1, 4, -1,
6, 7, 40, -1, -1, 43, 12, 13, 14, -1,
48, 49, 50, -1, 79, 80, 54, 55, 83, -1,
3, 59, 28, -1, 30, 8, 9, -1, 11, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, -1,
-1, 79, 80, -1, 50, 83, 29, -1, 31, -1,
33, 34, 10, 59, 60, -1, -1, 40, -1, -1,
43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
-1, 54, 55, -1, 3, 4, 59, 6, 7, 8,
9, -1, 11, 12, 13, 14, -1, 3, -1, -1,
-1, -1, 8, 9, -1, 11, 79, 80, -1, 28,
29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
-1, 40, -1, 29, 43, 31, -1, 33, 34, 48,
49, 50, -1, -1, 40, 54, 55, 43, -1, -1,
59, -1, 48, 49, 50, -1, -1, -1, 54, 55,
3, -1, -1, 59, -1, 8, 9, -1, 11, -1,
79, 80, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 77, -1, 79, 80, -1, 29, 3, 31, -1,
33, 34, 8, 9, -1, 11, -1, 40, -1, -1,
43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
-1, 54, 55, 29, 3, 31, 59, 33, 34, 8,
9, -1, 11, -1, 40, -1, -1, 43, -1, -1,
-1, -1, 48, 49, 50, -1, 79, 80, 54, 55,
29, 3, 31, 59, 33, 34, 8, 9, -1, 11,
-1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
49, 50, -1, 79, 80, 54, 55, 29, -1, 31,
59, 33, 34, -1, -1, -1, -1, -1, 40, -1,
-1, 54, 55, -1, -1, -1, 59, 35, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, -1, 79, 80, -1, -1,
83, 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, -1, -1, -1, -1, -1, 40, -1,
-1, 43, -1, -1, -1, -1, 48, 49, 50, 30,
-1, -1, 54, 55, 35, 36, 37, 59, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, -1, -1, -1, 77, -1, 79, 80, -1,
82, 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, -1, -1, -1, -1, -1, 40, -1,
-1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
79, 80, 54, 55, -1, -1, 1, 59, 3, 4,
5, 6, 7, -1, -1, -1, -1, 12, 13, 14,
-1, -1, -1, -1, -1, -1, -1, 79, 80, -1,
-1, -1, 27, 28, -1, 30, 31, 4, 5, 6,
7, 4, 5, 6, 7, 12, 13, 14, -1, 12,
13, 14, -1, -1, 10, 50, -1, -1, -1, -1,
-1, 28, -1, 30, 59, 28, -1, 30, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 35,
36, 37, 77, 39, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
77, -1, -1, -1, 77, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 35, 36, 37, 83, 39, 40,
-1, -1, 54, 55, -1, 3, -1, 59, -1, -1,
8, 9, -1, 11, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 77, -1, 79, 80, -1,
82, 29, -1, 31, -1, 33, 34, -1, -1, -1,
-1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
-1, 59, 3, 4, 5, 6, 7, 8, 9, -1,
11, 12, 13, 14, -1, -1, -1, -1, -1, -1,
-1, 79, 80, -1, 82, -1, -1, 28, 29, 30,
31, -1, 33, 34, -1, -1, -1, -1, -1, 40,
-1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
-1, -1, -1, 54, 55, -1, 3, 4, 59, 6,
7, 8, 9, -1, 11, 12, 13, 14, -1, 3,
-1, -1, -1, -1, 8, 9, -1, 11, 79, 80,
-1, 28, 29, -1, 31, -1, 33, 34, -1, -1,
-1, -1, -1, 40, -1, 29, 43, 31, -1, 33,
34, 48, 49, 50, -1, -1, 40, 54, 55, 43,
-1, -1, 59, -1, 48, 49, 50, -1, -1, -1,
54, 55, 3, -1, -1, 59, -1, 8, 9, -1,
11, -1, 79, 80, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 77, -1, 79, 80, -1, 29, 3,
31, -1, 33, 34, 8, 9, -1, 11, -1, 40,
-1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
-1, -1, -1, 54, 55, 29, 3, 31, 59, 33,
34, 8, 9, -1, 11, -1, 40, -1, -1, 43,
-1, -1, -1, -1, 48, 49, 50, -1, 79, 80,
54, 55, 29, 3, 31, 59, 33, 34, 8, 9,
-1, 11, -1, 40, -1, -1, 43, -1, -1, -1,
-1, 48, 49, 50, -1, 79, 80, 54, 55, 29,
-1, 31, 59, 33, 34, -1, -1, -1, -1, -1,
40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
50, -1, 79, 80, 54, 55, -1, -1, 1, 59,
3, 4, 5, 6, 7, -1, -1, -1, -1, 12,
13, 14, -1, -1, -1, -1, -1, -1, -1, 79,
80, -1, -1, -1, 27, 28, -1, 30, 31, 4,
5, 6, 7, 4, 5, 6, 7, 12, 13, 14,
-1, 12, 13, 14, -1, -1, 10, 50, -1, -1,
-1, -1, -1, 28, -1, 30, 59, 28, -1, 30,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 35, 36, 37, 77, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 77, -1, -1, -1, 77, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 35, 36, 37, 83,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 35, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 35,
36, 37, 83, 39, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 37, -1, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
50, 51, 52
51, 52, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 35, 36, 37, 83, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 37,
-1, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52
};
#line 3 "/etc/bison.simple"
@@ -2975,13 +2977,22 @@
break;}
case 267:
#line 1418 "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 268:
#line 1423 "c-parse.y"
#line 1432 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
current_declspecs = TREE_VALUE (declspec_stack);
prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -2989,144 +3000,144 @@
resume_momentary (yyvsp[-1].itype); ;
break;}
case 269:
#line 1429 "c-parse.y"
#line 1438 "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 270:
#line 1434 "c-parse.y"
#line 1443 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 271:
#line 1436 "c-parse.y"
#line 1445 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
RESTORE_WARN_FLAGS (yyvsp[-1].itype); ;
break;}
case 273:
#line 1443 "c-parse.y"
#line 1452 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;}
case 274:
#line 1448 "c-parse.y"
#line 1457 "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 275:
#line 1452 "c-parse.y"
#line 1461 "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 276:
#line 1455 "c-parse.y"
#line 1464 "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 278:
#line 1467 "c-parse.y"
#line 1476 "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 279:
#line 1472 "c-parse.y"
#line 1481 "c-parse.y"
{ yyval.ttype = error_mark_node; ;
break;}
case 280:
#line 1478 "c-parse.y"
#line 1487 "c-parse.y"
{ yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
break;}
case 281:
#line 1480 "c-parse.y"
#line 1489 "c-parse.y"
{ yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;}
case 282:
#line 1485 "c-parse.y"
#line 1494 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 283:
#line 1487 "c-parse.y"
#line 1496 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 284:
#line 1492 "c-parse.y"
#line 1501 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 286:
#line 1498 "c-parse.y"
#line 1507 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 287:
#line 1500 "c-parse.y"
#line 1509 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
break;}
case 288:
#line 1505 "c-parse.y"
#line 1514 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 289:
#line 1507 "c-parse.y"
#line 1516 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
break;}
case 290:
#line 1512 "c-parse.y"
#line 1521 "c-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
case 291:
#line 1515 "c-parse.y"
#line 1524 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 292:
#line 1517 "c-parse.y"
#line 1526 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
break;}
case 293:
#line 1519 "c-parse.y"
#line 1528 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 294:
#line 1521 "c-parse.y"
#line 1530 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 295:
#line 1523 "c-parse.y"
#line 1532 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
break;}
case 296:
#line 1525 "c-parse.y"
#line 1534 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 297:
#line 1527 "c-parse.y"
#line 1536 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
break;}
case 298:
#line 1529 "c-parse.y"
#line 1538 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
break;}
case 299:
#line 1533 "c-parse.y"
#line 1542 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 300:
#line 1542 "c-parse.y"
#line 1551 "c-parse.y"
{
if (pedantic && yyvsp[0].ends_in_label)
pedwarn ("ANSI C forbids label at end of compound statement");
;
break;}
case 302:
#line 1551 "c-parse.y"
#line 1560 "c-parse.y"
{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
break;}
case 303:
#line 1553 "c-parse.y"
#line 1562 "c-parse.y"
{ yyval.ends_in_label = 0; ;
break;}
case 307:
#line 1565 "c-parse.y"
#line 1574 "c-parse.y"
{ emit_line_note (input_filename, lineno);
pushlevel (0);
clear_last_expr ();
@@ -3135,12 +3146,12 @@
;
break;}
case 309:
#line 1578 "c-parse.y"
#line 1587 "c-parse.y"
{ if (pedantic)
pedwarn ("ANSI C forbids label declarations"); ;
break;}
case 312:
#line 1589 "c-parse.y"
#line 1598 "c-parse.y"
{ tree link;
for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
{
@@ -3151,19 +3162,19 @@
;
break;}
case 313:
#line 1603 "c-parse.y"
#line 1612 "c-parse.y"
{;
break;}
case 315:
#line 1607 "c-parse.y"
#line 1616 "c-parse.y"
{ compstmt_count++; ;
break;}
case 316:
#line 1610 "c-parse.y"
#line 1619 "c-parse.y"
{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
break;}
case 317:
#line 1612 "c-parse.y"
#line 1621 "c-parse.y"
{ emit_line_note (input_filename, lineno);
expand_end_bindings (getdecls (), 1, 0);
yyval.ttype = poplevel (1, 1, 0);
@@ -3173,7 +3184,7 @@
pop_momentary (); ;
break;}
case 318:
#line 1620 "c-parse.y"
#line 1629 "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);
@@ -3183,7 +3194,7 @@
pop_momentary (); ;
break;}
case 319:
#line 1628 "c-parse.y"
#line 1637 "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);
@@ -3193,7 +3204,7 @@
pop_momentary (); ;
break;}
case 322:
#line 1648 "c-parse.y"
#line 1657 "c-parse.y"
{ emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0,
compstmt_count);
@@ -3203,7 +3214,7 @@
position_after_white_space (); ;
break;}
case 323:
#line 1662 "c-parse.y"
#line 1671 "c-parse.y"
{ stmt_count++;
compstmt_count++;
emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
@@ -3213,43 +3224,43 @@
position_after_white_space (); ;
break;}
case 324:
#line 1670 "c-parse.y"
#line 1679 "c-parse.y"
{ expand_loop_continue_here (); ;
break;}
case 325:
#line 1674 "c-parse.y"
#line 1683 "c-parse.y"
{ yyval.filename = input_filename; ;
break;}
case 326:
#line 1678 "c-parse.y"
#line 1687 "c-parse.y"
{ yyval.lineno = lineno; ;
break;}
case 327:
#line 1683 "c-parse.y"
#line 1692 "c-parse.y"
{ ;
break;}
case 328:
#line 1688 "c-parse.y"
#line 1697 "c-parse.y"
{ ;
break;}
case 329:
#line 1693 "c-parse.y"
#line 1702 "c-parse.y"
{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
break;}
case 330:
#line 1698 "c-parse.y"
#line 1707 "c-parse.y"
{ yyval.ends_in_label = 0; ;
break;}
case 331:
#line 1700 "c-parse.y"
#line 1709 "c-parse.y"
{ yyval.ends_in_label = 1; ;
break;}
case 332:
#line 1706 "c-parse.y"
#line 1715 "c-parse.y"
{ stmt_count++; ;
break;}
case 334:
#line 1709 "c-parse.y"
#line 1718 "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
@@ -3268,19 +3279,19 @@
clear_momentary (); ;
break;}
case 335:
#line 1726 "c-parse.y"
#line 1735 "c-parse.y"
{ c_expand_start_else ();
yyvsp[-1].itype = stmt_count;
position_after_white_space (); ;
break;}
case 336:
#line 1730 "c-parse.y"
#line 1739 "c-parse.y"
{ c_expand_end_cond ();
if (extra_warnings && stmt_count == yyvsp[-3].itype)
warning ("empty body in an else-statement"); ;
break;}
case 337:
#line 1734 "c-parse.y"
#line 1743 "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
@@ -3291,11 +3302,11 @@
"empty body in an if-statement"); ;
break;}
case 338:
#line 1746 "c-parse.y"
#line 1755 "c-parse.y"
{ c_expand_end_cond (); ;
break;}
case 339:
#line 1748 "c-parse.y"
#line 1757 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
/* The emit_nop used to come before emit_line_note,
@@ -3307,7 +3318,7 @@
emit_nop (); ;
break;}
case 340:
#line 1758 "c-parse.y"
#line 1767 "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. */
@@ -3318,11 +3329,11 @@
position_after_white_space (); ;
break;}
case 341:
#line 1767 "c-parse.y"
#line 1776 "c-parse.y"
{ expand_end_loop (); ;
break;}
case 342:
#line 1770 "c-parse.y"
#line 1779 "c-parse.y"
{ emit_line_note (input_filename, lineno);
expand_exit_loop_if_false (NULL_PTR,
truthvalue_conversion (yyvsp[-2].ttype));
@@ -3330,12 +3341,12 @@
clear_momentary (); ;
break;}
case 343:
#line 1777 "c-parse.y"
#line 1786 "c-parse.y"
{ expand_end_loop ();
clear_momentary (); ;
break;}
case 344:
#line 1781 "c-parse.y"
#line 1790 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
@@ -3348,12 +3359,12 @@
;
break;}
case 345:
#line 1793 "c-parse.y"
#line 1802 "c-parse.y"
{ yyvsp[0].lineno = lineno;
yyval.filename = input_filename; ;
break;}
case 346:
#line 1796 "c-parse.y"
#line 1805 "c-parse.y"
{
/* Start the loop. Doing this after parsing
all the expressions ensures we will end the loop. */
@@ -3371,7 +3382,7 @@
position_after_white_space (); ;
break;}
case 347:
#line 1812 "c-parse.y"
#line 1821 "c-parse.y"
{
emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
expand_loop_continue_here ();
@@ -3384,7 +3395,7 @@
expand_end_loop (); ;
break;}
case 348:
#line 1823 "c-parse.y"
#line 1832 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
c_expand_start_case (yyvsp[-1].ttype);
@@ -3394,7 +3405,7 @@
position_after_white_space (); ;
break;}
case 349:
#line 1831 "c-parse.y"
#line 1840 "c-parse.y"
{ expand_end_case (yyvsp[-3].ttype);
if (yychar == CONSTANT || yychar == STRING)
pop_momentary_nofree ();
@@ -3402,33 +3413,33 @@
pop_momentary (); ;
break;}
case 350:
#line 1837 "c-parse.y"
#line 1846 "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 351:
#line 1842 "c-parse.y"
#line 1851 "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 352:
#line 1847 "c-parse.y"
#line 1856 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
c_expand_return (NULL_TREE); ;
break;}
case 353:
#line 1851 "c-parse.y"
#line 1860 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
c_expand_return (yyvsp[-1].ttype); ;
break;}
case 354:
#line 1855 "c-parse.y"
#line 1864 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
STRIP_NOPS (yyvsp[-2].ttype);
@@ -3440,7 +3451,7 @@
error ("argument of `asm' is not a constant string"); ;
break;}
case 355:
#line 1866 "c-parse.y"
#line 1875 "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,
@@ -3448,7 +3459,7 @@
input_filename, lineno); ;
break;}
case 356:
#line 1873 "c-parse.y"
#line 1882 "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,
@@ -3456,7 +3467,7 @@
input_filename, lineno); ;
break;}
case 357:
#line 1881 "c-parse.y"
#line 1890 "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,
@@ -3464,7 +3475,7 @@
input_filename, lineno); ;
break;}
case 358:
#line 1887 "c-parse.y"
#line 1896 "c-parse.y"
{ tree decl;
stmt_count++;
emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
@@ -3477,7 +3488,7 @@
;
break;}
case 359:
#line 1898 "c-parse.y"
#line 1907 "c-parse.y"
{ if (pedantic)
pedwarn ("ANSI C forbids `goto *expr;'");
stmt_count++;
@@ -3485,7 +3496,7 @@
expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
break;}
case 362:
#line 1913 "c-parse.y"
#line 1922 "c-parse.y"
{
@@ -3508,14 +3519,14 @@
;
break;}
case 363:
#line 1934 "c-parse.y"
#line 1943 "c-parse.y"
{
if (yyvsp[-1].itype)
iterator_for_loop_end (yyvsp[-3].ttype);
;
break;}
case 364:
#line 1969 "c-parse.y"
#line 1978 "c-parse.y"
{ register tree value = check_case_value (yyvsp[-1].ttype);
register tree label
= build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
@@ -3548,7 +3559,7 @@
position_after_white_space (); ;
break;}
case 365:
#line 2000 "c-parse.y"
#line 2009 "c-parse.y"
{ register tree value1 = check_case_value (yyvsp[-3].ttype);
register tree value2 = check_case_value (yyvsp[-1].ttype);
register tree label
@@ -3581,7 +3592,7 @@
position_after_white_space (); ;
break;}
case 366:
#line 2031 "c-parse.y"
#line 2040 "c-parse.y"
{
tree duplicate;
register tree label
@@ -3598,7 +3609,7 @@
position_after_white_space (); ;
break;}
case 367:
#line 2046 "c-parse.y"
#line 2055 "c-parse.y"
{ tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
stmt_count++;
emit_nop ();
@@ -3610,52 +3621,52 @@
position_after_white_space (); ;
break;}
case 368:
#line 2061 "c-parse.y"
#line 2070 "c-parse.y"
{ emit_line_note (input_filename, lineno);
yyval.ttype = NULL_TREE; ;
break;}
case 369:
#line 2064 "c-parse.y"
#line 2073 "c-parse.y"
{ emit_line_note (input_filename, lineno); ;
break;}
case 370:
#line 2069 "c-parse.y"
#line 2078 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 372:
#line 2076 "c-parse.y"
#line 2085 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 375:
#line 2083 "c-parse.y"
#line 2092 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;}
case 376:
#line 2088 "c-parse.y"
#line 2097 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 377:
#line 2093 "c-parse.y"
#line 2102 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
break;}
case 378:
#line 2095 "c-parse.y"
#line 2104 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
break;}
case 379:
#line 2101 "c-parse.y"
#line 2110 "c-parse.y"
{ pushlevel (0);
clear_parm_order ();
declare_parm_level (0); ;
break;}
case 380:
#line 2105 "c-parse.y"
#line 2114 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
parmlist_tags_warning ();
poplevel (0, 0, 0); ;
break;}
case 382:
#line 2113 "c-parse.y"
#line 2122 "c-parse.y"
{ tree parm;
if (pedantic)
pedwarn ("ANSI C forbids forward parameter declarations");
@@ -3665,19 +3676,19 @@
clear_parm_order (); ;
break;}
case 383:
#line 2121 "c-parse.y"
#line 2130 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 384:
#line 2123 "c-parse.y"
#line 2132 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
break;}
case 385:
#line 2129 "c-parse.y"
#line 2138 "c-parse.y"
{ yyval.ttype = get_parm_info (0); ;
break;}
case 386:
#line 2131 "c-parse.y"
#line 2140 "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.
@@ -3689,23 +3700,23 @@
;
break;}
case 387:
#line 2141 "c-parse.y"
#line 2150 "c-parse.y"
{ yyval.ttype = get_parm_info (1); ;
break;}
case 388:
#line 2143 "c-parse.y"
#line 2152 "c-parse.y"
{ yyval.ttype = get_parm_info (0); ;
break;}
case 389:
#line 2148 "c-parse.y"
#line 2157 "c-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
break;}
case 390:
#line 2150 "c-parse.y"
#line 2159 "c-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
break;}
case 391:
#line 2157 "c-parse.y"
#line 2166 "c-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
yyvsp[-1].ttype),
build_tree_list (prefix_attributes,
@@ -3716,7 +3727,7 @@
resume_momentary (yyvsp[-2].itype); ;
break;}
case 392:
#line 2166 "c-parse.y"
#line 2175 "c-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
yyvsp[-1].ttype),
build_tree_list (prefix_attributes,
@@ -3727,7 +3738,7 @@
resume_momentary (yyvsp[-2].itype); ;
break;}
case 393:
#line 2175 "c-parse.y"
#line 2184 "c-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
yyvsp[-1].ttype),
build_tree_list (prefix_attributes,
@@ -3738,7 +3749,7 @@
resume_momentary (yyvsp[-2].itype); ;
break;}
case 394:
#line 2184 "c-parse.y"
#line 2193 "c-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
yyvsp[-1].ttype),
build_tree_list (prefix_attributes,
@@ -3749,7 +3760,7 @@
resume_momentary (yyvsp[-2].itype); ;
break;}
case 395:
#line 2194 "c-parse.y"
#line 2203 "c-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
yyvsp[-1].ttype),
build_tree_list (prefix_attributes,
@@ -3760,19 +3771,19 @@
resume_momentary (yyvsp[-2].itype); ;
break;}
case 396:
#line 2208 "c-parse.y"
#line 2217 "c-parse.y"
{ pushlevel (0);
clear_parm_order ();
declare_parm_level (1); ;
break;}
case 397:
#line 2212 "c-parse.y"
#line 2221 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
parmlist_tags_warning ();
poplevel (0, 0, 0); ;
break;}
case 399:
#line 2220 "c-parse.y"
#line 2229 "c-parse.y"
{ tree t;
for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
if (TREE_VALUE (t) == NULL_TREE)
@@ -3780,23 +3791,23 @@
yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
break;}
case 400:
#line 2230 "c-parse.y"
#line 2239 "c-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
break;}
case 401:
#line 2232 "c-parse.y"
#line 2241 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
break;}
case 402:
#line 2238 "c-parse.y"
#line 2247 "c-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
break;}
case 403:
#line 2240 "c-parse.y"
#line 2249 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
break;}
case 404:
#line 2245 "c-parse.y"
#line 2254 "c-parse.y"
{ yyval.itype = SAVE_WARN_FLAGS();
pedantic = 0;
warn_pointer_arith = 0; ;
@@ -4027,5 +4038,5 @@
}
return 1;
}
#line 2250 "c-parse.y"
#line 2259 "c-parse.y"
@@ -28,10 +28,10 @@
written by AT&T, but I have never seen it. */
ifobjc
%expect 66
%expect 73
end ifobjc
ifc
%expect 51
%expect 52
/* These are the 23 conflicts you should get in parse.output;
the state numbers may vary if minor changes in the grammar are made.
@@ -1605,12 +1605,21 @@
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);
@@ -28,7 +28,7 @@
/* 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 51
%expect 52
/* These are the 23 conflicts you should get in parse.output;
the state numbers may vary if minor changes in the grammar are made.
@@ -1414,12 +1414,21 @@
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);
@@ -42,7 +42,6 @@
static tree build_new_method_call PROTO((tree, tree, tree, tree, int));
static tree build_field_call PROTO((tree, tree, tree, tree));
static tree find_scoped_type PROTO((tree, tree, tree));
static struct z_candidate * tourney PROTO((struct z_candidate *));
static int joust PROTO((struct z_candidate *, struct z_candidate *, int));
static int compare_ics PROTO((tree, tree));
@@ -162,130 +161,6 @@
}
return NULL_TREE;
}
static tree
find_scoped_type (type, inner_name, inner_types)
tree type, inner_name, inner_types;
{
tree tags = CLASSTYPE_TAGS (type);
while (tags)
{
/* The TREE_PURPOSE of an enum tag (which becomes a member of the
enclosing class) is set to the name for the enum type. So, if
inner_name is `bar', and we strike `baz' for `enum bar { baz }',
then this test will be true. */
if (TREE_PURPOSE (tags) == inner_name)
{
if (inner_types == NULL_TREE)
return TYPE_MAIN_DECL (TREE_VALUE (tags));
return resolve_scope_to_name (TREE_VALUE (tags), inner_types);
}
tags = TREE_CHAIN (tags);
}
for (tags = TYPE_FIELDS (type); tags; tags = TREE_CHAIN (tags))
if (TREE_CODE (tags) == TYPE_DECL && DECL_NAME (tags) == inner_name)
{
if (inner_types == NULL_TREE)
return tags;
return resolve_scope_to_name (TREE_TYPE (tags), inner_types);
}
return NULL_TREE;
}
/* Resolve an expression NAME1::NAME2::...::NAMEn to
the name that names the above nested type. INNER_TYPES
is a chain of nested type names (held together by SCOPE_REFs);
OUTER_TYPE is the type we know to enclose INNER_TYPES.
Returns NULL_TREE if there is an error. */
tree
resolve_scope_to_name (outer_type, inner_stuff)
tree outer_type, inner_stuff;
{
register tree tmp;
tree inner_name, inner_type;
if (outer_type == NULL_TREE && current_class_type != NULL_TREE)
{
/* We first try to look for a nesting in our current class context,
then try any enclosing classes. */
tree type = current_class_type;
while (type && (TREE_CODE (type) == RECORD_TYPE
|| TREE_CODE (type) == UNION_TYPE))
{
tree rval = resolve_scope_to_name (type, inner_stuff);
if (rval != NULL_TREE)
return rval;
type = DECL_CONTEXT (TYPE_MAIN_DECL (type));
}
}
if (TREE_CODE (inner_stuff) == SCOPE_REF)
{
inner_name = TREE_OPERAND (inner_stuff, 0);
inner_type = TREE_OPERAND (inner_stuff, 1);
}
else
{
inner_name = inner_stuff;
inner_type = NULL_TREE;
}
if (outer_type == NULL_TREE)
{
tree x;
/* If we have something that's already a type by itself,
use that. */
if (IDENTIFIER_HAS_TYPE_VALUE (inner_name))
{
if (inner_type)
return resolve_scope_to_name (IDENTIFIER_TYPE_VALUE (inner_name),
inner_type);
return inner_name;
}
x = lookup_name (inner_name, 0);
if (x && TREE_CODE (x) == NAMESPACE_DECL)
{
x = lookup_namespace_name (x, inner_type);
return x;
}
return NULL_TREE;
}
if (! IS_AGGR_TYPE (outer_type))
return NULL_TREE;
tmp = find_scoped_type (outer_type, inner_name, inner_type);
/* If it's not a type in this class, then go down into the
base classes and search there. */
if (! tmp && TYPE_BINFO (outer_type))
{
tree binfos = TYPE_BINFO_BASETYPES (outer_type);
int i, n_baselinks = binfos ? TREE_VEC_LENGTH (binfos) : 0;
for (i = 0; i < n_baselinks; i++)
{
tree base_binfo = TREE_VEC_ELT (binfos, i);
tmp = resolve_scope_to_name (BINFO_TYPE (base_binfo), inner_stuff);
if (tmp)
return tmp;
}
tmp = NULL_TREE;
}
return tmp;
}
/* Returns nonzero iff the destructor name specified in NAME
@@ -1380,7 +1380,7 @@
tree prev = 0;
if (DECL_NAME (field) == 0)
{
if (TREE_CODE (TREE_TYPE (field)) != UNION_TYPE)
if (! ANON_AGGR_TYPE_P (TREE_TYPE (field)))
return fields;
for (x = TYPE_FIELDS (TREE_TYPE (field)); x; x = TREE_CHAIN (x))
@@ -1393,7 +1393,7 @@
{
if (DECL_NAME (x) == 0)
{
if (TREE_CODE (TREE_TYPE (x)) != UNION_TYPE)
if (! ANON_AGGR_TYPE_P (TREE_TYPE (x)))
continue;
TYPE_FIELDS (TREE_TYPE (x))
= delete_duplicate_fields_1 (field, TYPE_FIELDS (TREE_TYPE (x)));
@@ -3297,7 +3297,7 @@
continue;
if (DECL_NAME (field) == NULL_TREE
&& TREE_CODE (TREE_TYPE (field)) == UNION_TYPE)
&& ANON_AGGR_TYPE_P (TREE_TYPE (field)))
{
tree* uelt = &TYPE_FIELDS (TREE_TYPE (field));
for (; *uelt; uelt = &TREE_CHAIN (*uelt))
@@ -3479,9 +3479,6 @@
int has_pointers = 0;
tree inline_friends;
if (warn_anon && code != UNION_TYPE && ANON_AGGRNAME_P (TYPE_IDENTIFIER (t)))
pedwarn ("anonymous class type not used to declare any objects");
if (TYPE_SIZE (t))
{
if (IS_AGGR_TYPE (t))
@@ -3870,8 +3867,7 @@
while (TREE_CODE (type) == ARRAY_TYPE)
type = TREE_TYPE (type);
if (TYPE_LANG_SPECIFIC (type) && ! ANON_UNION_P (x)
&& ! TYPE_PTRMEMFUNC_P (type))
if (CLASS_TYPE_P (type) && ! ANON_AGGR_TYPE_P (type))
{
/* Never let anything with uninheritable virtuals
make it through without complaint. */
@@ -704,7 +704,7 @@
unsigned const_needs_init : 1;
unsigned ref_needs_init : 1;
unsigned has_const_assign_ref : 1;
unsigned anon_union : 1;
unsigned anon_aggr : 1;
unsigned has_nonpublic_ctor : 2;
unsigned has_nonpublic_assign_ref : 2;
@@ -1805,16 +1805,14 @@
Just used to communicate formatting information to dbxout.c. */
#define DECL_OPERATOR(NODE) (DECL_LANG_SPECIFIC(NODE)->decl_flags.operator_attr)
#define ANON_UNION_P(NODE) (DECL_NAME (NODE) == 0)
/* Nonzero if TYPE is an anonymous union type. We have to use a flag for
this because "A union for which objects or pointers are declared is not
an anonymous union" [class.union]. */
#define ANON_UNION_TYPE_P(NODE) \
/* Nonzero if TYPE is an anonymous union or struct type. We have to use a
flag for this because "A union for which objects or pointers are
declared is not an anonymous union" [class.union]. */
#define ANON_AGGR_TYPE_P(NODE) \
(TYPE_LANG_SPECIFIC (NODE) \
&& TYPE_LANG_SPECIFIC (NODE)->type_flags.anon_union)
#define SET_ANON_UNION_TYPE_P(NODE) \
(TYPE_LANG_SPECIFIC (NODE)->type_flags.anon_union = 1)
&& TYPE_LANG_SPECIFIC (NODE)->type_flags.anon_aggr)
#define SET_ANON_AGGR_TYPE_P(NODE) \
(TYPE_LANG_SPECIFIC (NODE)->type_flags.anon_aggr = 1)
#define UNKNOWN_TYPE LANG_TYPE
@@ -2938,7 +2936,7 @@
extern void replace_defarg PROTO((tree, tree));
extern void print_other_binding_stack PROTO((struct binding_level *));
extern void revert_static_member_fn PROTO((tree*, tree*, tree*));
extern void fixup_anonymous_union PROTO((tree));
extern void fixup_anonymous_aggr PROTO((tree));
extern int check_static_variable_definition PROTO((tree, tree));
extern void push_local_binding PROTO((tree, tree, int));
extern int push_class_binding PROTO((tree, tree));
@@ -4381,7 +4381,7 @@
if (TREE_CODE (x) == TYPE_DECL)
set_identifier_type_value (name, TREE_TYPE (x));
}
else if (ANON_UNION_TYPE_P (TREE_TYPE (x)))
else if (ANON_AGGR_TYPE_P (TREE_TYPE (x)))
{
tree f;
@@ -7067,7 +7067,7 @@
union type.) */
void
fixup_anonymous_union (t)
fixup_anonymous_aggr (t)
tree t;
{
tree *q;
@@ -7155,12 +7155,15 @@
/* Check for an anonymous union. We're careful
accessing TYPE_IDENTIFIER because some built-in types, like
pointer-to-member types, do not have TYPE_NAME. */
else if (t && TREE_CODE (t) == UNION_TYPE
else if (t && IS_AGGR_TYPE_CODE (TREE_CODE (t))
&& TYPE_NAME (t)
&& ANON_AGGRNAME_P (TYPE_IDENTIFIER (t)))
{
;
SET_ANON_UNION_TYPE_P (t);
SET_ANON_AGGR_TYPE_P (t);
if (TREE_CODE (t) != UNION_TYPE && pedantic && ! in_system_header)
pedwarn ("ISO C++ prohibits anonymous structs");
}
else if (ob_modifier)
@@ -7206,9 +7209,9 @@
union { ... } ;
because there is no declarator after the union, the parser
sends that declaration here. */
if (t && ANON_UNION_TYPE_P (t))
if (t && ANON_AGGR_TYPE_P (t))
{
fixup_anonymous_union (t);
fixup_anonymous_aggr (t);
if (TYPE_FIELDS (t))
{
@@ -10141,7 +10144,7 @@
if (staticp && decl_context == TYPENAME
&& TREE_CODE (declspecs) == TREE_LIST
&& ANON_UNION_TYPE_P (TREE_VALUE (declspecs)))
&& ANON_AGGR_TYPE_P (TREE_VALUE (declspecs)))
decl_context = FIELD;
/* Give error if `const,' `volatile,' `inline,' `friend,' or `virtual'
@@ -931,10 +931,10 @@
/* The only case where we need to do anything additional here is an
anonymous union field, e.g.: `struct S { union { int i; }; };'. */
if (t == NULL_TREE || !ANON_UNION_TYPE_P (t))
if (t == NULL_TREE || !ANON_AGGR_TYPE_P (t))
return;
fixup_anonymous_union (t);
fixup_anonymous_aggr (t);
finish_member_declaration (build_lang_field_decl (FIELD_DECL,
NULL_TREE,
t));
@@ -2239,6 +2239,11 @@
tree main_decl = NULL_TREE;
tree field;
/* Rather than write the code to handle the non-union case,
just give an error. */
if (TREE_CODE (type) != UNION_TYPE)
error ("anonymous struct not inside named type");
for (field = TYPE_FIELDS (type);
field != NULL_TREE;
field = TREE_CHAIN (field))
@@ -2260,7 +2265,7 @@
cp_pedwarn_at ("protected member `%#D' in anonymous union", field);
if (DECL_NAME (field) == NULL_TREE
&& TREE_CODE (TREE_TYPE (field)) == UNION_TYPE)
&& ANON_AGGR_TYPE_P (TREE_TYPE (field)))
{
decl = build_anon_union_vars (field, elems, static_p, external_p);
if (!decl)
@@ -2292,7 +2297,7 @@
TREE_ASM_WRITTEN (decl) = 1;
if (DECL_NAME (field) == NULL_TREE
&& TREE_CODE (TREE_TYPE (field)) == UNION_TYPE)
&& ANON_AGGR_TYPE_P (TREE_TYPE (field)))
/* The remainder of the processing was already done in the
recursive call. */
continue;
@@ -155,15 +155,24 @@
expand_start_target_temps ();
if (TYPE_NEEDS_CONSTRUCTING (type)
|| (init && TYPE_HAS_CONSTRUCTOR (type)))
decl = build_component_ref (current_class_ref, name, NULL_TREE, explicit);
/* Deal with this here, as we will get confused if we try to call the
assignment op for an anonymous union. This can happen in a
synthesized copy constructor. */
if (ANON_AGGR_TYPE_P (type))
{
init = build (INIT_EXPR, type, decl, TREE_VALUE (init));
TREE_SIDE_EFFECTS (init) = 1;
expand_expr_stmt (init);
}
else if (TYPE_NEEDS_CONSTRUCTING (type)
|| (init && TYPE_HAS_CONSTRUCTOR (type)))
{
/* Since `init' is already a TREE_LIST on the current_member_init_list,
only build it into one if we aren't already a list. */
if (init != NULL_TREE && TREE_CODE (init) != TREE_LIST)
init = build_expr_list (NULL_TREE, init);
decl = build_component_ref (current_class_ref, name, NULL_TREE, explicit);
if (explicit
&& TREE_CODE (type) == ARRAY_TYPE
@@ -187,7 +196,7 @@
if (AGGREGATE_TYPE_P (type))
init = build (CONSTRUCTOR, type, NULL_TREE, NULL_TREE);
else if (TREE_CODE (type) == REFERENCE_TYPE)
else if (TREE_CODE (type) == REFERENCE_TYPE)
{
cp_error ("default-initialization of `%#D', which has reference type",
member);
@@ -217,8 +226,6 @@
current_member_init_list. */
if (init || explicit)
{
decl = build_component_ref (current_class_ref, name, NULL_TREE,
explicit);
expand_expr_stmt (build_modify_expr (decl, INIT_EXPR, init));
}
}
@@ -276,16 +283,13 @@
continue;
name = TREE_PURPOSE (x);
#if 0
/* This happens in templates, since the IDENTIFIER is replaced
with the COMPONENT_REF in tsubst_expr. */
field = (TREE_CODE (name) == COMPONENT_REF
? TREE_OPERAND (name, 1) : IDENTIFIER_CLASS_VALUE (name));
#else
my_friendly_assert (TREE_CODE (name) != COMPONENT_REF, 348);
field = IDENTIFIER_CLASS_VALUE (name);
#endif
if (TREE_CODE (name) == IDENTIFIER_NODE)
field = IDENTIFIER_CLASS_VALUE (name);
else
{
my_friendly_assert (TREE_CODE (name) == FIELD_DECL, 348);
field = name;
}
if (TREE_CODE (field) == TREE_LIST)
@@ -701,15 +705,8 @@
init = TREE_VALUE (mem_init_list);
from_init_list = 1;
#if 0
if (TREE_CODE (name) == COMPONENT_REF)
name = DECL_NAME (TREE_OPERAND (name, 1));
#else
/* Also see if it's ever a COMPONENT_REF here. If it is, we
need to do `expand_assignment (name, init, 0, 0);' and
a continue. */
my_friendly_assert (TREE_CODE (name) != COMPONENT_REF, 349);
#endif
my_friendly_assert (TREE_CODE (name) == IDENTIFIER_NODE
|| TREE_CODE (name) == FIELD_DECL, 349);
}
else
{
@@ -738,9 +735,11 @@
{
name = TREE_PURPOSE (mem_init_list);
init = TREE_VALUE (mem_init_list);
/* XXX: this may need the COMPONENT_REF operand 0 check if
it turns out we actually get them. */
field = IDENTIFIER_CLASS_VALUE (name);
if (TREE_CODE (name) == IDENTIFIER_NODE)
field = IDENTIFIER_CLASS_VALUE (name);
else
field = name;
if (TREE_CODE (field) == TREE_LIST)
@@ -969,7 +968,7 @@
/* Anonymous union members can be initialized in the first enclosing
non-anonymous union context. */
while (t && ANON_UNION_TYPE_P (t))
while (t && ANON_AGGR_TYPE_P (t))
t = TYPE_CONTEXT (t);
return t;
}
@@ -2496,18 +2496,10 @@
continue;
}
else if ((t = TREE_TYPE (field)) != NULL_TREE
&& ANON_UNION_TYPE_P (t)
&& ANON_AGGR_TYPE_P (t)
&& TYPE_FIELDS (t) != NULL_TREE)
{
do
{
init = build (COMPONENT_REF, t, init, field);
field = largest_union_member (t);
}
while ((t = TREE_TYPE (field)) != NULL_TREE
&& ANON_UNION_TYPE_P (t)
&& TYPE_FIELDS (t) != NULL_TREE);
}
/* Just use the field; anonymous types can't have
nontrivial copy ctors or assignment ops. */;
else
continue;
@@ -2515,7 +2507,7 @@
init = build_tree_list (NULL_TREE, init);
current_member_init_list
= tree_cons (DECL_NAME (field), init, current_member_init_list);
= tree_cons (field, init, current_member_init_list);
}
current_member_init_list = nreverse (current_member_init_list);
current_base_init_list = nreverse (current_base_init_list);
@@ -2604,19 +2596,10 @@
continue;
}
else if ((t = TREE_TYPE (field)) != NULL_TREE
&& ANON_UNION_TYPE_P (t)
&& ANON_AGGR_TYPE_P (t)
&& TYPE_FIELDS (t) != NULL_TREE)
{
do
{
comp = build (COMPONENT_REF, t, comp, field);
init = build (COMPONENT_REF, t, init, field);
field = largest_union_member (t);
}
while ((t = TREE_TYPE (field)) != NULL_TREE
&& ANON_UNION_TYPE_P (t)
&& TYPE_FIELDS (t) != NULL_TREE);
}
/* Just use the field; anonymous types can't have
nontrivial copy ctors or assignment ops. */;
else
continue;
@@ -4911,8 +4911,8 @@
TYPE_PACKED (type) = TYPE_PACKED (pattern);
TYPE_ALIGN (type) = TYPE_ALIGN (pattern);
TYPE_FOR_JAVA (type) = TYPE_FOR_JAVA (pattern);
if (ANON_UNION_TYPE_P (pattern))
SET_ANON_UNION_TYPE_P (type);
if (ANON_AGGR_TYPE_P (pattern))
SET_ANON_AGGR_TYPE_P (type);
/* We must copy the arguments to the permanent obstack since
during the tsubst'ing below they may wind up in the
@@ -79,11 +79,7 @@
return;
}
if (! (TREE_CODE (node) == RECORD_TYPE
|| TREE_CODE (node) == UNION_TYPE))
return;
if (!TYPE_LANG_SPECIFIC (node))
if (! CLASS_TYPE_P (node))
return;
indent_to (file, indent + 3);
@@ -537,7 +537,7 @@
#endif
my_friendly_assert (TREE_CODE_CLASS (TREE_CODE (field)) == 'd', 0);
if (DECL_NAME (field) == NULL_TREE
&& TREE_CODE (TREE_TYPE (field)) == UNION_TYPE)
&& ANON_AGGR_TYPE_P (TREE_TYPE (field)))
{
tree temp = lookup_field_1 (TREE_TYPE (field), name);
if (temp)
@@ -613,7 +613,7 @@
declared. */
tree context = DECL_REAL_CONTEXT (decl);
while (TYPE_P (context) && ANON_UNION_TYPE_P (context))
while (TYPE_P (context) && ANON_AGGR_TYPE_P (context))
context = TYPE_CONTEXT (context);
if (!context)
context = global_namespace;
@@ -3059,7 +3059,7 @@
&& TREE_CODE (fields) != USING_DECL)
setup_class_bindings (DECL_NAME (fields), 0);
else if (TREE_CODE (fields) == FIELD_DECL
&& ANON_UNION_TYPE_P (TREE_TYPE (fields)))
&& ANON_AGGR_TYPE_P (TREE_TYPE (fields)))
dfs_push_decls (TYPE_BINFO (TREE_TYPE (fields)), data);
method_vec = (CLASS_TYPE_P (type)
@@ -3133,7 +3133,7 @@
TREE_USED (fields) = 0;
if (DECL_NAME (fields) == NULL_TREE
&& TREE_CODE (TREE_TYPE (fields)) == UNION_TYPE)
&& ANON_AGGR_TYPE_P (TREE_TYPE (fields)))
unuse_fields (TREE_TYPE (fields));
}
@@ -2011,7 +2011,7 @@
if (DECL_NAME (field) == NULL_TREE
&& TREE_CODE (TREE_TYPE (field)) == UNION_TYPE)
&& ANON_AGGR_TYPE_P (TREE_TYPE (field)))
{
tree subfield = lookup_anon_field (TREE_TYPE (field), type);
if (subfield)
@@ -2221,7 +2221,7 @@
tree context = DECL_FIELD_CONTEXT (field);
tree base = context;
while (!same_type_p (base, basetype) && TYPE_NAME (base)
&& ANON_UNION_TYPE_P (base))
&& ANON_AGGR_TYPE_P (base))
{
base = TYPE_CONTEXT (base);
}
@@ -2251,7 +2251,7 @@
basetype = base;
if (TYPE_NAME (context) && ANON_UNION_TYPE_P (context))
if (TYPE_NAME (context) && ANON_AGGR_TYPE_P (context))
{
tree subfield = lookup_anon_field (basetype, context);
tree subdatum = build_component_ref (datum, subfield,
@@ -6097,8 +6097,7 @@
/* Functions are not modifiable, even though they are
lvalues. */
|| TREE_CODE (TREE_TYPE (lhs)) == FUNCTION_TYPE
|| ((TREE_CODE (lhstype) == RECORD_TYPE
|| TREE_CODE (lhstype) == UNION_TYPE)
|| (IS_AGGR_TYPE_CODE (TREE_CODE (lhstype))
&& C_TYPE_FIELDS_READONLY (lhstype))
|| (TREE_CODE (lhstype) == REFERENCE_TYPE
&& CP_TYPE_CONST_P (TREE_TYPE (lhstype)))))
@@ -7280,8 +7279,7 @@
{
tree type = TREE_TYPE (o[i]);
if (CP_TYPE_CONST_P (type)
|| ((TREE_CODE (type) == RECORD_TYPE
|| TREE_CODE (type) == UNION_TYPE)
|| (IS_AGGR_TYPE_CODE (TREE_CODE (type))
&& C_TYPE_FIELDS_READONLY (type)))
readonly_error (o[i], "modification by `asm'", 1);
}
@@ -834,7 +834,7 @@
return error_mark_node;
}
if (code == ARRAY_TYPE || code == RECORD_TYPE || code == UNION_TYPE)
if (code == ARRAY_TYPE || IS_AGGR_TYPE_CODE (code))
{
if (raw_constructor && TYPE_NON_AGGREGATE_CLASS (type))
{
@@ -28,7 +28,7 @@
/* 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 66
%expect 73
%{
#include "config.h"
@@ -1510,12 +1510,21 @@
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);