diff options
Diffstat (limited to 'ghc/compiler/yaccParser/hsparser.tab.c')
-rw-r--r-- | ghc/compiler/yaccParser/hsparser.tab.c | 4711 |
1 files changed, 0 insertions, 4711 deletions
diff --git a/ghc/compiler/yaccParser/hsparser.tab.c b/ghc/compiler/yaccParser/hsparser.tab.c deleted file mode 100644 index 64e3327200..0000000000 --- a/ghc/compiler/yaccParser/hsparser.tab.c +++ /dev/null @@ -1,4711 +0,0 @@ - -/* 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 <stdio.h> -#include <ctype.h> -#include <string.h> -#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 <stdio.h> - -#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 <alloca.h> -#else /* not sparc */ -#if defined (MSDOS) && !defined (__TURBOC__) -#include <malloc.h> -#else /* not MSDOS, or __TURBOC__ */ -#if defined(_AIX) -#include <malloc.h> - #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, "<EOF>"); - - 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++; - } -} |