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;
202 #line 99 "yaccParser/hsparser.y"
235 #define YYLTYPE yyltype
249 #define YYFLAG -32768
252 #define YYTRANSLATE(x) ((unsigned)(x) <= 374 ? yytranslate[x] : 343)
254 static const char yytranslate[] = { 0,
255 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
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, 1, 2, 3, 4, 5,
281 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
282 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
283 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
284 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
285 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
286 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
287 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
288 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
289 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
290 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
291 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
296 static const short yyprhs[] = { 0,
297 0, 4, 5, 12, 13, 16, 22, 28, 32, 36,
298 40, 44, 45, 49, 51, 55, 57, 59, 64, 69,
299 74, 78, 81, 85, 90, 93, 94, 96, 98, 102,
300 104, 106, 111, 116, 121, 125, 130, 134, 135, 138,
301 139, 141, 145, 149, 153, 154, 158, 159, 164, 165,
302 170, 176, 177, 180, 181, 185, 186, 188, 195, 197,
303 200, 202, 205, 207, 209, 211, 214, 218, 222, 223,
304 225, 228, 232, 234, 240, 242, 246, 248, 251, 253,
305 257, 263, 265, 269, 271, 273, 275, 279, 285, 289,
306 294, 299, 304, 311, 316, 320, 326, 333, 342, 349,
307 355, 357, 359, 363, 367, 368, 371, 377, 378, 381,
308 386, 388, 392, 394, 398, 402, 405, 410, 417, 424,
309 431, 433, 435, 437, 439, 443, 447, 451, 457, 464,
310 470, 473, 477, 481, 483, 485, 494, 503, 512, 521,
311 523, 524, 527, 533, 536, 540, 542, 546, 548, 550,
312 552, 555, 557, 561, 564, 568, 570, 574, 576, 578,
313 582, 584, 586, 587, 590, 591, 594, 595, 598, 600,
314 604, 605, 610, 613, 618, 621, 625, 627, 631, 635,
315 639, 640, 643, 645, 649, 655, 663, 664, 670, 676,
316 680, 686, 690, 691, 694, 696, 700, 701, 706, 707,
317 712, 713, 718, 719, 723, 724, 728, 729, 733, 735,
318 739, 741, 745, 747, 749, 751, 753, 755, 757, 762,
319 769, 774, 783, 790, 796, 800, 801, 806, 811, 818,
320 823, 824, 829, 834, 836, 841, 847, 850, 854, 860,
321 862, 867, 873, 876, 880, 886, 889, 895, 897, 899,
322 903, 910, 915, 921, 927, 933, 938, 943, 947, 951,
323 953, 954, 955, 957, 959, 963, 965, 969, 971, 975,
324 977, 979, 981, 983, 985, 986, 993, 998, 1004, 1010,
325 1014, 1022, 1028, 1037, 1044, 1051, 1056, 1063, 1068, 1071,
326 1073, 1077, 1079, 1083, 1088, 1090, 1093, 1096, 1098, 1100,
327 1104, 1107, 1109, 1115, 1117, 1119, 1122, 1126, 1130, 1137,
328 1139, 1141, 1144, 1146, 1150, 1153, 1158, 1160, 1164, 1168,
329 1172, 1175, 1177, 1179, 1183, 1187, 1189, 1191, 1195, 1196,
330 1198, 1202, 1208, 1213, 1218, 1220, 1224, 1226, 1228, 1232,
331 1234, 1238, 1239, 1243, 1246, 1248, 1251, 1255, 1260, 1265,
332 1270, 1271, 1274, 1277, 1279, 1285, 1289, 1291, 1293, 1297,
333 1300, 1302, 1303, 1304, 1311, 1318, 1325, 1332, 1339, 1346,
334 1350, 1353, 1357, 1360, 1364, 1367, 1371, 1374, 1378, 1380,
335 1383, 1385, 1388, 1390, 1392, 1394, 1396, 1400, 1405, 1410,
336 1412, 1414, 1416, 1418, 1422, 1424, 1427, 1429, 1433, 1435,
337 1439, 1442, 1444, 1447, 1449, 1452, 1454, 1457, 1459, 1461,
338 1463, 1467, 1469, 1471, 1474, 1480, 1484, 1490, 1494, 1497,
339 1500, 1502, 1504, 1508, 1510, 1512, 1515, 1521, 1525, 1531,
340 1535, 1538, 1541, 1547, 1550, 1552, 1556, 1559, 1563, 1565,
341 1569, 1577, 1583, 1589, 1591, 1595, 1596, 1597, 1602, 1605,
342 1606, 1608, 1612, 1613, 1617, 1618, 1621, 1625, 1630, 1634,
343 1635, 1637, 1641, 1643, 1645, 1649, 1651, 1653, 1656, 1659,
344 1661, 1664, 1666, 1668, 1670, 1674, 1676, 1678, 1681, 1687,
345 1691, 1697, 1701, 1704, 1707, 1709, 1711, 1713, 1715, 1717,
346 1719, 1721, 1723, 1725, 1727, 1731, 1734, 1738, 1741, 1743,
347 1745, 1747, 1749, 1751, 1753, 1755, 1757, 1759, 1761, 1763,
348 1765, 1767, 1769, 1771, 1773, 1777, 1779, 1781, 1785, 1787,
349 1791, 1793, 1795, 1797, 1799, 1801, 1803, 1807, 1809, 1813,
350 1815, 1819, 1821, 1825, 1827, 1829, 1831, 1835, 1837, 1840,
351 1842, 1844, 1846, 1848, 1851, 1853, 1854, 1856, 1857, 1860,
355 static const short yyrhs[] = { 184,
356 186, 121, 0, 0, 313, 335, 125, 122, 41, 124,
357 0, 0, 123, 124, 0, 336, 188, 203, 213, 339,
358 0, 337, 188, 203, 213, 340, 0, 337, 189, 340,
359 0, 336, 189, 339, 0, 337, 188, 340, 0, 336,
360 188, 339, 0, 0, 24, 126, 25, 0, 127, 0,
361 126, 26, 127, 0, 325, 0, 334, 0, 334, 24,
362 32, 25, 0, 334, 24, 256, 25, 0, 334, 24,
363 254, 25, 0, 334, 24, 25, 0, 334, 32, 0,
364 24, 130, 25, 0, 55, 24, 130, 25, 0, 24,
365 25, 0, 0, 128, 0, 131, 0, 130, 26, 131,
366 0, 325, 0, 334, 0, 334, 24, 32, 25, 0,
367 334, 24, 256, 25, 0, 334, 24, 254, 25, 0,
368 334, 24, 25, 0, 68, 246, 133, 69, 0, 68,
369 133, 69, 0, 0, 73, 134, 0, 0, 135, 0,
370 134, 26, 135, 0, 22, 154, 23, 0, 68, 72,
371 69, 0, 0, 68, 150, 69, 0, 0, 68, 142,
372 142, 69, 0, 0, 68, 140, 142, 69, 0, 68,
373 140, 142, 156, 69, 0, 0, 74, 335, 0, 0,
374 68, 142, 69, 0, 0, 71, 0, 143, 144, 145,
375 146, 148, 151, 0, 70, 0, 75, 8, 0, 70,
376 0, 76, 8, 0, 70, 0, 81, 0, 70, 0,
377 77, 89, 0, 77, 11, 147, 0, 18, 142, 19,
378 0, 0, 70, 0, 80, 326, 0, 79, 149, 158,
379 0, 107, 0, 108, 8, 8, 4, 8, 0, 142,
380 0, 150, 26, 142, 0, 70, 0, 73, 152, 0,
381 153, 0, 152, 26, 153, 0, 22, 154, 23, 8,
382 147, 0, 155, 0, 154, 26, 155, 0, 70, 0,
383 239, 0, 157, 0, 156, 26, 157, 0, 325, 30,
384 18, 142, 19, 0, 325, 30, 142, 0, 38, 172,
385 28, 158, 0, 88, 177, 28, 158, 0, 89, 327,
386 179, 174, 0, 89, 106, 335, 327, 179, 174, 0,
387 90, 171, 179, 174, 0, 91, 158, 174, 0, 92,
388 158, 18, 181, 19, 0, 42, 158, 43, 18, 159,
389 19, 0, 39, 18, 173, 30, 158, 19, 40, 158,
390 0, 98, 18, 165, 19, 40, 158, 0, 60, 18,
391 167, 19, 158, 0, 305, 0, 170, 0, 95, 160,
392 164, 0, 96, 162, 164, 0, 0, 160, 161, 0,
393 170, 172, 28, 158, 21, 0, 0, 162, 163, 0,
394 305, 28, 158, 21, 0, 97, 0, 173, 28, 158,
395 0, 166, 0, 165, 21, 166, 0, 173, 30, 158,
396 0, 112, 169, 0, 113, 11, 11, 169, 0, 114,
397 11, 11, 11, 169, 168, 0, 115, 170, 11, 11,
398 169, 168, 0, 116, 170, 11, 11, 169, 168, 0,
399 70, 0, 117, 0, 70, 0, 118, 0, 99, 334,
400 334, 0, 100, 334, 325, 0, 101, 334, 325, 0,
401 102, 334, 24, 181, 25, 0, 103, 334, 325, 24,
402 181, 25, 0, 104, 170, 22, 182, 23, 0, 105,
403 170, 0, 106, 335, 325, 0, 106, 335, 327, 0,
404 325, 0, 327, 0, 24, 56, 329, 18, 179, 181,
405 19, 25, 0, 24, 57, 329, 18, 179, 181, 19,
406 25, 0, 24, 58, 305, 18, 179, 181, 19, 25,
407 0, 24, 59, 305, 18, 179, 181, 19, 25, 0,
408 3, 0, 0, 172, 173, 0, 24, 3, 33, 181,
409 25, 0, 22, 23, 0, 22, 175, 23, 0, 176,
410 0, 175, 26, 176, 0, 305, 0, 170, 0, 3,
411 0, 177, 3, 0, 94, 0, 178, 26, 94, 0,
412 22, 23, 0, 22, 180, 23, 0, 181, 0, 180,
413 26, 181, 0, 239, 0, 183, 0, 182, 26, 183,
414 0, 70, 0, 181, 0, 0, 185, 193, 0, 0,
415 187, 193, 0, 0, 189, 21, 0, 190, 0, 189,
416 21, 190, 0, 0, 53, 335, 191, 192, 0, 193,
417 129, 0, 193, 129, 64, 194, 0, 200, 67, 0,
418 24, 195, 25, 0, 196, 0, 195, 26, 196, 0,
419 325, 66, 325, 0, 327, 66, 327, 0, 0, 198,
420 21, 0, 199, 0, 198, 21, 199, 0, 306, 335,
421 24, 130, 25, 0, 306, 335, 24, 130, 25, 64,
422 194, 0, 0, 54, 335, 201, 41, 202, 0, 336,
423 197, 203, 230, 339, 0, 336, 198, 339, 0, 337,
424 197, 203, 230, 340, 0, 337, 198, 340, 0, 0,
425 204, 21, 0, 205, 0, 204, 21, 205, 0, 0,
426 50, 8, 206, 212, 0, 0, 51, 8, 207, 212,
427 0, 0, 49, 8, 208, 212, 0, 0, 50, 209,
428 212, 0, 0, 51, 210, 212, 0, 0, 49, 211,
429 212, 0, 318, 0, 212, 26, 318, 0, 214, 0,
430 213, 21, 214, 0, 215, 0, 216, 0, 217, 0,
431 219, 0, 223, 0, 226, 0, 308, 245, 30, 239,
432 0, 307, 250, 31, 245, 30, 246, 0, 307, 245,
433 30, 246, 0, 307, 250, 31, 245, 30, 246, 65,
434 248, 0, 307, 245, 30, 246, 65, 248, 0, 311,
435 250, 31, 237, 218, 0, 311, 237, 218, 0, 0,
436 41, 336, 225, 339, 0, 41, 337, 225, 340, 0,
437 309, 250, 31, 333, 221, 220, 0, 309, 333, 222,
438 220, 0, 0, 41, 336, 252, 339, 0, 41, 337,
439 252, 340, 0, 334, 0, 24, 334, 331, 25, 0,
440 24, 332, 26, 330, 25, 0, 24, 25, 0, 22,
441 332, 23, 0, 24, 332, 28, 332, 25, 0, 334,
442 0, 24, 334, 241, 25, 0, 24, 239, 26, 238,
443 25, 0, 24, 25, 0, 22, 239, 23, 0, 24,
444 240, 28, 239, 25, 0, 310, 224, 0, 24, 239,
445 26, 238, 25, 0, 242, 0, 226, 0, 225, 21,
446 226, 0, 254, 33, 239, 31, 239, 138, 0, 254,
447 33, 239, 138, 0, 82, 326, 33, 228, 87, 0,
448 82, 47, 4, 222, 87, 0, 82, 45, 334, 241,
449 87, 0, 83, 326, 227, 87, 0, 84, 326, 326,
450 87, 0, 86, 326, 87, 0, 85, 334, 87, 0,
451 257, 0, 0, 0, 4, 0, 229, 0, 228, 26,
452 229, 0, 239, 0, 239, 30, 326, 0, 231, 0,
453 230, 21, 231, 0, 233, 0, 234, 0, 235, 0,
454 236, 0, 232, 0, 0, 254, 33, 239, 31, 239,
455 141, 0, 254, 33, 239, 141, 0, 308, 245, 30,
456 239, 136, 0, 307, 250, 31, 245, 132, 0, 307,
457 245, 132, 0, 307, 250, 31, 245, 30, 246, 132,
458 0, 307, 245, 30, 246, 132, 0, 307, 250, 31,
459 245, 30, 246, 65, 248, 0, 307, 245, 30, 246,
460 65, 248, 0, 311, 250, 31, 237, 137, 218, 0,
461 311, 237, 137, 218, 0, 309, 250, 31, 333, 222,
462 139, 0, 309, 333, 222, 139, 0, 334, 332, 0,
463 239, 0, 238, 26, 239, 0, 240, 0, 240, 28,
464 239, 0, 93, 178, 31, 239, 0, 243, 0, 334,
465 241, 0, 241, 243, 0, 243, 0, 244, 0, 240,
466 28, 239, 0, 334, 241, 0, 244, 0, 24, 239,
467 26, 238, 25, 0, 332, 0, 334, 0, 24, 25,
468 0, 24, 239, 25, 0, 22, 239, 23, 0, 18,
469 18, 4, 239, 19, 19, 0, 94, 0, 334, 0,
470 334, 331, 0, 247, 0, 246, 29, 247, 0, 334,
471 241, 0, 24, 6, 25, 241, 0, 334, 0, 24,
472 6, 25, 0, 240, 321, 240, 0, 24, 249, 25,
473 0, 24, 25, 0, 333, 0, 333, 0, 249, 26,
474 333, 0, 24, 251, 25, 0, 237, 0, 237, 0,
475 251, 26, 237, 0, 0, 253, 0, 252, 21, 253,
476 0, 82, 326, 33, 228, 87, 0, 83, 326, 227,
477 87, 0, 84, 326, 326, 87, 0, 257, 0, 326,
478 26, 255, 0, 326, 0, 325, 0, 255, 26, 325,
479 0, 327, 0, 256, 26, 327, 0, 0, 274, 258,
480 259, 0, 260, 262, 0, 261, 0, 30, 265, 0,
481 263, 30, 265, 0, 263, 30, 265, 261, 0, 41,
482 336, 225, 339, 0, 41, 337, 225, 340, 0, 0,
483 29, 266, 0, 303, 264, 0, 303, 0, 266, 33,
484 239, 31, 239, 0, 266, 33, 239, 0, 266, 0,
485 267, 0, 266, 318, 266, 0, 7, 268, 0, 268,
486 0, 0, 0, 38, 269, 264, 270, 28, 265, 0,
487 39, 336, 225, 339, 40, 265, 0, 39, 337, 225,
488 340, 40, 265, 0, 61, 265, 62, 265, 63, 265,
489 0, 42, 265, 43, 336, 293, 339, 0, 42, 265,
490 43, 337, 293, 340, 0, 56, 329, 272, 0, 56,
491 329, 0, 57, 329, 272, 0, 57, 329, 0, 58,
492 17, 272, 0, 58, 17, 0, 59, 17, 272, 0,
493 59, 17, 0, 60, 11, 265, 0, 271, 0, 271,
494 273, 0, 273, 0, 272, 273, 0, 273, 0, 325,
495 0, 327, 0, 305, 0, 24, 265, 25, 0, 24,
496 266, 318, 25, 0, 24, 317, 266, 25, 0, 282,
497 0, 284, 0, 286, 0, 287, 0, 325, 36, 273,
498 0, 35, 0, 37, 273, 0, 278, 0, 274, 318,
499 275, 0, 276, 0, 275, 318, 275, 0, 7, 277,
500 0, 277, 0, 277, 280, 0, 280, 0, 312, 277,
501 0, 279, 0, 279, 280, 0, 281, 0, 327, 0,
502 325, 0, 325, 36, 303, 0, 305, 0, 35, 0,
503 24, 25, 0, 24, 325, 119, 8, 25, 0, 24,
504 275, 25, 0, 24, 275, 26, 299, 25, 0, 22,
505 299, 23, 0, 22, 23, 0, 37, 303, 0, 328,
506 0, 326, 0, 326, 36, 303, 0, 305, 0, 35,
507 0, 314, 25, 0, 314, 325, 119, 8, 25, 0,
508 314, 275, 25, 0, 314, 275, 26, 299, 25, 0,
509 315, 299, 23, 0, 315, 23, 0, 316, 303, 0,
510 24, 265, 26, 283, 25, 0, 24, 25, 0, 265,
511 0, 265, 26, 283, 0, 22, 23, 0, 22, 285,
512 23, 0, 265, 0, 265, 26, 285, 0, 22, 265,
513 26, 265, 32, 298, 23, 0, 22, 265, 32, 298,
514 23, 0, 22, 265, 29, 288, 23, 0, 289, 0,
515 288, 26, 289, 0, 0, 0, 290, 265, 291, 292,
516 0, 34, 265, 0, 0, 294, 0, 293, 21, 294,
517 0, 0, 300, 295, 296, 0, 0, 297, 262, 0,
518 28, 265, 262, 0, 263, 28, 265, 297, 0, 263,
519 28, 265, 0, 0, 265, 0, 300, 26, 299, 0,
520 300, 0, 301, 0, 300, 321, 301, 0, 304, 0,
521 302, 0, 7, 8, 0, 7, 9, 0, 327, 0,
522 302, 303, 0, 327, 0, 304, 0, 325, 0, 325,
523 36, 303, 0, 305, 0, 35, 0, 24, 25, 0,
524 24, 325, 119, 8, 25, 0, 24, 300, 25, 0,
525 24, 300, 26, 299, 25, 0, 22, 299, 23, 0,
526 22, 23, 0, 37, 303, 0, 8, 0, 9, 0,
527 10, 0, 11, 0, 12, 0, 13, 0, 14, 0,
528 15, 0, 16, 0, 17, 0, 17, 78, 4, 0,
529 109, 8, 0, 110, 8, 8, 0, 111, 11, 0,
530 53, 0, 45, 0, 44, 0, 47, 0, 48, 0,
531 46, 0, 7, 0, 52, 0, 24, 0, 22, 0,
532 37, 0, 321, 0, 320, 0, 321, 0, 319, 0,
533 322, 0, 27, 3, 27, 0, 5, 0, 324, 0,
534 27, 3, 27, 0, 6, 0, 27, 4, 27, 0,
535 5, 0, 324, 0, 323, 0, 7, 0, 119, 0,
536 3, 0, 24, 322, 25, 0, 3, 0, 314, 322,
537 25, 0, 334, 0, 24, 6, 25, 0, 334, 0,
538 314, 6, 25, 0, 3, 0, 4, 0, 332, 0,
539 330, 26, 332, 0, 332, 0, 331, 332, 0, 3,
540 0, 334, 0, 4, 0, 4, 0, 338, 18, 0,
541 338, 0, 0, 19, 0, 0, 341, 342, 0, 20,
548 static const short yyrline[] = { 0,
549 329, 332, 334, 335, 337, 340, 344, 349, 353, 359,
550 363, 370, 371, 374, 376, 379, 381, 382, 383, 387,
551 391, 395, 402, 403, 404, 407, 408, 411, 413, 416,
552 418, 419, 420, 424, 428, 436, 439, 441, 444, 447,
553 450, 452, 456, 460, 462, 465, 467, 470, 473, 477,
554 481, 484, 488, 491, 495, 498, 502, 505, 509, 511,
555 514, 516, 519, 521, 524, 526, 529, 533, 535, 537,
556 539, 541, 545, 548, 552, 554, 557, 559, 562, 564,
557 567, 572, 574, 577, 579, 582, 584, 587, 598, 608,
558 611, 613, 615, 617, 619, 621, 623, 625, 627, 629,
559 631, 632, 635, 638, 642, 644, 647, 652, 654, 657,
560 661, 663, 666, 668, 671, 675, 677, 678, 680, 682,
561 685, 686, 688, 689, 691, 693, 694, 695, 697, 699,
562 701, 702, 703, 704, 705, 708, 711, 713, 715, 717,
563 720, 722, 725, 728, 730, 733, 735, 738, 740, 743,
564 745, 748, 750, 753, 755, 758, 760, 763, 783, 785,
565 788, 790, 795, 810, 817, 831, 838, 839, 842, 843,
566 846, 868, 874, 878, 882, 890, 893, 895, 898, 899,
567 902, 903, 906, 907, 910, 912, 917, 922, 935, 939,
568 943, 947, 953, 954, 958, 959, 962, 965, 965, 968,
569 968, 971, 971, 974, 974, 977, 977, 980, 982, 983,
570 986, 987, 1006, 1007, 1008, 1009, 1010, 1011, 1014, 1018,
571 1020, 1022, 1024, 1028, 1029, 1032, 1033, 1034, 1037, 1038,
572 1041, 1042, 1043, 1046, 1047, 1048, 1049, 1050, 1051, 1054,
573 1055, 1056, 1057, 1058, 1059, 1062, 1065, 1066, 1073, 1074,
574 1103, 1108, 1121, 1127, 1133, 1139, 1145, 1151, 1157, 1165,
575 1166, 1169, 1171, 1173, 1175, 1178, 1180, 1182, 1183, 1186,
576 1187, 1188, 1189, 1190, 1191, 1195, 1197, 1201, 1205, 1207,
577 1209, 1211, 1213, 1215, 1219, 1221, 1225, 1227, 1234, 1238,
578 1239, 1242, 1243, 1245, 1248, 1249, 1252, 1253, 1257, 1258,
579 1259, 1262, 1263, 1266, 1267, 1268, 1269, 1270, 1272, 1274,
580 1278, 1279, 1282, 1283, 1287, 1288, 1289, 1290, 1291, 1294,
581 1295, 1296, 1299, 1300, 1303, 1304, 1307, 1308, 1311, 1312,
582 1313, 1326, 1333, 1339, 1345, 1349, 1350, 1353, 1354, 1357,
583 1358, 1362, 1388, 1402, 1405, 1406, 1409, 1410, 1413, 1415,
584 1416, 1419, 1423, 1424, 1434, 1435, 1436, 1445, 1446, 1456,
585 1457, 1464, 1472, 1475, 1481, 1482, 1485, 1488, 1489, 1492,
586 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1502, 1513, 1518,
587 1519, 1522, 1523, 1533, 1534, 1535, 1536, 1537, 1538, 1541,
588 1542, 1543, 1544, 1547, 1548, 1549, 1562, 1563, 1577, 1578,
589 1598, 1599, 1603, 1604, 1607, 1608, 1612, 1613, 1616, 1617,
590 1618, 1619, 1620, 1621, 1622, 1626, 1627, 1628, 1629, 1630,
591 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1643, 1644, 1645,
592 1646, 1647, 1651, 1657, 1666, 1667, 1677, 1678, 1681, 1683,
593 1698, 1699, 1702, 1705, 1706, 1709, 1709, 1710, 1730, 1731,
594 1734, 1735, 1738, 1741, 1744, 1747, 1748, 1751, 1752, 1755,
595 1756, 1759, 1760, 1764, 1765, 1768, 1769, 1770, 1771, 1774,
596 1775, 1778, 1779, 1782, 1783, 1784, 1785, 1786, 1787, 1791,
597 1792, 1793, 1794, 1795, 1798, 1800, 1801, 1802, 1803, 1804,
598 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1818, 1821,
599 1831, 1841, 1852, 1855, 1865, 1868, 1878, 1881, 1884, 1890,
600 1891, 1894, 1895, 1898, 1899, 1903, 1904, 1905, 1908, 1909,
601 1912, 1913, 1914, 1917, 1920, 1923, 1924, 1927, 1928, 1932,
602 1933, 1936, 1937, 1940, 1941, 1944, 1945, 1948, 1949, 1952,
603 1955, 1961, 1964, 1968, 1970, 1973, 1976, 1984, 1984, 1987,
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","ival_pragma",
628 "gen_pragma","arity_pragma","update_pragma","deforest_pragma","strictness_pragma",
629 "worker_info","unfolding_pragma","unfolding_guidance","gen_pragma_list","type_pragma_pairs_maybe",
630 "type_pragma_pairs","type_pragma_pair","type_maybes","type_maybe","name_pragma_pairs",
631 "name_pragma_pair","core_expr","core_case_alts","core_alg_alts","core_alg_alt",
632 "core_prim_alts","core_prim_alt","core_default","corec_binds","corec_bind","co_scc",
633 "co_caf","co_dupd","core_id","co_primop","core_binders","core_binder","core_atoms",
634 "core_atom_list","core_atom","core_tyvars","core_tv_templates","core_types",
635 "core_type_list","core_type","core_type_maybes","core_type_maybe","readpreludecore",
636 "@3","readprelude","@4","maybeimpdecls","impdecls","impdecl","@5","impdecl_rest",
637 "readinterface","renamings","renaming_list","renaming","maybeiimports","iimports",
638 "iimport","interface","@6","ibody","maybefixes","fixes","fix","@7","@8","@9",
639 "@10","@11","@12","ops","topdecls","topdecl","typed","datad","classd","cbody",
640 "instd","rinst","restrict_inst","general_inst","defaultd","dtypes","decls","decl",
641 "howto_inline_maybe","types_and_maybe_ids","type_and_maybe_id","itopdecls","itopdecl",
642 "ivarsd","ityped","idatad","iclassd","iinstd","class","types","type","btype",
643 "atypes","ttype","atype","ntatype","simple","constrs","constr","tyclses","tycls_list",
644 "context","context_list","instdefs","instdef","vars","varsrest","cons","valdef",
645 "@13","valrhs","valrhs1","gdrhs","maybe_where","gd","lampats","exp","oexp","dexp",
646 "kexp","@14","@15","fexp","cexp","aexp","opatk","opat","dpat","fpat","dpatk",
647 "fpatk","aapat","aapatk","tuple","texps","list","list_exps","sequence","comprehension",
648 "quals","qual","@16","@17","qualrest","alts","alt","@18","altrest","gdpat","upto",
649 "pats","pat","bpat","conpat","apat","apatc","lit_constant","importkey","datakey",
650 "typekey","instkey","defaultkey","classkey","minuskey","modulekey","oparenkey",
651 "obrackkey","lazykey","op1","op","varop","varop1","conop","varsym","minus","plus",
652 "var","vark","con","conk","ccallid","tyvar_list","tyvars","tyvar","tycls","tycon",
653 "modid","ocurly","vocurly","layout","ccurly","vccurly","@19","vccurly1",""
657 static const short yyr1[] = { 0,
658 120, 122, 121, 123, 121, 124, 124, 124, 124, 124,
659 124, 125, 125, 126, 126, 127, 127, 127, 127, 127,
660 127, 127, 128, 128, 128, 129, 129, 130, 130, 131,
661 131, 131, 131, 131, 131, 132, 132, 132, 133, 133,
662 134, 134, 135, 136, 136, 137, 137, 138, 138, 139,
663 139, 139, 140, 140, 141, 141, 142, 142, 143, 143,
664 144, 144, 145, 145, 146, 146, 146, 147, 147, 148,
665 148, 148, 149, 149, 150, 150, 151, 151, 152, 152,
666 153, 154, 154, 155, 155, 156, 156, 157, 157, 158,
667 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
668 158, 158, 159, 159, 160, 160, 161, 162, 162, 163,
669 164, 164, 165, 165, 166, 167, 167, 167, 167, 167,
670 168, 168, 169, 169, 170, 170, 170, 170, 170, 170,
671 170, 170, 170, 170, 170, 171, 171, 171, 171, 171,
672 172, 172, 173, 174, 174, 175, 175, 176, 176, 177,
673 177, 178, 178, 179, 179, 180, 180, 181, 182, 182,
674 183, 183, 185, 184, 187, 186, 188, 188, 189, 189,
675 191, 190, 192, 192, 193, 194, 195, 195, 196, 196,
676 197, 197, 198, 198, 199, 199, 201, 200, 202, 202,
677 202, 202, 203, 203, 204, 204, 206, 205, 207, 205,
678 208, 205, 209, 205, 210, 205, 211, 205, 212, 212,
679 213, 213, 214, 214, 214, 214, 214, 214, 215, 216,
680 216, 216, 216, 217, 217, 218, 218, 218, 219, 219,
681 220, 220, 220, 221, 221, 221, 221, 221, 221, 222,
682 222, 222, 222, 222, 222, 223, 224, 224, 225, 225,
683 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
684 226, 227, 227, 228, 228, 229, 229, 230, 230, 231,
685 231, 231, 231, 231, 231, 232, 232, 233, 234, 234,
686 234, 234, 234, 234, 235, 235, 236, 236, 237, 238,
687 238, 239, 239, 239, 240, 240, 241, 241, 242, 242,
688 242, 243, 243, 244, 244, 244, 244, 244, 244, 244,
689 245, 245, 246, 246, 247, 247, 247, 247, 247, 248,
690 248, 248, 249, 249, 250, 250, 251, 251, 252, 252,
691 252, 253, 253, 253, 253, 254, 254, 255, 255, 256,
692 256, 258, 257, 259, 260, 260, 261, 261, 262, 262,
693 262, 263, 264, 264, 265, 265, 265, 266, 266, 267,
694 267, 269, 270, 268, 268, 268, 268, 268, 268, 268,
695 268, 268, 268, 268, 268, 268, 268, 268, 268, 271,
696 271, 272, 272, 273, 273, 273, 273, 273, 273, 273,
697 273, 273, 273, 273, 273, 273, 274, 274, 275, 275,
698 276, 276, 277, 277, 278, 278, 279, 279, 280, 280,
699 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
700 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
701 281, 281, 282, 282, 283, 283, 284, 284, 285, 285,
702 286, 286, 287, 288, 288, 290, 291, 289, 292, 292,
703 293, 293, 295, 294, 294, 296, 296, 297, 297, 298,
704 298, 299, 299, 300, 300, 301, 301, 301, 301, 302,
705 302, 303, 303, 304, 304, 304, 304, 304, 304, 304,
706 304, 304, 304, 304, 305, 305, 305, 305, 305, 305,
707 305, 305, 305, 305, 305, 305, 305, 305, 306, 307,
708 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
709 317, 318, 318, 319, 319, 320, 320, 320, 321, 321,
710 322, 322, 322, 323, 324, 325, 325, 326, 326, 327,
711 327, 328, 328, 329, 329, 330, 330, 331, 331, 332,
712 333, 334, 335, 336, 337, 338, 339, 341, 340, 342,
716 static const short yyr2[] = { 0,
717 3, 0, 6, 0, 2, 5, 5, 3, 3, 3,
718 3, 0, 3, 1, 3, 1, 1, 4, 4, 4,
719 3, 2, 3, 4, 2, 0, 1, 1, 3, 1,
720 1, 4, 4, 4, 3, 4, 3, 0, 2, 0,
721 1, 3, 3, 3, 0, 3, 0, 4, 0, 4,
722 5, 0, 2, 0, 3, 0, 1, 6, 1, 2,
723 1, 2, 1, 1, 1, 2, 3, 3, 0, 1,
724 2, 3, 1, 5, 1, 3, 1, 2, 1, 3,
725 5, 1, 3, 1, 1, 1, 3, 5, 3, 4,
726 4, 4, 6, 4, 3, 5, 6, 8, 6, 5,
727 1, 1, 3, 3, 0, 2, 5, 0, 2, 4,
728 1, 3, 1, 3, 3, 2, 4, 6, 6, 6,
729 1, 1, 1, 1, 3, 3, 3, 5, 6, 5,
730 2, 3, 3, 1, 1, 8, 8, 8, 8, 1,
731 0, 2, 5, 2, 3, 1, 3, 1, 1, 1,
732 2, 1, 3, 2, 3, 1, 3, 1, 1, 3,
733 1, 1, 0, 2, 0, 2, 0, 2, 1, 3,
734 0, 4, 2, 4, 2, 3, 1, 3, 3, 3,
735 0, 2, 1, 3, 5, 7, 0, 5, 5, 3,
736 5, 3, 0, 2, 1, 3, 0, 4, 0, 4,
737 0, 4, 0, 3, 0, 3, 0, 3, 1, 3,
738 1, 3, 1, 1, 1, 1, 1, 1, 4, 6,
739 4, 8, 6, 5, 3, 0, 4, 4, 6, 4,
740 0, 4, 4, 1, 4, 5, 2, 3, 5, 1,
741 4, 5, 2, 3, 5, 2, 5, 1, 1, 3,
742 6, 4, 5, 5, 5, 4, 4, 3, 3, 1,
743 0, 0, 1, 1, 3, 1, 3, 1, 3, 1,
744 1, 1, 1, 1, 0, 6, 4, 5, 5, 3,
745 7, 5, 8, 6, 6, 4, 6, 4, 2, 1,
746 3, 1, 3, 4, 1, 2, 2, 1, 1, 3,
747 2, 1, 5, 1, 1, 2, 3, 3, 6, 1,
748 1, 2, 1, 3, 2, 4, 1, 3, 3, 3,
749 2, 1, 1, 3, 3, 1, 1, 3, 0, 1,
750 3, 5, 4, 4, 1, 3, 1, 1, 3, 1,
751 3, 0, 3, 2, 1, 2, 3, 4, 4, 4,
752 0, 2, 2, 1, 5, 3, 1, 1, 3, 2,
753 1, 0, 0, 6, 6, 6, 6, 6, 6, 3,
754 2, 3, 2, 3, 2, 3, 2, 3, 1, 2,
755 1, 2, 1, 1, 1, 1, 3, 4, 4, 1,
756 1, 1, 1, 3, 1, 2, 1, 3, 1, 3,
757 2, 1, 2, 1, 2, 1, 2, 1, 1, 1,
758 3, 1, 1, 2, 5, 3, 5, 3, 2, 2,
759 1, 1, 3, 1, 1, 2, 5, 3, 5, 3,
760 2, 2, 5, 2, 1, 3, 2, 3, 1, 3,
761 7, 5, 5, 1, 3, 0, 0, 4, 2, 0,
762 1, 3, 0, 3, 0, 2, 3, 4, 3, 0,
763 1, 3, 1, 1, 3, 1, 1, 2, 2, 1,
764 2, 1, 1, 1, 3, 1, 1, 2, 5, 3,
765 5, 3, 2, 2, 1, 1, 1, 1, 1, 1,
766 1, 1, 1, 1, 3, 2, 3, 2, 1, 1,
767 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
768 1, 1, 1, 1, 3, 1, 1, 3, 1, 3,
769 1, 1, 1, 1, 1, 1, 3, 1, 3, 1,
770 3, 1, 3, 1, 1, 1, 3, 1, 2, 1,
771 1, 1, 1, 2, 1, 0, 1, 0, 2, 1,
775 static const short yydefact[] = { 163,
776 165, 0, 4, 0, 0, 164, 0, 506, 1, 546,
777 0, 166, 543, 187, 175, 5, 167, 167, 545, 12,
778 0, 0, 193, 0, 169, 193, 548, 544, 0, 2,
779 546, 171, 547, 207, 203, 205, 261, 0, 195, 11,
780 168, 9, 261, 10, 0, 8, 526, 542, 0, 0,
781 14, 16, 17, 0, 188, 181, 181, 0, 201, 0,
782 197, 0, 199, 0, 528, 505, 485, 486, 487, 488,
783 489, 490, 491, 492, 493, 494, 508, 507, 425, 509,
784 501, 500, 504, 502, 503, 0, 0, 0, 0, 0,
785 0, 0, 0, 0, 211, 213, 214, 215, 216, 217,
786 218, 0, 260, 342, 397, 406, 408, 424, 0, 0,
787 0, 0, 0, 0, 0, 0, 0, 422, 421, 532,
788 194, 170, 548, 551, 550, 549, 521, 524, 525, 0,
789 523, 522, 13, 0, 0, 22, 546, 499, 193, 0,
790 183, 0, 193, 548, 172, 26, 0, 519, 0, 208,
791 209, 513, 512, 514, 0, 204, 0, 206, 0, 0,
792 0, 0, 0, 262, 0, 0, 0, 496, 0, 498,
793 261, 6, 0, 0, 0, 0, 0, 413, 0, 407,
794 412, 410, 409, 530, 0, 326, 0, 0, 311, 0,
795 311, 0, 0, 541, 540, 0, 0, 0, 310, 246,
796 0, 248, 295, 299, 304, 305, 226, 0, 0, 405,
797 404, 0, 524, 426, 0, 399, 402, 0, 410, 0,
798 0, 431, 0, 477, 0, 0, 463, 464, 467, 466,
799 476, 474, 470, 432, 473, 472, 0, 0, 196, 7,
800 527, 15, 507, 21, 0, 0, 0, 337, 340, 3,
801 275, 182, 190, 0, 275, 192, 0, 0, 27, 173,
802 202, 0, 0, 0, 198, 200, 495, 0, 0, 0,
803 263, 0, 0, 259, 258, 497, 212, 0, 0, 49,
804 292, 302, 305, 0, 0, 343, 351, 345, 0, 0,
805 398, 419, 0, 0, 414, 0, 410, 420, 0, 327,
806 0, 0, 0, 312, 538, 0, 538, 0, 0, 0,
807 231, 240, 289, 0, 0, 306, 0, 0, 301, 298,
808 305, 546, 225, 0, 403, 533, 401, 428, 0, 0,
809 529, 0, 468, 469, 483, 0, 524, 478, 0, 474,
810 484, 430, 0, 0, 0, 471, 0, 336, 338, 423,
811 18, 20, 19, 0, 0, 268, 274, 270, 271, 272,
812 273, 0, 0, 0, 0, 0, 184, 0, 548, 25,
813 0, 28, 30, 31, 0, 0, 515, 520, 210, 0,
814 0, 0, 264, 266, 256, 257, 0, 152, 0, 0,
815 0, 252, 0, 296, 0, 0, 0, 395, 0, 362,
816 546, 0, 0, 0, 0, 0, 0, 0, 352, 358,
817 361, 379, 381, 390, 391, 392, 393, 386, 384, 385,
818 346, 357, 546, 344, 0, 418, 531, 416, 0, 0,
819 411, 325, 0, 0, 0, 221, 313, 317, 0, 539,
820 219, 0, 541, 0, 243, 0, 292, 305, 546, 230,
821 0, 308, 307, 0, 300, 297, 261, 261, 226, 0,
822 400, 0, 482, 480, 0, 0, 462, 465, 475, 0,
823 0, 341, 275, 189, 0, 38, 0, 0, 0, 0,
824 47, 0, 0, 191, 23, 0, 0, 0, 0, 174,
825 255, 254, 0, 253, 0, 0, 0, 0, 49, 59,
826 57, 0, 0, 0, 293, 360, 437, 439, 0, 516,
827 519, 524, 434, 0, 0, 357, 0, 511, 510, 517,
828 396, 0, 261, 261, 0, 534, 535, 371, 373, 375,
829 377, 0, 0, 0, 380, 0, 0, 261, 261, 347,
830 0, 0, 328, 0, 0, 0, 0, 315, 0, 0,
831 0, 231, 234, 244, 0, 0, 296, 329, 329, 0,
832 0, 290, 0, 249, 548, 224, 429, 427, 0, 0,
833 339, 269, 56, 0, 40, 280, 0, 0, 0, 52,
834 0, 226, 0, 185, 29, 35, 0, 0, 0, 24,
835 0, 0, 177, 0, 0, 265, 267, 0, 153, 294,
836 251, 60, 0, 61, 0, 0, 0, 446, 460, 438,
837 0, 387, 0, 0, 0, 363, 354, 0, 548, 546,
838 370, 383, 372, 374, 376, 378, 0, 359, 394, 356,
839 0, 548, 348, 417, 415, 318, 319, 314, 0, 223,
840 322, 220, 0, 237, 0, 0, 229, 0, 293, 241,
841 0, 0, 0, 0, 330, 335, 422, 548, 0, 247,
842 0, 261, 227, 228, 481, 479, 0, 0, 277, 38,
843 0, 0, 40, 38, 45, 0, 54, 288, 75, 0,
844 286, 47, 0, 32, 34, 33, 176, 0, 0, 0,
845 303, 48, 62, 63, 64, 0, 439, 440, 0, 444,
846 0, 461, 0, 518, 435, 0, 388, 389, 0, 353,
847 0, 0, 455, 455, 382, 0, 0, 349, 350, 316,
848 321, 0, 323, 0, 238, 0, 0, 0, 242, 245,
849 0, 262, 0, 0, 232, 233, 309, 291, 250, 56,
850 0, 0, 282, 0, 39, 41, 37, 0, 0, 279,
851 0, 278, 52, 0, 0, 0, 46, 226, 186, 178,
852 179, 180, 65, 0, 0, 0, 460, 443, 446, 447,
853 442, 0, 433, 0, 0, 0, 0, 451, 453, 548,
854 0, 355, 320, 0, 222, 0, 536, 0, 235, 0,
855 0, 0, 331, 276, 55, 284, 84, 0, 82, 85,
856 0, 36, 38, 0, 287, 53, 0, 76, 285, 69,
857 66, 70, 0, 0, 0, 439, 0, 445, 450, 436,
858 364, 365, 366, 455, 368, 0, 369, 367, 324, 236,
859 0, 239, 0, 333, 334, 43, 0, 42, 0, 281,
860 44, 50, 0, 86, 0, 0, 67, 73, 0, 0,
861 71, 77, 0, 58, 441, 0, 448, 452, 0, 0,
862 454, 351, 537, 332, 83, 283, 0, 51, 0, 0,
863 0, 141, 0, 0, 0, 0, 0, 0, 0, 0,
864 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,
865 102, 101, 134, 135, 0, 78, 79, 449, 351, 0,
866 456, 87, 0, 89, 68, 0, 0, 0, 0, 0,
867 150, 0, 0, 0, 140, 0, 0, 0, 0, 0,
868 0, 0, 0, 0, 0, 0, 131, 0, 0, 0,
869 457, 459, 0, 0, 0, 0, 142, 0, 0, 0,
870 0, 0, 0, 0, 0, 151, 0, 0, 0, 0,
871 0, 0, 0, 0, 0, 0, 95, 0, 0, 113,
872 0, 125, 126, 127, 0, 0, 0, 132, 133, 0,
873 80, 458, 88, 74, 0, 90, 0, 0, 123, 124,
874 116, 0, 0, 0, 0, 0, 91, 0, 154, 0,
875 156, 158, 92, 0, 0, 0, 0, 94, 144, 149,
876 0, 146, 148, 0, 0, 0, 0, 0, 0, 161,
877 162, 0, 159, 69, 0, 0, 105, 108, 0, 0,
878 0, 0, 0, 100, 0, 155, 0, 0, 0, 0,
879 0, 145, 0, 96, 0, 114, 115, 128, 0, 130,
880 0, 81, 0, 0, 0, 0, 97, 117, 0, 0,
881 0, 93, 157, 0, 0, 0, 0, 147, 99, 129,
882 160, 143, 0, 0, 111, 106, 103, 141, 0, 109,
883 104, 0, 0, 0, 0, 0, 0, 0, 0, 98,
884 0, 0, 0, 121, 122, 118, 119, 120, 0, 0,
885 0, 0, 0, 112, 0, 136, 137, 138, 139, 0,
889 static const short yydefgoto[] = { 1103,
890 9, 54, 10, 16, 30, 50, 51, 259, 260, 371,
891 372, 576, 672, 745, 746, 752, 582, 392, 678, 755,
892 669, 503, 504, 606, 696, 765, 847, 815, 850, 680,
893 854, 896, 897, 798, 799, 843, 844, 890, 1019, 1045,
894 1066, 1046, 1070, 1067, 959, 960, 945, 1086, 981, 891,
895 917, 907, 937, 957, 1001, 1002, 912, 389, 950, 990,
896 1011, 1012, 1013, 1, 2, 3, 4, 23, 24, 25,
897 58, 145, 6, 490, 592, 593, 139, 140, 141, 7,
898 21, 55, 37, 38, 39, 155, 157, 147, 62, 64,
899 60, 150, 94, 95, 96, 97, 98, 323, 99, 450,
900 552, 311, 100, 200, 563, 564, 272, 382, 383, 355,
901 356, 357, 358, 359, 360, 361, 186, 561, 992, 281,
902 319, 202, 203, 282, 187, 436, 437, 640, 722, 188,
903 301, 654, 655, 102, 348, 247, 103, 174, 286, 287,
904 288, 424, 289, 616, 702, 422, 410, 411, 522, 709,
905 412, 621, 413, 104, 215, 216, 217, 105, 106, 211,
906 107, 414, 706, 415, 698, 416, 417, 699, 700, 701,
907 819, 857, 777, 778, 826, 861, 862, 703, 226, 227,
908 228, 229, 617, 230, 418, 142, 109, 110, 111, 112,
909 113, 114, 11, 162, 116, 117, 517, 151, 152, 518,
910 153, 154, 131, 132, 419, 118, 420, 119, 528, 786,
911 304, 205, 641, 184, 14, 17, 18, 19, 40, 44,
915 static const short yypact[] = {-32768,
916 -32768, 35, 61, 35, 113,-32768, 163,-32768,-32768,-32768,
917 113,-32768,-32768,-32768,-32768,-32768, 232, 232, 275, 287,
918 346, 113, 470, 612,-32768, 747, 312,-32768, 546,-32768,
919 -32768,-32768,-32768, 454, 466, 490, 1745, 353,-32768,-32768,
920 232,-32768, 1745,-32768, 314,-32768,-32768,-32768, 194, 165,
921 -32768,-32768, 338, 482,-32768, 458, 458, 35,-32768, 74,
922 -32768, 74,-32768, 74,-32768,-32768,-32768,-32768,-32768,-32768,
923 -32768,-32768,-32768,-32768,-32768, 467,-32768,-32768,-32768,-32768,
924 -32768,-32768,-32768,-32768,-32768, 372, 301, 301, 564, 301,
925 555, 567, 609, 661,-32768,-32768,-32768,-32768,-32768,-32768,
926 -32768, 605,-32768, 74,-32768, 2552,-32768,-32768, 295, 564,
927 295, 1056, 295, 2552, 1171, 2358, 2587, 404,-32768,-32768,
928 747,-32768, 623,-32768,-32768,-32768,-32768,-32768,-32768, 627,
929 -32768,-32768,-32768, 546, 755,-32768,-32768,-32768, 747, 667,
930 -32768, 113, 747, 637,-32768, 221, 74,-32768, 687, 640,
931 -32768,-32768,-32768,-32768, 74, 640, 74, 640, 679, 564,
932 694, 194, 672, 709, 301, 647, 669,-32768, 744,-32768,
933 1745,-32768, 1011, 691, 2475, 2405, 1455,-32768, 2587,-32768,
934 -32768, 758,-32768,-32768, 564,-32768, 782, 778, 811, 807,
935 811, 809, 409, 811,-32768, 831, 1011, 441,-32768,-32768,
936 829,-32768,-32768, 857,-32768, 1097, 296, 852, 811, 2552,
937 -32768, 870, 2552,-32768, 283,-32768, 2552, 877, 146, 731,
938 2440,-32768, 1572,-32768, 2587, 883, 559,-32768, 2587,-32768,
939 -32768, 887,-32768,-32768,-32768,-32768, 408, 2587,-32768,-32768,
940 -32768,-32768, 903,-32768, 886, 906, 735, 902,-32768,-32768,
941 321, 458,-32768, 921, 321,-32768, 537, 927,-32768, 895,
942 640, 928, 931, 74, 640, 640,-32768, 1097, 409, 1011,
943 -32768, 874, 876,-32768,-32768,-32768,-32768, 441, 871, 29,
944 939,-32768, 1097, 2079, 2079,-32768, 930,-32768, 943, 2552,
945 -32768,-32768, 945, 944,-32768, 474, 159,-32768, 2587,-32768,
946 776, 1108, 564, 811, 949, 1011,-32768, 564, 1011, 711,
947 933,-32768,-32768, 971, 958,-32768, 781, 1011, 983,-32768,
948 -32768,-32768,-32768, 564,-32768,-32768, 2552,-32768, 2517, 2475,
949 -32768, 974,-32768,-32768,-32768, 960, 731,-32768, 512, 177,
950 -32768,-32768, 2517, 980, 2517,-32768, 2587, 962,-32768,-32768,
951 -32768,-32768,-32768, 355, 697,-32768,-32768,-32768,-32768,-32768,
952 -32768, 966, 295, 564, 295, 295,-32768, 546, 982,-32768,
953 794,-32768,-32768, 978, 546, 985,-32768,-32768,-32768, 632,
954 923, 57,-32768, 988,-32768,-32768, 827,-32768, 552, 1011,
955 633,-32768, 1011, 1097, 2138, 1925, 1374,-32768, 2629,-32768,
956 -32768, 2079, 851, 851, 995, 996, 1008, 2079, 74,-32768,
957 -32768, 2629,-32768,-32768,-32768,-32768,-32768,-32768, 984,-32768,
958 -32768, 128,-32768,-32768, 2079,-32768,-32768,-32768, 2517, 1013,
959 -32768,-32768, 564, 706, 415, 63,-32768, 719, 994,-32768,
960 -32768, 597,-32768, 1002,-32768, 1001, 1010, 1097,-32768,-32768,
961 1011,-32768,-32768, 1011,-32768,-32768, 2197, 2197, 989, 1015,
962 -32768, 1017,-32768,-32768, 2517, 1037,-32768,-32768,-32768, 408,
963 903,-32768, 321,-32768, 1011, 89, 1021, 1016, 1024, 409,
964 155, 1027, 845,-32768,-32768, 546, 786, 849, 570,-32768,
965 -32768,-32768, 1011,-32768, 301, 1011, 967, 1011, 998,-32768,
966 -32768, 1055, 633, 414,-32768,-32768,-32768, 613, 1044, 1043,
967 944, 2138,-32768, 873, 855, 128, 2079,-32768,-32768, 1045,
968 -32768, 2587, 2197, 2197, 1029,-32768,-32768, 2629, 2629, 2629,
969 2629, 2079, 1031, 2079,-32768, 2629, 1011, 2197, 2197, 1050,
970 1048, 1058,-32768, 1059, 1097, 1108, 568, 838, 1108, 811,
971 339, 933,-32768,-32768, 1011, 1011, 1019, 2323, 2323, 1075,
972 861,-32768, 734,-32768, 1074,-32768,-32768,-32768, 1071, 1077,
973 -32768,-32768, 263, 1108, 1047,-32768, 564, 1011, 564, 1038,
974 633, 989, 564, 1035,-32768,-32768, 1082, 1083, 872,-32768,
975 250, 875,-32768, 1051, 1052,-32768,-32768, 879,-32768,-32768,
976 -32768,-32768, 1040,-32768, 1102, 3, 2079,-32768, 2079,-32768,
977 1087,-32768, 2079, 2002, 366,-32768, 2587, 734, 1074,-32768,
978 2629,-32768, 2629, 2629, 2629,-32768, 2079,-32768,-32768, 1085,
979 734, 1074,-32768,-32768,-32768, 1097,-32768,-32768, 444,-32768,
980 -32768, 242, 1099,-32768, 590, 811,-32768, 891, 1098,-32768,
981 301, 301, 301, 753,-32768,-32768, 1088, 1104, 1110, 1103,
982 1011, 2197,-32768,-32768,-32768,-32768, 1011, 633,-32768, 387,
983 1105, 1064, 18, 211, 1066, 409, 1061,-32768,-32768, 181,
984 -32768, 1072, 985,-32768,-32768,-32768,-32768, 570, 408, 355,
985 -32768,-32768,-32768,-32768,-32768, 41, 476,-32768, 220,-32768,
986 2079,-32768, 1123,-32768, 1122, 1124,-32768,-32768, 1125,-32768,
987 1111, 1112, 2517, 2517,-32768, 1092, 1011,-32768,-32768, 1097,
988 -32768, 894,-32768, 568,-32768, 811, 811, 75,-32768,-32768,
989 1127, 709, 301, 2323,-32768,-32768,-32768,-32768,-32768, 1090,
990 1093, 568,-32768, 860, 1130,-32768,-32768, 1094, 1108,-32768,
991 1089,-32768, 1038, 113, 633, 633,-32768, 989,-32768,-32768,
992 -32768,-32768,-32768, 32, 477, 2079, 2079,-32768,-32768,-32768,
993 -32768, 2079,-32768, 2079, 2079, 2079, 756,-32768, 415, 1143,
994 2079,-32768,-32768, 564,-32768, 896,-32768, 1140,-32768, 1011,
995 1079, 1080,-32768,-32768,-32768,-32768,-32768, 420,-32768,-32768,
996 1105,-32768, 405, 1101,-32768,-32768, 43,-32768,-32768, 1150,
997 -32768,-32768, 826, 301, 578, 1145, 1166,-32768, 1156,-32768,
998 -32768,-32768,-32768, 2517,-32768, 907,-32768,-32768,-32768,-32768,
999 811,-32768, 64,-32768,-32768,-32768, 860,-32768, 568,-32768,
1000 -32768,-32768, 261,-32768, 1162, 633,-32768,-32768, 1186, 1616,
1001 -32768,-32768, 1178,-32768,-32768, 2079,-32768,-32768, 2079, 1175,
1002 -32768, 930,-32768,-32768,-32768,-32768, 408,-32768, 333, 1185,
1003 1197,-32768, 1189, 1616, 1191, 1207, 174, 453, 1616, 1616,
1004 1193, 564, 564, 564, 564, 564, 573, 573, 113,-32768,
1005 -32768,-32768,-32768,-32768, 860, 1188,-32768,-32768, 930, 2079,
1006 -32768,-32768, 633,-32768,-32768, 1211, 360, 1192, 1176, 635,
1007 -32768, 329, 113, 1196,-32768, 777, 1196, 1198, 1204, 1192,
1008 564, 408, 408, 1199, 408, 1202,-32768, 570, 599, 1178,
1009 -32768, 1050, 1206, 1218, 1225, 1616,-32768, 1201, 1216, 59,
1010 1227, 1229, 573, 573, 1210,-32768, 1616, 355, 506, 1198,
1011 851, 851, 981, 981, 1198, 2155,-32768, 1011, 762,-32768,
1012 1212,-32768,-32768,-32768, 1011, 1217, 938,-32768,-32768, 1236,
1013 -32768,-32768,-32768,-32768, 1213,-32768, 1616, 842,-32768,-32768,
1014 -32768, 1237, 1238, 1239, 1241, 1616,-32768, 1196,-32768, 606,
1015 -32768,-32768,-32768, 1235, 1240, 1243, 1244,-32768,-32768,-32768,
1016 617,-32768,-32768, 1245, 1215, 1192, 1616, 1231, 1011,-32768,
1017 -32768, 641,-32768, 1150, 1011, 1247,-32768,-32768, 1248, 59,
1018 1246, 1252, 1257,-32768, 1198,-32768, 1011, 1196, 1196, 1196,
1019 1196,-32768, 2214,-32768, 1616,-32768,-32768,-32768, 1249,-32768,
1020 938,-32768, 1251, 1230, 665, 815,-32768,-32768, 59, 59,
1021 59,-32768,-32768, 1011, 1011, 1011, 1011,-32768,-32768,-32768,
1022 -32768,-32768, 1616, 119,-32768,-32768,-32768,-32768, 1250,-32768,
1023 -32768, 1255, 147, 147, 147, 1254, 1260, 1265, 1266,-32768,
1024 585, 1616, 1616,-32768,-32768,-32768,-32768,-32768, 1261, 1262,
1025 1263, 1264, 1616,-32768, 1270,-32768,-32768,-32768,-32768, 1271,
1026 -32768,-32768, 1269, 1293,-32768
1029 static const short yypgoto[] = {-32768,
1030 -32768,-32768,-32768, 1134,-32768,-32768, 1160,-32768,-32768, 22,
1031 810, -599, 622,-32768, 496,-32768, 616, 800, 547,-32768,
1032 561, -483,-32768,-32768,-32768,-32768, 290,-32768,-32768,-32768,
1033 -32768,-32768, 375, 411, 471,-32768, 440, -290,-32768,-32768,
1034 -32768,-32768,-32768, 264,-32768, 303,-32768, -131, -537, -785,
1035 -32768, 243, -826, -664,-32768, 280,-32768,-32768, -777,-32768,
1036 -362,-32768, 273,-32768,-32768,-32768,-32768, 1297, 1301, 1279,
1037 -32768,-32768, 65, 639,-32768, 643, 1272, 1275, 1081,-32768,
1038 -32768,-32768, 24,-32768, 1219,-32768,-32768,-32768,-32768,-32768,
1039 -32768, 292, 1280, 1168,-32768,-32768,-32768, -430,-32768, 789,
1040 -32768, -247,-32768,-32768, -129, -34, 610, 553, 853, 1095,
1041 882,-32768,-32768,-32768,-32768,-32768, -89, -441, 71, -78,
1042 -251,-32768, 34, 1232, -82, -510, 799, -666,-32768, -60,
1043 -32768, 788, 614, -95,-32768, 881, -497,-32768,-32768,-32768,
1044 819, -541, -789, 743, 10, -259,-32768, -338,-32768,-32768,
1045 -32768, 317, 76,-32768, -105,-32768, -48,-32768,-32768, -68,
1046 -32768,-32768, 589,-32768, 968,-32768,-32768,-32768, 594,-32768,
1047 -32768,-32768, 652, 548,-32768,-32768, 438, 604, -117, -210,
1048 1028,-32768, -63, -84, -7,-32768, -224, -207, -206,-32768,
1049 -199,-32768,-32768, -32,-32768,-32768,-32768, -62,-32768,-32768,
1050 -208, -47,-32768, 977, -29, -72, 1022,-32768, -397,-32768,
1051 729, -168, -103, 779, -10, -25, 4,-32768, -20, -17,
1059 static const short yytable[] = { 52,
1060 20, 130, 101, 42, 115, 56, 529, 193, 101, 46,
1061 115, 32, 339, 163, 164, 165, 380, 167, 345, 603,
1062 305, 381, 307, 207, 409, 313, 363, 190, 566, 108,
1063 363, 394, 235, 201, 57, 108, 860, 180, 642, 246,
1064 313, 175, 810, 364, 365, 47, 546, 364, 365, 43,
1065 192, 366, 208, 234, 598, 366, 506, 785, 293, 390,
1066 656, 656, 248, 670, 673, 210, 49, 218, 12, 291,
1067 743, 296, 694, 172, 750, 796, 182, 195, 127, 148,
1068 128, 938, 493, 695, 182, 219, 232, 232, 5, 493,
1069 671, 546, 273, 961, 235, 300, 391, 679, 181, 789,
1070 149, 926, 927, 336, 52, 240, 181, 181, 231, 231,
1071 763, 842, 8, 648, 218, 298, 13, 764, 574, 253,
1072 811, 975, 146, 127, 294, 128, 256, 547, 979, 130,
1073 345, 254, 127, 148, 128, 440, 101, 516, 115, 955,
1074 235, 325, 860, 494, 235, 182, 232, 297, 325, 232,
1075 864, 681, 330, 235, 149, 362, 575, 984, 985, 362,
1076 537, 341, 251, 108, 327, 346, 255, 181, 231, 181,
1077 1000, 231, 866, 506, 350, 130, 980, 48, 248, 961,
1078 182, 299, 248, 182, 741, -326, 548, 182, 519, 133,
1079 134, 232, 129, 340, 299, 232, 557, 471, 127, 232,
1080 128, 379, 181, 840, 442, 181, 756, 349, 232, 181,
1081 1025, 460, 347, 231, 235, 231, 1084, 231, 1069, 1069,
1082 439, 231, 581, 435, 461, 467, 545, 373, 330, 15,
1083 231, 447, 580, 330, 459, 431, 656, 129, 803, 320,
1084 749, 327, 768, 280, 257, 769, 129, 1000, 363, 757,
1085 1054, 1055, 1056, 1057, 127, 294, 128, 615, 325, 1068,
1086 182, 480, 235, 1085, 332, 364, 365, 315, 317, 232,
1087 546, 807, 808, 366, 628, 258, 481, 430, 575, 913,
1088 476, 478, 181, 469, 22, 993, 867, 127, 148, 128,
1089 998, 231, 28, 667, 421, 466, 457, 182, 48, 232,
1090 182, 320, 477, 65, 479, 482, 724, 328, 329, 149,
1091 29, 541, 129, 232, 124, 232, 320, 232, 185, 181,
1092 901, 231, 181, 65, 78, 458, -326, 809, 565, 868,
1093 668, 946, 41, 125, 474, 231, 322, 231, 373, 231,
1094 384, 195, 48, 543, 78, 373, 534, 569, 387, 130,
1095 903, 484, 456, 156, 628, 158, 947, 931, 48, 534,
1096 1052, 135, 870, 644, 81, 82, 83, 84, 129, 136,
1097 127, 148, 128, 121, 65, 523, 441, 362, 471, 444,
1098 446, 643, 645, 935, 720, 904, 31, 936, 455, 483,
1099 708, 588, 149, 618, 619, 78, 488, 538, 330, 232,
1100 248, 129, 500, 501, 524, 508, 515, 502, 631, 632,
1101 47, 525, 48, 456, 248, 546, 160, 533, 161, 933,
1102 148, 231, 597, 558, 115, 115, 539, 456, 753, 237,
1103 309, 49, 310, 546, 540, 232, -337, 235, 261, 238,
1104 571, 344, 836, 195, 48, 837, 265, 48, 266, 108,
1105 108, 742, 559, 614, 575, 915, 373, 231, 196, 594,
1106 499, 59, 197, 505, 278, 316, 637, 435, 721, 839,
1107 435, 320, 575, 61, 521, 676, 916, 307, 127, 148,
1108 128, 320, 1048, 604, 129, 657, 657, 535, 33, 605,
1109 115, 115, 232, 682, 674, 435, 435, 63, 428, 429,
1110 149, 766, 779, 779, 387, 115, 115, 767, 195, 48,
1111 138, 1073, 1074, 1075, 231, 108, 108, 148, 34, 35,
1112 36, 560, 137, 196, 562, 115, 115, 197, 989, 278,
1113 108, 108, 235, 279, 199, 723, 464, 465, 344, 47,
1114 48, 626, 663, 130, 159, 573, 812, 664, 47, 48,
1115 108, 108, 534, 994, 995, 813, 814, 787, 788, 440,
1116 49, 370, 168, 384, 148, 534, 562, 48, 600, 49,
1117 345, 48, 47, 48, 169, 47, 48, 497, 731, 732,
1118 733, 456, 498, 909, 343, 344, 991, 232, 918, 919,
1119 456, 639, 129, 591, 713, 1004, 591, 711, 279, 199,
1120 48, 712, 1008, 622, 622, 622, 622, 630, 935, 231,
1121 718, 629, 1093, 779, 719, 726, 697, 727, 550, 170,
1122 551, 970, 705, 714, 837, 562, 649, 739, 1026, 115,
1123 33, 1027, 41, 735, 195, 48, 716, 173, 607, 1032,
1124 736, 608, 1033, 171, 609, 976, 1039, 852, 675, 196,
1125 853, 241, 1043, 197, 108, 278, 987, 252, 594, 761,
1126 792, 657, 863, 1040, 1053, 264, 1041, 47, 48, 320,
1127 435, 882, 883, 884, 885, 886, 887, 888, 889, 33,
1128 829, 171, 267, 232, 232, 33, 1016, 252, 1064, 262,
1129 263, 1076, 1077, 1078, 1079, 1024, 715, 269, 715, 715,
1130 715, 115, 500, 501, 270, 231, 231, 502, 195, 48,
1131 770, 544, 271, 195, 48, 33, 1037, 473, 491, 284,
1132 285, 195, 48, 196, -305, 199, 108, 197, 196, 278,
1133 316, 738, 197, 274, 278, 445, 196, 740, 333, 334,
1134 197, 851, 278, 806, 1059, -305, 940, 941, 942, 943,
1135 944, 276, 33, 456, 662, 275, 825, 65, 48, 353,
1136 354, 1065, 827, 882, 883, 884, 885, 886, 887, 888,
1137 889, 33, 1080, 734, 33, 816, 824, 845, 243, 244,
1138 1005, 705, 1006, 821, 822, 823, 245, 782, 65, 48,
1139 828, 1094, 1095, 299, 232, 34, 35, 36, 279, 199,
1140 432, 433, 1100, 279, 199, 453, 454, 53, 303, 243,
1141 586, 302, 199, 195, 800, 120, 231, 587, 485, 486,
1142 893, 120, 67, 68, 69, 70, 71, 72, 73, 74,
1143 75, 76, 951, 952, 953, 954, 306, 845, 935, 308,
1144 195, 48, 892, -296, 893, 623, 624, 625, 314, 893,
1145 893, 453, 496, 526, 527, 196, 318, 893, 893, 197,
1146 384, 278, 195, 48, -296, 898, 892, 166, 899, 584,
1147 486, 892, 892, 590, 486, 611, 263, 196, 928, 612,
1148 613, 197, 324, 278, -302, 660, 661, 189, 191, 194,
1149 206, 209, 963, 964, 326, 966, 686, 354, 968, 687,
1150 688, 331, 948, 691, 661, 342, 893, 800, 294, 932,
1151 351, 1065, 53, 893, 893, 729, 661, 893, 783, 784,
1152 830, 831, 347, 91, 92, 93, 893, 237, 892, 797,
1153 352, 199, 848, 849, 859, 284, 1017, 1018, 268, 892,
1154 195, 48, 1087, 1088, 368, 996, 997, 893, 1003, 120,
1155 375, 283, 279, 199, 377, 196, 893, 378, 376, 197,
1156 385, 278, 386, 209, 388, 800, 393, 426, 427, 892,
1157 423, 312, 425, 449, 451, 283, 283, 893, 892, -289,
1158 452, 462, 463, 263, 321, 195, 48, 470, 67, 68,
1159 69, 70, 71, 72, 73, 74, 75, 76, 475, 892,
1160 196, 487, 473, 893, 197, 893, 278, 1010, 489, 492,
1161 -296, 530, 531, 195, 48, 893, 130, 495, 532, 536,
1162 542, 195, 48, 549, 554, 1003, 555, 892, 196, 322,
1163 279, 199, 197, 893, 278, 374, 196, 556, 1072, 567,
1164 197, 568, 278, 650, 570, 578, 321, 312, 283, 195,
1165 48, 577, 893, 893, 579, 892, 283, 583, 195, 48,
1166 599, 321, 602, 893, 196, 391, 610, -521, 197, -522,
1167 434, 620, 634, 196, 892, 892, 199, 197, 284, 198,
1168 438, 191, 635, 636, 283, 892, 443, 283, 448, 91,
1169 92, 93, 627, 659, 662, 665, 283, 321, 683, 195,
1170 48, 666, 209, 279, 199, 677, 684, 685, 692, 693,
1171 195, 48, 199, 704, 196, 717, 689, 690, 197, 671,
1172 278, 725, 730, 238, 734, 196, 744, 183, 737, 197,
1173 -303, 434, 747, 751, 754, 183, 183, 233, 236, 581,
1174 199, 189, 191, 194, 209, 771, 374, 772, 773, 199,
1175 775, 776, 774, 374, 781, 801, 249, 668, 321, 790,
1176 804, 795, 802, 824, 832, 834, 835, 846, 283, 841,
1177 766, 283, 321, 47, 48, 127, 212, 213, 67, 68,
1178 69, 70, 71, 72, 73, 74, 75, 76, 855, 856,
1179 199, 869, 176, 871, 177, 214, 183, 233, 183, 895,
1180 236, 199, 900, 905, 906, 178, 908, 179, 910, 911,
1181 920, 209, 283, 930, 934, 935, 321, 949, 939, 956,
1182 553, 958, 965, 967, 973, 974, 321, 975, 986, 283,
1183 977, 183, 283, 978, 183, 120, 120, 982, 183, 983,
1184 1009, 1007, 233, 1014, 233, 1015, 236, 1020, 1021, 1022,
1185 236, 1023, 1028, 283, 1035, 1038, 1049, 1029, 312, 236,
1186 1030, 1031, 1050, 1034, 374, 1044, 1047, 1051, 1104, 1063,
1187 250, 283, 1089, 1060, 283, 1062, 283, 1082, 1090, 91,
1188 92, 93, 1083, 1091, 1092, 1096, 1097, 1098, 1099, 129,
1189 1101, 1102, 1105, 242, 748, 585, 838, 758, 601, 805,
1190 794, 120, 120, 1042, 971, 929, 902, 865, 1036, 1071,
1191 1081, 183, 1058, 1061, 26, 283, 120, 120, 27, 122,
1192 236, 759, 123, 283, 438, 443, 321, 438, 143, 646,
1193 760, 144, 367, 283, 283, 321, 120, 120, 277, 239,
1194 647, 791, 833, 204, 638, 596, 658, 793, 183, 369,
1195 233, 183, 438, 438, 572, 191, 283, 443, 633, 710,
1196 820, 209, 818, 509, 233, 780, 233, 589, 236, 972,
1197 817, 858, 468, 520, 728, 472, 47, 48, 510, 511,
1198 512, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1199 76, 0, 0, 0, 0, 396, 0, 397, 513, 0,
1200 514, 0, 0, 0, 0, 0, 0, 0, 398, 0,
1201 399, 400, 401, 0, 321, 402, 0, 443, 0, 0,
1202 0, 0, 0, 0, 0, 0, 0, 0, 0, 403,
1203 404, 405, 406, 407, 408, 0, 0, 0, 0, 283,
1204 120, 0, 0, 0, 0, 283, 0, 0, 0, 0,
1205 233, 0, 0, 0, 312, 0, 0, 47, 48, 127,
1206 294, 213, 67, 68, 69, 70, 71, 72, 73, 74,
1207 75, 76, 0, 0, 0, 0, 176, 0, 177, 295,
1208 0, 0, 91, 92, 93, 0, 233, 0, 0, 178,
1209 0, 179, 129, 0, 0, 283, 0, 0, 321, 0,
1210 0, 0, 443, 0, 0, 0, 0, 0, 249, 0,
1211 595, 0, 120, 0, 0, 0, 0, 0, 0, 0,
1212 443, 0, 283, 0, 0, 0, 0, 438, 0, 0,
1213 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1214 0, 0, 0, 236, 0, 0, 0, 0, 0, 0,
1215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1216 0, 0, 443, 91, 92, 93, 0, 0, 283, 0,
1217 0, 0, 0, 129, 47, 48, 127, 294, 337, 67,
1218 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
1219 0, 0, 0, 221, 0, 223, 338, 0, 0, 0,
1220 0, 0, 0, 0, 0, 0, 224, 0, 225, 0,
1221 0, 0, 0, 0, 0, 283, 0, 443, 47, 48,
1222 0, 0, 0, 67, 68, 69, 70, 71, 72, 73,
1223 74, 75, 76, 0, 0, 0, 0, 0, 236, 591,
1224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1225 0, 0, 0, 872, 873, 0, 0, 874, 0, 0,
1226 921, 922, 923, 924, 925, 0, 0, 0, 0, 0,
1227 0, 0, 0, 283, 0, 875, 0, 0, 0, 0,
1228 91, 92, 93, 0, 0, 0, 0, 0, 0, 0,
1229 129, 0, 0, 0, 0, 0, 0, 0, 0, 962,
1230 0, 0, 0, 876, 877, 878, 879, 880, 0, 595,
1231 0, 762, 0, 881, 882, 883, 884, 885, 886, 887,
1232 888, 889, 0, 0, 91, 92, 93, 283, 0, 0,
1233 0, 0, 0, 0, 233, 233, 283, 0, 0, 0,
1234 0, 0, 0, 283, 0, 283, 0, 65, 48, 0,
1235 0, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1236 75, 76, 0, 0, 0, 0, 77, 0, 78, 0,
1237 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,
1238 0, 80, 0, 0, 0, 0, 0, 283, 81, 82,
1239 83, 84, 85, 283, 0, 0, 0, 0, 0, 0,
1240 0, 0, 0, 0, 0, 283, 0, 0, 0, 0,
1241 0, 0, 0, 0, 0, 0, 0, 0, 0, 283,
1242 0, 0, 0, 0, 0, 0, 86, 87, 88, 89,
1243 90, 0, 283, 283, 283, 283, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 233, 0, 0, 0, 0,
1245 0, 0, 0, 91, 92, 93, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1247 0, 894, 0, 0, 0, 0, 0, 0, 0, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1249 0, 0, 0, 0, 0, 894, 0, 0, 914, 0,
1250 894, 894, 0, 0, 0, 0, 0, 0, 894, 894,
1251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1252 0, 0, 0, 0, 0, 0, 0, 47, 48, 0,
1253 0, 395, 67, 68, 69, 70, 71, 72, 73, 74,
1254 75, 76, 0, 0, 0, 0, 396, 507, 397, 969,
1255 0, 0, 0, 0, 0, 0, 0, 894, 0, 398,
1256 0, 399, 400, 401, 894, 894, 402, 0, 894, 988,
1257 0, 0, 0, 0, 0, 0, 0, 894, 0, 0,
1258 403, 404, 405, 406, 407, 408, 0, 0, 0, 0,
1259 0, 0, 0, 0, 0, 0, 0, 0, 894, 0,
1260 0, 0, 0, 0, 47, 48, 0, 894, 395, 67,
1261 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
1262 0, 0, 0, 396, 0, 397, 707, 0, 894, 0,
1263 0, 0, 0, 91, 92, 93, 398, 0, 399, 400,
1264 401, 0, 0, 402, 0, 0, 0, 0, 0, 0,
1265 0, 0, 0, 0, 894, 0, 894, 403, 404, 405,
1266 406, 407, 408, 0, 0, 0, 894, 0, 0, 0,
1267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1268 0, 47, 48, 0, 894, 395, 67, 68, 69, 70,
1269 71, 72, 73, 74, 75, 76, 0, 0, 0, 0,
1270 396, 0, 397, 894, 894, 0, 0, 0, 0, 0,
1271 91, 92, 93, 398, 894, 399, 400, 401, 0, 0,
1272 402, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1273 0, 0, 0, 0, 403, 404, 405, 406, 407, 408,
1274 47, 48, 0, 0, 0, 67, 68, 69, 70, 71,
1275 72, 73, 74, 75, 76, 0, 0, 47, 48, 396,
1276 0, 397, 67, 68, 69, 70, 71, 72, 73, 74,
1277 75, 76, 398, 0, 399, 400, 401, 999, 591, 402,
1278 0, 0, 0, 0, 0, 0, 0, 91, 92, 93,
1279 0, 0, 0, 403, 404, 405, 406, 407, 408, 65,
1280 48, 0, 0, 66, 67, 68, 69, 70, 71, 72,
1281 73, 74, 75, 76, 0, 0, 47, 48, 77, 0,
1282 78, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1283 76, 79, 0, 80, 0, 0, 0, 591, 0, 0,
1284 0, 0, 0, 0, 0, 0, 91, 92, 93, 0,
1285 0, 0, 0, 882, 883, 884, 885, 886, 887, 888,
1286 889, 0, 0, 91, 92, 93, 0, 0, 0, 0,
1287 0, 0, 0, 0, 0, 0, 0, 0, 86, 87,
1288 88, 89, 90, 0, 0, 0, 0, 0, 0, 0,
1289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1290 0, 0, 0, 0, 0, 91, 92, 93, 0, 0,
1291 0, 0, 882, 883, 884, 885, 886, 887, 888, 889,
1292 0, 0, 91, 92, 93, 65, 48, 0, 0, 66,
1293 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1294 0, 0, 0, 0, 77, 0, 78, 0, 0, 0,
1295 0, 0, 0, 0, 0, 0, 0, 79, 0, 80,
1296 47, 48, 0, 0, 220, 67, 68, 69, 70, 71,
1297 72, 73, 74, 75, 76, 0, 0, 0, 0, 221,
1298 222, 223, 0, 0, 0, 0, 0, 0, 0, 0,
1299 0, 0, 224, 0, 225, 0, 0, 0, 0, 0,
1300 0, 0, 0, 0, 651, 652, 653, 47, 48, 0,
1301 0, 220, 67, 68, 69, 70, 71, 72, 73, 74,
1302 75, 76, 0, 0, 0, 0, 221, 292, 223, 0,
1303 0, 91, 92, 93, 0, 0, 0, 0, 0, 224,
1304 0, 225, 47, 48, 0, 0, 220, 67, 68, 69,
1305 70, 71, 72, 73, 74, 75, 76, 0, 0, 0,
1306 0, 221, 335, 223, 0, 0, 91, 92, 93, 0,
1307 0, 0, 0, 0, 224, 0, 225, 47, 48, 0,
1308 0, 290, 67, 68, 69, 70, 71, 72, 73, 74,
1309 75, 76, 0, 0, 0, 0, 176, 0, 177, 0,
1310 0, 0, 0, 0, 0, 0, 0, 0, 0, 178,
1311 0, 179, 0, 91, 92, 93, 0, 0, 0, 47,
1312 48, 0, 0, 220, 67, 68, 69, 70, 71, 72,
1313 73, 74, 75, 76, 0, 0, 0, 0, 221, 0,
1314 223, 0, 0, 0, 0, 0, 0, 0, 91, 92,
1315 93, 224, 0, 225, 47, 48, 0, 0, 0, 67,
1316 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
1317 0, 0, 0, 176, 0, 177, 0, 0, 0, 0,
1318 0, 0, 0, 91, 92, 93, 178, 0, 179, 47,
1319 48, 0, 0, 0, 67, 68, 69, 70, 71, 72,
1320 73, 74, 75, 76, 0, 0, 0, 0, 221, 0,
1321 223, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1322 0, 224, 0, 225, 0, 91, 92, 93, 0, 0,
1323 0, 47, 48, 0, 0, 0, 67, 68, 69, 70,
1324 71, 72, 73, 74, 75, 76, 0, 0, 0, 0,
1325 396, 0, 397, 0, 0, 0, 0, 0, 0, 0,
1326 91, 92, 93, 398, 0, 399, 0, 0, 0, 0,
1327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1329 0, 0, 0, 0, 0, 91, 92, 93, 0, 0,
1330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1333 0, 0, 0, 0, 0, 0, 0, 91, 92, 93
1336 static const short yycheck[] = { 29,
1337 11, 49, 37, 24, 37, 31, 404, 111, 43, 27,
1338 43, 22, 223, 86, 87, 88, 268, 90, 227, 503,
1339 189, 269, 191, 113, 284, 194, 251, 110, 459, 37,
1340 255, 283, 117, 112, 31, 43, 826, 106, 549, 135,
1341 209, 104, 11, 251, 251, 3, 29, 255, 255, 26,
1342 111, 251, 113, 117, 496, 255, 395, 724, 176, 31,
1343 558, 559, 135, 574, 575, 114, 24, 115, 4, 175,
1344 670, 177, 70, 94, 674, 742, 106, 3, 5, 6,
1345 7, 908, 26, 81, 114, 115, 116, 117, 54, 26,
1346 73, 29, 165, 920, 179, 185, 68, 581, 106, 25,
1347 27, 887, 888, 221, 134, 123, 114, 115, 116, 117,
1348 70, 69, 52, 555, 162, 179, 4, 77, 30, 140,
1349 89, 3, 58, 5, 6, 7, 144, 65, 70, 177,
1350 339, 142, 5, 6, 7, 304, 171, 397, 171, 917,
1351 225, 210, 932, 87, 229, 175, 176, 177, 217, 179,
1352 87, 582, 215, 238, 27, 251, 68, 943, 944, 255,
1353 33, 225, 139, 171, 213, 229, 143, 175, 176, 177,
1354 956, 179, 839, 512, 238, 223, 118, 4, 251, 1006,
1355 210, 36, 255, 213, 668, 31, 438, 217, 397, 25,
1356 26, 221, 119, 223, 36, 225, 448, 24, 5, 229,
1357 7, 264, 210, 803, 308, 213, 26, 237, 238, 217,
1358 988, 329, 36, 221, 299, 223, 70, 225, 1045, 1046,
1359 303, 229, 68, 302, 330, 343, 435, 257, 291, 67,
1360 238, 310, 480, 296, 324, 299, 734, 119, 749, 206,
1361 30, 290, 23, 173, 24, 26, 119, 1033, 473, 69,
1362 1028, 1029, 1030, 1031, 5, 6, 7, 517, 327, 1045,
1363 290, 365, 347, 117, 119, 473, 473, 197, 198, 299,
1364 29, 755, 756, 473, 534, 55, 366, 119, 68, 106,
1365 363, 364, 290, 347, 53, 950, 26, 5, 6, 7,
1366 955, 299, 18, 31, 285, 119, 322, 327, 4, 329,
1367 330, 268, 363, 3, 365, 366, 65, 25, 26, 27,
1368 24, 429, 119, 343, 1, 345, 283, 347, 24, 327,
1369 862, 329, 330, 3, 24, 322, 31, 758, 458, 69,
1370 68, 3, 21, 20, 355, 343, 41, 345, 368, 347,
1371 270, 3, 4, 433, 24, 375, 409, 465, 278, 397,
1372 18, 369, 319, 62, 614, 64, 28, 899, 4, 422,
1373 1025, 24, 846, 25, 44, 45, 46, 47, 119, 32,
1374 5, 6, 7, 21, 3, 401, 306, 473, 24, 309,
1375 310, 550, 551, 24, 636, 869, 41, 28, 318, 368,
1376 25, 487, 27, 523, 524, 24, 375, 423, 461, 429,
1377 473, 119, 70, 71, 401, 396, 397, 75, 538, 539,
1378 3, 402, 4, 380, 487, 29, 45, 408, 47, 903,
1379 6, 429, 495, 449, 457, 458, 423, 394, 676, 26,
1380 22, 24, 24, 29, 425, 465, 33, 522, 147, 36,
1381 470, 27, 23, 3, 4, 26, 155, 4, 157, 457,
1382 458, 65, 449, 516, 68, 3, 486, 465, 18, 489,
1383 390, 8, 22, 393, 24, 25, 545, 546, 25, 65,
1384 549, 438, 68, 8, 399, 579, 24, 646, 5, 6,
1385 7, 448, 1020, 70, 119, 558, 559, 412, 19, 76,
1386 523, 524, 522, 583, 577, 574, 575, 8, 25, 26,
1387 27, 26, 713, 714, 434, 538, 539, 32, 3, 4,
1388 53, 1049, 1050, 1051, 522, 523, 524, 6, 49, 50,
1389 51, 451, 41, 18, 454, 558, 559, 22, 23, 24,
1390 538, 539, 617, 93, 94, 639, 25, 26, 27, 3,
1391 4, 532, 563, 591, 78, 475, 70, 565, 3, 4,
1392 558, 559, 615, 951, 952, 79, 80, 726, 727, 728,
1393 24, 25, 8, 493, 6, 628, 496, 4, 498, 24,
1394 779, 4, 3, 4, 8, 3, 4, 26, 651, 652,
1395 653, 548, 31, 874, 26, 27, 949, 617, 879, 880,
1396 557, 24, 119, 24, 620, 958, 24, 618, 93, 94,
1397 4, 619, 965, 528, 529, 530, 531, 537, 24, 617,
1398 631, 536, 28, 824, 632, 26, 607, 28, 22, 11,
1399 24, 23, 613, 620, 26, 555, 556, 662, 23, 662,
1400 19, 26, 21, 654, 3, 4, 627, 33, 26, 23,
1401 658, 29, 26, 21, 32, 936, 1009, 70, 578, 18,
1402 73, 25, 1015, 22, 662, 24, 947, 21, 688, 689,
1403 733, 734, 831, 23, 1027, 26, 26, 3, 4, 636,
1404 749, 99, 100, 101, 102, 103, 104, 105, 106, 19,
1405 784, 21, 4, 713, 714, 19, 977, 21, 24, 3,
1406 4, 1054, 1055, 1056, 1057, 986, 621, 4, 623, 624,
1407 625, 734, 70, 71, 33, 713, 714, 75, 3, 4,
1408 701, 6, 4, 3, 4, 19, 1007, 21, 87, 29,
1409 30, 3, 4, 18, 6, 94, 734, 22, 18, 24,
1410 25, 661, 22, 87, 24, 25, 18, 667, 8, 9,
1411 22, 814, 24, 754, 1035, 27, 112, 113, 114, 115,
1412 116, 8, 19, 720, 21, 87, 777, 3, 4, 25,
1413 26, 97, 780, 99, 100, 101, 102, 103, 104, 105,
1414 106, 19, 1063, 21, 19, 766, 21, 807, 24, 25,
1415 19, 772, 21, 774, 775, 776, 32, 717, 3, 4,
1416 781, 1082, 1083, 36, 824, 49, 50, 51, 93, 94,
1417 25, 26, 1093, 93, 94, 25, 26, 29, 31, 24,
1418 25, 30, 94, 3, 744, 37, 824, 32, 25, 26,
1419 850, 43, 8, 9, 10, 11, 12, 13, 14, 15,
1420 16, 17, 56, 57, 58, 59, 30, 867, 24, 31,
1421 3, 4, 850, 6, 874, 529, 530, 531, 18, 879,
1422 880, 25, 26, 3, 4, 18, 28, 887, 888, 22,
1423 790, 24, 3, 4, 27, 856, 874, 89, 859, 25,
1424 26, 879, 880, 25, 26, 3, 4, 18, 889, 25,
1425 26, 22, 31, 24, 28, 25, 26, 109, 110, 111,
1426 112, 113, 922, 923, 25, 925, 25, 26, 928, 25,
1427 26, 25, 913, 25, 26, 23, 936, 837, 6, 900,
1428 25, 97, 134, 943, 944, 25, 26, 947, 25, 26,
1429 25, 26, 36, 109, 110, 111, 956, 26, 936, 70,
1430 25, 94, 107, 108, 28, 29, 95, 96, 160, 947,
1431 3, 4, 1074, 1075, 24, 953, 954, 977, 956, 171,
1432 24, 173, 93, 94, 27, 18, 986, 27, 64, 22,
1433 87, 24, 87, 185, 94, 895, 28, 23, 25, 977,
1434 41, 193, 30, 41, 4, 197, 198, 1007, 986, 31,
1435 23, 8, 23, 4, 206, 3, 4, 26, 8, 9,
1436 10, 11, 12, 13, 14, 15, 16, 17, 33, 1007,
1437 18, 24, 21, 1033, 22, 1035, 24, 70, 24, 87,
1438 28, 17, 17, 3, 4, 1045, 1064, 30, 11, 36,
1439 8, 3, 4, 30, 23, 1033, 26, 1035, 18, 41,
1440 93, 94, 22, 1063, 24, 257, 18, 28, 1046, 25,
1441 22, 25, 24, 25, 8, 30, 268, 269, 270, 3,
1442 4, 31, 1082, 1083, 31, 1063, 278, 31, 3, 4,
1443 94, 283, 8, 1093, 18, 68, 23, 25, 22, 25,
1444 24, 43, 25, 18, 1082, 1083, 94, 22, 29, 24,
1445 302, 303, 25, 25, 306, 1093, 308, 309, 310, 109,
1446 110, 111, 62, 19, 21, 25, 318, 319, 64, 3,
1447 4, 25, 324, 93, 94, 68, 25, 25, 69, 8,
1448 3, 4, 94, 27, 18, 31, 66, 66, 22, 73,
1449 24, 23, 25, 36, 21, 18, 22, 106, 19, 22,
1450 28, 24, 69, 68, 74, 114, 115, 116, 117, 68,
1451 94, 363, 364, 365, 366, 23, 368, 26, 25, 94,
1452 40, 40, 28, 375, 63, 26, 135, 68, 380, 33,
1453 72, 69, 69, 21, 25, 87, 87, 18, 390, 69,
1454 26, 393, 394, 3, 4, 5, 6, 7, 8, 9,
1455 10, 11, 12, 13, 14, 15, 16, 17, 23, 34,
1456 94, 30, 22, 8, 24, 25, 175, 176, 177, 22,
1457 179, 94, 28, 19, 8, 35, 18, 37, 18, 3,
1458 18, 433, 434, 26, 4, 24, 438, 22, 43, 22,
1459 442, 18, 24, 22, 19, 8, 448, 3, 19, 451,
1460 30, 210, 454, 18, 213, 457, 458, 11, 217, 11,
1461 24, 30, 221, 8, 223, 33, 225, 11, 11, 11,
1462 229, 11, 18, 475, 40, 25, 11, 18, 480, 238,
1463 18, 18, 11, 19, 486, 19, 19, 11, 0, 40,
1464 137, 493, 19, 25, 496, 25, 498, 28, 19, 109,
1465 110, 111, 28, 19, 19, 25, 25, 25, 25, 119,
1466 21, 21, 0, 134, 673, 486, 801, 682, 499, 753,
1467 740, 523, 524, 1014, 930, 895, 867, 837, 1006, 1046,
1468 1068, 290, 1033, 1041, 18, 537, 538, 539, 18, 41,
1469 299, 683, 43, 545, 546, 547, 548, 549, 57, 551,
1470 688, 57, 252, 555, 556, 557, 558, 559, 171, 121,
1471 552, 732, 790, 112, 546, 493, 559, 734, 327, 255,
1472 329, 330, 574, 575, 473, 577, 578, 579, 540, 617,
1473 772, 583, 769, 396, 343, 714, 345, 487, 347, 932,
1474 767, 824, 345, 397, 646, 354, 3, 4, 5, 6,
1475 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1476 17, -1, -1, -1, -1, 22, -1, 24, 25, -1,
1477 27, -1, -1, -1, -1, -1, -1, -1, 35, -1,
1478 37, 38, 39, -1, 636, 42, -1, 639, -1, -1,
1479 -1, -1, -1, -1, -1, -1, -1, -1, -1, 56,
1480 57, 58, 59, 60, 61, -1, -1, -1, -1, 661,
1481 662, -1, -1, -1, -1, 667, -1, -1, -1, -1,
1482 429, -1, -1, -1, 676, -1, -1, 3, 4, 5,
1483 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1484 16, 17, -1, -1, -1, -1, 22, -1, 24, 25,
1485 -1, -1, 109, 110, 111, -1, 465, -1, -1, 35,
1486 -1, 37, 119, -1, -1, 717, -1, -1, 720, -1,
1487 -1, -1, 724, -1, -1, -1, -1, -1, 487, -1,
1488 489, -1, 734, -1, -1, -1, -1, -1, -1, -1,
1489 742, -1, 744, -1, -1, -1, -1, 749, -1, -1,
1490 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1491 -1, -1, -1, 522, -1, -1, -1, -1, -1, -1,
1492 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1493 -1, -1, 784, 109, 110, 111, -1, -1, 790, -1,
1494 -1, -1, -1, 119, 3, 4, 5, 6, 7, 8,
1495 9, 10, 11, 12, 13, 14, 15, 16, 17, -1,
1496 -1, -1, -1, 22, -1, 24, 25, -1, -1, -1,
1497 -1, -1, -1, -1, -1, -1, 35, -1, 37, -1,
1498 -1, -1, -1, -1, -1, 837, -1, 839, 3, 4,
1499 -1, -1, -1, 8, 9, 10, 11, 12, 13, 14,
1500 15, 16, 17, -1, -1, -1, -1, -1, 617, 24,
1501 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1502 -1, -1, -1, 38, 39, -1, -1, 42, -1, -1,
1503 882, 883, 884, 885, 886, -1, -1, -1, -1, -1,
1504 -1, -1, -1, 895, -1, 60, -1, -1, -1, -1,
1505 109, 110, 111, -1, -1, -1, -1, -1, -1, -1,
1506 119, -1, -1, -1, -1, -1, -1, -1, -1, 921,
1507 -1, -1, -1, 88, 89, 90, 91, 92, -1, 688,
1508 -1, 690, -1, 98, 99, 100, 101, 102, 103, 104,
1509 105, 106, -1, -1, 109, 110, 111, 949, -1, -1,
1510 -1, -1, -1, -1, 713, 714, 958, -1, -1, -1,
1511 -1, -1, -1, 965, -1, 967, -1, 3, 4, -1,
1512 -1, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1513 16, 17, -1, -1, -1, -1, 22, -1, 24, -1,
1514 -1, -1, -1, -1, -1, -1, -1, -1, -1, 35,
1515 -1, 37, -1, -1, -1, -1, -1, 1009, 44, 45,
1516 46, 47, 48, 1015, -1, -1, -1, -1, -1, -1,
1517 -1, -1, -1, -1, -1, 1027, -1, -1, -1, -1,
1518 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1041,
1519 -1, -1, -1, -1, -1, -1, 82, 83, 84, 85,
1520 86, -1, 1054, 1055, 1056, 1057, -1, -1, -1, -1,
1521 -1, -1, -1, -1, -1, 824, -1, -1, -1, -1,
1522 -1, -1, -1, 109, 110, 111, -1, -1, -1, -1,
1523 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1524 -1, 850, -1, -1, -1, -1, -1, -1, -1, -1,
1525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1526 -1, -1, -1, -1, -1, 874, -1, -1, 877, -1,
1527 879, 880, -1, -1, -1, -1, -1, -1, 887, 888,
1528 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1529 -1, -1, -1, -1, -1, -1, -1, 3, 4, -1,
1530 -1, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1531 16, 17, -1, -1, -1, -1, 22, 23, 24, 928,
1532 -1, -1, -1, -1, -1, -1, -1, 936, -1, 35,
1533 -1, 37, 38, 39, 943, 944, 42, -1, 947, 948,
1534 -1, -1, -1, -1, -1, -1, -1, 956, -1, -1,
1535 56, 57, 58, 59, 60, 61, -1, -1, -1, -1,
1536 -1, -1, -1, -1, -1, -1, -1, -1, 977, -1,
1537 -1, -1, -1, -1, 3, 4, -1, 986, 7, 8,
1538 9, 10, 11, 12, 13, 14, 15, 16, 17, -1,
1539 -1, -1, -1, 22, -1, 24, 25, -1, 1007, -1,
1540 -1, -1, -1, 109, 110, 111, 35, -1, 37, 38,
1541 39, -1, -1, 42, -1, -1, -1, -1, -1, -1,
1542 -1, -1, -1, -1, 1033, -1, 1035, 56, 57, 58,
1543 59, 60, 61, -1, -1, -1, 1045, -1, -1, -1,
1544 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1545 -1, 3, 4, -1, 1063, 7, 8, 9, 10, 11,
1546 12, 13, 14, 15, 16, 17, -1, -1, -1, -1,
1547 22, -1, 24, 1082, 1083, -1, -1, -1, -1, -1,
1548 109, 110, 111, 35, 1093, 37, 38, 39, -1, -1,
1549 42, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1550 -1, -1, -1, -1, 56, 57, 58, 59, 60, 61,
1551 3, 4, -1, -1, -1, 8, 9, 10, 11, 12,
1552 13, 14, 15, 16, 17, -1, -1, 3, 4, 22,
1553 -1, 24, 8, 9, 10, 11, 12, 13, 14, 15,
1554 16, 17, 35, -1, 37, 38, 39, 23, 24, 42,
1555 -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
1556 -1, -1, -1, 56, 57, 58, 59, 60, 61, 3,
1557 4, -1, -1, 7, 8, 9, 10, 11, 12, 13,
1558 14, 15, 16, 17, -1, -1, 3, 4, 22, -1,
1559 24, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1560 17, 35, -1, 37, -1, -1, -1, 24, -1, -1,
1561 -1, -1, -1, -1, -1, -1, 109, 110, 111, -1,
1562 -1, -1, -1, 99, 100, 101, 102, 103, 104, 105,
1563 106, -1, -1, 109, 110, 111, -1, -1, -1, -1,
1564 -1, -1, -1, -1, -1, -1, -1, -1, 82, 83,
1565 84, 85, 86, -1, -1, -1, -1, -1, -1, -1,
1566 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1567 -1, -1, -1, -1, -1, 109, 110, 111, -1, -1,
1568 -1, -1, 99, 100, 101, 102, 103, 104, 105, 106,
1569 -1, -1, 109, 110, 111, 3, 4, -1, -1, 7,
1570 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1571 -1, -1, -1, -1, 22, -1, 24, -1, -1, -1,
1572 -1, -1, -1, -1, -1, -1, -1, 35, -1, 37,
1573 3, 4, -1, -1, 7, 8, 9, 10, 11, 12,
1574 13, 14, 15, 16, 17, -1, -1, -1, -1, 22,
1575 23, 24, -1, -1, -1, -1, -1, -1, -1, -1,
1576 -1, -1, 35, -1, 37, -1, -1, -1, -1, -1,
1577 -1, -1, -1, -1, 82, 83, 84, 3, 4, -1,
1578 -1, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1579 16, 17, -1, -1, -1, -1, 22, 23, 24, -1,
1580 -1, 109, 110, 111, -1, -1, -1, -1, -1, 35,
1581 -1, 37, 3, 4, -1, -1, 7, 8, 9, 10,
1582 11, 12, 13, 14, 15, 16, 17, -1, -1, -1,
1583 -1, 22, 23, 24, -1, -1, 109, 110, 111, -1,
1584 -1, -1, -1, -1, 35, -1, 37, 3, 4, -1,
1585 -1, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1586 16, 17, -1, -1, -1, -1, 22, -1, 24, -1,
1587 -1, -1, -1, -1, -1, -1, -1, -1, -1, 35,
1588 -1, 37, -1, 109, 110, 111, -1, -1, -1, 3,
1589 4, -1, -1, 7, 8, 9, 10, 11, 12, 13,
1590 14, 15, 16, 17, -1, -1, -1, -1, 22, -1,
1591 24, -1, -1, -1, -1, -1, -1, -1, 109, 110,
1592 111, 35, -1, 37, 3, 4, -1, -1, -1, 8,
1593 9, 10, 11, 12, 13, 14, 15, 16, 17, -1,
1594 -1, -1, -1, 22, -1, 24, -1, -1, -1, -1,
1595 -1, -1, -1, 109, 110, 111, 35, -1, 37, 3,
1596 4, -1, -1, -1, 8, 9, 10, 11, 12, 13,
1597 14, 15, 16, 17, -1, -1, -1, -1, 22, -1,
1598 24, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1599 -1, 35, -1, 37, -1, 109, 110, 111, -1, -1,
1600 -1, 3, 4, -1, -1, -1, 8, 9, 10, 11,
1601 12, 13, 14, 15, 16, 17, -1, -1, -1, -1,
1602 22, -1, 24, -1, -1, -1, -1, -1, -1, -1,
1603 109, 110, 111, 35, -1, 37, -1, -1, -1, -1,
1604 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1605 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1606 -1, -1, -1, -1, -1, 109, 110, 111, -1, -1,
1607 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1609 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1610 -1, -1, -1, -1, -1, -1, -1, 109, 110, 111
1612 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1613 #line 3 "/usr/local/gnu/share/bison.simple"
1615 /* Skeleton output parser for bison,
1616 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1618 This program is free software; you can redistribute it and/or modify
1619 it under the terms of the GNU General Public License as published by
1620 the Free Software Foundation; either version 2, or (at your option)
1623 This program is distributed in the hope that it will be useful,
1624 but WITHOUT ANY WARRANTY; without even the implied warranty of
1625 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1626 GNU General Public License for more details.
1628 You should have received a copy of the GNU General Public License
1629 along with this program; if not, write to the Free Software
1630 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1632 /* As a special exception, when this file is copied by Bison into a
1633 Bison output file, you may use that output file without restriction.
1634 This special exception was added by the Free Software Foundation
1635 in version 1.24 of Bison. */
1639 #define alloca __builtin_alloca
1640 #else /* not GNU C. */
1641 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1643 #else /* not sparc */
1644 #if defined (MSDOS) && !defined (__TURBOC__)
1646 #else /* not MSDOS, or __TURBOC__ */
1650 #else /* not MSDOS, __TURBOC__, or _AIX */
1654 void *alloca (unsigned int);
1656 #else /* not __cplusplus */
1658 #endif /* not __cplusplus */
1660 #endif /* not _AIX */
1661 #endif /* not MSDOS, or __TURBOC__ */
1662 #endif /* not sparc. */
1663 #endif /* not GNU C. */
1664 #endif /* alloca not defined. */
1666 /* This is the parser code that is written into each bison parser
1667 when the %semantic_parser declaration is not specified in the grammar.
1668 It was written by Richard Stallman by simplifying the hairy parser
1669 used when %semantic_parser is specified. */
1671 /* Note: there must be only one dollar sign in this file.
1672 It is replaced by the list of actions, each action
1673 as one case of the switch. */
1675 #define yyerrok (yyerrstatus = 0)
1676 #define yyclearin (yychar = YYEMPTY)
1679 #define YYACCEPT return(0)
1680 #define YYABORT return(1)
1681 #define YYERROR goto yyerrlab1
1682 /* Like YYERROR except do call yyerror.
1683 This remains here temporarily to ease the
1684 transition to the new meaning of YYERROR, for GCC.
1685 Once GCC version 2 has supplanted version 1, this can go. */
1686 #define YYFAIL goto yyerrlab
1687 #define YYRECOVERING() (!!yyerrstatus)
1688 #define YYBACKUP(token, value) \
1690 if (yychar == YYEMPTY && yylen == 1) \
1691 { yychar = (token), yylval = (value); \
1692 yychar1 = YYTRANSLATE (yychar); \
1697 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1701 #define YYERRCODE 256
1704 #define YYLEX yylex()
1710 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1712 #define YYLEX yylex(&yylval, &yylloc)
1714 #else /* not YYLSP_NEEDED */
1716 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1718 #define YYLEX yylex(&yylval)
1720 #endif /* not YYLSP_NEEDED */
1723 /* If nonreentrant, generate the variables here */
1727 int yychar; /* the lookahead symbol */
1728 YYSTYPE yylval; /* the semantic value of the */
1729 /* lookahead symbol */
1732 YYLTYPE yylloc; /* location data for the lookahead */
1736 int yynerrs; /* number of parse errors so far */
1737 #endif /* not YYPURE */
1740 int yydebug; /* nonzero means print parse trace */
1741 /* Since this is uninitialized, it does not stop multiple parsers
1745 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1748 #define YYINITDEPTH 200
1751 /* YYMAXDEPTH is the maximum size the stacks can grow to
1752 (effective only if the built-in stack extension method is used). */
1759 #define YYMAXDEPTH 10000
1762 /* Prevent warning if -Wstrict-prototypes. */
1767 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1768 #define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1769 #else /* not GNU C or C++ */
1772 /* This is the most reliable way to avoid incompatibilities
1773 in available built-in functions on various systems. */
1775 __yy_memcpy (from, to, count)
1780 register char *f = from;
1781 register char *t = to;
1782 register int i = count;
1788 #else /* __cplusplus */
1790 /* This is the most reliable way to avoid incompatibilities
1791 in available built-in functions on various systems. */
1793 __yy_memcpy (char *from, char *to, int count)
1795 register char *f = from;
1796 register char *t = to;
1797 register int i = count;
1806 #line 192 "/usr/local/gnu/share/bison.simple"
1808 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1809 into yyparse. The argument should have type void *.
1810 It should actually point to an object.
1811 Grammar actions can access the variable by casting it
1812 to the proper pointer type. */
1814 #ifdef YYPARSE_PARAM
1815 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1817 #define YYPARSE_PARAM
1818 #define YYPARSE_PARAM_DECL
1822 yyparse(YYPARSE_PARAM)
1825 register int yystate;
1827 register short *yyssp;
1828 register YYSTYPE *yyvsp;
1829 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1830 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1832 short yyssa[YYINITDEPTH]; /* the state stack */
1833 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1835 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1836 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1839 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1840 YYLTYPE *yyls = yylsa;
1843 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1845 #define YYPOPSTACK (yyvsp--, yyssp--)
1848 int yystacksize = YYINITDEPTH;
1859 YYSTYPE yyval; /* the variable used to return */
1860 /* semantic values from the action */
1867 fprintf(stderr, "Starting parse\n");
1873 yychar = YYEMPTY; /* Cause a token to be read. */
1875 /* Initialize stack pointers.
1876 Waste one element of value and location stack
1877 so that they stay on the same level as the state stack.
1878 The wasted elements are never initialized. */
1886 /* Push a new state, which is found in yystate . */
1887 /* In all cases, when you get here, the value and location stacks
1888 have just been pushed. so pushing a state here evens the stacks. */
1893 if (yyssp >= yyss + yystacksize - 1)
1895 /* Give user a chance to reallocate the stack */
1896 /* Use copies of these so that the &'s don't force the real ones into memory. */
1897 YYSTYPE *yyvs1 = yyvs;
1898 short *yyss1 = yyss;
1900 YYLTYPE *yyls1 = yyls;
1903 /* Get the current used size of the three stacks, in elements. */
1904 int size = yyssp - yyss + 1;
1907 /* Each stack pointer address is followed by the size of
1908 the data in use in that stack, in bytes. */
1910 /* This used to be a conditional around just the two extra args,
1911 but that might be undefined if yyoverflow is a macro. */
1912 yyoverflow("parser stack overflow",
1913 &yyss1, size * sizeof (*yyssp),
1914 &yyvs1, size * sizeof (*yyvsp),
1915 &yyls1, size * sizeof (*yylsp),
1918 yyoverflow("parser stack overflow",
1919 &yyss1, size * sizeof (*yyssp),
1920 &yyvs1, size * sizeof (*yyvsp),
1924 yyss = yyss1; yyvs = yyvs1;
1928 #else /* no yyoverflow */
1929 /* Extend the stack our own way. */
1930 if (yystacksize >= YYMAXDEPTH)
1932 yyerror("parser stack overflow");
1936 if (yystacksize > YYMAXDEPTH)
1937 yystacksize = YYMAXDEPTH;
1938 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1939 __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
1940 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1941 __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
1943 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1944 __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
1946 #endif /* no yyoverflow */
1948 yyssp = yyss + size - 1;
1949 yyvsp = yyvs + size - 1;
1951 yylsp = yyls + size - 1;
1956 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1959 if (yyssp >= yyss + yystacksize - 1)
1965 fprintf(stderr, "Entering state %d\n", yystate);
1971 /* Do appropriate processing given the current state. */
1972 /* Read a lookahead token if we need one and don't already have one. */
1975 /* First try to decide what to do without reference to lookahead token. */
1977 yyn = yypact[yystate];
1981 /* Not known => get a lookahead token if don't already have one. */
1983 /* yychar is either YYEMPTY or YYEOF
1984 or a valid token in external form. */
1986 if (yychar == YYEMPTY)
1990 fprintf(stderr, "Reading a token: ");
1995 /* Convert token to internal form (in yychar1) for indexing tables with */
1997 if (yychar <= 0) /* This means end of input. */
2000 yychar = YYEOF; /* Don't call YYLEX any more */
2004 fprintf(stderr, "Now at end of input.\n");
2009 yychar1 = YYTRANSLATE(yychar);
2014 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2015 /* Give the individual parser a way to print the precise meaning
2016 of a token, for further debugging info. */
2018 YYPRINT (stderr, yychar, yylval);
2020 fprintf (stderr, ")\n");
2026 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2031 /* yyn is what to do for this token type in this state.
2032 Negative => reduce, -yyn is rule number.
2033 Positive => shift, yyn is new state.
2034 New state is final state => don't bother to shift,
2035 just return success.
2036 0, or most negative number => error. */
2051 /* Shift the lookahead token. */
2055 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2058 /* Discard the token being shifted unless it is eof. */
2059 if (yychar != YYEOF)
2067 /* count tokens shifted since error; after three, turn off error status. */
2068 if (yyerrstatus) yyerrstatus--;
2073 /* Do the default action for the current state. */
2076 yyn = yydefact[yystate];
2080 /* Do a reduction. yyn is the number of a rule to reduce with. */
2084 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2091 fprintf (stderr, "Reducing via rule %d (line %d), ",
2094 /* Print the symbols being reduced, and their result. */
2095 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2096 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2097 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2105 #line 333 "yaccParser/hsparser.y"
2106 { the_module_name = yyvsp[-1].uid; module_exports = yyvsp[0].ulist; ;
2109 #line 335 "yaccParser/hsparser.y"
2110 { the_module_name = install_literal("Main"); module_exports = Lnil; ;
2113 #line 341 "yaccParser/hsparser.y"
2115 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-3].ulist),module_exports,yyvsp[-1].ubinding,startlineno);
2119 #line 345 "yaccParser/hsparser.y"
2121 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-3].ulist),module_exports,yyvsp[-1].ubinding,startlineno);
2125 #line 350 "yaccParser/hsparser.y"
2127 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
2131 #line 354 "yaccParser/hsparser.y"
2133 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
2137 #line 360 "yaccParser/hsparser.y"
2139 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
2143 #line 364 "yaccParser/hsparser.y"
2145 root = mkhmodule(the_module_name,lconc(prelude_imports,yyvsp[-1].ulist),module_exports,mknullbind(),startlineno);
2149 #line 370 "yaccParser/hsparser.y"
2150 { yyval.ulist = Lnil; ;
2153 #line 371 "yaccParser/hsparser.y"
2154 { yyval.ulist = yyvsp[-1].ulist; ;
2157 #line 375 "yaccParser/hsparser.y"
2158 { yyval.ulist = lsing(yyvsp[0].uentid); ;
2161 #line 376 "yaccParser/hsparser.y"
2162 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uentid); ;
2165 #line 380 "yaccParser/hsparser.y"
2166 { yyval.uentid = mkentid(yyvsp[0].uid); ;
2169 #line 381 "yaccParser/hsparser.y"
2170 { yyval.uentid = mkenttype(yyvsp[0].uid); ;
2173 #line 382 "yaccParser/hsparser.y"
2174 { yyval.uentid = mkenttypeall(yyvsp[-3].uid); ;
2177 #line 384 "yaccParser/hsparser.y"
2178 { yyval.uentid = mkenttypecons(yyvsp[-3].uid,yyvsp[-1].ulist);
2179 /* should be a datatype with cons representing all constructors */
2183 #line 388 "yaccParser/hsparser.y"
2184 { yyval.uentid = mkentclass(yyvsp[-3].uid,yyvsp[-1].ulist);
2185 /* should be a class with vars representing all Class operations */
2189 #line 392 "yaccParser/hsparser.y"
2190 { yyval.uentid = mkentclass(yyvsp[-2].uid,Lnil);
2191 /* "tycon" should be a class with no operations */
2195 #line 396 "yaccParser/hsparser.y"
2196 { yyval.uentid = mkentmod(yyvsp[-1].uid);
2197 /* "tycon" is a module id (but "modid" is bad for your identifier's health [KH]) */
2201 #line 402 "yaccParser/hsparser.y"
2202 { yyval.ulist = yyvsp[-1].ulist; hidden = FALSE; ;
2205 #line 403 "yaccParser/hsparser.y"
2206 { yyval.ulist = yyvsp[-1].ulist; hidden = TRUE; ;
2209 #line 404 "yaccParser/hsparser.y"
2210 { yyval.ulist = Lnil; hidden = FALSE; ;
2213 #line 407 "yaccParser/hsparser.y"
2214 { yyval.ulist = Lnil; ;
2217 #line 408 "yaccParser/hsparser.y"
2218 { yyval.ulist = yyvsp[0].ulist; ;
2221 #line 412 "yaccParser/hsparser.y"
2222 { yyval.ulist = lsing(yyvsp[0].uentid); ;
2225 #line 413 "yaccParser/hsparser.y"
2226 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uentid); ;
2229 #line 417 "yaccParser/hsparser.y"
2230 { yyval.uentid = mkentid(yyvsp[0].uid); ;
2233 #line 418 "yaccParser/hsparser.y"
2234 { yyval.uentid = mkenttype(yyvsp[0].uid); ;
2237 #line 419 "yaccParser/hsparser.y"
2238 { yyval.uentid = mkenttypeall(yyvsp[-3].uid); ;
2241 #line 421 "yaccParser/hsparser.y"
2242 { yyval.uentid = mkenttypecons(yyvsp[-3].uid,yyvsp[-1].ulist);
2243 /* should be a datatype with cons representing all constructors */
2247 #line 425 "yaccParser/hsparser.y"
2248 { yyval.uentid = mkentclass(yyvsp[-3].uid,yyvsp[-1].ulist);
2249 /* should be a class with vars representing all Class operations */
2253 #line 429 "yaccParser/hsparser.y"
2254 { yyval.uentid = mkentclass(yyvsp[-2].uid,Lnil);
2255 /* "tycon" should be a class with no operations */
2259 #line 438 "yaccParser/hsparser.y"
2260 { yyval.uhpragma = mkidata_pragma(yyvsp[-2].ulist, yyvsp[-1].ulist); ;
2263 #line 440 "yaccParser/hsparser.y"
2264 { yyval.uhpragma = mkidata_pragma(Lnil, yyvsp[-1].ulist); ;
2267 #line 441 "yaccParser/hsparser.y"
2268 { yyval.uhpragma = mkno_pragma(); ;
2271 #line 446 "yaccParser/hsparser.y"
2272 { yyval.ulist = yyvsp[0].ulist; ;
2275 #line 447 "yaccParser/hsparser.y"
2276 { yyval.ulist = Lnil; ;
2279 #line 451 "yaccParser/hsparser.y"
2280 { yyval.ulist = lsing(yyvsp[0].uhpragma); ;
2283 #line 453 "yaccParser/hsparser.y"
2284 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
2287 #line 457 "yaccParser/hsparser.y"
2288 { yyval.uhpragma = mkidata_pragma_4s(yyvsp[-1].ulist); ;
2291 #line 461 "yaccParser/hsparser.y"
2292 { yyval.uhpragma = mkitype_pragma(); ;
2295 #line 462 "yaccParser/hsparser.y"
2296 { yyval.uhpragma = mkno_pragma(); ;
2299 #line 466 "yaccParser/hsparser.y"
2300 { yyval.uhpragma = mkiclas_pragma(yyvsp[-1].ulist); ;
2303 #line 467 "yaccParser/hsparser.y"
2304 { yyval.uhpragma = mkno_pragma(); ;
2307 #line 472 "yaccParser/hsparser.y"
2308 { yyval.uhpragma = mkiclasop_pragma(yyvsp[-2].uhpragma, yyvsp[-1].uhpragma); ;
2311 #line 474 "yaccParser/hsparser.y"
2312 { yyval.uhpragma = mkno_pragma(); ;
2315 #line 479 "yaccParser/hsparser.y"
2316 { yyval.uhpragma = mkiinst_simpl_pragma(yyvsp[-2].uid, yyvsp[-1].uhpragma); ;
2319 #line 482 "yaccParser/hsparser.y"
2320 { yyval.uhpragma = mkiinst_const_pragma(yyvsp[-3].uid, yyvsp[-2].uhpragma, yyvsp[-1].ulist); ;
2323 #line 485 "yaccParser/hsparser.y"
2324 { yyval.uhpragma = mkno_pragma(); ;
2327 #line 490 "yaccParser/hsparser.y"
2328 { yyval.uid = yyvsp[0].uid; ;
2331 #line 492 "yaccParser/hsparser.y"
2332 { yyval.uid = install_literal(""); ;
2335 #line 497 "yaccParser/hsparser.y"
2336 { yyval.uhpragma = yyvsp[-1].uhpragma; ;
2339 #line 499 "yaccParser/hsparser.y"
2340 { yyval.uhpragma = mkno_pragma(); ;
2343 #line 504 "yaccParser/hsparser.y"
2344 { yyval.uhpragma = mkno_pragma(); ;
2347 #line 506 "yaccParser/hsparser.y"
2348 { yyval.uhpragma = mkigen_pragma(yyvsp[-5].uhpragma, yyvsp[-4].uhpragma, yyvsp[-3].uhpragma, yyvsp[-2].uhpragma, yyvsp[-1].uhpragma, yyvsp[0].ulist); ;
2351 #line 510 "yaccParser/hsparser.y"
2352 { yyval.uhpragma = mkno_pragma(); ;
2355 #line 511 "yaccParser/hsparser.y"
2356 { yyval.uhpragma = mkiarity_pragma(yyvsp[0].ustring); ;
2359 #line 515 "yaccParser/hsparser.y"
2360 { yyval.uhpragma = mkno_pragma(); ;
2363 #line 516 "yaccParser/hsparser.y"
2364 { yyval.uhpragma = mkiupdate_pragma(yyvsp[0].ustring); ;
2367 #line 520 "yaccParser/hsparser.y"
2368 { yyval.uhpragma = mkno_pragma(); ;
2371 #line 521 "yaccParser/hsparser.y"
2372 { yyval.uhpragma = mkideforest_pragma(); ;
2375 #line 525 "yaccParser/hsparser.y"
2376 { yyval.uhpragma = mkno_pragma(); ;
2379 #line 526 "yaccParser/hsparser.y"
2380 { yyval.uhpragma = mkistrictness_pragma(installHstring(1, "B"),
2381 /* _!_ = COCON = bottom */ mkno_pragma());
2385 #line 530 "yaccParser/hsparser.y"
2386 { yyval.uhpragma = mkistrictness_pragma(yyvsp[-1].uhstring, yyvsp[0].uhpragma); ;
2389 #line 534 "yaccParser/hsparser.y"
2390 { yyval.uhpragma = yyvsp[-1].uhpragma; ;
2393 #line 535 "yaccParser/hsparser.y"
2394 { yyval.uhpragma = mkno_pragma(); ;
2397 #line 538 "yaccParser/hsparser.y"
2398 { yyval.uhpragma = mkno_pragma(); ;
2401 #line 540 "yaccParser/hsparser.y"
2402 { yyval.uhpragma = mkimagic_unfolding_pragma(yyvsp[0].uid); ;
2405 #line 542 "yaccParser/hsparser.y"
2406 { yyval.uhpragma = mkiunfolding_pragma(yyvsp[-1].uhpragma, yyvsp[0].ucoresyn); ;
2409 #line 547 "yaccParser/hsparser.y"
2410 { yyval.uhpragma = mkiunfold_always(); ;
2413 #line 549 "yaccParser/hsparser.y"
2414 { yyval.uhpragma = mkiunfold_if_args(yyvsp[-3].ustring, yyvsp[-2].ustring, yyvsp[-1].uid, yyvsp[0].ustring); ;
2417 #line 553 "yaccParser/hsparser.y"
2418 { yyval.ulist = lsing(yyvsp[0].uhpragma); ;
2421 #line 554 "yaccParser/hsparser.y"
2422 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
2425 #line 558 "yaccParser/hsparser.y"
2426 { yyval.ulist = Lnil; ;
2429 #line 559 "yaccParser/hsparser.y"
2430 { yyval.ulist = yyvsp[0].ulist; ;
2433 #line 563 "yaccParser/hsparser.y"
2434 { yyval.ulist = lsing(yyvsp[0].uhpragma); ;
2437 #line 564 "yaccParser/hsparser.y"
2438 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
2441 #line 569 "yaccParser/hsparser.y"
2442 { yyval.uhpragma = mkitype_pragma_pr(yyvsp[-3].ulist, yyvsp[-1].ustring, yyvsp[0].uhpragma); ;
2445 #line 573 "yaccParser/hsparser.y"
2446 { yyval.ulist = lsing(yyvsp[0].uttype); ;
2449 #line 574 "yaccParser/hsparser.y"
2450 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uttype); ;
2453 #line 578 "yaccParser/hsparser.y"
2454 { yyval.uttype = mkty_maybe_nothing(); ;
2457 #line 579 "yaccParser/hsparser.y"
2458 { yyval.uttype = mkty_maybe_just(yyvsp[0].uttype); ;
2461 #line 583 "yaccParser/hsparser.y"
2462 { yyval.ulist = lsing(yyvsp[0].uhpragma); ;
2465 #line 584 "yaccParser/hsparser.y"
2466 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uhpragma); ;
2469 #line 593 "yaccParser/hsparser.y"
2470 { yyval.uhpragma = mkiname_pragma_pr(yyvsp[-4].uid, yyvsp[-1].uhpragma); ;
2473 #line 599 "yaccParser/hsparser.y"
2474 { yyval.uhpragma = mkiname_pragma_pr(yyvsp[-2].uid, yyvsp[0].uhpragma); ;
2477 #line 610 "yaccParser/hsparser.y"
2478 { yyval.ucoresyn = mkcolam(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
2481 #line 612 "yaccParser/hsparser.y"
2482 { yyval.ucoresyn = mkcotylam(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
2485 #line 614 "yaccParser/hsparser.y"
2486 { yyval.ucoresyn = mkcocon(mkco_id(yyvsp[-2].uid), yyvsp[-1].ulist, yyvsp[0].ulist); ;
2489 #line 616 "yaccParser/hsparser.y"
2490 { yyval.ucoresyn = mkcocon(mkco_orig_id(yyvsp[-3].uid,yyvsp[-2].uid), yyvsp[-1].ulist, yyvsp[0].ulist); ;
2493 #line 618 "yaccParser/hsparser.y"
2494 { yyval.ucoresyn = mkcoprim(yyvsp[-2].ucoresyn, yyvsp[-1].ulist, yyvsp[0].ulist); ;
2497 #line 620 "yaccParser/hsparser.y"
2498 { yyval.ucoresyn = mkcoapp(yyvsp[-1].ucoresyn, yyvsp[0].ulist); ;
2501 #line 622 "yaccParser/hsparser.y"
2502 { yyval.ucoresyn = mkcotyapp(yyvsp[-3].ucoresyn, yyvsp[-1].uttype); ;
2505 #line 624 "yaccParser/hsparser.y"
2506 { yyval.ucoresyn = mkcocase(yyvsp[-4].ucoresyn, yyvsp[-1].ucoresyn); ;
2509 #line 626 "yaccParser/hsparser.y"
2510 { yyval.ucoresyn = mkcolet(mkcononrec(yyvsp[-5].ucoresyn, yyvsp[-3].ucoresyn), yyvsp[0].ucoresyn); ;
2513 #line 628 "yaccParser/hsparser.y"
2514 { yyval.ucoresyn = mkcolet(mkcorec(yyvsp[-3].ulist), yyvsp[0].ucoresyn); ;
2517 #line 630 "yaccParser/hsparser.y"
2518 { yyval.ucoresyn = mkcoscc(yyvsp[-2].ucoresyn, yyvsp[0].ucoresyn); ;
2521 #line 631 "yaccParser/hsparser.y"
2522 { yyval.ucoresyn = mkcoliteral(yyvsp[0].uliteral); ;
2525 #line 632 "yaccParser/hsparser.y"
2526 { yyval.ucoresyn = mkcovar(yyvsp[0].ucoresyn); ;
2529 #line 637 "yaccParser/hsparser.y"
2530 { yyval.ucoresyn = mkcoalg_alts(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
2533 #line 639 "yaccParser/hsparser.y"
2534 { yyval.ucoresyn = mkcoprim_alts(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
2537 #line 643 "yaccParser/hsparser.y"
2538 { yyval.ulist = Lnil; ;
2541 #line 644 "yaccParser/hsparser.y"
2542 { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
2545 #line 648 "yaccParser/hsparser.y"
2546 { yyval.ucoresyn = mkcoalg_alt(yyvsp[-4].ucoresyn, yyvsp[-3].ulist, yyvsp[-1].ucoresyn); ;
2549 #line 653 "yaccParser/hsparser.y"
2550 { yyval.ulist = Lnil; ;
2553 #line 654 "yaccParser/hsparser.y"
2554 { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
2557 #line 658 "yaccParser/hsparser.y"
2558 { yyval.ucoresyn = mkcoprim_alt(yyvsp[-3].uliteral, yyvsp[-1].ucoresyn); ;
2561 #line 662 "yaccParser/hsparser.y"
2562 { yyval.ucoresyn = mkconodeflt(); ;
2565 #line 663 "yaccParser/hsparser.y"
2566 { yyval.ucoresyn = mkcobinddeflt(yyvsp[-2].ucoresyn, yyvsp[0].ucoresyn); ;
2569 #line 667 "yaccParser/hsparser.y"
2570 { yyval.ulist = lsing(yyvsp[0].ucoresyn); ;
2573 #line 668 "yaccParser/hsparser.y"
2574 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
2577 #line 672 "yaccParser/hsparser.y"
2578 { yyval.ucoresyn = mkcorec_pair(yyvsp[-2].ucoresyn, yyvsp[0].ucoresyn); ;
2581 #line 676 "yaccParser/hsparser.y"
2582 { yyval.ucoresyn = mkco_preludedictscc(yyvsp[0].ucoresyn); ;
2585 #line 677 "yaccParser/hsparser.y"
2586 { yyval.ucoresyn = mkco_alldictscc(yyvsp[-2].uhstring,yyvsp[-1].uhstring,yyvsp[0].ucoresyn); ;
2589 #line 679 "yaccParser/hsparser.y"
2590 { yyval.ucoresyn = mkco_usercc(yyvsp[-4].uhstring,yyvsp[-3].uhstring,yyvsp[-2].uhstring,yyvsp[-1].ucoresyn,yyvsp[0].ucoresyn); ;
2593 #line 681 "yaccParser/hsparser.y"
2594 { yyval.ucoresyn = mkco_autocc(yyvsp[-4].ucoresyn,yyvsp[-3].uhstring,yyvsp[-2].uhstring,yyvsp[-1].ucoresyn,yyvsp[0].ucoresyn); ;
2597 #line 683 "yaccParser/hsparser.y"
2598 { yyval.ucoresyn = mkco_dictcc(yyvsp[-4].ucoresyn,yyvsp[-3].uhstring,yyvsp[-2].uhstring,yyvsp[-1].ucoresyn,yyvsp[0].ucoresyn); ;
2601 #line 685 "yaccParser/hsparser.y"
2602 { yyval.ucoresyn = mkco_scc_noncaf(); ;
2605 #line 686 "yaccParser/hsparser.y"
2606 { yyval.ucoresyn = mkco_scc_caf(); ;
2609 #line 688 "yaccParser/hsparser.y"
2610 { yyval.ucoresyn = mkco_scc_nondupd(); ;
2613 #line 689 "yaccParser/hsparser.y"
2614 { yyval.ucoresyn = mkco_scc_dupd(); ;
2617 #line 692 "yaccParser/hsparser.y"
2618 { yyval.ucoresyn = mkco_sdselid(yyvsp[-1].uid, yyvsp[0].uid); ;
2621 #line 693 "yaccParser/hsparser.y"
2622 { yyval.ucoresyn = mkco_classopid(yyvsp[-1].uid, yyvsp[0].uid); ;
2625 #line 694 "yaccParser/hsparser.y"
2626 { yyval.ucoresyn = mkco_defmid(yyvsp[-1].uid, yyvsp[0].uid); ;
2629 #line 696 "yaccParser/hsparser.y"
2630 { yyval.ucoresyn = mkco_dfunid(yyvsp[-3].uid, yyvsp[-1].uttype); ;
2633 #line 698 "yaccParser/hsparser.y"
2634 { yyval.ucoresyn = mkco_constmid(yyvsp[-4].uid, yyvsp[-3].uid, yyvsp[-1].uttype); ;
2637 #line 700 "yaccParser/hsparser.y"
2638 { yyval.ucoresyn = mkco_specid(yyvsp[-3].ucoresyn, yyvsp[-1].ulist); ;
2641 #line 701 "yaccParser/hsparser.y"
2642 { yyval.ucoresyn = mkco_wrkrid(yyvsp[0].ucoresyn); ;
2645 #line 702 "yaccParser/hsparser.y"
2646 { yyval.ucoresyn = mkco_orig_id(yyvsp[-1].uid, yyvsp[0].uid); ;
2649 #line 703 "yaccParser/hsparser.y"
2650 { yyval.ucoresyn = mkco_orig_id(yyvsp[-1].uid, yyvsp[0].uid); ;
2653 #line 704 "yaccParser/hsparser.y"
2654 { yyval.ucoresyn = mkco_id(yyvsp[0].uid); ;
2657 #line 705 "yaccParser/hsparser.y"
2658 { yyval.ucoresyn = mkco_id(yyvsp[0].uid); ;
2661 #line 710 "yaccParser/hsparser.y"
2662 { yyval.ucoresyn = mkco_ccall(yyvsp[-5].uid,0,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
2665 #line 712 "yaccParser/hsparser.y"
2666 { yyval.ucoresyn = mkco_ccall(yyvsp[-5].uid,1,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
2669 #line 714 "yaccParser/hsparser.y"
2670 { yyval.ucoresyn = mkco_casm(yyvsp[-5].uliteral,0,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
2673 #line 716 "yaccParser/hsparser.y"
2674 { yyval.ucoresyn = mkco_casm(yyvsp[-5].uliteral,1,yyvsp[-3].ulist,yyvsp[-2].uttype); ;
2677 #line 717 "yaccParser/hsparser.y"
2678 { yyval.ucoresyn = mkco_primop(yyvsp[0].uid); ;
2681 #line 721 "yaccParser/hsparser.y"
2682 { yyval.ulist = Lnil; ;
2685 #line 722 "yaccParser/hsparser.y"
2686 { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].ucoresyn); ;
2689 #line 726 "yaccParser/hsparser.y"
2690 { yyval.ucoresyn = mkcobinder(yyvsp[-3].uid, yyvsp[-1].uttype); ;
2693 #line 729 "yaccParser/hsparser.y"
2694 { yyval.ulist = Lnil; ;
2697 #line 730 "yaccParser/hsparser.y"
2698 { yyval.ulist = yyvsp[-1].ulist; ;
2701 #line 734 "yaccParser/hsparser.y"
2702 { yyval.ulist = lsing(yyvsp[0].ucoresyn); ;
2705 #line 735 "yaccParser/hsparser.y"
2706 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].ucoresyn); ;
2709 #line 739 "yaccParser/hsparser.y"
2710 { yyval.ucoresyn = mkcolit(yyvsp[0].uliteral); ;
2713 #line 740 "yaccParser/hsparser.y"
2714 { yyval.ucoresyn = mkcolocal(yyvsp[0].ucoresyn); ;
2717 #line 744 "yaccParser/hsparser.y"
2718 { yyval.ulist = lsing(yyvsp[0].uid); ;
2721 #line 745 "yaccParser/hsparser.y"
2722 { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].uid); ;
2725 #line 749 "yaccParser/hsparser.y"
2726 { yyval.ulist = lsing(yyvsp[0].uid); ;
2729 #line 750 "yaccParser/hsparser.y"
2730 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uid); ;
2733 #line 754 "yaccParser/hsparser.y"
2734 { yyval.ulist = Lnil; ;
2737 #line 755 "yaccParser/hsparser.y"
2738 { yyval.ulist = yyvsp[-1].ulist; ;
2741 #line 759 "yaccParser/hsparser.y"
2742 { yyval.ulist = lsing(yyvsp[0].uttype); ;
2745 #line 760 "yaccParser/hsparser.y"
2746 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uttype); ;
2749 #line 764 "yaccParser/hsparser.y"
2750 { yyval.uttype = yyvsp[0].uttype; ;
2753 #line 784 "yaccParser/hsparser.y"
2754 { yyval.ulist = lsing(yyvsp[0].uttype); ;
2757 #line 785 "yaccParser/hsparser.y"
2758 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].uttype); ;
2761 #line 789 "yaccParser/hsparser.y"
2762 { yyval.uttype = mkty_maybe_nothing(); ;
2765 #line 790 "yaccParser/hsparser.y"
2766 { yyval.uttype = mkty_maybe_just(yyvsp[0].uttype); ;
2769 #line 796 "yaccParser/hsparser.y"
2771 if ( implicitPrelude && !etags ) {
2772 /* we try to avoid reading interfaces when etagging */
2773 find_module_on_imports_dirlist(
2774 (haskell1_3Flag) ? "PrelCore13" : "PreludeCore",
2775 TRUE,interface_filename);
2777 find_module_on_imports_dirlist("PreludeNull_",TRUE,interface_filename);
2779 thisIfacePragmaVersion = 0;
2780 setyyin(interface_filename);
2785 #line 810 "yaccParser/hsparser.y"
2787 binding prelude_core = mkimport(installid(iface_name),Lnil,Lnil,yyvsp[0].ubinding,xstrdup(interface_filename),hsplineno);
2788 prelude_core_import = implicitPrelude? lsing(prelude_core): Lnil;
2793 #line 818 "yaccParser/hsparser.y"
2795 if ( implicitPrelude && !etags ) {
2796 find_module_on_imports_dirlist(
2797 ( haskell1_3Flag ) ? "Prel13" : "Prelude",
2798 TRUE,interface_filename);
2800 find_module_on_imports_dirlist("PreludeNull_",TRUE,interface_filename);
2802 thisIfacePragmaVersion = 0;
2803 setyyin(interface_filename);
2808 #line 831 "yaccParser/hsparser.y"
2810 binding prelude = mkimport(installid(iface_name),Lnil,Lnil,yyvsp[0].ubinding,xstrdup(interface_filename),hsplineno);
2811 prelude_imports = (! implicitPrelude) ? Lnil
2812 : lconc(prelude_core_import,lsing(prelude));
2816 #line 838 "yaccParser/hsparser.y"
2817 { yyval.ulist = Lnil; ;
2820 #line 839 "yaccParser/hsparser.y"
2821 { yyval.ulist = yyvsp[-1].ulist; ;
2824 #line 842 "yaccParser/hsparser.y"
2825 { yyval.ulist = yyvsp[0].ulist; ;
2828 #line 843 "yaccParser/hsparser.y"
2829 { yyval.ulist = lconc(yyvsp[-2].ulist,yyvsp[0].ulist); ;
2832 #line 847 "yaccParser/hsparser.y"
2833 { /* filename returned in "interface_filename" */
2834 char *module_name = id_to_string(yyvsp[0].uid);
2836 find_module_on_imports_dirlist(
2837 (haskell1_3Flag && strcmp(module_name, "Prelude") == 0)
2838 ? "Prel13" : module_name,
2839 FALSE, interface_filename);
2841 find_module_on_imports_dirlist("PreludeNull_",TRUE,interface_filename);
2843 thisIfacePragmaVersion = 0;
2844 setyyin(interface_filename);
2846 if (strcmp(module_name,"PreludeCore")==0) {
2847 hsperror("Cannot explicitly import `PreludeCore'");
2849 } else if (strcmp(module_name,"Prelude")==0) {
2850 prelude_imports = prelude_core_import; /* unavoidable */
2855 #line 868 "yaccParser/hsparser.y"
2858 yyvsp[0].ubinding->tag = hiding;
2859 yyval.ulist = lsing(yyvsp[0].ubinding);
2863 #line 876 "yaccParser/hsparser.y"
2864 { yyval.ubinding = mkimport(installid(iface_name),yyvsp[0].ulist,Lnil,yyvsp[-1].ubinding,xstrdup(interface_filename),hsplineno); ;
2867 #line 879 "yaccParser/hsparser.y"
2868 { yyval.ubinding = mkimport(installid(iface_name),yyvsp[-2].ulist,yyvsp[0].ulist,yyvsp[-3].ubinding,xstrdup(interface_filename),hsplineno); ;
2871 #line 884 "yaccParser/hsparser.y"
2873 exposeis(); /* partain: expose infix ops at level i+1 to level i */
2874 yyval.ubinding = yyvsp[-1].ubinding;
2878 #line 890 "yaccParser/hsparser.y"
2879 { yyval.ulist = yyvsp[-1].ulist; ;
2882 #line 894 "yaccParser/hsparser.y"
2883 { yyval.ulist = lsing(yyvsp[0].ulist); ;
2886 #line 895 "yaccParser/hsparser.y"
2887 { yyval.ulist = lapp(yyvsp[-2].ulist, yyvsp[0].ulist); ;
2890 #line 898 "yaccParser/hsparser.y"
2891 { yyval.ulist = ldub(yyvsp[-2].uid,yyvsp[0].uid); ;
2894 #line 899 "yaccParser/hsparser.y"
2895 { yyval.ulist = ldub(yyvsp[-2].uid,yyvsp[0].uid); ;
2898 #line 902 "yaccParser/hsparser.y"
2899 { yyval.ubinding = mknullbind(); ;
2902 #line 903 "yaccParser/hsparser.y"
2903 { yyval.ubinding = yyvsp[-1].ubinding; ;
2906 #line 906 "yaccParser/hsparser.y"
2907 { yyval.ubinding = yyvsp[0].ubinding; ;
2910 #line 907 "yaccParser/hsparser.y"
2911 { yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding); ;
2914 #line 911 "yaccParser/hsparser.y"
2915 { yyval.ubinding = mkmbind(yyvsp[-3].uid,yyvsp[-1].ulist,Lnil,startlineno); ;
2918 #line 913 "yaccParser/hsparser.y"
2919 { yyval.ubinding = mkmbind(yyvsp[-5].uid,yyvsp[-3].ulist,yyvsp[0].ulist,startlineno); ;
2922 #line 919 "yaccParser/hsparser.y"
2923 { /* OLD 95/08: fixlist = Lnil; */
2924 strcpy(iface_name, id_to_string(yyvsp[0].uid));
2928 #line 923 "yaccParser/hsparser.y"
2930 /* WDP: not only do we not check the module name
2931 but we take the one in the interface to be what we really want
2932 -- we need this for Prelude jiggery-pokery. (Blech. KH)
2933 ToDo: possibly revert....
2934 checkmodname(modname,id_to_string($2));
2936 yyval.ubinding = yyvsp[0].ubinding;
2940 #line 936 "yaccParser/hsparser.y"
2942 yyval.ubinding = mkabind(yyvsp[-3].ubinding,yyvsp[-1].ubinding);
2946 #line 940 "yaccParser/hsparser.y"
2948 yyval.ubinding = yyvsp[-1].ubinding;
2952 #line 944 "yaccParser/hsparser.y"
2954 yyval.ubinding = mkabind(yyvsp[-3].ubinding,yyvsp[-1].ubinding);
2958 #line 948 "yaccParser/hsparser.y"
2960 yyval.ubinding = yyvsp[-1].ubinding;
2964 #line 963 "yaccParser/hsparser.y"
2965 { Precedence = checkfixity(yyvsp[0].ustring); Fixity = INFIXL; ;
2968 #line 966 "yaccParser/hsparser.y"
2969 { Precedence = checkfixity(yyvsp[0].ustring); Fixity = INFIXR; ;
2972 #line 969 "yaccParser/hsparser.y"
2973 { Precedence = checkfixity(yyvsp[0].ustring); Fixity = INFIX; ;
2976 #line 972 "yaccParser/hsparser.y"
2977 { Fixity = INFIXL; Precedence = 9; ;
2980 #line 975 "yaccParser/hsparser.y"
2981 { Fixity = INFIXR; Precedence = 9; ;
2984 #line 978 "yaccParser/hsparser.y"
2985 { Fixity = INFIX; Precedence = 9; ;
2988 #line 982 "yaccParser/hsparser.y"
2989 { makeinfix(id_to_string(yyvsp[0].uid),Fixity,Precedence); ;
2992 #line 983 "yaccParser/hsparser.y"
2993 { makeinfix(id_to_string(yyvsp[0].uid),Fixity,Precedence); ;
2996 #line 988 "yaccParser/hsparser.y"
2998 if(yyvsp[-2].ubinding != NULL)
2999 if(yyvsp[0].ubinding != NULL)
3002 extendfn(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3003 yyval.ubinding = yyvsp[-2].ubinding;
3006 yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3008 yyval.ubinding = yyvsp[-2].ubinding;
3010 yyval.ubinding = yyvsp[0].ubinding;
3015 #line 1006 "yaccParser/hsparser.y"
3016 { yyval.ubinding = yyvsp[0].ubinding; ;
3019 #line 1007 "yaccParser/hsparser.y"
3020 { yyval.ubinding = yyvsp[0].ubinding; ;
3023 #line 1008 "yaccParser/hsparser.y"
3024 { yyval.ubinding = yyvsp[0].ubinding; ;
3027 #line 1009 "yaccParser/hsparser.y"
3028 { yyval.ubinding = yyvsp[0].ubinding; ;
3031 #line 1010 "yaccParser/hsparser.y"
3032 { yyval.ubinding = yyvsp[0].ubinding; ;
3035 #line 1011 "yaccParser/hsparser.y"
3036 { yyval.ubinding = yyvsp[0].ubinding; ;
3039 #line 1014 "yaccParser/hsparser.y"
3040 { yyval.ubinding = mknbind(yyvsp[-2].uttype,yyvsp[0].uttype,startlineno,mkno_pragma()); ;
3043 #line 1019 "yaccParser/hsparser.y"
3044 { yyval.ubinding = mktbind(yyvsp[-4].ulist,yyvsp[-2].uttype,yyvsp[0].ulist,all,startlineno,mkno_pragma()); ;
3047 #line 1021 "yaccParser/hsparser.y"
3048 { yyval.ubinding = mktbind(Lnil,yyvsp[-2].uttype,yyvsp[0].ulist,all,startlineno,mkno_pragma()); ;
3051 #line 1023 "yaccParser/hsparser.y"
3052 { yyval.ubinding = mktbind(yyvsp[-6].ulist,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ;
3055 #line 1025 "yaccParser/hsparser.y"
3056 { yyval.ubinding = mktbind(Lnil,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ;
3059 #line 1028 "yaccParser/hsparser.y"
3060 { yyval.ubinding = mkcbind(yyvsp[-3].ulist,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
3063 #line 1029 "yaccParser/hsparser.y"
3064 { yyval.ubinding = mkcbind(Lnil,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
3067 #line 1032 "yaccParser/hsparser.y"
3068 { yyval.ubinding = mknullbind(); ;
3071 #line 1033 "yaccParser/hsparser.y"
3072 { checkorder(yyvsp[-1].ubinding); yyval.ubinding = yyvsp[-1].ubinding; ;
3075 #line 1034 "yaccParser/hsparser.y"
3076 { checkorder(yyvsp[-1].ubinding); yyval.ubinding =yyvsp[-1].ubinding; ;
3079 #line 1037 "yaccParser/hsparser.y"
3080 { yyval.ubinding = mkibind(yyvsp[-4].ulist,yyvsp[-2].uid,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
3083 #line 1038 "yaccParser/hsparser.y"
3084 { yyval.ubinding = mkibind(Lnil,yyvsp[-2].uid,yyvsp[-1].uttype,yyvsp[0].ubinding,startlineno,mkno_pragma()); ;
3087 #line 1041 "yaccParser/hsparser.y"
3088 { yyval.ubinding = mknullbind(); ;
3091 #line 1042 "yaccParser/hsparser.y"
3092 { yyval.ubinding = yyvsp[-1].ubinding; ;
3095 #line 1043 "yaccParser/hsparser.y"
3096 { yyval.ubinding = yyvsp[-1].ubinding; ;
3099 #line 1046 "yaccParser/hsparser.y"
3100 { yyval.uttype = mktname(yyvsp[0].uid,Lnil); ;
3103 #line 1047 "yaccParser/hsparser.y"
3104 { yyval.uttype = mktname(yyvsp[-2].uid,yyvsp[-1].ulist); ;
3107 #line 1048 "yaccParser/hsparser.y"
3108 { yyval.uttype = mkttuple(mklcons(yyvsp[-3].uttype,yyvsp[-1].ulist)); ;
3111 #line 1049 "yaccParser/hsparser.y"
3112 { yyval.uttype = mkttuple(Lnil); ;
3115 #line 1050 "yaccParser/hsparser.y"
3116 { yyval.uttype = mktllist(yyvsp[-1].uttype); ;
3119 #line 1051 "yaccParser/hsparser.y"
3120 { yyval.uttype = mktfun(yyvsp[-3].uttype,yyvsp[-1].uttype); ;
3123 #line 1054 "yaccParser/hsparser.y"
3124 { yyval.uttype = mktname(yyvsp[0].uid,Lnil); ;
3127 #line 1055 "yaccParser/hsparser.y"
3128 { yyval.uttype = mktname(yyvsp[-2].uid,yyvsp[-1].ulist); ;
3131 #line 1056 "yaccParser/hsparser.y"
3132 { yyval.uttype = mkttuple(mklcons(yyvsp[-3].uttype,yyvsp[-1].ulist)); ;
3135 #line 1057 "yaccParser/hsparser.y"
3136 { yyval.uttype = mkttuple(Lnil); ;
3139 #line 1058 "yaccParser/hsparser.y"
3140 { yyval.uttype = mktllist(yyvsp[-1].uttype); ;
3143 #line 1059 "yaccParser/hsparser.y"
3144 { yyval.uttype = mktfun(yyvsp[-3].uttype,yyvsp[-1].uttype); ;
3147 #line 1062 "yaccParser/hsparser.y"
3148 { yyval.ubinding = mkdbind(yyvsp[0].ulist,startlineno); ;
3151 #line 1065 "yaccParser/hsparser.y"
3152 { yyval.ulist = mklcons(yyvsp[-3].uttype,yyvsp[-1].ulist); ;
3155 #line 1066 "yaccParser/hsparser.y"
3156 { yyval.ulist = lsing(yyvsp[0].uttype); ;
3159 #line 1075 "yaccParser/hsparser.y"
3163 extendfn(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3164 yyval.ubinding = yyvsp[-2].ubinding;
3167 yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3171 #line 1104 "yaccParser/hsparser.y"
3172 { /* type2context.c for code */
3173 yyval.ubinding = mksbind(yyvsp[-5].ulist,mkcontext(type2context(yyvsp[-3].uttype),yyvsp[-1].uttype),startlineno,yyvsp[0].uhpragma);
3174 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3178 #line 1109 "yaccParser/hsparser.y"
3180 yyval.ubinding = mksbind(yyvsp[-3].ulist,yyvsp[-1].uttype,startlineno,yyvsp[0].uhpragma);
3181 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3185 #line 1122 "yaccParser/hsparser.y"
3187 yyval.ubinding = mkvspec_uprag(yyvsp[-3].uid, yyvsp[-1].ulist, startlineno);
3188 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3192 #line 1128 "yaccParser/hsparser.y"
3194 yyval.ubinding = mkispec_uprag(yyvsp[-2].uid, yyvsp[-1].uttype, startlineno);
3195 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3199 #line 1134 "yaccParser/hsparser.y"
3201 yyval.ubinding = mkdspec_uprag(yyvsp[-2].uid, yyvsp[-1].ulist, startlineno);
3202 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3206 #line 1140 "yaccParser/hsparser.y"
3208 yyval.ubinding = mkinline_uprag(yyvsp[-2].uid, yyvsp[-1].ulist, startlineno);
3209 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3213 #line 1146 "yaccParser/hsparser.y"
3215 yyval.ubinding = mkmagicuf_uprag(yyvsp[-2].uid, yyvsp[-1].uid, startlineno);
3216 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3220 #line 1152 "yaccParser/hsparser.y"
3222 yyval.ubinding = mkdeforest_uprag(yyvsp[-1].uid, startlineno);
3223 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3227 #line 1158 "yaccParser/hsparser.y"
3229 yyval.ubinding = mkabstract_uprag(yyvsp[-1].uid, startlineno);
3230 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3234 #line 1166 "yaccParser/hsparser.y"
3235 { yyval.ubinding = mknullbind(); PREVPATT = NULL; FN = NULL; SAMEFN = 0; ;
3238 #line 1170 "yaccParser/hsparser.y"
3239 { yyval.ulist = Lnil; ;
3242 #line 1171 "yaccParser/hsparser.y"
3243 { yyval.ulist = lsing(yyvsp[0].uid); ;
3246 #line 1174 "yaccParser/hsparser.y"
3247 { yyval.ulist = lsing(yyvsp[0].ubinding); ;
3250 #line 1175 "yaccParser/hsparser.y"
3251 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].ubinding); ;
3254 #line 1179 "yaccParser/hsparser.y"
3255 { yyval.ubinding = mkvspec_ty_and_id(yyvsp[0].uttype,Lnil); ;
3258 #line 1180 "yaccParser/hsparser.y"
3259 { yyval.ubinding = mkvspec_ty_and_id(yyvsp[-2].uttype,lsing(yyvsp[0].uid)); ;
3262 #line 1182 "yaccParser/hsparser.y"
3263 { yyval.ubinding = yyvsp[0].ubinding; ;
3266 #line 1183 "yaccParser/hsparser.y"
3267 { yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding); ;
3270 #line 1186 "yaccParser/hsparser.y"
3271 { yyval.ubinding = yyvsp[0].ubinding; ;
3274 #line 1187 "yaccParser/hsparser.y"
3275 { yyval.ubinding = yyvsp[0].ubinding; ;
3278 #line 1188 "yaccParser/hsparser.y"
3279 { yyval.ubinding = yyvsp[0].ubinding; ;
3282 #line 1189 "yaccParser/hsparser.y"
3283 { yyval.ubinding = yyvsp[0].ubinding; ;
3286 #line 1190 "yaccParser/hsparser.y"
3287 { yyval.ubinding = yyvsp[0].ubinding; ;
3290 #line 1191 "yaccParser/hsparser.y"
3291 { yyval.ubinding = mknullbind(); ;
3294 #line 1196 "yaccParser/hsparser.y"
3295 { yyval.ubinding = mksbind(yyvsp[-5].ulist,mkcontext(type2context(yyvsp[-3].uttype),yyvsp[-1].uttype),startlineno,yyvsp[0].uhpragma); ;
3298 #line 1198 "yaccParser/hsparser.y"
3299 { yyval.ubinding = mksbind(yyvsp[-3].ulist,yyvsp[-1].uttype,startlineno,yyvsp[0].uhpragma); ;
3302 #line 1202 "yaccParser/hsparser.y"
3303 { yyval.ubinding = mknbind(yyvsp[-3].uttype,yyvsp[-1].uttype,startlineno,yyvsp[0].uhpragma); ;
3306 #line 1206 "yaccParser/hsparser.y"
3307 { yyval.ubinding = mktbind(yyvsp[-3].ulist,yyvsp[-1].uttype,Lnil,Lnil,startlineno,yyvsp[0].uhpragma); ;
3310 #line 1208 "yaccParser/hsparser.y"
3311 { yyval.ubinding = mktbind(Lnil,yyvsp[-1].uttype,Lnil,Lnil,startlineno,yyvsp[0].uhpragma); ;
3314 #line 1210 "yaccParser/hsparser.y"
3315 { yyval.ubinding = mktbind(yyvsp[-5].ulist,yyvsp[-3].uttype,yyvsp[-1].ulist,Lnil,startlineno,yyvsp[0].uhpragma); ;
3318 #line 1212 "yaccParser/hsparser.y"
3319 { yyval.ubinding = mktbind(Lnil,yyvsp[-3].uttype,yyvsp[-1].ulist,Lnil,startlineno,yyvsp[0].uhpragma); ;
3322 #line 1214 "yaccParser/hsparser.y"
3323 { yyval.ubinding = mktbind(yyvsp[-6].ulist,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ;
3326 #line 1216 "yaccParser/hsparser.y"
3327 { yyval.ubinding = mktbind(Lnil,yyvsp[-4].uttype,yyvsp[-2].ulist,yyvsp[0].ulist,startlineno,mkno_pragma()); ;
3330 #line 1220 "yaccParser/hsparser.y"
3331 { yyval.ubinding = mkcbind(yyvsp[-4].ulist,yyvsp[-2].uttype,yyvsp[0].ubinding,startlineno,yyvsp[-1].uhpragma); ;
3334 #line 1222 "yaccParser/hsparser.y"
3335 { yyval.ubinding = mkcbind(Lnil,yyvsp[-2].uttype,yyvsp[0].ubinding,startlineno,yyvsp[-1].uhpragma); ;
3338 #line 1226 "yaccParser/hsparser.y"
3339 { yyval.ubinding = mkibind(yyvsp[-4].ulist,yyvsp[-2].uid,yyvsp[-1].uttype,mknullbind(),startlineno,yyvsp[0].uhpragma); ;
3342 #line 1228 "yaccParser/hsparser.y"
3343 { yyval.ubinding = mkibind(Lnil,yyvsp[-2].uid,yyvsp[-1].uttype,mknullbind(),startlineno,yyvsp[0].uhpragma); ;
3346 #line 1234 "yaccParser/hsparser.y"
3347 { yyval.uttype = mktname(yyvsp[-1].uid,lsing(yyvsp[0].uttype)); ;
3350 #line 1238 "yaccParser/hsparser.y"
3351 { yyval.ulist = lsing(yyvsp[0].uttype); ;
3354 #line 1239 "yaccParser/hsparser.y"
3355 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uttype); ;
3358 #line 1242 "yaccParser/hsparser.y"
3359 { yyval.uttype = yyvsp[0].uttype; ;
3362 #line 1243 "yaccParser/hsparser.y"
3363 { yyval.uttype = mktfun(yyvsp[-2].uttype,yyvsp[0].uttype); ;
3366 #line 1246 "yaccParser/hsparser.y"
3367 { yyval.uttype = mkuniforall(yyvsp[-2].ulist, yyvsp[0].uttype); ;
3370 #line 1248 "yaccParser/hsparser.y"
3371 { yyval.uttype = yyvsp[0].uttype; ;
3374 #line 1249 "yaccParser/hsparser.y"
3375 { yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ;
3378 #line 1252 "yaccParser/hsparser.y"
3379 { yyval.ulist = lapp(yyvsp[-1].ulist,yyvsp[0].uttype); ;
3382 #line 1253 "yaccParser/hsparser.y"
3383 { yyval.ulist = lsing(yyvsp[0].uttype); ;
3386 #line 1257 "yaccParser/hsparser.y"
3387 { yyval.uttype = yyvsp[0].uttype; ;
3390 #line 1258 "yaccParser/hsparser.y"
3391 { yyval.uttype = mktfun(yyvsp[-2].uttype,yyvsp[0].uttype); ;
3394 #line 1259 "yaccParser/hsparser.y"
3395 { yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ;
3398 #line 1263 "yaccParser/hsparser.y"
3399 { yyval.uttype = mkttuple(mklcons(yyvsp[-3].uttype,yyvsp[-1].ulist)); ;
3402 #line 1266 "yaccParser/hsparser.y"
3403 { yyval.uttype = yyvsp[0].uttype; ;
3406 #line 1267 "yaccParser/hsparser.y"
3407 { yyval.uttype = mktname(yyvsp[0].uid,Lnil); ;
3410 #line 1268 "yaccParser/hsparser.y"
3411 { yyval.uttype = mkttuple(Lnil); ;
3414 #line 1269 "yaccParser/hsparser.y"
3415 { yyval.uttype = yyvsp[-1].uttype; ;
3418 #line 1270 "yaccParser/hsparser.y"
3419 { yyval.uttype = mktllist(yyvsp[-1].uttype); ;
3422 #line 1273 "yaccParser/hsparser.y"
3423 { yyval.uttype = mkunidict(yyvsp[-3].uid, yyvsp[-2].uttype); ;
3426 #line 1274 "yaccParser/hsparser.y"
3427 { yyval.uttype = mkunityvartemplate(yyvsp[0].uid); ;
3430 #line 1278 "yaccParser/hsparser.y"
3431 { yyval.uttype = mktname(yyvsp[0].uid,Lnil); ;
3434 #line 1279 "yaccParser/hsparser.y"
3435 { yyval.uttype = mktname(yyvsp[-1].uid,yyvsp[0].ulist); ;
3438 #line 1282 "yaccParser/hsparser.y"
3439 { yyval.ulist = lsing(yyvsp[0].uatype); ;
3442 #line 1283 "yaccParser/hsparser.y"
3443 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uatype); ;
3446 #line 1287 "yaccParser/hsparser.y"
3447 { yyval.uatype = mkatc(yyvsp[-1].uid,yyvsp[0].ulist,hsplineno); ;
3450 #line 1288 "yaccParser/hsparser.y"
3451 { yyval.uatype = mkatc(yyvsp[-2].uid,yyvsp[0].ulist,hsplineno); ;
3454 #line 1289 "yaccParser/hsparser.y"
3455 { yyval.uatype = mkatc(yyvsp[0].uid,Lnil,hsplineno); ;
3458 #line 1290 "yaccParser/hsparser.y"
3459 { yyval.uatype = mkatc(yyvsp[-1].uid,Lnil,hsplineno); ;
3462 #line 1291 "yaccParser/hsparser.y"
3463 { yyval.uatype = mkatc(yyvsp[-1].uid, ldub(yyvsp[-2].uttype,yyvsp[0].uttype),hsplineno); ;
3466 #line 1294 "yaccParser/hsparser.y"
3467 { yyval.ulist = yyvsp[-1].ulist; ;
3470 #line 1295 "yaccParser/hsparser.y"
3471 { yyval.ulist = Lnil; ;
3474 #line 1296 "yaccParser/hsparser.y"
3475 { yyval.ulist = lsing(yyvsp[0].uid); ;
3478 #line 1299 "yaccParser/hsparser.y"
3479 { yyval.ulist = lsing(yyvsp[0].uid); ;
3482 #line 1300 "yaccParser/hsparser.y"
3483 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uid); ;
3486 #line 1303 "yaccParser/hsparser.y"
3487 { yyval.ulist = yyvsp[-1].ulist; ;
3490 #line 1304 "yaccParser/hsparser.y"
3491 { yyval.ulist = lsing(yyvsp[0].uttype); ;
3494 #line 1307 "yaccParser/hsparser.y"
3495 { yyval.ulist = lsing(yyvsp[0].uttype); ;
3498 #line 1308 "yaccParser/hsparser.y"
3499 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uttype); ;
3502 #line 1311 "yaccParser/hsparser.y"
3503 { yyval.ubinding = mknullbind(); ;
3506 #line 1312 "yaccParser/hsparser.y"
3507 { yyval.ubinding = yyvsp[0].ubinding; ;
3510 #line 1314 "yaccParser/hsparser.y"
3514 extendfn(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3515 yyval.ubinding = yyvsp[-2].ubinding;
3518 yyval.ubinding = mkabind(yyvsp[-2].ubinding,yyvsp[0].ubinding);
3522 #line 1328 "yaccParser/hsparser.y"
3524 yyval.ubinding = mkvspec_uprag(yyvsp[-3].uid, yyvsp[-1].ulist, startlineno);
3525 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3529 #line 1334 "yaccParser/hsparser.y"
3531 yyval.ubinding = mkinline_uprag(yyvsp[-2].uid, yyvsp[-1].ulist, startlineno);
3532 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3536 #line 1340 "yaccParser/hsparser.y"
3538 yyval.ubinding = mkmagicuf_uprag(yyvsp[-2].uid, yyvsp[-1].uid, startlineno);
3539 PREVPATT = NULL; FN = NULL; SAMEFN = 0;
3543 #line 1349 "yaccParser/hsparser.y"
3544 { yyval.ulist = mklcons(yyvsp[-2].uid,yyvsp[0].ulist); ;
3547 #line 1350 "yaccParser/hsparser.y"
3548 { yyval.ulist = lsing(yyvsp[0].uid); ;
3551 #line 1353 "yaccParser/hsparser.y"
3552 { yyval.ulist = lsing(yyvsp[0].uid); ;
3555 #line 1354 "yaccParser/hsparser.y"
3556 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uid); ;
3559 #line 1357 "yaccParser/hsparser.y"
3560 { yyval.ulist = lsing(yyvsp[0].uid); ;
3563 #line 1358 "yaccParser/hsparser.y"
3564 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uid); ;
3567 #line 1363 "yaccParser/hsparser.y"
3569 tree fn = function(yyvsp[0].utree);
3571 PREVPATT = yyvsp[0].utree;
3573 if(ttree(fn) == ident)
3575 checksamefn(gident((struct Sident *) fn));
3579 else if (ttree(fn) == tinfixop && ttree(ginfun((struct Sap *) fn)) == ident)
3581 checksamefn(gident((struct Sident *) (ginfun((struct Sap *) fn))));
3582 FN = ginfun((struct Sap *) fn);
3587 printf("%u\n",startlineno);
3589 fprintf(stderr,"%u\tvaldef\n",startlineno);
3594 #line 1388 "yaccParser/hsparser.y"
3596 if ( lhs_is_patt(yyvsp[-2].utree) )
3598 yyval.ubinding = mkpbind(yyvsp[0].ulist, startlineno);
3602 else /* lhs is function */
3603 yyval.ubinding = mkfbind(yyvsp[0].ulist,startlineno);
3609 #line 1402 "yaccParser/hsparser.y"
3610 { yyval.ulist = lsing(createpat(yyvsp[-1].ulist, yyvsp[0].ubinding)); ;
3613 #line 1406 "yaccParser/hsparser.y"
3614 { yyval.ulist = lsing(mktruecase(yyvsp[0].utree)); ;
3617 #line 1409 "yaccParser/hsparser.y"
3618 { yyval.ulist = lsing(ldub(yyvsp[-2].utree,yyvsp[0].utree)); ;
3621 #line 1410 "yaccParser/hsparser.y"
3622 { yyval.ulist = mklcons(ldub(yyvsp[-3].utree,yyvsp[-1].utree),yyvsp[0].ulist); ;
3625 #line 1414 "yaccParser/hsparser.y"
3626 { yyval.ubinding = yyvsp[-1].ubinding; ;
3629 #line 1415 "yaccParser/hsparser.y"
3630 { yyval.ubinding = yyvsp[-1].ubinding; ;
3633 #line 1416 "yaccParser/hsparser.y"
3634 { yyval.ubinding = mknullbind(); ;
3637 #line 1419 "yaccParser/hsparser.y"
3638 { yyval.utree = yyvsp[0].utree; ;
3641 #line 1423 "yaccParser/hsparser.y"
3642 { yyval.ulist = mklcons(yyvsp[-1].utree,yyvsp[0].ulist); ;
3645 #line 1424 "yaccParser/hsparser.y"
3646 { yyval.ulist = lsing(yyvsp[0].utree); ;
3649 #line 1434 "yaccParser/hsparser.y"
3650 { yyval.utree = mkrestr(yyvsp[-4].utree,mkcontext(type2context(yyvsp[-2].uttype),yyvsp[0].uttype)); ;
3653 #line 1435 "yaccParser/hsparser.y"
3654 { yyval.utree = mkrestr(yyvsp[-2].utree,yyvsp[0].uttype); ;
3657 #line 1447 "yaccParser/hsparser.y"
3658 { yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree); precparse(yyval.utree); ;
3661 #line 1456 "yaccParser/hsparser.y"
3662 { yyval.utree = mknegate(yyvsp[0].utree); ;
3665 #line 1465 "yaccParser/hsparser.y"
3666 { /* enteriscope(); /? I don't understand this -- KH */
3667 hsincindent(); /* added by partain; push new context for */
3668 /* FN = NULL; not actually concerned about */
3669 FN = NULL; /* indenting */
3670 yyval.uint = hsplineno; /* remember current line number */
3674 #line 1472 "yaccParser/hsparser.y"
3675 { hsendindent(); /* added by partain */
3676 /* exitiscope(); /? Also not understood */
3680 #line 1476 "yaccParser/hsparser.y"
3682 yyval.utree = mklambda(yyvsp[-3].ulist, yyvsp[0].utree, yyvsp[-4].uint);
3686 #line 1481 "yaccParser/hsparser.y"
3687 { yyval.utree = mklet(yyvsp[-3].ubinding,yyvsp[0].utree); ;
3690 #line 1482 "yaccParser/hsparser.y"
3691 { yyval.utree = mklet(yyvsp[-3].ubinding,yyvsp[0].utree); ;
3694 #line 1485 "yaccParser/hsparser.y"
3695 { yyval.utree = mkife(yyvsp[-4].utree,yyvsp[-2].utree,yyvsp[0].utree); ;
3698 #line 1488 "yaccParser/hsparser.y"
3699 { yyval.utree = mkcasee(yyvsp[-4].utree,yyvsp[-1].ulist); ;
3702 #line 1489 "yaccParser/hsparser.y"
3703 { yyval.utree = mkcasee(yyvsp[-4].utree,yyvsp[-1].ulist); ;
3706 #line 1492 "yaccParser/hsparser.y"
3707 { yyval.utree = mkccall(yyvsp[-1].uid,installid("n"),yyvsp[0].ulist); ;
3710 #line 1493 "yaccParser/hsparser.y"
3711 { yyval.utree = mkccall(yyvsp[0].uid,installid("n"),Lnil); ;
3714 #line 1494 "yaccParser/hsparser.y"
3715 { yyval.utree = mkccall(yyvsp[-1].uid,installid("p"),yyvsp[0].ulist); ;
3718 #line 1495 "yaccParser/hsparser.y"
3719 { yyval.utree = mkccall(yyvsp[0].uid,installid("p"),Lnil); ;
3722 #line 1496 "yaccParser/hsparser.y"
3723 { yyval.utree = mkccall(yyvsp[-1].ustring,installid("N"),yyvsp[0].ulist); ;
3726 #line 1497 "yaccParser/hsparser.y"
3727 { yyval.utree = mkccall(yyvsp[0].ustring,installid("N"),Lnil); ;
3730 #line 1498 "yaccParser/hsparser.y"
3731 { yyval.utree = mkccall(yyvsp[-1].ustring,installid("P"),yyvsp[0].ulist); ;
3734 #line 1499 "yaccParser/hsparser.y"
3735 { yyval.utree = mkccall(yyvsp[0].ustring,installid("P"),Lnil); ;
3738 #line 1503 "yaccParser/hsparser.y"
3742 "\"%s\", line %d: _scc_ (`set [profiling] cost centre') ignored\n",
3743 input_filename, hsplineno);
3744 yyval.utree = yyvsp[0].utree;
3746 yyval.utree = mkscc(yyvsp[-1].uhstring, yyvsp[0].utree);
3751 #line 1518 "yaccParser/hsparser.y"
3752 { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
3755 #line 1522 "yaccParser/hsparser.y"
3756 { yyval.ulist = lapp(yyvsp[-1].ulist,yyvsp[0].utree); ;
3759 #line 1523 "yaccParser/hsparser.y"
3760 { yyval.ulist = lsing(yyvsp[0].utree); ;
3763 #line 1533 "yaccParser/hsparser.y"
3764 { yyval.utree = mkident(yyvsp[0].uid); ;
3767 #line 1534 "yaccParser/hsparser.y"
3768 { yyval.utree = mkident(yyvsp[0].uid); ;
3771 #line 1535 "yaccParser/hsparser.y"
3772 { yyval.utree = mklit(yyvsp[0].uliteral); ;
3775 #line 1536 "yaccParser/hsparser.y"
3776 { yyval.utree = mkpar(yyvsp[-1].utree); ;
3779 #line 1537 "yaccParser/hsparser.y"
3780 { checkprec(yyvsp[-2].utree,yyvsp[-1].uid,FALSE); yyval.utree = mklsection(yyvsp[-2].utree,yyvsp[-1].uid); ;
3783 #line 1538 "yaccParser/hsparser.y"
3784 { checkprec(yyvsp[-1].utree,yyvsp[-2].uid,TRUE); yyval.utree = mkrsection(yyvsp[-2].uid,yyvsp[-1].utree); ;
3787 #line 1542 "yaccParser/hsparser.y"
3788 { yyval.utree = mkpar(yyvsp[0].utree); ;
3791 #line 1543 "yaccParser/hsparser.y"
3792 { yyval.utree = mkpar(yyvsp[0].utree); ;
3795 #line 1544 "yaccParser/hsparser.y"
3796 { yyval.utree = mkpar(yyvsp[0].utree); ;
3799 #line 1547 "yaccParser/hsparser.y"
3800 { checkinpat(); yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
3803 #line 1548 "yaccParser/hsparser.y"
3804 { checkinpat(); yyval.utree = mkwildp(); ;
3807 #line 1549 "yaccParser/hsparser.y"
3808 { checkinpat(); yyval.utree = mklazyp(yyvsp[0].utree); ;
3811 #line 1564 "yaccParser/hsparser.y"
3813 yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree);
3815 if(isconstr(id_to_string(yyvsp[-1].uid)))
3816 precparse(yyval.utree);
3819 checkprec(yyvsp[-2].utree,yyvsp[-1].uid,FALSE); /* Check the precedence of the left pattern */
3820 checkprec(yyvsp[0].utree,yyvsp[-1].uid,TRUE); /* then check the right pattern */
3825 #line 1579 "yaccParser/hsparser.y"
3827 yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree);
3829 if(isconstr(id_to_string(yyvsp[-1].uid)))
3830 precparse(yyval.utree);
3833 checkprec(yyvsp[-2].utree,yyvsp[-1].uid,FALSE); /* Check the precedence of the left pattern */
3834 checkprec(yyvsp[0].utree,yyvsp[-1].uid,TRUE); /* then check the right pattern */
3839 #line 1598 "yaccParser/hsparser.y"
3840 { yyval.utree = mknegate(yyvsp[0].utree); ;
3843 #line 1603 "yaccParser/hsparser.y"
3844 { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
3847 #line 1607 "yaccParser/hsparser.y"
3848 { yyval.utree = mknegate(yyvsp[0].utree); ;
3851 #line 1612 "yaccParser/hsparser.y"
3852 { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
3855 #line 1616 "yaccParser/hsparser.y"
3856 { yyval.utree = mkident(yyvsp[0].uid); ;
3859 #line 1617 "yaccParser/hsparser.y"
3860 { yyval.utree = mkident(yyvsp[0].uid); ;
3863 #line 1618 "yaccParser/hsparser.y"
3864 { yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
3867 #line 1619 "yaccParser/hsparser.y"
3868 { yyval.utree = mklit(yyvsp[0].uliteral); ;
3871 #line 1620 "yaccParser/hsparser.y"
3872 { yyval.utree = mkwildp(); ;
3875 #line 1621 "yaccParser/hsparser.y"
3876 { yyval.utree = mktuple(Lnil); ;
3879 #line 1622 "yaccParser/hsparser.y"
3880 { yyval.utree = mkplusp(mkident(yyvsp[-3].uid),mkinteger(yyvsp[-1].ustring)); ;
3883 #line 1626 "yaccParser/hsparser.y"
3884 { yyval.utree = mkpar(yyvsp[-1].utree); ;
3887 #line 1627 "yaccParser/hsparser.y"
3888 { yyval.utree = mktuple(mklcons(yyvsp[-3].utree,yyvsp[-1].ulist)); ;
3891 #line 1628 "yaccParser/hsparser.y"
3892 { yyval.utree = mkllist(yyvsp[-1].ulist); ;
3895 #line 1629 "yaccParser/hsparser.y"
3896 { yyval.utree = mkllist(Lnil); ;
3899 #line 1630 "yaccParser/hsparser.y"
3900 { yyval.utree = mklazyp(yyvsp[0].utree); ;
3903 #line 1633 "yaccParser/hsparser.y"
3904 { yyval.utree = mkident(yyvsp[0].uid); ;
3907 #line 1634 "yaccParser/hsparser.y"
3908 { yyval.utree = mkident(yyvsp[0].uid); ;
3911 #line 1635 "yaccParser/hsparser.y"
3912 { yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
3915 #line 1636 "yaccParser/hsparser.y"
3916 { yyval.utree = mklit(yyvsp[0].uliteral); setstartlineno(); ;
3919 #line 1637 "yaccParser/hsparser.y"
3920 { yyval.utree = mkwildp(); setstartlineno(); ;
3923 #line 1638 "yaccParser/hsparser.y"
3924 { yyval.utree = mktuple(Lnil); ;
3927 #line 1639 "yaccParser/hsparser.y"
3928 { yyval.utree = mkplusp(mkident(yyvsp[-3].uid),mkinteger(yyvsp[-1].ustring)); ;
3931 #line 1643 "yaccParser/hsparser.y"
3932 { yyval.utree = mkpar(yyvsp[-1].utree); ;
3935 #line 1644 "yaccParser/hsparser.y"
3936 { yyval.utree = mktuple(mklcons(yyvsp[-3].utree,yyvsp[-1].ulist)); ;
3939 #line 1645 "yaccParser/hsparser.y"
3940 { yyval.utree = mkllist(yyvsp[-1].ulist); ;
3943 #line 1646 "yaccParser/hsparser.y"
3944 { yyval.utree = mkllist(Lnil); ;
3947 #line 1647 "yaccParser/hsparser.y"
3948 { yyval.utree = mklazyp(yyvsp[0].utree); ;
3951 #line 1652 "yaccParser/hsparser.y"
3952 { if (ttree(yyvsp[-1].utree) == tuple)
3953 yyval.utree = mktuple(mklcons(yyvsp[-3].utree, gtuplelist((struct Stuple *) yyvsp[-1].utree)));
3955 yyval.utree = mktuple(ldub(yyvsp[-3].utree, yyvsp[-1].utree));
3959 #line 1658 "yaccParser/hsparser.y"
3960 { yyval.utree = mktuple(Lnil); ;
3963 #line 1666 "yaccParser/hsparser.y"
3964 { yyval.utree = mkpar(yyvsp[0].utree); ;
3967 #line 1668 "yaccParser/hsparser.y"
3968 { if (ttree(yyvsp[0].utree) == tuple)
3969 yyval.utree = mktuple(mklcons(yyvsp[-2].utree, gtuplelist((struct Stuple *) yyvsp[0].utree)));
3971 yyval.utree = mktuple(ldub(yyvsp[-2].utree, yyvsp[0].utree));
3975 #line 1677 "yaccParser/hsparser.y"
3976 { yyval.utree = mkllist(Lnil); ;
3979 #line 1678 "yaccParser/hsparser.y"
3980 { yyval.utree = mkllist(yyvsp[-1].ulist); ;
3983 #line 1682 "yaccParser/hsparser.y"
3984 { yyval.ulist = lsing(yyvsp[0].utree); ;
3987 #line 1683 "yaccParser/hsparser.y"
3988 { yyval.ulist = mklcons(yyvsp[-2].utree, yyvsp[0].ulist); ;
3991 #line 1698 "yaccParser/hsparser.y"
3992 {yyval.utree = mkeenum(yyvsp[-5].utree,lsing(yyvsp[-3].utree),yyvsp[-1].ulist);;
3995 #line 1699 "yaccParser/hsparser.y"
3996 { yyval.utree = mkeenum(yyvsp[-3].utree,Lnil,yyvsp[-1].ulist); ;
3999 #line 1702 "yaccParser/hsparser.y"
4000 { yyval.utree = mkcomprh(yyvsp[-3].utree,yyvsp[-1].ulist); ;
4003 #line 1705 "yaccParser/hsparser.y"
4004 { yyval.ulist = lsing(yyvsp[0].utree); ;
4007 #line 1706 "yaccParser/hsparser.y"
4008 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].utree); ;
4011 #line 1709 "yaccParser/hsparser.y"
4015 #line 1709 "yaccParser/hsparser.y"
4019 #line 1710 "yaccParser/hsparser.y"
4020 { if (yyvsp[0].utree == NULL) {
4021 patternOrExpr(/*wanted:*/ LEGIT_EXPR,yyvsp[-2].utree);
4022 yyval.utree = mkguard(yyvsp[-2].utree);
4024 patternOrExpr(/*wanted:*/ LEGIT_PATT,yyvsp[-2].utree);
4025 yyval.utree = mkqual(yyvsp[-2].utree,yyvsp[0].utree);
4029 tree prevpatt_save = PREVPATT;
4031 $$ = mkdef((tree) mkpbind(lsing(createpat(lsing(mktruecase(ggdef((struct Sdef *) $4))),mknullbind())),hsplineno));
4032 PREVPATT = prevpatt_save;
4040 #line 1730 "yaccParser/hsparser.y"
4041 { yyval.utree = yyvsp[0].utree; ;
4044 #line 1731 "yaccParser/hsparser.y"
4045 { yyval.utree = NULL; ;
4048 #line 1734 "yaccParser/hsparser.y"
4049 { yyval.ulist = yyvsp[0].ulist; ;
4052 #line 1735 "yaccParser/hsparser.y"
4053 { yyval.ulist = lconc(yyvsp[-2].ulist,yyvsp[0].ulist); ;
4056 #line 1739 "yaccParser/hsparser.y"
4057 { PREVPATT = yyvsp[0].utree; ;
4060 #line 1741 "yaccParser/hsparser.y"
4061 { yyval.ulist = yyvsp[0].ulist;
4066 #line 1744 "yaccParser/hsparser.y"
4067 { yyval.ulist = Lnil; ;
4070 #line 1747 "yaccParser/hsparser.y"
4071 { yyval.ulist = lsing(createpat(yyvsp[-1].ulist, yyvsp[0].ubinding)); ;
4074 #line 1748 "yaccParser/hsparser.y"
4075 { yyval.ulist = lsing(createpat(lsing(mktruecase(yyvsp[-1].utree)), yyvsp[0].ubinding)); ;
4078 #line 1751 "yaccParser/hsparser.y"
4079 { yyval.ulist = mklcons(ldub(yyvsp[-3].utree,yyvsp[-1].utree),yyvsp[0].ulist); ;
4082 #line 1752 "yaccParser/hsparser.y"
4083 { yyval.ulist = lsing(ldub(yyvsp[-2].utree,yyvsp[0].utree)); ;
4086 #line 1755 "yaccParser/hsparser.y"
4087 { yyval.ulist = Lnil; ;
4090 #line 1756 "yaccParser/hsparser.y"
4091 { yyval.ulist = lsing(yyvsp[0].utree); ;
4094 #line 1759 "yaccParser/hsparser.y"
4095 { yyval.ulist = mklcons(yyvsp[-2].utree, yyvsp[0].ulist); ;
4098 #line 1760 "yaccParser/hsparser.y"
4099 { yyval.ulist = lsing(yyvsp[0].utree); ;
4102 #line 1765 "yaccParser/hsparser.y"
4103 { yyval.utree = mkinfixop(yyvsp[-1].uid,yyvsp[-2].utree,yyvsp[0].utree); precparse(yyval.utree); ;
4106 #line 1770 "yaccParser/hsparser.y"
4107 { yyval.utree = mklit(mkinteger(ineg(yyvsp[0].ustring))); ;
4110 #line 1771 "yaccParser/hsparser.y"
4111 { yyval.utree = mklit(mkfloatr(ineg(yyvsp[0].ustring))); ;
4114 #line 1774 "yaccParser/hsparser.y"
4115 { yyval.utree = mkident(yyvsp[0].uid); ;
4118 #line 1775 "yaccParser/hsparser.y"
4119 { yyval.utree = mkap(yyvsp[-1].utree,yyvsp[0].utree); ;
4122 #line 1778 "yaccParser/hsparser.y"
4123 { yyval.utree = mkident(yyvsp[0].uid); ;
4126 #line 1782 "yaccParser/hsparser.y"
4127 { yyval.utree = mkident(yyvsp[0].uid); ;
4130 #line 1783 "yaccParser/hsparser.y"
4131 { yyval.utree = mkas(yyvsp[-2].uid,yyvsp[0].utree); ;
4134 #line 1784 "yaccParser/hsparser.y"
4135 { yyval.utree = mklit(yyvsp[0].uliteral); ;
4138 #line 1785 "yaccParser/hsparser.y"
4139 { yyval.utree = mkwildp(); ;
4142 #line 1786 "yaccParser/hsparser.y"
4143 { yyval.utree = mktuple(Lnil); ;
4146 #line 1787 "yaccParser/hsparser.y"
4147 { yyval.utree = mkplusp(mkident(yyvsp[-3].uid),mkinteger(yyvsp[-1].ustring)); ;
4150 #line 1791 "yaccParser/hsparser.y"
4151 { yyval.utree = mkpar(yyvsp[-1].utree); ;
4154 #line 1792 "yaccParser/hsparser.y"
4155 { yyval.utree = mktuple(mklcons(yyvsp[-3].utree,yyvsp[-1].ulist)); ;
4158 #line 1793 "yaccParser/hsparser.y"
4159 { yyval.utree = mkllist(yyvsp[-1].ulist); ;
4162 #line 1794 "yaccParser/hsparser.y"
4163 { yyval.utree = mkllist(Lnil); ;
4166 #line 1795 "yaccParser/hsparser.y"
4167 { yyval.utree = mklazyp(yyvsp[0].utree); ;
4170 #line 1799 "yaccParser/hsparser.y"
4171 { yyval.uliteral = mkinteger(yyvsp[0].ustring); ;
4174 #line 1800 "yaccParser/hsparser.y"
4175 { yyval.uliteral = mkfloatr(yyvsp[0].ustring); ;
4178 #line 1801 "yaccParser/hsparser.y"
4179 { yyval.uliteral = mkcharr(yyvsp[0].uhstring); ;
4182 #line 1802 "yaccParser/hsparser.y"
4183 { yyval.uliteral = mkstring(yyvsp[0].uhstring); ;
4186 #line 1803 "yaccParser/hsparser.y"
4187 { yyval.uliteral = mkcharprim(yyvsp[0].uhstring); ;
4190 #line 1804 "yaccParser/hsparser.y"
4191 { yyval.uliteral = mkstringprim(yyvsp[0].uhstring); ;
4194 #line 1805 "yaccParser/hsparser.y"
4195 { yyval.uliteral = mkintprim(yyvsp[0].ustring); ;
4198 #line 1806 "yaccParser/hsparser.y"
4199 { yyval.uliteral = mkfloatprim(yyvsp[0].ustring); ;
4202 #line 1807 "yaccParser/hsparser.y"
4203 { yyval.uliteral = mkdoubleprim(yyvsp[0].ustring); ;
4206 #line 1808 "yaccParser/hsparser.y"
4207 { yyval.uliteral = mkclitlit(yyvsp[0].ustring, ""); ;
4210 #line 1809 "yaccParser/hsparser.y"
4211 { yyval.uliteral = mkclitlit(yyvsp[-2].ustring, yyvsp[0].uid); ;
4214 #line 1810 "yaccParser/hsparser.y"
4215 { yyval.uliteral = mknorepi(yyvsp[0].ustring); ;
4218 #line 1811 "yaccParser/hsparser.y"
4219 { yyval.uliteral = mknorepr(yyvsp[-1].ustring, yyvsp[0].ustring); ;
4222 #line 1812 "yaccParser/hsparser.y"
4223 { yyval.uliteral = mknoreps(yyvsp[0].uhstring); ;
4226 #line 1818 "yaccParser/hsparser.y"
4227 { setstartlineno(); ;
4230 #line 1821 "yaccParser/hsparser.y"
4234 printf("%u\n",startlineno);
4236 fprintf(stderr,"%u\tdata\n",startlineno);
4241 #line 1831 "yaccParser/hsparser.y"
4245 printf("%u\n",startlineno);
4247 fprintf(stderr,"%u\ttype\n",startlineno);
4252 #line 1841 "yaccParser/hsparser.y"
4256 printf("%u\n",startlineno);
4259 fprintf(stderr,"%u\tinstance\n",startlineno);
4264 #line 1852 "yaccParser/hsparser.y"
4265 { setstartlineno(); ;
4268 #line 1855 "yaccParser/hsparser.y"
4272 printf("%u\n",startlineno);
4274 fprintf(stderr,"%u\tclass\n",startlineno);
4279 #line 1865 "yaccParser/hsparser.y"
4280 { setstartlineno(); ;
4283 #line 1868 "yaccParser/hsparser.y"
4287 printf("%u\n",startlineno);
4289 fprintf(stderr,"%u\tmodule\n",startlineno);
4294 #line 1878 "yaccParser/hsparser.y"
4295 { setstartlineno(); ;
4298 #line 1881 "yaccParser/hsparser.y"
4299 { setstartlineno(); ;
4302 #line 1884 "yaccParser/hsparser.y"
4303 { setstartlineno(); ;
4306 #line 1899 "yaccParser/hsparser.y"
4307 { yyval.uid = yyvsp[-1].uid; ;
4310 #line 1905 "yaccParser/hsparser.y"
4311 { yyval.uid = yyvsp[-1].uid; ;
4314 #line 1909 "yaccParser/hsparser.y"
4315 { yyval.uid = yyvsp[-1].uid; ;
4318 #line 1917 "yaccParser/hsparser.y"
4319 { yyval.uid = install_literal("-"); ;
4322 #line 1920 "yaccParser/hsparser.y"
4323 { yyval.uid = install_literal("+"); ;
4326 #line 1924 "yaccParser/hsparser.y"
4327 { yyval.uid = yyvsp[-1].uid; ;
4330 #line 1927 "yaccParser/hsparser.y"
4331 { setstartlineno(); yyval.uid = yyvsp[0].uid; ;
4334 #line 1928 "yaccParser/hsparser.y"
4335 { yyval.uid = yyvsp[-1].uid; ;
4338 #line 1933 "yaccParser/hsparser.y"
4339 { yyval.uid = yyvsp[-1].uid; ;
4342 #line 1936 "yaccParser/hsparser.y"
4343 { setstartlineno(); yyval.uid = yyvsp[0].uid; ;
4346 #line 1937 "yaccParser/hsparser.y"
4347 { yyval.uid = yyvsp[-1].uid; ;
4350 #line 1944 "yaccParser/hsparser.y"
4351 { yyval.ulist = lsing(yyvsp[0].uttype); ;
4354 #line 1945 "yaccParser/hsparser.y"
4355 { yyval.ulist = lapp(yyvsp[-2].ulist,yyvsp[0].uttype); ;
4358 #line 1948 "yaccParser/hsparser.y"
4359 { yyval.ulist = lsing(yyvsp[0].uttype); ;
4362 #line 1949 "yaccParser/hsparser.y"
4363 { yyval.ulist = lapp(yyvsp[-1].ulist, yyvsp[0].uttype); ;
4366 #line 1952 "yaccParser/hsparser.y"
4367 { yyval.uttype = mknamedtvar(yyvsp[0].uid); ;
4370 #line 1968 "yaccParser/hsparser.y"
4374 #line 1970 "yaccParser/hsparser.y"
4378 #line 1973 "yaccParser/hsparser.y"
4382 #line 1978 "yaccParser/hsparser.y"
4384 FN = NULL; SAMEFN = 0; PREVPATT = NULL;
4389 #line 1984 "yaccParser/hsparser.y"
4390 { expect_ccurly = 1; ;
4393 #line 1984 "yaccParser/hsparser.y"
4394 { expect_ccurly = 0; ;
4397 #line 1989 "yaccParser/hsparser.y"
4399 FN = NULL; SAMEFN = 0; PREVPATT = NULL;
4404 #line 1994 "yaccParser/hsparser.y"
4407 FN = NULL; SAMEFN = 0; PREVPATT = NULL;
4412 /* the action file gets copied in in place of this dollarsign */
4413 #line 487 "/usr/local/gnu/share/bison.simple"
4424 short *ssp1 = yyss - 1;
4425 fprintf (stderr, "state stack now");
4426 while (ssp1 != yyssp)
4427 fprintf (stderr, " %d", *++ssp1);
4428 fprintf (stderr, "\n");
4438 yylsp->first_line = yylloc.first_line;
4439 yylsp->first_column = yylloc.first_column;
4440 yylsp->last_line = (yylsp-1)->last_line;
4441 yylsp->last_column = (yylsp-1)->last_column;
4446 yylsp->last_line = (yylsp+yylen-1)->last_line;
4447 yylsp->last_column = (yylsp+yylen-1)->last_column;
4451 /* Now "shift" the result of the reduction.
4452 Determine what state that goes to,
4453 based on the state we popped back to
4454 and the rule number reduced by. */
4458 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
4459 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4460 yystate = yytable[yystate];
4462 yystate = yydefgoto[yyn - YYNTBASE];
4466 yyerrlab: /* here on detecting error */
4469 /* If not already recovering from an error, report this error. */
4473 #ifdef YYERROR_VERBOSE
4474 yyn = yypact[yystate];
4476 if (yyn > YYFLAG && yyn < YYLAST)
4483 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
4484 for (x = (yyn < 0 ? -yyn : 0);
4485 x < (sizeof(yytname) / sizeof(char *)); x++)
4486 if (yycheck[x + yyn] == x)
4487 size += strlen(yytname[x]) + 15, count++;
4488 msg = (char *) malloc(size + 15);
4491 strcpy(msg, "parse error");
4496 for (x = (yyn < 0 ? -yyn : 0);
4497 x < (sizeof(yytname) / sizeof(char *)); x++)
4498 if (yycheck[x + yyn] == x)
4500 strcat(msg, count == 0 ? ", expecting `" : " or `");
4501 strcat(msg, yytname[x]);
4510 yyerror ("parse error; also virtual memory exceeded");
4513 #endif /* YYERROR_VERBOSE */
4514 yyerror("parse error");
4518 yyerrlab1: /* here on error raised explicitly by an action */
4520 if (yyerrstatus == 3)
4522 /* if just tried and failed to reuse lookahead token after an error, discard it. */
4524 /* return failure if at end of input */
4525 if (yychar == YYEOF)
4530 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
4536 /* Else will try to reuse lookahead token
4537 after shifting the error token. */
4539 yyerrstatus = 3; /* Each real token shifted decrements this */
4543 yyerrdefault: /* current state does not do anything special for the error token. */
4546 /* This is wrong; only states that explicitly want error tokens
4547 should shift them. */
4548 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
4549 if (yyn) goto yydefault;
4552 yyerrpop: /* pop the current state because it cannot handle the error token */
4554 if (yyssp == yyss) YYABORT;
4564 short *ssp1 = yyss - 1;
4565 fprintf (stderr, "Error: state stack now");
4566 while (ssp1 != yyssp)
4567 fprintf (stderr, " %d", *++ssp1);
4568 fprintf (stderr, "\n");
4574 yyn = yypact[yystate];
4579 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
4598 fprintf(stderr, "Shifting error token, ");
4609 #line 2001 "yaccParser/hsparser.y"
4612 /**********************************************************************
4614 * Error Processing and Reporting *
4616 * (This stuff is here in case we want to use Yacc macros and such.) *
4618 **********************************************************************/
4620 /* The parser calls "hsperror" when it sees a
4621 `report this and die' error. It sets the stage
4622 and calls "yyerror".
4624 There should be no direct calls in the parser to
4625 "yyerror", except for the one from "hsperror". Thus,
4626 the only other calls will be from the error productions
4627 introduced by yacc/bison/whatever.
4629 We need to be able to recognise the from-error-production
4630 case, because we sometimes want to say, "Oh, never mind",
4631 because the layout rule kicks into action and may save
4635 static BOOLEAN error_and_I_mean_it = FALSE;
4641 error_and_I_mean_it = TRUE;
4645 extern char *yytext;
4652 /* We want to be able to distinguish 'error'-raised yyerrors
4653 from yyerrors explicitly coded by the parser hacker.
4655 if (expect_ccurly && ! error_and_I_mean_it ) {
4659 fprintf(stderr, "\"%s\", line %d, column %d: %s on input: ",
4660 input_filename, hsplineno, hspcolno + 1, s);
4662 if (yyleng == 1 && *yytext == '\0')
4663 fprintf(stderr, "<EOF>");
4667 format_string(stderr, (unsigned char *) yytext, yyleng);
4670 fputc('\n', stderr);
4672 /* a common problem */
4673 if (strcmp(yytext, "#") == 0)
4674 fprintf(stderr, "\t(Perhaps you forgot a `-cpp' or `-fglasgow-exts' flag?)\n");
4681 format_string(fp, s, len)
4688 case '\0': fputs("\\NUL", fp); break;
4689 case '\007': fputs("\\a", fp); break;
4690 case '\010': fputs("\\b", fp); break;
4691 case '\011': fputs("\\t", fp); break;
4692 case '\012': fputs("\\n", fp); break;
4693 case '\013': fputs("\\v", fp); break;
4694 case '\014': fputs("\\f", fp); break;
4695 case '\015': fputs("\\r", fp); break;
4696 case '\033': fputs("\\ESC", fp); break;
4697 case '\034': fputs("\\FS", fp); break;
4698 case '\035': fputs("\\GS", fp); break;
4699 case '\036': fputs("\\RS", fp); break;
4700 case '\037': fputs("\\US", fp); break;
4701 case '\177': fputs("\\DEL", fp); break;
4706 fprintf(fp, "\\^%c", *s + '@');