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 QRESTRICT 366
169 #define QVOLATILE 367
171 #define QEXTENSION 369
175 #define QREGISTER 373
185 #define QUNCHECKED 383
186 #define QCHECKEDSTRICT 384
187 #define QCHECKMOD 385
193 #define QDEPENDENT 391
194 #define QRETURNED 392
197 #define QOBSERVER 395
201 #define QNEVEREXIT 399
202 #define QTRUEEXIT 400
203 #define QFALSEEXIT 401
206 #define QUNSIGNED 404
212 #define QABSTRACT 410
213 #define QCONCRETE 411
215 #define QIMMUTABLE 413
216 #define QTRUENULL 414
217 #define QFALSENULL 415
218 #define QEXTERNAL 416
219 #define QREFCOUNTED 417
232 #define QINTEGRALTYPE 430
233 #define QUNSIGNEDINTEGRALTYPE 431
234 #define QSIGNEDINTEGRALTYPE 432
235 #define QNULLTERMINATED 433
236 #define QSETBUFFERSIZE 434
237 #define QSETSTRINGLENGTH 435
240 #define QTESTINRANGE 438
242 #define IDENTIFIER 440
243 #define NEW_IDENTIFIER 441
244 #define TYPE_NAME_OR_ID 442
245 #define CANNOTATION 443
246 #define CCONSTANT 444
247 #define ITER_NAME 445
248 #define ITER_ENDNAME 446
249 #define TYPE_NAME 447
250 #define METASTATE_NAME 448
257 ** Yacc/Bison grammar for extended ANSI C used by Splint.
259 ** original grammar by Nate Osgood ---
260 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
262 ** changes for Splint --- handle typedef names correctly
263 ** fix struct/union parsing bug (empty struct is accepted)
264 ** add productions to handle macros --- require
265 ** error correction --- main source of conflicts in grammar.
266 ** need to process initializations sequentially, L->R
268 ** production names are cryptic, so more productions fit on one line
270 ** conflicts: 87 shift/reduce, 18 reduce/reduce
271 ** most of these are due to handling macros
272 ** a few are due to handling type expressions
278 extern void swallowMacro (void);
279 extern void yyerror (char *);
281 # include "splintMacros.nf"
283 # include "cscanner.h"
284 # include "cgrammar.h"
285 # include "exprChecks.h"
290 # define SHOWCSYM FALSE
293 ** This is necessary, or else when the bison-generated code #include's malloc.h,
294 ** there will be a parse error.
296 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
297 ** in bison-generated files under Win32.
314 /*@dependent@*/ sRef sr;
317 /*@only@*/ functionClauseList funcclauselist;
318 /*@only@*/ functionClause funcclause;
319 /*@only@*/ flagSpec flagspec;
320 /*@only@*/ globalsClause globsclause;
321 /*@only@*/ modifiesClause modsclause;
322 /*@only@*/ warnClause warnclause;
323 /*@only@*/ stateClause stateclause;
324 /*@only@*/ pointers pointers;
325 /*@only@*/ functionConstraint fcnconstraint;
327 /*@only@*/ metaStateConstraint msconstraint;
328 /*@only@*/ metaStateSpecifier msspec;
329 /*@only@*/ metaStateExpression msexpr;
330 /*@observer@*/ metaStateInfo msinfo;
332 /*@only@*/ sRefList srlist;
333 /*@only@*/ globSet globset;
334 /*@only@*/ qtype qtyp;
335 /*@only@*/ cstring cname;
336 /*@observer@*/ annotationInfo annotation;
337 /*@only@*/ idDecl ntyp;
338 /*@only@*/ idDeclList ntyplist;
339 /*@only@*/ uentryList flist;
340 /*@owned@*/ uentryList entrylist;
341 /*@observer@*/ /*@dependent@*/ uentry entry;
342 /*@only@*/ uentry oentry;
343 /*@only@*/ exprNode expr;
344 /*@only@*/ enumNameList enumnamelist;
345 /*@only@*/ exprNodeList exprlist;
346 /*@only@*/ sRefSet srset;
347 /*@only@*/ cstringList cstringlist;
372 #define YYFLAG -32768
375 #define YYTRANSLATE(x) ((unsigned)(x) <= 448 ? yytranslate[x] : 460)
377 static const short yytranslate[] = { 0,
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, 2, 2, 2, 2, 2,
403 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
404 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
405 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
406 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
407 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
408 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
409 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
410 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
411 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
412 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
413 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
414 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
415 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
416 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
417 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
418 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
419 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
420 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
421 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
422 187, 188, 189, 190, 191, 192, 193, 194
426 static const short yyprhs[] = { 0,
427 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
428 21, 23, 25, 34, 46, 47, 53, 55, 59, 61,
429 64, 66, 73, 77, 84, 85, 92, 93, 101, 103,
430 110, 114, 121, 122, 129, 130, 138, 139, 140, 151,
431 155, 159, 163, 166, 168, 172, 173, 178, 179, 184,
432 186, 190, 192, 194, 196, 200, 202, 206, 208, 210,
433 212, 214, 216, 218, 223, 229, 231, 233, 235, 237,
434 241, 246, 249, 253, 257, 261, 263, 265, 267, 268,
435 271, 272, 275, 277, 279, 281, 283, 285, 287, 289,
436 291, 293, 295, 297, 299, 302, 303, 308, 310, 313,
437 314, 318, 320, 324, 326, 328, 329, 332, 336, 339,
438 341, 345, 348, 349, 352, 354, 356, 358, 360, 362,
439 364, 366, 368, 370, 372, 374, 376, 378, 380, 382,
440 384, 388, 389, 393, 394, 395, 400, 403, 406, 408,
441 410, 412, 416, 421, 424, 428, 432, 436, 438, 440,
442 442, 446, 448, 450, 454, 459, 462, 466, 470, 474,
443 475, 477, 479, 483, 485, 487, 489, 493, 495, 497,
444 498, 503, 505, 510, 514, 519, 526, 532, 538, 541,
445 544, 552, 554, 558, 560, 563, 566, 569, 572, 575,
446 578, 581, 584, 586, 588, 592, 597, 599, 609, 610,
447 614, 619, 622, 627, 630, 632, 637, 639, 643, 647,
448 651, 653, 657, 661, 663, 667, 671, 673, 677, 681,
449 685, 689, 691, 695, 699, 701, 705, 707, 711, 713,
450 717, 719, 720, 725, 727, 728, 733, 735, 736, 737,
451 745, 747, 751, 755, 759, 763, 767, 771, 775, 779,
452 783, 787, 791, 793, 797, 798, 800, 802, 804, 806,
453 808, 812, 813, 823, 824, 836, 839, 840, 847, 848,
454 857, 862, 867, 868, 869, 872, 874, 879, 880, 885,
455 887, 891, 896, 899, 902, 905, 907, 910, 914, 917,
456 919, 923, 925, 927, 929, 931, 933, 936, 937, 944,
457 947, 950, 951, 958, 959, 965, 967, 969, 971, 973,
458 975, 977, 979, 981, 983, 985, 987, 989, 991, 993,
459 995, 997, 999, 1001, 1003, 1005, 1007, 1009, 1011, 1013,
460 1015, 1017, 1019, 1021, 1023, 1025, 1027, 1029, 1031, 1033,
461 1035, 1037, 1039, 1041, 1043, 1045, 1047, 1049, 1051, 1053,
462 1055, 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1072, 1075,
463 1078, 1081, 1084, 1087, 1090, 1093, 1096, 1099, 1102, 1105,
464 1108, 1111, 1114, 1117, 1120, 1123, 1126, 1129, 1132, 1135,
465 1138, 1141, 1144, 1147, 1151, 1153, 1158, 1160, 1164, 1167,
466 1170, 1173, 1174, 1176, 1177, 1178, 1179, 1192, 1193, 1194,
467 1206, 1213, 1220, 1221, 1222, 1233, 1234, 1235, 1246, 1252,
468 1258, 1263, 1268, 1269, 1271, 1273, 1276, 1282, 1286, 1289,
469 1294, 1296, 1300, 1305, 1312, 1313, 1322, 1327, 1329, 1333,
470 1336, 1338, 1343, 1345, 1347, 1350, 1353, 1355, 1358, 1360,
471 1363, 1365, 1367, 1369, 1371, 1374, 1376, 1379, 1382, 1386,
472 1388, 1392, 1394, 1398, 1400, 1402, 1406, 1407, 1410, 1411,
473 1416, 1421, 1423, 1425, 1428, 1430, 1432, 1435, 1436, 1438,
474 1444, 1447, 1451, 1455, 1460, 1464, 1469, 1474, 1480, 1482,
475 1484, 1486, 1488, 1490, 1492, 1494, 1496, 1498, 1500, 1502,
476 1504, 1507, 1510, 1518, 1525, 1528, 1529, 1530, 1541, 1542,
477 1549, 1551, 1553, 1555, 1557, 1560, 1562, 1564, 1566, 1568,
478 1570, 1572, 1574, 1578, 1580, 1581, 1585, 1588, 1591, 1593,
479 1595, 1597, 1599, 1601, 1603, 1605, 1607, 1609, 1611, 1615,
480 1617, 1619, 1622, 1625, 1626, 1629, 1630, 1635, 1636, 1643,
481 1644, 1648, 1649, 1655, 1659, 1662, 1666, 1667, 1668, 1669,
482 1670, 1671, 1673, 1676, 1679, 1683, 1686, 1690, 1694, 1699,
483 1702, 1705, 1709, 1713, 1718, 1720, 1723, 1725, 1728, 1730,
484 1734, 1736, 1741, 1743, 1746, 1748, 1751, 1753, 1756, 1758,
485 1763, 1766, 1767, 1773, 1774, 1781, 1786, 1791, 1792, 1793,
486 1804, 1806, 1807, 1812, 1814, 1816, 1818, 1820, 1822, 1825,
487 1827, 1831, 1833, 1838, 1842, 1847, 1854, 1860, 1866, 1869,
488 1872, 1874, 1877, 1880, 1883, 1886, 1889, 1892, 1895, 1898,
489 1900, 1902, 1907, 1909, 1913, 1917, 1921, 1923, 1927, 1931,
490 1933, 1937, 1941, 1943, 1947, 1951, 1955, 1959, 1961, 1965,
491 1969, 1971, 1975, 1977, 1981, 1983, 1987, 1989, 1993, 1995,
492 1999, 2001, 2002, 2003, 2011, 2013, 2017, 2021, 2025, 2029,
493 2033, 2037, 2041, 2045, 2049, 2053, 2057, 2059, 2060, 2062,
494 2065, 2073, 2076, 2079, 2087, 2094, 2097, 2101, 2104, 2108,
495 2111, 2115, 2119, 2123, 2127, 2130, 2134, 2135, 2137, 2138,
496 2140, 2142, 2144, 2146, 2148, 2150, 2152, 2154, 2156, 2161
499 static const short yyrhs[] = { -1,
500 196, 0, 197, 0, 196, 197, 0, 258, 455, 0,
501 198, 0, 199, 0, 209, 0, 212, 0, 296, 0,
502 18, 0, 1, 0, 77, 337, 351, 361, 351, 455,
503 304, 91, 0, 77, 337, 351, 361, 351, 23, 304,
504 309, 308, 455, 91, 0, 0, 78, 200, 201, 455,
505 91, 0, 202, 0, 337, 351, 202, 0, 206, 0,
506 365, 206, 0, 458, 0, 304, 24, 351, 361, 304,
507 25, 0, 203, 26, 27, 0, 203, 26, 304, 295,
508 27, 351, 0, 0, 203, 305, 24, 25, 204, 230,
509 0, 0, 203, 305, 24, 362, 25, 205, 230, 0,
510 458, 0, 304, 24, 351, 202, 304, 25, 0, 206,
511 26, 27, 0, 206, 26, 304, 295, 27, 351, 0,
512 0, 206, 305, 24, 25, 207, 231, 0, 0, 206,
513 305, 24, 362, 25, 208, 231, 0, 0, 0, 79,
514 458, 24, 362, 25, 210, 231, 211, 455, 91, 0,
515 92, 392, 95, 0, 93, 378, 95, 0, 94, 379,
516 95, 0, 92, 95, 0, 253, 0, 215, 23, 218,
517 0, 0, 227, 216, 22, 219, 0, 0, 5, 217,
518 22, 219, 0, 215, 0, 215, 40, 218, 0, 194,
519 0, 185, 0, 56, 0, 222, 220, 221, 0, 222,
520 0, 225, 224, 225, 0, 182, 0, 183, 0, 53,
521 0, 52, 0, 54, 0, 226, 0, 228, 24, 225,
522 25, 0, 24, 225, 229, 225, 25, 0, 227, 0,
523 190, 0, 457, 0, 187, 0, 227, 26, 27, 0,
524 227, 26, 190, 27, 0, 34, 227, 0, 24, 227,
525 25, 0, 227, 28, 458, 0, 227, 45, 458, 0,
526 223, 0, 33, 0, 32, 0, 0, 232, 230, 0,
527 0, 233, 231, 0, 234, 0, 238, 0, 237, 0,
528 315, 0, 318, 0, 244, 0, 235, 0, 239, 0,
529 237, 0, 316, 0, 320, 0, 245, 0, 235, 91,
530 0, 0, 74, 236, 246, 455, 0, 76, 0, 239,
531 91, 0, 0, 75, 240, 259, 0, 242, 0, 242,
532 40, 241, 0, 187, 0, 244, 0, 0, 245, 91,
533 0, 73, 241, 431, 0, 73, 241, 0, 247, 0,
534 246, 21, 247, 0, 248, 249, 0, 0, 250, 248,
535 0, 457, 0, 187, 0, 296, 0, 89, 0, 90,
536 0, 120, 0, 121, 0, 134, 0, 80, 0, 81,
537 0, 82, 0, 83, 0, 84, 0, 85, 0, 86,
538 0, 361, 0, 337, 351, 361, 0, 0, 19, 255,
539 409, 0, 0, 0, 256, 413, 257, 402, 0, 213,
540 254, 0, 262, 455, 0, 455, 0, 457, 0, 187,
541 0, 260, 26, 27, 0, 260, 26, 261, 27, 0,
542 34, 260, 0, 24, 260, 25, 0, 260, 28, 458,
543 0, 260, 45, 458, 0, 260, 0, 431, 0, 260,
544 0, 262, 21, 260, 0, 457, 0, 187, 0, 263,
545 26, 27, 0, 263, 26, 261, 27, 0, 34, 263,
546 0, 24, 263, 25, 0, 263, 28, 458, 0, 263,
547 45, 458, 0, 0, 265, 0, 263, 0, 265, 21,
548 263, 0, 457, 0, 187, 0, 431, 0, 24, 293,
549 25, 0, 188, 0, 115, 0, 0, 24, 267, 402,
550 25, 0, 266, 0, 268, 26, 293, 27, 0, 268,
551 24, 25, 0, 268, 24, 269, 25, 0, 71, 24,
552 292, 21, 373, 25, 0, 268, 351, 28, 458, 304,
553 0, 268, 351, 45, 458, 304, 0, 268, 48, 0,
554 268, 49, 0, 24, 373, 25, 19, 414, 456, 20,
555 0, 292, 0, 269, 21, 292, 0, 268, 0, 48,
556 270, 0, 49, 270, 0, 29, 276, 0, 34, 276,
557 0, 33, 276, 0, 32, 276, 0, 31, 276, 0,
558 30, 276, 0, 273, 0, 272, 0, 271, 28, 458,
559 0, 271, 26, 293, 27, 0, 458, 0, 47, 304,
560 24, 373, 351, 21, 271, 25, 304, 0, 0, 304,
561 274, 275, 0, 42, 24, 373, 25, 0, 42, 270,
562 0, 43, 24, 373, 25, 0, 43, 270, 0, 270,
563 0, 24, 373, 25, 276, 0, 276, 0, 277, 34,
564 276, 0, 277, 35, 276, 0, 277, 36, 276, 0,
565 277, 0, 278, 33, 277, 0, 278, 32, 277, 0,
566 278, 0, 279, 50, 278, 0, 279, 51, 278, 0,
567 279, 0, 280, 37, 279, 0, 280, 38, 279, 0,
568 280, 52, 279, 0, 280, 53, 279, 0, 280, 0,
569 281, 54, 280, 0, 281, 55, 280, 0, 281, 0,
570 282, 29, 281, 0, 282, 0, 283, 39, 282, 0,
571 283, 0, 284, 40, 283, 0, 284, 0, 0, 285,
572 56, 286, 284, 0, 285, 0, 0, 287, 57, 288,
573 285, 0, 287, 0, 0, 0, 287, 41, 290, 293,
574 22, 291, 289, 0, 289, 0, 270, 23, 292, 0,
575 270, 58, 292, 0, 270, 59, 292, 0, 270, 60,
576 292, 0, 270, 61, 292, 0, 270, 62, 292, 0,
577 270, 63, 292, 0, 270, 64, 292, 0, 270, 65,
578 292, 0, 270, 66, 292, 0, 270, 67, 292, 0,
579 292, 0, 293, 21, 292, 0, 0, 293, 0, 289,
580 0, 297, 0, 72, 0, 302, 0, 337, 304, 18,
581 0, 0, 337, 351, 361, 351, 298, 304, 308, 18,
582 304, 0, 0, 337, 351, 361, 351, 23, 299, 304,
583 309, 308, 18, 304, 0, 361, 351, 0, 0, 361,
584 351, 23, 301, 304, 309, 0, 0, 46, 337, 303,
585 351, 306, 304, 243, 18, 0, 46, 337, 304, 18,
586 0, 46, 306, 304, 18, 0, 0, 0, 307, 304,
587 0, 300, 0, 306, 21, 351, 300, 0, 0, 308,
588 21, 351, 300, 0, 292, 0, 19, 313, 20, 0,
589 19, 313, 21, 20, 0, 310, 309, 0, 311, 23,
590 0, 458, 22, 0, 312, 0, 311, 312, 0, 26,
591 295, 27, 0, 28, 458, 0, 309, 0, 313, 21,
592 309, 0, 116, 0, 114, 0, 117, 0, 118, 0,
593 119, 0, 316, 91, 0, 0, 251, 351, 317, 265,
594 455, 304, 0, 320, 91, 0, 252, 351, 0, 0,
595 319, 326, 321, 264, 455, 304, 0, 0, 319, 322,
596 323, 455, 304, 0, 221, 0, 214, 0, 143, 0,
597 144, 0, 146, 0, 147, 0, 145, 0, 128, 0,
598 131, 0, 129, 0, 130, 0, 136, 0, 137, 0,
599 122, 0, 124, 0, 123, 0, 132, 0, 133, 0,
600 125, 0, 127, 0, 140, 0, 142, 0, 155, 0,
601 154, 0, 139, 0, 141, 0, 179, 0, 189, 0,
602 138, 0, 153, 0, 152, 0, 162, 0, 160, 0,
603 161, 0, 156, 0, 157, 0, 158, 0, 159, 0,
604 163, 0, 164, 0, 167, 0, 168, 0, 165, 0,
605 166, 0, 151, 0, 148, 0, 149, 0, 150, 0,
606 120, 0, 121, 0, 134, 0, 135, 0, 111, 304,
607 0, 113, 304, 0, 112, 304, 0, 333, 304, 0,
608 326, 304, 0, 324, 304, 0, 327, 304, 0, 325,
609 304, 0, 329, 304, 0, 328, 304, 0, 330, 304,
610 0, 331, 304, 0, 169, 351, 0, 171, 351, 0,
611 170, 351, 0, 172, 351, 0, 173, 351, 0, 174,
612 351, 0, 175, 351, 0, 176, 351, 0, 177, 351,
613 0, 178, 351, 0, 459, 351, 0, 342, 351, 0,
614 356, 351, 0, 332, 351, 0, 304, 337, 304, 0,
615 339, 0, 339, 88, 338, 91, 0, 373, 0, 373,
616 21, 338, 0, 314, 340, 0, 334, 340, 0, 335,
617 340, 0, 0, 337, 0, 0, 0, 0, 351, 68,
618 458, 304, 19, 343, 406, 352, 407, 344, 20, 341,
619 0, 0, 0, 351, 69, 458, 304, 19, 345, 406,
620 352, 407, 346, 20, 0, 351, 68, 458, 304, 19,
621 20, 0, 351, 69, 458, 304, 19, 20, 0, 0,
622 0, 351, 68, 304, 19, 347, 406, 352, 407, 348,
623 20, 0, 0, 0, 351, 69, 304, 19, 349, 406,
624 352, 407, 350, 20, 0, 351, 68, 304, 19, 20,
625 0, 351, 69, 304, 19, 20, 0, 351, 68, 458,
626 351, 0, 351, 69, 458, 351, 0, 0, 353, 0,
627 212, 0, 352, 353, 0, 337, 351, 354, 304, 18,
628 0, 337, 304, 18, 0, 355, 351, 0, 354, 21,
629 355, 351, 0, 361, 0, 22, 304, 295, 0, 361,
630 22, 304, 295, 0, 351, 70, 19, 358, 20, 304,
631 0, 0, 351, 70, 458, 19, 357, 358, 20, 304,
632 0, 351, 70, 458, 304, 0, 359, 0, 358, 21,
633 359, 0, 358, 21, 0, 458, 0, 458, 23, 304,
634 295, 0, 203, 0, 375, 0, 365, 193, 0, 365,
635 360, 0, 203, 0, 365, 203, 0, 368, 0, 351,
636 366, 0, 111, 0, 112, 0, 113, 0, 363, 0,
637 364, 363, 0, 34, 0, 34, 364, 0, 34, 365,
638 0, 34, 364, 365, 0, 367, 0, 367, 21, 5,
639 0, 458, 0, 367, 21, 458, 0, 5, 0, 369,
640 0, 369, 21, 5, 0, 0, 370, 372, 0, 0,
641 369, 21, 371, 372, 0, 304, 337, 360, 304, 0,
642 458, 0, 336, 0, 336, 374, 0, 365, 0, 376,
643 0, 365, 376, 0, 0, 376, 0, 304, 24, 351,
644 374, 25, 0, 26, 27, 0, 26, 295, 27, 0,
645 376, 26, 27, 0, 376, 26, 295, 27, 0, 304,
646 24, 25, 0, 304, 24, 368, 25, 0, 376, 304,
647 24, 25, 0, 376, 304, 24, 368, 25, 0, 394,
648 0, 396, 0, 399, 0, 402, 0, 417, 0, 420,
649 0, 452, 0, 425, 0, 454, 0, 380, 0, 378,
650 0, 387, 0, 380, 387, 0, 424, 380, 0, 451,
651 393, 11, 24, 293, 25, 18, 0, 451, 393, 11,
652 24, 293, 25, 0, 382, 387, 0, 0, 0, 13,
653 24, 294, 18, 294, 18, 383, 294, 384, 25, 0,
654 0, 191, 404, 24, 386, 428, 25, 0, 192, 0,
655 394, 0, 396, 0, 399, 0, 390, 413, 0, 390,
656 0, 391, 0, 417, 0, 388, 0, 381, 0, 385,
657 0, 454, 0, 24, 387, 25, 0, 1, 0, 0,
658 419, 389, 387, 0, 404, 19, 0, 408, 20, 0,
659 393, 0, 412, 0, 394, 0, 396, 0, 399, 0,
660 403, 0, 418, 0, 420, 0, 425, 0, 453, 0,
661 24, 393, 25, 0, 454, 0, 1, 0, 458, 22,
662 0, 110, 377, 0, 0, 101, 395, 0, 0, 6,
663 295, 397, 22, 0, 0, 101, 395, 6, 295, 398,
664 22, 0, 0, 7, 400, 22, 0, 0, 101, 395,
665 7, 401, 22, 0, 24, 402, 25, 0, 404, 410,
666 0, 404, 411, 405, 0, 0, 0, 0, 0, 0,
667 20, 0, 110, 20, 0, 416, 20, 0, 416, 110,
668 20, 0, 413, 20, 0, 413, 110, 20, 0, 413,
669 416, 20, 0, 413, 416, 110, 20, 0, 19, 409,
670 0, 19, 20, 0, 19, 412, 20, 0, 19, 413,
671 20, 0, 19, 413, 416, 20, 0, 393, 0, 412,
672 393, 0, 296, 0, 413, 296, 0, 415, 0, 414,
673 21, 415, 0, 292, 0, 19, 414, 456, 20, 0,
674 377, 0, 416, 377, 0, 18, 0, 293, 18, 0,
675 18, 0, 293, 18, 0, 293, 0, 8, 24, 293,
676 25, 0, 419, 377, 0, 0, 419, 377, 9, 421,
677 377, 0, 0, 10, 24, 293, 422, 25, 377, 0,
678 11, 24, 293, 25, 0, 11, 24, 293, 25, 0,
679 0, 0, 191, 426, 404, 24, 427, 428, 25, 402,
680 450, 405, 0, 430, 0, 0, 428, 429, 21, 430,
681 0, 449, 0, 457, 0, 188, 0, 187, 0, 190,
682 0, 431, 190, 0, 431, 0, 24, 293, 25, 0,
683 432, 0, 268, 26, 293, 27, 0, 268, 24, 25,
684 0, 268, 24, 269, 25, 0, 71, 24, 292, 21,
685 373, 25, 0, 268, 351, 28, 458, 304, 0, 268,
686 351, 45, 458, 304, 0, 268, 48, 0, 268, 49,
687 0, 433, 0, 48, 270, 0, 49, 270, 0, 29,
688 276, 0, 34, 276, 0, 33, 276, 0, 32, 276,
689 0, 31, 276, 0, 30, 276, 0, 273, 0, 434,
690 0, 24, 373, 25, 276, 0, 435, 0, 277, 34,
691 276, 0, 277, 35, 276, 0, 277, 36, 276, 0,
692 436, 0, 278, 33, 277, 0, 278, 32, 277, 0,
693 437, 0, 279, 50, 278, 0, 279, 51, 278, 0,
694 438, 0, 280, 37, 279, 0, 280, 38, 279, 0,
695 280, 52, 279, 0, 280, 53, 279, 0, 439, 0,
696 281, 54, 280, 0, 281, 55, 280, 0, 440, 0,
697 282, 29, 281, 0, 441, 0, 283, 39, 282, 0,
698 442, 0, 284, 40, 283, 0, 443, 0, 285, 56,
699 284, 0, 444, 0, 287, 57, 285, 0, 445, 0,
700 0, 0, 287, 41, 447, 293, 22, 448, 289, 0,
701 446, 0, 270, 23, 292, 0, 270, 58, 292, 0,
702 270, 59, 292, 0, 270, 60, 292, 0, 270, 61,
703 292, 0, 270, 62, 292, 0, 270, 63, 292, 0,
704 270, 64, 292, 0, 270, 65, 292, 0, 270, 66,
705 292, 0, 270, 67, 292, 0, 192, 0, 0, 12,
706 0, 423, 377, 0, 451, 377, 11, 24, 293, 25,
707 18, 0, 382, 377, 0, 423, 393, 0, 451, 393,
708 11, 24, 293, 25, 18, 0, 451, 393, 11, 24,
709 293, 25, 0, 382, 393, 0, 14, 458, 18, 0,
710 15, 18, 0, 100, 15, 18, 0, 16, 18, 0,
711 96, 16, 18, 0, 97, 16, 18, 0, 98, 16,
712 18, 0, 99, 16, 18, 0, 17, 18, 0, 17,
713 293, 18, 0, 0, 18, 0, 0, 21, 0, 186,
714 0, 187, 0, 191, 0, 192, 0, 457, 0, 188,
715 0, 193, 0, 188, 0, 44, 24, 293, 25, 0,
722 static const short yyrline[] = { 0,
723 325, 326, 329, 330, 333, 334, 335, 336, 337, 338,
724 339, 340, 343, 345, 349, 349, 356, 362, 366, 367,
725 371, 372, 374, 376, 391, 394, 404, 407, 415, 416,
726 418, 420, 436, 439, 447, 450, 458, 460, 460, 464,
727 465, 466, 467, 470, 473, 477, 477, 480, 480, 485,
728 486, 489, 494, 495, 498, 499, 502, 507, 508, 511,
729 512, 513, 516, 517, 518, 523, 524, 527, 529, 531,
730 533, 542, 544, 546, 548, 564, 568, 569, 576, 577,
731 585, 587, 591, 592, 593, 594, 595, 596, 599, 600,
732 601, 602, 603, 604, 607, 610, 611, 618, 621, 624,
733 630, 638, 640, 644, 647, 648, 651, 654, 660, 664,
734 665, 668, 671, 672, 675, 676, 677, 680, 681, 682,
735 683, 684, 687, 688, 689, 690, 691, 694, 695, 698,
736 705, 709, 711, 715, 716, 718, 725, 735, 736, 739,
737 740, 741, 742, 743, 744, 745, 746, 750, 751, 755,
738 756, 759, 761, 763, 764, 765, 766, 767, 769, 773,
739 774, 777, 781, 793, 794, 795, 796, 797, 798, 799,
740 800, 804, 805, 806, 807, 808, 809, 810, 811, 812,
741 813, 817, 818, 821, 822, 823, 824, 825, 826, 827,
742 828, 829, 830, 831, 834, 835, 837, 840, 844, 845,
743 848, 849, 850, 851, 854, 855, 859, 860, 861, 862,
744 865, 866, 867, 870, 871, 872, 875, 876, 877, 878,
745 879, 882, 883, 884, 887, 888, 891, 892, 896, 897,
746 900, 901, 906, 912, 913, 919, 925, 926, 926, 928,
747 931, 932, 933, 934, 935, 936, 937, 938, 939, 940,
748 941, 942, 945, 946, 949, 950, 953, 958, 959, 960,
749 963, 977, 982, 988, 990, 996, 1001, 1001, 1005, 1006,
750 1008, 1009, 1012, 1015, 1018, 1021, 1022, 1025, 1026, 1029,
751 1030, 1031, 1032, 1039, 1040, 1044, 1045, 1048, 1049, 1052,
752 1054, 1063, 1064, 1065, 1066, 1067, 1070, 1073, 1079, 1088,
753 1091, 1094, 1101, 1108, 1114, 1139, 1140, 1143, 1144, 1145,
754 1146, 1147, 1150, 1151, 1152, 1153, 1156, 1157, 1158, 1159,
755 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169,
756 1170, 1171, 1172, 1176, 1177, 1180, 1181, 1184, 1185, 1188,
757 1189, 1190, 1191, 1194, 1195, 1196, 1197, 1198, 1199, 1202,
758 1203, 1204, 1205, 1208, 1209, 1210, 1211, 1214, 1215, 1216,
759 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1232,
760 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242,
761 1243, 1244, 1245, 1248, 1252, 1253, 1257, 1258, 1262, 1263,
762 1264, 1267, 1268, 1272, 1279, 1281, 1283, 1285, 1287, 1289,
763 1290, 1292, 1294, 1296, 1298, 1299, 1300, 1303, 1304, 1306,
764 1308, 1309, 1312, 1315, 1316, 1317, 1320, 1322, 1326, 1328,
765 1332, 1333, 1334, 1338, 1340, 1340, 1342, 1345, 1347, 1349,
766 1352, 1357, 1364, 1365, 1366, 1372, 1376, 1377, 1381, 1382,
767 1385, 1386, 1387, 1390, 1391, 1394, 1395, 1396, 1397, 1400,
768 1401, 1404, 1405, 1408, 1409, 1410, 1413, 1413, 1414, 1415,
769 1418, 1430, 1446, 1447, 1450, 1451, 1452, 1455, 1456, 1459,
770 1461, 1462, 1464, 1465, 1467, 1469, 1471, 1473, 1479, 1480,
771 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1491, 1494, 1497,
772 1498, 1502, 1504, 1506, 1508, 1512, 1513, 1515, 1519, 1521,
773 1523, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534,
774 1535, 1536, 1537, 1538, 1541, 1542, 1547, 1550, 1553, 1554,
775 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566,
776 1567, 1570, 1571, 1578, 1579, 1585, 1586, 1587, 1588, 1591,
777 1592, 1593, 1594, 1597, 1598, 1602, 1605, 1608, 1611, 1614,
778 1617, 1620, 1621, 1622, 1623, 1625, 1626, 1628, 1630, 1636,
779 1640, 1642, 1644, 1646, 1650, 1651, 1654, 1655, 1658, 1659,
780 1662, 1663, 1666, 1667, 1670, 1671, 1674, 1675, 1676, 1679,
781 1692, 1697, 1698, 1702, 1703, 1706, 1711, 1714, 1715, 1716,
782 1724, 1725, 1725, 1729, 1730, 1731, 1742, 1749, 1750, 1753,
783 1754, 1757, 1758, 1759, 1760, 1761, 1763, 1764, 1765, 1766,
784 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778,
785 1781, 1782, 1785, 1786, 1787, 1788, 1791, 1792, 1793, 1796,
786 1797, 1798, 1801, 1802, 1803, 1804, 1805, 1808, 1809, 1810,
787 1813, 1814, 1817, 1818, 1822, 1823, 1826, 1827, 1830, 1831,
788 1834, 1835, 1836, 1837, 1840, 1841, 1842, 1843, 1844, 1845,
789 1846, 1847, 1848, 1849, 1850, 1851, 1854, 1855, 1858, 1861,
790 1863, 1865, 1869, 1870, 1872, 1874, 1877, 1878, 1879, 1881,
791 1882, 1883, 1884, 1885, 1886, 1887, 1890, 1891, 1894, 1895,
792 1898, 1901, 1902, 1903, 1904, 1905, 1908, 1909, 1910, 1911
797 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
799 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
800 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
801 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
802 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
803 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
804 "TBAR","TQUEST","CSIZEOF","CALIGNOF","CTYPEOF","ARROW_OP","CTYPEDEF","COFFSETOF",
805 "INC_OP","DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP",
806 "OR_OP","MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
807 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
808 "VA_ARG","VA_DCL","QWARN","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION",
809 "QITER","QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
810 "QINVARIANT","QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND",
811 "TENDMACRO","QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE",
812 "QFALLTHROUGH","QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED",
813 "QPRINTFLIKE","QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST",
814 "QRESTRICT","QVOLATILE","QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER",
815 "QOUT","QIN","QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED",
816 "QUNCHECKED","QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL",
817 "QOWNED","QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS",
818 "QMAYEXIT","QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED",
819 "QSHORT","QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE",
820 "QIMMUTABLE","QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF",
821 "QTEMPREF","QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE",
822 "CVOID","QANYTYPE","QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE",
823 "QNULLTERMINATED","QSETBUFFERSIZE","QSETSTRINGLENGTH","QMAXSET","QMAXREAD","QTESTINRANGE",
824 "TCAND","IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID","CANNOTATION","CCONSTANT",
825 "ITER_NAME","ITER_ENDNAME","TYPE_NAME","METASTATE_NAME","file","externalDefs",
826 "externalDef","constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase",
827 "@2","@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
828 "metaStateConstraint","metaStateSpecifier","@8","@9","metaStateExpression","metaStateName",
829 "constraintSeperator","BufConstraintList","BufConstraint","bufferModifier","relationalOp",
830 "BufConstraintExpr","BufConstraintTerm","BufConstraintSrefExpr","BufUnaryOp",
831 "BufBinaryOp","functionClauses","functionClausesPlain","functionClause","functionClausePlain",
832 "globalsClause","globalsClausePlain","@10","nomodsClause","modifiesClause","modifiesClausePlain",
833 "@11","flagSpec","flagId","optWarnClause","warnClause","warnClausePlain","globIdList",
834 "globIdListExpr","optGlobQuals","globId","globQual","stateTag","conditionTag",
835 "fcnDefHdrAux","fcnBody","@12","@13","@14","fcnDef","locModifies","modListExpr",
836 "mExpr","modList","specClauseListExpr","optSpecClauseList","specClauseList",
837 "primaryExpr","@15","postfixExpr","argumentExprList","unaryExpr","fieldDesignator",
838 "offsetofExpr","sizeofExpr","@16","sizeofExprAux","castExpr","timesExpr","plusExpr",
839 "shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr",
840 "andExpr","@17","orExpr","@18","conditionalExpr","@19","@20","assignExpr","expr",
841 "optExpr","constantExpr","initializer","instanceDecl","@21","@22","namedInitializer",
842 "@23","typeDecl","@24","IsType","PushType","namedInitializerList","namedInitializerListAux",
843 "optDeclarators","init","designation","designatorList","designator","initList",
844 "storageSpecifier","stateClause","stateClausePlain","@25","conditionClause",
845 "startConditionClause","conditionClausePlain","@26","@27","functionConstraint",
846 "exitsQualifier","checkQualifier","stateQualifier","paramQualifier","visibilityQualifier",
847 "returnQualifier","typedefQualifier","refcountQualifier","typeModifier","definedQualifier",
848 "typeQualifier","typeSpecifier","completeType","completeTypeSpecifier","altType",
849 "completeTypeSpecifierAux","optCompleteType","optStructInvariant","suSpc","@28",
850 "@29","@30","@31","@32","@33","@34","@35","NotType","structDeclList","structDecl",
851 "structNamedDeclList","structNamedDecl","enumSpc","@36","enumeratorList","enumerator",
852 "optNamedDecl","namedDecl","genericParamList","innerMods","innerModsList","pointers",
853 "paramIdList","idList","paramTypeList","paramList","@37","@38","paramDecl","typeExpression",
854 "abstractDecl","optAbstractDeclBase","abstractDeclBase","stmt","iterBody","endBody",
855 "iterDefStmtList","iterDefIterationStmt","forPred","@39","@40","partialIterStmt",
856 "@41","iterDefStmt","iterSelectionStmt","@42","openScope","closeScope","macroBody",
857 "stmtErr","labeledStmt","optExtraFallThroughs","caseStmt","@43","@44","defaultStmt",
858 "@45","@46","compoundStmt","compoundStmtErr","CreateInnerScope","DeleteInnerScope",
859 "CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe","compoundStmtRest",
860 "compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList","typeInitializerList",
861 "typeInitializer","stmtList","expressionStmt","expressionStmtErr","ifPred","selectionStmt",
862 "@47","@48","whilePred","iterWhilePred","iterStmt","@49","@50","iterArgList",
863 "@51","iterArgExpr","cconstantExpr","primaryIterExpr","postfixIterExpr","unaryIterExpr",
864 "castIterExpr","timesIterExpr","plusIterExpr","shiftIterExpr","relationalIterExpr",
865 "equalityIterExpr","bitandIterExpr","xorIterExpr","bitorIterExpr","andIterExpr",
866 "orIterExpr","conditionalIterExpr","@52","@53","assignIterExpr","endIter","doHeader",
867 "iterationStmt","iterationStmtErr","jumpStmt","optSemi","optComma","id","newId",
872 static const short yyr1[] = { 0,
873 195, 195, 196, 196, 197, 197, 197, 197, 197, 197,
874 197, 197, 198, 198, 200, 199, 201, 201, 202, 202,
875 203, 203, 203, 203, 204, 203, 205, 203, 206, 206,
876 206, 206, 207, 206, 208, 206, 210, 211, 209, 212,
877 212, 212, 212, 213, 214, 216, 215, 217, 215, 218,
878 218, 219, 220, 220, 221, 221, 222, 223, 223, 224,
879 224, 224, 225, 225, 225, 226, 226, 227, 227, 227,
880 227, 227, 227, 227, 227, 228, 229, 229, 230, 230,
881 231, 231, 232, 232, 232, 232, 232, 232, 233, 233,
882 233, 233, 233, 233, 234, 236, 235, 237, 238, 240,
883 239, 241, 241, 242, 243, 243, 244, 245, 245, 246,
884 246, 247, 248, 248, 249, 249, 249, 250, 250, 250,
885 250, 250, 251, 251, 251, 251, 251, 252, 252, 253,
886 253, 255, 254, 256, 257, 254, 258, 259, 259, 260,
887 260, 260, 260, 260, 260, 260, 260, 261, 261, 262,
888 262, 263, 263, 263, 263, 263, 263, 263, 263, 264,
889 264, 265, 265, 266, 266, 266, 266, 266, 266, 267,
890 266, 268, 268, 268, 268, 268, 268, 268, 268, 268,
891 268, 269, 269, 270, 270, 270, 270, 270, 270, 270,
892 270, 270, 270, 270, 271, 271, 271, 272, 274, 273,
893 275, 275, 275, 275, 276, 276, 277, 277, 277, 277,
894 278, 278, 278, 279, 279, 279, 280, 280, 280, 280,
895 280, 281, 281, 281, 282, 282, 283, 283, 284, 284,
896 285, 286, 285, 287, 288, 287, 289, 290, 291, 289,
897 292, 292, 292, 292, 292, 292, 292, 292, 292, 292,
898 292, 292, 293, 293, 294, 294, 295, 296, 296, 296,
899 297, 298, 297, 299, 297, 300, 301, 300, 303, 302,
900 302, 302, 304, 305, 306, 307, 307, 308, 308, 309,
901 309, 309, 309, 310, 310, 311, 311, 312, 312, 313,
902 313, 314, 314, 314, 314, 314, 315, 317, 316, 318,
903 319, 321, 320, 322, 320, 323, 323, 324, 324, 324,
904 324, 324, 325, 325, 325, 325, 326, 326, 326, 326,
905 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
906 326, 326, 326, 327, 327, 328, 328, 329, 329, 330,
907 330, 330, 330, 331, 331, 331, 331, 331, 331, 332,
908 332, 332, 332, 333, 333, 333, 333, 334, 334, 334,
909 334, 334, 334, 334, 334, 334, 334, 334, 334, 335,
910 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
911 335, 335, 335, 336, 337, 337, 338, 338, 339, 339,
912 339, 340, 340, 341, 343, 344, 342, 345, 346, 342,
913 342, 342, 347, 348, 342, 349, 350, 342, 342, 342,
914 342, 342, 351, 352, 352, 352, 353, 353, 354, 354,
915 355, 355, 355, 356, 357, 356, 356, 358, 358, 358,
916 359, 359, 360, 360, 360, 360, 361, 361, 362, 362,
917 363, 363, 363, 364, 364, 365, 365, 365, 365, 366,
918 366, 367, 367, 368, 368, 368, 370, 369, 371, 369,
919 372, 372, 373, 373, 374, 374, 374, 375, 375, 376,
920 376, 376, 376, 376, 376, 376, 376, 376, 377, 377,
921 377, 377, 377, 377, 377, 377, 377, 378, 379, 380,
922 380, 381, 381, 381, 381, 383, 384, 382, 386, 385,
923 385, 387, 387, 387, 387, 387, 387, 387, 387, 387,
924 387, 387, 387, 387, 389, 388, 390, 391, 392, 392,
925 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
926 393, 394, 394, 395, 395, 397, 396, 398, 396, 400,
927 399, 401, 399, 402, 402, 403, 404, 405, 406, 407,
928 408, 409, 409, 409, 409, 409, 409, 409, 409, 410,
929 411, 411, 411, 411, 412, 412, 413, 413, 414, 414,
930 415, 415, 416, 416, 417, 417, 418, 418, 418, 419,
931 420, 421, 420, 422, 420, 423, 424, 426, 427, 425,
932 428, 429, 428, 430, 430, 430, 430, 431, 431, 432,
933 432, 433, 433, 433, 433, 433, 433, 433, 433, 433,
934 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
935 435, 435, 436, 436, 436, 436, 437, 437, 437, 438,
936 438, 438, 439, 439, 439, 439, 439, 440, 440, 440,
937 441, 441, 442, 442, 443, 443, 444, 444, 445, 445,
938 446, 447, 448, 446, 449, 449, 449, 449, 449, 449,
939 449, 449, 449, 449, 449, 449, 450, 450, 451, 452,
940 452, 452, 453, 453, 453, 453, 454, 454, 454, 454,
941 454, 454, 454, 454, 454, 454, 455, 455, 456, 456,
942 457, 458, 458, 458, 458, 458, 459, 459, 459, 459
945 static const short yyr2[] = { 0,
946 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
947 1, 1, 8, 11, 0, 5, 1, 3, 1, 2,
948 1, 6, 3, 6, 0, 6, 0, 7, 1, 6,
949 3, 6, 0, 6, 0, 7, 0, 0, 10, 3,
950 3, 3, 2, 1, 3, 0, 4, 0, 4, 1,
951 3, 1, 1, 1, 3, 1, 3, 1, 1, 1,
952 1, 1, 1, 4, 5, 1, 1, 1, 1, 3,
953 4, 2, 3, 3, 3, 1, 1, 1, 0, 2,
954 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
955 1, 1, 1, 1, 2, 0, 4, 1, 2, 0,
956 3, 1, 3, 1, 1, 0, 2, 3, 2, 1,
957 3, 2, 0, 2, 1, 1, 1, 1, 1, 1,
958 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
959 3, 0, 3, 0, 0, 4, 2, 2, 1, 1,
960 1, 3, 4, 2, 3, 3, 3, 1, 1, 1,
961 3, 1, 1, 3, 4, 2, 3, 3, 3, 0,
962 1, 1, 3, 1, 1, 1, 3, 1, 1, 0,
963 4, 1, 4, 3, 4, 6, 5, 5, 2, 2,
964 7, 1, 3, 1, 2, 2, 2, 2, 2, 2,
965 2, 2, 1, 1, 3, 4, 1, 9, 0, 3,
966 4, 2, 4, 2, 1, 4, 1, 3, 3, 3,
967 1, 3, 3, 1, 3, 3, 1, 3, 3, 3,
968 3, 1, 3, 3, 1, 3, 1, 3, 1, 3,
969 1, 0, 4, 1, 0, 4, 1, 0, 0, 7,
970 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
971 3, 3, 1, 3, 0, 1, 1, 1, 1, 1,
972 3, 0, 9, 0, 11, 2, 0, 6, 0, 8,
973 4, 4, 0, 0, 2, 1, 4, 0, 4, 1,
974 3, 4, 2, 2, 2, 1, 2, 3, 2, 1,
975 3, 1, 1, 1, 1, 1, 2, 0, 6, 2,
976 2, 0, 6, 0, 5, 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, 1, 1, 1, 1,
980 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
981 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
982 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
983 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
984 2, 2, 2, 3, 1, 4, 1, 3, 2, 2,
985 2, 0, 1, 0, 0, 0, 12, 0, 0, 11,
986 6, 6, 0, 0, 10, 0, 0, 10, 5, 5,
987 4, 4, 0, 1, 1, 2, 5, 3, 2, 4,
988 1, 3, 4, 6, 0, 8, 4, 1, 3, 2,
989 1, 4, 1, 1, 2, 2, 1, 2, 1, 2,
990 1, 1, 1, 1, 2, 1, 2, 2, 3, 1,
991 3, 1, 3, 1, 1, 3, 0, 2, 0, 4,
992 4, 1, 1, 2, 1, 1, 2, 0, 1, 5,
993 2, 3, 3, 4, 3, 4, 4, 5, 1, 1,
994 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
995 2, 2, 7, 6, 2, 0, 0, 10, 0, 6,
996 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
997 1, 1, 3, 1, 0, 3, 2, 2, 1, 1,
998 1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
999 1, 2, 2, 0, 2, 0, 4, 0, 6, 0,
1000 3, 0, 5, 3, 2, 3, 0, 0, 0, 0,
1001 0, 1, 2, 2, 3, 2, 3, 3, 4, 2,
1002 2, 3, 3, 4, 1, 2, 1, 2, 1, 3,
1003 1, 4, 1, 2, 1, 2, 1, 2, 1, 4,
1004 2, 0, 5, 0, 6, 4, 4, 0, 0, 10,
1005 1, 0, 4, 1, 1, 1, 1, 1, 2, 1,
1006 3, 1, 4, 3, 4, 6, 5, 5, 2, 2,
1007 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
1008 1, 4, 1, 3, 3, 3, 1, 3, 3, 1,
1009 3, 3, 1, 3, 3, 3, 3, 1, 3, 3,
1010 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
1011 1, 0, 0, 7, 1, 3, 3, 3, 3, 3,
1012 3, 3, 3, 3, 3, 3, 1, 0, 1, 2,
1013 7, 2, 2, 7, 6, 2, 3, 2, 3, 2,
1014 3, 3, 3, 3, 2, 3, 0, 1, 0, 1,
1015 1, 1, 1, 1, 1, 1, 1, 1, 4, 4
1018 static const short yydefact[] = { 0,
1019 12, 11, 446, 0, 413, 259, 413, 15, 0, 0,
1020 0, 0, 273, 273, 273, 293, 292, 294, 295, 296,
1021 354, 355, 319, 321, 320, 324, 325, 313, 315, 316,
1022 314, 322, 323, 356, 357, 317, 318, 334, 330, 326,
1023 331, 327, 308, 309, 312, 310, 311, 351, 352, 353,
1024 350, 336, 335, 329, 328, 340, 341, 342, 343, 338,
1025 339, 337, 344, 345, 348, 349, 346, 347, 413, 413,
1026 413, 413, 413, 413, 413, 413, 413, 413, 332, 691,
1027 692, 696, 333, 693, 694, 697, 0, 3, 6, 7,
1028 437, 8, 9, 134, 44, 687, 10, 258, 260, 0,
1029 392, 273, 273, 273, 273, 273, 273, 273, 273, 413,
1030 273, 392, 392, 413, 385, 413, 0, 413, 130, 273,
1031 695, 21, 413, 441, 442, 443, 444, 447, 448, 273,
1032 276, 273, 273, 269, 413, 698, 413, 413, 696, 0,
1033 531, 273, 540, 0, 0, 0, 669, 0, 0, 0,
1034 0, 273, 577, 0, 273, 273, 273, 273, 273, 273,
1035 273, 273, 273, 0, 43, 0, 0, 0, 0, 0,
1036 534, 273, 169, 165, 168, 598, 588, 172, 184, 205,
1037 194, 193, 207, 211, 214, 217, 222, 225, 227, 229,
1038 231, 234, 237, 241, 253, 579, 199, 0, 0, 565,
1039 521, 522, 523, 524, 0, 0, 525, 273, 526, 0,
1040 527, 166, 0, 528, 530, 164, 0, 514, 0, 575,
1041 0, 547, 501, 0, 0, 0, 510, 0, 511, 490,
1042 509, 506, 507, 502, 503, 504, 0, 0, 508, 515,
1043 0, 0, 512, 489, 0, 358, 360, 359, 370, 372,
1044 371, 373, 374, 375, 376, 377, 378, 379, 4, 273,
1045 0, 132, 137, 413, 688, 5, 413, 393, 389, 363,
1046 365, 362, 364, 367, 366, 368, 369, 383, 361, 390,
1047 391, 0, 273, 273, 381, 273, 273, 0, 382, 438,
1048 380, 445, 449, 273, 165, 168, 0, 413, 463, 0,
1049 164, 413, 0, 275, 413, 0, 266, 273, 687, 17,
1050 19, 0, 413, 273, 29, 457, 205, 257, 536, 0,
1051 273, 273, 273, 273, 0, 678, 680, 685, 0, 547,
1052 0, 0, 0, 187, 192, 191, 190, 189, 188, 0,
1053 273, 185, 186, 273, 0, 0, 0, 0, 0, 534,
1054 0, 273, 533, 273, 479, 480, 481, 482, 0, 483,
1055 484, 273, 486, 273, 485, 487, 547, 273, 273, 179,
1056 180, 0, 273, 273, 273, 273, 273, 273, 273, 273,
1057 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
1058 273, 273, 273, 273, 273, 273, 273, 273, 273, 232,
1059 238, 235, 578, 273, 0, 676, 40, 0, 548, 566,
1060 581, 673, 599, 0, 532, 273, 0, 0, 0, 576,
1061 41, 491, 495, 567, 413, 505, 517, 518, 0, 0,
1062 0, 42, 23, 273, 457, 413, 413, 273, 261, 131,
1063 413, 0, 387, 0, 413, 0, 413, 0, 273, 0,
1064 699, 273, 273, 0, 465, 464, 466, 700, 273, 272,
1065 273, 271, 267, 413, 0, 273, 0, 413, 273, 20,
1066 454, 0, 0, 439, 455, 273, 0, 541, 0, 584,
1067 0, 256, 0, 677, 686, 547, 0, 167, 273, 529,
1068 273, 0, 0, 681, 682, 683, 684, 679, 535, 273,
1069 542, 0, 672, 413, 545, 670, 0, 0, 174, 0,
1070 182, 0, 0, 0, 242, 243, 244, 245, 246, 247,
1071 248, 249, 250, 251, 252, 208, 209, 210, 213, 212,
1072 215, 216, 218, 219, 220, 221, 223, 224, 226, 228,
1073 230, 273, 273, 273, 254, 273, 273, 200, 561, 698,
1074 565, 0, 413, 546, 582, 0, 0, 513, 499, 273,
1075 568, 516, 0, 0, 25, 0, 552, 273, 573, 133,
1076 413, 273, 547, 273, 262, 386, 273, 403, 0, 411,
1077 406, 0, 412, 0, 428, 431, 425, 427, 384, 471,
1078 0, 457, 467, 273, 0, 277, 273, 273, 687, 16,
1079 31, 273, 457, 273, 18, 440, 450, 452, 37, 459,
1080 413, 458, 462, 537, 580, 0, 586, 273, 171, 273,
1081 206, 413, 0, 273, 538, 0, 544, 560, 0, 589,
1082 273, 175, 173, 273, 273, 233, 0, 236, 273, 202,
1083 273, 204, 562, 563, 273, 273, 273, 587, 273, 413,
1084 273, 413, 79, 27, 553, 556, 273, 273, 554, 273,
1085 574, 136, 0, 264, 273, 388, 409, 549, 395, 410,
1086 549, 398, 273, 430, 273, 0, 472, 475, 273, 0,
1087 473, 0, 457, 106, 273, 273, 273, 0, 33, 0,
1088 273, 0, 81, 456, 273, 468, 273, 0, 273, 571,
1089 689, 569, 0, 0, 0, 543, 273, 273, 183, 177,
1090 178, 239, 0, 0, 564, 583, 0, 273, 273, 273,
1091 273, 273, 273, 273, 273, 273, 0, 165, 168, 184,
1092 205, 193, 211, 214, 217, 222, 225, 227, 229, 231,
1093 234, 0, 592, 591, 166, 602, 611, 621, 623, 627,
1094 630, 633, 638, 641, 643, 645, 647, 649, 651, 655,
1095 594, 164, 0, 24, 0, 96, 100, 98, 123, 124,
1096 125, 126, 127, 128, 129, 26, 79, 83, 0, 85,
1097 84, 0, 88, 0, 413, 413, 86, 0, 87, 304,
1098 0, 79, 557, 558, 273, 555, 22, 273, 278, 413,
1099 401, 549, 413, 402, 549, 424, 429, 273, 0, 0,
1100 476, 474, 477, 0, 0, 105, 273, 273, 0, 280,
1101 268, 273, 0, 286, 0, 273, 0, 413, 81, 35,
1102 0, 451, 453, 38, 81, 89, 91, 90, 94, 92,
1103 93, 460, 433, 0, 273, 468, 434, 469, 585, 496,
1104 689, 273, 0, 0, 176, 539, 0, 592, 273, 201,
1105 203, 675, 0, 0, 187, 192, 191, 190, 189, 188,
1106 185, 186, 273, 273, 273, 179, 180, 0, 273, 273,
1107 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
1108 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
1109 273, 273, 273, 273, 273, 232, 652, 235, 500, 0,
1110 494, 104, 109, 102, 113, 687, 80, 95, 99, 107,
1111 298, 301, 297, 0, 302, 300, 28, 559, 273, 0,
1112 415, 413, 413, 414, 413, 413, 413, 432, 273, 470,
1113 478, 270, 290, 0, 0, 289, 283, 284, 287, 285,
1114 278, 13, 32, 34, 81, 30, 687, 82, 457, 461,
1115 435, 436, 273, 0, 570, 181, 0, 197, 0, 547,
1116 240, 674, 167, 273, 0, 174, 0, 0, 0, 0,
1117 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
1118 666, 208, 209, 210, 213, 212, 215, 216, 218, 219,
1119 220, 221, 223, 224, 226, 228, 230, 648, 273, 650,
1120 273, 493, 108, 0, 118, 119, 120, 121, 122, 687,
1121 110, 413, 113, 0, 0, 141, 101, 150, 687, 139,
1122 140, 0, 48, 0, 0, 58, 59, 69, 67, 307,
1123 0, 306, 56, 76, 0, 63, 66, 0, 687, 68,
1124 160, 278, 273, 413, 0, 273, 416, 404, 413, 407,
1125 413, 426, 281, 273, 288, 687, 36, 0, 273, 497,
1126 572, 273, 273, 0, 671, 668, 206, 273, 175, 173,
1127 273, 273, 0, 593, 103, 113, 97, 116, 112, 117,
1128 115, 114, 0, 144, 0, 0, 0, 0, 138, 0,
1129 0, 153, 162, 687, 152, 0, 0, 66, 0, 72,
1130 0, 54, 53, 0, 61, 60, 62, 0, 0, 0,
1131 0, 0, 0, 273, 687, 161, 0, 263, 273, 418,
1132 273, 273, 413, 421, 0, 396, 0, 399, 282, 291,
1133 0, 39, 273, 0, 198, 0, 195, 667, 548, 0,
1134 177, 178, 653, 111, 145, 142, 148, 0, 149, 146,
1135 147, 151, 0, 156, 0, 0, 0, 0, 273, 0,
1136 78, 77, 0, 73, 0, 50, 45, 46, 55, 66,
1137 57, 70, 0, 74, 75, 0, 0, 305, 273, 273,
1138 279, 273, 273, 0, 419, 273, 405, 0, 408, 0,
1139 14, 498, 196, 590, 176, 273, 143, 157, 154, 0,
1140 158, 159, 163, 299, 52, 49, 0, 0, 71, 47,
1141 64, 303, 265, 422, 413, 417, 273, 394, 400, 654,
1142 155, 65, 51, 420, 423, 397, 0, 0, 0
1145 static const short yydefgoto[] = { 1237,
1146 87, 88, 89, 90, 138, 309, 310, 91, 653, 792,
1147 311, 829, 955, 92, 693, 957, 931, 94, 1040, 1176,
1148 1122, 1106, 1177, 1216, 1114, 1042, 1043, 1044, 1118, 1045,
1149 1046, 1180, 1048, 1173, 776, 834, 777, 835, 778, 836,
1150 915, 837, 781, 838, 916, 913, 914, 815, 783, 784,
1151 1020, 1021, 1022, 1089, 1023, 785, 786, 95, 263, 436,
1152 264, 573, 96, 1027, 1157, 1158, 1029, 1103, 1125, 1104,
1153 178, 330, 179, 510, 180, 967, 181, 182, 405, 548,
1154 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
1155 542, 193, 544, 194, 543, 859, 195, 224, 483, 319,
1156 424, 98, 665, 798, 131, 598, 99, 305, 197, 261,
1157 132, 133, 930, 821, 822, 823, 824, 944, 101, 787,
1158 840, 1032, 789, 790, 841, 1051, 924, 1049, 102, 103,
1159 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1160 299, 425, 442, 115, 269, 1236, 116, 802, 1198, 805,
1161 1200, 668, 1135, 671, 1137, 117, 933, 934, 1132, 1133,
1162 118, 676, 584, 585, 845, 135, 473, 127, 128, 120,
1163 606, 607, 474, 475, 476, 695, 612, 332, 810, 847,
1164 457, 353, 225, 245, 226, 227, 354, 963, 1144, 229,
1165 649, 230, 231, 429, 232, 233, 199, 410, 355, 351,
1166 356, 477, 705, 357, 320, 626, 358, 204, 359, 554,
1167 800, 1058, 238, 570, 505, 409, 206, 571, 701, 702,
1168 572, 360, 207, 208, 361, 646, 616, 362, 241, 363,
1169 367, 708, 743, 910, 744, 212, 746, 747, 748, 749,
1170 750, 751, 752, 753, 754, 755, 756, 757, 758, 759,
1171 760, 1009, 1206, 761, 1149, 364, 365, 214, 366, 266,
1175 static const short yypact[] = { 2065,
1176 -32768,-32768, 384, 46, 5282,-32768, 6580,-32768, 798, 3278,
1177 3580, 3580,-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 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1183 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1184 -32768, 637,-32768,-32768,-32768,-32768, 2295,-32768,-32768,-32768,
1185 413,-32768,-32768, 103,-32768, 79,-32768,-32768,-32768, 109,
1186 6172,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1187 -32768, 6172, 6172, 128, 70,-32768, 891,-32768,-32768, 798,
1188 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 384,-32768, 5564,
1189 -32768, 183,-32768, 128,-32768,-32768,-32768, 5282,-32768, 162,
1190 -32768, 5564,-32768, 201, 231, 240,-32768, 280, 798, 293,
1191 303, 1612,-32768, 2681, 5564, 5564, 5564, 5564, 5564, 5564,
1192 -32768, 5585, 5585, 333,-32768, 357, 385, 395, 428, 448,
1193 404, 4793,-32768, 527, 556,-32768, 571,-32768, 848, 1096,
1194 -32768,-32768,-32768, 1019, 244, 59, 471, 279, 526, 557,
1195 560, 565, 139,-32768,-32768, 126,-32768, 3625, 519, 567,
1196 -32768,-32768,-32768,-32768, 645, 3323,-32768, 4793,-32768, 3625,
1197 -32768, 460, 3625,-32768,-32768, 664, 710,-32768, 719,-32768,
1198 2874, 571, 715, 368, 674, 3429,-32768, 3580,-32768,-32768,
1199 -32768, 5900,-32768,-32768,-32768,-32768, 783, 769,-32768,-32768,
1200 3580, 3625,-32768,-32768, 756,-32768,-32768,-32768,-32768,-32768,
1201 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 836,
1202 917,-32768,-32768, 6444,-32768,-32768,-32768,-32768,-32768,-32768,
1203 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1204 -32768, 863, 765,-32768,-32768, 798, 798, 523,-32768, 413,
1205 -32768,-32768,-32768, 3368,-32768,-32768, 351, 5764, 393, 843,
1206 -32768,-32768, 912,-32768,-32768, 958, 886, 765, 79,-32768,
1207 425, 954,-32768, 798,-32768, 302,-32768,-32768,-32768, 978,
1208 5564, 5564, 5564, 1885, 1000,-32768,-32768,-32768, 462, 985,
1209 242, 995, 1001,-32768,-32768,-32768,-32768,-32768,-32768, 1009,
1210 3368,-32768,-32768, 5564, 1020, 1025, 1028, 1030, 1039, 404,
1211 451, 3519,-32768, 4793,-32768,-32768,-32768,-32768, 1040,-32768,
1212 -32768, 4793,-32768, 4793,-32768,-32768,-32768, 5452, 5564,-32768,
1213 -32768, 134, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564,
1214 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564,
1215 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564,-32768,
1216 -32768,-32768,-32768, 5564, 389,-32768,-32768, 2488,-32768,-32768,
1217 1054,-32768,-32768, 1057,-32768, 5564, 457, 1047, 1055,-32768,
1218 -32768,-32768,-32768,-32768, 128, 5900,-32768,-32768, 3580, 3172,
1219 1071,-32768,-32768, 5564, 87, 3731, 4876, 765,-32768, 681,
1220 6580, 992, 1067, 1072, 1073, 1074, 1073, 798, 1080, 375,
1221 -32768,-32768, 5463, 1066, 653,-32768, 770,-32768, 765,-32768,
1222 765,-32768,-32768,-32768, 1021, 1086, 1092,-32768, 765, 425,
1223 -32768, 798, 1097,-32768, 1103, 798, 1105,-32768, 495, 1104,
1224 588, 1104, 1110,-32768,-32768, 985, 1106,-32768, 4698,-32768,
1225 -32768, 1107, 1109,-32768,-32768,-32768,-32768,-32768,-32768, 5564,
1226 -32768, 1113,-32768, 3731,-32768,-32768, 1123, 1111,-32768, 640,
1227 -32768, 263, 798, 798,-32768,-32768,-32768,-32768,-32768,-32768,
1228 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1019, 1019,
1229 244, 244, 59, 59, 59, 59, 471, 471, 279, 526,
1230 557, 5564, 5564, 5564,-32768, 5596, 5628,-32768,-32768, 3067,
1231 -32768, 3474, 3919,-32768,-32768, 1115, 673,-32768,-32768, 765,
1232 -32768,-32768, 1116, 1114,-32768, 1117,-32768, 4295,-32768,-32768,
1233 4107, 4340, 985,-32768, 1122,-32768,-32768, 1126, 1128,-32768,
1234 1132, 1129,-32768, 506,-32768, 1130,-32768,-32768,-32768,-32768,
1235 1137, 507, 770, 5495, 1145,-32768, 183,-32768, 273,-32768,
1236 -32768, 5564, 234, 765,-32768,-32768, 1150,-32768,-32768, 1167,
1237 6580,-32768,-32768,-32768,-32768, 1149,-32768, 1885,-32768, 5202,
1238 -32768,-32768, 1170,-32768,-32768, 1168,-32768,-32768, 1172,-32768,
1239 5564,-32768,-32768,-32768,-32768, 560, 470, 565, 3368,-32768,
1240 3368,-32768,-32768,-32768, 4446, 4793, 5564,-32768, 5684,-32768,
1241 5564,-32768, 922,-32768,-32768,-32768, 4491, 4597,-32768, 4642,
1242 -32768,-32768, 1169,-32768,-32768,-32768,-32768,-32768, 1177,-32768,
1243 -32768, 1179,-32768, 798,-32768, 798,-32768,-32768, 214, 1176,
1244 -32768, 1180, 210, 1119, 916,-32768,-32768, 1182,-32768, 1178,
1245 -32768, 315, 922,-32768, 798, 419, 4793, 1186, 5202,-32768,
1246 1185,-32768, 1190, 1188, 1193,-32768, 5564, 5684,-32768,-32768,
1247 -32768,-32768, 1192, 1195,-32768,-32768, 682, 3368, 5564, 5564,
1248 5564, 5564, 5564, 5564, 5585, 5585, 1197, 713, 788, 943,
1249 1121, 790, 1051, 742, 514, 745, 578, 1194, 1189, 1187,
1250 1174, 170, 1200,-32768, 33,-32768,-32768,-32768,-32768,-32768,
1251 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1252 -32768, 791, 793,-32768, 1044,-32768,-32768,-32768,-32768,-32768,
1253 -32768,-32768,-32768,-32768,-32768,-32768, 922,-32768, 1141,-32768,
1254 -32768, 1142,-32768, 1143,-32768,-32768,-32768, 1146,-32768, 2137,
1255 1147, 922,-32768,-32768, 4748,-32768,-32768,-32768,-32768, 6308,
1256 -32768,-32768, 6308,-32768,-32768,-32768,-32768, 5564, 800, 1211,
1257 -32768,-32768,-32768, 1214, 1222,-32768, 916, 5564, 798,-32768,
1258 -32768, 916, 777,-32768, 1219, 916, 1151,-32768, 922,-32768,
1259 1218,-32768,-32768,-32768, 922,-32768,-32768,-32768,-32768,-32768,
1260 -32768,-32768, 413, 1221,-32768, 646,-32768, 770,-32768,-32768,
1261 1185, 1985, 1226, 798,-32768,-32768, 820, 1229, 5564, 1170,
1262 1170, 1239, 828, 1234, 844, 845, 850, 857, 859, 867,
1263 873, 874, 5564, 5484, 5564, 880, 887, 157, 5564, 5564,
1264 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564,
1265 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564,
1266 5564, 5564, 5564, 5564, 5564, 5564,-32768, 5564,-32768, 1240,
1267 1244,-32768, 1075, 1224, 235, 248,-32768,-32768,-32768,-32768,
1268 -32768,-32768,-32768, 558,-32768,-32768,-32768,-32768, 916, 623,
1269 -32768, 128, 5036,-32768, 6308, 5036, 6308,-32768,-32768,-32768,
1270 -32768,-32768,-32768, 815, 1241,-32768,-32768,-32768,-32768,-32768,
1271 -32768,-32768,-32768,-32768, 922,-32768, 79,-32768, 593,-32768,
1272 -32768,-32768, 5516, 1246,-32768,-32768, 1016,-32768, 1251, 985,
1273 -32768,-32768, 890, 4698, 1249, 898, 906, 291, 798, 798,
1274 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1275 -32768, 918, 937, 945, 736, 947, 497, 555, 105, 533,
1276 631, 714, 668, 725, 86, 638, 328, 560, 5564, 565,
1277 5684,-32768, 460, 1044,-32768,-32768,-32768,-32768,-32768, 695,
1278 -32768, 6036, 235, 45, 45,-32768,-32768, 575, 705,-32768,
1279 -32768, 111,-32768, 894, 212,-32768,-32768,-32768,-32768,-32768,
1280 1250,-32768, -3,-32768, 976,-32768, 489, 1248, 79,-32768,
1281 111,-32768,-32768,-32768, 1256, 656,-32768,-32768, 5036,-32768,
1282 5036,-32768,-32768, 3127,-32768, 733,-32768, 1184, 600,-32768,
1283 -32768,-32768, 5564, 798,-32768, 1098, 952,-32768, 989, 991,
1284 -32768,-32768, 911,-32768,-32768, 235,-32768,-32768,-32768,-32768,
1285 -32768,-32768, 78, 575, 160, 798, 798, 45,-32768, 111,
1286 111,-32768, 602, 809,-32768, 1266, 961, 145, 212, 603,
1287 154,-32768,-32768, 894,-32768,-32768,-32768, 894, 30, 798,
1288 798, 1267, 894,-32768, 79, 1270, 885,-32768, 765,-32768,
1289 -32768, 1271,-32768, 1272, 1276,-32768, 1277,-32768,-32768,-32768,
1290 1208,-32768, 734, 1275,-32768, 295,-32768,-32768,-32768, 1278,
1291 994, 996,-32768,-32768,-32768,-32768, 575, 1274, 460,-32768,
1292 -32768, 575, 549, 602, 532, 798, 798, 111,-32768, 1108,
1293 -32768,-32768, 894,-32768, 145, 1264,-32768, 603,-32768, 603,
1294 -32768,-32768, 1279,-32768,-32768, 1108, 1280,-32768,-32768,-32768,
1295 -32768, 5564, 656, 1290,-32768,-32768,-32768, 1289,-32768, 1291,
1296 -32768,-32768,-32768,-32768, 1002, 5564,-32768,-32768,-32768, 1283,
1297 -32768,-32768, 602,-32768,-32768,-32768, 1287, 154,-32768,-32768,
1298 -32768,-32768,-32768,-32768,-32768,-32768, 5564,-32768,-32768,-32768,
1299 -32768,-32768,-32768,-32768,-32768,-32768, 1314, 1315,-32768
1302 static const short yypgoto[] = {-32768,
1303 -32768, 1230,-32768,-32768,-32768,-32768, -361, -94,-32768,-32768,
1304 1004,-32768,-32768,-32768,-32768,-32768, 77,-32768,-32768, 392,
1305 -32768,-32768, 102, 135,-32768, 208,-32768,-32768,-32768, -970,
1306 -32768, -858,-32768,-32768, -627, -698,-32768,-32768,-32768, -548,
1307 -32768, -448,-32768, -325,-32768, 309,-32768,-32768, 641, -646,
1308 -32768, 238, 305,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1309 -32768,-32768,-32768,-32768, -864, 161,-32768, -1005,-32768, 278,
1310 -32768,-32768, -609, 458, 1093,-32768,-32768, -607,-32768,-32768,
1311 -84, -343, -356, -275, -357, -360, -369, -395, -492, -513,
1312 -32768, -587,-32768, -117,-32768,-32768, 903, 1412, -570, -402,
1313 28,-32768,-32768,-32768, -456,-32768,-32768,-32768, 753, -251,
1314 870,-32768, -886, -732,-32768,-32768, 510,-32768,-32768,-32768,
1315 -322,-32768,-32768,-32768, -311,-32768,-32768,-32768,-32768,-32768,
1316 544,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1317 -32768, 1, 758,-32768, 953,-32768,-32768,-32768,-32768,-32768,
1318 -32768,-32768,-32768,-32768,-32768, -55, -736, -852,-32768, 143,
1319 -32768,-32768, 662, 665, 494, 2, -379, 1213,-32768, 4,
1320 -32768,-32768, -549,-32768,-32768,-32768, 647, -103, 1045,-32768,
1321 -431, 862, 1331,-32768, 1112,-32768, 117,-32768,-32768,-32768,
1322 -32768, -135,-32768,-32768,-32768,-32768,-32768, 20, 258, 997,
1323 1165,-32768,-32768, 1458,-32768,-32768, -317,-32768, 1139, 199,
1324 -588, -599,-32768, 851,-32768,-32768, 946, -186, 657, 512,
1325 -428, 140,-32768, 156, 39,-32768,-32768, 165,-32768, 181,
1326 -32768,-32768, 650,-32768, 348, -608,-32768,-32768,-32768,-32768,
1327 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1328 -32768,-32768,-32768,-32768,-32768, 1518,-32768,-32768, 1639, -273,
1336 static const short yytable[] = { 121,
1337 114, 119, 596, 541, 121, 134, 129, 137, 121, 216,
1338 216, 216, 487, 249, 250, 251, 252, 253, 254, 255,
1339 256, 257, 258, 593, 318, 290, 300, 97, 540, 200,
1340 638, 564, 531, 532, 502, 465, 539, 537, 538, 730,
1341 745, 732, 680, 529, 530, 426, 839, 698, 209, 636,
1342 591, 1028, 1112, -600, 278, 566, 1182, -600, 283, 467,
1343 285, 742, 289, 1107, 1066, 1047, 936, 291, 1024, 130,
1344 334, 335, 336, 337, 338, 339, 93, 437, 1025, 307,
1345 1057, 308, 803, 1057, 943, 418, 121, 114, 119, 947,
1346 422, 471, 423, 951, 1163, 1164, 265, 625, 730, 745,
1347 732, 268, 1155, 1095, 779, 1096, -642, 605, 389, 390,
1348 -642, 565, 268, 268, 97, 533, 534, 535, 536, 121,
1349 742, 262, 1097, 372, 645, -634, 198, 228, 228, -634,
1350 954, 293, 267, 814, 1100, 741, 958, 121, 313, 395,
1351 396, 314, 658, 403, 1101, -273, 404, 1181, 121, 917,
1352 239, 239, 1187, 216, 389, 390, 740, 284, 1033, 1093,
1353 1094, 513, 1213, 93, 927, 1127, 240, 240, 502, 1174,
1354 1119, 216, 1120, 333, 210, 1108, 1110, 1109, 514, 401,
1355 443, 1113, 839, 1024, 979, 316, 1156, 1035, 839, 1121,
1356 211, 682, 209, 1025, 741, 402, 1052, 216, 1059, 688,
1357 1061, 980, 1217, 302, 780, 216, 1057, 216, 1057, 216,
1358 907, 438, 216, 935, 471, 740, 937, 406, 467, 1183,
1359 216, 553, 413, 690, 321, 216, 908, 216, 779, 412,
1360 80, 1026, 414, 1162, 813, 1109, 209, 492, 471, 453,
1361 216, 216, 691, 779, 209, 1035, 459, 3, 209, 461,
1362 1175, 209, 1178, 739, 322, 662, 1067, 469, 689, 403,
1363 472, 431, 404, 323, 848, 265, 488, 201, 234, 234,
1364 198, 1024, -413, -413, -413, 387, 388, -413, -413, 738,
1365 209, 1025, 121, 404, 440, 121, 121, 121, 737, 633,
1366 265, 736, 734, 562, 422, 686, 80, 1102, 452, 526,
1367 527, 528, 455, 324, 1013, 733, 471, 121, 839, 464,
1368 326, 404, 739, 121, 198, 404, 318, 1080, 210, 832,
1369 327, 1203, 198, 1015, 1016, 687, 198, 782, 780, 198,
1370 788, 1140, 395, 396, 211, 318, 1060, 228, 738, 80,
1371 1038, 791, 228, 780, 228, 80, 1026, 737, -646, 176,
1372 736, 734, -646, 216, 1017, 1018, 344, 228, 198, 1178,
1373 239, 216, 210, 216, 733, 239, 398, 239, 1019, 560,
1374 210, 404, 345, 735, 210, 451, 240, 210, 211, 472,
1375 239, 240, 318, 240, 575, 420, 211, 622, 404, 580,
1376 211, 583, 1070, 211, 1010, 404, 240, 80, 1038, 488,
1377 346, 730, 745, 732, 621, 938, 210, 216, 599, 680,
1378 347, 201, 604, 1008, 848, 945, -273, 3, 453, -413,
1379 -413, -413, 211, 742, -413, -413, 3, 551, 216, 216,
1380 546, 547, 735, 80, 1026, 216, -274, 121, 260, 574,
1381 122, 452, -273, 348, 453, 122, 209, 121, -274, 140,
1382 466, 782, 3, 561, 788, 201, 500, 501, 121, 1136,
1383 121, 1138, 349, 201, 561, 791, 782, 201, 121, 788,
1384 201, 121, 314, 443, 420, 121, 318, 404, 234, 485,
1385 791, 488, 404, 234, 318, 234, 1159, -413, -413, -413,
1386 404, 712, -413, -413, 124, 125, 126, 741, 234, 201,
1387 80, 81, 139, 216, 350, 84, 85, 391, 392, 1007,
1388 -46, 471, 121, 121, 1119, 404, 1120, -631, 740, 615,
1389 704, -631, 393, 394, 198, 673, 674, 122, 387, 388,
1390 -413, 678, -413, 1121, 1006, 713, 679, 714, 997, 998,
1391 -413, 448, 1005, 1003, 1004, 228, 228, 472, -692, 995,
1392 996, 216, 216, -635, 397, 1024, 1159, -635, 1209, 121,
1393 122, 650, 1033, 895, 896, 1025, 703, 216, 239, 239,
1394 216, 216, 210, 1208, 1165, -632, 1166, -696, 315, -632,
1395 561, 1034, 389, 390, 240, 240, 387, 388, 211, 325,
1396 209, 1035, -693, 1167, 575, 398, 764, 471, 561, 399,
1397 1095, 843, 1096, 121, 80, 81, 139, 314, 404, 84,
1398 85, 696, 617, 407, 864, 739, -413, 678, -413, 1097,
1399 400, 999, 1000, 1001, 1002, 453, -413, 1165, 1119, 1166,
1400 1120, 901, 902, 3, 865, 866, 867, 868, 869, 870,
1401 1053, 738, 1030, 1054, 216, 216, 1167, 1121, 762, 413,
1402 737, -636, 1076, 736, 734, -636, 216, 216, -644, 216,
1403 631, -519, -644, 408, 632, 201, 397, 733, 198, -273,
1404 -698, 453, 1191, 121, 878, 121, -273, 1131, 453, 3,
1405 389, 390, 455, 1068, 216, -695, 234, 234, -639, 3,
1406 318, 121, -639, 404, 121, 121, 216, 648, -413, 846,
1407 318, -413, 404, -413, 391, 392, 862, 762, 80, 81,
1408 139, 593, 265, 84, 85, 1086, 210, 80, 1026, 393,
1409 394, 176, 265, 122, -698, 1098, 445, 447, 449, 921,
1410 922, 415, 211, -597, -637, 735, -694, -597, -637, 1036,
1411 1037, 971, 416, 80, 1038, -640, 1087, 1039, 122, -640,
1412 265, 843, 100, 1054, 315, 1099, -629, 100, -465, 453,
1413 -629, 391, 392, 389, 390, 246, 247, 248, 421, 384,
1414 385, 386, 953, 893, 894, 1124, 393, 394, -413, -413,
1415 -413, 897, 898, -413, -413, 80, 81, 139, 428, 1224,
1416 84, 85, 1141, -273, 216, 594, 899, 900, 3, 948,
1417 932, 427, 818, 932, 819, 992, 993, 994, -596, 201,
1418 -620, -595, -596, 404, -620, -595, 216, 911, 121, 939,
1419 674, 216, -698, -698, 1235, 216, 265, -698, -698, 1168,
1420 1169, 80, 81, 139, 1063, 1064, 84, 85, 961, 100,
1421 404, 80, 81, 139, 969, 121, 84, 85, 404, 846,
1422 432, 1189, 973, 121, 270, 271, 272, 273, 274, 275,
1423 276, 277, 433, 279, -614, -619, 282, 458, -614, -619,
1424 -618, 368, 100, 369, -618, -413, 1056, -617, 122, -616,
1425 439, -617, 298, -616, 303, 304, 306, -615, 586, 1077,
1426 312, -615, -413, -612, -613, 370, 371, -612, -613, 122,
1427 -609, 122, 1190, 1069, -609, 1054, 298, -610, 463, 315,
1428 -601, -610, 608, 340, -601, 1031, 613, 1034, -604, 80,
1429 81, 139, -604, 1050, 84, 85, 631, 1035, 216, 460,
1430 1079, 404, 1153, 932, 817, 932, 932, 932, -624, 294,
1431 435, 818, -624, 819, 155, 156, 157, 158, 159, 160,
1432 80, 81, 139, 634, 635, 84, 85, -625, 286, 287,
1433 288, -625, 161, 162, 163, -626, 874, -628, 875, -626,
1434 -413, -628, -622, 298, 1150, 462, -622, 468, 121, 121,
1435 384, 385, 386, 80, 81, 139, 164, -413, 84, 85,
1436 876, 877, 1171, 1172, 765, 766, 767, 768, 1129, 478,
1437 122, 769, 770, 771, 772, 773, 774, 775, 486, -605,
1438 762, -603, 434, -605, -607, -603, -608, 484, -607, 489,
1439 -608, 1091, -606, 1031, 1031, 490, -606, 1115, 1116, 1117,
1440 173, 1105, 491, 1050, 1050, 100, 441, 494, 444, 446,
1441 1072, 1073, 495, 1074, 315, 496, 298, 497, 290, 1090,
1442 1105, 454, 384, 385, 386, 121, 498, 1134, 504, 932,
1443 100, 932, 555, 216, 280, 281, 312, 556, 121, 411,
1444 574, 558, 1143, 121, 318, 1036, 1037, 1195, 559, 80,
1445 1038, 563, 576, 1039, 890, 891, 892, 577, 1230, 592,
1446 578, -273, 581, 298, 1031, 121, 121, 1031, 587, 1105,
1447 1105, 80, 174, 175, 298, 176, 84, 85, 1050, 318,
1448 1050, 600, 601, 1050, 586, 603, 586, 1050, 373, 121,
1449 121, 609, 1050, 610, 404, 825, 614, 618, 121, 624,
1450 619, 623, 833, 629, 630, 613, 122, 627, 647, 651,
1451 652, 654, 121, 879, 664, 667, 669, 672, 205, 237,
1452 237, 670, 675, 374, 375, 376, 377, 378, 379, 380,
1453 381, 382, 383, 677, 1031, 121, 121, 1105, 683, 1234,
1454 692, 694, 1050, 697, 202, 235, 235, 282, 880, 881,
1455 882, 883, 884, 885, 886, 887, 888, 889, 620, 706,
1456 100, 765, 121, 797, 1134, 707, 801, 579, 804, 582,
1457 811, 588, 830, 850, 589, 852, 812, 454, 828, 595,
1458 854, 100, 855, 100, 856, 503, 860, 1050, 602, 861,
1459 873, 312, 903, 506, 909, 507, 905, 904, 611, 906,
1460 912, 918, 919, 920, 317, 940, 923, 926, 941, 942,
1461 950, 952, 956, 441, 959, 966, 493, 317, 317, 317,
1462 317, 317, 317, 970, 342, 343, 972, 825, 974, 946,
1463 1011, 1012, 825, 1014, 176, 1071, 825, 1065, 1075, 1078,
1464 511, 1123, 1111, 1130, 1142, 515, 516, 517, 518, 519,
1465 520, 521, 522, 523, 524, 525, 122, 1170, 1186, 1148,
1466 1168, 1193, 205, 1196, 968, 1197, 1199, 569, 1201, 1202,
1467 1207, 1215, 1205, 1218, 1221, 1219, 545, 1226, 1228, 1231,
1468 1229, 1232, 100, 1238, 1239, 1041, 259, 470, 202, 1233,
1469 1220, 1179, 1085, 1154, 816, 1210, 663, 1092, 1126, 441,
1470 597, 977, 949, 925, 666, 1225, 205, 809, 807, 962,
1471 292, 842, 244, 456, 205, 595, 499, 1204, 205, 684,
1472 685, 205, 430, 552, 628, 851, 312, 858, 1084, 237,
1473 419, 964, 202, 965, 237, 569, 237, 0, 0, 825,
1474 202, 0, 0, 0, 202, 0, 441, 202, 0, 237,
1475 205, 0, 0, 0, 0, 235, 710, 711, 0, 0,
1476 235, 298, 235, 298, 0, 0, 0, 0, 0, 0,
1477 0, 0, 0, 0, 0, 235, 202, 0, 0, 0,
1478 0, 0, 0, 0, 569, 0, 0, 799, 0, 1081,
1479 1082, 196, 0, 0, 0, 806, 0, 808, 0, 0,
1480 0, 454, 569, 661, 0, 0, 0, 0, 826, 827,
1481 0, 0, 0, 831, 0, 0, 0, 611, 844, 0,
1482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 203, 236, 236,
1484 298, 0, 0, 0, 0, 0, 317, 317, 317, 317,
1485 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
1486 317, 317, 0, 0, 0, 0, 122, 0, 0, 0,
1487 0, 0, 0, 0, 825, 508, 661, 716, 0, 122,
1488 0, 0, 0, 0, 1147, 0, 0, 0, 0, 661,
1489 0, 0, 700, 0, 0, 0, 317, 213, 242, 242,
1490 0, 0, 0, 709, 0, 0, 1160, 1161, 0, 0,
1491 0, 297, 0, 0, 0, 317, 205, 0, 0, 0,
1492 929, 0, 0, 0, 0, 0, 0, 0, 849, 0,
1493 1184, 1185, 0, 329, 0, 331, 0, 237, 237, 122,
1494 0, 0, 202, 0, 0, 0, 0, 0, 0, 0,
1495 0, 317, 0, 122, 0, 0, 0, 820, 0, 0,
1496 0, 0, 317, 235, 235, 0, 0, 960, 844, 0,
1497 595, 700, 0, 0, 0, 0, 1211, 1212, 0, 196,
1498 0, 203, 0, 0, 0, 0, 0, 196, 0, 0,
1499 0, 196, 0, 0, 196, 0, 0, 0, 0, 328,
1500 0, 0, 417, 122, 317, 294, 317, 0, 640, 642,
1501 155, 156, 157, 158, 159, 160, 0, 0, 215, 243,
1502 243, 0, 0, 196, 0, 203, 0, 0, 161, 162,
1503 163, 0, 0, 203, 0, 0, 0, 203, 0, 0,
1504 203, 213, 0, 0, 0, 0, 0, 0, 236, 0,
1505 0, 0, 164, 236, 1055, 236, 317, 0, 0, 0,
1506 205, 1062, 0, 0, 317, 0, 0, 0, 236, 203,
1507 0, 0, 0, 0, 0, 450, 0, 0, 0, 0,
1508 0, 0, 0, 0, 0, 213, 202, 0, 0, 820,
1509 0, 0, 0, 213, 820, 0, 173, 213, 820, 0,
1510 213, 0, 479, 480, 481, 482, 0, 0, 242, 0,
1511 0, 731, 0, 242, 0, 242, 0, 0, 0, 0,
1512 0, 0, 450, 0, 700, 0, 0, 0, 242, 213,
1513 0, 0, 0, 450, 0, 0, 0, 0, 0, 0,
1514 0, 0, 0, 0, 0, 975, 511, 0, 0, 0,
1515 512, 981, 982, 983, 984, 985, 986, 987, 988, 989,
1516 990, 991, 215, 0, 0, 0, 0, 80, 295, 296,
1517 731, 176, 0, 0, 0, 1128, 0, 0, 100, 0,
1518 0, 317, 317, 317, 317, 317, 317, 871, 872, 196,
1519 0, 844, 0, 0, 1145, 0, 0, 557, 0, 0,
1520 441, 820, 0, 1151, 1152, 0, 215, 0, 0, 0,
1521 0, 0, 0, 0, 215, 0, 0, 0, 215, 0,
1522 0, 215, 0, 0, 0, 0, 0, 0, 0, 243,
1523 0, 0, 0, 0, 243, 203, 243, 0, 0, 0,
1524 0, 0, 0, 0, 0, 0, 1188, 0, 0, 243,
1525 215, 100, 0, 1192, 1194, 0, 236, 236, 0, 0,
1526 0, 0, 0, 0, 0, 844, 0, 0, 0, 0,
1527 317, 0, -255, 0, 0, 0, 0, 0, 294, 0,
1528 317, 0, 0, 155, 156, 157, 158, 159, 160, 0,
1529 0, 1214, 0, 0, 0, 213, 0, 0, 0, 0,
1530 0, 161, 162, 163, 0, 0, 0, 0, 0, 0,
1531 0, 1222, 1223, 0, 0, 100, 242, 242, 1227, 0,
1532 0, 317, 0, 0, 637, 164, 0, 0, 0, 0,
1533 0, 0, 0, 196, 0, 0, 820, 0, 0, 0,
1534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1535 0, 0, 317, 317, 317, 317, 317, 317, 317, 317,
1536 317, 317, 317, 317, 317, 317, 317, 317, 317, 173,
1537 317, 0, 0, 699, -690, 0, 0, 0, 294, 203,
1538 0, 0, 0, 155, 156, 157, 158, 159, 160, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 482,
1540 0, 161, 162, 163, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 215, 0, 0, 0,
1542 450, 0, 450, 0, 0, 164, 0, 0, 717, 0,
1543 0, 0, 763, 0, -1, 1, 317, 243, 243, 213,
1544 80, 295, 296, 0, 176, 0, 0, 0, 0, 0,
1545 0, 0, 2, 0, 0, 0, 0, 0, -273, 0,
1546 0, 0, 0, 0, 0, 0, 0, 0, 3, 173,
1547 0, 0, 0, 731, 0, 0, 0, 0, 4, 0,
1548 5, 0, 0, 0, 0, 0, 0, 0, 857, 0,
1549 0, 0, 0, 0, 0, 0, 0, 0, 0, 863,
1550 0, 0, -413, -413, -413, 0, 6, 0, 0, 0,
1551 0, 7, 8, 9, 0, 0, 0, 0, 0, 0,
1552 0, 0, 0, 0, 0, 0, 10, 11, 12, 0,
1553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1554 80, 295, 296, 0, 176, 13, 14, 15, 16, 0,
1555 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1556 215, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1557 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1558 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1559 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1560 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1561 76, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1562 80, 81, 82, 83, 0, 84, 85, 86, 23, 24,
1563 25, 26, 0, 27, 0, 0, 0, 0, 32, 33,
1564 0, 0, 36, 37, 0, 39, 40, 41, 42, 0,
1565 0, 0, 0, 0, 317, 0, 978, 0, 0, 0,
1566 54, 55, 0, 0, -2, 1, 0, 0, 317, 0,
1567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1568 0, 0, 2, 0, 0, 79, 0, 0, -273, 317,
1569 0, 0, 0, 0, 0, 83, 0, 0, 3, 0,
1570 0, 0, 0, 0, 0, 0, 0, 0, 4, 0,
1571 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1573 0, 0, -413, -413, -413, 0, 6, 0, 0, 0,
1574 0, 7, 8, 9, 482, 0, 0, 0, 0, 0,
1575 0, 0, 0, 0, 0, 0, 10, 11, 12, 0,
1576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1577 0, 0, 0, 0, 0, 13, 14, 15, 16, 0,
1578 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1579 1083, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1580 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1581 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1582 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1583 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1584 76, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1585 80, 81, 82, 83, 1146, 84, 85, 86, 141, 0,
1586 0, 0, 0, 142, 143, 144, 0, 145, 146, 147,
1587 148, 149, 150, 151, 152, 153, -547, 549, 0, 0,
1588 0, 154, 0, 0, 0, 0, 155, 156, 157, 158,
1589 159, 160, 0, 0, 0, 0, 0, 0, 0, -273,
1590 -273, 4, 0, 5, 161, 162, 163, 0, 0, 0,
1591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1592 0, 0, 0, 0, 0, -413, -413, -413, 164, 6,
1593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1595 0, 0, 0, 166, 167, 168, 169, 170, 171, 0,
1596 0, 0, 0, 0, 0, 0, 0, 172, 13, 14,
1597 15, 16, 173, 17, 18, 19, 20, 21, 22, 23,
1598 24, 25, 26, 0, 27, 28, 29, 30, 31, 32,
1599 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1600 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1601 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1602 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1603 73, 74, 75, 76, 77, 78, 79, 0, 0, 0,
1604 0, 0, 0, 80, 174, 550, 83, 176, 177, 85,
1605 86, 141, 0, 0, 0, 0, 142, 143, 144, 0,
1606 145, 146, 147, 148, 149, 150, 151, 152, 153, -170,
1607 0, 0, 0, 0, 154, 0, 0, 0, 0, 155,
1608 156, 157, 158, 159, 160, 0, 0, 0, 0, 0,
1609 0, 0, -273, -273, -273, 0, 0, 161, 162, 163,
1610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1611 0, 0, 0, 0, 0, 0, 0, 0, -273, -273,
1612 -273, 164, 0, 0, 0, 0, 0, 0, 0, 0,
1613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1614 0, 0, 0, 0, 0, 0, 166, 167, 168, 169,
1615 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1616 172, -273, -273, -273, -273, 173, -273, -273, -273, -273,
1617 -273, -273, -273, -273, -273, -273, 0, -273, -273, -273,
1618 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1619 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1620 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1621 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1622 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1623 0, 0, 0, 0, 0, 0, 80, 174, 175, -273,
1624 176, 177, 85, -273, 218, 0, 0, 0, 0, 142,
1625 143, 144, 0, 0, 219, 147, 148, 149, 150, 151,
1626 152, 220, -170, -551, 0, 0, 0, 221, 0, 0,
1627 0, 0, 155, 156, 157, 158, 159, 160, 0, 0,
1628 0, 0, 0, 0, 0, -273, -273, -273, 0, 0,
1629 161, 162, 163, 0, 0, 0, 0, 0, 0, 0,
1630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1631 0, -273, -273, -273, 164, 0, 0, 0, 0, 0,
1632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1633 0, 0, 0, 0, 0, 0, 0, 0, 0, 166,
1634 167, 168, 169, 170, 171, 0, 0, 0, 0, 0,
1635 0, 0, 0, 172, -273, -273, -273, -273, 173, -273,
1636 -273, -273, -273, -273, -273, -273, -273, -273, -273, 0,
1637 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1638 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1639 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1640 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1641 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1642 -273, -273, -273, 0, 0, 0, 0, 0, 0, 80,
1643 174, 175, -273, 176, 222, 223, -273, -168, 0, 0,
1644 0, 0, -168, -168, -168, 0, -168, -168, -168, -168,
1645 -168, -168, -168, -168, -168, -168, -168, -168, -696, -168,
1646 -168, 0, -168, 0, -168, -168, -168, -168, -168, -168,
1647 -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
1648 0, -168, 0, -168, -168, -168, -168, -168, -168, -168,
1649 -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
1650 -168, -168, -168, -168, 0, 0, 0, -168, 0, 0,
1651 0, 0, 0, 0, 0, 817, 1139, 0, 0, 0,
1652 294, 0, 818, 0, 819, 155, 156, 157, 158, 159,
1653 160, 0, -168, -168, -168, -168, -168, -168, 0, 0,
1654 0, 0, 218, 161, 162, 163, -168, 142, 143, 144,
1655 0, -168, 219, 147, 148, 149, 150, 151, 152, 220,
1656 -492, -492, 0, 0, 0, 221, -492, 164, 0, 0,
1657 155, 156, 157, 158, 159, 160, 0, 0, 0, 0,
1658 0, 0, 0, -273, -273, 0, 0, 0, 161, 162,
1659 163, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1661 0, 173, 164, 0, 0, 0, 0, 0, 0, 0,
1662 0, 0, -168, -168, -168, 0, -168, -168, -168, 0,
1663 0, 0, 0, 0, 0, 0, -492, 166, 167, 168,
1664 169, 170, 171, 0, 0, 0, 0, 0, 141, 0,
1665 0, 172, 0, 142, 143, 144, 173, 145, 146, 147,
1666 148, 149, 150, 151, 152, 153, -547, 0, 0, 0,
1667 0, 154, 0, 0, 0, 0, 155, 156, 157, 158,
1668 159, 160, 80, 174, 175, 0, 176, 84, 85, -273,
1669 -273, 0, 0, 141, 161, 162, 163, 0, 142, 143,
1670 144, 0, 145, 146, 147, 148, 149, 150, 151, 152,
1671 153, -547, 0, 0, 0, 0, 154, 0, 164, 0,
1672 0, 155, 156, 157, 158, 159, 160, 80, 174, 175,
1673 0, 176, 222, 223, -273, -273, 0, 0, 0, 161,
1674 162, 163, 165, 166, 167, 168, 169, 170, 171, 0,
1675 0, 0, 0, 0, 0, 0, -170, 172, 0, 0,
1676 0, 294, 173, 164, 0, 0, 155, 156, 157, 158,
1677 159, 160, 0, 0, 0, 0, 0, 0, 0, 0,
1678 0, 0, 0, 0, 161, 162, 163, -520, 166, 167,
1679 168, 169, 170, 171, 0, 0, 0, 0, 0, 218,
1680 0, 0, 172, 0, 142, 143, 144, 173, 164, 219,
1681 147, 148, 149, 150, 151, 152, 220, -547, -551, 0,
1682 0, 0, 221, 0, 0, 0, 0, 155, 156, 157,
1683 158, 159, 160, 80, 174, 175, 0, 176, 177, 85,
1684 -273, -273, 0, 0, 141, 161, 162, 163, 0, 142,
1685 143, 144, 173, 145, 146, 147, 148, 149, 150, 151,
1686 152, 153, -547, 643, 0, 0, 0, 154, 0, 164,
1687 0, 0, 155, 156, 157, 158, 159, 160, 80, 174,
1688 175, 0, 176, 177, 85, -273, -273, 0, 0, 0,
1689 161, 162, 163, -488, 166, 167, 168, 169, 170, 171,
1690 0, 0, 0, 0, 0, 0, 0, -170, 172, 0,
1691 0, 0, 352, 173, 164, 0, 0, 155, 156, 157,
1692 158, 159, 160, 80, 295, 296, 0, 176, 0, 0,
1693 0, 0, 0, 0, 0, 161, 162, 163, 0, 166,
1694 167, 168, 169, 170, 171, 0, 0, 0, 0, 0,
1695 218, 0, 0, 172, 0, 142, 143, 144, 173, 164,
1696 219, 147, 148, 149, 150, 151, 152, 220, -547, -551,
1697 0, 0, 0, 221, 0, 0, 0, 0, 155, 156,
1698 157, 158, 159, 160, 80, 174, 175, 0, 176, 222,
1699 223, -273, -273, 0, 0, 141, 161, 162, 163, 0,
1700 142, 143, 144, 173, 145, 146, 147, 148, 149, 150,
1701 151, 152, 153, -547, 0, 0, 0, 0, 154, 0,
1702 164, 0, 0, 155, 156, 157, 158, 159, 160, 80,
1703 174, 175, 0, 176, 177, 85, -273, -273, 0, 0,
1704 0, 161, 162, 163, 0, 166, 167, 168, 169, 170,
1705 171, 0, 0, 0, 0, 0, 0, 0, 0, 172,
1706 0, 0, 0, 0, 173, 164, 0, 0, 0, 0,
1707 0, 0, 0, 0, 80, 295, 296, 0, 176, 0,
1708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1709 166, 167, 168, 169, 170, 171, 0, 0, 0, 0,
1710 0, 0, 0, 0, 172, 0, 142, 143, 144, 173,
1711 145, 146, 147, 148, 149, 150, 151, 152, 220, -547,
1712 567, 0, 0, 0, 352, 0, 0, 0, 0, 155,
1713 156, 157, 158, 159, 160, 80, 174, 175, 0, 176,
1714 222, 223, -273, -273, 4, 0, 5, 161, 162, 163,
1715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1717 0, 164, 6, 0, 0, 0, 0, 0, 0, 0,
1718 80, 174, 175, 0, 176, 177, 85, 0, 0, 0,
1719 0, 0, 0, 0, 0, 0, 166, 167, 168, 169,
1720 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1721 568, 13, 14, 15, 16, 173, 17, 18, 19, 20,
1722 21, 22, 23, 24, 25, 26, 0, 27, 28, 29,
1723 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1724 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1725 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1726 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1727 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1728 0, 0, 0, 0, 0, 0, 80, 174, 550, 83,
1729 176, 177, 85, 86, 142, 143, 144, 0, 145, 146,
1730 147, 148, 149, 150, 151, 152, 220, -547, 644, 0,
1731 0, 0, 352, 0, 0, 0, 0, 155, 156, 157,
1732 158, 159, 160, 0, 0, 0, 0, 0, 0, 0,
1733 -273, -273, 4, 0, 5, 161, 162, 163, 0, 0,
1734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 0, 0, 0, 0, 164,
1736 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1738 0, 0, 0, 0, 166, 167, 168, 169, 170, 171,
1739 0, 0, 0, 0, 0, 0, 0, 0, 172, 13,
1740 14, 15, 16, 173, 17, 18, 19, 20, 21, 22,
1741 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
1742 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1743 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1744 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1745 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1746 72, 73, 74, 75, 76, 77, 78, 79, 0, 0,
1747 0, 0, 0, 0, 80, 174, 550, 83, 176, 177,
1748 85, 86, 142, 143, 144, 0, 145, 146, 147, 148,
1749 149, 150, 151, 152, 220, -547, 656, 0, 0, 0,
1750 352, 0, 0, 0, 0, 155, 156, 157, 158, 159,
1751 160, 0, 0, 0, 0, 0, 0, 0, -273, -273,
1752 4, 0, 5, 161, 162, 163, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 0, 164, 6, 0,
1755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 0, 166, 167, 168, 169, 170, 171, 0, 0,
1758 0, 0, 0, 0, 0, 0, 657, 13, 14, 15,
1759 16, 173, 17, 18, 19, 20, 21, 22, 23, 24,
1760 25, 26, 0, 27, 28, 29, 30, 31, 32, 33,
1761 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1762 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1763 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1764 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1765 74, 75, 76, 77, 78, 79, 0, 0, 0, 0,
1766 0, 0, 80, 174, 550, 83, 176, 177, 85, 86,
1767 142, 143, 144, 0, 145, 146, 147, 148, 149, 150,
1768 151, 152, 220, -547, 655, 0, 0, 0, 352, 0,
1769 0, 0, 0, 155, 156, 157, 158, 159, 160, 0,
1770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1771 0, 161, 162, 163, 0, 142, 143, 144, 0, 145,
1772 146, 147, 148, 149, 150, 151, 152, 220, -547, 659,
1773 0, 0, 0, 352, 0, 164, 0, 0, 155, 156,
1774 157, 158, 159, 160, 0, 0, 0, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0, 161, 162, 163, 0,
1776 166, 167, 168, 169, 170, 171, 0, 0, 0, 0,
1777 0, 0, 0, 0, 172, 0, 0, 0, 0, 173,
1778 164, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780 0, 0, 0, 0, 0, 166, 167, 168, 169, 170,
1781 171, 0, 0, 0, 0, 0, 0, 0, 0, 660,
1782 0, 142, 143, 144, 173, 145, 146, 147, 148, 149,
1783 150, 151, 152, 220, -547, 715, 0, 0, 0, 352,
1784 0, 0, 0, 0, 155, 156, 157, 158, 159, 160,
1785 80, 174, 175, 0, 176, 177, 85, 0, 0, 0,
1786 0, 0, 161, 162, 163, 0, 142, 143, 144, 0,
1787 145, 146, 147, 148, 149, 150, 151, 152, 220, -547,
1788 793, 0, 0, 0, 352, 0, 164, 0, 0, 155,
1789 156, 157, 158, 159, 160, 80, 174, 175, 0, 176,
1790 177, 85, 0, 0, 0, 0, 0, 161, 162, 163,
1791 0, 166, 167, 168, 169, 170, 171, 0, 0, 0,
1792 0, 0, 0, 0, 0, 172, 0, 0, 0, 0,
1793 173, 164, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1795 0, 0, 0, 0, 0, 0, 166, 167, 168, 169,
1796 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1797 172, 0, 142, 143, 144, 173, 145, 146, 147, 148,
1798 149, 150, 151, 152, 220, -547, 794, 0, 0, 0,
1799 352, 0, 0, 0, 0, 155, 156, 157, 158, 159,
1800 160, 80, 174, 175, 0, 176, 177, 85, 0, 0,
1801 0, 0, 0, 161, 162, 163, 0, 142, 143, 144,
1802 0, 145, 146, 147, 148, 149, 150, 151, 152, 220,
1803 -547, 796, 0, 0, 0, 352, 0, 164, 0, 0,
1804 155, 156, 157, 158, 159, 160, 80, 174, 175, 0,
1805 176, 177, 85, 0, 0, 0, 0, 0, 161, 162,
1806 163, 0, 166, 167, 168, 169, 170, 171, 0, 0,
1807 0, 0, 0, 0, 0, 0, 795, 0, 0, 0,
1808 0, 173, 164, 0, 0, 0, 620, 0, 0, 0,
1809 0, 294, 0, 0, 0, 0, 155, 156, 157, 158,
1810 159, 160, 0, 0, 0, 0, 0, 166, 167, 168,
1811 169, 170, 171, 0, 161, 162, 163, 0, 0, 0,
1812 0, 172, 0, 142, 143, 144, 173, 145, 146, 147,
1813 148, 149, 150, 151, 152, 220, -547, 928, 164, 0,
1814 0, 352, 0, 0, 0, 0, 155, 156, 157, 158,
1815 159, 160, 80, 174, 175, 0, 176, 177, 85, 0,
1816 0, 0, 0, 0, 161, 162, 163, 0, 142, 143,
1817 144, 0, 145, 146, 147, 148, 149, 150, 151, 152,
1818 220, -547, 173, 0, 0, 0, 352, 0, 164, 0,
1819 0, 155, 156, 157, 158, 159, 160, 80, 174, 175,
1820 0, 176, 177, 85, 0, 0, 0, 0, 0, 161,
1821 162, 163, 0, 166, 167, 168, 169, 170, 171, 0,
1822 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
1823 0, 0, 173, 164, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1825 0, 0, 0, 80, 295, 296, 0, 176, 166, 167,
1826 168, 169, 170, 171, -135, 0, 0, 0, 0, -135,
1827 0, 0, 172, 0, 0, 0, 0, 173, 0, 0,
1828 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
1829 0, 5, 0, 0, 0, 0, 0, 0, 0, 0,
1830 0, 0, 0, 80, 174, 175, 0, 176, 177, 85,
1831 0, 0, 0, 0, 0, 0, 0, 6, 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, 80, 174,
1835 175, 0, 176, 177, 85, 0, 13, 14, 15, 16,
1836 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1837 26, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1838 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1839 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1840 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1841 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1842 75, 76, 77, 78, 79, -550, 0, 0, 0, 0,
1843 0, 0, 0, 136, 83, 0, 0, 0, 86, 0,
1844 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
1845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1851 0, 0, 0, 0, 0, 0, 13, 14, 15, 16,
1852 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1853 26, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1854 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1855 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1856 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1857 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1858 75, 76, 77, 78, 79, 0, 0, 0, 0, 0,
1859 699, 0, 0, 136, 83, 294, 0, 0, 86, 0,
1860 155, 156, 157, 158, 159, 160, 0, 0, 0, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0, 161, 162,
1862 163, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 164, 0, 0, 0, 0, 0, 0, 0,
1865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1867 0, 0, 0, 0, 0, -273, 0, 0, 0, 0,
1868 0, 0, 0, 0, 0, 3, 173, 0, 0, 0,
1869 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
1870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875 0, 0, 0, 0, 0, 0, 0, 80, 295, 296,
1876 0, 176, 13, 14, 15, 16, 0, 17, 18, 19,
1877 20, 21, 22, 23, 24, 25, 26, 0, 27, 28,
1878 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1879 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1880 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1881 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1882 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1883 79, 0, 0, 0, 0, 0, 0, 80, 81, 82,
1884 83, 0, 84, 85, 86, 294, 509, 0, 0, 0,
1885 155, 156, 157, 158, 159, 160, 294, 0, 0, 590,
1886 0, 155, 156, 157, 158, 159, 160, 0, 161, 162,
1887 163, 0, 0, 0, 0, 0, 0, 294, 976, 161,
1888 162, 163, 155, 156, 157, 158, 159, 160, 294, 0,
1889 0, 681, 164, 155, 156, 157, 158, 159, 160, 0,
1890 161, 162, 163, 164, 0, 0, 0, 0, 0, 294,
1891 -255, 161, 162, 163, 155, 156, 157, 158, 159, 160,
1892 0, 0, 0, 0, 164, 0, 0, 0, 0, 0,
1893 0, 0, 161, 162, 163, 164, 173, 0, 0, 0,
1894 0, 0, 0, 0, 0, 0, 0, 173, 0, 0,
1895 0, 0, 0, 0, 0, 0, 164, 294, 0, 0,
1896 0, 0, 155, 156, 157, 158, 159, 160, 173, 0,
1897 0, 0, 0, 0, 0, 0, 0, 0, 341, 173,
1898 161, 162, 163, 155, 156, 157, 158, 159, 160, 639,
1899 0, 0, 0, 0, 155, 156, 157, 158, 159, 160,
1900 173, 161, 162, 163, 164, 0, 0, 80, 295, 296,
1901 0, 176, 161, 162, 163, 0, 0, 0, 80, 295,
1902 296, 641, 176, 0, 0, 164, 155, 156, 157, 158,
1903 159, 160, 0, 0, 0, 0, 164, 0, 0, 80,
1904 295, 296, 0, 176, 161, 162, 163, 0, 173, 0,
1905 80, 295, 296, 0, 176, 0, 0, 0, 0, 0,
1906 0, 0, 0, 0, 0, 0, 0, 0, 164, 173,
1907 0, 80, 295, 296, 0, 176, 0, 718, 0, 0,
1908 173, 0, 719, 720, 721, 722, 723, 724, 0, 0,
1909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1910 161, 725, 726, 0, 0, 0, 0, 0, 0, 0,
1911 0, 0, 173, 0, 0, 0, 0, 0, 0, 80,
1912 295, 296, 0, 176, 727, 0, 0, 0, 0, 0,
1913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914 80, 295, 296, 0, 176, 0, 0, 0, 0, 0,
1915 0, 80, 295, 296, 0, 176, 0, 0, 0, 0,
1916 0, 0, 0, 0, 0, 0, 0, 0, 173, 0,
1917 0, 0, 0, 0, 0, -199, -199, 4, 0, 0,
1918 0, 0, 0, 80, 295, 296, 0, 176, 0, 0,
1919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1923 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,
1924 728, 729, 0, 176, 13, 14, 15, 16, 0, 17,
1925 18, 19, 20, 21, 22, 23, 24, 25, 26, 0,
1926 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1927 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1928 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1929 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1930 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1931 77, 78, 79, 4, 0, 5, 0, 0, 0, 0,
1932 0, 136, 83, 0, 0, 0, 86, 0, 0, 0,
1933 0, 0, 0, 0, 0, 0, 0, -413, -413, -413,
1934 0, 6, 0, 0, 0, 0, 0, 0, 0, 0,
1935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1938 13, 14, 15, 16, 0, 17, 18, 19, 20, 21,
1939 22, 23, 24, 25, 26, 0, 27, 28, 29, 30,
1940 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1941 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1942 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1943 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1944 71, 72, 73, 74, 75, 76, 77, 78, 79, 4,
1945 0, 5, 0, 0, 0, 0, 0, 136, 83, 0,
1946 0, 0, 86, 0, 0, 0, 0, 0, 0, 0,
1947 0, 0, 0, 0, 0, 0, 0, 6, 0, 0,
1948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1951 0, 0, 0, 0, 0, 0, 13, 14, 15, 16,
1952 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1953 26, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1954 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1955 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1956 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1957 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1958 75, 76, 77, 78, 79, 4, 0, 0, 0, 0,
1959 0, 80, 1088, 136, 83, 0, 0, 0, 86, 0,
1960 0, 0, 0, 0, 0, 0, 0, 0, 0, -413,
1961 -413, -413, 0, 0, 0, 0, 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 0, 0, 13, 14, 15, 16, 0, 17, 18, 19,
1966 20, 21, 22, 23, 24, 25, 26, 0, 27, 28,
1967 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1968 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1969 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1970 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1971 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1972 79, 4, 0, 0, 0, 0, 0, 0, 0, 136,
1973 83, 0, 0, 0, 86, 0, 0, 0, 0, 0,
1974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1976 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
1977 11, 12, 0, 0, 0, 0, 0, 0, 0, 0,
1978 0, 0, 0, 0, 0, 0, 0, 0, 13, 14,
1979 15, 16, 0, 17, 18, 19, 20, 21, 22, 23,
1980 24, 25, 26, 0, 27, 28, 29, 30, 31, 32,
1981 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1982 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1983 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1984 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1985 73, 74, 75, 76, 77, 78, 79, 4, 0, 5,
1986 0, 0, 0, 0, 0, 136, 83, 0, 0, 0,
1987 86, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1988 0, 0, 0, 0, 0, 6, 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, 13, 14, 15, 16, 0, 17,
1993 18, 19, 20, 21, 22, 23, 24, 25, 26, 0,
1994 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1995 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1996 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1997 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1998 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1999 77, 78, 79, 4, 0, 0, 0, 0, 0, 0,
2000 0, 136, 83, 0, 0, 0, 86, 0, 0, 0,
2001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2002 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2006 13, 14, 15, 16, 0, 17, 18, 19, 20, 21,
2007 22, 23, 24, 25, 26, 0, 27, 28, 29, 30,
2008 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2009 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2010 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
2011 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2012 71, 72, 73, 74, 75, 76, 77, 78, 79, 0,
2013 0, 0, 0, 0, 0, 0, 0, 136, 83, 0,
2017 static const short yycheck[] = { 0,
2018 0, 0, 459, 399, 5, 5, 3, 7, 9, 10,
2019 11, 12, 330, 69, 70, 71, 72, 73, 74, 75,
2020 76, 77, 78, 455, 142, 120, 130, 0, 398, 10,
2021 544, 434, 389, 390, 352, 309, 397, 395, 396, 649,
2022 649, 649, 592, 387, 388, 232, 693, 618, 10, 542,
2023 453, 916, 56, 21, 110, 435, 27, 25, 114, 311,
2024 116, 649, 118, 1034, 951, 924, 803, 123, 24, 24,
2025 155, 156, 157, 158, 159, 160, 0, 264, 34, 135,
2026 933, 137, 671, 936, 817, 221, 87, 87, 87, 822,
2027 226, 5, 228, 826, 1100, 1101, 18, 500, 708, 708,
2028 708, 101, 25, 26, 653, 28, 21, 469, 50, 51,
2029 25, 25, 112, 113, 87, 391, 392, 393, 394, 120,
2030 708, 19, 45, 179, 553, 21, 10, 11, 12, 25,
2031 829, 128, 24, 683, 24, 649, 835, 138, 138, 54,
2032 55, 138, 571, 18, 34, 18, 21, 1118, 149, 777,
2033 11, 12, 1123, 154, 50, 51, 649, 88, 5, 1024,
2034 1025, 28, 1168, 87, 792, 1052, 11, 12, 486, 25,
2035 26, 172, 28, 154, 10, 1034, 1035, 24, 45, 41,
2036 284, 185, 829, 24, 28, 24, 27, 34, 835, 45,
2037 10, 594, 154, 34, 708, 57, 929, 198, 935, 602,
2038 937, 45, 1173, 21, 653, 206, 1059, 208, 1061, 210,
2039 41, 267, 213, 802, 5, 708, 805, 198, 470, 190,
2040 221, 408, 190, 603, 24, 226, 57, 228, 777, 210,
2041 186, 187, 213, 1098, 25, 24, 198, 341, 5, 26,
2042 241, 242, 604, 792, 206, 34, 302, 34, 210, 305,
2043 1109, 213, 1111, 649, 24, 573, 955, 313, 25, 18,
2044 316, 242, 21, 24, 696, 18, 25, 10, 11, 12,
2045 154, 24, 186, 187, 188, 32, 33, 191, 192, 649,
2046 242, 34, 283, 21, 283, 286, 287, 288, 649, 27,
2047 18, 649, 649, 429, 430, 23, 186, 187, 298, 384,
2048 385, 386, 299, 24, 913, 649, 5, 308, 955, 308,
2049 18, 21, 708, 314, 198, 21, 434, 27, 154, 5,
2050 18, 27, 206, 89, 90, 599, 210, 653, 777, 213,
2051 653, 1064, 54, 55, 154, 453, 936, 221, 708, 186,
2052 187, 653, 226, 792, 228, 186, 187, 708, 21, 190,
2053 708, 708, 25, 354, 120, 121, 24, 241, 242, 1218,
2054 221, 362, 198, 364, 708, 226, 39, 228, 134, 425,
2055 206, 21, 16, 649, 210, 25, 221, 213, 198, 435,
2056 241, 226, 500, 228, 440, 18, 206, 491, 21, 445,
2057 210, 447, 963, 213, 908, 21, 241, 186, 187, 25,
2058 16, 1011, 1011, 1011, 489, 808, 242, 408, 464, 959,
2059 16, 154, 468, 906, 846, 818, 24, 34, 26, 186,
2060 187, 188, 242, 1011, 191, 192, 34, 408, 429, 430,
2061 42, 43, 708, 186, 187, 436, 24, 438, 26, 438,
2062 0, 441, 24, 16, 26, 5, 408, 448, 24, 9,
2063 26, 777, 34, 426, 777, 198, 6, 7, 459, 1059,
2064 461, 1061, 15, 206, 437, 777, 792, 210, 469, 792,
2065 213, 472, 469, 577, 18, 476, 594, 21, 221, 18,
2066 792, 25, 21, 226, 602, 228, 1095, 186, 187, 188,
2067 21, 22, 191, 192, 111, 112, 113, 1011, 241, 242,
2068 186, 187, 188, 504, 101, 191, 192, 37, 38, 905,
2069 22, 5, 513, 514, 26, 21, 28, 21, 1011, 25,
2070 624, 25, 52, 53, 408, 20, 21, 87, 32, 33,
2071 24, 25, 26, 45, 904, 639, 592, 641, 895, 896,
2072 34, 19, 903, 901, 902, 429, 430, 603, 22, 893,
2073 894, 552, 553, 21, 29, 24, 1165, 25, 27, 560,
2074 120, 560, 5, 50, 51, 34, 622, 568, 429, 430,
2075 571, 572, 408, 25, 26, 21, 28, 22, 138, 25,
2076 553, 24, 50, 51, 429, 430, 32, 33, 408, 149,
2077 552, 34, 22, 45, 650, 39, 652, 5, 571, 40,
2078 26, 696, 28, 604, 186, 187, 188, 604, 21, 191,
2079 192, 611, 25, 95, 718, 1011, 24, 25, 26, 45,
2080 56, 897, 898, 899, 900, 26, 34, 26, 26, 28,
2081 28, 54, 55, 34, 719, 720, 721, 722, 723, 724,
2082 18, 1011, 916, 21, 645, 646, 45, 45, 649, 190,
2083 1011, 21, 970, 1011, 1011, 25, 657, 658, 21, 660,
2084 21, 95, 25, 19, 25, 408, 29, 1011, 552, 24,
2085 34, 26, 1129, 674, 730, 676, 24, 22, 26, 34,
2086 50, 51, 679, 957, 685, 22, 429, 430, 21, 34,
2087 808, 692, 25, 21, 695, 696, 697, 25, 18, 696,
2088 818, 21, 21, 23, 37, 38, 25, 708, 186, 187,
2089 188, 1143, 18, 191, 192, 21, 552, 186, 187, 52,
2090 53, 190, 18, 283, 88, 21, 286, 287, 288, 785,
2091 786, 22, 552, 21, 21, 1011, 22, 25, 25, 182,
2092 183, 859, 24, 186, 187, 21, 1020, 190, 308, 25,
2093 18, 846, 0, 21, 314, 1029, 21, 5, 25, 26,
2094 25, 37, 38, 50, 51, 13, 14, 15, 95, 34,
2095 35, 36, 828, 32, 33, 1049, 52, 53, 186, 187,
2096 188, 37, 38, 191, 192, 186, 187, 188, 20, 1192,
2097 191, 192, 1066, 24, 795, 26, 52, 53, 34, 23,
2098 800, 19, 26, 803, 28, 890, 891, 892, 21, 552,
2099 21, 21, 25, 21, 25, 25, 817, 25, 819, 20,
2100 21, 822, 186, 187, 1227, 826, 18, 191, 192, 21,
2101 1104, 186, 187, 188, 20, 21, 191, 192, 193, 87,
2102 21, 186, 187, 188, 25, 846, 191, 192, 21, 846,
2103 95, 1125, 25, 854, 102, 103, 104, 105, 106, 107,
2104 108, 109, 27, 111, 21, 21, 114, 25, 25, 25,
2105 21, 24, 120, 26, 25, 28, 932, 21, 438, 21,
2106 18, 25, 130, 25, 132, 133, 134, 21, 448, 974,
2107 138, 25, 45, 21, 21, 48, 49, 25, 25, 459,
2108 21, 461, 18, 959, 25, 21, 154, 21, 23, 469,
2109 21, 25, 472, 161, 25, 916, 476, 24, 21, 186,
2110 187, 188, 25, 924, 191, 192, 21, 34, 929, 18,
2111 25, 21, 22, 933, 19, 935, 936, 937, 21, 24,
2112 24, 26, 25, 28, 29, 30, 31, 32, 33, 34,
2113 186, 187, 188, 513, 514, 191, 192, 21, 68, 69,
2114 70, 25, 47, 48, 49, 21, 24, 21, 26, 25,
2115 28, 25, 21, 221, 1078, 18, 25, 24, 979, 980,
2116 34, 35, 36, 186, 187, 188, 71, 45, 191, 192,
2117 48, 49, 32, 33, 73, 74, 75, 76, 1054, 22,
2118 560, 80, 81, 82, 83, 84, 85, 86, 24, 21,
2119 1011, 21, 260, 25, 21, 25, 21, 18, 25, 25,
2120 25, 1022, 21, 1024, 1025, 25, 25, 52, 53, 54,
2121 115, 1032, 24, 1034, 1035, 283, 284, 18, 286, 287,
2122 25, 26, 18, 28, 604, 18, 294, 18, 1143, 1022,
2123 1051, 299, 34, 35, 36, 1056, 18, 1056, 19, 1059,
2124 308, 1061, 9, 1064, 112, 113, 314, 11, 1069, 208,
2125 1069, 25, 1069, 1074, 1192, 182, 183, 1133, 24, 186,
2126 187, 11, 91, 190, 34, 35, 36, 21, 1206, 24,
2127 19, 19, 19, 341, 1095, 1096, 1097, 1098, 19, 1100,
2128 1101, 186, 187, 188, 352, 190, 191, 192, 1109, 1227,
2129 1111, 91, 27, 1114, 674, 24, 676, 1118, 23, 1120,
2130 1121, 25, 1123, 21, 21, 685, 22, 18, 1129, 21,
2131 25, 25, 692, 11, 24, 695, 696, 25, 24, 24,
2132 27, 25, 1143, 23, 23, 20, 19, 19, 10, 11,
2133 12, 20, 23, 58, 59, 60, 61, 62, 63, 64,
2134 65, 66, 67, 27, 1165, 1166, 1167, 1168, 24, 1225,
2135 21, 5, 1173, 25, 10, 11, 12, 425, 58, 59,
2136 60, 61, 62, 63, 64, 65, 66, 67, 19, 22,
2137 438, 73, 1193, 25, 1193, 24, 20, 445, 20, 447,
2138 25, 449, 25, 18, 452, 21, 27, 455, 27, 457,
2139 21, 459, 25, 461, 22, 354, 25, 1218, 466, 25,
2140 24, 469, 29, 362, 25, 364, 40, 39, 476, 56,
2141 187, 91, 91, 91, 142, 25, 91, 91, 25, 18,
2142 22, 91, 25, 491, 24, 20, 344, 155, 156, 157,
2143 158, 159, 160, 25, 162, 163, 18, 817, 25, 819,
2144 21, 18, 822, 40, 190, 20, 826, 27, 18, 21,
2145 368, 24, 23, 18, 91, 373, 374, 375, 376, 377,
2146 378, 379, 380, 381, 382, 383, 846, 22, 22, 192,
2147 21, 21, 154, 22, 854, 20, 20, 436, 91, 25,
2148 27, 194, 25, 40, 25, 27, 404, 18, 20, 27,
2149 20, 25, 560, 0, 0, 924, 87, 314, 154, 1218,
2150 1186, 1114, 1014, 1086, 684, 1165, 574, 1023, 1051, 577,
2151 461, 874, 823, 790, 577, 1193, 198, 676, 674, 846,
2152 128, 695, 12, 299, 206, 593, 350, 1149, 210, 597,
2153 598, 213, 241, 408, 504, 699, 604, 708, 1011, 221,
2154 222, 851, 198, 852, 226, 504, 228, -1, -1, 929,
2155 206, -1, -1, -1, 210, -1, 624, 213, -1, 241,
2156 242, -1, -1, -1, -1, 221, 634, 635, -1, -1,
2157 226, 639, 228, 641, -1, -1, -1, -1, -1, -1,
2158 -1, -1, -1, -1, -1, 241, 242, -1, -1, -1,
2159 -1, -1, -1, -1, 553, -1, -1, 665, -1, 979,
2160 980, 10, -1, -1, -1, 673, -1, 675, -1, -1,
2161 -1, 679, 571, 572, -1, -1, -1, -1, 686, 687,
2162 -1, -1, -1, 691, -1, -1, -1, 695, 696, -1,
2163 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2164 -1, -1, -1, -1, -1, -1, -1, 10, 11, 12,
2165 718, -1, -1, -1, -1, -1, 384, 385, 386, 387,
2166 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
2167 398, 399, -1, -1, -1, -1, 1056, -1, -1, -1,
2168 -1, -1, -1, -1, 1064, 367, 645, 646, -1, 1069,
2169 -1, -1, -1, -1, 1074, -1, -1, -1, -1, 658,
2170 -1, -1, 620, -1, -1, -1, 434, 10, 11, 12,
2171 -1, -1, -1, 631, -1, -1, 1096, 1097, -1, -1,
2172 -1, 130, -1, -1, -1, 453, 408, -1, -1, -1,
2173 798, -1, -1, -1, -1, -1, -1, -1, 697, -1,
2174 1120, 1121, -1, 152, -1, 154, -1, 429, 430, 1129,
2175 -1, -1, 408, -1, -1, -1, -1, -1, -1, -1,
2176 -1, 489, -1, 1143, -1, -1, -1, 685, -1, -1,
2177 -1, -1, 500, 429, 430, -1, -1, 845, 846, -1,
2178 848, 699, -1, -1, -1, -1, 1166, 1167, -1, 198,
2179 -1, 154, -1, -1, -1, -1, -1, 206, -1, -1,
2180 -1, 210, -1, -1, 213, -1, -1, -1, -1, 18,
2181 -1, -1, 221, 1193, 542, 24, 544, -1, 546, 547,
2182 29, 30, 31, 32, 33, 34, -1, -1, 10, 11,
2183 12, -1, -1, 242, -1, 198, -1, -1, 47, 48,
2184 49, -1, -1, 206, -1, -1, -1, 210, -1, -1,
2185 213, 154, -1, -1, -1, -1, -1, -1, 221, -1,
2186 -1, -1, 71, 226, 932, 228, 594, -1, -1, -1,
2187 552, 939, -1, -1, 602, -1, -1, -1, 241, 242,
2188 -1, -1, -1, -1, -1, 294, -1, -1, -1, -1,
2189 -1, -1, -1, -1, -1, 198, 552, -1, -1, 817,
2190 -1, -1, -1, 206, 822, -1, 115, 210, 826, -1,
2191 213, -1, 321, 322, 323, 324, -1, -1, 221, -1,
2192 -1, 649, -1, 226, -1, 228, -1, -1, -1, -1,
2193 -1, -1, 341, -1, 852, -1, -1, -1, 241, 242,
2194 -1, -1, -1, 352, -1, -1, -1, -1, -1, -1,
2195 -1, -1, -1, -1, -1, 873, 874, -1, -1, -1,
2196 369, 879, 880, 881, 882, 883, 884, 885, 886, 887,
2197 888, 889, 154, -1, -1, -1, -1, 186, 187, 188,
2198 708, 190, -1, -1, -1, 1053, -1, -1, 1056, -1,
2199 -1, 719, 720, 721, 722, 723, 724, 725, 726, 408,
2200 -1, 1069, -1, -1, 1072, -1, -1, 416, -1, -1,
2201 1078, 929, -1, 1081, 1082, -1, 198, -1, -1, -1,
2202 -1, -1, -1, -1, 206, -1, -1, -1, 210, -1,
2203 -1, 213, -1, -1, -1, -1, -1, -1, -1, 221,
2204 -1, -1, -1, -1, 226, 408, 228, -1, -1, -1,
2205 -1, -1, -1, -1, -1, -1, 1124, -1, -1, 241,
2206 242, 1129, -1, 1131, 1132, -1, 429, 430, -1, -1,
2207 -1, -1, -1, -1, -1, 1143, -1, -1, -1, -1,
2208 808, -1, 18, -1, -1, -1, -1, -1, 24, -1,
2209 818, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2210 -1, 1169, -1, -1, -1, 408, -1, -1, -1, -1,
2211 -1, 47, 48, 49, -1, -1, -1, -1, -1, -1,
2212 -1, 1189, 1190, -1, -1, 1193, 429, 430, 1196, -1,
2213 -1, 859, -1, -1, 543, 71, -1, -1, -1, -1,
2214 -1, -1, -1, 552, -1, -1, 1064, -1, -1, -1,
2215 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2216 -1, -1, 890, 891, 892, 893, 894, 895, 896, 897,
2217 898, 899, 900, 901, 902, 903, 904, 905, 906, 115,
2218 908, -1, -1, 19, 20, -1, -1, -1, 24, 552,
2219 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2220 -1, -1, -1, -1, -1, -1, -1, -1, -1, 618,
2221 -1, 47, 48, 49, -1, -1, -1, -1, -1, -1,
2222 -1, -1, -1, -1, -1, -1, 408, -1, -1, -1,
2223 639, -1, 641, -1, -1, 71, -1, -1, 647, -1,
2224 -1, -1, 651, -1, 0, 1, 974, 429, 430, 552,
2225 186, 187, 188, -1, 190, -1, -1, -1, -1, -1,
2226 -1, -1, 18, -1, -1, -1, -1, -1, 24, -1,
2227 -1, -1, -1, -1, -1, -1, -1, -1, 34, 115,
2228 -1, -1, -1, 1011, -1, -1, -1, -1, 44, -1,
2229 46, -1, -1, -1, -1, -1, -1, -1, 707, -1,
2230 -1, -1, -1, -1, -1, -1, -1, -1, -1, 718,
2231 -1, -1, 68, 69, 70, -1, 72, -1, -1, -1,
2232 -1, 77, 78, 79, -1, -1, -1, -1, -1, -1,
2233 -1, -1, -1, -1, -1, -1, 92, 93, 94, -1,
2234 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2235 186, 187, 188, -1, 190, 111, 112, 113, 114, -1,
2236 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2237 552, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2238 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2239 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2240 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2241 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2242 176, 177, 178, 179, -1, -1, -1, -1, -1, -1,
2243 186, 187, 188, 189, -1, 191, 192, 193, 122, 123,
2244 124, 125, -1, 127, -1, -1, -1, -1, 132, 133,
2245 -1, -1, 136, 137, -1, 139, 140, 141, 142, -1,
2246 -1, -1, -1, -1, 1192, -1, 875, -1, -1, -1,
2247 154, 155, -1, -1, 0, 1, -1, -1, 1206, -1,
2248 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2249 -1, -1, 18, -1, -1, 179, -1, -1, 24, 1227,
2250 -1, -1, -1, -1, -1, 189, -1, -1, 34, -1,
2251 -1, -1, -1, -1, -1, -1, -1, -1, 44, -1,
2252 46, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2253 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2254 -1, -1, 68, 69, 70, -1, 72, -1, -1, -1,
2255 -1, 77, 78, 79, 963, -1, -1, -1, -1, -1,
2256 -1, -1, -1, -1, -1, -1, 92, 93, 94, -1,
2257 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2258 -1, -1, -1, -1, -1, 111, 112, 113, 114, -1,
2259 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2260 1009, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2261 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2262 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2263 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2264 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2265 176, 177, 178, 179, -1, -1, -1, -1, -1, -1,
2266 186, 187, 188, 189, 1073, 191, 192, 193, 1, -1,
2267 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2268 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2269 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2270 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2271 43, 44, -1, 46, 47, 48, 49, -1, -1, -1,
2272 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2273 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
2274 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2275 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2276 -1, -1, -1, 96, 97, 98, 99, 100, 101, -1,
2277 -1, -1, -1, -1, -1, -1, -1, 110, 111, 112,
2278 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2279 123, 124, 125, -1, 127, 128, 129, 130, 131, 132,
2280 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2281 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2282 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2283 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2284 173, 174, 175, 176, 177, 178, 179, -1, -1, -1,
2285 -1, -1, -1, 186, 187, 188, 189, 190, 191, 192,
2286 193, 1, -1, -1, -1, -1, 6, 7, 8, -1,
2287 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2288 -1, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2289 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2290 -1, -1, 42, 43, 44, -1, -1, 47, 48, 49,
2291 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2292 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
2293 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2294 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2295 -1, -1, -1, -1, -1, -1, 96, 97, 98, 99,
2296 100, 101, -1, -1, -1, -1, -1, -1, -1, -1,
2297 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2298 120, 121, 122, 123, 124, 125, -1, 127, 128, 129,
2299 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2300 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2301 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2302 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2303 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2304 -1, -1, -1, -1, -1, -1, 186, 187, 188, 189,
2305 190, 191, 192, 193, 1, -1, -1, -1, -1, 6,
2306 7, 8, -1, -1, 11, 12, 13, 14, 15, 16,
2307 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2308 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2309 -1, -1, -1, -1, -1, 42, 43, 44, -1, -1,
2310 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
2311 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2312 -1, 68, 69, 70, 71, -1, -1, -1, -1, -1,
2313 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2314 -1, -1, -1, -1, -1, -1, -1, -1, -1, 96,
2315 97, 98, 99, 100, 101, -1, -1, -1, -1, -1,
2316 -1, -1, -1, 110, 111, 112, 113, 114, 115, 116,
2317 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
2318 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2319 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2320 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2321 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2322 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2323 177, 178, 179, -1, -1, -1, -1, -1, -1, 186,
2324 187, 188, 189, 190, 191, 192, 193, 1, -1, -1,
2325 -1, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2326 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2327 24, -1, 26, -1, 28, 29, 30, 31, 32, 33,
2328 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2329 -1, 45, -1, 47, 48, 49, 50, 51, 52, 53,
2330 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2331 64, 65, 66, 67, -1, -1, -1, 71, -1, -1,
2332 -1, -1, -1, -1, -1, 19, 20, -1, -1, -1,
2333 24, -1, 26, -1, 28, 29, 30, 31, 32, 33,
2334 34, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2335 -1, -1, 1, 47, 48, 49, 110, 6, 7, 8,
2336 -1, 115, 11, 12, 13, 14, 15, 16, 17, 18,
2337 19, 20, -1, -1, -1, 24, 25, 71, -1, -1,
2338 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2339 -1, -1, -1, 42, 43, -1, -1, -1, 47, 48,
2340 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2341 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2342 -1, 115, 71, -1, -1, -1, -1, -1, -1, -1,
2343 -1, -1, 186, 187, 188, -1, 190, 191, 192, -1,
2344 -1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
2345 99, 100, 101, -1, -1, -1, -1, -1, 1, -1,
2346 -1, 110, -1, 6, 7, 8, 115, 10, 11, 12,
2347 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2348 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2349 33, 34, 186, 187, 188, -1, 190, 191, 192, 42,
2350 43, -1, -1, 1, 47, 48, 49, -1, 6, 7,
2351 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2352 18, 19, -1, -1, -1, -1, 24, -1, 71, -1,
2353 -1, 29, 30, 31, 32, 33, 34, 186, 187, 188,
2354 -1, 190, 191, 192, 42, 43, -1, -1, -1, 47,
2355 48, 49, 95, 96, 97, 98, 99, 100, 101, -1,
2356 -1, -1, -1, -1, -1, -1, 19, 110, -1, -1,
2357 -1, 24, 115, 71, -1, -1, 29, 30, 31, 32,
2358 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2359 -1, -1, -1, -1, 47, 48, 49, 95, 96, 97,
2360 98, 99, 100, 101, -1, -1, -1, -1, -1, 1,
2361 -1, -1, 110, -1, 6, 7, 8, 115, 71, 11,
2362 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2363 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2364 32, 33, 34, 186, 187, 188, -1, 190, 191, 192,
2365 42, 43, -1, -1, 1, 47, 48, 49, -1, 6,
2366 7, 8, 115, 10, 11, 12, 13, 14, 15, 16,
2367 17, 18, 19, 20, -1, -1, -1, 24, -1, 71,
2368 -1, -1, 29, 30, 31, 32, 33, 34, 186, 187,
2369 188, -1, 190, 191, 192, 42, 43, -1, -1, -1,
2370 47, 48, 49, 95, 96, 97, 98, 99, 100, 101,
2371 -1, -1, -1, -1, -1, -1, -1, 19, 110, -1,
2372 -1, -1, 24, 115, 71, -1, -1, 29, 30, 31,
2373 32, 33, 34, 186, 187, 188, -1, 190, -1, -1,
2374 -1, -1, -1, -1, -1, 47, 48, 49, -1, 96,
2375 97, 98, 99, 100, 101, -1, -1, -1, -1, -1,
2376 1, -1, -1, 110, -1, 6, 7, 8, 115, 71,
2377 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2378 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2379 31, 32, 33, 34, 186, 187, 188, -1, 190, 191,
2380 192, 42, 43, -1, -1, 1, 47, 48, 49, -1,
2381 6, 7, 8, 115, 10, 11, 12, 13, 14, 15,
2382 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2383 71, -1, -1, 29, 30, 31, 32, 33, 34, 186,
2384 187, 188, -1, 190, 191, 192, 42, 43, -1, -1,
2385 -1, 47, 48, 49, -1, 96, 97, 98, 99, 100,
2386 101, -1, -1, -1, -1, -1, -1, -1, -1, 110,
2387 -1, -1, -1, -1, 115, 71, -1, -1, -1, -1,
2388 -1, -1, -1, -1, 186, 187, 188, -1, 190, -1,
2389 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2390 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
2391 -1, -1, -1, -1, 110, -1, 6, 7, 8, 115,
2392 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2393 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2394 30, 31, 32, 33, 34, 186, 187, 188, -1, 190,
2395 191, 192, 42, 43, 44, -1, 46, 47, 48, 49,
2396 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2397 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2398 -1, 71, 72, -1, -1, -1, -1, -1, -1, -1,
2399 186, 187, 188, -1, 190, 191, 192, -1, -1, -1,
2400 -1, -1, -1, -1, -1, -1, 96, 97, 98, 99,
2401 100, 101, -1, -1, -1, -1, -1, -1, -1, -1,
2402 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2403 120, 121, 122, 123, 124, 125, -1, 127, 128, 129,
2404 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2405 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2406 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2407 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2408 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2409 -1, -1, -1, -1, -1, -1, 186, 187, 188, 189,
2410 190, 191, 192, 193, 6, 7, 8, -1, 10, 11,
2411 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2412 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2413 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2414 42, 43, 44, -1, 46, 47, 48, 49, -1, -1,
2415 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2416 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2417 72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2418 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2419 -1, -1, -1, -1, 96, 97, 98, 99, 100, 101,
2420 -1, -1, -1, -1, -1, -1, -1, -1, 110, 111,
2421 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2422 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2423 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2424 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2425 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2426 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2427 172, 173, 174, 175, 176, 177, 178, 179, -1, -1,
2428 -1, -1, -1, -1, 186, 187, 188, 189, 190, 191,
2429 192, 193, 6, 7, 8, -1, 10, 11, 12, 13,
2430 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2431 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2432 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2433 44, -1, 46, 47, 48, 49, -1, -1, -1, -1,
2434 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2435 -1, -1, -1, -1, -1, -1, -1, 71, 72, -1,
2436 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2437 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2438 -1, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2439 -1, -1, -1, -1, -1, -1, 110, 111, 112, 113,
2440 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2441 124, 125, -1, 127, 128, 129, 130, 131, 132, 133,
2442 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2443 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2444 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2445 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2446 174, 175, 176, 177, 178, 179, -1, -1, -1, -1,
2447 -1, -1, 186, 187, 188, 189, 190, 191, 192, 193,
2448 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2449 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2450 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2451 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2452 -1, 47, 48, 49, -1, 6, 7, 8, -1, 10,
2453 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2454 -1, -1, -1, 24, -1, 71, -1, -1, 29, 30,
2455 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2456 -1, -1, -1, -1, -1, -1, 47, 48, 49, -1,
2457 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
2458 -1, -1, -1, -1, 110, -1, -1, -1, -1, 115,
2459 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2461 -1, -1, -1, -1, -1, 96, 97, 98, 99, 100,
2462 101, -1, -1, -1, -1, -1, -1, -1, -1, 110,
2463 -1, 6, 7, 8, 115, 10, 11, 12, 13, 14,
2464 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2465 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2466 186, 187, 188, -1, 190, 191, 192, -1, -1, -1,
2467 -1, -1, 47, 48, 49, -1, 6, 7, 8, -1,
2468 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2469 20, -1, -1, -1, 24, -1, 71, -1, -1, 29,
2470 30, 31, 32, 33, 34, 186, 187, 188, -1, 190,
2471 191, 192, -1, -1, -1, -1, -1, 47, 48, 49,
2472 -1, 96, 97, 98, 99, 100, 101, -1, -1, -1,
2473 -1, -1, -1, -1, -1, 110, -1, -1, -1, -1,
2474 115, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2476 -1, -1, -1, -1, -1, -1, 96, 97, 98, 99,
2477 100, 101, -1, -1, -1, -1, -1, -1, -1, -1,
2478 110, -1, 6, 7, 8, 115, 10, 11, 12, 13,
2479 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2480 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2481 34, 186, 187, 188, -1, 190, 191, 192, -1, -1,
2482 -1, -1, -1, 47, 48, 49, -1, 6, 7, 8,
2483 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2484 19, 20, -1, -1, -1, 24, -1, 71, -1, -1,
2485 29, 30, 31, 32, 33, 34, 186, 187, 188, -1,
2486 190, 191, 192, -1, -1, -1, -1, -1, 47, 48,
2487 49, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2488 -1, -1, -1, -1, -1, -1, 110, -1, -1, -1,
2489 -1, 115, 71, -1, -1, -1, 19, -1, -1, -1,
2490 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2491 33, 34, -1, -1, -1, -1, -1, 96, 97, 98,
2492 99, 100, 101, -1, 47, 48, 49, -1, -1, -1,
2493 -1, 110, -1, 6, 7, 8, 115, 10, 11, 12,
2494 13, 14, 15, 16, 17, 18, 19, 20, 71, -1,
2495 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2496 33, 34, 186, 187, 188, -1, 190, 191, 192, -1,
2497 -1, -1, -1, -1, 47, 48, 49, -1, 6, 7,
2498 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2499 18, 19, 115, -1, -1, -1, 24, -1, 71, -1,
2500 -1, 29, 30, 31, 32, 33, 34, 186, 187, 188,
2501 -1, 190, 191, 192, -1, -1, -1, -1, -1, 47,
2502 48, 49, -1, 96, 97, 98, 99, 100, 101, -1,
2503 -1, -1, -1, -1, -1, -1, -1, 110, -1, -1,
2504 -1, -1, 115, 71, -1, -1, -1, -1, -1, -1,
2505 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2506 -1, -1, -1, 186, 187, 188, -1, 190, 96, 97,
2507 98, 99, 100, 101, 19, -1, -1, -1, -1, 24,
2508 -1, -1, 110, -1, -1, -1, -1, 115, -1, -1,
2509 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2510 -1, 46, -1, -1, -1, -1, -1, -1, -1, -1,
2511 -1, -1, -1, 186, 187, 188, -1, 190, 191, 192,
2512 -1, -1, -1, -1, -1, -1, -1, 72, -1, -1,
2513 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2515 -1, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2516 188, -1, 190, 191, 192, -1, 111, 112, 113, 114,
2517 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2518 125, -1, 127, 128, 129, 130, 131, 132, 133, 134,
2519 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2520 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2521 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2522 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2523 175, 176, 177, 178, 179, 20, -1, -1, -1, -1,
2524 -1, -1, -1, 188, 189, -1, -1, -1, 193, -1,
2525 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2526 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2527 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2528 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2529 -1, -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, 111, 112, 113, 114,
2533 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2534 125, -1, 127, 128, 129, 130, 131, 132, 133, 134,
2535 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2536 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2537 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2538 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2539 175, 176, 177, 178, 179, -1, -1, -1, -1, -1,
2540 19, -1, -1, 188, 189, 24, -1, -1, 193, -1,
2541 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2542 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2543 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2544 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2545 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2546 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2547 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2548 -1, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2549 -1, -1, -1, -1, -1, 34, 115, -1, -1, -1,
2550 -1, -1, -1, -1, -1, 44, -1, -1, -1, -1,
2551 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2552 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2553 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2554 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2555 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2556 -1, -1, -1, -1, -1, -1, -1, 186, 187, 188,
2557 -1, 190, 111, 112, 113, 114, -1, 116, 117, 118,
2558 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
2559 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2560 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2561 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2562 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2563 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2564 179, -1, -1, -1, -1, -1, -1, 186, 187, 188,
2565 189, -1, 191, 192, 193, 24, 25, -1, -1, -1,
2566 29, 30, 31, 32, 33, 34, 24, -1, -1, 27,
2567 -1, 29, 30, 31, 32, 33, 34, -1, 47, 48,
2568 49, -1, -1, -1, -1, -1, -1, 24, 25, 47,
2569 48, 49, 29, 30, 31, 32, 33, 34, 24, -1,
2570 -1, 27, 71, 29, 30, 31, 32, 33, 34, -1,
2571 47, 48, 49, 71, -1, -1, -1, -1, -1, 24,
2572 25, 47, 48, 49, 29, 30, 31, 32, 33, 34,
2573 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
2574 -1, -1, 47, 48, 49, 71, 115, -1, -1, -1,
2575 -1, -1, -1, -1, -1, -1, -1, 115, -1, -1,
2576 -1, -1, -1, -1, -1, -1, 71, 24, -1, -1,
2577 -1, -1, 29, 30, 31, 32, 33, 34, 115, -1,
2578 -1, -1, -1, -1, -1, -1, -1, -1, 24, 115,
2579 47, 48, 49, 29, 30, 31, 32, 33, 34, 24,
2580 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2581 115, 47, 48, 49, 71, -1, -1, 186, 187, 188,
2582 -1, 190, 47, 48, 49, -1, -1, -1, 186, 187,
2583 188, 24, 190, -1, -1, 71, 29, 30, 31, 32,
2584 33, 34, -1, -1, -1, -1, 71, -1, -1, 186,
2585 187, 188, -1, 190, 47, 48, 49, -1, 115, -1,
2586 186, 187, 188, -1, 190, -1, -1, -1, -1, -1,
2587 -1, -1, -1, -1, -1, -1, -1, -1, 71, 115,
2588 -1, 186, 187, 188, -1, 190, -1, 24, -1, -1,
2589 115, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2590 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2591 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
2592 -1, -1, 115, -1, -1, -1, -1, -1, -1, 186,
2593 187, 188, -1, 190, 71, -1, -1, -1, -1, -1,
2594 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2595 186, 187, 188, -1, 190, -1, -1, -1, -1, -1,
2596 -1, 186, 187, 188, -1, 190, -1, -1, -1, -1,
2597 -1, -1, -1, -1, -1, -1, -1, -1, 115, -1,
2598 -1, -1, -1, -1, -1, 42, 43, 44, -1, -1,
2599 -1, -1, -1, 186, 187, 188, -1, 190, -1, -1,
2600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2602 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2603 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2604 -1, -1, -1, -1, -1, -1, -1, -1, -1, 186,
2605 187, 188, -1, 190, 111, 112, 113, 114, -1, 116,
2606 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
2607 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2608 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2609 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2610 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2611 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2612 177, 178, 179, 44, -1, 46, -1, -1, -1, -1,
2613 -1, 188, 189, -1, -1, -1, 193, -1, -1, -1,
2614 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
2615 -1, 72, -1, -1, -1, -1, -1, -1, -1, -1,
2616 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2618 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2619 111, 112, 113, 114, -1, 116, 117, 118, 119, 120,
2620 121, 122, 123, 124, 125, -1, 127, 128, 129, 130,
2621 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2622 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2623 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2624 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2625 171, 172, 173, 174, 175, 176, 177, 178, 179, 44,
2626 -1, 46, -1, -1, -1, -1, -1, 188, 189, -1,
2627 -1, -1, 193, -1, -1, -1, -1, -1, -1, -1,
2628 -1, -1, -1, -1, -1, -1, -1, 72, -1, -1,
2629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2630 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2631 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2632 -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
2633 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2634 125, -1, 127, 128, 129, 130, 131, 132, 133, 134,
2635 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2636 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2637 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2638 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2639 175, 176, 177, 178, 179, 44, -1, -1, -1, -1,
2640 -1, 186, 187, 188, 189, -1, -1, -1, 193, -1,
2641 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
2642 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2644 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2646 -1, -1, 111, 112, 113, 114, -1, 116, 117, 118,
2647 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
2648 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2649 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2650 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2651 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2652 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2653 179, 44, -1, -1, -1, -1, -1, -1, -1, 188,
2654 189, -1, -1, -1, 193, -1, -1, -1, -1, -1,
2655 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2656 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2657 -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
2658 93, 94, -1, -1, -1, -1, -1, -1, -1, -1,
2659 -1, -1, -1, -1, -1, -1, -1, -1, 111, 112,
2660 113, 114, -1, 116, 117, 118, 119, 120, 121, 122,
2661 123, 124, 125, -1, 127, 128, 129, 130, 131, 132,
2662 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2663 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2664 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2665 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2666 173, 174, 175, 176, 177, 178, 179, 44, -1, 46,
2667 -1, -1, -1, -1, -1, 188, 189, -1, -1, -1,
2668 193, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2669 -1, -1, -1, -1, -1, 72, -1, -1, -1, -1,
2670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2671 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2672 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2673 -1, -1, -1, -1, 111, 112, 113, 114, -1, 116,
2674 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
2675 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2676 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2677 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2678 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2679 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2680 177, 178, 179, 44, -1, -1, -1, -1, -1, -1,
2681 -1, 188, 189, -1, -1, -1, 193, -1, -1, -1,
2682 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2683 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2684 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2685 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2686 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2687 111, 112, 113, 114, -1, 116, 117, 118, 119, 120,
2688 121, 122, 123, 124, 125, -1, 127, 128, 129, 130,
2689 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2690 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2691 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2692 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2693 171, 172, 173, 174, 175, 176, 177, 178, 179, -1,
2694 -1, -1, -1, -1, -1, -1, -1, 188, 189, -1,
2697 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2699 /* This file comes from bison-1.28. */
2701 /* Skeleton output parser for bison,
2702 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2704 This program is free software; you can redistribute it and/or modify
2705 it under the terms of the GNU General Public License as published by
2706 the Free Software Foundation; either version 2, or (at your option)
2709 This program is distributed in the hope that it will be useful,
2710 but WITHOUT ANY WARRANTY; without even the implied warranty of
2711 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2712 GNU General Public License for more details.
2714 You should have received a copy of the GNU General Public License
2715 along with this program; if not, write to the Free Software
2716 Foundation, Inc., 59 Temple Place - Suite 330,
2717 Boston, MA 02111-1307, USA. */
2719 /* As a special exception, when this file is copied by Bison into a
2720 Bison output file, you may use that output file without restriction.
2721 This special exception was added by the Free Software Foundation
2722 in version 1.24 of Bison. */
2724 /* This is the parser code that is written into each bison parser
2725 when the %semantic_parser declaration is not specified in the grammar.
2726 It was written by Richard Stallman by simplifying the hairy parser
2727 used when %semantic_parser is specified. */
2729 #ifndef YYSTACK_USE_ALLOCA
2731 #define YYSTACK_USE_ALLOCA
2732 #else /* alloca not defined */
2734 #define YYSTACK_USE_ALLOCA
2735 #define alloca __builtin_alloca
2736 #else /* not GNU C. */
2737 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2738 #define YYSTACK_USE_ALLOCA
2740 #else /* not sparc */
2741 /* We think this test detects Watcom and Microsoft C. */
2742 /* This used to test MSDOS, but that is a bad idea
2743 since that symbol is in the user namespace. */
2744 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2745 #if 0 /* No need for malloc.h, which pollutes the namespace;
2746 instead, just don't use alloca. */
2749 #else /* not MSDOS, or __TURBOC__ */
2751 /* I don't know what this was needed for, but it pollutes the namespace.
2752 So I turned it off. rms, 2 May 1997. */
2753 /* #include <malloc.h> */
2755 #define YYSTACK_USE_ALLOCA
2756 #else /* not MSDOS, or __TURBOC__, or _AIX */
2758 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
2759 and on HPUX 10. Eventually we can turn this on. */
2760 #define YYSTACK_USE_ALLOCA
2761 #define alloca __builtin_alloca
2764 #endif /* not _AIX */
2765 #endif /* not MSDOS, or __TURBOC__ */
2766 #endif /* not sparc */
2767 #endif /* not GNU C */
2768 #endif /* alloca not defined */
2769 #endif /* YYSTACK_USE_ALLOCA not defined */
2771 #ifdef YYSTACK_USE_ALLOCA
2772 #define YYSTACK_ALLOC alloca
2774 #define YYSTACK_ALLOC malloc
2777 /* Note: there must be only one dollar sign in this file.
2778 It is replaced by the list of actions, each action
2779 as one case of the switch. */
2781 #define yyerrok (yyerrstatus = 0)
2782 #define yyclearin (yychar = YYEMPTY)
2785 #define YYACCEPT goto yyacceptlab
2786 #define YYABORT goto yyabortlab
2787 #define YYERROR goto yyerrlab1
2788 /* Like YYERROR except do call yyerror.
2789 This remains here temporarily to ease the
2790 transition to the new meaning of YYERROR, for GCC.
2791 Once GCC version 2 has supplanted version 1, this can go. */
2792 #define YYFAIL goto yyerrlab
2793 #define YYRECOVERING() (!!yyerrstatus)
2794 #define YYBACKUP(token, value) \
2796 if (yychar == YYEMPTY && yylen == 1) \
2797 { yychar = (token), yylval = (value); \
2798 yychar1 = YYTRANSLATE (yychar); \
2803 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2807 #define YYERRCODE 256
2810 #define YYLEX yylex()
2816 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2818 #define YYLEX yylex(&yylval, &yylloc)
2820 #else /* not YYLSP_NEEDED */
2822 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2824 #define YYLEX yylex(&yylval)
2826 #endif /* not YYLSP_NEEDED */
2829 /* If nonreentrant, generate the variables here */
2833 int yychar; /* the lookahead symbol */
2834 YYSTYPE yylval; /* the semantic value of the */
2835 /* lookahead symbol */
2838 YYLTYPE yylloc; /* location data for the lookahead */
2842 int yynerrs; /* number of parse errors so far */
2843 #endif /* not YYPURE */
2846 int yydebug; /* nonzero means print parse trace */
2847 /* Since this is uninitialized, it does not stop multiple parsers
2851 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2854 #define YYINITDEPTH 200
2857 /* YYMAXDEPTH is the maximum size the stacks can grow to
2858 (effective only if the built-in stack extension method is used). */
2865 #define YYMAXDEPTH 10000
2868 /* Define __yy_memcpy. Note that the size argument
2869 should be passed with type unsigned int, because that is what the non-GCC
2870 definitions require. With GCC, __builtin_memcpy takes an arg
2871 of type size_t, but it can handle unsigned int. */
2873 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2874 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2875 #else /* not GNU C or C++ */
2878 /* This is the most reliable way to avoid incompatibilities
2879 in available built-in functions on various systems. */
2881 __yy_memcpy (to, from, count)
2886 register char *f = from;
2887 register char *t = to;
2888 register int i = count;
2894 #else /* __cplusplus */
2896 /* This is the most reliable way to avoid incompatibilities
2897 in available built-in functions on various systems. */
2899 __yy_memcpy (char *to, char *from, unsigned int count)
2901 register char *t = to;
2902 register char *f = from;
2903 register int i = count;
2914 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2915 into yyparse. The argument should have type void *.
2916 It should actually point to an object.
2917 Grammar actions can access the variable by casting it
2918 to the proper pointer type. */
2920 #ifdef YYPARSE_PARAM
2922 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2923 #define YYPARSE_PARAM_DECL
2924 #else /* not __cplusplus */
2925 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2926 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2927 #endif /* not __cplusplus */
2928 #else /* not YYPARSE_PARAM */
2929 #define YYPARSE_PARAM_ARG
2930 #define YYPARSE_PARAM_DECL
2931 #endif /* not YYPARSE_PARAM */
2933 /* Prevent warning if -Wstrict-prototypes. */
2935 #ifdef YYPARSE_PARAM
2936 int yyparse (void *);
2943 yyparse(YYPARSE_PARAM_ARG)
2946 register int yystate;
2948 register short *yyssp;
2949 register YYSTYPE *yyvsp;
2950 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2951 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2953 short yyssa[YYINITDEPTH]; /* the state stack */
2954 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2956 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2957 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2960 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2961 YYLTYPE *yyls = yylsa;
2964 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2966 #define YYPOPSTACK (yyvsp--, yyssp--)
2969 int yystacksize = YYINITDEPTH;
2970 int yyfree_stacks = 0;
2981 YYSTYPE yyval; /* the variable used to return */
2982 /* semantic values from the action */
2989 fprintf(stderr, "Starting parse\n");
2995 yychar = YYEMPTY; /* Cause a token to be read. */
2997 /* Initialize stack pointers.
2998 Waste one element of value and location stack
2999 so that they stay on the same level as the state stack.
3000 The wasted elements are never initialized. */
3008 /* Push a new state, which is found in yystate . */
3009 /* In all cases, when you get here, the value and location stacks
3010 have just been pushed. so pushing a state here evens the stacks. */
3015 if (yyssp >= yyss + yystacksize - 1)
3017 /* Give user a chance to reallocate the stack */
3018 /* Use copies of these so that the &'s don't force the real ones into memory. */
3019 YYSTYPE *yyvs1 = yyvs;
3020 short *yyss1 = yyss;
3022 YYLTYPE *yyls1 = yyls;
3025 /* Get the current used size of the three stacks, in elements. */
3026 int size = yyssp - yyss + 1;
3029 /* Each stack pointer address is followed by the size of
3030 the data in use in that stack, in bytes. */
3032 /* This used to be a conditional around just the two extra args,
3033 but that might be undefined if yyoverflow is a macro. */
3034 yyoverflow("parser stack overflow",
3035 &yyss1, size * sizeof (*yyssp),
3036 &yyvs1, size * sizeof (*yyvsp),
3037 &yyls1, size * sizeof (*yylsp),
3040 yyoverflow("parser stack overflow",
3041 &yyss1, size * sizeof (*yyssp),
3042 &yyvs1, size * sizeof (*yyvsp),
3046 yyss = yyss1; yyvs = yyvs1;
3050 #else /* no yyoverflow */
3051 /* Extend the stack our own way. */
3052 if (yystacksize >= YYMAXDEPTH)
3054 yyerror("parser stack overflow");
3066 if (yystacksize > YYMAXDEPTH)
3067 yystacksize = YYMAXDEPTH;
3068 #ifndef YYSTACK_USE_ALLOCA
3071 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
3072 __yy_memcpy ((char *)yyss, (char *)yyss1,
3073 size * (unsigned int) sizeof (*yyssp));
3074 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
3075 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
3076 size * (unsigned int) sizeof (*yyvsp));
3078 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
3079 __yy_memcpy ((char *)yyls, (char *)yyls1,
3080 size * (unsigned int) sizeof (*yylsp));
3082 #endif /* no yyoverflow */
3084 yyssp = yyss + size - 1;
3085 yyvsp = yyvs + size - 1;
3087 yylsp = yyls + size - 1;
3092 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3095 if (yyssp >= yyss + yystacksize - 1)
3101 fprintf(stderr, "Entering state %d\n", yystate);
3107 /* Do appropriate processing given the current state. */
3108 /* Read a lookahead token if we need one and don't already have one. */
3111 /* First try to decide what to do without reference to lookahead token. */
3113 yyn = yypact[yystate];
3117 /* Not known => get a lookahead token if don't already have one. */
3119 /* yychar is either YYEMPTY or YYEOF
3120 or a valid token in external form. */
3122 if (yychar == YYEMPTY)
3126 fprintf(stderr, "Reading a token: ");
3131 /* Convert token to internal form (in yychar1) for indexing tables with */
3133 if (yychar <= 0) /* This means end of input. */
3136 yychar = YYEOF; /* Don't call YYLEX any more */
3140 fprintf(stderr, "Now at end of input.\n");
3145 yychar1 = YYTRANSLATE(yychar);
3150 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3151 /* Give the individual parser a way to print the precise meaning
3152 of a token, for further debugging info. */
3154 YYPRINT (stderr, yychar, yylval);
3156 fprintf (stderr, ")\n");
3162 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3167 /* yyn is what to do for this token type in this state.
3168 Negative => reduce, -yyn is rule number.
3169 Positive => shift, yyn is new state.
3170 New state is final state => don't bother to shift,
3171 just return success.
3172 0, or most negative number => error. */
3187 /* Shift the lookahead token. */
3191 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3194 /* Discard the token being shifted unless it is eof. */
3195 if (yychar != YYEOF)
3203 /* count tokens shifted since error; after three, turn off error status. */
3204 if (yyerrstatus) yyerrstatus--;
3209 /* Do the default action for the current state. */
3212 yyn = yydefact[yystate];
3216 /* Do a reduction. yyn is the number of a rule to reduce with. */
3220 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3227 fprintf (stderr, "Reducing via rule %d (line %d), ",
3230 /* Print the symbols being reduced, and their result. */
3231 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3232 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3233 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3241 { context_checkGlobalScope (); ;
3244 { context_checkGlobalScope (); ;
3247 { uentry_clearDecl (); ;
3250 { uentry_clearDecl (); ;
3253 { uentry_clearDecl (); ;
3256 { uentry_clearDecl (); ;
3259 { uentry_clearDecl (); ;
3262 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3265 { uentry_clearDecl (); /* evans 2002-02-08: okay to have a null statement */ ;
3268 { uentry_clearDecl (); ;
3271 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3274 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3277 { context_enterFunctionHeader (); ;
3281 declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3282 context_exitFunctionHeader ();
3287 qtype qint = qtype_create (ctype_int);
3288 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3293 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3296 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
3299 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3302 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3305 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3309 exprNode_findValue (yyvsp[-2].expr);
3310 idDecl_notExpectingFunction (yyvsp[-5].ntyp);
3312 if (exprNode_hasValue (yyvsp[-2].expr))
3314 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp),
3315 exprNode_getLongValue (yyvsp[-2].expr)));
3319 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-5].ntyp)));
3324 { setCurrentParams (uentryList_missingParams); ;
3327 { /* need to support globals and modifies here! */
3328 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3329 uentryList_makeMissingParams ());
3331 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3332 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3334 /*drl 7/25/01 added*/
3335 setImplictfcnConstraints();
3339 { setCurrentParams (yyvsp[-1].entrylist); ;
3342 { setImplictfcnConstraints ();
3343 clearCurrentParams ();
3344 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3345 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3350 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3353 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3356 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3362 if (exprNode_hasValue (yyvsp[-2].expr)
3363 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3365 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3372 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3376 { setCurrentParams (uentryList_missingParams); ;
3380 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3381 uentryList_makeMissingParams ());
3383 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3384 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3389 { setCurrentParams (yyvsp[-1].entrylist); ;
3393 clearCurrentParams ();
3394 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3395 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3400 { setCurrentParams (yyvsp[-1].entrylist); ;
3403 { clearCurrentParams (); ;
3406 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3409 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3412 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3415 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3418 { exprChecks_checkEmptyMacroBody (); ;
3421 { clabstract_declareFunction (yyvsp[0].ntyp); ;
3424 { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3427 { cscanner_expectingMetaStateName (); ;
3430 { cscanner_clearExpectingMetaStateName ();
3431 yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo); ;
3434 { cscanner_expectingMetaStateName (); ;
3437 { cscanner_clearExpectingMetaStateName ();
3438 yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo); ;
3441 { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
3444 { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3447 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3450 { yyval.conL = constraintList_single (yyvsp[0].con); ;
3454 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3455 DPRINTF(("Done BufConstraint1\n")); ;
3458 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3462 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3463 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3466 { yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
3469 { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
3472 { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
3475 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3478 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3484 t = cstring_toCharsSafe (exprNode_unparse($3));
3487 yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3491 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3494 { yyval.sr = yyvsp[-1].sr; ;
3497 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3500 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3503 { yyval.funcclauselist = functionClauseList_new (); ;
3506 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3509 { yyval.funcclauselist = functionClauseList_new (); ;
3512 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3515 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3518 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3521 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3524 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3527 { yyval.funcclause = yyvsp[0].funcclause; ;
3530 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3533 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3536 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3539 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3542 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3545 { yyval.funcclause = yyvsp[0].funcclause; ;
3548 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3551 { yyval.globsclause = yyvsp[-1].globsclause; ;
3554 { setProcessingGlobalsList (); ;
3558 unsetProcessingGlobals ();
3559 yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
3563 { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
3566 { yyval.modsclause = yyvsp[-1].modsclause; ;
3570 context_setProtectVars (); enterParamsTemp ();
3571 sRef_setGlobalScopeSafe ();
3577 sRef_clearGlobalScopeSafe ();
3578 context_releaseVars ();
3579 yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3583 { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
3586 { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
3589 { yyval.warnclause = warnClause_undefined; ;
3592 { yyval.warnclause = yyvsp[-1].warnclause; ;
3596 llassert (exprNode_knownStringValue (yyvsp[0].expr));
3597 yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
3598 exprNode_free (yyvsp[0].expr);
3602 { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
3605 { yyval.globset = globSet_single (yyvsp[0].sr); ;
3608 { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3611 { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3614 { yyval.tquallist = qualList_undefined; ;
3617 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3620 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3623 { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3626 { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3629 { yyval.typequal = qual_createUndef (); ;
3632 { yyval.typequal = qual_createKilled (); ;
3635 { yyval.typequal = qual_createOut (); ;
3638 { yyval.typequal = qual_createIn (); ;
3641 { yyval.typequal = qual_createPartial (); ;
3645 /**!!! deal with fred; fred (int); declarations! **/
3646 qtype qint = qtype_create (ctype_int);
3647 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3652 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3655 { checkDoneParams (); context_enterInnerContext (); ;
3659 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3660 context_exitInner (yyvsp[0].expr);
3664 { context_enterOldStyleScope (); ;
3667 { oldStyleDoneParams (); context_enterInnerContext (); ;
3671 exprNode_checkFunctionBody (yyvsp[0].expr);
3672 yyval.expr = yyvsp[0].expr; /* oldstyle */
3673 context_exitInner (yyvsp[0].expr);
3678 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3679 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3682 context_exitFunction ();
3686 { yyval.srset = yyvsp[-1].srset; ;
3689 { yyval.srset = sRefSet_new (); ;
3692 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3695 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3698 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3701 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3704 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3707 { yyval.sr = yyvsp[-1].sr; ;
3710 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3713 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3716 { yyval.sr = yyvsp[0].sr; ;
3719 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3722 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3725 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3728 { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
3731 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3734 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3737 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3740 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3743 { yyval.sr = yyvsp[-1].sr; ;
3746 { cstring_markOwned (yyvsp[0].cname);
3747 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3750 { cstring_markOwned (yyvsp[0].cname);
3751 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3754 { yyval.srset = sRefSet_undefined ;
3757 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3758 else { yyval.srset = sRefSet_undefined; }
3762 { if (sRef_isValid (yyvsp[0].sr))
3764 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3768 yyval.srset = yyvsp[-2].srset;
3773 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3776 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3779 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3782 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3785 { yyval.expr = exprNode_makeError (); ;
3788 { exprChecks_inCompoundStatementExpression (); ;
3791 { exprChecks_leaveCompoundStatementExpression (); yyval.expr = exprNode_compoundStatementExpression (yyvsp[-3].tok, yyvsp[-1].expr); ;
3794 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3797 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3800 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
3803 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3806 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3809 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3812 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3815 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3818 { /* added for C99 */ yyval.expr = exprNode_undefined; /*@i87 no checking */ ;
3821 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3824 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
3827 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3830 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3833 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3836 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3839 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3842 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3845 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3848 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3851 { yyval.expr = yyvsp[0].expr; ;
3854 { yyval.expr = yyvsp[0].expr; ;
3857 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3860 { yyval.cstringlist = yyvsp[-3].cstringlist; ;
3863 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3866 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3869 { context_setProtectVars (); ;
3872 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3875 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3878 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3881 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3884 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3887 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3890 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3893 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3896 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3899 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3902 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3905 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3908 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3911 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3914 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3917 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3920 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3923 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3926 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3929 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3932 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3935 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3938 { exprNode_produceGuards (yyvsp[-1].expr);
3939 context_enterAndClause (yyvsp[-1].expr);
3944 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3945 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3950 exprNode_produceGuards (yyvsp[-1].expr);
3951 context_enterOrClause (yyvsp[-1].expr);
3956 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3957 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3961 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3964 { context_enterFalseClause (yyvsp[-4].expr); ;
3967 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3970 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3973 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3976 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3979 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3982 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3985 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3988 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3991 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3994 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3997 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4000 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4003 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
4006 { yyval.expr = exprNode_undefined; ;
4009 { yyval.expr = yyvsp[0].expr; ;
4012 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
4015 { yyval.expr = exprNode_makeError (); ;
4018 { yyval.expr = exprNode_makeError (); ;
4022 setProcessingVars (yyvsp[-3].qtyp);
4023 processNamedDecl (yyvsp[-1].ntyp);
4028 unsetProcessingVars ();
4029 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
4030 DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
4034 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
4037 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4038 unsetProcessingVars ();
4043 processNamedDecl (yyvsp[-1].ntyp);
4044 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
4048 { processNamedDecl (yyvsp[-2].ntyp); ;
4051 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4054 { setProcessingTypedef (yyvsp[0].qtyp); ;
4057 { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
4060 { /* in the ANSI grammar, semantics unclear */ ;
4063 { /* in the ANSI grammar, semantics unclear */ ;
4066 { g_expectingTypeName = TRUE; ;
4069 { g_expectingTypeName = TRUE; context_pushLoc (); ;
4072 { yyval.exprlist = yyvsp[-1].exprlist; ;
4075 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4078 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4081 { yyval.expr = exprNode_makeError (); ;
4084 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4087 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); ;
4090 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); ;
4093 { yyval.expr = exprNode_undefined; ;
4096 { yyval.expr = yyvsp[-1].expr; ;
4099 { yyval.expr = exprNode_undefined;
4100 /* gcc extension, obsolete since 2.5 */ ;
4103 { yyval.expr = exprNode_undefined; ;
4106 { yyval.expr = exprNode_undefined; ;
4109 { yyval.expr = exprNode_undefined; ;
4112 { yyval.expr = exprNode_undefined; ;
4115 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4118 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4121 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4124 { yyval.typequal = qual_createInline (); ;
4127 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4130 { yyval.typequal = qual_createAuto (); ;
4133 { yyval.typequal = qual_createRegister (); ;
4136 { yyval.stateclause = yyvsp[-1].stateclause; ;
4140 context_setProtectVars ();
4142 sRef_setGlobalScopeSafe ();
4148 sRef_clearGlobalScopeSafe ();
4149 context_releaseVars ();
4150 yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4154 { yyval.funcclause = yyvsp[-1].funcclause; ;
4157 { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
4161 context_exitFunctionHeader ();
4162 context_setProtectVars ();
4164 sRef_setGlobalScopeSafe ();
4170 sRef_clearGlobalScopeSafe ();
4171 context_releaseVars ();
4172 yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4177 context_setProtectVars ();
4179 sRef_setGlobalScopeSafe ();
4184 context_exitFunctionHeader ();
4186 sRef_clearGlobalScopeSafe ();
4187 context_releaseVars ();
4188 DPRINTF (("done optGlobBufConstraintsAux\n"));
4190 if (lltok_isEnsures (yyvsp[-4].tok))
4192 yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4194 else if (lltok_isRequires (yyvsp[-4].tok))
4196 yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4203 DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4207 { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
4210 { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
4213 { yyval.typequal = qual_createExits (); ;
4216 { yyval.typequal = qual_createMayExit (); ;
4219 { yyval.typequal = qual_createTrueExit (); ;
4222 { yyval.typequal = qual_createFalseExit (); ;
4225 { yyval.typequal = qual_createNeverExit (); ;
4228 { yyval.typequal = qual_createChecked (); ;
4231 { yyval.typequal = qual_createCheckMod (); ;
4234 { yyval.typequal = qual_createUnchecked (); ;
4237 { yyval.typequal = qual_createCheckedStrict (); ;
4240 { yyval.typequal = qual_createOwned (); ;
4243 { yyval.typequal = qual_createDependent (); ;
4246 { yyval.typequal = qual_createYield (); ;
4249 { yyval.typequal = qual_createTemp (); ;
4252 { yyval.typequal = qual_createOnly (); ;
4255 { yyval.typequal = qual_createKeep (); ;
4258 { yyval.typequal = qual_createKept (); ;
4261 { yyval.typequal = qual_createShared (); ;
4264 { yyval.typequal = qual_createUnique (); ;
4267 { yyval.typequal = qual_createNull (); ;
4270 { yyval.typequal = qual_createIsNull (); ;
4273 { yyval.typequal = qual_createRelNull (); ;
4276 { yyval.typequal = qual_createNotNull (); ;
4279 { yyval.typequal = qual_createExposed (); ;
4282 { yyval.typequal = qual_createObserver (); ;
4285 { yyval.typequal = qual_createNullTerminated (); ;
4288 { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
4291 { yyval.typequal = qual_createReturned (); ;
4294 { yyval.typequal = qual_createSef (); ;
4297 { yyval.typequal = qual_createUnused (); ;
4300 { yyval.typequal = qual_createExternal (); ;
4303 { yyval.typequal = qual_createTrueNull (); ;
4306 { yyval.typequal = qual_createFalseNull (); ;
4309 { yyval.typequal = qual_createAbstract (); ;
4312 { yyval.typequal = qual_createConcrete (); ;
4315 { yyval.typequal = qual_createMutable (); ;
4318 { yyval.typequal = qual_createImmutable (); ;
4321 { yyval.typequal = qual_createRefCounted (); ;
4324 { yyval.typequal = qual_createRefs (); ;
4327 { yyval.typequal = qual_createKillRef (); ;
4330 { yyval.typequal = qual_createRelDef (); ;
4333 { yyval.typequal = qual_createNewRef (); ;
4336 { yyval.typequal = qual_createTempRef (); ;
4339 { yyval.typequal = qual_createShort (); ;
4342 { yyval.typequal = qual_createLong (); ;
4345 { yyval.typequal = qual_createSigned (); ;
4348 { yyval.typequal = qual_createUnsigned (); ;
4351 { yyval.typequal = qual_createOut (); ;
4354 { yyval.typequal = qual_createIn (); ;
4357 { yyval.typequal = qual_createPartial (); ;
4360 { yyval.typequal = qual_createSpecial (); ;
4363 { yyval.typequal = qual_createConst (); ;
4366 { yyval.typequal = qual_createVolatile (); ;
4369 { yyval.typequal = qual_createRestrict (); ;
4372 { yyval.typequal = yyvsp[-1].typequal; ;
4375 { yyval.typequal = yyvsp[-1].typequal; ;
4378 { yyval.typequal = yyvsp[-1].typequal; ;
4381 { yyval.typequal = yyvsp[-1].typequal; ;
4384 { yyval.typequal = yyvsp[-1].typequal; ;
4387 { yyval.typequal = yyvsp[-1].typequal; ;
4390 { yyval.typequal = yyvsp[-1].typequal; ;
4393 { yyval.typequal = yyvsp[-1].typequal; ;
4396 { yyval.typequal = yyvsp[-1].typequal; ;
4399 { yyval.ctyp = ctype_makeAnytype (); ;
4402 { yyval.ctyp = ctype_anyintegral; ;
4405 { yyval.ctyp = ctype_unsignedintegral; ;
4408 { yyval.ctyp = ctype_signedintegral; ;
4411 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4414 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4417 { yyval.qtyp = yyvsp[0].qtyp; ;
4420 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4423 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4426 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4429 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4432 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4435 { yyval.qtyp = qtype_unknown (); ;
4438 { yyval.qtyp = yyvsp[0].qtyp; ;
4441 { yyval.conL = constraintList_undefined; ;
4444 { sRef_setGlobalScopeSafe (); ;
4447 { sRef_clearGlobalScopeSafe (); ;
4450 { ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); /* setGlobalStructInfo(ct, $12);*/ yyval.ctyp = ct; ;
4453 { sRef_setGlobalScopeSafe (); ;
4456 { sRef_clearGlobalScopeSafe (); ;
4459 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4462 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4465 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4468 { sRef_setGlobalScopeSafe (); ;
4471 { sRef_clearGlobalScopeSafe (); ;
4474 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4477 { sRef_setGlobalScopeSafe (); ;
4480 { sRef_clearGlobalScopeSafe (); ;
4483 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4486 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4489 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4492 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4495 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4498 { g_expectingTypeName = FALSE; ;
4501 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4504 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4507 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4510 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4513 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4516 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4519 { yyval.ntyp = yyvsp[0].ntyp; ;
4522 { yyval.ntyp = idDecl_undefined; ;
4525 { yyval.ntyp = yyvsp[-3].ntyp; ;
4528 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4531 { context_pushLoc (); ;
4534 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4537 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4540 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4543 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4546 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4547 usymtab_supGlobalEntry (ue);
4548 yyval.cname = yyvsp[0].cname;
4552 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4553 usymtab_supGlobalEntry (ue);
4554 yyval.cname = yyvsp[-3].cname;
4558 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4562 qtype qt = qtype_unknown ();
4563 qtype_adjustPointers (yyvsp[-1].pointers, qt);
4564 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4568 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
4571 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
4574 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4577 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4580 { yyval.typequal = qual_createConst (); ;
4583 { yyval.typequal = qual_createRestrict (); ;
4586 { yyval.typequal = qual_createVolatile (); ;
4589 { yyval.tquallist = qualList_single (yyvsp[0].typequal); ;
4592 { yyval.tquallist = qualList_add (yyvsp[-1].tquallist, yyvsp[0].typequal); ;
4595 { yyval.pointers = pointers_create (yyvsp[0].tok); ;
4598 { yyval.pointers = pointers_createMods (yyvsp[-1].tok, yyvsp[0].tquallist); ;
4601 { yyval.pointers = pointers_extend (pointers_create (yyvsp[-1].tok), yyvsp[0].pointers); ;
4604 { yyval.pointers = pointers_extend (pointers_createMods (yyvsp[-2].tok, yyvsp[-1].tquallist), yyvsp[0].pointers); ;
4607 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4610 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4613 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4616 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4619 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4625 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4631 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4635 if (isFlipOldStyle ())
4637 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4643 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4648 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4652 llparseerror (message ("Inconsistent function parameter syntax: %q",
4653 idDecl_unparse (tparam)));
4657 yyval.oentry = makeCurrentParam (tparam);
4658 idDecl_free (tparam);
4662 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4665 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;
4668 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;
4671 { yyval.ctyp = ctype_unknown; ;
4674 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4677 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4680 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4683 { yyval.ctyp = ctype_makeInnerArray (yyvsp[-2].ctyp); ;
4686 { yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4689 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4692 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4695 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4698 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4701 { yyval.expr = yyvsp[0].expr; ;
4704 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4707 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4710 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4713 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4716 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4719 { context_setProtectVars (); ;
4722 { context_sizeofReleaseVars (); ;
4725 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4726 context_enterForClause (yyvsp[-5].expr); ;
4729 { setProcessingIterVars (yyvsp[-2].entry); ;
4732 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
4735 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4738 { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
4741 { yyval.expr = yyvsp[-1].expr; ;
4744 { yyval.expr = exprNode_makeError (); ;
4747 { exprNode_checkIfPred (yyvsp[0].expr); ;
4750 { /* don't: context_exitTrueClause ($1, $2); */
4751 yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr);
4755 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4758 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4761 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4764 { yyval.expr = exprNode_makeError (); ;
4767 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4770 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4779 { context_enterCaseClause (yyvsp[0].expr); ;
4782 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4785 { context_enterCaseClause (yyvsp[0].expr); ;
4788 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4791 { context_enterCaseClause (exprNode_undefined); ;
4794 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4797 { context_enterCaseClause (exprNode_undefined); ;
4800 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4803 { yyval.expr = yyvsp[-1].expr; ;
4806 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4809 { yyval.expr = yyvsp[-1].expr; ;
4812 { context_enterInnerContext (); ;
4815 { context_exitInnerPlain (); ;
4818 { context_enterStructInnerContext (); ;
4821 { context_exitStructInnerContext (); ;
4824 { context_exitInnerSafe (); ;
4827 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4830 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4833 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4836 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4839 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4842 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4845 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4848 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4849 lltok_getLoc (yyvsp[-1].tok)));
4853 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4856 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4859 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4862 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4865 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4868 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4871 { yyval.expr = yyvsp[0].expr; ;
4874 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4877 { yyval.expr = yyvsp[0].expr; ;
4880 { yyval.expr = exprNode_concat (yyvsp[-2].expr, yyvsp[0].expr); ;
4883 { yyval.expr = yyvsp[0].expr; ;
4886 { yyval.expr = yyvsp[-2].expr; ;
4889 { yyval.expr = yyvsp[0].expr; ;
4892 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4895 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4898 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4901 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4904 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4907 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
4911 exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr);
4912 exprNode_checkIfPred (yyvsp[-1].expr);
4913 yyval.expr = yyvsp[-1].expr;
4918 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4919 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4923 { context_enterFalseClause (yyvsp[-2].expr); ;
4927 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4928 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4932 { context_enterSwitch (yyvsp[0].expr); ;
4935 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4938 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4941 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4944 { context_enterIterClause (); ;
4947 { setProcessingIterVars (yyvsp[-3].entry); ;
4951 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
4956 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4959 { nextIterParam (); ;
4962 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4965 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4968 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4971 { uentry ue = coerceIterId (yyvsp[0].cname);
4973 if (uentry_isValid (ue))
4975 yyval.expr = exprNode_iterId (ue);
4979 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
4984 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
4987 { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
4990 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4993 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4996 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4999 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
5002 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
5005 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5008 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5011 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5014 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5017 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5020 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5023 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5026 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5029 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5032 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5035 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5038 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5041 { yyval.expr = yyvsp[0].expr; ;
5044 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
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 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5074 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5077 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5080 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5083 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5086 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5089 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5092 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5095 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5098 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5101 { context_enterTrueClause (yyvsp[-1].expr); ;
5104 { context_enterFalseClause (yyvsp[-4].expr); ;
5107 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5110 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5113 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5116 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5119 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5122 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5125 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5128 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5131 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5134 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5137 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5140 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5143 { yyval.entry = yyvsp[0].entry; ;
5146 { yyval.entry = uentry_undefined; ;
5149 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5152 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5155 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5158 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5161 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5164 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5167 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5170 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5173 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5176 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5179 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5182 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5185 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5188 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5191 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5194 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5197 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5200 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5209 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5212 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5215 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5218 { yyval.cname = yyvsp[0].cname; ;
5221 { yyval.ctyp = ctype_unknown; ;
5224 { yyval.ctyp = exprNode_getType (yyvsp[-1].expr); exprNode_free (yyvsp[-1].expr); ;
5227 { yyval.ctyp = qtype_getType (yyvsp[-1].qtyp); ;
5230 /* the action file gets copied in in place of this dollarsign */
5242 short *ssp1 = yyss - 1;
5243 fprintf (stderr, "state stack now");
5244 while (ssp1 != yyssp)
5245 fprintf (stderr, " %d", *++ssp1);
5246 fprintf (stderr, "\n");
5256 yylsp->first_line = yylloc.first_line;
5257 yylsp->first_column = yylloc.first_column;
5258 yylsp->last_line = (yylsp-1)->last_line;
5259 yylsp->last_column = (yylsp-1)->last_column;
5264 yylsp->last_line = (yylsp+yylen-1)->last_line;
5265 yylsp->last_column = (yylsp+yylen-1)->last_column;
5269 /* Now "shift" the result of the reduction.
5270 Determine what state that goes to,
5271 based on the state we popped back to
5272 and the rule number reduced by. */
5276 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5277 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5278 yystate = yytable[yystate];
5280 yystate = yydefgoto[yyn - YYNTBASE];
5284 yyerrlab: /* here on detecting error */
5287 /* If not already recovering from an error, report this error. */
5291 #ifdef YYERROR_VERBOSE
5292 yyn = yypact[yystate];
5294 if (yyn > YYFLAG && yyn < YYLAST)
5301 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5302 for (x = (yyn < 0 ? -yyn : 0);
5303 x < (sizeof(yytname) / sizeof(char *)); x++)
5304 if (yycheck[x + yyn] == x)
5305 size += strlen(yytname[x]) + 15, count++;
5306 msg = (char *) malloc(size + 15);
5309 strcpy(msg, "parse error");
5314 for (x = (yyn < 0 ? -yyn : 0);
5315 x < (sizeof(yytname) / sizeof(char *)); x++)
5316 if (yycheck[x + yyn] == x)
5318 strcat(msg, count == 0 ? ", expecting `" : " or `");
5319 strcat(msg, yytname[x]);
5328 yyerror ("parse error; also virtual memory exceeded");
5331 #endif /* YYERROR_VERBOSE */
5332 yyerror("parse error");
5336 yyerrlab1: /* here on error raised explicitly by an action */
5338 if (yyerrstatus == 3)
5340 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5342 /* return failure if at end of input */
5343 if (yychar == YYEOF)
5348 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5354 /* Else will try to reuse lookahead token
5355 after shifting the error token. */
5357 yyerrstatus = 3; /* Each real token shifted decrements this */
5361 yyerrdefault: /* current state does not do anything special for the error token. */
5364 /* This is wrong; only states that explicitly want error tokens
5365 should shift them. */
5366 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5367 if (yyn) goto yydefault;
5370 yyerrpop: /* pop the current state because it cannot handle the error token */
5372 if (yyssp == yyss) YYABORT;
5382 short *ssp1 = yyss - 1;
5383 fprintf (stderr, "Error: state stack now");
5384 while (ssp1 != yyssp)
5385 fprintf (stderr, " %d", *++ssp1);
5386 fprintf (stderr, "\n");
5392 yyn = yypact[yystate];
5397 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5416 fprintf(stderr, "Shifting error token, ");
5428 /* YYACCEPT comes here. */
5440 /* YYABORT comes here. */
5453 /*@-redecl@*/ /*@-namechecks@*/
5454 extern char *yytext;
5455 /*@=redecl@*/ /*@=namechecks@*/
5457 # include "bison.reset"
5459 void yyerror (/*@unused@*/ char *s)
5461 static bool givehint = FALSE;
5463 if (context_inIterDef ())
5465 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5466 context_inFunctionName ()));
5468 else if (context_inIterEnd ())
5470 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5471 context_inFunctionName ()));
5473 else if (context_inMacro ())
5475 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5476 context_inFunctionName ()));
5478 if (context_inUnknownMacro ())
5482 llhint (cstring_makeLiteral
5483 ("Precede macro definition with /*@notfunction@*/ "
5484 "to suppress checking and force expansion"));
5490 context_exitAllClausesQuiet ();
5494 llparseerror (cstring_undefined);
5510 ** Resets all flags in bison.head
5532 /*@=evalorderuncon@*/
5541 /*@=elseifcomplete@*/
5545 /*@=readonlytrans@*/
5548 /*@=systemunrecog@*/
5549 /*@=dependenttrans@*/
5550 /*@=unqualifiedtrans@*/
5554 /*drl added 11/27/2001*/