2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
49 /*drl added 11/27/2001*/
51 /* < end of bison.head > */
54 /* A Bison parser, made from cgrammar.y
55 by GNU Bison version 1.28 */
57 #define YYBISON 1 /* Identify Bison output. */
61 #define CTOK_ELIPSIS 259
85 #define TAMPERSAND 283
103 #define COFFSETOF 301
114 #define MUL_ASSIGN 312
115 #define DIV_ASSIGN 313
116 #define MOD_ASSIGN 314
117 #define ADD_ASSIGN 315
118 #define SUB_ASSIGN 316
119 #define LEFT_ASSIGN 317
120 #define RIGHT_ASSIGN 318
121 #define AND_ASSIGN 319
122 #define XOR_ASSIGN 320
123 #define OR_ASSIGN 321
131 #define QMODIFIES 329
133 #define QCONSTANT 331
134 #define QFUNCTION 332
138 #define QALLOCATES 336
140 #define QRELEASES 338
141 #define QPRECLAUSE 339
142 #define QPOSTCLAUSE 340
143 #define QINVARIANT 341
147 #define QENDMACRO 345
149 #define LLMACROITER 347
150 #define LLMACROEND 348
151 #define TENDMACRO 349
152 #define QSWITCHBREAK 350
153 #define QLOOPBREAK 351
154 #define QINNERBREAK 352
155 #define QSAFEBREAK 353
156 #define QINNERCONTINUE 354
157 #define QFALLTHROUGH 355
158 #define QLINTNOTREACHED 356
159 #define QLINTFALLTHROUGH 357
160 #define QLINTFALLTHRU 358
161 #define QARGSUSED 359
162 #define QPRINTFLIKE 360
163 #define QLINTPRINTFLIKE 361
164 #define QSCANFLIKE 362
165 #define QMESSAGELIKE 363
166 #define QNOTREACHED 364
168 #define QVOLATILE 366
170 #define QEXTENSION 368
174 #define QREGISTER 372
184 #define QUNCHECKED 382
185 #define QCHECKEDSTRICT 383
186 #define QCHECKMOD 384
192 #define QDEPENDENT 390
193 #define QRETURNED 391
196 #define QOBSERVER 394
200 #define QNEVEREXIT 398
201 #define QTRUEEXIT 399
202 #define QFALSEEXIT 400
205 #define QUNSIGNED 403
211 #define QABSTRACT 409
212 #define QCONCRETE 410
214 #define QIMMUTABLE 412
215 #define QTRUENULL 413
216 #define QFALSENULL 414
217 #define QEXTERNAL 415
218 #define QREFCOUNTED 416
231 #define QINTEGRALTYPE 429
232 #define QUNSIGNEDINTEGRALTYPE 430
233 #define QSIGNEDINTEGRALTYPE 431
234 #define QNULLTERMINATED 432
235 #define QSETBUFFERSIZE 433
236 #define QSETSTRINGLENGTH 434
239 #define QTESTINRANGE 437
241 #define IDENTIFIER 439
242 #define NEW_IDENTIFIER 440
243 #define TYPE_NAME_OR_ID 441
244 #define CANNOTATION 442
245 #define CCONSTANT 443
246 #define ITER_NAME 444
247 #define ITER_ENDNAME 445
248 #define TYPE_NAME 446
249 #define METASTATE_NAME 447
256 ** Yacc/Bison grammar for extended ANSI C used by Splint.
258 ** original grammar by Nate Osgood ---
259 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
261 ** changes for Splint --- handle typedef names correctly
262 ** fix struct/union parsing bug (empty struct is accepted)
263 ** add productions to handle macros --- require
264 ** error correction --- main source of conflicts in grammar.
265 ** need to process initializations sequentially, L->R
267 ** production names are cryptic, so more productions fit on one line
269 ** conflicts: 87 shift/reduce, 18 reduce/reduce
270 ** most of these are due to handling macros
271 ** a few are due to handling type expressions
277 extern void swallowMacro (void);
278 extern void yyerror (char *);
280 # include "splintMacros.nf"
282 # include "cscanner.h"
283 # include "cgrammar.h"
284 # include "exprChecks.h"
289 # define SHOWCSYM FALSE
292 ** This is necessary, or else when the bison-generated code #include's malloc.h,
293 ** there will be a parse error.
295 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
296 ** in bison-generated files under Win32.
313 /*@dependent@*/ sRef sr;
316 /*@only@*/ functionClauseList funcclauselist;
317 /*@only@*/ functionClause funcclause;
318 /*@only@*/ flagSpec flagspec;
319 /*@only@*/ globalsClause globsclause;
320 /*@only@*/ modifiesClause modsclause;
321 /*@only@*/ warnClause warnclause;
322 /*@only@*/ stateClause stateclause;
324 /*@only@*/ functionConstraint fcnconstraint;
326 /*@only@*/ metaStateConstraint msconstraint;
327 /*@only@*/ metaStateSpecifier msspec;
328 /*@only@*/ metaStateExpression msexpr;
329 /*@observer@*/ metaStateInfo msinfo;
331 /*@only@*/ sRefList srlist;
332 /*@only@*/ globSet globset;
333 /*@only@*/ qtype qtyp;
334 /*@only@*/ cstring cname;
335 /*@observer@*/ annotationInfo annotation;
336 /*@only@*/ idDecl ntyp;
337 /*@only@*/ idDeclList ntyplist;
338 /*@only@*/ uentryList flist;
339 /*@owned@*/ uentryList entrylist;
340 /*@observer@*/ /*@dependent@*/ uentry entry;
341 /*@only@*/ uentry oentry;
342 /*@only@*/ exprNode expr;
343 /*@only@*/ enumNameList enumnamelist;
344 /*@only@*/ exprNodeList exprlist;
345 /*@only@*/ sRefSet srset;
346 /*@only@*/ cstringList cstringlist;
371 #define YYFLAG -32768
374 #define YYTRANSLATE(x) ((unsigned)(x) <= 447 ? yytranslate[x] : 459)
376 static const short yytranslate[] = { 0,
377 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
378 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
379 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
380 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
381 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
382 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
383 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
384 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
385 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
386 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
387 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
388 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
389 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
390 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
391 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
392 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
393 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
394 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
395 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
396 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
397 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
398 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
399 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
400 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
401 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
402 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
403 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
404 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
405 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
406 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
407 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
408 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
409 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
410 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
411 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
412 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
413 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
414 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
415 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
416 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
417 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
418 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
419 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
420 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
421 187, 188, 189, 190, 191, 192, 193
425 static const short yyprhs[] = { 0,
426 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
427 21, 23, 25, 34, 46, 47, 53, 55, 59, 61,
428 64, 66, 73, 77, 84, 85, 92, 93, 101, 103,
429 110, 114, 121, 122, 129, 130, 138, 139, 140, 151,
430 155, 159, 163, 166, 168, 172, 173, 178, 179, 184,
431 186, 190, 192, 194, 196, 200, 202, 206, 208, 210,
432 212, 214, 216, 218, 223, 229, 231, 233, 235, 237,
433 241, 246, 249, 253, 257, 261, 263, 265, 267, 268,
434 271, 272, 275, 277, 279, 281, 283, 285, 287, 289,
435 291, 293, 295, 297, 299, 302, 303, 308, 310, 313,
436 314, 318, 320, 324, 326, 328, 329, 332, 336, 339,
437 341, 345, 348, 349, 352, 354, 356, 358, 360, 362,
438 364, 366, 368, 370, 372, 374, 376, 378, 380, 382,
439 384, 388, 389, 393, 394, 395, 400, 403, 406, 408,
440 410, 412, 416, 421, 424, 428, 432, 436, 438, 440,
441 442, 446, 448, 450, 454, 459, 462, 466, 470, 474,
442 475, 477, 479, 483, 485, 487, 489, 493, 495, 497,
443 498, 503, 505, 510, 514, 519, 526, 532, 538, 541,
444 544, 552, 554, 558, 560, 563, 566, 569, 572, 575,
445 578, 581, 584, 586, 588, 592, 594, 604, 605, 609,
446 614, 617, 622, 625, 627, 632, 634, 638, 642, 646,
447 648, 652, 656, 658, 662, 666, 668, 672, 676, 680,
448 684, 686, 690, 694, 696, 700, 702, 706, 708, 712,
449 714, 715, 720, 722, 723, 728, 730, 731, 732, 740,
450 742, 746, 750, 754, 758, 762, 766, 770, 774, 778,
451 782, 786, 788, 792, 793, 795, 797, 799, 801, 803,
452 807, 808, 818, 819, 831, 834, 835, 842, 843, 852,
453 857, 862, 863, 864, 867, 869, 874, 875, 880, 882,
454 886, 891, 894, 897, 900, 902, 905, 909, 912, 914,
455 918, 920, 922, 924, 926, 928, 931, 932, 939, 942,
456 945, 946, 953, 954, 960, 962, 964, 966, 968, 970,
457 972, 974, 976, 978, 980, 982, 984, 986, 988, 990,
458 992, 994, 996, 998, 1000, 1002, 1004, 1006, 1008, 1010,
459 1012, 1014, 1016, 1018, 1020, 1022, 1024, 1026, 1028, 1030,
460 1032, 1034, 1036, 1038, 1040, 1042, 1044, 1046, 1048, 1050,
461 1052, 1054, 1056, 1058, 1060, 1062, 1064, 1067, 1070, 1073,
462 1076, 1079, 1082, 1085, 1088, 1091, 1094, 1097, 1100, 1103,
463 1106, 1109, 1112, 1115, 1118, 1121, 1124, 1127, 1130, 1133,
464 1136, 1139, 1143, 1145, 1150, 1152, 1156, 1159, 1162, 1165,
465 1166, 1168, 1169, 1170, 1171, 1184, 1185, 1186, 1198, 1205,
466 1212, 1213, 1214, 1225, 1226, 1227, 1238, 1244, 1250, 1255,
467 1260, 1261, 1263, 1265, 1268, 1274, 1278, 1281, 1286, 1288,
468 1292, 1297, 1304, 1305, 1314, 1319, 1321, 1325, 1328, 1330,
469 1335, 1337, 1339, 1342, 1345, 1347, 1350, 1352, 1355, 1357,
470 1359, 1361, 1364, 1366, 1369, 1372, 1376, 1378, 1382, 1384,
471 1388, 1390, 1392, 1396, 1397, 1400, 1401, 1406, 1411, 1413,
472 1415, 1418, 1420, 1422, 1425, 1426, 1428, 1434, 1437, 1441,
473 1445, 1450, 1454, 1459, 1464, 1470, 1472, 1474, 1476, 1478,
474 1480, 1482, 1484, 1486, 1488, 1490, 1492, 1494, 1497, 1500,
475 1508, 1515, 1518, 1519, 1520, 1531, 1532, 1539, 1541, 1543,
476 1545, 1547, 1550, 1552, 1554, 1556, 1558, 1560, 1562, 1564,
477 1568, 1570, 1571, 1575, 1578, 1581, 1583, 1585, 1587, 1589,
478 1591, 1593, 1595, 1597, 1599, 1601, 1605, 1607, 1609, 1612,
479 1615, 1616, 1619, 1620, 1625, 1626, 1633, 1634, 1638, 1639,
480 1645, 1649, 1652, 1656, 1657, 1658, 1659, 1660, 1661, 1663,
481 1666, 1669, 1673, 1676, 1680, 1684, 1689, 1692, 1695, 1699,
482 1703, 1708, 1710, 1713, 1715, 1718, 1720, 1724, 1726, 1731,
483 1733, 1736, 1738, 1741, 1743, 1746, 1748, 1753, 1756, 1757,
484 1763, 1764, 1771, 1776, 1781, 1782, 1783, 1794, 1796, 1797,
485 1802, 1804, 1806, 1808, 1810, 1812, 1815, 1817, 1821, 1823,
486 1828, 1832, 1837, 1844, 1850, 1856, 1859, 1862, 1864, 1867,
487 1870, 1873, 1876, 1879, 1882, 1885, 1888, 1890, 1892, 1897,
488 1899, 1903, 1907, 1911, 1913, 1917, 1921, 1923, 1927, 1931,
489 1933, 1937, 1941, 1945, 1949, 1951, 1955, 1959, 1961, 1965,
490 1967, 1971, 1973, 1977, 1979, 1983, 1985, 1989, 1991, 1992,
491 1993, 2001, 2003, 2007, 2011, 2015, 2019, 2023, 2027, 2031,
492 2035, 2039, 2043, 2047, 2049, 2050, 2052, 2055, 2063, 2066,
493 2069, 2077, 2084, 2087, 2091, 2094, 2098, 2101, 2105, 2109,
494 2113, 2117, 2120, 2124, 2125, 2127, 2128, 2130, 2132, 2134,
495 2136, 2138, 2140, 2142, 2144, 2146, 2151
498 static const short yyrhs[] = { -1,
499 195, 0, 196, 0, 195, 196, 0, 257, 454, 0,
500 197, 0, 198, 0, 208, 0, 211, 0, 295, 0,
501 18, 0, 1, 0, 77, 336, 350, 360, 350, 454,
502 303, 91, 0, 77, 336, 350, 360, 350, 23, 303,
503 308, 307, 454, 91, 0, 0, 78, 199, 200, 454,
504 91, 0, 201, 0, 336, 350, 201, 0, 205, 0,
505 364, 205, 0, 457, 0, 303, 24, 350, 360, 303,
506 25, 0, 202, 26, 27, 0, 202, 26, 303, 294,
507 27, 350, 0, 0, 202, 304, 24, 25, 203, 229,
508 0, 0, 202, 304, 24, 361, 25, 204, 229, 0,
509 457, 0, 303, 24, 350, 201, 303, 25, 0, 205,
510 26, 27, 0, 205, 26, 303, 294, 27, 350, 0,
511 0, 205, 304, 24, 25, 206, 230, 0, 0, 205,
512 304, 24, 361, 25, 207, 230, 0, 0, 0, 79,
513 457, 24, 361, 25, 209, 230, 210, 454, 91, 0,
514 92, 391, 95, 0, 93, 377, 95, 0, 94, 378,
515 95, 0, 92, 95, 0, 252, 0, 214, 23, 217,
516 0, 0, 226, 215, 22, 218, 0, 0, 5, 216,
517 22, 218, 0, 214, 0, 214, 40, 217, 0, 193,
518 0, 184, 0, 56, 0, 221, 219, 220, 0, 221,
519 0, 224, 223, 224, 0, 181, 0, 182, 0, 53,
520 0, 52, 0, 54, 0, 225, 0, 227, 24, 224,
521 25, 0, 24, 224, 228, 224, 25, 0, 226, 0,
522 189, 0, 456, 0, 186, 0, 226, 26, 27, 0,
523 226, 26, 189, 27, 0, 34, 226, 0, 24, 226,
524 25, 0, 226, 28, 457, 0, 226, 45, 457, 0,
525 222, 0, 33, 0, 32, 0, 0, 231, 229, 0,
526 0, 232, 230, 0, 233, 0, 237, 0, 236, 0,
527 314, 0, 317, 0, 243, 0, 234, 0, 238, 0,
528 236, 0, 315, 0, 319, 0, 244, 0, 234, 91,
529 0, 0, 74, 235, 245, 454, 0, 76, 0, 238,
530 91, 0, 0, 75, 239, 258, 0, 241, 0, 241,
531 40, 240, 0, 186, 0, 243, 0, 0, 244, 91,
532 0, 73, 240, 430, 0, 73, 240, 0, 246, 0,
533 245, 21, 246, 0, 247, 248, 0, 0, 249, 247,
534 0, 456, 0, 186, 0, 295, 0, 89, 0, 90,
535 0, 119, 0, 120, 0, 133, 0, 80, 0, 81,
536 0, 82, 0, 83, 0, 84, 0, 85, 0, 86,
537 0, 360, 0, 336, 350, 360, 0, 0, 19, 254,
538 408, 0, 0, 0, 255, 412, 256, 401, 0, 212,
539 253, 0, 261, 454, 0, 454, 0, 456, 0, 186,
540 0, 259, 26, 27, 0, 259, 26, 260, 27, 0,
541 34, 259, 0, 24, 259, 25, 0, 259, 28, 457,
542 0, 259, 45, 457, 0, 259, 0, 430, 0, 259,
543 0, 261, 21, 259, 0, 456, 0, 186, 0, 262,
544 26, 27, 0, 262, 26, 260, 27, 0, 34, 262,
545 0, 24, 262, 25, 0, 262, 28, 457, 0, 262,
546 45, 457, 0, 0, 264, 0, 262, 0, 264, 21,
547 262, 0, 456, 0, 186, 0, 430, 0, 24, 292,
548 25, 0, 187, 0, 114, 0, 0, 24, 266, 401,
549 25, 0, 265, 0, 267, 26, 292, 27, 0, 267,
550 24, 25, 0, 267, 24, 268, 25, 0, 71, 24,
551 291, 21, 372, 25, 0, 267, 350, 28, 457, 303,
552 0, 267, 350, 45, 457, 303, 0, 267, 48, 0,
553 267, 49, 0, 24, 372, 25, 19, 413, 455, 20,
554 0, 291, 0, 268, 21, 291, 0, 267, 0, 48,
555 269, 0, 49, 269, 0, 29, 275, 0, 34, 275,
556 0, 33, 275, 0, 32, 275, 0, 31, 275, 0,
557 30, 275, 0, 272, 0, 271, 0, 270, 28, 457,
558 0, 457, 0, 47, 303, 24, 372, 350, 21, 270,
559 25, 303, 0, 0, 303, 273, 274, 0, 42, 24,
560 372, 25, 0, 42, 269, 0, 43, 24, 372, 25,
561 0, 43, 269, 0, 269, 0, 24, 372, 25, 275,
562 0, 275, 0, 276, 34, 275, 0, 276, 35, 275,
563 0, 276, 36, 275, 0, 276, 0, 277, 33, 276,
564 0, 277, 32, 276, 0, 277, 0, 278, 50, 277,
565 0, 278, 51, 277, 0, 278, 0, 279, 37, 278,
566 0, 279, 38, 278, 0, 279, 52, 278, 0, 279,
567 53, 278, 0, 279, 0, 280, 54, 279, 0, 280,
568 55, 279, 0, 280, 0, 281, 29, 280, 0, 281,
569 0, 282, 39, 281, 0, 282, 0, 283, 40, 282,
570 0, 283, 0, 0, 284, 56, 285, 283, 0, 284,
571 0, 0, 286, 57, 287, 284, 0, 286, 0, 0,
572 0, 286, 41, 289, 292, 22, 290, 288, 0, 288,
573 0, 269, 23, 291, 0, 269, 58, 291, 0, 269,
574 59, 291, 0, 269, 60, 291, 0, 269, 61, 291,
575 0, 269, 62, 291, 0, 269, 63, 291, 0, 269,
576 64, 291, 0, 269, 65, 291, 0, 269, 66, 291,
577 0, 269, 67, 291, 0, 291, 0, 292, 21, 291,
578 0, 0, 292, 0, 288, 0, 296, 0, 72, 0,
579 301, 0, 336, 303, 18, 0, 0, 336, 350, 360,
580 350, 297, 303, 307, 18, 303, 0, 0, 336, 350,
581 360, 350, 23, 298, 303, 308, 307, 18, 303, 0,
582 360, 350, 0, 0, 360, 350, 23, 300, 303, 308,
583 0, 0, 46, 336, 302, 350, 305, 303, 242, 18,
584 0, 46, 336, 303, 18, 0, 46, 305, 303, 18,
585 0, 0, 0, 306, 303, 0, 299, 0, 305, 21,
586 350, 299, 0, 0, 307, 21, 350, 299, 0, 291,
587 0, 19, 312, 20, 0, 19, 312, 21, 20, 0,
588 309, 308, 0, 310, 23, 0, 457, 22, 0, 311,
589 0, 310, 311, 0, 26, 294, 27, 0, 28, 457,
590 0, 308, 0, 312, 21, 308, 0, 115, 0, 113,
591 0, 116, 0, 117, 0, 118, 0, 315, 91, 0,
592 0, 250, 350, 316, 264, 454, 303, 0, 319, 91,
593 0, 251, 350, 0, 0, 318, 325, 320, 263, 454,
594 303, 0, 0, 318, 321, 322, 454, 303, 0, 220,
595 0, 213, 0, 142, 0, 143, 0, 145, 0, 146,
596 0, 144, 0, 127, 0, 130, 0, 128, 0, 129,
597 0, 135, 0, 136, 0, 121, 0, 123, 0, 122,
598 0, 131, 0, 132, 0, 124, 0, 126, 0, 139,
599 0, 141, 0, 154, 0, 153, 0, 138, 0, 140,
600 0, 178, 0, 188, 0, 137, 0, 152, 0, 151,
601 0, 161, 0, 159, 0, 160, 0, 155, 0, 156,
602 0, 157, 0, 158, 0, 162, 0, 163, 0, 166,
603 0, 167, 0, 164, 0, 165, 0, 150, 0, 147,
604 0, 148, 0, 149, 0, 119, 0, 120, 0, 133,
605 0, 134, 0, 111, 303, 0, 112, 303, 0, 332,
606 303, 0, 325, 303, 0, 323, 303, 0, 326, 303,
607 0, 324, 303, 0, 328, 303, 0, 327, 303, 0,
608 329, 303, 0, 330, 303, 0, 168, 350, 0, 170,
609 350, 0, 169, 350, 0, 171, 350, 0, 172, 350,
610 0, 173, 350, 0, 174, 350, 0, 175, 350, 0,
611 176, 350, 0, 177, 350, 0, 458, 350, 0, 341,
612 350, 0, 355, 350, 0, 331, 350, 0, 303, 336,
613 303, 0, 338, 0, 338, 88, 337, 91, 0, 372,
614 0, 372, 21, 337, 0, 313, 339, 0, 333, 339,
615 0, 334, 339, 0, 0, 336, 0, 0, 0, 0,
616 350, 68, 457, 303, 19, 342, 405, 351, 406, 343,
617 20, 340, 0, 0, 0, 350, 69, 457, 303, 19,
618 344, 405, 351, 406, 345, 20, 0, 350, 68, 457,
619 303, 19, 20, 0, 350, 69, 457, 303, 19, 20,
620 0, 0, 0, 350, 68, 303, 19, 346, 405, 351,
621 406, 347, 20, 0, 0, 0, 350, 69, 303, 19,
622 348, 405, 351, 406, 349, 20, 0, 350, 68, 303,
623 19, 20, 0, 350, 69, 303, 19, 20, 0, 350,
624 68, 457, 350, 0, 350, 69, 457, 350, 0, 0,
625 352, 0, 211, 0, 351, 352, 0, 336, 350, 353,
626 303, 18, 0, 336, 303, 18, 0, 354, 350, 0,
627 353, 21, 354, 350, 0, 360, 0, 22, 303, 294,
628 0, 360, 22, 303, 294, 0, 350, 70, 19, 357,
629 20, 303, 0, 0, 350, 70, 457, 19, 356, 357,
630 20, 303, 0, 350, 70, 457, 303, 0, 358, 0,
631 357, 21, 358, 0, 357, 21, 0, 457, 0, 457,
632 23, 303, 294, 0, 202, 0, 374, 0, 364, 192,
633 0, 364, 359, 0, 202, 0, 364, 202, 0, 367,
634 0, 350, 365, 0, 111, 0, 112, 0, 362, 0,
635 363, 362, 0, 34, 0, 34, 363, 0, 34, 364,
636 0, 34, 363, 364, 0, 366, 0, 366, 21, 5,
637 0, 457, 0, 366, 21, 457, 0, 5, 0, 368,
638 0, 368, 21, 5, 0, 0, 369, 371, 0, 0,
639 368, 21, 370, 371, 0, 303, 336, 359, 303, 0,
640 457, 0, 335, 0, 335, 373, 0, 364, 0, 375,
641 0, 364, 375, 0, 0, 375, 0, 303, 24, 350,
642 373, 25, 0, 26, 27, 0, 26, 294, 27, 0,
643 375, 26, 27, 0, 375, 26, 294, 27, 0, 303,
644 24, 25, 0, 303, 24, 367, 25, 0, 375, 303,
645 24, 25, 0, 375, 303, 24, 367, 25, 0, 393,
646 0, 395, 0, 398, 0, 401, 0, 416, 0, 419,
647 0, 451, 0, 424, 0, 453, 0, 379, 0, 377,
648 0, 386, 0, 379, 386, 0, 423, 379, 0, 450,
649 392, 11, 24, 292, 25, 18, 0, 450, 392, 11,
650 24, 292, 25, 0, 381, 386, 0, 0, 0, 13,
651 24, 293, 18, 293, 18, 382, 293, 383, 25, 0,
652 0, 190, 403, 24, 385, 427, 25, 0, 191, 0,
653 393, 0, 395, 0, 398, 0, 389, 412, 0, 389,
654 0, 390, 0, 416, 0, 387, 0, 380, 0, 384,
655 0, 453, 0, 24, 386, 25, 0, 1, 0, 0,
656 418, 388, 386, 0, 403, 19, 0, 407, 20, 0,
657 392, 0, 411, 0, 393, 0, 395, 0, 398, 0,
658 402, 0, 417, 0, 419, 0, 424, 0, 452, 0,
659 24, 392, 25, 0, 453, 0, 1, 0, 457, 22,
660 0, 110, 376, 0, 0, 101, 394, 0, 0, 6,
661 294, 396, 22, 0, 0, 101, 394, 6, 294, 397,
662 22, 0, 0, 7, 399, 22, 0, 0, 101, 394,
663 7, 400, 22, 0, 24, 401, 25, 0, 403, 409,
664 0, 403, 410, 404, 0, 0, 0, 0, 0, 0,
665 20, 0, 110, 20, 0, 415, 20, 0, 415, 110,
666 20, 0, 412, 20, 0, 412, 110, 20, 0, 412,
667 415, 20, 0, 412, 415, 110, 20, 0, 19, 408,
668 0, 19, 20, 0, 19, 411, 20, 0, 19, 412,
669 20, 0, 19, 412, 415, 20, 0, 392, 0, 411,
670 392, 0, 295, 0, 412, 295, 0, 414, 0, 413,
671 21, 414, 0, 291, 0, 19, 413, 455, 20, 0,
672 376, 0, 415, 376, 0, 18, 0, 292, 18, 0,
673 18, 0, 292, 18, 0, 292, 0, 8, 24, 292,
674 25, 0, 418, 376, 0, 0, 418, 376, 9, 420,
675 376, 0, 0, 10, 24, 292, 421, 25, 376, 0,
676 11, 24, 292, 25, 0, 11, 24, 292, 25, 0,
677 0, 0, 190, 425, 403, 24, 426, 427, 25, 401,
678 449, 404, 0, 429, 0, 0, 427, 428, 21, 429,
679 0, 448, 0, 456, 0, 187, 0, 186, 0, 189,
680 0, 430, 189, 0, 430, 0, 24, 292, 25, 0,
681 431, 0, 267, 26, 292, 27, 0, 267, 24, 25,
682 0, 267, 24, 268, 25, 0, 71, 24, 291, 21,
683 372, 25, 0, 267, 350, 28, 457, 303, 0, 267,
684 350, 45, 457, 303, 0, 267, 48, 0, 267, 49,
685 0, 432, 0, 48, 269, 0, 49, 269, 0, 29,
686 275, 0, 34, 275, 0, 33, 275, 0, 32, 275,
687 0, 31, 275, 0, 30, 275, 0, 272, 0, 433,
688 0, 24, 372, 25, 275, 0, 434, 0, 276, 34,
689 275, 0, 276, 35, 275, 0, 276, 36, 275, 0,
690 435, 0, 277, 33, 276, 0, 277, 32, 276, 0,
691 436, 0, 278, 50, 277, 0, 278, 51, 277, 0,
692 437, 0, 279, 37, 278, 0, 279, 38, 278, 0,
693 279, 52, 278, 0, 279, 53, 278, 0, 438, 0,
694 280, 54, 279, 0, 280, 55, 279, 0, 439, 0,
695 281, 29, 280, 0, 440, 0, 282, 39, 281, 0,
696 441, 0, 283, 40, 282, 0, 442, 0, 284, 56,
697 283, 0, 443, 0, 286, 57, 284, 0, 444, 0,
698 0, 0, 286, 41, 446, 292, 22, 447, 288, 0,
699 445, 0, 269, 23, 291, 0, 269, 58, 291, 0,
700 269, 59, 291, 0, 269, 60, 291, 0, 269, 61,
701 291, 0, 269, 62, 291, 0, 269, 63, 291, 0,
702 269, 64, 291, 0, 269, 65, 291, 0, 269, 66,
703 291, 0, 269, 67, 291, 0, 191, 0, 0, 12,
704 0, 422, 376, 0, 450, 376, 11, 24, 292, 25,
705 18, 0, 381, 376, 0, 422, 392, 0, 450, 392,
706 11, 24, 292, 25, 18, 0, 450, 392, 11, 24,
707 292, 25, 0, 381, 392, 0, 14, 457, 18, 0,
708 15, 18, 0, 100, 15, 18, 0, 16, 18, 0,
709 96, 16, 18, 0, 97, 16, 18, 0, 98, 16,
710 18, 0, 99, 16, 18, 0, 17, 18, 0, 17,
711 292, 18, 0, 0, 18, 0, 0, 21, 0, 185,
712 0, 186, 0, 190, 0, 191, 0, 456, 0, 187,
713 0, 192, 0, 187, 0, 44, 24, 292, 25, 0,
720 static const short yyrline[] = { 0,
721 325, 326, 329, 330, 333, 334, 335, 336, 337, 338,
722 339, 340, 343, 345, 349, 349, 356, 362, 366, 367,
723 371, 372, 374, 376, 391, 394, 404, 407, 415, 416,
724 418, 420, 436, 439, 447, 450, 458, 460, 460, 464,
725 465, 466, 467, 470, 473, 477, 477, 480, 480, 485,
726 486, 489, 494, 495, 498, 499, 502, 507, 508, 511,
727 512, 513, 516, 517, 518, 523, 524, 527, 529, 531,
728 533, 542, 544, 546, 548, 564, 568, 569, 576, 577,
729 585, 587, 591, 592, 593, 594, 595, 596, 599, 600,
730 601, 602, 603, 604, 607, 610, 611, 618, 621, 624,
731 630, 638, 640, 644, 647, 648, 651, 654, 660, 664,
732 665, 668, 671, 672, 675, 676, 677, 680, 681, 682,
733 683, 684, 687, 688, 689, 690, 691, 694, 695, 698,
734 705, 709, 711, 715, 716, 718, 725, 735, 736, 739,
735 740, 741, 742, 743, 744, 745, 746, 750, 751, 755,
736 756, 759, 761, 763, 764, 765, 766, 767, 769, 773,
737 774, 777, 781, 793, 794, 795, 796, 797, 798, 799,
738 800, 804, 805, 806, 807, 808, 809, 810, 811, 812,
739 813, 817, 818, 821, 822, 823, 824, 825, 826, 827,
740 828, 829, 830, 831, 834, 835, 838, 842, 843, 846,
741 847, 848, 849, 852, 853, 857, 858, 859, 860, 863,
742 864, 865, 868, 869, 870, 873, 874, 875, 876, 877,
743 880, 881, 882, 885, 886, 889, 890, 894, 895, 898,
744 899, 904, 910, 911, 917, 923, 924, 924, 926, 929,
745 930, 931, 932, 933, 934, 935, 936, 937, 938, 939,
746 940, 943, 944, 947, 948, 951, 956, 957, 958, 961,
747 975, 980, 986, 988, 994, 999, 999, 1003, 1004, 1006,
748 1007, 1010, 1013, 1016, 1019, 1020, 1023, 1024, 1027, 1028,
749 1029, 1030, 1037, 1038, 1042, 1043, 1046, 1047, 1050, 1052,
750 1061, 1062, 1063, 1064, 1065, 1068, 1071, 1077, 1086, 1089,
751 1092, 1099, 1106, 1112, 1137, 1138, 1141, 1142, 1143, 1144,
752 1145, 1148, 1149, 1150, 1151, 1154, 1155, 1156, 1157, 1158,
753 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168,
754 1169, 1170, 1174, 1175, 1178, 1179, 1182, 1183, 1186, 1187,
755 1188, 1189, 1192, 1193, 1194, 1195, 1196, 1197, 1200, 1201,
756 1202, 1203, 1206, 1207, 1208, 1209, 1212, 1213, 1214, 1215,
757 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1229, 1230, 1231,
758 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241,
759 1242, 1245, 1249, 1250, 1254, 1255, 1259, 1260, 1261, 1264,
760 1265, 1269, 1276, 1278, 1280, 1282, 1284, 1286, 1287, 1289,
761 1291, 1293, 1295, 1296, 1297, 1300, 1301, 1303, 1305, 1306,
762 1309, 1312, 1313, 1314, 1317, 1319, 1323, 1325, 1329, 1330,
763 1331, 1335, 1337, 1337, 1339, 1342, 1344, 1346, 1349, 1354,
764 1361, 1362, 1363, 1370, 1374, 1375, 1379, 1380, 1383, 1384,
765 1387, 1388, 1391, 1392, 1393, 1394, 1397, 1398, 1401, 1402,
766 1405, 1406, 1407, 1410, 1410, 1411, 1412, 1415, 1427, 1443,
767 1444, 1447, 1448, 1449, 1452, 1453, 1456, 1458, 1459, 1461,
768 1462, 1464, 1466, 1468, 1470, 1476, 1477, 1478, 1479, 1480,
769 1481, 1482, 1483, 1484, 1488, 1491, 1494, 1495, 1499, 1501,
770 1503, 1505, 1509, 1510, 1512, 1516, 1518, 1520, 1523, 1524,
771 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534,
772 1535, 1538, 1539, 1544, 1547, 1550, 1551, 1554, 1555, 1556,
773 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1567, 1568,
774 1575, 1576, 1582, 1583, 1584, 1585, 1588, 1589, 1590, 1591,
775 1594, 1595, 1599, 1602, 1605, 1608, 1611, 1614, 1617, 1618,
776 1619, 1620, 1622, 1623, 1625, 1627, 1633, 1637, 1639, 1641,
777 1643, 1647, 1648, 1651, 1652, 1655, 1656, 1659, 1660, 1663,
778 1664, 1667, 1668, 1671, 1672, 1673, 1676, 1689, 1694, 1695,
779 1699, 1700, 1703, 1708, 1711, 1712, 1713, 1721, 1722, 1722,
780 1726, 1727, 1728, 1739, 1746, 1747, 1750, 1751, 1754, 1755,
781 1756, 1757, 1758, 1760, 1761, 1762, 1763, 1766, 1767, 1768,
782 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1778, 1779, 1782,
783 1783, 1784, 1785, 1788, 1789, 1790, 1793, 1794, 1795, 1798,
784 1799, 1800, 1801, 1802, 1805, 1806, 1807, 1810, 1811, 1814,
785 1815, 1819, 1820, 1823, 1824, 1827, 1828, 1831, 1832, 1833,
786 1834, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845,
787 1846, 1847, 1848, 1851, 1852, 1855, 1858, 1860, 1862, 1866,
788 1867, 1869, 1871, 1874, 1875, 1876, 1878, 1879, 1880, 1881,
789 1882, 1883, 1884, 1887, 1888, 1891, 1892, 1895, 1898, 1899,
790 1900, 1901, 1902, 1905, 1906, 1907, 1908
795 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
797 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
798 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
799 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
800 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
801 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
802 "TBAR","TQUEST","CSIZEOF","CALIGNOF","CTYPEOF","ARROW_OP","CTYPEDEF","COFFSETOF",
803 "INC_OP","DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP",
804 "OR_OP","MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
805 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
806 "VA_ARG","VA_DCL","QWARN","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION",
807 "QITER","QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
808 "QINVARIANT","QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND",
809 "TENDMACRO","QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE",
810 "QFALLTHROUGH","QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED",
811 "QPRINTFLIKE","QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST",
812 "QVOLATILE","QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT",
813 "QIN","QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
814 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
815 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
816 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
817 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
818 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
819 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
820 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
821 "QSETBUFFERSIZE","QSETSTRINGLENGTH","QMAXSET","QMAXREAD","QTESTINRANGE","TCAND",
822 "IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID","CANNOTATION","CCONSTANT","ITER_NAME",
823 "ITER_ENDNAME","TYPE_NAME","METASTATE_NAME","file","externalDefs","externalDef",
824 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
825 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
826 "metaStateConstraint","metaStateSpecifier","@8","@9","metaStateExpression","metaStateName",
827 "constraintSeperator","BufConstraintList","BufConstraint","bufferModifier","relationalOp",
828 "BufConstraintExpr","BufConstraintTerm","BufConstraintSrefExpr","BufUnaryOp",
829 "BufBinaryOp","functionClauses","functionClausesPlain","functionClause","functionClausePlain",
830 "globalsClause","globalsClausePlain","@10","nomodsClause","modifiesClause","modifiesClausePlain",
831 "@11","flagSpec","flagId","optWarnClause","warnClause","warnClausePlain","globIdList",
832 "globIdListExpr","optGlobQuals","globId","globQual","stateTag","conditionTag",
833 "fcnDefHdrAux","fcnBody","@12","@13","@14","fcnDef","locModifies","modListExpr",
834 "mExpr","modList","specClauseListExpr","optSpecClauseList","specClauseList",
835 "primaryExpr","@15","postfixExpr","argumentExprList","unaryExpr","fieldDesignator",
836 "offsetofExpr","sizeofExpr","@16","sizeofExprAux","castExpr","timesExpr","plusExpr",
837 "shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr",
838 "andExpr","@17","orExpr","@18","conditionalExpr","@19","@20","assignExpr","expr",
839 "optExpr","constantExpr","initializer","instanceDecl","@21","@22","namedInitializer",
840 "@23","typeDecl","@24","IsType","PushType","namedInitializerList","namedInitializerListAux",
841 "optDeclarators","init","designation","designatorList","designator","initList",
842 "storageSpecifier","stateClause","stateClausePlain","@25","conditionClause",
843 "startConditionClause","conditionClausePlain","@26","@27","functionConstraint",
844 "exitsQualifier","checkQualifier","stateQualifier","paramQualifier","visibilityQualifier",
845 "returnQualifier","typedefQualifier","refcountQualifier","typeModifier","definedQualifier",
846 "typeQualifier","typeSpecifier","completeType","completeTypeSpecifier","altType",
847 "completeTypeSpecifierAux","optCompleteType","optStructInvariant","suSpc","@28",
848 "@29","@30","@31","@32","@33","@34","@35","NotType","structDeclList","structDecl",
849 "structNamedDeclList","structNamedDecl","enumSpc","@36","enumeratorList","enumerator",
850 "optNamedDecl","namedDecl","genericParamList","innerMods","innerModsList","pointers",
851 "paramIdList","idList","paramTypeList","paramList","@37","@38","paramDecl","typeExpression",
852 "abstractDecl","optAbstractDeclBase","abstractDeclBase","stmt","iterBody","endBody",
853 "iterDefStmtList","iterDefIterationStmt","forPred","@39","@40","partialIterStmt",
854 "@41","iterDefStmt","iterSelectionStmt","@42","openScope","closeScope","macroBody",
855 "stmtErr","labeledStmt","optExtraFallThroughs","caseStmt","@43","@44","defaultStmt",
856 "@45","@46","compoundStmt","compoundStmtErr","CreateInnerScope","DeleteInnerScope",
857 "CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe","compoundStmtRest",
858 "compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList","typeInitializerList",
859 "typeInitializer","stmtList","expressionStmt","expressionStmtErr","ifPred","selectionStmt",
860 "@47","@48","whilePred","iterWhilePred","iterStmt","@49","@50","iterArgList",
861 "@51","iterArgExpr","cconstantExpr","primaryIterExpr","postfixIterExpr","unaryIterExpr",
862 "castIterExpr","timesIterExpr","plusIterExpr","shiftIterExpr","relationalIterExpr",
863 "equalityIterExpr","bitandIterExpr","xorIterExpr","bitorIterExpr","andIterExpr",
864 "orIterExpr","conditionalIterExpr","@52","@53","assignIterExpr","endIter","doHeader",
865 "iterationStmt","iterationStmtErr","jumpStmt","optSemi","optComma","id","newId",
870 static const short yyr1[] = { 0,
871 194, 194, 195, 195, 196, 196, 196, 196, 196, 196,
872 196, 196, 197, 197, 199, 198, 200, 200, 201, 201,
873 202, 202, 202, 202, 203, 202, 204, 202, 205, 205,
874 205, 205, 206, 205, 207, 205, 209, 210, 208, 211,
875 211, 211, 211, 212, 213, 215, 214, 216, 214, 217,
876 217, 218, 219, 219, 220, 220, 221, 222, 222, 223,
877 223, 223, 224, 224, 224, 225, 225, 226, 226, 226,
878 226, 226, 226, 226, 226, 227, 228, 228, 229, 229,
879 230, 230, 231, 231, 231, 231, 231, 231, 232, 232,
880 232, 232, 232, 232, 233, 235, 234, 236, 237, 239,
881 238, 240, 240, 241, 242, 242, 243, 244, 244, 245,
882 245, 246, 247, 247, 248, 248, 248, 249, 249, 249,
883 249, 249, 250, 250, 250, 250, 250, 251, 251, 252,
884 252, 254, 253, 255, 256, 253, 257, 258, 258, 259,
885 259, 259, 259, 259, 259, 259, 259, 260, 260, 261,
886 261, 262, 262, 262, 262, 262, 262, 262, 262, 263,
887 263, 264, 264, 265, 265, 265, 265, 265, 265, 266,
888 265, 267, 267, 267, 267, 267, 267, 267, 267, 267,
889 267, 268, 268, 269, 269, 269, 269, 269, 269, 269,
890 269, 269, 269, 269, 270, 270, 271, 273, 272, 274,
891 274, 274, 274, 275, 275, 276, 276, 276, 276, 277,
892 277, 277, 278, 278, 278, 279, 279, 279, 279, 279,
893 280, 280, 280, 281, 281, 282, 282, 283, 283, 284,
894 285, 284, 286, 287, 286, 288, 289, 290, 288, 291,
895 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
896 291, 292, 292, 293, 293, 294, 295, 295, 295, 296,
897 297, 296, 298, 296, 299, 300, 299, 302, 301, 301,
898 301, 303, 304, 305, 306, 306, 307, 307, 308, 308,
899 308, 308, 309, 309, 310, 310, 311, 311, 312, 312,
900 313, 313, 313, 313, 313, 314, 316, 315, 317, 318,
901 320, 319, 321, 319, 322, 322, 323, 323, 323, 323,
902 323, 324, 324, 324, 324, 325, 325, 325, 325, 325,
903 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
904 325, 325, 326, 326, 327, 327, 328, 328, 329, 329,
905 329, 329, 330, 330, 330, 330, 330, 330, 331, 331,
906 331, 331, 332, 332, 332, 332, 333, 333, 333, 333,
907 333, 333, 333, 333, 333, 333, 333, 334, 334, 334,
908 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
909 334, 335, 336, 336, 337, 337, 338, 338, 338, 339,
910 339, 340, 342, 343, 341, 344, 345, 341, 341, 341,
911 346, 347, 341, 348, 349, 341, 341, 341, 341, 341,
912 350, 351, 351, 351, 352, 352, 353, 353, 354, 354,
913 354, 355, 356, 355, 355, 357, 357, 357, 358, 358,
914 359, 359, 359, 359, 360, 360, 361, 361, 362, 362,
915 363, 363, 364, 364, 364, 364, 365, 365, 366, 366,
916 367, 367, 367, 369, 368, 370, 368, 371, 371, 372,
917 372, 373, 373, 373, 374, 374, 375, 375, 375, 375,
918 375, 375, 375, 375, 375, 376, 376, 376, 376, 376,
919 376, 376, 376, 376, 377, 378, 379, 379, 380, 380,
920 380, 380, 382, 383, 381, 385, 384, 384, 386, 386,
921 386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
922 386, 388, 387, 389, 390, 391, 391, 392, 392, 392,
923 392, 392, 392, 392, 392, 392, 392, 392, 393, 393,
924 394, 394, 396, 395, 397, 395, 399, 398, 400, 398,
925 401, 401, 402, 403, 404, 405, 406, 407, 408, 408,
926 408, 408, 408, 408, 408, 408, 409, 410, 410, 410,
927 410, 411, 411, 412, 412, 413, 413, 414, 414, 415,
928 415, 416, 416, 417, 417, 417, 418, 419, 420, 419,
929 421, 419, 422, 423, 425, 426, 424, 427, 428, 427,
930 429, 429, 429, 429, 430, 430, 431, 431, 432, 432,
931 432, 432, 432, 432, 432, 432, 432, 433, 433, 433,
932 433, 433, 433, 433, 433, 433, 433, 434, 434, 435,
933 435, 435, 435, 436, 436, 436, 437, 437, 437, 438,
934 438, 438, 438, 438, 439, 439, 439, 440, 440, 441,
935 441, 442, 442, 443, 443, 444, 444, 445, 446, 447,
936 445, 448, 448, 448, 448, 448, 448, 448, 448, 448,
937 448, 448, 448, 449, 449, 450, 451, 451, 451, 452,
938 452, 452, 452, 453, 453, 453, 453, 453, 453, 453,
939 453, 453, 453, 454, 454, 455, 455, 456, 457, 457,
940 457, 457, 457, 458, 458, 458, 458
943 static const short yyr2[] = { 0,
944 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
945 1, 1, 8, 11, 0, 5, 1, 3, 1, 2,
946 1, 6, 3, 6, 0, 6, 0, 7, 1, 6,
947 3, 6, 0, 6, 0, 7, 0, 0, 10, 3,
948 3, 3, 2, 1, 3, 0, 4, 0, 4, 1,
949 3, 1, 1, 1, 3, 1, 3, 1, 1, 1,
950 1, 1, 1, 4, 5, 1, 1, 1, 1, 3,
951 4, 2, 3, 3, 3, 1, 1, 1, 0, 2,
952 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
953 1, 1, 1, 1, 2, 0, 4, 1, 2, 0,
954 3, 1, 3, 1, 1, 0, 2, 3, 2, 1,
955 3, 2, 0, 2, 1, 1, 1, 1, 1, 1,
956 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
957 3, 0, 3, 0, 0, 4, 2, 2, 1, 1,
958 1, 3, 4, 2, 3, 3, 3, 1, 1, 1,
959 3, 1, 1, 3, 4, 2, 3, 3, 3, 0,
960 1, 1, 3, 1, 1, 1, 3, 1, 1, 0,
961 4, 1, 4, 3, 4, 6, 5, 5, 2, 2,
962 7, 1, 3, 1, 2, 2, 2, 2, 2, 2,
963 2, 2, 1, 1, 3, 1, 9, 0, 3, 4,
964 2, 4, 2, 1, 4, 1, 3, 3, 3, 1,
965 3, 3, 1, 3, 3, 1, 3, 3, 3, 3,
966 1, 3, 3, 1, 3, 1, 3, 1, 3, 1,
967 0, 4, 1, 0, 4, 1, 0, 0, 7, 1,
968 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
969 3, 1, 3, 0, 1, 1, 1, 1, 1, 3,
970 0, 9, 0, 11, 2, 0, 6, 0, 8, 4,
971 4, 0, 0, 2, 1, 4, 0, 4, 1, 3,
972 4, 2, 2, 2, 1, 2, 3, 2, 1, 3,
973 1, 1, 1, 1, 1, 2, 0, 6, 2, 2,
974 0, 6, 0, 5, 1, 1, 1, 1, 1, 1,
975 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
976 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
977 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
978 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
979 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
980 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
981 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
982 2, 3, 1, 4, 1, 3, 2, 2, 2, 0,
983 1, 0, 0, 0, 12, 0, 0, 11, 6, 6,
984 0, 0, 10, 0, 0, 10, 5, 5, 4, 4,
985 0, 1, 1, 2, 5, 3, 2, 4, 1, 3,
986 4, 6, 0, 8, 4, 1, 3, 2, 1, 4,
987 1, 1, 2, 2, 1, 2, 1, 2, 1, 1,
988 1, 2, 1, 2, 2, 3, 1, 3, 1, 3,
989 1, 1, 3, 0, 2, 0, 4, 4, 1, 1,
990 2, 1, 1, 2, 0, 1, 5, 2, 3, 3,
991 4, 3, 4, 4, 5, 1, 1, 1, 1, 1,
992 1, 1, 1, 1, 1, 1, 1, 2, 2, 7,
993 6, 2, 0, 0, 10, 0, 6, 1, 1, 1,
994 1, 2, 1, 1, 1, 1, 1, 1, 1, 3,
995 1, 0, 3, 2, 2, 1, 1, 1, 1, 1,
996 1, 1, 1, 1, 1, 3, 1, 1, 2, 2,
997 0, 2, 0, 4, 0, 6, 0, 3, 0, 5,
998 3, 2, 3, 0, 0, 0, 0, 0, 1, 2,
999 2, 3, 2, 3, 3, 4, 2, 2, 3, 3,
1000 4, 1, 2, 1, 2, 1, 3, 1, 4, 1,
1001 2, 1, 2, 1, 2, 1, 4, 2, 0, 5,
1002 0, 6, 4, 4, 0, 0, 10, 1, 0, 4,
1003 1, 1, 1, 1, 1, 2, 1, 3, 1, 4,
1004 3, 4, 6, 5, 5, 2, 2, 1, 2, 2,
1005 2, 2, 2, 2, 2, 2, 1, 1, 4, 1,
1006 3, 3, 3, 1, 3, 3, 1, 3, 3, 1,
1007 3, 3, 3, 3, 1, 3, 3, 1, 3, 1,
1008 3, 1, 3, 1, 3, 1, 3, 1, 0, 0,
1009 7, 1, 3, 3, 3, 3, 3, 3, 3, 3,
1010 3, 3, 3, 1, 0, 1, 2, 7, 2, 2,
1011 7, 6, 2, 3, 2, 3, 2, 3, 3, 3,
1012 3, 2, 3, 0, 1, 0, 1, 1, 1, 1,
1016 static const short yydefact[] = { 0,
1017 12, 11, 443, 0, 411, 258, 411, 15, 0, 0,
1018 0, 0, 272, 272, 292, 291, 293, 294, 295, 353,
1019 354, 318, 320, 319, 323, 324, 312, 314, 315, 313,
1020 321, 322, 355, 356, 316, 317, 333, 329, 325, 330,
1021 326, 307, 308, 311, 309, 310, 350, 351, 352, 349,
1022 335, 334, 328, 327, 339, 340, 341, 342, 337, 338,
1023 336, 343, 344, 347, 348, 345, 346, 411, 411, 411,
1024 411, 411, 411, 411, 411, 411, 411, 331, 688, 689,
1025 693, 332, 690, 691, 694, 0, 3, 6, 7, 435,
1026 8, 9, 134, 44, 684, 10, 257, 259, 0, 390,
1027 272, 272, 272, 272, 272, 272, 272, 272, 411, 272,
1028 390, 390, 411, 383, 411, 0, 411, 130, 272, 692,
1029 21, 411, 439, 440, 441, 444, 445, 272, 275, 272,
1030 272, 268, 411, 695, 411, 411, 693, 0, 528, 272,
1031 537, 0, 0, 0, 666, 0, 0, 0, 0, 272,
1032 574, 0, 272, 272, 272, 272, 272, 272, 272, 272,
1033 272, 0, 43, 0, 0, 0, 0, 0, 531, 272,
1034 169, 165, 168, 595, 585, 172, 184, 204, 194, 193,
1035 206, 210, 213, 216, 221, 224, 226, 228, 230, 233,
1036 236, 240, 252, 576, 198, 0, 0, 562, 518, 519,
1037 520, 521, 0, 0, 522, 272, 523, 0, 524, 166,
1038 0, 525, 527, 164, 0, 511, 0, 572, 0, 544,
1039 498, 0, 0, 0, 507, 0, 508, 487, 506, 503,
1040 504, 499, 500, 501, 0, 0, 505, 512, 0, 0,
1041 509, 486, 0, 357, 358, 368, 370, 369, 371, 372,
1042 373, 374, 375, 376, 377, 4, 272, 0, 132, 137,
1043 411, 685, 5, 411, 391, 387, 361, 363, 360, 362,
1044 365, 364, 366, 367, 381, 359, 388, 389, 0, 272,
1045 272, 379, 272, 272, 0, 380, 436, 378, 442, 446,
1046 272, 165, 168, 0, 411, 460, 0, 164, 411, 0,
1047 274, 411, 0, 265, 272, 684, 17, 19, 0, 411,
1048 272, 29, 454, 204, 256, 533, 0, 272, 272, 272,
1049 272, 0, 675, 677, 682, 0, 544, 0, 0, 0,
1050 187, 192, 191, 190, 189, 188, 0, 272, 185, 186,
1051 272, 0, 0, 0, 0, 0, 531, 0, 272, 530,
1052 272, 476, 477, 478, 479, 0, 480, 481, 272, 483,
1053 272, 482, 484, 544, 272, 272, 179, 180, 0, 272,
1054 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
1055 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
1056 272, 272, 272, 272, 272, 272, 231, 237, 234, 575,
1057 272, 0, 673, 40, 0, 545, 563, 578, 670, 596,
1058 0, 529, 272, 0, 0, 0, 573, 41, 488, 492,
1059 564, 411, 502, 514, 515, 0, 0, 0, 42, 23,
1060 272, 454, 411, 411, 272, 260, 131, 411, 0, 385,
1061 0, 411, 0, 411, 0, 272, 0, 696, 272, 272,
1062 0, 462, 461, 463, 697, 272, 271, 272, 270, 266,
1063 411, 0, 272, 0, 411, 272, 20, 451, 0, 0,
1064 437, 452, 272, 0, 538, 0, 581, 0, 255, 0,
1065 674, 683, 544, 0, 167, 272, 526, 272, 0, 0,
1066 678, 679, 680, 681, 676, 532, 272, 539, 0, 669,
1067 411, 542, 667, 0, 0, 174, 0, 182, 0, 0,
1068 0, 241, 242, 243, 244, 245, 246, 247, 248, 249,
1069 250, 251, 207, 208, 209, 212, 211, 214, 215, 217,
1070 218, 219, 220, 222, 223, 225, 227, 229, 272, 272,
1071 272, 253, 272, 272, 199, 558, 695, 562, 0, 411,
1072 543, 579, 0, 0, 510, 496, 272, 565, 513, 0,
1073 0, 25, 0, 549, 272, 570, 133, 411, 272, 544,
1074 272, 261, 384, 272, 401, 0, 409, 404, 0, 410,
1075 0, 426, 429, 423, 425, 382, 468, 0, 454, 464,
1076 272, 0, 276, 272, 272, 684, 16, 31, 272, 454,
1077 272, 18, 438, 447, 449, 37, 456, 411, 455, 459,
1078 534, 577, 0, 583, 272, 171, 272, 205, 411, 0,
1079 272, 535, 0, 541, 557, 0, 586, 272, 175, 173,
1080 272, 272, 232, 0, 235, 272, 201, 272, 203, 559,
1081 560, 272, 272, 272, 584, 272, 411, 272, 411, 79,
1082 27, 550, 553, 272, 272, 551, 272, 571, 136, 0,
1083 263, 272, 386, 407, 546, 393, 408, 546, 396, 272,
1084 428, 272, 0, 469, 472, 272, 0, 470, 0, 454,
1085 106, 272, 272, 272, 0, 33, 0, 272, 0, 81,
1086 453, 272, 465, 272, 0, 272, 568, 686, 566, 0,
1087 0, 0, 540, 272, 272, 183, 177, 178, 238, 0,
1088 0, 561, 580, 0, 272, 272, 272, 272, 272, 272,
1089 272, 272, 272, 0, 165, 168, 184, 204, 193, 210,
1090 213, 216, 221, 224, 226, 228, 230, 233, 0, 589,
1091 588, 166, 599, 608, 618, 620, 624, 627, 630, 635,
1092 638, 640, 642, 644, 646, 648, 652, 591, 164, 0,
1093 24, 0, 96, 100, 98, 123, 124, 125, 126, 127,
1094 128, 129, 26, 79, 83, 0, 85, 84, 0, 88,
1095 0, 411, 411, 86, 0, 87, 303, 0, 79, 554,
1096 555, 272, 552, 22, 272, 277, 411, 399, 546, 411,
1097 400, 546, 422, 427, 272, 0, 0, 473, 471, 474,
1098 0, 0, 105, 272, 272, 0, 279, 267, 272, 0,
1099 285, 0, 272, 0, 411, 81, 35, 0, 448, 450,
1100 38, 81, 89, 91, 90, 94, 92, 93, 457, 431,
1101 0, 272, 465, 432, 466, 582, 493, 686, 272, 0,
1102 0, 176, 536, 0, 589, 272, 200, 202, 672, 0,
1103 0, 187, 192, 191, 190, 189, 188, 185, 186, 272,
1104 272, 272, 179, 180, 0, 272, 272, 272, 272, 272,
1105 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
1106 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
1107 272, 272, 231, 649, 234, 497, 0, 491, 104, 109,
1108 102, 113, 684, 80, 95, 99, 107, 297, 300, 296,
1109 0, 301, 299, 28, 556, 272, 0, 413, 411, 411,
1110 412, 411, 411, 411, 430, 272, 467, 475, 269, 289,
1111 0, 0, 288, 282, 283, 286, 284, 277, 13, 32,
1112 34, 81, 30, 684, 82, 454, 458, 433, 434, 272,
1113 0, 567, 181, 0, 196, 0, 544, 239, 671, 167,
1114 272, 0, 174, 0, 0, 0, 0, 653, 654, 655,
1115 656, 657, 658, 659, 660, 661, 662, 663, 207, 208,
1116 209, 212, 211, 214, 215, 217, 218, 219, 220, 222,
1117 223, 225, 227, 229, 645, 272, 647, 272, 490, 108,
1118 0, 118, 119, 120, 121, 122, 684, 110, 411, 113,
1119 0, 0, 141, 101, 150, 684, 139, 140, 0, 48,
1120 0, 0, 58, 59, 69, 67, 306, 0, 305, 56,
1121 76, 0, 63, 66, 0, 684, 68, 160, 277, 272,
1122 411, 0, 272, 414, 402, 411, 405, 411, 424, 280,
1123 272, 287, 684, 36, 0, 272, 494, 569, 272, 0,
1124 668, 665, 205, 272, 175, 173, 272, 272, 0, 590,
1125 103, 113, 97, 116, 112, 117, 115, 114, 0, 144,
1126 0, 0, 0, 0, 138, 0, 0, 153, 162, 684,
1127 152, 0, 0, 66, 0, 72, 0, 54, 53, 0,
1128 61, 60, 62, 0, 0, 0, 0, 0, 0, 272,
1129 684, 161, 0, 262, 272, 416, 272, 272, 411, 419,
1130 0, 394, 0, 397, 281, 290, 0, 39, 272, 0,
1131 197, 195, 664, 545, 0, 177, 178, 650, 111, 145,
1132 142, 148, 0, 149, 146, 147, 151, 0, 156, 0,
1133 0, 0, 0, 272, 0, 78, 77, 0, 73, 0,
1134 50, 45, 46, 55, 66, 57, 70, 0, 74, 75,
1135 0, 0, 304, 272, 272, 278, 272, 272, 0, 417,
1136 272, 403, 0, 406, 0, 14, 495, 587, 176, 272,
1137 143, 157, 154, 0, 158, 159, 163, 298, 52, 49,
1138 0, 0, 71, 47, 64, 302, 264, 420, 411, 415,
1139 272, 392, 398, 651, 155, 65, 51, 418, 421, 395,
1143 static const short yydefgoto[] = { 1231,
1144 86, 87, 88, 89, 136, 306, 307, 90, 650, 789,
1145 308, 826, 952, 91, 690, 954, 928, 93, 1037, 1171,
1146 1118, 1102, 1172, 1210, 1110, 1039, 1040, 1041, 1114, 1042,
1147 1043, 1175, 1045, 1168, 773, 831, 774, 832, 775, 833,
1148 912, 834, 778, 835, 913, 910, 911, 812, 780, 781,
1149 1017, 1018, 1019, 1085, 1020, 782, 783, 94, 260, 433,
1150 261, 570, 95, 1024, 1152, 1153, 1026, 1099, 1121, 1100,
1151 176, 327, 177, 507, 178, 964, 179, 180, 402, 545,
1152 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
1153 539, 191, 541, 192, 540, 856, 193, 222, 480, 316,
1154 421, 97, 662, 795, 129, 595, 98, 302, 195, 258,
1155 130, 131, 927, 818, 819, 820, 821, 941, 100, 784,
1156 837, 1029, 786, 787, 838, 1048, 921, 1046, 101, 102,
1157 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1158 296, 422, 439, 114, 266, 1230, 115, 799, 1193, 802,
1159 1195, 665, 1131, 668, 1133, 116, 930, 931, 1128, 1129,
1160 117, 673, 581, 582, 842, 133, 470, 125, 126, 119,
1161 603, 604, 471, 472, 473, 692, 609, 329, 807, 844,
1162 454, 350, 223, 243, 224, 225, 351, 960, 1140, 227,
1163 646, 228, 229, 426, 230, 231, 197, 407, 352, 348,
1164 353, 474, 702, 354, 317, 623, 355, 202, 356, 551,
1165 797, 1055, 236, 567, 502, 406, 204, 568, 698, 699,
1166 569, 357, 205, 206, 358, 643, 613, 359, 239, 360,
1167 364, 705, 740, 907, 741, 210, 743, 744, 745, 746,
1168 747, 748, 749, 750, 751, 752, 753, 754, 755, 756,
1169 757, 1006, 1200, 758, 1144, 361, 362, 212, 363, 263,
1173 static const short yypact[] = { 2126,
1174 -32768,-32768, 46, 55, 5187,-32768, 6479,-32768, 810, 3178,
1175 3478, 3478,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1176 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1177 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1178 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1179 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1180 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1181 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1182 694,-32768,-32768,-32768,-32768, 2309,-32768,-32768,-32768, 272,
1183 -32768,-32768, 109,-32768, 126,-32768,-32768,-32768, 141, 6074,
1184 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1185 6074, 6074, 161, 102,-32768, 187,-32768,-32768, 810,-32768,
1186 -32768,-32768,-32768,-32768,-32768, 46,-32768, 5488,-32768, 182,
1187 -32768, 161,-32768,-32768,-32768, 5187,-32768, 253,-32768, 5488,
1188 -32768, 265, 285, 301,-32768, 322, 810, 335, 347, 754,
1189 -32768, 2689, 5488, 5488, 5488, 5488, 5488, 5488,-32768, 5534,
1190 5534, 351,-32768, 375, 385, 394, 402, 409, 329, 4680,
1191 -32768, 441, 449,-32768, 478,-32768, 555, 1166,-32768,-32768,
1192 -32768, 770, 183, 563, 69, 570, 476, 486, 472, 500,
1193 72,-32768,-32768, 464,-32768, 3523, 497, 507,-32768,-32768,
1194 -32768,-32768, 557, 3223,-32768, 4680,-32768, 3523,-32768, 444,
1195 3523,-32768,-32768, 587, 647,-32768, 650,-32768, 2881, 478,
1196 685, 481, 592, 3328,-32768, 3478,-32768,-32768,-32768, 5804,
1197 -32768,-32768,-32768,-32768, 696, 701,-32768,-32768, 3478, 3523,
1198 -32768,-32768, 646,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1199 -32768,-32768,-32768,-32768,-32768,-32768, 752, 744,-32768,-32768,
1200 6344,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1201 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 763, 454,
1202 -32768,-32768, 810, 810, 420,-32768, 272,-32768,-32768,-32768,
1203 1167,-32768,-32768, 266, 5669, 294, 764,-32768,-32768, 777,
1204 -32768,-32768, 809, 806, 454, 126,-32768, 307, 814,-32768,
1205 810,-32768, 78,-32768,-32768,-32768, 833, 5488, 5488, 5488,
1206 3429, 855,-32768,-32768,-32768, 506, 840, 443, 858, 867,
1207 -32768,-32768,-32768,-32768,-32768,-32768, 870, 1167,-32768,-32768,
1208 5488, 889, 891, 916, 924, 926, 329, 644, 4586,-32768,
1209 4680,-32768,-32768,-32768,-32768, 947,-32768,-32768, 4680,-32768,
1210 4680,-32768,-32768,-32768, 5356, 5488,-32768,-32768, 50, 5488,
1211 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488,
1212 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488,
1213 5488, 5488, 5488, 5488, 5488, 5488,-32768,-32768,-32768,-32768,
1214 5488, 658,-32768,-32768, 2497,-32768,-32768, 1029,-32768,-32768,
1215 987,-32768, 5488, 733, 1005, 969,-32768,-32768,-32768,-32768,
1216 -32768, 161, 5804,-32768,-32768, 3478, 2037, 1036,-32768,-32768,
1217 5488, 157, 3628, 4763, 454,-32768, 434, 6479, 945, 1028,
1218 1035, 1043, 1050, 1043, 810, 1055, 342,-32768,-32768, 5367,
1219 1051, 417,-32768, 688,-32768, 454,-32768, 454,-32768,-32768,
1220 -32768, 994, 1053, 1063,-32768, 454, 307,-32768, 810, 1064,
1221 -32768, 1067, 810, 1068,-32768, 355, 1074, 404, 1074, 1083,
1222 -32768,-32768, 840, 1077,-32768, 5087,-32768,-32768, 1078, 1085,
1223 -32768,-32768,-32768,-32768,-32768,-32768, 5488,-32768, 1079,-32768,
1224 3628,-32768,-32768, 1097, 1099,-32768, 471,-32768, 89, 810,
1225 810,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1226 -32768,-32768,-32768,-32768,-32768, 770, 770, 183, 183, 563,
1227 563, 563, 563, 69, 69, 570, 476, 486, 5488, 5488,
1228 5488,-32768, 5546, 5579,-32768,-32768, 3073,-32768, 3373, 3815,
1229 -32768,-32768, 1102, 473,-32768,-32768, 454,-32768,-32768, 1103,
1230 1082,-32768, 1105,-32768, 4189,-32768,-32768, 4002, 4233, 840,
1231 -32768, 1089,-32768,-32768, 1108, 1117,-32768, 1118, 1121,-32768,
1232 741,-32768, 1114,-32768,-32768,-32768,-32768, 1125, 363, 688,
1233 5401, 1124,-32768, 182,-32768, 52,-32768,-32768, 5488, 559,
1234 454,-32768,-32768, 1120,-32768,-32768, 1151, 6479,-32768,-32768,
1235 -32768,-32768, 1140,-32768, 3429,-32768, 5108,-32768,-32768, 1147,
1236 -32768,-32768, 1145,-32768,-32768, 1146,-32768, 5488,-32768,-32768,
1237 -32768,-32768, 472, 791, 500, 1167,-32768, 1167,-32768,-32768,
1238 -32768, 4338, 4680, 5488,-32768, 5590,-32768, 5488,-32768, 1350,
1239 -32768,-32768,-32768, 4382, 4487,-32768, 4531,-32768,-32768, 1144,
1240 -32768,-32768,-32768,-32768,-32768, 1152,-32768,-32768, 1154,-32768,
1241 810,-32768, 810,-32768,-32768, 108, 1155,-32768, 1149, 62,
1242 1104, 1789,-32768,-32768, 1157,-32768, 1168,-32768, 290, 1350,
1243 -32768, 810, 968, 4680, 1161, 5108,-32768, 1173,-32768, 1182,
1244 1179, 1160,-32768, 5488, 5590,-32768,-32768,-32768,-32768, 1180,
1245 1181,-32768,-32768, 545, 1167, 5488, 5488, 5488, 5488, 5488,
1246 5488, 5534, 5534, 1183, 609, 635, 923, 1486, 665, 970,
1247 984, 905, 756, 935, 1184, 1169, 1170, 1153, 74, 1186,
1248 -32768, 41,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1249 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 699, 714,
1250 -32768, 1032,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1251 -32768,-32768,-32768, 1350,-32768, 1128,-32768,-32768, 1129,-32768,
1252 1130,-32768,-32768,-32768, 1131,-32768, 1975, 1143, 1350,-32768,
1253 -32768, 4636,-32768,-32768,-32768,-32768, 6209,-32768,-32768, 6209,
1254 -32768,-32768,-32768,-32768, 5488, 1021, 1210,-32768,-32768,-32768,
1255 1211, 1219,-32768, 1789, 5488, 810,-32768,-32768, 1789, 653,
1256 -32768, 1217, 1789, 1150,-32768, 1350,-32768, 1218,-32768,-32768,
1257 -32768, 1350,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 272,
1258 1221,-32768, 773,-32768, 688,-32768,-32768, 1173, 1710, 1222,
1259 810,-32768,-32768, 727, 1223, 5488, 1147, 1147, 1231, 735,
1260 1225, 799, 801, 820, 831, 841, 846, 851, 868, 5488,
1261 5412, 5488, 878, 897, 221, 5488, 5488, 5488, 5488, 5488,
1262 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488,
1263 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488,
1264 5488, 5488, 5488,-32768, 5488,-32768, 1230, 1234,-32768, 1065,
1265 1213, 529, 359,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1266 218,-32768,-32768,-32768,-32768, 1789, 537,-32768, 161, 4922,
1267 -32768, 6209, 4922, 6209,-32768,-32768,-32768,-32768,-32768,-32768,
1268 1025, 1232,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1269 -32768, 1350,-32768, 126,-32768, 512,-32768,-32768,-32768, 5460,
1270 1237,-32768,-32768, 505,-32768, 1242, 840,-32768,-32768, 903,
1271 5087, 1241, 908, 910, 156, 810, 810,-32768,-32768,-32768,
1272 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 948, 966,
1273 982, 861, 902, 929, 949, 428, 602, 659, 819, 738,
1274 853, 105, 411, 315, 472, 5488, 500, 5590,-32768, 444,
1275 1032,-32768,-32768,-32768,-32768,-32768, 556,-32768, 5939, 529,
1276 321, 321,-32768,-32768, 515, 640,-32768,-32768, 362,-32768,
1277 588, 450,-32768,-32768,-32768,-32768,-32768, 1240,-32768, -17,
1278 -32768, 1004,-32768, 63, 1244, 126,-32768, 362,-32768,-32768,
1279 -32768, 1246, 400,-32768,-32768, 4922,-32768, 4922,-32768,-32768,
1280 1315,-32768, 883,-32768, 1175, 886,-32768,-32768,-32768, 810,
1281 -32768, 1080, 990,-32768, 993, 1002,-32768,-32768, 1030,-32768,
1282 -32768, 529,-32768,-32768,-32768,-32768,-32768,-32768, 386, 515,
1283 661, 810, 810, 321,-32768, 362, 362,-32768, 678, 898,
1284 -32768, 1247, 1027, 490, 450, 712, 193,-32768,-32768, 588,
1285 -32768,-32768,-32768, 588, 24, 810, 810, 1248, 588,-32768,
1286 126, 1251, 957,-32768, 454,-32768,-32768, 1252,-32768, 1254,
1287 1257,-32768, 1258,-32768,-32768,-32768, 1189,-32768, 546, 1249,
1288 -32768,-32768,-32768,-32768, 1262, 1003, 1012,-32768,-32768,-32768,
1289 -32768, 515, 1256, 444,-32768,-32768, 515, 638, 678, 794,
1290 810, 810, 362,-32768, 1095,-32768,-32768, 588,-32768, 490,
1291 1261,-32768, 712,-32768, 712,-32768,-32768, 1264,-32768,-32768,
1292 1095, 1269,-32768,-32768,-32768,-32768, 5488, 400, 1271,-32768,
1293 -32768,-32768, 1278,-32768, 1282,-32768,-32768,-32768, 1014, 5488,
1294 -32768,-32768,-32768, 1277,-32768,-32768, 678,-32768,-32768,-32768,
1295 1280, 193,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1296 5488,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1300 static const short yypgoto[] = {-32768,
1301 -32768, 1227,-32768,-32768,-32768,-32768, -414, -113,-32768,-32768,
1302 998,-32768,-32768,-32768,-32768,-32768, 65,-32768,-32768, 395,
1303 -32768,-32768, 103, 136,-32768, 208,-32768,-32768,-32768, -987,
1304 -32768, -893,-32768,-32768, -634, -750,-32768,-32768,-32768, -538,
1305 -32768, -536,-32768, -477,-32768, 309,-32768,-32768, 641, -648,
1306 -32768, 239, 305,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1307 -32768,-32768,-32768,-32768, -873, 166,-32768, -943,-32768, 281,
1308 -32768,-32768, -624, 460, 989,-32768,-32768, -588,-32768,-32768,
1309 -122, -371, -370, -343, -336, -379, -388, -376, -513, -511,
1310 -32768, -585,-32768, -137,-32768,-32768, 1087, 1379, -586, -423,
1311 25,-32768,-32768,-32768, -455,-32768,-32768,-32768, 729, -270,
1312 874,-32768, -885, -746,-32768,-32768, 513,-32768,-32768,-32768,
1313 -418,-32768,-32768,-32768, -417,-32768,-32768,-32768,-32768,-32768,
1314 549,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1315 -32768, 188, 766,-32768, 953,-32768,-32768,-32768,-32768,-32768,
1316 -32768,-32768,-32768,-32768,-32768, 28, -763, -524,-32768, 149,
1317 -32768,-32768, 669, 667, 508, 2, -382, 1229,-32768, 20,
1318 -32768,-32768, -571,-32768,-32768,-32768, 666, -107, 1061,-32768,
1319 -448, -152, 1347,-32768, 1127,-32768, 706,-32768,-32768,-32768,
1320 -32768, -155,-32768,-32768,-32768,-32768,-32768, 14, 1071, 1022,
1321 1088,-32768,-32768, 1437,-32768,-32768, -308,-32768, 82, 243,
1322 -613, -810,-32768, 887,-32768,-32768, 985, -177, 697, 543,
1323 -478, 113,-32768, 189, 33,-32768,-32768, 39,-32768, 162,
1324 -32768,-32768, 689,-32768, 387, -587,-32768,-32768,-32768,-32768,
1325 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1326 -32768,-32768,-32768,-32768,-32768, 1443,-32768,-32768, 1527, -246,
1334 static const short yytable[] = { 120,
1335 593, 118, 315, 590, 120, 287, 537, 561, 120, 214,
1336 214, 214, 526, 527, 536, 528, 529, 677, 484, 538,
1337 297, 727, 127, 198, 96, 633, 588, 1044, 695, 635,
1338 331, 332, 333, 334, 335, 336, 933, 464, 1108, 1025,
1339 499, 836, 207, 1103, 530, 531, 532, 533, 208, 563,
1340 1177, 602, 423, 408, 800, 534, 535, 729, 742, 462,
1341 739, -597, 1063, 415, 92, -597, 468, 940, 419, 262,
1342 420, 642, 944, 622, 683, 951, 948, 510, 128, 3,
1343 727, 955, 468, 434, -46, 120, 810, 118, 1115, 655,
1344 1116, 203, 235, 235, 511, 246, 247, 248, 249, 250,
1345 251, 252, 253, 254, 255, 388, 389, 1117, 811, 401,
1346 96, 776, 398, 777, 904, 630, 729, 742, 120, 739,
1347 390, 391, 1057, 237, 237, -639, 1176, 259, 399, -639,
1348 905, 1182, 737, 450, 738, 120, 275, 1104, 1106, 914,
1349 280, 3, 282, 262, 286, 290, 120, 1089, 1090, 288,
1350 92, 214, 1158, 1159, 924, 311, 123, 124, 392, 393,
1351 304, 468, 305, 1123, 264, 330, 1109, 679, 1056, 214,
1352 1058, 209, 779, 440, 499, 685, 401, 836, -272, 1049,
1353 1211, 562, 1076, 836, 207, 932, 688, 113, 934, 281,
1354 208, 737, 132, 738, 135, 214, 464, 1030, 500, 238,
1355 238, 1064, 299, 214, 369, 214, 503, 214, 504, 403,
1356 214, 1170, 1178, 1173, 384, 385, 1105, 687, 214, 1207,
1357 1157, 409, 1030, 214, 411, 214, 1032, 550, 207, 410,
1358 489, 785, 788, 203, 208, 776, 207, 777, 214, 214,
1359 207, 1031, 208, 207, 845, 1132, 208, 1134, 976, 208,
1360 776, 1032, 777, 428, 283, 284, 285, 735, 523, 524,
1361 525, 659, -411, -411, -411, 977, 734, -411, -411, 736,
1362 559, 419, 207, 113, 730, 731, 313, 203, 208, 120,
1363 566, 437, 120, 120, 120, 203, 401, 265, 318, 203,
1364 448, 435, 203, 315, 829, -273, 779, 257, 265, 265,
1365 235, 416, 732, 836, 120, 235, 461, 235, 319, 733,
1366 120, 779, 315, 209, 1136, 452, 735, -272, 1173, 450,
1367 235, 203, 1010, 310, 320, 734, 456, 3, 736, 458,
1368 -273, 237, 463, 730, 731, -643, 237, 466, 237, -643,
1369 469, -411, -411, -411, 1021, 321, -411, -411, 566, 684,
1370 214, 237, 323, 395, 1022, 785, 788, 209, 214, 315,
1371 214, 732, 401, 618, 324, 209, 485, 468, 733, 209,
1372 785, 788, 209, 1067, 341, 401, 262, 79, 1035, 612,
1373 619, 935, 1021, 727, 677, 1096, -411, 675, -411, 1005,
1374 342, 942, 1022, 1007, 845, 1097, -411, 566, 1033, 1034,
1375 343, 209, 79, 1035, 214, 1054, 1036, 238, 1054, 344,
1376 1150, 1091, 238, 1092, 238, 566, 658, 345, 548, 729,
1377 742, 1127, 739, 346, 401, 214, 214, 238, 614, 347,
1378 1093, -641, 214, 3, 120, -641, 571, 207, 445, 394,
1379 -272, 121, 450, 208, 120, 505, 121, 558, -631, 557,
1380 138, -411, -631, 315, -411, 120, -411, 120, 558, 469,
1381 400, 315, -689, 401, 572, 120, 440, 485, 120, 577,
1382 -693, 580, 120, 1105, 79, 80, 137, 386, 387, 83,
1383 84, 400, 449, 1032, 401, 311, 203, 3, 596, 658,
1384 713, 628, 601, 401, 737, 629, 738, 645, 417, -690,
1385 214, 401, 658, 1154, 394, 79, 1023, 235, 235, 120,
1386 120, 396, 1003, 701, 1169, 1115, 468, 1116, 992, 993,
1387 1002, 994, 995, 482, 395, 1004, 401, 121, 710, 1069,
1388 711, 1054, 1070, 1054, 1117, -411, 675, -411, 237, 237,
1389 1091, 846, 1092, 79, 1023, -411, 79, 1098, 214, 214,
1390 996, 997, 998, 999, 1050, 397, 120, 1051, 647, 1093,
1391 121, 1000, 1001, 468, 214, 401, 209, 214, 214, 859,
1392 -462, 450, 1154, 262, 558, 405, 1082, 312, 365, 840,
1393 366, 207, -411, 686, 79, 80, 137, 208, 322, 83,
1394 84, 404, 558, 862, 863, 864, 865, 866, 867, -411,
1395 120, -516, 367, 368, 79, 80, 137, 861, -692, 83,
1396 84, 1031, 386, 387, 238, 238, 676, 1012, 1013, 735,
1397 311, 1032, -632, 392, 393, 449, -632, 469, 734, -594,
1398 203, 736, 410, -594, 79, 1035, 730, 731, 79, 80,
1399 137, 214, 214, 83, 84, 759, 700, 1014, 1015, 497,
1400 498, 386, 387, 214, 214, -593, 214, 262, 1072, -593,
1401 1094, 1016, 1202, 1160, 732, 1161, 1027, 315, 412, 1186,
1402 120, 733, 120, 413, 572, 945, 761, 315, 815, -633,
1403 816, 214, 1162, -633, 1021, -617, 418, 1151, 120, -617,
1404 590, 120, 120, 214, 1022, 452, -411, -411, -411, 543,
1405 544, -411, -411, 1160, 759, 1161, -691, 1065, 386, 387,
1406 209, -272, 843, 591, 424, 196, 226, 226, 968, -592,
1407 425, 121, 1162, -592, 442, 444, 446, -695, 99, 840,
1408 79, 80, 137, 99, 401, 83, 84, 1115, 908, 1116,
1409 429, 244, 245, -411, -411, -411, 121, 401, -411, -411,
1410 417, 966, 312, 401, 875, 401, 1117, 485, -636, 970,
1411 670, 671, -636, 1218, 989, 990, 991, 432, 1033, 1034,
1412 1083, 325, 79, 1035, 388, 389, 1036, 291, 430, 1095,
1413 436, -695, 153, 154, 155, 156, 157, 158, 455, 390,
1414 391, 214, 894, 895, 457, 693, -272, 1229, 450, 1120,
1415 159, 160, 161, 381, 382, 383, 3, 896, 897, 918,
1416 919, 401, 709, 214, 99, 120, 1137, 1021, 214, -611,
1417 1203, -616, 214, -611, 162, -616, 459, 1022, 460, 267,
1418 268, 269, 270, 271, 272, 273, 274, 465, 276, -634,
1419 -615, 279, 120, -634, -615, 79, 1023, 99, 1073, 174,
1420 120, -614, 950, 1164, 475, -614, 295, 196, 300, 301,
1421 303, -613, 843, 483, 309, -613, -612, 171, 386, 387,
1422 -612, -609, 481, -637, 1184, -609, 121, -637, -695, -695,
1423 295, -626, 486, -695, -695, -626, 583, 337, -610, 388,
1424 389, 487, -610, 488, 381, 382, 383, 121, -606, 121,
1425 262, 196, -606, 1051, 390, 391, 491, 312, 492, 196,
1426 605, 450, 1028, 196, 610, 262, 196, -607, 1163, 3,
1427 1047, -607, -625, -598, 226, 214, -625, -598, -601, 226,
1428 628, 226, -601, 493, 1075, 381, 382, 383, 79, 292,
1429 293, 494, 174, 495, 226, 196, 871, 295, 872, -628,
1430 -411, 631, 632, -628, 892, 893, 1053, 79, 80, 137,
1431 384, 385, 83, 84, 958, 501, 1145, -411, -621, -629,
1432 873, 874, -621, -629, 1185, 120, 120, 1051, 79, 1023,
1433 384, 385, 174, 1066, 929, 431, -622, 929, 898, 899,
1434 -622, -272, 556, 450, 79, 80, 137, 553, 121, 83,
1435 84, 3, -623, 887, 888, 889, -623, 759, 99, 438,
1436 -619, 441, 443, -602, -619, 890, 891, -602, 1087, 295,
1437 1028, 1028, -600, -604, 451, 287, -600, -604, 1101, 555,
1438 1047, 1047, -605, 99, -603, 573, -605, 552, -603, 309,
1439 936, 671, 312, 1086, 1060, 1061, 560, 1101, 574, 315,
1440 401, 1148, 120, 575, 1130, 1111, 1112, 1113, 1166, 1167,
1441 214, -272, 1224, 277, 278, 120, 295, 571, 578, 120,
1442 79, 80, 137, 584, 589, 83, 84, 295, 1125, 598,
1443 199, 232, 232, 315, 597, 1139, 600, 607, 606, 611,
1444 1028, 120, 120, 1028, 401, 1101, 1101, 200, 233, 233,
1445 615, 616, 620, 624, 1047, 621, 1047, 626, 649, 1047,
1446 196, 661, 583, 1047, 583, 120, 120, 929, 1047, 929,
1447 929, 929, 627, 822, 120, 644, 648, 664, 314, 651,
1448 830, 226, 226, 610, 121, 666, 672, 667, 120, 669,
1449 689, 314, 314, 314, 314, 314, 314, 680, 339, 340,
1450 279, 674, 79, 80, 137, 691, 1190, 83, 84, 1028,
1451 120, 120, 1101, 99, 694, 617, 703, 1047, 794, 704,
1452 576, 798, 579, 801, 585, 809, 762, 586, 847, 808,
1453 451, 853, 592, 825, 99, -170, 99, 120, 370, 1130,
1454 291, 599, 827, 849, 309, 153, 154, 155, 156, 157,
1455 158, 608, 851, 852, 857, 858, 870, 901, 903, 902,
1456 906, 1047, 900, 159, 160, 161, 438, 909, 915, 916,
1457 917, 920, 199, 371, 372, 373, 374, 375, 376, 377,
1458 378, 379, 380, 923, 937, 938, 939, 162, 947, 200,
1459 949, 963, 953, 929, 956, 929, 1228, 967, 969, 971,
1460 1008, 1009, 1011, 174, 196, 822, 1068, 943, 1062, 1071,
1461 822, 1074, 1107, 1126, 822, 1138, 199, 1119, 1165, 1181,
1462 1143, 1163, 1188, 1197, 199, 1191, 1192, 1194, 199, 1196,
1463 171, 199, 1201, 200, 121, 99, 1199, 1209, 1220, 232,
1464 1213, 200, 965, 1215, 232, 200, 232, 1222, 200, 660,
1465 1212, 1223, 438, 1225, 1226, 1232, 233, 1233, 467, 232,
1466 199, 233, 256, 233, 1227, 1038, 1214, 1174, 592, 1081,
1467 1149, 813, 681, 682, 1088, 1204, 233, 200, 1122, 309,
1468 974, 594, 946, 814, 1135, 922, 1219, 804, 291, 663,
1469 815, 806, 816, 153, 154, 155, 156, 157, 158, 438,
1470 959, 79, 292, 293, 289, 174, 453, 839, 242, 707,
1471 708, 159, 160, 161, 295, 427, 295, 822, 496, 314,
1472 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
1473 314, 314, 314, 314, 314, 162, 1198, 625, 194, 549,
1474 796, 962, 848, 855, 1080, 961, 0, 0, 803, 0,
1475 805, 0, 0, 0, 451, 0, 0, 0, 0, 0,
1476 0, 823, 824, 0, 0, 0, 828, 1077, 1078, 314,
1477 608, 841, 762, 763, 764, 765, 0, 490, 171, 766,
1478 767, 768, 769, 770, 771, 772, 0, 0, 314, 0,
1479 0, 0, 0, 295, 0, 0, 201, 234, 234, 0,
1480 0, 508, 211, 240, 240, 0, 512, 513, 514, 515,
1481 516, 517, 518, 519, 520, 521, 522, 0, 0, 0,
1482 0, 0, 0, 0, 314, 199, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 314, 0, 542, 0, 0,
1484 0, 0, 200, 0, 121, 0, 232, 232, 0, 79,
1485 172, 173, 822, 174, 83, 84, 294, 121, 876, 0,
1486 0, 1142, 0, 233, 233, 0, 0, 0, 0, 0,
1487 0, 0, 0, 926, 0, 0, 0, 314, 326, 314,
1488 328, 637, 639, 1155, 1156, 0, 213, 241, 241, 0,
1489 0, 0, 0, 877, 878, 879, 880, 881, 882, 883,
1490 884, 885, 886, 0, 0, 0, 0, 1179, 1180, 0,
1491 0, 0, 0, 0, 0, 0, 121, 0, 0, 0,
1492 957, 841, 0, 592, 194, 0, 0, 0, 0, 314,
1493 121, 0, 194, 0, 0, 0, 194, 314, 201, 194,
1494 0, 0, 0, 0, 211, 0, 0, 414, 0, 0,
1495 0, 0, 1205, 1206, 0, 0, 0, 0, 0, 0,
1496 0, 0, 0, 0, 0, 0, 0, 0, 194, 199,
1497 0, 0, 0, 0, 0, 0, 0, 0, 0, 121,
1498 0, 0, 201, 0, 728, 0, 200, 0, 211, 0,
1499 201, 0, 0, 0, 201, 0, 211, 201, 0, 0,
1500 211, 0, 0, 211, 0, 234, 0, 1052, 0, 0,
1501 234, 240, 234, 0, 1059, 0, 240, 0, 240, 447,
1502 0, 0, 0, 0, 0, 234, 201, 0, 213, 0,
1503 0, 240, 211, 0, 0, 0, 0, 0, 0, 0,
1504 0, 0, 0, 728, 0, 0, 476, 477, 478, 479,
1505 0, 0, 0, 697, 314, 314, 314, 314, 314, 314,
1506 868, 869, 0, 0, 706, 0, 447, 0, 0, 0,
1507 0, 0, 213, 0, 0, 0, 0, 447, 696, -687,
1508 213, 0, 0, 291, 213, 0, 0, 213, 153, 154,
1509 155, 156, 157, 158, 509, 241, 0, 0, 0, 0,
1510 241, 0, 241, 0, 0, 0, 159, 160, 161, 0,
1511 0, 0, 0, 0, 0, 241, 213, 0, 817, 0,
1512 0, 0, 0, 0, 0, 0, 0, 0, 1124, 0,
1513 162, 99, 697, 194, 0, 0, 0, 0, 0, 0,
1514 0, 554, 0, 314, 841, 0, 0, 1141, 0, 0,
1515 0, 0, 438, 314, 0, 1146, 1147, 814, 0, 0,
1516 0, 0, 291, 0, 815, 0, 816, 153, 154, 155,
1517 156, 157, 158, 171, 0, 0, 0, 0, 0, 0,
1518 0, 0, 0, 0, 0, 159, 160, 161, 0, 0,
1519 0, 201, 0, 0, 314, 0, 0, 211, 1183, 0,
1520 0, 0, 0, 99, 0, 1187, 1189, 0, 0, 162,
1521 0, 0, 234, 234, 0, 0, 0, 841, 240, 240,
1522 0, 0, 0, 0, 0, 314, 314, 314, 314, 314,
1523 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
1524 314, 314, 1208, 314, 79, 292, 293, 0, 174, 0,
1525 817, 0, 171, 0, 0, 817, 0, 0, 0, 817,
1526 0, 0, 1216, 1217, 0, 0, 99, 0, 634, 1221,
1527 0, 0, 0, 0, 0, 0, 0, 194, 0, 0,
1528 0, 213, 0, 0, 0, 697, 0, 0, 0, 0,
1529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1530 0, 0, 241, 241, 0, 0, 972, 508, 0, 314,
1531 0, 0, 978, 979, 980, 981, 982, 983, 984, 985,
1532 986, 987, 988, 79, 172, 173, 0, 174, 83, 84,
1533 0, 0, 0, 0, 0, 201, 0, 0, 0, 0,
1534 0, 211, 0, 479, 0, 0, 728, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536 0, 0, 817, 0, 447, 0, 447, 0, 0, 0,
1537 0, 0, 714, 0, 0, 0, 760, 0, 0, 0,
1538 0, 0, 0, 0, 0, 0, 0, 216, 0, 0,
1539 0, 0, 140, 141, 142, 0, 0, 217, 145, 146,
1540 147, 148, 149, 150, 218, -489, -489, 0, 0, 0,
1541 219, -489, 0, 0, 0, 153, 154, 155, 156, 157,
1542 158, 0, 0, 0, 0, 213, 0, 0, -272, -272,
1543 0, 0, 854, 159, 160, 161, 0, 0, 0, 0,
1544 0, 0, 0, 860, 0, 22, 23, 24, 25, 0,
1545 26, 0, 0, 0, 0, 31, 32, 162, 0, 35,
1546 36, 0, 38, 39, 40, 41, 0, 0, 0, 0,
1547 0, 0, 0, 0, 0, -1, 1, 53, 54, 0,
1548 0, -489, 164, 165, 166, 167, 168, 169, 0, 0,
1549 0, 0, 0, 2, 0, 0, 170, 817, 0, -272,
1550 171, 0, 78, 0, 0, 0, 0, 0, 0, 3,
1551 0, 0, 82, 0, 0, 0, 0, 0, 0, 4,
1552 0, 5, 0, 0, 0, 314, 0, 0, 0, 0,
1553 0, 0, 0, 0, 0, 0, 0, 0, 314, 0,
1554 0, 0, 0, -411, -411, -411, 0, 6, 0, 0,
1555 0, 0, 7, 8, 9, 0, 0, 0, 0, 314,
1556 0, 0, 0, 0, 0, 0, 0, 10, 11, 12,
1557 0, 79, 172, 173, 0, 174, 220, 221, 0, 0,
1558 0, 0, 0, 0, 0, 0, 13, 14, 15, 0,
1559 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1560 975, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1561 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1562 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1563 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1564 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1565 75, 76, 77, 78, 0, 0, 0, 0, -2, 1,
1566 79, 80, 81, 82, 0, 83, 84, 85, 0, 0,
1567 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
1568 0, 0, -272, 0, 0, 0, 0, 0, 479, 0,
1569 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
1570 0, 0, 4, 0, 5, 0, 0, 0, 0, 0,
1571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1572 0, 0, 0, 0, 0, 0, -411, -411, -411, 0,
1573 6, 0, 0, 0, 1079, 7, 8, 9, 0, 0,
1574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1575 10, 11, 12, 0, 0, 0, 0, 0, 0, 0,
1576 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
1577 14, 15, 0, 16, 17, 18, 19, 20, 21, 22,
1578 23, 24, 25, 0, 26, 27, 28, 29, 30, 31,
1579 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1580 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1581 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1582 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1583 72, 73, 74, 75, 76, 77, 78, 0, 0, 0,
1584 0, 0, 0, 79, 80, 81, 82, 139, 83, 84,
1585 85, 0, 140, 141, 142, 0, 143, 144, 145, 146,
1586 147, 148, 149, 150, 151, -544, 546, 0, 0, 0,
1587 152, 0, 0, 0, 0, 153, 154, 155, 156, 157,
1588 158, 0, 0, 0, 0, 0, 0, 0, -272, -272,
1589 4, 0, 5, 159, 160, 161, 0, 0, 0, 0,
1590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1591 0, 0, 0, 0, -411, -411, -411, 162, 6, 0,
1592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1594 0, 0, 164, 165, 166, 167, 168, 169, 0, 0,
1595 0, 0, 0, 0, 0, 0, 170, 13, 14, 15,
1596 171, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1597 25, 0, 26, 27, 28, 29, 30, 31, 32, 33,
1598 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1599 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1600 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1601 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1602 74, 75, 76, 77, 78, 0, 0, 0, 0, 0,
1603 0, 79, 172, 547, 82, 174, 175, 84, 85, 139,
1604 0, 0, 0, 0, 140, 141, 142, 0, 143, 144,
1605 145, 146, 147, 148, 149, 150, 151, -170, 0, 0,
1606 0, 0, 152, 0, 0, 0, 0, 153, 154, 155,
1607 156, 157, 158, 0, 0, 0, 0, 0, 0, 0,
1608 -272, -272, -272, 0, 0, 159, 160, 161, 0, 0,
1609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1610 0, 0, 0, 0, 0, 0, -272, -272, -272, 162,
1611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1613 0, 0, 0, 0, 164, 165, 166, 167, 168, 169,
1614 0, 0, 0, 0, 0, 0, 0, 0, 170, -272,
1615 -272, -272, 171, -272, -272, -272, -272, -272, -272, -272,
1616 -272, -272, -272, 0, -272, -272, -272, -272, -272, -272,
1617 -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
1618 -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
1619 -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
1620 -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
1621 -272, -272, -272, -272, -272, -272, -272, 0, 0, 0,
1622 0, 0, 0, 79, 172, 173, -272, 174, 175, 84,
1623 -272, 216, 0, 0, 0, 0, 140, 141, 142, 0,
1624 0, 217, 145, 146, 147, 148, 149, 150, 218, -170,
1625 -548, 0, 0, 0, 219, 0, 0, 0, 0, 153,
1626 154, 155, 156, 157, 158, 0, 0, 0, 0, 0,
1627 0, 0, -272, -272, -272, 0, 0, 159, 160, 161,
1628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1629 0, 0, 0, 0, 0, 0, 0, 0, -272, -272,
1630 -272, 162, 0, 0, 0, 0, 0, 0, 0, 0,
1631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1632 0, 0, 0, 0, 0, 0, 164, 165, 166, 167,
1633 168, 169, 0, 0, 0, 0, 0, 0, 0, 0,
1634 170, -272, -272, -272, 171, -272, -272, -272, -272, -272,
1635 -272, -272, -272, -272, -272, 0, -272, -272, -272, -272,
1636 -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
1637 -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
1638 -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
1639 -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
1640 -272, -272, -272, -272, -272, -272, -272, -272, -272, 0,
1641 0, 0, 0, 0, 0, 79, 172, 173, -272, 174,
1642 220, 221, -272, -168, 0, 0, 0, 0, -168, -168,
1643 -168, 0, -168, -168, -168, -168, -168, -168, -168, -168,
1644 -168, -168, -168, -168, -693, -168, -168, 0, -168, 0,
1645 -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
1646 -168, -168, -168, -168, -168, -168, 0, -168, 0, -168,
1647 -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
1648 -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
1649 0, 0, 0, -168, 0, 0, 0, 0, 0, 0,
1650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1651 0, 0, 0, 0, 0, 0, 0, 0, -168, -168,
1652 -168, -168, -168, -168, 0, 0, 0, 0, 139, 0,
1653 0, 0, -168, 140, 141, 142, -168, 143, 144, 145,
1654 146, 147, 148, 149, 150, 151, -544, 0, 0, 0,
1655 0, 152, 0, 0, 0, 0, 153, 154, 155, 156,
1656 157, 158, 0, 0, 0, 0, 0, 0, 0, -272,
1657 -272, 0, 0, 139, 159, 160, 161, 0, 140, 141,
1658 142, 0, 143, 144, 145, 146, 147, 148, 149, 150,
1659 151, -544, 0, 0, 0, 0, 152, 0, 162, 0,
1660 0, 153, 154, 155, 156, 157, 158, -168, -168, -168,
1661 0, -168, -168, -168, -272, -272, 0, 0, 0, 159,
1662 160, 161, 163, 164, 165, 166, 167, 168, 169, 0,
1663 0, 0, 0, 0, 0, 0, 0, 170, 0, 0,
1664 0, 171, 0, 162, 0, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666 0, 0, 0, 0, 0, 0, 0, -517, 164, 165,
1667 166, 167, 168, 169, 0, 0, 0, 0, 216, 0,
1668 0, 0, 170, 140, 141, 142, 171, 0, 217, 145,
1669 146, 147, 148, 149, 150, 218, -544, -548, 0, 0,
1670 0, 219, 0, 0, 0, 0, 153, 154, 155, 156,
1671 157, 158, 79, 172, 173, 0, 174, 175, 84, -272,
1672 -272, 0, 0, 139, 159, 160, 161, 0, 140, 141,
1673 142, 0, 143, 144, 145, 146, 147, 148, 149, 150,
1674 151, -544, 640, 0, 0, 0, 152, 0, 162, 0,
1675 0, 153, 154, 155, 156, 157, 158, 79, 172, 173,
1676 0, 174, 175, 84, -272, -272, 0, 0, 0, 159,
1677 160, 161, -485, 164, 165, 166, 167, 168, 169, 0,
1678 0, 0, 0, 0, 0, 0, 0, 170, 0, 0,
1679 0, 171, 0, 162, 0, 0, -254, 0, 0, 0,
1680 0, 0, 291, 0, 0, 0, 0, 153, 154, 155,
1681 156, 157, 158, 0, 0, 0, 0, 0, 164, 165,
1682 166, 167, 168, 169, 0, 159, 160, 161, 216, 0,
1683 0, 0, 170, 140, 141, 142, 171, 0, 217, 145,
1684 146, 147, 148, 149, 150, 218, -544, -548, 0, 162,
1685 0, 219, 0, 0, 0, 0, 153, 154, 155, 156,
1686 157, 158, 79, 172, 173, 0, 174, 220, 221, -272,
1687 -272, 0, 0, 139, 159, 160, 161, 0, 140, 141,
1688 142, 0, 143, 144, 145, 146, 147, 148, 149, 150,
1689 151, -544, 171, 0, 0, 0, 152, 0, 162, 0,
1690 0, 153, 154, 155, 156, 157, 158, 79, 172, 173,
1691 0, 174, 175, 84, -272, -272, 0, 0, 0, 159,
1692 160, 161, 0, 164, 165, 166, 167, 168, 169, 0,
1693 0, 0, 0, 0, 0, 0, 0, 170, 0, 0,
1694 0, 171, 0, 162, 0, 0, 0, 0, 0, 0,
1695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1696 0, 0, 0, 79, 292, 293, 0, 174, 164, 165,
1697 166, 167, 168, 169, 0, 0, 0, 0, 0, 0,
1698 0, 0, 170, 140, 141, 142, 171, 143, 144, 145,
1699 146, 147, 148, 149, 150, 218, -544, 564, 0, 0,
1700 0, 349, 0, 0, 0, 0, 153, 154, 155, 156,
1701 157, 158, 79, 172, 173, 0, 174, 220, 221, -272,
1702 -272, 4, 0, 5, 159, 160, 161, 0, 0, 0,
1703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1704 0, 0, 0, 0, 0, 0, 0, 0, 162, 6,
1705 0, 0, 0, 0, 0, 0, 0, 79, 172, 173,
1706 0, 174, 175, 84, 0, 0, 0, 0, 0, 0,
1707 0, 0, 0, 164, 165, 166, 167, 168, 169, 0,
1708 0, 0, 0, 0, 0, 0, 0, 565, 13, 14,
1709 15, 171, 16, 17, 18, 19, 20, 21, 22, 23,
1710 24, 25, 0, 26, 27, 28, 29, 30, 31, 32,
1711 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1712 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1713 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1714 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1715 73, 74, 75, 76, 77, 78, 0, 0, 0, 0,
1716 0, 0, 79, 172, 547, 82, 174, 175, 84, 85,
1717 140, 141, 142, 0, 143, 144, 145, 146, 147, 148,
1718 149, 150, 218, -544, 641, 0, 0, 0, 349, 0,
1719 0, 0, 0, 153, 154, 155, 156, 157, 158, 0,
1720 0, 0, 0, 0, 0, 0, -272, -272, 4, 0,
1721 5, 159, 160, 161, 0, 0, 0, 0, 0, 0,
1722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1723 0, 0, 0, 0, 0, 162, 6, 0, 0, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1726 164, 165, 166, 167, 168, 169, 0, 0, 0, 0,
1727 0, 0, 0, 0, 170, 13, 14, 15, 171, 16,
1728 17, 18, 19, 20, 21, 22, 23, 24, 25, 0,
1729 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1730 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1731 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1732 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1733 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1734 76, 77, 78, 0, 0, 0, 0, 0, 0, 79,
1735 172, 547, 82, 174, 175, 84, 85, 140, 141, 142,
1736 0, 143, 144, 145, 146, 147, 148, 149, 150, 218,
1737 -544, 653, 0, 0, 0, 349, 0, 0, 0, 0,
1738 153, 154, 155, 156, 157, 158, 0, 0, 0, 0,
1739 0, 0, 0, -272, -272, 4, 0, 5, 159, 160,
1740 161, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 162, 6, 0, 0, 0, 0, 0, 0,
1743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 164, 165, 166,
1745 167, 168, 169, 0, 0, 0, 0, 0, 0, 0,
1746 0, 654, 13, 14, 15, 171, 16, 17, 18, 19,
1747 20, 21, 22, 23, 24, 25, 0, 26, 27, 28,
1748 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1749 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1750 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1751 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1752 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1753 0, 0, 0, 0, 0, 0, 79, 172, 547, 82,
1754 174, 175, 84, 85, 140, 141, 142, 0, 143, 144,
1755 145, 146, 147, 148, 149, 150, 218, -544, 652, 0,
1756 0, 0, 349, 0, 0, 0, 0, 153, 154, 155,
1757 156, 157, 158, 0, 0, 0, 0, 0, 0, 0,
1758 0, 0, 0, 0, 0, 159, 160, 161, 140, 141,
1759 142, 0, 143, 144, 145, 146, 147, 148, 149, 150,
1760 218, -544, 656, 0, 0, 0, 349, 0, 0, 162,
1761 0, 153, 154, 155, 156, 157, 158, 0, 0, 0,
1762 0, 0, 0, 0, 0, 0, 0, 0, 0, 159,
1763 160, 161, 0, 0, 164, 165, 166, 167, 168, 169,
1764 0, 0, 0, 0, 0, 0, 0, 0, 170, 0,
1765 0, 0, 171, 162, 0, 0, 0, 0, 0, 0,
1766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1767 0, 0, 0, 0, 0, 0, 0, 0, 164, 165,
1768 166, 167, 168, 169, 0, 0, 0, 0, 0, 0,
1769 0, 0, 657, 140, 141, 142, 171, 143, 144, 145,
1770 146, 147, 148, 149, 150, 218, -544, 712, 0, 0,
1771 0, 349, 0, 0, 0, 0, 153, 154, 155, 156,
1772 157, 158, 0, 79, 172, 173, 0, 174, 175, 84,
1773 0, 0, 0, 0, 159, 160, 161, 140, 141, 142,
1774 0, 143, 144, 145, 146, 147, 148, 149, 150, 218,
1775 -544, 790, 0, 0, 0, 349, 0, 0, 162, 0,
1776 153, 154, 155, 156, 157, 158, 0, 79, 172, 173,
1777 0, 174, 175, 84, 0, 0, 0, 0, 159, 160,
1778 161, 0, 0, 164, 165, 166, 167, 168, 169, 0,
1779 0, 0, 0, 0, 0, 0, 0, 170, 0, 0,
1780 0, 171, 162, 0, 0, 0, 0, 0, 0, 0,
1781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1782 0, 0, 0, 0, 0, 0, 0, 164, 165, 166,
1783 167, 168, 169, 0, 0, 0, 0, 0, 0, 0,
1784 0, 170, 140, 141, 142, 171, 143, 144, 145, 146,
1785 147, 148, 149, 150, 218, -544, 791, 0, 0, 0,
1786 349, 0, 0, 0, 0, 153, 154, 155, 156, 157,
1787 158, 0, 79, 172, 173, 0, 174, 175, 84, 0,
1788 0, 0, 0, 159, 160, 161, 140, 141, 142, 0,
1789 143, 144, 145, 146, 147, 148, 149, 150, 218, -544,
1790 793, 0, 0, 0, 349, 0, 0, 162, 0, 153,
1791 154, 155, 156, 157, 158, 0, 79, 172, 173, 0,
1792 174, 175, 84, 0, 0, 0, 0, 159, 160, 161,
1793 0, 0, 164, 165, 166, 167, 168, 169, 0, 0,
1794 0, 0, 0, 0, 0, 0, 792, 0, 0, 0,
1795 171, 162, 0, 0, -170, 0, 0, 0, 0, 349,
1796 0, 0, 0, 0, 153, 154, 155, 156, 157, 158,
1797 0, 0, 0, 0, 0, 0, 164, 165, 166, 167,
1798 168, 169, 159, 160, 161, 0, 0, 0, 0, 0,
1799 170, 140, 141, 142, 171, 143, 144, 145, 146, 147,
1800 148, 149, 150, 218, -544, 925, 162, 0, 0, 349,
1801 0, 0, 0, 0, 153, 154, 155, 156, 157, 158,
1802 0, 79, 172, 173, 0, 174, 175, 84, 0, 0,
1803 0, 0, 159, 160, 161, 140, 141, 142, 0, 143,
1804 144, 145, 146, 147, 148, 149, 150, 218, -544, 171,
1805 0, 0, 0, 349, 0, 0, 162, 0, 153, 154,
1806 155, 156, 157, 158, 0, 79, 172, 173, 0, 174,
1807 175, 84, 0, 0, 0, 0, 159, 160, 161, 0,
1808 0, 164, 165, 166, 167, 168, 169, 0, 0, 0,
1809 0, 0, 0, 0, 0, 170, 0, 0, 0, 171,
1810 162, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1812 79, 292, 293, 0, 174, 164, 165, 166, 167, 168,
1813 169, -135, 0, 0, 0, 0, -135, 0, 0, 170,
1814 0, 0, 0, 171, 0, 0, 0, 0, 0, 0,
1815 0, 0, 0, 0, 0, 0, 4, 0, 5, 0,
1816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1817 79, 172, 173, 0, 174, 175, 84, 0, 0, 0,
1818 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, 0, 79, 172, 173, 0, 174, 175,
1822 84, 0, 0, 13, 14, 15, 0, 16, 17, 18,
1823 19, 20, 21, 22, 23, 24, 25, 0, 26, 27,
1824 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1825 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1826 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1827 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1828 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1829 78, -547, 0, 0, 0, 0, 0, 0, 0, 134,
1830 82, 0, 0, 0, 85, 0, 0, 0, 0, 0,
1831 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
1832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 0, 13, 14, 15, 0, 16, 17, 18, 19,
1839 20, 21, 22, 23, 24, 25, 0, 26, 27, 28,
1840 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1841 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1842 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1843 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1844 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1845 0, 0, 0, 0, 0, 617, 0, 0, 134, 82,
1846 291, 0, 0, 85, 0, 153, 154, 155, 156, 157,
1847 158, 0, 0, 0, 0, 0, 696, 0, 0, 0,
1848 0, 291, 0, 159, 160, 161, 153, 154, 155, 156,
1849 157, 158, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 159, 160, 161, 162, 0, 0,
1851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1852 0, 0, 0, 0, 0, 0, 0, 0, 162, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1856 -272, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1857 3, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1858 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 79, 292, 293, 0, 174, 0, 0, 0, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 79, 292, 293, 0, 174, 13, 14, 15,
1865 0, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1866 25, 0, 26, 27, 28, 29, 30, 31, 32, 33,
1867 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1868 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1869 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1870 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1871 74, 75, 76, 77, 78, 0, 0, 0, 0, 0,
1872 0, 79, 80, 81, 82, 0, 83, 84, 85, 291,
1873 506, 0, 0, 0, 153, 154, 155, 156, 157, 158,
1874 291, 0, 0, 587, 0, 153, 154, 155, 156, 157,
1875 158, 0, 159, 160, 161, 0, 0, 0, 0, 0,
1876 0, 0, 0, 159, 160, 161, 0, 0, 0, 0,
1877 0, 0, 0, 0, 291, 0, 162, 678, 0, 153,
1878 154, 155, 156, 157, 158, 291, 973, 162, 0, 0,
1879 153, 154, 155, 156, 157, 158, 0, 159, 160, 161,
1880 0, 0, 0, 0, 0, 0, 0, 0, 159, 160,
1881 161, 0, 0, 0, 0, 0, 0, 0, 0, 171,
1882 0, 162, 0, 0, 0, 0, 0, 0, 0, 0,
1883 171, 0, 162, 291, -254, 0, 0, 0, 153, 154,
1884 155, 156, 157, 158, 0, 0, 0, 0, 0, 0,
1885 0, 0, 0, 0, 0, 0, 159, 160, 161, 0,
1886 0, 291, 0, 0, 171, 0, 153, 154, 155, 156,
1887 157, 158, 0, 0, 0, 171, 0, 0, 0, 0,
1888 162, 0, 0, 0, 159, 160, 161, 0, 0, 0,
1889 79, 292, 293, 0, 174, 0, 0, 0, 0, 0,
1890 0, 79, 292, 293, 0, 174, 0, 338, 162, 0,
1891 0, 0, 153, 154, 155, 156, 157, 158, 0, 636,
1892 0, 0, 0, 171, 153, 154, 155, 156, 157, 158,
1893 159, 160, 161, 0, 0, 79, 292, 293, 0, 174,
1894 0, 0, 159, 160, 161, 0, 79, 292, 293, 0,
1895 174, 171, 638, 0, 162, 0, 0, 153, 154, 155,
1896 156, 157, 158, 715, 0, 0, 162, 0, 716, 717,
1897 718, 719, 720, 721, 0, 159, 160, 161, 0, 0,
1898 0, 0, 0, 0, 0, 0, 159, 722, 723, 0,
1899 0, 0, 0, 0, 79, 292, 293, 171, 174, 162,
1900 0, 0, 0, 0, 0, 0, 0, 0, 0, 171,
1901 724, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902 0, 0, 79, 292, 293, 0, 174, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 171, 0, 0, 0, 0, 0, 0, 0,
1905 0, 0, 0, 171, 0, 0, 0, 0, 0, 0,
1906 -198, -198, 4, 0, 0, 0, 0, 0, 79, 292,
1907 293, 0, 174, 0, 0, 0, 0, 0, 0, 0,
1908 79, 292, 293, 0, 174, 0, 0, 0, 0, 0,
1909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1911 0, 0, 0, 79, 292, 293, 0, 174, 0, 0,
1912 0, 0, 0, 0, 79, 725, 726, 0, 174, 13,
1913 14, 15, 0, 16, 17, 18, 19, 20, 21, 22,
1914 23, 24, 25, 0, 26, 27, 28, 29, 30, 31,
1915 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1916 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1917 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1918 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1919 72, 73, 74, 75, 76, 77, 78, 4, 0, 5,
1920 0, 0, 0, 0, 0, 134, 82, 0, 0, 0,
1921 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, -411, -411, -411, 0, 6, 0, 0, 0, 0,
1923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1926 0, 0, 0, 0, 13, 14, 15, 0, 16, 17,
1927 18, 19, 20, 21, 22, 23, 24, 25, 0, 26,
1928 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1929 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1930 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1931 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1932 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1933 77, 78, 4, 0, 5, 0, 0, 0, 0, 0,
1934 134, 82, 0, 0, 0, 85, 0, 0, 0, 0,
1935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1936 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1939 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
1940 14, 15, 0, 16, 17, 18, 19, 20, 21, 22,
1941 23, 24, 25, 0, 26, 27, 28, 29, 30, 31,
1942 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1943 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1944 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1945 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1946 72, 73, 74, 75, 76, 77, 78, 4, 0, 0,
1947 0, 0, 0, 79, 1084, 134, 82, 0, 0, 0,
1948 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1949 0, -411, -411, -411, 0, 0, 0, 0, 0, 0,
1950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1953 0, 0, 0, 0, 13, 14, 15, 0, 16, 17,
1954 18, 19, 20, 21, 22, 23, 24, 25, 0, 26,
1955 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1956 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1957 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1958 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1959 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1960 77, 78, 4, 0, 0, 0, 0, 0, 0, 0,
1961 134, 82, 0, 0, 0, 85, 0, 0, 0, 0,
1962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1965 10, 11, 12, 0, 0, 0, 0, 0, 0, 0,
1966 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
1967 14, 15, 0, 16, 17, 18, 19, 20, 21, 22,
1968 23, 24, 25, 0, 26, 27, 28, 29, 30, 31,
1969 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1970 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1971 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1972 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1973 72, 73, 74, 75, 76, 77, 78, 4, 0, 5,
1974 0, 0, 0, 0, 0, 134, 82, 0, 0, 0,
1975 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1976 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
1977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1978 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1980 0, 0, 0, 0, 13, 14, 15, 0, 16, 17,
1981 18, 19, 20, 21, 22, 23, 24, 25, 0, 26,
1982 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1983 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1984 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1985 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1986 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1987 77, 78, 4, 0, 0, 0, 0, 0, 0, 0,
1988 134, 82, 0, 0, 0, 85, 0, 0, 0, 0,
1989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1991 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1992 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1993 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
1994 14, 15, 0, 16, 17, 18, 19, 20, 21, 22,
1995 23, 24, 25, 0, 26, 27, 28, 29, 30, 31,
1996 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1997 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1998 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1999 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2000 72, 73, 74, 75, 76, 77, 78, 0, 0, 0,
2001 0, 0, 0, 0, 0, 134, 82, 0, 0, 0,
2005 static const short yycheck[] = { 0,
2006 456, 0, 140, 452, 5, 119, 395, 431, 9, 10,
2007 11, 12, 384, 385, 394, 386, 387, 589, 327, 396,
2008 128, 646, 3, 10, 0, 539, 450, 921, 615, 541,
2009 153, 154, 155, 156, 157, 158, 800, 308, 56, 913,
2010 349, 690, 10, 1031, 388, 389, 390, 391, 10, 432,
2011 27, 466, 230, 206, 668, 392, 393, 646, 646, 306,
2012 646, 21, 948, 219, 0, 25, 5, 814, 224, 18,
2013 226, 550, 819, 497, 23, 826, 823, 28, 24, 34,
2014 705, 832, 5, 261, 22, 86, 25, 86, 26, 568,
2015 28, 10, 11, 12, 45, 68, 69, 70, 71, 72,
2016 73, 74, 75, 76, 77, 37, 38, 45, 680, 21,
2017 86, 650, 41, 650, 41, 27, 705, 705, 119, 705,
2018 52, 53, 933, 11, 12, 21, 1114, 19, 57, 25,
2019 57, 1119, 646, 26, 646, 136, 109, 1031, 1032, 774,
2020 113, 34, 115, 18, 117, 126, 147, 1021, 1022, 122,
2021 86, 152, 1096, 1097, 789, 136, 111, 112, 54, 55,
2022 133, 5, 135, 1049, 24, 152, 184, 591, 932, 170,
2023 934, 10, 650, 281, 483, 599, 21, 826, 18, 926,
2024 1168, 25, 27, 832, 152, 799, 601, 0, 802, 88,
2025 152, 705, 5, 705, 7, 196, 467, 5, 351, 11,
2026 12, 952, 21, 204, 177, 206, 359, 208, 361, 196,
2027 211, 1105, 189, 1107, 32, 33, 24, 600, 219, 1163,
2028 1094, 208, 5, 224, 211, 226, 34, 405, 196, 189,
2029 338, 650, 650, 152, 196, 774, 204, 774, 239, 240,
2030 208, 24, 204, 211, 693, 1056, 208, 1058, 28, 211,
2031 789, 34, 789, 240, 68, 69, 70, 646, 381, 382,
2032 383, 570, 185, 186, 187, 45, 646, 190, 191, 646,
2033 426, 427, 240, 86, 646, 646, 24, 196, 240, 280,
2034 433, 280, 283, 284, 285, 204, 21, 100, 24, 208,
2035 25, 264, 211, 431, 5, 24, 774, 26, 111, 112,
2036 219, 220, 646, 952, 305, 224, 305, 226, 24, 646,
2037 311, 789, 450, 152, 1061, 296, 705, 24, 1212, 26,
2038 239, 240, 910, 136, 24, 705, 299, 34, 705, 302,
2039 24, 219, 26, 705, 705, 21, 224, 310, 226, 25,
2040 313, 185, 186, 187, 24, 24, 190, 191, 501, 596,
2041 351, 239, 18, 39, 34, 774, 774, 196, 359, 497,
2042 361, 705, 21, 486, 18, 204, 25, 5, 705, 208,
2043 789, 789, 211, 960, 24, 21, 18, 185, 186, 25,
2044 488, 805, 24, 1008, 956, 24, 24, 25, 26, 903,
2045 16, 815, 34, 905, 843, 34, 34, 550, 181, 182,
2046 16, 240, 185, 186, 405, 930, 189, 219, 933, 16,
2047 25, 26, 224, 28, 226, 568, 569, 16, 405, 1008,
2048 1008, 22, 1008, 15, 21, 426, 427, 239, 25, 101,
2049 45, 21, 433, 34, 435, 25, 435, 405, 19, 29,
2050 24, 0, 26, 405, 445, 364, 5, 423, 21, 422,
2051 9, 18, 25, 591, 21, 456, 23, 458, 434, 432,
2052 18, 599, 22, 21, 437, 466, 574, 25, 469, 442,
2053 22, 444, 473, 24, 185, 186, 187, 50, 51, 190,
2054 191, 18, 295, 34, 21, 466, 405, 34, 461, 642,
2055 643, 21, 465, 21, 1008, 25, 1008, 25, 18, 22,
2056 501, 21, 655, 1091, 29, 185, 186, 426, 427, 510,
2057 511, 40, 901, 621, 25, 26, 5, 28, 890, 891,
2058 900, 892, 893, 18, 39, 902, 21, 86, 636, 25,
2059 638, 1056, 28, 1058, 45, 24, 25, 26, 426, 427,
2060 26, 694, 28, 185, 186, 34, 185, 186, 549, 550,
2061 894, 895, 896, 897, 18, 56, 557, 21, 557, 45,
2062 119, 898, 899, 5, 565, 21, 405, 568, 569, 25,
2063 25, 26, 1160, 18, 550, 19, 21, 136, 24, 693,
2064 26, 549, 28, 25, 185, 186, 187, 549, 147, 190,
2065 191, 95, 568, 716, 717, 718, 719, 720, 721, 45,
2066 601, 95, 48, 49, 185, 186, 187, 715, 22, 190,
2067 191, 24, 50, 51, 426, 427, 589, 89, 90, 1008,
2068 601, 34, 21, 54, 55, 438, 25, 600, 1008, 21,
2069 549, 1008, 189, 25, 185, 186, 1008, 1008, 185, 186,
2070 187, 642, 643, 190, 191, 646, 619, 119, 120, 6,
2071 7, 50, 51, 654, 655, 21, 657, 18, 967, 25,
2072 21, 133, 25, 26, 1008, 28, 913, 805, 22, 1125,
2073 671, 1008, 673, 24, 647, 23, 649, 815, 26, 21,
2074 28, 682, 45, 25, 24, 21, 95, 27, 689, 25,
2075 1139, 692, 693, 694, 34, 676, 185, 186, 187, 42,
2076 43, 190, 191, 26, 705, 28, 22, 954, 50, 51,
2077 549, 24, 693, 26, 19, 10, 11, 12, 856, 21,
2078 20, 280, 45, 25, 283, 284, 285, 34, 0, 843,
2079 185, 186, 187, 5, 21, 190, 191, 26, 25, 28,
2080 95, 13, 14, 185, 186, 187, 305, 21, 190, 191,
2081 18, 25, 311, 21, 727, 21, 45, 25, 21, 25,
2082 20, 21, 25, 1187, 887, 888, 889, 24, 181, 182,
2083 1017, 18, 185, 186, 37, 38, 189, 24, 27, 1026,
2084 18, 88, 29, 30, 31, 32, 33, 34, 25, 52,
2085 53, 792, 37, 38, 18, 608, 24, 1221, 26, 1046,
2086 47, 48, 49, 34, 35, 36, 34, 52, 53, 782,
2087 783, 21, 22, 814, 86, 816, 1063, 24, 819, 21,
2088 27, 21, 823, 25, 71, 25, 18, 34, 23, 101,
2089 102, 103, 104, 105, 106, 107, 108, 24, 110, 21,
2090 21, 113, 843, 25, 25, 185, 186, 119, 971, 189,
2091 851, 21, 825, 1100, 22, 25, 128, 152, 130, 131,
2092 132, 21, 843, 24, 136, 25, 21, 114, 50, 51,
2093 25, 21, 18, 21, 1121, 25, 435, 25, 185, 186,
2094 152, 21, 25, 190, 191, 25, 445, 159, 21, 37,
2095 38, 25, 25, 24, 34, 35, 36, 456, 21, 458,
2096 18, 196, 25, 21, 52, 53, 18, 466, 18, 204,
2097 469, 26, 913, 208, 473, 18, 211, 21, 21, 34,
2098 921, 25, 21, 21, 219, 926, 25, 25, 21, 224,
2099 21, 226, 25, 18, 25, 34, 35, 36, 185, 186,
2100 187, 18, 189, 18, 239, 240, 24, 219, 26, 21,
2101 28, 510, 511, 25, 50, 51, 929, 185, 186, 187,
2102 32, 33, 190, 191, 192, 19, 1074, 45, 21, 21,
2103 48, 49, 25, 25, 18, 976, 977, 21, 185, 186,
2104 32, 33, 189, 956, 797, 257, 21, 800, 54, 55,
2105 25, 24, 24, 26, 185, 186, 187, 11, 557, 190,
2106 191, 34, 21, 34, 35, 36, 25, 1008, 280, 281,
2107 21, 283, 284, 21, 25, 32, 33, 25, 1019, 291,
2108 1021, 1022, 21, 21, 296, 1139, 25, 25, 1029, 25,
2109 1031, 1032, 21, 305, 21, 91, 25, 9, 25, 311,
2110 20, 21, 601, 1019, 20, 21, 11, 1048, 21, 1187,
2111 21, 22, 1053, 19, 1053, 52, 53, 54, 32, 33,
2112 1061, 19, 1200, 111, 112, 1066, 338, 1066, 19, 1070,
2113 185, 186, 187, 19, 24, 190, 191, 349, 1051, 27,
2114 10, 11, 12, 1221, 91, 1066, 24, 21, 25, 22,
2115 1091, 1092, 1093, 1094, 21, 1096, 1097, 10, 11, 12,
2116 18, 25, 25, 25, 1105, 21, 1107, 11, 27, 1110,
2117 405, 23, 671, 1114, 673, 1116, 1117, 930, 1119, 932,
2118 933, 934, 24, 682, 1125, 24, 24, 20, 140, 25,
2119 689, 426, 427, 692, 693, 19, 23, 20, 1139, 19,
2120 21, 153, 154, 155, 156, 157, 158, 24, 160, 161,
2121 422, 27, 185, 186, 187, 5, 1129, 190, 191, 1160,
2122 1161, 1162, 1163, 435, 25, 19, 22, 1168, 25, 24,
2123 442, 20, 444, 20, 446, 27, 73, 449, 18, 25,
2124 452, 22, 454, 27, 456, 19, 458, 1188, 23, 1188,
2125 24, 463, 25, 21, 466, 29, 30, 31, 32, 33,
2126 34, 473, 21, 25, 25, 25, 24, 39, 56, 40,
2127 25, 1212, 29, 47, 48, 49, 488, 186, 91, 91,
2128 91, 91, 152, 58, 59, 60, 61, 62, 63, 64,
2129 65, 66, 67, 91, 25, 25, 18, 71, 22, 152,
2130 91, 20, 25, 1056, 24, 1058, 1219, 25, 18, 25,
2131 21, 18, 40, 189, 549, 814, 20, 816, 27, 18,
2132 819, 21, 23, 18, 823, 91, 196, 24, 22, 22,
2133 191, 21, 21, 25, 204, 22, 20, 20, 208, 91,
2134 114, 211, 27, 196, 843, 557, 25, 193, 18, 219,
2135 27, 204, 851, 25, 224, 208, 226, 20, 211, 571,
2136 40, 20, 574, 27, 25, 0, 219, 0, 311, 239,
2137 240, 224, 86, 226, 1212, 921, 1181, 1110, 590, 1011,
2138 1082, 681, 594, 595, 1020, 1160, 239, 240, 1048, 601,
2139 871, 458, 820, 19, 20, 787, 1188, 671, 24, 574,
2140 26, 673, 28, 29, 30, 31, 32, 33, 34, 621,
2141 843, 185, 186, 187, 126, 189, 296, 692, 12, 631,
2142 632, 47, 48, 49, 636, 239, 638, 926, 347, 381,
2143 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
2144 392, 393, 394, 395, 396, 71, 1144, 501, 10, 405,
2145 662, 849, 696, 705, 1008, 848, -1, -1, 670, -1,
2146 672, -1, -1, -1, 676, -1, -1, -1, -1, -1,
2147 -1, 683, 684, -1, -1, -1, 688, 976, 977, 431,
2148 692, 693, 73, 74, 75, 76, -1, 341, 114, 80,
2149 81, 82, 83, 84, 85, 86, -1, -1, 450, -1,
2150 -1, -1, -1, 715, -1, -1, 10, 11, 12, -1,
2151 -1, 365, 10, 11, 12, -1, 370, 371, 372, 373,
2152 374, 375, 376, 377, 378, 379, 380, -1, -1, -1,
2153 -1, -1, -1, -1, 486, 405, -1, -1, -1, -1,
2154 -1, -1, -1, -1, -1, 497, -1, 401, -1, -1,
2155 -1, -1, 405, -1, 1053, -1, 426, 427, -1, 185,
2156 186, 187, 1061, 189, 190, 191, 128, 1066, 23, -1,
2157 -1, 1070, -1, 426, 427, -1, -1, -1, -1, -1,
2158 -1, -1, -1, 795, -1, -1, -1, 539, 150, 541,
2159 152, 543, 544, 1092, 1093, -1, 10, 11, 12, -1,
2160 -1, -1, -1, 58, 59, 60, 61, 62, 63, 64,
2161 65, 66, 67, -1, -1, -1, -1, 1116, 1117, -1,
2162 -1, -1, -1, -1, -1, -1, 1125, -1, -1, -1,
2163 842, 843, -1, 845, 196, -1, -1, -1, -1, 591,
2164 1139, -1, 204, -1, -1, -1, 208, 599, 152, 211,
2165 -1, -1, -1, -1, 152, -1, -1, 219, -1, -1,
2166 -1, -1, 1161, 1162, -1, -1, -1, -1, -1, -1,
2167 -1, -1, -1, -1, -1, -1, -1, -1, 240, 549,
2168 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1188,
2169 -1, -1, 196, -1, 646, -1, 549, -1, 196, -1,
2170 204, -1, -1, -1, 208, -1, 204, 211, -1, -1,
2171 208, -1, -1, 211, -1, 219, -1, 929, -1, -1,
2172 224, 219, 226, -1, 936, -1, 224, -1, 226, 291,
2173 -1, -1, -1, -1, -1, 239, 240, -1, 152, -1,
2174 -1, 239, 240, -1, -1, -1, -1, -1, -1, -1,
2175 -1, -1, -1, 705, -1, -1, 318, 319, 320, 321,
2176 -1, -1, -1, 617, 716, 717, 718, 719, 720, 721,
2177 722, 723, -1, -1, 628, -1, 338, -1, -1, -1,
2178 -1, -1, 196, -1, -1, -1, -1, 349, 19, 20,
2179 204, -1, -1, 24, 208, -1, -1, 211, 29, 30,
2180 31, 32, 33, 34, 366, 219, -1, -1, -1, -1,
2181 224, -1, 226, -1, -1, -1, 47, 48, 49, -1,
2182 -1, -1, -1, -1, -1, 239, 240, -1, 682, -1,
2183 -1, -1, -1, -1, -1, -1, -1, -1, 1050, -1,
2184 71, 1053, 696, 405, -1, -1, -1, -1, -1, -1,
2185 -1, 413, -1, 805, 1066, -1, -1, 1069, -1, -1,
2186 -1, -1, 1074, 815, -1, 1077, 1078, 19, -1, -1,
2187 -1, -1, 24, -1, 26, -1, 28, 29, 30, 31,
2188 32, 33, 34, 114, -1, -1, -1, -1, -1, -1,
2189 -1, -1, -1, -1, -1, 47, 48, 49, -1, -1,
2190 -1, 405, -1, -1, 856, -1, -1, 405, 1120, -1,
2191 -1, -1, -1, 1125, -1, 1127, 1128, -1, -1, 71,
2192 -1, -1, 426, 427, -1, -1, -1, 1139, 426, 427,
2193 -1, -1, -1, -1, -1, 887, 888, 889, 890, 891,
2194 892, 893, 894, 895, 896, 897, 898, 899, 900, 901,
2195 902, 903, 1164, 905, 185, 186, 187, -1, 189, -1,
2196 814, -1, 114, -1, -1, 819, -1, -1, -1, 823,
2197 -1, -1, 1184, 1185, -1, -1, 1188, -1, 540, 1191,
2198 -1, -1, -1, -1, -1, -1, -1, 549, -1, -1,
2199 -1, 405, -1, -1, -1, 849, -1, -1, -1, -1,
2200 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2201 -1, -1, 426, 427, -1, -1, 870, 871, -1, 971,
2202 -1, -1, 876, 877, 878, 879, 880, 881, 882, 883,
2203 884, 885, 886, 185, 186, 187, -1, 189, 190, 191,
2204 -1, -1, -1, -1, -1, 549, -1, -1, -1, -1,
2205 -1, 549, -1, 615, -1, -1, 1008, -1, -1, -1,
2206 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2207 -1, -1, 926, -1, 636, -1, 638, -1, -1, -1,
2208 -1, -1, 644, -1, -1, -1, 648, -1, -1, -1,
2209 -1, -1, -1, -1, -1, -1, -1, 1, -1, -1,
2210 -1, -1, 6, 7, 8, -1, -1, 11, 12, 13,
2211 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2212 24, 25, -1, -1, -1, 29, 30, 31, 32, 33,
2213 34, -1, -1, -1, -1, 549, -1, -1, 42, 43,
2214 -1, -1, 704, 47, 48, 49, -1, -1, -1, -1,
2215 -1, -1, -1, 715, -1, 121, 122, 123, 124, -1,
2216 126, -1, -1, -1, -1, 131, 132, 71, -1, 135,
2217 136, -1, 138, 139, 140, 141, -1, -1, -1, -1,
2218 -1, -1, -1, -1, -1, 0, 1, 153, 154, -1,
2219 -1, 95, 96, 97, 98, 99, 100, 101, -1, -1,
2220 -1, -1, -1, 18, -1, -1, 110, 1061, -1, 24,
2221 114, -1, 178, -1, -1, -1, -1, -1, -1, 34,
2222 -1, -1, 188, -1, -1, -1, -1, -1, -1, 44,
2223 -1, 46, -1, -1, -1, 1187, -1, -1, -1, -1,
2224 -1, -1, -1, -1, -1, -1, -1, -1, 1200, -1,
2225 -1, -1, -1, 68, 69, 70, -1, 72, -1, -1,
2226 -1, -1, 77, 78, 79, -1, -1, -1, -1, 1221,
2227 -1, -1, -1, -1, -1, -1, -1, 92, 93, 94,
2228 -1, 185, 186, 187, -1, 189, 190, 191, -1, -1,
2229 -1, -1, -1, -1, -1, -1, 111, 112, 113, -1,
2230 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2231 872, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2232 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2233 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2234 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2235 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2236 175, 176, 177, 178, -1, -1, -1, -1, 0, 1,
2237 185, 186, 187, 188, -1, 190, 191, 192, -1, -1,
2238 -1, -1, -1, -1, -1, -1, 18, -1, -1, -1,
2239 -1, -1, 24, -1, -1, -1, -1, -1, 960, -1,
2240 -1, -1, 34, -1, -1, -1, -1, -1, -1, -1,
2241 -1, -1, 44, -1, 46, -1, -1, -1, -1, -1,
2242 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2243 -1, -1, -1, -1, -1, -1, 68, 69, 70, -1,
2244 72, -1, -1, -1, 1006, 77, 78, 79, -1, -1,
2245 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2246 92, 93, 94, -1, -1, -1, -1, -1, -1, -1,
2247 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2248 112, 113, -1, 115, 116, 117, 118, 119, 120, 121,
2249 122, 123, 124, -1, 126, 127, 128, 129, 130, 131,
2250 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2251 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2252 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2253 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2254 172, 173, 174, 175, 176, 177, 178, -1, -1, -1,
2255 -1, -1, -1, 185, 186, 187, 188, 1, 190, 191,
2256 192, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2257 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2258 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2259 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2260 44, -1, 46, 47, 48, 49, -1, -1, -1, -1,
2261 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2262 -1, -1, -1, -1, 68, 69, 70, 71, 72, -1,
2263 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2264 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2265 -1, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2266 -1, -1, -1, -1, -1, -1, 110, 111, 112, 113,
2267 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2268 124, -1, 126, 127, 128, 129, 130, 131, 132, 133,
2269 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2270 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2271 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2272 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2273 174, 175, 176, 177, 178, -1, -1, -1, -1, -1,
2274 -1, 185, 186, 187, 188, 189, 190, 191, 192, 1,
2275 -1, -1, -1, -1, 6, 7, 8, -1, 10, 11,
2276 12, 13, 14, 15, 16, 17, 18, 19, -1, -1,
2277 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2278 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2279 42, 43, 44, -1, -1, 47, 48, 49, -1, -1,
2280 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2281 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
2282 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2283 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2284 -1, -1, -1, -1, 96, 97, 98, 99, 100, 101,
2285 -1, -1, -1, -1, -1, -1, -1, -1, 110, 111,
2286 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2287 122, 123, 124, -1, 126, 127, 128, 129, 130, 131,
2288 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2289 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2290 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2291 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2292 172, 173, 174, 175, 176, 177, 178, -1, -1, -1,
2293 -1, -1, -1, 185, 186, 187, 188, 189, 190, 191,
2294 192, 1, -1, -1, -1, -1, 6, 7, 8, -1,
2295 -1, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2296 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2297 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2298 -1, -1, 42, 43, 44, -1, -1, 47, 48, 49,
2299 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2300 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
2301 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2302 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2303 -1, -1, -1, -1, -1, -1, 96, 97, 98, 99,
2304 100, 101, -1, -1, -1, -1, -1, -1, -1, -1,
2305 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2306 120, 121, 122, 123, 124, -1, 126, 127, 128, 129,
2307 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2308 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2309 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2310 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2311 170, 171, 172, 173, 174, 175, 176, 177, 178, -1,
2312 -1, -1, -1, -1, -1, 185, 186, 187, 188, 189,
2313 190, 191, 192, 1, -1, -1, -1, -1, 6, 7,
2314 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2315 18, 19, 20, 21, 22, 23, 24, -1, 26, -1,
2316 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2317 38, 39, 40, 41, 42, 43, -1, 45, -1, 47,
2318 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2319 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2320 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2321 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2322 -1, -1, -1, -1, -1, -1, -1, -1, 96, 97,
2323 98, 99, 100, 101, -1, -1, -1, -1, 1, -1,
2324 -1, -1, 110, 6, 7, 8, 114, 10, 11, 12,
2325 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2326 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2327 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2328 43, -1, -1, 1, 47, 48, 49, -1, 6, 7,
2329 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2330 18, 19, -1, -1, -1, -1, 24, -1, 71, -1,
2331 -1, 29, 30, 31, 32, 33, 34, 185, 186, 187,
2332 -1, 189, 190, 191, 42, 43, -1, -1, -1, 47,
2333 48, 49, 95, 96, 97, 98, 99, 100, 101, -1,
2334 -1, -1, -1, -1, -1, -1, -1, 110, -1, -1,
2335 -1, 114, -1, 71, -1, -1, -1, -1, -1, -1,
2336 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2337 -1, -1, -1, -1, -1, -1, -1, 95, 96, 97,
2338 98, 99, 100, 101, -1, -1, -1, -1, 1, -1,
2339 -1, -1, 110, 6, 7, 8, 114, -1, 11, 12,
2340 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2341 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2342 33, 34, 185, 186, 187, -1, 189, 190, 191, 42,
2343 43, -1, -1, 1, 47, 48, 49, -1, 6, 7,
2344 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2345 18, 19, 20, -1, -1, -1, 24, -1, 71, -1,
2346 -1, 29, 30, 31, 32, 33, 34, 185, 186, 187,
2347 -1, 189, 190, 191, 42, 43, -1, -1, -1, 47,
2348 48, 49, 95, 96, 97, 98, 99, 100, 101, -1,
2349 -1, -1, -1, -1, -1, -1, -1, 110, -1, -1,
2350 -1, 114, -1, 71, -1, -1, 18, -1, -1, -1,
2351 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2352 32, 33, 34, -1, -1, -1, -1, -1, 96, 97,
2353 98, 99, 100, 101, -1, 47, 48, 49, 1, -1,
2354 -1, -1, 110, 6, 7, 8, 114, -1, 11, 12,
2355 13, 14, 15, 16, 17, 18, 19, 20, -1, 71,
2356 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2357 33, 34, 185, 186, 187, -1, 189, 190, 191, 42,
2358 43, -1, -1, 1, 47, 48, 49, -1, 6, 7,
2359 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2360 18, 19, 114, -1, -1, -1, 24, -1, 71, -1,
2361 -1, 29, 30, 31, 32, 33, 34, 185, 186, 187,
2362 -1, 189, 190, 191, 42, 43, -1, -1, -1, 47,
2363 48, 49, -1, 96, 97, 98, 99, 100, 101, -1,
2364 -1, -1, -1, -1, -1, -1, -1, 110, -1, -1,
2365 -1, 114, -1, 71, -1, -1, -1, -1, -1, -1,
2366 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2367 -1, -1, -1, 185, 186, 187, -1, 189, 96, 97,
2368 98, 99, 100, 101, -1, -1, -1, -1, -1, -1,
2369 -1, -1, 110, 6, 7, 8, 114, 10, 11, 12,
2370 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2371 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2372 33, 34, 185, 186, 187, -1, 189, 190, 191, 42,
2373 43, 44, -1, 46, 47, 48, 49, -1, -1, -1,
2374 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2375 -1, -1, -1, -1, -1, -1, -1, -1, 71, 72,
2376 -1, -1, -1, -1, -1, -1, -1, 185, 186, 187,
2377 -1, 189, 190, 191, -1, -1, -1, -1, -1, -1,
2378 -1, -1, -1, 96, 97, 98, 99, 100, 101, -1,
2379 -1, -1, -1, -1, -1, -1, -1, 110, 111, 112,
2380 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2381 123, 124, -1, 126, 127, 128, 129, 130, 131, 132,
2382 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2383 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2384 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2385 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2386 173, 174, 175, 176, 177, 178, -1, -1, -1, -1,
2387 -1, -1, 185, 186, 187, 188, 189, 190, 191, 192,
2388 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2389 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2390 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2391 -1, -1, -1, -1, -1, -1, 42, 43, 44, -1,
2392 46, 47, 48, 49, -1, -1, -1, -1, -1, -1,
2393 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2394 -1, -1, -1, -1, -1, 71, 72, -1, -1, -1,
2395 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2396 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2397 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
2398 -1, -1, -1, -1, 110, 111, 112, 113, 114, 115,
2399 116, 117, 118, 119, 120, 121, 122, 123, 124, -1,
2400 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2401 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2402 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2403 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2404 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2405 176, 177, 178, -1, -1, -1, -1, -1, -1, 185,
2406 186, 187, 188, 189, 190, 191, 192, 6, 7, 8,
2407 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2408 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2409 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2410 -1, -1, -1, 42, 43, 44, -1, 46, 47, 48,
2411 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2412 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2413 -1, -1, 71, 72, -1, -1, -1, -1, -1, -1,
2414 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2415 -1, -1, -1, -1, -1, -1, -1, 96, 97, 98,
2416 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
2417 -1, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2418 119, 120, 121, 122, 123, 124, -1, 126, 127, 128,
2419 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2420 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2421 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2422 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2423 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2424 -1, -1, -1, -1, -1, -1, 185, 186, 187, 188,
2425 189, 190, 191, 192, 6, 7, 8, -1, 10, 11,
2426 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2427 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2428 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2429 -1, -1, -1, -1, -1, 47, 48, 49, 6, 7,
2430 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2431 18, 19, 20, -1, -1, -1, 24, -1, -1, 71,
2432 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2433 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2434 48, 49, -1, -1, 96, 97, 98, 99, 100, 101,
2435 -1, -1, -1, -1, -1, -1, -1, -1, 110, -1,
2436 -1, -1, 114, 71, -1, -1, -1, -1, -1, -1,
2437 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2438 -1, -1, -1, -1, -1, -1, -1, -1, 96, 97,
2439 98, 99, 100, 101, -1, -1, -1, -1, -1, -1,
2440 -1, -1, 110, 6, 7, 8, 114, 10, 11, 12,
2441 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2442 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2443 33, 34, -1, 185, 186, 187, -1, 189, 190, 191,
2444 -1, -1, -1, -1, 47, 48, 49, 6, 7, 8,
2445 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2446 19, 20, -1, -1, -1, 24, -1, -1, 71, -1,
2447 29, 30, 31, 32, 33, 34, -1, 185, 186, 187,
2448 -1, 189, 190, 191, -1, -1, -1, -1, 47, 48,
2449 49, -1, -1, 96, 97, 98, 99, 100, 101, -1,
2450 -1, -1, -1, -1, -1, -1, -1, 110, -1, -1,
2451 -1, 114, 71, -1, -1, -1, -1, -1, -1, -1,
2452 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2453 -1, -1, -1, -1, -1, -1, -1, 96, 97, 98,
2454 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
2455 -1, 110, 6, 7, 8, 114, 10, 11, 12, 13,
2456 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2457 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2458 34, -1, 185, 186, 187, -1, 189, 190, 191, -1,
2459 -1, -1, -1, 47, 48, 49, 6, 7, 8, -1,
2460 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2461 20, -1, -1, -1, 24, -1, -1, 71, -1, 29,
2462 30, 31, 32, 33, 34, -1, 185, 186, 187, -1,
2463 189, 190, 191, -1, -1, -1, -1, 47, 48, 49,
2464 -1, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2465 -1, -1, -1, -1, -1, -1, 110, -1, -1, -1,
2466 114, 71, -1, -1, 19, -1, -1, -1, -1, 24,
2467 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2468 -1, -1, -1, -1, -1, -1, 96, 97, 98, 99,
2469 100, 101, 47, 48, 49, -1, -1, -1, -1, -1,
2470 110, 6, 7, 8, 114, 10, 11, 12, 13, 14,
2471 15, 16, 17, 18, 19, 20, 71, -1, -1, 24,
2472 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2473 -1, 185, 186, 187, -1, 189, 190, 191, -1, -1,
2474 -1, -1, 47, 48, 49, 6, 7, 8, -1, 10,
2475 11, 12, 13, 14, 15, 16, 17, 18, 19, 114,
2476 -1, -1, -1, 24, -1, -1, 71, -1, 29, 30,
2477 31, 32, 33, 34, -1, 185, 186, 187, -1, 189,
2478 190, 191, -1, -1, -1, -1, 47, 48, 49, -1,
2479 -1, 96, 97, 98, 99, 100, 101, -1, -1, -1,
2480 -1, -1, -1, -1, -1, 110, -1, -1, -1, 114,
2481 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2482 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2483 185, 186, 187, -1, 189, 96, 97, 98, 99, 100,
2484 101, 19, -1, -1, -1, -1, 24, -1, -1, 110,
2485 -1, -1, -1, 114, -1, -1, -1, -1, -1, -1,
2486 -1, -1, -1, -1, -1, -1, 44, -1, 46, -1,
2487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2488 185, 186, 187, -1, 189, 190, 191, -1, -1, -1,
2489 -1, -1, -1, -1, 72, -1, -1, -1, -1, -1,
2490 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2491 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2492 -1, -1, -1, -1, 185, 186, 187, -1, 189, 190,
2493 191, -1, -1, 111, 112, 113, -1, 115, 116, 117,
2494 118, 119, 120, 121, 122, 123, 124, -1, 126, 127,
2495 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2496 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2497 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2498 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2499 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2500 178, 20, -1, -1, -1, -1, -1, -1, -1, 187,
2501 188, -1, -1, -1, 192, -1, -1, -1, -1, -1,
2502 -1, -1, -1, -1, -1, 44, -1, -1, -1, -1,
2503 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2504 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2505 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2506 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2507 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2508 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2509 -1, -1, 111, 112, 113, -1, 115, 116, 117, 118,
2510 119, 120, 121, 122, 123, 124, -1, 126, 127, 128,
2511 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2512 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2513 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2514 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2515 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2516 -1, -1, -1, -1, -1, 19, -1, -1, 187, 188,
2517 24, -1, -1, 192, -1, 29, 30, 31, 32, 33,
2518 34, -1, -1, -1, -1, -1, 19, -1, -1, -1,
2519 -1, 24, -1, 47, 48, 49, 29, 30, 31, 32,
2520 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2521 -1, -1, -1, -1, 47, 48, 49, 71, -1, -1,
2522 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2523 -1, -1, -1, -1, -1, -1, -1, -1, 71, -1,
2524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2526 114, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2527 24, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2528 34, 114, -1, -1, -1, -1, -1, -1, -1, -1,
2529 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2530 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2531 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2532 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2533 -1, 185, 186, 187, -1, 189, -1, -1, -1, -1,
2534 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2535 -1, -1, 185, 186, 187, -1, 189, 111, 112, 113,
2536 -1, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2537 124, -1, 126, 127, 128, 129, 130, 131, 132, 133,
2538 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2539 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2540 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2541 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2542 174, 175, 176, 177, 178, -1, -1, -1, -1, -1,
2543 -1, 185, 186, 187, 188, -1, 190, 191, 192, 24,
2544 25, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2545 24, -1, -1, 27, -1, 29, 30, 31, 32, 33,
2546 34, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2547 -1, -1, -1, 47, 48, 49, -1, -1, -1, -1,
2548 -1, -1, -1, -1, 24, -1, 71, 27, -1, 29,
2549 30, 31, 32, 33, 34, 24, 25, 71, -1, -1,
2550 29, 30, 31, 32, 33, 34, -1, 47, 48, 49,
2551 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2552 49, -1, -1, -1, -1, -1, -1, -1, -1, 114,
2553 -1, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2554 114, -1, 71, 24, 25, -1, -1, -1, 29, 30,
2555 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2556 -1, -1, -1, -1, -1, -1, 47, 48, 49, -1,
2557 -1, 24, -1, -1, 114, -1, 29, 30, 31, 32,
2558 33, 34, -1, -1, -1, 114, -1, -1, -1, -1,
2559 71, -1, -1, -1, 47, 48, 49, -1, -1, -1,
2560 185, 186, 187, -1, 189, -1, -1, -1, -1, -1,
2561 -1, 185, 186, 187, -1, 189, -1, 24, 71, -1,
2562 -1, -1, 29, 30, 31, 32, 33, 34, -1, 24,
2563 -1, -1, -1, 114, 29, 30, 31, 32, 33, 34,
2564 47, 48, 49, -1, -1, 185, 186, 187, -1, 189,
2565 -1, -1, 47, 48, 49, -1, 185, 186, 187, -1,
2566 189, 114, 24, -1, 71, -1, -1, 29, 30, 31,
2567 32, 33, 34, 24, -1, -1, 71, -1, 29, 30,
2568 31, 32, 33, 34, -1, 47, 48, 49, -1, -1,
2569 -1, -1, -1, -1, -1, -1, 47, 48, 49, -1,
2570 -1, -1, -1, -1, 185, 186, 187, 114, 189, 71,
2571 -1, -1, -1, -1, -1, -1, -1, -1, -1, 114,
2572 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2573 -1, -1, 185, 186, 187, -1, 189, -1, -1, -1,
2574 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2575 -1, -1, 114, -1, -1, -1, -1, -1, -1, -1,
2576 -1, -1, -1, 114, -1, -1, -1, -1, -1, -1,
2577 42, 43, 44, -1, -1, -1, -1, -1, 185, 186,
2578 187, -1, 189, -1, -1, -1, -1, -1, -1, -1,
2579 185, 186, 187, -1, 189, -1, -1, -1, -1, -1,
2580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2581 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2582 -1, -1, -1, 185, 186, 187, -1, 189, -1, -1,
2583 -1, -1, -1, -1, 185, 186, 187, -1, 189, 111,
2584 112, 113, -1, 115, 116, 117, 118, 119, 120, 121,
2585 122, 123, 124, -1, 126, 127, 128, 129, 130, 131,
2586 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2587 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2588 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2589 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2590 172, 173, 174, 175, 176, 177, 178, 44, -1, 46,
2591 -1, -1, -1, -1, -1, 187, 188, -1, -1, -1,
2592 192, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2593 -1, 68, 69, 70, -1, 72, -1, -1, -1, -1,
2594 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2596 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2597 -1, -1, -1, -1, 111, 112, 113, -1, 115, 116,
2598 117, 118, 119, 120, 121, 122, 123, 124, -1, 126,
2599 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2600 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2601 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2602 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2603 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2604 177, 178, 44, -1, 46, -1, -1, -1, -1, -1,
2605 187, 188, -1, -1, -1, 192, -1, -1, -1, -1,
2606 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2607 72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2609 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2610 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2611 112, 113, -1, 115, 116, 117, 118, 119, 120, 121,
2612 122, 123, 124, -1, 126, 127, 128, 129, 130, 131,
2613 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2614 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2615 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2616 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2617 172, 173, 174, 175, 176, 177, 178, 44, -1, -1,
2618 -1, -1, -1, 185, 186, 187, 188, -1, -1, -1,
2619 192, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2620 -1, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2621 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2624 -1, -1, -1, -1, 111, 112, 113, -1, 115, 116,
2625 117, 118, 119, 120, 121, 122, 123, 124, -1, 126,
2626 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2627 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2628 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2629 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2630 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2631 177, 178, 44, -1, -1, -1, -1, -1, -1, -1,
2632 187, 188, -1, -1, -1, 192, -1, -1, -1, -1,
2633 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2635 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2636 92, 93, 94, -1, -1, -1, -1, -1, -1, -1,
2637 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2638 112, 113, -1, 115, 116, 117, 118, 119, 120, 121,
2639 122, 123, 124, -1, 126, 127, 128, 129, 130, 131,
2640 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2641 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2642 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2643 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2644 172, 173, 174, 175, 176, 177, 178, 44, -1, 46,
2645 -1, -1, -1, -1, -1, 187, 188, -1, -1, -1,
2646 192, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2647 -1, -1, -1, -1, -1, 72, -1, -1, -1, -1,
2648 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2649 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2650 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2651 -1, -1, -1, -1, 111, 112, 113, -1, 115, 116,
2652 117, 118, 119, 120, 121, 122, 123, 124, -1, 126,
2653 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2654 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2655 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2656 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2657 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2658 177, 178, 44, -1, -1, -1, -1, -1, -1, -1,
2659 187, 188, -1, -1, -1, 192, -1, -1, -1, -1,
2660 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2662 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2663 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2664 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2665 112, 113, -1, 115, 116, 117, 118, 119, 120, 121,
2666 122, 123, 124, -1, 126, 127, 128, 129, 130, 131,
2667 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2668 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2669 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2670 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2671 172, 173, 174, 175, 176, 177, 178, -1, -1, -1,
2672 -1, -1, -1, -1, -1, 187, 188, -1, -1, -1,
2675 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2677 /* This file comes from bison-1.28. */
2679 /* Skeleton output parser for bison,
2680 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2682 This program is free software; you can redistribute it and/or modify
2683 it under the terms of the GNU General Public License as published by
2684 the Free Software Foundation; either version 2, or (at your option)
2687 This program is distributed in the hope that it will be useful,
2688 but WITHOUT ANY WARRANTY; without even the implied warranty of
2689 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2690 GNU General Public License for more details.
2692 You should have received a copy of the GNU General Public License
2693 along with this program; if not, write to the Free Software
2694 Foundation, Inc., 59 Temple Place - Suite 330,
2695 Boston, MA 02111-1307, USA. */
2697 /* As a special exception, when this file is copied by Bison into a
2698 Bison output file, you may use that output file without restriction.
2699 This special exception was added by the Free Software Foundation
2700 in version 1.24 of Bison. */
2702 /* This is the parser code that is written into each bison parser
2703 when the %semantic_parser declaration is not specified in the grammar.
2704 It was written by Richard Stallman by simplifying the hairy parser
2705 used when %semantic_parser is specified. */
2707 #ifndef YYSTACK_USE_ALLOCA
2709 #define YYSTACK_USE_ALLOCA
2710 #else /* alloca not defined */
2712 #define YYSTACK_USE_ALLOCA
2713 #define alloca __builtin_alloca
2714 #else /* not GNU C. */
2715 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2716 #define YYSTACK_USE_ALLOCA
2718 #else /* not sparc */
2719 /* We think this test detects Watcom and Microsoft C. */
2720 /* This used to test MSDOS, but that is a bad idea
2721 since that symbol is in the user namespace. */
2722 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2723 #if 0 /* No need for malloc.h, which pollutes the namespace;
2724 instead, just don't use alloca. */
2727 #else /* not MSDOS, or __TURBOC__ */
2729 /* I don't know what this was needed for, but it pollutes the namespace.
2730 So I turned it off. rms, 2 May 1997. */
2731 /* #include <malloc.h> */
2733 #define YYSTACK_USE_ALLOCA
2734 #else /* not MSDOS, or __TURBOC__, or _AIX */
2736 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
2737 and on HPUX 10. Eventually we can turn this on. */
2738 #define YYSTACK_USE_ALLOCA
2739 #define alloca __builtin_alloca
2742 #endif /* not _AIX */
2743 #endif /* not MSDOS, or __TURBOC__ */
2744 #endif /* not sparc */
2745 #endif /* not GNU C */
2746 #endif /* alloca not defined */
2747 #endif /* YYSTACK_USE_ALLOCA not defined */
2749 #ifdef YYSTACK_USE_ALLOCA
2750 #define YYSTACK_ALLOC alloca
2752 #define YYSTACK_ALLOC malloc
2755 /* Note: there must be only one dollar sign in this file.
2756 It is replaced by the list of actions, each action
2757 as one case of the switch. */
2759 #define yyerrok (yyerrstatus = 0)
2760 #define yyclearin (yychar = YYEMPTY)
2763 #define YYACCEPT goto yyacceptlab
2764 #define YYABORT goto yyabortlab
2765 #define YYERROR goto yyerrlab1
2766 /* Like YYERROR except do call yyerror.
2767 This remains here temporarily to ease the
2768 transition to the new meaning of YYERROR, for GCC.
2769 Once GCC version 2 has supplanted version 1, this can go. */
2770 #define YYFAIL goto yyerrlab
2771 #define YYRECOVERING() (!!yyerrstatus)
2772 #define YYBACKUP(token, value) \
2774 if (yychar == YYEMPTY && yylen == 1) \
2775 { yychar = (token), yylval = (value); \
2776 yychar1 = YYTRANSLATE (yychar); \
2781 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2785 #define YYERRCODE 256
2788 #define YYLEX yylex()
2794 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2796 #define YYLEX yylex(&yylval, &yylloc)
2798 #else /* not YYLSP_NEEDED */
2800 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2802 #define YYLEX yylex(&yylval)
2804 #endif /* not YYLSP_NEEDED */
2807 /* If nonreentrant, generate the variables here */
2811 int yychar; /* the lookahead symbol */
2812 YYSTYPE yylval; /* the semantic value of the */
2813 /* lookahead symbol */
2816 YYLTYPE yylloc; /* location data for the lookahead */
2820 int yynerrs; /* number of parse errors so far */
2821 #endif /* not YYPURE */
2824 int yydebug; /* nonzero means print parse trace */
2825 /* Since this is uninitialized, it does not stop multiple parsers
2829 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2832 #define YYINITDEPTH 200
2835 /* YYMAXDEPTH is the maximum size the stacks can grow to
2836 (effective only if the built-in stack extension method is used). */
2843 #define YYMAXDEPTH 10000
2846 /* Define __yy_memcpy. Note that the size argument
2847 should be passed with type unsigned int, because that is what the non-GCC
2848 definitions require. With GCC, __builtin_memcpy takes an arg
2849 of type size_t, but it can handle unsigned int. */
2851 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2852 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2853 #else /* not GNU C or C++ */
2856 /* This is the most reliable way to avoid incompatibilities
2857 in available built-in functions on various systems. */
2859 __yy_memcpy (to, from, count)
2864 register char *f = from;
2865 register char *t = to;
2866 register int i = count;
2872 #else /* __cplusplus */
2874 /* This is the most reliable way to avoid incompatibilities
2875 in available built-in functions on various systems. */
2877 __yy_memcpy (char *to, char *from, unsigned int count)
2879 register char *t = to;
2880 register char *f = from;
2881 register int i = count;
2892 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2893 into yyparse. The argument should have type void *.
2894 It should actually point to an object.
2895 Grammar actions can access the variable by casting it
2896 to the proper pointer type. */
2898 #ifdef YYPARSE_PARAM
2900 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2901 #define YYPARSE_PARAM_DECL
2902 #else /* not __cplusplus */
2903 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2904 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2905 #endif /* not __cplusplus */
2906 #else /* not YYPARSE_PARAM */
2907 #define YYPARSE_PARAM_ARG
2908 #define YYPARSE_PARAM_DECL
2909 #endif /* not YYPARSE_PARAM */
2911 /* Prevent warning if -Wstrict-prototypes. */
2913 #ifdef YYPARSE_PARAM
2914 int yyparse (void *);
2921 yyparse(YYPARSE_PARAM_ARG)
2924 register int yystate;
2926 register short *yyssp;
2927 register YYSTYPE *yyvsp;
2928 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2929 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2931 short yyssa[YYINITDEPTH]; /* the state stack */
2932 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2934 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2935 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2938 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2939 YYLTYPE *yyls = yylsa;
2942 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2944 #define YYPOPSTACK (yyvsp--, yyssp--)
2947 int yystacksize = YYINITDEPTH;
2948 int yyfree_stacks = 0;
2959 YYSTYPE yyval; /* the variable used to return */
2960 /* semantic values from the action */
2967 fprintf(stderr, "Starting parse\n");
2973 yychar = YYEMPTY; /* Cause a token to be read. */
2975 /* Initialize stack pointers.
2976 Waste one element of value and location stack
2977 so that they stay on the same level as the state stack.
2978 The wasted elements are never initialized. */
2986 /* Push a new state, which is found in yystate . */
2987 /* In all cases, when you get here, the value and location stacks
2988 have just been pushed. so pushing a state here evens the stacks. */
2993 if (yyssp >= yyss + yystacksize - 1)
2995 /* Give user a chance to reallocate the stack */
2996 /* Use copies of these so that the &'s don't force the real ones into memory. */
2997 YYSTYPE *yyvs1 = yyvs;
2998 short *yyss1 = yyss;
3000 YYLTYPE *yyls1 = yyls;
3003 /* Get the current used size of the three stacks, in elements. */
3004 int size = yyssp - yyss + 1;
3007 /* Each stack pointer address is followed by the size of
3008 the data in use in that stack, in bytes. */
3010 /* This used to be a conditional around just the two extra args,
3011 but that might be undefined if yyoverflow is a macro. */
3012 yyoverflow("parser stack overflow",
3013 &yyss1, size * sizeof (*yyssp),
3014 &yyvs1, size * sizeof (*yyvsp),
3015 &yyls1, size * sizeof (*yylsp),
3018 yyoverflow("parser stack overflow",
3019 &yyss1, size * sizeof (*yyssp),
3020 &yyvs1, size * sizeof (*yyvsp),
3024 yyss = yyss1; yyvs = yyvs1;
3028 #else /* no yyoverflow */
3029 /* Extend the stack our own way. */
3030 if (yystacksize >= YYMAXDEPTH)
3032 yyerror("parser stack overflow");
3044 if (yystacksize > YYMAXDEPTH)
3045 yystacksize = YYMAXDEPTH;
3046 #ifndef YYSTACK_USE_ALLOCA
3049 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
3050 __yy_memcpy ((char *)yyss, (char *)yyss1,
3051 size * (unsigned int) sizeof (*yyssp));
3052 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
3053 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
3054 size * (unsigned int) sizeof (*yyvsp));
3056 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
3057 __yy_memcpy ((char *)yyls, (char *)yyls1,
3058 size * (unsigned int) sizeof (*yylsp));
3060 #endif /* no yyoverflow */
3062 yyssp = yyss + size - 1;
3063 yyvsp = yyvs + size - 1;
3065 yylsp = yyls + size - 1;
3070 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3073 if (yyssp >= yyss + yystacksize - 1)
3079 fprintf(stderr, "Entering state %d\n", yystate);
3085 /* Do appropriate processing given the current state. */
3086 /* Read a lookahead token if we need one and don't already have one. */
3089 /* First try to decide what to do without reference to lookahead token. */
3091 yyn = yypact[yystate];
3095 /* Not known => get a lookahead token if don't already have one. */
3097 /* yychar is either YYEMPTY or YYEOF
3098 or a valid token in external form. */
3100 if (yychar == YYEMPTY)
3104 fprintf(stderr, "Reading a token: ");
3109 /* Convert token to internal form (in yychar1) for indexing tables with */
3111 if (yychar <= 0) /* This means end of input. */
3114 yychar = YYEOF; /* Don't call YYLEX any more */
3118 fprintf(stderr, "Now at end of input.\n");
3123 yychar1 = YYTRANSLATE(yychar);
3128 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3129 /* Give the individual parser a way to print the precise meaning
3130 of a token, for further debugging info. */
3132 YYPRINT (stderr, yychar, yylval);
3134 fprintf (stderr, ")\n");
3140 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3145 /* yyn is what to do for this token type in this state.
3146 Negative => reduce, -yyn is rule number.
3147 Positive => shift, yyn is new state.
3148 New state is final state => don't bother to shift,
3149 just return success.
3150 0, or most negative number => error. */
3165 /* Shift the lookahead token. */
3169 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3172 /* Discard the token being shifted unless it is eof. */
3173 if (yychar != YYEOF)
3181 /* count tokens shifted since error; after three, turn off error status. */
3182 if (yyerrstatus) yyerrstatus--;
3187 /* Do the default action for the current state. */
3190 yyn = yydefact[yystate];
3194 /* Do a reduction. yyn is the number of a rule to reduce with. */
3198 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3205 fprintf (stderr, "Reducing via rule %d (line %d), ",
3208 /* Print the symbols being reduced, and their result. */
3209 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3210 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3211 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3219 { context_checkGlobalScope (); ;
3222 { context_checkGlobalScope (); ;
3225 { uentry_clearDecl (); ;
3228 { uentry_clearDecl (); ;
3231 { uentry_clearDecl (); ;
3234 { uentry_clearDecl (); ;
3237 { uentry_clearDecl (); ;
3240 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3243 { uentry_clearDecl (); /* evans 2002-02-08: okay to have a null statement */ ;
3246 { uentry_clearDecl (); ;
3249 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3252 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3255 { context_enterFunctionHeader (); ;
3259 declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3260 context_exitFunctionHeader ();
3265 qtype qint = qtype_create (ctype_int);
3266 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3271 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3274 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3277 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3280 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3283 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3287 exprNode_findValue (yyvsp[-2].expr);
3288 idDecl_notExpectingFunction (yyvsp[-5].ntyp);
3290 if (exprNode_hasValue (yyvsp[-2].expr))
3292 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp),
3293 exprNode_getLongValue (yyvsp[-2].expr)));
3297 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-5].ntyp)));
3302 { setCurrentParams (uentryList_missingParams); ;
3305 { /* need to support globals and modifies here! */
3306 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3307 uentryList_makeMissingParams ());
3309 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3310 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3312 /*drl 7/25/01 added*/
3313 setImplictfcnConstraints();
3317 { setCurrentParams (yyvsp[-1].entrylist); ;
3320 { setImplictfcnConstraints ();
3321 clearCurrentParams ();
3322 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3323 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3328 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3331 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3334 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3340 if (exprNode_hasValue (yyvsp[-2].expr)
3341 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3343 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3350 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3354 { setCurrentParams (uentryList_missingParams); ;
3358 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3359 uentryList_makeMissingParams ());
3361 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3362 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3367 { setCurrentParams (yyvsp[-1].entrylist); ;
3371 clearCurrentParams ();
3372 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3373 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3378 { setCurrentParams (yyvsp[-1].entrylist); ;
3381 { clearCurrentParams (); ;
3384 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3387 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3390 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3393 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3396 { exprChecks_checkEmptyMacroBody (); ;
3399 { clabstract_declareFunction (yyvsp[0].ntyp); ;
3402 { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3405 { cscanner_expectingMetaStateName (); ;
3408 { cscanner_clearExpectingMetaStateName ();
3409 yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo); ;
3412 { cscanner_expectingMetaStateName (); ;
3415 { cscanner_clearExpectingMetaStateName ();
3416 yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo); ;
3419 { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
3422 { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3425 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3428 { yyval.conL = constraintList_single (yyvsp[0].con); ;
3432 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3433 DPRINTF(("Done BufConstraint1\n")); ;
3436 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3440 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3441 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3444 { yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
3447 { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
3450 { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
3453 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3456 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3462 t = cstring_toCharsSafe (exprNode_unparse($3));
3465 yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3469 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3472 { yyval.sr = yyvsp[-1].sr; ;
3475 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3478 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3481 { yyval.funcclauselist = functionClauseList_new (); ;
3484 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3487 { yyval.funcclauselist = functionClauseList_new (); ;
3490 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3493 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3496 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3499 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3502 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3505 { yyval.funcclause = yyvsp[0].funcclause; ;
3508 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3511 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3514 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3517 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3520 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3523 { yyval.funcclause = yyvsp[0].funcclause; ;
3526 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3529 { yyval.globsclause = yyvsp[-1].globsclause; ;
3532 { setProcessingGlobalsList (); ;
3536 unsetProcessingGlobals ();
3537 yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
3541 { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
3544 { yyval.modsclause = yyvsp[-1].modsclause; ;
3548 context_setProtectVars (); enterParamsTemp ();
3549 sRef_setGlobalScopeSafe ();
3555 sRef_clearGlobalScopeSafe ();
3556 context_releaseVars ();
3557 yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3561 { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
3564 { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
3567 { yyval.warnclause = warnClause_undefined; ;
3570 { yyval.warnclause = yyvsp[-1].warnclause; ;
3574 llassert (exprNode_knownStringValue (yyvsp[0].expr));
3575 yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
3576 exprNode_free (yyvsp[0].expr);
3580 { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
3583 { yyval.globset = globSet_single (yyvsp[0].sr); ;
3586 { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3589 { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3592 { yyval.tquallist = qualList_undefined; ;
3595 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3598 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3601 { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3604 { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3607 { yyval.typequal = qual_createUndef (); ;
3610 { yyval.typequal = qual_createKilled (); ;
3613 { yyval.typequal = qual_createOut (); ;
3616 { yyval.typequal = qual_createIn (); ;
3619 { yyval.typequal = qual_createPartial (); ;
3623 /**!!! deal with fred; fred (int); declarations! **/
3624 qtype qint = qtype_create (ctype_int);
3625 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3630 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3633 { checkDoneParams (); context_enterInnerContext (); ;
3637 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3638 context_exitInner (yyvsp[0].expr);
3642 { context_enterOldStyleScope (); ;
3645 { oldStyleDoneParams (); context_enterInnerContext (); ;
3649 exprNode_checkFunctionBody (yyvsp[0].expr);
3650 yyval.expr = yyvsp[0].expr; /* oldstyle */
3651 context_exitInner (yyvsp[0].expr);
3656 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3657 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3660 context_exitFunction ();
3664 { yyval.srset = yyvsp[-1].srset; ;
3667 { yyval.srset = sRefSet_new (); ;
3670 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3673 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3676 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3679 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3682 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3685 { yyval.sr = yyvsp[-1].sr; ;
3688 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3691 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3694 { yyval.sr = yyvsp[0].sr; ;
3697 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3700 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3703 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3706 { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
3709 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3712 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3715 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3718 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3721 { yyval.sr = yyvsp[-1].sr; ;
3724 { cstring_markOwned (yyvsp[0].cname);
3725 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3728 { cstring_markOwned (yyvsp[0].cname);
3729 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3732 { yyval.srset = sRefSet_undefined ;
3735 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3736 else { yyval.srset = sRefSet_undefined; }
3740 { if (sRef_isValid (yyvsp[0].sr))
3742 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3746 yyval.srset = yyvsp[-2].srset;
3751 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3754 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3757 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3760 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3763 { yyval.expr = exprNode_makeError (); ;
3766 { exprChecks_inCompoundStatementExpression (); ;
3769 { exprChecks_leaveCompoundStatementExpression (); yyval.expr = exprNode_compoundStatementExpression (yyvsp[-3].tok, yyvsp[-1].expr); ;
3772 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3775 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3778 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
3781 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3784 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3787 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3790 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3793 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3796 { /* added for C99 */ yyval.expr = exprNode_undefined; /*@i87 no checking */ ;
3799 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3802 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
3805 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3808 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3811 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3814 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3817 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3820 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3823 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3826 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3829 { yyval.expr = yyvsp[0].expr; ;
3832 { yyval.expr = yyvsp[0].expr; ;
3835 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3838 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3841 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3844 { context_setProtectVars (); ;
3847 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3850 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3853 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3856 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3859 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3862 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3865 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3868 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3871 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3874 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3877 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3880 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3883 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3886 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3889 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3892 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3895 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3898 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3901 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3904 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3907 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3910 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3913 { exprNode_produceGuards (yyvsp[-1].expr);
3914 context_enterAndClause (yyvsp[-1].expr);
3919 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3920 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3925 exprNode_produceGuards (yyvsp[-1].expr);
3926 context_enterOrClause (yyvsp[-1].expr);
3931 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3932 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3936 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3939 { context_enterFalseClause (yyvsp[-4].expr); ;
3942 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3945 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3948 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3951 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3954 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3957 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3960 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3963 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3966 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3969 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3972 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3975 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3978 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
3981 { yyval.expr = exprNode_undefined; ;
3984 { yyval.expr = yyvsp[0].expr; ;
3987 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
3990 { yyval.expr = exprNode_makeError (); ;
3993 { yyval.expr = exprNode_makeError (); ;
3997 setProcessingVars (yyvsp[-3].qtyp);
3998 processNamedDecl (yyvsp[-1].ntyp);
4003 unsetProcessingVars ();
4004 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
4005 DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
4009 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
4012 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4013 unsetProcessingVars ();
4018 processNamedDecl (yyvsp[-1].ntyp);
4019 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
4023 { processNamedDecl (yyvsp[-2].ntyp); ;
4026 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4029 { setProcessingTypedef (yyvsp[0].qtyp); ;
4032 { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
4035 { /* in the ANSI grammar, semantics unclear */ ;
4038 { /* in the ANSI grammar, semantics unclear */ ;
4041 { g_expectingTypeName = TRUE; ;
4044 { g_expectingTypeName = TRUE; context_pushLoc (); ;
4047 { yyval.exprlist = yyvsp[-1].exprlist; ;
4050 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4053 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4056 { yyval.expr = exprNode_makeError (); ;
4059 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4062 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); ;
4065 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); ;
4068 { yyval.expr = exprNode_undefined; ;
4071 { yyval.expr = yyvsp[-1].expr; ;
4074 { yyval.expr = exprNode_undefined;
4075 /* gcc extension, obsolete since 2.5 */ ;
4078 { yyval.expr = exprNode_undefined; ;
4081 { yyval.expr = exprNode_undefined; ;
4084 { yyval.expr = exprNode_undefined; ;
4087 { yyval.expr = exprNode_undefined; ;
4090 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4093 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4096 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4099 { yyval.typequal = qual_createInline (); ;
4102 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4105 { yyval.typequal = qual_createAuto (); ;
4108 { yyval.typequal = qual_createRegister (); ;
4111 { yyval.stateclause = yyvsp[-1].stateclause; ;
4115 context_setProtectVars ();
4117 sRef_setGlobalScopeSafe ();
4123 sRef_clearGlobalScopeSafe ();
4124 context_releaseVars ();
4125 yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4129 { yyval.funcclause = yyvsp[-1].funcclause; ;
4132 { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
4136 context_exitFunctionHeader ();
4137 context_setProtectVars ();
4139 sRef_setGlobalScopeSafe ();
4145 sRef_clearGlobalScopeSafe ();
4146 context_releaseVars ();
4147 yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4152 context_setProtectVars ();
4154 sRef_setGlobalScopeSafe ();
4159 context_exitFunctionHeader ();
4161 sRef_clearGlobalScopeSafe ();
4162 context_releaseVars ();
4163 DPRINTF (("done optGlobBufConstraintsAux\n"));
4165 if (lltok_isEnsures (yyvsp[-4].tok))
4167 yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4169 else if (lltok_isRequires (yyvsp[-4].tok))
4171 yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4178 DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4182 { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
4185 { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
4188 { yyval.typequal = qual_createExits (); ;
4191 { yyval.typequal = qual_createMayExit (); ;
4194 { yyval.typequal = qual_createTrueExit (); ;
4197 { yyval.typequal = qual_createFalseExit (); ;
4200 { yyval.typequal = qual_createNeverExit (); ;
4203 { yyval.typequal = qual_createChecked (); ;
4206 { yyval.typequal = qual_createCheckMod (); ;
4209 { yyval.typequal = qual_createUnchecked (); ;
4212 { yyval.typequal = qual_createCheckedStrict (); ;
4215 { yyval.typequal = qual_createOwned (); ;
4218 { yyval.typequal = qual_createDependent (); ;
4221 { yyval.typequal = qual_createYield (); ;
4224 { yyval.typequal = qual_createTemp (); ;
4227 { yyval.typequal = qual_createOnly (); ;
4230 { yyval.typequal = qual_createKeep (); ;
4233 { yyval.typequal = qual_createKept (); ;
4236 { yyval.typequal = qual_createShared (); ;
4239 { yyval.typequal = qual_createUnique (); ;
4242 { yyval.typequal = qual_createNull (); ;
4245 { yyval.typequal = qual_createIsNull (); ;
4248 { yyval.typequal = qual_createRelNull (); ;
4251 { yyval.typequal = qual_createNotNull (); ;
4254 { yyval.typequal = qual_createExposed (); ;
4257 { yyval.typequal = qual_createObserver (); ;
4260 { yyval.typequal = qual_createNullTerminated (); ;
4263 { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
4266 { yyval.typequal = qual_createReturned (); ;
4269 { yyval.typequal = qual_createSef (); ;
4272 { yyval.typequal = qual_createUnused (); ;
4275 { yyval.typequal = qual_createExternal (); ;
4278 { yyval.typequal = qual_createTrueNull (); ;
4281 { yyval.typequal = qual_createFalseNull (); ;
4284 { yyval.typequal = qual_createAbstract (); ;
4287 { yyval.typequal = qual_createConcrete (); ;
4290 { yyval.typequal = qual_createMutable (); ;
4293 { yyval.typequal = qual_createImmutable (); ;
4296 { yyval.typequal = qual_createRefCounted (); ;
4299 { yyval.typequal = qual_createRefs (); ;
4302 { yyval.typequal = qual_createKillRef (); ;
4305 { yyval.typequal = qual_createRelDef (); ;
4308 { yyval.typequal = qual_createNewRef (); ;
4311 { yyval.typequal = qual_createTempRef (); ;
4314 { yyval.typequal = qual_createShort (); ;
4317 { yyval.typequal = qual_createLong (); ;
4320 { yyval.typequal = qual_createSigned (); ;
4323 { yyval.typequal = qual_createUnsigned (); ;
4326 { yyval.typequal = qual_createOut (); ;
4329 { yyval.typequal = qual_createIn (); ;
4332 { yyval.typequal = qual_createPartial (); ;
4335 { yyval.typequal = qual_createSpecial (); ;
4338 { yyval.typequal = qual_createConst (); ;
4341 { yyval.typequal = qual_createVolatile (); ;
4344 { yyval.typequal = yyvsp[-1].typequal; ;
4347 { yyval.typequal = yyvsp[-1].typequal; ;
4350 { yyval.typequal = yyvsp[-1].typequal; ;
4353 { yyval.typequal = yyvsp[-1].typequal; ;
4356 { yyval.typequal = yyvsp[-1].typequal; ;
4359 { yyval.typequal = yyvsp[-1].typequal; ;
4362 { yyval.typequal = yyvsp[-1].typequal; ;
4365 { yyval.typequal = yyvsp[-1].typequal; ;
4368 { yyval.typequal = yyvsp[-1].typequal; ;
4371 { yyval.ctyp = ctype_makeAnytype (); ;
4374 { yyval.ctyp = ctype_anyintegral; ;
4377 { yyval.ctyp = ctype_unsignedintegral; ;
4380 { yyval.ctyp = ctype_signedintegral; ;
4383 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4386 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4389 { yyval.qtyp = yyvsp[0].qtyp; ;
4392 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4395 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4398 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4401 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4404 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4407 { yyval.qtyp = qtype_unknown (); ;
4410 { yyval.qtyp = yyvsp[0].qtyp; ;
4413 { yyval.conL = constraintList_undefined; ;
4416 { sRef_setGlobalScopeSafe (); ;
4419 { sRef_clearGlobalScopeSafe (); ;
4422 { ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); /* setGlobalStructInfo(ct, $12);*/ yyval.ctyp = ct; ;
4425 { sRef_setGlobalScopeSafe (); ;
4428 { sRef_clearGlobalScopeSafe (); ;
4431 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4434 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4437 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4440 { sRef_setGlobalScopeSafe (); ;
4443 { sRef_clearGlobalScopeSafe (); ;
4446 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4449 { sRef_setGlobalScopeSafe (); ;
4452 { sRef_clearGlobalScopeSafe (); ;
4455 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4458 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4461 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4464 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4467 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4470 { g_expectingTypeName = FALSE; ;
4473 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4476 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4479 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4482 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4485 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4488 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4491 { yyval.ntyp = yyvsp[0].ntyp; ;
4494 { yyval.ntyp = idDecl_undefined; ;
4497 { yyval.ntyp = yyvsp[-3].ntyp; ;
4500 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4503 { context_pushLoc (); ;
4506 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4509 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4512 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4515 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4518 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4519 usymtab_supGlobalEntry (ue);
4520 yyval.cname = yyvsp[0].cname;
4524 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4525 usymtab_supGlobalEntry (ue);
4526 yyval.cname = yyvsp[-3].cname;
4530 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4534 qtype qt = qtype_unknown ();
4536 qtype_adjustPointers (yyvsp[-1].count, qt);
4537 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4541 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4544 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4547 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4550 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4553 { /* ignored for now */; ;
4565 { yyval.count = 1; ;
4568 { yyval.count = 1; ;
4571 { yyval.count = 1 + yyvsp[0].count; ;
4574 { yyval.count = 1 + yyvsp[0].count; ;
4577 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4580 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4583 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4586 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4589 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4595 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4601 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4605 if (isFlipOldStyle ())
4607 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4613 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4618 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4622 llparseerror (message ("Inconsistent function parameter syntax: %q",
4623 idDecl_unparse (tparam)));
4627 yyval.oentry = makeCurrentParam (tparam);
4628 idDecl_free (tparam);
4632 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4635 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4638 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4641 { yyval.ctyp = ctype_unknown; ;
4644 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4647 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4650 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4653 { yyval.ctyp = ctype_makeInnerArray (yyvsp[-2].ctyp); ;
4656 { yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4659 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4662 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4665 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4668 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4671 { yyval.expr = yyvsp[0].expr; ;
4674 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4677 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4680 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4683 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4686 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4689 { context_setProtectVars (); ;
4692 { context_sizeofReleaseVars (); ;
4695 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4696 context_enterForClause (yyvsp[-5].expr); ;
4699 { setProcessingIterVars (yyvsp[-2].entry); ;
4702 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
4705 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4708 { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
4711 { yyval.expr = yyvsp[-1].expr; ;
4714 { yyval.expr = exprNode_makeError (); ;
4717 { exprNode_checkIfPred (yyvsp[0].expr); ;
4720 { /* don't: context_exitTrueClause ($1, $2); */
4721 yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr);
4725 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4728 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4731 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4734 { yyval.expr = exprNode_makeError (); ;
4737 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4740 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4749 { context_enterCaseClause (yyvsp[0].expr); ;
4752 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4755 { context_enterCaseClause (yyvsp[0].expr); ;
4758 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4761 { context_enterCaseClause (exprNode_undefined); ;
4764 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4767 { context_enterCaseClause (exprNode_undefined); ;
4770 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4773 { yyval.expr = yyvsp[-1].expr; ;
4776 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4779 { yyval.expr = yyvsp[-1].expr; ;
4782 { context_enterInnerContext (); ;
4785 { context_exitInnerPlain (); ;
4788 { context_enterStructInnerContext (); ;
4791 { context_exitStructInnerContext (); ;
4794 { context_exitInnerSafe (); ;
4797 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4800 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4803 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4806 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4809 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4812 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4815 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4818 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4819 lltok_getLoc (yyvsp[-1].tok)));
4823 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4826 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4829 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4832 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4835 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4838 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4841 { yyval.expr = yyvsp[0].expr; ;
4844 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4847 { yyval.expr = yyvsp[0].expr; ;
4850 { yyval.expr = exprNode_concat (yyvsp[-2].expr, yyvsp[0].expr); ;
4853 { yyval.expr = yyvsp[0].expr; ;
4856 { yyval.expr = yyvsp[-2].expr; ;
4859 { yyval.expr = yyvsp[0].expr; ;
4862 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4865 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4868 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4871 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4874 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4877 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
4881 exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr);
4882 exprNode_checkIfPred (yyvsp[-1].expr);
4883 yyval.expr = yyvsp[-1].expr;
4888 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4889 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4893 { context_enterFalseClause (yyvsp[-2].expr); ;
4897 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4898 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4902 { context_enterSwitch (yyvsp[0].expr); ;
4905 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4908 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4911 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4914 { context_enterIterClause (); ;
4917 { setProcessingIterVars (yyvsp[-3].entry); ;
4921 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
4926 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4929 { nextIterParam (); ;
4932 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4935 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4938 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4941 { uentry ue = coerceIterId (yyvsp[0].cname);
4943 if (uentry_isValid (ue))
4945 yyval.expr = exprNode_iterId (ue);
4949 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
4954 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
4957 { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
4960 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4963 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4966 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4969 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
4972 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4975 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4978 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4981 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4984 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4987 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4990 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4993 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4996 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4999 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5002 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5005 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5008 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5011 { yyval.expr = yyvsp[0].expr; ;
5014 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
5017 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5020 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5023 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5026 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5029 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5032 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5035 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5038 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5041 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5044 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5047 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5050 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5053 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5056 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5059 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5062 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5065 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5068 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5071 { context_enterTrueClause (yyvsp[-1].expr); ;
5074 { context_enterFalseClause (yyvsp[-4].expr); ;
5077 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5080 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5083 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5086 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5089 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5092 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5095 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5098 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5101 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5104 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5107 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5110 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5113 { yyval.entry = yyvsp[0].entry; ;
5116 { yyval.entry = uentry_undefined; ;
5119 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5122 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5125 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5128 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5131 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5134 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5137 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5140 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5143 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5146 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5149 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5152 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5155 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5158 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5161 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5164 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5167 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5170 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5179 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5182 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5185 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5188 { yyval.cname = yyvsp[0].cname; ;
5191 { yyval.ctyp = ctype_unknown; ;
5194 { yyval.ctyp = exprNode_getType (yyvsp[-1].expr); exprNode_free (yyvsp[-1].expr); ;
5197 { yyval.ctyp = qtype_getType (yyvsp[-1].qtyp); ;
5200 /* the action file gets copied in in place of this dollarsign */
5212 short *ssp1 = yyss - 1;
5213 fprintf (stderr, "state stack now");
5214 while (ssp1 != yyssp)
5215 fprintf (stderr, " %d", *++ssp1);
5216 fprintf (stderr, "\n");
5226 yylsp->first_line = yylloc.first_line;
5227 yylsp->first_column = yylloc.first_column;
5228 yylsp->last_line = (yylsp-1)->last_line;
5229 yylsp->last_column = (yylsp-1)->last_column;
5234 yylsp->last_line = (yylsp+yylen-1)->last_line;
5235 yylsp->last_column = (yylsp+yylen-1)->last_column;
5239 /* Now "shift" the result of the reduction.
5240 Determine what state that goes to,
5241 based on the state we popped back to
5242 and the rule number reduced by. */
5246 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5247 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5248 yystate = yytable[yystate];
5250 yystate = yydefgoto[yyn - YYNTBASE];
5254 yyerrlab: /* here on detecting error */
5257 /* If not already recovering from an error, report this error. */
5261 #ifdef YYERROR_VERBOSE
5262 yyn = yypact[yystate];
5264 if (yyn > YYFLAG && yyn < YYLAST)
5271 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5272 for (x = (yyn < 0 ? -yyn : 0);
5273 x < (sizeof(yytname) / sizeof(char *)); x++)
5274 if (yycheck[x + yyn] == x)
5275 size += strlen(yytname[x]) + 15, count++;
5276 msg = (char *) malloc(size + 15);
5279 strcpy(msg, "parse error");
5284 for (x = (yyn < 0 ? -yyn : 0);
5285 x < (sizeof(yytname) / sizeof(char *)); x++)
5286 if (yycheck[x + yyn] == x)
5288 strcat(msg, count == 0 ? ", expecting `" : " or `");
5289 strcat(msg, yytname[x]);
5298 yyerror ("parse error; also virtual memory exceeded");
5301 #endif /* YYERROR_VERBOSE */
5302 yyerror("parse error");
5306 yyerrlab1: /* here on error raised explicitly by an action */
5308 if (yyerrstatus == 3)
5310 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5312 /* return failure if at end of input */
5313 if (yychar == YYEOF)
5318 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5324 /* Else will try to reuse lookahead token
5325 after shifting the error token. */
5327 yyerrstatus = 3; /* Each real token shifted decrements this */
5331 yyerrdefault: /* current state does not do anything special for the error token. */
5334 /* This is wrong; only states that explicitly want error tokens
5335 should shift them. */
5336 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5337 if (yyn) goto yydefault;
5340 yyerrpop: /* pop the current state because it cannot handle the error token */
5342 if (yyssp == yyss) YYABORT;
5352 short *ssp1 = yyss - 1;
5353 fprintf (stderr, "Error: state stack now");
5354 while (ssp1 != yyssp)
5355 fprintf (stderr, " %d", *++ssp1);
5356 fprintf (stderr, "\n");
5362 yyn = yypact[yystate];
5367 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5386 fprintf(stderr, "Shifting error token, ");
5398 /* YYACCEPT comes here. */
5410 /* YYABORT comes here. */
5423 /*@-redecl@*/ /*@-namechecks@*/
5424 extern char *yytext;
5425 /*@=redecl@*/ /*@=namechecks@*/
5427 # include "bison.reset"
5429 void yyerror (/*@unused@*/ char *s)
5431 static bool givehint = FALSE;
5433 if (context_inIterDef ())
5435 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5436 context_inFunctionName ()));
5438 else if (context_inIterEnd ())
5440 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5441 context_inFunctionName ()));
5443 else if (context_inMacro ())
5445 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5446 context_inFunctionName ()));
5448 if (context_inUnknownMacro ())
5452 llhint (cstring_makeLiteral
5453 ("Precede macro definition with /*@notfunction@*/ "
5454 "to suppress checking and force expansion"));
5460 context_exitAllClausesQuiet ();
5464 llparseerror (cstring_undefined);
5480 ** Resets all flags in bison.head
5502 /*@=evalorderuncon@*/
5511 /*@=elseifcomplete@*/
5515 /*@=readonlytrans@*/
5518 /*@=systemunrecog@*/
5519 /*@=dependenttrans@*/
5520 /*@=unqualifiedtrans@*/
5524 /*drl added 11/27/2001*/