2 /* A Bison parser, made from yaccParser/hsparser.y with Bison version GNU Bison version 1.24
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 static 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 **********************************************************************/
188 /* OLD 95/08: list fixlist; */
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, 1518, 1523,
587 1524, 1527, 1528, 1538, 1539, 1540, 1541, 1542, 1543, 1546,
588 1547, 1548, 1549, 1552, 1553, 1554, 1567, 1568, 1582, 1583,
589 1603, 1604, 1608, 1609, 1612, 1613, 1617, 1618, 1621, 1622,
590 1623, 1624, 1625, 1626, 1627, 1631, 1632, 1633, 1634, 1635,
591 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1648, 1649, 1650,
592 1651, 1652, 1656, 1662, 1671, 1672, 1682, 1683, 1686, 1688,
593 1703, 1704, 1707, 1710, 1711, 1714, 1714, 1715, 1735, 1736,
594 1739, 1740, 1743, 1746, 1749, 1752, 1753, 1756, 1757, 1760,
595 1761, 1764, 1765, 1769, 1770, 1773, 1774, 1775, 1776, 1779,
596 1780, 1783, 1784, 1787, 1788, 1789, 1790, 1791, 1792, 1796,
597 1797, 1798, 1799, 1800, 1803, 1805, 1806, 1807, 1808, 1809,
598 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1823, 1826,
599 1836, 1846, 1857, 1860, 1870, 1873, 1883, 1886, 1889, 1895,
600 1896, 1899, 1900, 1903, 1904, 1908, 1909, 1910, 1913, 1914,
601 1917, 1918, 1919, 1922, 1925, 1928, 1929, 1932, 1933, 1937,
602 1938, 1941, 1942, 1945, 1946, 1950, 1951, 1955, 1956, 1959,
603 1962, 1968, 1971, 1975, 1977, 1980, 1983, 1991, 1991, 1994,
607 static const char * const yytname[] = { "$","error","$undefined.","VARID",
608 "CONID","VARSYM","CONSYM","MINUS","INTEGER","FLOAT","CHAR","STRING","CHARPRIM",
609 "STRINGPRIM","INTPRIM","FLOATPRIM","DOUBLEPRIM","CLITLIT","OCURLY","CCURLY",
610 "VCCURLY","SEMI","OBRACK","CBRACK","OPAREN","CPAREN","COMMA","BQUOTE","RARROW",
611 "VBAR","EQUAL","DARROW","DOTDOT","DCOLON","LARROW","WILDCARD","AT","LAZY","LAMBDA",
612 "LET","IN","WHERE","CASE","OF","TYPE","DATA","CLASS","INSTANCE","DEFAULT","INFIX",
613 "INFIXL","INFIXR","MODULE","IMPORT","INTERFACE","HIDING","CCALL","CCALL_GC",
614 "CASM","CASM_GC","SCC","IF","THEN","ELSE","RENAMING","DERIVING","TO","LEOF",
615 "GHC_PRAGMA","END_PRAGMA","NO_PRAGMA","NOINFO_PRAGMA","ABSTRACT_PRAGMA","SPECIALISE_PRAGMA",
616 "MODNAME_PRAGMA","ARITY_PRAGMA","UPDATE_PRAGMA","STRICTNESS_PRAGMA","KIND_PRAGMA",
617 "UNFOLDING_PRAGMA","MAGIC_UNFOLDING_PRAGMA","DEFOREST_PRAGMA","SPECIALISE_UPRAGMA",
618 "INLINE_UPRAGMA","MAGIC_UNFOLDING_UPRAGMA","ABSTRACT_UPRAGMA","DEFOREST_UPRAGMA",
619 "END_UPRAGMA","TYLAMBDA","COCON","COPRIM","COAPP","COTYAPP","FORALL","TYVAR_TEMPLATE_ID",
620 "CO_ALG_ALTS","CO_PRIM_ALTS","CO_NO_DEFAULT","CO_LETREC","CO_SDSEL_ID","CO_METH_ID",
621 "CO_DEFM_ID","CO_DFUN_ID","CO_CONSTM_ID","CO_SPEC_ID","CO_WRKR_ID","CO_ORIG_NM",
622 "UNFOLD_ALWAYS","UNFOLD_IF_ARGS","NOREP_INTEGER","NOREP_RATIONAL","NOREP_STRING",
623 "CO_PRELUDE_DICTS_CC","CO_ALL_DICTS_CC","CO_USER_CC","CO_AUTO_CC","CO_DICT_CC",
624 "CO_CAF_CC","CO_DUPD_CC","PLUS","pmodule","module","@1","@2","body","maybeexports",
625 "export_list","export","impspec","maybeimpspec","import_list","import","idata_pragma",
626 "idata_pragma_specs","idata_pragma_specslist","idata_pragma_spectypes","itype_pragma",
627 "iclas_pragma","iclasop_pragma","iinst_pragma","modname_pragma","restof_iinst_spec",
628 "ival_pragma","gen_pragma","arity_pragma","update_pragma","deforest_pragma",
629 "strictness_pragma","worker_info","unfolding_pragma","unfolding_guidance","gen_pragma_list",
630 "type_pragma_pairs_maybe","type_pragma_pairs","type_pragma_pair","type_instpragma_pairs",
631 "type_instpragma_pair","type_maybes","type_maybe","maybe_name_pragma_pairs",
632 "name_pragma_pairs","name_pragma_pair","core_expr","core_case_alts","core_alg_alts",
633 "core_alg_alt","core_prim_alts","core_prim_alt","core_default","corec_binds",
634 "corec_bind","co_scc","co_caf","co_dupd","core_id","co_primop","core_binders",
635 "core_binder","core_atoms","core_atom_list","core_atom","core_tyvars","core_tv_templates",
636 "core_types","core_type_list","core_type","core_type_maybes","core_type_maybe",
637 "readpreludecore","@3","readprelude","@4","maybeimpdecls","impdecls","impdecl",
638 "@5","impdecl_rest","readinterface","renamings","renaming_list","renaming","maybeiimports",
639 "iimports","iimport","interface","@6","ibody","maybefixes","fixes","fix","@7",
640 "@8","@9","@10","@11","@12","ops","topdecls","topdecl","typed","datad","classd",
641 "cbody","instd","rinst","inst","defaultd","dtypes","decls","decl","howto_inline_maybe",
642 "types_and_maybe_ids","type_and_maybe_id","itopdecls","itopdecl","ivarsd","ityped",
643 "idatad","iclassd","iinstd","class","types","type","btype","atypes","ttype",
644 "atype","ntatype","simple","simple_long","constrs","constr","tyclses","tycls_list",
645 "context","context_list","instdefs","instdef","vars","varsrest","cons","valdef",
646 "@13","valrhs","valrhs1","gdrhs","maybe_where","gd","lampats","exp","oexp","dexp",
647 "kexp","@14","@15","fexp","cexp","aexp","opatk","opat","dpat","fpat","dpatk",
648 "fpatk","aapat","aapatk","tuple","texps","list","list_exps","sequence","comprehension",
649 "quals","qual","@16","@17","qualrest","alts","alt","@18","altrest","gdpat","upto",
650 "pats","pat","bpat","conpat","apat","apatc","lit_constant","importkey","datakey",
651 "typekey","instkey","defaultkey","classkey","minuskey","modulekey","oparenkey",
652 "obrackkey","lazykey","op1","op","varop","varop1","conop","varsym","minus","plus",
653 "var","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/share/bison.simple"
1606 /* Skeleton output parser for bison,
1607 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
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 2, 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. */
1623 /* As a special exception, when this file is copied by Bison into a
1624 Bison output file, you may use that output file without restriction.
1625 This special exception was added by the Free Software Foundation
1626 in version 1.24 of Bison. */
1630 #define alloca __builtin_alloca
1631 #else /* not GNU C. */
1632 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1634 #else /* not sparc */
1635 #if defined (MSDOS) && !defined (__TURBOC__)
1637 #else /* not MSDOS, or __TURBOC__ */
1641 #else /* not MSDOS, __TURBOC__, or _AIX */
1645 void *alloca (unsigned int);
1647 #else /* not __cplusplus */
1649 #endif /* not __cplusplus */
1651 #endif /* not _AIX */
1652 #endif /* not MSDOS, or __TURBOC__ */
1653 #endif /* not sparc. */
1654 #endif /* not GNU C. */
1655 #endif /* alloca not defined. */
1657 /* This is the parser code that is written into each bison parser
1658 when the %semantic_parser declaration is not specified in the grammar.
1659 It was written by Richard Stallman by simplifying the hairy parser
1660 used when %semantic_parser is specified. */
1662 /* Note: there must be only one dollar sign in this file.
1663 It is replaced by the list of actions, each action
1664 as one case of the switch. */
1666 #define yyerrok (yyerrstatus = 0)
1667 #define yyclearin (yychar = YYEMPTY)
1670 #define YYACCEPT return(0)
1671 #define YYABORT return(1)
1672 #define YYERROR goto yyerrlab1
1673 /* Like YYERROR except do call yyerror.
1674 This remains here temporarily to ease the
1675 transition to the new meaning of YYERROR, for GCC.
1676 Once GCC version 2 has supplanted version 1, this can go. */
1677 #define YYFAIL goto yyerrlab
1678 #define YYRECOVERING() (!!yyerrstatus)
1679 #define YYBACKUP(token, value) \
1681 if (yychar == YYEMPTY && yylen == 1) \
1682 { yychar = (token), yylval = (value); \
1683 yychar1 = YYTRANSLATE (yychar); \
1688 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1692 #define YYERRCODE 256
1695 #define YYLEX yylex()
1701 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1703 #define YYLEX yylex(&yylval, &yylloc)
1705 #else /* not YYLSP_NEEDED */
1707 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1709 #define YYLEX yylex(&yylval)
1711 #endif /* not YYLSP_NEEDED */
1714 /* If nonreentrant, generate the variables here */
1718 int yychar; /* the lookahead symbol */
1719 YYSTYPE yylval; /* the semantic value of the */
1720 /* lookahead symbol */
1723 YYLTYPE yylloc; /* location data for the lookahead */
1727 int yynerrs; /* number of parse errors so far */
1728 #endif /* not YYPURE */
1731 int yydebug; /* nonzero means print parse trace */
1732 /* Since this is uninitialized, it does not stop multiple parsers
1736 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1739 #define YYINITDEPTH 200
1742 /* YYMAXDEPTH is the maximum size the stacks can grow to
1743 (effective only if the built-in stack extension method is used). */
1750 #define YYMAXDEPTH 10000
1753 /* Prevent warning if -Wstrict-prototypes. */
1758 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1759 #define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1760 #else /* not GNU C or C++ */
1763 /* This is the most reliable way to avoid incompatibilities
1764 in available built-in functions on various systems. */
1766 __yy_memcpy (from, to, count)
1771 register char *f = from;
1772 register char *t = to;
1773 register int i = count;
1779 #else /* __cplusplus */
1781 /* This is the most reliable way to avoid incompatibilities
1782 in available built-in functions on various systems. */
1784 __yy_memcpy (char *from, char *to, int count)
1786 register char *f = from;
1787 register char *t = to;
1788 register int i = count;
1797 #line 192 "/usr/local/gnu/share/bison.simple"
1799 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1800 into yyparse. The argument should have type void *.
1801 It should actually point to an object.
1802 Grammar actions can access the variable by casting it
1803 to the proper pointer type. */
1805 #ifdef YYPARSE_PARAM
1806 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1808 #define YYPARSE_PARAM
1809 #define YYPARSE_PARAM_DECL
1813 yyparse(YYPARSE_PARAM)
1816 register int yystate;
1818 register short *yyssp;
1819 register YYSTYPE *yyvsp;
1820 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1821 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1823 short yyssa[YYINITDEPTH]; /* the state stack */
1824 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1826 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1827 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1830 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1831 YYLTYPE *yyls = yylsa;
1834 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1836 #define YYPOPSTACK (yyvsp--, yyssp--)
1839 int yystacksize = YYINITDEPTH;
1850 YYSTYPE yyval; /* the variable used to return */
1851 /* semantic values from the action */
1858 fprintf(stderr, "Starting parse\n");
1864 yychar = YYEMPTY; /* Cause a token to be read. */
1866 /* Initialize stack pointers.
1867 Waste one element of value and location stack
1868 so that they stay on the same level as the state stack.
1869 The wasted elements are never initialized. */
1877 /* Push a new state, which is found in yystate . */
1878 /* In all cases, when you get here, the value and location stacks
1879 have just been pushed. so pushing a state here evens the stacks. */
1884 if (yyssp >= yyss + yystacksize - 1)
1886 /* Give user a chance to reallocate the stack */
1887 /* Use copies of these so that the &'s don't force the real ones into memory. */
1888 YYSTYPE *yyvs1 = yyvs;
1889 short *yyss1 = yyss;
1891 YYLTYPE *yyls1 = yyls;
1894 /* Get the current used size of the three stacks, in elements. */
1895 int size = yyssp - yyss + 1;
1898 /* Each stack pointer address is followed by the size of
1899 the data in use in that stack, in bytes. */
1901 /* This used to be a conditional around just the two extra args,
1902 but that might be undefined if yyoverflow is a macro. */
1903 yyoverflow("parser stack overflow",
1904 &yyss1, size * sizeof (*yyssp),
1905 &yyvs1, size * sizeof (*yyvsp),
1906 &yyls1, size * sizeof (*yylsp),
1909 yyoverflow("parser stack overflow",
1910 &yyss1, size * sizeof (*yyssp),
1911 &yyvs1, size * sizeof (*yyvsp),
1915 yyss = yyss1; yyvs = yyvs1;
1919 #else /* no yyoverflow */
1920 /* Extend the stack our own way. */
1921 if (yystacksize >= YYMAXDEPTH)
1923 yyerror("parser stack overflow");
1927 if (yystacksize > YYMAXDEPTH)
1928 yystacksize = YYMAXDEPTH;
1929 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1930 __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
1931 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1932 __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
1934 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1935 __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
1937 #endif /* no yyoverflow */
1939 yyssp = yyss + size - 1;
1940 yyvsp = yyvs + size - 1;
1942 yylsp = yyls + size - 1;
1947 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1950 if (yyssp >= yyss + yystacksize - 1)
1956 fprintf(stderr, "Entering state %d\n", yystate);
1962 /* Do appropriate processing given the current state. */
1963 /* Read a lookahead token if we need one and don't already have one. */
1966 /* First try to decide what to do without reference to lookahead token. */
1968 yyn = yypact[yystate];
1972 /* Not known => get a lookahead token if don't already have one. */
1974 /* yychar is either YYEMPTY or YYEOF
1975 or a valid token in external form. */
1977 if (yychar == YYEMPTY)
1981 fprintf(stderr, "Reading a token: ");
1986 /* Convert token to internal form (in yychar1) for indexing tables with */
1988 if (yychar <= 0) /* This means end of input. */
1991 yychar = YYEOF; /* Don't call YYLEX any more */
1995 fprintf(stderr, "Now at end of input.\n");
2000 yychar1 = YYTRANSLATE(yychar);
2005 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2006 /* Give the individual parser a way to print the precise meaning
2007 of a token, for further debugging info. */
2009 YYPRINT (stderr, yychar, yylval);
2011 fprintf (stderr, ")\n");
2017 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2022 /* yyn is what to do for this token type in this state.
2023 Negative => reduce, -yyn is rule number.
2024 Positive => shift, yyn is new state.
2025 New state is final state => don't bother to shift,
2026 just return success.
2027 0, or most negative number => error. */
2042 /* Shift the lookahead token. */
2046 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2049 /* Discard the token being shifted unless it is eof. */
2050 if (yychar != YYEOF)
2058 /* count tokens shifted since error; after three, turn off error status. */
2059 if (yyerrstatus) yyerrstatus--;
2064 /* Do the default action for the current state. */
2067 yyn = yydefact[yystate];
2071 /* Do a reduction. yyn is the number of a rule to reduce with. */
2075 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2082 fprintf (stderr, "Reducing via rule %d (line %d), ",
2085 /* Print the symbols being reduced, and their result. */
2086 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2087 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2088 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2096 #line 335 "yaccParser/hsparser.y"
2097 { the_module_name = yyvsp[-1].uid; module_exports = yyvsp[0].ulist; ;
2100 #line 337 "yaccParser/hsparser.y"
2101 { the_module_name = install_literal("Main"); module_exports = Lnil; ;
2104 #line 343 "yaccParser/hsparser.y"
2106 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-3].ulist),module_exports,yyvsp[-1].ubinding,startlineno);
2110 #line 347 "yaccParser/hsparser.y"
2112 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-3].ulist),module_exports,yyvsp[-1].ubinding,startlineno);
2116 #line 352 "yaccParser/hsparser.y"
2118 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
2122 #line 356 "yaccParser/hsparser.y"
2124 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
2128 #line 362 "yaccParser/hsparser.y"
2130 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
2134 #line 366 "yaccParser/hsparser.y"
2136 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
2140 #line 372 "yaccParser/hsparser.y"
2141 { yyval.ulist = Lnil; ;
2144 #line 373 "yaccParser/hsparser.y"
2145 { yyval.ulist = yyvsp[-1].ulist; ;
2148 #line 377 "yaccParser/hsparser.y"
2149 { yyval.ulist = lsing(yyvsp[0].uentid); ;
2152 #line 378 "yaccParser/hsparser.y"
2153 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uentid); ;
2156 #line 382 "yaccParser/hsparser.y"
2157 { yyval.uentid = mkentid(yyvsp[0].uid); ;
2160 #line 383 "yaccParser/hsparser.y"
2161 { yyval.uentid = mkenttype(yyvsp[0].uid); ;
2164 #line 384 "yaccParser/hsparser.y"
2165 { yyval.uentid = mkenttypeall(yyvsp[-3].uid); ;
2168 #line 386 "yaccParser/hsparser.y"
2169 { yyval.uentid = mkenttypecons(yyvsp[-3].uid,yyvsp[-1].ulist);
2170 /* should be a datatype with cons representing all constructors */
2174 #line 390 "yaccParser/hsparser.y"
2175 { yyval.uentid = mkentclass(yyvsp[-3].uid,yyvsp[-1].ulist);
2176 /* should be a class with vars representing all Class operations */
2180 #line 394 "yaccParser/hsparser.y"
2181 { yyval.uentid = mkentclass(yyvsp[-2].uid,Lnil);
2182 /* "tycon" should be a class with no operations */
2186 #line 398 "yaccParser/hsparser.y"
2187 { yyval.uentid = mkentmod(yyvsp[-1].uid);
2188 /* "tycon" is a module id (but "modid" is bad for your identifier's health [KH]) */
2192 #line 404 "yaccParser/hsparser.y"
2193 { yyval.ulist = yyvsp[-1].ulist; hidden = FALSE; ;
2196 #line 405 "yaccParser/hsparser.y"
2197 { yyval.ulist = yyvsp[-1].ulist; hidden = TRUE; ;
2200 #line 406 "yaccParser/hsparser.y"
2201 { yyval.ulist = Lnil; hidden = FALSE; ;
2204 #line 409 "yaccParser/hsparser.y"
2205 { yyval.ulist = Lnil; ;
2208 #line 410 "yaccParser/hsparser.y"
2209 { yyval.ulist = yyvsp[0].ulist; ;
2212 #line 414 "yaccParser/hsparser.y"
2213 { yyval.ulist = lsing(yyvsp[0].uentid); ;
2216 #line 415 "yaccParser/hsparser.y"
2217 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uentid); ;
2220 #line 419 "yaccParser/hsparser.y"
2221 { yyval.uentid = mkentid(yyvsp[0].uid); ;
2224 #line 420 "yaccParser/hsparser.y"
2225 { yyval.uentid = mkenttype(yyvsp[0].uid); ;
2228 #line 421 "yaccParser/hsparser.y"
2229 { yyval.uentid = mkenttypeall(yyvsp[-3].uid); ;
2232 #line 423 "yaccParser/hsparser.y"
2233 { yyval.uentid = mkenttypecons(yyvsp[-3].uid,yyvsp[-1].ulist);
2234 /* should be a datatype with cons representing all constructors */
2238 #line 427 "yaccParser/hsparser.y"
2239 { yyval.uentid = mkentclass(yyvsp[-3].uid,yyvsp[-1].ulist);
2240 /* should be a class with vars representing all Class operations */
2244 #line 431 "yaccParser/hsparser.y"
2245 { yyval.uentid = mkentclass(yyvsp[-2].uid,Lnil);
2246 /* "tycon" should be a class with no operations */
2250 #line 440 "yaccParser/hsparser.y"
2251 { yyval.uhpragma = mkidata_pragma(yyvsp[-2].ulist, yyvsp[-1].ulist); ;
2254 #line 442 "yaccParser/hsparser.y"
2255 { yyval.uhpragma = mkidata_pragma(Lnil, yyvsp[-1].ulist); ;
2258 #line 443 "yaccParser/hsparser.y"
2259 { yyval.uhpragma = mkno_pragma(); ;
2262 #line 448 "yaccParser/hsparser.y"
2263 { yyval.ulist = yyvsp[0].ulist; ;
2266 #line 449 "yaccParser/hsparser.y"
2267 { yyval.ulist = Lnil; ;
2270 #line 453 "yaccParser/hsparser.y"
2271 { yyval.ulist = lsing(yyvsp[0].uhpragma); ;
2274 #line 455 "yaccParser/hsparser.y"
2275 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
2278 #line 459 "yaccParser/hsparser.y"
2279 { yyval.uhpragma = mkidata_pragma_4s(yyvsp[-1].ulist); ;
2282 #line 463 "yaccParser/hsparser.y"
2283 { yyval.uhpragma = mkitype_pragma(); ;
2286 #line 464 "yaccParser/hsparser.y"
2287 { yyval.uhpragma = mkno_pragma(); ;
2290 #line 468 "yaccParser/hsparser.y"
2291 { yyval.uhpragma = mkiclas_pragma(yyvsp[-1].ulist); ;
2294 #line 469 "yaccParser/hsparser.y"
2295 { yyval.uhpragma = mkno_pragma(); ;
2298 #line 474 "yaccParser/hsparser.y"
2299 { yyval.uhpragma = mkiclasop_pragma(yyvsp[-2].uhpragma, yyvsp[-1].uhpragma); ;
2302 #line 476 "yaccParser/hsparser.y"
2303 { yyval.uhpragma = mkno_pragma(); ;
2306 #line 481 "yaccParser/hsparser.y"
2307 { yyval.uhpragma = mkiinst_simpl_pragma(yyvsp[-2].uid, yyvsp[-1].uhpragma); ;
2310 #line 484 "yaccParser/hsparser.y"
2311 { yyval.uhpragma = mkiinst_const_pragma(yyvsp[-3].uid, yyvsp[-2].uhpragma, yyvsp[-1].ulist); ;
2314 #line 487 "yaccParser/hsparser.y"
2315 { yyval.uhpragma = mkiinst_spec_pragma(yyvsp[-3].uid, yyvsp[-2].uhpragma, yyvsp[-1].ulist); ;
2318 #line 490 "yaccParser/hsparser.y"
2319 { yyval.uhpragma = mkno_pragma(); ;
2322 #line 495 "yaccParser/hsparser.y"
2323 { yyval.uid = yyvsp[0].uid; ;
2326 #line 497 "yaccParser/hsparser.y"
2327 { yyval.uid = install_literal(""); ;
2330 #line 500 "yaccParser/hsparser.y"
2331 { yyval.ulist = yyvsp[0].ulist; ;
2334 #line 505 "yaccParser/hsparser.y"
2335 { yyval.uhpragma = yyvsp[-1].uhpragma; ;
2338 #line 507 "yaccParser/hsparser.y"
2339 { yyval.uhpragma = mkno_pragma(); ;
2342 #line 512 "yaccParser/hsparser.y"
2343 { yyval.uhpragma = mkno_pragma(); ;
2346 #line 514 "yaccParser/hsparser.y"
2347 { yyval.uhpragma = mkigen_pragma(yyvsp[-5].uhpragma, yyvsp[-4].uhpragma, yyvsp[-3].uhpragma, yyvsp[-2].uhpragma, yyvsp[-1].uhpragma, yyvsp[0].ulist); ;
2350 #line 518 "yaccParser/hsparser.y"
2351 { yyval.uhpragma = mkno_pragma(); ;
2354 #line 519 "yaccParser/hsparser.y"
2355 { yyval.uhpragma = mkiarity_pragma(yyvsp[0].ustring); ;
2358 #line 523 "yaccParser/hsparser.y"
2359 { yyval.uhpragma = mkno_pragma(); ;
2362 #line 524 "yaccParser/hsparser.y"
2363 { yyval.uhpragma = mkiupdate_pragma(yyvsp[0].ustring); ;
2366 #line 528 "yaccParser/hsparser.y"
2367 { yyval.uhpragma = mkno_pragma(); ;
2370 #line 529 "yaccParser/hsparser.y"
2371 { yyval.uhpragma = mkideforest_pragma(); ;
2374 #line 533 "yaccParser/hsparser.y"
2375 { yyval.uhpragma = mkno_pragma(); ;
2378 #line 534 "yaccParser/hsparser.y"
2379 { yyval.uhpragma = mkistrictness_pragma(installHstring(1, "B"),
2380 /* _!_ = COCON = bottom */ mkno_pragma());
2384 #line 538 "yaccParser/hsparser.y"
2385 { yyval.uhpragma = mkistrictness_pragma(yyvsp[-1].uhstring, yyvsp[0].uhpragma); ;
2388 #line 542 "yaccParser/hsparser.y"
2389 { yyval.uhpragma = yyvsp[-1].uhpragma; ;
2392 #line 543 "yaccParser/hsparser.y"
2393 { yyval.uhpragma = mkno_pragma(); ;
2396 #line 546 "yaccParser/hsparser.y"
2397 { yyval.uhpragma = mkno_pragma(); ;
2400 #line 548 "yaccParser/hsparser.y"
2401 { yyval.uhpragma = mkimagic_unfolding_pragma(yyvsp[0].uid); ;
2404 #line 550 "yaccParser/hsparser.y"
2405 { yyval.uhpragma = mkiunfolding_pragma(yyvsp[-1].uhpragma, yyvsp[0].ucoresyn); ;
2408 #line 555 "yaccParser/hsparser.y"
2409 { yyval.uhpragma = mkiunfold_always(); ;
2412 #line 557 "yaccParser/hsparser.y"
2413 { yyval.uhpragma = mkiunfold_if_args(yyvsp[-3].ustring, yyvsp[-2].ustring, yyvsp[-1].uid, yyvsp[0].ustring); ;
2416 #line 561 "yaccParser/hsparser.y"
2417 { yyval.ulist = lsing(yyvsp[0].uhpragma); ;
2420 #line 562 "yaccParser/hsparser.y"
2421 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
2424 #line 566 "yaccParser/hsparser.y"
2425 { yyval.ulist = Lnil; ;
2428 #line 567 "yaccParser/hsparser.y"
2429 { yyval.ulist = yyvsp[0].ulist; ;
2432 #line 571 "yaccParser/hsparser.y"
2433 { yyval.ulist = lsing(yyvsp[0].uhpragma); ;
2436 #line 572 "yaccParser/hsparser.y"
2437 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
2440 #line 577 "yaccParser/hsparser.y"
2441 { yyval.uhpragma = mkitype_pragma_pr(yyvsp[-3].ulist, yyvsp[-1].ustring, yyvsp[0].uhpragma); ;
2444 #line 581 "yaccParser/hsparser.y"
2445 { yyval.ulist = lsing(yyvsp[0].uhpragma); ;
2448 #line 582 "yaccParser/hsparser.y"
2449 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uhpragma); ;
2452 #line 587 "yaccParser/hsparser.y"
2453 { yyval.uhpragma = mkiinst_pragma_3s(yyvsp[-4].ulist, yyvsp[-2].ustring, yyvsp[-1].uhpragma, yyvsp[0].ulist); ;
2456 #line 591 "yaccParser/hsparser.y"
2457 { yyval.ulist = lsing(yyvsp[0].uttype); ;
2460 #line 592 "yaccParser/hsparser.y"
2461 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uttype); ;
2464 #line 596 "yaccParser/hsparser.y"
2465 { yyval.uttype = mkty_maybe_nothing(); ;
2468 #line 597 "yaccParser/hsparser.y"
2469 { yyval.uttype = mkty_maybe_just(yyvsp[0].uttype); ;
2472 #line 601 "yaccParser/hsparser.y"
2473 { yyval.ulist = Lnil; ;
2476 #line 602 "yaccParser/hsparser.y"
2477 { yyval.ulist = yyvsp[0].ulist; ;
2480 #line 606 "yaccParser/hsparser.y"
2481 { yyval.ulist = lsing(yyvsp[0].uhpragma); ;
2484 #line 607 "yaccParser/hsparser.y"
2485 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
2488 #line 612 "yaccParser/hsparser.y"
2489 { yyval.uhpragma = mkiname_pragma_pr(yyvsp[-2].uid, yyvsp[0].uhpragma); ;
2492 #line 621 "yaccParser/hsparser.y"
2493 { yyval.ucoresyn = mkcolam(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
2496 #line 623 "yaccParser/hsparser.y"
2497 { yyval.ucoresyn = mkcotylam(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
2500 #line 625 "yaccParser/hsparser.y"
2501 { yyval.ucoresyn = mkcocon(mkco_id(yyvsp[-2].uid), yyvsp[-1].ulist, yyvsp[0].ulist); ;
2504 #line 627 "yaccParser/hsparser.y"
2505 { yyval.ucoresyn = mkcocon(mkco_orig_id(yyvsp[-3].uid,yyvsp[-2].uid), yyvsp[-1].ulist, yyvsp[0].ulist); ;
2508 #line 629 "yaccParser/hsparser.y"
2509 { yyval.ucoresyn = mkcoprim(yyvsp[-2].ucoresyn, yyvsp[-1].ulist, yyvsp[0].ulist); ;
2512 #line 631 "yaccParser/hsparser.y"
2513 { yyval.ucoresyn = mkcoapp(yyvsp[-1].ucoresyn, yyvsp[0].ulist); ;
2516 #line 633 "yaccParser/hsparser.y"
2517 { yyval.ucoresyn = mkcotyapp(yyvsp[-3].ucoresyn, yyvsp[-1].uttype); ;
2520 #line 635 "yaccParser/hsparser.y"
2521 { yyval.ucoresyn = mkcocase(yyvsp[-4].ucoresyn, yyvsp[-1].ucoresyn); ;
2524 #line 637 "yaccParser/hsparser.y"
2525 { yyval.ucoresyn = mkcolet(mkcononrec(yyvsp[-5].ucoresyn, yyvsp[-3].ucoresyn), yyvsp[0].ucoresyn); ;
2528 #line 639 "yaccParser/hsparser.y"
2529 { yyval.ucoresyn = mkcolet(mkcorec(yyvsp[-3].ulist), yyvsp[0].ucoresyn); ;
2532 #line 641 "yaccParser/hsparser.y"
2533 { yyval.ucoresyn = mkcoscc(yyvsp[-2].ucoresyn, yyvsp[0].ucoresyn); ;
2536 #line 642 "yaccParser/hsparser.y"
2537 { yyval.ucoresyn = mkcoliteral(yyvsp[0].uliteral); ;
2540 #line 643 "yaccParser/hsparser.y"
2541 { yyval.ucoresyn = mkcovar(yyvsp[0].ucoresyn); ;
2544 #line 648 "yaccParser/hsparser.y"
2545 { yyval.ucoresyn = mkcoalg_alts(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
2548 #line 650 "yaccParser/hsparser.y"
2549 { yyval.ucoresyn = mkcoprim_alts(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
2552 #line 654 "yaccParser/hsparser.y"
2553 { yyval.ulist = Lnil; ;
2556 #line 655 "yaccParser/hsparser.y"
2557 { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
2560 #line 659 "yaccParser/hsparser.y"
2561 { yyval.ucoresyn = mkcoalg_alt(yyvsp[-4].ucoresyn, yyvsp[-3].ulist, yyvsp[-1].ucoresyn); ;
2564 #line 664 "yaccParser/hsparser.y"
2565 { yyval.ulist = Lnil; ;
2568 #line 665 "yaccParser/hsparser.y"
2569 { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
2572 #line 669 "yaccParser/hsparser.y"
2573 { yyval.ucoresyn = mkcoprim_alt(yyvsp[-3].uliteral, yyvsp[-1].ucoresyn); ;
2576 #line 673 "yaccParser/hsparser.y"
2577 { yyval.ucoresyn = mkconodeflt(); ;
2580 #line 674 "yaccParser/hsparser.y"
2581 { yyval.ucoresyn = mkcobinddeflt(yyvsp[-2].ucoresyn, yyvsp[0].ucoresyn); ;
2584 #line 678 "yaccParser/hsparser.y"
2585 { yyval.ulist = lsing(yyvsp[0].ucoresyn); ;
2588 #line 679 "yaccParser/hsparser.y"
2589 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
2592 #line 683 "yaccParser/hsparser.y"
2593 { yyval.ucoresyn = mkcorec_pair(yyvsp[-2].ucoresyn, yyvsp[0].ucoresyn); ;
2596 #line 687 "yaccParser/hsparser.y"
2597 { yyval.ucoresyn = mkco_preludedictscc(yyvsp[0].ucoresyn); ;
2600 #line 688 "yaccParser/hsparser.y"
2601 { yyval.ucoresyn = mkco_alldictscc(yyvsp[-2].uhstring,yyvsp[-1].uhstring,yyvsp[0].ucoresyn); ;
2604 #line 690 "yaccParser/hsparser.y"
2605 { yyval.ucoresyn = mkco_usercc(yyvsp[-4].uhstring,yyvsp[-3].uhstring,yyvsp[-2].uhstring,yyvsp[-1].ucoresyn,yyvsp[0].ucoresyn); ;
2608 #line 692 "yaccParser/hsparser.y"
2609 { yyval.ucoresyn = mkco_autocc(yyvsp[-4].ucoresyn,yyvsp[-3].uhstring,yyvsp[-2].uhstring,yyvsp[-1].ucoresyn,yyvsp[0].ucoresyn); ;
2612 #line 694 "yaccParser/hsparser.y"
2613 { yyval.ucoresyn = mkco_dictcc(yyvsp[-4].ucoresyn,yyvsp[-3].uhstring,yyvsp[-2].uhstring,yyvsp[-1].ucoresyn,yyvsp[0].ucoresyn); ;
2616 #line 696 "yaccParser/hsparser.y"
2617 { yyval.ucoresyn = mkco_scc_noncaf(); ;
2620 #line 697 "yaccParser/hsparser.y"
2621 { yyval.ucoresyn = mkco_scc_caf(); ;
2624 #line 699 "yaccParser/hsparser.y"
2625 { yyval.ucoresyn = mkco_scc_nondupd(); ;
2628 #line 700 "yaccParser/hsparser.y"
2629 { yyval.ucoresyn = mkco_scc_dupd(); ;
2632 #line 703 "yaccParser/hsparser.y"
2633 { yyval.ucoresyn = mkco_sdselid(yyvsp[-1].uid, yyvsp[0].uid); ;
2636 #line 704 "yaccParser/hsparser.y"
2637 { yyval.ucoresyn = mkco_classopid(yyvsp[-1].uid, yyvsp[0].uid); ;
2640 #line 705 "yaccParser/hsparser.y"
2641 { yyval.ucoresyn = mkco_defmid(yyvsp[-1].uid, yyvsp[0].uid); ;
2644 #line 707 "yaccParser/hsparser.y"
2645 { yyval.ucoresyn = mkco_dfunid(yyvsp[-3].uid, yyvsp[-1].uttype); ;
2648 #line 709 "yaccParser/hsparser.y"
2649 { yyval.ucoresyn = mkco_constmid(yyvsp[-4].uid, yyvsp[-3].uid, yyvsp[-1].uttype); ;
2652 #line 711 "yaccParser/hsparser.y"
2653 { yyval.ucoresyn = mkco_specid(yyvsp[-3].ucoresyn, yyvsp[-1].ulist); ;
2656 #line 712 "yaccParser/hsparser.y"
2657 { yyval.ucoresyn = mkco_wrkrid(yyvsp[0].ucoresyn); ;
2660 #line 713 "yaccParser/hsparser.y"
2661 { yyval.ucoresyn = mkco_orig_id(yyvsp[-1].uid, yyvsp[0].uid); ;
2664 #line 714 "yaccParser/hsparser.y"
2665 { yyval.ucoresyn = mkco_orig_id(yyvsp[-1].uid, yyvsp[0].uid); ;
2668 #line 715 "yaccParser/hsparser.y"
2669 { yyval.ucoresyn = mkco_id(yyvsp[0].uid); ;
2672 #line 716 "yaccParser/hsparser.y"
2673 { yyval.ucoresyn = mkco_id(yyvsp[0].uid); ;
2676 #line 721 "yaccParser/hsparser.y"
2677 { yyval.ucoresyn = mkco_ccall(yyvsp[-5].uid,0,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
2680 #line 723 "yaccParser/hsparser.y"
2681 { yyval.ucoresyn = mkco_ccall(yyvsp[-5].uid,1,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
2684 #line 725 "yaccParser/hsparser.y"
2685 { yyval.ucoresyn = mkco_casm(yyvsp[-5].uliteral,0,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
2688 #line 727 "yaccParser/hsparser.y"
2689 { yyval.ucoresyn = mkco_casm(yyvsp[-5].uliteral,1,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
2692 #line 728 "yaccParser/hsparser.y"
2693 { yyval.ucoresyn = mkco_primop(yyvsp[0].uid); ;
2696 #line 732 "yaccParser/hsparser.y"
2697 { yyval.ulist = Lnil; ;
2700 #line 733 "yaccParser/hsparser.y"
2701 { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
2704 #line 737 "yaccParser/hsparser.y"
2705 { yyval.ucoresyn = mkcobinder(yyvsp[-3].uid, yyvsp[-1].uttype); ;
2708 #line 740 "yaccParser/hsparser.y"
2709 { yyval.ulist = Lnil; ;
2712 #line 741 "yaccParser/hsparser.y"
2713 { yyval.ulist = yyvsp[-1].ulist; ;
2716 #line 745 "yaccParser/hsparser.y"
2717 { yyval.ulist = lsing(yyvsp[0].ucoresyn); ;
2720 #line 746 "yaccParser/hsparser.y"
2721 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
2724 #line 750 "yaccParser/hsparser.y"
2725 { yyval.ucoresyn = mkcolit(yyvsp[0].uliteral); ;
2728 #line 751 "yaccParser/hsparser.y"
2729 { yyval.ucoresyn = mkcolocal(yyvsp[0].ucoresyn); ;
2732 #line 755 "yaccParser/hsparser.y"
2733 { yyval.ulist = lsing(yyvsp[0].uid); ;
2736 #line 756 "yaccParser/hsparser.y"
2737 { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].uid); ;
2740 #line 760 "yaccParser/hsparser.y"
2741 { yyval.ulist = lsing(yyvsp[0].uid); ;
2744 #line 761 "yaccParser/hsparser.y"
2745 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uid); ;
2748 #line 765 "yaccParser/hsparser.y"
2749 { yyval.ulist = Lnil; ;
2752 #line 766 "yaccParser/hsparser.y"
2753 { yyval.ulist = yyvsp[-1].ulist; ;
2756 #line 770 "yaccParser/hsparser.y"
2757 { yyval.ulist = lsing(yyvsp[0].uttype); ;
2760 #line 771 "yaccParser/hsparser.y"
2761 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uttype); ;
2764 #line 775 "yaccParser/hsparser.y"
2765 { yyval.uttype = yyvsp[0].uttype; ;
2768 #line 795 "yaccParser/hsparser.y"
2769 { yyval.ulist = lsing(yyvsp[0].uttype); ;
2772 #line 796 "yaccParser/hsparser.y"
2773 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uttype); ;
2776 #line 800 "yaccParser/hsparser.y"
2777 { yyval.uttype = mkty_maybe_nothing(); ;
2780 #line 801 "yaccParser/hsparser.y"
2781 { yyval.uttype = mkty_maybe_just(yyvsp[0].uttype); ;
2784 #line 807 "yaccParser/hsparser.y"
2786 if ( implicitPrelude && !etags ) {
2787 /* we try to avoid reading interfaces when etagging */
2788 find_module_on_imports_dirlist(
2789 (haskell1_3Flag) ? "PrelCore13" : "PreludeCore",
2790 TRUE,interface_filename);
2792 find_module_on_imports_dirlist("PreludeNull_",TRUE,interface_filename);
2794 thisIfacePragmaVersion = 0;
2795 setyyin(interface_filename);
2800 #line 821 "yaccParser/hsparser.y"
2802 binding prelude_core = mkimport(installid(iface_name),Lnil,Lnil,yyvsp[0].ubinding,xstrdup(interface_filename),hsplineno);
2803 prelude_core_import = implicitPrelude? lsing(prelude_core): Lnil;
2808 #line 829 "yaccParser/hsparser.y"
2810 if ( implicitPrelude && !etags ) {
2811 find_module_on_imports_dirlist(
2812 ( haskell1_3Flag ) ? "Prel13" : "Prelude",
2813 TRUE,interface_filename);
2815 find_module_on_imports_dirlist("PreludeNull_",TRUE,interface_filename);
2817 thisIfacePragmaVersion = 0;
2818 setyyin(interface_filename);
2823 #line 842 "yaccParser/hsparser.y"
2825 binding prelude = mkimport(installid(iface_name),Lnil,Lnil,yyvsp[0].ubinding,xstrdup(interface_filename),hsplineno);
2826 prelude_imports = (! implicitPrelude) ? Lnil
2827 : lconc(prelude_core_import,lsing(prelude));
2831 #line 849 "yaccParser/hsparser.y"
2832 { yyval.ulist = Lnil; ;
2835 #line 850 "yaccParser/hsparser.y"
2836 { yyval.ulist = yyvsp[-1].ulist; ;
2839 #line 853 "yaccParser/hsparser.y"
2840 { yyval.ulist = yyvsp[0].ulist; ;
2843 #line 854 "yaccParser/hsparser.y"
2844 { yyval.ulist = lconc(yyvsp[-2].ulist,yyvsp[0].ulist); ;
2847 #line 858 "yaccParser/hsparser.y"
2848 { /* filename returned in "interface_filename" */
2849 char *module_name = id_to_string(yyvsp[0].uid);
2851 find_module_on_imports_dirlist(
2852 (haskell1_3Flag && strcmp(module_name, "Prelude") == 0)
2853 ? "Prel13" : module_name,
2854 FALSE, interface_filename);
2856 find_module_on_imports_dirlist("PreludeNull_",TRUE,interface_filename);
2858 thisIfacePragmaVersion = 0;
2859 setyyin(interface_filename);
2861 if (strcmp(module_name,"PreludeCore")==0) {
2862 hsperror("Cannot explicitly import `PreludeCore'");
2864 } else if (strcmp(module_name,"Prelude")==0) {
2865 prelude_imports = prelude_core_import; /* unavoidable */
2870 #line 879 "yaccParser/hsparser.y"
2873 yyvsp[0].ubinding->tag = hiding;
2874 yyval.ulist = lsing(yyvsp[0].ubinding);
2878 #line 887 "yaccParser/hsparser.y"
2879 { yyval.ubinding = mkimport(installid(iface_name),yyvsp[0].ulist,Lnil,yyvsp[-1].ubinding,xstrdup(interface_filename),hsplineno); ;
2882 #line 890 "yaccParser/hsparser.y"
2883 { yyval.ubinding = mkimport(installid(iface_name),yyvsp[-2].ulist,yyvsp[0].ulist,yyvsp[-3].ubinding,xstrdup(interface_filename),hsplineno); ;
2886 #line 895 "yaccParser/hsparser.y"
2888 exposeis(); /* partain: expose infix ops at level i+1 to level i */
2889 yyval.ubinding = yyvsp[-1].ubinding;
2893 #line 901 "yaccParser/hsparser.y"
2894 { yyval.ulist = yyvsp[-1].ulist; ;
2897 #line 905 "yaccParser/hsparser.y"
2898 { yyval.ulist = lsing(yyvsp[0].ulist); ;
2901 #line 906 "yaccParser/hsparser.y"
2902 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].ulist); ;
2905 #line 909 "yaccParser/hsparser.y"
2906 { yyval.ulist = ldub(yyvsp[-2].uid,yyvsp[0].uid); ;
2909 #line 910 "yaccParser/hsparser.y"
2910 { yyval.ulist = ldub(yyvsp[-2].uid,yyvsp[0].uid); ;
2913 #line 913 "yaccParser/hsparser.y"
2914 { yyval.ubinding = mknullbind(); ;
2917 #line 914 "yaccParser/hsparser.y"
2918 { yyval.ubinding = yyvsp[-1].ubinding; ;
2921 #line 917 "yaccParser/hsparser.y"
2922 { yyval.ubinding = yyvsp[0].ubinding; ;
2925 #line 918 "yaccParser/hsparser.y"
2926 { yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding); ;
2929 #line 922 "yaccParser/hsparser.y"
2930 { yyval.ubinding = mkmbind(yyvsp[-3].uid,yyvsp[-1].ulist,Lnil,startlineno); ;
2933 #line 924 "yaccParser/hsparser.y"
2934 { yyval.ubinding = mkmbind(yyvsp[-5].uid,yyvsp[-3].ulist,yyvsp[0].ulist,startlineno); ;
2937 #line 930 "yaccParser/hsparser.y"
2938 { /* OLD 95/08: fixlist = Lnil; */
2939 strcpy(iface_name, id_to_string(yyvsp[0].uid));
2943 #line 934 "yaccParser/hsparser.y"
2945 /* WDP: not only do we not check the module name
2946 but we take the one in the interface to be what we really want
2947 -- we need this for Prelude jiggery-pokery. (Blech. KH)
2948 ToDo: possibly revert....
2949 checkmodname(modname,id_to_string($2));
2951 yyval.ubinding = yyvsp[0].ubinding;
2955 #line 947 "yaccParser/hsparser.y"
2957 yyval.ubinding = mkabind(yyvsp[-3].ubinding,yyvsp[-1].ubinding);
2961 #line 951 "yaccParser/hsparser.y"
2963 yyval.ubinding = yyvsp[-1].ubinding;
2967 #line 955 "yaccParser/hsparser.y"
2969 yyval.ubinding = mkabind(yyvsp[-3].ubinding,yyvsp[-1].ubinding);
2973 #line 959 "yaccParser/hsparser.y"
2975 yyval.ubinding = yyvsp[-1].ubinding;
2979 #line 974 "yaccParser/hsparser.y"
2980 { Precedence = checkfixity(yyvsp[0].ustring); Fixity = INFIXL; ;
2983 #line 977 "yaccParser/hsparser.y"
2984 { Precedence = checkfixity(yyvsp[0].ustring); Fixity = INFIXR; ;
2987 #line 980 "yaccParser/hsparser.y"
2988 { Precedence = checkfixity(yyvsp[0].ustring); Fixity = INFIX; ;
2991 #line 983 "yaccParser/hsparser.y"
2992 { Fixity = INFIXL; Precedence = 9; ;
2995 #line 986 "yaccParser/hsparser.y"
2996 { Fixity = INFIXR; Precedence = 9; ;
2999 #line 989 "yaccParser/hsparser.y"
3000 { Fixity = INFIX; Precedence = 9; ;
3003 #line 993 "yaccParser/hsparser.y"
3004 { makeinfix(id_to_string(yyvsp[0].uid),Fixity,Precedence); ;
3007 #line 994 "yaccParser/hsparser.y"
3008 { makeinfix(id_to_string(yyvsp[0].uid),Fixity,Precedence); ;
3011 #line 999 "yaccParser/hsparser.y"
3013 if(yyvsp[-2].ubinding != NULL)
3014 if(yyvsp[0].ubinding != NULL)
3017 extendfn(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3018 yyval.ubinding = yyvsp[-2].ubinding;
3021 yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3023 yyval.ubinding = yyvsp[-2].ubinding;
3025 yyval.ubinding = yyvsp[0].ubinding;
3030 #line 1017 "yaccParser/hsparser.y"
3031 { yyval.ubinding = yyvsp[0].ubinding; ;
3034 #line 1018 "yaccParser/hsparser.y"
3035 { yyval.ubinding = yyvsp[0].ubinding; ;
3038 #line 1019 "yaccParser/hsparser.y"
3039 { yyval.ubinding = yyvsp[0].ubinding; ;
3042 #line 1020 "yaccParser/hsparser.y"
3043 { yyval.ubinding = yyvsp[0].ubinding; ;
3046 #line 1021 "yaccParser/hsparser.y"
3047 { yyval.ubinding = yyvsp[0].ubinding; ;
3050 #line 1022 "yaccParser/hsparser.y"
3051 { yyval.ubinding = yyvsp[0].ubinding; ;
3054 #line 1025 "yaccParser/hsparser.y"
3055 { yyval.ubinding = mknbind(yyvsp[-2].uttype,yyvsp[0].uttype,startlineno,mkno_pragma()); ;
3058 #line 1030 "yaccParser/hsparser.y"
3059 { yyval.ubinding = mktbind(yyvsp[-4].ulist,yyvsp[-2].uttype,yyvsp[0].ulist,all,startlineno,mkno_pragma()); ;
3062 #line 1032 "yaccParser/hsparser.y"
3063 { yyval.ubinding = mktbind(Lnil,yyvsp[-2].uttype,yyvsp[0].ulist,all,startlineno,mkno_pragma()); ;
3066 #line 1034 "yaccParser/hsparser.y"
3067 { yyval.ubinding = mktbind(yyvsp[-6].ulist,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ;
3070 #line 1036 "yaccParser/hsparser.y"
3071 { yyval.ubinding = mktbind(Lnil,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ;
3074 #line 1039 "yaccParser/hsparser.y"
3075 { yyval.ubinding = mkcbind(yyvsp[-3].ulist,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
3078 #line 1040 "yaccParser/hsparser.y"
3079 { yyval.ubinding = mkcbind(Lnil,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
3082 #line 1043 "yaccParser/hsparser.y"
3083 { yyval.ubinding = mknullbind(); ;
3086 #line 1044 "yaccParser/hsparser.y"
3087 { checkorder(yyvsp[-1].ubinding); yyval.ubinding = yyvsp[-1].ubinding; ;
3090 #line 1045 "yaccParser/hsparser.y"
3091 { checkorder(yyvsp[-1].ubinding); yyval.ubinding =yyvsp[-1].ubinding; ;
3094 #line 1048 "yaccParser/hsparser.y"
3095 { yyval.ubinding = mkibind(yyvsp[-4].ulist,yyvsp[-2].uid,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
3098 #line 1049 "yaccParser/hsparser.y"
3099 { yyval.ubinding = mkibind(Lnil,yyvsp[-2].uid,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
3102 #line 1052 "yaccParser/hsparser.y"
3103 { yyval.ubinding = mknullbind(); ;
3106 #line 1053 "yaccParser/hsparser.y"
3107 { yyval.ubinding = yyvsp[-1].ubinding; ;
3110 #line 1054 "yaccParser/hsparser.y"
3111 { yyval.ubinding = yyvsp[-1].ubinding; ;
3114 #line 1057 "yaccParser/hsparser.y"
3115 { yyval.uttype = mktname(yyvsp[0].uid,Lnil); ;
3118 #line 1058 "yaccParser/hsparser.y"
3119 { yyval.uttype = yyvsp[-1].uttype; ;
3122 #line 1060 "yaccParser/hsparser.y"
3123 { yyval.uttype = mkttuple(yyvsp[-1].ulist); ;
3126 #line 1061 "yaccParser/hsparser.y"
3127 { yyval.uttype = mkttuple(Lnil); ;
3130 #line 1062 "yaccParser/hsparser.y"
3131 { yyval.uttype = mktllist(yyvsp[-1].uttype); ;
3134 #line 1063 "yaccParser/hsparser.y"
3135 { yyval.uttype = mktfun(yyvsp[-3].uttype,yyvsp[-1].uttype); ;
3138 #line 1066 "yaccParser/hsparser.y"
3139 { yyval.ubinding = mkdbind(yyvsp[0].ulist,startlineno); ;
3142 #line 1069 "yaccParser/hsparser.y"
3143 { yyval.ulist = mklcons(yyvsp[-3].uttype,yyvsp[-1].ulist); ;
3146 #line 1070 "yaccParser/hsparser.y"
3147 { yyval.ulist = lsing(yyvsp[0].uttype); ;
3150 #line 1079 "yaccParser/hsparser.y"
3154 extendfn(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3155 yyval.ubinding = yyvsp[-2].ubinding;
3158 yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3162 #line 1108 "yaccParser/hsparser.y"
3163 { /* type2context.c for code */
3164 yyval.ubinding = mksbind(yyvsp[-5].ulist,mkcontext(type2context(yyvsp[-3].uttype),yyvsp[-1].uttype),startlineno,yyvsp[0].uhpragma);
3165 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3169 #line 1113 "yaccParser/hsparser.y"
3171 yyval.ubinding = mksbind(yyvsp[-3].ulist,yyvsp[-1].uttype,startlineno,yyvsp[0].uhpragma);
3172 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3176 #line 1126 "yaccParser/hsparser.y"
3178 yyval.ubinding = mkvspec_uprag(yyvsp[-3].uid, yyvsp[-1].ulist, startlineno);
3179 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3183 #line 1132 "yaccParser/hsparser.y"
3185 yyval.ubinding = mkispec_uprag(yyvsp[-2].uid, yyvsp[-1].uttype, startlineno);
3186 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3190 #line 1138 "yaccParser/hsparser.y"
3192 yyval.ubinding = mkdspec_uprag(yyvsp[-2].uid, yyvsp[-1].ulist, startlineno);
3193 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3197 #line 1144 "yaccParser/hsparser.y"
3199 yyval.ubinding = mkinline_uprag(yyvsp[-2].uid, yyvsp[-1].ulist, startlineno);
3200 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3204 #line 1150 "yaccParser/hsparser.y"
3206 yyval.ubinding = mkmagicuf_uprag(yyvsp[-2].uid, yyvsp[-1].uid, startlineno);
3207 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3211 #line 1156 "yaccParser/hsparser.y"
3213 yyval.ubinding = mkdeforest_uprag(yyvsp[-1].uid, startlineno);
3214 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3218 #line 1162 "yaccParser/hsparser.y"
3220 yyval.ubinding = mkabstract_uprag(yyvsp[-1].uid, startlineno);
3221 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3225 #line 1170 "yaccParser/hsparser.y"
3226 { yyval.ubinding = mknullbind(); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ;
3229 #line 1174 "yaccParser/hsparser.y"
3230 { yyval.ulist = Lnil; ;
3233 #line 1175 "yaccParser/hsparser.y"
3234 { yyval.ulist = lsing(yyvsp[0].uid); ;
3237 #line 1178 "yaccParser/hsparser.y"
3238 { yyval.ulist = lsing(yyvsp[0].ubinding); ;
3241 #line 1179 "yaccParser/hsparser.y"
3242 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].ubinding); ;
3245 #line 1183 "yaccParser/hsparser.y"
3246 { yyval.ubinding = mkvspec_ty_and_id(yyvsp[0].uttype,Lnil); ;
3249 #line 1184 "yaccParser/hsparser.y"
3250 { yyval.ubinding = mkvspec_ty_and_id(yyvsp[-2].uttype,lsing(yyvsp[0].uid)); ;
3253 #line 1186 "yaccParser/hsparser.y"
3254 { yyval.ubinding = yyvsp[0].ubinding; ;
3257 #line 1187 "yaccParser/hsparser.y"
3258 { yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding); ;
3261 #line 1190 "yaccParser/hsparser.y"
3262 { yyval.ubinding = yyvsp[0].ubinding; ;
3265 #line 1191 "yaccParser/hsparser.y"
3266 { yyval.ubinding = yyvsp[0].ubinding; ;
3269 #line 1192 "yaccParser/hsparser.y"
3270 { yyval.ubinding = yyvsp[0].ubinding; ;
3273 #line 1193 "yaccParser/hsparser.y"
3274 { yyval.ubinding = yyvsp[0].ubinding; ;
3277 #line 1194 "yaccParser/hsparser.y"
3278 { yyval.ubinding = yyvsp[0].ubinding; ;
3281 #line 1195 "yaccParser/hsparser.y"
3282 { yyval.ubinding = mknullbind(); ;
3285 #line 1200 "yaccParser/hsparser.y"
3286 { yyval.ubinding = mksbind(yyvsp[-5].ulist,mkcontext(type2context(yyvsp[-3].uttype),yyvsp[-1].uttype),startlineno,yyvsp[0].uhpragma); ;
3289 #line 1202 "yaccParser/hsparser.y"
3290 { yyval.ubinding = mksbind(yyvsp[-3].ulist,yyvsp[-1].uttype,startlineno,yyvsp[0].uhpragma); ;
3293 #line 1206 "yaccParser/hsparser.y"
3294 { yyval.ubinding = mknbind(yyvsp[-3].uttype,yyvsp[-1].uttype,startlineno,yyvsp[0].uhpragma); ;
3297 #line 1210 "yaccParser/hsparser.y"
3298 { yyval.ubinding = mktbind(yyvsp[-3].ulist,yyvsp[-1].uttype,Lnil,Lnil,startlineno,yyvsp[0].uhpragma); ;
3301 #line 1212 "yaccParser/hsparser.y"
3302 { yyval.ubinding = mktbind(Lnil,yyvsp[-1].uttype,Lnil,Lnil,startlineno,yyvsp[0].uhpragma); ;
3305 #line 1214 "yaccParser/hsparser.y"
3306 { yyval.ubinding = mktbind(yyvsp[-5].ulist,yyvsp[-3].uttype,yyvsp[-1].ulist,Lnil,startlineno,yyvsp[0].uhpragma); ;
3309 #line 1216 "yaccParser/hsparser.y"
3310 { yyval.ubinding = mktbind(Lnil,yyvsp[-3].uttype,yyvsp[-1].ulist,Lnil,startlineno,yyvsp[0].uhpragma); ;
3313 #line 1218 "yaccParser/hsparser.y"
3314 { yyval.ubinding = mktbind(yyvsp[-6].ulist,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ;
3317 #line 1220 "yaccParser/hsparser.y"
3318 { yyval.ubinding = mktbind(Lnil,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ;
3321 #line 1224 "yaccParser/hsparser.y"
3322 { yyval.ubinding = mkcbind(yyvsp[-4].ulist,yyvsp[-2].uttype,yyvsp[0].ubinding,startlineno,yyvsp[-1].uhpragma); ;
3325 #line 1226 "yaccParser/hsparser.y"
3326 { yyval.ubinding = mkcbind(Lnil,yyvsp[-2].uttype,yyvsp[0].ubinding,startlineno,yyvsp[-1].uhpragma); ;
3329 #line 1230 "yaccParser/hsparser.y"
3330 { yyval.ubinding = mkibind(yyvsp[-4].ulist,yyvsp[-2].uid,yyvsp[-1].uttype,mknullbind(),startlineno,yyvsp[0].uhpragma); ;
3333 #line 1232 "yaccParser/hsparser.y"
3334 { yyval.ubinding = mkibind(Lnil,yyvsp[-2].uid,yyvsp[-1].uttype,mknullbind(),startlineno,yyvsp[0].uhpragma); ;
3337 #line 1238 "yaccParser/hsparser.y"
3338 { yyval.uttype = mktname(yyvsp[-1].uid,lsing(yyvsp[0].uttype)); ;
3341 #line 1242 "yaccParser/hsparser.y"
3342 { yyval.ulist = lsing(yyvsp[0].uttype); ;
3345 #line 1243 "yaccParser/hsparser.y"
3346 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uttype); ;
3349 #line 1246 "yaccParser/hsparser.y"
3350 { yyval.uttype = yyvsp[0].uttype; ;
3353 #line 1247 "yaccParser/hsparser.y"
3354 { yyval.uttype = mktfun(yyvsp[-2].uttype,yyvsp[0].uttype); ;
3357 #line 1250 "yaccParser/hsparser.y"
3358 { yyval.uttype = mkuniforall(yyvsp[-2].ulist, yyvsp[0].uttype); ;
3361 #line 1252 "yaccParser/hsparser.y"
3362 { yyval.uttype = yyvsp[0].uttype; ;
3365 #line 1253 "yaccParser/hsparser.y"
3366 { yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ;
3369 #line 1256 "yaccParser/hsparser.y"
3370 { yyval.ulist = lapp(yyvsp[-1].ulist,yyvsp[0].uttype); ;
3373 #line 1257 "yaccParser/hsparser.y"
3374 { yyval.ulist = lsing(yyvsp[0].uttype); ;
3377 #line 1261 "yaccParser/hsparser.y"
3378 { yyval.uttype = yyvsp[0].uttype; ;
3381 #line 1262 "yaccParser/hsparser.y"
3382 { yyval.uttype = mktfun(yyvsp[-2].uttype,yyvsp[0].uttype); ;
3385 #line 1263 "yaccParser/hsparser.y"
3386 { yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ;
3389 #line 1267 "yaccParser/hsparser.y"
3390 { yyval.uttype = mkttuple(mklcons(yyvsp[-3].uttype,yyvsp[-1].ulist)); ;
3393 #line 1270 "yaccParser/hsparser.y"
3394 { yyval.uttype = yyvsp[0].uttype; ;
3397 #line 1271 "yaccParser/hsparser.y"
3398 { yyval.uttype = mktname(yyvsp[0].uid,Lnil); ;
3401 #line 1272 "yaccParser/hsparser.y"
3402 { yyval.uttype = mkttuple(Lnil); ;
3405 #line 1273 "yaccParser/hsparser.y"
3406 { yyval.uttype = yyvsp[-1].uttype; ;
3409 #line 1274 "yaccParser/hsparser.y"
3410 { yyval.uttype = mktllist(yyvsp[-1].uttype); ;
3413 #line 1277 "yaccParser/hsparser.y"
3414 { yyval.uttype = mkunidict(yyvsp[-3].uid, yyvsp[-2].uttype); ;
3417 #line 1278 "yaccParser/hsparser.y"
3418 { yyval.uttype = mkunityvartemplate(yyvsp[0].uid); ;
3421 #line 1282 "yaccParser/hsparser.y"
3422 { yyval.uttype = mktname(yyvsp[0].uid,Lnil); ;
3425 #line 1283 "yaccParser/hsparser.y"
3426 { yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ;
3429 #line 1287 "yaccParser/hsparser.y"
3430 { yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ;
3433 #line 1293 "yaccParser/hsparser.y"
3434 { yyval.ulist = lsing(yyvsp[0].uatype); ;
3437 #line 1294 "yaccParser/hsparser.y"
3438 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uatype); ;
3441 #line 1298 "yaccParser/hsparser.y"
3442 { yyval.uatype = mkatc(yyvsp[-1].uid,yyvsp[0].ulist,hsplineno); ;
3445 #line 1299 "yaccParser/hsparser.y"
3446 { yyval.uatype = mkatc(yyvsp[-2].uid,yyvsp[0].ulist,hsplineno); ;
3449 #line 1300 "yaccParser/hsparser.y"
3450 { yyval.uatype = mkatc(yyvsp[0].uid,Lnil,hsplineno); ;
3453 #line 1301 "yaccParser/hsparser.y"
3454 { yyval.uatype = mkatc(yyvsp[-1].uid,Lnil,hsplineno); ;
3457 #line 1302 "yaccParser/hsparser.y"
3458 { yyval.uatype = mkatc(yyvsp[-1].uid, ldub(yyvsp[-2].uttype,yyvsp[0].uttype),hsplineno); ;
3461 #line 1305 "yaccParser/hsparser.y"
3462 { yyval.ulist = yyvsp[-1].ulist; ;
3465 #line 1306 "yaccParser/hsparser.y"
3466 { yyval.ulist = Lnil; ;
3469 #line 1307 "yaccParser/hsparser.y"
3470 { yyval.ulist = lsing(yyvsp[0].uid); ;
3473 #line 1310 "yaccParser/hsparser.y"
3474 { yyval.ulist = lsing(yyvsp[0].uid); ;
3477 #line 1311 "yaccParser/hsparser.y"
3478 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uid); ;
3481 #line 1314 "yaccParser/hsparser.y"
3482 { yyval.ulist = yyvsp[-1].ulist; ;
3485 #line 1315 "yaccParser/hsparser.y"
3486 { yyval.ulist = lsing(yyvsp[0].uttype); ;
3489 #line 1318 "yaccParser/hsparser.y"
3490 { yyval.ulist = lsing(yyvsp[0].uttype); ;
3493 #line 1319 "yaccParser/hsparser.y"
3494 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uttype); ;
3497 #line 1322 "yaccParser/hsparser.y"
3498 { yyval.ubinding = mknullbind(); ;
3501 #line 1323 "yaccParser/hsparser.y"
3502 { yyval.ubinding = yyvsp[0].ubinding; ;
3505 #line 1325 "yaccParser/hsparser.y"
3509 extendfn(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3510 yyval.ubinding = yyvsp[-2].ubinding;
3513 yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3517 #line 1339 "yaccParser/hsparser.y"
3519 yyval.ubinding = mkinline_uprag(yyvsp[-2].uid, yyvsp[-1].ulist, startlineno);
3520 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3524 #line 1345 "yaccParser/hsparser.y"
3526 yyval.ubinding = mkmagicuf_uprag(yyvsp[-2].uid, yyvsp[-1].uid, startlineno);
3527 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3531 #line 1354 "yaccParser/hsparser.y"
3532 { yyval.ulist = mklcons(yyvsp[-2].uid,yyvsp[0].ulist); ;
3535 #line 1355 "yaccParser/hsparser.y"
3536 { yyval.ulist = lsing(yyvsp[0].uid); ;
3539 #line 1359 "yaccParser/hsparser.y"
3540 { yyval.ulist = lsing(yyvsp[0].uid); ;
3543 #line 1360 "yaccParser/hsparser.y"
3544 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uid); ;
3547 #line 1363 "yaccParser/hsparser.y"
3548 { yyval.ulist = lsing(yyvsp[0].uid); ;
3551 #line 1364 "yaccParser/hsparser.y"
3552 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uid); ;
3555 #line 1369 "yaccParser/hsparser.y"
3557 tree fn = function(yyvsp[0].utree);
3559 PREVPATT = yyvsp[0].utree;
3561 if(ttree(fn) == ident)
3563 checksamefn(gident((struct Sident *) fn));
3567 else if (ttree(fn) == tinfixop && ttree(ginfun((struct Sap *) fn)) == ident)
3569 checksamefn(gident((struct Sident *) (ginfun((struct Sap *) fn))));
3570 FN = ginfun((struct Sap *) fn);
3575 printf("%u\n",startlineno);
3577 fprintf(stderr,"%u\tvaldef\n",startlineno);
3582 #line 1394 "yaccParser/hsparser.y"
3584 if ( lhs_is_patt(yyvsp[-2].utree) )
3586 yyval.ubinding = mkpbind(yyvsp[0].ulist, startlineno);
3590 else /* lhs is function */
3591 yyval.ubinding = mkfbind(yyvsp[0].ulist,startlineno);
3597 #line 1408 "yaccParser/hsparser.y"
3598 { yyval.ulist = lsing(createpat(yyvsp[-1].ulist, yyvsp[0].ubinding)); ;
3601 #line 1412 "yaccParser/hsparser.y"
3602 { yyval.ulist = lsing(mktruecase(yyvsp[0].utree)); ;
3605 #line 1415 "yaccParser/hsparser.y"
3606 { yyval.ulist = lsing(ldub(yyvsp[-2].utree,yyvsp[0].utree)); ;
3609 #line 1416 "yaccParser/hsparser.y"
3610 { yyval.ulist = mklcons(ldub(yyvsp[-3].utree,yyvsp[-1].utree),yyvsp[0].ulist); ;
3613 #line 1420 "yaccParser/hsparser.y"
3614 { yyval.ubinding = yyvsp[-1].ubinding; ;
3617 #line 1421 "yaccParser/hsparser.y"
3618 { yyval.ubinding = yyvsp[-1].ubinding; ;
3621 #line 1422 "yaccParser/hsparser.y"
3622 { yyval.ubinding = mknullbind(); ;
3625 #line 1425 "yaccParser/hsparser.y"
3626 { yyval.utree = yyvsp[0].utree; ;
3629 #line 1429 "yaccParser/hsparser.y"
3630 { yyval.ulist = mklcons(yyvsp[-1].utree,yyvsp[0].ulist); ;
3633 #line 1430 "yaccParser/hsparser.y"
3634 { yyval.ulist = lsing(yyvsp[0].utree); ;
3637 #line 1439 "yaccParser/hsparser.y"
3638 { yyval.utree = mkrestr(yyvsp[-4].utree,mkcontext(type2context(yyvsp[-2].uttype),yyvsp[0].uttype)); ;
3641 #line 1440 "yaccParser/hsparser.y"
3642 { yyval.utree = mkrestr(yyvsp[-2].utree,yyvsp[0].uttype); ;
3645 #line 1452 "yaccParser/hsparser.y"
3646 { yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree); precparse(yyval.utree); ;
3649 #line 1461 "yaccParser/hsparser.y"
3650 { yyval.utree = mknegate(yyvsp[0].utree); ;
3653 #line 1470 "yaccParser/hsparser.y"
3654 { /* enteriscope(); /? I don't understand this -- KH */
3655 hsincindent(); /* added by partain; push new context for */
3656 /* FN = NULL; not actually concerned about */
3657 FN = NULL; /* indenting */
3658 yyval.uint = hsplineno; /* remember current line number */
3662 #line 1477 "yaccParser/hsparser.y"
3663 { hsendindent(); /* added by partain */
3664 /* exitiscope(); /? Also not understood */
3668 #line 1481 "yaccParser/hsparser.y"
3670 yyval.utree = mklambda(yyvsp[-3].ulist, yyvsp[0].utree, yyvsp[-4].uint);
3674 #line 1486 "yaccParser/hsparser.y"
3675 { yyval.utree = mklet(yyvsp[-3].ubinding,yyvsp[0].utree); ;
3678 #line 1487 "yaccParser/hsparser.y"
3679 { yyval.utree = mklet(yyvsp[-3].ubinding,yyvsp[0].utree); ;
3682 #line 1490 "yaccParser/hsparser.y"
3683 { yyval.utree = mkife(yyvsp[-4].utree,yyvsp[-2].utree,yyvsp[0].utree); ;
3686 #line 1493 "yaccParser/hsparser.y"
3687 { yyval.utree = mkcasee(yyvsp[-4].utree,yyvsp[-1].ulist); ;
3690 #line 1494 "yaccParser/hsparser.y"
3691 { yyval.utree = mkcasee(yyvsp[-4].utree,yyvsp[-1].ulist); ;
3694 #line 1497 "yaccParser/hsparser.y"
3695 { yyval.utree = mkccall(yyvsp[-1].uid,installid("n"),yyvsp[0].ulist); ;
3698 #line 1498 "yaccParser/hsparser.y"
3699 { yyval.utree = mkccall(yyvsp[0].uid,installid("n"),Lnil); ;
3702 #line 1499 "yaccParser/hsparser.y"
3703 { yyval.utree = mkccall(yyvsp[-1].uid,installid("p"),yyvsp[0].ulist); ;
3706 #line 1500 "yaccParser/hsparser.y"
3707 { yyval.utree = mkccall(yyvsp[0].uid,installid("p"),Lnil); ;
3710 #line 1501 "yaccParser/hsparser.y"
3711 { yyval.utree = mkccall(yyvsp[-1].ustring,installid("N"),yyvsp[0].ulist); ;
3714 #line 1502 "yaccParser/hsparser.y"
3715 { yyval.utree = mkccall(yyvsp[0].ustring,installid("N"),Lnil); ;
3718 #line 1503 "yaccParser/hsparser.y"
3719 { yyval.utree = mkccall(yyvsp[-1].ustring,installid("P"),yyvsp[0].ulist); ;
3722 #line 1504 "yaccParser/hsparser.y"
3723 { yyval.utree = mkccall(yyvsp[0].ustring,installid("P"),Lnil); ;
3726 #line 1508 "yaccParser/hsparser.y"
3730 "\"%s\", line %d: _scc_ (`set [profiling] cost centre') ignored\n",
3731 input_filename, hsplineno);
3732 yyval.utree = yyvsp[0].utree;
3734 yyval.utree = mkscc(yyvsp[-1].uhstring, yyvsp[0].utree);
3739 #line 1523 "yaccParser/hsparser.y"
3740 { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
3743 #line 1527 "yaccParser/hsparser.y"
3744 { yyval.ulist = lapp(yyvsp[-1].ulist,yyvsp[0].utree); ;
3747 #line 1528 "yaccParser/hsparser.y"
3748 { yyval.ulist = lsing(yyvsp[0].utree); ;
3751 #line 1538 "yaccParser/hsparser.y"
3752 { yyval.utree = mkident(yyvsp[0].uid); ;
3755 #line 1539 "yaccParser/hsparser.y"
3756 { yyval.utree = mkident(yyvsp[0].uid); ;
3759 #line 1540 "yaccParser/hsparser.y"
3760 { yyval.utree = mklit(yyvsp[0].uliteral); ;
3763 #line 1541 "yaccParser/hsparser.y"
3764 { yyval.utree = mkpar(yyvsp[-1].utree); ;
3767 #line 1542 "yaccParser/hsparser.y"
3768 { checkprec(yyvsp[-2].utree,yyvsp[-1].uid,FALSE); yyval.utree = mklsection(yyvsp[-2].utree,yyvsp[-1].uid); ;
3771 #line 1543 "yaccParser/hsparser.y"
3772 { checkprec(yyvsp[-1].utree,yyvsp[-2].uid,TRUE); yyval.utree = mkrsection(yyvsp[-2].uid,yyvsp[-1].utree); ;
3775 #line 1547 "yaccParser/hsparser.y"
3776 { yyval.utree = mkpar(yyvsp[0].utree); ;
3779 #line 1548 "yaccParser/hsparser.y"
3780 { yyval.utree = mkpar(yyvsp[0].utree); ;
3783 #line 1549 "yaccParser/hsparser.y"
3784 { yyval.utree = mkpar(yyvsp[0].utree); ;
3787 #line 1552 "yaccParser/hsparser.y"
3788 { checkinpat(); yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
3791 #line 1553 "yaccParser/hsparser.y"
3792 { checkinpat(); yyval.utree = mkwildp(); ;
3795 #line 1554 "yaccParser/hsparser.y"
3796 { checkinpat(); yyval.utree = mklazyp(yyvsp[0].utree); ;
3799 #line 1569 "yaccParser/hsparser.y"
3801 yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree);
3803 if(isconstr(id_to_string(yyvsp[-1].uid)))
3804 precparse(yyval.utree);
3807 checkprec(yyvsp[-2].utree,yyvsp[-1].uid,FALSE); /* Check the precedence of the left pattern */
3808 checkprec(yyvsp[0].utree,yyvsp[-1].uid,TRUE); /* then check the right pattern */
3813 #line 1584 "yaccParser/hsparser.y"
3815 yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree);
3817 if(isconstr(id_to_string(yyvsp[-1].uid)))
3818 precparse(yyval.utree);
3821 checkprec(yyvsp[-2].utree,yyvsp[-1].uid,FALSE); /* Check the precedence of the left pattern */
3822 checkprec(yyvsp[0].utree,yyvsp[-1].uid,TRUE); /* then check the right pattern */
3827 #line 1603 "yaccParser/hsparser.y"
3828 { yyval.utree = mknegate(yyvsp[0].utree); ;
3831 #line 1608 "yaccParser/hsparser.y"
3832 { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
3835 #line 1612 "yaccParser/hsparser.y"
3836 { yyval.utree = mknegate(yyvsp[0].utree); ;
3839 #line 1617 "yaccParser/hsparser.y"
3840 { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
3843 #line 1621 "yaccParser/hsparser.y"
3844 { yyval.utree = mkident(yyvsp[0].uid); ;
3847 #line 1622 "yaccParser/hsparser.y"
3848 { yyval.utree = mkident(yyvsp[0].uid); ;
3851 #line 1623 "yaccParser/hsparser.y"
3852 { yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
3855 #line 1624 "yaccParser/hsparser.y"
3856 { yyval.utree = mklit(yyvsp[0].uliteral); ;
3859 #line 1625 "yaccParser/hsparser.y"
3860 { yyval.utree = mkwildp(); ;
3863 #line 1626 "yaccParser/hsparser.y"
3864 { yyval.utree = mktuple(Lnil); ;
3867 #line 1627 "yaccParser/hsparser.y"
3868 { yyval.utree = mkplusp(mkident(yyvsp[-3].uid),mkinteger(yyvsp[-1].ustring)); ;
3871 #line 1631 "yaccParser/hsparser.y"
3872 { yyval.utree = mkpar(yyvsp[-1].utree); ;
3875 #line 1632 "yaccParser/hsparser.y"
3876 { yyval.utree = mktuple(mklcons(yyvsp[-3].utree,yyvsp[-1].ulist)); ;
3879 #line 1633 "yaccParser/hsparser.y"
3880 { yyval.utree = mkllist(yyvsp[-1].ulist); ;
3883 #line 1634 "yaccParser/hsparser.y"
3884 { yyval.utree = mkllist(Lnil); ;
3887 #line 1635 "yaccParser/hsparser.y"
3888 { yyval.utree = mklazyp(yyvsp[0].utree); ;
3891 #line 1638 "yaccParser/hsparser.y"
3892 { yyval.utree = mkident(yyvsp[0].uid); ;
3895 #line 1639 "yaccParser/hsparser.y"
3896 { yyval.utree = mkident(yyvsp[0].uid); ;
3899 #line 1640 "yaccParser/hsparser.y"
3900 { yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
3903 #line 1641 "yaccParser/hsparser.y"
3904 { yyval.utree = mklit(yyvsp[0].uliteral); setstartlineno(); ;
3907 #line 1642 "yaccParser/hsparser.y"
3908 { yyval.utree = mkwildp(); setstartlineno(); ;
3911 #line 1643 "yaccParser/hsparser.y"
3912 { yyval.utree = mktuple(Lnil); ;
3915 #line 1644 "yaccParser/hsparser.y"
3916 { yyval.utree = mkplusp(mkident(yyvsp[-3].uid),mkinteger(yyvsp[-1].ustring)); ;
3919 #line 1648 "yaccParser/hsparser.y"
3920 { yyval.utree = mkpar(yyvsp[-1].utree); ;
3923 #line 1649 "yaccParser/hsparser.y"
3924 { yyval.utree = mktuple(mklcons(yyvsp[-3].utree,yyvsp[-1].ulist)); ;
3927 #line 1650 "yaccParser/hsparser.y"
3928 { yyval.utree = mkllist(yyvsp[-1].ulist); ;
3931 #line 1651 "yaccParser/hsparser.y"
3932 { yyval.utree = mkllist(Lnil); ;
3935 #line 1652 "yaccParser/hsparser.y"
3936 { yyval.utree = mklazyp(yyvsp[0].utree); ;
3939 #line 1657 "yaccParser/hsparser.y"
3940 { if (ttree(yyvsp[-1].utree) == tuple)
3941 yyval.utree = mktuple(mklcons(yyvsp[-3].utree, gtuplelist((struct Stuple *) yyvsp[-1].utree)));
3943 yyval.utree = mktuple(ldub(yyvsp[-3].utree, yyvsp[-1].utree));
3947 #line 1663 "yaccParser/hsparser.y"
3948 { yyval.utree = mktuple(Lnil); ;
3951 #line 1671 "yaccParser/hsparser.y"
3952 { yyval.utree = mkpar(yyvsp[0].utree); ;
3955 #line 1673 "yaccParser/hsparser.y"
3956 { if (ttree(yyvsp[0].utree) == tuple)
3957 yyval.utree = mktuple(mklcons(yyvsp[-2].utree, gtuplelist((struct Stuple *) yyvsp[0].utree)));
3959 yyval.utree = mktuple(ldub(yyvsp[-2].utree, yyvsp[0].utree));
3963 #line 1682 "yaccParser/hsparser.y"
3964 { yyval.utree = mkllist(Lnil); ;
3967 #line 1683 "yaccParser/hsparser.y"
3968 { yyval.utree = mkllist(yyvsp[-1].ulist); ;
3971 #line 1687 "yaccParser/hsparser.y"
3972 { yyval.ulist = lsing(yyvsp[0].utree); ;
3975 #line 1688 "yaccParser/hsparser.y"
3976 { yyval.ulist = mklcons(yyvsp[-2].utree, yyvsp[0].ulist); ;
3979 #line 1703 "yaccParser/hsparser.y"
3980 {yyval.utree = mkeenum(yyvsp[-5].utree,lsing(yyvsp[-3].utree),yyvsp[-1].ulist);;
3983 #line 1704 "yaccParser/hsparser.y"
3984 { yyval.utree = mkeenum(yyvsp[-3].utree,Lnil,yyvsp[-1].ulist); ;
3987 #line 1707 "yaccParser/hsparser.y"
3988 { yyval.utree = mkcomprh(yyvsp[-3].utree,yyvsp[-1].ulist); ;
3991 #line 1710 "yaccParser/hsparser.y"
3992 { yyval.ulist = lsing(yyvsp[0].utree); ;
3995 #line 1711 "yaccParser/hsparser.y"
3996 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].utree); ;
3999 #line 1714 "yaccParser/hsparser.y"
4003 #line 1714 "yaccParser/hsparser.y"
4007 #line 1715 "yaccParser/hsparser.y"
4008 { if (yyvsp[0].utree == NULL) {
4009 patternOrExpr(/*wanted:*/ LEGIT_EXPR,yyvsp[-2].utree);
4010 yyval.utree = mkguard(yyvsp[-2].utree);
4012 patternOrExpr(/*wanted:*/ LEGIT_PATT,yyvsp[-2].utree);
4013 yyval.utree = mkqual(yyvsp[-2].utree,yyvsp[0].utree);
4017 tree prevpatt_save = PREVPATT;
4019 $$ = mkdef((tree) mkpbind(lsing(createpat(lsing(mktruecase(ggdef((struct Sdef *) $4))),mknullbind())),hsplineno));
4020 PREVPATT = prevpatt_save;
4028 #line 1735 "yaccParser/hsparser.y"
4029 { yyval.utree = yyvsp[0].utree; ;
4032 #line 1736 "yaccParser/hsparser.y"
4033 { yyval.utree = NULL; ;
4036 #line 1739 "yaccParser/hsparser.y"
4037 { yyval.ulist = yyvsp[0].ulist; ;
4040 #line 1740 "yaccParser/hsparser.y"
4041 { yyval.ulist = lconc(yyvsp[-2].ulist,yyvsp[0].ulist); ;
4044 #line 1744 "yaccParser/hsparser.y"
4045 { PREVPATT = yyvsp[0].utree; ;
4048 #line 1746 "yaccParser/hsparser.y"
4049 { yyval.ulist = yyvsp[0].ulist;
4054 #line 1749 "yaccParser/hsparser.y"
4055 { yyval.ulist = Lnil; ;
4058 #line 1752 "yaccParser/hsparser.y"
4059 { yyval.ulist = lsing(createpat(yyvsp[-1].ulist, yyvsp[0].ubinding)); ;
4062 #line 1753 "yaccParser/hsparser.y"
4063 { yyval.ulist = lsing(createpat(lsing(mktruecase(yyvsp[-1].utree)), yyvsp[0].ubinding)); ;
4066 #line 1756 "yaccParser/hsparser.y"
4067 { yyval.ulist = mklcons(ldub(yyvsp[-3].utree,yyvsp[-1].utree),yyvsp[0].ulist); ;
4070 #line 1757 "yaccParser/hsparser.y"
4071 { yyval.ulist = lsing(ldub(yyvsp[-2].utree,yyvsp[0].utree)); ;
4074 #line 1760 "yaccParser/hsparser.y"
4075 { yyval.ulist = Lnil; ;
4078 #line 1761 "yaccParser/hsparser.y"
4079 { yyval.ulist = lsing(yyvsp[0].utree); ;
4082 #line 1764 "yaccParser/hsparser.y"
4083 { yyval.ulist = mklcons(yyvsp[-2].utree, yyvsp[0].ulist); ;
4086 #line 1765 "yaccParser/hsparser.y"
4087 { yyval.ulist = lsing(yyvsp[0].utree); ;
4090 #line 1770 "yaccParser/hsparser.y"
4091 { yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree); precparse(yyval.utree); ;
4094 #line 1775 "yaccParser/hsparser.y"
4095 { yyval.utree = mklit(mkinteger(ineg(yyvsp[0].ustring))); ;
4098 #line 1776 "yaccParser/hsparser.y"
4099 { yyval.utree = mklit(mkfloatr(ineg(yyvsp[0].ustring))); ;
4102 #line 1779 "yaccParser/hsparser.y"
4103 { yyval.utree = mkident(yyvsp[0].uid); ;
4106 #line 1780 "yaccParser/hsparser.y"
4107 { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
4110 #line 1783 "yaccParser/hsparser.y"
4111 { yyval.utree = mkident(yyvsp[0].uid); ;
4114 #line 1787 "yaccParser/hsparser.y"
4115 { yyval.utree = mkident(yyvsp[0].uid); ;
4118 #line 1788 "yaccParser/hsparser.y"
4119 { yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
4122 #line 1789 "yaccParser/hsparser.y"
4123 { yyval.utree = mklit(yyvsp[0].uliteral); ;
4126 #line 1790 "yaccParser/hsparser.y"
4127 { yyval.utree = mkwildp(); ;
4130 #line 1791 "yaccParser/hsparser.y"
4131 { yyval.utree = mktuple(Lnil); ;
4134 #line 1792 "yaccParser/hsparser.y"
4135 { yyval.utree = mkplusp(mkident(yyvsp[-3].uid),mkinteger(yyvsp[-1].ustring)); ;
4138 #line 1796 "yaccParser/hsparser.y"
4139 { yyval.utree = mkpar(yyvsp[-1].utree); ;
4142 #line 1797 "yaccParser/hsparser.y"
4143 { yyval.utree = mktuple(mklcons(yyvsp[-3].utree,yyvsp[-1].ulist)); ;
4146 #line 1798 "yaccParser/hsparser.y"
4147 { yyval.utree = mkllist(yyvsp[-1].ulist); ;
4150 #line 1799 "yaccParser/hsparser.y"
4151 { yyval.utree = mkllist(Lnil); ;
4154 #line 1800 "yaccParser/hsparser.y"
4155 { yyval.utree = mklazyp(yyvsp[0].utree); ;
4158 #line 1804 "yaccParser/hsparser.y"
4159 { yyval.uliteral = mkinteger(yyvsp[0].ustring); ;
4162 #line 1805 "yaccParser/hsparser.y"
4163 { yyval.uliteral = mkfloatr(yyvsp[0].ustring); ;
4166 #line 1806 "yaccParser/hsparser.y"
4167 { yyval.uliteral = mkcharr(yyvsp[0].uhstring); ;
4170 #line 1807 "yaccParser/hsparser.y"
4171 { yyval.uliteral = mkstring(yyvsp[0].uhstring); ;
4174 #line 1808 "yaccParser/hsparser.y"
4175 { yyval.uliteral = mkcharprim(yyvsp[0].uhstring); ;
4178 #line 1809 "yaccParser/hsparser.y"
4179 { yyval.uliteral = mkstringprim(yyvsp[0].uhstring); ;
4182 #line 1810 "yaccParser/hsparser.y"
4183 { yyval.uliteral = mkintprim(yyvsp[0].ustring); ;
4186 #line 1811 "yaccParser/hsparser.y"
4187 { yyval.uliteral = mkfloatprim(yyvsp[0].ustring); ;
4190 #line 1812 "yaccParser/hsparser.y"
4191 { yyval.uliteral = mkdoubleprim(yyvsp[0].ustring); ;
4194 #line 1813 "yaccParser/hsparser.y"
4195 { yyval.uliteral = mkclitlit(yyvsp[0].ustring, ""); ;
4198 #line 1814 "yaccParser/hsparser.y"
4199 { yyval.uliteral = mkclitlit(yyvsp[-2].ustring, yyvsp[0].uid); ;
4202 #line 1815 "yaccParser/hsparser.y"
4203 { yyval.uliteral = mknorepi(yyvsp[0].ustring); ;
4206 #line 1816 "yaccParser/hsparser.y"
4207 { yyval.uliteral = mknorepr(yyvsp[-1].ustring, yyvsp[0].ustring); ;
4210 #line 1817 "yaccParser/hsparser.y"
4211 { yyval.uliteral = mknoreps(yyvsp[0].uhstring); ;
4214 #line 1823 "yaccParser/hsparser.y"
4215 { setstartlineno(); ;
4218 #line 1826 "yaccParser/hsparser.y"
4222 printf("%u\n",startlineno);
4224 fprintf(stderr,"%u\tdata\n",startlineno);
4229 #line 1836 "yaccParser/hsparser.y"
4233 printf("%u\n",startlineno);
4235 fprintf(stderr,"%u\ttype\n",startlineno);
4240 #line 1846 "yaccParser/hsparser.y"
4244 printf("%u\n",startlineno);
4247 fprintf(stderr,"%u\tinstance\n",startlineno);
4252 #line 1857 "yaccParser/hsparser.y"
4253 { setstartlineno(); ;
4256 #line 1860 "yaccParser/hsparser.y"
4260 printf("%u\n",startlineno);
4262 fprintf(stderr,"%u\tclass\n",startlineno);
4267 #line 1870 "yaccParser/hsparser.y"
4268 { setstartlineno(); ;
4271 #line 1873 "yaccParser/hsparser.y"
4275 printf("%u\n",startlineno);
4277 fprintf(stderr,"%u\tmodule\n",startlineno);
4282 #line 1883 "yaccParser/hsparser.y"
4283 { setstartlineno(); ;
4286 #line 1886 "yaccParser/hsparser.y"
4287 { setstartlineno(); ;
4290 #line 1889 "yaccParser/hsparser.y"
4291 { setstartlineno(); ;
4294 #line 1904 "yaccParser/hsparser.y"
4295 { yyval.uid = yyvsp[-1].uid; ;
4298 #line 1910 "yaccParser/hsparser.y"
4299 { yyval.uid = yyvsp[-1].uid; ;
4302 #line 1914 "yaccParser/hsparser.y"
4303 { yyval.uid = yyvsp[-1].uid; ;
4306 #line 1922 "yaccParser/hsparser.y"
4307 { yyval.uid = install_literal("-"); ;
4310 #line 1925 "yaccParser/hsparser.y"
4311 { yyval.uid = install_literal("+"); ;
4314 #line 1929 "yaccParser/hsparser.y"
4315 { yyval.uid = yyvsp[-1].uid; ;
4318 #line 1932 "yaccParser/hsparser.y"
4319 { setstartlineno(); yyval.uid = yyvsp[0].uid; ;
4322 #line 1933 "yaccParser/hsparser.y"
4323 { yyval.uid = yyvsp[-1].uid; ;
4326 #line 1938 "yaccParser/hsparser.y"
4327 { yyval.uid = yyvsp[-1].uid; ;
4330 #line 1941 "yaccParser/hsparser.y"
4331 { setstartlineno(); yyval.uid = yyvsp[0].uid; ;
4334 #line 1942 "yaccParser/hsparser.y"
4335 { yyval.uid = yyvsp[-1].uid; ;
4338 #line 1950 "yaccParser/hsparser.y"
4339 { yyval.ulist = mklcons(yyvsp[-2].uttype,lsing(yyvsp[0].uttype)); ;
4342 #line 1951 "yaccParser/hsparser.y"
4343 { yyval.ulist = mklcons(yyvsp[-2].uttype,yyvsp[0].ulist); ;
4346 #line 1955 "yaccParser/hsparser.y"
4347 { yyval.ulist = lsing(yyvsp[0].uttype); ;
4350 #line 1956 "yaccParser/hsparser.y"
4351 { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].uttype); ;
4354 #line 1959 "yaccParser/hsparser.y"
4355 { yyval.uttype = mknamedtvar(yyvsp[0].uid); ;
4358 #line 1975 "yaccParser/hsparser.y"
4362 #line 1977 "yaccParser/hsparser.y"
4366 #line 1980 "yaccParser/hsparser.y"
4370 #line 1985 "yaccParser/hsparser.y"
4372 FN = NULL; SAMEFN = 0; PREVPATT = NULL;
4377 #line 1991 "yaccParser/hsparser.y"
4378 { expect_ccurly = 1; ;
4381 #line 1991 "yaccParser/hsparser.y"
4382 { expect_ccurly = 0; ;
4385 #line 1996 "yaccParser/hsparser.y"
4387 FN = NULL; SAMEFN = 0; PREVPATT = NULL;
4392 #line 2001 "yaccParser/hsparser.y"
4395 FN = NULL; SAMEFN = 0; PREVPATT = NULL;
4400 /* the action file gets copied in in place of this dollarsign */
4401 #line 487 "/usr/local/gnu/share/bison.simple"
4412 short *ssp1 = yyss - 1;
4413 fprintf (stderr, "state stack now");
4414 while (ssp1 != yyssp)
4415 fprintf (stderr, " %d", *++ssp1);
4416 fprintf (stderr, "\n");
4426 yylsp->first_line = yylloc.first_line;
4427 yylsp->first_column = yylloc.first_column;
4428 yylsp->last_line = (yylsp-1)->last_line;
4429 yylsp->last_column = (yylsp-1)->last_column;
4434 yylsp->last_line = (yylsp+yylen-1)->last_line;
4435 yylsp->last_column = (yylsp+yylen-1)->last_column;
4439 /* Now "shift" the result of the reduction.
4440 Determine what state that goes to,
4441 based on the state we popped back to
4442 and the rule number reduced by. */
4446 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
4447 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4448 yystate = yytable[yystate];
4450 yystate = yydefgoto[yyn - YYNTBASE];
4454 yyerrlab: /* here on detecting error */
4457 /* If not already recovering from an error, report this error. */
4461 #ifdef YYERROR_VERBOSE
4462 yyn = yypact[yystate];
4464 if (yyn > YYFLAG && yyn < YYLAST)
4471 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
4472 for (x = (yyn < 0 ? -yyn : 0);
4473 x < (sizeof(yytname) / sizeof(char *)); x++)
4474 if (yycheck[x + yyn] == x)
4475 size += strlen(yytname[x]) + 15, count++;
4476 msg = (char *) malloc(size + 15);
4479 strcpy(msg, "parse error");
4484 for (x = (yyn < 0 ? -yyn : 0);
4485 x < (sizeof(yytname) / sizeof(char *)); x++)
4486 if (yycheck[x + yyn] == x)
4488 strcat(msg, count == 0 ? ", expecting `" : " or `");
4489 strcat(msg, yytname[x]);
4498 yyerror ("parse error; also virtual memory exceeded");
4501 #endif /* YYERROR_VERBOSE */
4502 yyerror("parse error");
4506 yyerrlab1: /* here on error raised explicitly by an action */
4508 if (yyerrstatus == 3)
4510 /* if just tried and failed to reuse lookahead token after an error, discard it. */
4512 /* return failure if at end of input */
4513 if (yychar == YYEOF)
4518 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
4524 /* Else will try to reuse lookahead token
4525 after shifting the error token. */
4527 yyerrstatus = 3; /* Each real token shifted decrements this */
4531 yyerrdefault: /* current state does not do anything special for the error token. */
4534 /* This is wrong; only states that explicitly want error tokens
4535 should shift them. */
4536 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
4537 if (yyn) goto yydefault;
4540 yyerrpop: /* pop the current state because it cannot handle the error token */
4542 if (yyssp == yyss) YYABORT;
4552 short *ssp1 = yyss - 1;
4553 fprintf (stderr, "Error: state stack now");
4554 while (ssp1 != yyssp)
4555 fprintf (stderr, " %d", *++ssp1);
4556 fprintf (stderr, "\n");
4562 yyn = yypact[yystate];
4567 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
4586 fprintf(stderr, "Shifting error token, ");
4597 #line 2008 "yaccParser/hsparser.y"
4600 /**********************************************************************
4602 * Error Processing and Reporting *
4604 * (This stuff is here in case we want to use Yacc macros and such.) *
4606 **********************************************************************/
4608 /* The parser calls "hsperror" when it sees a
4609 `report this and die' error. It sets the stage
4610 and calls "yyerror".
4612 There should be no direct calls in the parser to
4613 "yyerror", except for the one from "hsperror". Thus,
4614 the only other calls will be from the error productions
4615 introduced by yacc/bison/whatever.
4617 We need to be able to recognise the from-error-production
4618 case, because we sometimes want to say, "Oh, never mind",
4619 because the layout rule kicks into action and may save
4623 static BOOLEAN error_and_I_mean_it = FALSE;
4629 error_and_I_mean_it = TRUE;
4633 extern char *yytext;
4640 /* We want to be able to distinguish 'error'-raised yyerrors
4641 from yyerrors explicitly coded by the parser hacker.
4643 if (expect_ccurly && ! error_and_I_mean_it ) {
4647 fprintf(stderr, "\"%s\", line %d, column %d: %s on input: ",
4648 input_filename, hsplineno, hspcolno + 1, s);
4650 if (yyleng == 1 && *yytext == '\0')
4651 fprintf(stderr, "<EOF>");
4655 format_string(stderr, (unsigned char *) yytext, yyleng);
4658 fputc('\n', stderr);
4660 /* a common problem */
4661 if (strcmp(yytext, "#") == 0)
4662 fprintf(stderr, "\t(Perhaps you forgot a `-cpp' or `-fglasgow-exts' flag?)\n");
4669 format_string(fp, s, len)
4676 case '\0': fputs("\\NUL", fp); break;
4677 case '\007': fputs("\\a", fp); break;
4678 case '\010': fputs("\\b", fp); break;
4679 case '\011': fputs("\\t", fp); break;
4680 case '\012': fputs("\\n", fp); break;
4681 case '\013': fputs("\\v", fp); break;
4682 case '\014': fputs("\\f", fp); break;
4683 case '\015': fputs("\\r", fp); break;
4684 case '\033': fputs("\\ESC", fp); break;
4685 case '\034': fputs("\\FS", fp); break;
4686 case '\035': fputs("\\GS", fp); break;
4687 case '\036': fputs("\\RS", fp); break;
4688 case '\037': fputs("\\US", fp); break;
4689 case '\177': fputs("\\DEL", fp); break;
4694 fprintf(fp, "\\^%c", *s + '@');