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
102 #define COFFSETOF 300
113 #define MUL_ASSIGN 311
114 #define DIV_ASSIGN 312
115 #define MOD_ASSIGN 313
116 #define ADD_ASSIGN 314
117 #define SUB_ASSIGN 315
118 #define LEFT_ASSIGN 316
119 #define RIGHT_ASSIGN 317
120 #define AND_ASSIGN 318
121 #define XOR_ASSIGN 319
122 #define OR_ASSIGN 320
130 #define QMODIFIES 328
132 #define QCONSTANT 330
133 #define QFUNCTION 331
137 #define QALLOCATES 335
139 #define QRELEASES 337
140 #define QPRECLAUSE 338
141 #define QPOSTCLAUSE 339
142 #define QINVARIANT 340
146 #define QENDMACRO 344
148 #define LLMACROITER 346
149 #define LLMACROEND 347
150 #define TENDMACRO 348
151 #define QSWITCHBREAK 349
152 #define QLOOPBREAK 350
153 #define QINNERBREAK 351
154 #define QSAFEBREAK 352
155 #define QINNERCONTINUE 353
156 #define QFALLTHROUGH 354
157 #define QLINTNOTREACHED 355
158 #define QLINTFALLTHROUGH 356
159 #define QLINTFALLTHRU 357
160 #define QARGSUSED 358
161 #define QPRINTFLIKE 359
162 #define QLINTPRINTFLIKE 360
163 #define QSCANFLIKE 361
164 #define QMESSAGELIKE 362
165 #define QNOTREACHED 363
167 #define QVOLATILE 365
169 #define QEXTENSION 367
173 #define QREGISTER 371
183 #define QUNCHECKED 381
184 #define QCHECKEDSTRICT 382
185 #define QCHECKMOD 383
191 #define QDEPENDENT 389
192 #define QRETURNED 390
195 #define QOBSERVER 393
199 #define QNEVEREXIT 397
200 #define QTRUEEXIT 398
201 #define QFALSEEXIT 399
204 #define QUNSIGNED 402
210 #define QABSTRACT 408
211 #define QCONCRETE 409
213 #define QIMMUTABLE 411
214 #define QTRUENULL 412
215 #define QFALSENULL 413
216 #define QEXTERNAL 414
217 #define QREFCOUNTED 415
230 #define QINTEGRALTYPE 428
231 #define QUNSIGNEDINTEGRALTYPE 429
232 #define QSIGNEDINTEGRALTYPE 430
233 #define QNULLTERMINATED 431
234 #define QSETBUFFERSIZE 432
235 #define QSETSTRINGLENGTH 433
238 #define QTESTINRANGE 436
240 #define IDENTIFIER 438
241 #define NEW_IDENTIFIER 439
242 #define TYPE_NAME_OR_ID 440
243 #define CANNOTATION 441
244 #define CCONSTANT 442
245 #define ITER_NAME 443
246 #define ITER_ENDNAME 444
247 #define TYPE_NAME 445
248 #define METASTATE_NAME 446
255 ** Yacc/Bison grammar for extended ANSI C used by Splint.
257 ** original grammar by Nate Osgood ---
258 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
260 ** changes for Splint --- handle typedef names correctly
261 ** fix struct/union parsing bug (empty struct is accepted)
262 ** add productions to handle macros --- require
263 ** error correction --- main source of conflicts in grammar.
264 ** need to process initializations sequentially, L->R
266 ** production names are cryptic, so more productions fit on one line
268 ** conflicts: 87 shift/reduce, 18 reduce/reduce
269 ** most of these are due to handling macros
270 ** a few are due to handling type expressions
276 extern void swallowMacro (void);
277 extern void yyerror (char *);
279 # include "splintMacros.nf"
281 # include "cscanner.h"
282 # include "cgrammar.h"
283 # include "exprChecks.h"
288 # define SHOWCSYM FALSE
291 ** This is necessary, or else when the bison-generated code #include's malloc.h,
292 ** there will be a parse error.
294 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
295 ** in bison-generated files under Win32.
312 /*@dependent@*/ sRef sr;
315 /*@only@*/ functionClauseList funcclauselist;
316 /*@only@*/ functionClause funcclause;
317 /*@only@*/ flagSpec flagspec;
318 /*@only@*/ globalsClause globsclause;
319 /*@only@*/ modifiesClause modsclause;
320 /*@only@*/ warnClause warnclause;
321 /*@only@*/ stateClause stateclause;
323 /*@only@*/ functionConstraint fcnconstraint;
325 /*@only@*/ metaStateConstraint msconstraint;
326 /*@only@*/ metaStateSpecifier msspec;
327 /*@only@*/ metaStateExpression msexpr;
328 /*@observer@*/ metaStateInfo msinfo;
330 /*@only@*/ sRefList srlist;
331 /*@only@*/ globSet globset;
332 /*@only@*/ qtype qtyp;
333 /*@only@*/ cstring cname;
334 /*@observer@*/ annotationInfo annotation;
335 /*@only@*/ idDecl ntyp;
336 /*@only@*/ idDeclList ntyplist;
337 /*@only@*/ uentryList flist;
338 /*@owned@*/ uentryList entrylist;
339 /*@observer@*/ /*@dependent@*/ uentry entry;
340 /*@only@*/ uentry oentry;
341 /*@only@*/ exprNode expr;
342 /*@only@*/ enumNameList enumnamelist;
343 /*@only@*/ exprNodeList exprlist;
344 /*@only@*/ sRefSet srset;
345 /*@only@*/ cstringList cstringlist;
370 #define YYFLAG -32768
373 #define YYTRANSLATE(x) ((unsigned)(x) <= 446 ? yytranslate[x] : 451)
375 static const short yytranslate[] = { 0,
376 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
377 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
378 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
379 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
380 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
381 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
382 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
383 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
384 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
385 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
386 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
387 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
388 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
389 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
390 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
391 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
392 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
393 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
394 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
395 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
396 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
397 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
398 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
399 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
400 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
401 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
402 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
403 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
404 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
405 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
406 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
407 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
408 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
409 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
410 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
411 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
412 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
413 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
414 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
415 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
416 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
417 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
418 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
419 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
420 187, 188, 189, 190, 191, 192
424 static const short yyprhs[] = { 0,
425 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
426 21, 23, 32, 44, 45, 51, 53, 57, 59, 62,
427 64, 71, 75, 82, 83, 90, 91, 99, 101, 108,
428 112, 119, 120, 127, 128, 136, 137, 138, 149, 153,
429 157, 161, 164, 166, 170, 171, 176, 177, 182, 184,
430 188, 190, 192, 194, 198, 200, 204, 206, 208, 210,
431 212, 214, 216, 221, 227, 229, 231, 233, 235, 239,
432 244, 247, 251, 255, 259, 261, 263, 265, 266, 269,
433 270, 273, 275, 277, 279, 281, 283, 285, 287, 289,
434 291, 293, 295, 297, 300, 301, 306, 308, 311, 312,
435 316, 318, 322, 324, 326, 327, 330, 334, 337, 339,
436 343, 346, 347, 350, 352, 354, 356, 358, 360, 362,
437 364, 366, 368, 370, 372, 374, 376, 378, 380, 382,
438 386, 387, 391, 392, 393, 398, 401, 404, 406, 408,
439 410, 414, 419, 422, 426, 430, 434, 436, 438, 440,
440 444, 446, 448, 452, 457, 460, 464, 468, 472, 473,
441 475, 477, 481, 483, 485, 487, 491, 493, 495, 497,
442 502, 506, 511, 518, 524, 530, 533, 536, 538, 542,
443 544, 547, 550, 553, 556, 559, 562, 565, 568, 570,
444 572, 576, 578, 588, 589, 593, 598, 601, 606, 609,
445 611, 616, 618, 622, 626, 630, 632, 636, 640, 642,
446 646, 650, 652, 656, 660, 664, 668, 670, 674, 678,
447 680, 684, 686, 690, 692, 696, 698, 699, 704, 706,
448 707, 712, 714, 715, 716, 724, 726, 730, 734, 738,
449 742, 746, 750, 754, 758, 762, 766, 770, 772, 776,
450 777, 779, 781, 783, 785, 787, 791, 792, 802, 803,
451 815, 818, 819, 826, 827, 836, 841, 846, 847, 848,
452 851, 853, 858, 859, 864, 866, 870, 875, 877, 881,
453 883, 885, 887, 889, 891, 894, 895, 902, 905, 908,
454 909, 916, 917, 923, 925, 927, 929, 931, 933, 935,
455 937, 939, 941, 943, 945, 947, 949, 951, 953, 955,
456 957, 959, 961, 963, 965, 967, 969, 971, 973, 975,
457 977, 979, 981, 983, 985, 987, 989, 991, 993, 995,
458 997, 999, 1001, 1003, 1005, 1007, 1009, 1011, 1013, 1015,
459 1017, 1019, 1021, 1023, 1025, 1027, 1030, 1033, 1036, 1039,
460 1042, 1045, 1048, 1051, 1054, 1057, 1060, 1063, 1066, 1069,
461 1072, 1075, 1078, 1081, 1084, 1087, 1090, 1093, 1096, 1099,
462 1102, 1106, 1108, 1113, 1115, 1119, 1122, 1125, 1128, 1129,
463 1131, 1132, 1133, 1134, 1147, 1148, 1149, 1161, 1168, 1175,
464 1176, 1177, 1188, 1189, 1190, 1201, 1207, 1213, 1218, 1223,
465 1224, 1226, 1228, 1231, 1237, 1241, 1244, 1249, 1251, 1255,
466 1260, 1267, 1268, 1277, 1282, 1284, 1288, 1291, 1293, 1298,
467 1300, 1302, 1305, 1308, 1310, 1313, 1315, 1318, 1320, 1322,
468 1324, 1327, 1329, 1332, 1335, 1339, 1341, 1345, 1347, 1351,
469 1353, 1355, 1359, 1360, 1363, 1364, 1369, 1374, 1376, 1378,
470 1381, 1383, 1385, 1388, 1389, 1391, 1397, 1400, 1404, 1408,
471 1413, 1417, 1422, 1427, 1433, 1435, 1437, 1439, 1441, 1443,
472 1445, 1447, 1449, 1451, 1453, 1455, 1457, 1460, 1463, 1471,
473 1478, 1481, 1482, 1483, 1494, 1495, 1502, 1504, 1506, 1508,
474 1510, 1513, 1515, 1517, 1519, 1521, 1523, 1525, 1527, 1531,
475 1533, 1534, 1538, 1541, 1544, 1546, 1548, 1550, 1552, 1554,
476 1556, 1558, 1560, 1562, 1564, 1568, 1570, 1572, 1575, 1578,
477 1579, 1582, 1583, 1588, 1589, 1596, 1597, 1601, 1602, 1608,
478 1612, 1615, 1619, 1620, 1621, 1622, 1623, 1624, 1626, 1629,
479 1632, 1636, 1639, 1643, 1647, 1652, 1655, 1658, 1662, 1666,
480 1671, 1673, 1676, 1678, 1681, 1683, 1686, 1688, 1691, 1693,
481 1696, 1698, 1703, 1706, 1707, 1713, 1714, 1721, 1726, 1731,
482 1732, 1733, 1744, 1746, 1747, 1752, 1754, 1756, 1758, 1760,
483 1762, 1765, 1767, 1771, 1773, 1778, 1782, 1787, 1794, 1800,
484 1806, 1809, 1812, 1814, 1817, 1820, 1823, 1826, 1829, 1832,
485 1835, 1838, 1840, 1842, 1847, 1849, 1853, 1857, 1861, 1863,
486 1867, 1871, 1873, 1877, 1881, 1883, 1887, 1891, 1895, 1899,
487 1901, 1905, 1909, 1911, 1915, 1917, 1921, 1923, 1927, 1929,
488 1933, 1935, 1939, 1941, 1942, 1943, 1951, 1953, 1957, 1961,
489 1965, 1969, 1973, 1977, 1981, 1985, 1989, 1993, 1997, 1999,
490 2000, 2002, 2005, 2013, 2016, 2019, 2027, 2034, 2037, 2041,
491 2044, 2048, 2051, 2055, 2059, 2063, 2067, 2070, 2074, 2075,
492 2077, 2079, 2081, 2083, 2085, 2087, 2089, 2091
495 static const short yyrhs[] = { -1,
496 194, 0, 195, 0, 194, 195, 0, 256, 447, 0,
497 196, 0, 197, 0, 207, 0, 210, 0, 293, 0,
498 1, 0, 76, 331, 345, 355, 345, 447, 301, 90,
499 0, 76, 331, 345, 355, 345, 23, 301, 306, 305,
500 447, 90, 0, 0, 77, 198, 199, 447, 90, 0,
501 200, 0, 331, 345, 200, 0, 204, 0, 359, 204,
502 0, 449, 0, 301, 24, 345, 355, 301, 25, 0,
503 201, 26, 27, 0, 201, 26, 301, 292, 27, 345,
504 0, 0, 201, 302, 24, 25, 202, 228, 0, 0,
505 201, 302, 24, 356, 25, 203, 228, 0, 449, 0,
506 301, 24, 345, 200, 301, 25, 0, 204, 26, 27,
507 0, 204, 26, 301, 292, 27, 345, 0, 0, 204,
508 302, 24, 25, 205, 229, 0, 0, 204, 302, 24,
509 356, 25, 206, 229, 0, 0, 0, 78, 449, 24,
510 356, 25, 208, 229, 209, 447, 90, 0, 91, 386,
511 94, 0, 92, 372, 94, 0, 93, 373, 94, 0,
512 91, 94, 0, 251, 0, 213, 23, 216, 0, 0,
513 225, 214, 22, 217, 0, 0, 5, 215, 22, 217,
514 0, 213, 0, 213, 40, 216, 0, 192, 0, 183,
515 0, 55, 0, 220, 218, 219, 0, 220, 0, 223,
516 222, 223, 0, 180, 0, 181, 0, 52, 0, 51,
517 0, 53, 0, 224, 0, 226, 24, 223, 25, 0,
518 24, 223, 227, 223, 25, 0, 225, 0, 188, 0,
519 448, 0, 185, 0, 225, 26, 27, 0, 225, 26,
520 188, 27, 0, 34, 225, 0, 24, 225, 25, 0,
521 225, 28, 449, 0, 225, 44, 449, 0, 221, 0,
522 33, 0, 32, 0, 0, 230, 228, 0, 0, 231,
523 229, 0, 232, 0, 236, 0, 235, 0, 309, 0,
524 312, 0, 242, 0, 233, 0, 237, 0, 235, 0,
525 310, 0, 314, 0, 243, 0, 233, 90, 0, 0,
526 73, 234, 244, 447, 0, 75, 0, 237, 90, 0,
527 0, 74, 238, 257, 0, 240, 0, 240, 40, 239,
528 0, 185, 0, 242, 0, 0, 243, 90, 0, 72,
529 239, 423, 0, 72, 239, 0, 245, 0, 244, 21,
530 245, 0, 246, 247, 0, 0, 248, 246, 0, 448,
531 0, 185, 0, 293, 0, 88, 0, 89, 0, 118,
532 0, 119, 0, 132, 0, 79, 0, 80, 0, 81,
533 0, 82, 0, 83, 0, 84, 0, 85, 0, 355,
534 0, 331, 345, 355, 0, 0, 19, 253, 403, 0,
535 0, 0, 254, 407, 255, 396, 0, 211, 252, 0,
536 260, 447, 0, 447, 0, 448, 0, 185, 0, 258,
537 26, 27, 0, 258, 26, 259, 27, 0, 34, 258,
538 0, 24, 258, 25, 0, 258, 28, 449, 0, 258,
539 44, 449, 0, 258, 0, 423, 0, 258, 0, 260,
540 21, 258, 0, 448, 0, 185, 0, 261, 26, 27,
541 0, 261, 26, 259, 27, 0, 34, 261, 0, 24,
542 261, 25, 0, 261, 28, 449, 0, 261, 44, 449,
543 0, 0, 263, 0, 261, 0, 263, 21, 261, 0,
544 448, 0, 185, 0, 423, 0, 24, 290, 25, 0,
545 186, 0, 113, 0, 264, 0, 265, 26, 290, 27,
546 0, 265, 24, 25, 0, 265, 24, 266, 25, 0,
547 70, 24, 289, 21, 367, 25, 0, 265, 345, 28,
548 449, 301, 0, 265, 345, 44, 449, 301, 0, 265,
549 47, 0, 265, 48, 0, 289, 0, 266, 21, 289,
550 0, 265, 0, 47, 267, 0, 48, 267, 0, 29,
551 273, 0, 34, 273, 0, 33, 273, 0, 32, 273,
552 0, 31, 273, 0, 30, 273, 0, 270, 0, 269,
553 0, 268, 28, 449, 0, 449, 0, 46, 301, 24,
554 367, 345, 21, 268, 25, 301, 0, 0, 301, 271,
555 272, 0, 42, 24, 367, 25, 0, 42, 267, 0,
556 43, 24, 367, 25, 0, 43, 267, 0, 267, 0,
557 24, 367, 25, 273, 0, 273, 0, 274, 34, 273,
558 0, 274, 35, 273, 0, 274, 36, 273, 0, 274,
559 0, 275, 33, 274, 0, 275, 32, 274, 0, 275,
560 0, 276, 49, 275, 0, 276, 50, 275, 0, 276,
561 0, 277, 37, 276, 0, 277, 38, 276, 0, 277,
562 51, 276, 0, 277, 52, 276, 0, 277, 0, 278,
563 53, 277, 0, 278, 54, 277, 0, 278, 0, 279,
564 29, 278, 0, 279, 0, 280, 39, 279, 0, 280,
565 0, 281, 40, 280, 0, 281, 0, 0, 282, 55,
566 283, 281, 0, 282, 0, 0, 284, 56, 285, 282,
567 0, 284, 0, 0, 0, 284, 41, 287, 290, 22,
568 288, 286, 0, 286, 0, 267, 23, 289, 0, 267,
569 57, 289, 0, 267, 58, 289, 0, 267, 59, 289,
570 0, 267, 60, 289, 0, 267, 61, 289, 0, 267,
571 62, 289, 0, 267, 63, 289, 0, 267, 64, 289,
572 0, 267, 65, 289, 0, 267, 66, 289, 0, 289,
573 0, 290, 21, 289, 0, 0, 290, 0, 286, 0,
574 294, 0, 71, 0, 299, 0, 331, 301, 18, 0,
575 0, 331, 345, 355, 345, 295, 301, 305, 18, 301,
576 0, 0, 331, 345, 355, 345, 23, 296, 301, 306,
577 305, 18, 301, 0, 355, 345, 0, 0, 355, 345,
578 23, 298, 301, 306, 0, 0, 45, 331, 300, 345,
579 303, 301, 241, 18, 0, 45, 331, 301, 18, 0,
580 45, 303, 301, 18, 0, 0, 0, 304, 301, 0,
581 297, 0, 303, 21, 345, 297, 0, 0, 305, 21,
582 345, 297, 0, 289, 0, 19, 307, 20, 0, 19,
583 307, 21, 20, 0, 306, 0, 307, 21, 306, 0,
584 114, 0, 112, 0, 115, 0, 116, 0, 117, 0,
585 310, 90, 0, 0, 249, 345, 311, 263, 447, 301,
586 0, 314, 90, 0, 250, 345, 0, 0, 313, 320,
587 315, 262, 447, 301, 0, 0, 313, 316, 317, 447,
588 301, 0, 219, 0, 212, 0, 141, 0, 142, 0,
589 144, 0, 145, 0, 143, 0, 126, 0, 129, 0,
590 127, 0, 128, 0, 134, 0, 135, 0, 120, 0,
591 122, 0, 121, 0, 130, 0, 131, 0, 123, 0,
592 125, 0, 138, 0, 140, 0, 153, 0, 152, 0,
593 137, 0, 139, 0, 177, 0, 187, 0, 136, 0,
594 151, 0, 150, 0, 160, 0, 158, 0, 159, 0,
595 154, 0, 155, 0, 156, 0, 157, 0, 161, 0,
596 162, 0, 165, 0, 166, 0, 163, 0, 164, 0,
597 149, 0, 146, 0, 147, 0, 148, 0, 118, 0,
598 119, 0, 132, 0, 133, 0, 110, 301, 0, 111,
599 301, 0, 327, 301, 0, 320, 301, 0, 318, 301,
600 0, 321, 301, 0, 319, 301, 0, 323, 301, 0,
601 322, 301, 0, 324, 301, 0, 325, 301, 0, 167,
602 345, 0, 169, 345, 0, 168, 345, 0, 170, 345,
603 0, 171, 345, 0, 172, 345, 0, 173, 345, 0,
604 174, 345, 0, 175, 345, 0, 176, 345, 0, 450,
605 345, 0, 336, 345, 0, 350, 345, 0, 326, 345,
606 0, 301, 331, 301, 0, 333, 0, 333, 87, 332,
607 90, 0, 367, 0, 367, 21, 332, 0, 308, 334,
608 0, 328, 334, 0, 329, 334, 0, 0, 331, 0,
609 0, 0, 0, 345, 67, 449, 301, 19, 337, 400,
610 346, 401, 338, 20, 335, 0, 0, 0, 345, 68,
611 449, 301, 19, 339, 400, 346, 401, 340, 20, 0,
612 345, 67, 449, 301, 19, 20, 0, 345, 68, 449,
613 301, 19, 20, 0, 0, 0, 345, 67, 301, 19,
614 341, 400, 346, 401, 342, 20, 0, 0, 0, 345,
615 68, 301, 19, 343, 400, 346, 401, 344, 20, 0,
616 345, 67, 301, 19, 20, 0, 345, 68, 301, 19,
617 20, 0, 345, 67, 449, 345, 0, 345, 68, 449,
618 345, 0, 0, 347, 0, 210, 0, 346, 347, 0,
619 331, 345, 348, 301, 18, 0, 331, 301, 18, 0,
620 349, 345, 0, 348, 21, 349, 345, 0, 355, 0,
621 22, 301, 292, 0, 355, 22, 301, 292, 0, 345,
622 69, 19, 352, 20, 301, 0, 0, 345, 69, 449,
623 19, 351, 352, 20, 301, 0, 345, 69, 449, 301,
624 0, 353, 0, 352, 21, 353, 0, 352, 21, 0,
625 449, 0, 449, 23, 301, 292, 0, 201, 0, 369,
626 0, 359, 191, 0, 359, 354, 0, 201, 0, 359,
627 201, 0, 362, 0, 345, 360, 0, 110, 0, 111,
628 0, 357, 0, 358, 357, 0, 34, 0, 34, 358,
629 0, 34, 359, 0, 34, 358, 359, 0, 361, 0,
630 361, 21, 5, 0, 449, 0, 361, 21, 449, 0,
631 5, 0, 363, 0, 363, 21, 5, 0, 0, 364,
632 366, 0, 0, 363, 21, 365, 366, 0, 301, 331,
633 354, 301, 0, 449, 0, 330, 0, 330, 368, 0,
634 359, 0, 370, 0, 359, 370, 0, 0, 370, 0,
635 301, 24, 345, 368, 25, 0, 26, 27, 0, 26,
636 292, 27, 0, 370, 26, 27, 0, 370, 26, 292,
637 27, 0, 301, 24, 25, 0, 301, 24, 362, 25,
638 0, 370, 301, 24, 25, 0, 370, 301, 24, 362,
639 25, 0, 388, 0, 390, 0, 393, 0, 396, 0,
640 409, 0, 412, 0, 444, 0, 417, 0, 446, 0,
641 374, 0, 372, 0, 381, 0, 374, 381, 0, 416,
642 374, 0, 443, 387, 11, 24, 290, 25, 18, 0,
643 443, 387, 11, 24, 290, 25, 0, 376, 381, 0,
644 0, 0, 13, 24, 291, 18, 291, 18, 377, 291,
645 378, 25, 0, 0, 189, 398, 24, 380, 420, 25,
646 0, 190, 0, 388, 0, 390, 0, 393, 0, 384,
647 407, 0, 384, 0, 385, 0, 409, 0, 382, 0,
648 375, 0, 379, 0, 446, 0, 24, 381, 25, 0,
649 1, 0, 0, 411, 383, 381, 0, 398, 19, 0,
650 402, 20, 0, 387, 0, 406, 0, 388, 0, 390,
651 0, 393, 0, 397, 0, 410, 0, 412, 0, 417,
652 0, 445, 0, 24, 387, 25, 0, 446, 0, 1,
653 0, 449, 22, 0, 109, 371, 0, 0, 100, 389,
654 0, 0, 6, 292, 391, 22, 0, 0, 100, 389,
655 6, 292, 392, 22, 0, 0, 7, 394, 22, 0,
656 0, 100, 389, 7, 395, 22, 0, 24, 396, 25,
657 0, 398, 404, 0, 398, 405, 399, 0, 0, 0,
658 0, 0, 0, 20, 0, 109, 20, 0, 408, 20,
659 0, 408, 109, 20, 0, 407, 20, 0, 407, 109,
660 20, 0, 407, 408, 20, 0, 407, 408, 109, 20,
661 0, 19, 403, 0, 19, 20, 0, 19, 406, 20,
662 0, 19, 407, 20, 0, 19, 407, 408, 20, 0,
663 387, 0, 406, 387, 0, 293, 0, 407, 293, 0,
664 371, 0, 408, 371, 0, 18, 0, 290, 18, 0,
665 18, 0, 290, 18, 0, 290, 0, 8, 24, 290,
666 25, 0, 411, 371, 0, 0, 411, 371, 9, 413,
667 371, 0, 0, 10, 24, 290, 414, 25, 371, 0,
668 11, 24, 290, 25, 0, 11, 24, 290, 25, 0,
669 0, 0, 189, 418, 398, 24, 419, 420, 25, 396,
670 442, 399, 0, 422, 0, 0, 420, 421, 21, 422,
671 0, 441, 0, 448, 0, 186, 0, 185, 0, 188,
672 0, 423, 188, 0, 423, 0, 24, 290, 25, 0,
673 424, 0, 265, 26, 290, 27, 0, 265, 24, 25,
674 0, 265, 24, 266, 25, 0, 70, 24, 289, 21,
675 367, 25, 0, 265, 345, 28, 449, 301, 0, 265,
676 345, 44, 449, 301, 0, 265, 47, 0, 265, 48,
677 0, 425, 0, 47, 267, 0, 48, 267, 0, 29,
678 273, 0, 34, 273, 0, 33, 273, 0, 32, 273,
679 0, 31, 273, 0, 30, 273, 0, 270, 0, 426,
680 0, 24, 367, 25, 273, 0, 427, 0, 274, 34,
681 273, 0, 274, 35, 273, 0, 274, 36, 273, 0,
682 428, 0, 275, 33, 274, 0, 275, 32, 274, 0,
683 429, 0, 276, 49, 275, 0, 276, 50, 275, 0,
684 430, 0, 277, 37, 276, 0, 277, 38, 276, 0,
685 277, 51, 276, 0, 277, 52, 276, 0, 431, 0,
686 278, 53, 277, 0, 278, 54, 277, 0, 432, 0,
687 279, 29, 278, 0, 433, 0, 280, 39, 279, 0,
688 434, 0, 281, 40, 280, 0, 435, 0, 282, 55,
689 281, 0, 436, 0, 284, 56, 282, 0, 437, 0,
690 0, 0, 284, 41, 439, 290, 22, 440, 286, 0,
691 438, 0, 267, 23, 289, 0, 267, 57, 289, 0,
692 267, 58, 289, 0, 267, 59, 289, 0, 267, 60,
693 289, 0, 267, 61, 289, 0, 267, 62, 289, 0,
694 267, 63, 289, 0, 267, 64, 289, 0, 267, 65,
695 289, 0, 267, 66, 289, 0, 190, 0, 0, 12,
696 0, 415, 371, 0, 443, 371, 11, 24, 290, 25,
697 18, 0, 376, 371, 0, 415, 387, 0, 443, 387,
698 11, 24, 290, 25, 18, 0, 443, 387, 11, 24,
699 290, 25, 0, 376, 387, 0, 14, 449, 18, 0,
700 15, 18, 0, 99, 15, 18, 0, 16, 18, 0,
701 95, 16, 18, 0, 96, 16, 18, 0, 97, 16,
702 18, 0, 98, 16, 18, 0, 17, 18, 0, 17,
703 290, 18, 0, 0, 18, 0, 184, 0, 185, 0,
704 189, 0, 190, 0, 448, 0, 186, 0, 191, 0,
711 static const short yyrline[] = { 0,
712 324, 325, 328, 329, 332, 333, 334, 335, 336, 337,
713 338, 341, 343, 347, 347, 354, 360, 364, 365, 369,
714 370, 372, 374, 387, 390, 400, 403, 411, 412, 414,
715 416, 432, 435, 443, 446, 454, 456, 456, 460, 461,
716 462, 463, 466, 469, 473, 473, 476, 476, 481, 482,
717 485, 490, 491, 494, 495, 498, 503, 504, 507, 508,
718 509, 512, 513, 514, 519, 520, 523, 525, 527, 529,
719 538, 540, 542, 544, 560, 564, 565, 572, 573, 581,
720 583, 587, 588, 589, 590, 591, 592, 595, 596, 597,
721 598, 599, 600, 603, 606, 607, 614, 617, 620, 626,
722 634, 636, 640, 643, 644, 647, 650, 656, 660, 661,
723 664, 667, 668, 671, 672, 673, 676, 677, 678, 679,
724 680, 683, 684, 685, 686, 687, 690, 691, 694, 700,
725 704, 706, 710, 711, 713, 720, 730, 731, 734, 735,
726 736, 737, 738, 739, 740, 741, 745, 746, 750, 751,
727 754, 756, 758, 759, 760, 761, 762, 764, 768, 769,
728 772, 776, 788, 789, 790, 791, 792, 793, 796, 797,
729 798, 799, 800, 801, 802, 803, 804, 807, 808, 811,
730 812, 813, 814, 815, 816, 817, 818, 819, 820, 821,
731 824, 825, 828, 832, 833, 836, 837, 838, 839, 842,
732 843, 847, 848, 849, 850, 853, 854, 855, 858, 859,
733 860, 863, 864, 865, 866, 867, 870, 871, 872, 875,
734 876, 879, 880, 884, 885, 888, 889, 894, 900, 901,
735 907, 913, 914, 914, 916, 919, 920, 921, 922, 923,
736 924, 925, 926, 927, 928, 929, 930, 933, 934, 937,
737 938, 941, 946, 947, 948, 951, 965, 970, 976, 978,
738 984, 989, 989, 993, 994, 996, 997, 1000, 1003, 1006,
739 1009, 1010, 1013, 1014, 1017, 1018, 1019, 1023, 1025, 1034,
740 1035, 1036, 1037, 1038, 1041, 1044, 1050, 1059, 1062, 1065,
741 1072, 1079, 1085, 1110, 1111, 1114, 1115, 1116, 1117, 1118,
742 1121, 1122, 1123, 1124, 1127, 1128, 1129, 1130, 1131, 1132,
743 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142,
744 1143, 1147, 1148, 1151, 1152, 1155, 1156, 1159, 1160, 1161,
745 1162, 1165, 1166, 1167, 1168, 1169, 1170, 1173, 1174, 1175,
746 1176, 1179, 1180, 1181, 1182, 1185, 1186, 1187, 1188, 1189,
747 1190, 1191, 1192, 1193, 1194, 1195, 1202, 1203, 1204, 1205,
748 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
749 1218, 1222, 1223, 1227, 1228, 1232, 1233, 1234, 1237, 1238,
750 1242, 1249, 1251, 1253, 1254, 1256, 1258, 1259, 1261, 1263,
751 1265, 1267, 1268, 1269, 1272, 1273, 1275, 1277, 1278, 1281,
752 1284, 1285, 1286, 1289, 1291, 1295, 1297, 1301, 1302, 1303,
753 1307, 1309, 1309, 1311, 1314, 1316, 1318, 1321, 1326, 1333,
754 1334, 1335, 1342, 1346, 1347, 1351, 1352, 1355, 1356, 1359,
755 1360, 1363, 1364, 1365, 1366, 1369, 1370, 1373, 1374, 1377,
756 1378, 1379, 1382, 1382, 1383, 1384, 1387, 1399, 1415, 1416,
757 1419, 1420, 1421, 1424, 1425, 1428, 1430, 1431, 1433, 1434,
758 1436, 1438, 1440, 1442, 1448, 1449, 1450, 1451, 1452, 1453,
759 1454, 1455, 1456, 1460, 1463, 1466, 1467, 1471, 1473, 1475,
760 1477, 1481, 1482, 1484, 1488, 1490, 1492, 1495, 1496, 1497,
761 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507,
762 1510, 1511, 1516, 1519, 1522, 1523, 1526, 1527, 1528, 1529,
763 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1539, 1540, 1547,
764 1548, 1554, 1555, 1556, 1557, 1560, 1561, 1562, 1563, 1566,
765 1567, 1571, 1574, 1577, 1580, 1583, 1586, 1589, 1590, 1591,
766 1592, 1594, 1595, 1597, 1599, 1605, 1609, 1611, 1613, 1615,
767 1619, 1620, 1623, 1624, 1627, 1628, 1631, 1632, 1635, 1636,
768 1637, 1640, 1653, 1658, 1659, 1663, 1664, 1667, 1672, 1675,
769 1676, 1677, 1685, 1686, 1686, 1690, 1691, 1692, 1703, 1710,
770 1711, 1714, 1715, 1718, 1719, 1720, 1721, 1722, 1724, 1725,
771 1726, 1727, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737,
772 1738, 1739, 1742, 1743, 1746, 1747, 1748, 1749, 1752, 1753,
773 1754, 1757, 1758, 1759, 1762, 1763, 1764, 1765, 1766, 1769,
774 1770, 1771, 1774, 1775, 1778, 1779, 1783, 1784, 1787, 1788,
775 1791, 1792, 1795, 1796, 1797, 1798, 1801, 1802, 1803, 1804,
776 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1815, 1816,
777 1819, 1822, 1824, 1826, 1830, 1831, 1833, 1835, 1838, 1839,
778 1840, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1851, 1852,
779 1855, 1858, 1859, 1860, 1861, 1862, 1865, 1866
784 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
786 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
787 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
788 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
789 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
790 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
791 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
792 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
793 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
794 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
795 "VA_ARG","VA_DCL","QWARN","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION",
796 "QITER","QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
797 "QINVARIANT","QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND",
798 "TENDMACRO","QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE",
799 "QFALLTHROUGH","QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED",
800 "QPRINTFLIKE","QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST",
801 "QVOLATILE","QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT",
802 "QIN","QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
803 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
804 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
805 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
806 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
807 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
808 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
809 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
810 "QSETBUFFERSIZE","QSETSTRINGLENGTH","QMAXSET","QMAXREAD","QTESTINRANGE","TCAND",
811 "IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID","CANNOTATION","CCONSTANT","ITER_NAME",
812 "ITER_ENDNAME","TYPE_NAME","METASTATE_NAME","file","externalDefs","externalDef",
813 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
814 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
815 "metaStateConstraint","metaStateSpecifier","@8","@9","metaStateExpression","metaStateName",
816 "constraintSeperator","BufConstraintList","BufConstraint","bufferModifier","relationalOp",
817 "BufConstraintExpr","BufConstraintTerm","BufConstraintSrefExpr","BufUnaryOp",
818 "BufBinaryOp","functionClauses","functionClausesPlain","functionClause","functionClausePlain",
819 "globalsClause","globalsClausePlain","@10","nomodsClause","modifiesClause","modifiesClausePlain",
820 "@11","flagSpec","flagId","optWarnClause","warnClause","warnClausePlain","globIdList",
821 "globIdListExpr","optGlobQuals","globId","globQual","stateTag","conditionTag",
822 "fcnDefHdrAux","fcnBody","@12","@13","@14","fcnDef","locModifies","modListExpr",
823 "mExpr","modList","specClauseListExpr","optSpecClauseList","specClauseList",
824 "primaryExpr","postfixExpr","argumentExprList","unaryExpr","fieldDesignator",
825 "offsetofExpr","sizeofExpr","@15","sizeofExprAux","castExpr","timesExpr","plusExpr",
826 "shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr",
827 "andExpr","@16","orExpr","@17","conditionalExpr","@18","@19","assignExpr","expr",
828 "optExpr","constantExpr","initializer","instanceDecl","@20","@21","namedInitializer",
829 "@22","typeDecl","@23","IsType","PushType","namedInitializerList","namedInitializerListAux",
830 "optDeclarators","init","initList","storageSpecifier","stateClause","stateClausePlain",
831 "@24","conditionClause","startConditionClause","conditionClausePlain","@25",
832 "@26","functionConstraint","exitsQualifier","checkQualifier","stateQualifier",
833 "paramQualifier","visibilityQualifier","returnQualifier","typedefQualifier",
834 "refcountQualifier","typeModifier","definedQualifier","typeQualifier","typeSpecifier",
835 "completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux",
836 "optCompleteType","optStructInvariant","suSpc","@27","@28","@29","@30","@31",
837 "@32","@33","@34","NotType","structDeclList","structDecl","structNamedDeclList",
838 "structNamedDecl","enumSpc","@35","enumeratorList","enumerator","optNamedDecl",
839 "namedDecl","genericParamList","innerMods","innerModsList","pointers","paramIdList",
840 "idList","paramTypeList","paramList","@36","@37","paramDecl","typeExpression",
841 "abstractDecl","optAbstractDeclBase","abstractDeclBase","stmt","iterBody","endBody",
842 "iterDefStmtList","iterDefIterationStmt","forPred","@38","@39","partialIterStmt",
843 "@40","iterDefStmt","iterSelectionStmt","@41","openScope","closeScope","macroBody",
844 "stmtErr","labeledStmt","optExtraFallThroughs","caseStmt","@42","@43","defaultStmt",
845 "@44","@45","compoundStmt","compoundStmtErr","CreateInnerScope","DeleteInnerScope",
846 "CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe","compoundStmtRest",
847 "compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList","stmtList",
848 "expressionStmt","expressionStmtErr","ifPred","selectionStmt","@46","@47","whilePred",
849 "iterWhilePred","iterStmt","@48","@49","iterArgList","@50","iterArgExpr","cconstantExpr",
850 "primaryIterExpr","postfixIterExpr","unaryIterExpr","castIterExpr","timesIterExpr",
851 "plusIterExpr","shiftIterExpr","relationalIterExpr","equalityIterExpr","bitandIterExpr",
852 "xorIterExpr","bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr",
853 "@51","@52","assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr",
854 "jumpStmt","optSemi","id","newId","typeName", NULL
858 static const short yyr1[] = { 0,
859 193, 193, 194, 194, 195, 195, 195, 195, 195, 195,
860 195, 196, 196, 198, 197, 199, 199, 200, 200, 201,
861 201, 201, 201, 202, 201, 203, 201, 204, 204, 204,
862 204, 205, 204, 206, 204, 208, 209, 207, 210, 210,
863 210, 210, 211, 212, 214, 213, 215, 213, 216, 216,
864 217, 218, 218, 219, 219, 220, 221, 221, 222, 222,
865 222, 223, 223, 223, 224, 224, 225, 225, 225, 225,
866 225, 225, 225, 225, 226, 227, 227, 228, 228, 229,
867 229, 230, 230, 230, 230, 230, 230, 231, 231, 231,
868 231, 231, 231, 232, 234, 233, 235, 236, 238, 237,
869 239, 239, 240, 241, 241, 242, 243, 243, 244, 244,
870 245, 246, 246, 247, 247, 247, 248, 248, 248, 248,
871 248, 249, 249, 249, 249, 249, 250, 250, 251, 251,
872 253, 252, 254, 255, 252, 256, 257, 257, 258, 258,
873 258, 258, 258, 258, 258, 258, 259, 259, 260, 260,
874 261, 261, 261, 261, 261, 261, 261, 261, 262, 262,
875 263, 263, 264, 264, 264, 264, 264, 264, 265, 265,
876 265, 265, 265, 265, 265, 265, 265, 266, 266, 267,
877 267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
878 268, 268, 269, 271, 270, 272, 272, 272, 272, 273,
879 273, 274, 274, 274, 274, 275, 275, 275, 276, 276,
880 276, 277, 277, 277, 277, 277, 278, 278, 278, 279,
881 279, 280, 280, 281, 281, 282, 283, 282, 284, 285,
882 284, 286, 287, 288, 286, 289, 289, 289, 289, 289,
883 289, 289, 289, 289, 289, 289, 289, 290, 290, 291,
884 291, 292, 293, 293, 293, 294, 295, 294, 296, 294,
885 297, 298, 297, 300, 299, 299, 299, 301, 302, 303,
886 304, 304, 305, 305, 306, 306, 306, 307, 307, 308,
887 308, 308, 308, 308, 309, 311, 310, 312, 313, 315,
888 314, 316, 314, 317, 317, 318, 318, 318, 318, 318,
889 319, 319, 319, 319, 320, 320, 320, 320, 320, 320,
890 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
891 320, 321, 321, 322, 322, 323, 323, 324, 324, 324,
892 324, 325, 325, 325, 325, 325, 325, 326, 326, 326,
893 326, 327, 327, 327, 327, 328, 328, 328, 328, 328,
894 328, 328, 328, 328, 328, 328, 329, 329, 329, 329,
895 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
896 330, 331, 331, 332, 332, 333, 333, 333, 334, 334,
897 335, 337, 338, 336, 339, 340, 336, 336, 336, 341,
898 342, 336, 343, 344, 336, 336, 336, 336, 336, 345,
899 346, 346, 346, 347, 347, 348, 348, 349, 349, 349,
900 350, 351, 350, 350, 352, 352, 352, 353, 353, 354,
901 354, 354, 354, 355, 355, 356, 356, 357, 357, 358,
902 358, 359, 359, 359, 359, 360, 360, 361, 361, 362,
903 362, 362, 364, 363, 365, 363, 366, 366, 367, 367,
904 368, 368, 368, 369, 369, 370, 370, 370, 370, 370,
905 370, 370, 370, 370, 371, 371, 371, 371, 371, 371,
906 371, 371, 371, 372, 373, 374, 374, 375, 375, 375,
907 375, 377, 378, 376, 380, 379, 379, 381, 381, 381,
908 381, 381, 381, 381, 381, 381, 381, 381, 381, 381,
909 383, 382, 384, 385, 386, 386, 387, 387, 387, 387,
910 387, 387, 387, 387, 387, 387, 387, 388, 388, 389,
911 389, 391, 390, 392, 390, 394, 393, 395, 393, 396,
912 396, 397, 398, 399, 400, 401, 402, 403, 403, 403,
913 403, 403, 403, 403, 403, 404, 405, 405, 405, 405,
914 406, 406, 407, 407, 408, 408, 409, 409, 410, 410,
915 410, 411, 412, 413, 412, 414, 412, 415, 416, 418,
916 419, 417, 420, 421, 420, 422, 422, 422, 422, 423,
917 423, 424, 424, 425, 425, 425, 425, 425, 425, 425,
918 425, 425, 426, 426, 426, 426, 426, 426, 426, 426,
919 426, 426, 427, 427, 428, 428, 428, 428, 429, 429,
920 429, 430, 430, 430, 431, 431, 431, 431, 431, 432,
921 432, 432, 433, 433, 434, 434, 435, 435, 436, 436,
922 437, 437, 438, 439, 440, 438, 441, 441, 441, 441,
923 441, 441, 441, 441, 441, 441, 441, 441, 442, 442,
924 443, 444, 444, 444, 445, 445, 445, 445, 446, 446,
925 446, 446, 446, 446, 446, 446, 446, 446, 447, 447,
926 448, 449, 449, 449, 449, 449, 450, 450
929 static const short yyr2[] = { 0,
930 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
931 1, 8, 11, 0, 5, 1, 3, 1, 2, 1,
932 6, 3, 6, 0, 6, 0, 7, 1, 6, 3,
933 6, 0, 6, 0, 7, 0, 0, 10, 3, 3,
934 3, 2, 1, 3, 0, 4, 0, 4, 1, 3,
935 1, 1, 1, 3, 1, 3, 1, 1, 1, 1,
936 1, 1, 4, 5, 1, 1, 1, 1, 3, 4,
937 2, 3, 3, 3, 1, 1, 1, 0, 2, 0,
938 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
939 1, 1, 1, 2, 0, 4, 1, 2, 0, 3,
940 1, 3, 1, 1, 0, 2, 3, 2, 1, 3,
941 2, 0, 2, 1, 1, 1, 1, 1, 1, 1,
942 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
943 0, 3, 0, 0, 4, 2, 2, 1, 1, 1,
944 3, 4, 2, 3, 3, 3, 1, 1, 1, 3,
945 1, 1, 3, 4, 2, 3, 3, 3, 0, 1,
946 1, 3, 1, 1, 1, 3, 1, 1, 1, 4,
947 3, 4, 6, 5, 5, 2, 2, 1, 3, 1,
948 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
949 3, 1, 9, 0, 3, 4, 2, 4, 2, 1,
950 4, 1, 3, 3, 3, 1, 3, 3, 1, 3,
951 3, 1, 3, 3, 3, 3, 1, 3, 3, 1,
952 3, 1, 3, 1, 3, 1, 0, 4, 1, 0,
953 4, 1, 0, 0, 7, 1, 3, 3, 3, 3,
954 3, 3, 3, 3, 3, 3, 3, 1, 3, 0,
955 1, 1, 1, 1, 1, 3, 0, 9, 0, 11,
956 2, 0, 6, 0, 8, 4, 4, 0, 0, 2,
957 1, 4, 0, 4, 1, 3, 4, 1, 3, 1,
958 1, 1, 1, 1, 2, 0, 6, 2, 2, 0,
959 6, 0, 5, 1, 1, 1, 1, 1, 1, 1,
960 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
961 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
962 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
963 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
964 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
965 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
966 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
967 3, 1, 4, 1, 3, 2, 2, 2, 0, 1,
968 0, 0, 0, 12, 0, 0, 11, 6, 6, 0,
969 0, 10, 0, 0, 10, 5, 5, 4, 4, 0,
970 1, 1, 2, 5, 3, 2, 4, 1, 3, 4,
971 6, 0, 8, 4, 1, 3, 2, 1, 4, 1,
972 1, 2, 2, 1, 2, 1, 2, 1, 1, 1,
973 2, 1, 2, 2, 3, 1, 3, 1, 3, 1,
974 1, 3, 0, 2, 0, 4, 4, 1, 1, 2,
975 1, 1, 2, 0, 1, 5, 2, 3, 3, 4,
976 3, 4, 4, 5, 1, 1, 1, 1, 1, 1,
977 1, 1, 1, 1, 1, 1, 2, 2, 7, 6,
978 2, 0, 0, 10, 0, 6, 1, 1, 1, 1,
979 2, 1, 1, 1, 1, 1, 1, 1, 3, 1,
980 0, 3, 2, 2, 1, 1, 1, 1, 1, 1,
981 1, 1, 1, 1, 3, 1, 1, 2, 2, 0,
982 2, 0, 4, 0, 6, 0, 3, 0, 5, 3,
983 2, 3, 0, 0, 0, 0, 0, 1, 2, 2,
984 3, 2, 3, 3, 4, 2, 2, 3, 3, 4,
985 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
986 1, 4, 2, 0, 5, 0, 6, 4, 4, 0,
987 0, 10, 1, 0, 4, 1, 1, 1, 1, 1,
988 2, 1, 3, 1, 4, 3, 4, 6, 5, 5,
989 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
990 2, 1, 1, 4, 1, 3, 3, 3, 1, 3,
991 3, 1, 3, 3, 1, 3, 3, 3, 3, 1,
992 3, 3, 1, 3, 1, 3, 1, 3, 1, 3,
993 1, 3, 1, 0, 0, 7, 1, 3, 3, 3,
994 3, 3, 3, 3, 3, 3, 3, 3, 1, 0,
995 1, 2, 7, 2, 2, 7, 6, 2, 3, 2,
996 3, 2, 3, 3, 3, 3, 2, 3, 0, 1,
997 1, 1, 1, 1, 1, 1, 1, 1
1000 static const short yydefact[] = { 0,
1001 11, 432, 400, 254, 400, 14, 0, 0, 0, 0,
1002 268, 268, 281, 280, 282, 283, 284, 342, 343, 307,
1003 309, 308, 312, 313, 301, 303, 304, 302, 310, 311,
1004 344, 345, 305, 306, 322, 318, 314, 319, 315, 296,
1005 297, 300, 298, 299, 339, 340, 341, 338, 324, 323,
1006 317, 316, 328, 329, 330, 331, 326, 327, 325, 332,
1007 333, 336, 337, 334, 335, 400, 400, 400, 400, 400,
1008 400, 400, 400, 400, 400, 320, 671, 672, 676, 321,
1009 673, 674, 677, 0, 3, 6, 7, 424, 8, 9,
1010 133, 43, 669, 10, 253, 255, 0, 379, 268, 268,
1011 268, 268, 268, 268, 268, 268, 400, 268, 379, 379,
1012 400, 372, 400, 0, 400, 129, 268, 675, 20, 400,
1013 428, 429, 430, 433, 434, 271, 268, 268, 264, 400,
1014 678, 400, 400, 676, 0, 517, 268, 526, 0, 0,
1015 0, 651, 0, 0, 0, 0, 268, 559, 0, 268,
1016 268, 268, 268, 268, 268, 268, 268, 268, 0, 42,
1017 0, 0, 0, 0, 0, 520, 268, 168, 164, 167,
1018 580, 570, 169, 180, 200, 190, 189, 202, 206, 209,
1019 212, 217, 220, 222, 224, 226, 229, 232, 236, 248,
1020 561, 194, 0, 0, 551, 507, 508, 509, 510, 0,
1021 0, 511, 268, 512, 0, 513, 165, 0, 514, 516,
1022 163, 0, 500, 0, 557, 0, 533, 487, 0, 0,
1023 0, 496, 0, 497, 476, 495, 492, 493, 488, 489,
1024 490, 0, 0, 494, 501, 0, 0, 498, 475, 0,
1025 346, 347, 357, 359, 358, 360, 361, 362, 363, 364,
1026 365, 366, 4, 268, 0, 131, 136, 400, 670, 5,
1027 400, 380, 376, 350, 352, 349, 351, 354, 353, 355,
1028 356, 370, 348, 377, 378, 0, 268, 268, 368, 268,
1029 268, 0, 369, 425, 367, 431, 435, 400, 0, 270,
1030 400, 0, 261, 268, 669, 16, 18, 0, 400, 268,
1031 28, 443, 268, 164, 167, 200, 252, 522, 163, 0,
1032 268, 268, 268, 268, 0, 660, 662, 667, 0, 0,
1033 400, 449, 0, 0, 183, 188, 187, 186, 185, 184,
1034 0, 268, 181, 182, 268, 0, 0, 0, 0, 0,
1035 520, 0, 268, 519, 268, 465, 466, 467, 468, 0,
1036 469, 470, 268, 472, 268, 471, 473, 533, 268, 268,
1037 176, 177, 0, 268, 268, 268, 268, 268, 268, 268,
1038 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
1039 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
1040 227, 233, 230, 560, 268, 0, 658, 39, 0, 534,
1041 552, 563, 655, 581, 0, 518, 268, 0, 0, 0,
1042 558, 40, 477, 481, 553, 400, 491, 503, 504, 0,
1043 0, 0, 41, 22, 268, 443, 400, 400, 268, 256,
1044 130, 400, 0, 374, 0, 400, 0, 400, 0, 268,
1045 268, 267, 268, 266, 262, 400, 0, 268, 0, 400,
1046 268, 19, 440, 0, 0, 426, 441, 268, 0, 0,
1047 527, 0, 566, 0, 251, 0, 659, 668, 166, 268,
1048 268, 0, 451, 450, 452, 268, 515, 268, 0, 663,
1049 664, 665, 666, 661, 521, 268, 528, 0, 654, 400,
1050 531, 652, 0, 0, 171, 0, 178, 0, 0, 0,
1051 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
1052 247, 203, 204, 205, 208, 207, 210, 211, 213, 214,
1053 215, 216, 218, 219, 221, 223, 225, 268, 268, 268,
1054 249, 268, 268, 195, 547, 167, 551, 0, 400, 532,
1055 564, 0, 0, 499, 485, 268, 554, 502, 0, 0,
1056 24, 0, 538, 268, 555, 132, 400, 268, 533, 268,
1057 257, 373, 268, 390, 0, 398, 393, 0, 399, 0,
1058 415, 418, 412, 414, 272, 268, 268, 669, 15, 30,
1059 268, 443, 268, 17, 427, 436, 438, 36, 445, 400,
1060 444, 448, 523, 562, 0, 568, 268, 371, 457, 0,
1061 443, 453, 268, 0, 201, 400, 268, 524, 0, 530,
1062 546, 0, 571, 268, 172, 170, 268, 268, 228, 0,
1063 231, 268, 197, 268, 199, 548, 549, 268, 268, 268,
1064 569, 268, 400, 268, 400, 78, 26, 539, 542, 268,
1065 268, 540, 268, 556, 533, 135, 0, 259, 268, 375,
1066 396, 535, 382, 397, 535, 385, 268, 417, 268, 0,
1067 105, 268, 268, 268, 0, 32, 0, 268, 0, 80,
1068 442, 268, 454, 268, 0, 458, 461, 268, 0, 459,
1069 0, 443, 0, 0, 0, 529, 268, 268, 179, 174,
1070 175, 234, 0, 0, 550, 565, 0, 268, 268, 268,
1071 268, 268, 268, 268, 268, 268, 0, 164, 167, 180,
1072 200, 189, 206, 209, 212, 217, 220, 222, 224, 226,
1073 229, 0, 574, 573, 165, 584, 593, 603, 605, 609,
1074 612, 615, 620, 623, 625, 627, 629, 631, 633, 637,
1075 576, 163, 0, 23, 0, 95, 99, 97, 122, 123,
1076 124, 125, 126, 127, 128, 25, 78, 82, 0, 84,
1077 83, 0, 87, 0, 400, 400, 85, 0, 86, 292,
1078 0, 78, 543, 544, 268, 541, 21, 268, 273, 400,
1079 388, 535, 400, 389, 535, 411, 416, 268, 0, 0,
1080 104, 268, 275, 263, 268, 0, 400, 80, 34, 0,
1081 437, 439, 37, 80, 88, 90, 89, 93, 91, 92,
1082 446, 420, 0, 268, 454, 421, 455, 567, 482, 0,
1083 462, 460, 463, 0, 0, 173, 525, 0, 574, 268,
1084 196, 198, 657, 0, 0, 183, 188, 187, 186, 185,
1085 184, 181, 182, 268, 268, 268, 176, 177, 0, 268,
1086 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
1087 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
1088 268, 268, 268, 268, 268, 268, 227, 634, 230, 486,
1089 0, 480, 103, 108, 101, 112, 669, 79, 94, 98,
1090 106, 286, 289, 285, 0, 290, 288, 27, 545, 268,
1091 0, 402, 400, 400, 401, 400, 400, 400, 419, 268,
1092 265, 278, 0, 273, 12, 31, 33, 80, 29, 669,
1093 81, 443, 447, 422, 423, 268, 456, 464, 0, 192,
1094 0, 533, 235, 656, 166, 268, 0, 171, 0, 0,
1095 0, 0, 638, 639, 640, 641, 642, 643, 644, 645,
1096 646, 647, 648, 203, 204, 205, 208, 207, 210, 211,
1097 213, 214, 215, 216, 218, 219, 221, 223, 225, 630,
1098 268, 632, 268, 479, 107, 0, 117, 118, 119, 120,
1099 121, 669, 109, 400, 112, 0, 0, 140, 100, 149,
1100 669, 138, 139, 0, 47, 0, 0, 57, 58, 68,
1101 66, 295, 0, 294, 55, 75, 0, 62, 65, 0,
1102 669, 67, 159, 273, 268, 400, 0, 268, 403, 391,
1103 400, 394, 400, 413, 276, 268, 669, 35, 0, 268,
1104 483, 268, 0, 653, 650, 201, 268, 172, 170, 268,
1105 268, 0, 575, 102, 112, 96, 115, 111, 116, 114,
1106 113, 0, 143, 0, 0, 0, 0, 137, 0, 0,
1107 152, 161, 669, 151, 0, 0, 65, 0, 71, 0,
1108 53, 52, 0, 60, 59, 61, 0, 0, 0, 0,
1109 0, 0, 268, 669, 160, 0, 258, 268, 405, 268,
1110 268, 400, 408, 0, 383, 0, 386, 277, 279, 0,
1111 38, 268, 0, 193, 191, 649, 534, 0, 174, 175,
1112 635, 110, 144, 141, 147, 0, 148, 145, 146, 150,
1113 0, 155, 0, 0, 0, 0, 268, 0, 77, 76,
1114 0, 72, 0, 49, 44, 45, 54, 65, 56, 69,
1115 0, 73, 74, 0, 0, 293, 268, 268, 274, 268,
1116 268, 0, 406, 268, 392, 0, 395, 0, 13, 484,
1117 572, 173, 268, 142, 156, 153, 0, 157, 158, 162,
1118 287, 51, 48, 0, 0, 70, 46, 63, 291, 260,
1119 409, 400, 404, 268, 381, 387, 636, 154, 64, 50,
1120 407, 410, 384, 0, 0, 0
1123 static const short yydefgoto[] = { 1194,
1124 84, 85, 86, 87, 133, 295, 296, 88, 636, 772,
1125 297, 798, 918, 89, 670, 920, 902, 91, 1002, 1134,
1126 1081, 1065, 1135, 1173, 1073, 1004, 1005, 1006, 1077, 1007,
1127 1008, 1138, 1010, 1131, 756, 803, 757, 804, 758, 805,
1128 886, 806, 761, 807, 887, 884, 885, 790, 763, 764,
1129 982, 983, 984, 1048, 985, 765, 766, 92, 257, 427,
1130 258, 559, 93, 989, 1115, 1116, 991, 1062, 1084, 1063,
1131 173, 174, 496, 175, 929, 176, 177, 396, 534, 178,
1132 179, 180, 181, 182, 183, 184, 185, 186, 187, 528,
1133 188, 530, 189, 529, 830, 190, 219, 466, 308, 415,
1134 95, 649, 778, 126, 577, 96, 291, 192, 255, 127,
1135 128, 901, 794, 913, 98, 767, 809, 994, 769, 770,
1136 810, 1013, 895, 1011, 99, 100, 101, 102, 103, 104,
1137 105, 106, 107, 108, 109, 110, 322, 416, 433, 112,
1138 263, 1193, 113, 782, 1156, 785, 1158, 652, 1094, 655,
1139 1096, 114, 904, 905, 1091, 1092, 115, 660, 570, 571,
1140 814, 130, 455, 123, 124, 117, 585, 586, 456, 457,
1141 458, 672, 591, 323, 820, 816, 475, 344, 220, 240,
1142 221, 222, 345, 926, 1103, 224, 632, 225, 226, 420,
1143 227, 228, 194, 401, 346, 342, 347, 460, 685, 348,
1144 310, 609, 349, 199, 350, 540, 780, 1020, 233, 556,
1145 491, 400, 201, 557, 558, 351, 202, 203, 352, 629,
1146 595, 353, 236, 354, 358, 688, 723, 881, 724, 207,
1147 726, 727, 728, 729, 730, 731, 732, 733, 734, 735,
1148 736, 737, 738, 739, 740, 971, 1163, 741, 1107, 355,
1149 356, 209, 357, 260, 309, 212, 120
1152 static const short yypact[] = { 2060,
1153 -32768, 48, 5211,-32768, 6258,-32768, 337, 3056, 3442, 3442,
1154 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1155 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1156 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1157 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1158 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1159 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1160 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 297,-32768,
1161 -32768,-32768,-32768, 2252,-32768,-32768,-32768, 408,-32768,-32768,
1162 46,-32768, 78,-32768,-32768,-32768, 83, 6093,-32768,-32768,
1163 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 6093, 6093,
1164 186, 154,-32768, 588,-32768,-32768, 337,-32768,-32768,-32768,
1165 -32768,-32768,-32768, 48,-32768,-32768, 267,-32768, 186,-32768,
1166 -32768,-32768, 5211,-32768, 273,-32768, 1635,-32768, 290, 314,
1167 363,-32768, 372, 337, 397, 478, 1549,-32768, 2630, 1635,
1168 1635, 1635, 1635, 1635, 1635,-32768, 5427, 5427, 482,-32768,
1169 488, 512, 517, 532, 545, 481, 4741,-32768, 570, 586,
1170 -32768, 591,-32768, 716, 1169,-32768,-32768,-32768, 864, 483,
1171 595, 542, 693, 573, 597, 599, 608, 59,-32768,-32768,
1172 121,-32768, 3591, 577, 604,-32768,-32768,-32768,-32768, 649,
1173 3205,-32768, 4741,-32768, 3591,-32768, 505, 3591,-32768,-32768,
1174 679, 690,-32768, 698,-32768, 2821, 591, 692, 161, 643,
1175 3249,-32768, 3442,-32768,-32768,-32768, 5716,-32768,-32768,-32768,
1176 -32768, 735, 739,-32768,-32768, 3442, 3591,-32768,-32768, 678,
1177 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1178 -32768,-32768,-32768, 747, 755,-32768,-32768, 5982,-32768,-32768,
1179 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1180 -32768,-32768,-32768,-32768,-32768, 801, 761,-32768,-32768, 337,
1181 337, 29,-32768, 408,-32768,-32768,-32768,-32768, 804,-32768,
1182 -32768, 813, 783, 761, 78,-32768, 450, 810,-32768, 337,
1183 -32768, 143, 1635,-32768,-32768,-32768,-32768,-32768,-32768, 817,
1184 1635, 1635, 1635, 1582, 833,-32768,-32768,-32768, 302, 669,
1185 5583, 426, 829, 837,-32768,-32768,-32768,-32768,-32768,-32768,
1186 851, 1635,-32768,-32768, 1635, 874, 891, 893, 919, 931,
1187 481, 778, 1903,-32768, 4741,-32768,-32768,-32768,-32768, 903,
1188 -32768,-32768, 4741,-32768, 4741,-32768,-32768,-32768, 3547, 1635,
1189 -32768,-32768, 85, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
1190 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
1191 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
1192 -32768,-32768,-32768,-32768, 1635, 842,-32768,-32768, 2439,-32768,
1193 -32768, 949,-32768,-32768, 964,-32768, 1635, 688, 981, 965,
1194 -32768,-32768,-32768,-32768,-32768, 186, 5716,-32768,-32768, 3442,
1195 3012, 998,-32768,-32768, 1635, 294, 3695, 4823, 761,-32768,
1196 321, 6258, 922, 993, 1008, 1010, 1016, 1010, 337, 1028,
1197 761,-32768, 761,-32768,-32768,-32768, 958, 1023, 1027,-32768,
1198 761, 450,-32768, 337, 1036,-32768, 1031, 337, 204, 1042,
1199 -32768, 236, 1032, 281, 1032, 1047,-32768,-32768,-32768,-32768,
1200 5222, 1043, 768,-32768, 820, 1635,-32768,-32768, 1045,-32768,
1201 -32768,-32768,-32768,-32768,-32768, 1635,-32768, 1044,-32768, 3695,
1202 -32768,-32768, 1060, 1048,-32768, 316,-32768, 98, 337, 337,
1203 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1204 -32768,-32768,-32768,-32768, 864, 864, 483, 483, 595, 595,
1205 595, 595, 542, 542, 693, 573, 597, 1635, 1635, 1635,
1206 -32768, 5447, 5472,-32768,-32768, 5057,-32768, 3398, 3881,-32768,
1207 -32768, 1050, 333,-32768,-32768, 761,-32768,-32768, 1051, 1049,
1208 -32768, 1053,-32768, 4253,-32768,-32768, 4067, 4297, 1057,-32768,
1209 1062,-32768,-32768, 1063, 1067,-32768, 1069, 1068,-32768, 962,
1210 -32768, 1070,-32768,-32768,-32768, 267,-32768, 188,-32768,-32768,
1211 1635, 366, 761,-32768,-32768, 1071,-32768,-32768, 1085, 6258,
1212 -32768,-32768,-32768,-32768, 1066,-32768, 1582,-32768,-32768, 1073,
1213 127, 820, 5385, 1074,-32768,-32768,-32768,-32768, 1072,-32768,
1214 -32768, 1077,-32768, 1635,-32768,-32768,-32768,-32768, 599, 979,
1215 608, 1635,-32768, 1635,-32768,-32768,-32768, 4401, 4741, 1635,
1216 -32768, 5504,-32768, 1635,-32768, 1677,-32768,-32768,-32768, 4445,
1217 4549,-32768, 4593,-32768, 1057,-32768, 1078,-32768,-32768,-32768,
1218 -32768,-32768, 1075,-32768,-32768, 1084,-32768, 337,-32768, 337,
1219 1025, 1960,-32768,-32768, 1079,-32768, 1080,-32768, 280, 1677,
1220 -32768, 337, 592, 4741, 1093,-32768,-32768, 249, 1087,-32768,
1221 1083, 89, 1095, 1088, 1096,-32768, 1635, 5504,-32768,-32768,
1222 -32768,-32768, 1089, 1094,-32768,-32768, 355, 1635, 1635, 1635,
1223 1635, 1635, 1635, 1635, 5427, 5427, 1103, 412, 436, 742,
1224 1405, 442, 900, 971, 961, 627, 972, 1091, 1090, 1098,
1225 1081, 87, 1105,-32768, 32,-32768,-32768,-32768,-32768,-32768,
1226 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1227 -32768, 452, 580,-32768, 932,-32768,-32768,-32768,-32768,-32768,
1228 -32768,-32768,-32768,-32768,-32768,-32768, 1677,-32768, 1054,-32768,
1229 -32768, 1058,-32768, 1065,-32768,-32768,-32768, 1086,-32768, 1116,
1230 1097, 1677,-32768,-32768, 4697,-32768,-32768,-32768,-32768, 6180,
1231 -32768,-32768, 6180,-32768,-32768,-32768,-32768, 1635, 1003, 1114,
1232 -32768, 1960,-32768,-32768, 1960, 1104,-32768, 1677,-32768, 1108,
1233 -32768,-32768,-32768, 1677,-32768,-32768,-32768,-32768,-32768,-32768,
1234 -32768, 408, 1110,-32768, 717,-32768, 820,-32768,-32768, 1118,
1235 -32768,-32768,-32768, 1128, 337,-32768,-32768, 617, 1131, 1635,
1236 -32768,-32768, 1123, 702, 1145, 711, 732, 746, 748, 788,
1237 799, 808, 815, 1635, 5396, 1635, 828, 852, 112, 1635,
1238 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
1239 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
1240 1635, 1635, 1635, 1635, 1635, 1635, 1635,-32768, 1635,-32768,
1241 1150, 1160,-32768, 991, 1142, 317, 84,-32768,-32768,-32768,
1242 -32768,-32768,-32768,-32768, 54,-32768,-32768,-32768,-32768, 1960,
1243 368,-32768, 186, 4901,-32768, 6180, 4901, 6180,-32768,-32768,
1244 -32768,-32768, 1017,-32768,-32768,-32768,-32768, 1677,-32768, 78,
1245 -32768, 378,-32768,-32768,-32768, 5416,-32768,-32768, 382,-32768,
1246 1163, 1057,-32768,-32768, 855, 1635, 1162, 861, 872, 139,
1247 337, 337,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1248 -32768,-32768,-32768, 889, 943, 944, 683, 927, 376, 836,
1249 367, 464, 524, 574, 610, 645, 144, 352, 62, 599,
1250 1635, 608, 5504,-32768, 505, 932,-32768,-32768,-32768,-32768,
1251 -32768, 470,-32768, 5849, 317, 86, 86,-32768,-32768, 110,
1252 480,-32768,-32768, 107,-32768, 657, 123,-32768,-32768,-32768,
1253 -32768,-32768, 1161,-32768, 17,-32768, 904,-32768, 556, 1164,
1254 78,-32768, 107,-32768,-32768,-32768, 1167, 425,-32768,-32768,
1255 4901,-32768, 4901,-32768,-32768, 1835, 554,-32768, 1106, 754,
1256 -32768,-32768, 337,-32768, 996, 945,-32768, 946, 953,-32768,
1257 -32768, 1018,-32768,-32768, 317,-32768,-32768,-32768,-32768,-32768,
1258 -32768, 515, 110, 728, 337, 337, 86,-32768, 107, 107,
1259 -32768, 147, 601,-32768, 1171, 1011, 786, 123, 396, 75,
1260 -32768,-32768, 657,-32768,-32768,-32768, 657, 4, 337, 337,
1261 1173, 657,-32768, 78, 1168, 609,-32768, 761,-32768,-32768,
1262 1177,-32768, 1178, 1181,-32768, 1182,-32768,-32768,-32768, 1119,
1263 -32768, 544, 1179,-32768,-32768,-32768,-32768, 1183, 960, 967,
1264 -32768,-32768,-32768,-32768, 110, 1184, 505,-32768,-32768, 110,
1265 846, 147, 832, 337, 337, 107,-32768, 1014,-32768,-32768,
1266 657,-32768, 786, 1170,-32768, 396,-32768, 396,-32768,-32768,
1267 1186,-32768,-32768, 1014, 1189,-32768,-32768,-32768,-32768, 1635,
1268 425, 1197,-32768,-32768,-32768, 1196,-32768, 1198,-32768,-32768,
1269 -32768, 970, 1635,-32768,-32768,-32768, 1192,-32768,-32768, 147,
1270 -32768,-32768,-32768, 1195, 75,-32768,-32768,-32768,-32768,-32768,
1271 -32768,-32768,-32768, 1635,-32768,-32768,-32768,-32768,-32768,-32768,
1272 -32768,-32768,-32768, 1223, 1225,-32768
1275 static const short yypgoto[] = {-32768,
1276 -32768, 1156,-32768,-32768,-32768,-32768, -388, -112,-32768,-32768,
1277 942,-32768,-32768,-32768,-32768,-32768, 71,-32768,-32768, 348,
1278 -32768,-32768, 69, 105,-32768, 179,-32768,-32768,-32768, -687,
1279 -32768, -825,-32768,-32768, -627, -709,-32768,-32768,-32768, -550,
1280 -32768, -524,-32768, -499,-32768, 282,-32768,-32768, 596, -602,
1281 -32768, 215, 276,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1282 -32768,-32768,-32768,-32768, -806, 140,-32768, -956,-32768, 251,
1283 -32768, -612, 420, 1174,-32768,-32768, -611,-32768,-32768, -113,
1284 -353, -348, -339, -336, -377, -367, -366, -498, -511,-32768,
1285 -609,-32768, -135,-32768,-32768, 559, 1141, -561, -419, 14,
1286 -32768,-32768,-32768, -429,-32768,-32768,-32768, 699, -222, 824,
1287 -32768, -850, -737,-32768,-32768,-32768, -447,-32768,-32768,-32768,
1288 -442,-32768,-32768,-32768,-32768,-32768, 500,-32768,-32768,-32768,
1289 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 13, 708,-32768,
1290 936,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1291 -32768, 1092, -656, -479,-32768, 122,-32768,-32768, 612, 616,
1292 462, 1, -333, 1154,-32768, 2,-32768,-32768, -566,-32768,
1293 -32768,-32768, 607, -250, 959,-32768, -456, 331, 1270,-32768,
1294 1055,-32768, 484,-32768,-32768,-32768,-32768, -167,-32768,-32768,
1295 -32768,-32768,-32768, 19, 642, 948, 1099,-32768,-32768, 1289,
1296 -32768,-32768, -328,-32768, 177, 176, -481, -845,-32768, 794,
1297 -32768,-32768, 886, -153, -433, 51,-32768, 82, 39,-32768,
1298 -32768, 218,-32768, 659,-32768,-32768, 598,-32768, 322, -598,
1299 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1300 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1417,
1301 -32768,-32768, 1703, -266, 0, 66,-32768
1308 static const short yytable[] = { 118,
1309 116, 307, 118, 125, 284, 550, 118, 211, 211, 211,
1310 525, 575, 111, 94, 488, 129, 602, 132, 621, 710,
1311 712, 526, 722, 527, 515, 516, 195, 434, 447, 619,
1312 1140, 517, 518, 725, 679, 675, 325, 326, 327, 328,
1313 329, 330, 519, 520, 521, 522, 204, 439, 409, 523,
1314 524, 600, -582, 413, 912, 414, -582, 914, 995, 234,
1315 234, 1022, 584, 1027, 256, 119, 608, 808, 119, 1009,
1316 90, 1071, 135, 417, 449, 710, 712, 996, 722, 995,
1317 990, 2, -628, 118, 116, 759, -628, 997, 917, 725,
1318 235, 235, 552, 453, 921, 259, 111, 94, 1068, 392,
1319 389, 259, 1121, 1122, 428, 628, 261, 986, 997, 986,
1320 262, 760, 499, 823, 393, 824, 118, 987, 395, 987,
1321 721, 262, 262, 641, 616, 287, 907, 878, 500, 888,
1322 1059, 453, 118, 720, 300, 1054, 762, 1055, 394, 941,
1323 1060, 395, 879, 118, 898, 299, 1068, 453, 211, 119,
1324 -400, 677, -400, 1056, 90, 942, 997, 121, 122, 395,
1325 -400, 665, 1014, 1086, -624, 1039, 211, 324, -624, 1170,
1326 1067, 1069, 1123, 783, 1124, 1095, 721, 1097, 411, 1052,
1327 1053, 395, 119, 681, 200, 232, 232, 204, 768, 720,
1328 1125, 1141, 211, 771, 668, 808, 386, 387, 301, 1072,
1329 211, 808, 211, -268, 211, 259, 759, 211, 1028, 315,
1330 663, 397, 77, 78, 134, 211, 817, 81, 82, 404,
1331 211, 759, 211, 403, 395, 205, 405, 606, 469, 449,
1332 646, 204, 760, 998, 999, 211, 211, 77, 1000, 204,
1333 278, 1001, 1133, 204, 1136, 539, 204, 760, 667, 1021,
1334 1120, 1023, 548, 413, 717, 422, 395, 762, 77, 1000,
1335 594, 512, 513, 514, 718, 719, 234, 77, 988, 77,
1336 988, 234, 762, 234, 471, 204, 118, 431, 713, 118,
1337 118, 118, 2, 714, 801, 975, 234, 288, 1099, 307,
1338 77, 1061, 715, 118, 446, 716, 302, 235, 453, 118,
1339 906, 395, 235, 908, 235, 596, 77, 1000, 1066, 768,
1340 717, 664, 434, 311, 771, 808, 488, 235, 551, 468,
1341 718, 719, 395, 473, 768, 200, -400, -400, -400, 771,
1342 -678, -400, -400, 470, 713, 307, 614, 312, -400, 714,
1343 615, -400, 119, -400, 211, 436, 438, 440, 715, 1136,
1344 307, 716, 211, 395, 211, 679, 684, 631, 817, 119,
1345 710, 712, 605, 722, 1031, 301, 205, 972, 909, 200,
1346 453, 693, -626, 694, 725, 395, -626, 200, 970, 833,
1347 388, 200, 453, -678, 200, 1015, 313, -616, 1016, 1139,
1348 666, -616, 232, 410, 1145, 314, -613, 232, 211, 232,
1349 -613, -400, 677, -400, 977, 978, 1032, 378, 379, 1033,
1350 205, -400, 232, 200, 316, 380, 381, 537, 205, 211,
1351 211, 1078, 205, 1079, 1019, 205, 211, 1019, 118, 560,
1352 547, -269, -579, 254, 979, 980, -579, 204, 118, 1080,
1353 118, 547, 118, 1174, 470, 307, 1090, 835, 981, -268,
1354 118, 471, 300, 118, 205, 1117, -578, 118, 2, 2,
1355 -578, 721, -602, 77, 78, 134, -602, 307, 81, 82,
1356 234, 234, -577, -269, 720, 448, -577, -400, -400, -400,
1357 -678, -678, -400, -400, -617, -678, -678, 259, -617, 211,
1358 1045, 193, 223, 223, 119, 317, 967, 259, 118, 118,
1359 1057, 235, 235, 336, 572, 335, 119, 968, 119, 969,
1360 957, 958, 380, 381, 378, 379, 301, 959, 960, 587,
1361 77, 78, 134, 592, 1117, 81, 82, 337, 961, 962,
1362 963, 964, 338, 402, 494, 965, 966, 211, 211, 1113,
1363 1054, 1019, 1055, 1019, -618, 118, 633, 339, -618, -400,
1364 -400, -400, 547, 211, -400, -400, 211, 211, 1056, 340,
1365 812, -400, -400, -400, 617, 618, -400, -400, -451, 471,
1366 547, 259, 380, 381, 1016, 200, 204, -45, 382, 383,
1367 341, 1078, 118, 1079, 300, 836, 837, 838, 839, 840,
1368 841, -672, 384, 385, -619, 717, 232, 232, -619, 1080,
1369 395, 388, 673, 1035, 882, 718, 719, -676, 77, 78,
1370 134, 119, -673, 81, 82, -268, 205, 471, 259, 713,
1371 992, 1126, 380, 381, 714, 2, 1148, 211, 211, 1016,
1372 -621, 742, 193, 715, -621, 389, 716, 395, 390, 211,
1373 211, 931, 211, 380, 381, 602, 382, 383, 301, 196,
1374 229, 229, 307, 1029, 280, 281, 282, 118, 1149, 118,
1375 384, 385, 391, 868, 869, -622, 206, 399, 118, -622,
1376 398, 118, 118, 211, 815, 489, 193, 870, 871, 473,
1377 996, 382, 383, 492, 193, 493, 394, 742, 193, 395,
1378 997, 193, 404, 469, 933, 384, 385, -505, 97, 223,
1379 -675, 97, 812, -611, 223, 411, 223, -611, 395, 241,
1380 242, 406, 469, -674, 200, 1046, 375, 376, 377, 223,
1381 193, 407, 395, 572, 1058, 572, 935, 77, 78, 134,
1382 1181, -596, 81, 82, 802, -596, 412, 592, 119, 359,
1383 -268, 360, 471, -400, 1083, 386, 387, 954, 955, 956,
1384 2, 986, -601, 418, 1114, 205, -601, 555, 419, -400,
1385 1100, 987, 361, 362, 1192, 845, -600, 846, -599, -400,
1386 -600, 423, -599, 424, 211, 77, 78, 134, 426, 471,
1387 81, 82, 97, 486, 487, -400, 1108, 2, 847, 848,
1388 196, -268, 903, 471, 2, 903, 1127, 264, 265, 266,
1389 267, 268, 269, 270, 271, 445, 273, 206, -598, 276,
1390 1132, 1078, -598, 1079, 118, 97, 815, 1147, 430, -597,
1391 555, 442, 1036, -597, 118, 289, 290, 292, -594, 1080,
1392 444, 298, -594, 450, 196, -595, 998, 999, 461, -595,
1393 77, 1000, 196, -268, 1001, 603, 196, 321, -591, 196,
1394 467, 206, -591, 476, 331, 986, -614, 229, 1166, 206,
1395 -614, 477, 229, 206, 229, 987, 206, 378, 379, 555,
1396 1165, 1123, -592, 1124, 478, -583, -592, 229, 196, -583,
1397 119, -586, 193, 532, 533, -586, 993, 555, 644, 1125,
1398 930, 480, 614, 479, 1012, 206, 1038, 375, 376, 377,
1399 77, 78, 134, 223, 223, 81, 82, 924, 481, -606,
1400 482, 77, 988, -606, 321, 171, 903, 497, 903, 903,
1401 903, 490, 501, 502, 503, 504, 505, 506, 507, 508,
1402 509, 510, 511, 861, 862, 863, 483, 77, 78, 134,
1403 118, 118, 81, 82, 77, 78, 134, -610, 484, 81,
1404 82, -610, 425, 531, 1074, 1075, 1076, 541, 644, 696,
1405 375, 376, 377, -607, -608, -604, -587, -607, -608, -604,
1406 -587, 644, 742, -585, 542, 97, 432, -585, 435, 437,
1407 -589, 657, 658, 1050, -589, 993, 993, -590, 545, 284,
1408 -588, -590, 97, 1064, -588, 1012, 1012, 1049, 298, 395,
1409 692, 321, 864, 865, 818, 544, 1040, 1041, 549, 866,
1410 867, 562, 1064, 563, 307, 77, 988, 118, 1093, 171,
1411 472, 193, 910, 658, 872, 873, 564, 1187, -268, 118,
1412 560, 1102, 118, 903, 567, 903, 1025, 1026, 395, 1111,
1413 196, 321, 1129, 1130, 274, 275, 573, 579, 307, 580,
1414 582, 589, 395, 993, 118, 118, 993, 206, 1064, 1064,
1415 588, 229, 229, 593, 597, 607, 601, 1012, 610, 1012,
1416 612, 613, 1012, 630, 634, 635, 1012, 637, 118, 118,
1417 645, 1012, 651, 119, 648, 653, 656, 118, 654, 671,
1418 674, 669, 659, 686, 781, 119, 745, 682, 1105, 676,
1419 687, 118, 777, 784, 799, 797, 197, 230, 230, 822,
1420 819, 821, 826, 831, 276, 825, 883, 827, 832, 874,
1421 1118, 1119, 993, 118, 118, 1064, 844, 97, 875, 880,
1422 1012, 911, 919, 922, 565, 877, 568, 876, 574, 97,
1423 934, 97, 927, 889, 1142, 1143, 581, 890, 191, 298,
1424 118, 1093, 928, 119, 891, 932, 590, 243, 244, 245,
1425 246, 247, 248, 249, 250, 251, 252, 119, 598, 936,
1426 973, 472, 689, 604, 1012, 894, 432, 974, 171, 196,
1427 1034, 976, 1037, 1070, 1089, 1106, 897, 1082, 1126, 1168,
1428 1169, 364, 1128, 915, 1144, 1101, 206, 1151, 272, 1154,
1429 1155, 1157, 277, 1160, 279, 1172, 283, 1162, 1159, 1175,
1430 1164, 285, 1176, 1178, 1183, 1185, 119, 1186, 1188, 1189,
1431 793, 293, 1195, 294, 1196, 365, 366, 367, 368, 369,
1432 370, 371, 372, 373, 374, 20, 21, 22, 23, 253,
1433 24, 452, 1003, 1190, 97, 29, 30, 197, 1177, 33,
1434 34, 1137, 36, 37, 38, 39, 791, 1044, 647, 1112,
1435 1051, 432, 1167, 1085, 939, 363, 576, 51, 52, 896,
1436 650, 789, 1182, 787, 661, 662, 925, 286, 811, 239,
1437 474, 298, 1161, 611, 538, 829, 0, 319, 485, 320,
1438 421, 197, 76, 0, 1043, 0, 198, 231, 231, 197,
1439 604, 0, 80, 197, 0, 432, 197, 0, 0, 0,
1440 306, 0, 0, 0, 230, 690, 691, 0, 0, 230,
1441 321, 230, 321, 306, 306, 306, 306, 306, 306, 0,
1442 333, 334, 0, 191, 230, 197, 0, 0, 0, 0,
1443 0, 191, 0, 0, 0, 191, 0, 779, 191, 0,
1444 793, 0, 429, 793, 0, 786, 408, 788, 0, 0,
1445 0, 795, 796, 0, 0, 0, 800, 0, 0, 0,
1446 590, 813, 0, 0, 0, 0, 472, 191, 0, 441,
1447 0, 0, 443, 0, 0, 0, 0, 0, 0, 0,
1448 451, 0, 0, 454, 0, 0, 321, 0, 0, 0,
1449 0, 0, 937, 497, 0, 0, 0, 0, 943, 944,
1450 945, 946, 947, 948, 949, 950, 951, 952, 953, 0,
1451 0, 0, 0, 0, 208, 237, 237, 850, 0, 0,
1452 0, 0, 0, 0, 0, 0, 0, 198, 0, 0,
1453 0, 0, 0, 459, 0, 0, 0, 0, 0, 0,
1454 0, 462, 463, 464, 465, 0, 0, 0, 793, 0,
1455 0, 851, 852, 853, 854, 855, 856, 857, 858, 859,
1456 860, 0, 459, 0, 0, 0, 900, 0, 0, 0,
1457 0, 198, 0, 459, 0, 0, 0, 0, 0, 198,
1458 0, 0, 0, 198, 0, 0, 198, 197, 0, 0,
1459 498, 0, 0, 0, 231, 0, 0, 546, 0, 231,
1460 0, 231, 923, 813, 0, 604, 0, 454, 230, 230,
1461 0, 0, 561, 0, 231, 198, 0, 566, 0, 569,
1462 0, 0, 0, 0, 0, 0, 0, 578, 0, 191,
1463 0, 583, 0, 0, 0, 0, 0, 543, 306, 306,
1464 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
1465 306, 306, 306, 306, 0, 208, 318, 0, 0, 0,
1466 0, 0, 303, 0, 0, 0, 0, 150, 151, 152,
1467 153, 154, 155, 0, 793, 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 156, 157, 158, 0, 306, -250,
1469 0, 1017, 0, 0, 0, 303, 0, 0, 1024, 208,
1470 150, 151, 152, 153, 154, 155, 0, 208, 159, 0,
1471 0, 208, 0, 0, 208, 0, 0, 156, 157, 158,
1472 0, 0, 237, 0, 0, 0, 197, 237, 0, 237,
1473 0, 0, 0, 0, 306, 0, 0, 0, 0, 306,
1474 0, 159, 237, 208, 0, 0, 0, 0, 303, 306,
1475 0, 168, 0, 150, 151, 152, 153, 154, 155, 620,
1476 0, 0, 0, 454, 0, 0, 0, 0, 191, 0,
1477 156, 157, 158, 0, 0, 0, 0, 198, 0, 0,
1478 0, 0, 678, 0, 168, 0, 0, 683, 0, 0,
1479 0, 306, 0, 306, 159, 623, 625, 0, 231, 231,
1480 210, 238, 238, 1087, 0, 0, 97, 0, 0, 0,
1481 0, 0, 0, 0, 561, 0, 744, 0, 813, 0,
1482 1104, 0, 77, 304, 305, 432, 171, 465, 1109, 1110,
1483 0, 0, 0, 0, 0, 0, 0, 168, 745, 746,
1484 747, 748, 0, 0, 306, 749, 750, 751, 752, 753,
1485 754, 755, 459, 0, 459, 77, 304, 305, 0, 171,
1486 697, 0, 0, 0, 743, 0, 306, 0, 0, 0,
1487 0, 1146, 0, 0, 0, 0, 97, 0, 1150, 1152,
1488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489 813, 849, 0, 0, 0, 711, 0, 0, 0, 0,
1490 0, 0, 0, 0, 0, 208, 0, 0, 77, 304,
1491 305, 0, 171, 0, 0, 1171, 198, 828, 0, 0,
1492 0, 0, 0, 0, 0, 0, 237, 237, 834, 0,
1493 0, 0, 0, 0, 0, 1179, 1180, 0, 0, 97,
1494 0, 210, 1184, 792, 1098, 0, 892, 893, 303, 0,
1495 0, 711, 0, 150, 151, 152, 153, 154, 155, 0,
1496 0, 0, 306, 306, 306, 306, 306, 306, 842, 843,
1497 156, 157, 158, 0, 0, 0, 0, 0, 916, 0,
1498 0, 0, 0, 0, 0, 210, 0, 0, 0, 0,
1499 0, 0, 0, 210, 159, 0, 0, 210, 0, 0,
1500 210, 0, 0, 0, 0, 0, 0, 0, 238, 0,
1501 0, -533, 0, 238, 0, 238, 343, 0, 0, 0,
1502 0, 150, 151, 152, 153, 154, 155, 0, 238, 210,
1503 0, 0, 0, 0, 0, 0, 0, 168, 156, 157,
1504 158, 0, 0, 0, 208, 0, 0, 0, 0, 0,
1505 0, 306, 0, 0, 0, 0, 0, 0, 0, 0,
1506 0, 0, 159, 0, 0, 0, 0, 0, 792, 0,
1507 0, 0, 0, 303, 0, 0, 940, 0, 150, 151,
1508 152, 153, 154, 155, 1018, 0, 0, 0, 0, 0,
1509 0, 0, 0, 306, 0, 156, 157, 158, 0, 0,
1510 0, 0, 0, 1030, 0, 168, 0, 0, 77, 304,
1511 305, 0, 171, 0, 0, 0, 0, 0, 0, 159,
1512 0, 0, 0, 0, 306, 306, 306, 306, 306, 306,
1513 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
1514 306, 0, 306, 0, 0, 0, 0, 0, 0, -1,
1515 1, 0, 0, 0, 0, 0, 465, 0, 0, 0,
1516 0, 0, 168, 0, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, -268, 0, 0, 77, 304, 305, 0,
1518 171, 0, 0, 2, 0, 0, 0, 0, 0, 0,
1519 0, 210, 0, 0, 3, 0, 0, 1088, 0, 306,
1520 0, 1042, 0, 0, 0, 0, 0, 0, 0, 0,
1521 0, 0, 238, 238, 0, 0, -400, -400, -400, 0,
1522 4, 0, 0, 0, 0, 5, 6, 7, 0, 0,
1523 0, 0, 0, 77, 304, 305, 711, 171, 0, 0,
1524 8, 9, 10, 0, 0, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1526 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1527 21, 22, 23, 1153, 24, 25, 26, 27, 28, 29,
1528 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1529 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1530 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1531 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1532 70, 71, 72, 73, 74, 75, 76, 0, 0, 0,
1533 210, 0, 0, 77, 78, 79, 80, 0, 81, 82,
1534 83, -2, 1, 0, 0, 0, 0, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536 0, 0, 0, 1191, 0, -268, 0, 0, 0, 0,
1537 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
1538 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, -400, -400,
1541 -400, 0, 4, 306, 0, 0, 0, 5, 6, 7,
1542 0, 0, 0, 0, 0, 0, 306, 0, 0, 0,
1543 0, 0, 8, 9, 10, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 0, 306, 0, 0,
1545 0, 11, 12, 13, 0, 14, 15, 16, 17, 18,
1546 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1547 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1548 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1549 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1550 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1551 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
1552 0, 0, 0, 0, 0, 77, 78, 79, 80, 136,
1553 81, 82, 83, 0, 137, 138, 139, 0, 140, 141,
1554 142, 143, 144, 145, 146, 147, 148, -533, 535, 0,
1555 0, 0, 149, 0, 0, 0, 0, 150, 151, 152,
1556 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1557 -268, -268, 0, 3, 156, 157, 158, 0, 0, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1559 0, 0, 0, 0, 0, -400, -400, -400, 159, 4,
1560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1562 0, 0, 0, 161, 162, 163, 164, 165, 166, 0,
1563 0, 0, 0, 0, 0, 0, 0, 167, 11, 12,
1564 13, 168, 14, 15, 16, 17, 18, 19, 20, 21,
1565 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1566 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1567 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1568 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1569 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1570 71, 72, 73, 74, 75, 76, 0, 0, 0, 0,
1571 0, 0, 77, 169, 536, 80, 171, 172, 82, 83,
1572 136, 0, 0, 0, 0, 137, 138, 139, 0, 140,
1573 141, 142, 143, 144, 145, 146, 147, 148, -533, 0,
1574 0, 0, 0, 149, 0, 0, 0, 0, 150, 151,
1575 152, 153, 154, 155, 0, 0, 0, 0, 0, 0,
1576 0, -268, -268, 0, 0, 156, 157, 158, 0, 0,
1577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1578 0, 0, 0, 0, 0, 0, -268, -268, -268, 159,
1579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1581 0, 0, 0, 0, 161, 162, 163, 164, 165, 166,
1582 0, 0, 0, 0, 0, 0, 0, 0, 167, -268,
1583 -268, -268, 168, -268, -268, -268, -268, -268, -268, -268,
1584 -268, -268, -268, 0, -268, -268, -268, -268, -268, -268,
1585 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1586 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1587 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1588 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1589 -268, -268, -268, -268, -268, -268, -268, 0, 0, 0,
1590 0, 0, 0, 77, 169, 170, -268, 171, 172, 82,
1591 -268, 213, 0, 0, 0, 0, 137, 138, 139, 0,
1592 0, 214, 142, 143, 144, 145, 146, 147, 215, -533,
1593 -537, 0, 0, 0, 216, 0, 0, 0, 0, 150,
1594 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
1595 0, 0, -268, -268, 0, 0, 156, 157, 158, 0,
1596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1597 0, 0, 0, 0, 0, 0, 0, -268, -268, -268,
1598 159, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1600 0, 0, 0, 0, 0, 161, 162, 163, 164, 165,
1601 166, 0, 0, 0, 0, 0, 0, 0, 0, 167,
1602 -268, -268, -268, 168, -268, -268, -268, -268, -268, -268,
1603 -268, -268, -268, -268, 0, -268, -268, -268, -268, -268,
1604 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1605 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1606 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1607 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1608 -268, -268, -268, -268, -268, -268, -268, -268, 0, 0,
1609 0, 0, 0, 0, 77, 169, 170, -268, 171, 217,
1610 218, -268, 213, 0, 0, 0, 0, 137, 138, 139,
1611 0, 0, 214, 142, 143, 144, 145, 146, 147, 215,
1612 -478, -478, 0, 0, 0, 216, -478, 0, 0, 0,
1613 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1614 0, 0, 0, -268, -268, 0, 136, 156, 157, 158,
1615 0, 137, 138, 139, 0, 140, 141, 142, 143, 144,
1616 145, 146, 147, 148, -533, 0, 0, 0, 0, 149,
1617 0, 159, 0, 0, 150, 151, 152, 153, 154, 155,
1618 0, 0, 0, 0, 0, 0, 0, -268, -268, 0,
1619 0, 156, 157, 158, 0, -478, 161, 162, 163, 164,
1620 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1621 167, 0, 0, 0, 168, 159, 0, 0, 0, 0,
1622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1623 0, 0, 0, 0, 0, 0, 0, 0, 0, 160,
1624 161, 162, 163, 164, 165, 166, 0, 0, 0, 0,
1625 0, 0, 0, 0, 167, 0, 0, 0, 168, 0,
1626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1628 0, 0, 0, 0, 0, 77, 169, 170, 0, 171,
1629 217, 218, 0, 0, 0, 136, 0, 0, 0, 0,
1630 137, 138, 139, 0, 140, 141, 142, 143, 144, 145,
1631 146, 147, 148, -533, 0, 0, 0, 0, 149, 0,
1632 0, 0, 0, 150, 151, 152, 153, 154, 155, 77,
1633 169, 170, 0, 171, 172, 82, -268, -268, 0, 213,
1634 156, 157, 158, 0, 137, 138, 139, 0, 0, 214,
1635 142, 143, 144, 145, 146, 147, 215, -533, -537, 0,
1636 0, 0, 216, 0, 159, 0, 0, 150, 151, 152,
1637 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1638 -268, -268, 0, 0, 156, 157, 158, 0, -506, 161,
1639 162, 163, 164, 165, 166, 0, 0, 0, 0, 0,
1640 0, 0, 0, 167, 0, 0, 0, 168, 159, 0,
1641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1643 0, 0, -474, 161, 162, 163, 164, 165, 166, 0,
1644 0, 0, 0, 0, 0, 0, 0, 167, 0, 0,
1645 0, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1647 0, 0, 0, 0, 0, 0, 0, 0, 77, 169,
1648 170, 0, 171, 172, 82, 0, 0, 0, 136, 0,
1649 0, 0, 0, 137, 138, 139, 0, 140, 141, 142,
1650 143, 144, 145, 146, 147, 148, -533, 626, 0, 0,
1651 0, 149, 0, 0, 0, 0, 150, 151, 152, 153,
1652 154, 155, 77, 169, 170, 0, 171, 217, 218, -268,
1653 -268, 0, 213, 156, 157, 158, 0, 137, 138, 139,
1654 0, 0, 214, 142, 143, 144, 145, 146, 147, 215,
1655 -533, -537, 0, 0, 0, 216, 0, 159, 0, 0,
1656 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1657 0, 0, 0, -268, -268, 0, 0, 156, 157, 158,
1658 0, 0, 161, 162, 163, 164, 165, 166, 0, 0,
1659 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1660 168, 159, 0, 0, 0, 0, 0, 0, 0, 0,
1661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1662 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1663 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1664 167, 0, 0, 0, 168, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666 303, 495, 0, 0, 0, 150, 151, 152, 153, 154,
1667 155, 77, 169, 170, 0, 171, 172, 82, 0, 0,
1668 0, 136, 156, 157, 158, 0, 137, 138, 139, 0,
1669 140, 141, 142, 143, 144, 145, 146, 147, 148, -533,
1670 0, 0, 0, 0, 149, 0, 159, 0, 0, 150,
1671 151, 152, 153, 154, 155, 77, 169, 170, 0, 171,
1672 217, 218, -268, -268, 0, 0, 156, 157, 158, 0,
1673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1674 0, 0, 0, 0, 0, 0, 0, 0, 0, 168,
1675 159, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1677 0, 0, 0, 0, 0, 161, 162, 163, 164, 165,
1678 166, 0, 0, 0, 0, 0, 0, 0, 0, 167,
1679 137, 138, 139, 168, 140, 141, 142, 143, 144, 145,
1680 146, 147, 215, -533, 553, 0, 0, 0, 343, 0,
1681 0, 0, 0, 150, 151, 152, 153, 154, 155, 0,
1682 77, 304, 305, 0, 171, 0, -268, -268, 0, 3,
1683 156, 157, 158, 0, 0, 0, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1685 0, 0, 0, 0, 159, 4, 0, 0, 0, 0,
1686 0, 0, 0, 0, 77, 169, 170, 0, 171, 172,
1687 82, 0, 0, 0, 0, 0, 0, 0, 0, 161,
1688 162, 163, 164, 165, 166, 0, 0, 0, 0, 0,
1689 0, 0, 0, 554, 11, 12, 13, 168, 14, 15,
1690 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1691 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1692 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1693 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1694 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1695 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1696 75, 76, 0, 0, 0, 0, 0, 0, 77, 169,
1697 536, 80, 171, 172, 82, 83, 137, 138, 139, 0,
1698 140, 141, 142, 143, 144, 145, 146, 147, 215, -533,
1699 627, 0, 0, 0, 343, 0, 0, 0, 0, 150,
1700 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
1701 0, 0, -268, -268, 0, 3, 156, 157, 158, 0,
1702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1704 159, 4, 0, 0, 0, 0, 0, 0, 0, 0,
1705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1706 0, 0, 0, 0, 0, 161, 162, 163, 164, 165,
1707 166, 0, 0, 0, 0, 0, 0, 0, 0, 167,
1708 11, 12, 13, 168, 14, 15, 16, 17, 18, 19,
1709 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1710 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1711 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1712 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1713 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1714 69, 70, 71, 72, 73, 74, 75, 76, 0, 0,
1715 0, 0, 0, 0, 77, 169, 536, 80, 171, 172,
1716 82, 83, 137, 138, 139, 0, 140, 141, 142, 143,
1717 144, 145, 146, 147, 215, -533, 639, 0, 0, 0,
1718 343, 0, 0, 0, 0, 150, 151, 152, 153, 154,
1719 155, 0, 0, 0, 0, 0, 0, 0, -268, -268,
1720 0, 3, 156, 157, 158, 0, 0, 0, 0, 0,
1721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1722 0, 0, 0, 0, 0, 0, 159, 4, 0, 0,
1723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 0, 161, 162, 163, 164, 165, 166, 0, 0, 0,
1726 0, 0, 0, 0, 0, 640, 11, 12, 13, 168,
1727 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1728 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1729 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1730 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1731 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1732 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1733 73, 74, 75, 76, 0, 0, 0, 0, 0, 0,
1734 77, 169, 536, 80, 171, 172, 82, 83, 137, 138,
1735 139, 0, 140, 141, 142, 143, 144, 145, 146, 147,
1736 215, -533, 638, 0, 0, 0, 343, 0, 0, 0,
1737 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1738 0, 0, 0, 0, 0, 0, 0, 0, 156, 157,
1739 158, 0, 137, 138, 139, 0, 140, 141, 142, 143,
1740 144, 145, 146, 147, 215, -533, 642, 0, 0, 0,
1741 343, 0, 159, 0, 0, 150, 151, 152, 153, 154,
1742 155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 156, 157, 158, 0, 0, 161, 162, 163,
1744 164, 165, 166, 0, 0, 0, 0, 0, 0, 0,
1745 0, 167, 0, 0, 0, 168, 159, 0, 0, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748 0, 161, 162, 163, 164, 165, 166, 0, 0, 0,
1749 0, 0, 0, 0, 0, 643, 137, 138, 139, 168,
1750 140, 141, 142, 143, 144, 145, 146, 147, 215, -533,
1751 695, 0, 0, 0, 343, 0, 0, 0, 0, 150,
1752 151, 152, 153, 154, 155, 0, 77, 169, 170, 0,
1753 171, 172, 82, 0, 0, 0, 156, 157, 158, 0,
1754 137, 138, 139, 0, 140, 141, 142, 143, 144, 145,
1755 146, 147, 215, -533, 773, 0, 0, 0, 343, 0,
1756 159, 0, 0, 150, 151, 152, 153, 154, 155, 0,
1757 77, 169, 170, 0, 171, 172, 82, 0, 0, 0,
1758 156, 157, 158, 0, 0, 161, 162, 163, 164, 165,
1759 166, 0, 0, 0, 0, 0, 0, 0, 0, 167,
1760 0, 0, 0, 168, 159, 0, 0, 0, 0, 0,
1761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762 0, 0, 0, 0, 0, 0, 0, 0, 0, 161,
1763 162, 163, 164, 165, 166, 0, 0, 0, 0, 0,
1764 0, 0, 0, 167, 137, 138, 139, 168, 140, 141,
1765 142, 143, 144, 145, 146, 147, 215, -533, 774, 0,
1766 0, 0, 343, 0, 0, 0, 0, 150, 151, 152,
1767 153, 154, 155, 0, 77, 169, 170, 0, 171, 172,
1768 82, 0, 0, 0, 156, 157, 158, 0, 137, 138,
1769 139, 0, 140, 141, 142, 143, 144, 145, 146, 147,
1770 215, -533, 776, 0, 0, 0, 343, 0, 159, 0,
1771 0, 150, 151, 152, 153, 154, 155, 0, 77, 169,
1772 170, 0, 171, 172, 82, 0, 0, 0, 156, 157,
1773 158, 0, 0, 161, 162, 163, 164, 165, 166, 0,
1774 0, 0, 0, 0, 0, 0, 0, 775, 0, 0,
1775 0, 168, 159, 0, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1777 0, 0, 0, 0, 0, 0, 0, 161, 162, 163,
1778 164, 165, 166, 0, 0, 0, 0, 0, 0, 0,
1779 0, 167, 137, 138, 139, 168, 140, 141, 142, 143,
1780 144, 145, 146, 147, 215, -533, 899, 0, 0, 0,
1781 343, 0, 0, 0, 0, 150, 151, 152, 153, 154,
1782 155, 0, 77, 169, 170, 0, 171, 172, 82, 0,
1783 0, 0, 156, 157, 158, 0, 137, 138, 139, 0,
1784 140, 141, 142, 143, 144, 145, 146, 147, 215, -533,
1785 0, 0, 0, 0, 343, 0, 159, 0, 0, 150,
1786 151, 152, 153, 154, 155, 0, 77, 169, 170, 0,
1787 171, 172, 82, 0, 0, 0, 156, 157, 158, 0,
1788 0, 161, 162, 163, 164, 165, 166, 0, 0, 0,
1789 0, 0, 0, 0, 0, 167, 0, 0, 0, 168,
1790 159, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792 0, 0, 0, 0, 0, 161, 162, 163, 164, 165,
1793 166, -134, 0, 0, 0, 0, -134, 0, 0, 167,
1794 0, 0, 0, 168, 0, 0, 0, 0, 0, 0,
1795 0, 0, 0, 0, 0, 0, 0, 3, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1797 77, 169, 170, 0, 171, 172, 82, 0, 0, 0,
1798 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801 -536, 0, 0, 0, 77, 169, 170, 0, 171, 172,
1802 82, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1803 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1804 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1805 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1806 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1807 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1808 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1809 0, 0, 0, 0, 0, 0, 0, 0, 131, 80,
1810 11, 12, 13, 83, 14, 15, 16, 17, 18, 19,
1811 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1812 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1813 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1814 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1815 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1816 69, 70, 71, 72, 73, 74, 75, 76, -676, 0,
1817 0, 0, 0, 0, 0, 0, 131, 80, 0, 0,
1818 0, 83, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, -678, -678, -678, 0, 0, 0, 0,
1822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, -678, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1825 0, 0, 0, 0, 0, 0, -678, -678, -678, 0,
1826 -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
1827 0, -678, -678, -678, -678, -678, -678, -678, -678, -678,
1828 -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
1829 -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
1830 -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
1831 -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
1832 -678, -678, -678, -678, -268, 0, 0, 0, 0, 0,
1833 0, 0, 0, -678, 2, 303, 0, -678, 599, 0,
1834 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1835 0, 0, 0, 0, 0, 0, 0, 156, 157, 158,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 159, 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1841 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1842 20, 21, 22, 23, 168, 24, 25, 26, 27, 28,
1843 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1844 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1845 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1846 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1847 69, 70, 71, 72, 73, 74, 75, 76, 0, 0,
1848 0, 0, 0, 0, 77, 78, 79, 80, 0, 81,
1849 82, 83, 0, 0, 0, 77, 304, 305, 303, 171,
1850 0, 680, 0, 150, 151, 152, 153, 154, 155, 303,
1851 938, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1852 156, 157, 158, 0, 0, 0, 0, 0, 0, 303,
1853 -250, 156, 157, 158, 150, 151, 152, 153, 154, 155,
1854 332, 0, 0, 0, 159, 150, 151, 152, 153, 154,
1855 155, 156, 157, 158, 0, 159, 0, 0, 0, 0,
1856 622, 0, 156, 157, 158, 150, 151, 152, 153, 154,
1857 155, 0, 0, 0, 0, 159, 0, 0, 0, 0,
1858 0, 0, 156, 157, 158, 624, 159, 168, 0, 0,
1859 150, 151, 152, 153, 154, 155, 0, 0, 168, 0,
1860 0, 0, 0, 0, 0, 0, 159, 156, 157, 158,
1861 0, 0, 0, 0, 0, 0, 0, 698, 168, 0,
1862 0, 0, 699, 700, 701, 702, 703, 704, 0, 168,
1863 0, 159, 0, 0, 0, 0, 0, 0, 0, 156,
1864 705, 706, 0, 0, 0, 0, 0, 0, 0, 168,
1865 0, 0, 0, 0, 0, 0, 0, 0, 77, 304,
1866 305, 0, 171, 707, 0, 0, 0, 0, 0, 77,
1867 304, 305, 0, 171, 168, 0, 0, 0, 0, 0,
1868 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
1869 304, 305, 0, 171, 0, 0, 0, 0, 0, 0,
1870 77, 304, 305, 0, 171, 0, 168, 0, 0, 0,
1871 0, 0, 0, 0, -194, -194, 0, 0, 0, 0,
1872 77, 304, 305, 0, 171, 0, 0, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 77, 304, 305, 0, 171,
1875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1877 0, 0, 0, 0, 0, 0, 0, 77, 708, 709,
1878 0, 171, 11, 12, 13, 0, 14, 15, 16, 17,
1879 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1880 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1881 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1882 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1883 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1884 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1885 3, 0, 0, 0, 0, 0, 0, 0, 131, 80,
1886 0, 0, 0, 83, 0, 0, 0, 0, 0, 0,
1887 0, 0, -400, -400, -400, 0, 4, 0, 0, 0,
1888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1891 0, 0, 0, 0, 0, 11, 12, 13, 0, 14,
1892 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1893 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1894 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1895 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1896 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1897 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1898 74, 75, 76, 3, 0, 0, 0, 0, 0, 0,
1899 0, 131, 80, 0, 0, 0, 83, 0, 0, 0,
1900 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
1901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1905 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1906 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1907 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1908 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1909 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1910 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1911 71, 72, 73, 74, 75, 76, 3, 0, 0, 0,
1912 0, 0, 77, 1047, 131, 80, 0, 0, 0, 83,
1913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
1915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1918 0, 11, 12, 13, 0, 14, 15, 16, 17, 18,
1919 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1920 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1921 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1922 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1923 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1924 68, 69, 70, 71, 72, 73, 74, 75, 76, -400,
1925 -400, -400, 0, 0, 0, 0, 0, 131, 80, 0,
1926 0, 0, 83, 0, 0, 0, 0, 0, 0, 0,
1927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1929 0, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1930 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1931 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1932 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1933 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1934 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1935 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1936 8, 9, 10, 0, 0, 0, 0, 0, 131, 80,
1937 0, 0, 0, 83, 0, 0, 0, 0, 0, 11,
1938 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1939 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1940 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1941 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1942 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1943 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1944 70, 71, 72, 73, 74, 75, 76, 0, 0, 0,
1945 0, 0, 0, 0, 0, 131, 80, 11, 12, 13,
1946 83, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1947 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1948 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1949 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1950 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1951 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1952 72, 73, 74, 75, 76, 0, 0, 0, 0, 0,
1953 0, 0, 0, 131, 80, 0, 0, 0, 83
1956 static const short yycheck[] = { 0,
1957 0, 137, 3, 2, 117, 425, 7, 8, 9, 10,
1958 388, 441, 0, 0, 343, 3, 473, 5, 530, 632,
1959 632, 389, 632, 390, 378, 379, 8, 278, 295, 528,
1960 27, 380, 381, 632, 601, 597, 150, 151, 152, 153,
1961 154, 155, 382, 383, 384, 385, 8, 19, 216, 386,
1962 387, 471, 21, 221, 792, 223, 25, 795, 5, 9,
1963 10, 907, 451, 914, 19, 0, 486, 670, 3, 895,
1964 0, 55, 7, 227, 297, 688, 688, 24, 688, 5,
1965 887, 34, 21, 84, 84, 636, 25, 34, 798, 688,
1966 9, 10, 426, 5, 804, 18, 84, 84, 24, 41,
1967 39, 18, 1059, 1060, 258, 539, 24, 24, 34, 24,
1968 98, 636, 28, 25, 56, 682, 117, 34, 21, 34,
1969 632, 109, 110, 557, 27, 124, 783, 41, 44, 757,
1970 24, 5, 133, 632, 133, 26, 636, 28, 18, 28,
1971 34, 21, 56, 144, 772, 133, 24, 5, 149, 84,
1972 24, 25, 26, 44, 84, 44, 34, 110, 111, 21,
1973 34, 581, 900, 1014, 21, 27, 167, 149, 25, 1126,
1974 996, 997, 26, 655, 28, 1021, 688, 1023, 18, 986,
1975 987, 21, 117, 603, 8, 9, 10, 149, 636, 688,
1976 44, 188, 193, 636, 583, 798, 53, 54, 133, 183,
1977 201, 804, 203, 18, 205, 18, 757, 208, 918, 144,
1978 23, 193, 184, 185, 186, 216, 673, 189, 190, 188,
1979 221, 772, 223, 205, 21, 8, 208, 478, 25, 452,
1980 559, 193, 757, 180, 181, 236, 237, 184, 185, 201,
1981 87, 188, 1068, 205, 1070, 399, 208, 772, 582, 906,
1982 1057, 908, 420, 421, 632, 237, 21, 757, 184, 185,
1983 25, 375, 376, 377, 632, 632, 216, 184, 185, 184,
1984 185, 221, 772, 223, 26, 237, 277, 277, 632, 280,
1985 281, 282, 34, 632, 5, 884, 236, 21, 1026, 425,
1986 184, 185, 632, 294, 294, 632, 24, 216, 5, 300,
1987 782, 21, 221, 785, 223, 25, 184, 185, 996, 757,
1988 688, 578, 563, 24, 757, 918, 645, 236, 25, 18,
1989 688, 688, 21, 322, 772, 149, 184, 185, 186, 772,
1990 34, 189, 190, 321, 688, 471, 21, 24, 18, 688,
1991 25, 21, 277, 23, 345, 280, 281, 282, 688, 1175,
1992 486, 688, 353, 21, 355, 922, 607, 25, 815, 294,
1993 973, 973, 476, 973, 926, 300, 149, 879, 788, 193,
1994 5, 622, 21, 624, 973, 21, 25, 201, 877, 25,
1995 29, 205, 5, 87, 208, 18, 24, 21, 21, 1077,
1996 25, 25, 216, 217, 1082, 24, 21, 221, 399, 223,
1997 25, 24, 25, 26, 88, 89, 25, 32, 33, 28,
1998 193, 34, 236, 237, 18, 49, 50, 399, 201, 420,
1999 421, 26, 205, 28, 904, 208, 427, 907, 429, 429,
2000 417, 24, 21, 26, 118, 119, 25, 399, 439, 44,
2001 441, 428, 443, 1131, 432, 581, 22, 698, 132, 24,
2002 451, 26, 451, 454, 237, 1054, 21, 458, 34, 34,
2003 25, 973, 21, 184, 185, 186, 25, 603, 189, 190,
2004 420, 421, 21, 24, 973, 26, 25, 184, 185, 186,
2005 184, 185, 189, 190, 21, 189, 190, 18, 25, 490,
2006 21, 8, 9, 10, 429, 18, 874, 18, 499, 500,
2007 21, 420, 421, 16, 439, 24, 441, 875, 443, 876,
2008 864, 865, 49, 50, 32, 33, 451, 866, 867, 454,
2009 184, 185, 186, 458, 1123, 189, 190, 16, 868, 869,
2010 870, 871, 16, 203, 358, 872, 873, 538, 539, 25,
2011 26, 1021, 28, 1023, 21, 546, 546, 16, 25, 184,
2012 185, 186, 539, 554, 189, 190, 557, 558, 44, 15,
2013 673, 184, 185, 186, 499, 500, 189, 190, 25, 26,
2014 557, 18, 49, 50, 21, 399, 538, 22, 37, 38,
2015 100, 26, 583, 28, 583, 699, 700, 701, 702, 703,
2016 704, 22, 51, 52, 21, 973, 420, 421, 25, 44,
2017 21, 29, 590, 932, 25, 973, 973, 22, 184, 185,
2018 186, 546, 22, 189, 190, 24, 399, 26, 18, 973,
2019 887, 21, 49, 50, 973, 34, 18, 628, 629, 21,
2020 21, 632, 149, 973, 25, 39, 973, 21, 40, 640,
2021 641, 25, 643, 49, 50, 1102, 37, 38, 583, 8,
2022 9, 10, 788, 920, 67, 68, 69, 658, 1088, 660,
2023 51, 52, 55, 37, 38, 21, 8, 19, 669, 25,
2024 94, 672, 673, 674, 673, 345, 193, 51, 52, 678,
2025 24, 37, 38, 353, 201, 355, 18, 688, 205, 21,
2026 34, 208, 188, 25, 830, 51, 52, 94, 0, 216,
2027 22, 3, 815, 21, 221, 18, 223, 25, 21, 11,
2028 12, 22, 25, 22, 538, 982, 34, 35, 36, 236,
2029 237, 24, 21, 658, 991, 660, 25, 184, 185, 186,
2030 1150, 21, 189, 190, 669, 25, 94, 672, 673, 24,
2031 24, 26, 26, 28, 1011, 53, 54, 861, 862, 863,
2032 34, 24, 21, 19, 27, 538, 25, 427, 20, 44,
2033 1027, 34, 47, 48, 1184, 24, 21, 26, 21, 28,
2034 25, 94, 25, 27, 775, 184, 185, 186, 24, 26,
2035 189, 190, 84, 6, 7, 44, 1037, 34, 47, 48,
2036 149, 24, 780, 26, 34, 783, 1063, 99, 100, 101,
2037 102, 103, 104, 105, 106, 23, 108, 149, 21, 111,
2038 25, 26, 25, 28, 815, 117, 815, 1084, 18, 21,
2039 490, 18, 936, 25, 825, 127, 128, 129, 21, 44,
2040 18, 133, 25, 24, 193, 21, 180, 181, 22, 25,
2041 184, 185, 201, 24, 188, 26, 205, 149, 21, 208,
2042 18, 193, 25, 25, 156, 24, 21, 216, 27, 201,
2043 25, 25, 221, 205, 223, 34, 208, 32, 33, 539,
2044 25, 26, 21, 28, 24, 21, 25, 236, 237, 25,
2045 815, 21, 399, 42, 43, 25, 887, 557, 558, 44,
2046 825, 18, 21, 335, 895, 237, 25, 34, 35, 36,
2047 184, 185, 186, 420, 421, 189, 190, 191, 18, 21,
2048 18, 184, 185, 25, 216, 188, 904, 359, 906, 907,
2049 908, 19, 364, 365, 366, 367, 368, 369, 370, 371,
2050 372, 373, 374, 34, 35, 36, 18, 184, 185, 186,
2051 941, 942, 189, 190, 184, 185, 186, 21, 18, 189,
2052 190, 25, 254, 395, 51, 52, 53, 9, 628, 629,
2053 34, 35, 36, 21, 21, 21, 21, 25, 25, 25,
2054 25, 641, 973, 21, 11, 277, 278, 25, 280, 281,
2055 21, 20, 21, 984, 25, 986, 987, 21, 24, 1102,
2056 21, 25, 294, 994, 25, 996, 997, 984, 300, 21,
2057 22, 303, 32, 33, 674, 25, 941, 942, 11, 49,
2058 50, 90, 1013, 21, 1150, 184, 185, 1018, 1018, 188,
2059 322, 538, 20, 21, 53, 54, 19, 1163, 19, 1030,
2060 1030, 1030, 1033, 1021, 19, 1023, 20, 21, 21, 22,
2061 399, 343, 32, 33, 109, 110, 19, 90, 1184, 27,
2062 24, 21, 21, 1054, 1055, 1056, 1057, 399, 1059, 1060,
2063 25, 420, 421, 22, 18, 21, 24, 1068, 25, 1070,
2064 11, 24, 1073, 24, 24, 27, 1077, 25, 1079, 1080,
2065 24, 1082, 20, 1018, 23, 19, 19, 1088, 20, 5,
2066 25, 21, 23, 22, 20, 1030, 72, 24, 1033, 27,
2067 24, 1102, 25, 20, 25, 27, 8, 9, 10, 27,
2068 18, 25, 25, 25, 416, 21, 185, 22, 25, 29,
2069 1055, 1056, 1123, 1124, 1125, 1126, 24, 429, 39, 25,
2070 1131, 18, 25, 24, 436, 55, 438, 40, 440, 441,
2071 18, 443, 25, 90, 1079, 1080, 448, 90, 8, 451,
2072 1151, 1151, 25, 1088, 90, 25, 458, 66, 67, 68,
2073 69, 70, 71, 72, 73, 74, 75, 1102, 470, 25,
2074 21, 473, 614, 475, 1175, 90, 478, 18, 188, 538,
2075 18, 40, 21, 23, 18, 190, 90, 24, 21, 1124,
2076 1125, 23, 22, 90, 22, 90, 538, 21, 107, 22,
2077 20, 20, 111, 25, 113, 192, 115, 25, 90, 40,
2078 27, 120, 27, 25, 18, 20, 1151, 20, 27, 25,
2079 662, 130, 0, 132, 0, 57, 58, 59, 60, 61,
2080 62, 63, 64, 65, 66, 120, 121, 122, 123, 84,
2081 125, 300, 895, 1175, 546, 130, 131, 149, 1144, 134,
2082 135, 1073, 137, 138, 139, 140, 661, 976, 560, 1045,
2083 985, 563, 1123, 1013, 845, 174, 443, 152, 153, 770,
2084 563, 660, 1151, 658, 576, 577, 815, 124, 672, 10,
2085 322, 583, 1107, 490, 399, 688, -1, 147, 341, 149,
2086 236, 193, 177, -1, 973, -1, 8, 9, 10, 201,
2087 602, -1, 187, 205, -1, 607, 208, -1, -1, -1,
2088 137, -1, -1, -1, 216, 617, 618, -1, -1, 221,
2089 622, 223, 624, 150, 151, 152, 153, 154, 155, -1,
2090 157, 158, -1, 193, 236, 237, -1, -1, -1, -1,
2091 -1, 201, -1, -1, -1, 205, -1, 649, 208, -1,
2092 792, -1, 261, 795, -1, 657, 216, 659, -1, -1,
2093 -1, 663, 664, -1, -1, -1, 668, -1, -1, -1,
2094 672, 673, -1, -1, -1, -1, 678, 237, -1, 288,
2095 -1, -1, 291, -1, -1, -1, -1, -1, -1, -1,
2096 299, -1, -1, 302, -1, -1, 698, -1, -1, -1,
2097 -1, -1, 844, 845, -1, -1, -1, -1, 850, 851,
2098 852, 853, 854, 855, 856, 857, 858, 859, 860, -1,
2099 -1, -1, -1, -1, 8, 9, 10, 23, -1, -1,
2100 -1, -1, -1, -1, -1, -1, -1, 149, -1, -1,
2101 -1, -1, -1, 303, -1, -1, -1, -1, -1, -1,
2102 -1, 311, 312, 313, 314, -1, -1, -1, 900, -1,
2103 -1, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2104 66, -1, 332, -1, -1, -1, 778, -1, -1, -1,
2105 -1, 193, -1, 343, -1, -1, -1, -1, -1, 201,
2106 -1, -1, -1, 205, -1, -1, 208, 399, -1, -1,
2107 360, -1, -1, -1, 216, -1, -1, 416, -1, 221,
2108 -1, 223, 814, 815, -1, 817, -1, 426, 420, 421,
2109 -1, -1, 431, -1, 236, 237, -1, 436, -1, 438,
2110 -1, -1, -1, -1, -1, -1, -1, 446, -1, 399,
2111 -1, 450, -1, -1, -1, -1, -1, 407, 375, 376,
2112 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
2113 387, 388, 389, 390, -1, 149, 18, -1, -1, -1,
2114 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2115 32, 33, 34, -1, 1026, -1, -1, -1, -1, -1,
2116 -1, -1, -1, -1, 46, 47, 48, -1, 425, 18,
2117 -1, 903, -1, -1, -1, 24, -1, -1, 910, 193,
2118 29, 30, 31, 32, 33, 34, -1, 201, 70, -1,
2119 -1, 205, -1, -1, 208, -1, -1, 46, 47, 48,
2120 -1, -1, 216, -1, -1, -1, 538, 221, -1, 223,
2121 -1, -1, -1, -1, 471, -1, -1, -1, -1, 476,
2122 -1, 70, 236, 237, -1, -1, -1, -1, 24, 486,
2123 -1, 113, -1, 29, 30, 31, 32, 33, 34, 529,
2124 -1, -1, -1, 582, -1, -1, -1, -1, 538, -1,
2125 46, 47, 48, -1, -1, -1, -1, 399, -1, -1,
2126 -1, -1, 601, -1, 113, -1, -1, 606, -1, -1,
2127 -1, 528, -1, 530, 70, 532, 533, -1, 420, 421,
2128 8, 9, 10, 1015, -1, -1, 1018, -1, -1, -1,
2129 -1, -1, -1, -1, 633, -1, 635, -1, 1030, -1,
2130 1032, -1, 184, 185, 186, 1037, 188, 597, 1040, 1041,
2131 -1, -1, -1, -1, -1, -1, -1, 113, 72, 73,
2132 74, 75, -1, -1, 581, 79, 80, 81, 82, 83,
2133 84, 85, 622, -1, 624, 184, 185, 186, -1, 188,
2134 630, -1, -1, -1, 634, -1, 603, -1, -1, -1,
2135 -1, 1083, -1, -1, -1, -1, 1088, -1, 1090, 1091,
2136 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2137 1102, 710, -1, -1, -1, 632, -1, -1, -1, -1,
2138 -1, -1, -1, -1, -1, 399, -1, -1, 184, 185,
2139 186, -1, 188, -1, -1, 1127, 538, 687, -1, -1,
2140 -1, -1, -1, -1, -1, -1, 420, 421, 698, -1,
2141 -1, -1, -1, -1, -1, 1147, 1148, -1, -1, 1151,
2142 -1, 149, 1154, 19, 20, -1, 765, 766, 24, -1,
2143 -1, 688, -1, 29, 30, 31, 32, 33, 34, -1,
2144 -1, -1, 699, 700, 701, 702, 703, 704, 705, 706,
2145 46, 47, 48, -1, -1, -1, -1, -1, 797, -1,
2146 -1, -1, -1, -1, -1, 193, -1, -1, -1, -1,
2147 -1, -1, -1, 201, 70, -1, -1, 205, -1, -1,
2148 208, -1, -1, -1, -1, -1, -1, -1, 216, -1,
2149 -1, 19, -1, 221, -1, 223, 24, -1, -1, -1,
2150 -1, 29, 30, 31, 32, 33, 34, -1, 236, 237,
2151 -1, -1, -1, -1, -1, -1, -1, 113, 46, 47,
2152 48, -1, -1, -1, 538, -1, -1, -1, -1, -1,
2153 -1, 788, -1, -1, -1, -1, -1, -1, -1, -1,
2154 -1, -1, 70, -1, -1, -1, -1, -1, 19, -1,
2155 -1, -1, -1, 24, -1, -1, 846, -1, 29, 30,
2156 31, 32, 33, 34, 903, -1, -1, -1, -1, -1,
2157 -1, -1, -1, 830, -1, 46, 47, 48, -1, -1,
2158 -1, -1, -1, 922, -1, 113, -1, -1, 184, 185,
2159 186, -1, 188, -1, -1, -1, -1, -1, -1, 70,
2160 -1, -1, -1, -1, 861, 862, 863, 864, 865, 866,
2161 867, 868, 869, 870, 871, 872, 873, 874, 875, 876,
2162 877, -1, 879, -1, -1, -1, -1, -1, -1, 0,
2163 1, -1, -1, -1, -1, -1, 926, -1, -1, -1,
2164 -1, -1, 113, -1, -1, -1, -1, -1, -1, -1,
2165 -1, -1, -1, 24, -1, -1, 184, 185, 186, -1,
2166 188, -1, -1, 34, -1, -1, -1, -1, -1, -1,
2167 -1, 399, -1, -1, 45, -1, -1, 1016, -1, 936,
2168 -1, 971, -1, -1, -1, -1, -1, -1, -1, -1,
2169 -1, -1, 420, 421, -1, -1, 67, 68, 69, -1,
2170 71, -1, -1, -1, -1, 76, 77, 78, -1, -1,
2171 -1, -1, -1, 184, 185, 186, 973, 188, -1, -1,
2172 91, 92, 93, -1, -1, -1, -1, -1, -1, -1,
2173 -1, -1, -1, -1, -1, -1, -1, -1, -1, 110,
2174 111, 112, -1, 114, 115, 116, 117, 118, 119, 120,
2175 121, 122, 123, 1092, 125, 126, 127, 128, 129, 130,
2176 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2177 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2178 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2179 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2180 171, 172, 173, 174, 175, 176, 177, -1, -1, -1,
2181 538, -1, -1, 184, 185, 186, 187, -1, 189, 190,
2182 191, 0, 1, -1, -1, -1, -1, -1, -1, -1,
2183 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2184 -1, -1, -1, 1182, -1, 24, -1, -1, -1, -1,
2185 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
2186 -1, -1, -1, -1, -1, -1, 45, -1, -1, -1,
2187 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2188 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
2189 69, -1, 71, 1150, -1, -1, -1, 76, 77, 78,
2190 -1, -1, -1, -1, -1, -1, 1163, -1, -1, -1,
2191 -1, -1, 91, 92, 93, -1, -1, -1, -1, -1,
2192 -1, -1, -1, -1, -1, -1, -1, 1184, -1, -1,
2193 -1, 110, 111, 112, -1, 114, 115, 116, 117, 118,
2194 119, 120, 121, 122, 123, -1, 125, 126, 127, 128,
2195 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2196 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2197 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2198 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2199 169, 170, 171, 172, 173, 174, 175, 176, 177, -1,
2200 -1, -1, -1, -1, -1, 184, 185, 186, 187, 1,
2201 189, 190, 191, -1, 6, 7, 8, -1, 10, 11,
2202 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2203 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2204 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2205 42, 43, -1, 45, 46, 47, 48, -1, -1, -1,
2206 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2207 -1, -1, -1, -1, -1, 67, 68, 69, 70, 71,
2208 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2209 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2210 -1, -1, -1, 95, 96, 97, 98, 99, 100, -1,
2211 -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
2212 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2213 122, 123, -1, 125, 126, 127, 128, 129, 130, 131,
2214 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2215 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2216 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2217 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2218 172, 173, 174, 175, 176, 177, -1, -1, -1, -1,
2219 -1, -1, 184, 185, 186, 187, 188, 189, 190, 191,
2220 1, -1, -1, -1, -1, 6, 7, 8, -1, 10,
2221 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2222 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2223 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2224 -1, 42, 43, -1, -1, 46, 47, 48, -1, -1,
2225 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2226 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
2227 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2228 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2229 -1, -1, -1, -1, 95, 96, 97, 98, 99, 100,
2230 -1, -1, -1, -1, -1, -1, -1, -1, 109, 110,
2231 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2232 121, 122, 123, -1, 125, 126, 127, 128, 129, 130,
2233 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2234 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2235 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2236 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2237 171, 172, 173, 174, 175, 176, 177, -1, -1, -1,
2238 -1, -1, -1, 184, 185, 186, 187, 188, 189, 190,
2239 191, 1, -1, -1, -1, -1, 6, 7, 8, -1,
2240 -1, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2241 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2242 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2243 -1, -1, 42, 43, -1, -1, 46, 47, 48, -1,
2244 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2245 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
2246 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2247 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2248 -1, -1, -1, -1, -1, 95, 96, 97, 98, 99,
2249 100, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2250 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2251 120, 121, 122, 123, -1, 125, 126, 127, 128, 129,
2252 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2253 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2254 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2255 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2256 170, 171, 172, 173, 174, 175, 176, 177, -1, -1,
2257 -1, -1, -1, -1, 184, 185, 186, 187, 188, 189,
2258 190, 191, 1, -1, -1, -1, -1, 6, 7, 8,
2259 -1, -1, 11, 12, 13, 14, 15, 16, 17, 18,
2260 19, 20, -1, -1, -1, 24, 25, -1, -1, -1,
2261 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2262 -1, -1, -1, 42, 43, -1, 1, 46, 47, 48,
2263 -1, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2264 15, 16, 17, 18, 19, -1, -1, -1, -1, 24,
2265 -1, 70, -1, -1, 29, 30, 31, 32, 33, 34,
2266 -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
2267 -1, 46, 47, 48, -1, 94, 95, 96, 97, 98,
2268 99, 100, -1, -1, -1, -1, -1, -1, -1, -1,
2269 109, -1, -1, -1, 113, 70, -1, -1, -1, -1,
2270 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2271 -1, -1, -1, -1, -1, -1, -1, -1, -1, 94,
2272 95, 96, 97, 98, 99, 100, -1, -1, -1, -1,
2273 -1, -1, -1, -1, 109, -1, -1, -1, 113, -1,
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, -1, -1, 184, 185, 186, -1, 188,
2277 189, 190, -1, -1, -1, 1, -1, -1, -1, -1,
2278 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2279 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2280 -1, -1, -1, 29, 30, 31, 32, 33, 34, 184,
2281 185, 186, -1, 188, 189, 190, 42, 43, -1, 1,
2282 46, 47, 48, -1, 6, 7, 8, -1, -1, 11,
2283 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2284 -1, -1, 24, -1, 70, -1, -1, 29, 30, 31,
2285 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2286 42, 43, -1, -1, 46, 47, 48, -1, 94, 95,
2287 96, 97, 98, 99, 100, -1, -1, -1, -1, -1,
2288 -1, -1, -1, 109, -1, -1, -1, 113, 70, -1,
2289 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2290 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2291 -1, -1, 94, 95, 96, 97, 98, 99, 100, -1,
2292 -1, -1, -1, -1, -1, -1, -1, 109, -1, -1,
2293 -1, 113, -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, -1, -1, 184, 185,
2296 186, -1, 188, 189, 190, -1, -1, -1, 1, -1,
2297 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2298 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2299 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2300 33, 34, 184, 185, 186, -1, 188, 189, 190, 42,
2301 43, -1, 1, 46, 47, 48, -1, 6, 7, 8,
2302 -1, -1, 11, 12, 13, 14, 15, 16, 17, 18,
2303 19, 20, -1, -1, -1, 24, -1, 70, -1, -1,
2304 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2305 -1, -1, -1, 42, 43, -1, -1, 46, 47, 48,
2306 -1, -1, 95, 96, 97, 98, 99, 100, -1, -1,
2307 -1, -1, -1, -1, -1, -1, 109, -1, -1, -1,
2308 113, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2309 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2310 -1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
2311 99, 100, -1, -1, -1, -1, -1, -1, -1, -1,
2312 109, -1, -1, -1, 113, -1, -1, -1, -1, -1,
2313 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2314 24, 25, -1, -1, -1, 29, 30, 31, 32, 33,
2315 34, 184, 185, 186, -1, 188, 189, 190, -1, -1,
2316 -1, 1, 46, 47, 48, -1, 6, 7, 8, -1,
2317 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2318 -1, -1, -1, -1, 24, -1, 70, -1, -1, 29,
2319 30, 31, 32, 33, 34, 184, 185, 186, -1, 188,
2320 189, 190, 42, 43, -1, -1, 46, 47, 48, -1,
2321 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2322 -1, -1, -1, -1, -1, -1, -1, -1, -1, 113,
2323 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2324 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2325 -1, -1, -1, -1, -1, 95, 96, 97, 98, 99,
2326 100, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2327 6, 7, 8, 113, 10, 11, 12, 13, 14, 15,
2328 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2329 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2330 184, 185, 186, -1, 188, -1, 42, 43, -1, 45,
2331 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2332 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2333 -1, -1, -1, -1, 70, 71, -1, -1, -1, -1,
2334 -1, -1, -1, -1, 184, 185, 186, -1, 188, 189,
2335 190, -1, -1, -1, -1, -1, -1, -1, -1, 95,
2336 96, 97, 98, 99, 100, -1, -1, -1, -1, -1,
2337 -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
2338 116, 117, 118, 119, 120, 121, 122, 123, -1, 125,
2339 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2340 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2341 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2342 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2343 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2344 176, 177, -1, -1, -1, -1, -1, -1, 184, 185,
2345 186, 187, 188, 189, 190, 191, 6, 7, 8, -1,
2346 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2347 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2348 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2349 -1, -1, 42, 43, -1, 45, 46, 47, 48, -1,
2350 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2351 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2352 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2353 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2354 -1, -1, -1, -1, -1, 95, 96, 97, 98, 99,
2355 100, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2356 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2357 120, 121, 122, 123, -1, 125, 126, 127, 128, 129,
2358 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2359 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2360 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2361 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2362 170, 171, 172, 173, 174, 175, 176, 177, -1, -1,
2363 -1, -1, -1, -1, 184, 185, 186, 187, 188, 189,
2364 190, 191, 6, 7, 8, -1, 10, 11, 12, 13,
2365 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2366 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2367 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2368 -1, 45, 46, 47, 48, -1, -1, -1, -1, -1,
2369 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2370 -1, -1, -1, -1, -1, -1, 70, 71, -1, -1,
2371 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2372 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2373 -1, 95, 96, 97, 98, 99, 100, -1, -1, -1,
2374 -1, -1, -1, -1, -1, 109, 110, 111, 112, 113,
2375 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2376 -1, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2377 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2378 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2379 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2380 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2381 174, 175, 176, 177, -1, -1, -1, -1, -1, -1,
2382 184, 185, 186, 187, 188, 189, 190, 191, 6, 7,
2383 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2384 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2385 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2386 -1, -1, -1, -1, -1, -1, -1, -1, 46, 47,
2387 48, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2388 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2389 24, -1, 70, -1, -1, 29, 30, 31, 32, 33,
2390 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2391 -1, -1, 46, 47, 48, -1, -1, 95, 96, 97,
2392 98, 99, 100, -1, -1, -1, -1, -1, -1, -1,
2393 -1, 109, -1, -1, -1, 113, 70, -1, -1, -1,
2394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2395 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2396 -1, 95, 96, 97, 98, 99, 100, -1, -1, -1,
2397 -1, -1, -1, -1, -1, 109, 6, 7, 8, 113,
2398 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2399 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2400 30, 31, 32, 33, 34, -1, 184, 185, 186, -1,
2401 188, 189, 190, -1, -1, -1, 46, 47, 48, -1,
2402 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2403 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2404 70, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2405 184, 185, 186, -1, 188, 189, 190, -1, -1, -1,
2406 46, 47, 48, -1, -1, 95, 96, 97, 98, 99,
2407 100, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2408 -1, -1, -1, 113, 70, -1, -1, -1, -1, -1,
2409 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2410 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
2411 96, 97, 98, 99, 100, -1, -1, -1, -1, -1,
2412 -1, -1, -1, 109, 6, 7, 8, 113, 10, 11,
2413 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2414 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2415 32, 33, 34, -1, 184, 185, 186, -1, 188, 189,
2416 190, -1, -1, -1, 46, 47, 48, -1, 6, 7,
2417 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2418 18, 19, 20, -1, -1, -1, 24, -1, 70, -1,
2419 -1, 29, 30, 31, 32, 33, 34, -1, 184, 185,
2420 186, -1, 188, 189, 190, -1, -1, -1, 46, 47,
2421 48, -1, -1, 95, 96, 97, 98, 99, 100, -1,
2422 -1, -1, -1, -1, -1, -1, -1, 109, -1, -1,
2423 -1, 113, 70, -1, -1, -1, -1, -1, -1, -1,
2424 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2425 -1, -1, -1, -1, -1, -1, -1, 95, 96, 97,
2426 98, 99, 100, -1, -1, -1, -1, -1, -1, -1,
2427 -1, 109, 6, 7, 8, 113, 10, 11, 12, 13,
2428 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2429 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2430 34, -1, 184, 185, 186, -1, 188, 189, 190, -1,
2431 -1, -1, 46, 47, 48, -1, 6, 7, 8, -1,
2432 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2433 -1, -1, -1, -1, 24, -1, 70, -1, -1, 29,
2434 30, 31, 32, 33, 34, -1, 184, 185, 186, -1,
2435 188, 189, 190, -1, -1, -1, 46, 47, 48, -1,
2436 -1, 95, 96, 97, 98, 99, 100, -1, -1, -1,
2437 -1, -1, -1, -1, -1, 109, -1, -1, -1, 113,
2438 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2439 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2440 -1, -1, -1, -1, -1, 95, 96, 97, 98, 99,
2441 100, 19, -1, -1, -1, -1, 24, -1, -1, 109,
2442 -1, -1, -1, 113, -1, -1, -1, -1, -1, -1,
2443 -1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
2444 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2445 184, 185, 186, -1, 188, 189, 190, -1, -1, -1,
2446 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2448 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2449 20, -1, -1, -1, 184, 185, 186, -1, 188, 189,
2450 190, -1, 110, 111, 112, -1, 114, 115, 116, 117,
2451 118, 119, 120, 121, 122, 123, -1, 125, 126, 127,
2452 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2453 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2454 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2455 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2456 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2457 -1, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2458 110, 111, 112, 191, 114, 115, 116, 117, 118, 119,
2459 120, 121, 122, 123, -1, 125, 126, 127, 128, 129,
2460 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2461 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2462 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2463 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2464 170, 171, 172, 173, 174, 175, 176, 177, 22, -1,
2465 -1, -1, -1, -1, -1, -1, 186, 187, -1, -1,
2466 -1, 191, -1, -1, -1, -1, -1, -1, -1, -1,
2467 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2469 -1, -1, -1, 67, 68, 69, -1, -1, -1, -1,
2470 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2471 -1, -1, -1, 87, -1, -1, -1, -1, -1, -1,
2472 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2473 -1, -1, -1, -1, -1, -1, 110, 111, 112, -1,
2474 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2475 -1, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2476 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2477 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2478 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2479 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2480 174, 175, 176, 177, 24, -1, -1, -1, -1, -1,
2481 -1, -1, -1, 187, 34, 24, -1, 191, 27, -1,
2482 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2483 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2484 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2486 -1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2488 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2489 110, 111, 112, -1, 114, 115, 116, 117, 118, 119,
2490 120, 121, 122, 123, 113, 125, 126, 127, 128, 129,
2491 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2492 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2493 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2494 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2495 170, 171, 172, 173, 174, 175, 176, 177, -1, -1,
2496 -1, -1, -1, -1, 184, 185, 186, 187, -1, 189,
2497 190, 191, -1, -1, -1, 184, 185, 186, 24, 188,
2498 -1, 27, -1, 29, 30, 31, 32, 33, 34, 24,
2499 25, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2500 46, 47, 48, -1, -1, -1, -1, -1, -1, 24,
2501 25, 46, 47, 48, 29, 30, 31, 32, 33, 34,
2502 24, -1, -1, -1, 70, 29, 30, 31, 32, 33,
2503 34, 46, 47, 48, -1, 70, -1, -1, -1, -1,
2504 24, -1, 46, 47, 48, 29, 30, 31, 32, 33,
2505 34, -1, -1, -1, -1, 70, -1, -1, -1, -1,
2506 -1, -1, 46, 47, 48, 24, 70, 113, -1, -1,
2507 29, 30, 31, 32, 33, 34, -1, -1, 113, -1,
2508 -1, -1, -1, -1, -1, -1, 70, 46, 47, 48,
2509 -1, -1, -1, -1, -1, -1, -1, 24, 113, -1,
2510 -1, -1, 29, 30, 31, 32, 33, 34, -1, 113,
2511 -1, 70, -1, -1, -1, -1, -1, -1, -1, 46,
2512 47, 48, -1, -1, -1, -1, -1, -1, -1, 113,
2513 -1, -1, -1, -1, -1, -1, -1, -1, 184, 185,
2514 186, -1, 188, 70, -1, -1, -1, -1, -1, 184,
2515 185, 186, -1, 188, 113, -1, -1, -1, -1, -1,
2516 -1, -1, -1, -1, -1, -1, -1, -1, -1, 184,
2517 185, 186, -1, 188, -1, -1, -1, -1, -1, -1,
2518 184, 185, 186, -1, 188, -1, 113, -1, -1, -1,
2519 -1, -1, -1, -1, 42, 43, -1, -1, -1, -1,
2520 184, 185, 186, -1, 188, -1, -1, -1, -1, -1,
2521 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2522 -1, -1, -1, -1, -1, 184, 185, 186, -1, 188,
2523 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2525 -1, -1, -1, -1, -1, -1, -1, 184, 185, 186,
2526 -1, 188, 110, 111, 112, -1, 114, 115, 116, 117,
2527 118, 119, 120, 121, 122, 123, -1, 125, 126, 127,
2528 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2529 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2530 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2531 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2532 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2533 45, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2534 -1, -1, -1, 191, -1, -1, -1, -1, -1, -1,
2535 -1, -1, 67, 68, 69, -1, 71, -1, -1, -1,
2536 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2537 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2538 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2539 -1, -1, -1, -1, -1, 110, 111, 112, -1, 114,
2540 115, 116, 117, 118, 119, 120, 121, 122, 123, -1,
2541 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2542 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2543 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2544 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2545 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2546 175, 176, 177, 45, -1, -1, -1, -1, -1, -1,
2547 -1, 186, 187, -1, -1, -1, 191, -1, -1, -1,
2548 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2549 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2550 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2551 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2552 -1, -1, -1, -1, -1, -1, -1, -1, 110, 111,
2553 112, -1, 114, 115, 116, 117, 118, 119, 120, 121,
2554 122, 123, -1, 125, 126, 127, 128, 129, 130, 131,
2555 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2556 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2557 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2558 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2559 172, 173, 174, 175, 176, 177, 45, -1, -1, -1,
2560 -1, -1, 184, 185, 186, 187, -1, -1, -1, 191,
2561 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2562 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2563 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2564 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2565 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2566 -1, 110, 111, 112, -1, 114, 115, 116, 117, 118,
2567 119, 120, 121, 122, 123, -1, 125, 126, 127, 128,
2568 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2569 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2570 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2571 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2572 169, 170, 171, 172, 173, 174, 175, 176, 177, 67,
2573 68, 69, -1, -1, -1, -1, -1, 186, 187, -1,
2574 -1, -1, 191, -1, -1, -1, -1, -1, -1, -1,
2575 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2576 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2577 -1, -1, 110, 111, 112, -1, 114, 115, 116, 117,
2578 118, 119, 120, 121, 122, 123, -1, 125, 126, 127,
2579 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2580 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2581 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2582 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2583 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2584 91, 92, 93, -1, -1, -1, -1, -1, 186, 187,
2585 -1, -1, -1, 191, -1, -1, -1, -1, -1, 110,
2586 111, 112, -1, 114, 115, 116, 117, 118, 119, 120,
2587 121, 122, 123, -1, 125, 126, 127, 128, 129, 130,
2588 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2589 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2590 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2591 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2592 171, 172, 173, 174, 175, 176, 177, -1, -1, -1,
2593 -1, -1, -1, -1, -1, 186, 187, 110, 111, 112,
2594 191, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2595 123, -1, 125, 126, 127, 128, 129, 130, 131, 132,
2596 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2597 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2598 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2599 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2600 173, 174, 175, 176, 177, -1, -1, -1, -1, -1,
2601 -1, -1, -1, 186, 187, -1, -1, -1, 191
2603 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2605 /* This file comes from bison-1.28. */
2607 /* Skeleton output parser for bison,
2608 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2610 This program is free software; you can redistribute it and/or modify
2611 it under the terms of the GNU General Public License as published by
2612 the Free Software Foundation; either version 2, or (at your option)
2615 This program is distributed in the hope that it will be useful,
2616 but WITHOUT ANY WARRANTY; without even the implied warranty of
2617 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2618 GNU General Public License for more details.
2620 You should have received a copy of the GNU General Public License
2621 along with this program; if not, write to the Free Software
2622 Foundation, Inc., 59 Temple Place - Suite 330,
2623 Boston, MA 02111-1307, USA. */
2625 /* As a special exception, when this file is copied by Bison into a
2626 Bison output file, you may use that output file without restriction.
2627 This special exception was added by the Free Software Foundation
2628 in version 1.24 of Bison. */
2630 /* This is the parser code that is written into each bison parser
2631 when the %semantic_parser declaration is not specified in the grammar.
2632 It was written by Richard Stallman by simplifying the hairy parser
2633 used when %semantic_parser is specified. */
2635 #ifndef YYSTACK_USE_ALLOCA
2637 #define YYSTACK_USE_ALLOCA
2638 #else /* alloca not defined */
2640 #define YYSTACK_USE_ALLOCA
2641 #define alloca __builtin_alloca
2642 #else /* not GNU C. */
2643 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2644 #define YYSTACK_USE_ALLOCA
2646 #else /* not sparc */
2647 /* We think this test detects Watcom and Microsoft C. */
2648 /* This used to test MSDOS, but that is a bad idea
2649 since that symbol is in the user namespace. */
2650 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2651 #if 0 /* No need for malloc.h, which pollutes the namespace;
2652 instead, just don't use alloca. */
2655 #else /* not MSDOS, or __TURBOC__ */
2657 /* I don't know what this was needed for, but it pollutes the namespace.
2658 So I turned it off. rms, 2 May 1997. */
2659 /* #include <malloc.h> */
2661 #define YYSTACK_USE_ALLOCA
2662 #else /* not MSDOS, or __TURBOC__, or _AIX */
2664 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
2665 and on HPUX 10. Eventually we can turn this on. */
2666 #define YYSTACK_USE_ALLOCA
2667 #define alloca __builtin_alloca
2670 #endif /* not _AIX */
2671 #endif /* not MSDOS, or __TURBOC__ */
2672 #endif /* not sparc */
2673 #endif /* not GNU C */
2674 #endif /* alloca not defined */
2675 #endif /* YYSTACK_USE_ALLOCA not defined */
2677 #ifdef YYSTACK_USE_ALLOCA
2678 #define YYSTACK_ALLOC alloca
2680 #define YYSTACK_ALLOC malloc
2683 /* Note: there must be only one dollar sign in this file.
2684 It is replaced by the list of actions, each action
2685 as one case of the switch. */
2687 #define yyerrok (yyerrstatus = 0)
2688 #define yyclearin (yychar = YYEMPTY)
2691 #define YYACCEPT goto yyacceptlab
2692 #define YYABORT goto yyabortlab
2693 #define YYERROR goto yyerrlab1
2694 /* Like YYERROR except do call yyerror.
2695 This remains here temporarily to ease the
2696 transition to the new meaning of YYERROR, for GCC.
2697 Once GCC version 2 has supplanted version 1, this can go. */
2698 #define YYFAIL goto yyerrlab
2699 #define YYRECOVERING() (!!yyerrstatus)
2700 #define YYBACKUP(token, value) \
2702 if (yychar == YYEMPTY && yylen == 1) \
2703 { yychar = (token), yylval = (value); \
2704 yychar1 = YYTRANSLATE (yychar); \
2709 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2713 #define YYERRCODE 256
2716 #define YYLEX yylex()
2722 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2724 #define YYLEX yylex(&yylval, &yylloc)
2726 #else /* not YYLSP_NEEDED */
2728 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2730 #define YYLEX yylex(&yylval)
2732 #endif /* not YYLSP_NEEDED */
2735 /* If nonreentrant, generate the variables here */
2739 int yychar; /* the lookahead symbol */
2740 YYSTYPE yylval; /* the semantic value of the */
2741 /* lookahead symbol */
2744 YYLTYPE yylloc; /* location data for the lookahead */
2748 int yynerrs; /* number of parse errors so far */
2749 #endif /* not YYPURE */
2752 int yydebug; /* nonzero means print parse trace */
2753 /* Since this is uninitialized, it does not stop multiple parsers
2757 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2760 #define YYINITDEPTH 200
2763 /* YYMAXDEPTH is the maximum size the stacks can grow to
2764 (effective only if the built-in stack extension method is used). */
2771 #define YYMAXDEPTH 10000
2774 /* Define __yy_memcpy. Note that the size argument
2775 should be passed with type unsigned int, because that is what the non-GCC
2776 definitions require. With GCC, __builtin_memcpy takes an arg
2777 of type size_t, but it can handle unsigned int. */
2779 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2780 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2781 #else /* not GNU C or C++ */
2784 /* This is the most reliable way to avoid incompatibilities
2785 in available built-in functions on various systems. */
2787 __yy_memcpy (to, from, count)
2792 register char *f = from;
2793 register char *t = to;
2794 register int i = count;
2800 #else /* __cplusplus */
2802 /* This is the most reliable way to avoid incompatibilities
2803 in available built-in functions on various systems. */
2805 __yy_memcpy (char *to, char *from, unsigned int count)
2807 register char *t = to;
2808 register char *f = from;
2809 register int i = count;
2820 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2821 into yyparse. The argument should have type void *.
2822 It should actually point to an object.
2823 Grammar actions can access the variable by casting it
2824 to the proper pointer type. */
2826 #ifdef YYPARSE_PARAM
2828 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2829 #define YYPARSE_PARAM_DECL
2830 #else /* not __cplusplus */
2831 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2832 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2833 #endif /* not __cplusplus */
2834 #else /* not YYPARSE_PARAM */
2835 #define YYPARSE_PARAM_ARG
2836 #define YYPARSE_PARAM_DECL
2837 #endif /* not YYPARSE_PARAM */
2839 /* Prevent warning if -Wstrict-prototypes. */
2841 #ifdef YYPARSE_PARAM
2842 int yyparse (void *);
2849 yyparse(YYPARSE_PARAM_ARG)
2852 register int yystate;
2854 register short *yyssp;
2855 register YYSTYPE *yyvsp;
2856 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2857 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2859 short yyssa[YYINITDEPTH]; /* the state stack */
2860 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2862 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2863 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2866 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2867 YYLTYPE *yyls = yylsa;
2870 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2872 #define YYPOPSTACK (yyvsp--, yyssp--)
2875 int yystacksize = YYINITDEPTH;
2876 int yyfree_stacks = 0;
2887 YYSTYPE yyval; /* the variable used to return */
2888 /* semantic values from the action */
2895 fprintf(stderr, "Starting parse\n");
2901 yychar = YYEMPTY; /* Cause a token to be read. */
2903 /* Initialize stack pointers.
2904 Waste one element of value and location stack
2905 so that they stay on the same level as the state stack.
2906 The wasted elements are never initialized. */
2914 /* Push a new state, which is found in yystate . */
2915 /* In all cases, when you get here, the value and location stacks
2916 have just been pushed. so pushing a state here evens the stacks. */
2921 if (yyssp >= yyss + yystacksize - 1)
2923 /* Give user a chance to reallocate the stack */
2924 /* Use copies of these so that the &'s don't force the real ones into memory. */
2925 YYSTYPE *yyvs1 = yyvs;
2926 short *yyss1 = yyss;
2928 YYLTYPE *yyls1 = yyls;
2931 /* Get the current used size of the three stacks, in elements. */
2932 int size = yyssp - yyss + 1;
2935 /* Each stack pointer address is followed by the size of
2936 the data in use in that stack, in bytes. */
2938 /* This used to be a conditional around just the two extra args,
2939 but that might be undefined if yyoverflow is a macro. */
2940 yyoverflow("parser stack overflow",
2941 &yyss1, size * sizeof (*yyssp),
2942 &yyvs1, size * sizeof (*yyvsp),
2943 &yyls1, size * sizeof (*yylsp),
2946 yyoverflow("parser stack overflow",
2947 &yyss1, size * sizeof (*yyssp),
2948 &yyvs1, size * sizeof (*yyvsp),
2952 yyss = yyss1; yyvs = yyvs1;
2956 #else /* no yyoverflow */
2957 /* Extend the stack our own way. */
2958 if (yystacksize >= YYMAXDEPTH)
2960 yyerror("parser stack overflow");
2972 if (yystacksize > YYMAXDEPTH)
2973 yystacksize = YYMAXDEPTH;
2974 #ifndef YYSTACK_USE_ALLOCA
2977 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
2978 __yy_memcpy ((char *)yyss, (char *)yyss1,
2979 size * (unsigned int) sizeof (*yyssp));
2980 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
2981 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
2982 size * (unsigned int) sizeof (*yyvsp));
2984 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
2985 __yy_memcpy ((char *)yyls, (char *)yyls1,
2986 size * (unsigned int) sizeof (*yylsp));
2988 #endif /* no yyoverflow */
2990 yyssp = yyss + size - 1;
2991 yyvsp = yyvs + size - 1;
2993 yylsp = yyls + size - 1;
2998 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3001 if (yyssp >= yyss + yystacksize - 1)
3007 fprintf(stderr, "Entering state %d\n", yystate);
3013 /* Do appropriate processing given the current state. */
3014 /* Read a lookahead token if we need one and don't already have one. */
3017 /* First try to decide what to do without reference to lookahead token. */
3019 yyn = yypact[yystate];
3023 /* Not known => get a lookahead token if don't already have one. */
3025 /* yychar is either YYEMPTY or YYEOF
3026 or a valid token in external form. */
3028 if (yychar == YYEMPTY)
3032 fprintf(stderr, "Reading a token: ");
3037 /* Convert token to internal form (in yychar1) for indexing tables with */
3039 if (yychar <= 0) /* This means end of input. */
3042 yychar = YYEOF; /* Don't call YYLEX any more */
3046 fprintf(stderr, "Now at end of input.\n");
3051 yychar1 = YYTRANSLATE(yychar);
3056 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3057 /* Give the individual parser a way to print the precise meaning
3058 of a token, for further debugging info. */
3060 YYPRINT (stderr, yychar, yylval);
3062 fprintf (stderr, ")\n");
3068 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3073 /* yyn is what to do for this token type in this state.
3074 Negative => reduce, -yyn is rule number.
3075 Positive => shift, yyn is new state.
3076 New state is final state => don't bother to shift,
3077 just return success.
3078 0, or most negative number => error. */
3093 /* Shift the lookahead token. */
3097 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3100 /* Discard the token being shifted unless it is eof. */
3101 if (yychar != YYEOF)
3109 /* count tokens shifted since error; after three, turn off error status. */
3110 if (yyerrstatus) yyerrstatus--;
3115 /* Do the default action for the current state. */
3118 yyn = yydefact[yystate];
3122 /* Do a reduction. yyn is the number of a rule to reduce with. */
3126 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3133 fprintf (stderr, "Reducing via rule %d (line %d), ",
3136 /* Print the symbols being reduced, and their result. */
3137 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3138 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3139 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3147 { context_checkGlobalScope (); ;
3150 { context_checkGlobalScope (); ;
3153 { uentry_clearDecl (); ;
3156 { uentry_clearDecl (); ;
3159 { uentry_clearDecl (); ;
3162 { uentry_clearDecl (); ;
3165 { uentry_clearDecl (); ;
3168 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3171 { uentry_clearDecl (); ;
3174 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3177 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3180 { context_enterFunctionHeader (); ;
3184 declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3185 context_exitFunctionHeader ();
3190 qtype qint = qtype_create (ctype_int);
3191 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3196 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3199 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3202 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3205 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3208 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3212 exprNode_findValue(yyvsp[-2].expr);
3213 if (exprNode_hasValue (yyvsp[-2].expr))
3215 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp),
3216 exprNode_getLongValue (yyvsp[-2].expr)));
3220 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-5].ntyp)));
3225 { setCurrentParams (uentryList_missingParams); ;
3228 { /* need to support globals and modifies here! */
3229 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3230 uentryList_makeMissingParams ());
3232 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3233 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3235 /*drl 7/25/01 added*/
3236 setImplictfcnConstraints();
3240 { setCurrentParams (yyvsp[-1].entrylist); ;
3243 { setImplictfcnConstraints ();
3244 clearCurrentParams ();
3245 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3246 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3251 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3254 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3257 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3263 if (exprNode_hasValue (yyvsp[-2].expr)
3264 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3266 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3273 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3277 { setCurrentParams (uentryList_missingParams); ;
3281 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3282 uentryList_makeMissingParams ());
3284 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3285 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3290 { setCurrentParams (yyvsp[-1].entrylist); ;
3294 clearCurrentParams ();
3295 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3296 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3301 { setCurrentParams (yyvsp[-1].entrylist); ;
3304 { clearCurrentParams (); ;
3307 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3310 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3313 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3316 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3319 { exprChecks_checkEmptyMacroBody (); ;
3322 { clabstract_declareFunction (yyvsp[0].ntyp); ;
3325 { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3328 { cscanner_expectingMetaStateName (); ;
3331 { cscanner_clearExpectingMetaStateName ();
3332 yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo); ;
3335 { cscanner_expectingMetaStateName (); ;
3338 { cscanner_clearExpectingMetaStateName ();
3339 yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo); ;
3342 { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
3345 { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3348 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3351 { yyval.conL = constraintList_single (yyvsp[0].con); ;
3355 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3356 DPRINTF(("Done BufConstraint1\n")); ;
3359 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3363 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3364 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3367 { yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
3370 { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
3373 { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
3376 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3379 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3385 t = cstring_toCharsSafe (exprNode_unparse($3));
3388 yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3392 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3395 { yyval.sr = yyvsp[-1].sr; ;
3398 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3401 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3404 { yyval.funcclauselist = functionClauseList_new (); ;
3407 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3410 { yyval.funcclauselist = functionClauseList_new (); ;
3413 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3416 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3419 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3422 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3425 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3428 { yyval.funcclause = yyvsp[0].funcclause; ;
3431 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3434 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3437 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3440 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3443 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3446 { yyval.funcclause = yyvsp[0].funcclause; ;
3449 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3452 { yyval.globsclause = yyvsp[-1].globsclause; ;
3455 { setProcessingGlobalsList (); ;
3459 unsetProcessingGlobals ();
3460 yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
3464 { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
3467 { yyval.modsclause = yyvsp[-1].modsclause; ;
3471 context_setProtectVars (); enterParamsTemp ();
3472 sRef_setGlobalScopeSafe ();
3478 sRef_clearGlobalScopeSafe ();
3479 context_releaseVars ();
3480 yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3484 { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
3487 { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
3490 { yyval.warnclause = warnClause_undefined; ;
3493 { yyval.warnclause = yyvsp[-1].warnclause; ;
3497 llassert (exprNode_knownStringValue (yyvsp[0].expr));
3498 yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
3499 exprNode_free (yyvsp[0].expr);
3503 { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
3506 { yyval.globset = globSet_single (yyvsp[0].sr); ;
3509 { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3512 { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3515 { yyval.tquallist = qualList_undefined; ;
3518 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3521 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3524 { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3527 { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3530 { yyval.typequal = qual_createUndef (); ;
3533 { yyval.typequal = qual_createKilled (); ;
3536 { yyval.typequal = qual_createOut (); ;
3539 { yyval.typequal = qual_createIn (); ;
3542 { yyval.typequal = qual_createPartial (); ;
3546 qtype qint = qtype_create (ctype_int);
3547 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3552 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3555 { checkDoneParams (); context_enterInnerContext (); ;
3559 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3560 context_exitInner (yyvsp[0].expr);
3564 { context_enterOldStyleScope (); ;
3567 { oldStyleDoneParams (); context_enterInnerContext (); ;
3571 exprNode_checkFunctionBody (yyvsp[0].expr);
3572 yyval.expr = yyvsp[0].expr; /* oldstyle */
3573 context_exitInner (yyvsp[0].expr);
3578 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3579 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3582 context_exitFunction ();
3586 { yyval.srset = yyvsp[-1].srset; ;
3589 { yyval.srset = sRefSet_new (); ;
3592 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3595 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3598 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3601 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3604 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3607 { yyval.sr = yyvsp[-1].sr; ;
3610 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3613 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3616 { yyval.sr = yyvsp[0].sr; ;
3619 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3622 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3625 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3628 { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
3631 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3634 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3637 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3640 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3643 { yyval.sr = yyvsp[-1].sr; ;
3646 { cstring_markOwned (yyvsp[0].cname);
3647 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3650 { cstring_markOwned (yyvsp[0].cname);
3651 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3654 { yyval.srset = sRefSet_undefined ;
3657 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3658 else { yyval.srset = sRefSet_undefined; }
3662 { if (sRef_isValid (yyvsp[0].sr))
3664 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3668 yyval.srset = yyvsp[-2].srset;
3673 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3676 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3679 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3682 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3685 { yyval.expr = exprNode_makeError (); ;
3688 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3691 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3694 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
3697 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3700 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3703 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3706 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3709 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3712 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3715 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
3718 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3721 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3724 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3727 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3730 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3733 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3736 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3739 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3742 { yyval.expr = yyvsp[0].expr; ;
3745 { yyval.expr = yyvsp[0].expr; ;
3748 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3751 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3754 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3757 { context_setProtectVars (); ;
3760 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3763 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3766 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3769 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3772 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3775 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3778 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3781 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3784 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3787 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3790 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3793 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3796 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3799 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3802 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3805 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3808 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3811 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3814 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3817 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3820 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3823 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3826 { exprNode_produceGuards (yyvsp[-1].expr);
3827 context_enterAndClause (yyvsp[-1].expr);
3832 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3833 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3838 exprNode_produceGuards (yyvsp[-1].expr);
3839 context_enterOrClause (yyvsp[-1].expr);
3844 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3845 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3849 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3852 { context_enterFalseClause (yyvsp[-4].expr); ;
3855 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3858 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3861 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3864 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3867 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3870 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3873 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3876 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3879 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3882 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3885 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3888 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3891 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
3894 { yyval.expr = exprNode_undefined; ;
3897 { yyval.expr = yyvsp[0].expr; ;
3900 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
3903 { yyval.expr = exprNode_makeError (); ;
3906 { yyval.expr = exprNode_makeError (); ;
3910 setProcessingVars (yyvsp[-3].qtyp);
3911 processNamedDecl (yyvsp[-1].ntyp);
3916 unsetProcessingVars ();
3917 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
3918 DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
3922 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
3925 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
3926 unsetProcessingVars ();
3931 processNamedDecl (yyvsp[-1].ntyp);
3932 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
3936 { processNamedDecl (yyvsp[-2].ntyp); ;
3939 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
3942 { setProcessingTypedef (yyvsp[0].qtyp); ;
3945 { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
3948 { /* in the ANSI grammar, semantics unclear */ ;
3951 { /* in the ANSI grammar, semantics unclear */ ;
3954 { g_expectingTypeName = TRUE; ;
3957 { g_expectingTypeName = TRUE; context_pushLoc (); ;
3960 { yyval.exprlist = yyvsp[-1].exprlist; ;
3963 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3966 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
3969 { yyval.expr = exprNode_makeError (); ;
3972 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
3975 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); ;
3978 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); ;
3981 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3984 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
3987 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
3990 { yyval.typequal = qual_createInline (); ;
3993 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
3996 { yyval.typequal = qual_createAuto (); ;
3999 { yyval.typequal = qual_createRegister (); ;
4002 { yyval.stateclause = yyvsp[-1].stateclause; ;
4006 context_setProtectVars ();
4008 sRef_setGlobalScopeSafe ();
4014 sRef_clearGlobalScopeSafe ();
4015 context_releaseVars ();
4016 yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4020 { yyval.funcclause = yyvsp[-1].funcclause; ;
4023 { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
4027 context_exitFunctionHeader ();
4028 context_setProtectVars ();
4030 sRef_setGlobalScopeSafe ();
4036 sRef_clearGlobalScopeSafe ();
4037 context_releaseVars ();
4038 yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4043 context_setProtectVars ();
4045 sRef_setGlobalScopeSafe ();
4050 context_exitFunctionHeader ();
4052 sRef_clearGlobalScopeSafe ();
4053 context_releaseVars ();
4054 DPRINTF (("done optGlobBufConstraintsAux\n"));
4056 if (lltok_isEnsures (yyvsp[-4].tok))
4058 yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4060 else if (lltok_isRequires (yyvsp[-4].tok))
4062 yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4069 DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4073 { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
4076 { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
4079 { yyval.typequal = qual_createExits (); ;
4082 { yyval.typequal = qual_createMayExit (); ;
4085 { yyval.typequal = qual_createTrueExit (); ;
4088 { yyval.typequal = qual_createFalseExit (); ;
4091 { yyval.typequal = qual_createNeverExit (); ;
4094 { yyval.typequal = qual_createChecked (); ;
4097 { yyval.typequal = qual_createCheckMod (); ;
4100 { yyval.typequal = qual_createUnchecked (); ;
4103 { yyval.typequal = qual_createCheckedStrict (); ;
4106 { yyval.typequal = qual_createOwned (); ;
4109 { yyval.typequal = qual_createDependent (); ;
4112 { yyval.typequal = qual_createYield (); ;
4115 { yyval.typequal = qual_createTemp (); ;
4118 { yyval.typequal = qual_createOnly (); ;
4121 { yyval.typequal = qual_createKeep (); ;
4124 { yyval.typequal = qual_createKept (); ;
4127 { yyval.typequal = qual_createShared (); ;
4130 { yyval.typequal = qual_createUnique (); ;
4133 { yyval.typequal = qual_createNull (); ;
4136 { yyval.typequal = qual_createIsNull (); ;
4139 { yyval.typequal = qual_createRelNull (); ;
4142 { yyval.typequal = qual_createNotNull (); ;
4145 { yyval.typequal = qual_createExposed (); ;
4148 { yyval.typequal = qual_createObserver (); ;
4151 { yyval.typequal = qual_createNullTerminated (); ;
4154 { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
4157 { yyval.typequal = qual_createReturned (); ;
4160 { yyval.typequal = qual_createSef (); ;
4163 { yyval.typequal = qual_createUnused (); ;
4166 { yyval.typequal = qual_createExternal (); ;
4169 { yyval.typequal = qual_createTrueNull (); ;
4172 { yyval.typequal = qual_createFalseNull (); ;
4175 { yyval.typequal = qual_createAbstract (); ;
4178 { yyval.typequal = qual_createConcrete (); ;
4181 { yyval.typequal = qual_createMutable (); ;
4184 { yyval.typequal = qual_createImmutable (); ;
4187 { yyval.typequal = qual_createRefCounted (); ;
4190 { yyval.typequal = qual_createRefs (); ;
4193 { yyval.typequal = qual_createKillRef (); ;
4196 { yyval.typequal = qual_createRelDef (); ;
4199 { yyval.typequal = qual_createNewRef (); ;
4202 { yyval.typequal = qual_createTempRef (); ;
4205 { yyval.typequal = qual_createShort (); ;
4208 { yyval.typequal = qual_createLong (); ;
4211 { yyval.typequal = qual_createSigned (); ;
4214 { yyval.typequal = qual_createUnsigned (); ;
4217 { yyval.typequal = qual_createOut (); ;
4220 { yyval.typequal = qual_createIn (); ;
4223 { yyval.typequal = qual_createPartial (); ;
4226 { yyval.typequal = qual_createSpecial (); ;
4229 { yyval.typequal = qual_createConst (); ;
4232 { yyval.typequal = qual_createVolatile (); ;
4235 { yyval.typequal = yyvsp[-1].typequal; ;
4238 { yyval.typequal = yyvsp[-1].typequal; ;
4241 { yyval.typequal = yyvsp[-1].typequal; ;
4244 { yyval.typequal = yyvsp[-1].typequal; ;
4247 { yyval.typequal = yyvsp[-1].typequal; ;
4250 { yyval.typequal = yyvsp[-1].typequal; ;
4253 { yyval.typequal = yyvsp[-1].typequal; ;
4256 { yyval.typequal = yyvsp[-1].typequal; ;
4259 { yyval.typequal = yyvsp[-1].typequal; ;
4262 { yyval.ctyp = ctype_unknown; ;
4265 { yyval.ctyp = ctype_anyintegral; ;
4268 { yyval.ctyp = ctype_unsignedintegral; ;
4271 { yyval.ctyp = ctype_signedintegral; ;
4274 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4277 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4280 { yyval.qtyp = yyvsp[0].qtyp; ;
4283 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4286 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4289 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4292 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4295 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4298 { yyval.qtyp = qtype_unknown (); ;
4301 { yyval.qtyp = yyvsp[0].qtyp; ;
4304 { yyval.conL = constraintList_undefined; ;
4307 { sRef_setGlobalScopeSafe (); ;
4310 { sRef_clearGlobalScopeSafe (); ;
4313 { {ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); /* setGlobalStructInfo(ct, $12);*/ yyval.ctyp = ct;} ;
4316 { sRef_setGlobalScopeSafe (); ;
4319 { sRef_clearGlobalScopeSafe (); ;
4322 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4325 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4328 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4331 { sRef_setGlobalScopeSafe (); ;
4334 { sRef_clearGlobalScopeSafe (); ;
4337 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4340 { sRef_setGlobalScopeSafe (); ;
4343 { sRef_clearGlobalScopeSafe (); ;
4346 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4349 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4352 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4355 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4358 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4361 { g_expectingTypeName = FALSE; ;
4364 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4367 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4370 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4373 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4376 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4379 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4382 { yyval.ntyp = yyvsp[0].ntyp; ;
4385 { yyval.ntyp = idDecl_undefined; ;
4388 { yyval.ntyp = yyvsp[-3].ntyp; ;
4391 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4394 { context_pushLoc (); ;
4397 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4400 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4403 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4406 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4409 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4410 usymtab_supGlobalEntry (ue);
4411 yyval.cname = yyvsp[0].cname;
4415 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4416 usymtab_supGlobalEntry (ue);
4417 yyval.cname = yyvsp[-3].cname;
4421 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4425 qtype qt = qtype_unknown ();
4427 qtype_adjustPointers (yyvsp[-1].count, qt);
4428 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4432 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4435 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4438 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4441 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4444 { /* ignored for now */; ;
4456 { yyval.count = 1; ;
4459 { yyval.count = 1; ;
4462 { yyval.count = 1 + yyvsp[0].count; ;
4465 { yyval.count = 1 + yyvsp[0].count; ;
4468 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4471 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4474 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4477 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4480 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4486 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4492 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4496 if (isFlipOldStyle ())
4498 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4504 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4509 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4513 llparseerror (message ("Inconsistent function parameter syntax: %q",
4514 idDecl_unparse (tparam)));
4518 yyval.oentry = makeCurrentParam (tparam);
4519 idDecl_free (tparam);
4523 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4526 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4529 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4532 { yyval.ctyp = ctype_unknown; ;
4535 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4538 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4541 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4544 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4547 { yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4550 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4553 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4556 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4559 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4562 { yyval.expr = yyvsp[0].expr; ;
4565 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4568 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4571 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4574 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4577 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4580 { context_setProtectVars (); ;
4583 { context_sizeofReleaseVars (); ;
4586 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4587 context_enterForClause (yyvsp[-5].expr); ;
4590 { setProcessingIterVars (yyvsp[-2].entry); ;
4593 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
4596 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4599 { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
4602 { yyval.expr = yyvsp[-1].expr; ;
4605 { yyval.expr = exprNode_makeError (); ;
4608 { exprNode_checkIfPred (yyvsp[0].expr); ;
4611 { /* don't: context_exitTrueClause ($1, $2); */
4612 yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr);
4616 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4619 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4622 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4625 { yyval.expr = exprNode_makeError (); ;
4628 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4631 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4640 { context_enterCaseClause (yyvsp[0].expr); ;
4643 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4646 { context_enterCaseClause (yyvsp[0].expr); ;
4649 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4652 { context_enterCaseClause (exprNode_undefined); ;
4655 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4658 { context_enterCaseClause (exprNode_undefined); ;
4661 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4664 { yyval.expr = yyvsp[-1].expr; ;
4667 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4670 { yyval.expr = yyvsp[-1].expr; ;
4673 { context_enterInnerContext (); ;
4676 { context_exitInnerPlain (); ;
4679 { context_enterStructInnerContext (); ;
4682 { context_exitStructInnerContext (); ;
4685 { context_exitInnerSafe (); ;
4688 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4691 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4694 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4697 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4700 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4703 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4706 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4709 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4710 lltok_getLoc (yyvsp[-1].tok)));
4714 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4717 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4720 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4723 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4726 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4729 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4732 { yyval.expr = yyvsp[0].expr; ;
4735 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4738 { yyval.expr = yyvsp[0].expr; ;
4741 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4744 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4747 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4750 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4753 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4756 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
4760 exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr);
4761 exprNode_checkIfPred (yyvsp[-1].expr);
4762 yyval.expr = yyvsp[-1].expr;
4767 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4768 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4772 { context_enterFalseClause (yyvsp[-2].expr); ;
4776 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4777 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4781 { context_enterSwitch (yyvsp[0].expr); ;
4784 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4787 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4790 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4793 { context_enterIterClause (); ;
4796 { setProcessingIterVars (yyvsp[-3].entry); ;
4800 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
4805 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4808 { nextIterParam (); ;
4811 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4814 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4817 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4820 { uentry ue = coerceIterId (yyvsp[0].cname);
4822 if (uentry_isValid (ue))
4824 yyval.expr = exprNode_iterId (ue);
4828 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
4833 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
4836 { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
4839 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4842 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4845 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4848 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
4851 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4854 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4857 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4860 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4863 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4866 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4869 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4872 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4875 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4878 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4881 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4884 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4887 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4890 { yyval.expr = yyvsp[0].expr; ;
4893 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
4896 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4899 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4902 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4905 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4908 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4911 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4914 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4917 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4920 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4923 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4926 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4929 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4932 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4935 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4938 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4941 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4944 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4947 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4950 { context_enterTrueClause (yyvsp[-1].expr); ;
4953 { context_enterFalseClause (yyvsp[-4].expr); ;
4956 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4959 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4962 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4965 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4968 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4971 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4974 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4977 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4980 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4983 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4986 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4989 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4992 { yyval.entry = yyvsp[0].entry; ;
4995 { yyval.entry = uentry_undefined; ;
4998 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5001 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5004 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5007 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5010 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5013 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5016 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5019 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5022 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5025 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5028 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5031 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5034 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5037 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5040 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5043 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5046 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5049 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5055 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5058 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5061 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5064 { yyval.cname = yyvsp[0].cname; ;
5067 { yyval.ctyp = ctype_unknown; ;
5070 /* the action file gets copied in in place of this dollarsign */
5082 short *ssp1 = yyss - 1;
5083 fprintf (stderr, "state stack now");
5084 while (ssp1 != yyssp)
5085 fprintf (stderr, " %d", *++ssp1);
5086 fprintf (stderr, "\n");
5096 yylsp->first_line = yylloc.first_line;
5097 yylsp->first_column = yylloc.first_column;
5098 yylsp->last_line = (yylsp-1)->last_line;
5099 yylsp->last_column = (yylsp-1)->last_column;
5104 yylsp->last_line = (yylsp+yylen-1)->last_line;
5105 yylsp->last_column = (yylsp+yylen-1)->last_column;
5109 /* Now "shift" the result of the reduction.
5110 Determine what state that goes to,
5111 based on the state we popped back to
5112 and the rule number reduced by. */
5116 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5117 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5118 yystate = yytable[yystate];
5120 yystate = yydefgoto[yyn - YYNTBASE];
5124 yyerrlab: /* here on detecting error */
5127 /* If not already recovering from an error, report this error. */
5131 #ifdef YYERROR_VERBOSE
5132 yyn = yypact[yystate];
5134 if (yyn > YYFLAG && yyn < YYLAST)
5141 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5142 for (x = (yyn < 0 ? -yyn : 0);
5143 x < (sizeof(yytname) / sizeof(char *)); x++)
5144 if (yycheck[x + yyn] == x)
5145 size += strlen(yytname[x]) + 15, count++;
5146 msg = (char *) malloc(size + 15);
5149 strcpy(msg, "parse error");
5154 for (x = (yyn < 0 ? -yyn : 0);
5155 x < (sizeof(yytname) / sizeof(char *)); x++)
5156 if (yycheck[x + yyn] == x)
5158 strcat(msg, count == 0 ? ", expecting `" : " or `");
5159 strcat(msg, yytname[x]);
5168 yyerror ("parse error; also virtual memory exceeded");
5171 #endif /* YYERROR_VERBOSE */
5172 yyerror("parse error");
5176 yyerrlab1: /* here on error raised explicitly by an action */
5178 if (yyerrstatus == 3)
5180 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5182 /* return failure if at end of input */
5183 if (yychar == YYEOF)
5188 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5194 /* Else will try to reuse lookahead token
5195 after shifting the error token. */
5197 yyerrstatus = 3; /* Each real token shifted decrements this */
5201 yyerrdefault: /* current state does not do anything special for the error token. */
5204 /* This is wrong; only states that explicitly want error tokens
5205 should shift them. */
5206 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5207 if (yyn) goto yydefault;
5210 yyerrpop: /* pop the current state because it cannot handle the error token */
5212 if (yyssp == yyss) YYABORT;
5222 short *ssp1 = yyss - 1;
5223 fprintf (stderr, "Error: state stack now");
5224 while (ssp1 != yyssp)
5225 fprintf (stderr, " %d", *++ssp1);
5226 fprintf (stderr, "\n");
5232 yyn = yypact[yystate];
5237 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5256 fprintf(stderr, "Shifting error token, ");
5268 /* YYACCEPT comes here. */
5280 /* YYABORT comes here. */
5293 /*@-redecl@*/ /*@-namechecks@*/
5294 extern char *yytext;
5295 /*@=redecl@*/ /*@=namechecks@*/
5297 # include "bison.reset"
5299 void yyerror (/*@unused@*/ char *s)
5301 static bool givehint = FALSE;
5303 if (context_inIterDef ())
5305 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5306 context_inFunctionName ()));
5308 else if (context_inIterEnd ())
5310 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5311 context_inFunctionName ()));
5313 else if (context_inMacro ())
5315 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5316 context_inFunctionName ()));
5318 if (context_inUnknownMacro ())
5322 llhint (cstring_makeLiteral
5323 ("Precede macro definition with /*@notfunction@*/ "
5324 "to suppress checking and force expansion"));
5330 context_exitAllClausesQuiet ();
5334 llparseerror (cstring_undefined);
5350 ** Resets all flags in bison.head
5372 /*@=evalorderuncon@*/
5381 /*@=elseifcomplete@*/
5385 /*@=readonlytrans@*/
5388 /*@=systemunrecog@*/
5389 /*@=dependenttrans@*/
5390 /*@=unqualifiedtrans@*/
5394 /*drl added 11/27/2001*/