--- /dev/null
+
+/* A Bison parser, made from yaccParser/hsparser.y with Bison version GNU Bison version 1.21
+ */
+
+#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 *
+* *
+* *
+**********************************************************************/
+
+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 *
+* *
+* *
+**********************************************************************/
+
+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 100 "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 1094
+#define YYFLAG -32768
+#define YYNTBASE 120
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 374 ? yytranslate[x] : 347)
+
+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, 182, 183, 186, 187, 190, 194, 195, 197,
+ 204, 206, 209, 211, 214, 216, 218, 220, 223, 227,
+ 231, 232, 234, 237, 241, 243, 249, 251, 255, 257,
+ 260, 262, 266, 272, 274, 278, 285, 287, 291, 293,
+ 295, 296, 298, 300, 304, 308, 313, 318, 323, 330,
+ 335, 339, 345, 352, 361, 368, 374, 376, 378, 382,
+ 386, 387, 390, 396, 397, 400, 405, 407, 411, 413,
+ 417, 421, 424, 429, 436, 443, 450, 452, 454, 456,
+ 458, 462, 466, 470, 476, 483, 489, 492, 496, 500,
+ 502, 504, 513, 522, 531, 540, 542, 543, 546, 552,
+ 555, 559, 561, 565, 567, 569, 571, 574, 576, 580,
+ 583, 587, 589, 593, 595, 597, 601, 603, 605, 606,
+ 609, 610, 613, 614, 617, 619, 623, 624, 629, 632,
+ 637, 640, 644, 646, 650, 654, 658, 659, 662, 664,
+ 668, 674, 682, 683, 689, 695, 699, 705, 709, 710,
+ 713, 715, 719, 720, 725, 726, 731, 732, 737, 738,
+ 742, 743, 747, 748, 752, 754, 758, 760, 764, 766,
+ 768, 770, 772, 774, 776, 781, 788, 793, 802, 809,
+ 815, 819, 820, 825, 830, 837, 842, 843, 848, 853,
+ 855, 859, 863, 866, 870, 876, 879, 885, 887, 889,
+ 893, 900, 905, 911, 917, 923, 928, 933, 937, 941,
+ 943, 944, 945, 947, 949, 953, 955, 959, 961, 965,
+ 967, 969, 971, 973, 975, 976, 983, 988, 994, 1000,
+ 1004, 1012, 1018, 1027, 1034, 1041, 1046, 1053, 1058, 1061,
+ 1063, 1067, 1069, 1073, 1078, 1080, 1083, 1086, 1088, 1090,
+ 1094, 1097, 1099, 1105, 1107, 1109, 1112, 1116, 1120, 1127,
+ 1129, 1131, 1134, 1137, 1139, 1143, 1146, 1151, 1153, 1157,
+ 1161, 1165, 1168, 1170, 1172, 1176, 1180, 1182, 1184, 1188,
+ 1189, 1191, 1195, 1200, 1205, 1207, 1211, 1213, 1215, 1219,
+ 1221, 1225, 1226, 1230, 1233, 1235, 1238, 1242, 1247, 1252,
+ 1257, 1258, 1261, 1264, 1266, 1272, 1276, 1278, 1280, 1284,
+ 1287, 1289, 1290, 1291, 1298, 1305, 1312, 1319, 1326, 1333,
+ 1337, 1340, 1344, 1347, 1351, 1354, 1358, 1361, 1365, 1367,
+ 1370, 1372, 1375, 1377, 1379, 1381, 1383, 1387, 1392, 1397,
+ 1399, 1401, 1403, 1405, 1409, 1411, 1414, 1416, 1420, 1422,
+ 1426, 1429, 1431, 1434, 1436, 1439, 1441, 1444, 1446, 1448,
+ 1450, 1454, 1456, 1458, 1461, 1467, 1471, 1477, 1481, 1484,
+ 1487, 1489, 1491, 1495, 1497, 1499, 1502, 1508, 1512, 1518,
+ 1522, 1525, 1528, 1534, 1537, 1539, 1543, 1546, 1550, 1552,
+ 1556, 1564, 1570, 1576, 1578, 1582, 1583, 1584, 1589, 1592,
+ 1593, 1595, 1599, 1600, 1604, 1605, 1608, 1612, 1617, 1621,
+ 1622, 1624, 1628, 1630, 1632, 1636, 1638, 1640, 1643, 1646,
+ 1648, 1651, 1653, 1655, 1657, 1661, 1663, 1665, 1668, 1674,
+ 1678, 1684, 1688, 1691, 1694, 1696, 1698, 1700, 1702, 1704,
+ 1706, 1708, 1710, 1712, 1714, 1718, 1721, 1725, 1728, 1730,
+ 1732, 1734, 1736, 1738, 1740, 1742, 1744, 1746, 1748, 1750,
+ 1752, 1754, 1756, 1758, 1760, 1764, 1766, 1768, 1772, 1774,
+ 1778, 1780, 1782, 1784, 1786, 1788, 1790, 1794, 1796, 1800,
+ 1802, 1806, 1808, 1812, 1814, 1816, 1820, 1824, 1826, 1829,
+ 1831, 1833, 1835, 1837, 1840, 1842, 1843, 1845, 1846, 1849,
+ 1851
+};
+
+static const short yyrhs[] = { 188,
+ 190, 121, 0, 0, 317, 339, 125, 122, 41, 124,
+ 0, 0, 123, 124, 0, 340, 192, 207, 217, 343,
+ 0, 341, 192, 207, 217, 344, 0, 341, 193, 344,
+ 0, 340, 193, 343, 0, 341, 192, 344, 0, 340,
+ 192, 343, 0, 0, 24, 126, 25, 0, 127, 0,
+ 126, 26, 127, 0, 329, 0, 338, 0, 338, 24,
+ 32, 25, 0, 338, 24, 260, 25, 0, 338, 24,
+ 258, 25, 0, 338, 24, 25, 0, 338, 32, 0,
+ 24, 130, 25, 0, 55, 24, 130, 25, 0, 24,
+ 25, 0, 0, 128, 0, 131, 0, 130, 26, 131,
+ 0, 329, 0, 338, 0, 338, 24, 32, 25, 0,
+ 338, 24, 260, 25, 0, 338, 24, 258, 25, 0,
+ 338, 24, 25, 0, 68, 250, 133, 69, 0, 68,
+ 133, 69, 0, 0, 73, 134, 0, 0, 135, 0,
+ 134, 26, 135, 0, 22, 157, 23, 0, 68, 72,
+ 69, 0, 0, 68, 151, 69, 0, 0, 68, 143,
+ 143, 69, 0, 0, 68, 140, 143, 69, 0, 68,
+ 140, 143, 160, 69, 0, 68, 140, 143, 141, 69,
+ 0, 0, 74, 339, 0, 0, 73, 155, 0, 68,
+ 143, 69, 0, 0, 71, 0, 144, 145, 146, 147,
+ 149, 152, 0, 70, 0, 75, 8, 0, 70, 0,
+ 76, 8, 0, 70, 0, 81, 0, 70, 0, 77,
+ 89, 0, 77, 11, 148, 0, 18, 143, 19, 0,
+ 0, 70, 0, 80, 330, 0, 79, 150, 162, 0,
+ 107, 0, 108, 8, 8, 4, 8, 0, 143, 0,
+ 151, 26, 143, 0, 70, 0, 73, 153, 0, 154,
+ 0, 153, 26, 154, 0, 22, 157, 23, 8, 148,
+ 0, 156, 0, 155, 26, 156, 0, 22, 157, 23,
+ 8, 148, 159, 0, 158, 0, 157, 26, 158, 0,
+ 70, 0, 242, 0, 0, 160, 0, 161, 0, 160,
+ 26, 161, 0, 329, 30, 143, 0, 38, 176, 28,
+ 162, 0, 88, 181, 28, 162, 0, 89, 331, 183,
+ 178, 0, 89, 106, 339, 331, 183, 178, 0, 90,
+ 175, 183, 178, 0, 91, 162, 178, 0, 92, 162,
+ 18, 185, 19, 0, 42, 162, 43, 18, 163, 19,
+ 0, 39, 18, 177, 30, 162, 19, 40, 162, 0,
+ 98, 18, 169, 19, 40, 162, 0, 60, 18, 171,
+ 19, 162, 0, 309, 0, 174, 0, 95, 164, 168,
+ 0, 96, 166, 168, 0, 0, 164, 165, 0, 174,
+ 176, 28, 162, 21, 0, 0, 166, 167, 0, 309,
+ 28, 162, 21, 0, 97, 0, 177, 28, 162, 0,
+ 170, 0, 169, 21, 170, 0, 177, 30, 162, 0,
+ 112, 173, 0, 113, 11, 11, 173, 0, 114, 11,
+ 11, 11, 173, 172, 0, 115, 174, 11, 11, 173,
+ 172, 0, 116, 174, 11, 11, 173, 172, 0, 70,
+ 0, 117, 0, 70, 0, 118, 0, 99, 338, 338,
+ 0, 100, 338, 329, 0, 101, 338, 329, 0, 102,
+ 338, 24, 185, 25, 0, 103, 338, 329, 24, 185,
+ 25, 0, 104, 174, 22, 186, 23, 0, 105, 174,
+ 0, 106, 339, 329, 0, 106, 339, 331, 0, 329,
+ 0, 331, 0, 24, 56, 333, 18, 183, 185, 19,
+ 25, 0, 24, 57, 333, 18, 183, 185, 19, 25,
+ 0, 24, 58, 309, 18, 183, 185, 19, 25, 0,
+ 24, 59, 309, 18, 183, 185, 19, 25, 0, 3,
+ 0, 0, 176, 177, 0, 24, 3, 33, 185, 25,
+ 0, 22, 23, 0, 22, 179, 23, 0, 180, 0,
+ 179, 26, 180, 0, 309, 0, 174, 0, 3, 0,
+ 181, 3, 0, 94, 0, 182, 26, 94, 0, 22,
+ 23, 0, 22, 184, 23, 0, 185, 0, 184, 26,
+ 185, 0, 242, 0, 187, 0, 186, 26, 187, 0,
+ 70, 0, 185, 0, 0, 189, 197, 0, 0, 191,
+ 197, 0, 0, 193, 21, 0, 194, 0, 193, 21,
+ 194, 0, 0, 53, 339, 195, 196, 0, 197, 129,
+ 0, 197, 129, 64, 198, 0, 204, 67, 0, 24,
+ 199, 25, 0, 200, 0, 199, 26, 200, 0, 329,
+ 66, 329, 0, 331, 66, 331, 0, 0, 202, 21,
+ 0, 203, 0, 202, 21, 203, 0, 310, 339, 24,
+ 130, 25, 0, 310, 339, 24, 130, 25, 64, 198,
+ 0, 0, 54, 339, 205, 41, 206, 0, 340, 201,
+ 207, 233, 343, 0, 340, 202, 343, 0, 341, 201,
+ 207, 233, 344, 0, 341, 202, 344, 0, 0, 208,
+ 21, 0, 209, 0, 208, 21, 209, 0, 0, 50,
+ 8, 210, 216, 0, 0, 51, 8, 211, 216, 0,
+ 0, 49, 8, 212, 216, 0, 0, 50, 213, 216,
+ 0, 0, 51, 214, 216, 0, 0, 49, 215, 216,
+ 0, 322, 0, 216, 26, 322, 0, 218, 0, 217,
+ 21, 218, 0, 219, 0, 220, 0, 221, 0, 223,
+ 0, 226, 0, 229, 0, 312, 248, 30, 242, 0,
+ 311, 254, 31, 248, 30, 250, 0, 311, 248, 30,
+ 250, 0, 311, 254, 31, 248, 30, 250, 65, 252,
+ 0, 311, 248, 30, 250, 65, 252, 0, 315, 254,
+ 31, 240, 222, 0, 315, 240, 222, 0, 0, 41,
+ 340, 228, 343, 0, 41, 341, 228, 344, 0, 313,
+ 254, 31, 337, 225, 224, 0, 313, 337, 225, 224,
+ 0, 0, 41, 340, 256, 343, 0, 41, 341, 256,
+ 344, 0, 338, 0, 24, 249, 25, 0, 24, 334,
+ 25, 0, 24, 25, 0, 22, 246, 23, 0, 24,
+ 246, 28, 246, 25, 0, 314, 227, 0, 24, 242,
+ 26, 241, 25, 0, 245, 0, 229, 0, 228, 21,
+ 229, 0, 258, 33, 242, 31, 242, 138, 0, 258,
+ 33, 242, 138, 0, 82, 330, 33, 231, 87, 0,
+ 82, 47, 4, 225, 87, 0, 82, 45, 338, 244,
+ 87, 0, 83, 330, 230, 87, 0, 84, 330, 330,
+ 87, 0, 86, 330, 87, 0, 85, 338, 87, 0,
+ 261, 0, 0, 0, 4, 0, 232, 0, 231, 26,
+ 232, 0, 242, 0, 242, 30, 330, 0, 234, 0,
+ 233, 21, 234, 0, 236, 0, 237, 0, 238, 0,
+ 239, 0, 235, 0, 0, 258, 33, 242, 31, 242,
+ 142, 0, 258, 33, 242, 142, 0, 312, 248, 30,
+ 242, 136, 0, 311, 254, 31, 248, 132, 0, 311,
+ 248, 132, 0, 311, 254, 31, 248, 30, 250, 132,
+ 0, 311, 248, 30, 250, 132, 0, 311, 254, 31,
+ 248, 30, 250, 65, 252, 0, 311, 248, 30, 250,
+ 65, 252, 0, 315, 254, 31, 240, 137, 222, 0,
+ 315, 240, 137, 222, 0, 313, 254, 31, 337, 225,
+ 139, 0, 313, 337, 225, 139, 0, 338, 336, 0,
+ 242, 0, 241, 26, 242, 0, 243, 0, 243, 28,
+ 242, 0, 93, 182, 31, 242, 0, 246, 0, 338,
+ 244, 0, 244, 246, 0, 246, 0, 247, 0, 243,
+ 28, 242, 0, 338, 244, 0, 247, 0, 24, 242,
+ 26, 241, 25, 0, 336, 0, 338, 0, 24, 25,
+ 0, 24, 242, 25, 0, 22, 242, 23, 0, 18,
+ 18, 4, 242, 19, 19, 0, 94, 0, 338, 0,
+ 338, 335, 0, 338, 244, 0, 251, 0, 250, 29,
+ 251, 0, 338, 244, 0, 24, 6, 25, 244, 0,
+ 338, 0, 24, 6, 25, 0, 243, 325, 243, 0,
+ 24, 253, 25, 0, 24, 25, 0, 337, 0, 337,
+ 0, 253, 26, 337, 0, 24, 255, 25, 0, 240,
+ 0, 240, 0, 255, 26, 240, 0, 0, 257, 0,
+ 256, 21, 257, 0, 83, 330, 230, 87, 0, 84,
+ 330, 330, 87, 0, 261, 0, 330, 26, 259, 0,
+ 330, 0, 329, 0, 259, 26, 329, 0, 331, 0,
+ 260, 26, 331, 0, 0, 278, 262, 263, 0, 264,
+ 266, 0, 265, 0, 30, 269, 0, 267, 30, 269,
+ 0, 267, 30, 269, 265, 0, 41, 340, 228, 343,
+ 0, 41, 341, 228, 344, 0, 0, 29, 270, 0,
+ 307, 268, 0, 307, 0, 270, 33, 242, 31, 242,
+ 0, 270, 33, 242, 0, 270, 0, 271, 0, 270,
+ 322, 270, 0, 7, 272, 0, 272, 0, 0, 0,
+ 38, 273, 268, 274, 28, 269, 0, 39, 340, 228,
+ 343, 40, 269, 0, 39, 341, 228, 344, 40, 269,
+ 0, 61, 269, 62, 269, 63, 269, 0, 42, 269,
+ 43, 340, 297, 343, 0, 42, 269, 43, 341, 297,
+ 344, 0, 56, 333, 276, 0, 56, 333, 0, 57,
+ 333, 276, 0, 57, 333, 0, 58, 17, 276, 0,
+ 58, 17, 0, 59, 17, 276, 0, 59, 17, 0,
+ 60, 11, 269, 0, 275, 0, 275, 277, 0, 277,
+ 0, 276, 277, 0, 277, 0, 329, 0, 331, 0,
+ 309, 0, 24, 269, 25, 0, 24, 270, 322, 25,
+ 0, 24, 321, 270, 25, 0, 286, 0, 288, 0,
+ 290, 0, 291, 0, 329, 36, 277, 0, 35, 0,
+ 37, 277, 0, 282, 0, 278, 322, 279, 0, 280,
+ 0, 279, 322, 279, 0, 7, 281, 0, 281, 0,
+ 281, 284, 0, 284, 0, 316, 281, 0, 283, 0,
+ 283, 284, 0, 285, 0, 331, 0, 329, 0, 329,
+ 36, 307, 0, 309, 0, 35, 0, 24, 25, 0,
+ 24, 329, 119, 8, 25, 0, 24, 279, 25, 0,
+ 24, 279, 26, 303, 25, 0, 22, 303, 23, 0,
+ 22, 23, 0, 37, 307, 0, 332, 0, 330, 0,
+ 330, 36, 307, 0, 309, 0, 35, 0, 318, 25,
+ 0, 318, 329, 119, 8, 25, 0, 318, 279, 25,
+ 0, 318, 279, 26, 303, 25, 0, 319, 303, 23,
+ 0, 319, 23, 0, 320, 307, 0, 24, 269, 26,
+ 287, 25, 0, 24, 25, 0, 269, 0, 269, 26,
+ 287, 0, 22, 23, 0, 22, 289, 23, 0, 269,
+ 0, 269, 26, 289, 0, 22, 269, 26, 269, 32,
+ 302, 23, 0, 22, 269, 32, 302, 23, 0, 22,
+ 269, 29, 292, 23, 0, 293, 0, 292, 26, 293,
+ 0, 0, 0, 294, 269, 295, 296, 0, 34, 269,
+ 0, 0, 298, 0, 297, 21, 298, 0, 0, 304,
+ 299, 300, 0, 0, 301, 266, 0, 28, 269, 266,
+ 0, 267, 28, 269, 301, 0, 267, 28, 269, 0,
+ 0, 269, 0, 304, 26, 303, 0, 304, 0, 305,
+ 0, 304, 325, 305, 0, 308, 0, 306, 0, 7,
+ 8, 0, 7, 9, 0, 331, 0, 306, 307, 0,
+ 331, 0, 308, 0, 329, 0, 329, 36, 307, 0,
+ 309, 0, 35, 0, 24, 25, 0, 24, 329, 119,
+ 8, 25, 0, 24, 304, 25, 0, 24, 304, 26,
+ 303, 25, 0, 22, 303, 23, 0, 22, 23, 0,
+ 37, 307, 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, 325,
+ 0, 324, 0, 325, 0, 323, 0, 326, 0, 27,
+ 3, 27, 0, 5, 0, 328, 0, 27, 3, 27,
+ 0, 6, 0, 27, 4, 27, 0, 5, 0, 328,
+ 0, 327, 0, 7, 0, 119, 0, 3, 0, 24,
+ 326, 25, 0, 3, 0, 318, 326, 25, 0, 338,
+ 0, 24, 6, 25, 0, 338, 0, 318, 6, 25,
+ 0, 3, 0, 4, 0, 246, 26, 246, 0, 246,
+ 26, 334, 0, 336, 0, 335, 336, 0, 3, 0,
+ 338, 0, 4, 0, 4, 0, 342, 18, 0, 342,
+ 0, 0, 19, 0, 0, 345, 346, 0, 20, 0,
+ 1, 0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+ 331, 334, 336, 337, 339, 342, 346, 351, 355, 361,
+ 365, 372, 373, 376, 378, 381, 383, 384, 385, 389,
+ 393, 397, 404, 405, 406, 409, 410, 413, 415, 418,
+ 420, 421, 422, 426, 430, 438, 441, 443, 446, 449,
+ 452, 454, 458, 462, 464, 467, 469, 472, 475, 479,
+ 483, 486, 489, 493, 496, 500, 503, 506, 510, 513,
+ 517, 519, 522, 524, 527, 529, 532, 534, 537, 541,
+ 543, 545, 547, 549, 553, 556, 560, 562, 565, 567,
+ 570, 572, 575, 580, 582, 585, 590, 592, 595, 597,
+ 600, 602, 605, 607, 610, 619, 622, 624, 626, 628,
+ 630, 632, 634, 636, 638, 640, 642, 643, 646, 649,
+ 653, 655, 658, 663, 665, 668, 672, 674, 677, 679,
+ 682, 686, 688, 689, 691, 693, 696, 697, 699, 700,
+ 702, 704, 705, 706, 708, 710, 712, 713, 714, 715,
+ 716, 719, 722, 724, 726, 728, 731, 733, 736, 739,
+ 741, 744, 746, 749, 751, 754, 756, 759, 761, 764,
+ 766, 769, 771, 774, 794, 796, 799, 801, 806, 821,
+ 828, 842, 849, 850, 853, 854, 857, 879, 885, 889,
+ 893, 901, 904, 906, 909, 910, 913, 914, 917, 918,
+ 921, 923, 928, 933, 946, 950, 954, 958, 964, 965,
+ 969, 970, 973, 976, 976, 979, 979, 982, 982, 985,
+ 985, 988, 988, 991, 993, 994, 997, 998, 1017, 1018,
+ 1019, 1020, 1021, 1022, 1025, 1029, 1031, 1033, 1035, 1039,
+ 1040, 1043, 1044, 1045, 1048, 1049, 1052, 1053, 1054, 1057,
+ 1058, 1060, 1061, 1062, 1063, 1066, 1069, 1070, 1077, 1078,
+ 1107, 1112, 1125, 1131, 1137, 1143, 1149, 1155, 1161, 1169,
+ 1170, 1173, 1175, 1177, 1179, 1182, 1184, 1186, 1187, 1190,
+ 1191, 1192, 1193, 1194, 1195, 1199, 1201, 1205, 1209, 1211,
+ 1213, 1215, 1217, 1219, 1223, 1225, 1229, 1231, 1238, 1242,
+ 1243, 1246, 1247, 1249, 1252, 1253, 1256, 1257, 1261, 1262,
+ 1263, 1266, 1267, 1270, 1271, 1272, 1273, 1274, 1276, 1278,
+ 1282, 1283, 1287, 1293, 1294, 1298, 1299, 1300, 1301, 1302,
+ 1305, 1306, 1307, 1310, 1311, 1314, 1315, 1318, 1319, 1322,
+ 1323, 1324, 1337, 1344, 1350, 1354, 1355, 1359, 1360, 1363,
+ 1364, 1368, 1394, 1408, 1411, 1412, 1415, 1416, 1419, 1421,
+ 1422, 1425, 1429, 1430, 1439, 1440, 1441, 1450, 1451, 1461,
+ 1462, 1469, 1477, 1480, 1486, 1487, 1490, 1493, 1494, 1497,
+ 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1507, 1521, 1526,
+ 1527, 1530, 1531, 1541, 1542, 1543, 1544, 1545, 1546, 1549,
+ 1550, 1551, 1552, 1555, 1556, 1557, 1590, 1591, 1605, 1606,
+ 1626, 1627, 1631, 1632, 1635, 1636, 1640, 1641, 1644, 1645,
+ 1646, 1647, 1648, 1649, 1650, 1654, 1655, 1656, 1657, 1658,
+ 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1671, 1672, 1673,
+ 1674, 1675, 1685, 1691, 1695, 1696, 1706, 1707, 1710, 1712,
+ 1727, 1728, 1731, 1734, 1735, 1738, 1738, 1739, 1757, 1758,
+ 1761, 1762, 1765, 1768, 1771, 1774, 1775, 1778, 1779, 1782,
+ 1783, 1786, 1787, 1791, 1792, 1795, 1796, 1797, 1798, 1801,
+ 1802, 1805, 1806, 1809, 1810, 1811, 1812, 1813, 1814, 1818,
+ 1819, 1820, 1821, 1822, 1825, 1827, 1828, 1829, 1830, 1831,
+ 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1845, 1848,
+ 1858, 1868, 1879, 1882, 1892, 1895, 1905, 1908, 1911, 1917,
+ 1918, 1921, 1922, 1925, 1926, 1930, 1931, 1932, 1935, 1936,
+ 1939, 1940, 1941, 1944, 1947, 1950, 1951, 1954, 1955, 1959,
+ 1960, 1963, 1964, 1967, 1968, 1972, 1973, 1977, 1978, 1981,
+ 1984, 1990, 1993, 1997, 1999, 2002, 2005, 2013, 2013, 2016,
+ 2022
+};
+
+static const char * const yytname[] = { "$","error","$illegal.","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","restof_iinst_spec","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_instpragma_pairs","type_instpragma_pair",
+"type_maybes","type_maybe","maybe_name_pragma_pairs","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",
+"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",
+"simple_long","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","atype_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, 139, 140, 140, 141, 142, 142, 143, 143,
+ 144, 144, 145, 145, 146, 146, 147, 147, 147, 148,
+ 148, 149, 149, 149, 150, 150, 151, 151, 152, 152,
+ 153, 153, 154, 155, 155, 156, 157, 157, 158, 158,
+ 159, 159, 160, 160, 161, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 163, 163,
+ 164, 164, 165, 166, 166, 167, 168, 168, 169, 169,
+ 170, 171, 171, 171, 171, 171, 172, 172, 173, 173,
+ 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
+ 174, 175, 175, 175, 175, 175, 176, 176, 177, 178,
+ 178, 179, 179, 180, 180, 181, 181, 182, 182, 183,
+ 183, 184, 184, 185, 186, 186, 187, 187, 189, 188,
+ 191, 190, 192, 192, 193, 193, 195, 194, 196, 196,
+ 197, 198, 199, 199, 200, 200, 201, 201, 202, 202,
+ 203, 203, 205, 204, 206, 206, 206, 206, 207, 207,
+ 208, 208, 210, 209, 211, 209, 212, 209, 213, 209,
+ 214, 209, 215, 209, 216, 216, 217, 217, 218, 218,
+ 218, 218, 218, 218, 219, 220, 220, 220, 220, 221,
+ 221, 222, 222, 222, 223, 223, 224, 224, 224, 225,
+ 225, 225, 225, 225, 225, 226, 227, 227, 228, 228,
+ 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
+ 229, 230, 230, 231, 231, 232, 232, 233, 233, 234,
+ 234, 234, 234, 234, 234, 235, 235, 236, 237, 237,
+ 237, 237, 237, 237, 238, 238, 239, 239, 240, 241,
+ 241, 242, 242, 242, 243, 243, 244, 244, 245, 245,
+ 245, 246, 246, 247, 247, 247, 247, 247, 247, 247,
+ 248, 248, 249, 250, 250, 251, 251, 251, 251, 251,
+ 252, 252, 252, 253, 253, 254, 254, 255, 255, 256,
+ 256, 256, 257, 257, 257, 258, 258, 259, 259, 260,
+ 260, 262, 261, 263, 264, 264, 265, 265, 266, 266,
+ 266, 267, 268, 268, 269, 269, 269, 270, 270, 271,
+ 271, 273, 274, 272, 272, 272, 272, 272, 272, 272,
+ 272, 272, 272, 272, 272, 272, 272, 272, 272, 275,
+ 275, 276, 276, 277, 277, 277, 277, 277, 277, 277,
+ 277, 277, 277, 277, 277, 277, 278, 278, 279, 279,
+ 280, 280, 281, 281, 282, 282, 283, 283, 284, 284,
+ 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
+ 285, 285, 285, 285, 285, 285, 285, 285, 285, 285,
+ 285, 285, 286, 286, 287, 287, 288, 288, 289, 289,
+ 290, 290, 291, 292, 292, 294, 295, 293, 296, 296,
+ 297, 297, 299, 298, 298, 300, 300, 301, 301, 302,
+ 302, 303, 303, 304, 304, 305, 305, 305, 305, 306,
+ 306, 307, 307, 308, 308, 308, 308, 308, 308, 308,
+ 308, 308, 308, 308, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 310, 311,
+ 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
+ 321, 322, 322, 323, 323, 324, 324, 324, 325, 325,
+ 326, 326, 326, 327, 328, 329, 329, 330, 330, 331,
+ 331, 332, 332, 333, 333, 334, 334, 335, 335, 336,
+ 337, 338, 339, 340, 341, 342, 343, 345, 344, 346,
+ 346
+};
+
+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, 5, 0, 2, 0, 2, 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, 6, 1, 3, 1, 1,
+ 0, 1, 1, 3, 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,
+ 3, 3, 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, 2, 1, 3, 2, 4, 1, 3, 3,
+ 3, 2, 1, 1, 3, 3, 1, 1, 3, 0,
+ 1, 3, 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, 3, 3, 1, 2, 1,
+ 1, 1, 1, 2, 1, 0, 1, 0, 2, 1,
+ 1
+};
+
+static const short yydefact[] = { 169,
+ 171, 0, 4, 0, 0, 170, 0, 506, 1, 546,
+ 0, 172, 543, 193, 181, 5, 173, 173, 545, 12,
+ 0, 0, 199, 0, 175, 199, 548, 544, 0, 2,
+ 546, 177, 547, 213, 209, 211, 261, 0, 201, 11,
+ 174, 9, 261, 10, 0, 8, 526, 542, 0, 0,
+ 14, 16, 17, 0, 194, 187, 187, 0, 207, 0,
+ 203, 0, 205, 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, 217, 219, 220, 221, 222, 223,
+ 224, 0, 260, 342, 397, 406, 408, 424, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 422, 421, 532,
+ 200, 176, 548, 551, 550, 549, 521, 524, 525, 0,
+ 523, 522, 13, 0, 0, 22, 546, 499, 199, 0,
+ 189, 0, 199, 548, 178, 26, 0, 519, 0, 214,
+ 215, 513, 512, 514, 0, 210, 0, 212, 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, 327, 0, 0, 311, 0,
+ 311, 0, 0, 541, 540, 0, 0, 0, 310, 246,
+ 0, 248, 295, 299, 304, 305, 232, 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, 202, 7,
+ 527, 15, 507, 21, 0, 0, 0, 337, 340, 3,
+ 275, 188, 196, 0, 275, 198, 0, 0, 27, 179,
+ 208, 0, 0, 0, 204, 206, 495, 0, 0, 0,
+ 263, 0, 0, 259, 258, 497, 218, 0, 0, 49,
+ 292, 302, 305, 0, 0, 343, 351, 345, 0, 0,
+ 398, 419, 0, 0, 414, 0, 410, 420, 0, 328,
+ 0, 0, 0, 312, 538, 0, 538, 0, 0, 0,
+ 237, 240, 289, 0, 0, 306, 0, 0, 301, 298,
+ 305, 546, 231, 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, 190, 0, 548, 25,
+ 0, 28, 30, 31, 0, 0, 515, 520, 216, 0,
+ 0, 0, 264, 266, 256, 257, 0, 158, 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, 326, 0, 0, 0, 227, 314, 318, 0, 539,
+ 225, 0, 541, 0, 243, 0, 0, 0, 305, 546,
+ 236, 0, 308, 307, 0, 300, 297, 261, 261, 232,
+ 0, 400, 0, 482, 480, 0, 0, 462, 465, 475,
+ 0, 0, 341, 275, 195, 0, 38, 0, 0, 0,
+ 0, 47, 0, 0, 197, 23, 0, 0, 0, 0,
+ 180, 255, 254, 0, 253, 0, 0, 0, 0, 49,
+ 61, 59, 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, 329, 0, 0, 0, 0, 316, 0,
+ 237, 244, 0, 0, 241, 242, 313, 330, 330, 0,
+ 0, 290, 0, 249, 548, 230, 429, 427, 0, 0,
+ 339, 269, 58, 0, 40, 280, 0, 0, 0, 53,
+ 0, 232, 0, 191, 29, 35, 0, 0, 0, 24,
+ 0, 0, 183, 0, 0, 265, 267, 0, 159, 294,
+ 251, 62, 0, 63, 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, 319, 320, 315, 0, 229,
+ 323, 226, 235, 536, 537, 0, 0, 0, 0, 331,
+ 335, 422, 548, 0, 247, 0, 261, 233, 234, 481,
+ 479, 0, 0, 277, 38, 0, 0, 40, 38, 45,
+ 0, 55, 288, 77, 0, 286, 47, 0, 32, 34,
+ 33, 182, 0, 0, 0, 303, 48, 64, 65, 66,
+ 0, 439, 440, 0, 444, 0, 461, 0, 518, 435,
+ 0, 388, 389, 0, 353, 0, 0, 455, 455, 382,
+ 0, 0, 349, 350, 317, 322, 0, 324, 0, 245,
+ 262, 0, 0, 238, 239, 309, 291, 250, 58, 0,
+ 0, 282, 0, 39, 41, 37, 0, 0, 279, 0,
+ 278, 53, 0, 0, 0, 46, 232, 192, 184, 185,
+ 186, 67, 0, 0, 0, 460, 443, 446, 447, 442,
+ 0, 433, 0, 0, 0, 0, 451, 453, 548, 0,
+ 355, 321, 0, 228, 0, 0, 332, 276, 57, 284,
+ 89, 0, 87, 90, 0, 36, 38, 0, 287, 54,
+ 0, 78, 285, 71, 68, 72, 0, 0, 0, 439,
+ 0, 445, 450, 436, 364, 365, 366, 455, 368, 0,
+ 369, 367, 325, 333, 334, 43, 0, 42, 0, 281,
+ 44, 50, 0, 0, 0, 93, 0, 0, 69, 75,
+ 0, 0, 73, 79, 0, 60, 441, 0, 448, 452,
+ 0, 0, 454, 351, 88, 283, 0, 56, 84, 52,
+ 0, 51, 0, 0, 0, 147, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 74, 108, 107, 140, 141, 0, 80,
+ 81, 449, 351, 0, 456, 0, 0, 94, 95, 70,
+ 0, 0, 0, 0, 0, 156, 0, 0, 0, 146,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 137, 0, 0, 0, 457, 459, 0, 85, 0,
+ 0, 0, 148, 0, 0, 0, 0, 0, 0, 0,
+ 0, 157, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 101, 0, 0, 119, 0, 131, 132, 133,
+ 0, 0, 0, 138, 139, 0, 82, 458, 71, 76,
+ 0, 96, 0, 0, 129, 130, 122, 0, 0, 0,
+ 0, 0, 97, 0, 160, 0, 162, 164, 98, 0,
+ 0, 0, 0, 100, 150, 155, 0, 152, 154, 0,
+ 0, 0, 0, 0, 0, 167, 168, 0, 165, 71,
+ 91, 0, 0, 111, 114, 0, 0, 0, 0, 0,
+ 106, 0, 161, 0, 0, 0, 0, 0, 151, 0,
+ 102, 0, 120, 121, 134, 0, 136, 0, 83, 86,
+ 92, 0, 0, 0, 0, 103, 123, 0, 0, 0,
+ 99, 163, 0, 0, 0, 0, 153, 105, 135, 166,
+ 149, 0, 0, 117, 112, 109, 147, 0, 115, 110,
+ 0, 0, 0, 0, 0, 0, 0, 0, 104, 0,
+ 0, 0, 127, 128, 124, 125, 126, 0, 0, 0,
+ 0, 0, 118, 0, 142, 143, 144, 145, 0, 116,
+ 113, 0, 0, 0
+};
+
+static const short yydefgoto[] = { 1092,
+ 9, 54, 10, 16, 30, 50, 51, 259, 260, 371,
+ 372, 576, 667, 734, 735, 741, 582, 392, 673, 744,
+ 824, 664, 504, 505, 606, 691, 754, 829, 799, 832,
+ 675, 836, 880, 881, 848, 849, 782, 783, 1030, 825,
+ 826, 874, 1006, 1034, 1055, 1035, 1059, 1056, 945, 946,
+ 931, 1075, 967, 875, 902, 892, 923, 943, 987, 988,
+ 897, 389, 936, 976, 997, 998, 999, 1, 2, 3,
+ 4, 23, 24, 25, 58, 145, 6, 491, 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, 451, 311, 100, 200, 563, 564, 272,
+ 382, 383, 355, 356, 357, 358, 359, 360, 361, 186,
+ 561, 978, 281, 319, 202, 203, 282, 187, 447, 436,
+ 437, 640, 717, 188, 301, 649, 650, 102, 348, 247,
+ 103, 174, 286, 287, 288, 424, 289, 616, 697, 422,
+ 410, 411, 523, 704, 412, 621, 413, 104, 215, 216,
+ 217, 105, 106, 211, 107, 414, 701, 415, 693, 416,
+ 417, 694, 695, 696, 803, 839, 766, 767, 810, 843,
+ 844, 698, 226, 227, 228, 229, 617, 230, 418, 142,
+ 109, 110, 111, 112, 113, 114, 11, 162, 116, 117,
+ 518, 151, 152, 519, 153, 154, 131, 132, 419, 118,
+ 420, 119, 529, 448, 304, 205, 641, 184, 14, 17,
+ 18, 19, 40, 44, 45, 126
+};
+
+static const short yypact[] = {-32768,
+-32768, 58, 15, 58, 140,-32768, 197,-32768,-32768,-32768,
+ 140,-32768,-32768,-32768,-32768,-32768, 220, 220, 326, 342,
+ 405, 140, 424, 358,-32768, 649, 400,-32768, 415,-32768,
+-32768,-32768,-32768, 446, 480, 484, 1796, 487,-32768,-32768,
+ 220,-32768, 1796,-32768, 433,-32768,-32768,-32768, 59, 579,
+-32768,-32768, 409, 482,-32768, 486, 486, 58,-32768, 116,
+-32768, 116,-32768, 116,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768, 452,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768, 272, 174, 174, 545, 174,
+ 546, 576, 589, 577,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768, 578,-32768, 116,-32768, 1370,-32768,-32768, 291, 545,
+ 291, 815, 291, 1370, 1086, 2359, 2549, 471,-32768,-32768,
+ 649,-32768, 603,-32768,-32768,-32768,-32768,-32768,-32768, 614,
+-32768,-32768,-32768, 415, 700,-32768,-32768,-32768, 649, 597,
+-32768, 140, 649, 643,-32768, 199, 116,-32768, 656, 658,
+-32768,-32768,-32768,-32768, 116, 658, 116, 658, 678, 545,
+ 711, 59, 685, 732, 174, 644, 659,-32768, 759,-32768,
+ 1796,-32768, 782, 648, 2472, 2402, 1152,-32768, 2549,-32768,
+-32768, 728,-32768,-32768, 545,-32768, 757, 765, 787, 775,
+ 787, 777, 333, 787,-32768, 799, 782, 672,-32768,-32768,
+ 793,-32768,-32768, 800,-32768, 956, 500, 801, 787, 1370,
+-32768, 811, 1370,-32768, 336,-32768, 1370, 830, -8, 733,
+ 2437,-32768, 1550,-32768, 2549, 825, 359,-32768, 2549,-32768,
+-32768, 824,-32768,-32768,-32768,-32768, 255, 2549,-32768,-32768,
+-32768,-32768, 860,-32768, 844, 847, 719, 848,-32768,-32768,
+ 511, 486,-32768, 856, 511,-32768, 497, 866,-32768, 835,
+ 658, 870, 876, 116, 658, 658,-32768, 956, 333, 782,
+-32768, 818, 827,-32768,-32768,-32768,-32768, 672, 814, 149,
+ 883,-32768, 956, 1977, 1977,-32768, 879,-32768, 894, 1370,
+-32768,-32768, 907, 906,-32768, 442, 44,-32768, 2549,-32768,
+ 725, 1015, 545, 787, 908, 782,-32768, 545, 956, 944,
+ 897,-32768,-32768, 937, 921,-32768, 727, 782, 918,-32768,
+-32768,-32768,-32768, 545,-32768,-32768, 1370,-32768, 2514, 2472,
+-32768, 943,-32768,-32768,-32768, 929, 733,-32768, 388, 48,
+-32768,-32768, 2514, 949, 2514,-32768, 2549, 928,-32768,-32768,
+-32768,-32768,-32768, 324, 613,-32768,-32768,-32768,-32768,-32768,
+-32768, 922, 291, 545, 291, 291,-32768, 415, 942,-32768,
+ 729,-32768,-32768, 946, 415, 947,-32768,-32768,-32768, 979,
+ 880, 5,-32768, 945,-32768,-32768, 745,-32768, 159, 782,
+ 544,-32768, 782, 956, 2106, 1852, 1491,-32768, 2584,-32768,
+-32768, 1977, 769, 769, 962, 964, 973, 1977, 116,-32768,
+-32768, 2584,-32768,-32768,-32768,-32768,-32768,-32768, 952,-32768,
+-32768, 362,-32768,-32768, 1977,-32768,-32768,-32768, 2514, 965,
+-32768,-32768, 545, 663, 374, 216,-32768, 303, 955,-32768,
+-32768, 333,-32768, 967,-32768, 623, 969, 970, 956,-32768,
+-32768, 782,-32768,-32768, 782,-32768,-32768, 2168, 2168, 951,
+ 971,-32768, 974,-32768,-32768, 2514, 990,-32768,-32768,-32768,
+ 255, 860,-32768, 511,-32768, 782, 66, 976, 972, 977,
+ 333, 189, 980, 751,-32768,-32768, 415, 820, 758, 426,
+-32768,-32768,-32768, 782,-32768, 174, 782, 910, 782, 932,
+-32768,-32768, 1002, 544, 477,-32768,-32768,-32768, 536, 991,
+ 992, 906, 2106,-32768, 789, 805, 362, 1977,-32768,-32768,
+ 999,-32768, 2549, 2168, 2168, 982,-32768,-32768, 2584, 2584,
+ 2584, 2584, 1977, 954, 1977,-32768, 2584, 782, 2168, 2168,
+ 997, 1004, 1006,-32768, 1007, 956, 1015, 403, 867, 1015,
+ 897,-32768, 956, 956,-32768,-32768, 956, 2324, 2324, 1008,
+ 821,-32768, 652,-32768, 1013,-32768,-32768,-32768, 1011, 1016,
+-32768,-32768, 198, 1015, 688,-32768, 545, 782, 545, 978,
+ 544, 951, 545, 983,-32768,-32768, 1019, 1023, 828,-32768,
+ 237, 833,-32768, 985, 986,-32768,-32768, 857,-32768,-32768,
+-32768,-32768, 987,-32768, 1032, 207, 1977,-32768, 1977,-32768,
+ 1022,-32768, 1977, 1916, 521,-32768, 2549, 652, 1013,-32768,
+ 2584,-32768, 2584, 2584, 2584,-32768, 1977,-32768,-32768, 1026,
+ 652, 1013,-32768,-32768,-32768, 956,-32768,-32768, 398,-32768,
+-32768, 217,-32768, 1033,-32768, 1038, 174, 174, 674,-32768,
+-32768, 1031, 1048, 1053, 1046, 782, 2168,-32768,-32768,-32768,
+-32768, 782, 544,-32768, 106, 1065, 1035, 27, 86, 1020,
+ 333, 1039,-32768,-32768, 49,-32768, 1037, 947,-32768,-32768,
+-32768,-32768, 426, 255, 324,-32768,-32768,-32768,-32768,-32768,
+ 13, 538,-32768, 134,-32768, 1977,-32768, 1083,-32768, 1081,
+ 1087,-32768,-32768, 1091,-32768, 1074, 1082, 2514, 2514,-32768,
+ 1061, 782,-32768,-32768, 956,-32768, 862,-32768, 403,-32768,
+ 732, 174, 2324,-32768,-32768,-32768,-32768,-32768, 1057, 1059,
+ 403,-32768, 705, 1100,-32768,-32768, 1060, 1015,-32768, 1058,
+-32768, 978, 140, 544, 544,-32768, 951,-32768,-32768,-32768,
+-32768,-32768, 36, 169, 1977, 1977,-32768,-32768,-32768,-32768,
+ 1977,-32768, 1977, 1977, 1977, 686,-32768, 374, 1110, 1977,
+-32768,-32768, 545,-32768, 1047, 1049,-32768,-32768,-32768,-32768,
+-32768, 470,-32768,-32768, 1065,-32768, 261, 1064,-32768,-32768,
+ 330,-32768,-32768, 1117,-32768,-32768, 788, 174, 547, 1111,
+ 1115,-32768, 1105,-32768,-32768,-32768,-32768, 2514,-32768, 888,
+-32768,-32768,-32768,-32768,-32768,-32768, 705,-32768, 403,-32768,
+-32768,-32768, 1118, 1072, 50,-32768, 1113, 544,-32768,-32768,
+ 1136, 1629,-32768,-32768, 1125,-32768,-32768, 1977,-32768,-32768,
+ 1977, 1120,-32768, 879,-32768,-32768, 705, 1123,-32768,-32768,
+ 255,-32768, 544, 1131, 1143,-32768, 1134, 1629, 1135, 1151,
+ 39, 407, 1629, 1629, 1153, 545, 545, 545, 545, 545,
+ 474, 474, 140,-32768,-32768,-32768,-32768,-32768, 705, 1144,
+-32768,-32768, 879, 1977,-32768, 599, 1118,-32768,-32768,-32768,
+ 1168, 227, 1149, 1132, 515,-32768, 99, 140, 1159,-32768,
+ 533, 1159, 1160, 1165, 1149, 545, 255, 255, 1164, 255,
+ 1162,-32768, 426, 615, 1125,-32768, 997, 1183,-32768, 1184,
+ 1190, 1629,-32768, 1169, 1180, 11, 1189, 1191, 474, 474,
+ 1187,-32768, 1629, 324, 563, 1160, 769, 769, 1069, 1069,
+ 1160, 2185,-32768, 782, 709,-32768, 1173,-32768,-32768,-32768,
+ 782, 1185, 756,-32768,-32768, 1200,-32768,-32768, 1117,-32768,
+ 1179,-32768, 1629, 823,-32768,-32768,-32768, 1202, 1203, 1204,
+ 1205, 1629,-32768, 1159,-32768, 635,-32768,-32768,-32768, 1199,
+ 1211, 1212, 1213,-32768,-32768,-32768, 642,-32768,-32768, 1216,
+ 1192, 1149, 1629, 1215, 782,-32768,-32768, 660,-32768, 1117,
+ 255, 782, 1217,-32768,-32768, 1218, 11, 1227, 1230, 1231,
+-32768, 1160,-32768, 782, 1159, 1159, 1159, 1159,-32768, 2215,
+-32768, 1629,-32768,-32768,-32768, 1219,-32768, 756,-32768,-32768,
+ 1221, 1223, 1220, 710, 1210,-32768,-32768, 11, 11, 11,
+-32768,-32768, 782, 782, 782, 782,-32768,-32768,-32768,-32768,
+-32768, 1629, 88,-32768,-32768,-32768,-32768, 1222,-32768,-32768,
+ 1224, 3, 3, 3, 1238, 1239, 1240, 1245,-32768, 380,
+ 1629, 1629,-32768,-32768,-32768,-32768,-32768, 1241, 1242, 1243,
+ 1244, 1629,-32768, 1249,-32768,-32768,-32768,-32768, 1251,-32768,
+-32768, 1265, 1273,-32768
+};
+
+static const short yypgoto[] = {-32768,
+-32768,-32768,-32768, 1106,-32768,-32768, 1141,-32768,-32768, 95,
+ 791, -604, 611,-32768, 495,-32768, 604, 783, 540,-32768,
+-32768, 555, -477,-32768,-32768,-32768,-32768, -902,-32768,-32768,
+-32768,-32768,-32768, 370,-32768, 399, -746, 472,-32768, 286,
+ 437, -95,-32768,-32768,-32768,-32768,-32768, 258,-32768, 302,
+-32768, -135, -527, -427,-32768, 238, -732, -652,-32768, 276,
+-32768,-32768, -705,-32768, -401,-32768, 269,-32768,-32768,-32768,
+-32768, 1285, 1286, 1267,-32768,-32768, 68, 634,-32768, 630,
+ 1260, 1266, 1070,-32768,-32768,-32768, 52,-32768, 1207,-32768,
+-32768,-32768,-32768,-32768,-32768, 235, 1281, 1154,-32768,-32768,
+-32768, -442,-32768, 781, -243,-32768,-32768, -53, -22, 612,
+-32768, 840, 1084, 863,-32768,-32768,-32768,-32768,-32768, -88,
+ 839, -59, -90, -245,-32768, 353, 1226, -78,-32768, -505,
+ 794, -657,-32768, -72,-32768, 784, 617, -100,-32768, 854,
+ -508,-32768,-32768,-32768, 803, -662, -804, 730, -44, -255,
+-32768, -355,-32768,-32768,-32768, 208, -159,-32768, -117,-32768,
+ -60,-32768,-32768, -51,-32768,-32768, 584,-32768, 950,-32768,
+-32768,-32768, 590,-32768,-32768,-32768, 641, 543,-32768,-32768,
+ 436, 598, -142, -199, 1010,-32768, -73, -97, -7,-32768,
+ -218, -209, -203,-32768, -202,-32768,-32768, -34,-32768,-32768,
+-32768, 120,-32768,-32768, -208, -47,-32768, 960, -29, -76,
+ 1139,-32768, -400, 806,-32768, 43, -103, 752, -6, -18,
+ -14,-32768, -23, -20,-32768,-32768
+};
+
+
+#define YYLAST 2695
+
+
+static const short yytable[] = { 52,
+ 42, 130, 115, 530, 20, 842, 46, 193, 115, 163,
+ 164, 165, 56, 167, 101, 32, 57, 566, 345, 235,
+ 101, 201, 380, 339, 207, 381, 603, 299, 409, 108,
+ 494, 190, 363, 293, 246, 108, 363, 394, 192, 507,
+ 208, 364, 48, 234, 642, 364, 794, 365, 366, 651,
+ 651, 365, 366, 210, 180, 547, 1001, 291, 248, 296,
+ 732, 774, 472, 127, 739, 128, 8, 218, 665, 668,
+ 172, 12, 1073, 780, 745, 851, 182, 43, 336, 299,
+ 965, 235, 752, 347, 182, 219, 232, 232, 273, 753,
+ 961, 495, 127, 294, 128, 574, 300, 1029, 181, 666,
+ 886, 932, 240, 674, 52, 298, 181, 181, 231, 231,
+ 332, 5, 842, 280, 218, 738, 253, 746, 852, 1074,
+ 127, 148, 128, 256, 795, 146, 933, 235, 966, 130,
+ 345, 235, 914, 575, 547, 254, 115, 315, 317, 676,
+ 235, 517, 149, 13, 898, 182, 232, 297, 101, 232,
+ 362, 341, 327, 575, 362, 346, 757, 507, 325, 758,
+ 924, 846, 430, 108, 350, 325, 467, 181, 231, 181,
+ 731, 231, 947, 575, 248, 130, 65, 129, 248, 390,
+ 182, 885, 820, 182, 498, 730, 461, 182, 520, 499,
+ 251, 232, 549, 340, 255, 232, 941, 78, 551, 232,
+ 468, 235, 181, 557, 442, 181, 129, 349, 232, 181,
+ 384, 435, 462, 231, 651, 231, 391, 231, 387, -327,
+ 916, 231, 257, 175, 439, 431, 546, 373, 662, 327,
+ 231, 305, 787, 307, 129, 460, 313, 580, 796, 522,
+ 421, 127, 294, 128, 547, 547, 441, 797, 798, 235,
+ 921, 313, 536, 258, 922, 363, 581, 47, 456, 947,
+ 182, 481, 615, 15, 364, 663, 791, 792, 1012, 232,
+ 365, 366, 22, 470, 65, 325, 689, 482, 49, 628,
+ 548, 719, 181, 979, 477, 479, 542, 690, 984, 547,
+ 478, 231, 480, 483, 48, 78, 156, 182, 158, 232,
+ 182, 1058, 1058, 458, 793, 195, 48, 459, -305, 1043,
+ 1044, 1045, 1046, 232, 185, 232, 160, 232, 161, 181,
+ 196, 231, 181, 569, 197, 819, 278, 48, 575, -305,
+ 500, 475, 47, 506, 330, 231, 48, 231, 373, 231,
+ 127, 148, 128, 28, 544, 373, 440, 472, 485, 130,
+ 854, 509, 516, 49, 309, 129, 310, 526, 628, 1041,
+ 328, 329, 149, 534, 148, 29, 127, 148, 128, 622,
+ 622, 622, 622, 362, 387, 889, 33, 629, 41, 148,
+ 541, 261, 524, 379, 343, 344, 525, 588, 149, 265,
+ 715, 266, 560, 148, 538, 562, 199, 248, 822, 232,
+ 344, 48, 823, 921, 539, 565, 48, 1082, 540, 900,
+ 330, 248, 465, 466, 344, 330, 573, 47, 48, 597,
+ 41, 231, 716, 115, 115, 235, 639, 742, 47, 48,
+ 901, 558, 135, 124, 384, 559, 232, 562, 49, 600,
+ 136, 571, 33, 911, 912, 31, 127, 148, 128, 591,
+ 108, 108, 125, 59, 129, 637, 435, 373, 231, 435,
+ 594, 710, 484, 710, 710, 710, 428, 429, 149, 489,
+ 618, 619, 34, 35, 36, 671, 47, 48, 630, 1037,
+ 129, 652, 652, 435, 435, 631, 632, 61, 626, 115,
+ 115, 63, 816, 232, 677, 817, 237, 591, 669, 47,
+ 48, 970, 971, -337, 115, 115, 238, 121, 768, 768,
+ 1062, 1063, 1064, 65, 986, 231, 108, 108, 670, 235,
+ 49, 370, 137, 115, 115, 127, 148, 128, 535, 159,
+ -327, 108, 108, 977, 78, 718, 980, 981, 138, 658,
+ 322, 535, 990, 130, 659, 703, 604, 149, 48, 994,
+ 108, 108, 605, 168, 81, 82, 83, 84, 320, 345,
+ 129, 607, 692, 755, 608, 195, 48, 609, 700, 756,
+ 721, 722, 866, 867, 868, 869, 870, 871, 872, 873,
+ 196, 330, 711, 169, 197, 975, 278, 232, 937, 938,
+ 939, 940, 986, 1026, 706, 33, 727, 171, 707, 170,
+ 1032, 708, 729, 133, 134, 709, 1057, 713, 768, 231,
+ 173, 714, 1042, 501, 502, 33, 834, 252, 503, 835,
+ 320, 918, 115, 171, 817, 724, 926, 927, 928, 929,
+ 930, 33, 725, 474, 728, 320, 614, 956, 241, 129,
+ 817, 1065, 1066, 1067, 1068, 776, 652, 435, 553, 108,
+ 554, 759, 771, 594, 750, 279, 199, 1013, 262, 263,
+ 1014, 444, 446, 252, 1019, 195, 48, 1020, 545, 813,
+ 33, 457, 657, 784, 195, 48, 284, 285, 232, 232,
+ 196, 267, 1027, 264, 197, 1028, 278, 316, 115, 196,
+ 195, 48, 33, 197, 723, 278, 316, 34, 35, 36,
+ 231, 231, 65, 48, 33, 196, 808, 195, 48, 197,
+ 800, 434, 47, 48, 269, 108, 700, 270, 805, 806,
+ 807, 833, 196, 243, 244, 812, 197, 991, 278, 992,
+ 274, 245, 457, 1053, 535, 271, 790, 623, 624, 625,
+ 333, 334, 809, 353, 354, 275, 457, 535, 811, 432,
+ 433, 454, 455, 486, 487, 279, 199, 784, 195, 48,
+ 666, 827, 894, 299, 279, 199, 276, 903, 904, 454,
+ 497, 527, 528, 196, 781, 584, 487, 197, 232, 278,
+ 53, 199, 590, 487, 195, 48, 302, 784, 120, 195,
+ 320, 611, 263, 882, 120, 303, 883, 279, 199, 196,
+ 231, 320, 877, 197, 306, 278, 1054, 308, 866, 867,
+ 868, 869, 870, 871, 872, 873, 314, 195, 48, 784,
+ 318, 827, 65, 48, 876, 996, 962, -302, 877, 612,
+ 613, 324, 196, 877, 877, 326, 197, 973, 198, 917,
+ 166, 877, 877, 243, 586, 655, 656, 342, 279, 199,
+ 876, 587, 681, 354, 331, 876, 876, 682, 683, 347,
+ 189, 191, 194, 206, 209, 294, 913, 1003, 351, 195,
+ 48, 352, -296, 237, 279, 199, 1011, 949, 950, 368,
+ 952, 686, 656, 954, 196, 53, 772, 773, 197, 375,
+ 278, 934, 877, -296, 830, 831, 377, 1024, 376, 877,
+ 877, 457, 378, 877, 385, 644, 646, 388, 199, 457,
+ 393, 268, 877, 386, 876, 841, 284, 1004, 1005, 423,
+ 195, 48, 120, 425, 283, 876, 1048, 1076, 1077, 426,
+ 427, 982, 983, 877, 989, 196, 209, 450, -289, 197,
+ 452, 278, 877, 453, 312, -296, 195, 48, 283, 283,
+ 463, 464, 263, 471, 476, 876, 1069, 321, 195, 48,
+ 199, 196, 474, 877, 876, 197, 493, 278, 445, 488,
+ 490, 827, 543, 196, 496, 1083, 1084, 197, 531, 278,
+ 532, 195, 48, 533, 550, 876, 1089, 537, 320, 552,
+ 877, 322, 877, 555, 556, 567, 196, 570, 568, 391,
+ 197, 578, 278, 599, 877, 130, 577, 579, 374, 602,
+ 583, 199, 989, 610, 876, 627, -521, 195, 48, 321,
+ 312, 283, 877, -522, 620, 284, 654, 1061, 634, 283,
+ 635, 636, 196, 657, 321, 660, 197, 199, 434, 688,
+ 661, 877, 877, 679, 876, 672, 678, 680, 699, 199,
+ 684, 685, 877, 438, 191, 687, 712, 283, 553, 443,
+ 321, 449, 720, 876, 876, 492, 238, 457, 723, 283,
+ 321, 726, 199, -303, 876, 209, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 733, 740, 47, 48,
+ 127, 212, 213, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 736, 581, 760, 761, 176, 199, 177,
+ 214, 762, 743, 764, 189, 191, 194, 209, 763, 374,
+ 178, 765, 179, 770, 663, 785, 374, 779, 786, 788,
+ 808, 321, 821, 814, 828, 815, 755, 837, 838, 847,
+ 850, 283, 853, 855, 283, 321, 879, 884, 887, 890,
+ 891, 893, 895, 896, 47, 48, 127, 294, 213, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 915,
+ 905, 920, 921, 176, 925, 177, 295, 91, 92, 93,
+ 935, 942, 944, 953, 209, 283, 178, 951, 179, 321,
+ 959, 960, 961, 312, 91, 92, 93, 964, 963, 968,
+ 321, 969, 993, 283, 129, 972, 283, 1000, 995, 120,
+ 120, 1002, 1007, 1008, 1009, 1010, 1015, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 283, 1016, 1017,
+ 1018, 1022, 312, 921, 1021, 1033, 1036, 1038, 374, 1025,
+ 1039, 1040, 250, 1049, 183, 283, 851, 1051, 283, 1071,
+ 283, 1072, 183, 183, 233, 236, 1078, 1079, 1080, 1052,
+ 91, 92, 93, 1081, 1093, 1085, 1086, 1087, 1088, 1090,
+ 129, 1091, 1094, 249, 242, 120, 120, 585, 737, 818,
+ 747, 789, 601, 778, 957, 919, 1031, 888, 845, 283,
+ 120, 120, 1060, 1023, 1070, 1047, 1050, 283, 438, 443,
+ 321, 438, 26, 27, 321, 321, 1054, 122, 321, 120,
+ 120, 748, 749, 183, 233, 183, 143, 236, 91, 92,
+ 93, 367, 144, 123, 277, 438, 438, 239, 191, 283,
+ 443, 643, 775, 596, 209, 598, 572, 204, 369, 777,
+ 638, 589, 653, 633, 804, 510, 705, 802, 183, 769,
+ 840, 183, 958, 801, 469, 183, 521, 0, 645, 233,
+ 0, 233, 0, 236, 0, 0, 0, 236, 0, 0,
+ 0, 0, 47, 48, 0, 0, 236, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 321, 0, 0,
+ 443, 176, 0, 177, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 178, 0, 179, 283, 120, 0,
+ 0, 0, 0, 283, 0, 0, 0, 0, 0, 0,
+ 0, 0, 312, 0, 0, 0, 0, 0, 183, 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, 0, 0, 0, 0,
+ 0, 0, 0, 283, 0, 183, 321, 233, 183, 0,
+ 443, 0, 0, 0, 120, 0, 0, 0, 91, 92,
+ 93, 233, 443, 233, 283, 236, 0, 0, 0, 438,
+ 0, 0, 473, 47, 48, 511, 512, 513, 67, 68,
+ 69, 70, 71, 72, 73, 74, 75, 76, 0, 0,
+ 0, 0, 396, 0, 397, 514, 0, 515, 0, 0,
+ 0, 0, 0, 0, 443, 398, 0, 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, 127, 294, 337, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 233, 283, 0,
+ 443, 221, 0, 223, 338, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 224, 0, 225, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 283, 91,
+ 92, 93, 0, 0, 233, 0, 0, 0, 0, 129,
+ 0, 0, 0, 0, 0, 0, 0, 906, 907, 908,
+ 909, 910, 0, 0, 0, 0, 249, 0, 595, 0,
+ 283, 47, 48, 0, 0, 0, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 0, 0, 0, 0,
+ 0, 0, 591, 0, 0, 0, 0, 948, 91, 92,
+ 93, 236, 0, 0, 0, 0, 856, 857, 129, 0,
+ 858, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 283, 0, 859, 0,
+ 0, 0, 0, 0, 0, 283, 0, 0, 0, 0,
+ 0, 0, 283, 0, 283, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 860, 861, 862, 863,
+ 864, 0, 0, 0, 0, 0, 865, 866, 867, 868,
+ 869, 870, 871, 872, 873, 0, 0, 91, 92, 93,
+ 0, 0, 0, 0, 0, 0, 283, 0, 0, 0,
+ 0, 0, 0, 283, 0, 236, 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, 0, 0, 0, 0,
+ 0, 0, 0, 0, 283, 283, 283, 283, 65, 48,
+ 0, 0, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 0, 0, 0, 0, 77, 0, 78,
+ 0, 595, 0, 751, 0, 0, 0, 0, 0, 0,
+ 79, 0, 80, 0, 0, 0, 0, 0, 0, 81,
+ 82, 83, 84, 85, 0, 0, 233, 233, 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, 508, 397, 0, 86, 87, 88,
+ 89, 90, 0, 0, 0, 0, 398, 0, 399, 400,
+ 401, 0, 0, 402, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 91, 92, 93, 403, 404, 405,
+ 406, 407, 408, 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, 0, 397,
+ 702, 0, 0, 0, 0, 0, 233, 0, 0, 0,
+ 398, 0, 399, 400, 401, 0, 0, 402, 0, 0,
+ 91, 92, 93, 0, 0, 0, 0, 0, 0, 0,
+ 878, 403, 404, 405, 406, 407, 408, 0, 0, 47,
+ 48, 0, 0, 395, 67, 68, 69, 70, 71, 72,
+ 73, 74, 75, 76, 0, 0, 878, 0, 396, 899,
+ 397, 878, 878, 0, 0, 0, 0, 0, 0, 878,
+ 878, 398, 0, 399, 400, 401, 0, 0, 402, 0,
+ 0, 0, 0, 0, 91, 92, 93, 0, 0, 0,
+ 0, 0, 403, 404, 405, 406, 407, 408, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 955, 0, 0, 0, 0, 0, 0, 0, 0,
+ 878, 0, 0, 0, 0, 0, 0, 878, 878, 0,
+ 0, 878, 974, 0, 0, 0, 0, 0, 0, 0,
+ 878, 0, 0, 0, 0, 91, 92, 93, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 878, 0, 0, 0, 0, 0, 0, 47, 48,
+ 878, 0, 0, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 0, 0, 0, 0, 396, 0, 397,
+ 0, 878, 0, 0, 0, 0, 0, 0, 0, 0,
+ 398, 0, 399, 400, 401, 0, 0, 402, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 878, 0,
+ 878, 403, 404, 405, 406, 407, 408, 0, 0, 0,
+ 65, 48, 878, 0, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, 75, 76, 0, 0, 47, 48, 77,
+ 878, 78, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 79, 0, 80, 0, 0, 985, 591, 878,
+ 878, 0, 0, 0, 91, 92, 93, 47, 48, 0,
+ 878, 0, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 0, 0, 0, 0, 0, 0, 591, 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, 866, 867, 868, 869, 870, 871, 872,
+ 873, 0, 0, 91, 92, 93, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 866, 867, 868, 869, 870, 871, 872,
+ 873, 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, 47, 48, 647, 648, 220, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
+ 0, 0, 0, 221, 292, 223, 0, 0, 0, 0,
+ 0, 0, 91, 92, 93, 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, 0, 0, 0, 0, 91, 92, 93,
+ 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,
+ 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, 396, 0, 397, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 398, 0,
+ 399, 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, 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, 91, 92, 93
+};
+
+static const short yycheck[] = { 29,
+ 24, 49, 37, 404, 11, 810, 27, 111, 43, 86,
+ 87, 88, 31, 90, 37, 22, 31, 460, 227, 117,
+ 43, 112, 268, 223, 113, 269, 504, 36, 284, 37,
+ 26, 110, 251, 176, 135, 43, 255, 283, 111, 395,
+ 113, 251, 4, 117, 550, 255, 11, 251, 251, 558,
+ 559, 255, 255, 114, 106, 29, 959, 175, 135, 177,
+ 665, 719, 24, 5, 669, 7, 52, 115, 574, 575,
+ 94, 4, 70, 731, 26, 26, 106, 26, 221, 36,
+ 70, 179, 70, 36, 114, 115, 116, 117, 165, 77,
+ 3, 87, 5, 6, 7, 30, 185, 1000, 106, 73,
+ 847, 3, 123, 581, 134, 179, 114, 115, 116, 117,
+ 119, 54, 917, 173, 162, 30, 140, 69, 69, 117,
+ 5, 6, 7, 144, 89, 58, 28, 225, 118, 177,
+ 339, 229, 879, 68, 29, 142, 171, 197, 198, 582,
+ 238, 397, 27, 4, 106, 175, 176, 177, 171, 179,
+ 251, 225, 213, 68, 255, 229, 23, 513, 210, 26,
+ 893, 819, 119, 171, 238, 217, 119, 175, 176, 177,
+ 65, 179, 905, 68, 251, 223, 3, 119, 255, 31,
+ 210, 844, 787, 213, 26, 663, 329, 217, 397, 31,
+ 139, 221, 438, 223, 143, 225, 902, 24, 442, 229,
+ 343, 299, 210, 449, 308, 213, 119, 237, 238, 217,
+ 270, 302, 330, 221, 723, 223, 68, 225, 278, 31,
+ 883, 229, 24, 104, 303, 299, 435, 257, 31, 290,
+ 238, 189, 738, 191, 119, 324, 194, 481, 70, 399,
+ 285, 5, 6, 7, 29, 29, 306, 79, 80, 347,
+ 24, 209, 412, 55, 28, 474, 68, 3, 318, 992,
+ 290, 365, 518, 67, 474, 68, 744, 745, 974, 299,
+ 474, 474, 53, 347, 3, 327, 70, 366, 24, 535,
+ 65, 65, 290, 936, 363, 364, 429, 81, 941, 29,
+ 363, 299, 365, 366, 4, 24, 62, 327, 64, 329,
+ 330, 1034, 1035, 322, 747, 3, 4, 322, 6, 1015,
+ 1016, 1017, 1018, 343, 24, 345, 45, 347, 47, 327,
+ 18, 329, 330, 466, 22, 65, 24, 4, 68, 27,
+ 390, 355, 3, 393, 215, 343, 4, 345, 368, 347,
+ 5, 6, 7, 18, 433, 375, 304, 24, 369, 397,
+ 828, 396, 397, 24, 22, 119, 24, 402, 614, 1012,
+ 25, 26, 27, 408, 6, 24, 5, 6, 7, 529,
+ 530, 531, 532, 474, 434, 853, 19, 537, 21, 6,
+ 425, 147, 401, 264, 26, 27, 401, 488, 27, 155,
+ 636, 157, 452, 6, 33, 455, 94, 474, 69, 429,
+ 27, 4, 73, 24, 423, 459, 4, 28, 423, 3,
+ 291, 488, 25, 26, 27, 296, 476, 3, 4, 496,
+ 21, 429, 25, 458, 459, 523, 24, 671, 3, 4,
+ 24, 450, 24, 1, 494, 450, 466, 497, 24, 499,
+ 32, 471, 19, 871, 872, 41, 5, 6, 7, 24,
+ 458, 459, 20, 8, 119, 546, 547, 487, 466, 550,
+ 490, 621, 368, 623, 624, 625, 25, 26, 27, 375,
+ 524, 525, 49, 50, 51, 579, 3, 4, 538, 1007,
+ 119, 558, 559, 574, 575, 539, 540, 8, 533, 524,
+ 525, 8, 23, 523, 583, 26, 26, 24, 577, 3,
+ 4, 929, 930, 33, 539, 540, 36, 21, 708, 709,
+ 1038, 1039, 1040, 3, 942, 523, 524, 525, 578, 617,
+ 24, 25, 41, 558, 559, 5, 6, 7, 409, 78,
+ 31, 539, 540, 935, 24, 639, 937, 938, 53, 563,
+ 41, 422, 944, 591, 565, 25, 70, 27, 4, 951,
+ 558, 559, 76, 8, 44, 45, 46, 47, 206, 768,
+ 119, 26, 607, 26, 29, 3, 4, 32, 613, 32,
+ 647, 648, 99, 100, 101, 102, 103, 104, 105, 106,
+ 18, 462, 627, 8, 22, 23, 24, 617, 56, 57,
+ 58, 59, 1020, 995, 618, 19, 656, 21, 619, 11,
+ 1002, 620, 662, 25, 26, 620, 1034, 631, 808, 617,
+ 33, 632, 1014, 70, 71, 19, 70, 21, 75, 73,
+ 268, 23, 657, 21, 26, 649, 112, 113, 114, 115,
+ 116, 19, 653, 21, 657, 283, 517, 23, 25, 119,
+ 26, 1043, 1044, 1045, 1046, 722, 723, 738, 26, 657,
+ 28, 696, 712, 683, 684, 93, 94, 23, 3, 4,
+ 26, 309, 310, 21, 23, 3, 4, 26, 6, 773,
+ 19, 319, 21, 733, 3, 4, 29, 30, 708, 709,
+ 18, 4, 23, 26, 22, 26, 24, 25, 723, 18,
+ 3, 4, 19, 22, 21, 24, 25, 49, 50, 51,
+ 708, 709, 3, 4, 19, 18, 21, 3, 4, 22,
+ 755, 24, 3, 4, 4, 723, 761, 33, 763, 764,
+ 765, 798, 18, 24, 25, 770, 22, 19, 24, 21,
+ 87, 32, 380, 24, 615, 4, 743, 530, 531, 532,
+ 8, 9, 766, 25, 26, 87, 394, 628, 769, 25,
+ 26, 25, 26, 25, 26, 93, 94, 817, 3, 4,
+ 73, 791, 858, 36, 93, 94, 8, 863, 864, 25,
+ 26, 3, 4, 18, 70, 25, 26, 22, 808, 24,
+ 29, 94, 25, 26, 3, 4, 30, 847, 37, 3,
+ 438, 3, 4, 838, 43, 31, 841, 93, 94, 18,
+ 808, 449, 832, 22, 30, 24, 97, 31, 99, 100,
+ 101, 102, 103, 104, 105, 106, 18, 3, 4, 879,
+ 28, 851, 3, 4, 832, 70, 922, 28, 858, 25,
+ 26, 31, 18, 863, 864, 25, 22, 933, 24, 884,
+ 89, 871, 872, 24, 25, 25, 26, 23, 93, 94,
+ 858, 32, 25, 26, 25, 863, 864, 25, 26, 36,
+ 109, 110, 111, 112, 113, 6, 873, 963, 25, 3,
+ 4, 25, 6, 26, 93, 94, 972, 907, 908, 24,
+ 910, 25, 26, 913, 18, 134, 25, 26, 22, 24,
+ 24, 898, 922, 27, 107, 108, 27, 993, 64, 929,
+ 930, 549, 27, 933, 87, 553, 554, 94, 94, 557,
+ 28, 160, 942, 87, 922, 28, 29, 95, 96, 41,
+ 3, 4, 171, 30, 173, 933, 1022, 1063, 1064, 23,
+ 25, 939, 940, 963, 942, 18, 185, 41, 31, 22,
+ 4, 24, 972, 23, 193, 28, 3, 4, 197, 198,
+ 8, 23, 4, 26, 33, 963, 1052, 206, 3, 4,
+ 94, 18, 21, 993, 972, 22, 87, 24, 25, 24,
+ 24, 1001, 8, 18, 30, 1071, 1072, 22, 17, 24,
+ 17, 3, 4, 11, 30, 993, 1082, 36, 636, 23,
+ 1020, 41, 1022, 25, 25, 25, 18, 8, 25, 68,
+ 22, 30, 24, 94, 1034, 1053, 31, 31, 257, 8,
+ 31, 94, 1020, 23, 1022, 62, 25, 3, 4, 268,
+ 269, 270, 1052, 25, 43, 29, 19, 1035, 25, 278,
+ 25, 25, 18, 21, 283, 25, 22, 94, 24, 8,
+ 25, 1071, 1072, 25, 1052, 68, 64, 25, 27, 94,
+ 66, 66, 1082, 302, 303, 69, 31, 306, 26, 308,
+ 309, 310, 25, 1071, 1072, 87, 36, 715, 21, 318,
+ 319, 19, 94, 28, 1082, 324, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 17, 22, 68, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 69, 68, 23, 26, 22, 94, 24,
+ 25, 25, 74, 40, 363, 364, 365, 366, 28, 368,
+ 35, 40, 37, 63, 68, 26, 375, 69, 69, 72,
+ 21, 380, 69, 87, 18, 87, 26, 23, 34, 22,
+ 69, 390, 30, 8, 393, 394, 22, 28, 26, 19,
+ 8, 18, 18, 3, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16, 17, 26,
+ 18, 4, 24, 22, 43, 24, 25, 109, 110, 111,
+ 22, 22, 18, 22, 433, 434, 35, 24, 37, 438,
+ 8, 8, 3, 442, 109, 110, 111, 18, 30, 11,
+ 449, 11, 30, 452, 119, 19, 455, 8, 24, 458,
+ 459, 33, 11, 11, 11, 11, 18, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 17, 476, 18, 18,
+ 18, 40, 481, 24, 19, 19, 19, 11, 487, 25,
+ 11, 11, 137, 25, 106, 494, 26, 25, 497, 28,
+ 499, 28, 114, 115, 116, 117, 19, 19, 19, 40,
+ 109, 110, 111, 19, 0, 25, 25, 25, 25, 21,
+ 119, 21, 0, 135, 134, 524, 525, 487, 668, 785,
+ 677, 742, 500, 729, 915, 887, 1001, 851, 817, 538,
+ 539, 540, 1035, 992, 1057, 1020, 1028, 546, 547, 548,
+ 549, 550, 18, 18, 553, 554, 97, 41, 557, 558,
+ 559, 678, 683, 175, 176, 177, 57, 179, 109, 110,
+ 111, 252, 57, 43, 171, 574, 575, 121, 577, 578,
+ 579, 551, 721, 494, 583, 497, 474, 112, 255, 723,
+ 547, 488, 559, 541, 761, 396, 617, 758, 210, 709,
+ 808, 213, 917, 756, 345, 217, 397, -1, 553, 221,
+ -1, 223, -1, 225, -1, -1, -1, 229, -1, -1,
+ -1, -1, 3, 4, -1, -1, 238, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 17, 636, -1, -1,
+ 639, 22, -1, 24, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 35, -1, 37, 656, 657, -1,
+ -1, -1, -1, 662, -1, -1, -1, -1, -1, -1,
+ -1, -1, 671, -1, -1, -1, -1, -1, 290, -1,
+ -1, -1, -1, -1, -1, -1, -1, 299, -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, 712, -1, 327, 715, 329, 330, -1,
+ 719, -1, -1, -1, 723, -1, -1, -1, 109, 110,
+ 111, 343, 731, 345, 733, 347, -1, -1, -1, 738,
+ -1, -1, 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, 773, 35, -1, 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, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 17, 429, 817, -1,
+ 819, 22, -1, 24, 25, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 35, -1, 37, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 847, 109,
+ 110, 111, -1, -1, 466, -1, -1, -1, -1, 119,
+ -1, -1, -1, -1, -1, -1, -1, 866, 867, 868,
+ 869, 870, -1, -1, -1, -1, 488, -1, 490, -1,
+ 879, 3, 4, -1, -1, -1, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 17, -1, -1, -1, -1,
+ -1, -1, 24, -1, -1, -1, -1, 906, 109, 110,
+ 111, 523, -1, -1, -1, -1, 38, 39, 119, -1,
+ 42, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 935, -1, 60, -1,
+ -1, -1, -1, -1, -1, 944, -1, -1, -1, -1,
+ -1, -1, 951, -1, 953, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
+ 92, -1, -1, -1, -1, -1, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, -1, -1, 109, 110, 111,
+ -1, -1, -1, -1, -1, -1, 995, -1, -1, -1,
+ -1, -1, -1, 1002, -1, 617, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 1014, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 1028,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 1043, 1044, 1045, 1046, 3, 4,
+ -1, -1, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, -1, -1, -1, -1, 22, -1, 24,
+ -1, 683, -1, 685, -1, -1, -1, -1, -1, -1,
+ 35, -1, 37, -1, -1, -1, -1, -1, -1, 44,
+ 45, 46, 47, 48, -1, -1, 708, 709, -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, -1, 82, 83, 84,
+ 85, 86, -1, -1, -1, -1, 35, -1, 37, 38,
+ 39, -1, -1, 42, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 109, 110, 111, 56, 57, 58,
+ 59, 60, 61, -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, -1, 24,
+ 25, -1, -1, -1, -1, -1, 808, -1, -1, -1,
+ 35, -1, 37, 38, 39, -1, -1, 42, -1, -1,
+ 109, 110, 111, -1, -1, -1, -1, -1, -1, -1,
+ 832, 56, 57, 58, 59, 60, 61, -1, -1, 3,
+ 4, -1, -1, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, -1, -1, 858, -1, 22, 861,
+ 24, 863, 864, -1, -1, -1, -1, -1, -1, 871,
+ 872, 35, -1, 37, 38, 39, -1, -1, 42, -1,
+ -1, -1, -1, -1, 109, 110, 111, -1, -1, -1,
+ -1, -1, 56, 57, 58, 59, 60, 61, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 913, -1, -1, -1, -1, -1, -1, -1, -1,
+ 922, -1, -1, -1, -1, -1, -1, 929, 930, -1,
+ -1, 933, 934, -1, -1, -1, -1, -1, -1, -1,
+ 942, -1, -1, -1, -1, 109, 110, 111, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 963, -1, -1, -1, -1, -1, -1, 3, 4,
+ 972, -1, -1, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, -1, -1, -1, -1, 22, -1, 24,
+ -1, 993, -1, -1, -1, -1, -1, -1, -1, -1,
+ 35, -1, 37, 38, 39, -1, -1, 42, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 1020, -1,
+ 1022, 56, 57, 58, 59, 60, 61, -1, -1, -1,
+ 3, 4, 1034, -1, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 17, -1, -1, 3, 4, 22,
+ 1052, 24, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 35, -1, 37, -1, -1, 23, 24, 1071,
+ 1072, -1, -1, -1, 109, 110, 111, 3, 4, -1,
+ 1082, -1, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, -1, -1, -1, -1, -1, -1, 24, -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, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, 3, 4, 83, 84, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16, 17, -1,
+ -1, -1, -1, 22, 23, 24, -1, -1, -1, -1,
+ -1, -1, 109, 110, 111, -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, 109, 110, 111,
+ -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, -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, 109, 110, 111
+};
+/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
+#line 3 "/usr/local/gnu/lib/bison.simple"
+
+/* Skeleton output parser for bison,
+ Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
+
+ 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 1, 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. */
+
+
+#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 (unsigned int);
+#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
+#define YYLEX yylex(&yylval, &yylloc)
+#else
+#define YYLEX yylex(&yylval)
+#endif
+#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
+\f
+#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
+#define __yy_bcopy(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_bcopy (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_bcopy (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
+\f
+#line 184 "/usr/local/gnu/lib/bison.simple"
+int
+yyparse()
+{
+ 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; /* 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. */
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+#ifdef YYLSP_NEEDED
+ &yyls1, size * sizeof (*yylsp),
+#endif
+ &yystacksize);
+
+ 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_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
+ yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
+ __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+ yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
+ __yy_bcopy ((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];
+ 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 335 "yaccParser/hsparser.y"
+{ the_module_name = yyvsp[-1].uid; module_exports = yyvsp[0].ulist; ;
+ break;}
+case 4:
+#line 337 "yaccParser/hsparser.y"
+{ the_module_name = install_literal("Main"); module_exports = Lnil; ;
+ break;}
+case 6:
+#line 343 "yaccParser/hsparser.y"
+{
+ root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-3].ulist),module_exports,yyvsp[-1].ubinding,startlineno);
+ ;
+ break;}
+case 7:
+#line 347 "yaccParser/hsparser.y"
+{
+ root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-3].ulist),module_exports,yyvsp[-1].ubinding,startlineno);
+ ;
+ break;}
+case 8:
+#line 352 "yaccParser/hsparser.y"
+{
+ root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
+ ;
+ break;}
+case 9:
+#line 356 "yaccParser/hsparser.y"
+{
+ root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
+ ;
+ break;}
+case 10:
+#line 362 "yaccParser/hsparser.y"
+{
+ root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
+ ;
+ break;}
+case 11:
+#line 366 "yaccParser/hsparser.y"
+{
+ root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
+ ;
+ break;}
+case 12:
+#line 372 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; ;
+ break;}
+case 13:
+#line 373 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[-1].ulist; ;
+ break;}
+case 14:
+#line 377 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uentid); ;
+ break;}
+case 15:
+#line 378 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uentid); ;
+ break;}
+case 16:
+#line 382 "yaccParser/hsparser.y"
+{ yyval.uentid = mkentid(yyvsp[0].uid); ;
+ break;}
+case 17:
+#line 383 "yaccParser/hsparser.y"
+{ yyval.uentid = mkenttype(yyvsp[0].uid); ;
+ break;}
+case 18:
+#line 384 "yaccParser/hsparser.y"
+{ yyval.uentid = mkenttypeall(yyvsp[-3].uid); ;
+ break;}
+case 19:
+#line 386 "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 390 "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 394 "yaccParser/hsparser.y"
+{ yyval.uentid = mkentclass(yyvsp[-2].uid,Lnil);
+ /* "tycon" should be a class with no operations */
+ ;
+ break;}
+case 22:
+#line 398 "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 404 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[-1].ulist; hidden = FALSE; ;
+ break;}
+case 24:
+#line 405 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[-1].ulist; hidden = TRUE; ;
+ break;}
+case 25:
+#line 406 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; hidden = FALSE; ;
+ break;}
+case 26:
+#line 409 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; ;
+ break;}
+case 27:
+#line 410 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[0].ulist; ;
+ break;}
+case 28:
+#line 414 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uentid); ;
+ break;}
+case 29:
+#line 415 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uentid); ;
+ break;}
+case 30:
+#line 419 "yaccParser/hsparser.y"
+{ yyval.uentid = mkentid(yyvsp[0].uid); ;
+ break;}
+case 31:
+#line 420 "yaccParser/hsparser.y"
+{ yyval.uentid = mkenttype(yyvsp[0].uid); ;
+ break;}
+case 32:
+#line 421 "yaccParser/hsparser.y"
+{ yyval.uentid = mkenttypeall(yyvsp[-3].uid); ;
+ break;}
+case 33:
+#line 423 "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 427 "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 431 "yaccParser/hsparser.y"
+{ yyval.uentid = mkentclass(yyvsp[-2].uid,Lnil);
+ /* "tycon" should be a class with no operations */
+ ;
+ break;}
+case 36:
+#line 440 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkidata_pragma(yyvsp[-2].ulist, yyvsp[-1].ulist); ;
+ break;}
+case 37:
+#line 442 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkidata_pragma(Lnil, yyvsp[-1].ulist); ;
+ break;}
+case 38:
+#line 443 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkno_pragma(); ;
+ break;}
+case 39:
+#line 448 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[0].ulist; ;
+ break;}
+case 40:
+#line 449 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; ;
+ break;}
+case 41:
+#line 453 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uhpragma); ;
+ break;}
+case 42:
+#line 455 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
+ break;}
+case 43:
+#line 459 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkidata_pragma_4s(yyvsp[-1].ulist); ;
+ break;}
+case 44:
+#line 463 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkitype_pragma(); ;
+ break;}
+case 45:
+#line 464 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkno_pragma(); ;
+ break;}
+case 46:
+#line 468 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkiclas_pragma(yyvsp[-1].ulist); ;
+ break;}
+case 47:
+#line 469 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkno_pragma(); ;
+ break;}
+case 48:
+#line 474 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkiclasop_pragma(yyvsp[-2].uhpragma, yyvsp[-1].uhpragma); ;
+ break;}
+case 49:
+#line 476 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkno_pragma(); ;
+ break;}
+case 50:
+#line 481 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkiinst_simpl_pragma(yyvsp[-2].uid, yyvsp[-1].uhpragma); ;
+ break;}
+case 51:
+#line 484 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkiinst_const_pragma(yyvsp[-3].uid, yyvsp[-2].uhpragma, yyvsp[-1].ulist); ;
+ break;}
+case 52:
+#line 487 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkiinst_spec_pragma(yyvsp[-3].uid, yyvsp[-2].uhpragma, yyvsp[-1].ulist); ;
+ break;}
+case 53:
+#line 490 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkno_pragma(); ;
+ break;}
+case 54:
+#line 495 "yaccParser/hsparser.y"
+{ yyval.uid = yyvsp[0].uid; ;
+ break;}
+case 55:
+#line 497 "yaccParser/hsparser.y"
+{ yyval.uid = install_literal(""); ;
+ break;}
+case 56:
+#line 500 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[0].ulist; ;
+ break;}
+case 57:
+#line 505 "yaccParser/hsparser.y"
+{ yyval.uhpragma = yyvsp[-1].uhpragma; ;
+ break;}
+case 58:
+#line 507 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkno_pragma(); ;
+ break;}
+case 59:
+#line 512 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkno_pragma(); ;
+ break;}
+case 60:
+#line 514 "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 61:
+#line 518 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkno_pragma(); ;
+ break;}
+case 62:
+#line 519 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkiarity_pragma(yyvsp[0].ustring); ;
+ break;}
+case 63:
+#line 523 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkno_pragma(); ;
+ break;}
+case 64:
+#line 524 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkiupdate_pragma(yyvsp[0].ustring); ;
+ break;}
+case 65:
+#line 528 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkno_pragma(); ;
+ break;}
+case 66:
+#line 529 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkideforest_pragma(); ;
+ break;}
+case 67:
+#line 533 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkno_pragma(); ;
+ break;}
+case 68:
+#line 534 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkistrictness_pragma(installHstring(1, "B"),
+ /* _!_ = COCON = bottom */ mkno_pragma());
+ ;
+ break;}
+case 69:
+#line 538 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkistrictness_pragma(yyvsp[-1].uhstring, yyvsp[0].uhpragma); ;
+ break;}
+case 70:
+#line 542 "yaccParser/hsparser.y"
+{ yyval.uhpragma = yyvsp[-1].uhpragma; ;
+ break;}
+case 71:
+#line 543 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkno_pragma(); ;
+ break;}
+case 72:
+#line 546 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkno_pragma(); ;
+ break;}
+case 73:
+#line 548 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkimagic_unfolding_pragma(yyvsp[0].uid); ;
+ break;}
+case 74:
+#line 550 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkiunfolding_pragma(yyvsp[-1].uhpragma, yyvsp[0].ucoresyn); ;
+ break;}
+case 75:
+#line 555 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkiunfold_always(); ;
+ break;}
+case 76:
+#line 557 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkiunfold_if_args(yyvsp[-3].ustring, yyvsp[-2].ustring, yyvsp[-1].uid, yyvsp[0].ustring); ;
+ break;}
+case 77:
+#line 561 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uhpragma); ;
+ break;}
+case 78:
+#line 562 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
+ break;}
+case 79:
+#line 566 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; ;
+ break;}
+case 80:
+#line 567 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[0].ulist; ;
+ break;}
+case 81:
+#line 571 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uhpragma); ;
+ break;}
+case 82:
+#line 572 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
+ break;}
+case 83:
+#line 577 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkitype_pragma_pr(yyvsp[-3].ulist, yyvsp[-1].ustring, yyvsp[0].uhpragma); ;
+ break;}
+case 84:
+#line 581 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uhpragma); ;
+ break;}
+case 85:
+#line 582 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uhpragma); ;
+ break;}
+case 86:
+#line 587 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkiinst_pragma_3s(yyvsp[-4].ulist, yyvsp[-2].ustring, yyvsp[-1].uhpragma, yyvsp[0].ulist); ;
+ break;}
+case 87:
+#line 591 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uttype); ;
+ break;}
+case 88:
+#line 592 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uttype); ;
+ break;}
+case 89:
+#line 596 "yaccParser/hsparser.y"
+{ yyval.uttype = mkty_maybe_nothing(); ;
+ break;}
+case 90:
+#line 597 "yaccParser/hsparser.y"
+{ yyval.uttype = mkty_maybe_just(yyvsp[0].uttype); ;
+ break;}
+case 91:
+#line 601 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; ;
+ break;}
+case 92:
+#line 602 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[0].ulist; ;
+ break;}
+case 93:
+#line 606 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uhpragma); ;
+ break;}
+case 94:
+#line 607 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
+ break;}
+case 95:
+#line 612 "yaccParser/hsparser.y"
+{ yyval.uhpragma = mkiname_pragma_pr(yyvsp[-2].uid, yyvsp[0].uhpragma); ;
+ break;}
+case 96:
+#line 621 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcolam(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
+ break;}
+case 97:
+#line 623 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcotylam(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
+ break;}
+case 98:
+#line 625 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcocon(mkco_id(yyvsp[-2].uid), yyvsp[-1].ulist, yyvsp[0].ulist); ;
+ break;}
+case 99:
+#line 627 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcocon(mkco_orig_id(yyvsp[-3].uid,yyvsp[-2].uid), yyvsp[-1].ulist, yyvsp[0].ulist); ;
+ break;}
+case 100:
+#line 629 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcoprim(yyvsp[-2].ucoresyn, yyvsp[-1].ulist, yyvsp[0].ulist); ;
+ break;}
+case 101:
+#line 631 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcoapp(yyvsp[-1].ucoresyn, yyvsp[0].ulist); ;
+ break;}
+case 102:
+#line 633 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcotyapp(yyvsp[-3].ucoresyn, yyvsp[-1].uttype); ;
+ break;}
+case 103:
+#line 635 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcocase(yyvsp[-4].ucoresyn, yyvsp[-1].ucoresyn); ;
+ break;}
+case 104:
+#line 637 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcolet(mkcononrec(yyvsp[-5].ucoresyn, yyvsp[-3].ucoresyn), yyvsp[0].ucoresyn); ;
+ break;}
+case 105:
+#line 639 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcolet(mkcorec(yyvsp[-3].ulist), yyvsp[0].ucoresyn); ;
+ break;}
+case 106:
+#line 641 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcoscc(yyvsp[-2].ucoresyn, yyvsp[0].ucoresyn); ;
+ break;}
+case 107:
+#line 642 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcoliteral(yyvsp[0].uliteral); ;
+ break;}
+case 108:
+#line 643 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcovar(yyvsp[0].ucoresyn); ;
+ break;}
+case 109:
+#line 648 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcoalg_alts(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
+ break;}
+case 110:
+#line 650 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcoprim_alts(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
+ break;}
+case 111:
+#line 654 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; ;
+ break;}
+case 112:
+#line 655 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
+ break;}
+case 113:
+#line 659 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcoalg_alt(yyvsp[-4].ucoresyn, yyvsp[-3].ulist, yyvsp[-1].ucoresyn); ;
+ break;}
+case 114:
+#line 664 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; ;
+ break;}
+case 115:
+#line 665 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
+ break;}
+case 116:
+#line 669 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcoprim_alt(yyvsp[-3].uliteral, yyvsp[-1].ucoresyn); ;
+ break;}
+case 117:
+#line 673 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkconodeflt(); ;
+ break;}
+case 118:
+#line 674 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcobinddeflt(yyvsp[-2].ucoresyn, yyvsp[0].ucoresyn); ;
+ break;}
+case 119:
+#line 678 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].ucoresyn); ;
+ break;}
+case 120:
+#line 679 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
+ break;}
+case 121:
+#line 683 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcorec_pair(yyvsp[-2].ucoresyn, yyvsp[0].ucoresyn); ;
+ break;}
+case 122:
+#line 687 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_preludedictscc(yyvsp[0].ucoresyn); ;
+ break;}
+case 123:
+#line 688 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_alldictscc(yyvsp[-2].uhstring,yyvsp[-1].uhstring,yyvsp[0].ucoresyn); ;
+ break;}
+case 124:
+#line 690 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_usercc(yyvsp[-4].uhstring,yyvsp[-3].uhstring,yyvsp[-2].uhstring,yyvsp[-1].ucoresyn,yyvsp[0].ucoresyn); ;
+ break;}
+case 125:
+#line 692 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_autocc(yyvsp[-4].ucoresyn,yyvsp[-3].uhstring,yyvsp[-2].uhstring,yyvsp[-1].ucoresyn,yyvsp[0].ucoresyn); ;
+ break;}
+case 126:
+#line 694 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_dictcc(yyvsp[-4].ucoresyn,yyvsp[-3].uhstring,yyvsp[-2].uhstring,yyvsp[-1].ucoresyn,yyvsp[0].ucoresyn); ;
+ break;}
+case 127:
+#line 696 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_scc_noncaf(); ;
+ break;}
+case 128:
+#line 697 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_scc_caf(); ;
+ break;}
+case 129:
+#line 699 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_scc_nondupd(); ;
+ break;}
+case 130:
+#line 700 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_scc_dupd(); ;
+ break;}
+case 131:
+#line 703 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_sdselid(yyvsp[-1].uid, yyvsp[0].uid); ;
+ break;}
+case 132:
+#line 704 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_classopid(yyvsp[-1].uid, yyvsp[0].uid); ;
+ break;}
+case 133:
+#line 705 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_defmid(yyvsp[-1].uid, yyvsp[0].uid); ;
+ break;}
+case 134:
+#line 707 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_dfunid(yyvsp[-3].uid, yyvsp[-1].uttype); ;
+ break;}
+case 135:
+#line 709 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_constmid(yyvsp[-4].uid, yyvsp[-3].uid, yyvsp[-1].uttype); ;
+ break;}
+case 136:
+#line 711 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_specid(yyvsp[-3].ucoresyn, yyvsp[-1].ulist); ;
+ break;}
+case 137:
+#line 712 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_wrkrid(yyvsp[0].ucoresyn); ;
+ break;}
+case 138:
+#line 713 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_orig_id(yyvsp[-1].uid, yyvsp[0].uid); ;
+ break;}
+case 139:
+#line 714 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_orig_id(yyvsp[-1].uid, yyvsp[0].uid); ;
+ break;}
+case 140:
+#line 715 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_id(yyvsp[0].uid); ;
+ break;}
+case 141:
+#line 716 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_id(yyvsp[0].uid); ;
+ break;}
+case 142:
+#line 721 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_ccall(yyvsp[-5].uid,0,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
+ break;}
+case 143:
+#line 723 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_ccall(yyvsp[-5].uid,1,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
+ break;}
+case 144:
+#line 725 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_casm(yyvsp[-5].uliteral,0,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
+ break;}
+case 145:
+#line 727 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_casm(yyvsp[-5].uliteral,1,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
+ break;}
+case 146:
+#line 728 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkco_primop(yyvsp[0].uid); ;
+ break;}
+case 147:
+#line 732 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; ;
+ break;}
+case 148:
+#line 733 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
+ break;}
+case 149:
+#line 737 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcobinder(yyvsp[-3].uid, yyvsp[-1].uttype); ;
+ break;}
+case 150:
+#line 740 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; ;
+ break;}
+case 151:
+#line 741 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[-1].ulist; ;
+ break;}
+case 152:
+#line 745 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].ucoresyn); ;
+ break;}
+case 153:
+#line 746 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
+ break;}
+case 154:
+#line 750 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcolit(yyvsp[0].uliteral); ;
+ break;}
+case 155:
+#line 751 "yaccParser/hsparser.y"
+{ yyval.ucoresyn = mkcolocal(yyvsp[0].ucoresyn); ;
+ break;}
+case 156:
+#line 755 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uid); ;
+ break;}
+case 157:
+#line 756 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].uid); ;
+ break;}
+case 158:
+#line 760 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uid); ;
+ break;}
+case 159:
+#line 761 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uid); ;
+ break;}
+case 160:
+#line 765 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; ;
+ break;}
+case 161:
+#line 766 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[-1].ulist; ;
+ break;}
+case 162:
+#line 770 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uttype); ;
+ break;}
+case 163:
+#line 771 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uttype); ;
+ break;}
+case 164:
+#line 775 "yaccParser/hsparser.y"
+{ yyval.uttype = yyvsp[0].uttype; ;
+ break;}
+case 165:
+#line 795 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uttype); ;
+ break;}
+case 166:
+#line 796 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uttype); ;
+ break;}
+case 167:
+#line 800 "yaccParser/hsparser.y"
+{ yyval.uttype = mkty_maybe_nothing(); ;
+ break;}
+case 168:
+#line 801 "yaccParser/hsparser.y"
+{ yyval.uttype = mkty_maybe_just(yyvsp[0].uttype); ;
+ break;}
+case 169:
+#line 807 "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 170:
+#line 821 "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 171:
+#line 829 "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 172:
+#line 842 "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 173:
+#line 849 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; ;
+ break;}
+case 174:
+#line 850 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[-1].ulist; ;
+ break;}
+case 175:
+#line 853 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[0].ulist; ;
+ break;}
+case 176:
+#line 854 "yaccParser/hsparser.y"
+{ yyval.ulist = lconc(yyvsp[-2].ulist,yyvsp[0].ulist); ;
+ break;}
+case 177:
+#line 858 "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 178:
+#line 879 "yaccParser/hsparser.y"
+{
+ if (hidden)
+ yyvsp[0].ubinding->tag = hiding;
+ yyval.ulist = lsing(yyvsp[0].ubinding);
+ ;
+ break;}
+case 179:
+#line 887 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkimport(installid(iface_name),yyvsp[0].ulist,Lnil,yyvsp[-1].ubinding,xstrdup(interface_filename),hsplineno); ;
+ break;}
+case 180:
+#line 890 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkimport(installid(iface_name),yyvsp[-2].ulist,yyvsp[0].ulist,yyvsp[-3].ubinding,xstrdup(interface_filename),hsplineno); ;
+ break;}
+case 181:
+#line 895 "yaccParser/hsparser.y"
+{
+ exposeis(); /* partain: expose infix ops at level i+1 to level i */
+ yyval.ubinding = yyvsp[-1].ubinding;
+ ;
+ break;}
+case 182:
+#line 901 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[-1].ulist; ;
+ break;}
+case 183:
+#line 905 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].ulist); ;
+ break;}
+case 184:
+#line 906 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].ulist); ;
+ break;}
+case 185:
+#line 909 "yaccParser/hsparser.y"
+{ yyval.ulist = ldub(yyvsp[-2].uid,yyvsp[0].uid); ;
+ break;}
+case 186:
+#line 910 "yaccParser/hsparser.y"
+{ yyval.ulist = ldub(yyvsp[-2].uid,yyvsp[0].uid); ;
+ break;}
+case 187:
+#line 913 "yaccParser/hsparser.y"
+{ yyval.ubinding = mknullbind(); ;
+ break;}
+case 188:
+#line 914 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[-1].ubinding; ;
+ break;}
+case 189:
+#line 917 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[0].ubinding; ;
+ break;}
+case 190:
+#line 918 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding); ;
+ break;}
+case 191:
+#line 922 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkmbind(yyvsp[-3].uid,yyvsp[-1].ulist,Lnil,startlineno); ;
+ break;}
+case 192:
+#line 924 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkmbind(yyvsp[-5].uid,yyvsp[-3].ulist,yyvsp[0].ulist,startlineno); ;
+ break;}
+case 193:
+#line 930 "yaccParser/hsparser.y"
+{ fixlist = Lnil;
+ strcpy(iface_name, id_to_string(yyvsp[0].uid));
+ ;
+ break;}
+case 194:
+#line 934 "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 195:
+#line 947 "yaccParser/hsparser.y"
+{
+ yyval.ubinding = mkabind(yyvsp[-3].ubinding,yyvsp[-1].ubinding);
+ ;
+ break;}
+case 196:
+#line 951 "yaccParser/hsparser.y"
+{
+ yyval.ubinding = yyvsp[-1].ubinding;
+ ;
+ break;}
+case 197:
+#line 955 "yaccParser/hsparser.y"
+{
+ yyval.ubinding = mkabind(yyvsp[-3].ubinding,yyvsp[-1].ubinding);
+ ;
+ break;}
+case 198:
+#line 959 "yaccParser/hsparser.y"
+{
+ yyval.ubinding = yyvsp[-1].ubinding;
+ ;
+ break;}
+case 203:
+#line 974 "yaccParser/hsparser.y"
+{ Precedence = checkfixity(yyvsp[0].ustring); Fixity = INFIXL; ;
+ break;}
+case 205:
+#line 977 "yaccParser/hsparser.y"
+{ Precedence = checkfixity(yyvsp[0].ustring); Fixity = INFIXR; ;
+ break;}
+case 207:
+#line 980 "yaccParser/hsparser.y"
+{ Precedence = checkfixity(yyvsp[0].ustring); Fixity = INFIX; ;
+ break;}
+case 209:
+#line 983 "yaccParser/hsparser.y"
+{ Fixity = INFIXL; Precedence = 9; ;
+ break;}
+case 211:
+#line 986 "yaccParser/hsparser.y"
+{ Fixity = INFIXR; Precedence = 9; ;
+ break;}
+case 213:
+#line 989 "yaccParser/hsparser.y"
+{ Fixity = INFIX; Precedence = 9; ;
+ break;}
+case 215:
+#line 993 "yaccParser/hsparser.y"
+{ makeinfix(id_to_string(yyvsp[0].uid),Fixity,Precedence); ;
+ break;}
+case 216:
+#line 994 "yaccParser/hsparser.y"
+{ makeinfix(id_to_string(yyvsp[0].uid),Fixity,Precedence); ;
+ break;}
+case 218:
+#line 999 "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 219:
+#line 1017 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[0].ubinding; ;
+ break;}
+case 220:
+#line 1018 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[0].ubinding; ;
+ break;}
+case 221:
+#line 1019 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[0].ubinding; ;
+ break;}
+case 222:
+#line 1020 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[0].ubinding; ;
+ break;}
+case 223:
+#line 1021 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[0].ubinding; ;
+ break;}
+case 224:
+#line 1022 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[0].ubinding; ;
+ break;}
+case 225:
+#line 1025 "yaccParser/hsparser.y"
+{ yyval.ubinding = mknbind(yyvsp[-2].uttype,yyvsp[0].uttype,startlineno,mkno_pragma()); ;
+ break;}
+case 226:
+#line 1030 "yaccParser/hsparser.y"
+{ yyval.ubinding = mktbind(yyvsp[-4].ulist,yyvsp[-2].uttype,yyvsp[0].ulist,all,startlineno,mkno_pragma()); ;
+ break;}
+case 227:
+#line 1032 "yaccParser/hsparser.y"
+{ yyval.ubinding = mktbind(Lnil,yyvsp[-2].uttype,yyvsp[0].ulist,all,startlineno,mkno_pragma()); ;
+ break;}
+case 228:
+#line 1034 "yaccParser/hsparser.y"
+{ yyval.ubinding = mktbind(yyvsp[-6].ulist,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ;
+ break;}
+case 229:
+#line 1036 "yaccParser/hsparser.y"
+{ yyval.ubinding = mktbind(Lnil,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ;
+ break;}
+case 230:
+#line 1039 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkcbind(yyvsp[-3].ulist,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
+ break;}
+case 231:
+#line 1040 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkcbind(Lnil,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
+ break;}
+case 232:
+#line 1043 "yaccParser/hsparser.y"
+{ yyval.ubinding = mknullbind(); ;
+ break;}
+case 233:
+#line 1044 "yaccParser/hsparser.y"
+{ checkorder(yyvsp[-1].ubinding); yyval.ubinding = yyvsp[-1].ubinding; ;
+ break;}
+case 234:
+#line 1045 "yaccParser/hsparser.y"
+{ checkorder(yyvsp[-1].ubinding); yyval.ubinding =yyvsp[-1].ubinding; ;
+ break;}
+case 235:
+#line 1048 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkibind(yyvsp[-4].ulist,yyvsp[-2].uid,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
+ break;}
+case 236:
+#line 1049 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkibind(Lnil,yyvsp[-2].uid,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
+ break;}
+case 237:
+#line 1052 "yaccParser/hsparser.y"
+{ yyval.ubinding = mknullbind(); ;
+ break;}
+case 238:
+#line 1053 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[-1].ubinding; ;
+ break;}
+case 239:
+#line 1054 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[-1].ubinding; ;
+ break;}
+case 240:
+#line 1057 "yaccParser/hsparser.y"
+{ yyval.uttype = mktname(yyvsp[0].uid,Lnil); ;
+ break;}
+case 241:
+#line 1058 "yaccParser/hsparser.y"
+{ yyval.uttype = yyvsp[-1].uttype; ;
+ break;}
+case 242:
+#line 1060 "yaccParser/hsparser.y"
+{ yyval.uttype = mkttuple(yyvsp[-1].ulist); ;
+ break;}
+case 243:
+#line 1061 "yaccParser/hsparser.y"
+{ yyval.uttype = mkttuple(Lnil); ;
+ break;}
+case 244:
+#line 1062 "yaccParser/hsparser.y"
+{ yyval.uttype = mktllist(yyvsp[-1].uttype); ;
+ break;}
+case 245:
+#line 1063 "yaccParser/hsparser.y"
+{ yyval.uttype = mktfun(yyvsp[-3].uttype,yyvsp[-1].uttype); ;
+ break;}
+case 246:
+#line 1066 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkdbind(yyvsp[0].ulist,startlineno); ;
+ break;}
+case 247:
+#line 1069 "yaccParser/hsparser.y"
+{ yyval.ulist = mklcons(yyvsp[-3].uttype,yyvsp[-1].ulist); ;
+ break;}
+case 248:
+#line 1070 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uttype); ;
+ break;}
+case 250:
+#line 1079 "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 1108 "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 1113 "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 1126 "yaccParser/hsparser.y"
+{
+ yyval.ubinding = mkvspec_uprag(yyvsp[-3].uid, yyvsp[-1].ulist, startlineno);
+ PREVPATT = NULL; FN = NULL; SAMEFN = 0;
+ ;
+ break;}
+case 254:
+#line 1132 "yaccParser/hsparser.y"
+{
+ yyval.ubinding = mkispec_uprag(yyvsp[-2].uid, yyvsp[-1].uttype, startlineno);
+ PREVPATT = NULL; FN = NULL; SAMEFN = 0;
+ ;
+ break;}
+case 255:
+#line 1138 "yaccParser/hsparser.y"
+{
+ yyval.ubinding = mkdspec_uprag(yyvsp[-2].uid, yyvsp[-1].ulist, startlineno);
+ PREVPATT = NULL; FN = NULL; SAMEFN = 0;
+ ;
+ break;}
+case 256:
+#line 1144 "yaccParser/hsparser.y"
+{
+ yyval.ubinding = mkinline_uprag(yyvsp[-2].uid, yyvsp[-1].ulist, startlineno);
+ PREVPATT = NULL; FN = NULL; SAMEFN = 0;
+ ;
+ break;}
+case 257:
+#line 1150 "yaccParser/hsparser.y"
+{
+ yyval.ubinding = mkmagicuf_uprag(yyvsp[-2].uid, yyvsp[-1].uid, startlineno);
+ PREVPATT = NULL; FN = NULL; SAMEFN = 0;
+ ;
+ break;}
+case 258:
+#line 1156 "yaccParser/hsparser.y"
+{
+ yyval.ubinding = mkdeforest_uprag(yyvsp[-1].uid, startlineno);
+ PREVPATT = NULL; FN = NULL; SAMEFN = 0;
+ ;
+ break;}
+case 259:
+#line 1162 "yaccParser/hsparser.y"
+{
+ yyval.ubinding = mkabstract_uprag(yyvsp[-1].uid, startlineno);
+ PREVPATT = NULL; FN = NULL; SAMEFN = 0;
+ ;
+ break;}
+case 261:
+#line 1170 "yaccParser/hsparser.y"
+{ yyval.ubinding = mknullbind(); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ;
+ break;}
+case 262:
+#line 1174 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; ;
+ break;}
+case 263:
+#line 1175 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uid); ;
+ break;}
+case 264:
+#line 1178 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].ubinding); ;
+ break;}
+case 265:
+#line 1179 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].ubinding); ;
+ break;}
+case 266:
+#line 1183 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkvspec_ty_and_id(yyvsp[0].uttype,Lnil); ;
+ break;}
+case 267:
+#line 1184 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkvspec_ty_and_id(yyvsp[-2].uttype,lsing(yyvsp[0].uid)); ;
+ break;}
+case 268:
+#line 1186 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[0].ubinding; ;
+ break;}
+case 269:
+#line 1187 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding); ;
+ break;}
+case 270:
+#line 1190 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[0].ubinding; ;
+ break;}
+case 271:
+#line 1191 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[0].ubinding; ;
+ break;}
+case 272:
+#line 1192 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[0].ubinding; ;
+ break;}
+case 273:
+#line 1193 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[0].ubinding; ;
+ break;}
+case 274:
+#line 1194 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[0].ubinding; ;
+ break;}
+case 275:
+#line 1195 "yaccParser/hsparser.y"
+{ yyval.ubinding = mknullbind(); ;
+ break;}
+case 276:
+#line 1200 "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 1202 "yaccParser/hsparser.y"
+{ yyval.ubinding = mksbind(yyvsp[-3].ulist,yyvsp[-1].uttype,startlineno,yyvsp[0].uhpragma); ;
+ break;}
+case 278:
+#line 1206 "yaccParser/hsparser.y"
+{ yyval.ubinding = mknbind(yyvsp[-3].uttype,yyvsp[-1].uttype,startlineno,yyvsp[0].uhpragma); ;
+ break;}
+case 279:
+#line 1210 "yaccParser/hsparser.y"
+{ yyval.ubinding = mktbind(yyvsp[-3].ulist,yyvsp[-1].uttype,Lnil,Lnil,startlineno,yyvsp[0].uhpragma); ;
+ break;}
+case 280:
+#line 1212 "yaccParser/hsparser.y"
+{ yyval.ubinding = mktbind(Lnil,yyvsp[-1].uttype,Lnil,Lnil,startlineno,yyvsp[0].uhpragma); ;
+ break;}
+case 281:
+#line 1214 "yaccParser/hsparser.y"
+{ yyval.ubinding = mktbind(yyvsp[-5].ulist,yyvsp[-3].uttype,yyvsp[-1].ulist,Lnil,startlineno,yyvsp[0].uhpragma); ;
+ break;}
+case 282:
+#line 1216 "yaccParser/hsparser.y"
+{ yyval.ubinding = mktbind(Lnil,yyvsp[-3].uttype,yyvsp[-1].ulist,Lnil,startlineno,yyvsp[0].uhpragma); ;
+ break;}
+case 283:
+#line 1218 "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 1220 "yaccParser/hsparser.y"
+{ yyval.ubinding = mktbind(Lnil,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ;
+ break;}
+case 285:
+#line 1224 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkcbind(yyvsp[-4].ulist,yyvsp[-2].uttype,yyvsp[0].ubinding,startlineno,yyvsp[-1].uhpragma); ;
+ break;}
+case 286:
+#line 1226 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkcbind(Lnil,yyvsp[-2].uttype,yyvsp[0].ubinding,startlineno,yyvsp[-1].uhpragma); ;
+ break;}
+case 287:
+#line 1230 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkibind(yyvsp[-4].ulist,yyvsp[-2].uid,yyvsp[-1].uttype,mknullbind(),startlineno,yyvsp[0].uhpragma); ;
+ break;}
+case 288:
+#line 1232 "yaccParser/hsparser.y"
+{ yyval.ubinding = mkibind(Lnil,yyvsp[-2].uid,yyvsp[-1].uttype,mknullbind(),startlineno,yyvsp[0].uhpragma); ;
+ break;}
+case 289:
+#line 1238 "yaccParser/hsparser.y"
+{ yyval.uttype = mktname(yyvsp[-1].uid,lsing(yyvsp[0].uttype)); ;
+ break;}
+case 290:
+#line 1242 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uttype); ;
+ break;}
+case 291:
+#line 1243 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uttype); ;
+ break;}
+case 292:
+#line 1246 "yaccParser/hsparser.y"
+{ yyval.uttype = yyvsp[0].uttype; ;
+ break;}
+case 293:
+#line 1247 "yaccParser/hsparser.y"
+{ yyval.uttype = mktfun(yyvsp[-2].uttype,yyvsp[0].uttype); ;
+ break;}
+case 294:
+#line 1250 "yaccParser/hsparser.y"
+{ yyval.uttype = mkuniforall(yyvsp[-2].ulist, yyvsp[0].uttype); ;
+ break;}
+case 295:
+#line 1252 "yaccParser/hsparser.y"
+{ yyval.uttype = yyvsp[0].uttype; ;
+ break;}
+case 296:
+#line 1253 "yaccParser/hsparser.y"
+{ yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ;
+ break;}
+case 297:
+#line 1256 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-1].ulist,yyvsp[0].uttype); ;
+ break;}
+case 298:
+#line 1257 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uttype); ;
+ break;}
+case 299:
+#line 1261 "yaccParser/hsparser.y"
+{ yyval.uttype = yyvsp[0].uttype; ;
+ break;}
+case 300:
+#line 1262 "yaccParser/hsparser.y"
+{ yyval.uttype = mktfun(yyvsp[-2].uttype,yyvsp[0].uttype); ;
+ break;}
+case 301:
+#line 1263 "yaccParser/hsparser.y"
+{ yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ;
+ break;}
+case 303:
+#line 1267 "yaccParser/hsparser.y"
+{ yyval.uttype = mkttuple(mklcons(yyvsp[-3].uttype,yyvsp[-1].ulist)); ;
+ break;}
+case 304:
+#line 1270 "yaccParser/hsparser.y"
+{ yyval.uttype = yyvsp[0].uttype; ;
+ break;}
+case 305:
+#line 1271 "yaccParser/hsparser.y"
+{ yyval.uttype = mktname(yyvsp[0].uid,Lnil); ;
+ break;}
+case 306:
+#line 1272 "yaccParser/hsparser.y"
+{ yyval.uttype = mkttuple(Lnil); ;
+ break;}
+case 307:
+#line 1273 "yaccParser/hsparser.y"
+{ yyval.uttype = yyvsp[-1].uttype; ;
+ break;}
+case 308:
+#line 1274 "yaccParser/hsparser.y"
+{ yyval.uttype = mktllist(yyvsp[-1].uttype); ;
+ break;}
+case 309:
+#line 1277 "yaccParser/hsparser.y"
+{ yyval.uttype = mkunidict(yyvsp[-3].uid, yyvsp[-2].uttype); ;
+ break;}
+case 310:
+#line 1278 "yaccParser/hsparser.y"
+{ yyval.uttype = mkunityvartemplate(yyvsp[0].uid); ;
+ break;}
+case 311:
+#line 1282 "yaccParser/hsparser.y"
+{ yyval.uttype = mktname(yyvsp[0].uid,Lnil); ;
+ break;}
+case 312:
+#line 1283 "yaccParser/hsparser.y"
+{ yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ;
+ break;}
+case 313:
+#line 1287 "yaccParser/hsparser.y"
+{ yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ;
+ break;}
+case 314:
+#line 1293 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uatype); ;
+ break;}
+case 315:
+#line 1294 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uatype); ;
+ break;}
+case 316:
+#line 1298 "yaccParser/hsparser.y"
+{ yyval.uatype = mkatc(yyvsp[-1].uid,yyvsp[0].ulist,hsplineno); ;
+ break;}
+case 317:
+#line 1299 "yaccParser/hsparser.y"
+{ yyval.uatype = mkatc(yyvsp[-2].uid,yyvsp[0].ulist,hsplineno); ;
+ break;}
+case 318:
+#line 1300 "yaccParser/hsparser.y"
+{ yyval.uatype = mkatc(yyvsp[0].uid,Lnil,hsplineno); ;
+ break;}
+case 319:
+#line 1301 "yaccParser/hsparser.y"
+{ yyval.uatype = mkatc(yyvsp[-1].uid,Lnil,hsplineno); ;
+ break;}
+case 320:
+#line 1302 "yaccParser/hsparser.y"
+{ yyval.uatype = mkatc(yyvsp[-1].uid, ldub(yyvsp[-2].uttype,yyvsp[0].uttype),hsplineno); ;
+ break;}
+case 321:
+#line 1305 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[-1].ulist; ;
+ break;}
+case 322:
+#line 1306 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; ;
+ break;}
+case 323:
+#line 1307 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uid); ;
+ break;}
+case 324:
+#line 1310 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uid); ;
+ break;}
+case 325:
+#line 1311 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uid); ;
+ break;}
+case 326:
+#line 1314 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[-1].ulist; ;
+ break;}
+case 327:
+#line 1315 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uttype); ;
+ break;}
+case 328:
+#line 1318 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uttype); ;
+ break;}
+case 329:
+#line 1319 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uttype); ;
+ break;}
+case 330:
+#line 1322 "yaccParser/hsparser.y"
+{ yyval.ubinding = mknullbind(); ;
+ break;}
+case 331:
+#line 1323 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[0].ubinding; ;
+ break;}
+case 332:
+#line 1325 "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 333:
+#line 1339 "yaccParser/hsparser.y"
+{
+ yyval.ubinding = mkinline_uprag(yyvsp[-2].uid, yyvsp[-1].ulist, startlineno);
+ PREVPATT = NULL; FN = NULL; SAMEFN = 0;
+ ;
+ break;}
+case 334:
+#line 1345 "yaccParser/hsparser.y"
+{
+ yyval.ubinding = mkmagicuf_uprag(yyvsp[-2].uid, yyvsp[-1].uid, startlineno);
+ PREVPATT = NULL; FN = NULL; SAMEFN = 0;
+ ;
+ break;}
+case 336:
+#line 1354 "yaccParser/hsparser.y"
+{ yyval.ulist = mklcons(yyvsp[-2].uid,yyvsp[0].ulist); ;
+ break;}
+case 337:
+#line 1355 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uid); ;
+ break;}
+case 338:
+#line 1359 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uid); ;
+ break;}
+case 339:
+#line 1360 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uid); ;
+ break;}
+case 340:
+#line 1363 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uid); ;
+ break;}
+case 341:
+#line 1364 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uid); ;
+ break;}
+case 342:
+#line 1369 "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 1394 "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 1408 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(createpat(yyvsp[-1].ulist, yyvsp[0].ubinding)); ;
+ break;}
+case 346:
+#line 1412 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(mktruecase(yyvsp[0].utree)); ;
+ break;}
+case 347:
+#line 1415 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(ldub(yyvsp[-2].utree,yyvsp[0].utree)); ;
+ break;}
+case 348:
+#line 1416 "yaccParser/hsparser.y"
+{ yyval.ulist = mklcons(ldub(yyvsp[-3].utree,yyvsp[-1].utree),yyvsp[0].ulist); ;
+ break;}
+case 349:
+#line 1420 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[-1].ubinding; ;
+ break;}
+case 350:
+#line 1421 "yaccParser/hsparser.y"
+{ yyval.ubinding = yyvsp[-1].ubinding; ;
+ break;}
+case 351:
+#line 1422 "yaccParser/hsparser.y"
+{ yyval.ubinding = mknullbind(); ;
+ break;}
+case 352:
+#line 1425 "yaccParser/hsparser.y"
+{ yyval.utree = yyvsp[0].utree; ;
+ break;}
+case 353:
+#line 1429 "yaccParser/hsparser.y"
+{ yyval.ulist = mklcons(yyvsp[-1].utree,yyvsp[0].ulist); ;
+ break;}
+case 354:
+#line 1430 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].utree); ;
+ break;}
+case 355:
+#line 1439 "yaccParser/hsparser.y"
+{ yyval.utree = mkrestr(yyvsp[-4].utree,mkcontext(type2context(yyvsp[-2].uttype),yyvsp[0].uttype)); ;
+ break;}
+case 356:
+#line 1440 "yaccParser/hsparser.y"
+{ yyval.utree = mkrestr(yyvsp[-2].utree,yyvsp[0].uttype); ;
+ break;}
+case 359:
+#line 1452 "yaccParser/hsparser.y"
+{ yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree); precparse(yyval.utree); ;
+ break;}
+case 360:
+#line 1461 "yaccParser/hsparser.y"
+{ yyval.utree = mknegate(yyvsp[0].utree); ;
+ break;}
+case 362:
+#line 1470 "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 1477 "yaccParser/hsparser.y"
+{ hsendindent(); /* added by partain */
+ /* exitiscope(); /? Also not understood */
+ ;
+ break;}
+case 364:
+#line 1481 "yaccParser/hsparser.y"
+{
+ yyval.utree = mklambda(yyvsp[-3].ulist, yyvsp[0].utree, yyvsp[-4].uint);
+ ;
+ break;}
+case 365:
+#line 1486 "yaccParser/hsparser.y"
+{ yyval.utree = mklet(yyvsp[-3].ubinding,yyvsp[0].utree); ;
+ break;}
+case 366:
+#line 1487 "yaccParser/hsparser.y"
+{ yyval.utree = mklet(yyvsp[-3].ubinding,yyvsp[0].utree); ;
+ break;}
+case 367:
+#line 1490 "yaccParser/hsparser.y"
+{ yyval.utree = mkife(yyvsp[-4].utree,yyvsp[-2].utree,yyvsp[0].utree); ;
+ break;}
+case 368:
+#line 1493 "yaccParser/hsparser.y"
+{ yyval.utree = mkcasee(yyvsp[-4].utree,yyvsp[-1].ulist); ;
+ break;}
+case 369:
+#line 1494 "yaccParser/hsparser.y"
+{ yyval.utree = mkcasee(yyvsp[-4].utree,yyvsp[-1].ulist); ;
+ break;}
+case 370:
+#line 1497 "yaccParser/hsparser.y"
+{ yyval.utree = mkccall(yyvsp[-1].uid,installid("n"),yyvsp[0].ulist); ;
+ break;}
+case 371:
+#line 1498 "yaccParser/hsparser.y"
+{ yyval.utree = mkccall(yyvsp[0].uid,installid("n"),Lnil); ;
+ break;}
+case 372:
+#line 1499 "yaccParser/hsparser.y"
+{ yyval.utree = mkccall(yyvsp[-1].uid,installid("p"),yyvsp[0].ulist); ;
+ break;}
+case 373:
+#line 1500 "yaccParser/hsparser.y"
+{ yyval.utree = mkccall(yyvsp[0].uid,installid("p"),Lnil); ;
+ break;}
+case 374:
+#line 1501 "yaccParser/hsparser.y"
+{ yyval.utree = mkccall(yyvsp[-1].ustring,installid("N"),yyvsp[0].ulist); ;
+ break;}
+case 375:
+#line 1502 "yaccParser/hsparser.y"
+{ yyval.utree = mkccall(yyvsp[0].ustring,installid("N"),Lnil); ;
+ break;}
+case 376:
+#line 1503 "yaccParser/hsparser.y"
+{ yyval.utree = mkccall(yyvsp[-1].ustring,installid("P"),yyvsp[0].ulist); ;
+ break;}
+case 377:
+#line 1504 "yaccParser/hsparser.y"
+{ yyval.utree = mkccall(yyvsp[0].ustring,installid("P"),Lnil); ;
+ break;}
+case 378:
+#line 1508 "yaccParser/hsparser.y"
+{ extern BOOLEAN ignoreSCC;
+ extern BOOLEAN warnSCC;
+
+ 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 1526 "yaccParser/hsparser.y"
+{ yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
+ break;}
+case 382:
+#line 1530 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-1].ulist,yyvsp[0].utree); ;
+ break;}
+case 383:
+#line 1531 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].utree); ;
+ break;}
+case 384:
+#line 1541 "yaccParser/hsparser.y"
+{ yyval.utree = mkident(yyvsp[0].uid); ;
+ break;}
+case 385:
+#line 1542 "yaccParser/hsparser.y"
+{ yyval.utree = mkident(yyvsp[0].uid); ;
+ break;}
+case 386:
+#line 1543 "yaccParser/hsparser.y"
+{ yyval.utree = mklit(yyvsp[0].uliteral); ;
+ break;}
+case 387:
+#line 1544 "yaccParser/hsparser.y"
+{ yyval.utree = mkpar(yyvsp[-1].utree); ;
+ break;}
+case 388:
+#line 1545 "yaccParser/hsparser.y"
+{ checkprec(yyvsp[-2].utree,yyvsp[-1].uid,FALSE); yyval.utree = mklsection(yyvsp[-2].utree,yyvsp[-1].uid); ;
+ break;}
+case 389:
+#line 1546 "yaccParser/hsparser.y"
+{ checkprec(yyvsp[-1].utree,yyvsp[-2].uid,TRUE); yyval.utree = mkrsection(yyvsp[-2].uid,yyvsp[-1].utree); ;
+ break;}
+case 391:
+#line 1550 "yaccParser/hsparser.y"
+{ yyval.utree = mkpar(yyvsp[0].utree); ;
+ break;}
+case 392:
+#line 1551 "yaccParser/hsparser.y"
+{ yyval.utree = mkpar(yyvsp[0].utree); ;
+ break;}
+case 393:
+#line 1552 "yaccParser/hsparser.y"
+{ yyval.utree = mkpar(yyvsp[0].utree); ;
+ break;}
+case 394:
+#line 1555 "yaccParser/hsparser.y"
+{ checkinpat(); yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
+ break;}
+case 395:
+#line 1556 "yaccParser/hsparser.y"
+{ checkinpat(); yyval.utree = mkwildp(); ;
+ break;}
+case 396:
+#line 1557 "yaccParser/hsparser.y"
+{ checkinpat(); yyval.utree = mklazyp(yyvsp[0].utree); ;
+ break;}
+case 398:
+#line 1592 "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 1607 "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 1626 "yaccParser/hsparser.y"
+{ yyval.utree = mknegate(yyvsp[0].utree); ;
+ break;}
+case 403:
+#line 1631 "yaccParser/hsparser.y"
+{ yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
+ break;}
+case 405:
+#line 1635 "yaccParser/hsparser.y"
+{ yyval.utree = mknegate(yyvsp[0].utree); ;
+ break;}
+case 407:
+#line 1640 "yaccParser/hsparser.y"
+{ yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
+ break;}
+case 409:
+#line 1644 "yaccParser/hsparser.y"
+{ yyval.utree = mkident(yyvsp[0].uid); ;
+ break;}
+case 410:
+#line 1645 "yaccParser/hsparser.y"
+{ yyval.utree = mkident(yyvsp[0].uid); ;
+ break;}
+case 411:
+#line 1646 "yaccParser/hsparser.y"
+{ yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
+ break;}
+case 412:
+#line 1647 "yaccParser/hsparser.y"
+{ yyval.utree = mklit(yyvsp[0].uliteral); ;
+ break;}
+case 413:
+#line 1648 "yaccParser/hsparser.y"
+{ yyval.utree = mkwildp(); ;
+ break;}
+case 414:
+#line 1649 "yaccParser/hsparser.y"
+{ yyval.utree = mktuple(Lnil); ;
+ break;}
+case 415:
+#line 1650 "yaccParser/hsparser.y"
+{ yyval.utree = mkplusp(mkident(yyvsp[-3].uid),mkinteger(yyvsp[-1].ustring)); ;
+ break;}
+case 416:
+#line 1654 "yaccParser/hsparser.y"
+{ yyval.utree = mkpar(yyvsp[-1].utree); ;
+ break;}
+case 417:
+#line 1655 "yaccParser/hsparser.y"
+{ yyval.utree = mktuple(mklcons(yyvsp[-3].utree,yyvsp[-1].ulist)); ;
+ break;}
+case 418:
+#line 1656 "yaccParser/hsparser.y"
+{ yyval.utree = mkllist(yyvsp[-1].ulist); ;
+ break;}
+case 419:
+#line 1657 "yaccParser/hsparser.y"
+{ yyval.utree = mkllist(Lnil); ;
+ break;}
+case 420:
+#line 1658 "yaccParser/hsparser.y"
+{ yyval.utree = mklazyp(yyvsp[0].utree); ;
+ break;}
+case 421:
+#line 1661 "yaccParser/hsparser.y"
+{ yyval.utree = mkident(yyvsp[0].uid); ;
+ break;}
+case 422:
+#line 1662 "yaccParser/hsparser.y"
+{ yyval.utree = mkident(yyvsp[0].uid); ;
+ break;}
+case 423:
+#line 1663 "yaccParser/hsparser.y"
+{ yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
+ break;}
+case 424:
+#line 1664 "yaccParser/hsparser.y"
+{ yyval.utree = mklit(yyvsp[0].uliteral); setstartlineno(); ;
+ break;}
+case 425:
+#line 1665 "yaccParser/hsparser.y"
+{ yyval.utree = mkwildp(); setstartlineno(); ;
+ break;}
+case 426:
+#line 1666 "yaccParser/hsparser.y"
+{ yyval.utree = mktuple(Lnil); ;
+ break;}
+case 427:
+#line 1667 "yaccParser/hsparser.y"
+{ yyval.utree = mkplusp(mkident(yyvsp[-3].uid),mkinteger(yyvsp[-1].ustring)); ;
+ break;}
+case 428:
+#line 1671 "yaccParser/hsparser.y"
+{ yyval.utree = mkpar(yyvsp[-1].utree); ;
+ break;}
+case 429:
+#line 1672 "yaccParser/hsparser.y"
+{ yyval.utree = mktuple(mklcons(yyvsp[-3].utree,yyvsp[-1].ulist)); ;
+ break;}
+case 430:
+#line 1673 "yaccParser/hsparser.y"
+{ yyval.utree = mkllist(yyvsp[-1].ulist); ;
+ break;}
+case 431:
+#line 1674 "yaccParser/hsparser.y"
+{ yyval.utree = mkllist(Lnil); ;
+ break;}
+case 432:
+#line 1675 "yaccParser/hsparser.y"
+{ yyval.utree = mklazyp(yyvsp[0].utree); ;
+ break;}
+case 433:
+#line 1686 "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 1692 "yaccParser/hsparser.y"
+{ yyval.utree = mktuple(Lnil); ;
+ break;}
+case 435:
+#line 1695 "yaccParser/hsparser.y"
+{ yyval.utree = mkpar(yyvsp[0].utree); ;
+ break;}
+case 436:
+#line 1697 "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 1706 "yaccParser/hsparser.y"
+{ yyval.utree = mkllist(Lnil); ;
+ break;}
+case 438:
+#line 1707 "yaccParser/hsparser.y"
+{ yyval.utree = mkllist(yyvsp[-1].ulist); ;
+ break;}
+case 439:
+#line 1711 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].utree); ;
+ break;}
+case 440:
+#line 1712 "yaccParser/hsparser.y"
+{ yyval.ulist = mklcons(yyvsp[-2].utree, yyvsp[0].ulist); ;
+ break;}
+case 441:
+#line 1727 "yaccParser/hsparser.y"
+{yyval.utree = mkeenum(yyvsp[-5].utree,lsing(yyvsp[-3].utree),yyvsp[-1].ulist);;
+ break;}
+case 442:
+#line 1728 "yaccParser/hsparser.y"
+{ yyval.utree = mkeenum(yyvsp[-3].utree,Lnil,yyvsp[-1].ulist); ;
+ break;}
+case 443:
+#line 1731 "yaccParser/hsparser.y"
+{ yyval.utree = mkcomprh(yyvsp[-3].utree,yyvsp[-1].ulist); ;
+ break;}
+case 444:
+#line 1734 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].utree); ;
+ break;}
+case 445:
+#line 1735 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].utree); ;
+ break;}
+case 446:
+#line 1738 "yaccParser/hsparser.y"
+{ inpat = TRUE; ;
+ break;}
+case 447:
+#line 1738 "yaccParser/hsparser.y"
+{ inpat = FALSE; ;
+ break;}
+case 448:
+#line 1739 "yaccParser/hsparser.y"
+{ if (yyvsp[0].utree == NULL)
+ yyval.utree = mkguard(yyvsp[-2].utree);
+ else
+ {
+ checkpatt(yyvsp[-2].utree);
+ if(ttree(yyvsp[0].utree)==def)
+ {
+ tree prevpatt_save = PREVPATT;
+ PREVPATT = yyvsp[-2].utree;
+ yyval.utree = mkdef((tree) mkpbind(lsing(createpat(lsing(mktruecase(ggdef((struct Sdef *) yyvsp[0].utree))),mknullbind())),hsplineno));
+ PREVPATT = prevpatt_save;
+ }
+ else
+ yyval.utree = mkqual(yyvsp[-2].utree,yyvsp[0].utree);
+ }
+ ;
+ break;}
+case 449:
+#line 1757 "yaccParser/hsparser.y"
+{ yyval.utree = yyvsp[0].utree; ;
+ break;}
+case 450:
+#line 1758 "yaccParser/hsparser.y"
+{ yyval.utree = NULL; ;
+ break;}
+case 451:
+#line 1761 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[0].ulist; ;
+ break;}
+case 452:
+#line 1762 "yaccParser/hsparser.y"
+{ yyval.ulist = lconc(yyvsp[-2].ulist,yyvsp[0].ulist); ;
+ break;}
+case 453:
+#line 1766 "yaccParser/hsparser.y"
+{ PREVPATT = yyvsp[0].utree; ;
+ break;}
+case 454:
+#line 1768 "yaccParser/hsparser.y"
+{ yyval.ulist = yyvsp[0].ulist;
+ PREVPATT = NULL;
+ ;
+ break;}
+case 455:
+#line 1771 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; ;
+ break;}
+case 456:
+#line 1774 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(createpat(yyvsp[-1].ulist, yyvsp[0].ubinding)); ;
+ break;}
+case 457:
+#line 1775 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(createpat(lsing(mktruecase(yyvsp[-1].utree)), yyvsp[0].ubinding)); ;
+ break;}
+case 458:
+#line 1778 "yaccParser/hsparser.y"
+{ yyval.ulist = mklcons(ldub(yyvsp[-3].utree,yyvsp[-1].utree),yyvsp[0].ulist); ;
+ break;}
+case 459:
+#line 1779 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(ldub(yyvsp[-2].utree,yyvsp[0].utree)); ;
+ break;}
+case 460:
+#line 1782 "yaccParser/hsparser.y"
+{ yyval.ulist = Lnil; ;
+ break;}
+case 461:
+#line 1783 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].utree); ;
+ break;}
+case 462:
+#line 1786 "yaccParser/hsparser.y"
+{ yyval.ulist = mklcons(yyvsp[-2].utree, yyvsp[0].ulist); ;
+ break;}
+case 463:
+#line 1787 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].utree); ;
+ break;}
+case 465:
+#line 1792 "yaccParser/hsparser.y"
+{ yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree); precparse(yyval.utree); ;
+ break;}
+case 468:
+#line 1797 "yaccParser/hsparser.y"
+{ yyval.utree = mklit(mkinteger(ineg(yyvsp[0].ustring))); ;
+ break;}
+case 469:
+#line 1798 "yaccParser/hsparser.y"
+{ yyval.utree = mklit(mkfloatr(ineg(yyvsp[0].ustring))); ;
+ break;}
+case 470:
+#line 1801 "yaccParser/hsparser.y"
+{ yyval.utree = mkident(yyvsp[0].uid); ;
+ break;}
+case 471:
+#line 1802 "yaccParser/hsparser.y"
+{ yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
+ break;}
+case 472:
+#line 1805 "yaccParser/hsparser.y"
+{ yyval.utree = mkident(yyvsp[0].uid); ;
+ break;}
+case 474:
+#line 1809 "yaccParser/hsparser.y"
+{ yyval.utree = mkident(yyvsp[0].uid); ;
+ break;}
+case 475:
+#line 1810 "yaccParser/hsparser.y"
+{ yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
+ break;}
+case 476:
+#line 1811 "yaccParser/hsparser.y"
+{ yyval.utree = mklit(yyvsp[0].uliteral); ;
+ break;}
+case 477:
+#line 1812 "yaccParser/hsparser.y"
+{ yyval.utree = mkwildp(); ;
+ break;}
+case 478:
+#line 1813 "yaccParser/hsparser.y"
+{ yyval.utree = mktuple(Lnil); ;
+ break;}
+case 479:
+#line 1814 "yaccParser/hsparser.y"
+{ yyval.utree = mkplusp(mkident(yyvsp[-3].uid),mkinteger(yyvsp[-1].ustring)); ;
+ break;}
+case 480:
+#line 1818 "yaccParser/hsparser.y"
+{ yyval.utree = mkpar(yyvsp[-1].utree); ;
+ break;}
+case 481:
+#line 1819 "yaccParser/hsparser.y"
+{ yyval.utree = mktuple(mklcons(yyvsp[-3].utree,yyvsp[-1].ulist)); ;
+ break;}
+case 482:
+#line 1820 "yaccParser/hsparser.y"
+{ yyval.utree = mkllist(yyvsp[-1].ulist); ;
+ break;}
+case 483:
+#line 1821 "yaccParser/hsparser.y"
+{ yyval.utree = mkllist(Lnil); ;
+ break;}
+case 484:
+#line 1822 "yaccParser/hsparser.y"
+{ yyval.utree = mklazyp(yyvsp[0].utree); ;
+ break;}
+case 485:
+#line 1826 "yaccParser/hsparser.y"
+{ yyval.uliteral = mkinteger(yyvsp[0].ustring); ;
+ break;}
+case 486:
+#line 1827 "yaccParser/hsparser.y"
+{ yyval.uliteral = mkfloatr(yyvsp[0].ustring); ;
+ break;}
+case 487:
+#line 1828 "yaccParser/hsparser.y"
+{ yyval.uliteral = mkcharr(yyvsp[0].uhstring); ;
+ break;}
+case 488:
+#line 1829 "yaccParser/hsparser.y"
+{ yyval.uliteral = mkstring(yyvsp[0].uhstring); ;
+ break;}
+case 489:
+#line 1830 "yaccParser/hsparser.y"
+{ yyval.uliteral = mkcharprim(yyvsp[0].uhstring); ;
+ break;}
+case 490:
+#line 1831 "yaccParser/hsparser.y"
+{ yyval.uliteral = mkstringprim(yyvsp[0].uhstring); ;
+ break;}
+case 491:
+#line 1832 "yaccParser/hsparser.y"
+{ yyval.uliteral = mkintprim(yyvsp[0].ustring); ;
+ break;}
+case 492:
+#line 1833 "yaccParser/hsparser.y"
+{ yyval.uliteral = mkfloatprim(yyvsp[0].ustring); ;
+ break;}
+case 493:
+#line 1834 "yaccParser/hsparser.y"
+{ yyval.uliteral = mkdoubleprim(yyvsp[0].ustring); ;
+ break;}
+case 494:
+#line 1835 "yaccParser/hsparser.y"
+{ yyval.uliteral = mkclitlit(yyvsp[0].ustring, ""); ;
+ break;}
+case 495:
+#line 1836 "yaccParser/hsparser.y"
+{ yyval.uliteral = mkclitlit(yyvsp[-2].ustring, yyvsp[0].uid); ;
+ break;}
+case 496:
+#line 1837 "yaccParser/hsparser.y"
+{ yyval.uliteral = mknorepi(yyvsp[0].ustring); ;
+ break;}
+case 497:
+#line 1838 "yaccParser/hsparser.y"
+{ yyval.uliteral = mknorepr(yyvsp[-1].ustring, yyvsp[0].ustring); ;
+ break;}
+case 498:
+#line 1839 "yaccParser/hsparser.y"
+{ yyval.uliteral = mknoreps(yyvsp[0].uhstring); ;
+ break;}
+case 499:
+#line 1845 "yaccParser/hsparser.y"
+{ setstartlineno(); ;
+ break;}
+case 500:
+#line 1848 "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 1858 "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 1868 "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 1879 "yaccParser/hsparser.y"
+{ setstartlineno(); ;
+ break;}
+case 504:
+#line 1882 "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 1892 "yaccParser/hsparser.y"
+{ setstartlineno(); ;
+ break;}
+case 506:
+#line 1895 "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 1905 "yaccParser/hsparser.y"
+{ setstartlineno(); ;
+ break;}
+case 508:
+#line 1908 "yaccParser/hsparser.y"
+{ setstartlineno(); ;
+ break;}
+case 509:
+#line 1911 "yaccParser/hsparser.y"
+{ setstartlineno(); ;
+ break;}
+case 515:
+#line 1926 "yaccParser/hsparser.y"
+{ yyval.uid = yyvsp[-1].uid; ;
+ break;}
+case 518:
+#line 1932 "yaccParser/hsparser.y"
+{ yyval.uid = yyvsp[-1].uid; ;
+ break;}
+case 520:
+#line 1936 "yaccParser/hsparser.y"
+{ yyval.uid = yyvsp[-1].uid; ;
+ break;}
+case 524:
+#line 1944 "yaccParser/hsparser.y"
+{ yyval.uid = install_literal("-"); ;
+ break;}
+case 525:
+#line 1947 "yaccParser/hsparser.y"
+{ yyval.uid = install_literal("+"); ;
+ break;}
+case 527:
+#line 1951 "yaccParser/hsparser.y"
+{ yyval.uid = yyvsp[-1].uid; ;
+ break;}
+case 528:
+#line 1954 "yaccParser/hsparser.y"
+{ setstartlineno(); yyval.uid = yyvsp[0].uid; ;
+ break;}
+case 529:
+#line 1955 "yaccParser/hsparser.y"
+{ yyval.uid = yyvsp[-1].uid; ;
+ break;}
+case 531:
+#line 1960 "yaccParser/hsparser.y"
+{ yyval.uid = yyvsp[-1].uid; ;
+ break;}
+case 532:
+#line 1963 "yaccParser/hsparser.y"
+{ setstartlineno(); yyval.uid = yyvsp[0].uid; ;
+ break;}
+case 533:
+#line 1964 "yaccParser/hsparser.y"
+{ yyval.uid = yyvsp[-1].uid; ;
+ break;}
+case 536:
+#line 1972 "yaccParser/hsparser.y"
+{ yyval.ulist = mklcons(yyvsp[-2].uttype,lsing(yyvsp[0].uttype)); ;
+ break;}
+case 537:
+#line 1973 "yaccParser/hsparser.y"
+{ yyval.ulist = mklcons(yyvsp[-2].uttype,yyvsp[0].ulist); ;
+ break;}
+case 538:
+#line 1977 "yaccParser/hsparser.y"
+{ yyval.ulist = lsing(yyvsp[0].uttype); ;
+ break;}
+case 539:
+#line 1978 "yaccParser/hsparser.y"
+{ yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].uttype); ;
+ break;}
+case 540:
+#line 1981 "yaccParser/hsparser.y"
+{ yyval.uttype = mknamedtvar(yyvsp[0].uid); ;
+ break;}
+case 544:
+#line 1997 "yaccParser/hsparser.y"
+{ hsincindent(); ;
+ break;}
+case 545:
+#line 1999 "yaccParser/hsparser.y"
+{ hssetindent(); ;
+ break;}
+case 546:
+#line 2002 "yaccParser/hsparser.y"
+{ hsindentoff(); ;
+ break;}
+case 547:
+#line 2007 "yaccParser/hsparser.y"
+{
+ FN = NULL; SAMEFN = 0; PREVPATT = NULL;
+ hsendindent();
+ ;
+ break;}
+case 548:
+#line 2013 "yaccParser/hsparser.y"
+{ expect_ccurly = 1; ;
+ break;}
+case 549:
+#line 2013 "yaccParser/hsparser.y"
+{ expect_ccurly = 0; ;
+ break;}
+case 550:
+#line 2018 "yaccParser/hsparser.y"
+{
+ FN = NULL; SAMEFN = 0; PREVPATT = NULL;
+ hsendindent();
+ ;
+ break;}
+case 551:
+#line 2023 "yaccParser/hsparser.y"
+{
+ yyerrok;
+ FN = NULL; SAMEFN = 0; PREVPATT = NULL;
+ hsendindent();
+ ;
+ break;}
+}
+ /* the action file gets copied in in place of this dollarsign */
+#line 457 "/usr/local/gnu/lib/bison.simple"
+\f
+ 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 2030 "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);
+}
+
+void
+yyerror(s)
+ char *s;
+{
+ extern char *yytext;
+ extern int yyleng;
+
+ /* 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++;
+ }
+}