From: partain Date: Tue, 23 Jan 1996 11:11:49 +0000 (+0000) Subject: [project @ 1996-01-23 11:11:20 by partain] X-Git-Tag: Approximately_1000_patches_recorded~939 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=7766172e3672279241bacc8dd975dac14e48deca [project @ 1996-01-23 11:11:20 by partain] Final(?) 1.2-compiler base fixes --- diff --git a/ghc/compiler/yaccParser/hslexer.c b/ghc/compiler/yaccParser/hslexer.c index f7fd94c..add30be 100644 --- a/ghc/compiler/yaccParser/hslexer.c +++ b/ghc/compiler/yaccParser/hslexer.c @@ -1,7 +1,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /srv/cvs/cvs.haskell.org/fptools/ghc/compiler/yaccParser/Attic/hslexer.c,v 1.3 1996/01/18 16:36:38 partain Exp $ + * $Header: /srv/cvs/cvs.haskell.org/fptools/ghc/compiler/yaccParser/Attic/hslexer.c,v 1.4 1996/01/23 11:11:20 partain Exp $ */ #define FLEX_SCANNER @@ -283,7 +283,7 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); #define YY_NUM_RULES 202 #define YY_END_OF_BUFFER 203 -static yyconst short int yy_accept[837] = +static yyconst short int yy_accept[743] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -296,87 +296,77 @@ static yyconst short int yy_accept[837] = 121, 121, 121, 121, 121, 121, 121, 121, 96, 86, 97, 104, 122, 191, 196, 196, 133, 127, 105, 111, - 111, 121, 102, 103, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 189, 127, 122, 111, 197, - 121, 121, 121, 121, 121, 96, 122, 122, 122, 197, - 197, 121, 121, 197, 200, 136, 135, 139, 201, 189, - 142, 201, 185, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 201, 201, 201, 201, 201, 141, 201, 151, - 153, 161, 157, 201, 163, 155, 159, 201, 201, 130, - 129, 128, 185, 0, 0, 152, 0, 162, 0, 0, - 0, 175, 0, 0, 0, 0, 160, 178, 179, 154, - 156, 0, 0, 180, 165, 164, 182, 0, 0, 0, - - 181, 158, 184, 186, 187, 189, 122, 133, 132, 127, - 126, 188, 89, 83, 0, 111, 0, 0, 91, 88, - 90, 121, 120, 0, 120, 121, 121, 121, 121, 121, - 121, 61, 121, 75, 121, 121, 69, 121, 121, 72, - 121, 121, 190, 0, 0, 191, 192, 0, 195, 193, - 194, 0, 133, 132, 127, 0, 0, 110, 0, 111, - 0, 0, 119, 121, 120, 0, 0, 121, 121, 121, - 121, 121, 121, 61, 121, 75, 121, 121, 69, 121, - 121, 72, 121, 121, 0, 127, 0, 111, 0, 0, + 111, 102, 103, 189, 127, 122, 111, 197, 121, 121, + 121, 121, 121, 96, 122, 122, 122, 197, 197, 121, + 121, 197, 200, 136, 135, 139, 201, 189, 142, 201, + 185, 201, 201, 201, 201, 201, 201, 201, 201, 201, + 201, 201, 201, 201, 201, 141, 201, 151, 153, 161, + 157, 201, 163, 155, 159, 201, 201, 130, 129, 128, + 185, 0, 0, 152, 0, 162, 0, 0, 0, 175, + 0, 0, 0, 0, 160, 178, 179, 154, 156, 0, + 0, 180, 165, 164, 182, 0, 0, 0, 181, 158, + 184, 186, 187, 189, 122, 133, 132, 127, 126, 188, + + 89, 83, 0, 111, 0, 0, 91, 88, 90, 119, + 121, 120, 0, 120, 121, 121, 121, 121, 121, 121, + 61, 121, 75, 121, 121, 69, 121, 121, 72, 121, + 121, 190, 0, 0, 191, 192, 0, 195, 193, 194, + 0, 133, 132, 127, 0, 0, 110, 0, 111, 0, + 0, 120, 0, 0, 0, 127, 0, 111, 0, 0, 0, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 0, 121, 121, 75, 121, 69, 190, 0, 121, 136, 135, 134, 138, 149, 150, 174, 167, 168, 169, 170, 183, 166, 148, + 147, 177, 173, 146, 171, 143, 144, 145, 176, 172, 127, 125, 188, 188, 188, 188, 114, 107, 109, 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 76, 121, 121, 121, 121, 121, 0, 0, 1, 1, 0, 131, 125, 0, 0, 114, 107, 109, - 120, 120, 0, 0, 0, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 76, 121, 121, 121, - - 121, 121, 0, 0, 0, 18, 19, 0, 120, 120, - 120, 120, 12, 120, 120, 120, 120, 120, 120, 17, - 120, 15, 120, 120, 120, 11, 120, 120, 6, 120, - 120, 120, 120, 14, 120, 120, 120, 13, 120, 120, - 118, 121, 76, 53, 188, 0, 120, 54, 121, 56, - 121, 121, 59, 121, 121, 121, 121, 121, 121, 121, - 71, 73, 121, 0, 0, 52, 52, 52, 52, 52, - 52, 0, 124, 0, 0, 113, 0, 106, 108, 120, - 120, 123, 0, 54, 121, 56, 121, 121, 59, 121, - 121, 121, 121, 121, 121, 121, 71, 73, 121, 46, - - 0, 101, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 16, 120, 7, + 120, 120, 0, 0, 0, 0, 0, 0, 18, 19, + 0, 120, 120, 120, 120, 12, 120, 120, 120, 120, + 120, 120, 17, 120, 15, 120, 120, 120, 11, 120, + 120, 6, 120, 120, 120, 120, 14, 120, 120, 120, + 13, 120, 120, 118, 121, 76, 53, 188, 0, 120, + + 54, 121, 56, 121, 121, 59, 121, 121, 121, 121, + 121, 121, 121, 71, 73, 121, 0, 0, 52, 52, + 52, 52, 52, 52, 0, 124, 0, 0, 113, 0, + 106, 108, 120, 120, 123, 0, 46, 0, 101, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 118, 54, 0, 114, 81, 55, 121, 121, - 121, 121, 63, 121, 121, 121, 121, 74, 52, 52, - 52, 52, 52, 52, 52, 0, 112, 0, 114, 120, - 120, 115, 55, 121, 121, 121, 121, 63, 121, 121, - 121, 121, 74, 0, 0, 120, 22, 120, 120, 20, + 120, 120, 120, 120, 16, 120, 7, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 118, + 54, 0, 114, 81, 55, 121, 121, 121, 121, 63, + 121, 121, 121, 121, 74, 52, 52, 52, 52, 52, + 52, 52, 0, 112, 0, 114, 120, 120, 115, 0, + + 0, 120, 22, 120, 120, 20, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 116, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 116, 120, 120, 120, 120, 120, 120, 120, 120, - - 120, 120, 120, 120, 121, 121, 60, 62, 64, 65, - 121, 121, 68, 121, 52, 52, 52, 52, 52, 52, - 52, 0, 79, 120, 121, 121, 60, 62, 64, 65, - 121, 121, 68, 121, 120, 120, 120, 120, 120, 120, - 35, 120, 36, 120, 120, 120, 120, 34, 120, 120, - 40, 120, 23, 120, 120, 38, 117, 120, 120, 39, - 120, 57, 121, 121, 121, 121, 52, 52, 52, 52, - 52, 52, 52, 0, 2, 2, 120, 77, 57, 121, - 121, 121, 121, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 33, 120, 21, - - 120, 120, 58, 66, 121, 70, 52, 52, 52, 52, - 52, 52, 52, 120, 120, 58, 66, 121, 70, 120, - 120, 41, 120, 32, 37, 120, 120, 120, 120, 25, - 120, 120, 120, 120, 120, 120, 120, 82, 67, 52, - 0, 52, 52, 48, 52, 52, 80, 120, 67, 120, - 120, 29, 120, 30, 31, 42, 43, 44, 45, 120, - 120, 120, 28, 52, 0, 0, 52, 52, 52, 52, - 78, 8, 120, 9, 24, 120, 120, 52, 0, 51, - 50, 52, 52, 120, 120, 120, 52, 3, 3, 52, - 52, 120, 120, 10, 52, 52, 47, 120, 120, 52, - - 52, 27, 120, 5, 52, 120, 0, 52, 120, 0, - 52, 120, 0, 49, 26, 0, 0, 0, 0, 0, + 121, 121, 60, 62, 64, 65, 121, 121, 68, 121, + 52, 52, 52, 52, 52, 52, 52, 0, 79, 120, + 120, 120, 120, 120, 120, 120, 35, 120, 36, 120, + 120, 120, 120, 34, 120, 120, 40, 120, 23, 120, + 120, 38, 117, 120, 120, 39, 120, 57, 121, 121, + 121, 121, 52, 52, 52, 52, 52, 52, 52, 0, + 2, 2, 120, 77, 120, 120, 120, 120, 120, 120, + + 120, 120, 120, 120, 120, 120, 120, 120, 33, 120, + 21, 120, 120, 58, 66, 121, 70, 52, 52, 52, + 52, 52, 52, 52, 120, 120, 120, 120, 41, 120, + 32, 37, 120, 120, 120, 120, 25, 120, 120, 120, + 120, 120, 120, 120, 82, 67, 52, 0, 52, 52, + 48, 52, 52, 80, 120, 120, 120, 29, 120, 30, + 31, 42, 43, 44, 45, 120, 120, 120, 28, 52, + 0, 0, 52, 52, 52, 52, 78, 8, 120, 9, + 24, 120, 120, 52, 0, 51, 50, 52, 52, 120, + 120, 120, 52, 3, 3, 52, 52, 120, 120, 10, + + 52, 52, 47, 120, 120, 52, 52, 27, 120, 5, + 52, 120, 0, 52, 120, 0, 52, 120, 0, 49, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0 + 4, 0 } ; static yyconst int yy_ec[256] = @@ -426,233 +416,213 @@ static yyconst int yy_meta[92] = } ; -static yyconst short int yy_base[881] = +static yyconst short int yy_base[785] = { 0, - 0, 0, 0, 4, 58, 138, 224, 2450, 0, 1, - 315, 2449, 402, 0, 487, 0, 25, 39, 578, 0, - 2456, 2459, 2459, 2443, 2446, 2459, 2459, 2459, 13, 2418, - 7, 12, 12, 21, 10, 2401, 2399, 2412, 18, 2398, - 69, 2397, 2395, 2459, 0, 2459, 2459, 2459, 2459, 0, - 2459, 2459, 2459, 0, 50, 0, 2439, 2433, 2459, 2459, - 0, 2459, 46, 2426, 131, 415, 2416, 2459, 2425, 2410, - 0, 0, 2459, 0, 2459, 6, 2459, 11, 36, 2365, - 2366, 30, 2369, 2359, 2366, 2366, 47, 2362, 2416, 0, - 2459, 0, 52, 0, 13, 2, 2425, 2419, 425, 662, - - 506, 2422, 66, 2365, 66, 452, 105, 2, 129, 124, - 107, 131, 138, 663, 42, 407, 0, 148, 515, 745, - 5, 158, 421, 449, 455, 2411, 0, 2410, 2395, 2362, - 2360, 122, 135, 2406, 2459, 2415, 2413, 2409, 2459, 192, - 2459, 2402, 652, 2383, 132, 169, 417, 497, 370, 2366, - 2364, 2377, 137, 2363, 648, 2362, 2360, 2459, 0, 2459, - 2459, 2459, 2459, 686, 2459, 2459, 2459, 0, 2394, 2398, - 2401, 2459, 692, 2365, 2363, 2459, 2360, 2459, 669, 2361, - 2367, 2459, 2354, 2350, 2366, 410, 2459, 2459, 2459, 2459, - 2459, 2357, 2355, 2459, 2459, 2358, 2459, 2341, 2362, 2349, - - 2459, 2459, 2459, 699, 0, 723, 0, 2387, 2459, 2381, - 2459, 727, 0, 0, 734, 745, 722, 0, 0, 2459, - 0, 0, 0, 2329, 2324, 2309, 2324, 2306, 141, 2306, - 2318, 0, 2306, 464, 2302, 2315, 0, 2305, 2312, 0, - 2301, 2310, 2370, 210, 2304, 0, 0, 2359, 2459, 0, - 2459, 2287, 2367, 2365, 2360, 796, 815, 2459, 822, 841, - 752, 0, 2459, 2363, 114, 2362, 0, 410, 435, 424, - 488, 489, 454, 2361, 495, 725, 484, 493, 2360, 726, - 451, 2359, 673, 730, 2349, 2353, 830, 863, 2301, 2300, - 2302, 846, 524, 772, 2298, 2322, 2296, 2321, 699, 738, - - 2307, 2306, 843, 641, 501, 2305, 2276, 0, 694, 819, - 821, 823, 849, 2459, 2263, 753, 2345, 2343, 2459, 2459, - 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, - 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, - 2338, 2459, 873, 893, 899, 908, 894, 901, 0, 0, - 2282, 2279, 2266, 2281, 2280, 2271, 2274, 2269, 2263, 2267, - 2257, 2269, 0, 2254, 2271, 2258, 2265, 2253, 925, 865, - 2459, 869, 2255, 2459, 2323, 912, 0, 930, 957, 2322, - 2248, 2263, 2263, 2318, 2313, 899, 779, 884, 931, 797, - 900, 932, 671, 933, 934, 935, 2316, 936, 937, 816, - - 938, 731, 2233, 2314, 963, 2459, 2459, 2258, 2269, 918, - 2271, 2266, 0, 2279, 2270, 2277, 2261, 2278, 2264, 0, - 2248, 0, 2258, 2257, 2245, 0, 928, 897, 0, 2266, - 953, 2255, 2268, 0, 2256, 2270, 2265, 0, 2258, 2220, - 0, 966, 984, 2459, 1006, 1000, 2236, 0, 2217, 0, - 2214, 2212, 0, 2218, 2214, 2207, 2227, 2211, 2215, 2213, - 0, 0, 2219, 1025, 660, 1034, 1038, 1042, 1046, 1050, - 1060, 2218, 2459, 1064, 2278, 2277, 1076, 2459, 2459, 2208, - 2208, 2459, 2270, 2273, 990, 2272, 951, 989, 2271, 956, - 987, 995, 1004, 1010, 1005, 1006, 2270, 2269, 1048, 2459, - - 1089, 2459, 2224, 2212, 2211, 2240, 2209, 2224, 2207, 2218, - 408, 2222, 2215, 2230, 2232, 2214, 2223, 0, 2199, 0, - 2224, 2224, 2220, 2214, 2212, 2219, 2220, 2191, 2205, 2202, - 2201, 2185, 0, 1051, 1098, 1105, 0, 0, 2174, 2175, - 2176, 2164, 1057, 2168, 2174, 2174, 2169, 0, 1131, 1136, - 1140, 1144, 1148, 1154, 1158, 2236, 2459, 1144, 1164, 2177, - 2164, 2459, 2230, 1099, 1108, 1023, 993, 1146, 1147, 140, - 1165, 1167, 2229, 1176, 1186, 2186, 0, 2199, 2177, 0, - 2170, 2197, 2179, 2167, 2179, 2165, 2164, 2163, 2175, 2168, - 2115, 0, 2128, 2138, 2109, 2117, 2104, 2122, 1142, 1193, - - 2115, 2099, 2098, 2085, 2077, 2081, 0, 0, 0, 0, - 2090, 2091, 0, 2069, 1225, 1233, 1239, 1243, 1247, 1251, - 1259, 1074, 2092, 2066, 1097, 1195, 2120, 2117, 2115, 2098, - 1172, 1168, 2087, 1196, 2060, 2051, 2038, 2052, 2050, 2032, - 0, 2017, 0, 1999, 1988, 1973, 1943, 0, 1913, 1937, - 0, 1936, 0, 1907, 1933, 0, 1245, 1901, 1928, 0, - 1885, 0, 1887, 1859, 1842, 1823, 1272, 1278, 1282, 1293, - 1298, 1302, 1306, 1219, 2459, 1228, 1857, 1852, 1880, 1249, - 1250, 1251, 1270, 1851, 1841, 1806, 1825, 1796, 1795, 1802, - 1816, 1815, 1796, 1782, 1271, 1799, 1798, 0, 1772, 0, - - 1746, 1696, 0, 0, 1679, 0, 1321, 1325, 1346, 1350, - 1354, 1358, 1362, 1673, 1699, 1725, 1718, 1305, 1717, 1660, - 1641, 0, 1616, 0, 0, 1626, 1614, 1612, 1611, 0, - 1610, 1607, 1593, 1474, 1462, 1483, 1458, 0, 0, 1368, - 1502, 1373, 1378, 1394, 1398, 1402, 0, 1455, 1495, 1439, - 1450, 0, 1437, 0, 0, 0, 0, 0, 0, 1436, - 1459, 1441, 0, 1407, 1464, 1203, 1411, 1420, 1428, 1432, - 0, 0, 1416, 0, 0, 1436, 1434, 1439, 1435, 1445, - 1451, 1455, 1462, 1393, 1392, 1357, 1288, 2459, 1400, 1287, - 1424, 1359, 1338, 0, 1335, 1418, 1334, 1326, 1337, 1440, - - 1432, 0, 1321, 1301, 1429, 1305, 1290, 1438, 1296, 1262, - 1446, 1236, 1252, 1368, 0, 1175, 1140, 1070, 1060, 1037, - 1052, 894, 765, 744, 733, 741, 650, 527, 548, 1485, - 1507, 408, 396, 96, 2459, 2459, 1533, 1555, 1577, 1599, - 1621, 1640, 1651, 1475, 1664, 1677, 1696, 1710, 1718, 1738, - 1760, 1782, 1800, 1819, 1835, 1843, 1860, 1876, 1893, 1912, - 1934, 1503, 1948, 1960, 1980, 2002, 2024, 2044, 2061, 1504, - 2077, 2097, 1297, 2113, 2130, 2151, 1709, 2160, 2180, 2202 + 0, 0, 0, 4, 58, 138, 224, 2291, 0, 1, + 3, 23, 311, 0, 396, 0, 50, 70, 487, 0, + 2298, 2300, 2300, 2285, 2288, 2300, 2300, 2300, 131, 2260, + 4, 0, 24, 54, 18, 2243, 2241, 2254, 5, 2240, + 74, 2239, 2237, 2300, 0, 2300, 2300, 2300, 2300, 145, + 2300, 2300, 2300, 0, 144, 0, 2281, 2275, 2300, 2300, + 0, 2300, 5, 2268, 329, 338, 2258, 2300, 2267, 2252, + 0, 2274, 2300, 0, 2300, 22, 2300, 54, 68, 105, + 34, 109, 6, 117, 124, 133, 357, 135, 2264, 0, + 2300, 0, 134, 0, 97, 2, 2273, 2267, 416, 571, + + 580, 130, 2214, 317, 0, 17, 591, 652, 197, 336, + 333, 358, 330, 2260, 0, 2259, 2244, 2211, 2209, 340, + 349, 2255, 2300, 2264, 2262, 2258, 2300, 366, 2300, 2251, + 428, 2232, 159, 373, 146, 535, 161, 2215, 2213, 2226, + 168, 2212, 577, 2211, 2209, 2300, 0, 2300, 2300, 2300, + 2300, 615, 2300, 2300, 2300, 0, 2243, 2247, 2250, 2300, + 621, 2214, 2212, 2300, 2209, 2300, 598, 2210, 2216, 2300, + 2203, 2199, 2215, 290, 2300, 2300, 2300, 2300, 2300, 2206, + 2204, 2300, 2300, 2207, 2300, 2190, 2211, 2198, 2300, 2300, + 2300, 630, 0, 659, 0, 2236, 2300, 2230, 2300, 663, + + 0, 0, 652, 688, 659, 0, 0, 2300, 0, 2300, + 2233, 0, 2177, 2172, 364, 365, 401, 648, 620, 602, + 2230, 55, 661, 577, 618, 2229, 615, 404, 2228, 623, + 625, 2227, 210, 2161, 0, 0, 2216, 2300, 0, 2300, + 2144, 2224, 2222, 2217, 726, 737, 2300, 715, 746, 753, + 0, 152, 2220, 0, 2210, 2214, 759, 785, 2162, 2161, + 2163, 779, 399, 429, 2159, 2183, 2157, 2182, 751, 414, + 2168, 2167, 395, 422, 666, 2166, 2137, 0, 575, 715, + 599, 712, 717, 2300, 2124, 719, 2206, 2204, 2300, 2300, + 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, + + 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, + 2199, 2300, 813, 817, 826, 831, 823, 830, 0, 0, + 2143, 722, 745, 624, 791, 683, 789, 784, 708, 790, + 757, 793, 2201, 782, 794, 787, 816, 817, 865, 834, + 2300, 837, 2131, 2300, 2199, 851, 0, 858, 897, 2198, + 2124, 2139, 2139, 2194, 2189, 2110, 2191, 915, 2300, 2300, + 2135, 2146, 847, 2148, 2143, 0, 2156, 2147, 2154, 2138, + 2155, 2141, 0, 2125, 0, 2135, 2134, 2122, 0, 833, + 267, 0, 2143, 852, 2132, 2145, 0, 2133, 2147, 2142, + 0, 2135, 2097, 0, 879, 891, 2300, 909, 934, 2113, + + 2167, 853, 2166, 882, 886, 2165, 895, 896, 899, 901, + 900, 907, 916, 2164, 2163, 917, 928, 418, 940, 985, + 991, 995, 999, 1003, 2101, 2300, 1001, 2161, 2160, 1014, + 2300, 2300, 2091, 2091, 2300, 2153, 2300, 1032, 2300, 2112, + 2100, 2099, 2128, 2097, 2112, 2095, 2106, 881, 2110, 2103, + 2118, 2120, 2102, 2111, 0, 2087, 0, 2112, 2112, 2108, + 2102, 2100, 2107, 2108, 2079, 2093, 2090, 2089, 2073, 0, + 938, 990, 1039, 0, 2129, 942, 945, 959, 960, 970, + 967, 921, 1011, 954, 2128, 1064, 1068, 1072, 1079, 1083, + 1087, 1091, 2130, 2300, 1077, 1110, 2071, 2058, 2300, 1090, + + 1117, 2082, 0, 2095, 2073, 0, 2066, 2093, 2075, 2063, + 2075, 2061, 2060, 2059, 2071, 2083, 2056, 0, 2070, 2080, + 2034, 2017, 2005, 2023, 1066, 1124, 2016, 1999, 1996, 1983, + 1038, 1097, 2047, 2046, 2045, 2044, 1012, 1098, 2043, 1100, + 1149, 1153, 1157, 1163, 1167, 1176, 1183, 1118, 2011, 1986, + 2015, 1997, 1972, 1986, 1985, 1972, 0, 1978, 0, 1963, + 1952, 1946, 1949, 0, 1918, 1941, 0, 1941, 0, 1906, + 1913, 0, 1169, 1863, 1880, 0, 1829, 1862, 1111, 1156, + 1116, 1165, 1198, 1202, 1209, 1217, 1224, 1228, 1238, 1172, + 2300, 1193, 1833, 1828, 1829, 1827, 1769, 1778, 1735, 1733, + + 1744, 1757, 1755, 1729, 1710, 1194, 1720, 1726, 0, 1718, + 0, 1718, 1671, 1691, 1669, 1207, 1658, 1244, 1248, 1252, + 1269, 1278, 1284, 1291, 1591, 1617, 1599, 1594, 0, 1580, + 0, 0, 1588, 1565, 1546, 1532, 0, 1531, 1530, 1528, + 1538, 1526, 1545, 1509, 0, 1434, 1295, 1416, 1299, 1305, + 1309, 1314, 1318, 0, 1368, 1367, 1378, 0, 1363, 0, + 0, 0, 0, 0, 0, 1360, 1386, 1369, 0, 1324, + 1393, 1241, 1333, 1337, 1346, 1350, 0, 0, 1341, 0, + 0, 1346, 1309, 1356, 1220, 1361, 1366, 1370, 1374, 1309, + 1308, 1270, 1217, 2300, 1313, 1335, 1343, 1270, 1238, 0, + + 1233, 1339, 1274, 1215, 1226, 1376, 1348, 0, 1206, 1219, + 1347, 1203, 1188, 1356, 1181, 1146, 1361, 1015, 1011, 1345, + 0, 993, 995, 950, 946, 940, 966, 909, 750, 682, + 597, 586, 543, 434, 429, 1415, 1423, 319, 206, 26, + 2300, 2300, 1449, 1471, 1493, 1515, 1537, 1556, 1567, 1398, + 1580, 1593, 1612, 1628, 1636, 1656, 1678, 1700, 1718, 1737, + 1747, 1764, 1780, 1797, 1816, 1838, 1402, 1852, 1872, 1894, + 1916, 1936, 1953, 1405, 1969, 1989, 1245, 2005, 2022, 2043, + 1625, 2052, 2072, 2094 } ; -static yyconst short int yy_def[881] = +static yyconst short int yy_def[785] = { 0, - 837, 837, 838, 838, 839, 839, 836, 7, 840, 840, - 836, 11, 11, 13, 11, 15, 841, 841, 836, 19, - 836, 836, 836, 842, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 843, 836, 836, 836, 836, 836, - 836, 836, 836, 844, 836, 845, 846, 847, 836, 836, - 845, 836, 845, 845, 836, 836, 845, 836, 845, 845, - 845, 848, 836, 845, 836, 849, 836, 848, 848, 848, - 848, 848, 848, 848, 848, 848, 848, 848, 836, 845, - 836, 845, 845, 850, 851, 852, 853, 854, 845, 836, - - 836, 855, 849, 856, 855, 855, 855, 855, 855, 855, - 855, 855, 855, 855, 855, 836, 857, 99, 836, 849, - 858, 858, 858, 858, 858, 836, 845, 845, 845, 849, - 856, 855, 855, 836, 836, 859, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 843, 836, - 836, 836, 836, 836, 836, 836, 836, 844, 836, 842, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - - 836, 836, 836, 836, 844, 836, 845, 846, 836, 860, - 836, 861, 845, 845, 836, 836, 836, 862, 845, 836, - 845, 863, 864, 849, 864, 863, 863, 863, 863, 863, - 863, 863, 863, 863, 863, 863, 863, 863, 863, 863, - 863, 863, 836, 865, 836, 866, 867, 867, 836, 868, - 836, 868, 869, 836, 860, 836, 836, 836, 836, 836, - 836, 870, 836, 855, 864, 871, 872, 855, 855, 855, - 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, - 855, 855, 855, 855, 836, 860, 836, 836, 836, 836, - 836, 864, 864, 864, 864, 864, 864, 864, 864, 864, - - 864, 864, 864, 864, 864, 864, 864, 873, 874, 874, - 874, 874, 874, 836, 836, 855, 875, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 860, 836, 861, 861, 836, 861, 836, 836, 862, 864, - 864, 863, 863, 863, 863, 863, 863, 863, 863, 863, - 863, 863, 863, 863, 863, 863, 863, 863, 876, 865, - 836, 865, 836, 836, 836, 836, 877, 836, 836, 870, - 864, 864, 836, 871, 872, 855, 855, 855, 855, 855, - 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, - - 855, 855, 836, 836, 836, 836, 836, 836, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, - 878, 874, 874, 836, 836, 836, 864, 863, 863, 863, - 863, 863, 863, 863, 863, 863, 863, 863, 863, 863, - 863, 863, 863, 876, 464, 876, 876, 876, 876, 876, - 876, 836, 836, 836, 877, 836, 836, 836, 836, 864, - 864, 836, 836, 855, 855, 855, 855, 855, 855, 855, - 855, 855, 855, 855, 855, 855, 855, 855, 855, 836, - - 836, 836, 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 878, 874, 836, 836, 864, 863, 863, 863, - 863, 863, 863, 863, 863, 863, 863, 863, 876, 876, - 876, 876, 876, 876, 876, 836, 836, 836, 836, 864, - 864, 836, 855, 855, 855, 855, 855, 855, 855, 855, - 855, 855, 855, 836, 836, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, - - 864, 864, 864, 864, 863, 863, 863, 863, 863, 863, - 863, 863, 863, 863, 876, 876, 876, 876, 876, 876, - 876, 879, 864, 864, 855, 855, 855, 855, 855, 855, - 855, 855, 855, 855, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, - 864, 863, 863, 863, 863, 863, 876, 876, 876, 876, - 876, 876, 876, 879, 836, 879, 864, 864, 855, 855, - 855, 855, 855, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, - - 864, 864, 863, 863, 863, 863, 876, 876, 876, 876, - 876, 876, 876, 864, 864, 855, 855, 855, 855, 864, - 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, 863, 876, - 880, 876, 876, 876, 876, 876, 864, 864, 855, 864, - 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 876, 880, 880, 876, 876, 876, 876, - 864, 864, 864, 864, 864, 864, 864, 876, 880, 876, - 876, 876, 876, 864, 864, 864, 783, 836, 880, 783, - 783, 864, 864, 864, 783, 783, 783, 864, 864, 783, - - 783, 864, 864, 836, 783, 864, 836, 783, 864, 836, - 783, 864, 836, 783, 864, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 0, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836 + 743, 743, 744, 744, 745, 745, 742, 7, 746, 746, + 7, 7, 7, 13, 7, 15, 747, 747, 742, 19, + 742, 742, 742, 748, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 749, 742, 742, 742, 742, 742, + 742, 742, 742, 750, 742, 751, 752, 753, 742, 742, + 751, 742, 751, 751, 742, 742, 751, 742, 751, 751, + 751, 754, 742, 751, 742, 755, 742, 754, 754, 754, + 754, 754, 754, 754, 754, 754, 754, 754, 742, 751, + 742, 751, 751, 756, 757, 758, 759, 760, 751, 742, + + 742, 755, 761, 742, 762, 99, 742, 755, 763, 763, + 763, 763, 763, 742, 751, 751, 751, 755, 761, 754, + 754, 742, 742, 764, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 749, 742, 742, 742, + 742, 742, 742, 742, 742, 750, 742, 748, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 750, 742, 751, 752, 742, 765, 742, 766, + + 751, 751, 742, 742, 742, 767, 751, 742, 751, 742, + 754, 768, 755, 768, 754, 754, 754, 754, 754, 754, + 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, + 754, 742, 769, 742, 770, 771, 771, 742, 772, 742, + 772, 773, 742, 765, 742, 742, 742, 742, 742, 742, + 774, 768, 775, 776, 742, 765, 742, 742, 742, 742, + 742, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 777, 778, 778, + 778, 778, 778, 742, 742, 754, 779, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 765, 742, 766, 766, 742, 766, 742, 742, 767, 768, + 768, 754, 754, 754, 754, 754, 754, 754, 754, 754, + 754, 754, 754, 754, 754, 754, 754, 754, 780, 769, + 742, 769, 742, 742, 742, 742, 781, 742, 742, 774, + 768, 768, 742, 775, 776, 742, 742, 742, 742, 742, + 742, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 782, 778, 778, 742, 742, 742, 768, + + 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, + 754, 754, 754, 754, 754, 754, 780, 417, 780, 780, + 780, 780, 780, 780, 742, 742, 742, 781, 742, 742, + 742, 742, 768, 768, 742, 742, 742, 742, 742, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 782, + 778, 742, 742, 768, 754, 754, 754, 754, 754, 754, + 754, 754, 754, 754, 754, 780, 780, 780, 780, 780, + 780, 780, 742, 742, 742, 742, 768, 768, 742, 742, + + 742, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, + 780, 780, 780, 780, 780, 780, 780, 783, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 754, 754, 754, + 754, 754, 780, 780, 780, 780, 780, 780, 780, 783, + 742, 783, 768, 768, 768, 768, 768, 768, 768, 768, + + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 754, 754, 754, 754, 780, 780, 780, + 780, 780, 780, 780, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 754, 780, 784, 780, 780, + 780, 780, 780, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 780, + 784, 784, 780, 780, 780, 780, 768, 768, 768, 768, + 768, 768, 768, 780, 784, 780, 780, 780, 780, 768, + 768, 768, 689, 742, 784, 689, 689, 768, 768, 768, + + 689, 689, 689, 768, 768, 689, 689, 768, 768, 742, + 689, 768, 742, 689, 768, 742, 689, 768, 742, 689, + 768, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 0, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742 } ; -static yyconst short int yy_nxt[2551] = +static yyconst short int yy_nxt[2392] = { 0, - 23, 23, 23, 23, 23, 23, 23, 23, 836, 263, - 836, 25, 263, 308, 836, 25, 95, 95, 251, 204, - 204, 204, 204, 204, 204, 135, 135, 135, 135, 248, - 836, 137, 173, 173, 173, 173, 173, 173, 173, 135, - 135, 135, 135, 175, 177, 137, 179, 187, 180, 263, - 192, 206, 206, 206, 206, 181, 244, 176, 836, 26, - 188, 178, 212, 26, 28, 182, 183, 184, 224, 28, - 193, 185, 186, 263, 273, 226, 213, 29, 29, 29, - 29, 29, 29, 29, 138, 227, 225, 96, 96, 252, - 30, 31, 32, 33, 34, 35, 36, 37, 138, 232, - - 228, 38, 249, 39, 229, 233, 234, 40, 41, 195, - 42, 43, 263, 284, 263, 196, 197, 44, 239, 45, - 198, 199, 46, 47, 240, 200, 245, 48, 224, 263, - 268, 263, 265, 241, 49, 50, 263, 51, 263, 52, - 269, 53, 263, 54, 28, 263, 225, 263, 215, 28, - 216, 216, 216, 216, 216, 216, 216, 29, 29, 29, - 29, 29, 29, 29, 836, 263, 308, 257, 175, 192, - 30, 31, 32, 33, 34, 35, 36, 37, 381, 272, - 382, 38, 176, 39, 278, 835, 270, 40, 41, 193, - 42, 43, 277, 206, 206, 206, 206, 44, 274, 45, - - 279, 177, 46, 47, 275, 276, 280, 48, 217, 632, - 355, 316, 371, 372, 49, 50, 218, 51, 178, 52, - 356, 53, 310, 54, 22, 55, 55, 55, 55, 56, + 23, 23, 23, 23, 23, 23, 23, 23, 742, 97, + 742, 25, 742, 210, 98, 25, 95, 95, 240, 99, + 742, 200, 100, 101, 101, 101, 101, 101, 101, 97, + 93, 742, 165, 742, 98, 201, 246, 180, 742, 99, + 163, 210, 100, 101, 101, 101, 101, 101, 101, 166, + 123, 123, 123, 123, 164, 175, 125, 181, 167, 26, + 168, 210, 210, 26, 28, 102, 103, 169, 176, 28, + 123, 123, 123, 123, 224, 210, 125, 29, 29, 29, + 29, 29, 29, 29, 213, 102, 103, 96, 96, 241, + 30, 31, 32, 33, 34, 35, 36, 37, 170, 171, + + 172, 38, 214, 39, 173, 174, 220, 40, 41, 126, + 42, 43, 210, 237, 183, 741, 210, 44, 215, 45, + 184, 185, 46, 47, 210, 186, 187, 48, 216, 126, + 188, 210, 217, 329, 49, 50, 218, 51, 233, 52, + 210, 53, 210, 54, 28, 194, 194, 194, 194, 28, + 161, 161, 161, 161, 161, 161, 161, 29, 29, 29, + 29, 29, 29, 29, 192, 192, 192, 192, 192, 192, + 30, 31, 32, 33, 34, 35, 36, 37, 221, 219, + 167, 38, 168, 39, 222, 223, 238, 40, 41, 169, + 42, 43, 213, 226, 225, 163, 252, 44, 175, 45, + + 180, 227, 46, 47, 210, 278, 231, 48, 234, 164, + 214, 176, 341, 342, 49, 50, 351, 51, 352, 52, + 181, 53, 740, 54, 22, 55, 55, 55, 55, 56, 57, 56, 56, 56, 56, 58, 59, 60, 61, 62, 63, 64, 56, 65, 66, 66, 66, 66, 66, 66, 67, 68, 69, 70, 56, 71, 72, 72, 72, 72, @@ -662,281 +632,265 @@ static yyconst short int yy_nxt[2551] = 78, 79, 80, 72, 72, 81, 82, 72, 83, 84, 72, 85, 72, 86, 72, 87, 72, 72, 88, 72, - 72, 89, 90, 91, 92, 22, 55, 55, 55, 55, - 56, 97, 56, 56, 56, 56, 98, 59, 60, 61, - 62, 99, 64, 56, 100, 101, 101, 101, 101, 101, - 101, 67, 68, 69, 70, 56, 71, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 73, 74, 75, 56, 103, 104, 102, - 102, 105, 106, 107, 102, 102, 108, 109, 102, 110, - 111, 102, 112, 102, 113, 102, 114, 102, 102, 115, - - 102, 102, 89, 90, 91, 92, 116, 187, 206, 206, - 206, 206, 834, 117, 285, 833, 56, 263, 118, 56, - 188, 119, 119, 119, 119, 119, 119, 119, 263, 308, - 56, 263, 215, 56, 216, 216, 216, 216, 216, 216, - 216, 212, 263, 333, 256, 257, 257, 257, 257, 257, - 257, 179, 584, 180, 585, 213, 263, 308, 263, 263, - 181, 263, 263, 308, 120, 334, 121, 121, 122, 121, - 121, 121, 121, 121, 123, 121, 124, 121, 121, 125, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 126, - 386, 263, 127, 22, 128, 263, 263, 311, 22, 387, - - 263, 56, 263, 129, 56, 388, 22, 22, 22, 22, - 22, 22, 22, 258, 22, 56, 270, 312, 56, 400, - 271, 392, 258, 259, 313, 260, 260, 260, 260, 260, - 260, 260, 287, 360, 288, 288, 288, 288, 288, 288, - 288, 182, 183, 184, 361, 362, 56, 185, 186, 130, - 131, 437, 830, 102, 132, 102, 414, 389, 102, 133, - 398, 102, 102, 438, 102, 397, 102, 390, 102, 391, - 415, 102, 829, 393, 134, 56, 22, 127, 139, 140, - 140, 140, 140, 139, 141, 139, 139, 139, 139, 141, - 139, 139, 139, 139, 142, 139, 139, 143, 143, 143, - - 143, 143, 143, 143, 139, 139, 139, 139, 139, 139, - 144, 145, 146, 147, 148, 149, 150, 151, 139, 139, - 139, 152, 139, 153, 139, 139, 139, 154, 155, 139, - 156, 157, 139, 139, 139, 139, 139, 158, 139, 159, - 139, 139, 160, 161, 139, 139, 139, 162, 139, 139, - 139, 139, 139, 139, 163, 164, 139, 165, 139, 166, - 139, 167, 139, 168, 139, 169, 139, 139, 139, 258, - 263, 173, 173, 173, 173, 173, 173, 173, 263, 259, - 263, 260, 260, 260, 260, 260, 260, 260, 195, 324, - 325, 326, 327, 435, 196, 197, 828, 436, 549, 198, - - 199, 263, 308, 550, 200, 204, 204, 204, 204, 204, - 204, 173, 173, 173, 173, 173, 173, 173, 204, 204, - 204, 204, 204, 204, 206, 206, 206, 206, 344, 345, - 346, 344, 263, 263, 281, 424, 425, 263, 263, 261, - 282, 348, 348, 348, 348, 348, 348, 262, 491, 283, - 289, 401, 290, 347, 347, 347, 347, 347, 347, 347, - 263, 426, 215, 291, 216, 216, 216, 216, 216, 216, - 216, 379, 379, 379, 379, 379, 379, 292, 427, 293, - 294, 827, 295, 826, 428, 296, 263, 297, 298, 299, - 300, 301, 302, 825, 394, 303, 304, 305, 402, 306, - - 429, 824, 399, 258, 263, 395, 396, 224, 416, 417, - 499, 265, 418, 287, 307, 257, 257, 257, 257, 257, - 257, 257, 258, 263, 419, 225, 263, 308, 263, 308, - 263, 308, 287, 395, 257, 257, 257, 257, 257, 257, - 257, 378, 378, 378, 378, 378, 378, 378, 258, 405, - 405, 405, 405, 405, 405, 405, 263, 308, 259, 485, - 260, 260, 260, 260, 260, 260, 260, 371, 372, 488, - 258, 371, 372, 376, 344, 345, 346, 344, 432, 409, - 287, 377, 288, 288, 288, 288, 288, 288, 288, 410, - 433, 263, 497, 411, 344, 345, 346, 344, 412, 442, - - 445, 445, 445, 445, 443, 434, 263, 263, 413, 344, - 345, 346, 344, 347, 347, 347, 347, 347, 347, 347, - 348, 348, 348, 348, 348, 348, 464, 464, 464, 465, - 446, 474, 474, 474, 474, 474, 474, 476, 263, 263, - 263, 263, 263, 263, 263, 263, 521, 823, 486, 378, - 378, 378, 378, 378, 378, 378, 504, 466, 263, 522, - 468, 505, 446, 263, 478, 469, 477, 484, 489, 470, - 476, 519, 506, 263, 308, 471, 379, 379, 379, 379, - 379, 379, 405, 405, 405, 405, 405, 405, 405, 524, - 520, 263, 308, 525, 263, 487, 263, 263, 477, 501, - - 263, 496, 263, 494, 490, 492, 498, 445, 445, 445, - 445, 263, 263, 263, 535, 493, 535, 263, 495, 536, - 536, 536, 536, 536, 536, 536, 464, 464, 464, 464, - 263, 501, 566, 564, 534, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 263, 822, 466, 263, 308, - 468, 836, 836, 836, 836, 469, 567, 551, 569, 470, - 563, 478, 565, 821, 628, 471, 675, 676, 552, 571, - 568, 572, 554, 474, 474, 474, 474, 474, 474, 570, - 558, 553, 558, 627, 820, 559, 559, 559, 559, 559, - - 559, 559, 819, 574, 263, 574, 263, 555, 575, 575, - 575, 575, 575, 575, 575, 263, 573, 536, 536, 536, - 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, - 536, 609, 836, 836, 836, 836, 610, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 263, 263, 836, 836, 836, 836, 836, - 836, 836, 836, 559, 559, 559, 559, 559, 559, 559, - 615, 476, 263, 625, 263, 263, 616, 818, 679, 263, - 626, 618, 655, 559, 559, 559, 559, 559, 559, 559, - 617, 619, 620, 476, 621, 575, 575, 575, 575, 575, - - 575, 575, 263, 263, 656, 575, 575, 575, 575, 575, - 575, 575, 657, 657, 657, 657, 657, 657, 657, 766, - 629, 675, 676, 631, 817, 630, 836, 836, 836, 836, - 675, 676, 682, 633, 836, 836, 836, 836, 681, 634, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 263, 263, 263, 667, - 836, 836, 836, 836, 657, 657, 657, 657, 657, 657, - 657, 680, 683, 836, 836, 836, 836, 263, 668, 836, - 836, 836, 836, 836, 836, 836, 836, 671, 816, 670, - 669, 672, 779, 673, 836, 836, 836, 836, 815, 836, - - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 731, 263, 813, 708, 441, 441, 718, 717, 716, - 732, 733, 836, 836, 836, 836, 836, 836, 836, 741, - 812, 709, 795, 796, 707, 810, 712, 467, 467, 809, - 719, 807, 710, 711, 467, 467, 713, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 800, 740, 836, - 836, 836, 836, 749, 836, 836, 836, 836, 742, 836, - 836, 836, 836, 806, 467, 467, 743, 803, 802, 799, - 744, 467, 467, 798, 746, 836, 836, 836, 836, 836, - - 836, 836, 836, 836, 836, 836, 836, 767, 836, 836, - 836, 836, 836, 836, 836, 836, 766, 764, 467, 794, - 745, 836, 836, 836, 836, 467, 793, 792, 768, 836, - 836, 836, 836, 836, 836, 836, 836, 788, 789, 778, - 836, 836, 836, 836, 804, 770, 836, 836, 836, 836, - 769, 766, 836, 836, 836, 836, 836, 836, 836, 836, - 797, 801, 780, 836, 836, 836, 836, 805, 467, 808, - 786, 781, 783, 782, 467, 467, 785, 787, 784, 467, - 766, 467, 467, 811, 814, 205, 467, 205, 467, 467, - 467, 777, 790, 205, 776, 467, 467, 467, 775, 774, - - 773, 772, 263, 467, 831, 831, 831, 831, 831, 831, - 831, 832, 791, 349, 380, 349, 380, 771, 766, 791, - 763, 349, 380, 762, 761, 760, 831, 831, 831, 831, - 831, 831, 831, 22, 22, 22, 22, 22, 22, 22, + 72, 89, 90, 91, 92, 104, 458, 97, 194, 194, + 194, 194, 105, 303, 255, 56, 739, 106, 56, 459, + 107, 107, 107, 107, 107, 107, 107, 210, 278, 56, + 210, 278, 56, 210, 278, 304, 203, 210, 204, 204, + 204, 204, 204, 204, 204, 203, 210, 204, 204, 204, + 204, 204, 204, 204, 210, 210, 278, 194, 194, 194, + 194, 210, 210, 108, 103, 109, 109, 110, 109, 109, + 109, 109, 109, 111, 109, 112, 109, 109, 113, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 114, 283, + + 280, 115, 22, 116, 217, 165, 205, 22, 210, 281, + 56, 210, 117, 56, 206, 22, 22, 22, 22, 22, + 22, 22, 166, 22, 56, 286, 282, 56, 228, 323, + 385, 367, 200, 736, 229, 245, 246, 246, 246, 246, + 246, 246, 386, 230, 322, 368, 201, 161, 161, 161, + 161, 161, 161, 161, 380, 56, 486, 387, 118, 119, + 381, 487, 72, 120, 72, 369, 370, 72, 121, 371, + 72, 72, 336, 72, 388, 72, 382, 72, 389, 735, + 72, 372, 324, 122, 56, 22, 115, 127, 128, 128, + 128, 128, 127, 129, 127, 127, 127, 127, 129, 127, + + 127, 127, 127, 130, 127, 127, 131, 131, 131, 131, + 131, 131, 131, 127, 127, 127, 127, 127, 127, 132, + 133, 134, 135, 136, 137, 138, 139, 127, 127, 127, + 140, 127, 141, 127, 127, 127, 142, 143, 127, 144, + 145, 127, 127, 127, 127, 127, 146, 127, 147, 127, + 127, 148, 149, 127, 127, 127, 150, 127, 127, 127, + 127, 127, 127, 151, 152, 127, 153, 127, 154, 127, + 155, 127, 156, 127, 157, 127, 127, 127, 247, 170, + 171, 172, 210, 278, 210, 173, 174, 247, 248, 734, + 249, 249, 249, 249, 249, 249, 249, 248, 247, 249, + + 249, 249, 249, 249, 249, 249, 210, 278, 257, 210, + 258, 258, 258, 258, 258, 258, 258, 183, 294, 295, + 296, 297, 210, 184, 185, 210, 733, 210, 186, 187, + 210, 210, 210, 188, 192, 192, 192, 192, 192, 192, + 161, 161, 161, 161, 161, 161, 161, 732, 250, 192, + 192, 192, 192, 192, 192, 210, 251, 259, 333, 260, + 194, 194, 194, 194, 314, 315, 316, 314, 210, 328, + 261, 317, 317, 317, 317, 317, 317, 317, 318, 318, + 318, 318, 318, 318, 262, 334, 263, 264, 403, 265, + 210, 335, 266, 338, 267, 268, 269, 270, 271, 272, + + 327, 337, 273, 274, 275, 203, 276, 204, 204, 204, + 204, 204, 204, 204, 213, 210, 390, 325, 252, 210, + 278, 277, 210, 278, 210, 278, 210, 326, 391, 210, + 330, 731, 214, 247, 348, 348, 348, 348, 348, 348, + 348, 331, 332, 257, 247, 246, 246, 246, 246, 246, + 246, 246, 210, 247, 257, 405, 246, 246, 246, 246, + 246, 246, 246, 248, 210, 249, 249, 249, 249, 249, + 249, 249, 349, 349, 349, 349, 349, 349, 358, 358, + 358, 358, 358, 358, 358, 408, 730, 377, 378, 210, + 401, 210, 247, 396, 210, 395, 210, 210, 210, 331, + + 210, 210, 257, 346, 258, 258, 258, 258, 258, 258, + 258, 347, 362, 379, 314, 315, 316, 314, 314, 315, + 316, 314, 363, 210, 210, 402, 364, 398, 398, 398, + 398, 365, 314, 315, 316, 314, 341, 342, 410, 341, + 342, 366, 317, 317, 317, 317, 317, 317, 317, 318, + 318, 318, 318, 318, 318, 404, 407, 406, 413, 399, + 210, 411, 409, 414, 412, 429, 417, 417, 417, 418, + 427, 427, 427, 427, 427, 427, 456, 348, 348, 348, + 348, 348, 348, 348, 415, 441, 210, 278, 461, 210, + 442, 399, 462, 210, 430, 457, 416, 419, 210, 278, + + 421, 443, 210, 210, 431, 422, 210, 210, 210, 423, + 398, 398, 398, 398, 210, 424, 349, 349, 349, 349, + 349, 349, 429, 210, 210, 510, 430, 511, 210, 417, + 417, 417, 417, 475, 358, 358, 358, 358, 358, 358, + 358, 742, 742, 742, 742, 210, 278, 471, 472, 210, + 472, 438, 210, 473, 473, 473, 473, 473, 473, 473, + 419, 210, 729, 421, 476, 481, 210, 210, 422, 477, + 728, 478, 423, 488, 210, 479, 727, 210, 424, 482, + 726, 483, 725, 438, 480, 485, 742, 742, 742, 742, + 538, 484, 742, 742, 742, 742, 742, 742, 742, 742, + + 742, 742, 742, 742, 742, 742, 742, 742, 431, 473, + 473, 473, 473, 473, 473, 473, 531, 532, 210, 210, + 427, 427, 427, 427, 427, 427, 540, 489, 495, 533, + 495, 491, 724, 496, 496, 496, 496, 496, 496, 496, + 490, 534, 723, 537, 535, 210, 500, 722, 500, 536, + 492, 501, 501, 501, 501, 501, 501, 501, 473, 473, + 473, 473, 473, 473, 473, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 721, 580, 539, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 496, 496, 496, 496, + + 496, 496, 496, 541, 210, 210, 571, 210, 542, 501, + 501, 501, 501, 501, 501, 501, 544, 429, 210, 578, + 591, 592, 543, 210, 429, 546, 545, 547, 572, 496, + 496, 496, 496, 496, 496, 496, 501, 501, 501, 501, + 501, 501, 501, 573, 573, 573, 573, 573, 573, 573, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 581, 210, 742, 742, 742, 742, 742, 742, + 742, 742, 210, 579, 591, 592, 582, 742, 742, 742, + 742, 614, 616, 583, 742, 742, 742, 742, 573, 573, + 573, 573, 573, 573, 573, 591, 592, 719, 584, 742, + + 742, 742, 742, 742, 742, 742, 742, 587, 585, 586, + 742, 742, 742, 742, 210, 718, 588, 589, 742, 742, + 742, 742, 694, 695, 615, 742, 742, 742, 742, 742, + 742, 742, 742, 716, 638, 617, 672, 715, 619, 742, + 742, 742, 742, 639, 640, 742, 742, 742, 742, 742, + 742, 742, 648, 742, 742, 742, 742, 672, 620, 713, + 618, 701, 623, 394, 394, 706, 621, 420, 712, 622, + 742, 742, 742, 742, 420, 646, 709, 708, 624, 742, + 742, 742, 742, 420, 649, 742, 742, 742, 742, 705, + 420, 647, 742, 742, 742, 742, 742, 742, 742, 742, + + 742, 742, 742, 742, 704, 650, 742, 742, 742, 742, + 742, 742, 742, 742, 651, 742, 742, 742, 742, 742, + 742, 742, 742, 653, 420, 742, 742, 742, 742, 672, + 685, 420, 700, 673, 742, 742, 742, 742, 742, 742, + 742, 742, 699, 698, 670, 692, 652, 742, 742, 742, + 742, 742, 742, 742, 742, 674, 684, 742, 742, 742, + 742, 676, 742, 742, 742, 742, 675, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 703, + 710, 702, 707, 711, 686, 420, 691, 714, 687, 420, + 689, 688, 420, 420, 693, 420, 420, 420, 420, 720, + + 420, 717, 420, 690, 420, 420, 420, 696, 193, 672, + 193, 420, 319, 420, 319, 350, 193, 350, 420, 683, + 319, 682, 681, 350, 697, 680, 420, 738, 679, 678, + 677, 697, 672, 420, 737, 737, 737, 737, 737, 737, + 737, 210, 737, 737, 737, 737, 737, 737, 737, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 24, 24, 24, 24, 24, + 22, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 94, + 24, 24, 24, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 759, 170, 170, 170, 170, - 170, 170, 203, 203, 203, 203, 203, 203, 207, 758, - 207, 207, 757, 756, 755, 207, 754, 753, 752, 207, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 751, 208, 208, 208, 208, 208, 208, 210, - - 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 750, 210, 210, 210, 210, 210, 210, 222, 475, - 222, 475, 222, 222, 263, 263, 222, 475, 222, 222, - 223, 223, 263, 748, 223, 747, 223, 223, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 739, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 738, 246, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 737, 247, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - - 250, 250, 250, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 736, 253, 253, 253, 253, - 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 735, 255, 255, 255, 255, 255, - 255, 264, 734, 264, 730, 264, 729, 264, 264, 728, - 727, 264, 726, 264, 264, 266, 266, 725, 724, 723, - 266, 266, 266, 286, 286, 286, 286, 286, 722, 286, - 286, 286, 286, 286, 286, 721, 286, 286, 286, 286, - 286, 286, 309, 309, 309, 720, 309, 263, 309, 309, - 715, 714, 309, 706, 309, 309, 317, 317, 317, 317, - - 317, 317, 317, 317, 317, 317, 317, 317, 705, 317, - 317, 317, 317, 317, 317, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 704, 341, 341, - 341, 341, 341, 341, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 222, 703, 222, 702, - 222, 222, 701, 700, 222, 699, 222, 222, 350, 698, - 350, 697, 350, 350, 696, 695, 350, 694, 350, 350, - 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, - 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, - - 370, 370, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 693, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 692, 246, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 691, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 690, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 689, 253, 253, 253, - 253, 253, 253, 384, 688, 384, 687, 384, 686, 384, - 384, 685, 684, 384, 263, 384, 384, 385, 385, 385, - - 385, 385, 385, 385, 385, 263, 385, 385, 385, 385, - 385, 385, 385, 385, 385, 385, 385, 385, 385, 309, - 309, 309, 263, 309, 263, 309, 309, 263, 678, 309, - 677, 309, 309, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 666, 317, 317, 317, 317, - 317, 317, 467, 467, 467, 665, 664, 663, 662, 661, - 660, 659, 658, 467, 467, 654, 653, 467, 533, 652, - 533, 651, 533, 533, 650, 649, 533, 648, 533, 533, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - - 674, 674, 765, 765, 647, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 646, 645, 644, 643, 642, 641, - 640, 639, 638, 637, 636, 635, 263, 263, 624, 623, - 622, 614, 613, 612, 611, 608, 607, 606, 605, 604, - 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, - 593, 592, 591, 590, 589, 588, 587, 586, 583, 582, - 581, 580, 579, 578, 577, 576, 263, 263, 263, 263, - 263, 562, 561, 560, 557, 479, 556, 548, 547, 546, - 545, 544, 543, 542, 541, 540, 539, 538, 537, 532, - - 531, 530, 529, 528, 527, 526, 523, 518, 517, 516, - 515, 514, 513, 512, 511, 510, 509, 508, 507, 503, - 502, 473, 500, 263, 483, 383, 482, 481, 480, 479, - 473, 472, 463, 462, 461, 460, 459, 458, 457, 456, - 455, 454, 453, 452, 451, 450, 449, 448, 447, 836, - 319, 318, 444, 440, 439, 431, 430, 423, 422, 421, - 420, 408, 407, 406, 404, 403, 263, 263, 263, 383, - 263, 375, 374, 254, 252, 248, 373, 369, 368, 367, - 366, 365, 364, 363, 359, 358, 357, 354, 353, 352, - 351, 224, 342, 209, 340, 339, 338, 337, 336, 335, - - 332, 331, 330, 329, 328, 323, 322, 321, 172, 171, - 314, 202, 201, 194, 191, 190, 189, 174, 212, 320, - 319, 318, 314, 836, 224, 213, 315, 314, 267, 263, - 211, 254, 243, 242, 238, 237, 236, 235, 231, 230, - 221, 220, 219, 214, 211, 209, 202, 201, 194, 191, - 190, 189, 174, 172, 171, 836, 93, 93, 21, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836 + 94, 94, 94, 94, 94, 94, 94, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 669, 158, 158, 158, 158, 158, 158, 191, 191, + 191, 191, 191, 191, 195, 668, 195, 195, 667, 666, + 665, 195, 664, 663, 662, 195, 196, 196, 196, 196, + + 196, 196, 196, 196, 196, 196, 196, 196, 661, 196, + 196, 196, 196, 196, 196, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 660, 198, 198, + 198, 198, 198, 198, 211, 428, 211, 428, 211, 659, + 211, 211, 658, 428, 211, 657, 211, 211, 212, 212, + 656, 655, 212, 654, 212, 212, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 210, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 210, 235, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 210, 236, + + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 645, 242, 242, 242, 242, 242, 242, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 644, 244, 244, 244, 244, 244, 244, 253, + 253, 643, 642, 641, 253, 253, 253, 256, 256, 256, + 256, 256, 637, 256, 256, 256, 256, 256, 256, 636, + 256, 256, 256, 256, 256, 256, 279, 279, 279, 635, + 279, 634, 279, 279, 633, 632, 279, 631, 279, 279, + + 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 630, 287, 287, 287, 287, 287, 287, 311, + 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, + 311, 629, 311, 311, 311, 311, 311, 311, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, + 320, 628, 320, 627, 320, 320, 626, 625, 320, 210, + 320, 320, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 235, 235, 235, 235, 235, 235, + + 235, 235, 235, 613, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 612, 235, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 611, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 610, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 609, 242, + 242, 242, 242, 242, 242, 354, 608, 354, 607, 354, + 606, 354, 354, 605, 604, 354, 603, 354, 354, 355, + 355, 355, 355, 355, 355, 355, 355, 602, 355, 355, + + 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, + 355, 279, 279, 279, 601, 279, 600, 279, 279, 599, + 598, 279, 597, 279, 279, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 596, 287, 287, + 287, 287, 287, 287, 420, 420, 420, 595, 594, 593, + 210, 210, 210, 210, 210, 420, 420, 577, 576, 420, + 470, 575, 470, 574, 470, 470, 570, 569, 470, 568, + 470, 470, 590, 590, 590, 590, 590, 590, 590, 590, + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + 590, 590, 590, 590, 671, 671, 567, 671, 671, 671, + + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 671, 566, 565, 564, 563, + 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, + 552, 551, 550, 549, 548, 210, 210, 530, 529, 528, + 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, + 517, 516, 515, 514, 513, 512, 509, 508, 507, 506, + 505, 504, 503, 502, 499, 498, 497, 494, 432, 493, + 210, 210, 210, 210, 210, 474, 469, 468, 467, 466, + 465, 464, 463, 460, 455, 454, 453, 452, 451, 450, + 449, 448, 447, 446, 445, 444, 440, 439, 426, 437, + + 436, 353, 435, 434, 433, 432, 426, 425, 210, 400, + 742, 289, 288, 397, 393, 392, 384, 383, 376, 375, + 374, 373, 361, 360, 359, 357, 356, 353, 345, 344, + 243, 241, 237, 343, 339, 210, 210, 210, 321, 213, + 210, 312, 197, 310, 309, 308, 307, 306, 305, 302, + 301, 300, 299, 298, 293, 292, 291, 160, 159, 284, + 190, 189, 182, 179, 178, 177, 162, 200, 290, 289, + 288, 284, 742, 213, 201, 285, 284, 254, 199, 243, + 232, 210, 209, 208, 207, 202, 199, 197, 190, 189, + 182, 179, 178, 177, 162, 160, 159, 742, 93, 21, + + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742 + } ; -static yyconst short int yy_chk[2551] = +static yyconst short int yy_chk[2392] = { 0, - 3, 3, 3, 3, 4, 4, 4, 4, 0, 108, - 0, 3, 121, 121, 0, 4, 9, 10, 96, 50, - 50, 50, 50, 50, 50, 17, 17, 17, 17, 95, - 0, 17, 29, 29, 29, 29, 29, 29, 29, 18, - 18, 18, 18, 31, 32, 18, 33, 35, 33, 115, - 39, 55, 55, 55, 55, 33, 93, 31, 0, 3, - 35, 32, 63, 4, 5, 34, 34, 34, 76, 5, - 39, 34, 34, 105, 108, 78, 63, 5, 5, 5, - 5, 5, 5, 5, 17, 78, 76, 9, 10, 96, - 5, 5, 5, 5, 5, 5, 5, 5, 18, 82, - - 79, 5, 95, 5, 79, 82, 82, 5, 5, 41, - 5, 5, 107, 115, 111, 41, 41, 5, 87, 5, - 41, 41, 5, 5, 87, 41, 93, 5, 103, 132, - 105, 110, 103, 87, 5, 5, 109, 5, 112, 5, - 105, 5, 133, 5, 6, 113, 103, 570, 65, 6, - 65, 65, 65, 65, 65, 65, 65, 6, 6, 6, - 6, 6, 6, 6, 118, 122, 122, 118, 145, 153, - 6, 6, 6, 6, 6, 6, 6, 6, 265, 107, - 265, 6, 145, 6, 111, 834, 132, 6, 6, 153, - 6, 6, 110, 140, 140, 140, 140, 6, 109, 6, - - 112, 146, 6, 6, 109, 109, 113, 6, 65, 570, - 229, 133, 244, 244, 6, 6, 65, 6, 146, 6, - 229, 6, 122, 6, 7, 7, 7, 7, 7, 7, + 3, 3, 3, 3, 4, 4, 4, 4, 0, 11, + 0, 3, 0, 83, 11, 4, 9, 10, 96, 11, + 0, 63, 11, 11, 11, 11, 11, 11, 11, 12, + 12, 0, 32, 106, 12, 63, 106, 39, 0, 12, + 31, 81, 12, 12, 12, 12, 12, 12, 12, 32, + 17, 17, 17, 17, 31, 35, 17, 39, 33, 3, + 33, 78, 222, 4, 5, 11, 11, 33, 35, 5, + 18, 18, 18, 18, 83, 79, 18, 5, 5, 5, + 5, 5, 5, 5, 76, 12, 12, 9, 10, 96, + 5, 5, 5, 5, 5, 5, 5, 5, 34, 34, + + 34, 5, 76, 5, 34, 34, 81, 5, 5, 17, + 5, 5, 80, 95, 41, 740, 82, 5, 78, 5, + 41, 41, 5, 5, 84, 41, 41, 5, 78, 18, + 41, 85, 79, 222, 5, 5, 79, 5, 93, 5, + 86, 5, 88, 5, 6, 55, 55, 55, 55, 6, + 29, 29, 29, 29, 29, 29, 29, 6, 6, 6, + 6, 6, 6, 6, 50, 50, 50, 50, 50, 50, + 6, 6, 6, 6, 6, 6, 6, 6, 82, 80, + 135, 6, 135, 6, 82, 82, 95, 6, 6, 135, + 6, 6, 102, 85, 84, 133, 102, 6, 137, 6, + + 141, 86, 6, 6, 109, 109, 88, 6, 93, 133, + 102, 137, 233, 233, 6, 6, 252, 6, 252, 6, + 141, 6, 739, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, @@ -946,36 +900,25 @@ static yyconst short int yy_chk[2551] = 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - - 11, 11, 11, 11, 11, 11, 13, 149, 116, 116, - 116, 116, 833, 13, 116, 832, 13, 268, 13, 13, - 149, 13, 13, 13, 13, 13, 13, 13, 123, 123, - 13, 270, 66, 13, 66, 66, 66, 66, 66, 66, - 66, 99, 269, 186, 99, 99, 99, 99, 99, 99, - 99, 147, 511, 147, 511, 99, 124, 124, 281, 106, - 147, 273, 125, 125, 13, 186, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 7, 7, 7, 7, 7, 13, 381, 13, 104, 104, + 104, 104, 13, 174, 104, 13, 738, 13, 13, 381, + 13, 13, 13, 13, 13, 13, 13, 113, 113, 13, + 111, 111, 13, 110, 110, 174, 65, 120, 65, 65, + 65, 65, 65, 65, 65, 66, 121, 66, 66, 66, + 66, 66, 66, 66, 87, 112, 112, 128, 128, 128, + 128, 215, 216, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 268, 277, 13, 15, 15, 271, 272, 123, 15, 269, - - 278, 15, 275, 15, 15, 270, 15, 15, 15, 15, - 15, 15, 15, 101, 15, 15, 106, 124, 15, 281, - 106, 273, 119, 101, 125, 101, 101, 101, 101, 101, - 101, 101, 119, 234, 119, 119, 119, 119, 119, 119, - 119, 148, 148, 148, 234, 234, 15, 148, 148, 15, - 15, 305, 829, 15, 15, 15, 293, 271, 15, 15, - 278, 15, 15, 305, 15, 277, 15, 271, 15, 272, - 293, 15, 828, 275, 15, 15, 15, 15, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 113, + + 110, 13, 15, 15, 120, 134, 65, 15, 217, 111, + 15, 228, 15, 15, 65, 15, 15, 15, 15, 15, + 15, 15, 134, 15, 15, 121, 112, 15, 87, 216, + 273, 263, 99, 735, 87, 99, 99, 99, 99, 99, + 99, 99, 273, 87, 215, 263, 99, 131, 131, 131, + 131, 131, 131, 131, 270, 15, 418, 273, 15, 15, + 270, 418, 15, 15, 15, 264, 264, 15, 15, 264, + 15, 15, 228, 15, 274, 15, 270, 15, 274, 734, + 15, 264, 217, 15, 15, 15, 15, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, @@ -984,214 +927,209 @@ static yyconst short int yy_chk[2551] = 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 100, - 114, 143, 143, 143, 143, 143, 143, 143, 393, 100, - 283, 100, 100, 100, 100, 100, 100, 100, 155, 179, - 179, 179, 179, 304, 155, 155, 827, 304, 465, 155, - - 155, 309, 309, 465, 155, 164, 164, 164, 164, 164, - 164, 173, 173, 173, 173, 173, 173, 173, 204, 204, - 204, 204, 204, 204, 206, 206, 206, 206, 212, 212, - 212, 212, 276, 280, 114, 299, 299, 284, 402, 100, - 114, 217, 217, 217, 217, 217, 217, 100, 393, 114, - 120, 283, 120, 215, 215, 215, 215, 215, 215, 215, - 316, 299, 216, 120, 216, 216, 216, 216, 216, 216, - 216, 261, 261, 261, 261, 261, 261, 120, 300, 120, - 120, 826, 120, 825, 300, 120, 387, 120, 120, 120, - 120, 120, 120, 824, 276, 120, 120, 120, 284, 120, - - 300, 823, 280, 256, 390, 276, 276, 120, 294, 294, - 402, 120, 294, 256, 120, 256, 256, 256, 256, 256, - 256, 256, 257, 400, 294, 120, 310, 310, 311, 311, - 312, 312, 257, 316, 257, 257, 257, 257, 257, 257, - 257, 259, 259, 259, 259, 259, 259, 259, 260, 287, - 287, 287, 287, 287, 287, 287, 313, 313, 260, 387, - 260, 260, 260, 260, 260, 260, 260, 370, 370, 390, - 288, 372, 372, 256, 343, 343, 343, 343, 303, 292, - 288, 256, 288, 288, 288, 288, 288, 288, 288, 292, - 303, 388, 400, 292, 344, 344, 344, 344, 292, 310, - - 345, 345, 345, 345, 312, 303, 386, 391, 292, 346, - 346, 346, 346, 347, 347, 347, 347, 347, 347, 347, - 348, 348, 348, 348, 348, 348, 369, 369, 369, 369, - 347, 376, 376, 376, 376, 376, 376, 378, 389, 392, - 394, 395, 396, 398, 399, 401, 428, 822, 388, 378, - 378, 378, 378, 378, 378, 378, 410, 369, 487, 428, - 369, 410, 347, 490, 379, 369, 378, 386, 391, 369, - 405, 427, 410, 442, 442, 369, 379, 379, 379, 379, - 379, 379, 405, 405, 405, 405, 405, 405, 405, 431, - 427, 443, 443, 431, 491, 389, 488, 485, 378, 405, - - 567, 399, 492, 396, 392, 394, 401, 445, 445, 445, - 445, 493, 495, 496, 446, 395, 446, 494, 398, 446, - 446, 446, 446, 446, 446, 446, 464, 464, 464, 464, - 566, 405, 490, 487, 442, 466, 466, 466, 466, 467, - 467, 467, 467, 468, 468, 468, 468, 469, 469, 469, - 469, 470, 470, 470, 470, 499, 821, 464, 534, 534, - 464, 471, 471, 471, 471, 464, 491, 466, 493, 464, - 485, 474, 488, 820, 567, 464, 622, 622, 468, 495, - 492, 496, 470, 474, 474, 474, 474, 474, 474, 494, - 477, 469, 477, 566, 819, 477, 477, 477, 477, 477, - - 477, 477, 818, 501, 625, 501, 564, 471, 501, 501, - 501, 501, 501, 501, 501, 565, 499, 535, 535, 535, - 535, 535, 535, 535, 536, 536, 536, 536, 536, 536, - 536, 543, 549, 549, 549, 549, 543, 550, 550, 550, - 550, 551, 551, 551, 551, 552, 552, 552, 552, 553, - 553, 553, 553, 568, 569, 554, 554, 554, 554, 555, - 555, 555, 555, 558, 558, 558, 558, 558, 558, 558, - 549, 559, 571, 564, 572, 632, 550, 817, 625, 631, - 565, 552, 599, 559, 559, 559, 559, 559, 559, 559, - 551, 553, 554, 575, 555, 574, 574, 574, 574, 574, - - 574, 574, 626, 634, 599, 575, 575, 575, 575, 575, - 575, 575, 600, 600, 600, 600, 600, 600, 600, 766, - 568, 674, 674, 569, 816, 568, 615, 615, 615, 615, - 676, 676, 632, 571, 616, 616, 616, 616, 631, 572, - 617, 617, 617, 617, 618, 618, 618, 618, 619, 619, - 619, 619, 620, 620, 620, 620, 680, 681, 682, 615, - 621, 621, 621, 621, 657, 657, 657, 657, 657, 657, - 657, 626, 634, 667, 667, 667, 667, 683, 616, 668, - 668, 668, 668, 669, 669, 669, 669, 619, 813, 618, - 617, 620, 766, 621, 670, 670, 670, 670, 812, 671, - - 671, 671, 671, 672, 672, 672, 672, 673, 673, 673, - 673, 695, 718, 810, 668, 873, 873, 682, 681, 680, - 695, 695, 707, 707, 707, 707, 708, 708, 708, 708, - 809, 669, 787, 790, 667, 807, 672, 790, 787, 806, - 683, 804, 670, 671, 790, 787, 673, 709, 709, 709, - 709, 710, 710, 710, 710, 711, 711, 711, 711, 712, - 712, 712, 712, 713, 713, 713, 713, 795, 707, 740, - 740, 740, 740, 718, 742, 742, 742, 742, 709, 743, - 743, 743, 743, 803, 797, 795, 710, 799, 798, 793, - 711, 797, 795, 792, 713, 744, 744, 744, 744, 745, - - 745, 745, 745, 746, 746, 746, 746, 742, 764, 764, - 764, 764, 767, 767, 767, 767, 789, 740, 814, 786, - 712, 768, 768, 768, 768, 814, 785, 784, 743, 769, - 769, 769, 769, 770, 770, 770, 770, 779, 779, 764, - 778, 778, 778, 778, 800, 746, 780, 780, 780, 780, - 745, 779, 781, 781, 781, 781, 782, 782, 782, 782, - 791, 796, 767, 783, 783, 783, 783, 801, 796, 805, - 777, 768, 770, 769, 791, 796, 776, 778, 773, 805, - 765, 791, 801, 808, 811, 844, 805, 844, 808, 801, - 800, 762, 782, 844, 761, 808, 811, 800, 760, 753, - - 751, 750, 749, 811, 830, 830, 830, 830, 830, 830, - 830, 831, 783, 862, 870, 862, 870, 748, 741, 783, - 737, 862, 870, 736, 735, 734, 831, 831, 831, 831, - 831, 831, 831, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 838, 838, 838, 838, 838, - 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - 838, 838, 838, 838, 838, 838, 838, 839, 839, 839, - 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, - 839, 839, 839, 839, 839, 839, 839, 839, 839, 840, - - 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, - 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, - 840, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 842, 842, 842, 842, 842, 842, 842, - 842, 842, 842, 842, 842, 733, 842, 842, 842, 842, - 842, 842, 843, 843, 843, 843, 843, 843, 845, 732, - 845, 845, 731, 729, 728, 845, 727, 726, 723, 845, - 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, - 846, 846, 721, 846, 846, 846, 846, 846, 846, 847, - - 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, - 847, 720, 847, 847, 847, 847, 847, 847, 848, 877, - 848, 877, 848, 848, 719, 717, 848, 877, 848, 848, - 849, 849, 716, 715, 849, 714, 849, 849, 850, 850, - 850, 850, 850, 850, 850, 850, 850, 705, 850, 850, - 850, 850, 850, 850, 850, 850, 850, 850, 702, 850, - 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, - 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, - 701, 851, 852, 852, 852, 852, 852, 852, 852, 852, - 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, - - 852, 852, 852, 853, 853, 853, 853, 853, 853, 853, - 853, 853, 853, 853, 853, 699, 853, 853, 853, 853, - 853, 853, 854, 854, 854, 854, 854, 854, 854, 854, - 854, 854, 854, 854, 697, 854, 854, 854, 854, 854, - 854, 855, 696, 855, 694, 855, 693, 855, 855, 692, - 691, 855, 690, 855, 855, 856, 856, 689, 688, 687, - 856, 856, 856, 857, 857, 857, 857, 857, 686, 857, - 857, 857, 857, 857, 857, 685, 857, 857, 857, 857, - 857, 857, 858, 858, 858, 684, 858, 679, 858, 858, - 678, 677, 858, 666, 858, 858, 859, 859, 859, 859, - - 859, 859, 859, 859, 859, 859, 859, 859, 665, 859, - 859, 859, 859, 859, 859, 860, 860, 860, 860, 860, - 860, 860, 860, 860, 860, 860, 860, 664, 860, 860, - 860, 860, 860, 860, 861, 861, 861, 861, 861, 861, - 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, - 861, 861, 861, 861, 861, 861, 863, 663, 863, 661, - 863, 863, 659, 658, 863, 655, 863, 863, 864, 654, - 864, 652, 864, 864, 650, 649, 864, 647, 864, 864, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - - 865, 865, 866, 866, 866, 866, 866, 866, 866, 866, - 866, 646, 866, 866, 866, 866, 866, 866, 866, 866, - 866, 866, 645, 866, 867, 867, 867, 867, 867, 867, - 867, 867, 867, 644, 867, 867, 867, 867, 867, 867, - 867, 867, 867, 867, 868, 868, 868, 868, 868, 868, - 868, 868, 868, 642, 868, 868, 868, 868, 868, 868, - 868, 868, 868, 868, 869, 869, 869, 869, 869, 869, - 869, 869, 869, 869, 869, 869, 640, 869, 869, 869, - 869, 869, 869, 871, 639, 871, 638, 871, 637, 871, - 871, 636, 635, 871, 633, 871, 871, 872, 872, 872, - - 872, 872, 872, 872, 872, 630, 872, 872, 872, 872, - 872, 872, 872, 872, 872, 872, 872, 872, 872, 874, - 874, 874, 629, 874, 628, 874, 874, 627, 624, 874, - 623, 874, 874, 875, 875, 875, 875, 875, 875, 875, - 875, 875, 875, 875, 875, 614, 875, 875, 875, 875, - 875, 875, 876, 876, 876, 612, 611, 606, 605, 604, - 603, 602, 601, 876, 876, 598, 597, 876, 878, 596, - 878, 595, 878, 878, 594, 593, 878, 591, 878, 878, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - - 879, 879, 880, 880, 590, 880, 880, 880, 880, 880, - 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, - 880, 880, 880, 880, 589, 588, 587, 586, 585, 584, - 583, 582, 581, 579, 578, 576, 573, 563, 561, 560, - 556, 547, 546, 545, 544, 542, 541, 540, 539, 532, - 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, - 521, 519, 517, 516, 515, 514, 513, 512, 510, 509, - 508, 507, 506, 505, 504, 503, 498, 497, 489, 486, - 484, 483, 481, 480, 476, 475, 472, 463, 460, 459, - 458, 457, 456, 455, 454, 452, 451, 449, 447, 440, - - 439, 437, 436, 435, 433, 432, 430, 425, 424, 423, - 421, 419, 418, 417, 416, 415, 414, 412, 411, 409, - 408, 404, 403, 397, 385, 384, 383, 382, 381, 380, - 375, 373, 368, 367, 366, 365, 364, 362, 361, 360, - 359, 358, 357, 356, 355, 354, 353, 352, 351, 341, - 318, 317, 315, 307, 306, 302, 301, 298, 297, 296, - 295, 291, 290, 289, 286, 285, 282, 279, 274, 266, - 264, 255, 254, 253, 252, 248, 245, 243, 242, 241, - 239, 238, 236, 235, 233, 231, 230, 228, 227, 226, - 225, 224, 210, 208, 200, 199, 198, 196, 193, 192, - - 185, 184, 183, 181, 180, 177, 175, 174, 171, 170, - 169, 157, 156, 154, 152, 151, 150, 144, 142, 138, - 137, 136, 134, 131, 130, 129, 128, 126, 104, 102, - 98, 97, 89, 88, 86, 85, 84, 83, 81, 80, - 70, 69, 67, 64, 58, 57, 43, 42, 40, 38, - 37, 36, 30, 25, 24, 21, 12, 8, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836 + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 100, 136, + 136, 136, 279, 279, 224, 136, 136, 101, 100, 733, + 100, 100, 100, 100, 100, 100, 100, 101, 107, 101, + + 101, 101, 101, 101, 101, 101, 281, 281, 107, 220, + 107, 107, 107, 107, 107, 107, 107, 143, 167, 167, + 167, 167, 227, 143, 143, 225, 732, 219, 143, 143, + 230, 324, 231, 143, 152, 152, 152, 152, 152, 152, + 161, 161, 161, 161, 161, 161, 161, 731, 100, 192, + 192, 192, 192, 192, 192, 218, 100, 108, 224, 108, + 194, 194, 194, 194, 200, 200, 200, 200, 223, 220, + 108, 203, 203, 203, 203, 203, 203, 203, 205, 205, + 205, 205, 205, 205, 108, 225, 108, 108, 324, 108, + 326, 227, 108, 231, 108, 108, 108, 108, 108, 108, + + 219, 230, 108, 108, 108, 204, 108, 204, 204, 204, + 204, 204, 204, 204, 108, 329, 275, 218, 108, 282, + 282, 108, 280, 280, 283, 283, 286, 218, 275, 322, + 223, 730, 108, 245, 248, 248, 248, 248, 248, 248, + 248, 223, 223, 245, 246, 245, 245, 245, 245, 245, + 245, 245, 323, 249, 246, 326, 246, 246, 246, 246, + 246, 246, 246, 249, 331, 249, 249, 249, 249, 249, + 249, 249, 250, 250, 250, 250, 250, 250, 257, 257, + 257, 257, 257, 257, 257, 329, 729, 269, 269, 334, + 322, 328, 258, 282, 336, 280, 327, 330, 325, 286, + + 332, 335, 258, 245, 258, 258, 258, 258, 258, 258, + 258, 245, 262, 269, 313, 313, 313, 313, 314, 314, + 314, 314, 262, 337, 338, 323, 262, 315, 315, 315, + 315, 262, 316, 316, 316, 316, 340, 340, 331, 342, + 342, 262, 317, 317, 317, 317, 317, 317, 317, 318, + 318, 318, 318, 318, 318, 325, 328, 327, 335, 317, + 402, 332, 330, 336, 334, 348, 339, 339, 339, 339, + 346, 346, 346, 346, 346, 346, 380, 348, 348, 348, + 348, 348, 348, 348, 337, 363, 395, 395, 384, 404, + 363, 317, 384, 405, 348, 380, 338, 339, 396, 396, + + 339, 363, 407, 408, 349, 339, 409, 411, 410, 339, + 398, 398, 398, 398, 412, 339, 349, 349, 349, 349, + 349, 349, 358, 413, 416, 448, 348, 448, 482, 417, + 417, 417, 417, 402, 358, 358, 358, 358, 358, 358, + 358, 419, 419, 419, 419, 471, 471, 395, 399, 476, + 399, 358, 477, 399, 399, 399, 399, 399, 399, 399, + 417, 484, 728, 417, 404, 410, 478, 479, 417, 405, + 727, 407, 417, 419, 481, 408, 726, 480, 417, 411, + 725, 412, 724, 358, 409, 416, 420, 420, 420, 420, + 482, 413, 421, 421, 421, 421, 422, 422, 422, 422, + + 423, 423, 423, 423, 424, 424, 424, 424, 427, 472, + 472, 472, 472, 472, 472, 472, 476, 477, 483, 537, + 427, 427, 427, 427, 427, 427, 484, 421, 430, 478, + 430, 423, 723, 430, 430, 430, 430, 430, 430, 430, + 422, 479, 722, 481, 480, 531, 438, 719, 438, 480, + 424, 438, 438, 438, 438, 438, 438, 438, 473, 473, + 473, 473, 473, 473, 473, 486, 486, 486, 486, 487, + 487, 487, 487, 488, 488, 488, 488, 718, 537, 483, + 489, 489, 489, 489, 490, 490, 490, 490, 491, 491, + 491, 491, 492, 492, 492, 492, 495, 495, 495, 495, + + 495, 495, 495, 486, 532, 538, 525, 540, 487, 500, + 500, 500, 500, 500, 500, 500, 489, 496, 579, 531, + 548, 548, 488, 581, 501, 491, 490, 492, 525, 496, + 496, 496, 496, 496, 496, 496, 501, 501, 501, 501, + 501, 501, 501, 526, 526, 526, 526, 526, 526, 526, + 541, 541, 541, 541, 542, 542, 542, 542, 543, 543, + 543, 543, 538, 580, 544, 544, 544, 544, 545, 545, + 545, 545, 582, 532, 590, 590, 540, 546, 546, 546, + 546, 579, 581, 541, 547, 547, 547, 547, 573, 573, + 573, 573, 573, 573, 573, 592, 592, 716, 542, 583, + + 583, 583, 583, 584, 584, 584, 584, 545, 543, 544, + 585, 585, 585, 585, 616, 715, 546, 547, 586, 586, + 586, 586, 685, 685, 580, 587, 587, 587, 587, 588, + 588, 588, 588, 713, 606, 582, 685, 712, 584, 589, + 589, 589, 589, 606, 606, 618, 618, 618, 618, 619, + 619, 619, 619, 620, 620, 620, 620, 672, 585, 710, + 583, 693, 588, 777, 777, 701, 586, 693, 709, 587, + 621, 621, 621, 621, 693, 616, 705, 704, 589, 622, + 622, 622, 622, 701, 620, 623, 623, 623, 623, 699, + 701, 618, 624, 624, 624, 624, 647, 647, 647, 647, + + 649, 649, 649, 649, 698, 621, 650, 650, 650, 650, + 651, 651, 651, 651, 622, 652, 652, 652, 652, 653, + 653, 653, 653, 624, 703, 670, 670, 670, 670, 695, + 672, 703, 692, 649, 673, 673, 673, 673, 674, 674, + 674, 674, 691, 690, 647, 683, 623, 675, 675, 675, + 675, 676, 676, 676, 676, 650, 670, 684, 684, 684, + 684, 653, 686, 686, 686, 686, 652, 687, 687, 687, + 687, 688, 688, 688, 688, 689, 689, 689, 689, 697, + 706, 696, 702, 707, 673, 696, 682, 711, 674, 702, + 676, 675, 696, 697, 684, 720, 702, 711, 707, 717, + + 697, 714, 720, 679, 711, 707, 714, 688, 750, 671, + 750, 717, 767, 714, 767, 774, 750, 774, 717, 668, + 767, 667, 666, 774, 689, 659, 706, 737, 657, 656, + 655, 689, 648, 706, 736, 736, 736, 736, 736, 736, + 736, 646, 737, 737, 737, 737, 737, 737, 737, 743, + 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, + 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, + 743, 744, 744, 744, 744, 744, 744, 744, 744, 744, + 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, + 744, 744, 744, 745, 745, 745, 745, 745, 745, 745, + + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 746, 746, 746, 746, 746, + 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, + 746, 746, 746, 746, 746, 746, 746, 747, 747, 747, + 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, + 747, 747, 747, 747, 747, 747, 747, 747, 747, 748, + 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, + 748, 644, 748, 748, 748, 748, 748, 748, 749, 749, + 749, 749, 749, 749, 751, 643, 751, 751, 642, 641, + 640, 751, 639, 638, 636, 751, 752, 752, 752, 752, + + 752, 752, 752, 752, 752, 752, 752, 752, 635, 752, + 752, 752, 752, 752, 752, 753, 753, 753, 753, 753, + 753, 753, 753, 753, 753, 753, 753, 634, 753, 753, + 753, 753, 753, 753, 754, 781, 754, 781, 754, 633, + 754, 754, 630, 781, 754, 628, 754, 754, 755, 755, + 627, 626, 755, 625, 755, 755, 756, 756, 756, 756, + 756, 756, 756, 756, 756, 617, 756, 756, 756, 756, + 756, 756, 756, 756, 756, 756, 615, 756, 757, 757, + 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, + 757, 757, 757, 757, 757, 757, 757, 757, 614, 757, + + 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, + 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, + 758, 759, 759, 759, 759, 759, 759, 759, 759, 759, + 759, 759, 759, 613, 759, 759, 759, 759, 759, 759, + 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, + 760, 760, 612, 760, 760, 760, 760, 760, 760, 761, + 761, 610, 608, 607, 761, 761, 761, 762, 762, 762, + 762, 762, 605, 762, 762, 762, 762, 762, 762, 604, + 762, 762, 762, 762, 762, 762, 763, 763, 763, 603, + 763, 602, 763, 763, 601, 600, 763, 599, 763, 763, + + 764, 764, 764, 764, 764, 764, 764, 764, 764, 764, + 764, 764, 598, 764, 764, 764, 764, 764, 764, 765, + 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, + 765, 597, 765, 765, 765, 765, 765, 765, 766, 766, + 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, + 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, + 768, 596, 768, 595, 768, 768, 594, 593, 768, 578, + 768, 768, 769, 769, 769, 769, 769, 769, 769, 769, + 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, + 769, 769, 769, 769, 770, 770, 770, 770, 770, 770, + + 770, 770, 770, 577, 770, 770, 770, 770, 770, 770, + 770, 770, 770, 770, 575, 770, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 574, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 772, 772, 772, 772, + 772, 772, 772, 772, 772, 571, 772, 772, 772, 772, + 772, 772, 772, 772, 772, 772, 773, 773, 773, 773, + 773, 773, 773, 773, 773, 773, 773, 773, 570, 773, + 773, 773, 773, 773, 773, 775, 568, 775, 566, 775, + 565, 775, 775, 563, 562, 775, 561, 775, 775, 776, + 776, 776, 776, 776, 776, 776, 776, 560, 776, 776, + + 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, + 776, 778, 778, 778, 558, 778, 556, 778, 778, 555, + 554, 778, 553, 778, 778, 779, 779, 779, 779, 779, + 779, 779, 779, 779, 779, 779, 779, 552, 779, 779, + 779, 779, 779, 779, 780, 780, 780, 551, 550, 549, + 539, 536, 535, 534, 533, 780, 780, 530, 529, 780, + 782, 528, 782, 527, 782, 782, 524, 523, 782, 522, + 782, 782, 783, 783, 783, 783, 783, 783, 783, 783, + 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, + 783, 783, 783, 783, 784, 784, 521, 784, 784, 784, + + 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, + 784, 784, 784, 784, 784, 784, 520, 519, 517, 516, + 515, 514, 513, 512, 511, 510, 509, 508, 507, 505, + 504, 502, 498, 497, 493, 485, 475, 469, 468, 467, + 466, 465, 464, 463, 462, 461, 460, 459, 458, 456, + 454, 453, 452, 451, 450, 449, 447, 446, 445, 444, + 443, 442, 441, 440, 436, 434, 433, 429, 428, 425, + 415, 414, 406, 403, 401, 400, 393, 392, 390, 389, + 388, 386, 385, 383, 378, 377, 376, 374, 372, 371, + 370, 369, 368, 367, 365, 364, 362, 361, 357, 356, + + 355, 354, 353, 352, 351, 350, 345, 343, 333, 321, + 311, 288, 287, 285, 277, 276, 272, 271, 268, 267, + 266, 265, 261, 260, 259, 256, 255, 253, 244, 243, + 242, 241, 237, 234, 232, 229, 226, 221, 214, 213, + 211, 198, 196, 188, 187, 186, 184, 181, 180, 173, + 172, 171, 169, 168, 165, 163, 162, 159, 158, 157, + 145, 144, 142, 140, 139, 138, 132, 130, 126, 125, + 124, 122, 119, 118, 117, 116, 114, 103, 98, 97, + 89, 72, 70, 69, 67, 64, 58, 57, 43, 42, + 40, 38, 37, 36, 30, 25, 24, 21, 8, 742, + + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742 + } ; static yy_state_type yy_last_accepting_state; @@ -1681,13 +1619,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 837 ) + if ( yy_current_state >= 743 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 2459 ); + while ( yy_base[yy_current_state] != 2300 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -2417,20 +2355,25 @@ YY_RULE_SETUP #line 539 "yaccParser/hslexer.flex" { hsnewid(yytext, yyleng); RETURN(TYVAR_TEMPLATE_ID); } YY_BREAK + +/* These SHOULDNAE work in "Code" (sigh) */ + case 119: YY_RULE_SETUP -#line 541 "yaccParser/hslexer.flex" +#line 544 "yaccParser/hslexer.flex" { + if (! (nonstandardFlag || in_interface)) { + char errbuf[ERR_BUF_SIZE]; + sprintf(errbuf, "Non-standard identifier (trailing `#'): %s\n", yytext); + hsperror(errbuf); + } hsnewid(yytext, yyleng); RETURN(_isconstr(yytext) ? CONID : VARID); } YY_BREAK - -/* This SHOULDNAE work in "Code" (sigh) */ - case 120: YY_RULE_SETUP -#line 548 "yaccParser/hslexer.flex" +#line 553 "yaccParser/hslexer.flex" { if (! (nonstandardFlag || in_interface)) { char errbuf[ERR_BUF_SIZE]; @@ -2444,7 +2387,7 @@ YY_RULE_SETUP YY_BREAK case 121: YY_RULE_SETUP -#line 558 "yaccParser/hslexer.flex" +#line 563 "yaccParser/hslexer.flex" { hsnewid(yytext, yyleng); RETURN(_isconstr(yytext) ? CONID : VARID); @@ -2452,7 +2395,7 @@ YY_RULE_SETUP YY_BREAK case 122: YY_RULE_SETUP -#line 562 "yaccParser/hslexer.flex" +#line 567 "yaccParser/hslexer.flex" { hsnewid(yytext, yyleng); RETURN(_isconstr(yytext) ? CONSYM : VARSYM); @@ -2469,7 +2412,7 @@ YY_RULE_SETUP case 123: YY_RULE_SETUP -#line 577 "yaccParser/hslexer.flex" +#line 582 "yaccParser/hslexer.flex" { hsnewid(yytext + 1, yyleng - 2); RETURN(_isconstr(yytext+1) ? CONSYM : VARSYM); @@ -2490,7 +2433,7 @@ YY_RULE_SETUP case 124: YY_RULE_SETUP -#line 596 "yaccParser/hslexer.flex" +#line 601 "yaccParser/hslexer.flex" { yylval.uhstring = installHstring(1, yytext+1); RETURN(CHARPRIM); @@ -2498,7 +2441,7 @@ YY_RULE_SETUP YY_BREAK case 125: YY_RULE_SETUP -#line 600 "yaccParser/hslexer.flex" +#line 605 "yaccParser/hslexer.flex" { yylval.uhstring = installHstring(1, yytext+1); RETURN(CHAR); @@ -2506,7 +2449,7 @@ YY_RULE_SETUP YY_BREAK case 126: YY_RULE_SETUP -#line 604 "yaccParser/hslexer.flex" +#line 609 "yaccParser/hslexer.flex" {char errbuf[ERR_BUF_SIZE]; sprintf(errbuf, "'' is not a valid character (or string) literal\n"); hsperror(errbuf); @@ -2514,7 +2457,7 @@ YY_RULE_SETUP YY_BREAK case 127: YY_RULE_SETUP -#line 608 "yaccParser/hslexer.flex" +#line 613 "yaccParser/hslexer.flex" { hsmlcolno = hspcolno; cleartext(); @@ -2524,7 +2467,7 @@ YY_RULE_SETUP YY_BREAK case 128: YY_RULE_SETUP -#line 614 "yaccParser/hslexer.flex" +#line 619 "yaccParser/hslexer.flex" { unsigned length; char *text; @@ -2553,7 +2496,7 @@ YY_RULE_SETUP YY_BREAK case 129: YY_RULE_SETUP -#line 639 "yaccParser/hslexer.flex" +#line 644 "yaccParser/hslexer.flex" { unsigned length; char *text; @@ -2576,7 +2519,7 @@ YY_RULE_SETUP YY_BREAK case 130: YY_RULE_SETUP -#line 658 "yaccParser/hslexer.flex" +#line 663 "yaccParser/hslexer.flex" { addtext(yytext, yyleng); } YY_BREAK @@ -2595,7 +2538,7 @@ YY_RULE_SETUP case 131: YY_RULE_SETUP -#line 676 "yaccParser/hslexer.flex" +#line 681 "yaccParser/hslexer.flex" { yylval.uhstring = installHstring(yyleng-3, yytext+1); /* the -3 accounts for the " on front, "# on the end */ @@ -2604,7 +2547,7 @@ YY_RULE_SETUP YY_BREAK case 132: YY_RULE_SETUP -#line 681 "yaccParser/hslexer.flex" +#line 686 "yaccParser/hslexer.flex" { yylval.uhstring = installHstring(yyleng-2, yytext+1); RETURN(STRING); @@ -2612,7 +2555,7 @@ YY_RULE_SETUP YY_BREAK case 133: YY_RULE_SETUP -#line 685 "yaccParser/hslexer.flex" +#line 690 "yaccParser/hslexer.flex" { hsmlcolno = hspcolno; cleartext(); @@ -2622,7 +2565,7 @@ YY_RULE_SETUP YY_BREAK case 134: YY_RULE_SETUP -#line 691 "yaccParser/hslexer.flex" +#line 696 "yaccParser/hslexer.flex" { unsigned length; char *text; @@ -2644,7 +2587,7 @@ YY_RULE_SETUP YY_BREAK case 135: YY_RULE_SETUP -#line 709 "yaccParser/hslexer.flex" +#line 714 "yaccParser/hslexer.flex" { unsigned length; char *text; @@ -2660,7 +2603,7 @@ YY_RULE_SETUP YY_BREAK case 136: YY_RULE_SETUP -#line 721 "yaccParser/hslexer.flex" +#line 726 "yaccParser/hslexer.flex" { addtext(yytext, yyleng); } YY_BREAK @@ -2680,226 +2623,226 @@ YY_RULE_SETUP case 137: YY_RULE_SETUP -#line 739 "yaccParser/hslexer.flex" +#line 744 "yaccParser/hslexer.flex" { PUSH_STATE(CharEsc); } YY_BREAK case 138: YY_RULE_SETUP -#line 740 "yaccParser/hslexer.flex" +#line 745 "yaccParser/hslexer.flex" /* Ignore */ ; YY_BREAK case 139: YY_RULE_SETUP -#line 741 "yaccParser/hslexer.flex" +#line 746 "yaccParser/hslexer.flex" { PUSH_STATE(StringEsc); noGap = TRUE; } YY_BREAK case 140: YY_RULE_SETUP -#line 743 "yaccParser/hslexer.flex" +#line 748 "yaccParser/hslexer.flex" { addchar(*yytext); POP_STATE; } YY_BREAK case 141: YY_RULE_SETUP -#line 744 "yaccParser/hslexer.flex" +#line 749 "yaccParser/hslexer.flex" { if (noGap) { addchar(*yytext); } POP_STATE; } YY_BREAK case 142: YY_RULE_SETUP -#line 746 "yaccParser/hslexer.flex" +#line 751 "yaccParser/hslexer.flex" { addchar(*yytext); POP_STATE; } YY_BREAK case 143: YY_RULE_SETUP -#line 747 "yaccParser/hslexer.flex" +#line 752 "yaccParser/hslexer.flex" { addchar('\000'); POP_STATE; } YY_BREAK case 144: YY_RULE_SETUP -#line 748 "yaccParser/hslexer.flex" +#line 753 "yaccParser/hslexer.flex" { addchar('\001'); POP_STATE; } YY_BREAK case 145: YY_RULE_SETUP -#line 749 "yaccParser/hslexer.flex" +#line 754 "yaccParser/hslexer.flex" { addchar('\002'); POP_STATE; } YY_BREAK case 146: YY_RULE_SETUP -#line 750 "yaccParser/hslexer.flex" +#line 755 "yaccParser/hslexer.flex" { addchar('\003'); POP_STATE; } YY_BREAK case 147: YY_RULE_SETUP -#line 751 "yaccParser/hslexer.flex" +#line 756 "yaccParser/hslexer.flex" { addchar('\004'); POP_STATE; } YY_BREAK case 148: YY_RULE_SETUP -#line 752 "yaccParser/hslexer.flex" +#line 757 "yaccParser/hslexer.flex" { addchar('\005'); POP_STATE; } YY_BREAK case 149: YY_RULE_SETUP -#line 753 "yaccParser/hslexer.flex" +#line 758 "yaccParser/hslexer.flex" { addchar('\006'); POP_STATE; } YY_BREAK case 150: -#line 755 "yaccParser/hslexer.flex" +#line 760 "yaccParser/hslexer.flex" case 151: YY_RULE_SETUP -#line 755 "yaccParser/hslexer.flex" +#line 760 "yaccParser/hslexer.flex" { addchar('\007'); POP_STATE; } YY_BREAK case 152: -#line 757 "yaccParser/hslexer.flex" +#line 762 "yaccParser/hslexer.flex" case 153: YY_RULE_SETUP -#line 757 "yaccParser/hslexer.flex" +#line 762 "yaccParser/hslexer.flex" { addchar('\010'); POP_STATE; } YY_BREAK case 154: -#line 759 "yaccParser/hslexer.flex" +#line 764 "yaccParser/hslexer.flex" case 155: YY_RULE_SETUP -#line 759 "yaccParser/hslexer.flex" +#line 764 "yaccParser/hslexer.flex" { addchar('\011'); POP_STATE; } YY_BREAK case 156: -#line 761 "yaccParser/hslexer.flex" +#line 766 "yaccParser/hslexer.flex" case 157: YY_RULE_SETUP -#line 761 "yaccParser/hslexer.flex" +#line 766 "yaccParser/hslexer.flex" { addchar('\012'); POP_STATE; } YY_BREAK case 158: -#line 763 "yaccParser/hslexer.flex" +#line 768 "yaccParser/hslexer.flex" case 159: YY_RULE_SETUP -#line 763 "yaccParser/hslexer.flex" +#line 768 "yaccParser/hslexer.flex" { addchar('\013'); POP_STATE; } YY_BREAK case 160: -#line 765 "yaccParser/hslexer.flex" +#line 770 "yaccParser/hslexer.flex" case 161: YY_RULE_SETUP -#line 765 "yaccParser/hslexer.flex" +#line 770 "yaccParser/hslexer.flex" { addchar('\014'); POP_STATE; } YY_BREAK case 162: -#line 767 "yaccParser/hslexer.flex" +#line 772 "yaccParser/hslexer.flex" case 163: YY_RULE_SETUP -#line 767 "yaccParser/hslexer.flex" +#line 772 "yaccParser/hslexer.flex" { addchar('\015'); POP_STATE; } YY_BREAK case 164: YY_RULE_SETUP -#line 768 "yaccParser/hslexer.flex" +#line 773 "yaccParser/hslexer.flex" { addchar('\016'); POP_STATE; } YY_BREAK case 165: YY_RULE_SETUP -#line 769 "yaccParser/hslexer.flex" +#line 774 "yaccParser/hslexer.flex" { addchar('\017'); POP_STATE; } YY_BREAK case 166: YY_RULE_SETUP -#line 770 "yaccParser/hslexer.flex" +#line 775 "yaccParser/hslexer.flex" { addchar('\020'); POP_STATE; } YY_BREAK case 167: YY_RULE_SETUP -#line 771 "yaccParser/hslexer.flex" +#line 776 "yaccParser/hslexer.flex" { addchar('\021'); POP_STATE; } YY_BREAK case 168: YY_RULE_SETUP -#line 772 "yaccParser/hslexer.flex" +#line 777 "yaccParser/hslexer.flex" { addchar('\022'); POP_STATE; } YY_BREAK case 169: YY_RULE_SETUP -#line 773 "yaccParser/hslexer.flex" +#line 778 "yaccParser/hslexer.flex" { addchar('\023'); POP_STATE; } YY_BREAK case 170: YY_RULE_SETUP -#line 774 "yaccParser/hslexer.flex" +#line 779 "yaccParser/hslexer.flex" { addchar('\024'); POP_STATE; } YY_BREAK case 171: YY_RULE_SETUP -#line 775 "yaccParser/hslexer.flex" +#line 780 "yaccParser/hslexer.flex" { addchar('\025'); POP_STATE; } YY_BREAK case 172: YY_RULE_SETUP -#line 776 "yaccParser/hslexer.flex" +#line 781 "yaccParser/hslexer.flex" { addchar('\026'); POP_STATE; } YY_BREAK case 173: YY_RULE_SETUP -#line 777 "yaccParser/hslexer.flex" +#line 782 "yaccParser/hslexer.flex" { addchar('\027'); POP_STATE; } YY_BREAK case 174: YY_RULE_SETUP -#line 778 "yaccParser/hslexer.flex" +#line 783 "yaccParser/hslexer.flex" { addchar('\030'); POP_STATE; } YY_BREAK case 175: YY_RULE_SETUP -#line 779 "yaccParser/hslexer.flex" +#line 784 "yaccParser/hslexer.flex" { addchar('\031'); POP_STATE; } YY_BREAK case 176: YY_RULE_SETUP -#line 780 "yaccParser/hslexer.flex" +#line 785 "yaccParser/hslexer.flex" { addchar('\032'); POP_STATE; } YY_BREAK case 177: YY_RULE_SETUP -#line 781 "yaccParser/hslexer.flex" +#line 786 "yaccParser/hslexer.flex" { addchar('\033'); POP_STATE; } YY_BREAK case 178: YY_RULE_SETUP -#line 782 "yaccParser/hslexer.flex" +#line 787 "yaccParser/hslexer.flex" { addchar('\034'); POP_STATE; } YY_BREAK case 179: YY_RULE_SETUP -#line 783 "yaccParser/hslexer.flex" +#line 788 "yaccParser/hslexer.flex" { addchar('\035'); POP_STATE; } YY_BREAK case 180: YY_RULE_SETUP -#line 784 "yaccParser/hslexer.flex" +#line 789 "yaccParser/hslexer.flex" { addchar('\036'); POP_STATE; } YY_BREAK case 181: YY_RULE_SETUP -#line 785 "yaccParser/hslexer.flex" +#line 790 "yaccParser/hslexer.flex" { addchar('\037'); POP_STATE; } YY_BREAK case 182: YY_RULE_SETUP -#line 786 "yaccParser/hslexer.flex" +#line 791 "yaccParser/hslexer.flex" { addchar('\040'); POP_STATE; } YY_BREAK case 183: YY_RULE_SETUP -#line 787 "yaccParser/hslexer.flex" +#line 792 "yaccParser/hslexer.flex" { addchar('\177'); POP_STATE; } YY_BREAK case 184: YY_RULE_SETUP -#line 788 "yaccParser/hslexer.flex" +#line 793 "yaccParser/hslexer.flex" { char c = yytext[1] - '@'; addchar(c); POP_STATE; } YY_BREAK case 185: YY_RULE_SETUP -#line 789 "yaccParser/hslexer.flex" +#line 794 "yaccParser/hslexer.flex" { int i = strtol(yytext, NULL, 10); if (i < NCHARS) { @@ -2915,7 +2858,7 @@ YY_RULE_SETUP YY_BREAK case 186: YY_RULE_SETUP -#line 801 "yaccParser/hslexer.flex" +#line 806 "yaccParser/hslexer.flex" { int i = strtol(yytext + 1, NULL, 8); if (i < NCHARS) { @@ -2931,7 +2874,7 @@ YY_RULE_SETUP YY_BREAK case 187: YY_RULE_SETUP -#line 813 "yaccParser/hslexer.flex" +#line 818 "yaccParser/hslexer.flex" { int i = strtol(yytext + 1, NULL, 16); if (i < NCHARS) { @@ -2957,10 +2900,10 @@ YY_RULE_SETUP */ case 188: -#line 839 "yaccParser/hslexer.flex" +#line 844 "yaccParser/hslexer.flex" case 189: YY_RULE_SETUP -#line 839 "yaccParser/hslexer.flex" +#line 844 "yaccParser/hslexer.flex" { noGap = FALSE; } YY_BREAK @@ -2972,33 +2915,33 @@ YY_RULE_SETUP case 190: YY_RULE_SETUP -#line 849 "yaccParser/hslexer.flex" +#line 854 "yaccParser/hslexer.flex" { noGap = FALSE; nested_comments = 1; PUSH_STATE(Comment); } YY_BREAK case 191: -#line 854 "yaccParser/hslexer.flex" +#line 859 "yaccParser/hslexer.flex" case 192: -#line 855 "yaccParser/hslexer.flex" +#line 860 "yaccParser/hslexer.flex" case 193: YY_RULE_SETUP -#line 855 "yaccParser/hslexer.flex" +#line 860 "yaccParser/hslexer.flex" ; YY_BREAK case 194: YY_RULE_SETUP -#line 856 "yaccParser/hslexer.flex" +#line 861 "yaccParser/hslexer.flex" { nested_comments++; } YY_BREAK case 195: YY_RULE_SETUP -#line 857 "yaccParser/hslexer.flex" +#line 862 "yaccParser/hslexer.flex" { if (--nested_comments == 0) POP_STATE; } YY_BREAK case 196: YY_RULE_SETUP -#line 858 "yaccParser/hslexer.flex" +#line 863 "yaccParser/hslexer.flex" ; YY_BREAK @@ -3010,7 +2953,7 @@ YY_RULE_SETUP case 197: YY_RULE_SETUP -#line 868 "yaccParser/hslexer.flex" +#line 873 "yaccParser/hslexer.flex" { fprintf(stderr, "\"%s\", line %d, column %d: Illegal character: `", input_filename, hsplineno, hspcolno + 1); @@ -3021,7 +2964,7 @@ YY_RULE_SETUP YY_BREAK case 198: YY_RULE_SETUP -#line 875 "yaccParser/hslexer.flex" +#line 880 "yaccParser/hslexer.flex" { fprintf(stderr, "\"%s\", line %d, column %d: Illegal character: `", input_filename, hsplineno, hspcolno + 1); @@ -3032,7 +2975,7 @@ YY_RULE_SETUP YY_BREAK case 199: YY_RULE_SETUP -#line 882 "yaccParser/hslexer.flex" +#line 887 "yaccParser/hslexer.flex" { fprintf(stderr, "\"%s\", line %d, column %d: Illegal character escape: `\\", input_filename, hsplineno, hspcolno + 1); @@ -3043,7 +2986,7 @@ YY_RULE_SETUP YY_BREAK case 200: YY_RULE_SETUP -#line 889 "yaccParser/hslexer.flex" +#line 894 "yaccParser/hslexer.flex" { if (nonstandardFlag) { addtext(yytext, yyleng); } else { @@ -3057,7 +3000,7 @@ YY_RULE_SETUP YY_BREAK case 201: YY_RULE_SETUP -#line 899 "yaccParser/hslexer.flex" +#line 904 "yaccParser/hslexer.flex" { if (noGap) { fprintf(stderr, "\"%s\", line %d, column %d: Illegal string escape: `\\", @@ -3088,14 +3031,14 @@ YY_RULE_SETUP case YY_STATE_EOF(Char): case YY_STATE_EOF(CharEsc): -#line 928 "yaccParser/hslexer.flex" +#line 933 "yaccParser/hslexer.flex" { hsplineno = hslineno; hspcolno = hscolno; hsperror("unterminated character literal"); } YY_BREAK case YY_STATE_EOF(Comment): -#line 932 "yaccParser/hslexer.flex" +#line 937 "yaccParser/hslexer.flex" { hsplineno = hslineno; hspcolno = hscolno; hsperror("unterminated comment"); @@ -3103,21 +3046,21 @@ case YY_STATE_EOF(Comment): YY_BREAK case YY_STATE_EOF(String): case YY_STATE_EOF(StringEsc): -#line 936 "yaccParser/hslexer.flex" +#line 941 "yaccParser/hslexer.flex" { hsplineno = hslineno; hspcolno = hscolno; hsperror("unterminated string literal"); } YY_BREAK case YY_STATE_EOF(GhcPragma): -#line 940 "yaccParser/hslexer.flex" +#line 945 "yaccParser/hslexer.flex" { hsplineno = hslineno; hspcolno = hscolno; hsperror("unterminated interface pragma"); } YY_BREAK case YY_STATE_EOF(UserPragma): -#line 944 "yaccParser/hslexer.flex" +#line 949 "yaccParser/hslexer.flex" { hsplineno = hslineno; hspcolno = hscolno; hsperror("unterminated user-specified pragma"); @@ -3125,12 +3068,12 @@ case YY_STATE_EOF(UserPragma): YY_BREAK case YY_STATE_EOF(Code): case YY_STATE_EOF(GlaExt): -#line 948 "yaccParser/hslexer.flex" +#line 953 "yaccParser/hslexer.flex" { hsplineno = hslineno; hspcolno = hscolno; return(EOF); } YY_BREAK case 202: YY_RULE_SETUP -#line 950 "yaccParser/hslexer.flex" +#line 955 "yaccParser/hslexer.flex" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK case YY_STATE_EOF(INITIAL): @@ -3422,7 +3365,7 @@ static yy_state_type yy_get_previous_state() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 837 ) + if ( yy_current_state >= 743 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -3457,11 +3400,11 @@ yy_state_type yy_current_state; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 837 ) + if ( yy_current_state >= 743 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 836); + yy_is_jam = (yy_current_state == 742); return yy_is_jam ? 0 : yy_current_state; } @@ -3994,7 +3937,7 @@ int main() return 0; } #endif -#line 950 "yaccParser/hslexer.flex" +#line 955 "yaccParser/hslexer.flex" /********************************************************************** diff --git a/ghc/compiler/yaccParser/hslexer.flex b/ghc/compiler/yaccParser/hslexer.flex index 0e3fb70..3c2ab36 100644 --- a/ghc/compiler/yaccParser/hslexer.flex +++ b/ghc/compiler/yaccParser/hslexer.flex @@ -538,13 +538,18 @@ NL [\n\r] "_TUP_"{D}+ { hsnewid(yytext, yyleng); RETURN(CONID); } [a-z]{i}*"$"[a-z]{i}* { hsnewid(yytext, yyleng); RETURN(TYVAR_TEMPLATE_ID); } -{Id}"#" { +%{ +/* These SHOULDNAE work in "Code" (sigh) */ +%} +{Id}"#" { + if (! (nonstandardFlag || in_interface)) { + char errbuf[ERR_BUF_SIZE]; + sprintf(errbuf, "Non-standard identifier (trailing `#'): %s\n", yytext); + hsperror(errbuf); + } hsnewid(yytext, yyleng); RETURN(_isconstr(yytext) ? CONID : VARID); } -%{ -/* This SHOULDNAE work in "Code" (sigh) */ -%} _+{Id} { if (! (nonstandardFlag || in_interface)) { char errbuf[ERR_BUF_SIZE]; diff --git a/ghc/runtime/gum/HLComms.lc b/ghc/runtime/gum/HLComms.lc index e9e86bc..4599972 100644 --- a/ghc/runtime/gum/HLComms.lc +++ b/ghc/runtime/gum/HLComms.lc @@ -981,9 +981,9 @@ PACKET packet; { GLOBAL_TASK_ID sender = Sender_Task(packet); OPCODE opcode = Opcode(packet); - +#if 0 fprintf(stderr,"STG_Exception: Received %s (%x), sender %x\n",GetOpName(opcode),opcode,sender); - +#endif switch (opcode) { case PP_FINISH: diff --git a/ghc/runtime/gum/LLComms.lc b/ghc/runtime/gum/LLComms.lc index abddf75..200ca34 100644 --- a/ghc/runtime/gum/LLComms.lc +++ b/ghc/runtime/gum/LLComms.lc @@ -276,13 +276,16 @@ GLOBAL_TASK_ID who; rtsBool match; do { +#if 0 fprintf(stderr,"WaitForPEOp: op = %x, who = %x\n",op,who); +#endif while((p = pvm_recv(ANY_TASK,ANY_OPCODE)) < 0) pvm_perror("WaitForPEOp: Waiting for PEOp"); pvm_bufinfo( p, &nbytes, &opcode, &sender_id ); +#if 0 fprintf(stderr,"WaitForPEOp: received: opcode = %x, sender_id = %x\n",opcode,sender_id); - +#endif match = (op == ANY_OPCODE || op == opcode) && (who == ANY_TASK || who == sender_id); if(match) @@ -333,8 +336,11 @@ GLOBAL_TASK_ID *psender_id; @PEStartUp@ does the low-level comms specific startup stuff for a PE. It initialises the comms system, joins the appropriate groups, -synchronises with the other PEs. Finally it receives from Control the -array of Global Task Ids. +synchronises with the other PEs. Receives and records in a global +variable the task-id of SysMan. If this is the main thread (discovered +in main.lc), identifies itself to SysMan. Finally it receives +from SysMan an array of the Global Task Ids of each PE, which is +returned as the value of the function. \begin{code} GLOBAL_TASK_ID * @@ -349,13 +355,13 @@ unsigned nPEs; mytid = _my_gtid; /* Initialise PVM and get task id into global var.*/ - fprintf(stderr,"PEStartup, Task id = [%x], No. PEs = %d \n", mytid, nPEs); +/* fprintf(stderr,"PEStartup, Task id = [%x], No. PEs = %d \n", mytid, nPEs); */ checkComms(pvm_joingroup(PEGROUP), "PEStartup"); - fprintf(stderr,"PEStartup, Joined PEGROUP\n"); +/* fprintf(stderr,"PEStartup, Joined PEGROUP\n"); */ checkComms(pvm_joingroup(PECTLGROUP), "PEStartup"); - fprintf(stderr,"PEStartup, Joined PECTLGROUP\n"); +/* fprintf(stderr,"PEStartup, Joined PECTLGROUP\n"); */ checkComms(pvm_barrier(PECTLGROUP, nPEs+1), "PEStartup"); - fprintf(stderr,"PEStartup, Passed PECTLGROUP barrier\n"); +/* fprintf(stderr,"PEStartup, Passed PECTLGROUP barrier\n"); */ addr = WaitForPEOp(PP_SYSMAN_TID, ANY_GLOBAL_TASK); SysManTask = Sender_Task(addr); @@ -365,11 +371,12 @@ unsigned nPEs; } addr = WaitForPEOp(PP_PETIDS, ANY_GLOBAL_TASK); GetArgs(buffer, nPEs); - +#if 0 for (i = 0; i < nPEs; ++i) { PEs[i] = (GLOBAL_TASK_ID) buffer[i]; fprintf(stderr,"PEs[%d] = %x \n", i, PEs[i]); } +#endif free(buffer); return PEs; } diff --git a/ghc/runtime/gum/SysMan.lc b/ghc/runtime/gum/SysMan.lc index d6214d2..50a6cd2 100644 --- a/ghc/runtime/gum/SysMan.lc +++ b/ghc/runtime/gum/SysMan.lc @@ -7,14 +7,16 @@ % %**************************************************************************** -The Sysman task controls initiation, termination, global GC -synchronisation and statistics gathering of a parallel Haskell program -running under GUM. Based on K. Hammond's SysMan.lc in Graph for -PVM. SysMan is unusual in that it is not part of the executable -produced by ghc: it is a free-standing program that spawns PVM tasks -(logical PEs) to evaluate the program. +The Sysman task currently controls initiation, termination, of a +parallel Haskell program running under GUM. In the future it may +control global GC synchronisation and statistics gathering. Based on +K. Hammond's SysMan.lc in Graph for PVM. SysMan is unusual in that it +is not part of the executable produced by ghc: it is a free-standing +program that spawns PVM tasks (logical PEs) to evaluate the +program. After initialisation it runs in parallel with the PE tasks, +awaiting messages. -OK children, buckle down for some serious weirdness, it works like this. +OK children, buckle down for some serious weirdness, it works like this ... \begin{itemize} \item The argument vector (argv) for SysMan has one the following 2 shapes: @@ -68,7 +70,7 @@ The pvm-executable run by each PE-task, is initialised as follows. \item Receives and records the task-id of SysMan, for future use. \item If the PE is the main thread it sends its task-id to SysMan. \item Receives and records the array of task-ids of the other PEs. -\item Begins execution +\item Begins execution. \end{itemize} \end{itemize} @@ -90,7 +92,7 @@ rtsBool IAmMainThread; \begin{code} -static GLOBAL_TASK_ID gtids[MAX_PES], StatsTask = 0; +static GLOBAL_TASK_ID gtids[MAX_PES]; static long PEbuffer[MAX_PES]; int nPEs = 0; static GLOBAL_TASK_ID sysman_id, sender_id, mainThread_id; @@ -168,7 +170,7 @@ main(int argc, char **argv) nPEs--; /* Initialise the PE task arguments from Sysman's arguments */ pargv = argv + 2; -#if 1 +#if 0 fprintf(stderr, "Spawning %d PEs(%s) ...\n", nPEs, petask); fprintf(stderr, " args: "); for (i = 0; pargv[i]; ++i) @@ -182,7 +184,7 @@ main(int argc, char **argv) */ for (i = 0; i < nPEs; i++) PEbuffer[i+1] = (long) gtids[i]; -#if 1 +#if 0 fprintf(stderr, "Spawned /* PWT */\n"); #endif } @@ -195,7 +197,7 @@ main(int argc, char **argv) nPEs++; /* Record that the number of PEs is increasing */ if (cc = fork()) { checkerr(cc); /* Parent continues as SysMan */ -#if 1 +#if 0 fprintf(stderr, "SysMan Task is [t%x]\n", sysman_id); #endif /* @@ -208,12 +210,12 @@ main(int argc, char **argv) garbage collector manager. */ checkerr(pvm_joingroup(PECTLGROUP)); -#if 1 +#if 0 fprintf(stderr, "Joined PECTLGROUP /* PWT */\n"); #endif /* Wait for all the PEs to arrive */ checkerr(pvm_barrier(PECTLGROUP, nPEs + 1)); -#if 1 +#if 0 fprintf(stderr, "PECTLGROUP barrier passed /* HWL */\n"); #endif /* Broadcast SysMan's ID, so Main Thread PE knows it */ @@ -224,14 +226,14 @@ main(int argc, char **argv) addr = WaitForPEOp(PP_MAIN_TASK, ANY_GLOBAL_TASK); pvm_bufinfo(addr, &nbytes, &opcode, &mainThread_id ); PEbuffer[0] = mainThread_id; -#if 1 +#if 0 fprintf(stderr,"SysMan received Main Task = %x\n",mainThread_id); #endif /* Now that we have them all, broadcast Global Task Ids of all PEs */ pvm_initsend(PvmDataDefault); PutArgs(PEbuffer, nPEs); pvm_bcast(PEGROUP, PP_PETIDS); -#if 1 +#if 0 fprintf(stderr, "Sysman successfully initialized!\n"); #endif /* Process incoming messages */ @@ -260,12 +262,10 @@ main(int argc, char **argv) break; case PP_FINISH: - fprintf(stderr, "Finish from %x\n", sender_id); if (!Finishing) { - long buf = (long) StatsTask; + fprintf(stderr, "\nFinish from %x\n", sender_id); Finishing = rtsTrue; pvm_initsend(PvmDataDefault); - pvm_pklong(&buf, 1, 1); pvm_bcast(PEGROUP, PP_FINISH); } else { ++PEsTerminated; diff --git a/ghc/runtime/main/main.lc b/ghc/runtime/main/main.lc index 3e97731..8d6d8dc 100644 --- a/ghc/runtime/main/main.lc +++ b/ghc/runtime/main/main.lc @@ -122,10 +122,10 @@ Manager's requirements. \begin{code} #ifdef PAR - if (*argv[0] == '-') { /* Look to see whether we're the Main Thread */ + if (*argv[0] == '-') { /* Look to see whether we're the Main Thread */ IAmMainThread = rtsTrue; - argv++; argc--; - fprintf(stderr, "I am Main Thread\n"); + argv++; argc--; /* Strip off flag argument */ +/* fprintf(stderr, "I am Main Thread\n"); */ } /* * Grab the number of PEs out of the argument vector, and