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] : 454)
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, 25, 34, 46, 47, 53, 55, 59, 61,
427 64, 66, 73, 77, 84, 85, 92, 93, 101, 103,
428 110, 114, 121, 122, 129, 130, 138, 139, 140, 151,
429 155, 159, 163, 166, 168, 172, 173, 178, 179, 184,
430 186, 190, 192, 194, 196, 200, 202, 206, 208, 210,
431 212, 214, 216, 218, 223, 229, 231, 233, 235, 237,
432 241, 246, 249, 253, 257, 261, 263, 265, 267, 268,
433 271, 272, 275, 277, 279, 281, 283, 285, 287, 289,
434 291, 293, 295, 297, 299, 302, 303, 308, 310, 313,
435 314, 318, 320, 324, 326, 328, 329, 332, 336, 339,
436 341, 345, 348, 349, 352, 354, 356, 358, 360, 362,
437 364, 366, 368, 370, 372, 374, 376, 378, 380, 382,
438 384, 388, 389, 393, 394, 395, 400, 403, 406, 408,
439 410, 412, 416, 421, 424, 428, 432, 436, 438, 440,
440 442, 446, 448, 450, 454, 459, 462, 466, 470, 474,
441 475, 477, 479, 483, 485, 487, 489, 493, 495, 497,
442 499, 504, 508, 513, 520, 526, 532, 535, 538, 540,
443 544, 546, 549, 552, 555, 558, 561, 564, 567, 570,
444 572, 574, 578, 580, 590, 591, 595, 600, 603, 608,
445 611, 613, 618, 620, 624, 628, 632, 634, 638, 642,
446 644, 648, 652, 654, 658, 662, 666, 670, 672, 676,
447 680, 682, 686, 688, 692, 694, 698, 700, 701, 706,
448 708, 709, 714, 716, 717, 718, 726, 728, 732, 736,
449 740, 744, 748, 752, 756, 760, 764, 768, 772, 774,
450 778, 779, 781, 783, 785, 787, 789, 793, 794, 804,
451 805, 817, 820, 821, 828, 829, 838, 843, 848, 849,
452 850, 853, 855, 860, 861, 866, 868, 872, 877, 880,
453 883, 886, 888, 891, 895, 898, 900, 904, 906, 908,
454 910, 912, 914, 917, 918, 925, 928, 931, 932, 939,
455 940, 946, 948, 950, 952, 954, 956, 958, 960, 962,
456 964, 966, 968, 970, 972, 974, 976, 978, 980, 982,
457 984, 986, 988, 990, 992, 994, 996, 998, 1000, 1002,
458 1004, 1006, 1008, 1010, 1012, 1014, 1016, 1018, 1020, 1022,
459 1024, 1026, 1028, 1030, 1032, 1034, 1036, 1038, 1040, 1042,
460 1044, 1046, 1048, 1050, 1053, 1056, 1059, 1062, 1065, 1068,
461 1071, 1074, 1077, 1080, 1083, 1086, 1089, 1092, 1095, 1098,
462 1101, 1104, 1107, 1110, 1113, 1116, 1119, 1122, 1125, 1129,
463 1131, 1136, 1138, 1142, 1145, 1148, 1151, 1152, 1154, 1155,
464 1156, 1157, 1170, 1171, 1172, 1184, 1191, 1198, 1199, 1200,
465 1211, 1212, 1213, 1224, 1230, 1236, 1241, 1246, 1247, 1249,
466 1251, 1254, 1260, 1264, 1267, 1272, 1274, 1278, 1283, 1290,
467 1291, 1300, 1305, 1307, 1311, 1314, 1316, 1321, 1323, 1325,
468 1328, 1331, 1333, 1336, 1338, 1341, 1343, 1345, 1347, 1350,
469 1352, 1355, 1358, 1362, 1364, 1368, 1370, 1374, 1376, 1378,
470 1382, 1383, 1386, 1387, 1392, 1397, 1399, 1401, 1404, 1406,
471 1408, 1411, 1412, 1414, 1420, 1423, 1427, 1431, 1436, 1440,
472 1445, 1450, 1456, 1458, 1460, 1462, 1464, 1466, 1468, 1470,
473 1472, 1474, 1476, 1478, 1480, 1483, 1486, 1494, 1501, 1504,
474 1505, 1506, 1517, 1518, 1525, 1527, 1529, 1531, 1533, 1536,
475 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1554, 1556, 1557,
476 1561, 1564, 1567, 1569, 1571, 1573, 1575, 1577, 1579, 1581,
477 1583, 1585, 1587, 1591, 1593, 1595, 1598, 1601, 1602, 1605,
478 1606, 1611, 1612, 1619, 1620, 1624, 1625, 1631, 1635, 1638,
479 1642, 1643, 1644, 1645, 1646, 1647, 1649, 1652, 1655, 1659,
480 1662, 1666, 1670, 1675, 1678, 1681, 1685, 1689, 1694, 1696,
481 1699, 1701, 1704, 1706, 1709, 1711, 1714, 1716, 1719, 1721,
482 1726, 1729, 1730, 1736, 1737, 1744, 1749, 1754, 1755, 1756,
483 1767, 1769, 1770, 1775, 1777, 1779, 1781, 1783, 1785, 1788,
484 1790, 1794, 1796, 1801, 1805, 1810, 1817, 1823, 1829, 1832,
485 1835, 1837, 1840, 1843, 1846, 1849, 1852, 1855, 1858, 1861,
486 1863, 1865, 1870, 1872, 1876, 1880, 1884, 1886, 1890, 1894,
487 1896, 1900, 1904, 1906, 1910, 1914, 1918, 1922, 1924, 1928,
488 1932, 1934, 1938, 1940, 1944, 1946, 1950, 1952, 1956, 1958,
489 1962, 1964, 1965, 1966, 1974, 1976, 1980, 1984, 1988, 1992,
490 1996, 2000, 2004, 2008, 2012, 2016, 2020, 2022, 2023, 2025,
491 2028, 2036, 2039, 2042, 2050, 2057, 2060, 2064, 2067, 2071,
492 2074, 2078, 2082, 2086, 2090, 2093, 2097, 2098, 2100, 2102,
493 2104, 2106, 2108, 2110, 2112, 2114
496 static const short yyrhs[] = { -1,
497 194, 0, 195, 0, 194, 195, 0, 256, 450, 0,
498 196, 0, 197, 0, 207, 0, 210, 0, 293, 0,
499 18, 0, 1, 0, 76, 334, 348, 358, 348, 450,
500 301, 90, 0, 76, 334, 348, 358, 348, 23, 301,
501 306, 305, 450, 90, 0, 0, 77, 198, 199, 450,
502 90, 0, 200, 0, 334, 348, 200, 0, 204, 0,
503 362, 204, 0, 452, 0, 301, 24, 348, 358, 301,
504 25, 0, 201, 26, 27, 0, 201, 26, 301, 292,
505 27, 348, 0, 0, 201, 302, 24, 25, 202, 228,
506 0, 0, 201, 302, 24, 359, 25, 203, 228, 0,
507 452, 0, 301, 24, 348, 200, 301, 25, 0, 204,
508 26, 27, 0, 204, 26, 301, 292, 27, 348, 0,
509 0, 204, 302, 24, 25, 205, 229, 0, 0, 204,
510 302, 24, 359, 25, 206, 229, 0, 0, 0, 78,
511 452, 24, 359, 25, 208, 229, 209, 450, 90, 0,
512 91, 389, 94, 0, 92, 375, 94, 0, 93, 376,
513 94, 0, 91, 94, 0, 251, 0, 213, 23, 216,
514 0, 0, 225, 214, 22, 217, 0, 0, 5, 215,
515 22, 217, 0, 213, 0, 213, 40, 216, 0, 192,
516 0, 183, 0, 55, 0, 220, 218, 219, 0, 220,
517 0, 223, 222, 223, 0, 180, 0, 181, 0, 52,
518 0, 51, 0, 53, 0, 224, 0, 226, 24, 223,
519 25, 0, 24, 223, 227, 223, 25, 0, 225, 0,
520 188, 0, 451, 0, 185, 0, 225, 26, 27, 0,
521 225, 26, 188, 27, 0, 34, 225, 0, 24, 225,
522 25, 0, 225, 28, 452, 0, 225, 44, 452, 0,
523 221, 0, 33, 0, 32, 0, 0, 230, 228, 0,
524 0, 231, 229, 0, 232, 0, 236, 0, 235, 0,
525 312, 0, 315, 0, 242, 0, 233, 0, 237, 0,
526 235, 0, 313, 0, 317, 0, 243, 0, 233, 90,
527 0, 0, 73, 234, 244, 450, 0, 75, 0, 237,
528 90, 0, 0, 74, 238, 257, 0, 240, 0, 240,
529 40, 239, 0, 185, 0, 242, 0, 0, 243, 90,
530 0, 72, 239, 426, 0, 72, 239, 0, 245, 0,
531 244, 21, 245, 0, 246, 247, 0, 0, 248, 246,
532 0, 451, 0, 185, 0, 293, 0, 88, 0, 89,
533 0, 118, 0, 119, 0, 132, 0, 79, 0, 80,
534 0, 81, 0, 82, 0, 83, 0, 84, 0, 85,
535 0, 358, 0, 334, 348, 358, 0, 0, 19, 253,
536 406, 0, 0, 0, 254, 410, 255, 399, 0, 211,
537 252, 0, 260, 450, 0, 450, 0, 451, 0, 185,
538 0, 258, 26, 27, 0, 258, 26, 259, 27, 0,
539 34, 258, 0, 24, 258, 25, 0, 258, 28, 452,
540 0, 258, 44, 452, 0, 258, 0, 426, 0, 258,
541 0, 260, 21, 258, 0, 451, 0, 185, 0, 261,
542 26, 27, 0, 261, 26, 259, 27, 0, 34, 261,
543 0, 24, 261, 25, 0, 261, 28, 452, 0, 261,
544 44, 452, 0, 0, 263, 0, 261, 0, 263, 21,
545 261, 0, 451, 0, 185, 0, 426, 0, 24, 290,
546 25, 0, 186, 0, 113, 0, 264, 0, 265, 26,
547 290, 27, 0, 265, 24, 25, 0, 265, 24, 266,
548 25, 0, 70, 24, 289, 21, 370, 25, 0, 265,
549 348, 28, 452, 301, 0, 265, 348, 44, 452, 301,
550 0, 265, 47, 0, 265, 48, 0, 289, 0, 266,
551 21, 289, 0, 265, 0, 47, 267, 0, 48, 267,
552 0, 29, 273, 0, 34, 273, 0, 33, 273, 0,
553 32, 273, 0, 31, 273, 0, 30, 273, 0, 270,
554 0, 269, 0, 268, 28, 452, 0, 452, 0, 46,
555 301, 24, 370, 348, 21, 268, 25, 301, 0, 0,
556 301, 271, 272, 0, 42, 24, 370, 25, 0, 42,
557 267, 0, 43, 24, 370, 25, 0, 43, 267, 0,
558 267, 0, 24, 370, 25, 273, 0, 273, 0, 274,
559 34, 273, 0, 274, 35, 273, 0, 274, 36, 273,
560 0, 274, 0, 275, 33, 274, 0, 275, 32, 274,
561 0, 275, 0, 276, 49, 275, 0, 276, 50, 275,
562 0, 276, 0, 277, 37, 276, 0, 277, 38, 276,
563 0, 277, 51, 276, 0, 277, 52, 276, 0, 277,
564 0, 278, 53, 277, 0, 278, 54, 277, 0, 278,
565 0, 279, 29, 278, 0, 279, 0, 280, 39, 279,
566 0, 280, 0, 281, 40, 280, 0, 281, 0, 0,
567 282, 55, 283, 281, 0, 282, 0, 0, 284, 56,
568 285, 282, 0, 284, 0, 0, 0, 284, 41, 287,
569 290, 22, 288, 286, 0, 286, 0, 267, 23, 289,
570 0, 267, 57, 289, 0, 267, 58, 289, 0, 267,
571 59, 289, 0, 267, 60, 289, 0, 267, 61, 289,
572 0, 267, 62, 289, 0, 267, 63, 289, 0, 267,
573 64, 289, 0, 267, 65, 289, 0, 267, 66, 289,
574 0, 289, 0, 290, 21, 289, 0, 0, 290, 0,
575 286, 0, 294, 0, 71, 0, 299, 0, 334, 301,
576 18, 0, 0, 334, 348, 358, 348, 295, 301, 305,
577 18, 301, 0, 0, 334, 348, 358, 348, 23, 296,
578 301, 306, 305, 18, 301, 0, 358, 348, 0, 0,
579 358, 348, 23, 298, 301, 306, 0, 0, 45, 334,
580 300, 348, 303, 301, 241, 18, 0, 45, 334, 301,
581 18, 0, 45, 303, 301, 18, 0, 0, 0, 304,
582 301, 0, 297, 0, 303, 21, 348, 297, 0, 0,
583 305, 21, 348, 297, 0, 289, 0, 19, 310, 20,
584 0, 19, 310, 21, 20, 0, 307, 306, 0, 308,
585 23, 0, 452, 22, 0, 309, 0, 308, 309, 0,
586 26, 292, 27, 0, 28, 452, 0, 306, 0, 310,
587 21, 306, 0, 114, 0, 112, 0, 115, 0, 116,
588 0, 117, 0, 313, 90, 0, 0, 249, 348, 314,
589 263, 450, 301, 0, 317, 90, 0, 250, 348, 0,
590 0, 316, 323, 318, 262, 450, 301, 0, 0, 316,
591 319, 320, 450, 301, 0, 219, 0, 212, 0, 141,
592 0, 142, 0, 144, 0, 145, 0, 143, 0, 126,
593 0, 129, 0, 127, 0, 128, 0, 134, 0, 135,
594 0, 120, 0, 122, 0, 121, 0, 130, 0, 131,
595 0, 123, 0, 125, 0, 138, 0, 140, 0, 153,
596 0, 152, 0, 137, 0, 139, 0, 177, 0, 187,
597 0, 136, 0, 151, 0, 150, 0, 160, 0, 158,
598 0, 159, 0, 154, 0, 155, 0, 156, 0, 157,
599 0, 161, 0, 162, 0, 165, 0, 166, 0, 163,
600 0, 164, 0, 149, 0, 146, 0, 147, 0, 148,
601 0, 118, 0, 119, 0, 132, 0, 133, 0, 110,
602 301, 0, 111, 301, 0, 330, 301, 0, 323, 301,
603 0, 321, 301, 0, 324, 301, 0, 322, 301, 0,
604 326, 301, 0, 325, 301, 0, 327, 301, 0, 328,
605 301, 0, 167, 348, 0, 169, 348, 0, 168, 348,
606 0, 170, 348, 0, 171, 348, 0, 172, 348, 0,
607 173, 348, 0, 174, 348, 0, 175, 348, 0, 176,
608 348, 0, 453, 348, 0, 339, 348, 0, 353, 348,
609 0, 329, 348, 0, 301, 334, 301, 0, 336, 0,
610 336, 87, 335, 90, 0, 370, 0, 370, 21, 335,
611 0, 311, 337, 0, 331, 337, 0, 332, 337, 0,
612 0, 334, 0, 0, 0, 0, 348, 67, 452, 301,
613 19, 340, 403, 349, 404, 341, 20, 338, 0, 0,
614 0, 348, 68, 452, 301, 19, 342, 403, 349, 404,
615 343, 20, 0, 348, 67, 452, 301, 19, 20, 0,
616 348, 68, 452, 301, 19, 20, 0, 0, 0, 348,
617 67, 301, 19, 344, 403, 349, 404, 345, 20, 0,
618 0, 0, 348, 68, 301, 19, 346, 403, 349, 404,
619 347, 20, 0, 348, 67, 301, 19, 20, 0, 348,
620 68, 301, 19, 20, 0, 348, 67, 452, 348, 0,
621 348, 68, 452, 348, 0, 0, 350, 0, 210, 0,
622 349, 350, 0, 334, 348, 351, 301, 18, 0, 334,
623 301, 18, 0, 352, 348, 0, 351, 21, 352, 348,
624 0, 358, 0, 22, 301, 292, 0, 358, 22, 301,
625 292, 0, 348, 69, 19, 355, 20, 301, 0, 0,
626 348, 69, 452, 19, 354, 355, 20, 301, 0, 348,
627 69, 452, 301, 0, 356, 0, 355, 21, 356, 0,
628 355, 21, 0, 452, 0, 452, 23, 301, 292, 0,
629 201, 0, 372, 0, 362, 191, 0, 362, 357, 0,
630 201, 0, 362, 201, 0, 365, 0, 348, 363, 0,
631 110, 0, 111, 0, 360, 0, 361, 360, 0, 34,
632 0, 34, 361, 0, 34, 362, 0, 34, 361, 362,
633 0, 364, 0, 364, 21, 5, 0, 452, 0, 364,
634 21, 452, 0, 5, 0, 366, 0, 366, 21, 5,
635 0, 0, 367, 369, 0, 0, 366, 21, 368, 369,
636 0, 301, 334, 357, 301, 0, 452, 0, 333, 0,
637 333, 371, 0, 362, 0, 373, 0, 362, 373, 0,
638 0, 373, 0, 301, 24, 348, 371, 25, 0, 26,
639 27, 0, 26, 292, 27, 0, 373, 26, 27, 0,
640 373, 26, 292, 27, 0, 301, 24, 25, 0, 301,
641 24, 365, 25, 0, 373, 301, 24, 25, 0, 373,
642 301, 24, 365, 25, 0, 391, 0, 393, 0, 396,
643 0, 399, 0, 412, 0, 415, 0, 447, 0, 420,
644 0, 449, 0, 377, 0, 375, 0, 384, 0, 377,
645 384, 0, 419, 377, 0, 446, 390, 11, 24, 290,
646 25, 18, 0, 446, 390, 11, 24, 290, 25, 0,
647 379, 384, 0, 0, 0, 13, 24, 291, 18, 291,
648 18, 380, 291, 381, 25, 0, 0, 189, 401, 24,
649 383, 423, 25, 0, 190, 0, 391, 0, 393, 0,
650 396, 0, 387, 410, 0, 387, 0, 388, 0, 412,
651 0, 385, 0, 378, 0, 382, 0, 449, 0, 24,
652 384, 25, 0, 1, 0, 0, 414, 386, 384, 0,
653 401, 19, 0, 405, 20, 0, 390, 0, 409, 0,
654 391, 0, 393, 0, 396, 0, 400, 0, 413, 0,
655 415, 0, 420, 0, 448, 0, 24, 390, 25, 0,
656 449, 0, 1, 0, 452, 22, 0, 109, 374, 0,
657 0, 100, 392, 0, 0, 6, 292, 394, 22, 0,
658 0, 100, 392, 6, 292, 395, 22, 0, 0, 7,
659 397, 22, 0, 0, 100, 392, 7, 398, 22, 0,
660 24, 399, 25, 0, 401, 407, 0, 401, 408, 402,
661 0, 0, 0, 0, 0, 0, 20, 0, 109, 20,
662 0, 411, 20, 0, 411, 109, 20, 0, 410, 20,
663 0, 410, 109, 20, 0, 410, 411, 20, 0, 410,
664 411, 109, 20, 0, 19, 406, 0, 19, 20, 0,
665 19, 409, 20, 0, 19, 410, 20, 0, 19, 410,
666 411, 20, 0, 390, 0, 409, 390, 0, 293, 0,
667 410, 293, 0, 374, 0, 411, 374, 0, 18, 0,
668 290, 18, 0, 18, 0, 290, 18, 0, 290, 0,
669 8, 24, 290, 25, 0, 414, 374, 0, 0, 414,
670 374, 9, 416, 374, 0, 0, 10, 24, 290, 417,
671 25, 374, 0, 11, 24, 290, 25, 0, 11, 24,
672 290, 25, 0, 0, 0, 189, 421, 401, 24, 422,
673 423, 25, 399, 445, 402, 0, 425, 0, 0, 423,
674 424, 21, 425, 0, 444, 0, 451, 0, 186, 0,
675 185, 0, 188, 0, 426, 188, 0, 426, 0, 24,
676 290, 25, 0, 427, 0, 265, 26, 290, 27, 0,
677 265, 24, 25, 0, 265, 24, 266, 25, 0, 70,
678 24, 289, 21, 370, 25, 0, 265, 348, 28, 452,
679 301, 0, 265, 348, 44, 452, 301, 0, 265, 47,
680 0, 265, 48, 0, 428, 0, 47, 267, 0, 48,
681 267, 0, 29, 273, 0, 34, 273, 0, 33, 273,
682 0, 32, 273, 0, 31, 273, 0, 30, 273, 0,
683 270, 0, 429, 0, 24, 370, 25, 273, 0, 430,
684 0, 274, 34, 273, 0, 274, 35, 273, 0, 274,
685 36, 273, 0, 431, 0, 275, 33, 274, 0, 275,
686 32, 274, 0, 432, 0, 276, 49, 275, 0, 276,
687 50, 275, 0, 433, 0, 277, 37, 276, 0, 277,
688 38, 276, 0, 277, 51, 276, 0, 277, 52, 276,
689 0, 434, 0, 278, 53, 277, 0, 278, 54, 277,
690 0, 435, 0, 279, 29, 278, 0, 436, 0, 280,
691 39, 279, 0, 437, 0, 281, 40, 280, 0, 438,
692 0, 282, 55, 281, 0, 439, 0, 284, 56, 282,
693 0, 440, 0, 0, 0, 284, 41, 442, 290, 22,
694 443, 286, 0, 441, 0, 267, 23, 289, 0, 267,
695 57, 289, 0, 267, 58, 289, 0, 267, 59, 289,
696 0, 267, 60, 289, 0, 267, 61, 289, 0, 267,
697 62, 289, 0, 267, 63, 289, 0, 267, 64, 289,
698 0, 267, 65, 289, 0, 267, 66, 289, 0, 190,
699 0, 0, 12, 0, 418, 374, 0, 446, 374, 11,
700 24, 290, 25, 18, 0, 379, 374, 0, 418, 390,
701 0, 446, 390, 11, 24, 290, 25, 18, 0, 446,
702 390, 11, 24, 290, 25, 0, 379, 390, 0, 14,
703 452, 18, 0, 15, 18, 0, 99, 15, 18, 0,
704 16, 18, 0, 95, 16, 18, 0, 96, 16, 18,
705 0, 97, 16, 18, 0, 98, 16, 18, 0, 17,
706 18, 0, 17, 290, 18, 0, 0, 18, 0, 184,
707 0, 185, 0, 189, 0, 190, 0, 451, 0, 186,
714 static const short yyrline[] = { 0,
715 324, 325, 328, 329, 332, 333, 334, 335, 336, 337,
716 338, 339, 342, 344, 348, 348, 355, 361, 365, 366,
717 370, 371, 373, 375, 390, 393, 403, 406, 414, 415,
718 417, 419, 435, 438, 446, 449, 457, 459, 459, 463,
719 464, 465, 466, 469, 472, 476, 476, 479, 479, 484,
720 485, 488, 493, 494, 497, 498, 501, 506, 507, 510,
721 511, 512, 515, 516, 517, 522, 523, 526, 528, 530,
722 532, 541, 543, 545, 547, 563, 567, 568, 575, 576,
723 584, 586, 590, 591, 592, 593, 594, 595, 598, 599,
724 600, 601, 602, 603, 606, 609, 610, 617, 620, 623,
725 629, 637, 639, 643, 646, 647, 650, 653, 659, 663,
726 664, 667, 670, 671, 674, 675, 676, 679, 680, 681,
727 682, 683, 686, 687, 688, 689, 690, 693, 694, 697,
728 703, 707, 709, 713, 714, 716, 723, 733, 734, 737,
729 738, 739, 740, 741, 742, 743, 744, 748, 749, 753,
730 754, 757, 759, 761, 762, 763, 764, 765, 767, 771,
731 772, 775, 779, 791, 792, 793, 794, 795, 796, 799,
732 800, 801, 802, 803, 804, 805, 806, 807, 810, 811,
733 814, 815, 816, 817, 818, 819, 820, 821, 822, 823,
734 824, 827, 828, 831, 835, 836, 839, 840, 841, 842,
735 845, 846, 850, 851, 852, 853, 856, 857, 858, 861,
736 862, 863, 866, 867, 868, 869, 870, 873, 874, 875,
737 878, 879, 882, 883, 887, 888, 891, 892, 897, 903,
738 904, 910, 916, 917, 917, 919, 922, 923, 924, 925,
739 926, 927, 928, 929, 930, 931, 932, 933, 936, 937,
740 940, 941, 944, 949, 950, 951, 954, 968, 973, 979,
741 981, 987, 992, 992, 996, 997, 999, 1000, 1003, 1006,
742 1009, 1012, 1013, 1016, 1017, 1020, 1021, 1022, 1023, 1030,
743 1031, 1035, 1036, 1039, 1040, 1043, 1045, 1054, 1055, 1056,
744 1057, 1058, 1061, 1064, 1070, 1079, 1082, 1085, 1092, 1099,
745 1105, 1130, 1131, 1134, 1135, 1136, 1137, 1138, 1141, 1142,
746 1143, 1144, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154,
747 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1167,
748 1168, 1171, 1172, 1175, 1176, 1179, 1180, 1181, 1182, 1185,
749 1186, 1187, 1188, 1189, 1190, 1193, 1194, 1195, 1196, 1199,
750 1200, 1201, 1202, 1205, 1206, 1207, 1208, 1209, 1210, 1211,
751 1212, 1213, 1214, 1215, 1222, 1223, 1224, 1225, 1226, 1227,
752 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1238, 1242,
753 1243, 1247, 1248, 1252, 1253, 1254, 1257, 1258, 1262, 1269,
754 1271, 1273, 1274, 1276, 1278, 1279, 1281, 1283, 1285, 1287,
755 1288, 1289, 1292, 1293, 1295, 1297, 1298, 1301, 1304, 1305,
756 1306, 1309, 1311, 1315, 1317, 1321, 1322, 1323, 1327, 1329,
757 1329, 1331, 1334, 1336, 1338, 1341, 1346, 1353, 1354, 1355,
758 1362, 1366, 1367, 1371, 1372, 1375, 1376, 1379, 1380, 1383,
759 1384, 1385, 1386, 1389, 1390, 1393, 1394, 1397, 1398, 1399,
760 1402, 1402, 1403, 1404, 1407, 1419, 1435, 1436, 1439, 1440,
761 1441, 1444, 1445, 1448, 1450, 1451, 1453, 1454, 1456, 1458,
762 1460, 1462, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475,
763 1476, 1480, 1483, 1486, 1487, 1491, 1493, 1495, 1497, 1501,
764 1502, 1504, 1508, 1510, 1512, 1515, 1516, 1517, 1518, 1519,
765 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1530, 1531,
766 1536, 1539, 1542, 1543, 1546, 1547, 1548, 1549, 1550, 1551,
767 1552, 1553, 1554, 1555, 1556, 1559, 1560, 1567, 1568, 1574,
768 1575, 1576, 1577, 1580, 1581, 1582, 1583, 1586, 1587, 1591,
769 1594, 1597, 1600, 1603, 1606, 1609, 1610, 1611, 1612, 1614,
770 1615, 1617, 1619, 1625, 1629, 1631, 1633, 1635, 1639, 1640,
771 1643, 1644, 1647, 1648, 1651, 1652, 1655, 1656, 1657, 1660,
772 1673, 1678, 1679, 1683, 1684, 1687, 1692, 1695, 1696, 1697,
773 1705, 1706, 1706, 1710, 1711, 1712, 1723, 1730, 1731, 1734,
774 1735, 1738, 1739, 1740, 1741, 1742, 1744, 1745, 1746, 1747,
775 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759,
776 1762, 1763, 1766, 1767, 1768, 1769, 1772, 1773, 1774, 1777,
777 1778, 1779, 1782, 1783, 1784, 1785, 1786, 1789, 1790, 1791,
778 1794, 1795, 1798, 1799, 1803, 1804, 1807, 1808, 1811, 1812,
779 1815, 1816, 1817, 1818, 1821, 1822, 1823, 1824, 1825, 1826,
780 1827, 1828, 1829, 1830, 1831, 1832, 1835, 1836, 1839, 1842,
781 1844, 1846, 1850, 1851, 1853, 1855, 1858, 1859, 1860, 1862,
782 1863, 1864, 1865, 1866, 1867, 1868, 1871, 1872, 1875, 1878,
783 1879, 1880, 1881, 1882, 1885, 1886
788 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
790 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
791 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
792 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
793 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
794 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
795 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
796 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
797 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
798 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
799 "VA_ARG","VA_DCL","QWARN","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION",
800 "QITER","QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
801 "QINVARIANT","QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND",
802 "TENDMACRO","QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE",
803 "QFALLTHROUGH","QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED",
804 "QPRINTFLIKE","QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST",
805 "QVOLATILE","QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT",
806 "QIN","QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
807 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
808 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
809 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
810 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
811 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
812 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
813 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
814 "QSETBUFFERSIZE","QSETSTRINGLENGTH","QMAXSET","QMAXREAD","QTESTINRANGE","TCAND",
815 "IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID","CANNOTATION","CCONSTANT","ITER_NAME",
816 "ITER_ENDNAME","TYPE_NAME","METASTATE_NAME","file","externalDefs","externalDef",
817 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
818 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
819 "metaStateConstraint","metaStateSpecifier","@8","@9","metaStateExpression","metaStateName",
820 "constraintSeperator","BufConstraintList","BufConstraint","bufferModifier","relationalOp",
821 "BufConstraintExpr","BufConstraintTerm","BufConstraintSrefExpr","BufUnaryOp",
822 "BufBinaryOp","functionClauses","functionClausesPlain","functionClause","functionClausePlain",
823 "globalsClause","globalsClausePlain","@10","nomodsClause","modifiesClause","modifiesClausePlain",
824 "@11","flagSpec","flagId","optWarnClause","warnClause","warnClausePlain","globIdList",
825 "globIdListExpr","optGlobQuals","globId","globQual","stateTag","conditionTag",
826 "fcnDefHdrAux","fcnBody","@12","@13","@14","fcnDef","locModifies","modListExpr",
827 "mExpr","modList","specClauseListExpr","optSpecClauseList","specClauseList",
828 "primaryExpr","postfixExpr","argumentExprList","unaryExpr","fieldDesignator",
829 "offsetofExpr","sizeofExpr","@15","sizeofExprAux","castExpr","timesExpr","plusExpr",
830 "shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr",
831 "andExpr","@16","orExpr","@17","conditionalExpr","@18","@19","assignExpr","expr",
832 "optExpr","constantExpr","initializer","instanceDecl","@20","@21","namedInitializer",
833 "@22","typeDecl","@23","IsType","PushType","namedInitializerList","namedInitializerListAux",
834 "optDeclarators","init","designation","designatorList","designator","initList",
835 "storageSpecifier","stateClause","stateClausePlain","@24","conditionClause",
836 "startConditionClause","conditionClausePlain","@25","@26","functionConstraint",
837 "exitsQualifier","checkQualifier","stateQualifier","paramQualifier","visibilityQualifier",
838 "returnQualifier","typedefQualifier","refcountQualifier","typeModifier","definedQualifier",
839 "typeQualifier","typeSpecifier","completeType","completeTypeSpecifier","altType",
840 "completeTypeSpecifierAux","optCompleteType","optStructInvariant","suSpc","@27",
841 "@28","@29","@30","@31","@32","@33","@34","NotType","structDeclList","structDecl",
842 "structNamedDeclList","structNamedDecl","enumSpc","@35","enumeratorList","enumerator",
843 "optNamedDecl","namedDecl","genericParamList","innerMods","innerModsList","pointers",
844 "paramIdList","idList","paramTypeList","paramList","@36","@37","paramDecl","typeExpression",
845 "abstractDecl","optAbstractDeclBase","abstractDeclBase","stmt","iterBody","endBody",
846 "iterDefStmtList","iterDefIterationStmt","forPred","@38","@39","partialIterStmt",
847 "@40","iterDefStmt","iterSelectionStmt","@41","openScope","closeScope","macroBody",
848 "stmtErr","labeledStmt","optExtraFallThroughs","caseStmt","@42","@43","defaultStmt",
849 "@44","@45","compoundStmt","compoundStmtErr","CreateInnerScope","DeleteInnerScope",
850 "CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe","compoundStmtRest",
851 "compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList","stmtList",
852 "expressionStmt","expressionStmtErr","ifPred","selectionStmt","@46","@47","whilePred",
853 "iterWhilePred","iterStmt","@48","@49","iterArgList","@50","iterArgExpr","cconstantExpr",
854 "primaryIterExpr","postfixIterExpr","unaryIterExpr","castIterExpr","timesIterExpr",
855 "plusIterExpr","shiftIterExpr","relationalIterExpr","equalityIterExpr","bitandIterExpr",
856 "xorIterExpr","bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr",
857 "@51","@52","assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr",
858 "jumpStmt","optSemi","id","newId","typeName", NULL
862 static const short yyr1[] = { 0,
863 193, 193, 194, 194, 195, 195, 195, 195, 195, 195,
864 195, 195, 196, 196, 198, 197, 199, 199, 200, 200,
865 201, 201, 201, 201, 202, 201, 203, 201, 204, 204,
866 204, 204, 205, 204, 206, 204, 208, 209, 207, 210,
867 210, 210, 210, 211, 212, 214, 213, 215, 213, 216,
868 216, 217, 218, 218, 219, 219, 220, 221, 221, 222,
869 222, 222, 223, 223, 223, 224, 224, 225, 225, 225,
870 225, 225, 225, 225, 225, 226, 227, 227, 228, 228,
871 229, 229, 230, 230, 230, 230, 230, 230, 231, 231,
872 231, 231, 231, 231, 232, 234, 233, 235, 236, 238,
873 237, 239, 239, 240, 241, 241, 242, 243, 243, 244,
874 244, 245, 246, 246, 247, 247, 247, 248, 248, 248,
875 248, 248, 249, 249, 249, 249, 249, 250, 250, 251,
876 251, 253, 252, 254, 255, 252, 256, 257, 257, 258,
877 258, 258, 258, 258, 258, 258, 258, 259, 259, 260,
878 260, 261, 261, 261, 261, 261, 261, 261, 261, 262,
879 262, 263, 263, 264, 264, 264, 264, 264, 264, 265,
880 265, 265, 265, 265, 265, 265, 265, 265, 266, 266,
881 267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
882 267, 268, 268, 269, 271, 270, 272, 272, 272, 272,
883 273, 273, 274, 274, 274, 274, 275, 275, 275, 276,
884 276, 276, 277, 277, 277, 277, 277, 278, 278, 278,
885 279, 279, 280, 280, 281, 281, 282, 283, 282, 284,
886 285, 284, 286, 287, 288, 286, 289, 289, 289, 289,
887 289, 289, 289, 289, 289, 289, 289, 289, 290, 290,
888 291, 291, 292, 293, 293, 293, 294, 295, 294, 296,
889 294, 297, 298, 297, 300, 299, 299, 299, 301, 302,
890 303, 304, 304, 305, 305, 306, 306, 306, 306, 307,
891 307, 308, 308, 309, 309, 310, 310, 311, 311, 311,
892 311, 311, 312, 314, 313, 315, 316, 318, 317, 319,
893 317, 320, 320, 321, 321, 321, 321, 321, 322, 322,
894 322, 322, 323, 323, 323, 323, 323, 323, 323, 323,
895 323, 323, 323, 323, 323, 323, 323, 323, 323, 324,
896 324, 325, 325, 326, 326, 327, 327, 327, 327, 328,
897 328, 328, 328, 328, 328, 329, 329, 329, 329, 330,
898 330, 330, 330, 331, 331, 331, 331, 331, 331, 331,
899 331, 331, 331, 331, 332, 332, 332, 332, 332, 332,
900 332, 332, 332, 332, 332, 332, 332, 332, 333, 334,
901 334, 335, 335, 336, 336, 336, 337, 337, 338, 340,
902 341, 339, 342, 343, 339, 339, 339, 344, 345, 339,
903 346, 347, 339, 339, 339, 339, 339, 348, 349, 349,
904 349, 350, 350, 351, 351, 352, 352, 352, 353, 354,
905 353, 353, 355, 355, 355, 356, 356, 357, 357, 357,
906 357, 358, 358, 359, 359, 360, 360, 361, 361, 362,
907 362, 362, 362, 363, 363, 364, 364, 365, 365, 365,
908 367, 366, 368, 366, 369, 369, 370, 370, 371, 371,
909 371, 372, 372, 373, 373, 373, 373, 373, 373, 373,
910 373, 373, 374, 374, 374, 374, 374, 374, 374, 374,
911 374, 375, 376, 377, 377, 378, 378, 378, 378, 380,
912 381, 379, 383, 382, 382, 384, 384, 384, 384, 384,
913 384, 384, 384, 384, 384, 384, 384, 384, 386, 385,
914 387, 388, 389, 389, 390, 390, 390, 390, 390, 390,
915 390, 390, 390, 390, 390, 391, 391, 392, 392, 394,
916 393, 395, 393, 397, 396, 398, 396, 399, 399, 400,
917 401, 402, 403, 404, 405, 406, 406, 406, 406, 406,
918 406, 406, 406, 407, 408, 408, 408, 408, 409, 409,
919 410, 410, 411, 411, 412, 412, 413, 413, 413, 414,
920 415, 416, 415, 417, 415, 418, 419, 421, 422, 420,
921 423, 424, 423, 425, 425, 425, 425, 426, 426, 427,
922 427, 428, 428, 428, 428, 428, 428, 428, 428, 428,
923 429, 429, 429, 429, 429, 429, 429, 429, 429, 429,
924 430, 430, 431, 431, 431, 431, 432, 432, 432, 433,
925 433, 433, 434, 434, 434, 434, 434, 435, 435, 435,
926 436, 436, 437, 437, 438, 438, 439, 439, 440, 440,
927 441, 442, 443, 441, 444, 444, 444, 444, 444, 444,
928 444, 444, 444, 444, 444, 444, 445, 445, 446, 447,
929 447, 447, 448, 448, 448, 448, 449, 449, 449, 449,
930 449, 449, 449, 449, 449, 449, 450, 450, 451, 452,
931 452, 452, 452, 452, 453, 453
934 static const short yyr2[] = { 0,
935 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
936 1, 1, 8, 11, 0, 5, 1, 3, 1, 2,
937 1, 6, 3, 6, 0, 6, 0, 7, 1, 6,
938 3, 6, 0, 6, 0, 7, 0, 0, 10, 3,
939 3, 3, 2, 1, 3, 0, 4, 0, 4, 1,
940 3, 1, 1, 1, 3, 1, 3, 1, 1, 1,
941 1, 1, 1, 4, 5, 1, 1, 1, 1, 3,
942 4, 2, 3, 3, 3, 1, 1, 1, 0, 2,
943 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
944 1, 1, 1, 1, 2, 0, 4, 1, 2, 0,
945 3, 1, 3, 1, 1, 0, 2, 3, 2, 1,
946 3, 2, 0, 2, 1, 1, 1, 1, 1, 1,
947 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
948 3, 0, 3, 0, 0, 4, 2, 2, 1, 1,
949 1, 3, 4, 2, 3, 3, 3, 1, 1, 1,
950 3, 1, 1, 3, 4, 2, 3, 3, 3, 0,
951 1, 1, 3, 1, 1, 1, 3, 1, 1, 1,
952 4, 3, 4, 6, 5, 5, 2, 2, 1, 3,
953 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
954 1, 3, 1, 9, 0, 3, 4, 2, 4, 2,
955 1, 4, 1, 3, 3, 3, 1, 3, 3, 1,
956 3, 3, 1, 3, 3, 3, 3, 1, 3, 3,
957 1, 3, 1, 3, 1, 3, 1, 0, 4, 1,
958 0, 4, 1, 0, 0, 7, 1, 3, 3, 3,
959 3, 3, 3, 3, 3, 3, 3, 3, 1, 3,
960 0, 1, 1, 1, 1, 1, 3, 0, 9, 0,
961 11, 2, 0, 6, 0, 8, 4, 4, 0, 0,
962 2, 1, 4, 0, 4, 1, 3, 4, 2, 2,
963 2, 1, 2, 3, 2, 1, 3, 1, 1, 1,
964 1, 1, 2, 0, 6, 2, 2, 0, 6, 0,
965 5, 1, 1, 1, 1, 1, 1, 1, 1, 1,
966 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
967 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
968 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
969 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
970 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
971 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
972 2, 2, 2, 2, 2, 2, 2, 2, 3, 1,
973 4, 1, 3, 2, 2, 2, 0, 1, 0, 0,
974 0, 12, 0, 0, 11, 6, 6, 0, 0, 10,
975 0, 0, 10, 5, 5, 4, 4, 0, 1, 1,
976 2, 5, 3, 2, 4, 1, 3, 4, 6, 0,
977 8, 4, 1, 3, 2, 1, 4, 1, 1, 2,
978 2, 1, 2, 1, 2, 1, 1, 1, 2, 1,
979 2, 2, 3, 1, 3, 1, 3, 1, 1, 3,
980 0, 2, 0, 4, 4, 1, 1, 2, 1, 1,
981 2, 0, 1, 5, 2, 3, 3, 4, 3, 4,
982 4, 5, 1, 1, 1, 1, 1, 1, 1, 1,
983 1, 1, 1, 1, 2, 2, 7, 6, 2, 0,
984 0, 10, 0, 6, 1, 1, 1, 1, 2, 1,
985 1, 1, 1, 1, 1, 1, 3, 1, 0, 3,
986 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
987 1, 1, 3, 1, 1, 2, 2, 0, 2, 0,
988 4, 0, 6, 0, 3, 0, 5, 3, 2, 3,
989 0, 0, 0, 0, 0, 1, 2, 2, 3, 2,
990 3, 3, 4, 2, 2, 3, 3, 4, 1, 2,
991 1, 2, 1, 2, 1, 2, 1, 2, 1, 4,
992 2, 0, 5, 0, 6, 4, 4, 0, 0, 10,
993 1, 0, 4, 1, 1, 1, 1, 1, 2, 1,
994 3, 1, 4, 3, 4, 6, 5, 5, 2, 2,
995 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
996 1, 4, 1, 3, 3, 3, 1, 3, 3, 1,
997 3, 3, 1, 3, 3, 3, 3, 1, 3, 3,
998 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
999 1, 0, 0, 7, 1, 3, 3, 3, 3, 3,
1000 3, 3, 3, 3, 3, 3, 1, 0, 1, 2,
1001 7, 2, 2, 7, 6, 2, 3, 2, 3, 2,
1002 3, 3, 3, 3, 2, 3, 0, 1, 1, 1,
1006 static const short yydefact[] = { 0,
1007 12, 11, 440, 408, 255, 408, 15, 0, 0, 0,
1008 0, 269, 269, 289, 288, 290, 291, 292, 350, 351,
1009 315, 317, 316, 320, 321, 309, 311, 312, 310, 318,
1010 319, 352, 353, 313, 314, 330, 326, 322, 327, 323,
1011 304, 305, 308, 306, 307, 347, 348, 349, 346, 332,
1012 331, 325, 324, 336, 337, 338, 339, 334, 335, 333,
1013 340, 341, 344, 345, 342, 343, 408, 408, 408, 408,
1014 408, 408, 408, 408, 408, 408, 328, 679, 680, 684,
1015 329, 681, 682, 685, 0, 3, 6, 7, 432, 8,
1016 9, 134, 44, 677, 10, 254, 256, 0, 387, 269,
1017 269, 269, 269, 269, 269, 269, 269, 408, 269, 387,
1018 387, 408, 380, 408, 0, 408, 130, 269, 683, 21,
1019 408, 436, 437, 438, 441, 442, 272, 269, 269, 265,
1020 408, 686, 408, 408, 684, 0, 525, 269, 534, 0,
1021 0, 0, 659, 0, 0, 0, 0, 269, 567, 0,
1022 269, 269, 269, 269, 269, 269, 269, 269, 269, 0,
1023 43, 0, 0, 0, 0, 0, 528, 269, 169, 165,
1024 168, 588, 578, 170, 181, 201, 191, 190, 203, 207,
1025 210, 213, 218, 221, 223, 225, 227, 230, 233, 237,
1026 249, 569, 195, 0, 0, 559, 515, 516, 517, 518,
1027 0, 0, 519, 269, 520, 0, 521, 166, 0, 522,
1028 524, 164, 0, 508, 0, 565, 0, 541, 495, 0,
1029 0, 0, 504, 0, 505, 484, 503, 500, 501, 496,
1030 497, 498, 0, 0, 502, 509, 0, 0, 506, 483,
1031 0, 354, 355, 365, 367, 366, 368, 369, 370, 371,
1032 372, 373, 374, 4, 269, 0, 132, 137, 408, 678,
1033 5, 408, 388, 384, 358, 360, 357, 359, 362, 361,
1034 363, 364, 378, 356, 385, 386, 0, 269, 269, 376,
1035 269, 269, 0, 377, 433, 375, 439, 443, 408, 0,
1036 271, 408, 0, 262, 269, 677, 17, 19, 0, 408,
1037 269, 29, 451, 269, 165, 168, 201, 253, 530, 164,
1038 0, 269, 269, 269, 269, 0, 668, 670, 675, 0,
1039 0, 408, 457, 0, 0, 184, 189, 188, 187, 186,
1040 185, 0, 269, 182, 183, 269, 0, 0, 0, 0,
1041 0, 528, 0, 269, 527, 269, 473, 474, 475, 476,
1042 0, 477, 478, 269, 480, 269, 479, 481, 541, 269,
1043 269, 177, 178, 0, 269, 269, 269, 269, 269, 269,
1044 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
1045 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
1046 269, 228, 234, 231, 568, 269, 0, 666, 40, 0,
1047 542, 560, 571, 663, 589, 0, 526, 269, 0, 0,
1048 0, 566, 41, 485, 489, 561, 408, 499, 511, 512,
1049 0, 0, 0, 42, 23, 269, 451, 408, 408, 269,
1050 257, 131, 408, 0, 382, 0, 408, 0, 408, 0,
1051 269, 269, 268, 269, 267, 263, 408, 0, 269, 0,
1052 408, 269, 20, 448, 0, 0, 434, 449, 269, 0,
1053 0, 535, 0, 574, 0, 252, 0, 667, 676, 167,
1054 269, 269, 0, 459, 458, 460, 269, 523, 269, 0,
1055 671, 672, 673, 674, 669, 529, 269, 536, 0, 662,
1056 408, 539, 660, 0, 0, 172, 0, 179, 0, 0,
1057 0, 238, 239, 240, 241, 242, 243, 244, 245, 246,
1058 247, 248, 204, 205, 206, 209, 208, 211, 212, 214,
1059 215, 216, 217, 219, 220, 222, 224, 226, 269, 269,
1060 269, 250, 269, 269, 196, 555, 168, 559, 0, 408,
1061 540, 572, 0, 0, 507, 493, 269, 562, 510, 0,
1062 0, 25, 0, 546, 269, 563, 133, 408, 269, 541,
1063 269, 258, 381, 269, 398, 0, 406, 401, 0, 407,
1064 0, 423, 426, 420, 422, 273, 269, 269, 677, 16,
1065 31, 269, 451, 269, 18, 435, 444, 446, 37, 453,
1066 408, 452, 456, 531, 570, 0, 576, 269, 379, 465,
1067 0, 451, 461, 269, 0, 202, 408, 269, 532, 0,
1068 538, 554, 0, 579, 269, 173, 171, 269, 269, 229,
1069 0, 232, 269, 198, 269, 200, 556, 557, 269, 269,
1070 269, 577, 269, 408, 269, 408, 79, 27, 547, 550,
1071 269, 269, 548, 269, 564, 541, 136, 0, 260, 269,
1072 383, 404, 543, 390, 405, 543, 393, 269, 425, 269,
1073 0, 106, 269, 269, 269, 0, 33, 0, 269, 0,
1074 81, 450, 269, 462, 269, 0, 466, 469, 269, 0,
1075 467, 0, 451, 0, 0, 0, 537, 269, 269, 180,
1076 175, 176, 235, 0, 0, 558, 573, 0, 269, 269,
1077 269, 269, 269, 269, 269, 269, 269, 0, 165, 168,
1078 181, 201, 190, 207, 210, 213, 218, 221, 223, 225,
1079 227, 230, 0, 582, 581, 166, 592, 601, 611, 613,
1080 617, 620, 623, 628, 631, 633, 635, 637, 639, 641,
1081 645, 584, 164, 0, 24, 0, 96, 100, 98, 123,
1082 124, 125, 126, 127, 128, 129, 26, 79, 83, 0,
1083 85, 84, 0, 88, 0, 408, 408, 86, 0, 87,
1084 300, 0, 79, 551, 552, 269, 549, 22, 269, 274,
1085 408, 396, 543, 408, 397, 543, 419, 424, 269, 0,
1086 0, 105, 269, 269, 0, 276, 264, 269, 0, 282,
1087 0, 269, 0, 408, 81, 35, 0, 445, 447, 38,
1088 81, 89, 91, 90, 94, 92, 93, 454, 428, 0,
1089 269, 462, 429, 463, 575, 490, 0, 470, 468, 471,
1090 0, 0, 174, 533, 0, 582, 269, 197, 199, 665,
1091 0, 0, 184, 189, 188, 187, 186, 185, 182, 183,
1092 269, 269, 269, 177, 178, 0, 269, 269, 269, 269,
1093 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
1094 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
1095 269, 269, 269, 228, 642, 231, 494, 0, 488, 104,
1096 109, 102, 113, 677, 80, 95, 99, 107, 294, 297,
1097 293, 0, 298, 296, 28, 553, 269, 0, 410, 408,
1098 408, 409, 408, 408, 408, 427, 269, 266, 286, 0,
1099 0, 285, 279, 280, 283, 281, 274, 13, 32, 34,
1100 81, 30, 677, 82, 451, 455, 430, 431, 269, 464,
1101 472, 0, 193, 0, 541, 236, 664, 167, 269, 0,
1102 172, 0, 0, 0, 0, 646, 647, 648, 649, 650,
1103 651, 652, 653, 654, 655, 656, 204, 205, 206, 209,
1104 208, 211, 212, 214, 215, 216, 217, 219, 220, 222,
1105 224, 226, 638, 269, 640, 269, 487, 108, 0, 118,
1106 119, 120, 121, 122, 677, 110, 408, 113, 0, 0,
1107 141, 101, 150, 677, 139, 140, 0, 48, 0, 0,
1108 58, 59, 69, 67, 303, 0, 302, 56, 76, 0,
1109 63, 66, 0, 677, 68, 160, 274, 269, 408, 0,
1110 269, 411, 399, 408, 402, 408, 421, 277, 269, 284,
1111 677, 36, 0, 269, 491, 269, 0, 661, 658, 202,
1112 269, 173, 171, 269, 269, 0, 583, 103, 113, 97,
1113 116, 112, 117, 115, 114, 0, 144, 0, 0, 0,
1114 0, 138, 0, 0, 153, 162, 677, 152, 0, 0,
1115 66, 0, 72, 0, 54, 53, 0, 61, 60, 62,
1116 0, 0, 0, 0, 0, 0, 269, 677, 161, 0,
1117 259, 269, 413, 269, 269, 408, 416, 0, 391, 0,
1118 394, 278, 287, 0, 39, 269, 0, 194, 192, 657,
1119 542, 0, 175, 176, 643, 111, 145, 142, 148, 0,
1120 149, 146, 147, 151, 0, 156, 0, 0, 0, 0,
1121 269, 0, 78, 77, 0, 73, 0, 50, 45, 46,
1122 55, 66, 57, 70, 0, 74, 75, 0, 0, 301,
1123 269, 269, 275, 269, 269, 0, 414, 269, 400, 0,
1124 403, 0, 14, 492, 580, 174, 269, 143, 157, 154,
1125 0, 158, 159, 163, 295, 52, 49, 0, 0, 71,
1126 47, 64, 299, 261, 417, 408, 412, 269, 389, 395,
1127 644, 155, 65, 51, 415, 418, 392, 0, 0, 0
1130 static const short yydefgoto[] = { 1208,
1131 85, 86, 87, 88, 134, 296, 297, 89, 637, 773,
1132 298, 805, 931, 90, 671, 933, 909, 92, 1015, 1148,
1133 1095, 1079, 1149, 1187, 1087, 1017, 1018, 1019, 1091, 1020,
1134 1021, 1152, 1023, 1145, 757, 810, 758, 811, 759, 812,
1135 893, 813, 762, 814, 894, 891, 892, 791, 764, 765,
1136 995, 996, 997, 1062, 998, 766, 767, 93, 258, 428,
1137 259, 560, 94, 1002, 1129, 1130, 1004, 1076, 1098, 1077,
1138 174, 175, 497, 176, 942, 177, 178, 397, 535, 179,
1139 180, 181, 182, 183, 184, 185, 186, 187, 188, 529,
1140 189, 531, 190, 530, 837, 191, 220, 467, 309, 416,
1141 96, 650, 779, 127, 578, 97, 292, 193, 256, 128,
1142 129, 908, 797, 798, 799, 800, 920, 99, 768, 816,
1143 1007, 770, 771, 817, 1026, 902, 1024, 100, 101, 102,
1144 103, 104, 105, 106, 107, 108, 109, 110, 111, 323,
1145 417, 434, 113, 264, 1207, 114, 783, 1170, 786, 1172,
1146 653, 1108, 656, 1110, 115, 911, 912, 1105, 1106, 116,
1147 661, 571, 572, 821, 131, 456, 124, 125, 118, 586,
1148 587, 457, 458, 459, 673, 592, 324, 827, 823, 476,
1149 345, 221, 241, 222, 223, 346, 939, 1117, 225, 633,
1150 226, 227, 421, 228, 229, 195, 402, 347, 343, 348,
1151 461, 686, 349, 311, 610, 350, 200, 351, 541, 781,
1152 1033, 234, 557, 492, 401, 202, 558, 559, 352, 203,
1153 204, 353, 630, 596, 354, 237, 355, 359, 689, 724,
1154 888, 725, 208, 727, 728, 729, 730, 731, 732, 733,
1155 734, 735, 736, 737, 738, 739, 740, 741, 984, 1177,
1156 742, 1121, 356, 357, 210, 358, 261, 310, 213, 121
1159 static const short yypact[] = { 2153,
1160 -32768,-32768, 37, 5269,-32768, 6398,-32768, 493, 3112, 3409,
1161 3409,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1162 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1163 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1164 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1165 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1166 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1167 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 450,
1168 -32768,-32768,-32768,-32768, 2352,-32768,-32768,-32768, 364,-32768,
1169 -32768, 54,-32768, 86,-32768,-32768,-32768, 131, 6233,-32768,
1170 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 6233,
1171 6233, 169, 113,-32768, 828,-32768,-32768, 493,-32768,-32768,
1172 -32768,-32768,-32768,-32768, 37,-32768,-32768, 184,-32768, 169,
1173 -32768,-32768,-32768, 5269,-32768, 209,-32768, 5499,-32768, 216,
1174 225, 234,-32768, 245, 493, 262, 320, 852,-32768, 2730,
1175 5499, 5499, 5499, 5499, 5499, 5499,-32768, 5524, 5524, 324,
1176 -32768, 345, 356, 362, 404, 419, 350, 4685,-32768, 436,
1177 445,-32768, 460,-32768, 681, 677,-32768,-32768,-32768, 1030,
1178 132, 261, 554, 354, 461, 463, 470, 491, 100,-32768,
1179 -32768, 337,-32768, 3535, 457, 462,-32768,-32768,-32768,-32768,
1180 559, 3156,-32768, 4685,-32768, 3535,-32768, 397, 3535,-32768,
1181 -32768, 571, 599,-32768, 575,-32768, 2921, 460, 615, 458,
1182 555, 3305,-32768, 3409,-32768,-32768,-32768, 5856,-32768,-32768,
1183 -32768,-32768, 661, 670,-32768,-32768, 3409, 3535,-32768,-32768,
1184 591,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1185 -32768,-32768,-32768,-32768, 706, 738,-32768,-32768, 6122,-32768,
1186 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1187 -32768,-32768,-32768,-32768,-32768,-32768, 752, 532,-32768,-32768,
1188 493, 493, 391,-32768, 364,-32768,-32768,-32768,-32768, 757,
1189 -32768,-32768, 766, 722, 532, 86,-32768, 403, 784,-32768,
1190 493,-32768, 41, 5499,-32768,-32768,-32768,-32768,-32768,-32768,
1191 788, 5499, 5499, 5499, 1753, 801,-32768,-32768,-32768, 601,
1192 782, 5723, 283, 808, 850,-32768,-32768,-32768,-32768,-32768,
1193 -32768, 879, 5499,-32768,-32768, 5499, 891, 917, 933, 965,
1194 970, 350, 665, 5126,-32768, 4685,-32768,-32768,-32768,-32768,
1195 983,-32768,-32768, 4685,-32768, 4685,-32768,-32768,-32768, 1275,
1196 5499,-32768,-32768, 66, 5499, 5499, 5499, 5499, 5499, 5499,
1197 5499, 5499, 5499, 5499, 5499, 5499, 5499, 5499, 5499, 5499,
1198 5499, 5499, 5499, 5499, 5499, 5499, 5499, 5499, 5499, 5499,
1199 5499,-32768,-32768,-32768,-32768, 5499, 479,-32768,-32768, 2539,
1200 -32768,-32768, 999,-32768,-32768, 1024,-32768, 5499, 966, 1026,
1201 1034,-32768,-32768,-32768,-32768,-32768, 169, 5856,-32768,-32768,
1202 3409, 1972, 1056,-32768,-32768, 5499, 309, 3639, 4767, 532,
1203 -32768, 515, 6398, 990, 1077, 1087, 1095, 1098, 1095, 493,
1204 1099, 532,-32768, 532,-32768,-32768,-32768, 1031, 1093, 1100,
1205 -32768, 532, 403,-32768, 493, 1107,-32768, 1112, 493, 272,
1206 1113,-32768, 295, 1115, 439, 1115, 1116,-32768,-32768,-32768,
1207 -32768, 5437, 1118, 415,-32768, 688, 5499,-32768,-32768, 1122,
1208 -32768,-32768,-32768,-32768,-32768,-32768, 5499,-32768, 1119,-32768,
1209 3639,-32768,-32768, 1135, 1123,-32768, 471,-32768, 60, 493,
1210 493,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1211 -32768,-32768,-32768,-32768,-32768, 1030, 1030, 132, 132, 261,
1212 261, 261, 261, 554, 554, 354, 461, 463, 5499, 5499,
1213 5499,-32768, 5556, 5611,-32768,-32768, 5115,-32768, 3349, 3825,
1214 -32768,-32768, 1125, 548,-32768,-32768, 532,-32768,-32768, 1127,
1215 1129,-32768, 1132,-32768, 4197,-32768,-32768, 4011, 4241, 1130,
1216 -32768, 1136,-32768,-32768, 1141, 1143,-32768, 1144, 1148,-32768,
1217 699,-32768, 1146,-32768,-32768,-32768, 184,-32768, 82,-32768,
1218 -32768, 5499, 342, 532,-32768,-32768, 1147,-32768,-32768, 1166,
1219 6398,-32768,-32768,-32768,-32768, 1149,-32768, 1753,-32768,-32768,
1220 1150, 519, 688, 5448, 1151,-32768,-32768,-32768,-32768, 1154,
1221 -32768,-32768, 1155,-32768, 5499,-32768,-32768,-32768,-32768, 470,
1222 733, 491, 5499,-32768, 5499,-32768,-32768,-32768, 4345, 4685,
1223 5499,-32768, 5644,-32768, 5499,-32768, 896,-32768,-32768,-32768,
1224 4389, 4493,-32768, 4537,-32768, 1130,-32768, 1153,-32768,-32768,
1225 -32768,-32768,-32768, 1160,-32768,-32768, 1161,-32768, 493,-32768,
1226 493, 1101, 5034,-32768,-32768, 1156,-32768, 1159,-32768, 466,
1227 896,-32768, 493, 740, 4685, 1168,-32768,-32768, 148, 1163,
1228 -32768, 1164, 78, 1171, 1169, 1173,-32768, 5499, 5644,-32768,
1229 -32768,-32768,-32768, 1172, 1174,-32768,-32768, 577, 5499, 5499,
1230 5499, 5499, 5499, 5499, 5499, 5524, 5524, 1176, 800, 827,
1231 977, 882, 844, 1091, 759, 777, 798, 804, 1193, 1184,
1232 1158, 1138, 263, 1199,-32768, 53,-32768,-32768,-32768,-32768,
1233 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1234 -32768,-32768, 853, 867,-32768, 1040,-32768,-32768,-32768,-32768,
1235 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 896,-32768, 1137,
1236 -32768,-32768, 1139,-32768, 1140,-32768,-32768,-32768, 1162,-32768,
1237 1538, 1165, 896,-32768,-32768, 4641,-32768,-32768,-32768,-32768,
1238 6320,-32768,-32768, 6320,-32768,-32768,-32768,-32768, 5499, 846,
1239 1208,-32768, 5034, 5499, 493,-32768,-32768, 5034, 620,-32768,
1240 1206, 5034, 1170,-32768, 896,-32768, 1209,-32768,-32768,-32768,
1241 896,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 364, 1207,
1242 -32768, 727,-32768, 688,-32768,-32768, 1210,-32768,-32768,-32768,
1243 1211, 493,-32768,-32768, 902, 1212, 5499,-32768,-32768, 1215,
1244 913, 1213, 931, 932, 995, 997, 998, 1027, 1028, 1029,
1245 5499, 5468, 5499, 1035, 1036, 195, 5499, 5499, 5499, 5499,
1246 5499, 5499, 5499, 5499, 5499, 5499, 5499, 5499, 5499, 5499,
1247 5499, 5499, 5499, 5499, 5499, 5499, 5499, 5499, 5499, 5499,
1248 5499, 5499, 5499, 5499,-32768, 5499,-32768, 1218, 1222,-32768,
1249 1053, 1203, 576, 155,-32768,-32768,-32768,-32768,-32768,-32768,
1250 -32768, 289,-32768,-32768,-32768,-32768, 5034, 639,-32768, 169,
1251 4845,-32768, 6320, 4845, 6320,-32768,-32768,-32768,-32768, 894,
1252 1219,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1253 896,-32768, 86,-32768, 411,-32768,-32768,-32768, 5479,-32768,
1254 -32768, 735,-32768, 1227, 1130,-32768,-32768, 1038, 5499, 1228,
1255 1051, 1054, 110, 493, 493,-32768,-32768,-32768,-32768,-32768,
1256 -32768,-32768,-32768,-32768,-32768,-32768, 1064, 1065, 1067, 885,
1257 938, 822, 839, 71, 142, 539, 582, 91, 731, 55,
1258 817, 101, 470, 5499, 491, 5644,-32768, 397, 1040,-32768,
1259 -32768,-32768,-32768,-32768, 768,-32768, 5989, 576, 218, 218,
1260 -32768,-32768, 107, 859,-32768,-32768, 319,-32768, 518, 432,
1261 -32768,-32768,-32768,-32768,-32768, 1225,-32768, 3,-32768, 1078,
1262 -32768, 640, 1226, 86,-32768, 319,-32768,-32768,-32768, 1236,
1263 507,-32768,-32768, 4845,-32768, 4845,-32768,-32768, 5009,-32768,
1264 869,-32768, 1175, 747,-32768,-32768, 493,-32768, 1066, 1074,
1265 -32768, 1076, 1079,-32768,-32768, 1008,-32768,-32768, 576,-32768,
1266 -32768,-32768,-32768,-32768,-32768, 437, 107, 810, 493, 493,
1267 218,-32768, 319, 319,-32768, 373, 946,-32768, 1240, 1010,
1268 721, 432, 535, 83,-32768,-32768, 518,-32768,-32768,-32768,
1269 518, 28, 493, 493, 1241, 518,-32768, 86, 1243, 964,
1270 -32768, 532,-32768,-32768, 1246,-32768, 1247, 1248,-32768, 1250,
1271 -32768,-32768,-32768, 1183,-32768, 229, 1249,-32768,-32768,-32768,
1272 -32768, 1252, 1082, 1084,-32768,-32768,-32768,-32768, 107, 1253,
1273 397,-32768,-32768, 107, 762, 373, 829, 493, 493, 319,
1274 -32768, 1092,-32768,-32768, 518,-32768, 721, 1239,-32768, 535,
1275 -32768, 535,-32768,-32768, 1255,-32768,-32768, 1092, 1258,-32768,
1276 -32768,-32768,-32768, 5499, 507, 1267,-32768,-32768,-32768, 1266,
1277 -32768, 1270,-32768,-32768,-32768, 1090, 5499,-32768,-32768,-32768,
1278 1260,-32768,-32768, 373,-32768,-32768,-32768, 1271, 83,-32768,
1279 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 5499,-32768,-32768,
1280 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1291, 1297,-32768
1283 static const short yypgoto[] = {-32768,
1284 -32768, 1230,-32768,-32768,-32768,-32768, -400, -112,-32768,-32768,
1285 1009,-32768,-32768,-32768,-32768,-32768, 59,-32768,-32768, 396,
1286 -32768,-32768, 122, 154,-32768, 226,-32768,-32768,-32768, -942,
1287 -32768, -848,-32768,-32768, -409, -716,-32768,-32768,-32768, -580,
1288 -32768, -544,-32768, -512,-32768, 327,-32768,-32768, 655, -639,
1289 -32768, 259, 326,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1290 -32768,-32768,-32768,-32768, -876, 188,-32768, -960,-32768, 300,
1291 -32768, -592, 475, 1263,-32768,-32768, -591,-32768,-32768, -90,
1292 -363, -362, -361, -360, -368, -359, -358, -514, -481,-32768,
1293 -588,-32768, -136,-32768,-32768, 836, 174, -564, -397, 14,
1294 -32768,-32768,-32768, -435,-32768,-32768,-32768, 711, -242, 884,
1295 -32768, -857, -754,-32768,-32768, 533,-32768,-32768,-32768, -507,
1296 -32768,-32768,-32768, -335,-32768,-32768,-32768,-32768,-32768, 560,
1297 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1298 47, 769,-32768, 967,-32768,-32768,-32768,-32768,-32768,-32768,
1299 -32768,-32768,-32768,-32768, 1145, -744, -652,-32768, 170,-32768,
1300 -32768, 676, 679, 517, 1, -384, 1221,-32768, 2,-32768,
1301 -32768, -572,-32768,-32768,-32768, 667, -266, 1021,-32768, -462,
1302 129, 1336,-32768, 1111,-32768, 187,-32768,-32768,-32768,-32768,
1303 -145,-32768,-32768,-32768,-32768,-32768, 168, 1283, 1007, 1292,
1304 -32768,-32768, 1332,-32768,-32768, -341,-32768, 26, 230, -565,
1305 -846,-32768, 861,-32768,-32768, 950, -190, -456, 128,-32768,
1306 149, 51,-32768,-32768, 97,-32768, 106,-32768,-32768, 664,
1307 -32768, 368, -607,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1308 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1309 -32768,-32768, 1389,-32768,-32768, 1626, -247, 0, 449,-32768
1316 static const short yytable[] = { 119,
1317 117, 308, 489, 119, 126, 285, 576, 119, 212, 212,
1318 212, 603, 435, 95, 620, 516, 517, 1003, 518, 519,
1319 526, 520, 521, 522, 523, 726, 524, 525, 551, 680,
1320 527, 815, 528, 676, 201, 233, 233, 418, 919, 914,
1321 711, 713, 553, 923, 723, 454, 112, 927, 448, 622,
1322 130, 585, 133, 1022, 1154, 450, 760, 1085, 91, 205,
1323 326, 327, 328, 329, 330, 331, 1080, 1035, 429, 1041,
1324 3, 410, 257, -590, 601, -632, 414, -590, 415, -632,
1325 396, 726, 454, 629, 119, 117, 617, 1008, 930, 609,
1326 784, -624, 761, 500, 934, -624, 711, 713, 95, 260,
1327 723, 642, 830, 260, 664, 206, 1082, 387, 388, 501,
1328 831, -629, 1135, 1136, 207, -629, 1010, 119, 721, 381,
1329 382, -636, 1066, 1067, 763, -636, 288, 383, 384, 769,
1330 396, 112, 1068, 119, 1069, 301, 1053, 235, 235, 390,
1331 393, 385, 386, 91, 119, 263, 122, 123, 1153, 212,
1332 1070, 722, 1027, 1159, 262, 394, 263, 263, 236, 236,
1333 1081, 1083, -625, 379, 380, 815, -625, 212, 1034, 1100,
1334 1036, 815, 260, 472, 721, 201, 196, 760, 999, 1184,
1335 300, 3, 192, 669, 666, 1086, -269, 1109, 1000, 1111,
1336 381, 382, 760, 212, 1134, 194, 224, 224, 668, 279,
1337 205, 212, 1188, 212, 289, 212, 682, 722, 212, 540,
1338 450, 824, 607, 761, 1042, 1155, 212, 913, 647, 201,
1339 915, 212, 954, 212, -408, -408, -408, 201, 761, -408,
1340 -408, 201, 303, 1147, 201, 1150, 212, 212, 955, 312,
1341 405, 999, 233, 411, 205, 763, 206, 233, 313, 233,
1342 769, 1000, 205, -459, 472, 207, 205, 314, 1032, 205,
1343 763, 1032, 233, 201, 718, 769, 78, 1013, 315, 714,
1344 715, 716, 717, 719, 720, 549, 414, 119, 432, 317,
1345 119, 119, 119, 988, 1113, 513, 514, 515, 205, 308,
1346 206, 815, 396, 1008, 119, 447, 470, 435, 206, 207,
1347 119, 772, 206, 885, 489, 206, -269, 207, 472, 381,
1348 382, 207, 1009, 454, 207, 396, 3, 325, 886, 595,
1349 718, 320, 1010, 321, 474, 714, 715, 716, 717, 719,
1350 720, 665, 403, 552, 206, 308, 194, 318, 78, 1001,
1351 1150, 685, 1073, 207, 235, 212, 454, 336, 895, 235,
1352 308, 235, 1074, 212, 395, 212, 694, 396, 695, 824,
1353 337, 398, 680, 905, 235, 236, 667, 192, 471, 983,
1354 236, 338, 236, 404, 1045, 192, 406, 339, 726, 192,
1355 194, 1032, 192, 1032, 495, 236, 606, -270, 194, 255,
1356 409, 916, 194, 711, 713, 194, 921, 723, 1137, 212,
1357 1138, 78, 1001, 224, 985, 423, 387, 388, 224, 440,
1358 224, 192, 78, 79, 135, 454, 1139, 82, 83, 340,
1359 212, 212, 772, 224, 194, 201, -270, 212, 449, 119,
1360 561, 548, 842, 341, -408, 678, -408, 772, -269, 119,
1361 472, 119, 548, 119, -408, 308, 233, 233, 120, 342,
1362 205, 119, 120, 301, 119, 1082, 136, -680, 119, 396,
1363 1131, 1127, 1068, 597, 1069, 1010, -684, 308, 1011, 1012,
1364 808, 721, 78, 1013, 490, 412, 1014, 460, 396, 471,
1365 1070, -681, 493, -686, 494, 463, 464, 465, 466, 389,
1366 212, 615, -408, -408, -408, 616, 206, -408, -408, 119,
1367 119, 390, 78, 1075, 722, 207, 460, 970, 971, 391,
1368 972, 973, 980, 974, 975, 976, 977, 460, 978, 979,
1369 533, 534, 981, 454, 982, -408, -408, -408, 1104, 1131,
1370 -408, -408, -408, 120, 499, -408, -686, -408, 212, 212,
1371 3, 1009, -408, 678, -408, 392, 119, 634, 235, 235,
1372 399, 1010, -408, 548, 212, -513, 556, 212, 212, -626,
1373 1092, 819, 1093, -626, 201, 3, 120, 538, 396, 236,
1374 236, 548, 632, 192, 78, 79, 135, 400, 1094, 82,
1375 83, 544, 302, 119, 405, 301, 194, 381, 382, 205,
1376 383, 384, -683, 316, -408, -408, -408, 396, 408, -408,
1377 -408, 840, -627, 1049, 385, 386, -627, 224, 224, 843,
1378 844, 845, 846, 847, 848, 78, 1013, 718, 469, 556,
1379 407, 396, 714, 715, 716, 717, 719, 720, 212, 212,
1380 381, 382, 743, -686, -686, 206, -682, 674, -686, -686,
1381 212, 212, 924, 212, 207, 794, 1005, 795, 413, 78,
1382 79, 135, 308, 603, 82, 83, 1028, 308, 119, 1029,
1383 119, -46, 212, 990, 991, 1092, 1163, 1093, 556, 119,
1384 487, 488, 119, 119, 212, 822, 78, 79, 135, 419,
1385 474, 82, 83, 1094, 424, 1043, 556, 645, 743, 420,
1386 78, 79, 135, 992, 993, 82, 83, 1011, 1012, 365,
1387 946, 78, 1013, 621, 360, 1014, 361, 994, -408, 819,
1388 98, -269, 192, 604, 98, 78, 79, 135, 658, 659,
1389 82, 83, 242, 243, -408, 194, 120, 362, 363, 437,
1390 439, 441, 425, 366, 367, 368, 369, 370, 371, 372,
1391 373, 374, 375, 120, 446, 1146, 1092, 1060, 1093, 302,
1392 -269, -630, 472, 396, 693, -630, 1072, 645, 697, 1046,
1393 3, 427, 1047, -269, 1094, 472, 1195, 383, 384, 431,
1394 645, 466, 472, 3, 443, 212, 1097, 967, 968, 969,
1395 3, 385, 386, 445, 1122, 260, 1179, 1137, 1059, 1138,
1396 871, 872, 212, 1114, 119, 98, 460, 212, 460, 395,
1397 1206, 212, 396, 825, 698, 1139, 470, 451, 744, 462,
1398 265, 266, 267, 268, 269, 270, 271, 272, 468, 274,
1399 -587, 119, 277, 822, -587, 873, 874, 910, 98, 1141,
1400 910, 119, 477, 999, 875, 876, 1128, -634, 290, 291,
1401 293, -634, -621, 1000, 299, 389, -621, -586, 877, 878,
1402 1161, -586, 999, 379, 380, 1180, 879, 880, 1050, -622,
1403 322, 835, 1000, -622, -610, 917, 659, 332, -610, 319,
1404 379, 380, 841, -585, 478, 304, 260, -585, 120, 1071,
1405 151, 152, 153, 154, 155, 156, 260, 396, 573, 1029,
1406 120, 889, 120, 1006, 281, 282, 283, 157, 158, 159,
1407 302, 1025, 479, 588, 857, -619, 212, 593, 481, -619,
1408 78, 79, 135, 1038, 1039, 82, 83, 937, 376, 377,
1409 378, 160, 396, 78, 79, 135, 944, 322, 82, 83,
1410 78, 79, 135, 396, 482, 82, 83, 948, 858, 859,
1411 860, 861, 862, 863, 864, 865, 866, 867, 618, 619,
1412 483, -604, -609, 119, 119, -604, -609, 910, -618, 910,
1413 910, 910, -618, 260, 169, 426, 1140, 746, 747, 748,
1414 749, 376, 377, 378, 750, 751, 752, 753, 754, 755,
1415 756, 1162, 484, 412, 1029, 743, 396, 485, 98, 433,
1416 470, 436, 438, 78, 1001, 120, 1064, 172, 1006, 1006,
1417 852, 491, 853, 285, -408, 98, 1078, 542, 1025, 1025,
1418 1063, 299, 78, 1001, 322, -608, 172, -607, -606, -608,
1419 -408, -607, -606, 854, 855, 1078, 953, 308, 396, 1125,
1420 119, 1107, 302, 473, 543, 78, 305, 306, 212, 172,
1421 1201, 1143, 1144, 119, 561, 1116, 119, -605, -602, -603,
1422 545, -605, -602, -603, 322, -599, -600, 546, -591, -599,
1423 -600, 308, -591, 376, 377, 378, 550, 1006, 119, 119,
1424 1006, -594, 1078, 1078, 615, -594, 275, 276, 1052, 563,
1425 910, 1025, 910, 1025, -614, -615, 1025, -616, -614, -615,
1426 1025, -616, 119, 119, -612, 1025, -595, 564, -612, -593,
1427 -595, 119, -597, -593, -598, 565, -597, 573, -598, 573,
1428 -596, 801, 466, -269, -596, 119, 568, 574, 809, 581,
1429 580, 593, 120, 583, 868, 869, 870, 277, 1088, 1089,
1430 1090, 589, 590, 598, 594, 396, 1006, 119, 119, 1078,
1431 98, 602, 608, 611, 1025, 613, 614, 566, 631, 569,
1432 635, 575, 98, 646, 98, 636, 638, 1056, 649, 582,
1433 652, 654, 299, 655, 119, 1107, 657, 670, 660, 591,
1434 672, 480, 746, 675, 683, 687, 677, 778, 688, 782,
1435 785, 599, 804, 806, 473, 826, 605, 828, 1025, 433,
1436 829, 832, 884, 833, 834, 498, 838, 883, 839, 851,
1437 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
1438 512, 244, 245, 246, 247, 248, 249, 250, 251, 252,
1439 253, 881, 882, 887, 890, 918, 896, 926, 897, 898,
1440 935, 532, 947, 932, 940, 941, 945, 949, 986, 987,
1441 172, 801, 989, 922, 1048, 1040, 801, 1084, 1051, 1096,
1442 801, 901, 273, 1103, 904, 1120, 278, 98, 280, 928,
1443 284, 1142, 1158, 1140, 1115, 286, 1165, 1169, 1168, 1171,
1444 120, 648, 1173, 1174, 433, 294, 1176, 295, 1189, 1178,
1445 943, 1190, 1192, 1186, 1197, 1199, 1202, 662, 663, 1200,
1446 1209, 197, 230, 230, 299, 1203, 1210, 1016, 304, 496,
1447 198, 231, 231, 151, 152, 153, 154, 155, 156, 453,
1448 1204, 1191, 1151, 605, 254, 1058, 792, 1126, 433, 364,
1449 157, 158, 159, 1065, 1181, 1099, 952, 577, 691, 692,
1450 903, 925, 651, 322, 1196, 322, 790, 788, 938, 818,
1451 199, 232, 232, 475, 160, 287, 240, 422, 486, 539,
1452 1175, 612, 836, 1057, 0, 801, 0, 0, 0, 0,
1453 780, 0, 0, 0, 0, 0, 0, 0, 787, 0,
1454 789, 0, 0, 0, 802, 803, 0, 0, 0, 807,
1455 0, 0, 0, 591, 820, 0, 0, 169, 0, 473,
1456 0, 0, 0, 0, 0, 0, 0, 209, 238, 238,
1457 307, 0, 1054, 1055, 0, 0, 430, 0, 0, 322,
1458 0, 0, 0, 307, 307, 307, 307, 307, 307, 0,
1459 334, 335, 0, 0, 0, 0, 0, 0, 0, 0,
1460 0, 0, 197, 442, 0, 0, 444, 0, 0, 0,
1461 0, 198, 0, 0, 452, 0, 0, 455, 0, 0,
1462 690, 0, 0, 0, 0, 0, 0, 0, 78, 305,
1463 306, 0, 172, 0, 0, 0, 0, 0, 0, 0,
1464 0, 0, 0, 0, 0, 0, 197, 0, 0, 120,
1465 0, 199, 0, 0, 197, 198, 0, 801, 197, 907,
1466 0, 197, 120, 198, 0, 1119, 0, 198, 796, 230,
1467 198, 0, 0, 0, 230, 0, 230, 0, 231, 0,
1468 0, 0, 0, 231, 0, 231, 0, 1132, 1133, 230,
1469 197, 0, 0, 0, 0, 199, 0, 0, 231, 198,
1470 0, 936, 820, 199, 605, 0, 0, 199, 209, 0,
1471 199, 1156, 1157, 0, 0, 0, 0, 0, 232, 0,
1472 120, 0, 0, 232, 0, 232, 0, 0, 0, 0,
1473 0, 547, 0, 0, 120, 0, 0, 0, 232, 199,
1474 0, 455, 0, 0, 0, 0, 562, 0, 0, 0,
1475 0, 567, 209, 570, 0, 0, 1182, 1183, 0, 0,
1476 209, 579, 0, 0, 209, 584, 0, 209, 0, 0,
1477 0, 0, 0, 0, 0, 238, 0, 0, 0, 0,
1478 238, 0, 238, 120, 0, 0, 0, 0, 0, 0,
1479 1030, 0, 0, 0, 0, 238, 209, 1037, 796, 0,
1480 0, 0, 0, 796, 211, 239, 239, 796, 307, 307,
1481 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
1482 307, 307, 307, 307, 0, 0, 0, 21, 22, 23,
1483 24, 0, 25, 0, 0, 0, 0, 30, 31, 0,
1484 0, 34, 35, 0, 37, 38, 39, 40, 0, 0,
1485 0, 0, 197, 0, 0, 0, 950, 498, 307, 52,
1486 53, 198, 956, 957, 958, 959, 960, 961, 962, 963,
1487 964, 965, 966, 230, 230, 0, 0, 0, 0, 0,
1488 0, 0, 231, 231, 77, 0, 0, 0, 0, 0,
1489 0, 0, 0, 0, 81, 0, 0, 455, 0, 0,
1490 0, 199, 0, 0, 307, 0, 0, 0, 1101, 307,
1491 0, 98, 796, 0, 0, 0, 679, 0, 0, 307,
1492 0, 684, 232, 232, 820, 0, 1118, 0, 0, 0,
1493 0, 433, 0, 0, 1123, 1124, 0, 0, 0, 0,
1494 -251, 0, 0, 0, 0, 211, 304, 0, 562, 0,
1495 745, 151, 152, 153, 154, 155, 156, 0, 209, 0,
1496 0, 307, 0, 307, 0, 624, 626, 0, 157, 158,
1497 159, 0, 0, 0, 0, 0, 0, 1160, 0, 238,
1498 238, 0, 98, 0, 1164, 1166, 0, 0, 0, 211,
1499 0, 197, 160, 0, 0, 0, 820, 211, 0, 0,
1500 198, 211, 0, 0, 211, 0, 0, 0, 0, 0,
1501 0, 0, 239, 0, 307, 0, 0, 239, 0, 239,
1502 0, 1185, 0, 0, 0, 856, 0, 0, 0, 0,
1503 0, 0, 239, 211, 0, 169, 307, 0, 0, 0,
1504 199, 1193, 1194, 0, 796, 98, 0, 0, 1198, 0,
1505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1506 0, 0, 0, 0, 0, 712, 0, 0, 0, 0,
1507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1508 899, 900, 0, 0, 0, 0, 0, 0, 0, 0,
1509 0, 0, 0, 0, 0, 0, 0, 209, 0, 0,
1510 0, 0, 0, 0, 0, 0, 78, 305, 306, 0,
1511 172, 0, 0, 0, 0, 0, 0, 0, 929, 0,
1512 0, 712, 0, 0, 0, 0, 0, 0, 0, 0,
1513 0, 0, 307, 307, 307, 307, 307, 307, 849, 850,
1514 0, 0, 214, 0, 0, 0, 0, 138, 139, 140,
1515 0, 0, 215, 143, 144, 145, 146, 147, 148, 216,
1516 -486, -486, 0, 0, 0, 217, -486, 0, 0, 0,
1517 151, 152, 153, 154, 155, 156, 0, 0, 0, 0,
1518 0, 0, 0, -269, -269, 0, 0, 157, 158, 159,
1519 0, 0, 0, 0, 0, 211, 0, 0, 0, 0,
1520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1521 0, 160, 0, 0, 0, 0, 239, 239, 0, 0,
1522 0, 307, 0, 0, 1031, 0, 307, 0, 0, 0,
1523 0, 0, 0, 0, 0, -486, 162, 163, 164, 165,
1524 166, 167, 0, 0, 0, 0, 0, 0, 0, 1044,
1525 168, 0, 0, 0, 169, 0, 0, 0, 0, 0,
1526 0, 0, 0, 0, 0, 0, 0, 0, 0, 307,
1527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1530 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
1531 307, 307, 307, 307, 307, 307, 307, 0, 307, 0,
1532 0, 0, -1, 1, 0, 78, 170, 171, 0, 172,
1533 218, 219, 0, 0, 211, 0, 0, 0, 0, 0,
1534 2, 0, 0, 1102, 0, 0, -269, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
1536 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
1537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1538 0, 307, 0, 0, 0, 0, 0, 0, 0, -408,
1539 -408, -408, 0, 5, 0, 0, 0, 0, 6, 7,
1540 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 9, 10, 11, 0, 0, 712, 0,
1542 1167, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1543 0, 0, 12, 13, 14, 0, 15, 16, 17, 18,
1544 19, 20, 21, 22, 23, 24, 0, 25, 26, 27,
1545 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1546 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1547 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1548 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1549 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1550 0, 0, 0, 0, 0, 0, 78, 79, 80, 81,
1551 1205, 82, 83, 84, 0, 0, 0, 0, 0, 0,
1552 0, -2, 1, 0, 0, 0, 0, 0, 0, 0,
1553 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
1554 0, 0, 0, 0, 0, -269, 0, 0, 0, 0,
1555 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
1556 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
1557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0, -408, -408,
1559 -408, 0, 5, 0, 0, 0, 307, 6, 7, 8,
1560 0, 0, 0, 0, 0, 0, 0, 0, 0, 307,
1561 0, 0, 9, 10, 11, 0, 0, 0, 0, 0,
1562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1563 307, 12, 13, 14, 0, 15, 16, 17, 18, 19,
1564 20, 21, 22, 23, 24, 0, 25, 26, 27, 28,
1565 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1566 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1567 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1568 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1569 69, 70, 71, 72, 73, 74, 75, 76, 77, 0,
1570 0, 0, 0, 0, 0, 78, 79, 80, 81, 137,
1571 82, 83, 84, 0, 138, 139, 140, 0, 141, 142,
1572 143, 144, 145, 146, 147, 148, 149, -541, 536, 0,
1573 0, 0, 150, 0, 0, 0, 0, 151, 152, 153,
1574 154, 155, 156, 0, 0, 0, 0, 0, 0, 0,
1575 -269, -269, 0, 4, 157, 158, 159, 0, 0, 0,
1576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1577 0, 0, 0, 0, 0, -408, -408, -408, 160, 5,
1578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1580 0, 0, 0, 162, 163, 164, 165, 166, 167, 0,
1581 0, 0, 0, 0, 0, 0, 0, 168, 12, 13,
1582 14, 169, 15, 16, 17, 18, 19, 20, 21, 22,
1583 23, 24, 0, 25, 26, 27, 28, 29, 30, 31,
1584 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1585 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1586 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1587 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1588 72, 73, 74, 75, 76, 77, 0, 0, 0, 0,
1589 0, 0, 78, 170, 537, 81, 172, 173, 83, 84,
1590 137, 0, 0, 0, 0, 138, 139, 140, 0, 141,
1591 142, 143, 144, 145, 146, 147, 148, 149, -541, 0,
1592 0, 0, 0, 150, 0, 0, 0, 0, 151, 152,
1593 153, 154, 155, 156, 0, 0, 0, 0, 0, 0,
1594 0, -269, -269, 0, 0, 157, 158, 159, 0, 0,
1595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1596 0, 0, 0, 0, 0, 0, -269, -269, -269, 160,
1597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
1600 0, 0, 0, 0, 0, 0, 0, 0, 168, -269,
1601 -269, -269, 169, -269, -269, -269, -269, -269, -269, -269,
1602 -269, -269, -269, 0, -269, -269, -269, -269, -269, -269,
1603 -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
1604 -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
1605 -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
1606 -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
1607 -269, -269, -269, -269, -269, -269, -269, 0, 0, 0,
1608 0, 0, 0, 78, 170, 171, -269, 172, 173, 83,
1609 -269, 214, 0, 0, 0, 0, 138, 139, 140, 0,
1610 0, 215, 143, 144, 145, 146, 147, 148, 216, -541,
1611 -545, 0, 0, 0, 217, 0, 0, 0, 0, 151,
1612 152, 153, 154, 155, 156, 0, 0, 0, 0, 0,
1613 0, 0, -269, -269, 0, 0, 157, 158, 159, 0,
1614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1615 0, 0, 0, 0, 0, 0, 0, -269, -269, -269,
1616 160, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1618 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
1619 167, 0, 0, 0, 0, 0, 0, 0, 0, 168,
1620 -269, -269, -269, 169, -269, -269, -269, -269, -269, -269,
1621 -269, -269, -269, -269, 0, -269, -269, -269, -269, -269,
1622 -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
1623 -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
1624 -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
1625 -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
1626 -269, -269, -269, -269, -269, -269, -269, -269, 0, 0,
1627 0, 0, 0, 0, 78, 170, 171, -269, 172, 218,
1628 219, -269, 137, 0, 0, 0, 0, 138, 139, 140,
1629 0, 141, 142, 143, 144, 145, 146, 147, 148, 149,
1630 -541, 0, 0, 0, 0, 150, 0, 0, 0, 0,
1631 151, 152, 153, 154, 155, 156, 0, 0, 0, 0,
1632 0, 0, 0, -269, -269, 0, 137, 157, 158, 159,
1633 0, 138, 139, 140, 0, 141, 142, 143, 144, 145,
1634 146, 147, 148, 149, -541, 0, 0, 0, 0, 150,
1635 0, 160, 0, 0, 151, 152, 153, 154, 155, 156,
1636 0, 0, 0, 0, 0, 0, 0, -269, -269, 0,
1637 0, 157, 158, 159, 0, 161, 162, 163, 164, 165,
1638 166, 167, 0, 0, 0, 0, 0, 0, 0, 0,
1639 168, 0, 0, 0, 169, 160, 0, 0, 0, 0,
1640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1641 0, 0, 0, 0, 0, 0, 0, 0, 0, -514,
1642 162, 163, 164, 165, 166, 167, 0, 0, 0, 0,
1643 0, 0, 0, 0, 168, 0, 0, 0, 169, 0,
1644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 78, 170, 171, 0, 172,
1647 173, 83, 0, 0, 0, 214, 0, 0, 0, 0,
1648 138, 139, 140, 0, 0, 215, 143, 144, 145, 146,
1649 147, 148, 216, -541, -545, 0, 0, 0, 217, 0,
1650 0, 0, 0, 151, 152, 153, 154, 155, 156, 78,
1651 170, 171, 0, 172, 173, 83, -269, -269, 0, 137,
1652 157, 158, 159, 0, 138, 139, 140, 0, 141, 142,
1653 143, 144, 145, 146, 147, 148, 149, -541, 627, 0,
1654 0, 0, 150, 0, 160, 0, 0, 151, 152, 153,
1655 154, 155, 156, 0, 0, 0, 0, 0, 0, 0,
1656 -269, -269, 0, 0, 157, 158, 159, 0, -482, 162,
1657 163, 164, 165, 166, 167, 0, 0, 0, 0, 214,
1658 0, 0, 0, 168, 138, 139, 140, 169, 160, 215,
1659 143, 144, 145, 146, 147, 148, 216, -541, -545, 0,
1660 0, 0, 217, 0, 0, 0, 0, 151, 152, 153,
1661 154, 155, 156, 162, 163, 164, 165, 166, 167, 0,
1662 -269, -269, 0, 0, 157, 158, 159, 168, 0, 0,
1663 0, 169, 0, 0, 0, 0, 0, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 0, 0, 160, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 78, 170,
1666 171, 0, 172, 218, 219, 0, 0, 0, 0, 0,
1667 0, 0, 0, 162, 163, 164, 165, 166, 167, 0,
1668 0, 0, 0, 0, 0, 0, 0, 168, 0, 0,
1669 0, 169, 0, 0, 0, 0, 0, 0, 0, 0,
1670 0, 0, 78, 170, 171, 137, 172, 173, 83, 0,
1671 138, 139, 140, 0, 141, 142, 143, 144, 145, 146,
1672 147, 148, 149, -541, 0, 0, 0, 0, 150, 0,
1673 0, 0, 0, 151, 152, 153, 154, 155, 156, 0,
1674 0, 0, 0, 0, 0, 0, -269, -269, 0, 0,
1675 157, 158, 159, 0, 0, 0, 0, 0, 0, 0,
1676 0, 0, 78, 170, 171, 0, 172, 218, 219, 0,
1677 0, 0, 0, 0, 160, 0, 0, 0, 0, 0,
1678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1679 0, 0, 0, 0, 0, 0, 0, 0, 0, 162,
1680 163, 164, 165, 166, 167, 0, 0, 0, 0, 0,
1681 0, 0, 0, 168, 138, 139, 140, 169, 141, 142,
1682 143, 144, 145, 146, 147, 148, 216, -541, 554, 0,
1683 0, 0, 344, 0, 0, 0, 0, 151, 152, 153,
1684 154, 155, 156, 0, 0, 0, 0, 0, 0, 0,
1685 -269, -269, 0, 4, 157, 158, 159, 0, 0, 0,
1686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1687 0, 0, 0, 0, 0, 0, 0, 0, 160, 5,
1688 0, 0, 0, 0, 0, 0, 0, 0, 78, 170,
1689 171, 0, 172, 173, 83, 0, 0, 0, 0, 0,
1690 0, 0, 0, 162, 163, 164, 165, 166, 167, 0,
1691 0, 0, 0, 0, 0, 0, 0, 555, 12, 13,
1692 14, 169, 15, 16, 17, 18, 19, 20, 21, 22,
1693 23, 24, 0, 25, 26, 27, 28, 29, 30, 31,
1694 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1695 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1696 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1697 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1698 72, 73, 74, 75, 76, 77, 0, 0, 0, 0,
1699 0, 0, 78, 170, 537, 81, 172, 173, 83, 84,
1700 138, 139, 140, 0, 141, 142, 143, 144, 145, 146,
1701 147, 148, 216, -541, 628, 0, 0, 0, 344, 0,
1702 0, 0, 0, 151, 152, 153, 154, 155, 156, 0,
1703 0, 0, 0, 0, 0, 0, -269, -269, 0, 4,
1704 157, 158, 159, 0, 0, 0, 0, 0, 0, 0,
1705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1706 0, 0, 0, 0, 160, 5, 0, 0, 0, 0,
1707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1708 0, 0, 0, 0, 0, 0, 0, 0, 0, 162,
1709 163, 164, 165, 166, 167, 0, 0, 0, 0, 0,
1710 0, 0, 0, 168, 12, 13, 14, 169, 15, 16,
1711 17, 18, 19, 20, 21, 22, 23, 24, 0, 25,
1712 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1713 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1714 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1715 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1716 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1717 76, 77, 0, 0, 0, 0, 0, 0, 78, 170,
1718 537, 81, 172, 173, 83, 84, 138, 139, 140, 0,
1719 141, 142, 143, 144, 145, 146, 147, 148, 216, -541,
1720 640, 0, 0, 0, 344, 0, 0, 0, 0, 151,
1721 152, 153, 154, 155, 156, 0, 0, 0, 0, 0,
1722 0, 0, -269, -269, 0, 4, 157, 158, 159, 0,
1723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 160, 5, 0, 0, 0, 0, 0, 0, 0, 0,
1726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1727 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
1728 167, 0, 0, 0, 0, 0, 0, 0, 0, 641,
1729 12, 13, 14, 169, 15, 16, 17, 18, 19, 20,
1730 21, 22, 23, 24, 0, 25, 26, 27, 28, 29,
1731 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1732 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1733 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1734 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1735 70, 71, 72, 73, 74, 75, 76, 77, 0, 0,
1736 0, 0, 0, 0, 78, 170, 537, 81, 172, 173,
1737 83, 84, 138, 139, 140, 0, 141, 142, 143, 144,
1738 145, 146, 147, 148, 216, -541, 639, 0, 0, 0,
1739 344, 0, 0, 0, 0, 151, 152, 153, 154, 155,
1740 156, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 157, 158, 159, 0, 138, 139, 140, 0,
1742 141, 142, 143, 144, 145, 146, 147, 148, 216, -541,
1743 643, 0, 0, 0, 344, 0, 160, 0, 0, 151,
1744 152, 153, 154, 155, 156, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 157, 158, 159, 0,
1746 0, 162, 163, 164, 165, 166, 167, 0, 0, 0,
1747 0, 0, 0, 0, 0, 168, 0, 0, 0, 169,
1748 160, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
1751 167, 0, 0, 0, 0, 0, 0, 0, 0, 644,
1752 138, 139, 140, 169, 141, 142, 143, 144, 145, 146,
1753 147, 148, 216, -541, 696, 0, 0, 0, 344, 0,
1754 0, 0, 0, 151, 152, 153, 154, 155, 156, 0,
1755 78, 170, 171, 0, 172, 173, 83, 0, 0, 0,
1756 157, 158, 159, 0, 138, 139, 140, 0, 141, 142,
1757 143, 144, 145, 146, 147, 148, 216, -541, 774, 0,
1758 0, 0, 344, 0, 160, 0, 0, 151, 152, 153,
1759 154, 155, 156, 0, 78, 170, 171, 0, 172, 173,
1760 83, 0, 0, 0, 157, 158, 159, 0, 0, 162,
1761 163, 164, 165, 166, 167, 0, 0, 0, 0, 0,
1762 0, 0, 0, 168, 0, 0, 0, 169, 160, 0,
1763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1765 0, 0, 0, 162, 163, 164, 165, 166, 167, 0,
1766 0, 0, 0, 0, 0, 0, 0, 168, 138, 139,
1767 140, 169, 141, 142, 143, 144, 145, 146, 147, 148,
1768 216, -541, 775, 0, 0, 0, 344, 0, 0, 0,
1769 0, 151, 152, 153, 154, 155, 156, 0, 78, 170,
1770 171, 0, 172, 173, 83, 0, 0, 0, 157, 158,
1771 159, 0, 138, 139, 140, 0, 141, 142, 143, 144,
1772 145, 146, 147, 148, 216, -541, 777, 0, 0, 0,
1773 344, 0, 160, 0, 0, 151, 152, 153, 154, 155,
1774 156, 0, 78, 170, 171, 0, 172, 173, 83, 0,
1775 0, 0, 157, 158, 159, 0, 0, 162, 163, 164,
1776 165, 166, 167, 0, 0, 0, 0, 0, 0, 0,
1777 0, 776, 0, 0, 0, 169, 160, 0, 0, 0,
1778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780 0, 162, 163, 164, 165, 166, 167, 0, 0, 0,
1781 0, 0, 0, 0, 0, 168, 138, 139, 140, 169,
1782 141, 142, 143, 144, 145, 146, 147, 148, 216, -541,
1783 906, 0, 0, 0, 344, 0, 0, 0, 0, 151,
1784 152, 153, 154, 155, 156, 0, 78, 170, 171, 0,
1785 172, 173, 83, 0, 0, 0, 157, 158, 159, 0,
1786 138, 139, 140, 0, 141, 142, 143, 144, 145, 146,
1787 147, 148, 216, -541, 0, 0, 0, 0, 344, 0,
1788 160, 0, 0, 151, 152, 153, 154, 155, 156, 0,
1789 78, 170, 171, 0, 172, 173, 83, 0, 0, 0,
1790 157, 158, 159, 0, 0, 162, 163, 164, 165, 166,
1791 167, 0, 0, 0, 0, 0, 0, 0, 0, 168,
1792 0, 0, 0, 169, 160, 0, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 0, 0, 162,
1795 163, 164, 165, 166, 167, -135, 0, 0, 0, 0,
1796 -135, 0, 0, 168, 0, 0, 0, 169, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 0, 78, 170, 171, 0, 172, 173,
1800 83, 0, 0, 0, 0, 0, 0, 5, 0, 0,
1801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1803 0, 0, 0, 0, -544, 0, 0, 0, 78, 170,
1804 171, 0, 172, 173, 83, 0, 12, 13, 14, 0,
1805 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1806 0, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1807 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1808 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1809 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1810 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1811 74, 75, 76, 77, 0, 0, 0, 0, 0, 0,
1812 0, 0, 132, 81, 12, 13, 14, 84, 15, 16,
1813 17, 18, 19, 20, 21, 22, 23, 24, 0, 25,
1814 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1815 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1816 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1817 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1818 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1819 76, 77, 0, 0, 0, 0, 0, 793, 1112, 0,
1820 132, 81, 304, 0, 794, 84, 795, 151, 152, 153,
1821 154, 155, 156, 0, 0, 0, 0, 0, 0, 0,
1822 0, 0, 793, 0, 157, 158, 159, 304, 0, 794,
1823 0, 795, 151, 152, 153, 154, 155, 156, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0, 160, 157,
1825 158, 159, 0, 0, 0, 0, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827 0, 0, 0, 160, 0, 0, 0, 0, 0, 0,
1828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 169, 0, 0, 0, 0, 0, 0, 0, 0,
1830 0, 0, 0, 0, 0, 0, -684, 0, 0, 0,
1831 0, 0, 0, 0, -541, 0, 169, 0, 0, 344,
1832 0, 0, 0, 0, 151, 152, 153, 154, 155, 156,
1833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834 0, 157, 158, 159, 0, 0, 0, 0, 0, 0,
1835 0, -686, -686, -686, 0, 0, 0, 0, 0, 0,
1836 0, 0, 78, 170, 171, 160, 172, 82, 83, 0,
1837 0, -686, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 0, 0, 0, 0, 0, 0, 78, 170, 171,
1839 0, 172, 82, 83, -686, -686, -686, 0, -686, -686,
1840 -686, -686, -686, -686, -686, -686, -686, -686, 169, -686,
1841 -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
1842 -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
1843 -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
1844 -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
1845 -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
1846 -686, -686, -269, 0, 0, 0, 0, 0, 0, 0,
1847 0, -686, 3, 0, 0, -686, 0, 0, 0, 78,
1848 305, 306, 0, 172, 0, 0, 0, 0, 0, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854 0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
1855 14, 0, 15, 16, 17, 18, 19, 20, 21, 22,
1856 23, 24, 0, 25, 26, 27, 28, 29, 30, 31,
1857 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1858 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1859 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1860 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1861 72, 73, 74, 75, 76, 77, 0, 0, 0, 0,
1862 0, 0, 78, 79, 80, 81, 0, 82, 83, 84,
1863 304, 0, 0, 600, 0, 151, 152, 153, 154, 155,
1864 156, 304, 0, 0, 681, 0, 151, 152, 153, 154,
1865 155, 156, 157, 158, 159, 0, 0, 0, 0, 0,
1866 0, 304, 951, 157, 158, 159, 151, 152, 153, 154,
1867 155, 156, 304, -251, 0, 0, 160, 151, 152, 153,
1868 154, 155, 156, 157, 158, 159, 0, 160, 0, 0,
1869 0, 0, 304, 0, 157, 158, 159, 151, 152, 153,
1870 154, 155, 156, 0, 0, 0, 0, 160, 0, 0,
1871 0, 0, 0, 0, 157, 158, 159, 333, 160, 169,
1872 0, 0, 151, 152, 153, 154, 155, 156, 0, 0,
1873 169, 0, 0, 0, 0, 0, 0, 0, 160, 157,
1874 158, 159, 0, 0, 0, 0, 0, 0, 0, 623,
1875 169, 0, 0, 0, 151, 152, 153, 154, 155, 156,
1876 0, 169, 0, 160, 0, 0, 0, 0, 0, 0,
1877 0, 157, 158, 159, 0, 0, 0, 0, 0, 0,
1878 0, 169, 0, 0, 0, 0, 0, 0, 0, 0,
1879 78, 305, 306, 0, 172, 160, 0, 0, 0, 0,
1880 0, 78, 305, 306, 625, 172, 169, 0, 0, 151,
1881 152, 153, 154, 155, 156, 0, 0, 0, 0, 0,
1882 0, 78, 305, 306, 0, 172, 157, 158, 159, 0,
1883 0, 0, 78, 305, 306, 0, 172, 699, 169, 0,
1884 0, 0, 700, 701, 702, 703, 704, 705, 0, 0,
1885 160, 0, 78, 305, 306, 0, 172, 0, 0, 157,
1886 706, 707, 0, 0, 0, 0, 0, 0, 0, 0,
1887 0, 0, 0, 0, 0, 0, 0, 78, 305, 306,
1888 0, 172, 0, 708, 0, 0, 0, 0, 0, 0,
1889 0, 0, 0, 169, 0, 0, 0, 0, 0, 0,
1890 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,
1891 305, 306, 0, 172, 0, 0, 0, 0, 0, 0,
1892 0, 0, 0, 0, 0, 0, 169, 0, 0, 0,
1893 0, 0, 0, 0, -195, -195, 0, 0, 0, 0,
1894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1896 0, 0, 0, 0, 78, 305, 306, 0, 172, 0,
1897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1899 0, 0, 0, 0, 0, 0, 0, 78, 709, 710,
1900 0, 172, 12, 13, 14, 0, 15, 16, 17, 18,
1901 19, 20, 21, 22, 23, 24, 0, 25, 26, 27,
1902 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1903 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1904 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1905 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1906 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1907 4, 0, 0, 0, 0, 0, 0, 0, 132, 81,
1908 0, 0, 0, 84, 0, 0, 0, 0, 0, 0,
1909 0, 0, -408, -408, -408, 0, 5, 0, 0, 0,
1910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1913 0, 0, 0, 0, 0, 12, 13, 14, 0, 15,
1914 16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
1915 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1916 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1917 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1918 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1919 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1920 75, 76, 77, 4, 0, 0, 0, 0, 0, 0,
1921 0, 132, 81, 0, 0, 0, 84, 0, 0, 0,
1922 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
1923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1926 0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
1927 14, 0, 15, 16, 17, 18, 19, 20, 21, 22,
1928 23, 24, 0, 25, 26, 27, 28, 29, 30, 31,
1929 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1930 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1931 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1932 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1933 72, 73, 74, 75, 76, 77, 4, 0, 0, 0,
1934 0, 0, 78, 1061, 132, 81, 0, 0, 0, 84,
1935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1936 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,
1937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1940 0, 12, 13, 14, 0, 15, 16, 17, 18, 19,
1941 20, 21, 22, 23, 24, 0, 25, 26, 27, 28,
1942 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1943 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1944 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1945 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1946 69, 70, 71, 72, 73, 74, 75, 76, 77, -408,
1947 -408, -408, 0, 0, 0, 0, 0, 132, 81, 0,
1948 0, 0, 84, 0, 0, 0, 0, 0, 0, 0,
1949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1951 0, 0, 12, 13, 14, 0, 15, 16, 17, 18,
1952 19, 20, 21, 22, 23, 24, 0, 25, 26, 27,
1953 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1954 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1955 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1956 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1957 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1958 9, 10, 11, 0, 0, 0, 0, 0, 132, 81,
1959 0, 0, 0, 84, 0, 0, 0, 0, 0, 12,
1960 13, 14, 0, 15, 16, 17, 18, 19, 20, 21,
1961 22, 23, 24, 0, 25, 26, 27, 28, 29, 30,
1962 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1963 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1964 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1965 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1966 71, 72, 73, 74, 75, 76, 77, 0, 0, 0,
1967 0, 0, 0, 0, 0, 132, 81, 12, 13, 14,
1968 84, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1969 24, 0, 25, 26, 27, 28, 29, 30, 31, 32,
1970 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1971 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1972 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1973 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1974 73, 74, 75, 76, 77, 0, 0, 0, 0, 0,
1975 0, 0, 0, 132, 81, 0, 0, 0, 84
1978 static const short yycheck[] = { 0,
1979 0, 138, 344, 4, 3, 118, 442, 8, 9, 10,
1980 11, 474, 279, 0, 529, 379, 380, 894, 381, 382,
1981 389, 383, 384, 385, 386, 633, 387, 388, 426, 602,
1982 390, 671, 391, 598, 9, 10, 11, 228, 793, 784,
1983 633, 633, 427, 798, 633, 5, 0, 802, 296, 531,
1984 4, 452, 6, 902, 27, 298, 637, 55, 0, 9,
1985 151, 152, 153, 154, 155, 156, 1009, 914, 259, 927,
1986 34, 217, 19, 21, 472, 21, 222, 25, 224, 25,
1987 21, 689, 5, 540, 85, 85, 27, 5, 805, 487,
1988 656, 21, 637, 28, 811, 25, 689, 689, 85, 18,
1989 689, 558, 25, 18, 23, 9, 24, 53, 54, 44,
1990 683, 21, 1073, 1074, 9, 25, 34, 118, 633, 49,
1991 50, 21, 999, 1000, 637, 25, 125, 37, 38, 637,
1992 21, 85, 26, 134, 28, 134, 27, 10, 11, 39,
1993 41, 51, 52, 85, 145, 99, 110, 111, 1091, 150,
1994 44, 633, 907, 1096, 24, 56, 110, 111, 10, 11,
1995 1009, 1010, 21, 32, 33, 805, 25, 168, 913, 1027,
1996 915, 811, 18, 26, 689, 150, 9, 758, 24, 1140,
1997 134, 34, 9, 584, 582, 183, 18, 1034, 34, 1036,
1998 49, 50, 773, 194, 1071, 9, 10, 11, 583, 87,
1999 150, 202, 1145, 204, 21, 206, 604, 689, 209, 400,
2000 453, 674, 479, 758, 931, 188, 217, 783, 560, 194,
2001 786, 222, 28, 224, 184, 185, 186, 202, 773, 189,
2002 190, 206, 24, 1082, 209, 1084, 237, 238, 44, 24,
2003 188, 24, 217, 218, 194, 758, 150, 222, 24, 224,
2004 758, 34, 202, 25, 26, 150, 206, 24, 911, 209,
2005 773, 914, 237, 238, 633, 773, 184, 185, 24, 633,
2006 633, 633, 633, 633, 633, 421, 422, 278, 278, 18,
2007 281, 282, 283, 891, 1039, 376, 377, 378, 238, 426,
2008 194, 931, 21, 5, 295, 295, 25, 564, 202, 194,
2009 301, 637, 206, 41, 646, 209, 24, 202, 26, 49,
2010 50, 206, 24, 5, 209, 21, 34, 150, 56, 25,
2011 689, 148, 34, 150, 323, 689, 689, 689, 689, 689,
2012 689, 579, 204, 25, 238, 472, 150, 18, 184, 185,
2013 1189, 608, 24, 238, 217, 346, 5, 24, 758, 222,
2014 487, 224, 34, 354, 18, 356, 623, 21, 625, 822,
2015 16, 194, 935, 773, 237, 217, 25, 194, 322, 884,
2016 222, 16, 224, 206, 939, 202, 209, 16, 986, 206,
2017 194, 1034, 209, 1036, 359, 237, 477, 24, 202, 26,
2018 217, 789, 206, 986, 986, 209, 794, 986, 26, 400,
2019 28, 184, 185, 217, 886, 238, 53, 54, 222, 19,
2020 224, 238, 184, 185, 186, 5, 44, 189, 190, 16,
2021 421, 422, 758, 237, 238, 400, 24, 428, 26, 430,
2022 430, 418, 699, 15, 24, 25, 26, 773, 24, 440,
2023 26, 442, 429, 444, 34, 582, 421, 422, 0, 100,
2024 400, 452, 4, 452, 455, 24, 8, 22, 459, 21,
2025 1068, 25, 26, 25, 28, 34, 22, 604, 180, 181,
2026 5, 986, 184, 185, 346, 18, 188, 304, 21, 433,
2027 44, 22, 354, 34, 356, 312, 313, 314, 315, 29,
2028 491, 21, 184, 185, 186, 25, 400, 189, 190, 500,
2029 501, 39, 184, 185, 986, 400, 333, 871, 872, 40,
2030 873, 874, 881, 875, 876, 877, 878, 344, 879, 880,
2031 42, 43, 882, 5, 883, 184, 185, 186, 22, 1137,
2032 189, 190, 18, 85, 361, 21, 87, 23, 539, 540,
2033 34, 24, 24, 25, 26, 55, 547, 547, 421, 422,
2034 94, 34, 34, 540, 555, 94, 428, 558, 559, 21,
2035 26, 674, 28, 25, 539, 34, 118, 400, 21, 421,
2036 422, 558, 25, 400, 184, 185, 186, 19, 44, 189,
2037 190, 408, 134, 584, 188, 584, 400, 49, 50, 539,
2038 37, 38, 22, 145, 184, 185, 186, 21, 24, 189,
2039 190, 25, 21, 945, 51, 52, 25, 421, 422, 700,
2040 701, 702, 703, 704, 705, 184, 185, 986, 18, 491,
2041 22, 21, 986, 986, 986, 986, 986, 986, 629, 630,
2042 49, 50, 633, 184, 185, 539, 22, 591, 189, 190,
2043 641, 642, 23, 644, 539, 26, 894, 28, 94, 184,
2044 185, 186, 789, 1116, 189, 190, 18, 794, 659, 21,
2045 661, 22, 663, 88, 89, 26, 1102, 28, 540, 670,
2046 6, 7, 673, 674, 675, 674, 184, 185, 186, 19,
2047 679, 189, 190, 44, 94, 933, 558, 559, 689, 20,
2048 184, 185, 186, 118, 119, 189, 190, 180, 181, 23,
2049 837, 184, 185, 530, 24, 188, 26, 132, 28, 822,
2050 0, 24, 539, 26, 4, 184, 185, 186, 20, 21,
2051 189, 190, 12, 13, 44, 539, 278, 47, 48, 281,
2052 282, 283, 27, 57, 58, 59, 60, 61, 62, 63,
2053 64, 65, 66, 295, 23, 25, 26, 995, 28, 301,
2054 24, 21, 26, 21, 22, 25, 1004, 629, 630, 25,
2055 34, 24, 28, 24, 44, 26, 1164, 37, 38, 18,
2056 642, 598, 26, 34, 18, 776, 1024, 868, 869, 870,
2057 34, 51, 52, 18, 1051, 18, 25, 26, 21, 28,
2058 32, 33, 793, 1041, 795, 85, 623, 798, 625, 18,
2059 1198, 802, 21, 675, 631, 44, 25, 24, 635, 22,
2060 100, 101, 102, 103, 104, 105, 106, 107, 18, 109,
2061 21, 822, 112, 822, 25, 49, 50, 781, 118, 1077,
2062 784, 832, 25, 24, 37, 38, 27, 21, 128, 129,
2063 130, 25, 21, 34, 134, 29, 25, 21, 51, 52,
2064 1098, 25, 24, 32, 33, 27, 53, 54, 949, 21,
2065 150, 688, 34, 25, 21, 20, 21, 157, 25, 18,
2066 32, 33, 699, 21, 25, 24, 18, 25, 430, 21,
2067 29, 30, 31, 32, 33, 34, 18, 21, 440, 21,
2068 442, 25, 444, 894, 67, 68, 69, 46, 47, 48,
2069 452, 902, 24, 455, 23, 21, 907, 459, 18, 25,
2070 184, 185, 186, 20, 21, 189, 190, 191, 34, 35,
2071 36, 70, 21, 184, 185, 186, 25, 217, 189, 190,
2072 184, 185, 186, 21, 18, 189, 190, 25, 57, 58,
2073 59, 60, 61, 62, 63, 64, 65, 66, 500, 501,
2074 18, 21, 21, 954, 955, 25, 25, 911, 21, 913,
2075 914, 915, 25, 18, 113, 255, 21, 72, 73, 74,
2076 75, 34, 35, 36, 79, 80, 81, 82, 83, 84,
2077 85, 18, 18, 18, 21, 986, 21, 18, 278, 279,
2078 25, 281, 282, 184, 185, 547, 997, 188, 999, 1000,
2079 24, 19, 26, 1116, 28, 295, 1007, 9, 1009, 1010,
2080 997, 301, 184, 185, 304, 21, 188, 21, 21, 25,
2081 44, 25, 25, 47, 48, 1026, 853, 1164, 21, 22,
2082 1031, 1031, 584, 323, 11, 184, 185, 186, 1039, 188,
2083 1177, 32, 33, 1044, 1044, 1044, 1047, 21, 21, 21,
2084 25, 25, 25, 25, 344, 21, 21, 24, 21, 25,
2085 25, 1198, 25, 34, 35, 36, 11, 1068, 1069, 1070,
2086 1071, 21, 1073, 1074, 21, 25, 110, 111, 25, 90,
2087 1034, 1082, 1036, 1084, 21, 21, 1087, 21, 25, 25,
2088 1091, 25, 1093, 1094, 21, 1096, 21, 21, 25, 21,
2089 25, 1102, 21, 25, 21, 19, 25, 659, 25, 661,
2090 21, 663, 939, 19, 25, 1116, 19, 19, 670, 27,
2091 90, 673, 674, 24, 34, 35, 36, 417, 51, 52,
2092 53, 25, 21, 18, 22, 21, 1137, 1138, 1139, 1140,
2093 430, 24, 21, 25, 1145, 11, 24, 437, 24, 439,
2094 24, 441, 442, 24, 444, 27, 25, 984, 23, 449,
2095 20, 19, 452, 20, 1165, 1165, 19, 21, 23, 459,
2096 5, 336, 72, 25, 24, 22, 27, 25, 24, 20,
2097 20, 471, 27, 25, 474, 18, 476, 25, 1189, 479,
2098 27, 21, 55, 25, 22, 360, 25, 40, 25, 24,
2099 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
2100 375, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2101 76, 29, 39, 25, 185, 18, 90, 22, 90, 90,
2102 24, 396, 18, 25, 25, 25, 25, 25, 21, 18,
2103 188, 793, 40, 795, 18, 27, 798, 23, 21, 24,
2104 802, 90, 108, 18, 90, 190, 112, 547, 114, 90,
2105 116, 22, 22, 21, 90, 121, 21, 20, 22, 20,
2106 822, 561, 90, 25, 564, 131, 25, 133, 40, 27,
2107 832, 27, 25, 192, 18, 20, 27, 577, 578, 20,
2108 0, 9, 10, 11, 584, 25, 0, 902, 24, 25,
2109 9, 10, 11, 29, 30, 31, 32, 33, 34, 301,
2110 1189, 1158, 1087, 603, 85, 989, 662, 1059, 608, 175,
2111 46, 47, 48, 998, 1137, 1026, 852, 444, 618, 619,
2112 771, 799, 564, 623, 1165, 625, 661, 659, 822, 673,
2113 9, 10, 11, 323, 70, 125, 11, 237, 342, 400,
2114 1121, 491, 689, 986, -1, 907, -1, -1, -1, -1,
2115 650, -1, -1, -1, -1, -1, -1, -1, 658, -1,
2116 660, -1, -1, -1, 664, 665, -1, -1, -1, 669,
2117 -1, -1, -1, 673, 674, -1, -1, 113, -1, 679,
2118 -1, -1, -1, -1, -1, -1, -1, 9, 10, 11,
2119 138, -1, 954, 955, -1, -1, 262, -1, -1, 699,
2120 -1, -1, -1, 151, 152, 153, 154, 155, 156, -1,
2121 158, 159, -1, -1, -1, -1, -1, -1, -1, -1,
2122 -1, -1, 150, 289, -1, -1, 292, -1, -1, -1,
2123 -1, 150, -1, -1, 300, -1, -1, 303, -1, -1,
2124 615, -1, -1, -1, -1, -1, -1, -1, 184, 185,
2125 186, -1, 188, -1, -1, -1, -1, -1, -1, -1,
2126 -1, -1, -1, -1, -1, -1, 194, -1, -1, 1031,
2127 -1, 150, -1, -1, 202, 194, -1, 1039, 206, 779,
2128 -1, 209, 1044, 202, -1, 1047, -1, 206, 663, 217,
2129 209, -1, -1, -1, 222, -1, 224, -1, 217, -1,
2130 -1, -1, -1, 222, -1, 224, -1, 1069, 1070, 237,
2131 238, -1, -1, -1, -1, 194, -1, -1, 237, 238,
2132 -1, 821, 822, 202, 824, -1, -1, 206, 150, -1,
2133 209, 1093, 1094, -1, -1, -1, -1, -1, 217, -1,
2134 1102, -1, -1, 222, -1, 224, -1, -1, -1, -1,
2135 -1, 417, -1, -1, 1116, -1, -1, -1, 237, 238,
2136 -1, 427, -1, -1, -1, -1, 432, -1, -1, -1,
2137 -1, 437, 194, 439, -1, -1, 1138, 1139, -1, -1,
2138 202, 447, -1, -1, 206, 451, -1, 209, -1, -1,
2139 -1, -1, -1, -1, -1, 217, -1, -1, -1, -1,
2140 222, -1, 224, 1165, -1, -1, -1, -1, -1, -1,
2141 910, -1, -1, -1, -1, 237, 238, 917, 793, -1,
2142 -1, -1, -1, 798, 9, 10, 11, 802, 376, 377,
2143 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
2144 388, 389, 390, 391, -1, -1, -1, 120, 121, 122,
2145 123, -1, 125, -1, -1, -1, -1, 130, 131, -1,
2146 -1, 134, 135, -1, 137, 138, 139, 140, -1, -1,
2147 -1, -1, 400, -1, -1, -1, 851, 852, 426, 152,
2148 153, 400, 857, 858, 859, 860, 861, 862, 863, 864,
2149 865, 866, 867, 421, 422, -1, -1, -1, -1, -1,
2150 -1, -1, 421, 422, 177, -1, -1, -1, -1, -1,
2151 -1, -1, -1, -1, 187, -1, -1, 583, -1, -1,
2152 -1, 400, -1, -1, 472, -1, -1, -1, 1028, 477,
2153 -1, 1031, 907, -1, -1, -1, 602, -1, -1, 487,
2154 -1, 607, 421, 422, 1044, -1, 1046, -1, -1, -1,
2155 -1, 1051, -1, -1, 1054, 1055, -1, -1, -1, -1,
2156 18, -1, -1, -1, -1, 150, 24, -1, 634, -1,
2157 636, 29, 30, 31, 32, 33, 34, -1, 400, -1,
2158 -1, 529, -1, 531, -1, 533, 534, -1, 46, 47,
2159 48, -1, -1, -1, -1, -1, -1, 1097, -1, 421,
2160 422, -1, 1102, -1, 1104, 1105, -1, -1, -1, 194,
2161 -1, 539, 70, -1, -1, -1, 1116, 202, -1, -1,
2162 539, 206, -1, -1, 209, -1, -1, -1, -1, -1,
2163 -1, -1, 217, -1, 582, -1, -1, 222, -1, 224,
2164 -1, 1141, -1, -1, -1, 711, -1, -1, -1, -1,
2165 -1, -1, 237, 238, -1, 113, 604, -1, -1, -1,
2166 539, 1161, 1162, -1, 1039, 1165, -1, -1, 1168, -1,
2167 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2168 -1, -1, -1, -1, -1, 633, -1, -1, -1, -1,
2169 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2170 766, 767, -1, -1, -1, -1, -1, -1, -1, -1,
2171 -1, -1, -1, -1, -1, -1, -1, 539, -1, -1,
2172 -1, -1, -1, -1, -1, -1, 184, 185, 186, -1,
2173 188, -1, -1, -1, -1, -1, -1, -1, 804, -1,
2174 -1, 689, -1, -1, -1, -1, -1, -1, -1, -1,
2175 -1, -1, 700, 701, 702, 703, 704, 705, 706, 707,
2176 -1, -1, 1, -1, -1, -1, -1, 6, 7, 8,
2177 -1, -1, 11, 12, 13, 14, 15, 16, 17, 18,
2178 19, 20, -1, -1, -1, 24, 25, -1, -1, -1,
2179 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2180 -1, -1, -1, 42, 43, -1, -1, 46, 47, 48,
2181 -1, -1, -1, -1, -1, 400, -1, -1, -1, -1,
2182 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2183 -1, 70, -1, -1, -1, -1, 421, 422, -1, -1,
2184 -1, 789, -1, -1, 910, -1, 794, -1, -1, -1,
2185 -1, -1, -1, -1, -1, 94, 95, 96, 97, 98,
2186 99, 100, -1, -1, -1, -1, -1, -1, -1, 935,
2187 109, -1, -1, -1, 113, -1, -1, -1, -1, -1,
2188 -1, -1, -1, -1, -1, -1, -1, -1, -1, 837,
2189 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2190 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2192 868, 869, 870, 871, 872, 873, 874, 875, 876, 877,
2193 878, 879, 880, 881, 882, 883, 884, -1, 886, -1,
2194 -1, -1, 0, 1, -1, 184, 185, 186, -1, 188,
2195 189, 190, -1, -1, 539, -1, -1, -1, -1, -1,
2196 18, -1, -1, 1029, -1, -1, 24, -1, -1, -1,
2197 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
2198 -1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
2199 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2200 -1, 949, -1, -1, -1, -1, -1, -1, -1, 67,
2201 68, 69, -1, 71, -1, -1, -1, -1, 76, 77,
2202 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2203 -1, -1, -1, 91, 92, 93, -1, -1, 986, -1,
2204 1106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2205 -1, -1, 110, 111, 112, -1, 114, 115, 116, 117,
2206 118, 119, 120, 121, 122, 123, -1, 125, 126, 127,
2207 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2208 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2209 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2210 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2211 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2212 -1, -1, -1, -1, -1, -1, 184, 185, 186, 187,
2213 1196, 189, 190, 191, -1, -1, -1, -1, -1, -1,
2214 -1, 0, 1, -1, -1, -1, -1, -1, -1, -1,
2215 -1, -1, -1, -1, -1, -1, -1, -1, -1, 18,
2216 -1, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2217 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
2218 -1, -1, -1, -1, -1, -1, 45, -1, -1, -1,
2219 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2220 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
2221 69, -1, 71, -1, -1, -1, 1164, 76, 77, 78,
2222 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1177,
2223 -1, -1, 91, 92, 93, -1, -1, -1, -1, -1,
2224 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2225 1198, 110, 111, 112, -1, 114, 115, 116, 117, 118,
2226 119, 120, 121, 122, 123, -1, 125, 126, 127, 128,
2227 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2228 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2229 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2230 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2231 169, 170, 171, 172, 173, 174, 175, 176, 177, -1,
2232 -1, -1, -1, -1, -1, 184, 185, 186, 187, 1,
2233 189, 190, 191, -1, 6, 7, 8, -1, 10, 11,
2234 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2235 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2236 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2237 42, 43, -1, 45, 46, 47, 48, -1, -1, -1,
2238 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2239 -1, -1, -1, -1, -1, 67, 68, 69, 70, 71,
2240 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2241 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2242 -1, -1, -1, 95, 96, 97, 98, 99, 100, -1,
2243 -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
2244 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2245 122, 123, -1, 125, 126, 127, 128, 129, 130, 131,
2246 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2247 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2248 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2249 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2250 172, 173, 174, 175, 176, 177, -1, -1, -1, -1,
2251 -1, -1, 184, 185, 186, 187, 188, 189, 190, 191,
2252 1, -1, -1, -1, -1, 6, 7, 8, -1, 10,
2253 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2254 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2255 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2256 -1, 42, 43, -1, -1, 46, 47, 48, -1, -1,
2257 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2258 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
2259 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2260 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2261 -1, -1, -1, -1, 95, 96, 97, 98, 99, 100,
2262 -1, -1, -1, -1, -1, -1, -1, -1, 109, 110,
2263 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2264 121, 122, 123, -1, 125, 126, 127, 128, 129, 130,
2265 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2266 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2267 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2268 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2269 171, 172, 173, 174, 175, 176, 177, -1, -1, -1,
2270 -1, -1, -1, 184, 185, 186, 187, 188, 189, 190,
2271 191, 1, -1, -1, -1, -1, 6, 7, 8, -1,
2272 -1, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2273 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2274 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2275 -1, -1, 42, 43, -1, -1, 46, 47, 48, -1,
2276 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2277 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
2278 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2279 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2280 -1, -1, -1, -1, -1, 95, 96, 97, 98, 99,
2281 100, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2282 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2283 120, 121, 122, 123, -1, 125, 126, 127, 128, 129,
2284 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2285 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2286 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2287 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2288 170, 171, 172, 173, 174, 175, 176, 177, -1, -1,
2289 -1, -1, -1, -1, 184, 185, 186, 187, 188, 189,
2290 190, 191, 1, -1, -1, -1, -1, 6, 7, 8,
2291 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2292 19, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2293 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2294 -1, -1, -1, 42, 43, -1, 1, 46, 47, 48,
2295 -1, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2296 15, 16, 17, 18, 19, -1, -1, -1, -1, 24,
2297 -1, 70, -1, -1, 29, 30, 31, 32, 33, 34,
2298 -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
2299 -1, 46, 47, 48, -1, 94, 95, 96, 97, 98,
2300 99, 100, -1, -1, -1, -1, -1, -1, -1, -1,
2301 109, -1, -1, -1, 113, 70, -1, -1, -1, -1,
2302 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2303 -1, -1, -1, -1, -1, -1, -1, -1, -1, 94,
2304 95, 96, 97, 98, 99, 100, -1, -1, -1, -1,
2305 -1, -1, -1, -1, 109, -1, -1, -1, 113, -1,
2306 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2307 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2308 -1, -1, -1, -1, -1, 184, 185, 186, -1, 188,
2309 189, 190, -1, -1, -1, 1, -1, -1, -1, -1,
2310 6, 7, 8, -1, -1, 11, 12, 13, 14, 15,
2311 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2312 -1, -1, -1, 29, 30, 31, 32, 33, 34, 184,
2313 185, 186, -1, 188, 189, 190, 42, 43, -1, 1,
2314 46, 47, 48, -1, 6, 7, 8, -1, 10, 11,
2315 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2316 -1, -1, 24, -1, 70, -1, -1, 29, 30, 31,
2317 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2318 42, 43, -1, -1, 46, 47, 48, -1, 94, 95,
2319 96, 97, 98, 99, 100, -1, -1, -1, -1, 1,
2320 -1, -1, -1, 109, 6, 7, 8, 113, 70, 11,
2321 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2322 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2323 32, 33, 34, 95, 96, 97, 98, 99, 100, -1,
2324 42, 43, -1, -1, 46, 47, 48, 109, -1, -1,
2325 -1, 113, -1, -1, -1, -1, -1, -1, -1, -1,
2326 -1, -1, -1, -1, -1, -1, -1, -1, 70, -1,
2327 -1, -1, -1, -1, -1, -1, -1, -1, 184, 185,
2328 186, -1, 188, 189, 190, -1, -1, -1, -1, -1,
2329 -1, -1, -1, 95, 96, 97, 98, 99, 100, -1,
2330 -1, -1, -1, -1, -1, -1, -1, 109, -1, -1,
2331 -1, 113, -1, -1, -1, -1, -1, -1, -1, -1,
2332 -1, -1, 184, 185, 186, 1, 188, 189, 190, -1,
2333 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2334 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2335 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2336 -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
2337 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2338 -1, -1, 184, 185, 186, -1, 188, 189, 190, -1,
2339 -1, -1, -1, -1, 70, -1, -1, -1, -1, -1,
2340 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2341 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
2342 96, 97, 98, 99, 100, -1, -1, -1, -1, -1,
2343 -1, -1, -1, 109, 6, 7, 8, 113, 10, 11,
2344 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2345 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2346 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2347 42, 43, -1, 45, 46, 47, 48, -1, -1, -1,
2348 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2349 -1, -1, -1, -1, -1, -1, -1, -1, 70, 71,
2350 -1, -1, -1, -1, -1, -1, -1, -1, 184, 185,
2351 186, -1, 188, 189, 190, -1, -1, -1, -1, -1,
2352 -1, -1, -1, 95, 96, 97, 98, 99, 100, -1,
2353 -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
2354 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2355 122, 123, -1, 125, 126, 127, 128, 129, 130, 131,
2356 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2357 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2358 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2359 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2360 172, 173, 174, 175, 176, 177, -1, -1, -1, -1,
2361 -1, -1, 184, 185, 186, 187, 188, 189, 190, 191,
2362 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2363 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2364 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2365 -1, -1, -1, -1, -1, -1, 42, 43, -1, 45,
2366 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2367 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2368 -1, -1, -1, -1, 70, 71, -1, -1, -1, -1,
2369 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2370 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
2371 96, 97, 98, 99, 100, -1, -1, -1, -1, -1,
2372 -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
2373 116, 117, 118, 119, 120, 121, 122, 123, -1, 125,
2374 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2375 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2376 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2377 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2378 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2379 176, 177, -1, -1, -1, -1, -1, -1, 184, 185,
2380 186, 187, 188, 189, 190, 191, 6, 7, 8, -1,
2381 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2382 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2383 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2384 -1, -1, 42, 43, -1, 45, 46, 47, 48, -1,
2385 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2386 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2387 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2388 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2389 -1, -1, -1, -1, -1, 95, 96, 97, 98, 99,
2390 100, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2391 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2392 120, 121, 122, 123, -1, 125, 126, 127, 128, 129,
2393 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2394 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2395 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2396 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2397 170, 171, 172, 173, 174, 175, 176, 177, -1, -1,
2398 -1, -1, -1, -1, 184, 185, 186, 187, 188, 189,
2399 190, 191, 6, 7, 8, -1, 10, 11, 12, 13,
2400 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2401 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2402 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2403 -1, -1, 46, 47, 48, -1, 6, 7, 8, -1,
2404 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2405 20, -1, -1, -1, 24, -1, 70, -1, -1, 29,
2406 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2407 -1, -1, -1, -1, -1, -1, 46, 47, 48, -1,
2408 -1, 95, 96, 97, 98, 99, 100, -1, -1, -1,
2409 -1, -1, -1, -1, -1, 109, -1, -1, -1, 113,
2410 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2411 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2412 -1, -1, -1, -1, -1, 95, 96, 97, 98, 99,
2413 100, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2414 6, 7, 8, 113, 10, 11, 12, 13, 14, 15,
2415 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2416 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2417 184, 185, 186, -1, 188, 189, 190, -1, -1, -1,
2418 46, 47, 48, -1, 6, 7, 8, -1, 10, 11,
2419 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2420 -1, -1, 24, -1, 70, -1, -1, 29, 30, 31,
2421 32, 33, 34, -1, 184, 185, 186, -1, 188, 189,
2422 190, -1, -1, -1, 46, 47, 48, -1, -1, 95,
2423 96, 97, 98, 99, 100, -1, -1, -1, -1, -1,
2424 -1, -1, -1, 109, -1, -1, -1, 113, 70, -1,
2425 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2426 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2427 -1, -1, -1, 95, 96, 97, 98, 99, 100, -1,
2428 -1, -1, -1, -1, -1, -1, -1, 109, 6, 7,
2429 8, 113, 10, 11, 12, 13, 14, 15, 16, 17,
2430 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2431 -1, 29, 30, 31, 32, 33, 34, -1, 184, 185,
2432 186, -1, 188, 189, 190, -1, -1, -1, 46, 47,
2433 48, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2434 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2435 24, -1, 70, -1, -1, 29, 30, 31, 32, 33,
2436 34, -1, 184, 185, 186, -1, 188, 189, 190, -1,
2437 -1, -1, 46, 47, 48, -1, -1, 95, 96, 97,
2438 98, 99, 100, -1, -1, -1, -1, -1, -1, -1,
2439 -1, 109, -1, -1, -1, 113, 70, -1, -1, -1,
2440 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2441 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2442 -1, 95, 96, 97, 98, 99, 100, -1, -1, -1,
2443 -1, -1, -1, -1, -1, 109, 6, 7, 8, 113,
2444 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2445 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2446 30, 31, 32, 33, 34, -1, 184, 185, 186, -1,
2447 188, 189, 190, -1, -1, -1, 46, 47, 48, -1,
2448 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2449 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2450 70, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2451 184, 185, 186, -1, 188, 189, 190, -1, -1, -1,
2452 46, 47, 48, -1, -1, 95, 96, 97, 98, 99,
2453 100, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2454 -1, -1, -1, 113, 70, -1, -1, -1, -1, -1,
2455 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2456 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
2457 96, 97, 98, 99, 100, 19, -1, -1, -1, -1,
2458 24, -1, -1, 109, -1, -1, -1, 113, -1, -1,
2459 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2460 -1, 45, -1, -1, -1, -1, -1, -1, -1, -1,
2461 -1, -1, -1, -1, 184, 185, 186, -1, 188, 189,
2462 190, -1, -1, -1, -1, -1, -1, 71, -1, -1,
2463 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2464 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2465 -1, -1, -1, -1, 20, -1, -1, -1, 184, 185,
2466 186, -1, 188, 189, 190, -1, 110, 111, 112, -1,
2467 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2468 -1, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2469 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2470 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2471 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2472 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2473 174, 175, 176, 177, -1, -1, -1, -1, -1, -1,
2474 -1, -1, 186, 187, 110, 111, 112, 191, 114, 115,
2475 116, 117, 118, 119, 120, 121, 122, 123, -1, 125,
2476 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2477 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2478 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2479 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2480 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2481 176, 177, -1, -1, -1, -1, -1, 19, 20, -1,
2482 186, 187, 24, -1, 26, 191, 28, 29, 30, 31,
2483 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2484 -1, -1, 19, -1, 46, 47, 48, 24, -1, 26,
2485 -1, 28, 29, 30, 31, 32, 33, 34, -1, -1,
2486 -1, -1, -1, -1, -1, -1, -1, -1, 70, 46,
2487 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2488 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2489 -1, -1, -1, 70, -1, -1, -1, -1, -1, -1,
2490 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2491 -1, 113, -1, -1, -1, -1, -1, -1, -1, -1,
2492 -1, -1, -1, -1, -1, -1, 22, -1, -1, -1,
2493 -1, -1, -1, -1, 19, -1, 113, -1, -1, 24,
2494 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2495 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2496 -1, 46, 47, 48, -1, -1, -1, -1, -1, -1,
2497 -1, 67, 68, 69, -1, -1, -1, -1, -1, -1,
2498 -1, -1, 184, 185, 186, 70, 188, 189, 190, -1,
2499 -1, 87, -1, -1, -1, -1, -1, -1, -1, -1,
2500 -1, -1, -1, -1, -1, -1, -1, 184, 185, 186,
2501 -1, 188, 189, 190, 110, 111, 112, -1, 114, 115,
2502 116, 117, 118, 119, 120, 121, 122, 123, 113, 125,
2503 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2504 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2505 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2506 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2507 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2508 176, 177, 24, -1, -1, -1, -1, -1, -1, -1,
2509 -1, 187, 34, -1, -1, 191, -1, -1, -1, 184,
2510 185, 186, -1, 188, -1, -1, -1, -1, -1, -1,
2511 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2512 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2513 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2516 -1, -1, -1, -1, -1, -1, -1, -1, 110, 111,
2517 112, -1, 114, 115, 116, 117, 118, 119, 120, 121,
2518 122, 123, -1, 125, 126, 127, 128, 129, 130, 131,
2519 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2520 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2521 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2522 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2523 172, 173, 174, 175, 176, 177, -1, -1, -1, -1,
2524 -1, -1, 184, 185, 186, 187, -1, 189, 190, 191,
2525 24, -1, -1, 27, -1, 29, 30, 31, 32, 33,
2526 34, 24, -1, -1, 27, -1, 29, 30, 31, 32,
2527 33, 34, 46, 47, 48, -1, -1, -1, -1, -1,
2528 -1, 24, 25, 46, 47, 48, 29, 30, 31, 32,
2529 33, 34, 24, 25, -1, -1, 70, 29, 30, 31,
2530 32, 33, 34, 46, 47, 48, -1, 70, -1, -1,
2531 -1, -1, 24, -1, 46, 47, 48, 29, 30, 31,
2532 32, 33, 34, -1, -1, -1, -1, 70, -1, -1,
2533 -1, -1, -1, -1, 46, 47, 48, 24, 70, 113,
2534 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2535 113, -1, -1, -1, -1, -1, -1, -1, 70, 46,
2536 47, 48, -1, -1, -1, -1, -1, -1, -1, 24,
2537 113, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2538 -1, 113, -1, 70, -1, -1, -1, -1, -1, -1,
2539 -1, 46, 47, 48, -1, -1, -1, -1, -1, -1,
2540 -1, 113, -1, -1, -1, -1, -1, -1, -1, -1,
2541 184, 185, 186, -1, 188, 70, -1, -1, -1, -1,
2542 -1, 184, 185, 186, 24, 188, 113, -1, -1, 29,
2543 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2544 -1, 184, 185, 186, -1, 188, 46, 47, 48, -1,
2545 -1, -1, 184, 185, 186, -1, 188, 24, 113, -1,
2546 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2547 70, -1, 184, 185, 186, -1, 188, -1, -1, 46,
2548 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2549 -1, -1, -1, -1, -1, -1, -1, 184, 185, 186,
2550 -1, 188, -1, 70, -1, -1, -1, -1, -1, -1,
2551 -1, -1, -1, 113, -1, -1, -1, -1, -1, -1,
2552 -1, -1, -1, -1, -1, -1, -1, -1, -1, 184,
2553 185, 186, -1, 188, -1, -1, -1, -1, -1, -1,
2554 -1, -1, -1, -1, -1, -1, 113, -1, -1, -1,
2555 -1, -1, -1, -1, 42, 43, -1, -1, -1, -1,
2556 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2557 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2558 -1, -1, -1, -1, 184, 185, 186, -1, 188, -1,
2559 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2561 -1, -1, -1, -1, -1, -1, -1, 184, 185, 186,
2562 -1, 188, 110, 111, 112, -1, 114, 115, 116, 117,
2563 118, 119, 120, 121, 122, 123, -1, 125, 126, 127,
2564 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2565 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2566 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2567 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2568 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2569 45, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2570 -1, -1, -1, 191, -1, -1, -1, -1, -1, -1,
2571 -1, -1, 67, 68, 69, -1, 71, -1, -1, -1,
2572 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2573 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2574 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2575 -1, -1, -1, -1, -1, 110, 111, 112, -1, 114,
2576 115, 116, 117, 118, 119, 120, 121, 122, 123, -1,
2577 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2578 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2579 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2580 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2581 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2582 175, 176, 177, 45, -1, -1, -1, -1, -1, -1,
2583 -1, 186, 187, -1, -1, -1, 191, -1, -1, -1,
2584 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2585 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2587 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2588 -1, -1, -1, -1, -1, -1, -1, -1, 110, 111,
2589 112, -1, 114, 115, 116, 117, 118, 119, 120, 121,
2590 122, 123, -1, 125, 126, 127, 128, 129, 130, 131,
2591 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2592 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2593 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2594 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2595 172, 173, 174, 175, 176, 177, 45, -1, -1, -1,
2596 -1, -1, 184, 185, 186, 187, -1, -1, -1, 191,
2597 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2598 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2602 -1, 110, 111, 112, -1, 114, 115, 116, 117, 118,
2603 119, 120, 121, 122, 123, -1, 125, 126, 127, 128,
2604 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2605 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2606 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2607 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2608 169, 170, 171, 172, 173, 174, 175, 176, 177, 67,
2609 68, 69, -1, -1, -1, -1, -1, 186, 187, -1,
2610 -1, -1, 191, -1, -1, -1, -1, -1, -1, -1,
2611 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2612 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2613 -1, -1, 110, 111, 112, -1, 114, 115, 116, 117,
2614 118, 119, 120, 121, 122, 123, -1, 125, 126, 127,
2615 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2616 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2617 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2618 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2619 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2620 91, 92, 93, -1, -1, -1, -1, -1, 186, 187,
2621 -1, -1, -1, 191, -1, -1, -1, -1, -1, 110,
2622 111, 112, -1, 114, 115, 116, 117, 118, 119, 120,
2623 121, 122, 123, -1, 125, 126, 127, 128, 129, 130,
2624 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2625 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2626 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2627 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2628 171, 172, 173, 174, 175, 176, 177, -1, -1, -1,
2629 -1, -1, -1, -1, -1, 186, 187, 110, 111, 112,
2630 191, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2631 123, -1, 125, 126, 127, 128, 129, 130, 131, 132,
2632 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2633 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2634 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2635 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2636 173, 174, 175, 176, 177, -1, -1, -1, -1, -1,
2637 -1, -1, -1, 186, 187, -1, -1, -1, 191
2639 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2641 /* This file comes from bison-1.28. */
2643 /* Skeleton output parser for bison,
2644 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2646 This program is free software; you can redistribute it and/or modify
2647 it under the terms of the GNU General Public License as published by
2648 the Free Software Foundation; either version 2, or (at your option)
2651 This program is distributed in the hope that it will be useful,
2652 but WITHOUT ANY WARRANTY; without even the implied warranty of
2653 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2654 GNU General Public License for more details.
2656 You should have received a copy of the GNU General Public License
2657 along with this program; if not, write to the Free Software
2658 Foundation, Inc., 59 Temple Place - Suite 330,
2659 Boston, MA 02111-1307, USA. */
2661 /* As a special exception, when this file is copied by Bison into a
2662 Bison output file, you may use that output file without restriction.
2663 This special exception was added by the Free Software Foundation
2664 in version 1.24 of Bison. */
2666 /* This is the parser code that is written into each bison parser
2667 when the %semantic_parser declaration is not specified in the grammar.
2668 It was written by Richard Stallman by simplifying the hairy parser
2669 used when %semantic_parser is specified. */
2671 #ifndef YYSTACK_USE_ALLOCA
2673 #define YYSTACK_USE_ALLOCA
2674 #else /* alloca not defined */
2676 #define YYSTACK_USE_ALLOCA
2677 #define alloca __builtin_alloca
2678 #else /* not GNU C. */
2679 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2680 #define YYSTACK_USE_ALLOCA
2682 #else /* not sparc */
2683 /* We think this test detects Watcom and Microsoft C. */
2684 /* This used to test MSDOS, but that is a bad idea
2685 since that symbol is in the user namespace. */
2686 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2687 #if 0 /* No need for malloc.h, which pollutes the namespace;
2688 instead, just don't use alloca. */
2691 #else /* not MSDOS, or __TURBOC__ */
2693 /* I don't know what this was needed for, but it pollutes the namespace.
2694 So I turned it off. rms, 2 May 1997. */
2695 /* #include <malloc.h> */
2697 #define YYSTACK_USE_ALLOCA
2698 #else /* not MSDOS, or __TURBOC__, or _AIX */
2700 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
2701 and on HPUX 10. Eventually we can turn this on. */
2702 #define YYSTACK_USE_ALLOCA
2703 #define alloca __builtin_alloca
2706 #endif /* not _AIX */
2707 #endif /* not MSDOS, or __TURBOC__ */
2708 #endif /* not sparc */
2709 #endif /* not GNU C */
2710 #endif /* alloca not defined */
2711 #endif /* YYSTACK_USE_ALLOCA not defined */
2713 #ifdef YYSTACK_USE_ALLOCA
2714 #define YYSTACK_ALLOC alloca
2716 #define YYSTACK_ALLOC malloc
2719 /* Note: there must be only one dollar sign in this file.
2720 It is replaced by the list of actions, each action
2721 as one case of the switch. */
2723 #define yyerrok (yyerrstatus = 0)
2724 #define yyclearin (yychar = YYEMPTY)
2727 #define YYACCEPT goto yyacceptlab
2728 #define YYABORT goto yyabortlab
2729 #define YYERROR goto yyerrlab1
2730 /* Like YYERROR except do call yyerror.
2731 This remains here temporarily to ease the
2732 transition to the new meaning of YYERROR, for GCC.
2733 Once GCC version 2 has supplanted version 1, this can go. */
2734 #define YYFAIL goto yyerrlab
2735 #define YYRECOVERING() (!!yyerrstatus)
2736 #define YYBACKUP(token, value) \
2738 if (yychar == YYEMPTY && yylen == 1) \
2739 { yychar = (token), yylval = (value); \
2740 yychar1 = YYTRANSLATE (yychar); \
2745 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2749 #define YYERRCODE 256
2752 #define YYLEX yylex()
2758 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2760 #define YYLEX yylex(&yylval, &yylloc)
2762 #else /* not YYLSP_NEEDED */
2764 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2766 #define YYLEX yylex(&yylval)
2768 #endif /* not YYLSP_NEEDED */
2771 /* If nonreentrant, generate the variables here */
2775 int yychar; /* the lookahead symbol */
2776 YYSTYPE yylval; /* the semantic value of the */
2777 /* lookahead symbol */
2780 YYLTYPE yylloc; /* location data for the lookahead */
2784 int yynerrs; /* number of parse errors so far */
2785 #endif /* not YYPURE */
2788 int yydebug; /* nonzero means print parse trace */
2789 /* Since this is uninitialized, it does not stop multiple parsers
2793 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2796 #define YYINITDEPTH 200
2799 /* YYMAXDEPTH is the maximum size the stacks can grow to
2800 (effective only if the built-in stack extension method is used). */
2807 #define YYMAXDEPTH 10000
2810 /* Define __yy_memcpy. Note that the size argument
2811 should be passed with type unsigned int, because that is what the non-GCC
2812 definitions require. With GCC, __builtin_memcpy takes an arg
2813 of type size_t, but it can handle unsigned int. */
2815 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2816 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2817 #else /* not GNU C or C++ */
2820 /* This is the most reliable way to avoid incompatibilities
2821 in available built-in functions on various systems. */
2823 __yy_memcpy (to, from, count)
2828 register char *f = from;
2829 register char *t = to;
2830 register int i = count;
2836 #else /* __cplusplus */
2838 /* This is the most reliable way to avoid incompatibilities
2839 in available built-in functions on various systems. */
2841 __yy_memcpy (char *to, char *from, unsigned int count)
2843 register char *t = to;
2844 register char *f = from;
2845 register int i = count;
2856 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2857 into yyparse. The argument should have type void *.
2858 It should actually point to an object.
2859 Grammar actions can access the variable by casting it
2860 to the proper pointer type. */
2862 #ifdef YYPARSE_PARAM
2864 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2865 #define YYPARSE_PARAM_DECL
2866 #else /* not __cplusplus */
2867 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2868 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2869 #endif /* not __cplusplus */
2870 #else /* not YYPARSE_PARAM */
2871 #define YYPARSE_PARAM_ARG
2872 #define YYPARSE_PARAM_DECL
2873 #endif /* not YYPARSE_PARAM */
2875 /* Prevent warning if -Wstrict-prototypes. */
2877 #ifdef YYPARSE_PARAM
2878 int yyparse (void *);
2885 yyparse(YYPARSE_PARAM_ARG)
2888 register int yystate;
2890 register short *yyssp;
2891 register YYSTYPE *yyvsp;
2892 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2893 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2895 short yyssa[YYINITDEPTH]; /* the state stack */
2896 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2898 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2899 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2902 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2903 YYLTYPE *yyls = yylsa;
2906 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2908 #define YYPOPSTACK (yyvsp--, yyssp--)
2911 int yystacksize = YYINITDEPTH;
2912 int yyfree_stacks = 0;
2923 YYSTYPE yyval; /* the variable used to return */
2924 /* semantic values from the action */
2931 fprintf(stderr, "Starting parse\n");
2937 yychar = YYEMPTY; /* Cause a token to be read. */
2939 /* Initialize stack pointers.
2940 Waste one element of value and location stack
2941 so that they stay on the same level as the state stack.
2942 The wasted elements are never initialized. */
2950 /* Push a new state, which is found in yystate . */
2951 /* In all cases, when you get here, the value and location stacks
2952 have just been pushed. so pushing a state here evens the stacks. */
2957 if (yyssp >= yyss + yystacksize - 1)
2959 /* Give user a chance to reallocate the stack */
2960 /* Use copies of these so that the &'s don't force the real ones into memory. */
2961 YYSTYPE *yyvs1 = yyvs;
2962 short *yyss1 = yyss;
2964 YYLTYPE *yyls1 = yyls;
2967 /* Get the current used size of the three stacks, in elements. */
2968 int size = yyssp - yyss + 1;
2971 /* Each stack pointer address is followed by the size of
2972 the data in use in that stack, in bytes. */
2974 /* This used to be a conditional around just the two extra args,
2975 but that might be undefined if yyoverflow is a macro. */
2976 yyoverflow("parser stack overflow",
2977 &yyss1, size * sizeof (*yyssp),
2978 &yyvs1, size * sizeof (*yyvsp),
2979 &yyls1, size * sizeof (*yylsp),
2982 yyoverflow("parser stack overflow",
2983 &yyss1, size * sizeof (*yyssp),
2984 &yyvs1, size * sizeof (*yyvsp),
2988 yyss = yyss1; yyvs = yyvs1;
2992 #else /* no yyoverflow */
2993 /* Extend the stack our own way. */
2994 if (yystacksize >= YYMAXDEPTH)
2996 yyerror("parser stack overflow");
3008 if (yystacksize > YYMAXDEPTH)
3009 yystacksize = YYMAXDEPTH;
3010 #ifndef YYSTACK_USE_ALLOCA
3013 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
3014 __yy_memcpy ((char *)yyss, (char *)yyss1,
3015 size * (unsigned int) sizeof (*yyssp));
3016 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
3017 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
3018 size * (unsigned int) sizeof (*yyvsp));
3020 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
3021 __yy_memcpy ((char *)yyls, (char *)yyls1,
3022 size * (unsigned int) sizeof (*yylsp));
3024 #endif /* no yyoverflow */
3026 yyssp = yyss + size - 1;
3027 yyvsp = yyvs + size - 1;
3029 yylsp = yyls + size - 1;
3034 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3037 if (yyssp >= yyss + yystacksize - 1)
3043 fprintf(stderr, "Entering state %d\n", yystate);
3049 /* Do appropriate processing given the current state. */
3050 /* Read a lookahead token if we need one and don't already have one. */
3053 /* First try to decide what to do without reference to lookahead token. */
3055 yyn = yypact[yystate];
3059 /* Not known => get a lookahead token if don't already have one. */
3061 /* yychar is either YYEMPTY or YYEOF
3062 or a valid token in external form. */
3064 if (yychar == YYEMPTY)
3068 fprintf(stderr, "Reading a token: ");
3073 /* Convert token to internal form (in yychar1) for indexing tables with */
3075 if (yychar <= 0) /* This means end of input. */
3078 yychar = YYEOF; /* Don't call YYLEX any more */
3082 fprintf(stderr, "Now at end of input.\n");
3087 yychar1 = YYTRANSLATE(yychar);
3092 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3093 /* Give the individual parser a way to print the precise meaning
3094 of a token, for further debugging info. */
3096 YYPRINT (stderr, yychar, yylval);
3098 fprintf (stderr, ")\n");
3104 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3109 /* yyn is what to do for this token type in this state.
3110 Negative => reduce, -yyn is rule number.
3111 Positive => shift, yyn is new state.
3112 New state is final state => don't bother to shift,
3113 just return success.
3114 0, or most negative number => error. */
3129 /* Shift the lookahead token. */
3133 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3136 /* Discard the token being shifted unless it is eof. */
3137 if (yychar != YYEOF)
3145 /* count tokens shifted since error; after three, turn off error status. */
3146 if (yyerrstatus) yyerrstatus--;
3151 /* Do the default action for the current state. */
3154 yyn = yydefact[yystate];
3158 /* Do a reduction. yyn is the number of a rule to reduce with. */
3162 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3169 fprintf (stderr, "Reducing via rule %d (line %d), ",
3172 /* Print the symbols being reduced, and their result. */
3173 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3174 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3175 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3183 { context_checkGlobalScope (); ;
3186 { context_checkGlobalScope (); ;
3189 { uentry_clearDecl (); ;
3192 { uentry_clearDecl (); ;
3195 { uentry_clearDecl (); ;
3198 { uentry_clearDecl (); ;
3201 { uentry_clearDecl (); ;
3204 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3207 { uentry_clearDecl (); /* evans 2002-02-08: okay to have a null statement */ ;
3210 { uentry_clearDecl (); ;
3213 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3216 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3219 { context_enterFunctionHeader (); ;
3223 declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3224 context_exitFunctionHeader ();
3229 qtype qint = qtype_create (ctype_int);
3230 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3235 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3238 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3241 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3244 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3247 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3251 exprNode_findValue (yyvsp[-2].expr);
3252 idDecl_notExpectingFunction (yyvsp[-5].ntyp);
3254 if (exprNode_hasValue (yyvsp[-2].expr))
3256 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp),
3257 exprNode_getLongValue (yyvsp[-2].expr)));
3261 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-5].ntyp)));
3266 { setCurrentParams (uentryList_missingParams); ;
3269 { /* need to support globals and modifies here! */
3270 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3271 uentryList_makeMissingParams ());
3273 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3274 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3276 /*drl 7/25/01 added*/
3277 setImplictfcnConstraints();
3281 { setCurrentParams (yyvsp[-1].entrylist); ;
3284 { setImplictfcnConstraints ();
3285 clearCurrentParams ();
3286 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3287 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3292 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3295 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3298 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3304 if (exprNode_hasValue (yyvsp[-2].expr)
3305 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3307 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3314 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3318 { setCurrentParams (uentryList_missingParams); ;
3322 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3323 uentryList_makeMissingParams ());
3325 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3326 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3331 { setCurrentParams (yyvsp[-1].entrylist); ;
3335 clearCurrentParams ();
3336 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3337 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3342 { setCurrentParams (yyvsp[-1].entrylist); ;
3345 { clearCurrentParams (); ;
3348 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3351 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3354 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3357 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3360 { exprChecks_checkEmptyMacroBody (); ;
3363 { clabstract_declareFunction (yyvsp[0].ntyp); ;
3366 { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3369 { cscanner_expectingMetaStateName (); ;
3372 { cscanner_clearExpectingMetaStateName ();
3373 yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo); ;
3376 { cscanner_expectingMetaStateName (); ;
3379 { cscanner_clearExpectingMetaStateName ();
3380 yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo); ;
3383 { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
3386 { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3389 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3392 { yyval.conL = constraintList_single (yyvsp[0].con); ;
3396 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3397 DPRINTF(("Done BufConstraint1\n")); ;
3400 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3404 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3405 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3408 { yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
3411 { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
3414 { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
3417 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3420 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3426 t = cstring_toCharsSafe (exprNode_unparse($3));
3429 yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3433 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3436 { yyval.sr = yyvsp[-1].sr; ;
3439 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3442 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3445 { yyval.funcclauselist = functionClauseList_new (); ;
3448 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3451 { yyval.funcclauselist = functionClauseList_new (); ;
3454 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3457 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3460 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3463 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3466 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3469 { yyval.funcclause = yyvsp[0].funcclause; ;
3472 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3475 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3478 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3481 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3484 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3487 { yyval.funcclause = yyvsp[0].funcclause; ;
3490 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3493 { yyval.globsclause = yyvsp[-1].globsclause; ;
3496 { setProcessingGlobalsList (); ;
3500 unsetProcessingGlobals ();
3501 yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
3505 { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
3508 { yyval.modsclause = yyvsp[-1].modsclause; ;
3512 context_setProtectVars (); enterParamsTemp ();
3513 sRef_setGlobalScopeSafe ();
3519 sRef_clearGlobalScopeSafe ();
3520 context_releaseVars ();
3521 yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3525 { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
3528 { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
3531 { yyval.warnclause = warnClause_undefined; ;
3534 { yyval.warnclause = yyvsp[-1].warnclause; ;
3538 llassert (exprNode_knownStringValue (yyvsp[0].expr));
3539 yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
3540 exprNode_free (yyvsp[0].expr);
3544 { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
3547 { yyval.globset = globSet_single (yyvsp[0].sr); ;
3550 { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3553 { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3556 { yyval.tquallist = qualList_undefined; ;
3559 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3562 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3565 { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3568 { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3571 { yyval.typequal = qual_createUndef (); ;
3574 { yyval.typequal = qual_createKilled (); ;
3577 { yyval.typequal = qual_createOut (); ;
3580 { yyval.typequal = qual_createIn (); ;
3583 { yyval.typequal = qual_createPartial (); ;
3587 qtype qint = qtype_create (ctype_int);
3588 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3593 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3596 { checkDoneParams (); context_enterInnerContext (); ;
3600 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3601 context_exitInner (yyvsp[0].expr);
3605 { context_enterOldStyleScope (); ;
3608 { oldStyleDoneParams (); context_enterInnerContext (); ;
3612 exprNode_checkFunctionBody (yyvsp[0].expr);
3613 yyval.expr = yyvsp[0].expr; /* oldstyle */
3614 context_exitInner (yyvsp[0].expr);
3619 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3620 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3623 context_exitFunction ();
3627 { yyval.srset = yyvsp[-1].srset; ;
3630 { yyval.srset = sRefSet_new (); ;
3633 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3636 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3639 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3642 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3645 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3648 { yyval.sr = yyvsp[-1].sr; ;
3651 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3654 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3657 { yyval.sr = yyvsp[0].sr; ;
3660 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3663 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3666 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3669 { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
3672 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3675 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3678 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3681 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3684 { yyval.sr = yyvsp[-1].sr; ;
3687 { cstring_markOwned (yyvsp[0].cname);
3688 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3691 { cstring_markOwned (yyvsp[0].cname);
3692 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3695 { yyval.srset = sRefSet_undefined ;
3698 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3699 else { yyval.srset = sRefSet_undefined; }
3703 { if (sRef_isValid (yyvsp[0].sr))
3705 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3709 yyval.srset = yyvsp[-2].srset;
3714 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3717 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3720 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3723 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3726 { yyval.expr = exprNode_makeError (); ;
3729 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3732 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3735 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
3738 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3741 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3744 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3747 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3750 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3753 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3756 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
3759 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3762 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3765 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3768 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3771 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3774 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3777 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3780 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3783 { yyval.expr = yyvsp[0].expr; ;
3786 { yyval.expr = yyvsp[0].expr; ;
3789 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3792 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3795 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3798 { context_setProtectVars (); ;
3801 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3804 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3807 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3810 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3813 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3816 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3819 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3822 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3825 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3828 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3831 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3834 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3837 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3840 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3843 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3846 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3849 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3852 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3855 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3858 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3861 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3864 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3867 { exprNode_produceGuards (yyvsp[-1].expr);
3868 context_enterAndClause (yyvsp[-1].expr);
3873 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3874 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3879 exprNode_produceGuards (yyvsp[-1].expr);
3880 context_enterOrClause (yyvsp[-1].expr);
3885 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3886 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3890 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3893 { context_enterFalseClause (yyvsp[-4].expr); ;
3896 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3899 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3902 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3905 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3908 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3911 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3914 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3917 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3920 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3923 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3926 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3929 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3932 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
3935 { yyval.expr = exprNode_undefined; ;
3938 { yyval.expr = yyvsp[0].expr; ;
3941 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
3944 { yyval.expr = exprNode_makeError (); ;
3947 { yyval.expr = exprNode_makeError (); ;
3951 setProcessingVars (yyvsp[-3].qtyp);
3952 processNamedDecl (yyvsp[-1].ntyp);
3957 unsetProcessingVars ();
3958 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
3959 DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
3963 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
3966 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
3967 unsetProcessingVars ();
3972 processNamedDecl (yyvsp[-1].ntyp);
3973 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
3977 { processNamedDecl (yyvsp[-2].ntyp); ;
3980 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
3983 { setProcessingTypedef (yyvsp[0].qtyp); ;
3986 { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
3989 { /* in the ANSI grammar, semantics unclear */ ;
3992 { /* in the ANSI grammar, semantics unclear */ ;
3995 { g_expectingTypeName = TRUE; ;
3998 { g_expectingTypeName = TRUE; context_pushLoc (); ;
4001 { yyval.exprlist = yyvsp[-1].exprlist; ;
4004 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4007 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4010 { yyval.expr = exprNode_makeError (); ;
4013 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4016 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); ;
4019 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); ;
4022 { yyval.expr = exprNode_undefined; ;
4025 { yyval.expr = yyvsp[-1].expr; ;
4028 { yyval.expr = exprNode_undefined;
4029 /* gcc extension, obsolete since 2.5 */ ;
4032 { yyval.expr = exprNode_undefined; ;
4035 { yyval.expr = exprNode_undefined; ;
4038 { yyval.expr = exprNode_undefined; ;
4041 { yyval.expr = exprNode_undefined; ;
4044 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4047 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4050 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4053 { yyval.typequal = qual_createInline (); ;
4056 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4059 { yyval.typequal = qual_createAuto (); ;
4062 { yyval.typequal = qual_createRegister (); ;
4065 { yyval.stateclause = yyvsp[-1].stateclause; ;
4069 context_setProtectVars ();
4071 sRef_setGlobalScopeSafe ();
4077 sRef_clearGlobalScopeSafe ();
4078 context_releaseVars ();
4079 yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4083 { yyval.funcclause = yyvsp[-1].funcclause; ;
4086 { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
4090 context_exitFunctionHeader ();
4091 context_setProtectVars ();
4093 sRef_setGlobalScopeSafe ();
4099 sRef_clearGlobalScopeSafe ();
4100 context_releaseVars ();
4101 yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4106 context_setProtectVars ();
4108 sRef_setGlobalScopeSafe ();
4113 context_exitFunctionHeader ();
4115 sRef_clearGlobalScopeSafe ();
4116 context_releaseVars ();
4117 DPRINTF (("done optGlobBufConstraintsAux\n"));
4119 if (lltok_isEnsures (yyvsp[-4].tok))
4121 yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4123 else if (lltok_isRequires (yyvsp[-4].tok))
4125 yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4132 DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4136 { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
4139 { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
4142 { yyval.typequal = qual_createExits (); ;
4145 { yyval.typequal = qual_createMayExit (); ;
4148 { yyval.typequal = qual_createTrueExit (); ;
4151 { yyval.typequal = qual_createFalseExit (); ;
4154 { yyval.typequal = qual_createNeverExit (); ;
4157 { yyval.typequal = qual_createChecked (); ;
4160 { yyval.typequal = qual_createCheckMod (); ;
4163 { yyval.typequal = qual_createUnchecked (); ;
4166 { yyval.typequal = qual_createCheckedStrict (); ;
4169 { yyval.typequal = qual_createOwned (); ;
4172 { yyval.typequal = qual_createDependent (); ;
4175 { yyval.typequal = qual_createYield (); ;
4178 { yyval.typequal = qual_createTemp (); ;
4181 { yyval.typequal = qual_createOnly (); ;
4184 { yyval.typequal = qual_createKeep (); ;
4187 { yyval.typequal = qual_createKept (); ;
4190 { yyval.typequal = qual_createShared (); ;
4193 { yyval.typequal = qual_createUnique (); ;
4196 { yyval.typequal = qual_createNull (); ;
4199 { yyval.typequal = qual_createIsNull (); ;
4202 { yyval.typequal = qual_createRelNull (); ;
4205 { yyval.typequal = qual_createNotNull (); ;
4208 { yyval.typequal = qual_createExposed (); ;
4211 { yyval.typequal = qual_createObserver (); ;
4214 { yyval.typequal = qual_createNullTerminated (); ;
4217 { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
4220 { yyval.typequal = qual_createReturned (); ;
4223 { yyval.typequal = qual_createSef (); ;
4226 { yyval.typequal = qual_createUnused (); ;
4229 { yyval.typequal = qual_createExternal (); ;
4232 { yyval.typequal = qual_createTrueNull (); ;
4235 { yyval.typequal = qual_createFalseNull (); ;
4238 { yyval.typequal = qual_createAbstract (); ;
4241 { yyval.typequal = qual_createConcrete (); ;
4244 { yyval.typequal = qual_createMutable (); ;
4247 { yyval.typequal = qual_createImmutable (); ;
4250 { yyval.typequal = qual_createRefCounted (); ;
4253 { yyval.typequal = qual_createRefs (); ;
4256 { yyval.typequal = qual_createKillRef (); ;
4259 { yyval.typequal = qual_createRelDef (); ;
4262 { yyval.typequal = qual_createNewRef (); ;
4265 { yyval.typequal = qual_createTempRef (); ;
4268 { yyval.typequal = qual_createShort (); ;
4271 { yyval.typequal = qual_createLong (); ;
4274 { yyval.typequal = qual_createSigned (); ;
4277 { yyval.typequal = qual_createUnsigned (); ;
4280 { yyval.typequal = qual_createOut (); ;
4283 { yyval.typequal = qual_createIn (); ;
4286 { yyval.typequal = qual_createPartial (); ;
4289 { yyval.typequal = qual_createSpecial (); ;
4292 { yyval.typequal = qual_createConst (); ;
4295 { yyval.typequal = qual_createVolatile (); ;
4298 { yyval.typequal = yyvsp[-1].typequal; ;
4301 { yyval.typequal = yyvsp[-1].typequal; ;
4304 { yyval.typequal = yyvsp[-1].typequal; ;
4307 { yyval.typequal = yyvsp[-1].typequal; ;
4310 { yyval.typequal = yyvsp[-1].typequal; ;
4313 { yyval.typequal = yyvsp[-1].typequal; ;
4316 { yyval.typequal = yyvsp[-1].typequal; ;
4319 { yyval.typequal = yyvsp[-1].typequal; ;
4322 { yyval.typequal = yyvsp[-1].typequal; ;
4325 { yyval.ctyp = ctype_unknown; ;
4328 { yyval.ctyp = ctype_anyintegral; ;
4331 { yyval.ctyp = ctype_unsignedintegral; ;
4334 { yyval.ctyp = ctype_signedintegral; ;
4337 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4340 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4343 { yyval.qtyp = yyvsp[0].qtyp; ;
4346 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4349 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4352 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4355 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4358 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4361 { yyval.qtyp = qtype_unknown (); ;
4364 { yyval.qtyp = yyvsp[0].qtyp; ;
4367 { yyval.conL = constraintList_undefined; ;
4370 { sRef_setGlobalScopeSafe (); ;
4373 { sRef_clearGlobalScopeSafe (); ;
4376 { {ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); /* setGlobalStructInfo(ct, $12);*/ yyval.ctyp = ct;} ;
4379 { sRef_setGlobalScopeSafe (); ;
4382 { sRef_clearGlobalScopeSafe (); ;
4385 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4388 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4391 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4394 { sRef_setGlobalScopeSafe (); ;
4397 { sRef_clearGlobalScopeSafe (); ;
4400 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4403 { sRef_setGlobalScopeSafe (); ;
4406 { sRef_clearGlobalScopeSafe (); ;
4409 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4412 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4415 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4418 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4421 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4424 { g_expectingTypeName = FALSE; ;
4427 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4430 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4433 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4436 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4439 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4442 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4445 { yyval.ntyp = yyvsp[0].ntyp; ;
4448 { yyval.ntyp = idDecl_undefined; ;
4451 { yyval.ntyp = yyvsp[-3].ntyp; ;
4454 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4457 { context_pushLoc (); ;
4460 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4463 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4466 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4469 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4472 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4473 usymtab_supGlobalEntry (ue);
4474 yyval.cname = yyvsp[0].cname;
4478 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4479 usymtab_supGlobalEntry (ue);
4480 yyval.cname = yyvsp[-3].cname;
4484 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4488 qtype qt = qtype_unknown ();
4490 qtype_adjustPointers (yyvsp[-1].count, qt);
4491 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4495 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4498 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4501 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4504 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4507 { /* ignored for now */; ;
4519 { yyval.count = 1; ;
4522 { yyval.count = 1; ;
4525 { yyval.count = 1 + yyvsp[0].count; ;
4528 { yyval.count = 1 + yyvsp[0].count; ;
4531 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4534 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4537 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4540 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4543 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4549 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4555 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4559 if (isFlipOldStyle ())
4561 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4567 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4572 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4576 llparseerror (message ("Inconsistent function parameter syntax: %q",
4577 idDecl_unparse (tparam)));
4581 yyval.oentry = makeCurrentParam (tparam);
4582 idDecl_free (tparam);
4586 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4589 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4592 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4595 { yyval.ctyp = ctype_unknown; ;
4598 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4601 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4604 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4607 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4610 { yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4613 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4616 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4619 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4622 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4625 { yyval.expr = yyvsp[0].expr; ;
4628 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4631 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4634 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4637 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4640 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4643 { context_setProtectVars (); ;
4646 { context_sizeofReleaseVars (); ;
4649 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4650 context_enterForClause (yyvsp[-5].expr); ;
4653 { setProcessingIterVars (yyvsp[-2].entry); ;
4656 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
4659 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4662 { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
4665 { yyval.expr = yyvsp[-1].expr; ;
4668 { yyval.expr = exprNode_makeError (); ;
4671 { exprNode_checkIfPred (yyvsp[0].expr); ;
4674 { /* don't: context_exitTrueClause ($1, $2); */
4675 yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr);
4679 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4682 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4685 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4688 { yyval.expr = exprNode_makeError (); ;
4691 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4694 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4703 { context_enterCaseClause (yyvsp[0].expr); ;
4706 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4709 { context_enterCaseClause (yyvsp[0].expr); ;
4712 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4715 { context_enterCaseClause (exprNode_undefined); ;
4718 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4721 { context_enterCaseClause (exprNode_undefined); ;
4724 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4727 { yyval.expr = yyvsp[-1].expr; ;
4730 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4733 { yyval.expr = yyvsp[-1].expr; ;
4736 { context_enterInnerContext (); ;
4739 { context_exitInnerPlain (); ;
4742 { context_enterStructInnerContext (); ;
4745 { context_exitStructInnerContext (); ;
4748 { context_exitInnerSafe (); ;
4751 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4754 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4757 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4760 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4763 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4766 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4769 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4772 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4773 lltok_getLoc (yyvsp[-1].tok)));
4777 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4780 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4783 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4786 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4789 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4792 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4795 { yyval.expr = yyvsp[0].expr; ;
4798 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4801 { yyval.expr = yyvsp[0].expr; ;
4804 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4807 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4810 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4813 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4816 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4819 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
4823 exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr);
4824 exprNode_checkIfPred (yyvsp[-1].expr);
4825 yyval.expr = yyvsp[-1].expr;
4830 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4831 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4835 { context_enterFalseClause (yyvsp[-2].expr); ;
4839 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4840 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4844 { context_enterSwitch (yyvsp[0].expr); ;
4847 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4850 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4853 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4856 { context_enterIterClause (); ;
4859 { setProcessingIterVars (yyvsp[-3].entry); ;
4863 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
4868 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4871 { nextIterParam (); ;
4874 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4877 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4880 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4883 { uentry ue = coerceIterId (yyvsp[0].cname);
4885 if (uentry_isValid (ue))
4887 yyval.expr = exprNode_iterId (ue);
4891 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
4896 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
4899 { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
4902 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4905 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4908 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4911 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
4914 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4917 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4920 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4923 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4926 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4929 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4932 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4935 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4938 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4941 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4944 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4947 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4950 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4953 { yyval.expr = yyvsp[0].expr; ;
4956 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
4959 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4962 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4965 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4968 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4971 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4974 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4977 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4980 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4983 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4986 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4989 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4992 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4995 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4998 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5001 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5004 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5007 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5010 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5013 { context_enterTrueClause (yyvsp[-1].expr); ;
5016 { context_enterFalseClause (yyvsp[-4].expr); ;
5019 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5022 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5025 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5028 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5031 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5034 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5037 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5040 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5043 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5046 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5049 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5052 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5055 { yyval.entry = yyvsp[0].entry; ;
5058 { yyval.entry = uentry_undefined; ;
5061 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5064 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5067 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5070 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5073 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5076 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5079 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5082 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5085 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5088 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5091 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5094 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5097 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5100 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5103 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5106 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5109 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5112 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5118 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5121 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5124 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5127 { yyval.cname = yyvsp[0].cname; ;
5130 { yyval.ctyp = ctype_unknown; ;
5133 /* the action file gets copied in in place of this dollarsign */
5145 short *ssp1 = yyss - 1;
5146 fprintf (stderr, "state stack now");
5147 while (ssp1 != yyssp)
5148 fprintf (stderr, " %d", *++ssp1);
5149 fprintf (stderr, "\n");
5159 yylsp->first_line = yylloc.first_line;
5160 yylsp->first_column = yylloc.first_column;
5161 yylsp->last_line = (yylsp-1)->last_line;
5162 yylsp->last_column = (yylsp-1)->last_column;
5167 yylsp->last_line = (yylsp+yylen-1)->last_line;
5168 yylsp->last_column = (yylsp+yylen-1)->last_column;
5172 /* Now "shift" the result of the reduction.
5173 Determine what state that goes to,
5174 based on the state we popped back to
5175 and the rule number reduced by. */
5179 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5180 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5181 yystate = yytable[yystate];
5183 yystate = yydefgoto[yyn - YYNTBASE];
5187 yyerrlab: /* here on detecting error */
5190 /* If not already recovering from an error, report this error. */
5194 #ifdef YYERROR_VERBOSE
5195 yyn = yypact[yystate];
5197 if (yyn > YYFLAG && yyn < YYLAST)
5204 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5205 for (x = (yyn < 0 ? -yyn : 0);
5206 x < (sizeof(yytname) / sizeof(char *)); x++)
5207 if (yycheck[x + yyn] == x)
5208 size += strlen(yytname[x]) + 15, count++;
5209 msg = (char *) malloc(size + 15);
5212 strcpy(msg, "parse error");
5217 for (x = (yyn < 0 ? -yyn : 0);
5218 x < (sizeof(yytname) / sizeof(char *)); x++)
5219 if (yycheck[x + yyn] == x)
5221 strcat(msg, count == 0 ? ", expecting `" : " or `");
5222 strcat(msg, yytname[x]);
5231 yyerror ("parse error; also virtual memory exceeded");
5234 #endif /* YYERROR_VERBOSE */
5235 yyerror("parse error");
5239 yyerrlab1: /* here on error raised explicitly by an action */
5241 if (yyerrstatus == 3)
5243 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5245 /* return failure if at end of input */
5246 if (yychar == YYEOF)
5251 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5257 /* Else will try to reuse lookahead token
5258 after shifting the error token. */
5260 yyerrstatus = 3; /* Each real token shifted decrements this */
5264 yyerrdefault: /* current state does not do anything special for the error token. */
5267 /* This is wrong; only states that explicitly want error tokens
5268 should shift them. */
5269 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5270 if (yyn) goto yydefault;
5273 yyerrpop: /* pop the current state because it cannot handle the error token */
5275 if (yyssp == yyss) YYABORT;
5285 short *ssp1 = yyss - 1;
5286 fprintf (stderr, "Error: state stack now");
5287 while (ssp1 != yyssp)
5288 fprintf (stderr, " %d", *++ssp1);
5289 fprintf (stderr, "\n");
5295 yyn = yypact[yystate];
5300 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5319 fprintf(stderr, "Shifting error token, ");
5331 /* YYACCEPT comes here. */
5343 /* YYABORT comes here. */
5356 /*@-redecl@*/ /*@-namechecks@*/
5357 extern char *yytext;
5358 /*@=redecl@*/ /*@=namechecks@*/
5360 # include "bison.reset"
5362 void yyerror (/*@unused@*/ char *s)
5364 static bool givehint = FALSE;
5366 if (context_inIterDef ())
5368 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5369 context_inFunctionName ()));
5371 else if (context_inIterEnd ())
5373 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5374 context_inFunctionName ()));
5376 else if (context_inMacro ())
5378 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5379 context_inFunctionName ()));
5381 if (context_inUnknownMacro ())
5385 llhint (cstring_makeLiteral
5386 ("Precede macro definition with /*@notfunction@*/ "
5387 "to suppress checking and force expansion"));
5393 context_exitAllClausesQuiet ();
5397 llparseerror (cstring_undefined);
5413 ** Resets all flags in bison.head
5435 /*@=evalorderuncon@*/
5444 /*@=elseifcomplete@*/
5448 /*@=readonlytrans@*/
5451 /*@=systemunrecog@*/
5452 /*@=dependenttrans@*/
5453 /*@=unqualifiedtrans@*/
5457 /*drl added 11/27/2001*/