2 /* A Bison parser, made from yaccParser/hsparser.y with Bison version GNU Bison version 1.21
5 #define YYBISON 1 /* Identify Bison output. */
17 #define STRINGPRIM 268
20 #define DOUBLEPRIM 271
72 #define GHC_PRAGMA 323
73 #define END_PRAGMA 324
75 #define NOINFO_PRAGMA 326
76 #define ABSTRACT_PRAGMA 327
77 #define SPECIALISE_PRAGMA 328
78 #define MODNAME_PRAGMA 329
79 #define ARITY_PRAGMA 330
80 #define UPDATE_PRAGMA 331
81 #define STRICTNESS_PRAGMA 332
82 #define KIND_PRAGMA 333
83 #define UNFOLDING_PRAGMA 334
84 #define MAGIC_UNFOLDING_PRAGMA 335
85 #define DEFOREST_PRAGMA 336
86 #define SPECIALISE_UPRAGMA 337
87 #define INLINE_UPRAGMA 338
88 #define MAGIC_UNFOLDING_UPRAGMA 339
89 #define ABSTRACT_UPRAGMA 340
90 #define DEFOREST_UPRAGMA 341
91 #define END_UPRAGMA 342
98 #define TYVAR_TEMPLATE_ID 349
99 #define CO_ALG_ALTS 350
100 #define CO_PRIM_ALTS 351
101 #define CO_NO_DEFAULT 352
102 #define CO_LETREC 353
103 #define CO_SDSEL_ID 354
104 #define CO_METH_ID 355
105 #define CO_DEFM_ID 356
106 #define CO_DFUN_ID 357
107 #define CO_CONSTM_ID 358
108 #define CO_SPEC_ID 359
109 #define CO_WRKR_ID 360
110 #define CO_ORIG_NM 361
111 #define UNFOLD_ALWAYS 362
112 #define UNFOLD_IF_ARGS 363
113 #define NOREP_INTEGER 364
114 #define NOREP_RATIONAL 365
115 #define NOREP_STRING 366
116 #define CO_PRELUDE_DICTS_CC 367
117 #define CO_ALL_DICTS_CC 368
118 #define CO_USER_CC 369
119 #define CO_AUTO_CC 370
120 #define CO_DICT_CC 371
121 #define CO_CAF_CC 372
122 #define CO_DUPD_CC 373
125 #line 22 "yaccParser/hsparser.y"
135 #include "constants.h"
138 /**********************************************************************
141 * Imported Variables and Functions *
144 **********************************************************************/
146 BOOLEAN expect_ccurly = FALSE; /* Used to signal that a CCURLY could be inserted here */
148 extern BOOLEAN nonstandardFlag;
149 extern BOOLEAN etags;
151 extern VOID find_module_on_imports_dirlist PROTO((char *, BOOLEAN, char *));
153 extern char *input_filename;
154 static char *the_module_name;
155 static char iface_name[MODNAME_SIZE];
156 static char interface_filename[FILENAME_SIZE];
158 static list module_exports; /* Exported entities */
159 static list prelude_core_import, prelude_imports;
160 /* Entities imported from the Prelude */
162 extern list all; /* All valid deriving classes */
169 /* For FN, PREVPATT and SAMEFN macros */
171 extern short samefn[];
172 extern tree prevpatt[];
173 extern short icontexts;
176 extern int hsplineno, hspcolno;
177 extern int startlineno;
180 /**********************************************************************
183 * Fixity and Precedence Declarations *
186 **********************************************************************/
189 static int Fixity = 0, Precedence = 0;
192 char *ineg PROTO((char *));
194 static BOOLEAN hidden = FALSE; /* Set when HIDING used */
196 extern BOOLEAN inpat; /* True when parsing a pattern */
197 extern BOOLEAN implicitPrelude; /* True when we should read the Prelude if not given */
198 extern BOOLEAN haskell1_3Flag; /* True if we are attempting (proto)Haskell 1.3 */
200 extern int thisIfacePragmaVersion;
203 #line 100 "yaccParser/hsparser.y"
236 #define YYLTYPE yyltype
250 #define YYFLAG -32768
253 #define YYTRANSLATE(x) ((unsigned)(x) <= 374 ? yytranslate[x] : 347)
255 static const char yytranslate[] = { 0,
256 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
257 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
258 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
259 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
260 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
261 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
262 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
263 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
264 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
265 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
266 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
267 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
268 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
269 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
270 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
271 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
272 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
273 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
274 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
275 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
276 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
277 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
278 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
279 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
280 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
281 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
282 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
283 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
284 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
285 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
286 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
287 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
288 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
289 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
290 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
291 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
292 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
297 static const short yyprhs[] = { 0,
298 0, 4, 5, 12, 13, 16, 22, 28, 32, 36,
299 40, 44, 45, 49, 51, 55, 57, 59, 64, 69,
300 74, 78, 81, 85, 90, 93, 94, 96, 98, 102,
301 104, 106, 111, 116, 121, 125, 130, 134, 135, 138,
302 139, 141, 145, 149, 153, 154, 158, 159, 164, 165,
303 170, 176, 182, 183, 186, 187, 190, 194, 195, 197,
304 204, 206, 209, 211, 214, 216, 218, 220, 223, 227,
305 231, 232, 234, 237, 241, 243, 249, 251, 255, 257,
306 260, 262, 266, 272, 274, 278, 285, 287, 291, 293,
307 295, 296, 298, 300, 304, 308, 313, 318, 323, 330,
308 335, 339, 345, 352, 361, 368, 374, 376, 378, 382,
309 386, 387, 390, 396, 397, 400, 405, 407, 411, 413,
310 417, 421, 424, 429, 436, 443, 450, 452, 454, 456,
311 458, 462, 466, 470, 476, 483, 489, 492, 496, 500,
312 502, 504, 513, 522, 531, 540, 542, 543, 546, 552,
313 555, 559, 561, 565, 567, 569, 571, 574, 576, 580,
314 583, 587, 589, 593, 595, 597, 601, 603, 605, 606,
315 609, 610, 613, 614, 617, 619, 623, 624, 629, 632,
316 637, 640, 644, 646, 650, 654, 658, 659, 662, 664,
317 668, 674, 682, 683, 689, 695, 699, 705, 709, 710,
318 713, 715, 719, 720, 725, 726, 731, 732, 737, 738,
319 742, 743, 747, 748, 752, 754, 758, 760, 764, 766,
320 768, 770, 772, 774, 776, 781, 788, 793, 802, 809,
321 815, 819, 820, 825, 830, 837, 842, 843, 848, 853,
322 855, 859, 863, 866, 870, 876, 879, 885, 887, 889,
323 893, 900, 905, 911, 917, 923, 928, 933, 937, 941,
324 943, 944, 945, 947, 949, 953, 955, 959, 961, 965,
325 967, 969, 971, 973, 975, 976, 983, 988, 994, 1000,
326 1004, 1012, 1018, 1027, 1034, 1041, 1046, 1053, 1058, 1061,
327 1063, 1067, 1069, 1073, 1078, 1080, 1083, 1086, 1088, 1090,
328 1094, 1097, 1099, 1105, 1107, 1109, 1112, 1116, 1120, 1127,
329 1129, 1131, 1134, 1137, 1139, 1143, 1146, 1151, 1153, 1157,
330 1161, 1165, 1168, 1170, 1172, 1176, 1180, 1182, 1184, 1188,
331 1189, 1191, 1195, 1200, 1205, 1207, 1211, 1213, 1215, 1219,
332 1221, 1225, 1226, 1230, 1233, 1235, 1238, 1242, 1247, 1252,
333 1257, 1258, 1261, 1264, 1266, 1272, 1276, 1278, 1280, 1284,
334 1287, 1289, 1290, 1291, 1298, 1305, 1312, 1319, 1326, 1333,
335 1337, 1340, 1344, 1347, 1351, 1354, 1358, 1361, 1365, 1367,
336 1370, 1372, 1375, 1377, 1379, 1381, 1383, 1387, 1392, 1397,
337 1399, 1401, 1403, 1405, 1409, 1411, 1414, 1416, 1420, 1422,
338 1426, 1429, 1431, 1434, 1436, 1439, 1441, 1444, 1446, 1448,
339 1450, 1454, 1456, 1458, 1461, 1467, 1471, 1477, 1481, 1484,
340 1487, 1489, 1491, 1495, 1497, 1499, 1502, 1508, 1512, 1518,
341 1522, 1525, 1528, 1534, 1537, 1539, 1543, 1546, 1550, 1552,
342 1556, 1564, 1570, 1576, 1578, 1582, 1583, 1584, 1589, 1592,
343 1593, 1595, 1599, 1600, 1604, 1605, 1608, 1612, 1617, 1621,
344 1622, 1624, 1628, 1630, 1632, 1636, 1638, 1640, 1643, 1646,
345 1648, 1651, 1653, 1655, 1657, 1661, 1663, 1665, 1668, 1674,
346 1678, 1684, 1688, 1691, 1694, 1696, 1698, 1700, 1702, 1704,
347 1706, 1708, 1710, 1712, 1714, 1718, 1721, 1725, 1728, 1730,
348 1732, 1734, 1736, 1738, 1740, 1742, 1744, 1746, 1748, 1750,
349 1752, 1754, 1756, 1758, 1760, 1764, 1766, 1768, 1772, 1774,
350 1778, 1780, 1782, 1784, 1786, 1788, 1790, 1794, 1796, 1800,
351 1802, 1806, 1808, 1812, 1814, 1816, 1820, 1824, 1826, 1829,
352 1831, 1833, 1835, 1837, 1840, 1842, 1843, 1845, 1846, 1849,
356 static const short yyrhs[] = { 188,
357 190, 121, 0, 0, 317, 339, 125, 122, 41, 124,
358 0, 0, 123, 124, 0, 340, 192, 207, 217, 343,
359 0, 341, 192, 207, 217, 344, 0, 341, 193, 344,
360 0, 340, 193, 343, 0, 341, 192, 344, 0, 340,
361 192, 343, 0, 0, 24, 126, 25, 0, 127, 0,
362 126, 26, 127, 0, 329, 0, 338, 0, 338, 24,
363 32, 25, 0, 338, 24, 260, 25, 0, 338, 24,
364 258, 25, 0, 338, 24, 25, 0, 338, 32, 0,
365 24, 130, 25, 0, 55, 24, 130, 25, 0, 24,
366 25, 0, 0, 128, 0, 131, 0, 130, 26, 131,
367 0, 329, 0, 338, 0, 338, 24, 32, 25, 0,
368 338, 24, 260, 25, 0, 338, 24, 258, 25, 0,
369 338, 24, 25, 0, 68, 250, 133, 69, 0, 68,
370 133, 69, 0, 0, 73, 134, 0, 0, 135, 0,
371 134, 26, 135, 0, 22, 157, 23, 0, 68, 72,
372 69, 0, 0, 68, 151, 69, 0, 0, 68, 143,
373 143, 69, 0, 0, 68, 140, 143, 69, 0, 68,
374 140, 143, 160, 69, 0, 68, 140, 143, 141, 69,
375 0, 0, 74, 339, 0, 0, 73, 155, 0, 68,
376 143, 69, 0, 0, 71, 0, 144, 145, 146, 147,
377 149, 152, 0, 70, 0, 75, 8, 0, 70, 0,
378 76, 8, 0, 70, 0, 81, 0, 70, 0, 77,
379 89, 0, 77, 11, 148, 0, 18, 143, 19, 0,
380 0, 70, 0, 80, 330, 0, 79, 150, 162, 0,
381 107, 0, 108, 8, 8, 4, 8, 0, 143, 0,
382 151, 26, 143, 0, 70, 0, 73, 153, 0, 154,
383 0, 153, 26, 154, 0, 22, 157, 23, 8, 148,
384 0, 156, 0, 155, 26, 156, 0, 22, 157, 23,
385 8, 148, 159, 0, 158, 0, 157, 26, 158, 0,
386 70, 0, 242, 0, 0, 160, 0, 161, 0, 160,
387 26, 161, 0, 329, 30, 143, 0, 38, 176, 28,
388 162, 0, 88, 181, 28, 162, 0, 89, 331, 183,
389 178, 0, 89, 106, 339, 331, 183, 178, 0, 90,
390 175, 183, 178, 0, 91, 162, 178, 0, 92, 162,
391 18, 185, 19, 0, 42, 162, 43, 18, 163, 19,
392 0, 39, 18, 177, 30, 162, 19, 40, 162, 0,
393 98, 18, 169, 19, 40, 162, 0, 60, 18, 171,
394 19, 162, 0, 309, 0, 174, 0, 95, 164, 168,
395 0, 96, 166, 168, 0, 0, 164, 165, 0, 174,
396 176, 28, 162, 21, 0, 0, 166, 167, 0, 309,
397 28, 162, 21, 0, 97, 0, 177, 28, 162, 0,
398 170, 0, 169, 21, 170, 0, 177, 30, 162, 0,
399 112, 173, 0, 113, 11, 11, 173, 0, 114, 11,
400 11, 11, 173, 172, 0, 115, 174, 11, 11, 173,
401 172, 0, 116, 174, 11, 11, 173, 172, 0, 70,
402 0, 117, 0, 70, 0, 118, 0, 99, 338, 338,
403 0, 100, 338, 329, 0, 101, 338, 329, 0, 102,
404 338, 24, 185, 25, 0, 103, 338, 329, 24, 185,
405 25, 0, 104, 174, 22, 186, 23, 0, 105, 174,
406 0, 106, 339, 329, 0, 106, 339, 331, 0, 329,
407 0, 331, 0, 24, 56, 333, 18, 183, 185, 19,
408 25, 0, 24, 57, 333, 18, 183, 185, 19, 25,
409 0, 24, 58, 309, 18, 183, 185, 19, 25, 0,
410 24, 59, 309, 18, 183, 185, 19, 25, 0, 3,
411 0, 0, 176, 177, 0, 24, 3, 33, 185, 25,
412 0, 22, 23, 0, 22, 179, 23, 0, 180, 0,
413 179, 26, 180, 0, 309, 0, 174, 0, 3, 0,
414 181, 3, 0, 94, 0, 182, 26, 94, 0, 22,
415 23, 0, 22, 184, 23, 0, 185, 0, 184, 26,
416 185, 0, 242, 0, 187, 0, 186, 26, 187, 0,
417 70, 0, 185, 0, 0, 189, 197, 0, 0, 191,
418 197, 0, 0, 193, 21, 0, 194, 0, 193, 21,
419 194, 0, 0, 53, 339, 195, 196, 0, 197, 129,
420 0, 197, 129, 64, 198, 0, 204, 67, 0, 24,
421 199, 25, 0, 200, 0, 199, 26, 200, 0, 329,
422 66, 329, 0, 331, 66, 331, 0, 0, 202, 21,
423 0, 203, 0, 202, 21, 203, 0, 310, 339, 24,
424 130, 25, 0, 310, 339, 24, 130, 25, 64, 198,
425 0, 0, 54, 339, 205, 41, 206, 0, 340, 201,
426 207, 233, 343, 0, 340, 202, 343, 0, 341, 201,
427 207, 233, 344, 0, 341, 202, 344, 0, 0, 208,
428 21, 0, 209, 0, 208, 21, 209, 0, 0, 50,
429 8, 210, 216, 0, 0, 51, 8, 211, 216, 0,
430 0, 49, 8, 212, 216, 0, 0, 50, 213, 216,
431 0, 0, 51, 214, 216, 0, 0, 49, 215, 216,
432 0, 322, 0, 216, 26, 322, 0, 218, 0, 217,
433 21, 218, 0, 219, 0, 220, 0, 221, 0, 223,
434 0, 226, 0, 229, 0, 312, 248, 30, 242, 0,
435 311, 254, 31, 248, 30, 250, 0, 311, 248, 30,
436 250, 0, 311, 254, 31, 248, 30, 250, 65, 252,
437 0, 311, 248, 30, 250, 65, 252, 0, 315, 254,
438 31, 240, 222, 0, 315, 240, 222, 0, 0, 41,
439 340, 228, 343, 0, 41, 341, 228, 344, 0, 313,
440 254, 31, 337, 225, 224, 0, 313, 337, 225, 224,
441 0, 0, 41, 340, 256, 343, 0, 41, 341, 256,
442 344, 0, 338, 0, 24, 249, 25, 0, 24, 334,
443 25, 0, 24, 25, 0, 22, 246, 23, 0, 24,
444 246, 28, 246, 25, 0, 314, 227, 0, 24, 242,
445 26, 241, 25, 0, 245, 0, 229, 0, 228, 21,
446 229, 0, 258, 33, 242, 31, 242, 138, 0, 258,
447 33, 242, 138, 0, 82, 330, 33, 231, 87, 0,
448 82, 47, 4, 225, 87, 0, 82, 45, 338, 244,
449 87, 0, 83, 330, 230, 87, 0, 84, 330, 330,
450 87, 0, 86, 330, 87, 0, 85, 338, 87, 0,
451 261, 0, 0, 0, 4, 0, 232, 0, 231, 26,
452 232, 0, 242, 0, 242, 30, 330, 0, 234, 0,
453 233, 21, 234, 0, 236, 0, 237, 0, 238, 0,
454 239, 0, 235, 0, 0, 258, 33, 242, 31, 242,
455 142, 0, 258, 33, 242, 142, 0, 312, 248, 30,
456 242, 136, 0, 311, 254, 31, 248, 132, 0, 311,
457 248, 132, 0, 311, 254, 31, 248, 30, 250, 132,
458 0, 311, 248, 30, 250, 132, 0, 311, 254, 31,
459 248, 30, 250, 65, 252, 0, 311, 248, 30, 250,
460 65, 252, 0, 315, 254, 31, 240, 137, 222, 0,
461 315, 240, 137, 222, 0, 313, 254, 31, 337, 225,
462 139, 0, 313, 337, 225, 139, 0, 338, 336, 0,
463 242, 0, 241, 26, 242, 0, 243, 0, 243, 28,
464 242, 0, 93, 182, 31, 242, 0, 246, 0, 338,
465 244, 0, 244, 246, 0, 246, 0, 247, 0, 243,
466 28, 242, 0, 338, 244, 0, 247, 0, 24, 242,
467 26, 241, 25, 0, 336, 0, 338, 0, 24, 25,
468 0, 24, 242, 25, 0, 22, 242, 23, 0, 18,
469 18, 4, 242, 19, 19, 0, 94, 0, 338, 0,
470 338, 335, 0, 338, 244, 0, 251, 0, 250, 29,
471 251, 0, 338, 244, 0, 24, 6, 25, 244, 0,
472 338, 0, 24, 6, 25, 0, 243, 325, 243, 0,
473 24, 253, 25, 0, 24, 25, 0, 337, 0, 337,
474 0, 253, 26, 337, 0, 24, 255, 25, 0, 240,
475 0, 240, 0, 255, 26, 240, 0, 0, 257, 0,
476 256, 21, 257, 0, 83, 330, 230, 87, 0, 84,
477 330, 330, 87, 0, 261, 0, 330, 26, 259, 0,
478 330, 0, 329, 0, 259, 26, 329, 0, 331, 0,
479 260, 26, 331, 0, 0, 278, 262, 263, 0, 264,
480 266, 0, 265, 0, 30, 269, 0, 267, 30, 269,
481 0, 267, 30, 269, 265, 0, 41, 340, 228, 343,
482 0, 41, 341, 228, 344, 0, 0, 29, 270, 0,
483 307, 268, 0, 307, 0, 270, 33, 242, 31, 242,
484 0, 270, 33, 242, 0, 270, 0, 271, 0, 270,
485 322, 270, 0, 7, 272, 0, 272, 0, 0, 0,
486 38, 273, 268, 274, 28, 269, 0, 39, 340, 228,
487 343, 40, 269, 0, 39, 341, 228, 344, 40, 269,
488 0, 61, 269, 62, 269, 63, 269, 0, 42, 269,
489 43, 340, 297, 343, 0, 42, 269, 43, 341, 297,
490 344, 0, 56, 333, 276, 0, 56, 333, 0, 57,
491 333, 276, 0, 57, 333, 0, 58, 17, 276, 0,
492 58, 17, 0, 59, 17, 276, 0, 59, 17, 0,
493 60, 11, 269, 0, 275, 0, 275, 277, 0, 277,
494 0, 276, 277, 0, 277, 0, 329, 0, 331, 0,
495 309, 0, 24, 269, 25, 0, 24, 270, 322, 25,
496 0, 24, 321, 270, 25, 0, 286, 0, 288, 0,
497 290, 0, 291, 0, 329, 36, 277, 0, 35, 0,
498 37, 277, 0, 282, 0, 278, 322, 279, 0, 280,
499 0, 279, 322, 279, 0, 7, 281, 0, 281, 0,
500 281, 284, 0, 284, 0, 316, 281, 0, 283, 0,
501 283, 284, 0, 285, 0, 331, 0, 329, 0, 329,
502 36, 307, 0, 309, 0, 35, 0, 24, 25, 0,
503 24, 329, 119, 8, 25, 0, 24, 279, 25, 0,
504 24, 279, 26, 303, 25, 0, 22, 303, 23, 0,
505 22, 23, 0, 37, 307, 0, 332, 0, 330, 0,
506 330, 36, 307, 0, 309, 0, 35, 0, 318, 25,
507 0, 318, 329, 119, 8, 25, 0, 318, 279, 25,
508 0, 318, 279, 26, 303, 25, 0, 319, 303, 23,
509 0, 319, 23, 0, 320, 307, 0, 24, 269, 26,
510 287, 25, 0, 24, 25, 0, 269, 0, 269, 26,
511 287, 0, 22, 23, 0, 22, 289, 23, 0, 269,
512 0, 269, 26, 289, 0, 22, 269, 26, 269, 32,
513 302, 23, 0, 22, 269, 32, 302, 23, 0, 22,
514 269, 29, 292, 23, 0, 293, 0, 292, 26, 293,
515 0, 0, 0, 294, 269, 295, 296, 0, 34, 269,
516 0, 0, 298, 0, 297, 21, 298, 0, 0, 304,
517 299, 300, 0, 0, 301, 266, 0, 28, 269, 266,
518 0, 267, 28, 269, 301, 0, 267, 28, 269, 0,
519 0, 269, 0, 304, 26, 303, 0, 304, 0, 305,
520 0, 304, 325, 305, 0, 308, 0, 306, 0, 7,
521 8, 0, 7, 9, 0, 331, 0, 306, 307, 0,
522 331, 0, 308, 0, 329, 0, 329, 36, 307, 0,
523 309, 0, 35, 0, 24, 25, 0, 24, 329, 119,
524 8, 25, 0, 24, 304, 25, 0, 24, 304, 26,
525 303, 25, 0, 22, 303, 23, 0, 22, 23, 0,
526 37, 307, 0, 8, 0, 9, 0, 10, 0, 11,
527 0, 12, 0, 13, 0, 14, 0, 15, 0, 16,
528 0, 17, 0, 17, 78, 4, 0, 109, 8, 0,
529 110, 8, 8, 0, 111, 11, 0, 53, 0, 45,
530 0, 44, 0, 47, 0, 48, 0, 46, 0, 7,
531 0, 52, 0, 24, 0, 22, 0, 37, 0, 325,
532 0, 324, 0, 325, 0, 323, 0, 326, 0, 27,
533 3, 27, 0, 5, 0, 328, 0, 27, 3, 27,
534 0, 6, 0, 27, 4, 27, 0, 5, 0, 328,
535 0, 327, 0, 7, 0, 119, 0, 3, 0, 24,
536 326, 25, 0, 3, 0, 318, 326, 25, 0, 338,
537 0, 24, 6, 25, 0, 338, 0, 318, 6, 25,
538 0, 3, 0, 4, 0, 246, 26, 246, 0, 246,
539 26, 334, 0, 336, 0, 335, 336, 0, 3, 0,
540 338, 0, 4, 0, 4, 0, 342, 18, 0, 342,
541 0, 0, 19, 0, 0, 345, 346, 0, 20, 0,
548 static const short yyrline[] = { 0,
549 331, 334, 336, 337, 339, 342, 346, 351, 355, 361,
550 365, 372, 373, 376, 378, 381, 383, 384, 385, 389,
551 393, 397, 404, 405, 406, 409, 410, 413, 415, 418,
552 420, 421, 422, 426, 430, 438, 441, 443, 446, 449,
553 452, 454, 458, 462, 464, 467, 469, 472, 475, 479,
554 483, 486, 489, 493, 496, 500, 503, 506, 510, 513,
555 517, 519, 522, 524, 527, 529, 532, 534, 537, 541,
556 543, 545, 547, 549, 553, 556, 560, 562, 565, 567,
557 570, 572, 575, 580, 582, 585, 590, 592, 595, 597,
558 600, 602, 605, 607, 610, 619, 622, 624, 626, 628,
559 630, 632, 634, 636, 638, 640, 642, 643, 646, 649,
560 653, 655, 658, 663, 665, 668, 672, 674, 677, 679,
561 682, 686, 688, 689, 691, 693, 696, 697, 699, 700,
562 702, 704, 705, 706, 708, 710, 712, 713, 714, 715,
563 716, 719, 722, 724, 726, 728, 731, 733, 736, 739,
564 741, 744, 746, 749, 751, 754, 756, 759, 761, 764,
565 766, 769, 771, 774, 794, 796, 799, 801, 806, 821,
566 828, 842, 849, 850, 853, 854, 857, 879, 885, 889,
567 893, 901, 904, 906, 909, 910, 913, 914, 917, 918,
568 921, 923, 928, 933, 946, 950, 954, 958, 964, 965,
569 969, 970, 973, 976, 976, 979, 979, 982, 982, 985,
570 985, 988, 988, 991, 993, 994, 997, 998, 1017, 1018,
571 1019, 1020, 1021, 1022, 1025, 1029, 1031, 1033, 1035, 1039,
572 1040, 1043, 1044, 1045, 1048, 1049, 1052, 1053, 1054, 1057,
573 1058, 1060, 1061, 1062, 1063, 1066, 1069, 1070, 1077, 1078,
574 1107, 1112, 1125, 1131, 1137, 1143, 1149, 1155, 1161, 1169,
575 1170, 1173, 1175, 1177, 1179, 1182, 1184, 1186, 1187, 1190,
576 1191, 1192, 1193, 1194, 1195, 1199, 1201, 1205, 1209, 1211,
577 1213, 1215, 1217, 1219, 1223, 1225, 1229, 1231, 1238, 1242,
578 1243, 1246, 1247, 1249, 1252, 1253, 1256, 1257, 1261, 1262,
579 1263, 1266, 1267, 1270, 1271, 1272, 1273, 1274, 1276, 1278,
580 1282, 1283, 1287, 1293, 1294, 1298, 1299, 1300, 1301, 1302,
581 1305, 1306, 1307, 1310, 1311, 1314, 1315, 1318, 1319, 1322,
582 1323, 1324, 1337, 1344, 1350, 1354, 1355, 1359, 1360, 1363,
583 1364, 1368, 1394, 1408, 1411, 1412, 1415, 1416, 1419, 1421,
584 1422, 1425, 1429, 1430, 1439, 1440, 1441, 1450, 1451, 1461,
585 1462, 1469, 1477, 1480, 1486, 1487, 1490, 1493, 1494, 1497,
586 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1507, 1521, 1526,
587 1527, 1530, 1531, 1541, 1542, 1543, 1544, 1545, 1546, 1549,
588 1550, 1551, 1552, 1555, 1556, 1557, 1590, 1591, 1605, 1606,
589 1626, 1627, 1631, 1632, 1635, 1636, 1640, 1641, 1644, 1645,
590 1646, 1647, 1648, 1649, 1650, 1654, 1655, 1656, 1657, 1658,
591 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1671, 1672, 1673,
592 1674, 1675, 1685, 1691, 1695, 1696, 1706, 1707, 1710, 1712,
593 1727, 1728, 1731, 1734, 1735, 1738, 1738, 1739, 1757, 1758,
594 1761, 1762, 1765, 1768, 1771, 1774, 1775, 1778, 1779, 1782,
595 1783, 1786, 1787, 1791, 1792, 1795, 1796, 1797, 1798, 1801,
596 1802, 1805, 1806, 1809, 1810, 1811, 1812, 1813, 1814, 1818,
597 1819, 1820, 1821, 1822, 1825, 1827, 1828, 1829, 1830, 1831,
598 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1845, 1848,
599 1858, 1868, 1879, 1882, 1892, 1895, 1905, 1908, 1911, 1917,
600 1918, 1921, 1922, 1925, 1926, 1930, 1931, 1932, 1935, 1936,
601 1939, 1940, 1941, 1944, 1947, 1950, 1951, 1954, 1955, 1959,
602 1960, 1963, 1964, 1967, 1968, 1972, 1973, 1977, 1978, 1981,
603 1984, 1990, 1993, 1997, 1999, 2002, 2005, 2013, 2013, 2016,
607 static const char * const yytname[] = { "$","error","$illegal.","VARID","CONID",
608 "VARSYM","CONSYM","MINUS","INTEGER","FLOAT","CHAR","STRING","CHARPRIM","STRINGPRIM",
609 "INTPRIM","FLOATPRIM","DOUBLEPRIM","CLITLIT","OCURLY","CCURLY","VCCURLY","SEMI",
610 "OBRACK","CBRACK","OPAREN","CPAREN","COMMA","BQUOTE","RARROW","VBAR","EQUAL",
611 "DARROW","DOTDOT","DCOLON","LARROW","WILDCARD","AT","LAZY","LAMBDA","LET","IN",
612 "WHERE","CASE","OF","TYPE","DATA","CLASS","INSTANCE","DEFAULT","INFIX","INFIXL",
613 "INFIXR","MODULE","IMPORT","INTERFACE","HIDING","CCALL","CCALL_GC","CASM","CASM_GC",
614 "SCC","IF","THEN","ELSE","RENAMING","DERIVING","TO","LEOF","GHC_PRAGMA","END_PRAGMA",
615 "NO_PRAGMA","NOINFO_PRAGMA","ABSTRACT_PRAGMA","SPECIALISE_PRAGMA","MODNAME_PRAGMA",
616 "ARITY_PRAGMA","UPDATE_PRAGMA","STRICTNESS_PRAGMA","KIND_PRAGMA","UNFOLDING_PRAGMA",
617 "MAGIC_UNFOLDING_PRAGMA","DEFOREST_PRAGMA","SPECIALISE_UPRAGMA","INLINE_UPRAGMA",
618 "MAGIC_UNFOLDING_UPRAGMA","ABSTRACT_UPRAGMA","DEFOREST_UPRAGMA","END_UPRAGMA",
619 "TYLAMBDA","COCON","COPRIM","COAPP","COTYAPP","FORALL","TYVAR_TEMPLATE_ID","CO_ALG_ALTS",
620 "CO_PRIM_ALTS","CO_NO_DEFAULT","CO_LETREC","CO_SDSEL_ID","CO_METH_ID","CO_DEFM_ID",
621 "CO_DFUN_ID","CO_CONSTM_ID","CO_SPEC_ID","CO_WRKR_ID","CO_ORIG_NM","UNFOLD_ALWAYS",
622 "UNFOLD_IF_ARGS","NOREP_INTEGER","NOREP_RATIONAL","NOREP_STRING","CO_PRELUDE_DICTS_CC",
623 "CO_ALL_DICTS_CC","CO_USER_CC","CO_AUTO_CC","CO_DICT_CC","CO_CAF_CC","CO_DUPD_CC",
624 "PLUS","pmodule","module","@1","@2","body","maybeexports","export_list","export",
625 "impspec","maybeimpspec","import_list","import","idata_pragma","idata_pragma_specs",
626 "idata_pragma_specslist","idata_pragma_spectypes","itype_pragma","iclas_pragma",
627 "iclasop_pragma","iinst_pragma","modname_pragma","restof_iinst_spec","ival_pragma",
628 "gen_pragma","arity_pragma","update_pragma","deforest_pragma","strictness_pragma",
629 "worker_info","unfolding_pragma","unfolding_guidance","gen_pragma_list","type_pragma_pairs_maybe",
630 "type_pragma_pairs","type_pragma_pair","type_instpragma_pairs","type_instpragma_pair",
631 "type_maybes","type_maybe","maybe_name_pragma_pairs","name_pragma_pairs","name_pragma_pair",
632 "core_expr","core_case_alts","core_alg_alts","core_alg_alt","core_prim_alts",
633 "core_prim_alt","core_default","corec_binds","corec_bind","co_scc","co_caf",
634 "co_dupd","core_id","co_primop","core_binders","core_binder","core_atoms","core_atom_list",
635 "core_atom","core_tyvars","core_tv_templates","core_types","core_type_list",
636 "core_type","core_type_maybes","core_type_maybe","readpreludecore","@3","readprelude",
637 "@4","maybeimpdecls","impdecls","impdecl","@5","impdecl_rest","readinterface",
638 "renamings","renaming_list","renaming","maybeiimports","iimports","iimport",
639 "interface","@6","ibody","maybefixes","fixes","fix","@7","@8","@9","@10","@11",
640 "@12","ops","topdecls","topdecl","typed","datad","classd","cbody","instd","rinst",
641 "inst","defaultd","dtypes","decls","decl","howto_inline_maybe","types_and_maybe_ids",
642 "type_and_maybe_id","itopdecls","itopdecl","ivarsd","ityped","idatad","iclassd",
643 "iinstd","class","types","type","btype","atypes","ttype","atype","ntatype","simple",
644 "simple_long","constrs","constr","tyclses","tycls_list","context","context_list",
645 "instdefs","instdef","vars","varsrest","cons","valdef","@13","valrhs","valrhs1",
646 "gdrhs","maybe_where","gd","lampats","exp","oexp","dexp","kexp","@14","@15",
647 "fexp","cexp","aexp","opatk","opat","dpat","fpat","dpatk","fpatk","aapat","aapatk",
648 "tuple","texps","list","list_exps","sequence","comprehension","quals","qual",
649 "@16","@17","qualrest","alts","alt","@18","altrest","gdpat","upto","pats","pat",
650 "bpat","conpat","apat","apatc","lit_constant","importkey","datakey","typekey",
651 "instkey","defaultkey","classkey","minuskey","modulekey","oparenkey","obrackkey",
652 "lazykey","op1","op","varop","varop1","conop","varsym","minus","plus","var",
653 "vark","con","conk","ccallid","atype_list","tyvars","tyvar","tycls","tycon",
654 "modid","ocurly","vocurly","layout","ccurly","vccurly","@19","vccurly1",""
658 static const short yyr1[] = { 0,
659 120, 122, 121, 123, 121, 124, 124, 124, 124, 124,
660 124, 125, 125, 126, 126, 127, 127, 127, 127, 127,
661 127, 127, 128, 128, 128, 129, 129, 130, 130, 131,
662 131, 131, 131, 131, 131, 132, 132, 132, 133, 133,
663 134, 134, 135, 136, 136, 137, 137, 138, 138, 139,
664 139, 139, 139, 140, 140, 141, 142, 142, 143, 143,
665 144, 144, 145, 145, 146, 146, 147, 147, 147, 148,
666 148, 149, 149, 149, 150, 150, 151, 151, 152, 152,
667 153, 153, 154, 155, 155, 156, 157, 157, 158, 158,
668 159, 159, 160, 160, 161, 162, 162, 162, 162, 162,
669 162, 162, 162, 162, 162, 162, 162, 162, 163, 163,
670 164, 164, 165, 166, 166, 167, 168, 168, 169, 169,
671 170, 171, 171, 171, 171, 171, 172, 172, 173, 173,
672 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
673 174, 175, 175, 175, 175, 175, 176, 176, 177, 178,
674 178, 179, 179, 180, 180, 181, 181, 182, 182, 183,
675 183, 184, 184, 185, 186, 186, 187, 187, 189, 188,
676 191, 190, 192, 192, 193, 193, 195, 194, 196, 196,
677 197, 198, 199, 199, 200, 200, 201, 201, 202, 202,
678 203, 203, 205, 204, 206, 206, 206, 206, 207, 207,
679 208, 208, 210, 209, 211, 209, 212, 209, 213, 209,
680 214, 209, 215, 209, 216, 216, 217, 217, 218, 218,
681 218, 218, 218, 218, 219, 220, 220, 220, 220, 221,
682 221, 222, 222, 222, 223, 223, 224, 224, 224, 225,
683 225, 225, 225, 225, 225, 226, 227, 227, 228, 228,
684 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
685 229, 230, 230, 231, 231, 232, 232, 233, 233, 234,
686 234, 234, 234, 234, 234, 235, 235, 236, 237, 237,
687 237, 237, 237, 237, 238, 238, 239, 239, 240, 241,
688 241, 242, 242, 242, 243, 243, 244, 244, 245, 245,
689 245, 246, 246, 247, 247, 247, 247, 247, 247, 247,
690 248, 248, 249, 250, 250, 251, 251, 251, 251, 251,
691 252, 252, 252, 253, 253, 254, 254, 255, 255, 256,
692 256, 256, 257, 257, 257, 258, 258, 259, 259, 260,
693 260, 262, 261, 263, 264, 264, 265, 265, 266, 266,
694 266, 267, 268, 268, 269, 269, 269, 270, 270, 271,
695 271, 273, 274, 272, 272, 272, 272, 272, 272, 272,
696 272, 272, 272, 272, 272, 272, 272, 272, 272, 275,
697 275, 276, 276, 277, 277, 277, 277, 277, 277, 277,
698 277, 277, 277, 277, 277, 277, 278, 278, 279, 279,
699 280, 280, 281, 281, 282, 282, 283, 283, 284, 284,
700 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
701 285, 285, 285, 285, 285, 285, 285, 285, 285, 285,
702 285, 285, 286, 286, 287, 287, 288, 288, 289, 289,
703 290, 290, 291, 292, 292, 294, 295, 293, 296, 296,
704 297, 297, 299, 298, 298, 300, 300, 301, 301, 302,
705 302, 303, 303, 304, 304, 305, 305, 305, 305, 306,
706 306, 307, 307, 308, 308, 308, 308, 308, 308, 308,
707 308, 308, 308, 308, 309, 309, 309, 309, 309, 309,
708 309, 309, 309, 309, 309, 309, 309, 309, 310, 311,
709 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
710 321, 322, 322, 323, 323, 324, 324, 324, 325, 325,
711 326, 326, 326, 327, 328, 329, 329, 330, 330, 331,
712 331, 332, 332, 333, 333, 334, 334, 335, 335, 336,
713 337, 338, 339, 340, 341, 342, 343, 345, 344, 346,
717 static const short yyr2[] = { 0,
718 3, 0, 6, 0, 2, 5, 5, 3, 3, 3,
719 3, 0, 3, 1, 3, 1, 1, 4, 4, 4,
720 3, 2, 3, 4, 2, 0, 1, 1, 3, 1,
721 1, 4, 4, 4, 3, 4, 3, 0, 2, 0,
722 1, 3, 3, 3, 0, 3, 0, 4, 0, 4,
723 5, 5, 0, 2, 0, 2, 3, 0, 1, 6,
724 1, 2, 1, 2, 1, 1, 1, 2, 3, 3,
725 0, 1, 2, 3, 1, 5, 1, 3, 1, 2,
726 1, 3, 5, 1, 3, 6, 1, 3, 1, 1,
727 0, 1, 1, 3, 3, 4, 4, 4, 6, 4,
728 3, 5, 6, 8, 6, 5, 1, 1, 3, 3,
729 0, 2, 5, 0, 2, 4, 1, 3, 1, 3,
730 3, 2, 4, 6, 6, 6, 1, 1, 1, 1,
731 3, 3, 3, 5, 6, 5, 2, 3, 3, 1,
732 1, 8, 8, 8, 8, 1, 0, 2, 5, 2,
733 3, 1, 3, 1, 1, 1, 2, 1, 3, 2,
734 3, 1, 3, 1, 1, 3, 1, 1, 0, 2,
735 0, 2, 0, 2, 1, 3, 0, 4, 2, 4,
736 2, 3, 1, 3, 3, 3, 0, 2, 1, 3,
737 5, 7, 0, 5, 5, 3, 5, 3, 0, 2,
738 1, 3, 0, 4, 0, 4, 0, 4, 0, 3,
739 0, 3, 0, 3, 1, 3, 1, 3, 1, 1,
740 1, 1, 1, 1, 4, 6, 4, 8, 6, 5,
741 3, 0, 4, 4, 6, 4, 0, 4, 4, 1,
742 3, 3, 2, 3, 5, 2, 5, 1, 1, 3,
743 6, 4, 5, 5, 5, 4, 4, 3, 3, 1,
744 0, 0, 1, 1, 3, 1, 3, 1, 3, 1,
745 1, 1, 1, 1, 0, 6, 4, 5, 5, 3,
746 7, 5, 8, 6, 6, 4, 6, 4, 2, 1,
747 3, 1, 3, 4, 1, 2, 2, 1, 1, 3,
748 2, 1, 5, 1, 1, 2, 3, 3, 6, 1,
749 1, 2, 2, 1, 3, 2, 4, 1, 3, 3,
750 3, 2, 1, 1, 3, 3, 1, 1, 3, 0,
751 1, 3, 4, 4, 1, 3, 1, 1, 3, 1,
752 3, 0, 3, 2, 1, 2, 3, 4, 4, 4,
753 0, 2, 2, 1, 5, 3, 1, 1, 3, 2,
754 1, 0, 0, 6, 6, 6, 6, 6, 6, 3,
755 2, 3, 2, 3, 2, 3, 2, 3, 1, 2,
756 1, 2, 1, 1, 1, 1, 3, 4, 4, 1,
757 1, 1, 1, 3, 1, 2, 1, 3, 1, 3,
758 2, 1, 2, 1, 2, 1, 2, 1, 1, 1,
759 3, 1, 1, 2, 5, 3, 5, 3, 2, 2,
760 1, 1, 3, 1, 1, 2, 5, 3, 5, 3,
761 2, 2, 5, 2, 1, 3, 2, 3, 1, 3,
762 7, 5, 5, 1, 3, 0, 0, 4, 2, 0,
763 1, 3, 0, 3, 0, 2, 3, 4, 3, 0,
764 1, 3, 1, 1, 3, 1, 1, 2, 2, 1,
765 2, 1, 1, 1, 3, 1, 1, 2, 5, 3,
766 5, 3, 2, 2, 1, 1, 1, 1, 1, 1,
767 1, 1, 1, 1, 3, 2, 3, 2, 1, 1,
768 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
769 1, 1, 1, 1, 3, 1, 1, 3, 1, 3,
770 1, 1, 1, 1, 1, 1, 3, 1, 3, 1,
771 3, 1, 3, 1, 1, 3, 3, 1, 2, 1,
772 1, 1, 1, 2, 1, 0, 1, 0, 2, 1,
776 static const short yydefact[] = { 169,
777 171, 0, 4, 0, 0, 170, 0, 506, 1, 546,
778 0, 172, 543, 193, 181, 5, 173, 173, 545, 12,
779 0, 0, 199, 0, 175, 199, 548, 544, 0, 2,
780 546, 177, 547, 213, 209, 211, 261, 0, 201, 11,
781 174, 9, 261, 10, 0, 8, 526, 542, 0, 0,
782 14, 16, 17, 0, 194, 187, 187, 0, 207, 0,
783 203, 0, 205, 0, 528, 505, 485, 486, 487, 488,
784 489, 490, 491, 492, 493, 494, 508, 507, 425, 509,
785 501, 500, 504, 502, 503, 0, 0, 0, 0, 0,
786 0, 0, 0, 0, 217, 219, 220, 221, 222, 223,
787 224, 0, 260, 342, 397, 406, 408, 424, 0, 0,
788 0, 0, 0, 0, 0, 0, 0, 422, 421, 532,
789 200, 176, 548, 551, 550, 549, 521, 524, 525, 0,
790 523, 522, 13, 0, 0, 22, 546, 499, 199, 0,
791 189, 0, 199, 548, 178, 26, 0, 519, 0, 214,
792 215, 513, 512, 514, 0, 210, 0, 212, 0, 0,
793 0, 0, 0, 262, 0, 0, 0, 496, 0, 498,
794 261, 6, 0, 0, 0, 0, 0, 413, 0, 407,
795 412, 410, 409, 530, 0, 327, 0, 0, 311, 0,
796 311, 0, 0, 541, 540, 0, 0, 0, 310, 246,
797 0, 248, 295, 299, 304, 305, 232, 0, 0, 405,
798 404, 0, 524, 426, 0, 399, 402, 0, 410, 0,
799 0, 431, 0, 477, 0, 0, 463, 464, 467, 466,
800 476, 474, 470, 432, 473, 472, 0, 0, 202, 7,
801 527, 15, 507, 21, 0, 0, 0, 337, 340, 3,
802 275, 188, 196, 0, 275, 198, 0, 0, 27, 179,
803 208, 0, 0, 0, 204, 206, 495, 0, 0, 0,
804 263, 0, 0, 259, 258, 497, 218, 0, 0, 49,
805 292, 302, 305, 0, 0, 343, 351, 345, 0, 0,
806 398, 419, 0, 0, 414, 0, 410, 420, 0, 328,
807 0, 0, 0, 312, 538, 0, 538, 0, 0, 0,
808 237, 240, 289, 0, 0, 306, 0, 0, 301, 298,
809 305, 546, 231, 0, 403, 533, 401, 428, 0, 0,
810 529, 0, 468, 469, 483, 0, 524, 478, 0, 474,
811 484, 430, 0, 0, 0, 471, 0, 336, 338, 423,
812 18, 20, 19, 0, 0, 268, 274, 270, 271, 272,
813 273, 0, 0, 0, 0, 0, 190, 0, 548, 25,
814 0, 28, 30, 31, 0, 0, 515, 520, 216, 0,
815 0, 0, 264, 266, 256, 257, 0, 158, 0, 0,
816 0, 252, 0, 296, 0, 0, 0, 395, 0, 362,
817 546, 0, 0, 0, 0, 0, 0, 0, 352, 358,
818 361, 379, 381, 390, 391, 392, 393, 386, 384, 385,
819 346, 357, 546, 344, 0, 418, 531, 416, 0, 0,
820 411, 326, 0, 0, 0, 227, 314, 318, 0, 539,
821 225, 0, 541, 0, 243, 0, 0, 0, 305, 546,
822 236, 0, 308, 307, 0, 300, 297, 261, 261, 232,
823 0, 400, 0, 482, 480, 0, 0, 462, 465, 475,
824 0, 0, 341, 275, 195, 0, 38, 0, 0, 0,
825 0, 47, 0, 0, 197, 23, 0, 0, 0, 0,
826 180, 255, 254, 0, 253, 0, 0, 0, 0, 49,
827 61, 59, 0, 0, 0, 293, 360, 437, 439, 0,
828 516, 519, 524, 434, 0, 0, 357, 0, 511, 510,
829 517, 396, 0, 261, 261, 0, 534, 535, 371, 373,
830 375, 377, 0, 0, 0, 380, 0, 0, 261, 261,
831 347, 0, 0, 329, 0, 0, 0, 0, 316, 0,
832 237, 244, 0, 0, 241, 242, 313, 330, 330, 0,
833 0, 290, 0, 249, 548, 230, 429, 427, 0, 0,
834 339, 269, 58, 0, 40, 280, 0, 0, 0, 53,
835 0, 232, 0, 191, 29, 35, 0, 0, 0, 24,
836 0, 0, 183, 0, 0, 265, 267, 0, 159, 294,
837 251, 62, 0, 63, 0, 0, 0, 446, 460, 438,
838 0, 387, 0, 0, 0, 363, 354, 0, 548, 546,
839 370, 383, 372, 374, 376, 378, 0, 359, 394, 356,
840 0, 548, 348, 417, 415, 319, 320, 315, 0, 229,
841 323, 226, 235, 536, 537, 0, 0, 0, 0, 331,
842 335, 422, 548, 0, 247, 0, 261, 233, 234, 481,
843 479, 0, 0, 277, 38, 0, 0, 40, 38, 45,
844 0, 55, 288, 77, 0, 286, 47, 0, 32, 34,
845 33, 182, 0, 0, 0, 303, 48, 64, 65, 66,
846 0, 439, 440, 0, 444, 0, 461, 0, 518, 435,
847 0, 388, 389, 0, 353, 0, 0, 455, 455, 382,
848 0, 0, 349, 350, 317, 322, 0, 324, 0, 245,
849 262, 0, 0, 238, 239, 309, 291, 250, 58, 0,
850 0, 282, 0, 39, 41, 37, 0, 0, 279, 0,
851 278, 53, 0, 0, 0, 46, 232, 192, 184, 185,
852 186, 67, 0, 0, 0, 460, 443, 446, 447, 442,
853 0, 433, 0, 0, 0, 0, 451, 453, 548, 0,
854 355, 321, 0, 228, 0, 0, 332, 276, 57, 284,
855 89, 0, 87, 90, 0, 36, 38, 0, 287, 54,
856 0, 78, 285, 71, 68, 72, 0, 0, 0, 439,
857 0, 445, 450, 436, 364, 365, 366, 455, 368, 0,
858 369, 367, 325, 333, 334, 43, 0, 42, 0, 281,
859 44, 50, 0, 0, 0, 93, 0, 0, 69, 75,
860 0, 0, 73, 79, 0, 60, 441, 0, 448, 452,
861 0, 0, 454, 351, 88, 283, 0, 56, 84, 52,
862 0, 51, 0, 0, 0, 147, 0, 0, 0, 0,
863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
864 0, 0, 0, 74, 108, 107, 140, 141, 0, 80,
865 81, 449, 351, 0, 456, 0, 0, 94, 95, 70,
866 0, 0, 0, 0, 0, 156, 0, 0, 0, 146,
867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
868 0, 137, 0, 0, 0, 457, 459, 0, 85, 0,
869 0, 0, 148, 0, 0, 0, 0, 0, 0, 0,
870 0, 157, 0, 0, 0, 0, 0, 0, 0, 0,
871 0, 0, 101, 0, 0, 119, 0, 131, 132, 133,
872 0, 0, 0, 138, 139, 0, 82, 458, 71, 76,
873 0, 96, 0, 0, 129, 130, 122, 0, 0, 0,
874 0, 0, 97, 0, 160, 0, 162, 164, 98, 0,
875 0, 0, 0, 100, 150, 155, 0, 152, 154, 0,
876 0, 0, 0, 0, 0, 167, 168, 0, 165, 71,
877 91, 0, 0, 111, 114, 0, 0, 0, 0, 0,
878 106, 0, 161, 0, 0, 0, 0, 0, 151, 0,
879 102, 0, 120, 121, 134, 0, 136, 0, 83, 86,
880 92, 0, 0, 0, 0, 103, 123, 0, 0, 0,
881 99, 163, 0, 0, 0, 0, 153, 105, 135, 166,
882 149, 0, 0, 117, 112, 109, 147, 0, 115, 110,
883 0, 0, 0, 0, 0, 0, 0, 0, 104, 0,
884 0, 0, 127, 128, 124, 125, 126, 0, 0, 0,
885 0, 0, 118, 0, 142, 143, 144, 145, 0, 116,
889 static const short yydefgoto[] = { 1092,
890 9, 54, 10, 16, 30, 50, 51, 259, 260, 371,
891 372, 576, 667, 734, 735, 741, 582, 392, 673, 744,
892 824, 664, 504, 505, 606, 691, 754, 829, 799, 832,
893 675, 836, 880, 881, 848, 849, 782, 783, 1030, 825,
894 826, 874, 1006, 1034, 1055, 1035, 1059, 1056, 945, 946,
895 931, 1075, 967, 875, 902, 892, 923, 943, 987, 988,
896 897, 389, 936, 976, 997, 998, 999, 1, 2, 3,
897 4, 23, 24, 25, 58, 145, 6, 491, 592, 593,
898 139, 140, 141, 7, 21, 55, 37, 38, 39, 155,
899 157, 147, 62, 64, 60, 150, 94, 95, 96, 97,
900 98, 323, 99, 451, 311, 100, 200, 563, 564, 272,
901 382, 383, 355, 356, 357, 358, 359, 360, 361, 186,
902 561, 978, 281, 319, 202, 203, 282, 187, 447, 436,
903 437, 640, 717, 188, 301, 649, 650, 102, 348, 247,
904 103, 174, 286, 287, 288, 424, 289, 616, 697, 422,
905 410, 411, 523, 704, 412, 621, 413, 104, 215, 216,
906 217, 105, 106, 211, 107, 414, 701, 415, 693, 416,
907 417, 694, 695, 696, 803, 839, 766, 767, 810, 843,
908 844, 698, 226, 227, 228, 229, 617, 230, 418, 142,
909 109, 110, 111, 112, 113, 114, 11, 162, 116, 117,
910 518, 151, 152, 519, 153, 154, 131, 132, 419, 118,
911 420, 119, 529, 448, 304, 205, 641, 184, 14, 17,
912 18, 19, 40, 44, 45, 126
915 static const short yypact[] = {-32768,
916 -32768, 58, 15, 58, 140,-32768, 197,-32768,-32768,-32768,
917 140,-32768,-32768,-32768,-32768,-32768, 220, 220, 326, 342,
918 405, 140, 424, 358,-32768, 649, 400,-32768, 415,-32768,
919 -32768,-32768,-32768, 446, 480, 484, 1796, 487,-32768,-32768,
920 220,-32768, 1796,-32768, 433,-32768,-32768,-32768, 59, 579,
921 -32768,-32768, 409, 482,-32768, 486, 486, 58,-32768, 116,
922 -32768, 116,-32768, 116,-32768,-32768,-32768,-32768,-32768,-32768,
923 -32768,-32768,-32768,-32768,-32768, 452,-32768,-32768,-32768,-32768,
924 -32768,-32768,-32768,-32768,-32768, 272, 174, 174, 545, 174,
925 546, 576, 589, 577,-32768,-32768,-32768,-32768,-32768,-32768,
926 -32768, 578,-32768, 116,-32768, 1370,-32768,-32768, 291, 545,
927 291, 815, 291, 1370, 1086, 2359, 2549, 471,-32768,-32768,
928 649,-32768, 603,-32768,-32768,-32768,-32768,-32768,-32768, 614,
929 -32768,-32768,-32768, 415, 700,-32768,-32768,-32768, 649, 597,
930 -32768, 140, 649, 643,-32768, 199, 116,-32768, 656, 658,
931 -32768,-32768,-32768,-32768, 116, 658, 116, 658, 678, 545,
932 711, 59, 685, 732, 174, 644, 659,-32768, 759,-32768,
933 1796,-32768, 782, 648, 2472, 2402, 1152,-32768, 2549,-32768,
934 -32768, 728,-32768,-32768, 545,-32768, 757, 765, 787, 775,
935 787, 777, 333, 787,-32768, 799, 782, 672,-32768,-32768,
936 793,-32768,-32768, 800,-32768, 956, 500, 801, 787, 1370,
937 -32768, 811, 1370,-32768, 336,-32768, 1370, 830, -8, 733,
938 2437,-32768, 1550,-32768, 2549, 825, 359,-32768, 2549,-32768,
939 -32768, 824,-32768,-32768,-32768,-32768, 255, 2549,-32768,-32768,
940 -32768,-32768, 860,-32768, 844, 847, 719, 848,-32768,-32768,
941 511, 486,-32768, 856, 511,-32768, 497, 866,-32768, 835,
942 658, 870, 876, 116, 658, 658,-32768, 956, 333, 782,
943 -32768, 818, 827,-32768,-32768,-32768,-32768, 672, 814, 149,
944 883,-32768, 956, 1977, 1977,-32768, 879,-32768, 894, 1370,
945 -32768,-32768, 907, 906,-32768, 442, 44,-32768, 2549,-32768,
946 725, 1015, 545, 787, 908, 782,-32768, 545, 956, 944,
947 897,-32768,-32768, 937, 921,-32768, 727, 782, 918,-32768,
948 -32768,-32768,-32768, 545,-32768,-32768, 1370,-32768, 2514, 2472,
949 -32768, 943,-32768,-32768,-32768, 929, 733,-32768, 388, 48,
950 -32768,-32768, 2514, 949, 2514,-32768, 2549, 928,-32768,-32768,
951 -32768,-32768,-32768, 324, 613,-32768,-32768,-32768,-32768,-32768,
952 -32768, 922, 291, 545, 291, 291,-32768, 415, 942,-32768,
953 729,-32768,-32768, 946, 415, 947,-32768,-32768,-32768, 979,
954 880, 5,-32768, 945,-32768,-32768, 745,-32768, 159, 782,
955 544,-32768, 782, 956, 2106, 1852, 1491,-32768, 2584,-32768,
956 -32768, 1977, 769, 769, 962, 964, 973, 1977, 116,-32768,
957 -32768, 2584,-32768,-32768,-32768,-32768,-32768,-32768, 952,-32768,
958 -32768, 362,-32768,-32768, 1977,-32768,-32768,-32768, 2514, 965,
959 -32768,-32768, 545, 663, 374, 216,-32768, 303, 955,-32768,
960 -32768, 333,-32768, 967,-32768, 623, 969, 970, 956,-32768,
961 -32768, 782,-32768,-32768, 782,-32768,-32768, 2168, 2168, 951,
962 971,-32768, 974,-32768,-32768, 2514, 990,-32768,-32768,-32768,
963 255, 860,-32768, 511,-32768, 782, 66, 976, 972, 977,
964 333, 189, 980, 751,-32768,-32768, 415, 820, 758, 426,
965 -32768,-32768,-32768, 782,-32768, 174, 782, 910, 782, 932,
966 -32768,-32768, 1002, 544, 477,-32768,-32768,-32768, 536, 991,
967 992, 906, 2106,-32768, 789, 805, 362, 1977,-32768,-32768,
968 999,-32768, 2549, 2168, 2168, 982,-32768,-32768, 2584, 2584,
969 2584, 2584, 1977, 954, 1977,-32768, 2584, 782, 2168, 2168,
970 997, 1004, 1006,-32768, 1007, 956, 1015, 403, 867, 1015,
971 897,-32768, 956, 956,-32768,-32768, 956, 2324, 2324, 1008,
972 821,-32768, 652,-32768, 1013,-32768,-32768,-32768, 1011, 1016,
973 -32768,-32768, 198, 1015, 688,-32768, 545, 782, 545, 978,
974 544, 951, 545, 983,-32768,-32768, 1019, 1023, 828,-32768,
975 237, 833,-32768, 985, 986,-32768,-32768, 857,-32768,-32768,
976 -32768,-32768, 987,-32768, 1032, 207, 1977,-32768, 1977,-32768,
977 1022,-32768, 1977, 1916, 521,-32768, 2549, 652, 1013,-32768,
978 2584,-32768, 2584, 2584, 2584,-32768, 1977,-32768,-32768, 1026,
979 652, 1013,-32768,-32768,-32768, 956,-32768,-32768, 398,-32768,
980 -32768, 217,-32768, 1033,-32768, 1038, 174, 174, 674,-32768,
981 -32768, 1031, 1048, 1053, 1046, 782, 2168,-32768,-32768,-32768,
982 -32768, 782, 544,-32768, 106, 1065, 1035, 27, 86, 1020,
983 333, 1039,-32768,-32768, 49,-32768, 1037, 947,-32768,-32768,
984 -32768,-32768, 426, 255, 324,-32768,-32768,-32768,-32768,-32768,
985 13, 538,-32768, 134,-32768, 1977,-32768, 1083,-32768, 1081,
986 1087,-32768,-32768, 1091,-32768, 1074, 1082, 2514, 2514,-32768,
987 1061, 782,-32768,-32768, 956,-32768, 862,-32768, 403,-32768,
988 732, 174, 2324,-32768,-32768,-32768,-32768,-32768, 1057, 1059,
989 403,-32768, 705, 1100,-32768,-32768, 1060, 1015,-32768, 1058,
990 -32768, 978, 140, 544, 544,-32768, 951,-32768,-32768,-32768,
991 -32768,-32768, 36, 169, 1977, 1977,-32768,-32768,-32768,-32768,
992 1977,-32768, 1977, 1977, 1977, 686,-32768, 374, 1110, 1977,
993 -32768,-32768, 545,-32768, 1047, 1049,-32768,-32768,-32768,-32768,
994 -32768, 470,-32768,-32768, 1065,-32768, 261, 1064,-32768,-32768,
995 330,-32768,-32768, 1117,-32768,-32768, 788, 174, 547, 1111,
996 1115,-32768, 1105,-32768,-32768,-32768,-32768, 2514,-32768, 888,
997 -32768,-32768,-32768,-32768,-32768,-32768, 705,-32768, 403,-32768,
998 -32768,-32768, 1118, 1072, 50,-32768, 1113, 544,-32768,-32768,
999 1136, 1629,-32768,-32768, 1125,-32768,-32768, 1977,-32768,-32768,
1000 1977, 1120,-32768, 879,-32768,-32768, 705, 1123,-32768,-32768,
1001 255,-32768, 544, 1131, 1143,-32768, 1134, 1629, 1135, 1151,
1002 39, 407, 1629, 1629, 1153, 545, 545, 545, 545, 545,
1003 474, 474, 140,-32768,-32768,-32768,-32768,-32768, 705, 1144,
1004 -32768,-32768, 879, 1977,-32768, 599, 1118,-32768,-32768,-32768,
1005 1168, 227, 1149, 1132, 515,-32768, 99, 140, 1159,-32768,
1006 533, 1159, 1160, 1165, 1149, 545, 255, 255, 1164, 255,
1007 1162,-32768, 426, 615, 1125,-32768, 997, 1183,-32768, 1184,
1008 1190, 1629,-32768, 1169, 1180, 11, 1189, 1191, 474, 474,
1009 1187,-32768, 1629, 324, 563, 1160, 769, 769, 1069, 1069,
1010 1160, 2185,-32768, 782, 709,-32768, 1173,-32768,-32768,-32768,
1011 782, 1185, 756,-32768,-32768, 1200,-32768,-32768, 1117,-32768,
1012 1179,-32768, 1629, 823,-32768,-32768,-32768, 1202, 1203, 1204,
1013 1205, 1629,-32768, 1159,-32768, 635,-32768,-32768,-32768, 1199,
1014 1211, 1212, 1213,-32768,-32768,-32768, 642,-32768,-32768, 1216,
1015 1192, 1149, 1629, 1215, 782,-32768,-32768, 660,-32768, 1117,
1016 255, 782, 1217,-32768,-32768, 1218, 11, 1227, 1230, 1231,
1017 -32768, 1160,-32768, 782, 1159, 1159, 1159, 1159,-32768, 2215,
1018 -32768, 1629,-32768,-32768,-32768, 1219,-32768, 756,-32768,-32768,
1019 1221, 1223, 1220, 710, 1210,-32768,-32768, 11, 11, 11,
1020 -32768,-32768, 782, 782, 782, 782,-32768,-32768,-32768,-32768,
1021 -32768, 1629, 88,-32768,-32768,-32768,-32768, 1222,-32768,-32768,
1022 1224, 3, 3, 3, 1238, 1239, 1240, 1245,-32768, 380,
1023 1629, 1629,-32768,-32768,-32768,-32768,-32768, 1241, 1242, 1243,
1024 1244, 1629,-32768, 1249,-32768,-32768,-32768,-32768, 1251,-32768,
1025 -32768, 1265, 1273,-32768
1028 static const short yypgoto[] = {-32768,
1029 -32768,-32768,-32768, 1106,-32768,-32768, 1141,-32768,-32768, 95,
1030 791, -604, 611,-32768, 495,-32768, 604, 783, 540,-32768,
1031 -32768, 555, -477,-32768,-32768,-32768,-32768, -902,-32768,-32768,
1032 -32768,-32768,-32768, 370,-32768, 399, -746, 472,-32768, 286,
1033 437, -95,-32768,-32768,-32768,-32768,-32768, 258,-32768, 302,
1034 -32768, -135, -527, -427,-32768, 238, -732, -652,-32768, 276,
1035 -32768,-32768, -705,-32768, -401,-32768, 269,-32768,-32768,-32768,
1036 -32768, 1285, 1286, 1267,-32768,-32768, 68, 634,-32768, 630,
1037 1260, 1266, 1070,-32768,-32768,-32768, 52,-32768, 1207,-32768,
1038 -32768,-32768,-32768,-32768,-32768, 235, 1281, 1154,-32768,-32768,
1039 -32768, -442,-32768, 781, -243,-32768,-32768, -53, -22, 612,
1040 -32768, 840, 1084, 863,-32768,-32768,-32768,-32768,-32768, -88,
1041 839, -59, -90, -245,-32768, 353, 1226, -78,-32768, -505,
1042 794, -657,-32768, -72,-32768, 784, 617, -100,-32768, 854,
1043 -508,-32768,-32768,-32768, 803, -662, -804, 730, -44, -255,
1044 -32768, -355,-32768,-32768,-32768, 208, -159,-32768, -117,-32768,
1045 -60,-32768,-32768, -51,-32768,-32768, 584,-32768, 950,-32768,
1046 -32768,-32768, 590,-32768,-32768,-32768, 641, 543,-32768,-32768,
1047 436, 598, -142, -199, 1010,-32768, -73, -97, -7,-32768,
1048 -218, -209, -203,-32768, -202,-32768,-32768, -34,-32768,-32768,
1049 -32768, 120,-32768,-32768, -208, -47,-32768, 960, -29, -76,
1050 1139,-32768, -400, 806,-32768, 43, -103, 752, -6, -18,
1051 -14,-32768, -23, -20,-32768,-32768
1058 static const short yytable[] = { 52,
1059 42, 130, 115, 530, 20, 842, 46, 193, 115, 163,
1060 164, 165, 56, 167, 101, 32, 57, 566, 345, 235,
1061 101, 201, 380, 339, 207, 381, 603, 299, 409, 108,
1062 494, 190, 363, 293, 246, 108, 363, 394, 192, 507,
1063 208, 364, 48, 234, 642, 364, 794, 365, 366, 651,
1064 651, 365, 366, 210, 180, 547, 1001, 291, 248, 296,
1065 732, 774, 472, 127, 739, 128, 8, 218, 665, 668,
1066 172, 12, 1073, 780, 745, 851, 182, 43, 336, 299,
1067 965, 235, 752, 347, 182, 219, 232, 232, 273, 753,
1068 961, 495, 127, 294, 128, 574, 300, 1029, 181, 666,
1069 886, 932, 240, 674, 52, 298, 181, 181, 231, 231,
1070 332, 5, 842, 280, 218, 738, 253, 746, 852, 1074,
1071 127, 148, 128, 256, 795, 146, 933, 235, 966, 130,
1072 345, 235, 914, 575, 547, 254, 115, 315, 317, 676,
1073 235, 517, 149, 13, 898, 182, 232, 297, 101, 232,
1074 362, 341, 327, 575, 362, 346, 757, 507, 325, 758,
1075 924, 846, 430, 108, 350, 325, 467, 181, 231, 181,
1076 731, 231, 947, 575, 248, 130, 65, 129, 248, 390,
1077 182, 885, 820, 182, 498, 730, 461, 182, 520, 499,
1078 251, 232, 549, 340, 255, 232, 941, 78, 551, 232,
1079 468, 235, 181, 557, 442, 181, 129, 349, 232, 181,
1080 384, 435, 462, 231, 651, 231, 391, 231, 387, -327,
1081 916, 231, 257, 175, 439, 431, 546, 373, 662, 327,
1082 231, 305, 787, 307, 129, 460, 313, 580, 796, 522,
1083 421, 127, 294, 128, 547, 547, 441, 797, 798, 235,
1084 921, 313, 536, 258, 922, 363, 581, 47, 456, 947,
1085 182, 481, 615, 15, 364, 663, 791, 792, 1012, 232,
1086 365, 366, 22, 470, 65, 325, 689, 482, 49, 628,
1087 548, 719, 181, 979, 477, 479, 542, 690, 984, 547,
1088 478, 231, 480, 483, 48, 78, 156, 182, 158, 232,
1089 182, 1058, 1058, 458, 793, 195, 48, 459, -305, 1043,
1090 1044, 1045, 1046, 232, 185, 232, 160, 232, 161, 181,
1091 196, 231, 181, 569, 197, 819, 278, 48, 575, -305,
1092 500, 475, 47, 506, 330, 231, 48, 231, 373, 231,
1093 127, 148, 128, 28, 544, 373, 440, 472, 485, 130,
1094 854, 509, 516, 49, 309, 129, 310, 526, 628, 1041,
1095 328, 329, 149, 534, 148, 29, 127, 148, 128, 622,
1096 622, 622, 622, 362, 387, 889, 33, 629, 41, 148,
1097 541, 261, 524, 379, 343, 344, 525, 588, 149, 265,
1098 715, 266, 560, 148, 538, 562, 199, 248, 822, 232,
1099 344, 48, 823, 921, 539, 565, 48, 1082, 540, 900,
1100 330, 248, 465, 466, 344, 330, 573, 47, 48, 597,
1101 41, 231, 716, 115, 115, 235, 639, 742, 47, 48,
1102 901, 558, 135, 124, 384, 559, 232, 562, 49, 600,
1103 136, 571, 33, 911, 912, 31, 127, 148, 128, 591,
1104 108, 108, 125, 59, 129, 637, 435, 373, 231, 435,
1105 594, 710, 484, 710, 710, 710, 428, 429, 149, 489,
1106 618, 619, 34, 35, 36, 671, 47, 48, 630, 1037,
1107 129, 652, 652, 435, 435, 631, 632, 61, 626, 115,
1108 115, 63, 816, 232, 677, 817, 237, 591, 669, 47,
1109 48, 970, 971, -337, 115, 115, 238, 121, 768, 768,
1110 1062, 1063, 1064, 65, 986, 231, 108, 108, 670, 235,
1111 49, 370, 137, 115, 115, 127, 148, 128, 535, 159,
1112 -327, 108, 108, 977, 78, 718, 980, 981, 138, 658,
1113 322, 535, 990, 130, 659, 703, 604, 149, 48, 994,
1114 108, 108, 605, 168, 81, 82, 83, 84, 320, 345,
1115 129, 607, 692, 755, 608, 195, 48, 609, 700, 756,
1116 721, 722, 866, 867, 868, 869, 870, 871, 872, 873,
1117 196, 330, 711, 169, 197, 975, 278, 232, 937, 938,
1118 939, 940, 986, 1026, 706, 33, 727, 171, 707, 170,
1119 1032, 708, 729, 133, 134, 709, 1057, 713, 768, 231,
1120 173, 714, 1042, 501, 502, 33, 834, 252, 503, 835,
1121 320, 918, 115, 171, 817, 724, 926, 927, 928, 929,
1122 930, 33, 725, 474, 728, 320, 614, 956, 241, 129,
1123 817, 1065, 1066, 1067, 1068, 776, 652, 435, 553, 108,
1124 554, 759, 771, 594, 750, 279, 199, 1013, 262, 263,
1125 1014, 444, 446, 252, 1019, 195, 48, 1020, 545, 813,
1126 33, 457, 657, 784, 195, 48, 284, 285, 232, 232,
1127 196, 267, 1027, 264, 197, 1028, 278, 316, 115, 196,
1128 195, 48, 33, 197, 723, 278, 316, 34, 35, 36,
1129 231, 231, 65, 48, 33, 196, 808, 195, 48, 197,
1130 800, 434, 47, 48, 269, 108, 700, 270, 805, 806,
1131 807, 833, 196, 243, 244, 812, 197, 991, 278, 992,
1132 274, 245, 457, 1053, 535, 271, 790, 623, 624, 625,
1133 333, 334, 809, 353, 354, 275, 457, 535, 811, 432,
1134 433, 454, 455, 486, 487, 279, 199, 784, 195, 48,
1135 666, 827, 894, 299, 279, 199, 276, 903, 904, 454,
1136 497, 527, 528, 196, 781, 584, 487, 197, 232, 278,
1137 53, 199, 590, 487, 195, 48, 302, 784, 120, 195,
1138 320, 611, 263, 882, 120, 303, 883, 279, 199, 196,
1139 231, 320, 877, 197, 306, 278, 1054, 308, 866, 867,
1140 868, 869, 870, 871, 872, 873, 314, 195, 48, 784,
1141 318, 827, 65, 48, 876, 996, 962, -302, 877, 612,
1142 613, 324, 196, 877, 877, 326, 197, 973, 198, 917,
1143 166, 877, 877, 243, 586, 655, 656, 342, 279, 199,
1144 876, 587, 681, 354, 331, 876, 876, 682, 683, 347,
1145 189, 191, 194, 206, 209, 294, 913, 1003, 351, 195,
1146 48, 352, -296, 237, 279, 199, 1011, 949, 950, 368,
1147 952, 686, 656, 954, 196, 53, 772, 773, 197, 375,
1148 278, 934, 877, -296, 830, 831, 377, 1024, 376, 877,
1149 877, 457, 378, 877, 385, 644, 646, 388, 199, 457,
1150 393, 268, 877, 386, 876, 841, 284, 1004, 1005, 423,
1151 195, 48, 120, 425, 283, 876, 1048, 1076, 1077, 426,
1152 427, 982, 983, 877, 989, 196, 209, 450, -289, 197,
1153 452, 278, 877, 453, 312, -296, 195, 48, 283, 283,
1154 463, 464, 263, 471, 476, 876, 1069, 321, 195, 48,
1155 199, 196, 474, 877, 876, 197, 493, 278, 445, 488,
1156 490, 827, 543, 196, 496, 1083, 1084, 197, 531, 278,
1157 532, 195, 48, 533, 550, 876, 1089, 537, 320, 552,
1158 877, 322, 877, 555, 556, 567, 196, 570, 568, 391,
1159 197, 578, 278, 599, 877, 130, 577, 579, 374, 602,
1160 583, 199, 989, 610, 876, 627, -521, 195, 48, 321,
1161 312, 283, 877, -522, 620, 284, 654, 1061, 634, 283,
1162 635, 636, 196, 657, 321, 660, 197, 199, 434, 688,
1163 661, 877, 877, 679, 876, 672, 678, 680, 699, 199,
1164 684, 685, 877, 438, 191, 687, 712, 283, 553, 443,
1165 321, 449, 720, 876, 876, 492, 238, 457, 723, 283,
1166 321, 726, 199, -303, 876, 209, 67, 68, 69, 70,
1167 71, 72, 73, 74, 75, 76, 733, 740, 47, 48,
1168 127, 212, 213, 67, 68, 69, 70, 71, 72, 73,
1169 74, 75, 76, 736, 581, 760, 761, 176, 199, 177,
1170 214, 762, 743, 764, 189, 191, 194, 209, 763, 374,
1171 178, 765, 179, 770, 663, 785, 374, 779, 786, 788,
1172 808, 321, 821, 814, 828, 815, 755, 837, 838, 847,
1173 850, 283, 853, 855, 283, 321, 879, 884, 887, 890,
1174 891, 893, 895, 896, 47, 48, 127, 294, 213, 67,
1175 68, 69, 70, 71, 72, 73, 74, 75, 76, 915,
1176 905, 920, 921, 176, 925, 177, 295, 91, 92, 93,
1177 935, 942, 944, 953, 209, 283, 178, 951, 179, 321,
1178 959, 960, 961, 312, 91, 92, 93, 964, 963, 968,
1179 321, 969, 993, 283, 129, 972, 283, 1000, 995, 120,
1180 120, 1002, 1007, 1008, 1009, 1010, 1015, 67, 68, 69,
1181 70, 71, 72, 73, 74, 75, 76, 283, 1016, 1017,
1182 1018, 1022, 312, 921, 1021, 1033, 1036, 1038, 374, 1025,
1183 1039, 1040, 250, 1049, 183, 283, 851, 1051, 283, 1071,
1184 283, 1072, 183, 183, 233, 236, 1078, 1079, 1080, 1052,
1185 91, 92, 93, 1081, 1093, 1085, 1086, 1087, 1088, 1090,
1186 129, 1091, 1094, 249, 242, 120, 120, 585, 737, 818,
1187 747, 789, 601, 778, 957, 919, 1031, 888, 845, 283,
1188 120, 120, 1060, 1023, 1070, 1047, 1050, 283, 438, 443,
1189 321, 438, 26, 27, 321, 321, 1054, 122, 321, 120,
1190 120, 748, 749, 183, 233, 183, 143, 236, 91, 92,
1191 93, 367, 144, 123, 277, 438, 438, 239, 191, 283,
1192 443, 643, 775, 596, 209, 598, 572, 204, 369, 777,
1193 638, 589, 653, 633, 804, 510, 705, 802, 183, 769,
1194 840, 183, 958, 801, 469, 183, 521, 0, 645, 233,
1195 0, 233, 0, 236, 0, 0, 0, 236, 0, 0,
1196 0, 0, 47, 48, 0, 0, 236, 67, 68, 69,
1197 70, 71, 72, 73, 74, 75, 76, 321, 0, 0,
1198 443, 176, 0, 177, 0, 0, 0, 0, 0, 0,
1199 0, 0, 0, 0, 178, 0, 179, 283, 120, 0,
1200 0, 0, 0, 283, 0, 0, 0, 0, 0, 0,
1201 0, 0, 312, 0, 0, 0, 0, 0, 183, 0,
1202 0, 0, 0, 0, 0, 0, 0, 236, 0, 0,
1203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1205 0, 0, 0, 283, 0, 183, 321, 233, 183, 0,
1206 443, 0, 0, 0, 120, 0, 0, 0, 91, 92,
1207 93, 233, 443, 233, 283, 236, 0, 0, 0, 438,
1208 0, 0, 473, 47, 48, 511, 512, 513, 67, 68,
1209 69, 70, 71, 72, 73, 74, 75, 76, 0, 0,
1210 0, 0, 396, 0, 397, 514, 0, 515, 0, 0,
1211 0, 0, 0, 0, 443, 398, 0, 399, 400, 401,
1212 0, 0, 402, 0, 0, 0, 0, 0, 0, 0,
1213 0, 0, 0, 0, 0, 0, 403, 404, 405, 406,
1214 407, 408, 47, 48, 127, 294, 337, 67, 68, 69,
1215 70, 71, 72, 73, 74, 75, 76, 233, 283, 0,
1216 443, 221, 0, 223, 338, 0, 0, 0, 0, 0,
1217 0, 0, 0, 0, 224, 0, 225, 0, 0, 0,
1218 0, 0, 0, 0, 0, 0, 0, 0, 283, 91,
1219 92, 93, 0, 0, 233, 0, 0, 0, 0, 129,
1220 0, 0, 0, 0, 0, 0, 0, 906, 907, 908,
1221 909, 910, 0, 0, 0, 0, 249, 0, 595, 0,
1222 283, 47, 48, 0, 0, 0, 67, 68, 69, 70,
1223 71, 72, 73, 74, 75, 76, 0, 0, 0, 0,
1224 0, 0, 591, 0, 0, 0, 0, 948, 91, 92,
1225 93, 236, 0, 0, 0, 0, 856, 857, 129, 0,
1226 858, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1227 0, 0, 0, 0, 0, 0, 283, 0, 859, 0,
1228 0, 0, 0, 0, 0, 283, 0, 0, 0, 0,
1229 0, 0, 283, 0, 283, 0, 0, 0, 0, 0,
1230 0, 0, 0, 0, 0, 0, 860, 861, 862, 863,
1231 864, 0, 0, 0, 0, 0, 865, 866, 867, 868,
1232 869, 870, 871, 872, 873, 0, 0, 91, 92, 93,
1233 0, 0, 0, 0, 0, 0, 283, 0, 0, 0,
1234 0, 0, 0, 283, 0, 236, 0, 0, 0, 0,
1235 0, 0, 0, 0, 0, 283, 0, 0, 0, 0,
1236 0, 0, 0, 0, 0, 0, 0, 0, 0, 283,
1237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1238 0, 0, 0, 0, 283, 283, 283, 283, 65, 48,
1239 0, 0, 66, 67, 68, 69, 70, 71, 72, 73,
1240 74, 75, 76, 0, 0, 0, 0, 77, 0, 78,
1241 0, 595, 0, 751, 0, 0, 0, 0, 0, 0,
1242 79, 0, 80, 0, 0, 0, 0, 0, 0, 81,
1243 82, 83, 84, 85, 0, 0, 233, 233, 0, 0,
1244 0, 0, 0, 0, 47, 48, 0, 0, 395, 67,
1245 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
1246 0, 0, 0, 396, 508, 397, 0, 86, 87, 88,
1247 89, 90, 0, 0, 0, 0, 398, 0, 399, 400,
1248 401, 0, 0, 402, 0, 0, 0, 0, 0, 0,
1249 0, 0, 0, 0, 91, 92, 93, 403, 404, 405,
1250 406, 407, 408, 0, 0, 0, 0, 0, 47, 48,
1251 0, 0, 395, 67, 68, 69, 70, 71, 72, 73,
1252 74, 75, 76, 0, 0, 0, 0, 396, 0, 397,
1253 702, 0, 0, 0, 0, 0, 233, 0, 0, 0,
1254 398, 0, 399, 400, 401, 0, 0, 402, 0, 0,
1255 91, 92, 93, 0, 0, 0, 0, 0, 0, 0,
1256 878, 403, 404, 405, 406, 407, 408, 0, 0, 47,
1257 48, 0, 0, 395, 67, 68, 69, 70, 71, 72,
1258 73, 74, 75, 76, 0, 0, 878, 0, 396, 899,
1259 397, 878, 878, 0, 0, 0, 0, 0, 0, 878,
1260 878, 398, 0, 399, 400, 401, 0, 0, 402, 0,
1261 0, 0, 0, 0, 91, 92, 93, 0, 0, 0,
1262 0, 0, 403, 404, 405, 406, 407, 408, 0, 0,
1263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1264 0, 955, 0, 0, 0, 0, 0, 0, 0, 0,
1265 878, 0, 0, 0, 0, 0, 0, 878, 878, 0,
1266 0, 878, 974, 0, 0, 0, 0, 0, 0, 0,
1267 878, 0, 0, 0, 0, 91, 92, 93, 0, 0,
1268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1269 0, 878, 0, 0, 0, 0, 0, 0, 47, 48,
1270 878, 0, 0, 67, 68, 69, 70, 71, 72, 73,
1271 74, 75, 76, 0, 0, 0, 0, 396, 0, 397,
1272 0, 878, 0, 0, 0, 0, 0, 0, 0, 0,
1273 398, 0, 399, 400, 401, 0, 0, 402, 0, 0,
1274 0, 0, 0, 0, 0, 0, 0, 0, 878, 0,
1275 878, 403, 404, 405, 406, 407, 408, 0, 0, 0,
1276 65, 48, 878, 0, 66, 67, 68, 69, 70, 71,
1277 72, 73, 74, 75, 76, 0, 0, 47, 48, 77,
1278 878, 78, 67, 68, 69, 70, 71, 72, 73, 74,
1279 75, 76, 79, 0, 80, 0, 0, 985, 591, 878,
1280 878, 0, 0, 0, 91, 92, 93, 47, 48, 0,
1281 878, 0, 67, 68, 69, 70, 71, 72, 73, 74,
1282 75, 76, 0, 0, 0, 0, 0, 0, 591, 0,
1283 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,
1284 87, 88, 89, 90, 0, 0, 0, 0, 0, 0,
1285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1286 0, 0, 0, 0, 0, 0, 91, 92, 93, 0,
1287 0, 0, 0, 866, 867, 868, 869, 870, 871, 872,
1288 873, 0, 0, 91, 92, 93, 0, 0, 0, 0,
1289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1290 0, 0, 0, 866, 867, 868, 869, 870, 871, 872,
1291 873, 0, 0, 91, 92, 93, 65, 48, 0, 0,
1292 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1293 76, 0, 0, 0, 0, 77, 0, 78, 0, 0,
1294 0, 0, 0, 0, 0, 0, 0, 0, 79, 0,
1295 80, 47, 48, 0, 0, 220, 67, 68, 69, 70,
1296 71, 72, 73, 74, 75, 76, 0, 0, 0, 0,
1297 221, 222, 223, 0, 0, 0, 0, 0, 0, 0,
1298 0, 0, 0, 224, 0, 225, 0, 0, 0, 0,
1299 0, 0, 0, 0, 47, 48, 647, 648, 220, 67,
1300 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
1301 0, 0, 0, 221, 292, 223, 0, 0, 0, 0,
1302 0, 0, 91, 92, 93, 0, 224, 0, 225, 47,
1303 48, 0, 0, 220, 67, 68, 69, 70, 71, 72,
1304 73, 74, 75, 76, 0, 0, 0, 0, 221, 335,
1305 223, 0, 0, 0, 0, 0, 0, 91, 92, 93,
1306 0, 224, 0, 225, 47, 48, 0, 0, 290, 67,
1307 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
1308 0, 0, 0, 176, 0, 177, 0, 0, 0, 0,
1309 0, 0, 0, 0, 0, 0, 178, 0, 179, 0,
1310 91, 92, 93, 0, 0, 0, 47, 48, 0, 0,
1311 220, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1312 76, 0, 0, 0, 0, 221, 0, 223, 0, 0,
1313 0, 0, 0, 0, 0, 91, 92, 93, 224, 0,
1314 225, 47, 48, 0, 0, 0, 67, 68, 69, 70,
1315 71, 72, 73, 74, 75, 76, 0, 0, 0, 0,
1316 221, 0, 223, 0, 0, 0, 0, 0, 0, 0,
1317 91, 92, 93, 224, 0, 225, 47, 48, 0, 0,
1318 0, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1319 76, 0, 0, 0, 0, 396, 0, 397, 0, 0,
1320 0, 0, 0, 0, 0, 0, 0, 0, 398, 0,
1321 399, 0, 91, 92, 93, 0, 0, 0, 0, 0,
1322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1324 0, 0, 0, 0, 0, 0, 0, 91, 92, 93,
1325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1331 static const short yycheck[] = { 29,
1332 24, 49, 37, 404, 11, 810, 27, 111, 43, 86,
1333 87, 88, 31, 90, 37, 22, 31, 460, 227, 117,
1334 43, 112, 268, 223, 113, 269, 504, 36, 284, 37,
1335 26, 110, 251, 176, 135, 43, 255, 283, 111, 395,
1336 113, 251, 4, 117, 550, 255, 11, 251, 251, 558,
1337 559, 255, 255, 114, 106, 29, 959, 175, 135, 177,
1338 665, 719, 24, 5, 669, 7, 52, 115, 574, 575,
1339 94, 4, 70, 731, 26, 26, 106, 26, 221, 36,
1340 70, 179, 70, 36, 114, 115, 116, 117, 165, 77,
1341 3, 87, 5, 6, 7, 30, 185, 1000, 106, 73,
1342 847, 3, 123, 581, 134, 179, 114, 115, 116, 117,
1343 119, 54, 917, 173, 162, 30, 140, 69, 69, 117,
1344 5, 6, 7, 144, 89, 58, 28, 225, 118, 177,
1345 339, 229, 879, 68, 29, 142, 171, 197, 198, 582,
1346 238, 397, 27, 4, 106, 175, 176, 177, 171, 179,
1347 251, 225, 213, 68, 255, 229, 23, 513, 210, 26,
1348 893, 819, 119, 171, 238, 217, 119, 175, 176, 177,
1349 65, 179, 905, 68, 251, 223, 3, 119, 255, 31,
1350 210, 844, 787, 213, 26, 663, 329, 217, 397, 31,
1351 139, 221, 438, 223, 143, 225, 902, 24, 442, 229,
1352 343, 299, 210, 449, 308, 213, 119, 237, 238, 217,
1353 270, 302, 330, 221, 723, 223, 68, 225, 278, 31,
1354 883, 229, 24, 104, 303, 299, 435, 257, 31, 290,
1355 238, 189, 738, 191, 119, 324, 194, 481, 70, 399,
1356 285, 5, 6, 7, 29, 29, 306, 79, 80, 347,
1357 24, 209, 412, 55, 28, 474, 68, 3, 318, 992,
1358 290, 365, 518, 67, 474, 68, 744, 745, 974, 299,
1359 474, 474, 53, 347, 3, 327, 70, 366, 24, 535,
1360 65, 65, 290, 936, 363, 364, 429, 81, 941, 29,
1361 363, 299, 365, 366, 4, 24, 62, 327, 64, 329,
1362 330, 1034, 1035, 322, 747, 3, 4, 322, 6, 1015,
1363 1016, 1017, 1018, 343, 24, 345, 45, 347, 47, 327,
1364 18, 329, 330, 466, 22, 65, 24, 4, 68, 27,
1365 390, 355, 3, 393, 215, 343, 4, 345, 368, 347,
1366 5, 6, 7, 18, 433, 375, 304, 24, 369, 397,
1367 828, 396, 397, 24, 22, 119, 24, 402, 614, 1012,
1368 25, 26, 27, 408, 6, 24, 5, 6, 7, 529,
1369 530, 531, 532, 474, 434, 853, 19, 537, 21, 6,
1370 425, 147, 401, 264, 26, 27, 401, 488, 27, 155,
1371 636, 157, 452, 6, 33, 455, 94, 474, 69, 429,
1372 27, 4, 73, 24, 423, 459, 4, 28, 423, 3,
1373 291, 488, 25, 26, 27, 296, 476, 3, 4, 496,
1374 21, 429, 25, 458, 459, 523, 24, 671, 3, 4,
1375 24, 450, 24, 1, 494, 450, 466, 497, 24, 499,
1376 32, 471, 19, 871, 872, 41, 5, 6, 7, 24,
1377 458, 459, 20, 8, 119, 546, 547, 487, 466, 550,
1378 490, 621, 368, 623, 624, 625, 25, 26, 27, 375,
1379 524, 525, 49, 50, 51, 579, 3, 4, 538, 1007,
1380 119, 558, 559, 574, 575, 539, 540, 8, 533, 524,
1381 525, 8, 23, 523, 583, 26, 26, 24, 577, 3,
1382 4, 929, 930, 33, 539, 540, 36, 21, 708, 709,
1383 1038, 1039, 1040, 3, 942, 523, 524, 525, 578, 617,
1384 24, 25, 41, 558, 559, 5, 6, 7, 409, 78,
1385 31, 539, 540, 935, 24, 639, 937, 938, 53, 563,
1386 41, 422, 944, 591, 565, 25, 70, 27, 4, 951,
1387 558, 559, 76, 8, 44, 45, 46, 47, 206, 768,
1388 119, 26, 607, 26, 29, 3, 4, 32, 613, 32,
1389 647, 648, 99, 100, 101, 102, 103, 104, 105, 106,
1390 18, 462, 627, 8, 22, 23, 24, 617, 56, 57,
1391 58, 59, 1020, 995, 618, 19, 656, 21, 619, 11,
1392 1002, 620, 662, 25, 26, 620, 1034, 631, 808, 617,
1393 33, 632, 1014, 70, 71, 19, 70, 21, 75, 73,
1394 268, 23, 657, 21, 26, 649, 112, 113, 114, 115,
1395 116, 19, 653, 21, 657, 283, 517, 23, 25, 119,
1396 26, 1043, 1044, 1045, 1046, 722, 723, 738, 26, 657,
1397 28, 696, 712, 683, 684, 93, 94, 23, 3, 4,
1398 26, 309, 310, 21, 23, 3, 4, 26, 6, 773,
1399 19, 319, 21, 733, 3, 4, 29, 30, 708, 709,
1400 18, 4, 23, 26, 22, 26, 24, 25, 723, 18,
1401 3, 4, 19, 22, 21, 24, 25, 49, 50, 51,
1402 708, 709, 3, 4, 19, 18, 21, 3, 4, 22,
1403 755, 24, 3, 4, 4, 723, 761, 33, 763, 764,
1404 765, 798, 18, 24, 25, 770, 22, 19, 24, 21,
1405 87, 32, 380, 24, 615, 4, 743, 530, 531, 532,
1406 8, 9, 766, 25, 26, 87, 394, 628, 769, 25,
1407 26, 25, 26, 25, 26, 93, 94, 817, 3, 4,
1408 73, 791, 858, 36, 93, 94, 8, 863, 864, 25,
1409 26, 3, 4, 18, 70, 25, 26, 22, 808, 24,
1410 29, 94, 25, 26, 3, 4, 30, 847, 37, 3,
1411 438, 3, 4, 838, 43, 31, 841, 93, 94, 18,
1412 808, 449, 832, 22, 30, 24, 97, 31, 99, 100,
1413 101, 102, 103, 104, 105, 106, 18, 3, 4, 879,
1414 28, 851, 3, 4, 832, 70, 922, 28, 858, 25,
1415 26, 31, 18, 863, 864, 25, 22, 933, 24, 884,
1416 89, 871, 872, 24, 25, 25, 26, 23, 93, 94,
1417 858, 32, 25, 26, 25, 863, 864, 25, 26, 36,
1418 109, 110, 111, 112, 113, 6, 873, 963, 25, 3,
1419 4, 25, 6, 26, 93, 94, 972, 907, 908, 24,
1420 910, 25, 26, 913, 18, 134, 25, 26, 22, 24,
1421 24, 898, 922, 27, 107, 108, 27, 993, 64, 929,
1422 930, 549, 27, 933, 87, 553, 554, 94, 94, 557,
1423 28, 160, 942, 87, 922, 28, 29, 95, 96, 41,
1424 3, 4, 171, 30, 173, 933, 1022, 1063, 1064, 23,
1425 25, 939, 940, 963, 942, 18, 185, 41, 31, 22,
1426 4, 24, 972, 23, 193, 28, 3, 4, 197, 198,
1427 8, 23, 4, 26, 33, 963, 1052, 206, 3, 4,
1428 94, 18, 21, 993, 972, 22, 87, 24, 25, 24,
1429 24, 1001, 8, 18, 30, 1071, 1072, 22, 17, 24,
1430 17, 3, 4, 11, 30, 993, 1082, 36, 636, 23,
1431 1020, 41, 1022, 25, 25, 25, 18, 8, 25, 68,
1432 22, 30, 24, 94, 1034, 1053, 31, 31, 257, 8,
1433 31, 94, 1020, 23, 1022, 62, 25, 3, 4, 268,
1434 269, 270, 1052, 25, 43, 29, 19, 1035, 25, 278,
1435 25, 25, 18, 21, 283, 25, 22, 94, 24, 8,
1436 25, 1071, 1072, 25, 1052, 68, 64, 25, 27, 94,
1437 66, 66, 1082, 302, 303, 69, 31, 306, 26, 308,
1438 309, 310, 25, 1071, 1072, 87, 36, 715, 21, 318,
1439 319, 19, 94, 28, 1082, 324, 8, 9, 10, 11,
1440 12, 13, 14, 15, 16, 17, 22, 68, 3, 4,
1441 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1442 15, 16, 17, 69, 68, 23, 26, 22, 94, 24,
1443 25, 25, 74, 40, 363, 364, 365, 366, 28, 368,
1444 35, 40, 37, 63, 68, 26, 375, 69, 69, 72,
1445 21, 380, 69, 87, 18, 87, 26, 23, 34, 22,
1446 69, 390, 30, 8, 393, 394, 22, 28, 26, 19,
1447 8, 18, 18, 3, 3, 4, 5, 6, 7, 8,
1448 9, 10, 11, 12, 13, 14, 15, 16, 17, 26,
1449 18, 4, 24, 22, 43, 24, 25, 109, 110, 111,
1450 22, 22, 18, 22, 433, 434, 35, 24, 37, 438,
1451 8, 8, 3, 442, 109, 110, 111, 18, 30, 11,
1452 449, 11, 30, 452, 119, 19, 455, 8, 24, 458,
1453 459, 33, 11, 11, 11, 11, 18, 8, 9, 10,
1454 11, 12, 13, 14, 15, 16, 17, 476, 18, 18,
1455 18, 40, 481, 24, 19, 19, 19, 11, 487, 25,
1456 11, 11, 137, 25, 106, 494, 26, 25, 497, 28,
1457 499, 28, 114, 115, 116, 117, 19, 19, 19, 40,
1458 109, 110, 111, 19, 0, 25, 25, 25, 25, 21,
1459 119, 21, 0, 135, 134, 524, 525, 487, 668, 785,
1460 677, 742, 500, 729, 915, 887, 1001, 851, 817, 538,
1461 539, 540, 1035, 992, 1057, 1020, 1028, 546, 547, 548,
1462 549, 550, 18, 18, 553, 554, 97, 41, 557, 558,
1463 559, 678, 683, 175, 176, 177, 57, 179, 109, 110,
1464 111, 252, 57, 43, 171, 574, 575, 121, 577, 578,
1465 579, 551, 721, 494, 583, 497, 474, 112, 255, 723,
1466 547, 488, 559, 541, 761, 396, 617, 758, 210, 709,
1467 808, 213, 917, 756, 345, 217, 397, -1, 553, 221,
1468 -1, 223, -1, 225, -1, -1, -1, 229, -1, -1,
1469 -1, -1, 3, 4, -1, -1, 238, 8, 9, 10,
1470 11, 12, 13, 14, 15, 16, 17, 636, -1, -1,
1471 639, 22, -1, 24, -1, -1, -1, -1, -1, -1,
1472 -1, -1, -1, -1, 35, -1, 37, 656, 657, -1,
1473 -1, -1, -1, 662, -1, -1, -1, -1, -1, -1,
1474 -1, -1, 671, -1, -1, -1, -1, -1, 290, -1,
1475 -1, -1, -1, -1, -1, -1, -1, 299, -1, -1,
1476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1477 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1478 -1, -1, -1, 712, -1, 327, 715, 329, 330, -1,
1479 719, -1, -1, -1, 723, -1, -1, -1, 109, 110,
1480 111, 343, 731, 345, 733, 347, -1, -1, -1, 738,
1481 -1, -1, 354, 3, 4, 5, 6, 7, 8, 9,
1482 10, 11, 12, 13, 14, 15, 16, 17, -1, -1,
1483 -1, -1, 22, -1, 24, 25, -1, 27, -1, -1,
1484 -1, -1, -1, -1, 773, 35, -1, 37, 38, 39,
1485 -1, -1, 42, -1, -1, -1, -1, -1, -1, -1,
1486 -1, -1, -1, -1, -1, -1, 56, 57, 58, 59,
1487 60, 61, 3, 4, 5, 6, 7, 8, 9, 10,
1488 11, 12, 13, 14, 15, 16, 17, 429, 817, -1,
1489 819, 22, -1, 24, 25, -1, -1, -1, -1, -1,
1490 -1, -1, -1, -1, 35, -1, 37, -1, -1, -1,
1491 -1, -1, -1, -1, -1, -1, -1, -1, 847, 109,
1492 110, 111, -1, -1, 466, -1, -1, -1, -1, 119,
1493 -1, -1, -1, -1, -1, -1, -1, 866, 867, 868,
1494 869, 870, -1, -1, -1, -1, 488, -1, 490, -1,
1495 879, 3, 4, -1, -1, -1, 8, 9, 10, 11,
1496 12, 13, 14, 15, 16, 17, -1, -1, -1, -1,
1497 -1, -1, 24, -1, -1, -1, -1, 906, 109, 110,
1498 111, 523, -1, -1, -1, -1, 38, 39, 119, -1,
1499 42, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1500 -1, -1, -1, -1, -1, -1, 935, -1, 60, -1,
1501 -1, -1, -1, -1, -1, 944, -1, -1, -1, -1,
1502 -1, -1, 951, -1, 953, -1, -1, -1, -1, -1,
1503 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
1504 92, -1, -1, -1, -1, -1, 98, 99, 100, 101,
1505 102, 103, 104, 105, 106, -1, -1, 109, 110, 111,
1506 -1, -1, -1, -1, -1, -1, 995, -1, -1, -1,
1507 -1, -1, -1, 1002, -1, 617, -1, -1, -1, -1,
1508 -1, -1, -1, -1, -1, 1014, -1, -1, -1, -1,
1509 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1028,
1510 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1511 -1, -1, -1, -1, 1043, 1044, 1045, 1046, 3, 4,
1512 -1, -1, 7, 8, 9, 10, 11, 12, 13, 14,
1513 15, 16, 17, -1, -1, -1, -1, 22, -1, 24,
1514 -1, 683, -1, 685, -1, -1, -1, -1, -1, -1,
1515 35, -1, 37, -1, -1, -1, -1, -1, -1, 44,
1516 45, 46, 47, 48, -1, -1, 708, 709, -1, -1,
1517 -1, -1, -1, -1, 3, 4, -1, -1, 7, 8,
1518 9, 10, 11, 12, 13, 14, 15, 16, 17, -1,
1519 -1, -1, -1, 22, 23, 24, -1, 82, 83, 84,
1520 85, 86, -1, -1, -1, -1, 35, -1, 37, 38,
1521 39, -1, -1, 42, -1, -1, -1, -1, -1, -1,
1522 -1, -1, -1, -1, 109, 110, 111, 56, 57, 58,
1523 59, 60, 61, -1, -1, -1, -1, -1, 3, 4,
1524 -1, -1, 7, 8, 9, 10, 11, 12, 13, 14,
1525 15, 16, 17, -1, -1, -1, -1, 22, -1, 24,
1526 25, -1, -1, -1, -1, -1, 808, -1, -1, -1,
1527 35, -1, 37, 38, 39, -1, -1, 42, -1, -1,
1528 109, 110, 111, -1, -1, -1, -1, -1, -1, -1,
1529 832, 56, 57, 58, 59, 60, 61, -1, -1, 3,
1530 4, -1, -1, 7, 8, 9, 10, 11, 12, 13,
1531 14, 15, 16, 17, -1, -1, 858, -1, 22, 861,
1532 24, 863, 864, -1, -1, -1, -1, -1, -1, 871,
1533 872, 35, -1, 37, 38, 39, -1, -1, 42, -1,
1534 -1, -1, -1, -1, 109, 110, 111, -1, -1, -1,
1535 -1, -1, 56, 57, 58, 59, 60, 61, -1, -1,
1536 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1537 -1, 913, -1, -1, -1, -1, -1, -1, -1, -1,
1538 922, -1, -1, -1, -1, -1, -1, 929, 930, -1,
1539 -1, 933, 934, -1, -1, -1, -1, -1, -1, -1,
1540 942, -1, -1, -1, -1, 109, 110, 111, -1, -1,
1541 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1542 -1, 963, -1, -1, -1, -1, -1, -1, 3, 4,
1543 972, -1, -1, 8, 9, 10, 11, 12, 13, 14,
1544 15, 16, 17, -1, -1, -1, -1, 22, -1, 24,
1545 -1, 993, -1, -1, -1, -1, -1, -1, -1, -1,
1546 35, -1, 37, 38, 39, -1, -1, 42, -1, -1,
1547 -1, -1, -1, -1, -1, -1, -1, -1, 1020, -1,
1548 1022, 56, 57, 58, 59, 60, 61, -1, -1, -1,
1549 3, 4, 1034, -1, 7, 8, 9, 10, 11, 12,
1550 13, 14, 15, 16, 17, -1, -1, 3, 4, 22,
1551 1052, 24, 8, 9, 10, 11, 12, 13, 14, 15,
1552 16, 17, 35, -1, 37, -1, -1, 23, 24, 1071,
1553 1072, -1, -1, -1, 109, 110, 111, 3, 4, -1,
1554 1082, -1, 8, 9, 10, 11, 12, 13, 14, 15,
1555 16, 17, -1, -1, -1, -1, -1, -1, 24, -1,
1556 -1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
1557 83, 84, 85, 86, -1, -1, -1, -1, -1, -1,
1558 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1559 -1, -1, -1, -1, -1, -1, 109, 110, 111, -1,
1560 -1, -1, -1, 99, 100, 101, 102, 103, 104, 105,
1561 106, -1, -1, 109, 110, 111, -1, -1, -1, -1,
1562 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1563 -1, -1, -1, 99, 100, 101, 102, 103, 104, 105,
1564 106, -1, -1, 109, 110, 111, 3, 4, -1, -1,
1565 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1566 17, -1, -1, -1, -1, 22, -1, 24, -1, -1,
1567 -1, -1, -1, -1, -1, -1, -1, -1, 35, -1,
1568 37, 3, 4, -1, -1, 7, 8, 9, 10, 11,
1569 12, 13, 14, 15, 16, 17, -1, -1, -1, -1,
1570 22, 23, 24, -1, -1, -1, -1, -1, -1, -1,
1571 -1, -1, -1, 35, -1, 37, -1, -1, -1, -1,
1572 -1, -1, -1, -1, 3, 4, 83, 84, 7, 8,
1573 9, 10, 11, 12, 13, 14, 15, 16, 17, -1,
1574 -1, -1, -1, 22, 23, 24, -1, -1, -1, -1,
1575 -1, -1, 109, 110, 111, -1, 35, -1, 37, 3,
1576 4, -1, -1, 7, 8, 9, 10, 11, 12, 13,
1577 14, 15, 16, 17, -1, -1, -1, -1, 22, 23,
1578 24, -1, -1, -1, -1, -1, -1, 109, 110, 111,
1579 -1, 35, -1, 37, 3, 4, -1, -1, 7, 8,
1580 9, 10, 11, 12, 13, 14, 15, 16, 17, -1,
1581 -1, -1, -1, 22, -1, 24, -1, -1, -1, -1,
1582 -1, -1, -1, -1, -1, -1, 35, -1, 37, -1,
1583 109, 110, 111, -1, -1, -1, 3, 4, -1, -1,
1584 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1585 17, -1, -1, -1, -1, 22, -1, 24, -1, -1,
1586 -1, -1, -1, -1, -1, 109, 110, 111, 35, -1,
1587 37, 3, 4, -1, -1, -1, 8, 9, 10, 11,
1588 12, 13, 14, 15, 16, 17, -1, -1, -1, -1,
1589 22, -1, 24, -1, -1, -1, -1, -1, -1, -1,
1590 109, 110, 111, 35, -1, 37, 3, 4, -1, -1,
1591 -1, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1592 17, -1, -1, -1, -1, 22, -1, 24, -1, -1,
1593 -1, -1, -1, -1, -1, -1, -1, -1, 35, -1,
1594 37, -1, 109, 110, 111, -1, -1, -1, -1, -1,
1595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1596 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1597 -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
1598 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1601 -1, -1, 109, 110, 111
1603 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1604 #line 3 "/usr/local/gnu/lib/bison.simple"
1606 /* Skeleton output parser for bison,
1607 Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
1609 This program is free software; you can redistribute it and/or modify
1610 it under the terms of the GNU General Public License as published by
1611 the Free Software Foundation; either version 1, or (at your option)
1614 This program is distributed in the hope that it will be useful,
1615 but WITHOUT ANY WARRANTY; without even the implied warranty of
1616 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1617 GNU General Public License for more details.
1619 You should have received a copy of the GNU General Public License
1620 along with this program; if not, write to the Free Software
1621 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1626 #define alloca __builtin_alloca
1627 #else /* not GNU C. */
1628 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1630 #else /* not sparc */
1631 #if defined (MSDOS) && !defined (__TURBOC__)
1633 #else /* not MSDOS, or __TURBOC__ */
1637 #else /* not MSDOS, __TURBOC__, or _AIX */
1641 void *alloca (unsigned int);
1643 #else /* not __cplusplus */
1644 void *alloca (unsigned int);
1645 #endif /* not __cplusplus */
1647 #endif /* not _AIX */
1648 #endif /* not MSDOS, or __TURBOC__ */
1649 #endif /* not sparc. */
1650 #endif /* not GNU C. */
1651 #endif /* alloca not defined. */
1653 /* This is the parser code that is written into each bison parser
1654 when the %semantic_parser declaration is not specified in the grammar.
1655 It was written by Richard Stallman by simplifying the hairy parser
1656 used when %semantic_parser is specified. */
1658 /* Note: there must be only one dollar sign in this file.
1659 It is replaced by the list of actions, each action
1660 as one case of the switch. */
1662 #define yyerrok (yyerrstatus = 0)
1663 #define yyclearin (yychar = YYEMPTY)
1666 #define YYACCEPT return(0)
1667 #define YYABORT return(1)
1668 #define YYERROR goto yyerrlab1
1669 /* Like YYERROR except do call yyerror.
1670 This remains here temporarily to ease the
1671 transition to the new meaning of YYERROR, for GCC.
1672 Once GCC version 2 has supplanted version 1, this can go. */
1673 #define YYFAIL goto yyerrlab
1674 #define YYRECOVERING() (!!yyerrstatus)
1675 #define YYBACKUP(token, value) \
1677 if (yychar == YYEMPTY && yylen == 1) \
1678 { yychar = (token), yylval = (value); \
1679 yychar1 = YYTRANSLATE (yychar); \
1684 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1688 #define YYERRCODE 256
1691 #define YYLEX yylex()
1696 #define YYLEX yylex(&yylval, &yylloc)
1698 #define YYLEX yylex(&yylval)
1702 /* If nonreentrant, generate the variables here */
1706 int yychar; /* the lookahead symbol */
1707 YYSTYPE yylval; /* the semantic value of the */
1708 /* lookahead symbol */
1711 YYLTYPE yylloc; /* location data for the lookahead */
1715 int yynerrs; /* number of parse errors so far */
1716 #endif /* not YYPURE */
1719 int yydebug; /* nonzero means print parse trace */
1720 /* Since this is uninitialized, it does not stop multiple parsers
1724 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1727 #define YYINITDEPTH 200
1730 /* YYMAXDEPTH is the maximum size the stacks can grow to
1731 (effective only if the built-in stack extension method is used). */
1738 #define YYMAXDEPTH 10000
1741 /* Prevent warning if -Wstrict-prototypes. */
1746 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1747 #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1748 #else /* not GNU C or C++ */
1751 /* This is the most reliable way to avoid incompatibilities
1752 in available built-in functions on various systems. */
1754 __yy_bcopy (from, to, count)
1759 register char *f = from;
1760 register char *t = to;
1761 register int i = count;
1767 #else /* __cplusplus */
1769 /* This is the most reliable way to avoid incompatibilities
1770 in available built-in functions on various systems. */
1772 __yy_bcopy (char *from, char *to, int count)
1774 register char *f = from;
1775 register char *t = to;
1776 register int i = count;
1785 #line 184 "/usr/local/gnu/lib/bison.simple"
1789 register int yystate;
1791 register short *yyssp;
1792 register YYSTYPE *yyvsp;
1793 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1794 int yychar1; /* lookahead token as an internal (translated) token number */
1796 short yyssa[YYINITDEPTH]; /* the state stack */
1797 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1799 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1800 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1803 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1804 YYLTYPE *yyls = yylsa;
1807 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1809 #define YYPOPSTACK (yyvsp--, yyssp--)
1812 int yystacksize = YYINITDEPTH;
1823 YYSTYPE yyval; /* the variable used to return */
1824 /* semantic values from the action */
1831 fprintf(stderr, "Starting parse\n");
1837 yychar = YYEMPTY; /* Cause a token to be read. */
1839 /* Initialize stack pointers.
1840 Waste one element of value and location stack
1841 so that they stay on the same level as the state stack.
1842 The wasted elements are never initialized. */
1850 /* Push a new state, which is found in yystate . */
1851 /* In all cases, when you get here, the value and location stacks
1852 have just been pushed. so pushing a state here evens the stacks. */
1857 if (yyssp >= yyss + yystacksize - 1)
1859 /* Give user a chance to reallocate the stack */
1860 /* Use copies of these so that the &'s don't force the real ones into memory. */
1861 YYSTYPE *yyvs1 = yyvs;
1862 short *yyss1 = yyss;
1864 YYLTYPE *yyls1 = yyls;
1867 /* Get the current used size of the three stacks, in elements. */
1868 int size = yyssp - yyss + 1;
1871 /* Each stack pointer address is followed by the size of
1872 the data in use in that stack, in bytes. */
1873 yyoverflow("parser stack overflow",
1874 &yyss1, size * sizeof (*yyssp),
1875 &yyvs1, size * sizeof (*yyvsp),
1877 &yyls1, size * sizeof (*yylsp),
1881 yyss = yyss1; yyvs = yyvs1;
1885 #else /* no yyoverflow */
1886 /* Extend the stack our own way. */
1887 if (yystacksize >= YYMAXDEPTH)
1889 yyerror("parser stack overflow");
1893 if (yystacksize > YYMAXDEPTH)
1894 yystacksize = YYMAXDEPTH;
1895 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1896 __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
1897 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1898 __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
1900 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1901 __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
1903 #endif /* no yyoverflow */
1905 yyssp = yyss + size - 1;
1906 yyvsp = yyvs + size - 1;
1908 yylsp = yyls + size - 1;
1913 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1916 if (yyssp >= yyss + yystacksize - 1)
1922 fprintf(stderr, "Entering state %d\n", yystate);
1928 /* Do appropriate processing given the current state. */
1929 /* Read a lookahead token if we need one and don't already have one. */
1932 /* First try to decide what to do without reference to lookahead token. */
1934 yyn = yypact[yystate];
1938 /* Not known => get a lookahead token if don't already have one. */
1940 /* yychar is either YYEMPTY or YYEOF
1941 or a valid token in external form. */
1943 if (yychar == YYEMPTY)
1947 fprintf(stderr, "Reading a token: ");
1952 /* Convert token to internal form (in yychar1) for indexing tables with */
1954 if (yychar <= 0) /* This means end of input. */
1957 yychar = YYEOF; /* Don't call YYLEX any more */
1961 fprintf(stderr, "Now at end of input.\n");
1966 yychar1 = YYTRANSLATE(yychar);
1971 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1972 /* Give the individual parser a way to print the precise meaning
1973 of a token, for further debugging info. */
1975 YYPRINT (stderr, yychar, yylval);
1977 fprintf (stderr, ")\n");
1983 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1988 /* yyn is what to do for this token type in this state.
1989 Negative => reduce, -yyn is rule number.
1990 Positive => shift, yyn is new state.
1991 New state is final state => don't bother to shift,
1992 just return success.
1993 0, or most negative number => error. */
2008 /* Shift the lookahead token. */
2012 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2015 /* Discard the token being shifted unless it is eof. */
2016 if (yychar != YYEOF)
2024 /* count tokens shifted since error; after three, turn off error status. */
2025 if (yyerrstatus) yyerrstatus--;
2030 /* Do the default action for the current state. */
2033 yyn = yydefact[yystate];
2037 /* Do a reduction. yyn is the number of a rule to reduce with. */
2040 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2047 fprintf (stderr, "Reducing via rule %d (line %d), ",
2050 /* Print the symbols being reduced, and their result. */
2051 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2052 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2053 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2061 #line 335 "yaccParser/hsparser.y"
2062 { the_module_name = yyvsp[-1].uid; module_exports = yyvsp[0].ulist; ;
2065 #line 337 "yaccParser/hsparser.y"
2066 { the_module_name = install_literal("Main"); module_exports = Lnil; ;
2069 #line 343 "yaccParser/hsparser.y"
2071 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-3].ulist),module_exports,yyvsp[-1].ubinding,startlineno);
2075 #line 347 "yaccParser/hsparser.y"
2077 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-3].ulist),module_exports,yyvsp[-1].ubinding,startlineno);
2081 #line 352 "yaccParser/hsparser.y"
2083 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
2087 #line 356 "yaccParser/hsparser.y"
2089 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
2093 #line 362 "yaccParser/hsparser.y"
2095 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
2099 #line 366 "yaccParser/hsparser.y"
2101 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
2105 #line 372 "yaccParser/hsparser.y"
2106 { yyval.ulist = Lnil; ;
2109 #line 373 "yaccParser/hsparser.y"
2110 { yyval.ulist = yyvsp[-1].ulist; ;
2113 #line 377 "yaccParser/hsparser.y"
2114 { yyval.ulist = lsing(yyvsp[0].uentid); ;
2117 #line 378 "yaccParser/hsparser.y"
2118 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uentid); ;
2121 #line 382 "yaccParser/hsparser.y"
2122 { yyval.uentid = mkentid(yyvsp[0].uid); ;
2125 #line 383 "yaccParser/hsparser.y"
2126 { yyval.uentid = mkenttype(yyvsp[0].uid); ;
2129 #line 384 "yaccParser/hsparser.y"
2130 { yyval.uentid = mkenttypeall(yyvsp[-3].uid); ;
2133 #line 386 "yaccParser/hsparser.y"
2134 { yyval.uentid = mkenttypecons(yyvsp[-3].uid,yyvsp[-1].ulist);
2135 /* should be a datatype with cons representing all constructors */
2139 #line 390 "yaccParser/hsparser.y"
2140 { yyval.uentid = mkentclass(yyvsp[-3].uid,yyvsp[-1].ulist);
2141 /* should be a class with vars representing all Class operations */
2145 #line 394 "yaccParser/hsparser.y"
2146 { yyval.uentid = mkentclass(yyvsp[-2].uid,Lnil);
2147 /* "tycon" should be a class with no operations */
2151 #line 398 "yaccParser/hsparser.y"
2152 { yyval.uentid = mkentmod(yyvsp[-1].uid);
2153 /* "tycon" is a module id (but "modid" is bad for your identifier's health [KH]) */
2157 #line 404 "yaccParser/hsparser.y"
2158 { yyval.ulist = yyvsp[-1].ulist; hidden = FALSE; ;
2161 #line 405 "yaccParser/hsparser.y"
2162 { yyval.ulist = yyvsp[-1].ulist; hidden = TRUE; ;
2165 #line 406 "yaccParser/hsparser.y"
2166 { yyval.ulist = Lnil; hidden = FALSE; ;
2169 #line 409 "yaccParser/hsparser.y"
2170 { yyval.ulist = Lnil; ;
2173 #line 410 "yaccParser/hsparser.y"
2174 { yyval.ulist = yyvsp[0].ulist; ;
2177 #line 414 "yaccParser/hsparser.y"
2178 { yyval.ulist = lsing(yyvsp[0].uentid); ;
2181 #line 415 "yaccParser/hsparser.y"
2182 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uentid); ;
2185 #line 419 "yaccParser/hsparser.y"
2186 { yyval.uentid = mkentid(yyvsp[0].uid); ;
2189 #line 420 "yaccParser/hsparser.y"
2190 { yyval.uentid = mkenttype(yyvsp[0].uid); ;
2193 #line 421 "yaccParser/hsparser.y"
2194 { yyval.uentid = mkenttypeall(yyvsp[-3].uid); ;
2197 #line 423 "yaccParser/hsparser.y"
2198 { yyval.uentid = mkenttypecons(yyvsp[-3].uid,yyvsp[-1].ulist);
2199 /* should be a datatype with cons representing all constructors */
2203 #line 427 "yaccParser/hsparser.y"
2204 { yyval.uentid = mkentclass(yyvsp[-3].uid,yyvsp[-1].ulist);
2205 /* should be a class with vars representing all Class operations */
2209 #line 431 "yaccParser/hsparser.y"
2210 { yyval.uentid = mkentclass(yyvsp[-2].uid,Lnil);
2211 /* "tycon" should be a class with no operations */
2215 #line 440 "yaccParser/hsparser.y"
2216 { yyval.uhpragma = mkidata_pragma(yyvsp[-2].ulist, yyvsp[-1].ulist); ;
2219 #line 442 "yaccParser/hsparser.y"
2220 { yyval.uhpragma = mkidata_pragma(Lnil, yyvsp[-1].ulist); ;
2223 #line 443 "yaccParser/hsparser.y"
2224 { yyval.uhpragma = mkno_pragma(); ;
2227 #line 448 "yaccParser/hsparser.y"
2228 { yyval.ulist = yyvsp[0].ulist; ;
2231 #line 449 "yaccParser/hsparser.y"
2232 { yyval.ulist = Lnil; ;
2235 #line 453 "yaccParser/hsparser.y"
2236 { yyval.ulist = lsing(yyvsp[0].uhpragma); ;
2239 #line 455 "yaccParser/hsparser.y"
2240 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
2243 #line 459 "yaccParser/hsparser.y"
2244 { yyval.uhpragma = mkidata_pragma_4s(yyvsp[-1].ulist); ;
2247 #line 463 "yaccParser/hsparser.y"
2248 { yyval.uhpragma = mkitype_pragma(); ;
2251 #line 464 "yaccParser/hsparser.y"
2252 { yyval.uhpragma = mkno_pragma(); ;
2255 #line 468 "yaccParser/hsparser.y"
2256 { yyval.uhpragma = mkiclas_pragma(yyvsp[-1].ulist); ;
2259 #line 469 "yaccParser/hsparser.y"
2260 { yyval.uhpragma = mkno_pragma(); ;
2263 #line 474 "yaccParser/hsparser.y"
2264 { yyval.uhpragma = mkiclasop_pragma(yyvsp[-2].uhpragma, yyvsp[-1].uhpragma); ;
2267 #line 476 "yaccParser/hsparser.y"
2268 { yyval.uhpragma = mkno_pragma(); ;
2271 #line 481 "yaccParser/hsparser.y"
2272 { yyval.uhpragma = mkiinst_simpl_pragma(yyvsp[-2].uid, yyvsp[-1].uhpragma); ;
2275 #line 484 "yaccParser/hsparser.y"
2276 { yyval.uhpragma = mkiinst_const_pragma(yyvsp[-3].uid, yyvsp[-2].uhpragma, yyvsp[-1].ulist); ;
2279 #line 487 "yaccParser/hsparser.y"
2280 { yyval.uhpragma = mkiinst_spec_pragma(yyvsp[-3].uid, yyvsp[-2].uhpragma, yyvsp[-1].ulist); ;
2283 #line 490 "yaccParser/hsparser.y"
2284 { yyval.uhpragma = mkno_pragma(); ;
2287 #line 495 "yaccParser/hsparser.y"
2288 { yyval.uid = yyvsp[0].uid; ;
2291 #line 497 "yaccParser/hsparser.y"
2292 { yyval.uid = install_literal(""); ;
2295 #line 500 "yaccParser/hsparser.y"
2296 { yyval.ulist = yyvsp[0].ulist; ;
2299 #line 505 "yaccParser/hsparser.y"
2300 { yyval.uhpragma = yyvsp[-1].uhpragma; ;
2303 #line 507 "yaccParser/hsparser.y"
2304 { yyval.uhpragma = mkno_pragma(); ;
2307 #line 512 "yaccParser/hsparser.y"
2308 { yyval.uhpragma = mkno_pragma(); ;
2311 #line 514 "yaccParser/hsparser.y"
2312 { yyval.uhpragma = mkigen_pragma(yyvsp[-5].uhpragma, yyvsp[-4].uhpragma, yyvsp[-3].uhpragma, yyvsp[-2].uhpragma, yyvsp[-1].uhpragma, yyvsp[0].ulist); ;
2315 #line 518 "yaccParser/hsparser.y"
2316 { yyval.uhpragma = mkno_pragma(); ;
2319 #line 519 "yaccParser/hsparser.y"
2320 { yyval.uhpragma = mkiarity_pragma(yyvsp[0].ustring); ;
2323 #line 523 "yaccParser/hsparser.y"
2324 { yyval.uhpragma = mkno_pragma(); ;
2327 #line 524 "yaccParser/hsparser.y"
2328 { yyval.uhpragma = mkiupdate_pragma(yyvsp[0].ustring); ;
2331 #line 528 "yaccParser/hsparser.y"
2332 { yyval.uhpragma = mkno_pragma(); ;
2335 #line 529 "yaccParser/hsparser.y"
2336 { yyval.uhpragma = mkideforest_pragma(); ;
2339 #line 533 "yaccParser/hsparser.y"
2340 { yyval.uhpragma = mkno_pragma(); ;
2343 #line 534 "yaccParser/hsparser.y"
2344 { yyval.uhpragma = mkistrictness_pragma(installHstring(1, "B"),
2345 /* _!_ = COCON = bottom */ mkno_pragma());
2349 #line 538 "yaccParser/hsparser.y"
2350 { yyval.uhpragma = mkistrictness_pragma(yyvsp[-1].uhstring, yyvsp[0].uhpragma); ;
2353 #line 542 "yaccParser/hsparser.y"
2354 { yyval.uhpragma = yyvsp[-1].uhpragma; ;
2357 #line 543 "yaccParser/hsparser.y"
2358 { yyval.uhpragma = mkno_pragma(); ;
2361 #line 546 "yaccParser/hsparser.y"
2362 { yyval.uhpragma = mkno_pragma(); ;
2365 #line 548 "yaccParser/hsparser.y"
2366 { yyval.uhpragma = mkimagic_unfolding_pragma(yyvsp[0].uid); ;
2369 #line 550 "yaccParser/hsparser.y"
2370 { yyval.uhpragma = mkiunfolding_pragma(yyvsp[-1].uhpragma, yyvsp[0].ucoresyn); ;
2373 #line 555 "yaccParser/hsparser.y"
2374 { yyval.uhpragma = mkiunfold_always(); ;
2377 #line 557 "yaccParser/hsparser.y"
2378 { yyval.uhpragma = mkiunfold_if_args(yyvsp[-3].ustring, yyvsp[-2].ustring, yyvsp[-1].uid, yyvsp[0].ustring); ;
2381 #line 561 "yaccParser/hsparser.y"
2382 { yyval.ulist = lsing(yyvsp[0].uhpragma); ;
2385 #line 562 "yaccParser/hsparser.y"
2386 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
2389 #line 566 "yaccParser/hsparser.y"
2390 { yyval.ulist = Lnil; ;
2393 #line 567 "yaccParser/hsparser.y"
2394 { yyval.ulist = yyvsp[0].ulist; ;
2397 #line 571 "yaccParser/hsparser.y"
2398 { yyval.ulist = lsing(yyvsp[0].uhpragma); ;
2401 #line 572 "yaccParser/hsparser.y"
2402 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
2405 #line 577 "yaccParser/hsparser.y"
2406 { yyval.uhpragma = mkitype_pragma_pr(yyvsp[-3].ulist, yyvsp[-1].ustring, yyvsp[0].uhpragma); ;
2409 #line 581 "yaccParser/hsparser.y"
2410 { yyval.ulist = lsing(yyvsp[0].uhpragma); ;
2413 #line 582 "yaccParser/hsparser.y"
2414 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uhpragma); ;
2417 #line 587 "yaccParser/hsparser.y"
2418 { yyval.uhpragma = mkiinst_pragma_3s(yyvsp[-4].ulist, yyvsp[-2].ustring, yyvsp[-1].uhpragma, yyvsp[0].ulist); ;
2421 #line 591 "yaccParser/hsparser.y"
2422 { yyval.ulist = lsing(yyvsp[0].uttype); ;
2425 #line 592 "yaccParser/hsparser.y"
2426 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uttype); ;
2429 #line 596 "yaccParser/hsparser.y"
2430 { yyval.uttype = mkty_maybe_nothing(); ;
2433 #line 597 "yaccParser/hsparser.y"
2434 { yyval.uttype = mkty_maybe_just(yyvsp[0].uttype); ;
2437 #line 601 "yaccParser/hsparser.y"
2438 { yyval.ulist = Lnil; ;
2441 #line 602 "yaccParser/hsparser.y"
2442 { yyval.ulist = yyvsp[0].ulist; ;
2445 #line 606 "yaccParser/hsparser.y"
2446 { yyval.ulist = lsing(yyvsp[0].uhpragma); ;
2449 #line 607 "yaccParser/hsparser.y"
2450 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
2453 #line 612 "yaccParser/hsparser.y"
2454 { yyval.uhpragma = mkiname_pragma_pr(yyvsp[-2].uid, yyvsp[0].uhpragma); ;
2457 #line 621 "yaccParser/hsparser.y"
2458 { yyval.ucoresyn = mkcolam(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
2461 #line 623 "yaccParser/hsparser.y"
2462 { yyval.ucoresyn = mkcotylam(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
2465 #line 625 "yaccParser/hsparser.y"
2466 { yyval.ucoresyn = mkcocon(mkco_id(yyvsp[-2].uid), yyvsp[-1].ulist, yyvsp[0].ulist); ;
2469 #line 627 "yaccParser/hsparser.y"
2470 { yyval.ucoresyn = mkcocon(mkco_orig_id(yyvsp[-3].uid,yyvsp[-2].uid), yyvsp[-1].ulist, yyvsp[0].ulist); ;
2473 #line 629 "yaccParser/hsparser.y"
2474 { yyval.ucoresyn = mkcoprim(yyvsp[-2].ucoresyn, yyvsp[-1].ulist, yyvsp[0].ulist); ;
2477 #line 631 "yaccParser/hsparser.y"
2478 { yyval.ucoresyn = mkcoapp(yyvsp[-1].ucoresyn, yyvsp[0].ulist); ;
2481 #line 633 "yaccParser/hsparser.y"
2482 { yyval.ucoresyn = mkcotyapp(yyvsp[-3].ucoresyn, yyvsp[-1].uttype); ;
2485 #line 635 "yaccParser/hsparser.y"
2486 { yyval.ucoresyn = mkcocase(yyvsp[-4].ucoresyn, yyvsp[-1].ucoresyn); ;
2489 #line 637 "yaccParser/hsparser.y"
2490 { yyval.ucoresyn = mkcolet(mkcononrec(yyvsp[-5].ucoresyn, yyvsp[-3].ucoresyn), yyvsp[0].ucoresyn); ;
2493 #line 639 "yaccParser/hsparser.y"
2494 { yyval.ucoresyn = mkcolet(mkcorec(yyvsp[-3].ulist), yyvsp[0].ucoresyn); ;
2497 #line 641 "yaccParser/hsparser.y"
2498 { yyval.ucoresyn = mkcoscc(yyvsp[-2].ucoresyn, yyvsp[0].ucoresyn); ;
2501 #line 642 "yaccParser/hsparser.y"
2502 { yyval.ucoresyn = mkcoliteral(yyvsp[0].uliteral); ;
2505 #line 643 "yaccParser/hsparser.y"
2506 { yyval.ucoresyn = mkcovar(yyvsp[0].ucoresyn); ;
2509 #line 648 "yaccParser/hsparser.y"
2510 { yyval.ucoresyn = mkcoalg_alts(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
2513 #line 650 "yaccParser/hsparser.y"
2514 { yyval.ucoresyn = mkcoprim_alts(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
2517 #line 654 "yaccParser/hsparser.y"
2518 { yyval.ulist = Lnil; ;
2521 #line 655 "yaccParser/hsparser.y"
2522 { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
2525 #line 659 "yaccParser/hsparser.y"
2526 { yyval.ucoresyn = mkcoalg_alt(yyvsp[-4].ucoresyn, yyvsp[-3].ulist, yyvsp[-1].ucoresyn); ;
2529 #line 664 "yaccParser/hsparser.y"
2530 { yyval.ulist = Lnil; ;
2533 #line 665 "yaccParser/hsparser.y"
2534 { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
2537 #line 669 "yaccParser/hsparser.y"
2538 { yyval.ucoresyn = mkcoprim_alt(yyvsp[-3].uliteral, yyvsp[-1].ucoresyn); ;
2541 #line 673 "yaccParser/hsparser.y"
2542 { yyval.ucoresyn = mkconodeflt(); ;
2545 #line 674 "yaccParser/hsparser.y"
2546 { yyval.ucoresyn = mkcobinddeflt(yyvsp[-2].ucoresyn, yyvsp[0].ucoresyn); ;
2549 #line 678 "yaccParser/hsparser.y"
2550 { yyval.ulist = lsing(yyvsp[0].ucoresyn); ;
2553 #line 679 "yaccParser/hsparser.y"
2554 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
2557 #line 683 "yaccParser/hsparser.y"
2558 { yyval.ucoresyn = mkcorec_pair(yyvsp[-2].ucoresyn, yyvsp[0].ucoresyn); ;
2561 #line 687 "yaccParser/hsparser.y"
2562 { yyval.ucoresyn = mkco_preludedictscc(yyvsp[0].ucoresyn); ;
2565 #line 688 "yaccParser/hsparser.y"
2566 { yyval.ucoresyn = mkco_alldictscc(yyvsp[-2].uhstring,yyvsp[-1].uhstring,yyvsp[0].ucoresyn); ;
2569 #line 690 "yaccParser/hsparser.y"
2570 { yyval.ucoresyn = mkco_usercc(yyvsp[-4].uhstring,yyvsp[-3].uhstring,yyvsp[-2].uhstring,yyvsp[-1].ucoresyn,yyvsp[0].ucoresyn); ;
2573 #line 692 "yaccParser/hsparser.y"
2574 { yyval.ucoresyn = mkco_autocc(yyvsp[-4].ucoresyn,yyvsp[-3].uhstring,yyvsp[-2].uhstring,yyvsp[-1].ucoresyn,yyvsp[0].ucoresyn); ;
2577 #line 694 "yaccParser/hsparser.y"
2578 { yyval.ucoresyn = mkco_dictcc(yyvsp[-4].ucoresyn,yyvsp[-3].uhstring,yyvsp[-2].uhstring,yyvsp[-1].ucoresyn,yyvsp[0].ucoresyn); ;
2581 #line 696 "yaccParser/hsparser.y"
2582 { yyval.ucoresyn = mkco_scc_noncaf(); ;
2585 #line 697 "yaccParser/hsparser.y"
2586 { yyval.ucoresyn = mkco_scc_caf(); ;
2589 #line 699 "yaccParser/hsparser.y"
2590 { yyval.ucoresyn = mkco_scc_nondupd(); ;
2593 #line 700 "yaccParser/hsparser.y"
2594 { yyval.ucoresyn = mkco_scc_dupd(); ;
2597 #line 703 "yaccParser/hsparser.y"
2598 { yyval.ucoresyn = mkco_sdselid(yyvsp[-1].uid, yyvsp[0].uid); ;
2601 #line 704 "yaccParser/hsparser.y"
2602 { yyval.ucoresyn = mkco_classopid(yyvsp[-1].uid, yyvsp[0].uid); ;
2605 #line 705 "yaccParser/hsparser.y"
2606 { yyval.ucoresyn = mkco_defmid(yyvsp[-1].uid, yyvsp[0].uid); ;
2609 #line 707 "yaccParser/hsparser.y"
2610 { yyval.ucoresyn = mkco_dfunid(yyvsp[-3].uid, yyvsp[-1].uttype); ;
2613 #line 709 "yaccParser/hsparser.y"
2614 { yyval.ucoresyn = mkco_constmid(yyvsp[-4].uid, yyvsp[-3].uid, yyvsp[-1].uttype); ;
2617 #line 711 "yaccParser/hsparser.y"
2618 { yyval.ucoresyn = mkco_specid(yyvsp[-3].ucoresyn, yyvsp[-1].ulist); ;
2621 #line 712 "yaccParser/hsparser.y"
2622 { yyval.ucoresyn = mkco_wrkrid(yyvsp[0].ucoresyn); ;
2625 #line 713 "yaccParser/hsparser.y"
2626 { yyval.ucoresyn = mkco_orig_id(yyvsp[-1].uid, yyvsp[0].uid); ;
2629 #line 714 "yaccParser/hsparser.y"
2630 { yyval.ucoresyn = mkco_orig_id(yyvsp[-1].uid, yyvsp[0].uid); ;
2633 #line 715 "yaccParser/hsparser.y"
2634 { yyval.ucoresyn = mkco_id(yyvsp[0].uid); ;
2637 #line 716 "yaccParser/hsparser.y"
2638 { yyval.ucoresyn = mkco_id(yyvsp[0].uid); ;
2641 #line 721 "yaccParser/hsparser.y"
2642 { yyval.ucoresyn = mkco_ccall(yyvsp[-5].uid,0,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
2645 #line 723 "yaccParser/hsparser.y"
2646 { yyval.ucoresyn = mkco_ccall(yyvsp[-5].uid,1,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
2649 #line 725 "yaccParser/hsparser.y"
2650 { yyval.ucoresyn = mkco_casm(yyvsp[-5].uliteral,0,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
2653 #line 727 "yaccParser/hsparser.y"
2654 { yyval.ucoresyn = mkco_casm(yyvsp[-5].uliteral,1,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
2657 #line 728 "yaccParser/hsparser.y"
2658 { yyval.ucoresyn = mkco_primop(yyvsp[0].uid); ;
2661 #line 732 "yaccParser/hsparser.y"
2662 { yyval.ulist = Lnil; ;
2665 #line 733 "yaccParser/hsparser.y"
2666 { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
2669 #line 737 "yaccParser/hsparser.y"
2670 { yyval.ucoresyn = mkcobinder(yyvsp[-3].uid, yyvsp[-1].uttype); ;
2673 #line 740 "yaccParser/hsparser.y"
2674 { yyval.ulist = Lnil; ;
2677 #line 741 "yaccParser/hsparser.y"
2678 { yyval.ulist = yyvsp[-1].ulist; ;
2681 #line 745 "yaccParser/hsparser.y"
2682 { yyval.ulist = lsing(yyvsp[0].ucoresyn); ;
2685 #line 746 "yaccParser/hsparser.y"
2686 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
2689 #line 750 "yaccParser/hsparser.y"
2690 { yyval.ucoresyn = mkcolit(yyvsp[0].uliteral); ;
2693 #line 751 "yaccParser/hsparser.y"
2694 { yyval.ucoresyn = mkcolocal(yyvsp[0].ucoresyn); ;
2697 #line 755 "yaccParser/hsparser.y"
2698 { yyval.ulist = lsing(yyvsp[0].uid); ;
2701 #line 756 "yaccParser/hsparser.y"
2702 { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].uid); ;
2705 #line 760 "yaccParser/hsparser.y"
2706 { yyval.ulist = lsing(yyvsp[0].uid); ;
2709 #line 761 "yaccParser/hsparser.y"
2710 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uid); ;
2713 #line 765 "yaccParser/hsparser.y"
2714 { yyval.ulist = Lnil; ;
2717 #line 766 "yaccParser/hsparser.y"
2718 { yyval.ulist = yyvsp[-1].ulist; ;
2721 #line 770 "yaccParser/hsparser.y"
2722 { yyval.ulist = lsing(yyvsp[0].uttype); ;
2725 #line 771 "yaccParser/hsparser.y"
2726 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uttype); ;
2729 #line 775 "yaccParser/hsparser.y"
2730 { yyval.uttype = yyvsp[0].uttype; ;
2733 #line 795 "yaccParser/hsparser.y"
2734 { yyval.ulist = lsing(yyvsp[0].uttype); ;
2737 #line 796 "yaccParser/hsparser.y"
2738 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uttype); ;
2741 #line 800 "yaccParser/hsparser.y"
2742 { yyval.uttype = mkty_maybe_nothing(); ;
2745 #line 801 "yaccParser/hsparser.y"
2746 { yyval.uttype = mkty_maybe_just(yyvsp[0].uttype); ;
2749 #line 807 "yaccParser/hsparser.y"
2751 if ( implicitPrelude && !etags ) {
2752 /* we try to avoid reading interfaces when etagging */
2753 find_module_on_imports_dirlist(
2754 (haskell1_3Flag) ? "PrelCore13" : "PreludeCore",
2755 TRUE,interface_filename);
2757 find_module_on_imports_dirlist("PreludeNull_",TRUE,interface_filename);
2759 thisIfacePragmaVersion = 0;
2760 setyyin(interface_filename);
2765 #line 821 "yaccParser/hsparser.y"
2767 binding prelude_core = mkimport(installid(iface_name),Lnil,Lnil,yyvsp[0].ubinding,xstrdup(interface_filename),hsplineno);
2768 prelude_core_import = implicitPrelude? lsing(prelude_core): Lnil;
2773 #line 829 "yaccParser/hsparser.y"
2775 if ( implicitPrelude && !etags ) {
2776 find_module_on_imports_dirlist(
2777 ( haskell1_3Flag ) ? "Prel13" : "Prelude",
2778 TRUE,interface_filename);
2780 find_module_on_imports_dirlist("PreludeNull_",TRUE,interface_filename);
2782 thisIfacePragmaVersion = 0;
2783 setyyin(interface_filename);
2788 #line 842 "yaccParser/hsparser.y"
2790 binding prelude = mkimport(installid(iface_name),Lnil,Lnil,yyvsp[0].ubinding,xstrdup(interface_filename),hsplineno);
2791 prelude_imports = (! implicitPrelude) ? Lnil
2792 : lconc(prelude_core_import,lsing(prelude));
2796 #line 849 "yaccParser/hsparser.y"
2797 { yyval.ulist = Lnil; ;
2800 #line 850 "yaccParser/hsparser.y"
2801 { yyval.ulist = yyvsp[-1].ulist; ;
2804 #line 853 "yaccParser/hsparser.y"
2805 { yyval.ulist = yyvsp[0].ulist; ;
2808 #line 854 "yaccParser/hsparser.y"
2809 { yyval.ulist = lconc(yyvsp[-2].ulist,yyvsp[0].ulist); ;
2812 #line 858 "yaccParser/hsparser.y"
2813 { /* filename returned in "interface_filename" */
2814 char *module_name = id_to_string(yyvsp[0].uid);
2816 find_module_on_imports_dirlist(
2817 (haskell1_3Flag && strcmp(module_name, "Prelude") == 0)
2818 ? "Prel13" : module_name,
2819 FALSE, interface_filename);
2821 find_module_on_imports_dirlist("PreludeNull_",TRUE,interface_filename);
2823 thisIfacePragmaVersion = 0;
2824 setyyin(interface_filename);
2826 if (strcmp(module_name,"PreludeCore")==0) {
2827 hsperror("Cannot explicitly import `PreludeCore'");
2829 } else if (strcmp(module_name,"Prelude")==0) {
2830 prelude_imports = prelude_core_import; /* unavoidable */
2835 #line 879 "yaccParser/hsparser.y"
2838 yyvsp[0].ubinding->tag = hiding;
2839 yyval.ulist = lsing(yyvsp[0].ubinding);
2843 #line 887 "yaccParser/hsparser.y"
2844 { yyval.ubinding = mkimport(installid(iface_name),yyvsp[0].ulist,Lnil,yyvsp[-1].ubinding,xstrdup(interface_filename),hsplineno); ;
2847 #line 890 "yaccParser/hsparser.y"
2848 { yyval.ubinding = mkimport(installid(iface_name),yyvsp[-2].ulist,yyvsp[0].ulist,yyvsp[-3].ubinding,xstrdup(interface_filename),hsplineno); ;
2851 #line 895 "yaccParser/hsparser.y"
2853 exposeis(); /* partain: expose infix ops at level i+1 to level i */
2854 yyval.ubinding = yyvsp[-1].ubinding;
2858 #line 901 "yaccParser/hsparser.y"
2859 { yyval.ulist = yyvsp[-1].ulist; ;
2862 #line 905 "yaccParser/hsparser.y"
2863 { yyval.ulist = lsing(yyvsp[0].ulist); ;
2866 #line 906 "yaccParser/hsparser.y"
2867 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].ulist); ;
2870 #line 909 "yaccParser/hsparser.y"
2871 { yyval.ulist = ldub(yyvsp[-2].uid,yyvsp[0].uid); ;
2874 #line 910 "yaccParser/hsparser.y"
2875 { yyval.ulist = ldub(yyvsp[-2].uid,yyvsp[0].uid); ;
2878 #line 913 "yaccParser/hsparser.y"
2879 { yyval.ubinding = mknullbind(); ;
2882 #line 914 "yaccParser/hsparser.y"
2883 { yyval.ubinding = yyvsp[-1].ubinding; ;
2886 #line 917 "yaccParser/hsparser.y"
2887 { yyval.ubinding = yyvsp[0].ubinding; ;
2890 #line 918 "yaccParser/hsparser.y"
2891 { yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding); ;
2894 #line 922 "yaccParser/hsparser.y"
2895 { yyval.ubinding = mkmbind(yyvsp[-3].uid,yyvsp[-1].ulist,Lnil,startlineno); ;
2898 #line 924 "yaccParser/hsparser.y"
2899 { yyval.ubinding = mkmbind(yyvsp[-5].uid,yyvsp[-3].ulist,yyvsp[0].ulist,startlineno); ;
2902 #line 930 "yaccParser/hsparser.y"
2904 strcpy(iface_name, id_to_string(yyvsp[0].uid));
2908 #line 934 "yaccParser/hsparser.y"
2910 /* WDP: not only do we not check the module name
2911 but we take the one in the interface to be what we really want
2912 -- we need this for Prelude jiggery-pokery. (Blech. KH)
2913 ToDo: possibly revert....
2914 checkmodname(modname,id_to_string($2));
2916 yyval.ubinding = yyvsp[0].ubinding;
2920 #line 947 "yaccParser/hsparser.y"
2922 yyval.ubinding = mkabind(yyvsp[-3].ubinding,yyvsp[-1].ubinding);
2926 #line 951 "yaccParser/hsparser.y"
2928 yyval.ubinding = yyvsp[-1].ubinding;
2932 #line 955 "yaccParser/hsparser.y"
2934 yyval.ubinding = mkabind(yyvsp[-3].ubinding,yyvsp[-1].ubinding);
2938 #line 959 "yaccParser/hsparser.y"
2940 yyval.ubinding = yyvsp[-1].ubinding;
2944 #line 974 "yaccParser/hsparser.y"
2945 { Precedence = checkfixity(yyvsp[0].ustring); Fixity = INFIXL; ;
2948 #line 977 "yaccParser/hsparser.y"
2949 { Precedence = checkfixity(yyvsp[0].ustring); Fixity = INFIXR; ;
2952 #line 980 "yaccParser/hsparser.y"
2953 { Precedence = checkfixity(yyvsp[0].ustring); Fixity = INFIX; ;
2956 #line 983 "yaccParser/hsparser.y"
2957 { Fixity = INFIXL; Precedence = 9; ;
2960 #line 986 "yaccParser/hsparser.y"
2961 { Fixity = INFIXR; Precedence = 9; ;
2964 #line 989 "yaccParser/hsparser.y"
2965 { Fixity = INFIX; Precedence = 9; ;
2968 #line 993 "yaccParser/hsparser.y"
2969 { makeinfix(id_to_string(yyvsp[0].uid),Fixity,Precedence); ;
2972 #line 994 "yaccParser/hsparser.y"
2973 { makeinfix(id_to_string(yyvsp[0].uid),Fixity,Precedence); ;
2976 #line 999 "yaccParser/hsparser.y"
2978 if(yyvsp[-2].ubinding != NULL)
2979 if(yyvsp[0].ubinding != NULL)
2982 extendfn(yyvsp[-2].ubinding,yyvsp[0].ubinding);
2983 yyval.ubinding = yyvsp[-2].ubinding;
2986 yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding);
2988 yyval.ubinding = yyvsp[-2].ubinding;
2990 yyval.ubinding = yyvsp[0].ubinding;
2995 #line 1017 "yaccParser/hsparser.y"
2996 { yyval.ubinding = yyvsp[0].ubinding; ;
2999 #line 1018 "yaccParser/hsparser.y"
3000 { yyval.ubinding = yyvsp[0].ubinding; ;
3003 #line 1019 "yaccParser/hsparser.y"
3004 { yyval.ubinding = yyvsp[0].ubinding; ;
3007 #line 1020 "yaccParser/hsparser.y"
3008 { yyval.ubinding = yyvsp[0].ubinding; ;
3011 #line 1021 "yaccParser/hsparser.y"
3012 { yyval.ubinding = yyvsp[0].ubinding; ;
3015 #line 1022 "yaccParser/hsparser.y"
3016 { yyval.ubinding = yyvsp[0].ubinding; ;
3019 #line 1025 "yaccParser/hsparser.y"
3020 { yyval.ubinding = mknbind(yyvsp[-2].uttype,yyvsp[0].uttype,startlineno,mkno_pragma()); ;
3023 #line 1030 "yaccParser/hsparser.y"
3024 { yyval.ubinding = mktbind(yyvsp[-4].ulist,yyvsp[-2].uttype,yyvsp[0].ulist,all,startlineno,mkno_pragma()); ;
3027 #line 1032 "yaccParser/hsparser.y"
3028 { yyval.ubinding = mktbind(Lnil,yyvsp[-2].uttype,yyvsp[0].ulist,all,startlineno,mkno_pragma()); ;
3031 #line 1034 "yaccParser/hsparser.y"
3032 { yyval.ubinding = mktbind(yyvsp[-6].ulist,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ;
3035 #line 1036 "yaccParser/hsparser.y"
3036 { yyval.ubinding = mktbind(Lnil,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ;
3039 #line 1039 "yaccParser/hsparser.y"
3040 { yyval.ubinding = mkcbind(yyvsp[-3].ulist,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
3043 #line 1040 "yaccParser/hsparser.y"
3044 { yyval.ubinding = mkcbind(Lnil,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
3047 #line 1043 "yaccParser/hsparser.y"
3048 { yyval.ubinding = mknullbind(); ;
3051 #line 1044 "yaccParser/hsparser.y"
3052 { checkorder(yyvsp[-1].ubinding); yyval.ubinding = yyvsp[-1].ubinding; ;
3055 #line 1045 "yaccParser/hsparser.y"
3056 { checkorder(yyvsp[-1].ubinding); yyval.ubinding =yyvsp[-1].ubinding; ;
3059 #line 1048 "yaccParser/hsparser.y"
3060 { yyval.ubinding = mkibind(yyvsp[-4].ulist,yyvsp[-2].uid,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
3063 #line 1049 "yaccParser/hsparser.y"
3064 { yyval.ubinding = mkibind(Lnil,yyvsp[-2].uid,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
3067 #line 1052 "yaccParser/hsparser.y"
3068 { yyval.ubinding = mknullbind(); ;
3071 #line 1053 "yaccParser/hsparser.y"
3072 { yyval.ubinding = yyvsp[-1].ubinding; ;
3075 #line 1054 "yaccParser/hsparser.y"
3076 { yyval.ubinding = yyvsp[-1].ubinding; ;
3079 #line 1057 "yaccParser/hsparser.y"
3080 { yyval.uttype = mktname(yyvsp[0].uid,Lnil); ;
3083 #line 1058 "yaccParser/hsparser.y"
3084 { yyval.uttype = yyvsp[-1].uttype; ;
3087 #line 1060 "yaccParser/hsparser.y"
3088 { yyval.uttype = mkttuple(yyvsp[-1].ulist); ;
3091 #line 1061 "yaccParser/hsparser.y"
3092 { yyval.uttype = mkttuple(Lnil); ;
3095 #line 1062 "yaccParser/hsparser.y"
3096 { yyval.uttype = mktllist(yyvsp[-1].uttype); ;
3099 #line 1063 "yaccParser/hsparser.y"
3100 { yyval.uttype = mktfun(yyvsp[-3].uttype,yyvsp[-1].uttype); ;
3103 #line 1066 "yaccParser/hsparser.y"
3104 { yyval.ubinding = mkdbind(yyvsp[0].ulist,startlineno); ;
3107 #line 1069 "yaccParser/hsparser.y"
3108 { yyval.ulist = mklcons(yyvsp[-3].uttype,yyvsp[-1].ulist); ;
3111 #line 1070 "yaccParser/hsparser.y"
3112 { yyval.ulist = lsing(yyvsp[0].uttype); ;
3115 #line 1079 "yaccParser/hsparser.y"
3119 extendfn(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3120 yyval.ubinding = yyvsp[-2].ubinding;
3123 yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3127 #line 1108 "yaccParser/hsparser.y"
3128 { /* type2context.c for code */
3129 yyval.ubinding = mksbind(yyvsp[-5].ulist,mkcontext(type2context(yyvsp[-3].uttype),yyvsp[-1].uttype),startlineno,yyvsp[0].uhpragma);
3130 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3134 #line 1113 "yaccParser/hsparser.y"
3136 yyval.ubinding = mksbind(yyvsp[-3].ulist,yyvsp[-1].uttype,startlineno,yyvsp[0].uhpragma);
3137 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3141 #line 1126 "yaccParser/hsparser.y"
3143 yyval.ubinding = mkvspec_uprag(yyvsp[-3].uid, yyvsp[-1].ulist, startlineno);
3144 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3148 #line 1132 "yaccParser/hsparser.y"
3150 yyval.ubinding = mkispec_uprag(yyvsp[-2].uid, yyvsp[-1].uttype, startlineno);
3151 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3155 #line 1138 "yaccParser/hsparser.y"
3157 yyval.ubinding = mkdspec_uprag(yyvsp[-2].uid, yyvsp[-1].ulist, startlineno);
3158 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3162 #line 1144 "yaccParser/hsparser.y"
3164 yyval.ubinding = mkinline_uprag(yyvsp[-2].uid, yyvsp[-1].ulist, startlineno);
3165 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3169 #line 1150 "yaccParser/hsparser.y"
3171 yyval.ubinding = mkmagicuf_uprag(yyvsp[-2].uid, yyvsp[-1].uid, startlineno);
3172 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3176 #line 1156 "yaccParser/hsparser.y"
3178 yyval.ubinding = mkdeforest_uprag(yyvsp[-1].uid, startlineno);
3179 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3183 #line 1162 "yaccParser/hsparser.y"
3185 yyval.ubinding = mkabstract_uprag(yyvsp[-1].uid, startlineno);
3186 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3190 #line 1170 "yaccParser/hsparser.y"
3191 { yyval.ubinding = mknullbind(); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ;
3194 #line 1174 "yaccParser/hsparser.y"
3195 { yyval.ulist = Lnil; ;
3198 #line 1175 "yaccParser/hsparser.y"
3199 { yyval.ulist = lsing(yyvsp[0].uid); ;
3202 #line 1178 "yaccParser/hsparser.y"
3203 { yyval.ulist = lsing(yyvsp[0].ubinding); ;
3206 #line 1179 "yaccParser/hsparser.y"
3207 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].ubinding); ;
3210 #line 1183 "yaccParser/hsparser.y"
3211 { yyval.ubinding = mkvspec_ty_and_id(yyvsp[0].uttype,Lnil); ;
3214 #line 1184 "yaccParser/hsparser.y"
3215 { yyval.ubinding = mkvspec_ty_and_id(yyvsp[-2].uttype,lsing(yyvsp[0].uid)); ;
3218 #line 1186 "yaccParser/hsparser.y"
3219 { yyval.ubinding = yyvsp[0].ubinding; ;
3222 #line 1187 "yaccParser/hsparser.y"
3223 { yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding); ;
3226 #line 1190 "yaccParser/hsparser.y"
3227 { yyval.ubinding = yyvsp[0].ubinding; ;
3230 #line 1191 "yaccParser/hsparser.y"
3231 { yyval.ubinding = yyvsp[0].ubinding; ;
3234 #line 1192 "yaccParser/hsparser.y"
3235 { yyval.ubinding = yyvsp[0].ubinding; ;
3238 #line 1193 "yaccParser/hsparser.y"
3239 { yyval.ubinding = yyvsp[0].ubinding; ;
3242 #line 1194 "yaccParser/hsparser.y"
3243 { yyval.ubinding = yyvsp[0].ubinding; ;
3246 #line 1195 "yaccParser/hsparser.y"
3247 { yyval.ubinding = mknullbind(); ;
3250 #line 1200 "yaccParser/hsparser.y"
3251 { yyval.ubinding = mksbind(yyvsp[-5].ulist,mkcontext(type2context(yyvsp[-3].uttype),yyvsp[-1].uttype),startlineno,yyvsp[0].uhpragma); ;
3254 #line 1202 "yaccParser/hsparser.y"
3255 { yyval.ubinding = mksbind(yyvsp[-3].ulist,yyvsp[-1].uttype,startlineno,yyvsp[0].uhpragma); ;
3258 #line 1206 "yaccParser/hsparser.y"
3259 { yyval.ubinding = mknbind(yyvsp[-3].uttype,yyvsp[-1].uttype,startlineno,yyvsp[0].uhpragma); ;
3262 #line 1210 "yaccParser/hsparser.y"
3263 { yyval.ubinding = mktbind(yyvsp[-3].ulist,yyvsp[-1].uttype,Lnil,Lnil,startlineno,yyvsp[0].uhpragma); ;
3266 #line 1212 "yaccParser/hsparser.y"
3267 { yyval.ubinding = mktbind(Lnil,yyvsp[-1].uttype,Lnil,Lnil,startlineno,yyvsp[0].uhpragma); ;
3270 #line 1214 "yaccParser/hsparser.y"
3271 { yyval.ubinding = mktbind(yyvsp[-5].ulist,yyvsp[-3].uttype,yyvsp[-1].ulist,Lnil,startlineno,yyvsp[0].uhpragma); ;
3274 #line 1216 "yaccParser/hsparser.y"
3275 { yyval.ubinding = mktbind(Lnil,yyvsp[-3].uttype,yyvsp[-1].ulist,Lnil,startlineno,yyvsp[0].uhpragma); ;
3278 #line 1218 "yaccParser/hsparser.y"
3279 { yyval.ubinding = mktbind(yyvsp[-6].ulist,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ;
3282 #line 1220 "yaccParser/hsparser.y"
3283 { yyval.ubinding = mktbind(Lnil,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ;
3286 #line 1224 "yaccParser/hsparser.y"
3287 { yyval.ubinding = mkcbind(yyvsp[-4].ulist,yyvsp[-2].uttype,yyvsp[0].ubinding,startlineno,yyvsp[-1].uhpragma); ;
3290 #line 1226 "yaccParser/hsparser.y"
3291 { yyval.ubinding = mkcbind(Lnil,yyvsp[-2].uttype,yyvsp[0].ubinding,startlineno,yyvsp[-1].uhpragma); ;
3294 #line 1230 "yaccParser/hsparser.y"
3295 { yyval.ubinding = mkibind(yyvsp[-4].ulist,yyvsp[-2].uid,yyvsp[-1].uttype,mknullbind(),startlineno,yyvsp[0].uhpragma); ;
3298 #line 1232 "yaccParser/hsparser.y"
3299 { yyval.ubinding = mkibind(Lnil,yyvsp[-2].uid,yyvsp[-1].uttype,mknullbind(),startlineno,yyvsp[0].uhpragma); ;
3302 #line 1238 "yaccParser/hsparser.y"
3303 { yyval.uttype = mktname(yyvsp[-1].uid,lsing(yyvsp[0].uttype)); ;
3306 #line 1242 "yaccParser/hsparser.y"
3307 { yyval.ulist = lsing(yyvsp[0].uttype); ;
3310 #line 1243 "yaccParser/hsparser.y"
3311 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uttype); ;
3314 #line 1246 "yaccParser/hsparser.y"
3315 { yyval.uttype = yyvsp[0].uttype; ;
3318 #line 1247 "yaccParser/hsparser.y"
3319 { yyval.uttype = mktfun(yyvsp[-2].uttype,yyvsp[0].uttype); ;
3322 #line 1250 "yaccParser/hsparser.y"
3323 { yyval.uttype = mkuniforall(yyvsp[-2].ulist, yyvsp[0].uttype); ;
3326 #line 1252 "yaccParser/hsparser.y"
3327 { yyval.uttype = yyvsp[0].uttype; ;
3330 #line 1253 "yaccParser/hsparser.y"
3331 { yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ;
3334 #line 1256 "yaccParser/hsparser.y"
3335 { yyval.ulist = lapp(yyvsp[-1].ulist,yyvsp[0].uttype); ;
3338 #line 1257 "yaccParser/hsparser.y"
3339 { yyval.ulist = lsing(yyvsp[0].uttype); ;
3342 #line 1261 "yaccParser/hsparser.y"
3343 { yyval.uttype = yyvsp[0].uttype; ;
3346 #line 1262 "yaccParser/hsparser.y"
3347 { yyval.uttype = mktfun(yyvsp[-2].uttype,yyvsp[0].uttype); ;
3350 #line 1263 "yaccParser/hsparser.y"
3351 { yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ;
3354 #line 1267 "yaccParser/hsparser.y"
3355 { yyval.uttype = mkttuple(mklcons(yyvsp[-3].uttype,yyvsp[-1].ulist)); ;
3358 #line 1270 "yaccParser/hsparser.y"
3359 { yyval.uttype = yyvsp[0].uttype; ;
3362 #line 1271 "yaccParser/hsparser.y"
3363 { yyval.uttype = mktname(yyvsp[0].uid,Lnil); ;
3366 #line 1272 "yaccParser/hsparser.y"
3367 { yyval.uttype = mkttuple(Lnil); ;
3370 #line 1273 "yaccParser/hsparser.y"
3371 { yyval.uttype = yyvsp[-1].uttype; ;
3374 #line 1274 "yaccParser/hsparser.y"
3375 { yyval.uttype = mktllist(yyvsp[-1].uttype); ;
3378 #line 1277 "yaccParser/hsparser.y"
3379 { yyval.uttype = mkunidict(yyvsp[-3].uid, yyvsp[-2].uttype); ;
3382 #line 1278 "yaccParser/hsparser.y"
3383 { yyval.uttype = mkunityvartemplate(yyvsp[0].uid); ;
3386 #line 1282 "yaccParser/hsparser.y"
3387 { yyval.uttype = mktname(yyvsp[0].uid,Lnil); ;
3390 #line 1283 "yaccParser/hsparser.y"
3391 { yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ;
3394 #line 1287 "yaccParser/hsparser.y"
3395 { yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ;
3398 #line 1293 "yaccParser/hsparser.y"
3399 { yyval.ulist = lsing(yyvsp[0].uatype); ;
3402 #line 1294 "yaccParser/hsparser.y"
3403 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uatype); ;
3406 #line 1298 "yaccParser/hsparser.y"
3407 { yyval.uatype = mkatc(yyvsp[-1].uid,yyvsp[0].ulist,hsplineno); ;
3410 #line 1299 "yaccParser/hsparser.y"
3411 { yyval.uatype = mkatc(yyvsp[-2].uid,yyvsp[0].ulist,hsplineno); ;
3414 #line 1300 "yaccParser/hsparser.y"
3415 { yyval.uatype = mkatc(yyvsp[0].uid,Lnil,hsplineno); ;
3418 #line 1301 "yaccParser/hsparser.y"
3419 { yyval.uatype = mkatc(yyvsp[-1].uid,Lnil,hsplineno); ;
3422 #line 1302 "yaccParser/hsparser.y"
3423 { yyval.uatype = mkatc(yyvsp[-1].uid, ldub(yyvsp[-2].uttype,yyvsp[0].uttype),hsplineno); ;
3426 #line 1305 "yaccParser/hsparser.y"
3427 { yyval.ulist = yyvsp[-1].ulist; ;
3430 #line 1306 "yaccParser/hsparser.y"
3431 { yyval.ulist = Lnil; ;
3434 #line 1307 "yaccParser/hsparser.y"
3435 { yyval.ulist = lsing(yyvsp[0].uid); ;
3438 #line 1310 "yaccParser/hsparser.y"
3439 { yyval.ulist = lsing(yyvsp[0].uid); ;
3442 #line 1311 "yaccParser/hsparser.y"
3443 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uid); ;
3446 #line 1314 "yaccParser/hsparser.y"
3447 { yyval.ulist = yyvsp[-1].ulist; ;
3450 #line 1315 "yaccParser/hsparser.y"
3451 { yyval.ulist = lsing(yyvsp[0].uttype); ;
3454 #line 1318 "yaccParser/hsparser.y"
3455 { yyval.ulist = lsing(yyvsp[0].uttype); ;
3458 #line 1319 "yaccParser/hsparser.y"
3459 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uttype); ;
3462 #line 1322 "yaccParser/hsparser.y"
3463 { yyval.ubinding = mknullbind(); ;
3466 #line 1323 "yaccParser/hsparser.y"
3467 { yyval.ubinding = yyvsp[0].ubinding; ;
3470 #line 1325 "yaccParser/hsparser.y"
3474 extendfn(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3475 yyval.ubinding = yyvsp[-2].ubinding;
3478 yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3482 #line 1339 "yaccParser/hsparser.y"
3484 yyval.ubinding = mkinline_uprag(yyvsp[-2].uid, yyvsp[-1].ulist, startlineno);
3485 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3489 #line 1345 "yaccParser/hsparser.y"
3491 yyval.ubinding = mkmagicuf_uprag(yyvsp[-2].uid, yyvsp[-1].uid, startlineno);
3492 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3496 #line 1354 "yaccParser/hsparser.y"
3497 { yyval.ulist = mklcons(yyvsp[-2].uid,yyvsp[0].ulist); ;
3500 #line 1355 "yaccParser/hsparser.y"
3501 { yyval.ulist = lsing(yyvsp[0].uid); ;
3504 #line 1359 "yaccParser/hsparser.y"
3505 { yyval.ulist = lsing(yyvsp[0].uid); ;
3508 #line 1360 "yaccParser/hsparser.y"
3509 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uid); ;
3512 #line 1363 "yaccParser/hsparser.y"
3513 { yyval.ulist = lsing(yyvsp[0].uid); ;
3516 #line 1364 "yaccParser/hsparser.y"
3517 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uid); ;
3520 #line 1369 "yaccParser/hsparser.y"
3522 tree fn = function(yyvsp[0].utree);
3524 PREVPATT = yyvsp[0].utree;
3526 if(ttree(fn) == ident)
3528 checksamefn(gident((struct Sident *) fn));
3532 else if (ttree(fn) == tinfixop && ttree(ginfun((struct Sap *) fn)) == ident)
3534 checksamefn(gident((struct Sident *) (ginfun((struct Sap *) fn))));
3535 FN = ginfun((struct Sap *) fn);
3540 printf("%u\n",startlineno);
3542 fprintf(stderr,"%u\tvaldef\n",startlineno);
3547 #line 1394 "yaccParser/hsparser.y"
3549 if ( lhs_is_patt(yyvsp[-2].utree) )
3551 yyval.ubinding = mkpbind(yyvsp[0].ulist, startlineno);
3555 else /* lhs is function */
3556 yyval.ubinding = mkfbind(yyvsp[0].ulist,startlineno);
3562 #line 1408 "yaccParser/hsparser.y"
3563 { yyval.ulist = lsing(createpat(yyvsp[-1].ulist, yyvsp[0].ubinding)); ;
3566 #line 1412 "yaccParser/hsparser.y"
3567 { yyval.ulist = lsing(mktruecase(yyvsp[0].utree)); ;
3570 #line 1415 "yaccParser/hsparser.y"
3571 { yyval.ulist = lsing(ldub(yyvsp[-2].utree,yyvsp[0].utree)); ;
3574 #line 1416 "yaccParser/hsparser.y"
3575 { yyval.ulist = mklcons(ldub(yyvsp[-3].utree,yyvsp[-1].utree),yyvsp[0].ulist); ;
3578 #line 1420 "yaccParser/hsparser.y"
3579 { yyval.ubinding = yyvsp[-1].ubinding; ;
3582 #line 1421 "yaccParser/hsparser.y"
3583 { yyval.ubinding = yyvsp[-1].ubinding; ;
3586 #line 1422 "yaccParser/hsparser.y"
3587 { yyval.ubinding = mknullbind(); ;
3590 #line 1425 "yaccParser/hsparser.y"
3591 { yyval.utree = yyvsp[0].utree; ;
3594 #line 1429 "yaccParser/hsparser.y"
3595 { yyval.ulist = mklcons(yyvsp[-1].utree,yyvsp[0].ulist); ;
3598 #line 1430 "yaccParser/hsparser.y"
3599 { yyval.ulist = lsing(yyvsp[0].utree); ;
3602 #line 1439 "yaccParser/hsparser.y"
3603 { yyval.utree = mkrestr(yyvsp[-4].utree,mkcontext(type2context(yyvsp[-2].uttype),yyvsp[0].uttype)); ;
3606 #line 1440 "yaccParser/hsparser.y"
3607 { yyval.utree = mkrestr(yyvsp[-2].utree,yyvsp[0].uttype); ;
3610 #line 1452 "yaccParser/hsparser.y"
3611 { yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree); precparse(yyval.utree); ;
3614 #line 1461 "yaccParser/hsparser.y"
3615 { yyval.utree = mknegate(yyvsp[0].utree); ;
3618 #line 1470 "yaccParser/hsparser.y"
3619 { /* enteriscope(); /? I don't understand this -- KH */
3620 hsincindent(); /* added by partain; push new context for */
3621 /* FN = NULL; not actually concerned about */
3622 FN = NULL; /* indenting */
3623 yyval.uint = hsplineno; /* remember current line number */
3627 #line 1477 "yaccParser/hsparser.y"
3628 { hsendindent(); /* added by partain */
3629 /* exitiscope(); /? Also not understood */
3633 #line 1481 "yaccParser/hsparser.y"
3635 yyval.utree = mklambda(yyvsp[-3].ulist, yyvsp[0].utree, yyvsp[-4].uint);
3639 #line 1486 "yaccParser/hsparser.y"
3640 { yyval.utree = mklet(yyvsp[-3].ubinding,yyvsp[0].utree); ;
3643 #line 1487 "yaccParser/hsparser.y"
3644 { yyval.utree = mklet(yyvsp[-3].ubinding,yyvsp[0].utree); ;
3647 #line 1490 "yaccParser/hsparser.y"
3648 { yyval.utree = mkife(yyvsp[-4].utree,yyvsp[-2].utree,yyvsp[0].utree); ;
3651 #line 1493 "yaccParser/hsparser.y"
3652 { yyval.utree = mkcasee(yyvsp[-4].utree,yyvsp[-1].ulist); ;
3655 #line 1494 "yaccParser/hsparser.y"
3656 { yyval.utree = mkcasee(yyvsp[-4].utree,yyvsp[-1].ulist); ;
3659 #line 1497 "yaccParser/hsparser.y"
3660 { yyval.utree = mkccall(yyvsp[-1].uid,installid("n"),yyvsp[0].ulist); ;
3663 #line 1498 "yaccParser/hsparser.y"
3664 { yyval.utree = mkccall(yyvsp[0].uid,installid("n"),Lnil); ;
3667 #line 1499 "yaccParser/hsparser.y"
3668 { yyval.utree = mkccall(yyvsp[-1].uid,installid("p"),yyvsp[0].ulist); ;
3671 #line 1500 "yaccParser/hsparser.y"
3672 { yyval.utree = mkccall(yyvsp[0].uid,installid("p"),Lnil); ;
3675 #line 1501 "yaccParser/hsparser.y"
3676 { yyval.utree = mkccall(yyvsp[-1].ustring,installid("N"),yyvsp[0].ulist); ;
3679 #line 1502 "yaccParser/hsparser.y"
3680 { yyval.utree = mkccall(yyvsp[0].ustring,installid("N"),Lnil); ;
3683 #line 1503 "yaccParser/hsparser.y"
3684 { yyval.utree = mkccall(yyvsp[-1].ustring,installid("P"),yyvsp[0].ulist); ;
3687 #line 1504 "yaccParser/hsparser.y"
3688 { yyval.utree = mkccall(yyvsp[0].ustring,installid("P"),Lnil); ;
3691 #line 1508 "yaccParser/hsparser.y"
3692 { extern BOOLEAN ignoreSCC;
3693 extern BOOLEAN warnSCC;
3698 "\"%s\", line %d: _scc_ (`set [profiling] cost centre') ignored\n",
3699 input_filename, hsplineno);
3700 yyval.utree = yyvsp[0].utree;
3702 yyval.utree = mkscc(yyvsp[-1].uhstring, yyvsp[0].utree);
3707 #line 1526 "yaccParser/hsparser.y"
3708 { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
3711 #line 1530 "yaccParser/hsparser.y"
3712 { yyval.ulist = lapp(yyvsp[-1].ulist,yyvsp[0].utree); ;
3715 #line 1531 "yaccParser/hsparser.y"
3716 { yyval.ulist = lsing(yyvsp[0].utree); ;
3719 #line 1541 "yaccParser/hsparser.y"
3720 { yyval.utree = mkident(yyvsp[0].uid); ;
3723 #line 1542 "yaccParser/hsparser.y"
3724 { yyval.utree = mkident(yyvsp[0].uid); ;
3727 #line 1543 "yaccParser/hsparser.y"
3728 { yyval.utree = mklit(yyvsp[0].uliteral); ;
3731 #line 1544 "yaccParser/hsparser.y"
3732 { yyval.utree = mkpar(yyvsp[-1].utree); ;
3735 #line 1545 "yaccParser/hsparser.y"
3736 { checkprec(yyvsp[-2].utree,yyvsp[-1].uid,FALSE); yyval.utree = mklsection(yyvsp[-2].utree,yyvsp[-1].uid); ;
3739 #line 1546 "yaccParser/hsparser.y"
3740 { checkprec(yyvsp[-1].utree,yyvsp[-2].uid,TRUE); yyval.utree = mkrsection(yyvsp[-2].uid,yyvsp[-1].utree); ;
3743 #line 1550 "yaccParser/hsparser.y"
3744 { yyval.utree = mkpar(yyvsp[0].utree); ;
3747 #line 1551 "yaccParser/hsparser.y"
3748 { yyval.utree = mkpar(yyvsp[0].utree); ;
3751 #line 1552 "yaccParser/hsparser.y"
3752 { yyval.utree = mkpar(yyvsp[0].utree); ;
3755 #line 1555 "yaccParser/hsparser.y"
3756 { checkinpat(); yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
3759 #line 1556 "yaccParser/hsparser.y"
3760 { checkinpat(); yyval.utree = mkwildp(); ;
3763 #line 1557 "yaccParser/hsparser.y"
3764 { checkinpat(); yyval.utree = mklazyp(yyvsp[0].utree); ;
3767 #line 1592 "yaccParser/hsparser.y"
3769 yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree);
3771 if(isconstr(id_to_string(yyvsp[-1].uid)))
3772 precparse(yyval.utree);
3775 checkprec(yyvsp[-2].utree,yyvsp[-1].uid,FALSE); /* Check the precedence of the left pattern */
3776 checkprec(yyvsp[0].utree,yyvsp[-1].uid,TRUE); /* then check the right pattern */
3781 #line 1607 "yaccParser/hsparser.y"
3783 yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree);
3785 if(isconstr(id_to_string(yyvsp[-1].uid)))
3786 precparse(yyval.utree);
3789 checkprec(yyvsp[-2].utree,yyvsp[-1].uid,FALSE); /* Check the precedence of the left pattern */
3790 checkprec(yyvsp[0].utree,yyvsp[-1].uid,TRUE); /* then check the right pattern */
3795 #line 1626 "yaccParser/hsparser.y"
3796 { yyval.utree = mknegate(yyvsp[0].utree); ;
3799 #line 1631 "yaccParser/hsparser.y"
3800 { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
3803 #line 1635 "yaccParser/hsparser.y"
3804 { yyval.utree = mknegate(yyvsp[0].utree); ;
3807 #line 1640 "yaccParser/hsparser.y"
3808 { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
3811 #line 1644 "yaccParser/hsparser.y"
3812 { yyval.utree = mkident(yyvsp[0].uid); ;
3815 #line 1645 "yaccParser/hsparser.y"
3816 { yyval.utree = mkident(yyvsp[0].uid); ;
3819 #line 1646 "yaccParser/hsparser.y"
3820 { yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
3823 #line 1647 "yaccParser/hsparser.y"
3824 { yyval.utree = mklit(yyvsp[0].uliteral); ;
3827 #line 1648 "yaccParser/hsparser.y"
3828 { yyval.utree = mkwildp(); ;
3831 #line 1649 "yaccParser/hsparser.y"
3832 { yyval.utree = mktuple(Lnil); ;
3835 #line 1650 "yaccParser/hsparser.y"
3836 { yyval.utree = mkplusp(mkident(yyvsp[-3].uid),mkinteger(yyvsp[-1].ustring)); ;
3839 #line 1654 "yaccParser/hsparser.y"
3840 { yyval.utree = mkpar(yyvsp[-1].utree); ;
3843 #line 1655 "yaccParser/hsparser.y"
3844 { yyval.utree = mktuple(mklcons(yyvsp[-3].utree,yyvsp[-1].ulist)); ;
3847 #line 1656 "yaccParser/hsparser.y"
3848 { yyval.utree = mkllist(yyvsp[-1].ulist); ;
3851 #line 1657 "yaccParser/hsparser.y"
3852 { yyval.utree = mkllist(Lnil); ;
3855 #line 1658 "yaccParser/hsparser.y"
3856 { yyval.utree = mklazyp(yyvsp[0].utree); ;
3859 #line 1661 "yaccParser/hsparser.y"
3860 { yyval.utree = mkident(yyvsp[0].uid); ;
3863 #line 1662 "yaccParser/hsparser.y"
3864 { yyval.utree = mkident(yyvsp[0].uid); ;
3867 #line 1663 "yaccParser/hsparser.y"
3868 { yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
3871 #line 1664 "yaccParser/hsparser.y"
3872 { yyval.utree = mklit(yyvsp[0].uliteral); setstartlineno(); ;
3875 #line 1665 "yaccParser/hsparser.y"
3876 { yyval.utree = mkwildp(); setstartlineno(); ;
3879 #line 1666 "yaccParser/hsparser.y"
3880 { yyval.utree = mktuple(Lnil); ;
3883 #line 1667 "yaccParser/hsparser.y"
3884 { yyval.utree = mkplusp(mkident(yyvsp[-3].uid),mkinteger(yyvsp[-1].ustring)); ;
3887 #line 1671 "yaccParser/hsparser.y"
3888 { yyval.utree = mkpar(yyvsp[-1].utree); ;
3891 #line 1672 "yaccParser/hsparser.y"
3892 { yyval.utree = mktuple(mklcons(yyvsp[-3].utree,yyvsp[-1].ulist)); ;
3895 #line 1673 "yaccParser/hsparser.y"
3896 { yyval.utree = mkllist(yyvsp[-1].ulist); ;
3899 #line 1674 "yaccParser/hsparser.y"
3900 { yyval.utree = mkllist(Lnil); ;
3903 #line 1675 "yaccParser/hsparser.y"
3904 { yyval.utree = mklazyp(yyvsp[0].utree); ;
3907 #line 1686 "yaccParser/hsparser.y"
3908 { if (ttree(yyvsp[-1].utree) == tuple)
3909 yyval.utree = mktuple(mklcons(yyvsp[-3].utree, gtuplelist((struct Stuple *) yyvsp[-1].utree)));
3911 yyval.utree = mktuple(ldub(yyvsp[-3].utree, yyvsp[-1].utree));
3915 #line 1692 "yaccParser/hsparser.y"
3916 { yyval.utree = mktuple(Lnil); ;
3919 #line 1695 "yaccParser/hsparser.y"
3920 { yyval.utree = mkpar(yyvsp[0].utree); ;
3923 #line 1697 "yaccParser/hsparser.y"
3924 { if (ttree(yyvsp[0].utree) == tuple)
3925 yyval.utree = mktuple(mklcons(yyvsp[-2].utree, gtuplelist((struct Stuple *) yyvsp[0].utree)));
3927 yyval.utree = mktuple(ldub(yyvsp[-2].utree, yyvsp[0].utree));
3931 #line 1706 "yaccParser/hsparser.y"
3932 { yyval.utree = mkllist(Lnil); ;
3935 #line 1707 "yaccParser/hsparser.y"
3936 { yyval.utree = mkllist(yyvsp[-1].ulist); ;
3939 #line 1711 "yaccParser/hsparser.y"
3940 { yyval.ulist = lsing(yyvsp[0].utree); ;
3943 #line 1712 "yaccParser/hsparser.y"
3944 { yyval.ulist = mklcons(yyvsp[-2].utree, yyvsp[0].ulist); ;
3947 #line 1727 "yaccParser/hsparser.y"
3948 {yyval.utree = mkeenum(yyvsp[-5].utree,lsing(yyvsp[-3].utree),yyvsp[-1].ulist);;
3951 #line 1728 "yaccParser/hsparser.y"
3952 { yyval.utree = mkeenum(yyvsp[-3].utree,Lnil,yyvsp[-1].ulist); ;
3955 #line 1731 "yaccParser/hsparser.y"
3956 { yyval.utree = mkcomprh(yyvsp[-3].utree,yyvsp[-1].ulist); ;
3959 #line 1734 "yaccParser/hsparser.y"
3960 { yyval.ulist = lsing(yyvsp[0].utree); ;
3963 #line 1735 "yaccParser/hsparser.y"
3964 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].utree); ;
3967 #line 1738 "yaccParser/hsparser.y"
3971 #line 1738 "yaccParser/hsparser.y"
3975 #line 1739 "yaccParser/hsparser.y"
3976 { if (yyvsp[0].utree == NULL)
3977 yyval.utree = mkguard(yyvsp[-2].utree);
3980 checkpatt(yyvsp[-2].utree);
3981 if(ttree(yyvsp[0].utree)==def)
3983 tree prevpatt_save = PREVPATT;
3984 PREVPATT = yyvsp[-2].utree;
3985 yyval.utree = mkdef((tree) mkpbind(lsing(createpat(lsing(mktruecase(ggdef((struct Sdef *) yyvsp[0].utree))),mknullbind())),hsplineno));
3986 PREVPATT = prevpatt_save;
3989 yyval.utree = mkqual(yyvsp[-2].utree,yyvsp[0].utree);
3994 #line 1757 "yaccParser/hsparser.y"
3995 { yyval.utree = yyvsp[0].utree; ;
3998 #line 1758 "yaccParser/hsparser.y"
3999 { yyval.utree = NULL; ;
4002 #line 1761 "yaccParser/hsparser.y"
4003 { yyval.ulist = yyvsp[0].ulist; ;
4006 #line 1762 "yaccParser/hsparser.y"
4007 { yyval.ulist = lconc(yyvsp[-2].ulist,yyvsp[0].ulist); ;
4010 #line 1766 "yaccParser/hsparser.y"
4011 { PREVPATT = yyvsp[0].utree; ;
4014 #line 1768 "yaccParser/hsparser.y"
4015 { yyval.ulist = yyvsp[0].ulist;
4020 #line 1771 "yaccParser/hsparser.y"
4021 { yyval.ulist = Lnil; ;
4024 #line 1774 "yaccParser/hsparser.y"
4025 { yyval.ulist = lsing(createpat(yyvsp[-1].ulist, yyvsp[0].ubinding)); ;
4028 #line 1775 "yaccParser/hsparser.y"
4029 { yyval.ulist = lsing(createpat(lsing(mktruecase(yyvsp[-1].utree)), yyvsp[0].ubinding)); ;
4032 #line 1778 "yaccParser/hsparser.y"
4033 { yyval.ulist = mklcons(ldub(yyvsp[-3].utree,yyvsp[-1].utree),yyvsp[0].ulist); ;
4036 #line 1779 "yaccParser/hsparser.y"
4037 { yyval.ulist = lsing(ldub(yyvsp[-2].utree,yyvsp[0].utree)); ;
4040 #line 1782 "yaccParser/hsparser.y"
4041 { yyval.ulist = Lnil; ;
4044 #line 1783 "yaccParser/hsparser.y"
4045 { yyval.ulist = lsing(yyvsp[0].utree); ;
4048 #line 1786 "yaccParser/hsparser.y"
4049 { yyval.ulist = mklcons(yyvsp[-2].utree, yyvsp[0].ulist); ;
4052 #line 1787 "yaccParser/hsparser.y"
4053 { yyval.ulist = lsing(yyvsp[0].utree); ;
4056 #line 1792 "yaccParser/hsparser.y"
4057 { yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree); precparse(yyval.utree); ;
4060 #line 1797 "yaccParser/hsparser.y"
4061 { yyval.utree = mklit(mkinteger(ineg(yyvsp[0].ustring))); ;
4064 #line 1798 "yaccParser/hsparser.y"
4065 { yyval.utree = mklit(mkfloatr(ineg(yyvsp[0].ustring))); ;
4068 #line 1801 "yaccParser/hsparser.y"
4069 { yyval.utree = mkident(yyvsp[0].uid); ;
4072 #line 1802 "yaccParser/hsparser.y"
4073 { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
4076 #line 1805 "yaccParser/hsparser.y"
4077 { yyval.utree = mkident(yyvsp[0].uid); ;
4080 #line 1809 "yaccParser/hsparser.y"
4081 { yyval.utree = mkident(yyvsp[0].uid); ;
4084 #line 1810 "yaccParser/hsparser.y"
4085 { yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
4088 #line 1811 "yaccParser/hsparser.y"
4089 { yyval.utree = mklit(yyvsp[0].uliteral); ;
4092 #line 1812 "yaccParser/hsparser.y"
4093 { yyval.utree = mkwildp(); ;
4096 #line 1813 "yaccParser/hsparser.y"
4097 { yyval.utree = mktuple(Lnil); ;
4100 #line 1814 "yaccParser/hsparser.y"
4101 { yyval.utree = mkplusp(mkident(yyvsp[-3].uid),mkinteger(yyvsp[-1].ustring)); ;
4104 #line 1818 "yaccParser/hsparser.y"
4105 { yyval.utree = mkpar(yyvsp[-1].utree); ;
4108 #line 1819 "yaccParser/hsparser.y"
4109 { yyval.utree = mktuple(mklcons(yyvsp[-3].utree,yyvsp[-1].ulist)); ;
4112 #line 1820 "yaccParser/hsparser.y"
4113 { yyval.utree = mkllist(yyvsp[-1].ulist); ;
4116 #line 1821 "yaccParser/hsparser.y"
4117 { yyval.utree = mkllist(Lnil); ;
4120 #line 1822 "yaccParser/hsparser.y"
4121 { yyval.utree = mklazyp(yyvsp[0].utree); ;
4124 #line 1826 "yaccParser/hsparser.y"
4125 { yyval.uliteral = mkinteger(yyvsp[0].ustring); ;
4128 #line 1827 "yaccParser/hsparser.y"
4129 { yyval.uliteral = mkfloatr(yyvsp[0].ustring); ;
4132 #line 1828 "yaccParser/hsparser.y"
4133 { yyval.uliteral = mkcharr(yyvsp[0].uhstring); ;
4136 #line 1829 "yaccParser/hsparser.y"
4137 { yyval.uliteral = mkstring(yyvsp[0].uhstring); ;
4140 #line 1830 "yaccParser/hsparser.y"
4141 { yyval.uliteral = mkcharprim(yyvsp[0].uhstring); ;
4144 #line 1831 "yaccParser/hsparser.y"
4145 { yyval.uliteral = mkstringprim(yyvsp[0].uhstring); ;
4148 #line 1832 "yaccParser/hsparser.y"
4149 { yyval.uliteral = mkintprim(yyvsp[0].ustring); ;
4152 #line 1833 "yaccParser/hsparser.y"
4153 { yyval.uliteral = mkfloatprim(yyvsp[0].ustring); ;
4156 #line 1834 "yaccParser/hsparser.y"
4157 { yyval.uliteral = mkdoubleprim(yyvsp[0].ustring); ;
4160 #line 1835 "yaccParser/hsparser.y"
4161 { yyval.uliteral = mkclitlit(yyvsp[0].ustring, ""); ;
4164 #line 1836 "yaccParser/hsparser.y"
4165 { yyval.uliteral = mkclitlit(yyvsp[-2].ustring, yyvsp[0].uid); ;
4168 #line 1837 "yaccParser/hsparser.y"
4169 { yyval.uliteral = mknorepi(yyvsp[0].ustring); ;
4172 #line 1838 "yaccParser/hsparser.y"
4173 { yyval.uliteral = mknorepr(yyvsp[-1].ustring, yyvsp[0].ustring); ;
4176 #line 1839 "yaccParser/hsparser.y"
4177 { yyval.uliteral = mknoreps(yyvsp[0].uhstring); ;
4180 #line 1845 "yaccParser/hsparser.y"
4181 { setstartlineno(); ;
4184 #line 1848 "yaccParser/hsparser.y"
4188 printf("%u\n",startlineno);
4190 fprintf(stderr,"%u\tdata\n",startlineno);
4195 #line 1858 "yaccParser/hsparser.y"
4199 printf("%u\n",startlineno);
4201 fprintf(stderr,"%u\ttype\n",startlineno);
4206 #line 1868 "yaccParser/hsparser.y"
4210 printf("%u\n",startlineno);
4213 fprintf(stderr,"%u\tinstance\n",startlineno);
4218 #line 1879 "yaccParser/hsparser.y"
4219 { setstartlineno(); ;
4222 #line 1882 "yaccParser/hsparser.y"
4226 printf("%u\n",startlineno);
4228 fprintf(stderr,"%u\tclass\n",startlineno);
4233 #line 1892 "yaccParser/hsparser.y"
4234 { setstartlineno(); ;
4237 #line 1895 "yaccParser/hsparser.y"
4241 printf("%u\n",startlineno);
4243 fprintf(stderr,"%u\tmodule\n",startlineno);
4248 #line 1905 "yaccParser/hsparser.y"
4249 { setstartlineno(); ;
4252 #line 1908 "yaccParser/hsparser.y"
4253 { setstartlineno(); ;
4256 #line 1911 "yaccParser/hsparser.y"
4257 { setstartlineno(); ;
4260 #line 1926 "yaccParser/hsparser.y"
4261 { yyval.uid = yyvsp[-1].uid; ;
4264 #line 1932 "yaccParser/hsparser.y"
4265 { yyval.uid = yyvsp[-1].uid; ;
4268 #line 1936 "yaccParser/hsparser.y"
4269 { yyval.uid = yyvsp[-1].uid; ;
4272 #line 1944 "yaccParser/hsparser.y"
4273 { yyval.uid = install_literal("-"); ;
4276 #line 1947 "yaccParser/hsparser.y"
4277 { yyval.uid = install_literal("+"); ;
4280 #line 1951 "yaccParser/hsparser.y"
4281 { yyval.uid = yyvsp[-1].uid; ;
4284 #line 1954 "yaccParser/hsparser.y"
4285 { setstartlineno(); yyval.uid = yyvsp[0].uid; ;
4288 #line 1955 "yaccParser/hsparser.y"
4289 { yyval.uid = yyvsp[-1].uid; ;
4292 #line 1960 "yaccParser/hsparser.y"
4293 { yyval.uid = yyvsp[-1].uid; ;
4296 #line 1963 "yaccParser/hsparser.y"
4297 { setstartlineno(); yyval.uid = yyvsp[0].uid; ;
4300 #line 1964 "yaccParser/hsparser.y"
4301 { yyval.uid = yyvsp[-1].uid; ;
4304 #line 1972 "yaccParser/hsparser.y"
4305 { yyval.ulist = mklcons(yyvsp[-2].uttype,lsing(yyvsp[0].uttype)); ;
4308 #line 1973 "yaccParser/hsparser.y"
4309 { yyval.ulist = mklcons(yyvsp[-2].uttype,yyvsp[0].ulist); ;
4312 #line 1977 "yaccParser/hsparser.y"
4313 { yyval.ulist = lsing(yyvsp[0].uttype); ;
4316 #line 1978 "yaccParser/hsparser.y"
4317 { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].uttype); ;
4320 #line 1981 "yaccParser/hsparser.y"
4321 { yyval.uttype = mknamedtvar(yyvsp[0].uid); ;
4324 #line 1997 "yaccParser/hsparser.y"
4328 #line 1999 "yaccParser/hsparser.y"
4332 #line 2002 "yaccParser/hsparser.y"
4336 #line 2007 "yaccParser/hsparser.y"
4338 FN = NULL; SAMEFN = 0; PREVPATT = NULL;
4343 #line 2013 "yaccParser/hsparser.y"
4344 { expect_ccurly = 1; ;
4347 #line 2013 "yaccParser/hsparser.y"
4348 { expect_ccurly = 0; ;
4351 #line 2018 "yaccParser/hsparser.y"
4353 FN = NULL; SAMEFN = 0; PREVPATT = NULL;
4358 #line 2023 "yaccParser/hsparser.y"
4361 FN = NULL; SAMEFN = 0; PREVPATT = NULL;
4366 /* the action file gets copied in in place of this dollarsign */
4367 #line 457 "/usr/local/gnu/lib/bison.simple"
4378 short *ssp1 = yyss - 1;
4379 fprintf (stderr, "state stack now");
4380 while (ssp1 != yyssp)
4381 fprintf (stderr, " %d", *++ssp1);
4382 fprintf (stderr, "\n");
4392 yylsp->first_line = yylloc.first_line;
4393 yylsp->first_column = yylloc.first_column;
4394 yylsp->last_line = (yylsp-1)->last_line;
4395 yylsp->last_column = (yylsp-1)->last_column;
4400 yylsp->last_line = (yylsp+yylen-1)->last_line;
4401 yylsp->last_column = (yylsp+yylen-1)->last_column;
4405 /* Now "shift" the result of the reduction.
4406 Determine what state that goes to,
4407 based on the state we popped back to
4408 and the rule number reduced by. */
4412 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
4413 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4414 yystate = yytable[yystate];
4416 yystate = yydefgoto[yyn - YYNTBASE];
4420 yyerrlab: /* here on detecting error */
4423 /* If not already recovering from an error, report this error. */
4427 #ifdef YYERROR_VERBOSE
4428 yyn = yypact[yystate];
4430 if (yyn > YYFLAG && yyn < YYLAST)
4437 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
4438 for (x = (yyn < 0 ? -yyn : 0);
4439 x < (sizeof(yytname) / sizeof(char *)); x++)
4440 if (yycheck[x + yyn] == x)
4441 size += strlen(yytname[x]) + 15, count++;
4442 msg = (char *) malloc(size + 15);
4445 strcpy(msg, "parse error");
4450 for (x = (yyn < 0 ? -yyn : 0);
4451 x < (sizeof(yytname) / sizeof(char *)); x++)
4452 if (yycheck[x + yyn] == x)
4454 strcat(msg, count == 0 ? ", expecting `" : " or `");
4455 strcat(msg, yytname[x]);
4464 yyerror ("parse error; also virtual memory exceeded");
4467 #endif /* YYERROR_VERBOSE */
4468 yyerror("parse error");
4472 yyerrlab1: /* here on error raised explicitly by an action */
4474 if (yyerrstatus == 3)
4476 /* if just tried and failed to reuse lookahead token after an error, discard it. */
4478 /* return failure if at end of input */
4479 if (yychar == YYEOF)
4484 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
4490 /* Else will try to reuse lookahead token
4491 after shifting the error token. */
4493 yyerrstatus = 3; /* Each real token shifted decrements this */
4497 yyerrdefault: /* current state does not do anything special for the error token. */
4500 /* This is wrong; only states that explicitly want error tokens
4501 should shift them. */
4502 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
4503 if (yyn) goto yydefault;
4506 yyerrpop: /* pop the current state because it cannot handle the error token */
4508 if (yyssp == yyss) YYABORT;
4518 short *ssp1 = yyss - 1;
4519 fprintf (stderr, "Error: state stack now");
4520 while (ssp1 != yyssp)
4521 fprintf (stderr, " %d", *++ssp1);
4522 fprintf (stderr, "\n");
4528 yyn = yypact[yystate];
4533 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
4552 fprintf(stderr, "Shifting error token, ");
4563 #line 2030 "yaccParser/hsparser.y"
4566 /**********************************************************************
4568 * Error Processing and Reporting *
4570 * (This stuff is here in case we want to use Yacc macros and such.) *
4572 **********************************************************************/
4574 /* The parser calls "hsperror" when it sees a
4575 `report this and die' error. It sets the stage
4576 and calls "yyerror".
4578 There should be no direct calls in the parser to
4579 "yyerror", except for the one from "hsperror". Thus,
4580 the only other calls will be from the error productions
4581 introduced by yacc/bison/whatever.
4583 We need to be able to recognise the from-error-production
4584 case, because we sometimes want to say, "Oh, never mind",
4585 because the layout rule kicks into action and may save
4589 static BOOLEAN error_and_I_mean_it = FALSE;
4595 error_and_I_mean_it = TRUE;
4603 extern char *yytext;
4606 /* We want to be able to distinguish 'error'-raised yyerrors
4607 from yyerrors explicitly coded by the parser hacker.
4609 if (expect_ccurly && ! error_and_I_mean_it ) {
4613 fprintf(stderr, "\"%s\", line %d, column %d: %s on input: ",
4614 input_filename, hsplineno, hspcolno + 1, s);
4616 if (yyleng == 1 && *yytext == '\0')
4617 fprintf(stderr, "<EOF>");
4621 format_string(stderr, (unsigned char *) yytext, yyleng);
4624 fputc('\n', stderr);
4626 /* a common problem */
4627 if (strcmp(yytext, "#") == 0)
4628 fprintf(stderr, "\t(Perhaps you forgot a `-cpp' or `-fglasgow-exts' flag?)\n");
4635 format_string(fp, s, len)
4642 case '\0': fputs("\\NUL", fp); break;
4643 case '\007': fputs("\\a", fp); break;
4644 case '\010': fputs("\\b", fp); break;
4645 case '\011': fputs("\\t", fp); break;
4646 case '\012': fputs("\\n", fp); break;
4647 case '\013': fputs("\\v", fp); break;
4648 case '\014': fputs("\\f", fp); break;
4649 case '\015': fputs("\\r", fp); break;
4650 case '\033': fputs("\\ESC", fp); break;
4651 case '\034': fputs("\\FS", fp); break;
4652 case '\035': fputs("\\GS", fp); break;
4653 case '\036': fputs("\\RS", fp); break;
4654 case '\037': fputs("\\US", fp); break;
4655 case '\177': fputs("\\DEL", fp); break;
4660 fprintf(fp, "\\^%c", *s + '@');