/* A Bison parser, made from yaccParser/hsparser.y with Bison version GNU Bison version 1.24 */ #define YYBISON 1 /* Identify Bison output. */ #define VARID 258 #define CONID 259 #define VARSYM 260 #define CONSYM 261 #define MINUS 262 #define INTEGER 263 #define FLOAT 264 #define CHAR 265 #define STRING 266 #define CHARPRIM 267 #define STRINGPRIM 268 #define INTPRIM 269 #define FLOATPRIM 270 #define DOUBLEPRIM 271 #define CLITLIT 272 #define OCURLY 273 #define CCURLY 274 #define VCCURLY 275 #define SEMI 276 #define OBRACK 277 #define CBRACK 278 #define OPAREN 279 #define CPAREN 280 #define COMMA 281 #define BQUOTE 282 #define RARROW 283 #define VBAR 284 #define EQUAL 285 #define DARROW 286 #define DOTDOT 287 #define DCOLON 288 #define LARROW 289 #define WILDCARD 290 #define AT 291 #define LAZY 292 #define LAMBDA 293 #define LET 294 #define IN 295 #define WHERE 296 #define CASE 297 #define OF 298 #define TYPE 299 #define DATA 300 #define CLASS 301 #define INSTANCE 302 #define DEFAULT 303 #define INFIX 304 #define INFIXL 305 #define INFIXR 306 #define MODULE 307 #define IMPORT 308 #define INTERFACE 309 #define HIDING 310 #define CCALL 311 #define CCALL_GC 312 #define CASM 313 #define CASM_GC 314 #define SCC 315 #define IF 316 #define THEN 317 #define ELSE 318 #define RENAMING 319 #define DERIVING 320 #define TO 321 #define LEOF 322 #define GHC_PRAGMA 323 #define END_PRAGMA 324 #define NO_PRAGMA 325 #define NOINFO_PRAGMA 326 #define ABSTRACT_PRAGMA 327 #define SPECIALISE_PRAGMA 328 #define MODNAME_PRAGMA 329 #define ARITY_PRAGMA 330 #define UPDATE_PRAGMA 331 #define STRICTNESS_PRAGMA 332 #define KIND_PRAGMA 333 #define UNFOLDING_PRAGMA 334 #define MAGIC_UNFOLDING_PRAGMA 335 #define DEFOREST_PRAGMA 336 #define SPECIALISE_UPRAGMA 337 #define INLINE_UPRAGMA 338 #define MAGIC_UNFOLDING_UPRAGMA 339 #define ABSTRACT_UPRAGMA 340 #define DEFOREST_UPRAGMA 341 #define END_UPRAGMA 342 #define TYLAMBDA 343 #define COCON 344 #define COPRIM 345 #define COAPP 346 #define COTYAPP 347 #define FORALL 348 #define TYVAR_TEMPLATE_ID 349 #define CO_ALG_ALTS 350 #define CO_PRIM_ALTS 351 #define CO_NO_DEFAULT 352 #define CO_LETREC 353 #define CO_SDSEL_ID 354 #define CO_METH_ID 355 #define CO_DEFM_ID 356 #define CO_DFUN_ID 357 #define CO_CONSTM_ID 358 #define CO_SPEC_ID 359 #define CO_WRKR_ID 360 #define CO_ORIG_NM 361 #define UNFOLD_ALWAYS 362 #define UNFOLD_IF_ARGS 363 #define NOREP_INTEGER 364 #define NOREP_RATIONAL 365 #define NOREP_STRING 366 #define CO_PRELUDE_DICTS_CC 367 #define CO_ALL_DICTS_CC 368 #define CO_USER_CC 369 #define CO_AUTO_CC 370 #define CO_DICT_CC 371 #define CO_CAF_CC 372 #define CO_DUPD_CC 373 #define PLUS 374 #line 22 "yaccParser/hsparser.y" #ifdef HSP_DEBUG # define YYDEBUG 1 #endif #include #include #include #include "hspincl.h" #include "constants.h" #include "utils.h" /********************************************************************** * * * * * Imported Variables and Functions * * * * * **********************************************************************/ static BOOLEAN expect_ccurly = FALSE; /* Used to signal that a CCURLY could be inserted here */ extern BOOLEAN nonstandardFlag; extern BOOLEAN etags; extern VOID find_module_on_imports_dirlist PROTO((char *, BOOLEAN, char *)); extern char *input_filename; static char *the_module_name; static char iface_name[MODNAME_SIZE]; static char interface_filename[FILENAME_SIZE]; static list module_exports; /* Exported entities */ static list prelude_core_import, prelude_imports; /* Entities imported from the Prelude */ extern list all; /* All valid deriving classes */ extern tree niltree; extern list Lnil; extern tree root; /* For FN, PREVPATT and SAMEFN macros */ extern tree fns[]; extern short samefn[]; extern tree prevpatt[]; extern short icontexts; /* Line Numbers */ extern int hsplineno, hspcolno; extern int startlineno; /********************************************************************** * * * * * Fixity and Precedence Declarations * * * * * **********************************************************************/ /* OLD 95/08: list fixlist; */ static int Fixity = 0, Precedence = 0; struct infix; char *ineg PROTO((char *)); static BOOLEAN hidden = FALSE; /* Set when HIDING used */ extern BOOLEAN inpat; /* True when parsing a pattern */ extern BOOLEAN implicitPrelude; /* True when we should read the Prelude if not given */ extern BOOLEAN haskell1_3Flag; /* True if we are attempting (proto)Haskell 1.3 */ extern int thisIfacePragmaVersion; #line 99 "yaccParser/hsparser.y" typedef union { tree utree; list ulist; ttype uttype; atype uatype; binding ubinding; pbinding upbinding; finfot ufinfo; entidt uentid; id uid; literal uliteral; int uint; float ufloat; char *ustring; hstring uhstring; hpragma uhpragma; coresyn ucoresyn; } YYSTYPE; #ifndef YYLTYPE typedef struct yyltype { int timestamp; int first_line; int first_column; int last_line; int last_column; char *text; } yyltype; #define YYLTYPE yyltype #endif #include #ifndef __cplusplus #ifndef __STDC__ #define const #endif #endif #define YYFINAL 1105 #define YYFLAG -32768 #define YYNTBASE 120 #define YYTRANSLATE(x) ((unsigned)(x) <= 374 ? yytranslate[x] : 343) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 }; #if YYDEBUG != 0 static const short yyprhs[] = { 0, 0, 4, 5, 12, 13, 16, 22, 28, 32, 36, 40, 44, 45, 49, 51, 55, 57, 59, 64, 69, 74, 78, 81, 85, 90, 93, 94, 96, 98, 102, 104, 106, 111, 116, 121, 125, 130, 134, 135, 138, 139, 141, 145, 149, 153, 154, 158, 159, 164, 165, 170, 176, 177, 180, 181, 185, 186, 188, 195, 197, 200, 202, 205, 207, 209, 211, 214, 218, 222, 223, 225, 228, 232, 234, 240, 242, 246, 248, 251, 253, 257, 263, 265, 269, 271, 273, 275, 279, 285, 289, 294, 299, 304, 311, 316, 320, 326, 333, 342, 349, 355, 357, 359, 363, 367, 368, 371, 377, 378, 381, 386, 388, 392, 394, 398, 402, 405, 410, 417, 424, 431, 433, 435, 437, 439, 443, 447, 451, 457, 464, 470, 473, 477, 481, 483, 485, 494, 503, 512, 521, 523, 524, 527, 533, 536, 540, 542, 546, 548, 550, 552, 555, 557, 561, 564, 568, 570, 574, 576, 578, 582, 584, 586, 587, 590, 591, 594, 595, 598, 600, 604, 605, 610, 613, 618, 621, 625, 627, 631, 635, 639, 640, 643, 645, 649, 655, 663, 664, 670, 676, 680, 686, 690, 691, 694, 696, 700, 701, 706, 707, 712, 713, 718, 719, 723, 724, 728, 729, 733, 735, 739, 741, 745, 747, 749, 751, 753, 755, 757, 762, 769, 774, 783, 790, 796, 800, 801, 806, 811, 818, 823, 824, 829, 834, 836, 841, 847, 850, 854, 860, 862, 867, 873, 876, 880, 886, 889, 895, 897, 899, 903, 910, 915, 921, 927, 933, 938, 943, 947, 951, 953, 954, 955, 957, 959, 963, 965, 969, 971, 975, 977, 979, 981, 983, 985, 986, 993, 998, 1004, 1010, 1014, 1022, 1028, 1037, 1044, 1051, 1056, 1063, 1068, 1071, 1073, 1077, 1079, 1083, 1088, 1090, 1093, 1096, 1098, 1100, 1104, 1107, 1109, 1115, 1117, 1119, 1122, 1126, 1130, 1137, 1139, 1141, 1144, 1146, 1150, 1153, 1158, 1160, 1164, 1168, 1172, 1175, 1177, 1179, 1183, 1187, 1189, 1191, 1195, 1196, 1198, 1202, 1208, 1213, 1218, 1220, 1224, 1226, 1228, 1232, 1234, 1238, 1239, 1243, 1246, 1248, 1251, 1255, 1260, 1265, 1270, 1271, 1274, 1277, 1279, 1285, 1289, 1291, 1293, 1297, 1300, 1302, 1303, 1304, 1311, 1318, 1325, 1332, 1339, 1346, 1350, 1353, 1357, 1360, 1364, 1367, 1371, 1374, 1378, 1380, 1383, 1385, 1388, 1390, 1392, 1394, 1396, 1400, 1405, 1410, 1412, 1414, 1416, 1418, 1422, 1424, 1427, 1429, 1433, 1435, 1439, 1442, 1444, 1447, 1449, 1452, 1454, 1457, 1459, 1461, 1463, 1467, 1469, 1471, 1474, 1480, 1484, 1490, 1494, 1497, 1500, 1502, 1504, 1508, 1510, 1512, 1515, 1521, 1525, 1531, 1535, 1538, 1541, 1547, 1550, 1552, 1556, 1559, 1563, 1565, 1569, 1577, 1583, 1589, 1591, 1595, 1596, 1597, 1602, 1605, 1606, 1608, 1612, 1613, 1617, 1618, 1621, 1625, 1630, 1634, 1635, 1637, 1641, 1643, 1645, 1649, 1651, 1653, 1656, 1659, 1661, 1664, 1666, 1668, 1670, 1674, 1676, 1678, 1681, 1687, 1691, 1697, 1701, 1704, 1707, 1709, 1711, 1713, 1715, 1717, 1719, 1721, 1723, 1725, 1727, 1731, 1734, 1738, 1741, 1743, 1745, 1747, 1749, 1751, 1753, 1755, 1757, 1759, 1761, 1763, 1765, 1767, 1769, 1771, 1773, 1777, 1779, 1781, 1785, 1787, 1791, 1793, 1795, 1797, 1799, 1801, 1803, 1807, 1809, 1813, 1815, 1819, 1821, 1825, 1827, 1829, 1831, 1835, 1837, 1840, 1842, 1844, 1846, 1848, 1851, 1853, 1854, 1856, 1857, 1860, 1862 }; static const short yyrhs[] = { 184, 186, 121, 0, 0, 313, 335, 125, 122, 41, 124, 0, 0, 123, 124, 0, 336, 188, 203, 213, 339, 0, 337, 188, 203, 213, 340, 0, 337, 189, 340, 0, 336, 189, 339, 0, 337, 188, 340, 0, 336, 188, 339, 0, 0, 24, 126, 25, 0, 127, 0, 126, 26, 127, 0, 325, 0, 334, 0, 334, 24, 32, 25, 0, 334, 24, 256, 25, 0, 334, 24, 254, 25, 0, 334, 24, 25, 0, 334, 32, 0, 24, 130, 25, 0, 55, 24, 130, 25, 0, 24, 25, 0, 0, 128, 0, 131, 0, 130, 26, 131, 0, 325, 0, 334, 0, 334, 24, 32, 25, 0, 334, 24, 256, 25, 0, 334, 24, 254, 25, 0, 334, 24, 25, 0, 68, 246, 133, 69, 0, 68, 133, 69, 0, 0, 73, 134, 0, 0, 135, 0, 134, 26, 135, 0, 22, 154, 23, 0, 68, 72, 69, 0, 0, 68, 150, 69, 0, 0, 68, 142, 142, 69, 0, 0, 68, 140, 142, 69, 0, 68, 140, 142, 156, 69, 0, 0, 74, 335, 0, 0, 68, 142, 69, 0, 0, 71, 0, 143, 144, 145, 146, 148, 151, 0, 70, 0, 75, 8, 0, 70, 0, 76, 8, 0, 70, 0, 81, 0, 70, 0, 77, 89, 0, 77, 11, 147, 0, 18, 142, 19, 0, 0, 70, 0, 80, 326, 0, 79, 149, 158, 0, 107, 0, 108, 8, 8, 4, 8, 0, 142, 0, 150, 26, 142, 0, 70, 0, 73, 152, 0, 153, 0, 152, 26, 153, 0, 22, 154, 23, 8, 147, 0, 155, 0, 154, 26, 155, 0, 70, 0, 239, 0, 157, 0, 156, 26, 157, 0, 325, 30, 18, 142, 19, 0, 325, 30, 142, 0, 38, 172, 28, 158, 0, 88, 177, 28, 158, 0, 89, 327, 179, 174, 0, 89, 106, 335, 327, 179, 174, 0, 90, 171, 179, 174, 0, 91, 158, 174, 0, 92, 158, 18, 181, 19, 0, 42, 158, 43, 18, 159, 19, 0, 39, 18, 173, 30, 158, 19, 40, 158, 0, 98, 18, 165, 19, 40, 158, 0, 60, 18, 167, 19, 158, 0, 305, 0, 170, 0, 95, 160, 164, 0, 96, 162, 164, 0, 0, 160, 161, 0, 170, 172, 28, 158, 21, 0, 0, 162, 163, 0, 305, 28, 158, 21, 0, 97, 0, 173, 28, 158, 0, 166, 0, 165, 21, 166, 0, 173, 30, 158, 0, 112, 169, 0, 113, 11, 11, 169, 0, 114, 11, 11, 11, 169, 168, 0, 115, 170, 11, 11, 169, 168, 0, 116, 170, 11, 11, 169, 168, 0, 70, 0, 117, 0, 70, 0, 118, 0, 99, 334, 334, 0, 100, 334, 325, 0, 101, 334, 325, 0, 102, 334, 24, 181, 25, 0, 103, 334, 325, 24, 181, 25, 0, 104, 170, 22, 182, 23, 0, 105, 170, 0, 106, 335, 325, 0, 106, 335, 327, 0, 325, 0, 327, 0, 24, 56, 329, 18, 179, 181, 19, 25, 0, 24, 57, 329, 18, 179, 181, 19, 25, 0, 24, 58, 305, 18, 179, 181, 19, 25, 0, 24, 59, 305, 18, 179, 181, 19, 25, 0, 3, 0, 0, 172, 173, 0, 24, 3, 33, 181, 25, 0, 22, 23, 0, 22, 175, 23, 0, 176, 0, 175, 26, 176, 0, 305, 0, 170, 0, 3, 0, 177, 3, 0, 94, 0, 178, 26, 94, 0, 22, 23, 0, 22, 180, 23, 0, 181, 0, 180, 26, 181, 0, 239, 0, 183, 0, 182, 26, 183, 0, 70, 0, 181, 0, 0, 185, 193, 0, 0, 187, 193, 0, 0, 189, 21, 0, 190, 0, 189, 21, 190, 0, 0, 53, 335, 191, 192, 0, 193, 129, 0, 193, 129, 64, 194, 0, 200, 67, 0, 24, 195, 25, 0, 196, 0, 195, 26, 196, 0, 325, 66, 325, 0, 327, 66, 327, 0, 0, 198, 21, 0, 199, 0, 198, 21, 199, 0, 306, 335, 24, 130, 25, 0, 306, 335, 24, 130, 25, 64, 194, 0, 0, 54, 335, 201, 41, 202, 0, 336, 197, 203, 230, 339, 0, 336, 198, 339, 0, 337, 197, 203, 230, 340, 0, 337, 198, 340, 0, 0, 204, 21, 0, 205, 0, 204, 21, 205, 0, 0, 50, 8, 206, 212, 0, 0, 51, 8, 207, 212, 0, 0, 49, 8, 208, 212, 0, 0, 50, 209, 212, 0, 0, 51, 210, 212, 0, 0, 49, 211, 212, 0, 318, 0, 212, 26, 318, 0, 214, 0, 213, 21, 214, 0, 215, 0, 216, 0, 217, 0, 219, 0, 223, 0, 226, 0, 308, 245, 30, 239, 0, 307, 250, 31, 245, 30, 246, 0, 307, 245, 30, 246, 0, 307, 250, 31, 245, 30, 246, 65, 248, 0, 307, 245, 30, 246, 65, 248, 0, 311, 250, 31, 237, 218, 0, 311, 237, 218, 0, 0, 41, 336, 225, 339, 0, 41, 337, 225, 340, 0, 309, 250, 31, 333, 221, 220, 0, 309, 333, 222, 220, 0, 0, 41, 336, 252, 339, 0, 41, 337, 252, 340, 0, 334, 0, 24, 334, 331, 25, 0, 24, 332, 26, 330, 25, 0, 24, 25, 0, 22, 332, 23, 0, 24, 332, 28, 332, 25, 0, 334, 0, 24, 334, 241, 25, 0, 24, 239, 26, 238, 25, 0, 24, 25, 0, 22, 239, 23, 0, 24, 240, 28, 239, 25, 0, 310, 224, 0, 24, 239, 26, 238, 25, 0, 242, 0, 226, 0, 225, 21, 226, 0, 254, 33, 239, 31, 239, 138, 0, 254, 33, 239, 138, 0, 82, 326, 33, 228, 87, 0, 82, 47, 4, 222, 87, 0, 82, 45, 334, 241, 87, 0, 83, 326, 227, 87, 0, 84, 326, 326, 87, 0, 86, 326, 87, 0, 85, 334, 87, 0, 257, 0, 0, 0, 4, 0, 229, 0, 228, 26, 229, 0, 239, 0, 239, 30, 326, 0, 231, 0, 230, 21, 231, 0, 233, 0, 234, 0, 235, 0, 236, 0, 232, 0, 0, 254, 33, 239, 31, 239, 141, 0, 254, 33, 239, 141, 0, 308, 245, 30, 239, 136, 0, 307, 250, 31, 245, 132, 0, 307, 245, 132, 0, 307, 250, 31, 245, 30, 246, 132, 0, 307, 245, 30, 246, 132, 0, 307, 250, 31, 245, 30, 246, 65, 248, 0, 307, 245, 30, 246, 65, 248, 0, 311, 250, 31, 237, 137, 218, 0, 311, 237, 137, 218, 0, 309, 250, 31, 333, 222, 139, 0, 309, 333, 222, 139, 0, 334, 332, 0, 239, 0, 238, 26, 239, 0, 240, 0, 240, 28, 239, 0, 93, 178, 31, 239, 0, 243, 0, 334, 241, 0, 241, 243, 0, 243, 0, 244, 0, 240, 28, 239, 0, 334, 241, 0, 244, 0, 24, 239, 26, 238, 25, 0, 332, 0, 334, 0, 24, 25, 0, 24, 239, 25, 0, 22, 239, 23, 0, 18, 18, 4, 239, 19, 19, 0, 94, 0, 334, 0, 334, 331, 0, 247, 0, 246, 29, 247, 0, 334, 241, 0, 24, 6, 25, 241, 0, 334, 0, 24, 6, 25, 0, 240, 321, 240, 0, 24, 249, 25, 0, 24, 25, 0, 333, 0, 333, 0, 249, 26, 333, 0, 24, 251, 25, 0, 237, 0, 237, 0, 251, 26, 237, 0, 0, 253, 0, 252, 21, 253, 0, 82, 326, 33, 228, 87, 0, 83, 326, 227, 87, 0, 84, 326, 326, 87, 0, 257, 0, 326, 26, 255, 0, 326, 0, 325, 0, 255, 26, 325, 0, 327, 0, 256, 26, 327, 0, 0, 274, 258, 259, 0, 260, 262, 0, 261, 0, 30, 265, 0, 263, 30, 265, 0, 263, 30, 265, 261, 0, 41, 336, 225, 339, 0, 41, 337, 225, 340, 0, 0, 29, 266, 0, 303, 264, 0, 303, 0, 266, 33, 239, 31, 239, 0, 266, 33, 239, 0, 266, 0, 267, 0, 266, 318, 266, 0, 7, 268, 0, 268, 0, 0, 0, 38, 269, 264, 270, 28, 265, 0, 39, 336, 225, 339, 40, 265, 0, 39, 337, 225, 340, 40, 265, 0, 61, 265, 62, 265, 63, 265, 0, 42, 265, 43, 336, 293, 339, 0, 42, 265, 43, 337, 293, 340, 0, 56, 329, 272, 0, 56, 329, 0, 57, 329, 272, 0, 57, 329, 0, 58, 17, 272, 0, 58, 17, 0, 59, 17, 272, 0, 59, 17, 0, 60, 11, 265, 0, 271, 0, 271, 273, 0, 273, 0, 272, 273, 0, 273, 0, 325, 0, 327, 0, 305, 0, 24, 265, 25, 0, 24, 266, 318, 25, 0, 24, 317, 266, 25, 0, 282, 0, 284, 0, 286, 0, 287, 0, 325, 36, 273, 0, 35, 0, 37, 273, 0, 278, 0, 274, 318, 275, 0, 276, 0, 275, 318, 275, 0, 7, 277, 0, 277, 0, 277, 280, 0, 280, 0, 312, 277, 0, 279, 0, 279, 280, 0, 281, 0, 327, 0, 325, 0, 325, 36, 303, 0, 305, 0, 35, 0, 24, 25, 0, 24, 325, 119, 8, 25, 0, 24, 275, 25, 0, 24, 275, 26, 299, 25, 0, 22, 299, 23, 0, 22, 23, 0, 37, 303, 0, 328, 0, 326, 0, 326, 36, 303, 0, 305, 0, 35, 0, 314, 25, 0, 314, 325, 119, 8, 25, 0, 314, 275, 25, 0, 314, 275, 26, 299, 25, 0, 315, 299, 23, 0, 315, 23, 0, 316, 303, 0, 24, 265, 26, 283, 25, 0, 24, 25, 0, 265, 0, 265, 26, 283, 0, 22, 23, 0, 22, 285, 23, 0, 265, 0, 265, 26, 285, 0, 22, 265, 26, 265, 32, 298, 23, 0, 22, 265, 32, 298, 23, 0, 22, 265, 29, 288, 23, 0, 289, 0, 288, 26, 289, 0, 0, 0, 290, 265, 291, 292, 0, 34, 265, 0, 0, 294, 0, 293, 21, 294, 0, 0, 300, 295, 296, 0, 0, 297, 262, 0, 28, 265, 262, 0, 263, 28, 265, 297, 0, 263, 28, 265, 0, 0, 265, 0, 300, 26, 299, 0, 300, 0, 301, 0, 300, 321, 301, 0, 304, 0, 302, 0, 7, 8, 0, 7, 9, 0, 327, 0, 302, 303, 0, 327, 0, 304, 0, 325, 0, 325, 36, 303, 0, 305, 0, 35, 0, 24, 25, 0, 24, 325, 119, 8, 25, 0, 24, 300, 25, 0, 24, 300, 26, 299, 25, 0, 22, 299, 23, 0, 22, 23, 0, 37, 303, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, 0, 17, 0, 17, 78, 4, 0, 109, 8, 0, 110, 8, 8, 0, 111, 11, 0, 53, 0, 45, 0, 44, 0, 47, 0, 48, 0, 46, 0, 7, 0, 52, 0, 24, 0, 22, 0, 37, 0, 321, 0, 320, 0, 321, 0, 319, 0, 322, 0, 27, 3, 27, 0, 5, 0, 324, 0, 27, 3, 27, 0, 6, 0, 27, 4, 27, 0, 5, 0, 324, 0, 323, 0, 7, 0, 119, 0, 3, 0, 24, 322, 25, 0, 3, 0, 314, 322, 25, 0, 334, 0, 24, 6, 25, 0, 334, 0, 314, 6, 25, 0, 3, 0, 4, 0, 332, 0, 330, 26, 332, 0, 332, 0, 331, 332, 0, 3, 0, 334, 0, 4, 0, 4, 0, 338, 18, 0, 338, 0, 0, 19, 0, 0, 341, 342, 0, 20, 0, 1, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, 329, 332, 334, 335, 337, 340, 344, 349, 353, 359, 363, 370, 371, 374, 376, 379, 381, 382, 383, 387, 391, 395, 402, 403, 404, 407, 408, 411, 413, 416, 418, 419, 420, 424, 428, 436, 439, 441, 444, 447, 450, 452, 456, 460, 462, 465, 467, 470, 473, 477, 481, 484, 488, 491, 495, 498, 502, 505, 509, 511, 514, 516, 519, 521, 524, 526, 529, 533, 535, 537, 539, 541, 545, 548, 552, 554, 557, 559, 562, 564, 567, 572, 574, 577, 579, 582, 584, 587, 598, 608, 611, 613, 615, 617, 619, 621, 623, 625, 627, 629, 631, 632, 635, 638, 642, 644, 647, 652, 654, 657, 661, 663, 666, 668, 671, 675, 677, 678, 680, 682, 685, 686, 688, 689, 691, 693, 694, 695, 697, 699, 701, 702, 703, 704, 705, 708, 711, 713, 715, 717, 720, 722, 725, 728, 730, 733, 735, 738, 740, 743, 745, 748, 750, 753, 755, 758, 760, 763, 783, 785, 788, 790, 795, 810, 817, 831, 838, 839, 842, 843, 846, 868, 874, 878, 882, 890, 893, 895, 898, 899, 902, 903, 906, 907, 910, 912, 917, 922, 935, 939, 943, 947, 953, 954, 958, 959, 962, 965, 965, 968, 968, 971, 971, 974, 974, 977, 977, 980, 982, 983, 986, 987, 1006, 1007, 1008, 1009, 1010, 1011, 1014, 1018, 1020, 1022, 1024, 1028, 1029, 1032, 1033, 1034, 1037, 1038, 1041, 1042, 1043, 1046, 1047, 1048, 1049, 1050, 1051, 1054, 1055, 1056, 1057, 1058, 1059, 1062, 1065, 1066, 1073, 1074, 1103, 1108, 1121, 1127, 1133, 1139, 1145, 1151, 1157, 1165, 1166, 1169, 1171, 1173, 1175, 1178, 1180, 1182, 1183, 1186, 1187, 1188, 1189, 1190, 1191, 1195, 1197, 1201, 1205, 1207, 1209, 1211, 1213, 1215, 1219, 1221, 1225, 1227, 1234, 1238, 1239, 1242, 1243, 1245, 1248, 1249, 1252, 1253, 1257, 1258, 1259, 1262, 1263, 1266, 1267, 1268, 1269, 1270, 1272, 1274, 1278, 1279, 1282, 1283, 1287, 1288, 1289, 1290, 1291, 1294, 1295, 1296, 1299, 1300, 1303, 1304, 1307, 1308, 1311, 1312, 1313, 1326, 1333, 1339, 1345, 1349, 1350, 1353, 1354, 1357, 1358, 1362, 1388, 1402, 1405, 1406, 1409, 1410, 1413, 1415, 1416, 1419, 1423, 1424, 1434, 1435, 1436, 1445, 1446, 1456, 1457, 1464, 1472, 1475, 1481, 1482, 1485, 1488, 1489, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1502, 1513, 1518, 1519, 1522, 1523, 1533, 1534, 1535, 1536, 1537, 1538, 1541, 1542, 1543, 1544, 1547, 1548, 1549, 1562, 1563, 1577, 1578, 1598, 1599, 1603, 1604, 1607, 1608, 1612, 1613, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1626, 1627, 1628, 1629, 1630, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1643, 1644, 1645, 1646, 1647, 1651, 1657, 1666, 1667, 1677, 1678, 1681, 1683, 1698, 1699, 1702, 1705, 1706, 1709, 1709, 1710, 1730, 1731, 1734, 1735, 1738, 1741, 1744, 1747, 1748, 1751, 1752, 1755, 1756, 1759, 1760, 1764, 1765, 1768, 1769, 1770, 1771, 1774, 1775, 1778, 1779, 1782, 1783, 1784, 1785, 1786, 1787, 1791, 1792, 1793, 1794, 1795, 1798, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1818, 1821, 1831, 1841, 1852, 1855, 1865, 1868, 1878, 1881, 1884, 1890, 1891, 1894, 1895, 1898, 1899, 1903, 1904, 1905, 1908, 1909, 1912, 1913, 1914, 1917, 1920, 1923, 1924, 1927, 1928, 1932, 1933, 1936, 1937, 1940, 1941, 1944, 1945, 1948, 1949, 1952, 1955, 1961, 1964, 1968, 1970, 1973, 1976, 1984, 1984, 1987, 1993 }; static const char * const yytname[] = { "$","error","$undefined.","VARID", "CONID","VARSYM","CONSYM","MINUS","INTEGER","FLOAT","CHAR","STRING","CHARPRIM", "STRINGPRIM","INTPRIM","FLOATPRIM","DOUBLEPRIM","CLITLIT","OCURLY","CCURLY", "VCCURLY","SEMI","OBRACK","CBRACK","OPAREN","CPAREN","COMMA","BQUOTE","RARROW", "VBAR","EQUAL","DARROW","DOTDOT","DCOLON","LARROW","WILDCARD","AT","LAZY","LAMBDA", "LET","IN","WHERE","CASE","OF","TYPE","DATA","CLASS","INSTANCE","DEFAULT","INFIX", "INFIXL","INFIXR","MODULE","IMPORT","INTERFACE","HIDING","CCALL","CCALL_GC", "CASM","CASM_GC","SCC","IF","THEN","ELSE","RENAMING","DERIVING","TO","LEOF", "GHC_PRAGMA","END_PRAGMA","NO_PRAGMA","NOINFO_PRAGMA","ABSTRACT_PRAGMA","SPECIALISE_PRAGMA", "MODNAME_PRAGMA","ARITY_PRAGMA","UPDATE_PRAGMA","STRICTNESS_PRAGMA","KIND_PRAGMA", "UNFOLDING_PRAGMA","MAGIC_UNFOLDING_PRAGMA","DEFOREST_PRAGMA","SPECIALISE_UPRAGMA", "INLINE_UPRAGMA","MAGIC_UNFOLDING_UPRAGMA","ABSTRACT_UPRAGMA","DEFOREST_UPRAGMA", "END_UPRAGMA","TYLAMBDA","COCON","COPRIM","COAPP","COTYAPP","FORALL","TYVAR_TEMPLATE_ID", "CO_ALG_ALTS","CO_PRIM_ALTS","CO_NO_DEFAULT","CO_LETREC","CO_SDSEL_ID","CO_METH_ID", "CO_DEFM_ID","CO_DFUN_ID","CO_CONSTM_ID","CO_SPEC_ID","CO_WRKR_ID","CO_ORIG_NM", "UNFOLD_ALWAYS","UNFOLD_IF_ARGS","NOREP_INTEGER","NOREP_RATIONAL","NOREP_STRING", "CO_PRELUDE_DICTS_CC","CO_ALL_DICTS_CC","CO_USER_CC","CO_AUTO_CC","CO_DICT_CC", "CO_CAF_CC","CO_DUPD_CC","PLUS","pmodule","module","@1","@2","body","maybeexports", "export_list","export","impspec","maybeimpspec","import_list","import","idata_pragma", "idata_pragma_specs","idata_pragma_specslist","idata_pragma_spectypes","itype_pragma", "iclas_pragma","iclasop_pragma","iinst_pragma","modname_pragma","ival_pragma", "gen_pragma","arity_pragma","update_pragma","deforest_pragma","strictness_pragma", "worker_info","unfolding_pragma","unfolding_guidance","gen_pragma_list","type_pragma_pairs_maybe", "type_pragma_pairs","type_pragma_pair","type_maybes","type_maybe","name_pragma_pairs", "name_pragma_pair","core_expr","core_case_alts","core_alg_alts","core_alg_alt", "core_prim_alts","core_prim_alt","core_default","corec_binds","corec_bind","co_scc", "co_caf","co_dupd","core_id","co_primop","core_binders","core_binder","core_atoms", "core_atom_list","core_atom","core_tyvars","core_tv_templates","core_types", "core_type_list","core_type","core_type_maybes","core_type_maybe","readpreludecore", "@3","readprelude","@4","maybeimpdecls","impdecls","impdecl","@5","impdecl_rest", "readinterface","renamings","renaming_list","renaming","maybeiimports","iimports", "iimport","interface","@6","ibody","maybefixes","fixes","fix","@7","@8","@9", "@10","@11","@12","ops","topdecls","topdecl","typed","datad","classd","cbody", "instd","rinst","restrict_inst","general_inst","defaultd","dtypes","decls","decl", "howto_inline_maybe","types_and_maybe_ids","type_and_maybe_id","itopdecls","itopdecl", "ivarsd","ityped","idatad","iclassd","iinstd","class","types","type","btype", "atypes","ttype","atype","ntatype","simple","constrs","constr","tyclses","tycls_list", "context","context_list","instdefs","instdef","vars","varsrest","cons","valdef", "@13","valrhs","valrhs1","gdrhs","maybe_where","gd","lampats","exp","oexp","dexp", "kexp","@14","@15","fexp","cexp","aexp","opatk","opat","dpat","fpat","dpatk", "fpatk","aapat","aapatk","tuple","texps","list","list_exps","sequence","comprehension", "quals","qual","@16","@17","qualrest","alts","alt","@18","altrest","gdpat","upto", "pats","pat","bpat","conpat","apat","apatc","lit_constant","importkey","datakey", "typekey","instkey","defaultkey","classkey","minuskey","modulekey","oparenkey", "obrackkey","lazykey","op1","op","varop","varop1","conop","varsym","minus","plus", "var","vark","con","conk","ccallid","tyvar_list","tyvars","tyvar","tycls","tycon", "modid","ocurly","vocurly","layout","ccurly","vccurly","@19","vccurly1","" }; #endif static const short yyr1[] = { 0, 120, 122, 121, 123, 121, 124, 124, 124, 124, 124, 124, 125, 125, 126, 126, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 129, 129, 130, 130, 131, 131, 131, 131, 131, 131, 132, 132, 132, 133, 133, 134, 134, 135, 136, 136, 137, 137, 138, 138, 139, 139, 139, 140, 140, 141, 141, 142, 142, 143, 143, 144, 144, 145, 145, 146, 146, 146, 147, 147, 148, 148, 148, 149, 149, 150, 150, 151, 151, 152, 152, 153, 154, 154, 155, 155, 156, 156, 157, 157, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 159, 159, 160, 160, 161, 162, 162, 163, 164, 164, 165, 165, 166, 167, 167, 167, 167, 167, 168, 168, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 171, 171, 172, 172, 173, 174, 174, 175, 175, 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, 182, 182, 183, 183, 185, 184, 187, 186, 188, 188, 189, 189, 191, 190, 192, 192, 193, 194, 195, 195, 196, 196, 197, 197, 198, 198, 199, 199, 201, 200, 202, 202, 202, 202, 203, 203, 204, 204, 206, 205, 207, 205, 208, 205, 209, 205, 210, 205, 211, 205, 212, 212, 213, 213, 214, 214, 214, 214, 214, 214, 215, 216, 216, 216, 216, 217, 217, 218, 218, 218, 219, 219, 220, 220, 220, 221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 223, 224, 224, 225, 225, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 227, 227, 228, 228, 229, 229, 230, 230, 231, 231, 231, 231, 231, 231, 232, 232, 233, 234, 234, 234, 234, 234, 234, 235, 235, 236, 236, 237, 238, 238, 239, 239, 239, 240, 240, 241, 241, 242, 242, 242, 243, 243, 244, 244, 244, 244, 244, 244, 244, 245, 245, 246, 246, 247, 247, 247, 247, 247, 248, 248, 248, 249, 249, 250, 250, 251, 251, 252, 252, 252, 253, 253, 253, 253, 254, 254, 255, 255, 256, 256, 258, 257, 259, 260, 260, 261, 261, 262, 262, 262, 263, 264, 264, 265, 265, 265, 266, 266, 267, 267, 269, 270, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 271, 271, 272, 272, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 274, 274, 275, 275, 276, 276, 277, 277, 278, 278, 279, 279, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 282, 282, 283, 283, 284, 284, 285, 285, 286, 286, 287, 288, 288, 290, 291, 289, 292, 292, 293, 293, 295, 294, 294, 296, 296, 297, 297, 298, 298, 299, 299, 300, 300, 301, 301, 301, 301, 302, 302, 303, 303, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 317, 318, 318, 319, 319, 320, 320, 320, 321, 321, 322, 322, 322, 323, 324, 325, 325, 326, 326, 327, 327, 328, 328, 329, 329, 330, 330, 331, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 340, 342, 342 }; static const short yyr2[] = { 0, 3, 0, 6, 0, 2, 5, 5, 3, 3, 3, 3, 0, 3, 1, 3, 1, 1, 4, 4, 4, 3, 2, 3, 4, 2, 0, 1, 1, 3, 1, 1, 4, 4, 4, 3, 4, 3, 0, 2, 0, 1, 3, 3, 3, 0, 3, 0, 4, 0, 4, 5, 0, 2, 0, 3, 0, 1, 6, 1, 2, 1, 2, 1, 1, 1, 2, 3, 3, 0, 1, 2, 3, 1, 5, 1, 3, 1, 2, 1, 3, 5, 1, 3, 1, 1, 1, 3, 5, 3, 4, 4, 4, 6, 4, 3, 5, 6, 8, 6, 5, 1, 1, 3, 3, 0, 2, 5, 0, 2, 4, 1, 3, 1, 3, 3, 2, 4, 6, 6, 6, 1, 1, 1, 1, 3, 3, 3, 5, 6, 5, 2, 3, 3, 1, 1, 8, 8, 8, 8, 1, 0, 2, 5, 2, 3, 1, 3, 1, 1, 1, 2, 1, 3, 2, 3, 1, 3, 1, 1, 3, 1, 1, 0, 2, 0, 2, 0, 2, 1, 3, 0, 4, 2, 4, 2, 3, 1, 3, 3, 3, 0, 2, 1, 3, 5, 7, 0, 5, 5, 3, 5, 3, 0, 2, 1, 3, 0, 4, 0, 4, 0, 4, 0, 3, 0, 3, 0, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 4, 6, 4, 8, 6, 5, 3, 0, 4, 4, 6, 4, 0, 4, 4, 1, 4, 5, 2, 3, 5, 1, 4, 5, 2, 3, 5, 2, 5, 1, 1, 3, 6, 4, 5, 5, 5, 4, 4, 3, 3, 1, 0, 0, 1, 1, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 0, 6, 4, 5, 5, 3, 7, 5, 8, 6, 6, 4, 6, 4, 2, 1, 3, 1, 3, 4, 1, 2, 2, 1, 1, 3, 2, 1, 5, 1, 1, 2, 3, 3, 6, 1, 1, 2, 1, 3, 2, 4, 1, 3, 3, 3, 2, 1, 1, 3, 3, 1, 1, 3, 0, 1, 3, 5, 4, 4, 1, 3, 1, 1, 3, 1, 3, 0, 3, 2, 1, 2, 3, 4, 4, 4, 0, 2, 2, 1, 5, 3, 1, 1, 3, 2, 1, 0, 0, 6, 6, 6, 6, 6, 6, 3, 2, 3, 2, 3, 2, 3, 2, 3, 1, 2, 1, 2, 1, 1, 1, 1, 3, 4, 4, 1, 1, 1, 1, 3, 1, 2, 1, 3, 1, 3, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 3, 1, 1, 2, 5, 3, 5, 3, 2, 2, 1, 1, 3, 1, 1, 2, 5, 3, 5, 3, 2, 2, 5, 2, 1, 3, 2, 3, 1, 3, 7, 5, 5, 1, 3, 0, 0, 4, 2, 0, 1, 3, 0, 3, 0, 2, 3, 4, 3, 0, 1, 3, 1, 1, 3, 1, 1, 2, 2, 1, 2, 1, 1, 1, 3, 1, 1, 2, 5, 3, 5, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 3, 1, 3, 1, 1, 1, 3, 1, 2, 1, 1, 1, 1, 2, 1, 0, 1, 0, 2, 1, 1 }; static const short yydefact[] = { 163, 165, 0, 4, 0, 0, 164, 0, 506, 1, 546, 0, 166, 543, 187, 175, 5, 167, 167, 545, 12, 0, 0, 193, 0, 169, 193, 548, 544, 0, 2, 546, 171, 547, 207, 203, 205, 261, 0, 195, 11, 168, 9, 261, 10, 0, 8, 526, 542, 0, 0, 14, 16, 17, 0, 188, 181, 181, 0, 201, 0, 197, 0, 199, 0, 528, 505, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 508, 507, 425, 509, 501, 500, 504, 502, 503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 213, 214, 215, 216, 217, 218, 0, 260, 342, 397, 406, 408, 424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 422, 421, 532, 194, 170, 548, 551, 550, 549, 521, 524, 525, 0, 523, 522, 13, 0, 0, 22, 546, 499, 193, 0, 183, 0, 193, 548, 172, 26, 0, 519, 0, 208, 209, 513, 512, 514, 0, 204, 0, 206, 0, 0, 0, 0, 0, 262, 0, 0, 0, 496, 0, 498, 261, 6, 0, 0, 0, 0, 0, 413, 0, 407, 412, 410, 409, 530, 0, 326, 0, 0, 311, 0, 311, 0, 0, 541, 540, 0, 0, 0, 310, 246, 0, 248, 295, 299, 304, 305, 226, 0, 0, 405, 404, 0, 524, 426, 0, 399, 402, 0, 410, 0, 0, 431, 0, 477, 0, 0, 463, 464, 467, 466, 476, 474, 470, 432, 473, 472, 0, 0, 196, 7, 527, 15, 507, 21, 0, 0, 0, 337, 340, 3, 275, 182, 190, 0, 275, 192, 0, 0, 27, 173, 202, 0, 0, 0, 198, 200, 495, 0, 0, 0, 263, 0, 0, 259, 258, 497, 212, 0, 0, 49, 292, 302, 305, 0, 0, 343, 351, 345, 0, 0, 398, 419, 0, 0, 414, 0, 410, 420, 0, 327, 0, 0, 0, 312, 538, 0, 538, 0, 0, 0, 231, 240, 289, 0, 0, 306, 0, 0, 301, 298, 305, 546, 225, 0, 403, 533, 401, 428, 0, 0, 529, 0, 468, 469, 483, 0, 524, 478, 0, 474, 484, 430, 0, 0, 0, 471, 0, 336, 338, 423, 18, 20, 19, 0, 0, 268, 274, 270, 271, 272, 273, 0, 0, 0, 0, 0, 184, 0, 548, 25, 0, 28, 30, 31, 0, 0, 515, 520, 210, 0, 0, 0, 264, 266, 256, 257, 0, 152, 0, 0, 0, 252, 0, 296, 0, 0, 0, 395, 0, 362, 546, 0, 0, 0, 0, 0, 0, 0, 352, 358, 361, 379, 381, 390, 391, 392, 393, 386, 384, 385, 346, 357, 546, 344, 0, 418, 531, 416, 0, 0, 411, 325, 0, 0, 0, 221, 313, 317, 0, 539, 219, 0, 541, 0, 243, 0, 292, 305, 546, 230, 0, 308, 307, 0, 300, 297, 261, 261, 226, 0, 400, 0, 482, 480, 0, 0, 462, 465, 475, 0, 0, 341, 275, 189, 0, 38, 0, 0, 0, 0, 47, 0, 0, 191, 23, 0, 0, 0, 0, 174, 255, 254, 0, 253, 0, 0, 0, 0, 49, 59, 57, 0, 0, 0, 293, 360, 437, 439, 0, 516, 519, 524, 434, 0, 0, 357, 0, 511, 510, 517, 396, 0, 261, 261, 0, 534, 535, 371, 373, 375, 377, 0, 0, 0, 380, 0, 0, 261, 261, 347, 0, 0, 328, 0, 0, 0, 0, 315, 0, 0, 0, 231, 234, 244, 0, 0, 296, 329, 329, 0, 0, 290, 0, 249, 548, 224, 429, 427, 0, 0, 339, 269, 56, 0, 40, 280, 0, 0, 0, 52, 0, 226, 0, 185, 29, 35, 0, 0, 0, 24, 0, 0, 177, 0, 0, 265, 267, 0, 153, 294, 251, 60, 0, 61, 0, 0, 0, 446, 460, 438, 0, 387, 0, 0, 0, 363, 354, 0, 548, 546, 370, 383, 372, 374, 376, 378, 0, 359, 394, 356, 0, 548, 348, 417, 415, 318, 319, 314, 0, 223, 322, 220, 0, 237, 0, 0, 229, 0, 293, 241, 0, 0, 0, 0, 330, 335, 422, 548, 0, 247, 0, 261, 227, 228, 481, 479, 0, 0, 277, 38, 0, 0, 40, 38, 45, 0, 54, 288, 75, 0, 286, 47, 0, 32, 34, 33, 176, 0, 0, 0, 303, 48, 62, 63, 64, 0, 439, 440, 0, 444, 0, 461, 0, 518, 435, 0, 388, 389, 0, 353, 0, 0, 455, 455, 382, 0, 0, 349, 350, 316, 321, 0, 323, 0, 238, 0, 0, 0, 242, 245, 0, 262, 0, 0, 232, 233, 309, 291, 250, 56, 0, 0, 282, 0, 39, 41, 37, 0, 0, 279, 0, 278, 52, 0, 0, 0, 46, 226, 186, 178, 179, 180, 65, 0, 0, 0, 460, 443, 446, 447, 442, 0, 433, 0, 0, 0, 0, 451, 453, 548, 0, 355, 320, 0, 222, 0, 536, 0, 235, 0, 0, 0, 331, 276, 55, 284, 84, 0, 82, 85, 0, 36, 38, 0, 287, 53, 0, 76, 285, 69, 66, 70, 0, 0, 0, 439, 0, 445, 450, 436, 364, 365, 366, 455, 368, 0, 369, 367, 324, 236, 0, 239, 0, 333, 334, 43, 0, 42, 0, 281, 44, 50, 0, 86, 0, 0, 67, 73, 0, 0, 71, 77, 0, 58, 441, 0, 448, 452, 0, 0, 454, 351, 537, 332, 83, 283, 0, 51, 0, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 102, 101, 134, 135, 0, 78, 79, 449, 351, 0, 456, 87, 0, 89, 68, 0, 0, 0, 0, 0, 150, 0, 0, 0, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 457, 459, 0, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 113, 0, 125, 126, 127, 0, 0, 0, 132, 133, 0, 80, 458, 88, 74, 0, 90, 0, 0, 123, 124, 116, 0, 0, 0, 0, 0, 91, 0, 154, 0, 156, 158, 92, 0, 0, 0, 0, 94, 144, 149, 0, 146, 148, 0, 0, 0, 0, 0, 0, 161, 162, 0, 159, 69, 0, 0, 105, 108, 0, 0, 0, 0, 0, 100, 0, 155, 0, 0, 0, 0, 0, 145, 0, 96, 0, 114, 115, 128, 0, 130, 0, 81, 0, 0, 0, 0, 97, 117, 0, 0, 0, 93, 157, 0, 0, 0, 0, 147, 99, 129, 160, 143, 0, 0, 111, 106, 103, 141, 0, 109, 104, 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 121, 122, 118, 119, 120, 0, 0, 0, 0, 0, 112, 0, 136, 137, 138, 139, 0, 110, 107, 0, 0, 0 }; static const short yydefgoto[] = { 1103, 9, 54, 10, 16, 30, 50, 51, 259, 260, 371, 372, 576, 672, 745, 746, 752, 582, 392, 678, 755, 669, 503, 504, 606, 696, 765, 847, 815, 850, 680, 854, 896, 897, 798, 799, 843, 844, 890, 1019, 1045, 1066, 1046, 1070, 1067, 959, 960, 945, 1086, 981, 891, 917, 907, 937, 957, 1001, 1002, 912, 389, 950, 990, 1011, 1012, 1013, 1, 2, 3, 4, 23, 24, 25, 58, 145, 6, 490, 592, 593, 139, 140, 141, 7, 21, 55, 37, 38, 39, 155, 157, 147, 62, 64, 60, 150, 94, 95, 96, 97, 98, 323, 99, 450, 552, 311, 100, 200, 563, 564, 272, 382, 383, 355, 356, 357, 358, 359, 360, 361, 186, 561, 992, 281, 319, 202, 203, 282, 187, 436, 437, 640, 722, 188, 301, 654, 655, 102, 348, 247, 103, 174, 286, 287, 288, 424, 289, 616, 702, 422, 410, 411, 522, 709, 412, 621, 413, 104, 215, 216, 217, 105, 106, 211, 107, 414, 706, 415, 698, 416, 417, 699, 700, 701, 819, 857, 777, 778, 826, 861, 862, 703, 226, 227, 228, 229, 617, 230, 418, 142, 109, 110, 111, 112, 113, 114, 11, 162, 116, 117, 517, 151, 152, 518, 153, 154, 131, 132, 419, 118, 420, 119, 528, 786, 304, 205, 641, 184, 14, 17, 18, 19, 40, 44, 45, 126 }; static const short yypact[] = {-32768, -32768, 35, 61, 35, 113,-32768, 163,-32768,-32768,-32768, 113,-32768,-32768,-32768,-32768,-32768, 232, 232, 275, 287, 346, 113, 470, 612,-32768, 747, 312,-32768, 546,-32768, -32768,-32768,-32768, 454, 466, 490, 1745, 353,-32768,-32768, 232,-32768, 1745,-32768, 314,-32768,-32768,-32768, 194, 165, -32768,-32768, 338, 482,-32768, 458, 458, 35,-32768, 74, -32768, 74,-32768, 74,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768, 467,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768, 372, 301, 301, 564, 301, 555, 567, 609, 661,-32768,-32768,-32768,-32768,-32768,-32768, -32768, 605,-32768, 74,-32768, 2552,-32768,-32768, 295, 564, 295, 1056, 295, 2552, 1171, 2358, 2587, 404,-32768,-32768, 747,-32768, 623,-32768,-32768,-32768,-32768,-32768,-32768, 627, -32768,-32768,-32768, 546, 755,-32768,-32768,-32768, 747, 667, -32768, 113, 747, 637,-32768, 221, 74,-32768, 687, 640, -32768,-32768,-32768,-32768, 74, 640, 74, 640, 679, 564, 694, 194, 672, 709, 301, 647, 669,-32768, 744,-32768, 1745,-32768, 1011, 691, 2475, 2405, 1455,-32768, 2587,-32768, -32768, 758,-32768,-32768, 564,-32768, 782, 778, 811, 807, 811, 809, 409, 811,-32768, 831, 1011, 441,-32768,-32768, 829,-32768,-32768, 857,-32768, 1097, 296, 852, 811, 2552, -32768, 870, 2552,-32768, 283,-32768, 2552, 877, 146, 731, 2440,-32768, 1572,-32768, 2587, 883, 559,-32768, 2587,-32768, -32768, 887,-32768,-32768,-32768,-32768, 408, 2587,-32768,-32768, -32768,-32768, 903,-32768, 886, 906, 735, 902,-32768,-32768, 321, 458,-32768, 921, 321,-32768, 537, 927,-32768, 895, 640, 928, 931, 74, 640, 640,-32768, 1097, 409, 1011, -32768, 874, 876,-32768,-32768,-32768,-32768, 441, 871, 29, 939,-32768, 1097, 2079, 2079,-32768, 930,-32768, 943, 2552, -32768,-32768, 945, 944,-32768, 474, 159,-32768, 2587,-32768, 776, 1108, 564, 811, 949, 1011,-32768, 564, 1011, 711, 933,-32768,-32768, 971, 958,-32768, 781, 1011, 983,-32768, -32768,-32768,-32768, 564,-32768,-32768, 2552,-32768, 2517, 2475, -32768, 974,-32768,-32768,-32768, 960, 731,-32768, 512, 177, -32768,-32768, 2517, 980, 2517,-32768, 2587, 962,-32768,-32768, -32768,-32768,-32768, 355, 697,-32768,-32768,-32768,-32768,-32768, -32768, 966, 295, 564, 295, 295,-32768, 546, 982,-32768, 794,-32768,-32768, 978, 546, 985,-32768,-32768,-32768, 632, 923, 57,-32768, 988,-32768,-32768, 827,-32768, 552, 1011, 633,-32768, 1011, 1097, 2138, 1925, 1374,-32768, 2629,-32768, -32768, 2079, 851, 851, 995, 996, 1008, 2079, 74,-32768, -32768, 2629,-32768,-32768,-32768,-32768,-32768,-32768, 984,-32768, -32768, 128,-32768,-32768, 2079,-32768,-32768,-32768, 2517, 1013, -32768,-32768, 564, 706, 415, 63,-32768, 719, 994,-32768, -32768, 597,-32768, 1002,-32768, 1001, 1010, 1097,-32768,-32768, 1011,-32768,-32768, 1011,-32768,-32768, 2197, 2197, 989, 1015, -32768, 1017,-32768,-32768, 2517, 1037,-32768,-32768,-32768, 408, 903,-32768, 321,-32768, 1011, 89, 1021, 1016, 1024, 409, 155, 1027, 845,-32768,-32768, 546, 786, 849, 570,-32768, -32768,-32768, 1011,-32768, 301, 1011, 967, 1011, 998,-32768, -32768, 1055, 633, 414,-32768,-32768,-32768, 613, 1044, 1043, 944, 2138,-32768, 873, 855, 128, 2079,-32768,-32768, 1045, -32768, 2587, 2197, 2197, 1029,-32768,-32768, 2629, 2629, 2629, 2629, 2079, 1031, 2079,-32768, 2629, 1011, 2197, 2197, 1050, 1048, 1058,-32768, 1059, 1097, 1108, 568, 838, 1108, 811, 339, 933,-32768,-32768, 1011, 1011, 1019, 2323, 2323, 1075, 861,-32768, 734,-32768, 1074,-32768,-32768,-32768, 1071, 1077, -32768,-32768, 263, 1108, 1047,-32768, 564, 1011, 564, 1038, 633, 989, 564, 1035,-32768,-32768, 1082, 1083, 872,-32768, 250, 875,-32768, 1051, 1052,-32768,-32768, 879,-32768,-32768, -32768,-32768, 1040,-32768, 1102, 3, 2079,-32768, 2079,-32768, 1087,-32768, 2079, 2002, 366,-32768, 2587, 734, 1074,-32768, 2629,-32768, 2629, 2629, 2629,-32768, 2079,-32768,-32768, 1085, 734, 1074,-32768,-32768,-32768, 1097,-32768,-32768, 444,-32768, -32768, 242, 1099,-32768, 590, 811,-32768, 891, 1098,-32768, 301, 301, 301, 753,-32768,-32768, 1088, 1104, 1110, 1103, 1011, 2197,-32768,-32768,-32768,-32768, 1011, 633,-32768, 387, 1105, 1064, 18, 211, 1066, 409, 1061,-32768,-32768, 181, -32768, 1072, 985,-32768,-32768,-32768,-32768, 570, 408, 355, -32768,-32768,-32768,-32768,-32768, 41, 476,-32768, 220,-32768, 2079,-32768, 1123,-32768, 1122, 1124,-32768,-32768, 1125,-32768, 1111, 1112, 2517, 2517,-32768, 1092, 1011,-32768,-32768, 1097, -32768, 894,-32768, 568,-32768, 811, 811, 75,-32768,-32768, 1127, 709, 301, 2323,-32768,-32768,-32768,-32768,-32768, 1090, 1093, 568,-32768, 860, 1130,-32768,-32768, 1094, 1108,-32768, 1089,-32768, 1038, 113, 633, 633,-32768, 989,-32768,-32768, -32768,-32768,-32768, 32, 477, 2079, 2079,-32768,-32768,-32768, -32768, 2079,-32768, 2079, 2079, 2079, 756,-32768, 415, 1143, 2079,-32768,-32768, 564,-32768, 896,-32768, 1140,-32768, 1011, 1079, 1080,-32768,-32768,-32768,-32768,-32768, 420,-32768,-32768, 1105,-32768, 405, 1101,-32768,-32768, 43,-32768,-32768, 1150, -32768,-32768, 826, 301, 578, 1145, 1166,-32768, 1156,-32768, -32768,-32768,-32768, 2517,-32768, 907,-32768,-32768,-32768,-32768, 811,-32768, 64,-32768,-32768,-32768, 860,-32768, 568,-32768, -32768,-32768, 261,-32768, 1162, 633,-32768,-32768, 1186, 1616, -32768,-32768, 1178,-32768,-32768, 2079,-32768,-32768, 2079, 1175, -32768, 930,-32768,-32768,-32768,-32768, 408,-32768, 333, 1185, 1197,-32768, 1189, 1616, 1191, 1207, 174, 453, 1616, 1616, 1193, 564, 564, 564, 564, 564, 573, 573, 113,-32768, -32768,-32768,-32768,-32768, 860, 1188,-32768,-32768, 930, 2079, -32768,-32768, 633,-32768,-32768, 1211, 360, 1192, 1176, 635, -32768, 329, 113, 1196,-32768, 777, 1196, 1198, 1204, 1192, 564, 408, 408, 1199, 408, 1202,-32768, 570, 599, 1178, -32768, 1050, 1206, 1218, 1225, 1616,-32768, 1201, 1216, 59, 1227, 1229, 573, 573, 1210,-32768, 1616, 355, 506, 1198, 851, 851, 981, 981, 1198, 2155,-32768, 1011, 762,-32768, 1212,-32768,-32768,-32768, 1011, 1217, 938,-32768,-32768, 1236, -32768,-32768,-32768,-32768, 1213,-32768, 1616, 842,-32768,-32768, -32768, 1237, 1238, 1239, 1241, 1616,-32768, 1196,-32768, 606, -32768,-32768,-32768, 1235, 1240, 1243, 1244,-32768,-32768,-32768, 617,-32768,-32768, 1245, 1215, 1192, 1616, 1231, 1011,-32768, -32768, 641,-32768, 1150, 1011, 1247,-32768,-32768, 1248, 59, 1246, 1252, 1257,-32768, 1198,-32768, 1011, 1196, 1196, 1196, 1196,-32768, 2214,-32768, 1616,-32768,-32768,-32768, 1249,-32768, 938,-32768, 1251, 1230, 665, 815,-32768,-32768, 59, 59, 59,-32768,-32768, 1011, 1011, 1011, 1011,-32768,-32768,-32768, -32768,-32768, 1616, 119,-32768,-32768,-32768,-32768, 1250,-32768, -32768, 1255, 147, 147, 147, 1254, 1260, 1265, 1266,-32768, 585, 1616, 1616,-32768,-32768,-32768,-32768,-32768, 1261, 1262, 1263, 1264, 1616,-32768, 1270,-32768,-32768,-32768,-32768, 1271, -32768,-32768, 1269, 1293,-32768 }; static const short yypgoto[] = {-32768, -32768,-32768,-32768, 1134,-32768,-32768, 1160,-32768,-32768, 22, 810, -599, 622,-32768, 496,-32768, 616, 800, 547,-32768, 561, -483,-32768,-32768,-32768,-32768, 290,-32768,-32768,-32768, -32768,-32768, 375, 411, 471,-32768, 440, -290,-32768,-32768, -32768,-32768,-32768, 264,-32768, 303,-32768, -131, -537, -785, -32768, 243, -826, -664,-32768, 280,-32768,-32768, -777,-32768, -362,-32768, 273,-32768,-32768,-32768,-32768, 1297, 1301, 1279, -32768,-32768, 65, 639,-32768, 643, 1272, 1275, 1081,-32768, -32768,-32768, 24,-32768, 1219,-32768,-32768,-32768,-32768,-32768, -32768, 292, 1280, 1168,-32768,-32768,-32768, -430,-32768, 789, -32768, -247,-32768,-32768, -129, -34, 610, 553, 853, 1095, 882,-32768,-32768,-32768,-32768,-32768, -89, -441, 71, -78, -251,-32768, 34, 1232, -82, -510, 799, -666,-32768, -60, -32768, 788, 614, -95,-32768, 881, -497,-32768,-32768,-32768, 819, -541, -789, 743, 10, -259,-32768, -338,-32768,-32768, -32768, 317, 76,-32768, -105,-32768, -48,-32768,-32768, -68, -32768,-32768, 589,-32768, 968,-32768,-32768,-32768, 594,-32768, -32768,-32768, 652, 548,-32768,-32768, 438, 604, -117, -210, 1028,-32768, -63, -84, -7,-32768, -224, -207, -206,-32768, -199,-32768,-32768, -32,-32768,-32768,-32768, -62,-32768,-32768, -208, -47,-32768, 977, -29, -72, 1022,-32768, -397,-32768, 729, -168, -103, 779, -10, -25, 4,-32768, -20, -17, -32768,-32768 }; #define YYLAST 2740 static const short yytable[] = { 52, 20, 130, 101, 42, 115, 56, 529, 193, 101, 46, 115, 32, 339, 163, 164, 165, 380, 167, 345, 603, 305, 381, 307, 207, 409, 313, 363, 190, 566, 108, 363, 394, 235, 201, 57, 108, 860, 180, 642, 246, 313, 175, 810, 364, 365, 47, 546, 364, 365, 43, 192, 366, 208, 234, 598, 366, 506, 785, 293, 390, 656, 656, 248, 670, 673, 210, 49, 218, 12, 291, 743, 296, 694, 172, 750, 796, 182, 195, 127, 148, 128, 938, 493, 695, 182, 219, 232, 232, 5, 493, 671, 546, 273, 961, 235, 300, 391, 679, 181, 789, 149, 926, 927, 336, 52, 240, 181, 181, 231, 231, 763, 842, 8, 648, 218, 298, 13, 764, 574, 253, 811, 975, 146, 127, 294, 128, 256, 547, 979, 130, 345, 254, 127, 148, 128, 440, 101, 516, 115, 955, 235, 325, 860, 494, 235, 182, 232, 297, 325, 232, 864, 681, 330, 235, 149, 362, 575, 984, 985, 362, 537, 341, 251, 108, 327, 346, 255, 181, 231, 181, 1000, 231, 866, 506, 350, 130, 980, 48, 248, 961, 182, 299, 248, 182, 741, -326, 548, 182, 519, 133, 134, 232, 129, 340, 299, 232, 557, 471, 127, 232, 128, 379, 181, 840, 442, 181, 756, 349, 232, 181, 1025, 460, 347, 231, 235, 231, 1084, 231, 1069, 1069, 439, 231, 581, 435, 461, 467, 545, 373, 330, 15, 231, 447, 580, 330, 459, 431, 656, 129, 803, 320, 749, 327, 768, 280, 257, 769, 129, 1000, 363, 757, 1054, 1055, 1056, 1057, 127, 294, 128, 615, 325, 1068, 182, 480, 235, 1085, 332, 364, 365, 315, 317, 232, 546, 807, 808, 366, 628, 258, 481, 430, 575, 913, 476, 478, 181, 469, 22, 993, 867, 127, 148, 128, 998, 231, 28, 667, 421, 466, 457, 182, 48, 232, 182, 320, 477, 65, 479, 482, 724, 328, 329, 149, 29, 541, 129, 232, 124, 232, 320, 232, 185, 181, 901, 231, 181, 65, 78, 458, -326, 809, 565, 868, 668, 946, 41, 125, 474, 231, 322, 231, 373, 231, 384, 195, 48, 543, 78, 373, 534, 569, 387, 130, 903, 484, 456, 156, 628, 158, 947, 931, 48, 534, 1052, 135, 870, 644, 81, 82, 83, 84, 129, 136, 127, 148, 128, 121, 65, 523, 441, 362, 471, 444, 446, 643, 645, 935, 720, 904, 31, 936, 455, 483, 708, 588, 149, 618, 619, 78, 488, 538, 330, 232, 248, 129, 500, 501, 524, 508, 515, 502, 631, 632, 47, 525, 48, 456, 248, 546, 160, 533, 161, 933, 148, 231, 597, 558, 115, 115, 539, 456, 753, 237, 309, 49, 310, 546, 540, 232, -337, 235, 261, 238, 571, 344, 836, 195, 48, 837, 265, 48, 266, 108, 108, 742, 559, 614, 575, 915, 373, 231, 196, 594, 499, 59, 197, 505, 278, 316, 637, 435, 721, 839, 435, 320, 575, 61, 521, 676, 916, 307, 127, 148, 128, 320, 1048, 604, 129, 657, 657, 535, 33, 605, 115, 115, 232, 682, 674, 435, 435, 63, 428, 429, 149, 766, 779, 779, 387, 115, 115, 767, 195, 48, 138, 1073, 1074, 1075, 231, 108, 108, 148, 34, 35, 36, 560, 137, 196, 562, 115, 115, 197, 989, 278, 108, 108, 235, 279, 199, 723, 464, 465, 344, 47, 48, 626, 663, 130, 159, 573, 812, 664, 47, 48, 108, 108, 534, 994, 995, 813, 814, 787, 788, 440, 49, 370, 168, 384, 148, 534, 562, 48, 600, 49, 345, 48, 47, 48, 169, 47, 48, 497, 731, 732, 733, 456, 498, 909, 343, 344, 991, 232, 918, 919, 456, 639, 129, 591, 713, 1004, 591, 711, 279, 199, 48, 712, 1008, 622, 622, 622, 622, 630, 935, 231, 718, 629, 1093, 779, 719, 726, 697, 727, 550, 170, 551, 970, 705, 714, 837, 562, 649, 739, 1026, 115, 33, 1027, 41, 735, 195, 48, 716, 173, 607, 1032, 736, 608, 1033, 171, 609, 976, 1039, 852, 675, 196, 853, 241, 1043, 197, 108, 278, 987, 252, 594, 761, 792, 657, 863, 1040, 1053, 264, 1041, 47, 48, 320, 435, 882, 883, 884, 885, 886, 887, 888, 889, 33, 829, 171, 267, 232, 232, 33, 1016, 252, 1064, 262, 263, 1076, 1077, 1078, 1079, 1024, 715, 269, 715, 715, 715, 115, 500, 501, 270, 231, 231, 502, 195, 48, 770, 544, 271, 195, 48, 33, 1037, 473, 491, 284, 285, 195, 48, 196, -305, 199, 108, 197, 196, 278, 316, 738, 197, 274, 278, 445, 196, 740, 333, 334, 197, 851, 278, 806, 1059, -305, 940, 941, 942, 943, 944, 276, 33, 456, 662, 275, 825, 65, 48, 353, 354, 1065, 827, 882, 883, 884, 885, 886, 887, 888, 889, 33, 1080, 734, 33, 816, 824, 845, 243, 244, 1005, 705, 1006, 821, 822, 823, 245, 782, 65, 48, 828, 1094, 1095, 299, 232, 34, 35, 36, 279, 199, 432, 433, 1100, 279, 199, 453, 454, 53, 303, 243, 586, 302, 199, 195, 800, 120, 231, 587, 485, 486, 893, 120, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 951, 952, 953, 954, 306, 845, 935, 308, 195, 48, 892, -296, 893, 623, 624, 625, 314, 893, 893, 453, 496, 526, 527, 196, 318, 893, 893, 197, 384, 278, 195, 48, -296, 898, 892, 166, 899, 584, 486, 892, 892, 590, 486, 611, 263, 196, 928, 612, 613, 197, 324, 278, -302, 660, 661, 189, 191, 194, 206, 209, 963, 964, 326, 966, 686, 354, 968, 687, 688, 331, 948, 691, 661, 342, 893, 800, 294, 932, 351, 1065, 53, 893, 893, 729, 661, 893, 783, 784, 830, 831, 347, 91, 92, 93, 893, 237, 892, 797, 352, 199, 848, 849, 859, 284, 1017, 1018, 268, 892, 195, 48, 1087, 1088, 368, 996, 997, 893, 1003, 120, 375, 283, 279, 199, 377, 196, 893, 378, 376, 197, 385, 278, 386, 209, 388, 800, 393, 426, 427, 892, 423, 312, 425, 449, 451, 283, 283, 893, 892, -289, 452, 462, 463, 263, 321, 195, 48, 470, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 475, 892, 196, 487, 473, 893, 197, 893, 278, 1010, 489, 492, -296, 530, 531, 195, 48, 893, 130, 495, 532, 536, 542, 195, 48, 549, 554, 1003, 555, 892, 196, 322, 279, 199, 197, 893, 278, 374, 196, 556, 1072, 567, 197, 568, 278, 650, 570, 578, 321, 312, 283, 195, 48, 577, 893, 893, 579, 892, 283, 583, 195, 48, 599, 321, 602, 893, 196, 391, 610, -521, 197, -522, 434, 620, 634, 196, 892, 892, 199, 197, 284, 198, 438, 191, 635, 636, 283, 892, 443, 283, 448, 91, 92, 93, 627, 659, 662, 665, 283, 321, 683, 195, 48, 666, 209, 279, 199, 677, 684, 685, 692, 693, 195, 48, 199, 704, 196, 717, 689, 690, 197, 671, 278, 725, 730, 238, 734, 196, 744, 183, 737, 197, -303, 434, 747, 751, 754, 183, 183, 233, 236, 581, 199, 189, 191, 194, 209, 771, 374, 772, 773, 199, 775, 776, 774, 374, 781, 801, 249, 668, 321, 790, 804, 795, 802, 824, 832, 834, 835, 846, 283, 841, 766, 283, 321, 47, 48, 127, 212, 213, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 855, 856, 199, 869, 176, 871, 177, 214, 183, 233, 183, 895, 236, 199, 900, 905, 906, 178, 908, 179, 910, 911, 920, 209, 283, 930, 934, 935, 321, 949, 939, 956, 553, 958, 965, 967, 973, 974, 321, 975, 986, 283, 977, 183, 283, 978, 183, 120, 120, 982, 183, 983, 1009, 1007, 233, 1014, 233, 1015, 236, 1020, 1021, 1022, 236, 1023, 1028, 283, 1035, 1038, 1049, 1029, 312, 236, 1030, 1031, 1050, 1034, 374, 1044, 1047, 1051, 1104, 1063, 250, 283, 1089, 1060, 283, 1062, 283, 1082, 1090, 91, 92, 93, 1083, 1091, 1092, 1096, 1097, 1098, 1099, 129, 1101, 1102, 1105, 242, 748, 585, 838, 758, 601, 805, 794, 120, 120, 1042, 971, 929, 902, 865, 1036, 1071, 1081, 183, 1058, 1061, 26, 283, 120, 120, 27, 122, 236, 759, 123, 283, 438, 443, 321, 438, 143, 646, 760, 144, 367, 283, 283, 321, 120, 120, 277, 239, 647, 791, 833, 204, 638, 596, 658, 793, 183, 369, 233, 183, 438, 438, 572, 191, 283, 443, 633, 710, 820, 209, 818, 509, 233, 780, 233, 589, 236, 972, 817, 858, 468, 520, 728, 472, 47, 48, 510, 511, 512, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 396, 0, 397, 513, 0, 514, 0, 0, 0, 0, 0, 0, 0, 398, 0, 399, 400, 401, 0, 321, 402, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 404, 405, 406, 407, 408, 0, 0, 0, 0, 283, 120, 0, 0, 0, 0, 283, 0, 0, 0, 0, 233, 0, 0, 0, 312, 0, 0, 47, 48, 127, 294, 213, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 176, 0, 177, 295, 0, 0, 91, 92, 93, 0, 233, 0, 0, 178, 0, 179, 129, 0, 0, 283, 0, 0, 321, 0, 0, 0, 443, 0, 0, 0, 0, 0, 249, 0, 595, 0, 120, 0, 0, 0, 0, 0, 0, 0, 443, 0, 283, 0, 0, 0, 0, 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 91, 92, 93, 0, 0, 283, 0, 0, 0, 0, 129, 47, 48, 127, 294, 337, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 221, 0, 223, 338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 225, 0, 0, 0, 0, 0, 0, 283, 0, 443, 47, 48, 0, 0, 0, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 0, 236, 591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 872, 873, 0, 0, 874, 0, 0, 921, 922, 923, 924, 925, 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 875, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 962, 0, 0, 0, 876, 877, 878, 879, 880, 0, 595, 0, 762, 0, 881, 882, 883, 884, 885, 886, 887, 888, 889, 0, 0, 91, 92, 93, 283, 0, 0, 0, 0, 0, 0, 233, 233, 283, 0, 0, 0, 0, 0, 0, 283, 0, 283, 0, 65, 48, 0, 0, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 77, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 80, 0, 0, 0, 0, 0, 283, 81, 82, 83, 84, 85, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, 86, 87, 88, 89, 90, 0, 283, 283, 283, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 894, 0, 0, 914, 0, 894, 894, 0, 0, 0, 0, 0, 0, 894, 894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 48, 0, 0, 395, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 396, 507, 397, 969, 0, 0, 0, 0, 0, 0, 0, 894, 0, 398, 0, 399, 400, 401, 894, 894, 402, 0, 894, 988, 0, 0, 0, 0, 0, 0, 0, 894, 0, 0, 403, 404, 405, 406, 407, 408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 894, 0, 0, 0, 0, 0, 47, 48, 0, 894, 395, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 396, 0, 397, 707, 0, 894, 0, 0, 0, 0, 91, 92, 93, 398, 0, 399, 400, 401, 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 894, 0, 894, 403, 404, 405, 406, 407, 408, 0, 0, 0, 894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 48, 0, 894, 395, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 396, 0, 397, 894, 894, 0, 0, 0, 0, 0, 91, 92, 93, 398, 894, 399, 400, 401, 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 404, 405, 406, 407, 408, 47, 48, 0, 0, 0, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 47, 48, 396, 0, 397, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 398, 0, 399, 400, 401, 999, 591, 402, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 403, 404, 405, 406, 407, 408, 65, 48, 0, 0, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 47, 48, 77, 0, 78, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 79, 0, 80, 0, 0, 0, 591, 0, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 0, 882, 883, 884, 885, 886, 887, 888, 889, 0, 0, 91, 92, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 87, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 0, 882, 883, 884, 885, 886, 887, 888, 889, 0, 0, 91, 92, 93, 65, 48, 0, 0, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 77, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 80, 47, 48, 0, 0, 220, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 221, 222, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 651, 652, 653, 47, 48, 0, 0, 220, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 221, 292, 223, 0, 0, 91, 92, 93, 0, 0, 0, 0, 0, 224, 0, 225, 47, 48, 0, 0, 220, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 221, 335, 223, 0, 0, 91, 92, 93, 0, 0, 0, 0, 0, 224, 0, 225, 47, 48, 0, 0, 290, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 176, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 179, 0, 91, 92, 93, 0, 0, 0, 47, 48, 0, 0, 220, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 221, 0, 223, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 224, 0, 225, 47, 48, 0, 0, 0, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 176, 0, 177, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 178, 0, 179, 47, 48, 0, 0, 0, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 221, 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 225, 0, 91, 92, 93, 0, 0, 0, 47, 48, 0, 0, 0, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, 0, 396, 0, 397, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 398, 0, 399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93 }; static const short yycheck[] = { 29, 11, 49, 37, 24, 37, 31, 404, 111, 43, 27, 43, 22, 223, 86, 87, 88, 268, 90, 227, 503, 189, 269, 191, 113, 284, 194, 251, 110, 459, 37, 255, 283, 117, 112, 31, 43, 826, 106, 549, 135, 209, 104, 11, 251, 251, 3, 29, 255, 255, 26, 111, 251, 113, 117, 496, 255, 395, 724, 176, 31, 558, 559, 135, 574, 575, 114, 24, 115, 4, 175, 670, 177, 70, 94, 674, 742, 106, 3, 5, 6, 7, 908, 26, 81, 114, 115, 116, 117, 54, 26, 73, 29, 165, 920, 179, 185, 68, 581, 106, 25, 27, 887, 888, 221, 134, 123, 114, 115, 116, 117, 70, 69, 52, 555, 162, 179, 4, 77, 30, 140, 89, 3, 58, 5, 6, 7, 144, 65, 70, 177, 339, 142, 5, 6, 7, 304, 171, 397, 171, 917, 225, 210, 932, 87, 229, 175, 176, 177, 217, 179, 87, 582, 215, 238, 27, 251, 68, 943, 944, 255, 33, 225, 139, 171, 213, 229, 143, 175, 176, 177, 956, 179, 839, 512, 238, 223, 118, 4, 251, 1006, 210, 36, 255, 213, 668, 31, 438, 217, 397, 25, 26, 221, 119, 223, 36, 225, 448, 24, 5, 229, 7, 264, 210, 803, 308, 213, 26, 237, 238, 217, 988, 329, 36, 221, 299, 223, 70, 225, 1045, 1046, 303, 229, 68, 302, 330, 343, 435, 257, 291, 67, 238, 310, 480, 296, 324, 299, 734, 119, 749, 206, 30, 290, 23, 173, 24, 26, 119, 1033, 473, 69, 1028, 1029, 1030, 1031, 5, 6, 7, 517, 327, 1045, 290, 365, 347, 117, 119, 473, 473, 197, 198, 299, 29, 755, 756, 473, 534, 55, 366, 119, 68, 106, 363, 364, 290, 347, 53, 950, 26, 5, 6, 7, 955, 299, 18, 31, 285, 119, 322, 327, 4, 329, 330, 268, 363, 3, 365, 366, 65, 25, 26, 27, 24, 429, 119, 343, 1, 345, 283, 347, 24, 327, 862, 329, 330, 3, 24, 322, 31, 758, 458, 69, 68, 3, 21, 20, 355, 343, 41, 345, 368, 347, 270, 3, 4, 433, 24, 375, 409, 465, 278, 397, 18, 369, 319, 62, 614, 64, 28, 899, 4, 422, 1025, 24, 846, 25, 44, 45, 46, 47, 119, 32, 5, 6, 7, 21, 3, 401, 306, 473, 24, 309, 310, 550, 551, 24, 636, 869, 41, 28, 318, 368, 25, 487, 27, 523, 524, 24, 375, 423, 461, 429, 473, 119, 70, 71, 401, 396, 397, 75, 538, 539, 3, 402, 4, 380, 487, 29, 45, 408, 47, 903, 6, 429, 495, 449, 457, 458, 423, 394, 676, 26, 22, 24, 24, 29, 425, 465, 33, 522, 147, 36, 470, 27, 23, 3, 4, 26, 155, 4, 157, 457, 458, 65, 449, 516, 68, 3, 486, 465, 18, 489, 390, 8, 22, 393, 24, 25, 545, 546, 25, 65, 549, 438, 68, 8, 399, 579, 24, 646, 5, 6, 7, 448, 1020, 70, 119, 558, 559, 412, 19, 76, 523, 524, 522, 583, 577, 574, 575, 8, 25, 26, 27, 26, 713, 714, 434, 538, 539, 32, 3, 4, 53, 1049, 1050, 1051, 522, 523, 524, 6, 49, 50, 51, 451, 41, 18, 454, 558, 559, 22, 23, 24, 538, 539, 617, 93, 94, 639, 25, 26, 27, 3, 4, 532, 563, 591, 78, 475, 70, 565, 3, 4, 558, 559, 615, 951, 952, 79, 80, 726, 727, 728, 24, 25, 8, 493, 6, 628, 496, 4, 498, 24, 779, 4, 3, 4, 8, 3, 4, 26, 651, 652, 653, 548, 31, 874, 26, 27, 949, 617, 879, 880, 557, 24, 119, 24, 620, 958, 24, 618, 93, 94, 4, 619, 965, 528, 529, 530, 531, 537, 24, 617, 631, 536, 28, 824, 632, 26, 607, 28, 22, 11, 24, 23, 613, 620, 26, 555, 556, 662, 23, 662, 19, 26, 21, 654, 3, 4, 627, 33, 26, 23, 658, 29, 26, 21, 32, 936, 1009, 70, 578, 18, 73, 25, 1015, 22, 662, 24, 947, 21, 688, 689, 733, 734, 831, 23, 1027, 26, 26, 3, 4, 636, 749, 99, 100, 101, 102, 103, 104, 105, 106, 19, 784, 21, 4, 713, 714, 19, 977, 21, 24, 3, 4, 1054, 1055, 1056, 1057, 986, 621, 4, 623, 624, 625, 734, 70, 71, 33, 713, 714, 75, 3, 4, 701, 6, 4, 3, 4, 19, 1007, 21, 87, 29, 30, 3, 4, 18, 6, 94, 734, 22, 18, 24, 25, 661, 22, 87, 24, 25, 18, 667, 8, 9, 22, 814, 24, 754, 1035, 27, 112, 113, 114, 115, 116, 8, 19, 720, 21, 87, 777, 3, 4, 25, 26, 97, 780, 99, 100, 101, 102, 103, 104, 105, 106, 19, 1063, 21, 19, 766, 21, 807, 24, 25, 19, 772, 21, 774, 775, 776, 32, 717, 3, 4, 781, 1082, 1083, 36, 824, 49, 50, 51, 93, 94, 25, 26, 1093, 93, 94, 25, 26, 29, 31, 24, 25, 30, 94, 3, 744, 37, 824, 32, 25, 26, 850, 43, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 56, 57, 58, 59, 30, 867, 24, 31, 3, 4, 850, 6, 874, 529, 530, 531, 18, 879, 880, 25, 26, 3, 4, 18, 28, 887, 888, 22, 790, 24, 3, 4, 27, 856, 874, 89, 859, 25, 26, 879, 880, 25, 26, 3, 4, 18, 889, 25, 26, 22, 31, 24, 28, 25, 26, 109, 110, 111, 112, 113, 922, 923, 25, 925, 25, 26, 928, 25, 26, 25, 913, 25, 26, 23, 936, 837, 6, 900, 25, 97, 134, 943, 944, 25, 26, 947, 25, 26, 25, 26, 36, 109, 110, 111, 956, 26, 936, 70, 25, 94, 107, 108, 28, 29, 95, 96, 160, 947, 3, 4, 1074, 1075, 24, 953, 954, 977, 956, 171, 24, 173, 93, 94, 27, 18, 986, 27, 64, 22, 87, 24, 87, 185, 94, 895, 28, 23, 25, 977, 41, 193, 30, 41, 4, 197, 198, 1007, 986, 31, 23, 8, 23, 4, 206, 3, 4, 26, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 33, 1007, 18, 24, 21, 1033, 22, 1035, 24, 70, 24, 87, 28, 17, 17, 3, 4, 1045, 1064, 30, 11, 36, 8, 3, 4, 30, 23, 1033, 26, 1035, 18, 41, 93, 94, 22, 1063, 24, 257, 18, 28, 1046, 25, 22, 25, 24, 25, 8, 30, 268, 269, 270, 3, 4, 31, 1082, 1083, 31, 1063, 278, 31, 3, 4, 94, 283, 8, 1093, 18, 68, 23, 25, 22, 25, 24, 43, 25, 18, 1082, 1083, 94, 22, 29, 24, 302, 303, 25, 25, 306, 1093, 308, 309, 310, 109, 110, 111, 62, 19, 21, 25, 318, 319, 64, 3, 4, 25, 324, 93, 94, 68, 25, 25, 69, 8, 3, 4, 94, 27, 18, 31, 66, 66, 22, 73, 24, 23, 25, 36, 21, 18, 22, 106, 19, 22, 28, 24, 69, 68, 74, 114, 115, 116, 117, 68, 94, 363, 364, 365, 366, 23, 368, 26, 25, 94, 40, 40, 28, 375, 63, 26, 135, 68, 380, 33, 72, 69, 69, 21, 25, 87, 87, 18, 390, 69, 26, 393, 394, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 23, 34, 94, 30, 22, 8, 24, 25, 175, 176, 177, 22, 179, 94, 28, 19, 8, 35, 18, 37, 18, 3, 18, 433, 434, 26, 4, 24, 438, 22, 43, 22, 442, 18, 24, 22, 19, 8, 448, 3, 19, 451, 30, 210, 454, 18, 213, 457, 458, 11, 217, 11, 24, 30, 221, 8, 223, 33, 225, 11, 11, 11, 229, 11, 18, 475, 40, 25, 11, 18, 480, 238, 18, 18, 11, 19, 486, 19, 19, 11, 0, 40, 137, 493, 19, 25, 496, 25, 498, 28, 19, 109, 110, 111, 28, 19, 19, 25, 25, 25, 25, 119, 21, 21, 0, 134, 673, 486, 801, 682, 499, 753, 740, 523, 524, 1014, 930, 895, 867, 837, 1006, 1046, 1068, 290, 1033, 1041, 18, 537, 538, 539, 18, 41, 299, 683, 43, 545, 546, 547, 548, 549, 57, 551, 688, 57, 252, 555, 556, 557, 558, 559, 171, 121, 552, 732, 790, 112, 546, 493, 559, 734, 327, 255, 329, 330, 574, 575, 473, 577, 578, 579, 540, 617, 772, 583, 769, 396, 343, 714, 345, 487, 347, 932, 767, 824, 345, 397, 646, 354, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, -1, 24, 25, -1, 27, -1, -1, -1, -1, -1, -1, -1, 35, -1, 37, 38, 39, -1, 636, 42, -1, 639, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, 661, 662, -1, -1, -1, -1, 667, -1, -1, -1, -1, 429, -1, -1, -1, 676, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, -1, 24, 25, -1, -1, 109, 110, 111, -1, 465, -1, -1, 35, -1, 37, 119, -1, -1, 717, -1, -1, 720, -1, -1, -1, 724, -1, -1, -1, -1, -1, 487, -1, 489, -1, 734, -1, -1, -1, -1, -1, -1, -1, 742, -1, 744, -1, -1, -1, -1, 749, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 784, 109, 110, 111, -1, -1, 790, -1, -1, -1, -1, 119, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, -1, 24, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, 37, -1, -1, -1, -1, -1, -1, 837, -1, 839, 3, 4, -1, -1, -1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, -1, 617, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, -1, 42, -1, -1, 882, 883, 884, 885, 886, -1, -1, -1, -1, -1, -1, -1, -1, 895, -1, 60, -1, -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, 921, -1, -1, -1, 88, 89, 90, 91, 92, -1, 688, -1, 690, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, -1, 109, 110, 111, 949, -1, -1, -1, -1, -1, -1, 713, 714, 958, -1, -1, -1, -1, -1, -1, 965, -1, 967, -1, 3, 4, -1, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, 37, -1, -1, -1, -1, -1, 1009, 44, 45, 46, 47, 48, 1015, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1027, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1041, -1, -1, -1, -1, -1, -1, 82, 83, 84, 85, 86, -1, 1054, 1055, 1056, 1057, -1, -1, -1, -1, -1, -1, -1, -1, -1, 824, -1, -1, -1, -1, -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 850, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 874, -1, -1, 877, -1, 879, 880, -1, -1, -1, -1, -1, -1, 887, 888, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, -1, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, 23, 24, 928, -1, -1, -1, -1, -1, -1, -1, 936, -1, 35, -1, 37, 38, 39, 943, 944, 42, -1, 947, 948, -1, -1, -1, -1, -1, -1, -1, 956, -1, -1, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 977, -1, -1, -1, -1, -1, 3, 4, -1, 986, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, -1, 24, 25, -1, 1007, -1, -1, -1, -1, 109, 110, 111, 35, -1, 37, 38, 39, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1033, -1, 1035, 56, 57, 58, 59, 60, 61, -1, -1, -1, 1045, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, -1, 1063, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, -1, 24, 1082, 1083, -1, -1, -1, -1, -1, 109, 110, 111, 35, 1093, 37, 38, 39, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 56, 57, 58, 59, 60, 61, 3, 4, -1, -1, -1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, 3, 4, 22, -1, 24, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 35, -1, 37, 38, 39, 23, 24, 42, -1, -1, -1, -1, -1, -1, -1, 109, 110, 111, -1, -1, -1, 56, 57, 58, 59, 60, 61, 3, 4, -1, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, 3, 4, 22, -1, 24, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 35, -1, 37, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, 99, 100, 101, 102, 103, 104, 105, 106, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, 99, 100, 101, 102, 103, 104, 105, 106, -1, -1, 109, 110, 111, 3, 4, -1, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, 37, 3, 4, -1, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, 23, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, 83, 84, 3, 4, -1, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, 23, 24, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, 35, -1, 37, 3, 4, -1, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, 23, 24, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, 35, -1, 37, 3, 4, -1, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, 37, -1, 109, 110, 111, -1, -1, -1, 3, 4, -1, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, -1, 24, -1, -1, -1, -1, -1, -1, -1, 109, 110, 111, 35, -1, 37, 3, 4, -1, -1, -1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, -1, 24, -1, -1, -1, -1, -1, -1, -1, 109, 110, 111, 35, -1, 37, 3, 4, -1, -1, -1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, 37, -1, 109, 110, 111, -1, -1, -1, 3, 4, -1, -1, -1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 22, -1, 24, -1, -1, -1, -1, -1, -1, -1, 109, 110, 111, 35, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, 111 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/local/gnu/share/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ #ifndef alloca #ifdef __GNUC__ #define alloca __builtin_alloca #else /* not GNU C. */ #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) #include #else /* not sparc */ #if defined (MSDOS) && !defined (__TURBOC__) #include #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) #include #pragma alloca #else /* not MSDOS, __TURBOC__, or _AIX */ #ifdef __hpux #ifdef __cplusplus extern "C" { void *alloca (unsigned int); }; #else /* not __cplusplus */ void *alloca (); #endif /* not __cplusplus */ #endif /* __hpux */ #endif /* not _AIX */ #endif /* not MSDOS, or __TURBOC__ */ #endif /* not sparc. */ #endif /* not GNU C. */ #endif /* alloca not defined. */ /* This is the parser code that is written into each bison parser when the %semantic_parser declaration is not specified in the grammar. It was written by Richard Stallman by simplifying the hairy parser used when %semantic_parser is specified. */ /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action as one case of the switch. */ #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 #define YYACCEPT return(0) #define YYABORT return(1) #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(token, value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { yychar = (token), yylval = (value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { yyerror ("syntax error: cannot back up"); YYERROR; } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 #ifndef YYPURE #define YYLEX yylex() #endif #ifdef YYPURE #ifdef YYLSP_NEEDED #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) #else #define YYLEX yylex(&yylval, &yylloc) #endif #else /* not YYLSP_NEEDED */ #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, YYLEX_PARAM) #else #define YYLEX yylex(&yylval) #endif #endif /* not YYLSP_NEEDED */ #endif /* If nonreentrant, generate the variables here */ #ifndef YYPURE int yychar; /* the lookahead symbol */ YYSTYPE yylval; /* the semantic value of the */ /* lookahead symbol */ #ifdef YYLSP_NEEDED YYLTYPE yylloc; /* location data for the lookahead */ /* symbol */ #endif int yynerrs; /* number of parse errors so far */ #endif /* not YYPURE */ #if YYDEBUG != 0 int yydebug; /* nonzero means print parse trace */ /* Since this is uninitialized, it does not stop multiple parsers from coexisting. */ #endif /* YYINITDEPTH indicates the initial size of the parser's stacks */ #ifndef YYINITDEPTH #define YYINITDEPTH 200 #endif /* YYMAXDEPTH is the maximum size the stacks can grow to (effective only if the built-in stack extension method is used). */ #if YYMAXDEPTH == 0 #undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ int yyparse (void); #endif #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ #ifndef __cplusplus /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (from, to, count) char *from; char *to; int count; { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #else /* __cplusplus */ /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (char *from, char *to, int count) { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #endif #endif #line 192 "/usr/local/gnu/share/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. It should actually point to an object. Grammar actions can access the variable by casting it to the proper pointer type. */ #ifdef YYPARSE_PARAM #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; #else #define YYPARSE_PARAM #define YYPARSE_PARAM_DECL #endif int yyparse(YYPARSE_PARAM) YYPARSE_PARAM_DECL { register int yystate; register int yyn; register short *yyssp; register YYSTYPE *yyvsp; int yyerrstatus; /* number of tokens to shift before error messages enabled */ int yychar1 = 0; /* lookahead token as an internal (translated) token number */ short yyssa[YYINITDEPTH]; /* the state stack */ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ short *yyss = yyssa; /* refer to the stacks thru separate pointers */ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ #ifdef YYLSP_NEEDED YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else #define YYPOPSTACK (yyvsp--, yyssp--) #endif int yystacksize = YYINITDEPTH; #ifdef YYPURE int yychar; YYSTYPE yylval; int yynerrs; #ifdef YYLSP_NEEDED YYLTYPE yylloc; #endif #endif YYSTYPE yyval; /* the variable used to return */ /* semantic values from the action */ /* routines */ int yylen; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Starting parse\n"); #endif yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss - 1; yyvsp = yyvs; #ifdef YYLSP_NEEDED yylsp = yyls; #endif /* Push a new state, which is found in yystate . */ /* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ yynewstate: *++yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) { /* Give user a chance to reallocate the stack */ /* Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; #ifdef YYLSP_NEEDED YYLTYPE *yyls1 = yyls; #endif /* Get the current used size of the three stacks, in elements. */ int size = yyssp - yyss + 1; #ifdef yyoverflow /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. */ #ifdef YYLSP_NEEDED /* This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yyls1, size * sizeof (*yylsp), &yystacksize); #else yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yystacksize); #endif yyss = yyss1; yyvs = yyvs1; #ifdef YYLSP_NEEDED yyls = yyls1; #endif #else /* no yyoverflow */ /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp)); yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ yyssp = yyss + size - 1; yyvsp = yyvs + size - 1; #ifdef YYLSP_NEEDED yylsp = yyls + size - 1; #endif #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Stack size increased to %d\n", yystacksize); #endif if (yyssp >= yyss + yystacksize - 1) YYABORT; } #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Entering state %d\n", yystate); #endif goto yybackup; yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ /* yyresume: */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYFLAG) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* yychar is either YYEMPTY or YYEOF or a valid token in external form. */ if (yychar == YYEMPTY) { #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Reading a token: "); #endif yychar = YYLEX; } /* Convert token to internal form (in yychar1) for indexing tables with */ if (yychar <= 0) /* This means end of input. */ { yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Now at end of input.\n"); #endif } else { yychar1 = YYTRANSLATE(yychar); #if YYDEBUG != 0 if (yydebug) { fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); /* Give the individual parser a way to print the precise meaning of a token, for further debugging info. */ #ifdef YYPRINT YYPRINT (stderr, yychar, yylval); #endif fprintf (stderr, ")\n"); } #endif } yyn += yychar1; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) goto yydefault; yyn = yytable[yyn]; /* yyn is what to do for this token type in this state. Negative => reduce, -yyn is rule number. Positive => shift, yyn is new state. New state is final state => don't bother to shift, just return success. 0, or most negative number => error. */ if (yyn < 0) { if (yyn == YYFLAG) goto yyerrlab; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); #endif /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif /* count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; /* Do the default action for the current state. */ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; /* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: yylen = yyr2[yyn]; if (yylen > 0) yyval = yyvsp[1-yylen]; /* implement default value of the action */ #if YYDEBUG != 0 if (yydebug) { int i; fprintf (stderr, "Reducing via rule %d (line %d), ", yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) fprintf (stderr, "%s ", yytname[yyrhs[i]]); fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif switch (yyn) { case 2: #line 333 "yaccParser/hsparser.y" { the_module_name = yyvsp[-1].uid; module_exports = yyvsp[0].ulist; ; break;} case 4: #line 335 "yaccParser/hsparser.y" { the_module_name = install_literal("Main"); module_exports = Lnil; ; break;} case 6: #line 341 "yaccParser/hsparser.y" { root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-3].ulist),module_exports,yyvsp[-1].ubinding,startlineno); ; break;} case 7: #line 345 "yaccParser/hsparser.y" { root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-3].ulist),module_exports,yyvsp[-1].ubinding,startlineno); ; break;} case 8: #line 350 "yaccParser/hsparser.y" { root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno); ; break;} case 9: #line 354 "yaccParser/hsparser.y" { root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno); ; break;} case 10: #line 360 "yaccParser/hsparser.y" { root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno); ; break;} case 11: #line 364 "yaccParser/hsparser.y" { root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno); ; break;} case 12: #line 370 "yaccParser/hsparser.y" { yyval.ulist = Lnil; ; break;} case 13: #line 371 "yaccParser/hsparser.y" { yyval.ulist = yyvsp[-1].ulist; ; break;} case 14: #line 375 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uentid); ; break;} case 15: #line 376 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uentid); ; break;} case 16: #line 380 "yaccParser/hsparser.y" { yyval.uentid = mkentid(yyvsp[0].uid); ; break;} case 17: #line 381 "yaccParser/hsparser.y" { yyval.uentid = mkenttype(yyvsp[0].uid); ; break;} case 18: #line 382 "yaccParser/hsparser.y" { yyval.uentid = mkenttypeall(yyvsp[-3].uid); ; break;} case 19: #line 384 "yaccParser/hsparser.y" { yyval.uentid = mkenttypecons(yyvsp[-3].uid,yyvsp[-1].ulist); /* should be a datatype with cons representing all constructors */ ; break;} case 20: #line 388 "yaccParser/hsparser.y" { yyval.uentid = mkentclass(yyvsp[-3].uid,yyvsp[-1].ulist); /* should be a class with vars representing all Class operations */ ; break;} case 21: #line 392 "yaccParser/hsparser.y" { yyval.uentid = mkentclass(yyvsp[-2].uid,Lnil); /* "tycon" should be a class with no operations */ ; break;} case 22: #line 396 "yaccParser/hsparser.y" { yyval.uentid = mkentmod(yyvsp[-1].uid); /* "tycon" is a module id (but "modid" is bad for your identifier's health [KH]) */ ; break;} case 23: #line 402 "yaccParser/hsparser.y" { yyval.ulist = yyvsp[-1].ulist; hidden = FALSE; ; break;} case 24: #line 403 "yaccParser/hsparser.y" { yyval.ulist = yyvsp[-1].ulist; hidden = TRUE; ; break;} case 25: #line 404 "yaccParser/hsparser.y" { yyval.ulist = Lnil; hidden = FALSE; ; break;} case 26: #line 407 "yaccParser/hsparser.y" { yyval.ulist = Lnil; ; break;} case 27: #line 408 "yaccParser/hsparser.y" { yyval.ulist = yyvsp[0].ulist; ; break;} case 28: #line 412 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uentid); ; break;} case 29: #line 413 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uentid); ; break;} case 30: #line 417 "yaccParser/hsparser.y" { yyval.uentid = mkentid(yyvsp[0].uid); ; break;} case 31: #line 418 "yaccParser/hsparser.y" { yyval.uentid = mkenttype(yyvsp[0].uid); ; break;} case 32: #line 419 "yaccParser/hsparser.y" { yyval.uentid = mkenttypeall(yyvsp[-3].uid); ; break;} case 33: #line 421 "yaccParser/hsparser.y" { yyval.uentid = mkenttypecons(yyvsp[-3].uid,yyvsp[-1].ulist); /* should be a datatype with cons representing all constructors */ ; break;} case 34: #line 425 "yaccParser/hsparser.y" { yyval.uentid = mkentclass(yyvsp[-3].uid,yyvsp[-1].ulist); /* should be a class with vars representing all Class operations */ ; break;} case 35: #line 429 "yaccParser/hsparser.y" { yyval.uentid = mkentclass(yyvsp[-2].uid,Lnil); /* "tycon" should be a class with no operations */ ; break;} case 36: #line 438 "yaccParser/hsparser.y" { yyval.uhpragma = mkidata_pragma(yyvsp[-2].ulist, yyvsp[-1].ulist); ; break;} case 37: #line 440 "yaccParser/hsparser.y" { yyval.uhpragma = mkidata_pragma(Lnil, yyvsp[-1].ulist); ; break;} case 38: #line 441 "yaccParser/hsparser.y" { yyval.uhpragma = mkno_pragma(); ; break;} case 39: #line 446 "yaccParser/hsparser.y" { yyval.ulist = yyvsp[0].ulist; ; break;} case 40: #line 447 "yaccParser/hsparser.y" { yyval.ulist = Lnil; ; break;} case 41: #line 451 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uhpragma); ; break;} case 42: #line 453 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ; break;} case 43: #line 457 "yaccParser/hsparser.y" { yyval.uhpragma = mkidata_pragma_4s(yyvsp[-1].ulist); ; break;} case 44: #line 461 "yaccParser/hsparser.y" { yyval.uhpragma = mkitype_pragma(); ; break;} case 45: #line 462 "yaccParser/hsparser.y" { yyval.uhpragma = mkno_pragma(); ; break;} case 46: #line 466 "yaccParser/hsparser.y" { yyval.uhpragma = mkiclas_pragma(yyvsp[-1].ulist); ; break;} case 47: #line 467 "yaccParser/hsparser.y" { yyval.uhpragma = mkno_pragma(); ; break;} case 48: #line 472 "yaccParser/hsparser.y" { yyval.uhpragma = mkiclasop_pragma(yyvsp[-2].uhpragma, yyvsp[-1].uhpragma); ; break;} case 49: #line 474 "yaccParser/hsparser.y" { yyval.uhpragma = mkno_pragma(); ; break;} case 50: #line 479 "yaccParser/hsparser.y" { yyval.uhpragma = mkiinst_simpl_pragma(yyvsp[-2].uid, yyvsp[-1].uhpragma); ; break;} case 51: #line 482 "yaccParser/hsparser.y" { yyval.uhpragma = mkiinst_const_pragma(yyvsp[-3].uid, yyvsp[-2].uhpragma, yyvsp[-1].ulist); ; break;} case 52: #line 485 "yaccParser/hsparser.y" { yyval.uhpragma = mkno_pragma(); ; break;} case 53: #line 490 "yaccParser/hsparser.y" { yyval.uid = yyvsp[0].uid; ; break;} case 54: #line 492 "yaccParser/hsparser.y" { yyval.uid = install_literal(""); ; break;} case 55: #line 497 "yaccParser/hsparser.y" { yyval.uhpragma = yyvsp[-1].uhpragma; ; break;} case 56: #line 499 "yaccParser/hsparser.y" { yyval.uhpragma = mkno_pragma(); ; break;} case 57: #line 504 "yaccParser/hsparser.y" { yyval.uhpragma = mkno_pragma(); ; break;} case 58: #line 506 "yaccParser/hsparser.y" { yyval.uhpragma = mkigen_pragma(yyvsp[-5].uhpragma, yyvsp[-4].uhpragma, yyvsp[-3].uhpragma, yyvsp[-2].uhpragma, yyvsp[-1].uhpragma, yyvsp[0].ulist); ; break;} case 59: #line 510 "yaccParser/hsparser.y" { yyval.uhpragma = mkno_pragma(); ; break;} case 60: #line 511 "yaccParser/hsparser.y" { yyval.uhpragma = mkiarity_pragma(yyvsp[0].ustring); ; break;} case 61: #line 515 "yaccParser/hsparser.y" { yyval.uhpragma = mkno_pragma(); ; break;} case 62: #line 516 "yaccParser/hsparser.y" { yyval.uhpragma = mkiupdate_pragma(yyvsp[0].ustring); ; break;} case 63: #line 520 "yaccParser/hsparser.y" { yyval.uhpragma = mkno_pragma(); ; break;} case 64: #line 521 "yaccParser/hsparser.y" { yyval.uhpragma = mkideforest_pragma(); ; break;} case 65: #line 525 "yaccParser/hsparser.y" { yyval.uhpragma = mkno_pragma(); ; break;} case 66: #line 526 "yaccParser/hsparser.y" { yyval.uhpragma = mkistrictness_pragma(installHstring(1, "B"), /* _!_ = COCON = bottom */ mkno_pragma()); ; break;} case 67: #line 530 "yaccParser/hsparser.y" { yyval.uhpragma = mkistrictness_pragma(yyvsp[-1].uhstring, yyvsp[0].uhpragma); ; break;} case 68: #line 534 "yaccParser/hsparser.y" { yyval.uhpragma = yyvsp[-1].uhpragma; ; break;} case 69: #line 535 "yaccParser/hsparser.y" { yyval.uhpragma = mkno_pragma(); ; break;} case 70: #line 538 "yaccParser/hsparser.y" { yyval.uhpragma = mkno_pragma(); ; break;} case 71: #line 540 "yaccParser/hsparser.y" { yyval.uhpragma = mkimagic_unfolding_pragma(yyvsp[0].uid); ; break;} case 72: #line 542 "yaccParser/hsparser.y" { yyval.uhpragma = mkiunfolding_pragma(yyvsp[-1].uhpragma, yyvsp[0].ucoresyn); ; break;} case 73: #line 547 "yaccParser/hsparser.y" { yyval.uhpragma = mkiunfold_always(); ; break;} case 74: #line 549 "yaccParser/hsparser.y" { yyval.uhpragma = mkiunfold_if_args(yyvsp[-3].ustring, yyvsp[-2].ustring, yyvsp[-1].uid, yyvsp[0].ustring); ; break;} case 75: #line 553 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uhpragma); ; break;} case 76: #line 554 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ; break;} case 77: #line 558 "yaccParser/hsparser.y" { yyval.ulist = Lnil; ; break;} case 78: #line 559 "yaccParser/hsparser.y" { yyval.ulist = yyvsp[0].ulist; ; break;} case 79: #line 563 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uhpragma); ; break;} case 80: #line 564 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ; break;} case 81: #line 569 "yaccParser/hsparser.y" { yyval.uhpragma = mkitype_pragma_pr(yyvsp[-3].ulist, yyvsp[-1].ustring, yyvsp[0].uhpragma); ; break;} case 82: #line 573 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uttype); ; break;} case 83: #line 574 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uttype); ; break;} case 84: #line 578 "yaccParser/hsparser.y" { yyval.uttype = mkty_maybe_nothing(); ; break;} case 85: #line 579 "yaccParser/hsparser.y" { yyval.uttype = mkty_maybe_just(yyvsp[0].uttype); ; break;} case 86: #line 583 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uhpragma); ; break;} case 87: #line 584 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ; break;} case 88: #line 593 "yaccParser/hsparser.y" { yyval.uhpragma = mkiname_pragma_pr(yyvsp[-4].uid, yyvsp[-1].uhpragma); ; break;} case 89: #line 599 "yaccParser/hsparser.y" { yyval.uhpragma = mkiname_pragma_pr(yyvsp[-2].uid, yyvsp[0].uhpragma); ; break;} case 90: #line 610 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcolam(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ; break;} case 91: #line 612 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcotylam(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ; break;} case 92: #line 614 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcocon(mkco_id(yyvsp[-2].uid), yyvsp[-1].ulist, yyvsp[0].ulist); ; break;} case 93: #line 616 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcocon(mkco_orig_id(yyvsp[-3].uid,yyvsp[-2].uid), yyvsp[-1].ulist, yyvsp[0].ulist); ; break;} case 94: #line 618 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcoprim(yyvsp[-2].ucoresyn, yyvsp[-1].ulist, yyvsp[0].ulist); ; break;} case 95: #line 620 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcoapp(yyvsp[-1].ucoresyn, yyvsp[0].ulist); ; break;} case 96: #line 622 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcotyapp(yyvsp[-3].ucoresyn, yyvsp[-1].uttype); ; break;} case 97: #line 624 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcocase(yyvsp[-4].ucoresyn, yyvsp[-1].ucoresyn); ; break;} case 98: #line 626 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcolet(mkcononrec(yyvsp[-5].ucoresyn, yyvsp[-3].ucoresyn), yyvsp[0].ucoresyn); ; break;} case 99: #line 628 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcolet(mkcorec(yyvsp[-3].ulist), yyvsp[0].ucoresyn); ; break;} case 100: #line 630 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcoscc(yyvsp[-2].ucoresyn, yyvsp[0].ucoresyn); ; break;} case 101: #line 631 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcoliteral(yyvsp[0].uliteral); ; break;} case 102: #line 632 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcovar(yyvsp[0].ucoresyn); ; break;} case 103: #line 637 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcoalg_alts(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ; break;} case 104: #line 639 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcoprim_alts(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ; break;} case 105: #line 643 "yaccParser/hsparser.y" { yyval.ulist = Lnil; ; break;} case 106: #line 644 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ; break;} case 107: #line 648 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcoalg_alt(yyvsp[-4].ucoresyn, yyvsp[-3].ulist, yyvsp[-1].ucoresyn); ; break;} case 108: #line 653 "yaccParser/hsparser.y" { yyval.ulist = Lnil; ; break;} case 109: #line 654 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ; break;} case 110: #line 658 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcoprim_alt(yyvsp[-3].uliteral, yyvsp[-1].ucoresyn); ; break;} case 111: #line 662 "yaccParser/hsparser.y" { yyval.ucoresyn = mkconodeflt(); ; break;} case 112: #line 663 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcobinddeflt(yyvsp[-2].ucoresyn, yyvsp[0].ucoresyn); ; break;} case 113: #line 667 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].ucoresyn); ; break;} case 114: #line 668 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ; break;} case 115: #line 672 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcorec_pair(yyvsp[-2].ucoresyn, yyvsp[0].ucoresyn); ; break;} case 116: #line 676 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_preludedictscc(yyvsp[0].ucoresyn); ; break;} case 117: #line 677 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_alldictscc(yyvsp[-2].uhstring,yyvsp[-1].uhstring,yyvsp[0].ucoresyn); ; break;} case 118: #line 679 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_usercc(yyvsp[-4].uhstring,yyvsp[-3].uhstring,yyvsp[-2].uhstring,yyvsp[-1].ucoresyn,yyvsp[0].ucoresyn); ; break;} case 119: #line 681 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_autocc(yyvsp[-4].ucoresyn,yyvsp[-3].uhstring,yyvsp[-2].uhstring,yyvsp[-1].ucoresyn,yyvsp[0].ucoresyn); ; break;} case 120: #line 683 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_dictcc(yyvsp[-4].ucoresyn,yyvsp[-3].uhstring,yyvsp[-2].uhstring,yyvsp[-1].ucoresyn,yyvsp[0].ucoresyn); ; break;} case 121: #line 685 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_scc_noncaf(); ; break;} case 122: #line 686 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_scc_caf(); ; break;} case 123: #line 688 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_scc_nondupd(); ; break;} case 124: #line 689 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_scc_dupd(); ; break;} case 125: #line 692 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_sdselid(yyvsp[-1].uid, yyvsp[0].uid); ; break;} case 126: #line 693 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_classopid(yyvsp[-1].uid, yyvsp[0].uid); ; break;} case 127: #line 694 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_defmid(yyvsp[-1].uid, yyvsp[0].uid); ; break;} case 128: #line 696 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_dfunid(yyvsp[-3].uid, yyvsp[-1].uttype); ; break;} case 129: #line 698 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_constmid(yyvsp[-4].uid, yyvsp[-3].uid, yyvsp[-1].uttype); ; break;} case 130: #line 700 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_specid(yyvsp[-3].ucoresyn, yyvsp[-1].ulist); ; break;} case 131: #line 701 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_wrkrid(yyvsp[0].ucoresyn); ; break;} case 132: #line 702 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_orig_id(yyvsp[-1].uid, yyvsp[0].uid); ; break;} case 133: #line 703 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_orig_id(yyvsp[-1].uid, yyvsp[0].uid); ; break;} case 134: #line 704 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_id(yyvsp[0].uid); ; break;} case 135: #line 705 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_id(yyvsp[0].uid); ; break;} case 136: #line 710 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_ccall(yyvsp[-5].uid,0,yyvsp[-3].ulist,yyvsp[-2].uttype); ; break;} case 137: #line 712 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_ccall(yyvsp[-5].uid,1,yyvsp[-3].ulist,yyvsp[-2].uttype); ; break;} case 138: #line 714 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_casm(yyvsp[-5].uliteral,0,yyvsp[-3].ulist,yyvsp[-2].uttype); ; break;} case 139: #line 716 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_casm(yyvsp[-5].uliteral,1,yyvsp[-3].ulist,yyvsp[-2].uttype); ; break;} case 140: #line 717 "yaccParser/hsparser.y" { yyval.ucoresyn = mkco_primop(yyvsp[0].uid); ; break;} case 141: #line 721 "yaccParser/hsparser.y" { yyval.ulist = Lnil; ; break;} case 142: #line 722 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ; break;} case 143: #line 726 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcobinder(yyvsp[-3].uid, yyvsp[-1].uttype); ; break;} case 144: #line 729 "yaccParser/hsparser.y" { yyval.ulist = Lnil; ; break;} case 145: #line 730 "yaccParser/hsparser.y" { yyval.ulist = yyvsp[-1].ulist; ; break;} case 146: #line 734 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].ucoresyn); ; break;} case 147: #line 735 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ; break;} case 148: #line 739 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcolit(yyvsp[0].uliteral); ; break;} case 149: #line 740 "yaccParser/hsparser.y" { yyval.ucoresyn = mkcolocal(yyvsp[0].ucoresyn); ; break;} case 150: #line 744 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uid); ; break;} case 151: #line 745 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].uid); ; break;} case 152: #line 749 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uid); ; break;} case 153: #line 750 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uid); ; break;} case 154: #line 754 "yaccParser/hsparser.y" { yyval.ulist = Lnil; ; break;} case 155: #line 755 "yaccParser/hsparser.y" { yyval.ulist = yyvsp[-1].ulist; ; break;} case 156: #line 759 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uttype); ; break;} case 157: #line 760 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uttype); ; break;} case 158: #line 764 "yaccParser/hsparser.y" { yyval.uttype = yyvsp[0].uttype; ; break;} case 159: #line 784 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uttype); ; break;} case 160: #line 785 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uttype); ; break;} case 161: #line 789 "yaccParser/hsparser.y" { yyval.uttype = mkty_maybe_nothing(); ; break;} case 162: #line 790 "yaccParser/hsparser.y" { yyval.uttype = mkty_maybe_just(yyvsp[0].uttype); ; break;} case 163: #line 796 "yaccParser/hsparser.y" { if ( implicitPrelude && !etags ) { /* we try to avoid reading interfaces when etagging */ find_module_on_imports_dirlist( (haskell1_3Flag) ? "PrelCore13" : "PreludeCore", TRUE,interface_filename); } else { find_module_on_imports_dirlist("PreludeNull_",TRUE,interface_filename); } thisIfacePragmaVersion = 0; setyyin(interface_filename); enteriscope(); ; break;} case 164: #line 810 "yaccParser/hsparser.y" { binding prelude_core = mkimport(installid(iface_name),Lnil,Lnil,yyvsp[0].ubinding,xstrdup(interface_filename),hsplineno); prelude_core_import = implicitPrelude? lsing(prelude_core): Lnil; ; break;} case 165: #line 818 "yaccParser/hsparser.y" { if ( implicitPrelude && !etags ) { find_module_on_imports_dirlist( ( haskell1_3Flag ) ? "Prel13" : "Prelude", TRUE,interface_filename); } else { find_module_on_imports_dirlist("PreludeNull_",TRUE,interface_filename); } thisIfacePragmaVersion = 0; setyyin(interface_filename); enteriscope(); ; break;} case 166: #line 831 "yaccParser/hsparser.y" { binding prelude = mkimport(installid(iface_name),Lnil,Lnil,yyvsp[0].ubinding,xstrdup(interface_filename),hsplineno); prelude_imports = (! implicitPrelude) ? Lnil : lconc(prelude_core_import,lsing(prelude)); ; break;} case 167: #line 838 "yaccParser/hsparser.y" { yyval.ulist = Lnil; ; break;} case 168: #line 839 "yaccParser/hsparser.y" { yyval.ulist = yyvsp[-1].ulist; ; break;} case 169: #line 842 "yaccParser/hsparser.y" { yyval.ulist = yyvsp[0].ulist; ; break;} case 170: #line 843 "yaccParser/hsparser.y" { yyval.ulist = lconc(yyvsp[-2].ulist,yyvsp[0].ulist); ; break;} case 171: #line 847 "yaccParser/hsparser.y" { /* filename returned in "interface_filename" */ char *module_name = id_to_string(yyvsp[0].uid); if ( ! etags ) { find_module_on_imports_dirlist( (haskell1_3Flag && strcmp(module_name, "Prelude") == 0) ? "Prel13" : module_name, FALSE, interface_filename); } else { find_module_on_imports_dirlist("PreludeNull_",TRUE,interface_filename); } thisIfacePragmaVersion = 0; setyyin(interface_filename); enteriscope(); if (strcmp(module_name,"PreludeCore")==0) { hsperror("Cannot explicitly import `PreludeCore'"); } else if (strcmp(module_name,"Prelude")==0) { prelude_imports = prelude_core_import; /* unavoidable */ } ; break;} case 172: #line 868 "yaccParser/hsparser.y" { if (hidden) yyvsp[0].ubinding->tag = hiding; yyval.ulist = lsing(yyvsp[0].ubinding); ; break;} case 173: #line 876 "yaccParser/hsparser.y" { yyval.ubinding = mkimport(installid(iface_name),yyvsp[0].ulist,Lnil,yyvsp[-1].ubinding,xstrdup(interface_filename),hsplineno); ; break;} case 174: #line 879 "yaccParser/hsparser.y" { yyval.ubinding = mkimport(installid(iface_name),yyvsp[-2].ulist,yyvsp[0].ulist,yyvsp[-3].ubinding,xstrdup(interface_filename),hsplineno); ; break;} case 175: #line 884 "yaccParser/hsparser.y" { exposeis(); /* partain: expose infix ops at level i+1 to level i */ yyval.ubinding = yyvsp[-1].ubinding; ; break;} case 176: #line 890 "yaccParser/hsparser.y" { yyval.ulist = yyvsp[-1].ulist; ; break;} case 177: #line 894 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].ulist); ; break;} case 178: #line 895 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].ulist); ; break;} case 179: #line 898 "yaccParser/hsparser.y" { yyval.ulist = ldub(yyvsp[-2].uid,yyvsp[0].uid); ; break;} case 180: #line 899 "yaccParser/hsparser.y" { yyval.ulist = ldub(yyvsp[-2].uid,yyvsp[0].uid); ; break;} case 181: #line 902 "yaccParser/hsparser.y" { yyval.ubinding = mknullbind(); ; break;} case 182: #line 903 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[-1].ubinding; ; break;} case 183: #line 906 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[0].ubinding; ; break;} case 184: #line 907 "yaccParser/hsparser.y" { yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding); ; break;} case 185: #line 911 "yaccParser/hsparser.y" { yyval.ubinding = mkmbind(yyvsp[-3].uid,yyvsp[-1].ulist,Lnil,startlineno); ; break;} case 186: #line 913 "yaccParser/hsparser.y" { yyval.ubinding = mkmbind(yyvsp[-5].uid,yyvsp[-3].ulist,yyvsp[0].ulist,startlineno); ; break;} case 187: #line 919 "yaccParser/hsparser.y" { /* OLD 95/08: fixlist = Lnil; */ strcpy(iface_name, id_to_string(yyvsp[0].uid)); ; break;} case 188: #line 923 "yaccParser/hsparser.y" { /* WDP: not only do we not check the module name but we take the one in the interface to be what we really want -- we need this for Prelude jiggery-pokery. (Blech. KH) ToDo: possibly revert.... checkmodname(modname,id_to_string($2)); */ yyval.ubinding = yyvsp[0].ubinding; ; break;} case 189: #line 936 "yaccParser/hsparser.y" { yyval.ubinding = mkabind(yyvsp[-3].ubinding,yyvsp[-1].ubinding); ; break;} case 190: #line 940 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[-1].ubinding; ; break;} case 191: #line 944 "yaccParser/hsparser.y" { yyval.ubinding = mkabind(yyvsp[-3].ubinding,yyvsp[-1].ubinding); ; break;} case 192: #line 948 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[-1].ubinding; ; break;} case 197: #line 963 "yaccParser/hsparser.y" { Precedence = checkfixity(yyvsp[0].ustring); Fixity = INFIXL; ; break;} case 199: #line 966 "yaccParser/hsparser.y" { Precedence = checkfixity(yyvsp[0].ustring); Fixity = INFIXR; ; break;} case 201: #line 969 "yaccParser/hsparser.y" { Precedence = checkfixity(yyvsp[0].ustring); Fixity = INFIX; ; break;} case 203: #line 972 "yaccParser/hsparser.y" { Fixity = INFIXL; Precedence = 9; ; break;} case 205: #line 975 "yaccParser/hsparser.y" { Fixity = INFIXR; Precedence = 9; ; break;} case 207: #line 978 "yaccParser/hsparser.y" { Fixity = INFIX; Precedence = 9; ; break;} case 209: #line 982 "yaccParser/hsparser.y" { makeinfix(id_to_string(yyvsp[0].uid),Fixity,Precedence); ; break;} case 210: #line 983 "yaccParser/hsparser.y" { makeinfix(id_to_string(yyvsp[0].uid),Fixity,Precedence); ; break;} case 212: #line 988 "yaccParser/hsparser.y" { if(yyvsp[-2].ubinding != NULL) if(yyvsp[0].ubinding != NULL) if(SAMEFN) { extendfn(yyvsp[-2].ubinding,yyvsp[0].ubinding); yyval.ubinding = yyvsp[-2].ubinding; } else yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding); else yyval.ubinding = yyvsp[-2].ubinding; else yyval.ubinding = yyvsp[0].ubinding; SAMEFN = 0; ; break;} case 213: #line 1006 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[0].ubinding; ; break;} case 214: #line 1007 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[0].ubinding; ; break;} case 215: #line 1008 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[0].ubinding; ; break;} case 216: #line 1009 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[0].ubinding; ; break;} case 217: #line 1010 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[0].ubinding; ; break;} case 218: #line 1011 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[0].ubinding; ; break;} case 219: #line 1014 "yaccParser/hsparser.y" { yyval.ubinding = mknbind(yyvsp[-2].uttype,yyvsp[0].uttype,startlineno,mkno_pragma()); ; break;} case 220: #line 1019 "yaccParser/hsparser.y" { yyval.ubinding = mktbind(yyvsp[-4].ulist,yyvsp[-2].uttype,yyvsp[0].ulist,all,startlineno,mkno_pragma()); ; break;} case 221: #line 1021 "yaccParser/hsparser.y" { yyval.ubinding = mktbind(Lnil,yyvsp[-2].uttype,yyvsp[0].ulist,all,startlineno,mkno_pragma()); ; break;} case 222: #line 1023 "yaccParser/hsparser.y" { yyval.ubinding = mktbind(yyvsp[-6].ulist,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ; break;} case 223: #line 1025 "yaccParser/hsparser.y" { yyval.ubinding = mktbind(Lnil,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ; break;} case 224: #line 1028 "yaccParser/hsparser.y" { yyval.ubinding = mkcbind(yyvsp[-3].ulist,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ; break;} case 225: #line 1029 "yaccParser/hsparser.y" { yyval.ubinding = mkcbind(Lnil,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ; break;} case 226: #line 1032 "yaccParser/hsparser.y" { yyval.ubinding = mknullbind(); ; break;} case 227: #line 1033 "yaccParser/hsparser.y" { checkorder(yyvsp[-1].ubinding); yyval.ubinding = yyvsp[-1].ubinding; ; break;} case 228: #line 1034 "yaccParser/hsparser.y" { checkorder(yyvsp[-1].ubinding); yyval.ubinding =yyvsp[-1].ubinding; ; break;} case 229: #line 1037 "yaccParser/hsparser.y" { yyval.ubinding = mkibind(yyvsp[-4].ulist,yyvsp[-2].uid,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ; break;} case 230: #line 1038 "yaccParser/hsparser.y" { yyval.ubinding = mkibind(Lnil,yyvsp[-2].uid,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ; break;} case 231: #line 1041 "yaccParser/hsparser.y" { yyval.ubinding = mknullbind(); ; break;} case 232: #line 1042 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[-1].ubinding; ; break;} case 233: #line 1043 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[-1].ubinding; ; break;} case 234: #line 1046 "yaccParser/hsparser.y" { yyval.uttype = mktname(yyvsp[0].uid,Lnil); ; break;} case 235: #line 1047 "yaccParser/hsparser.y" { yyval.uttype = mktname(yyvsp[-2].uid,yyvsp[-1].ulist); ; break;} case 236: #line 1048 "yaccParser/hsparser.y" { yyval.uttype = mkttuple(mklcons(yyvsp[-3].uttype,yyvsp[-1].ulist)); ; break;} case 237: #line 1049 "yaccParser/hsparser.y" { yyval.uttype = mkttuple(Lnil); ; break;} case 238: #line 1050 "yaccParser/hsparser.y" { yyval.uttype = mktllist(yyvsp[-1].uttype); ; break;} case 239: #line 1051 "yaccParser/hsparser.y" { yyval.uttype = mktfun(yyvsp[-3].uttype,yyvsp[-1].uttype); ; break;} case 240: #line 1054 "yaccParser/hsparser.y" { yyval.uttype = mktname(yyvsp[0].uid,Lnil); ; break;} case 241: #line 1055 "yaccParser/hsparser.y" { yyval.uttype = mktname(yyvsp[-2].uid,yyvsp[-1].ulist); ; break;} case 242: #line 1056 "yaccParser/hsparser.y" { yyval.uttype = mkttuple(mklcons(yyvsp[-3].uttype,yyvsp[-1].ulist)); ; break;} case 243: #line 1057 "yaccParser/hsparser.y" { yyval.uttype = mkttuple(Lnil); ; break;} case 244: #line 1058 "yaccParser/hsparser.y" { yyval.uttype = mktllist(yyvsp[-1].uttype); ; break;} case 245: #line 1059 "yaccParser/hsparser.y" { yyval.uttype = mktfun(yyvsp[-3].uttype,yyvsp[-1].uttype); ; break;} case 246: #line 1062 "yaccParser/hsparser.y" { yyval.ubinding = mkdbind(yyvsp[0].ulist,startlineno); ; break;} case 247: #line 1065 "yaccParser/hsparser.y" { yyval.ulist = mklcons(yyvsp[-3].uttype,yyvsp[-1].ulist); ; break;} case 248: #line 1066 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uttype); ; break;} case 250: #line 1075 "yaccParser/hsparser.y" { if(SAMEFN) { extendfn(yyvsp[-2].ubinding,yyvsp[0].ubinding); yyval.ubinding = yyvsp[-2].ubinding; } else yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding); ; break;} case 251: #line 1104 "yaccParser/hsparser.y" { /* type2context.c for code */ yyval.ubinding = mksbind(yyvsp[-5].ulist,mkcontext(type2context(yyvsp[-3].uttype),yyvsp[-1].uttype),startlineno,yyvsp[0].uhpragma); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ; break;} case 252: #line 1109 "yaccParser/hsparser.y" { yyval.ubinding = mksbind(yyvsp[-3].ulist,yyvsp[-1].uttype,startlineno,yyvsp[0].uhpragma); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ; break;} case 253: #line 1122 "yaccParser/hsparser.y" { yyval.ubinding = mkvspec_uprag(yyvsp[-3].uid, yyvsp[-1].ulist, startlineno); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ; break;} case 254: #line 1128 "yaccParser/hsparser.y" { yyval.ubinding = mkispec_uprag(yyvsp[-2].uid, yyvsp[-1].uttype, startlineno); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ; break;} case 255: #line 1134 "yaccParser/hsparser.y" { yyval.ubinding = mkdspec_uprag(yyvsp[-2].uid, yyvsp[-1].ulist, startlineno); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ; break;} case 256: #line 1140 "yaccParser/hsparser.y" { yyval.ubinding = mkinline_uprag(yyvsp[-2].uid, yyvsp[-1].ulist, startlineno); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ; break;} case 257: #line 1146 "yaccParser/hsparser.y" { yyval.ubinding = mkmagicuf_uprag(yyvsp[-2].uid, yyvsp[-1].uid, startlineno); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ; break;} case 258: #line 1152 "yaccParser/hsparser.y" { yyval.ubinding = mkdeforest_uprag(yyvsp[-1].uid, startlineno); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ; break;} case 259: #line 1158 "yaccParser/hsparser.y" { yyval.ubinding = mkabstract_uprag(yyvsp[-1].uid, startlineno); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ; break;} case 261: #line 1166 "yaccParser/hsparser.y" { yyval.ubinding = mknullbind(); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ; break;} case 262: #line 1170 "yaccParser/hsparser.y" { yyval.ulist = Lnil; ; break;} case 263: #line 1171 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uid); ; break;} case 264: #line 1174 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].ubinding); ; break;} case 265: #line 1175 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].ubinding); ; break;} case 266: #line 1179 "yaccParser/hsparser.y" { yyval.ubinding = mkvspec_ty_and_id(yyvsp[0].uttype,Lnil); ; break;} case 267: #line 1180 "yaccParser/hsparser.y" { yyval.ubinding = mkvspec_ty_and_id(yyvsp[-2].uttype,lsing(yyvsp[0].uid)); ; break;} case 268: #line 1182 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[0].ubinding; ; break;} case 269: #line 1183 "yaccParser/hsparser.y" { yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding); ; break;} case 270: #line 1186 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[0].ubinding; ; break;} case 271: #line 1187 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[0].ubinding; ; break;} case 272: #line 1188 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[0].ubinding; ; break;} case 273: #line 1189 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[0].ubinding; ; break;} case 274: #line 1190 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[0].ubinding; ; break;} case 275: #line 1191 "yaccParser/hsparser.y" { yyval.ubinding = mknullbind(); ; break;} case 276: #line 1196 "yaccParser/hsparser.y" { yyval.ubinding = mksbind(yyvsp[-5].ulist,mkcontext(type2context(yyvsp[-3].uttype),yyvsp[-1].uttype),startlineno,yyvsp[0].uhpragma); ; break;} case 277: #line 1198 "yaccParser/hsparser.y" { yyval.ubinding = mksbind(yyvsp[-3].ulist,yyvsp[-1].uttype,startlineno,yyvsp[0].uhpragma); ; break;} case 278: #line 1202 "yaccParser/hsparser.y" { yyval.ubinding = mknbind(yyvsp[-3].uttype,yyvsp[-1].uttype,startlineno,yyvsp[0].uhpragma); ; break;} case 279: #line 1206 "yaccParser/hsparser.y" { yyval.ubinding = mktbind(yyvsp[-3].ulist,yyvsp[-1].uttype,Lnil,Lnil,startlineno,yyvsp[0].uhpragma); ; break;} case 280: #line 1208 "yaccParser/hsparser.y" { yyval.ubinding = mktbind(Lnil,yyvsp[-1].uttype,Lnil,Lnil,startlineno,yyvsp[0].uhpragma); ; break;} case 281: #line 1210 "yaccParser/hsparser.y" { yyval.ubinding = mktbind(yyvsp[-5].ulist,yyvsp[-3].uttype,yyvsp[-1].ulist,Lnil,startlineno,yyvsp[0].uhpragma); ; break;} case 282: #line 1212 "yaccParser/hsparser.y" { yyval.ubinding = mktbind(Lnil,yyvsp[-3].uttype,yyvsp[-1].ulist,Lnil,startlineno,yyvsp[0].uhpragma); ; break;} case 283: #line 1214 "yaccParser/hsparser.y" { yyval.ubinding = mktbind(yyvsp[-6].ulist,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ; break;} case 284: #line 1216 "yaccParser/hsparser.y" { yyval.ubinding = mktbind(Lnil,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ; break;} case 285: #line 1220 "yaccParser/hsparser.y" { yyval.ubinding = mkcbind(yyvsp[-4].ulist,yyvsp[-2].uttype,yyvsp[0].ubinding,startlineno,yyvsp[-1].uhpragma); ; break;} case 286: #line 1222 "yaccParser/hsparser.y" { yyval.ubinding = mkcbind(Lnil,yyvsp[-2].uttype,yyvsp[0].ubinding,startlineno,yyvsp[-1].uhpragma); ; break;} case 287: #line 1226 "yaccParser/hsparser.y" { yyval.ubinding = mkibind(yyvsp[-4].ulist,yyvsp[-2].uid,yyvsp[-1].uttype,mknullbind(),startlineno,yyvsp[0].uhpragma); ; break;} case 288: #line 1228 "yaccParser/hsparser.y" { yyval.ubinding = mkibind(Lnil,yyvsp[-2].uid,yyvsp[-1].uttype,mknullbind(),startlineno,yyvsp[0].uhpragma); ; break;} case 289: #line 1234 "yaccParser/hsparser.y" { yyval.uttype = mktname(yyvsp[-1].uid,lsing(yyvsp[0].uttype)); ; break;} case 290: #line 1238 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uttype); ; break;} case 291: #line 1239 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uttype); ; break;} case 292: #line 1242 "yaccParser/hsparser.y" { yyval.uttype = yyvsp[0].uttype; ; break;} case 293: #line 1243 "yaccParser/hsparser.y" { yyval.uttype = mktfun(yyvsp[-2].uttype,yyvsp[0].uttype); ; break;} case 294: #line 1246 "yaccParser/hsparser.y" { yyval.uttype = mkuniforall(yyvsp[-2].ulist, yyvsp[0].uttype); ; break;} case 295: #line 1248 "yaccParser/hsparser.y" { yyval.uttype = yyvsp[0].uttype; ; break;} case 296: #line 1249 "yaccParser/hsparser.y" { yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ; break;} case 297: #line 1252 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-1].ulist,yyvsp[0].uttype); ; break;} case 298: #line 1253 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uttype); ; break;} case 299: #line 1257 "yaccParser/hsparser.y" { yyval.uttype = yyvsp[0].uttype; ; break;} case 300: #line 1258 "yaccParser/hsparser.y" { yyval.uttype = mktfun(yyvsp[-2].uttype,yyvsp[0].uttype); ; break;} case 301: #line 1259 "yaccParser/hsparser.y" { yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ; break;} case 303: #line 1263 "yaccParser/hsparser.y" { yyval.uttype = mkttuple(mklcons(yyvsp[-3].uttype,yyvsp[-1].ulist)); ; break;} case 304: #line 1266 "yaccParser/hsparser.y" { yyval.uttype = yyvsp[0].uttype; ; break;} case 305: #line 1267 "yaccParser/hsparser.y" { yyval.uttype = mktname(yyvsp[0].uid,Lnil); ; break;} case 306: #line 1268 "yaccParser/hsparser.y" { yyval.uttype = mkttuple(Lnil); ; break;} case 307: #line 1269 "yaccParser/hsparser.y" { yyval.uttype = yyvsp[-1].uttype; ; break;} case 308: #line 1270 "yaccParser/hsparser.y" { yyval.uttype = mktllist(yyvsp[-1].uttype); ; break;} case 309: #line 1273 "yaccParser/hsparser.y" { yyval.uttype = mkunidict(yyvsp[-3].uid, yyvsp[-2].uttype); ; break;} case 310: #line 1274 "yaccParser/hsparser.y" { yyval.uttype = mkunityvartemplate(yyvsp[0].uid); ; break;} case 311: #line 1278 "yaccParser/hsparser.y" { yyval.uttype = mktname(yyvsp[0].uid,Lnil); ; break;} case 312: #line 1279 "yaccParser/hsparser.y" { yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ; break;} case 313: #line 1282 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uatype); ; break;} case 314: #line 1283 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uatype); ; break;} case 315: #line 1287 "yaccParser/hsparser.y" { yyval.uatype = mkatc(yyvsp[-1].uid,yyvsp[0].ulist,hsplineno); ; break;} case 316: #line 1288 "yaccParser/hsparser.y" { yyval.uatype = mkatc(yyvsp[-2].uid,yyvsp[0].ulist,hsplineno); ; break;} case 317: #line 1289 "yaccParser/hsparser.y" { yyval.uatype = mkatc(yyvsp[0].uid,Lnil,hsplineno); ; break;} case 318: #line 1290 "yaccParser/hsparser.y" { yyval.uatype = mkatc(yyvsp[-1].uid,Lnil,hsplineno); ; break;} case 319: #line 1291 "yaccParser/hsparser.y" { yyval.uatype = mkatc(yyvsp[-1].uid, ldub(yyvsp[-2].uttype,yyvsp[0].uttype),hsplineno); ; break;} case 320: #line 1294 "yaccParser/hsparser.y" { yyval.ulist = yyvsp[-1].ulist; ; break;} case 321: #line 1295 "yaccParser/hsparser.y" { yyval.ulist = Lnil; ; break;} case 322: #line 1296 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uid); ; break;} case 323: #line 1299 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uid); ; break;} case 324: #line 1300 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uid); ; break;} case 325: #line 1303 "yaccParser/hsparser.y" { yyval.ulist = yyvsp[-1].ulist; ; break;} case 326: #line 1304 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uttype); ; break;} case 327: #line 1307 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uttype); ; break;} case 328: #line 1308 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uttype); ; break;} case 329: #line 1311 "yaccParser/hsparser.y" { yyval.ubinding = mknullbind(); ; break;} case 330: #line 1312 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[0].ubinding; ; break;} case 331: #line 1314 "yaccParser/hsparser.y" { if(SAMEFN) { extendfn(yyvsp[-2].ubinding,yyvsp[0].ubinding); yyval.ubinding = yyvsp[-2].ubinding; } else yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding); ; break;} case 332: #line 1328 "yaccParser/hsparser.y" { yyval.ubinding = mkvspec_uprag(yyvsp[-3].uid, yyvsp[-1].ulist, startlineno); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ; break;} case 333: #line 1334 "yaccParser/hsparser.y" { yyval.ubinding = mkinline_uprag(yyvsp[-2].uid, yyvsp[-1].ulist, startlineno); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ; break;} case 334: #line 1340 "yaccParser/hsparser.y" { yyval.ubinding = mkmagicuf_uprag(yyvsp[-2].uid, yyvsp[-1].uid, startlineno); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ; break;} case 336: #line 1349 "yaccParser/hsparser.y" { yyval.ulist = mklcons(yyvsp[-2].uid,yyvsp[0].ulist); ; break;} case 337: #line 1350 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uid); ; break;} case 338: #line 1353 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uid); ; break;} case 339: #line 1354 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uid); ; break;} case 340: #line 1357 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uid); ; break;} case 341: #line 1358 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uid); ; break;} case 342: #line 1363 "yaccParser/hsparser.y" { tree fn = function(yyvsp[0].utree); PREVPATT = yyvsp[0].utree; if(ttree(fn) == ident) { checksamefn(gident((struct Sident *) fn)); FN = fn; } else if (ttree(fn) == tinfixop && ttree(ginfun((struct Sap *) fn)) == ident) { checksamefn(gident((struct Sident *) (ginfun((struct Sap *) fn)))); FN = ginfun((struct Sap *) fn); } else if(etags) #if 1/*etags*/ printf("%u\n",startlineno); #else fprintf(stderr,"%u\tvaldef\n",startlineno); #endif ; break;} case 343: #line 1388 "yaccParser/hsparser.y" { if ( lhs_is_patt(yyvsp[-2].utree) ) { yyval.ubinding = mkpbind(yyvsp[0].ulist, startlineno); FN = NULL; SAMEFN = 0; } else /* lhs is function */ yyval.ubinding = mkfbind(yyvsp[0].ulist,startlineno); PREVPATT = NULL; ; break;} case 344: #line 1402 "yaccParser/hsparser.y" { yyval.ulist = lsing(createpat(yyvsp[-1].ulist, yyvsp[0].ubinding)); ; break;} case 346: #line 1406 "yaccParser/hsparser.y" { yyval.ulist = lsing(mktruecase(yyvsp[0].utree)); ; break;} case 347: #line 1409 "yaccParser/hsparser.y" { yyval.ulist = lsing(ldub(yyvsp[-2].utree,yyvsp[0].utree)); ; break;} case 348: #line 1410 "yaccParser/hsparser.y" { yyval.ulist = mklcons(ldub(yyvsp[-3].utree,yyvsp[-1].utree),yyvsp[0].ulist); ; break;} case 349: #line 1414 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[-1].ubinding; ; break;} case 350: #line 1415 "yaccParser/hsparser.y" { yyval.ubinding = yyvsp[-1].ubinding; ; break;} case 351: #line 1416 "yaccParser/hsparser.y" { yyval.ubinding = mknullbind(); ; break;} case 352: #line 1419 "yaccParser/hsparser.y" { yyval.utree = yyvsp[0].utree; ; break;} case 353: #line 1423 "yaccParser/hsparser.y" { yyval.ulist = mklcons(yyvsp[-1].utree,yyvsp[0].ulist); ; break;} case 354: #line 1424 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].utree); ; break;} case 355: #line 1434 "yaccParser/hsparser.y" { yyval.utree = mkrestr(yyvsp[-4].utree,mkcontext(type2context(yyvsp[-2].uttype),yyvsp[0].uttype)); ; break;} case 356: #line 1435 "yaccParser/hsparser.y" { yyval.utree = mkrestr(yyvsp[-2].utree,yyvsp[0].uttype); ; break;} case 359: #line 1447 "yaccParser/hsparser.y" { yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree); precparse(yyval.utree); ; break;} case 360: #line 1456 "yaccParser/hsparser.y" { yyval.utree = mknegate(yyvsp[0].utree); ; break;} case 362: #line 1465 "yaccParser/hsparser.y" { /* enteriscope(); /? I don't understand this -- KH */ hsincindent(); /* added by partain; push new context for */ /* FN = NULL; not actually concerned about */ FN = NULL; /* indenting */ yyval.uint = hsplineno; /* remember current line number */ ; break;} case 363: #line 1472 "yaccParser/hsparser.y" { hsendindent(); /* added by partain */ /* exitiscope(); /? Also not understood */ ; break;} case 364: #line 1476 "yaccParser/hsparser.y" { yyval.utree = mklambda(yyvsp[-3].ulist, yyvsp[0].utree, yyvsp[-4].uint); ; break;} case 365: #line 1481 "yaccParser/hsparser.y" { yyval.utree = mklet(yyvsp[-3].ubinding,yyvsp[0].utree); ; break;} case 366: #line 1482 "yaccParser/hsparser.y" { yyval.utree = mklet(yyvsp[-3].ubinding,yyvsp[0].utree); ; break;} case 367: #line 1485 "yaccParser/hsparser.y" { yyval.utree = mkife(yyvsp[-4].utree,yyvsp[-2].utree,yyvsp[0].utree); ; break;} case 368: #line 1488 "yaccParser/hsparser.y" { yyval.utree = mkcasee(yyvsp[-4].utree,yyvsp[-1].ulist); ; break;} case 369: #line 1489 "yaccParser/hsparser.y" { yyval.utree = mkcasee(yyvsp[-4].utree,yyvsp[-1].ulist); ; break;} case 370: #line 1492 "yaccParser/hsparser.y" { yyval.utree = mkccall(yyvsp[-1].uid,installid("n"),yyvsp[0].ulist); ; break;} case 371: #line 1493 "yaccParser/hsparser.y" { yyval.utree = mkccall(yyvsp[0].uid,installid("n"),Lnil); ; break;} case 372: #line 1494 "yaccParser/hsparser.y" { yyval.utree = mkccall(yyvsp[-1].uid,installid("p"),yyvsp[0].ulist); ; break;} case 373: #line 1495 "yaccParser/hsparser.y" { yyval.utree = mkccall(yyvsp[0].uid,installid("p"),Lnil); ; break;} case 374: #line 1496 "yaccParser/hsparser.y" { yyval.utree = mkccall(yyvsp[-1].ustring,installid("N"),yyvsp[0].ulist); ; break;} case 375: #line 1497 "yaccParser/hsparser.y" { yyval.utree = mkccall(yyvsp[0].ustring,installid("N"),Lnil); ; break;} case 376: #line 1498 "yaccParser/hsparser.y" { yyval.utree = mkccall(yyvsp[-1].ustring,installid("P"),yyvsp[0].ulist); ; break;} case 377: #line 1499 "yaccParser/hsparser.y" { yyval.utree = mkccall(yyvsp[0].ustring,installid("P"),Lnil); ; break;} case 378: #line 1503 "yaccParser/hsparser.y" { if (ignoreSCC) { if (warnSCC) fprintf(stderr, "\"%s\", line %d: _scc_ (`set [profiling] cost centre') ignored\n", input_filename, hsplineno); yyval.utree = yyvsp[0].utree; } else { yyval.utree = mkscc(yyvsp[-1].uhstring, yyvsp[0].utree); } ; break;} case 380: #line 1518 "yaccParser/hsparser.y" { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ; break;} case 382: #line 1522 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-1].ulist,yyvsp[0].utree); ; break;} case 383: #line 1523 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].utree); ; break;} case 384: #line 1533 "yaccParser/hsparser.y" { yyval.utree = mkident(yyvsp[0].uid); ; break;} case 385: #line 1534 "yaccParser/hsparser.y" { yyval.utree = mkident(yyvsp[0].uid); ; break;} case 386: #line 1535 "yaccParser/hsparser.y" { yyval.utree = mklit(yyvsp[0].uliteral); ; break;} case 387: #line 1536 "yaccParser/hsparser.y" { yyval.utree = mkpar(yyvsp[-1].utree); ; break;} case 388: #line 1537 "yaccParser/hsparser.y" { checkprec(yyvsp[-2].utree,yyvsp[-1].uid,FALSE); yyval.utree = mklsection(yyvsp[-2].utree,yyvsp[-1].uid); ; break;} case 389: #line 1538 "yaccParser/hsparser.y" { checkprec(yyvsp[-1].utree,yyvsp[-2].uid,TRUE); yyval.utree = mkrsection(yyvsp[-2].uid,yyvsp[-1].utree); ; break;} case 391: #line 1542 "yaccParser/hsparser.y" { yyval.utree = mkpar(yyvsp[0].utree); ; break;} case 392: #line 1543 "yaccParser/hsparser.y" { yyval.utree = mkpar(yyvsp[0].utree); ; break;} case 393: #line 1544 "yaccParser/hsparser.y" { yyval.utree = mkpar(yyvsp[0].utree); ; break;} case 394: #line 1547 "yaccParser/hsparser.y" { checkinpat(); yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ; break;} case 395: #line 1548 "yaccParser/hsparser.y" { checkinpat(); yyval.utree = mkwildp(); ; break;} case 396: #line 1549 "yaccParser/hsparser.y" { checkinpat(); yyval.utree = mklazyp(yyvsp[0].utree); ; break;} case 398: #line 1564 "yaccParser/hsparser.y" { yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree); if(isconstr(id_to_string(yyvsp[-1].uid))) precparse(yyval.utree); else { checkprec(yyvsp[-2].utree,yyvsp[-1].uid,FALSE); /* Check the precedence of the left pattern */ checkprec(yyvsp[0].utree,yyvsp[-1].uid,TRUE); /* then check the right pattern */ } ; break;} case 400: #line 1579 "yaccParser/hsparser.y" { yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree); if(isconstr(id_to_string(yyvsp[-1].uid))) precparse(yyval.utree); else { checkprec(yyvsp[-2].utree,yyvsp[-1].uid,FALSE); /* Check the precedence of the left pattern */ checkprec(yyvsp[0].utree,yyvsp[-1].uid,TRUE); /* then check the right pattern */ } ; break;} case 401: #line 1598 "yaccParser/hsparser.y" { yyval.utree = mknegate(yyvsp[0].utree); ; break;} case 403: #line 1603 "yaccParser/hsparser.y" { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ; break;} case 405: #line 1607 "yaccParser/hsparser.y" { yyval.utree = mknegate(yyvsp[0].utree); ; break;} case 407: #line 1612 "yaccParser/hsparser.y" { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ; break;} case 409: #line 1616 "yaccParser/hsparser.y" { yyval.utree = mkident(yyvsp[0].uid); ; break;} case 410: #line 1617 "yaccParser/hsparser.y" { yyval.utree = mkident(yyvsp[0].uid); ; break;} case 411: #line 1618 "yaccParser/hsparser.y" { yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ; break;} case 412: #line 1619 "yaccParser/hsparser.y" { yyval.utree = mklit(yyvsp[0].uliteral); ; break;} case 413: #line 1620 "yaccParser/hsparser.y" { yyval.utree = mkwildp(); ; break;} case 414: #line 1621 "yaccParser/hsparser.y" { yyval.utree = mktuple(Lnil); ; break;} case 415: #line 1622 "yaccParser/hsparser.y" { yyval.utree = mkplusp(mkident(yyvsp[-3].uid),mkinteger(yyvsp[-1].ustring)); ; break;} case 416: #line 1626 "yaccParser/hsparser.y" { yyval.utree = mkpar(yyvsp[-1].utree); ; break;} case 417: #line 1627 "yaccParser/hsparser.y" { yyval.utree = mktuple(mklcons(yyvsp[-3].utree,yyvsp[-1].ulist)); ; break;} case 418: #line 1628 "yaccParser/hsparser.y" { yyval.utree = mkllist(yyvsp[-1].ulist); ; break;} case 419: #line 1629 "yaccParser/hsparser.y" { yyval.utree = mkllist(Lnil); ; break;} case 420: #line 1630 "yaccParser/hsparser.y" { yyval.utree = mklazyp(yyvsp[0].utree); ; break;} case 421: #line 1633 "yaccParser/hsparser.y" { yyval.utree = mkident(yyvsp[0].uid); ; break;} case 422: #line 1634 "yaccParser/hsparser.y" { yyval.utree = mkident(yyvsp[0].uid); ; break;} case 423: #line 1635 "yaccParser/hsparser.y" { yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ; break;} case 424: #line 1636 "yaccParser/hsparser.y" { yyval.utree = mklit(yyvsp[0].uliteral); setstartlineno(); ; break;} case 425: #line 1637 "yaccParser/hsparser.y" { yyval.utree = mkwildp(); setstartlineno(); ; break;} case 426: #line 1638 "yaccParser/hsparser.y" { yyval.utree = mktuple(Lnil); ; break;} case 427: #line 1639 "yaccParser/hsparser.y" { yyval.utree = mkplusp(mkident(yyvsp[-3].uid),mkinteger(yyvsp[-1].ustring)); ; break;} case 428: #line 1643 "yaccParser/hsparser.y" { yyval.utree = mkpar(yyvsp[-1].utree); ; break;} case 429: #line 1644 "yaccParser/hsparser.y" { yyval.utree = mktuple(mklcons(yyvsp[-3].utree,yyvsp[-1].ulist)); ; break;} case 430: #line 1645 "yaccParser/hsparser.y" { yyval.utree = mkllist(yyvsp[-1].ulist); ; break;} case 431: #line 1646 "yaccParser/hsparser.y" { yyval.utree = mkllist(Lnil); ; break;} case 432: #line 1647 "yaccParser/hsparser.y" { yyval.utree = mklazyp(yyvsp[0].utree); ; break;} case 433: #line 1652 "yaccParser/hsparser.y" { if (ttree(yyvsp[-1].utree) == tuple) yyval.utree = mktuple(mklcons(yyvsp[-3].utree, gtuplelist((struct Stuple *) yyvsp[-1].utree))); else yyval.utree = mktuple(ldub(yyvsp[-3].utree, yyvsp[-1].utree)); ; break;} case 434: #line 1658 "yaccParser/hsparser.y" { yyval.utree = mktuple(Lnil); ; break;} case 435: #line 1666 "yaccParser/hsparser.y" { yyval.utree = mkpar(yyvsp[0].utree); ; break;} case 436: #line 1668 "yaccParser/hsparser.y" { if (ttree(yyvsp[0].utree) == tuple) yyval.utree = mktuple(mklcons(yyvsp[-2].utree, gtuplelist((struct Stuple *) yyvsp[0].utree))); else yyval.utree = mktuple(ldub(yyvsp[-2].utree, yyvsp[0].utree)); ; break;} case 437: #line 1677 "yaccParser/hsparser.y" { yyval.utree = mkllist(Lnil); ; break;} case 438: #line 1678 "yaccParser/hsparser.y" { yyval.utree = mkllist(yyvsp[-1].ulist); ; break;} case 439: #line 1682 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].utree); ; break;} case 440: #line 1683 "yaccParser/hsparser.y" { yyval.ulist = mklcons(yyvsp[-2].utree, yyvsp[0].ulist); ; break;} case 441: #line 1698 "yaccParser/hsparser.y" {yyval.utree = mkeenum(yyvsp[-5].utree,lsing(yyvsp[-3].utree),yyvsp[-1].ulist);; break;} case 442: #line 1699 "yaccParser/hsparser.y" { yyval.utree = mkeenum(yyvsp[-3].utree,Lnil,yyvsp[-1].ulist); ; break;} case 443: #line 1702 "yaccParser/hsparser.y" { yyval.utree = mkcomprh(yyvsp[-3].utree,yyvsp[-1].ulist); ; break;} case 444: #line 1705 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].utree); ; break;} case 445: #line 1706 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].utree); ; break;} case 446: #line 1709 "yaccParser/hsparser.y" { inpat = TRUE; ; break;} case 447: #line 1709 "yaccParser/hsparser.y" { inpat = FALSE; ; break;} case 448: #line 1710 "yaccParser/hsparser.y" { if (yyvsp[0].utree == NULL) { patternOrExpr(/*wanted:*/ LEGIT_EXPR,yyvsp[-2].utree); yyval.utree = mkguard(yyvsp[-2].utree); } else { patternOrExpr(/*wanted:*/ LEGIT_PATT,yyvsp[-2].utree); yyval.utree = mkqual(yyvsp[-2].utree,yyvsp[0].utree); /* OLD: WDP 95/08 if(ttree($4)==def) { tree prevpatt_save = PREVPATT; PREVPATT = $2; $$ = mkdef((tree) mkpbind(lsing(createpat(lsing(mktruecase(ggdef((struct Sdef *) $4))),mknullbind())),hsplineno)); PREVPATT = prevpatt_save; } else */ } ; break;} case 449: #line 1730 "yaccParser/hsparser.y" { yyval.utree = yyvsp[0].utree; ; break;} case 450: #line 1731 "yaccParser/hsparser.y" { yyval.utree = NULL; ; break;} case 451: #line 1734 "yaccParser/hsparser.y" { yyval.ulist = yyvsp[0].ulist; ; break;} case 452: #line 1735 "yaccParser/hsparser.y" { yyval.ulist = lconc(yyvsp[-2].ulist,yyvsp[0].ulist); ; break;} case 453: #line 1739 "yaccParser/hsparser.y" { PREVPATT = yyvsp[0].utree; ; break;} case 454: #line 1741 "yaccParser/hsparser.y" { yyval.ulist = yyvsp[0].ulist; PREVPATT = NULL; ; break;} case 455: #line 1744 "yaccParser/hsparser.y" { yyval.ulist = Lnil; ; break;} case 456: #line 1747 "yaccParser/hsparser.y" { yyval.ulist = lsing(createpat(yyvsp[-1].ulist, yyvsp[0].ubinding)); ; break;} case 457: #line 1748 "yaccParser/hsparser.y" { yyval.ulist = lsing(createpat(lsing(mktruecase(yyvsp[-1].utree)), yyvsp[0].ubinding)); ; break;} case 458: #line 1751 "yaccParser/hsparser.y" { yyval.ulist = mklcons(ldub(yyvsp[-3].utree,yyvsp[-1].utree),yyvsp[0].ulist); ; break;} case 459: #line 1752 "yaccParser/hsparser.y" { yyval.ulist = lsing(ldub(yyvsp[-2].utree,yyvsp[0].utree)); ; break;} case 460: #line 1755 "yaccParser/hsparser.y" { yyval.ulist = Lnil; ; break;} case 461: #line 1756 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].utree); ; break;} case 462: #line 1759 "yaccParser/hsparser.y" { yyval.ulist = mklcons(yyvsp[-2].utree, yyvsp[0].ulist); ; break;} case 463: #line 1760 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].utree); ; break;} case 465: #line 1765 "yaccParser/hsparser.y" { yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree); precparse(yyval.utree); ; break;} case 468: #line 1770 "yaccParser/hsparser.y" { yyval.utree = mklit(mkinteger(ineg(yyvsp[0].ustring))); ; break;} case 469: #line 1771 "yaccParser/hsparser.y" { yyval.utree = mklit(mkfloatr(ineg(yyvsp[0].ustring))); ; break;} case 470: #line 1774 "yaccParser/hsparser.y" { yyval.utree = mkident(yyvsp[0].uid); ; break;} case 471: #line 1775 "yaccParser/hsparser.y" { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ; break;} case 472: #line 1778 "yaccParser/hsparser.y" { yyval.utree = mkident(yyvsp[0].uid); ; break;} case 474: #line 1782 "yaccParser/hsparser.y" { yyval.utree = mkident(yyvsp[0].uid); ; break;} case 475: #line 1783 "yaccParser/hsparser.y" { yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ; break;} case 476: #line 1784 "yaccParser/hsparser.y" { yyval.utree = mklit(yyvsp[0].uliteral); ; break;} case 477: #line 1785 "yaccParser/hsparser.y" { yyval.utree = mkwildp(); ; break;} case 478: #line 1786 "yaccParser/hsparser.y" { yyval.utree = mktuple(Lnil); ; break;} case 479: #line 1787 "yaccParser/hsparser.y" { yyval.utree = mkplusp(mkident(yyvsp[-3].uid),mkinteger(yyvsp[-1].ustring)); ; break;} case 480: #line 1791 "yaccParser/hsparser.y" { yyval.utree = mkpar(yyvsp[-1].utree); ; break;} case 481: #line 1792 "yaccParser/hsparser.y" { yyval.utree = mktuple(mklcons(yyvsp[-3].utree,yyvsp[-1].ulist)); ; break;} case 482: #line 1793 "yaccParser/hsparser.y" { yyval.utree = mkllist(yyvsp[-1].ulist); ; break;} case 483: #line 1794 "yaccParser/hsparser.y" { yyval.utree = mkllist(Lnil); ; break;} case 484: #line 1795 "yaccParser/hsparser.y" { yyval.utree = mklazyp(yyvsp[0].utree); ; break;} case 485: #line 1799 "yaccParser/hsparser.y" { yyval.uliteral = mkinteger(yyvsp[0].ustring); ; break;} case 486: #line 1800 "yaccParser/hsparser.y" { yyval.uliteral = mkfloatr(yyvsp[0].ustring); ; break;} case 487: #line 1801 "yaccParser/hsparser.y" { yyval.uliteral = mkcharr(yyvsp[0].uhstring); ; break;} case 488: #line 1802 "yaccParser/hsparser.y" { yyval.uliteral = mkstring(yyvsp[0].uhstring); ; break;} case 489: #line 1803 "yaccParser/hsparser.y" { yyval.uliteral = mkcharprim(yyvsp[0].uhstring); ; break;} case 490: #line 1804 "yaccParser/hsparser.y" { yyval.uliteral = mkstringprim(yyvsp[0].uhstring); ; break;} case 491: #line 1805 "yaccParser/hsparser.y" { yyval.uliteral = mkintprim(yyvsp[0].ustring); ; break;} case 492: #line 1806 "yaccParser/hsparser.y" { yyval.uliteral = mkfloatprim(yyvsp[0].ustring); ; break;} case 493: #line 1807 "yaccParser/hsparser.y" { yyval.uliteral = mkdoubleprim(yyvsp[0].ustring); ; break;} case 494: #line 1808 "yaccParser/hsparser.y" { yyval.uliteral = mkclitlit(yyvsp[0].ustring, ""); ; break;} case 495: #line 1809 "yaccParser/hsparser.y" { yyval.uliteral = mkclitlit(yyvsp[-2].ustring, yyvsp[0].uid); ; break;} case 496: #line 1810 "yaccParser/hsparser.y" { yyval.uliteral = mknorepi(yyvsp[0].ustring); ; break;} case 497: #line 1811 "yaccParser/hsparser.y" { yyval.uliteral = mknorepr(yyvsp[-1].ustring, yyvsp[0].ustring); ; break;} case 498: #line 1812 "yaccParser/hsparser.y" { yyval.uliteral = mknoreps(yyvsp[0].uhstring); ; break;} case 499: #line 1818 "yaccParser/hsparser.y" { setstartlineno(); ; break;} case 500: #line 1821 "yaccParser/hsparser.y" { setstartlineno(); if(etags) #if 1/*etags*/ printf("%u\n",startlineno); #else fprintf(stderr,"%u\tdata\n",startlineno); #endif ; break;} case 501: #line 1831 "yaccParser/hsparser.y" { setstartlineno(); if(etags) #if 1/*etags*/ printf("%u\n",startlineno); #else fprintf(stderr,"%u\ttype\n",startlineno); #endif ; break;} case 502: #line 1841 "yaccParser/hsparser.y" { setstartlineno(); #if 1/*etags*/ /* OUT: if(etags) printf("%u\n",startlineno); */ #else fprintf(stderr,"%u\tinstance\n",startlineno); #endif ; break;} case 503: #line 1852 "yaccParser/hsparser.y" { setstartlineno(); ; break;} case 504: #line 1855 "yaccParser/hsparser.y" { setstartlineno(); if(etags) #if 1/*etags*/ printf("%u\n",startlineno); #else fprintf(stderr,"%u\tclass\n",startlineno); #endif ; break;} case 505: #line 1865 "yaccParser/hsparser.y" { setstartlineno(); ; break;} case 506: #line 1868 "yaccParser/hsparser.y" { setstartlineno(); if(etags) #if 1/*etags*/ printf("%u\n",startlineno); #else fprintf(stderr,"%u\tmodule\n",startlineno); #endif ; break;} case 507: #line 1878 "yaccParser/hsparser.y" { setstartlineno(); ; break;} case 508: #line 1881 "yaccParser/hsparser.y" { setstartlineno(); ; break;} case 509: #line 1884 "yaccParser/hsparser.y" { setstartlineno(); ; break;} case 515: #line 1899 "yaccParser/hsparser.y" { yyval.uid = yyvsp[-1].uid; ; break;} case 518: #line 1905 "yaccParser/hsparser.y" { yyval.uid = yyvsp[-1].uid; ; break;} case 520: #line 1909 "yaccParser/hsparser.y" { yyval.uid = yyvsp[-1].uid; ; break;} case 524: #line 1917 "yaccParser/hsparser.y" { yyval.uid = install_literal("-"); ; break;} case 525: #line 1920 "yaccParser/hsparser.y" { yyval.uid = install_literal("+"); ; break;} case 527: #line 1924 "yaccParser/hsparser.y" { yyval.uid = yyvsp[-1].uid; ; break;} case 528: #line 1927 "yaccParser/hsparser.y" { setstartlineno(); yyval.uid = yyvsp[0].uid; ; break;} case 529: #line 1928 "yaccParser/hsparser.y" { yyval.uid = yyvsp[-1].uid; ; break;} case 531: #line 1933 "yaccParser/hsparser.y" { yyval.uid = yyvsp[-1].uid; ; break;} case 532: #line 1936 "yaccParser/hsparser.y" { setstartlineno(); yyval.uid = yyvsp[0].uid; ; break;} case 533: #line 1937 "yaccParser/hsparser.y" { yyval.uid = yyvsp[-1].uid; ; break;} case 536: #line 1944 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uttype); ; break;} case 537: #line 1945 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uttype); ; break;} case 538: #line 1948 "yaccParser/hsparser.y" { yyval.ulist = lsing(yyvsp[0].uttype); ; break;} case 539: #line 1949 "yaccParser/hsparser.y" { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].uttype); ; break;} case 540: #line 1952 "yaccParser/hsparser.y" { yyval.uttype = mknamedtvar(yyvsp[0].uid); ; break;} case 544: #line 1968 "yaccParser/hsparser.y" { hsincindent(); ; break;} case 545: #line 1970 "yaccParser/hsparser.y" { hssetindent(); ; break;} case 546: #line 1973 "yaccParser/hsparser.y" { hsindentoff(); ; break;} case 547: #line 1978 "yaccParser/hsparser.y" { FN = NULL; SAMEFN = 0; PREVPATT = NULL; hsendindent(); ; break;} case 548: #line 1984 "yaccParser/hsparser.y" { expect_ccurly = 1; ; break;} case 549: #line 1984 "yaccParser/hsparser.y" { expect_ccurly = 0; ; break;} case 550: #line 1989 "yaccParser/hsparser.y" { FN = NULL; SAMEFN = 0; PREVPATT = NULL; hsendindent(); ; break;} case 551: #line 1994 "yaccParser/hsparser.y" { yyerrok; FN = NULL; SAMEFN = 0; PREVPATT = NULL; hsendindent(); ; break;} } /* the action file gets copied in in place of this dollarsign */ #line 487 "/usr/local/gnu/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; #ifdef YYLSP_NEEDED yylsp -= yylen; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif *++yyvsp = yyval; #ifdef YYLSP_NEEDED yylsp++; if (yylen == 0) { yylsp->first_line = yylloc.first_line; yylsp->first_column = yylloc.first_column; yylsp->last_line = (yylsp-1)->last_line; yylsp->last_column = (yylsp-1)->last_column; yylsp->text = 0; } else { yylsp->last_line = (yylsp+yylen-1)->last_line; yylsp->last_column = (yylsp+yylen-1)->last_column; } #endif /* Now "shift" the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTBASE] + *yyssp; if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTBASE]; goto yynewstate; yyerrlab: /* here on detecting error */ if (! yyerrstatus) /* If not already recovering from an error, report this error. */ { ++yynerrs; #ifdef YYERROR_VERBOSE yyn = yypact[yystate]; if (yyn > YYFLAG && yyn < YYLAST) { int size = 0; char *msg; int x, count; count = 0; /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) size += strlen(yytname[x]) + 15, count++; msg = (char *) malloc(size + 15); if (msg != 0) { strcpy(msg, "parse error"); if (count < 5) { count = 0; for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) { strcat(msg, count == 0 ? ", expecting `" : " or `"); strcat(msg, yytname[x]); strcat(msg, "'"); count++; } } yyerror(msg); free(msg); } else yyerror ("parse error; also virtual memory exceeded"); } else #endif /* YYERROR_VERBOSE */ yyerror("parse error"); } goto yyerrlab1; yyerrlab1: /* here on error raised explicitly by an action */ if (yyerrstatus == 3) { /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); #endif yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle; yyerrdefault: /* current state does not do anything special for the error token. */ #if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ if (yyn) goto yydefault; #endif yyerrpop: /* pop the current state because it cannot handle the error token */ if (yyssp == yyss) YYABORT; yyvsp--; yystate = *--yyssp; #ifdef YYLSP_NEEDED yylsp--; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "Error: state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif yyerrhandle: yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; yyn += YYTERROR; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) goto yyerrdefault; yyn = yytable[yyn]; if (yyn < 0) { if (yyn == YYFLAG) goto yyerrpop; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting error token, "); #endif *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; } #line 2001 "yaccParser/hsparser.y" /********************************************************************** * * * Error Processing and Reporting * * * * (This stuff is here in case we want to use Yacc macros and such.) * * * **********************************************************************/ /* The parser calls "hsperror" when it sees a `report this and die' error. It sets the stage and calls "yyerror". There should be no direct calls in the parser to "yyerror", except for the one from "hsperror". Thus, the only other calls will be from the error productions introduced by yacc/bison/whatever. We need to be able to recognise the from-error-production case, because we sometimes want to say, "Oh, never mind", because the layout rule kicks into action and may save the day. [WDP] */ static BOOLEAN error_and_I_mean_it = FALSE; void hsperror(s) char *s; { error_and_I_mean_it = TRUE; yyerror(s); } extern char *yytext; extern int yyleng; void yyerror(s) char *s; { /* We want to be able to distinguish 'error'-raised yyerrors from yyerrors explicitly coded by the parser hacker. */ if (expect_ccurly && ! error_and_I_mean_it ) { /*NOTHING*/; } else { fprintf(stderr, "\"%s\", line %d, column %d: %s on input: ", input_filename, hsplineno, hspcolno + 1, s); if (yyleng == 1 && *yytext == '\0') fprintf(stderr, ""); else { fputc('"', stderr); format_string(stderr, (unsigned char *) yytext, yyleng); fputc('"', stderr); } fputc('\n', stderr); /* a common problem */ if (strcmp(yytext, "#") == 0) fprintf(stderr, "\t(Perhaps you forgot a `-cpp' or `-fglasgow-exts' flag?)\n"); exit(1); } } void format_string(fp, s, len) FILE *fp; unsigned char *s; int len; { while (len-- > 0) { switch (*s) { case '\0': fputs("\\NUL", fp); break; case '\007': fputs("\\a", fp); break; case '\010': fputs("\\b", fp); break; case '\011': fputs("\\t", fp); break; case '\012': fputs("\\n", fp); break; case '\013': fputs("\\v", fp); break; case '\014': fputs("\\f", fp); break; case '\015': fputs("\\r", fp); break; case '\033': fputs("\\ESC", fp); break; case '\034': fputs("\\FS", fp); break; case '\035': fputs("\\GS", fp); break; case '\036': fputs("\\RS", fp); break; case '\037': fputs("\\US", fp); break; case '\177': fputs("\\DEL", fp); break; default: if (*s >= ' ') fputc(*s, fp); else fprintf(fp, "\\^%c", *s + '@'); break; } s++; } }