2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
49 /*drl added 11/27/2001*/
51 /* < end of bison.head > */
54 /* A Bison parser, made from cgrammar.y
55 by GNU Bison version 1.28 */
57 #define YYBISON 1 /* Identify Bison output. */
61 #define CTOK_ELIPSIS 259
85 #define TAMPERSAND 283
102 #define COFFSETOF 300
113 #define MUL_ASSIGN 311
114 #define DIV_ASSIGN 312
115 #define MOD_ASSIGN 313
116 #define ADD_ASSIGN 314
117 #define SUB_ASSIGN 315
118 #define LEFT_ASSIGN 316
119 #define RIGHT_ASSIGN 317
120 #define AND_ASSIGN 318
121 #define XOR_ASSIGN 319
122 #define OR_ASSIGN 320
130 #define QMODIFIES 328
132 #define QCONSTANT 330
133 #define QFUNCTION 331
137 #define QALLOCATES 335
139 #define QRELEASES 337
140 #define QPRECLAUSE 338
141 #define QPOSTCLAUSE 339
142 #define QINVARIANT 340
146 #define QENDMACRO 344
148 #define LLMACROITER 346
149 #define LLMACROEND 347
150 #define TENDMACRO 348
151 #define QSWITCHBREAK 349
152 #define QLOOPBREAK 350
153 #define QINNERBREAK 351
154 #define QSAFEBREAK 352
155 #define QINNERCONTINUE 353
156 #define QFALLTHROUGH 354
157 #define QLINTNOTREACHED 355
158 #define QLINTFALLTHROUGH 356
159 #define QLINTFALLTHRU 357
160 #define QARGSUSED 358
161 #define QPRINTFLIKE 359
162 #define QLINTPRINTFLIKE 360
163 #define QSCANFLIKE 361
164 #define QMESSAGELIKE 362
165 #define QNOTREACHED 363
167 #define QVOLATILE 365
169 #define QEXTENSION 367
173 #define QREGISTER 371
183 #define QUNCHECKED 381
184 #define QCHECKEDSTRICT 382
185 #define QCHECKMOD 383
191 #define QDEPENDENT 389
192 #define QRETURNED 390
195 #define QOBSERVER 393
199 #define QNEVEREXIT 397
200 #define QTRUEEXIT 398
201 #define QFALSEEXIT 399
204 #define QUNSIGNED 402
210 #define QABSTRACT 408
211 #define QCONCRETE 409
213 #define QIMMUTABLE 411
214 #define QTRUENULL 412
215 #define QFALSENULL 413
216 #define QEXTERNAL 414
217 #define QREFCOUNTED 415
230 #define QINTEGRALTYPE 428
231 #define QUNSIGNEDINTEGRALTYPE 429
232 #define QSIGNEDINTEGRALTYPE 430
233 #define QNULLTERMINATED 431
234 #define QSETBUFFERSIZE 432
235 #define QSETSTRINGLENGTH 433
238 #define QTESTINRANGE 436
240 #define IDENTIFIER 438
241 #define NEW_IDENTIFIER 439
242 #define TYPE_NAME_OR_ID 440
243 #define CANNOTATION 441
244 #define CCONSTANT 442
245 #define ITER_NAME 443
246 #define ITER_ENDNAME 444
247 #define TYPE_NAME 445
248 #define METASTATE_NAME 446
255 ** Yacc/Bison grammar for extended ANSI C used by Splint.
257 ** original grammar by Nate Osgood ---
258 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
260 ** changes for Splint --- handle typedef names correctly
261 ** fix struct/union parsing bug (empty struct is accepted)
262 ** add productions to handle macros --- require
263 ** error correction --- main source of conflicts in grammar.
264 ** need to process initializations sequentially, L->R
266 ** production names are cryptic, so more productions fit on one line
268 ** conflicts: 87 shift/reduce, 18 reduce/reduce
269 ** most of these are due to handling macros
270 ** a few are due to handling type expressions
276 extern void swallowMacro (void);
277 extern void yyerror (char *);
279 # include "splintMacros.nf"
281 # include "cscanner.h"
282 # include "cgrammar.h"
283 # include "exprChecks.h"
288 # define SHOWCSYM FALSE
291 ** This is necessary, or else when the bison-generated code #include's malloc.h,
292 ** there will be a parse error.
294 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
295 ** in bison-generated files under Win32.
312 /*@dependent@*/ sRef sr;
315 /*@only@*/ functionClauseList funcclauselist;
316 /*@only@*/ functionClause funcclause;
317 /*@only@*/ flagSpec flagspec;
318 /*@only@*/ globalsClause globsclause;
319 /*@only@*/ modifiesClause modsclause;
320 /*@only@*/ warnClause warnclause;
321 /*@only@*/ stateClause stateclause;
323 /*@only@*/ functionConstraint fcnconstraint;
325 /*@only@*/ metaStateConstraint msconstraint;
326 /*@only@*/ metaStateSpecifier msspec;
327 /*@only@*/ metaStateExpression msexpr;
328 /*@observer@*/ metaStateInfo msinfo;
330 /*@only@*/ sRefList srlist;
331 /*@only@*/ globSet globset;
332 /*@only@*/ qtype qtyp;
333 /*@only@*/ cstring cname;
334 /*@observer@*/ annotationInfo annotation;
335 /*@only@*/ idDecl ntyp;
336 /*@only@*/ idDeclList ntyplist;
337 /*@only@*/ uentryList flist;
338 /*@owned@*/ uentryList entrylist;
339 /*@observer@*/ /*@dependent@*/ uentry entry;
340 /*@only@*/ uentry oentry;
341 /*@only@*/ exprNode expr;
342 /*@only@*/ enumNameList enumnamelist;
343 /*@only@*/ exprNodeList exprlist;
344 /*@only@*/ sRefSet srset;
345 /*@only@*/ cstringList cstringlist;
370 #define YYFLAG -32768
373 #define YYTRANSLATE(x) ((unsigned)(x) <= 446 ? yytranslate[x] : 451)
375 static const short yytranslate[] = { 0,
376 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
377 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
378 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
379 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
380 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
381 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
382 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
383 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
384 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
385 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
386 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
387 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
388 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
389 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
390 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
391 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
392 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
393 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
394 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
395 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
396 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
397 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
398 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
399 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
400 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
401 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
402 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
403 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
404 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
405 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
406 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
407 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
408 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
409 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
410 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
411 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
412 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
413 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
414 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
415 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
416 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
417 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
418 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
419 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
420 187, 188, 189, 190, 191, 192
424 static const short yyprhs[] = { 0,
425 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
426 21, 23, 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, 879,
453 883, 885, 887, 889, 891, 893, 896, 897, 904, 907,
454 910, 911, 918, 919, 925, 927, 929, 931, 933, 935,
455 937, 939, 941, 943, 945, 947, 949, 951, 953, 955,
456 957, 959, 961, 963, 965, 967, 969, 971, 973, 975,
457 977, 979, 981, 983, 985, 987, 989, 991, 993, 995,
458 997, 999, 1001, 1003, 1005, 1007, 1009, 1011, 1013, 1015,
459 1017, 1019, 1021, 1023, 1025, 1027, 1029, 1032, 1035, 1038,
460 1041, 1044, 1047, 1050, 1053, 1056, 1059, 1062, 1065, 1068,
461 1071, 1074, 1077, 1080, 1083, 1086, 1089, 1092, 1095, 1098,
462 1101, 1104, 1108, 1110, 1115, 1117, 1121, 1124, 1127, 1130,
463 1131, 1133, 1134, 1135, 1136, 1149, 1150, 1151, 1163, 1170,
464 1177, 1178, 1179, 1190, 1191, 1192, 1203, 1209, 1215, 1220,
465 1225, 1226, 1228, 1230, 1233, 1239, 1243, 1246, 1251, 1253,
466 1257, 1262, 1269, 1270, 1279, 1284, 1286, 1290, 1293, 1295,
467 1300, 1302, 1304, 1307, 1310, 1312, 1315, 1317, 1320, 1322,
468 1324, 1326, 1329, 1331, 1334, 1337, 1341, 1343, 1347, 1349,
469 1353, 1355, 1357, 1361, 1362, 1365, 1366, 1371, 1376, 1378,
470 1380, 1383, 1385, 1387, 1390, 1391, 1393, 1399, 1402, 1406,
471 1410, 1415, 1419, 1424, 1429, 1435, 1437, 1439, 1441, 1443,
472 1445, 1447, 1449, 1451, 1453, 1455, 1457, 1459, 1462, 1465,
473 1473, 1480, 1483, 1484, 1485, 1496, 1497, 1504, 1506, 1508,
474 1510, 1512, 1515, 1517, 1519, 1521, 1523, 1525, 1527, 1529,
475 1533, 1535, 1536, 1540, 1543, 1546, 1548, 1550, 1552, 1554,
476 1556, 1558, 1560, 1562, 1564, 1566, 1570, 1572, 1574, 1577,
477 1580, 1581, 1584, 1585, 1590, 1591, 1598, 1599, 1603, 1604,
478 1610, 1614, 1617, 1621, 1622, 1623, 1624, 1625, 1626, 1628,
479 1631, 1634, 1638, 1641, 1645, 1649, 1654, 1657, 1660, 1664,
480 1668, 1673, 1675, 1678, 1680, 1683, 1685, 1688, 1690, 1693,
481 1695, 1698, 1700, 1705, 1708, 1709, 1715, 1716, 1723, 1728,
482 1733, 1734, 1735, 1746, 1748, 1749, 1754, 1756, 1758, 1760,
483 1762, 1764, 1767, 1769, 1773, 1775, 1780, 1784, 1789, 1796,
484 1802, 1808, 1811, 1814, 1816, 1819, 1822, 1825, 1828, 1831,
485 1834, 1837, 1840, 1842, 1844, 1849, 1851, 1855, 1859, 1863,
486 1865, 1869, 1873, 1875, 1879, 1883, 1885, 1889, 1893, 1897,
487 1901, 1903, 1907, 1911, 1913, 1917, 1919, 1923, 1925, 1929,
488 1931, 1935, 1937, 1941, 1943, 1944, 1945, 1953, 1955, 1959,
489 1963, 1967, 1971, 1975, 1979, 1983, 1987, 1991, 1995, 1999,
490 2001, 2002, 2004, 2007, 2015, 2018, 2021, 2029, 2036, 2039,
491 2043, 2046, 2050, 2053, 2057, 2061, 2065, 2069, 2072, 2076,
492 2077, 2079, 2081, 2083, 2085, 2087, 2089, 2091, 2093
495 static const short yyrhs[] = { -1,
496 194, 0, 195, 0, 194, 195, 0, 256, 447, 0,
497 196, 0, 197, 0, 207, 0, 210, 0, 293, 0,
498 18, 0, 1, 0, 76, 331, 345, 355, 345, 447,
499 301, 90, 0, 76, 331, 345, 355, 345, 23, 301,
500 306, 305, 447, 90, 0, 0, 77, 198, 199, 447,
501 90, 0, 200, 0, 331, 345, 200, 0, 204, 0,
502 359, 204, 0, 449, 0, 301, 24, 345, 355, 301,
503 25, 0, 201, 26, 27, 0, 201, 26, 301, 292,
504 27, 345, 0, 0, 201, 302, 24, 25, 202, 228,
505 0, 0, 201, 302, 24, 356, 25, 203, 228, 0,
506 449, 0, 301, 24, 345, 200, 301, 25, 0, 204,
507 26, 27, 0, 204, 26, 301, 292, 27, 345, 0,
508 0, 204, 302, 24, 25, 205, 229, 0, 0, 204,
509 302, 24, 356, 25, 206, 229, 0, 0, 0, 78,
510 449, 24, 356, 25, 208, 229, 209, 447, 90, 0,
511 91, 386, 94, 0, 92, 372, 94, 0, 93, 373,
512 94, 0, 91, 94, 0, 251, 0, 213, 23, 216,
513 0, 0, 225, 214, 22, 217, 0, 0, 5, 215,
514 22, 217, 0, 213, 0, 213, 40, 216, 0, 192,
515 0, 183, 0, 55, 0, 220, 218, 219, 0, 220,
516 0, 223, 222, 223, 0, 180, 0, 181, 0, 52,
517 0, 51, 0, 53, 0, 224, 0, 226, 24, 223,
518 25, 0, 24, 223, 227, 223, 25, 0, 225, 0,
519 188, 0, 448, 0, 185, 0, 225, 26, 27, 0,
520 225, 26, 188, 27, 0, 34, 225, 0, 24, 225,
521 25, 0, 225, 28, 449, 0, 225, 44, 449, 0,
522 221, 0, 33, 0, 32, 0, 0, 230, 228, 0,
523 0, 231, 229, 0, 232, 0, 236, 0, 235, 0,
524 309, 0, 312, 0, 242, 0, 233, 0, 237, 0,
525 235, 0, 310, 0, 314, 0, 243, 0, 233, 90,
526 0, 0, 73, 234, 244, 447, 0, 75, 0, 237,
527 90, 0, 0, 74, 238, 257, 0, 240, 0, 240,
528 40, 239, 0, 185, 0, 242, 0, 0, 243, 90,
529 0, 72, 239, 423, 0, 72, 239, 0, 245, 0,
530 244, 21, 245, 0, 246, 247, 0, 0, 248, 246,
531 0, 448, 0, 185, 0, 293, 0, 88, 0, 89,
532 0, 118, 0, 119, 0, 132, 0, 79, 0, 80,
533 0, 81, 0, 82, 0, 83, 0, 84, 0, 85,
534 0, 355, 0, 331, 345, 355, 0, 0, 19, 253,
535 403, 0, 0, 0, 254, 407, 255, 396, 0, 211,
536 252, 0, 260, 447, 0, 447, 0, 448, 0, 185,
537 0, 258, 26, 27, 0, 258, 26, 259, 27, 0,
538 34, 258, 0, 24, 258, 25, 0, 258, 28, 449,
539 0, 258, 44, 449, 0, 258, 0, 423, 0, 258,
540 0, 260, 21, 258, 0, 448, 0, 185, 0, 261,
541 26, 27, 0, 261, 26, 259, 27, 0, 34, 261,
542 0, 24, 261, 25, 0, 261, 28, 449, 0, 261,
543 44, 449, 0, 0, 263, 0, 261, 0, 263, 21,
544 261, 0, 448, 0, 185, 0, 423, 0, 24, 290,
545 25, 0, 186, 0, 113, 0, 264, 0, 265, 26,
546 290, 27, 0, 265, 24, 25, 0, 265, 24, 266,
547 25, 0, 70, 24, 289, 21, 367, 25, 0, 265,
548 345, 28, 449, 301, 0, 265, 345, 44, 449, 301,
549 0, 265, 47, 0, 265, 48, 0, 289, 0, 266,
550 21, 289, 0, 265, 0, 47, 267, 0, 48, 267,
551 0, 29, 273, 0, 34, 273, 0, 33, 273, 0,
552 32, 273, 0, 31, 273, 0, 30, 273, 0, 270,
553 0, 269, 0, 268, 28, 449, 0, 449, 0, 46,
554 301, 24, 367, 345, 21, 268, 25, 301, 0, 0,
555 301, 271, 272, 0, 42, 24, 367, 25, 0, 42,
556 267, 0, 43, 24, 367, 25, 0, 43, 267, 0,
557 267, 0, 24, 367, 25, 273, 0, 273, 0, 274,
558 34, 273, 0, 274, 35, 273, 0, 274, 36, 273,
559 0, 274, 0, 275, 33, 274, 0, 275, 32, 274,
560 0, 275, 0, 276, 49, 275, 0, 276, 50, 275,
561 0, 276, 0, 277, 37, 276, 0, 277, 38, 276,
562 0, 277, 51, 276, 0, 277, 52, 276, 0, 277,
563 0, 278, 53, 277, 0, 278, 54, 277, 0, 278,
564 0, 279, 29, 278, 0, 279, 0, 280, 39, 279,
565 0, 280, 0, 281, 40, 280, 0, 281, 0, 0,
566 282, 55, 283, 281, 0, 282, 0, 0, 284, 56,
567 285, 282, 0, 284, 0, 0, 0, 284, 41, 287,
568 290, 22, 288, 286, 0, 286, 0, 267, 23, 289,
569 0, 267, 57, 289, 0, 267, 58, 289, 0, 267,
570 59, 289, 0, 267, 60, 289, 0, 267, 61, 289,
571 0, 267, 62, 289, 0, 267, 63, 289, 0, 267,
572 64, 289, 0, 267, 65, 289, 0, 267, 66, 289,
573 0, 289, 0, 290, 21, 289, 0, 0, 290, 0,
574 286, 0, 294, 0, 71, 0, 299, 0, 331, 301,
575 18, 0, 0, 331, 345, 355, 345, 295, 301, 305,
576 18, 301, 0, 0, 331, 345, 355, 345, 23, 296,
577 301, 306, 305, 18, 301, 0, 355, 345, 0, 0,
578 355, 345, 23, 298, 301, 306, 0, 0, 45, 331,
579 300, 345, 303, 301, 241, 18, 0, 45, 331, 301,
580 18, 0, 45, 303, 301, 18, 0, 0, 0, 304,
581 301, 0, 297, 0, 303, 21, 345, 297, 0, 0,
582 305, 21, 345, 297, 0, 289, 0, 19, 307, 20,
583 0, 19, 307, 21, 20, 0, 306, 0, 307, 21,
584 306, 0, 114, 0, 112, 0, 115, 0, 116, 0,
585 117, 0, 310, 90, 0, 0, 249, 345, 311, 263,
586 447, 301, 0, 314, 90, 0, 250, 345, 0, 0,
587 313, 320, 315, 262, 447, 301, 0, 0, 313, 316,
588 317, 447, 301, 0, 219, 0, 212, 0, 141, 0,
589 142, 0, 144, 0, 145, 0, 143, 0, 126, 0,
590 129, 0, 127, 0, 128, 0, 134, 0, 135, 0,
591 120, 0, 122, 0, 121, 0, 130, 0, 131, 0,
592 123, 0, 125, 0, 138, 0, 140, 0, 153, 0,
593 152, 0, 137, 0, 139, 0, 177, 0, 187, 0,
594 136, 0, 151, 0, 150, 0, 160, 0, 158, 0,
595 159, 0, 154, 0, 155, 0, 156, 0, 157, 0,
596 161, 0, 162, 0, 165, 0, 166, 0, 163, 0,
597 164, 0, 149, 0, 146, 0, 147, 0, 148, 0,
598 118, 0, 119, 0, 132, 0, 133, 0, 110, 301,
599 0, 111, 301, 0, 327, 301, 0, 320, 301, 0,
600 318, 301, 0, 321, 301, 0, 319, 301, 0, 323,
601 301, 0, 322, 301, 0, 324, 301, 0, 325, 301,
602 0, 167, 345, 0, 169, 345, 0, 168, 345, 0,
603 170, 345, 0, 171, 345, 0, 172, 345, 0, 173,
604 345, 0, 174, 345, 0, 175, 345, 0, 176, 345,
605 0, 450, 345, 0, 336, 345, 0, 350, 345, 0,
606 326, 345, 0, 301, 331, 301, 0, 333, 0, 333,
607 87, 332, 90, 0, 367, 0, 367, 21, 332, 0,
608 308, 334, 0, 328, 334, 0, 329, 334, 0, 0,
609 331, 0, 0, 0, 0, 345, 67, 449, 301, 19,
610 337, 400, 346, 401, 338, 20, 335, 0, 0, 0,
611 345, 68, 449, 301, 19, 339, 400, 346, 401, 340,
612 20, 0, 345, 67, 449, 301, 19, 20, 0, 345,
613 68, 449, 301, 19, 20, 0, 0, 0, 345, 67,
614 301, 19, 341, 400, 346, 401, 342, 20, 0, 0,
615 0, 345, 68, 301, 19, 343, 400, 346, 401, 344,
616 20, 0, 345, 67, 301, 19, 20, 0, 345, 68,
617 301, 19, 20, 0, 345, 67, 449, 345, 0, 345,
618 68, 449, 345, 0, 0, 347, 0, 210, 0, 346,
619 347, 0, 331, 345, 348, 301, 18, 0, 331, 301,
620 18, 0, 349, 345, 0, 348, 21, 349, 345, 0,
621 355, 0, 22, 301, 292, 0, 355, 22, 301, 292,
622 0, 345, 69, 19, 352, 20, 301, 0, 0, 345,
623 69, 449, 19, 351, 352, 20, 301, 0, 345, 69,
624 449, 301, 0, 353, 0, 352, 21, 353, 0, 352,
625 21, 0, 449, 0, 449, 23, 301, 292, 0, 201,
626 0, 369, 0, 359, 191, 0, 359, 354, 0, 201,
627 0, 359, 201, 0, 362, 0, 345, 360, 0, 110,
628 0, 111, 0, 357, 0, 358, 357, 0, 34, 0,
629 34, 358, 0, 34, 359, 0, 34, 358, 359, 0,
630 361, 0, 361, 21, 5, 0, 449, 0, 361, 21,
631 449, 0, 5, 0, 363, 0, 363, 21, 5, 0,
632 0, 364, 366, 0, 0, 363, 21, 365, 366, 0,
633 301, 331, 354, 301, 0, 449, 0, 330, 0, 330,
634 368, 0, 359, 0, 370, 0, 359, 370, 0, 0,
635 370, 0, 301, 24, 345, 368, 25, 0, 26, 27,
636 0, 26, 292, 27, 0, 370, 26, 27, 0, 370,
637 26, 292, 27, 0, 301, 24, 25, 0, 301, 24,
638 362, 25, 0, 370, 301, 24, 25, 0, 370, 301,
639 24, 362, 25, 0, 388, 0, 390, 0, 393, 0,
640 396, 0, 409, 0, 412, 0, 444, 0, 417, 0,
641 446, 0, 374, 0, 372, 0, 381, 0, 374, 381,
642 0, 416, 374, 0, 443, 387, 11, 24, 290, 25,
643 18, 0, 443, 387, 11, 24, 290, 25, 0, 376,
644 381, 0, 0, 0, 13, 24, 291, 18, 291, 18,
645 377, 291, 378, 25, 0, 0, 189, 398, 24, 380,
646 420, 25, 0, 190, 0, 388, 0, 390, 0, 393,
647 0, 384, 407, 0, 384, 0, 385, 0, 409, 0,
648 382, 0, 375, 0, 379, 0, 446, 0, 24, 381,
649 25, 0, 1, 0, 0, 411, 383, 381, 0, 398,
650 19, 0, 402, 20, 0, 387, 0, 406, 0, 388,
651 0, 390, 0, 393, 0, 397, 0, 410, 0, 412,
652 0, 417, 0, 445, 0, 24, 387, 25, 0, 446,
653 0, 1, 0, 449, 22, 0, 109, 371, 0, 0,
654 100, 389, 0, 0, 6, 292, 391, 22, 0, 0,
655 100, 389, 6, 292, 392, 22, 0, 0, 7, 394,
656 22, 0, 0, 100, 389, 7, 395, 22, 0, 24,
657 396, 25, 0, 398, 404, 0, 398, 405, 399, 0,
658 0, 0, 0, 0, 0, 20, 0, 109, 20, 0,
659 408, 20, 0, 408, 109, 20, 0, 407, 20, 0,
660 407, 109, 20, 0, 407, 408, 20, 0, 407, 408,
661 109, 20, 0, 19, 403, 0, 19, 20, 0, 19,
662 406, 20, 0, 19, 407, 20, 0, 19, 407, 408,
663 20, 0, 387, 0, 406, 387, 0, 293, 0, 407,
664 293, 0, 371, 0, 408, 371, 0, 18, 0, 290,
665 18, 0, 18, 0, 290, 18, 0, 290, 0, 8,
666 24, 290, 25, 0, 411, 371, 0, 0, 411, 371,
667 9, 413, 371, 0, 0, 10, 24, 290, 414, 25,
668 371, 0, 11, 24, 290, 25, 0, 11, 24, 290,
669 25, 0, 0, 0, 189, 418, 398, 24, 419, 420,
670 25, 396, 442, 399, 0, 422, 0, 0, 420, 421,
671 21, 422, 0, 441, 0, 448, 0, 186, 0, 185,
672 0, 188, 0, 423, 188, 0, 423, 0, 24, 290,
673 25, 0, 424, 0, 265, 26, 290, 27, 0, 265,
674 24, 25, 0, 265, 24, 266, 25, 0, 70, 24,
675 289, 21, 367, 25, 0, 265, 345, 28, 449, 301,
676 0, 265, 345, 44, 449, 301, 0, 265, 47, 0,
677 265, 48, 0, 425, 0, 47, 267, 0, 48, 267,
678 0, 29, 273, 0, 34, 273, 0, 33, 273, 0,
679 32, 273, 0, 31, 273, 0, 30, 273, 0, 270,
680 0, 426, 0, 24, 367, 25, 273, 0, 427, 0,
681 274, 34, 273, 0, 274, 35, 273, 0, 274, 36,
682 273, 0, 428, 0, 275, 33, 274, 0, 275, 32,
683 274, 0, 429, 0, 276, 49, 275, 0, 276, 50,
684 275, 0, 430, 0, 277, 37, 276, 0, 277, 38,
685 276, 0, 277, 51, 276, 0, 277, 52, 276, 0,
686 431, 0, 278, 53, 277, 0, 278, 54, 277, 0,
687 432, 0, 279, 29, 278, 0, 433, 0, 280, 39,
688 279, 0, 434, 0, 281, 40, 280, 0, 435, 0,
689 282, 55, 281, 0, 436, 0, 284, 56, 282, 0,
690 437, 0, 0, 0, 284, 41, 439, 290, 22, 440,
691 286, 0, 438, 0, 267, 23, 289, 0, 267, 57,
692 289, 0, 267, 58, 289, 0, 267, 59, 289, 0,
693 267, 60, 289, 0, 267, 61, 289, 0, 267, 62,
694 289, 0, 267, 63, 289, 0, 267, 64, 289, 0,
695 267, 65, 289, 0, 267, 66, 289, 0, 190, 0,
696 0, 12, 0, 415, 371, 0, 443, 371, 11, 24,
697 290, 25, 18, 0, 376, 371, 0, 415, 387, 0,
698 443, 387, 11, 24, 290, 25, 18, 0, 443, 387,
699 11, 24, 290, 25, 0, 376, 387, 0, 14, 449,
700 18, 0, 15, 18, 0, 99, 15, 18, 0, 16,
701 18, 0, 95, 16, 18, 0, 96, 16, 18, 0,
702 97, 16, 18, 0, 98, 16, 18, 0, 17, 18,
703 0, 17, 290, 18, 0, 0, 18, 0, 184, 0,
704 185, 0, 189, 0, 190, 0, 448, 0, 186, 0,
711 static const short yyrline[] = { 0,
712 322, 323, 326, 327, 330, 331, 332, 333, 334, 335,
713 336, 337, 340, 342, 346, 346, 353, 359, 363, 364,
714 368, 369, 371, 373, 388, 391, 401, 404, 412, 413,
715 415, 417, 433, 436, 444, 447, 455, 457, 457, 461,
716 462, 463, 464, 467, 470, 474, 474, 477, 477, 482,
717 483, 486, 491, 492, 495, 496, 499, 504, 505, 508,
718 509, 510, 513, 514, 515, 520, 521, 524, 526, 528,
719 530, 539, 541, 543, 545, 561, 565, 566, 573, 574,
720 582, 584, 588, 589, 590, 591, 592, 593, 596, 597,
721 598, 599, 600, 601, 604, 607, 608, 615, 618, 621,
722 627, 635, 637, 641, 644, 645, 648, 651, 657, 661,
723 662, 665, 668, 669, 672, 673, 674, 677, 678, 679,
724 680, 681, 684, 685, 686, 687, 688, 691, 692, 695,
725 701, 705, 707, 711, 712, 714, 721, 731, 732, 735,
726 736, 737, 738, 739, 740, 741, 742, 746, 747, 751,
727 752, 755, 757, 759, 760, 761, 762, 763, 765, 769,
728 770, 773, 777, 789, 790, 791, 792, 793, 794, 797,
729 798, 799, 800, 801, 802, 803, 804, 805, 808, 809,
730 812, 813, 814, 815, 816, 817, 818, 819, 820, 821,
731 822, 825, 826, 829, 833, 834, 837, 838, 839, 840,
732 843, 844, 848, 849, 850, 851, 854, 855, 856, 859,
733 860, 861, 864, 865, 866, 867, 868, 871, 872, 873,
734 876, 877, 880, 881, 885, 886, 889, 890, 895, 901,
735 902, 908, 914, 915, 915, 917, 920, 921, 922, 923,
736 924, 925, 926, 927, 928, 929, 930, 931, 934, 935,
737 938, 939, 942, 947, 948, 949, 952, 966, 971, 977,
738 979, 985, 990, 990, 994, 995, 997, 998, 1001, 1004,
739 1007, 1010, 1011, 1014, 1015, 1018, 1019, 1020, 1024, 1026,
740 1035, 1036, 1037, 1038, 1039, 1042, 1045, 1051, 1060, 1063,
741 1066, 1073, 1080, 1086, 1111, 1112, 1115, 1116, 1117, 1118,
742 1119, 1122, 1123, 1124, 1125, 1128, 1129, 1130, 1131, 1132,
743 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142,
744 1143, 1144, 1148, 1149, 1152, 1153, 1156, 1157, 1160, 1161,
745 1162, 1163, 1166, 1167, 1168, 1169, 1170, 1171, 1174, 1175,
746 1176, 1177, 1180, 1181, 1182, 1183, 1186, 1187, 1188, 1189,
747 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1203, 1204, 1205,
748 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
749 1216, 1219, 1223, 1224, 1228, 1229, 1233, 1234, 1235, 1238,
750 1239, 1243, 1250, 1252, 1254, 1255, 1257, 1259, 1260, 1262,
751 1264, 1266, 1268, 1269, 1270, 1273, 1274, 1276, 1278, 1279,
752 1282, 1285, 1286, 1287, 1290, 1292, 1296, 1298, 1302, 1303,
753 1304, 1308, 1310, 1310, 1312, 1315, 1317, 1319, 1322, 1327,
754 1334, 1335, 1336, 1343, 1347, 1348, 1352, 1353, 1356, 1357,
755 1360, 1361, 1364, 1365, 1366, 1367, 1370, 1371, 1374, 1375,
756 1378, 1379, 1380, 1383, 1383, 1384, 1385, 1388, 1400, 1416,
757 1417, 1420, 1421, 1422, 1425, 1426, 1429, 1431, 1432, 1434,
758 1435, 1437, 1439, 1441, 1443, 1449, 1450, 1451, 1452, 1453,
759 1454, 1455, 1456, 1457, 1461, 1464, 1467, 1468, 1472, 1474,
760 1476, 1478, 1482, 1483, 1485, 1489, 1491, 1493, 1496, 1497,
761 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507,
762 1508, 1511, 1512, 1517, 1520, 1523, 1524, 1527, 1528, 1529,
763 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1540, 1541,
764 1548, 1549, 1555, 1556, 1557, 1558, 1561, 1562, 1563, 1564,
765 1567, 1568, 1572, 1575, 1578, 1581, 1584, 1587, 1590, 1591,
766 1592, 1593, 1595, 1596, 1598, 1600, 1606, 1610, 1612, 1614,
767 1616, 1620, 1621, 1624, 1625, 1628, 1629, 1632, 1633, 1636,
768 1637, 1638, 1641, 1654, 1659, 1660, 1664, 1665, 1668, 1673,
769 1676, 1677, 1678, 1686, 1687, 1687, 1691, 1692, 1693, 1704,
770 1711, 1712, 1715, 1716, 1719, 1720, 1721, 1722, 1723, 1725,
771 1726, 1727, 1728, 1731, 1732, 1733, 1734, 1735, 1736, 1737,
772 1738, 1739, 1740, 1743, 1744, 1747, 1748, 1749, 1750, 1753,
773 1754, 1755, 1758, 1759, 1760, 1763, 1764, 1765, 1766, 1767,
774 1770, 1771, 1772, 1775, 1776, 1779, 1780, 1784, 1785, 1788,
775 1789, 1792, 1793, 1796, 1797, 1798, 1799, 1802, 1803, 1804,
776 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1816,
777 1817, 1820, 1823, 1825, 1827, 1831, 1832, 1834, 1836, 1839,
778 1840, 1841, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1852,
779 1853, 1856, 1859, 1860, 1861, 1862, 1863, 1866, 1867
784 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
786 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
787 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
788 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
789 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
790 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
791 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
792 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
793 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
794 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
795 "VA_ARG","VA_DCL","QWARN","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION",
796 "QITER","QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
797 "QINVARIANT","QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND",
798 "TENDMACRO","QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE",
799 "QFALLTHROUGH","QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED",
800 "QPRINTFLIKE","QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST",
801 "QVOLATILE","QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT",
802 "QIN","QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
803 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
804 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
805 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
806 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
807 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
808 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
809 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
810 "QSETBUFFERSIZE","QSETSTRINGLENGTH","QMAXSET","QMAXREAD","QTESTINRANGE","TCAND",
811 "IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID","CANNOTATION","CCONSTANT","ITER_NAME",
812 "ITER_ENDNAME","TYPE_NAME","METASTATE_NAME","file","externalDefs","externalDef",
813 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
814 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
815 "metaStateConstraint","metaStateSpecifier","@8","@9","metaStateExpression","metaStateName",
816 "constraintSeperator","BufConstraintList","BufConstraint","bufferModifier","relationalOp",
817 "BufConstraintExpr","BufConstraintTerm","BufConstraintSrefExpr","BufUnaryOp",
818 "BufBinaryOp","functionClauses","functionClausesPlain","functionClause","functionClausePlain",
819 "globalsClause","globalsClausePlain","@10","nomodsClause","modifiesClause","modifiesClausePlain",
820 "@11","flagSpec","flagId","optWarnClause","warnClause","warnClausePlain","globIdList",
821 "globIdListExpr","optGlobQuals","globId","globQual","stateTag","conditionTag",
822 "fcnDefHdrAux","fcnBody","@12","@13","@14","fcnDef","locModifies","modListExpr",
823 "mExpr","modList","specClauseListExpr","optSpecClauseList","specClauseList",
824 "primaryExpr","postfixExpr","argumentExprList","unaryExpr","fieldDesignator",
825 "offsetofExpr","sizeofExpr","@15","sizeofExprAux","castExpr","timesExpr","plusExpr",
826 "shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr",
827 "andExpr","@16","orExpr","@17","conditionalExpr","@18","@19","assignExpr","expr",
828 "optExpr","constantExpr","initializer","instanceDecl","@20","@21","namedInitializer",
829 "@22","typeDecl","@23","IsType","PushType","namedInitializerList","namedInitializerListAux",
830 "optDeclarators","init","initList","storageSpecifier","stateClause","stateClausePlain",
831 "@24","conditionClause","startConditionClause","conditionClausePlain","@25",
832 "@26","functionConstraint","exitsQualifier","checkQualifier","stateQualifier",
833 "paramQualifier","visibilityQualifier","returnQualifier","typedefQualifier",
834 "refcountQualifier","typeModifier","definedQualifier","typeQualifier","typeSpecifier",
835 "completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux",
836 "optCompleteType","optStructInvariant","suSpc","@27","@28","@29","@30","@31",
837 "@32","@33","@34","NotType","structDeclList","structDecl","structNamedDeclList",
838 "structNamedDecl","enumSpc","@35","enumeratorList","enumerator","optNamedDecl",
839 "namedDecl","genericParamList","innerMods","innerModsList","pointers","paramIdList",
840 "idList","paramTypeList","paramList","@36","@37","paramDecl","typeExpression",
841 "abstractDecl","optAbstractDeclBase","abstractDeclBase","stmt","iterBody","endBody",
842 "iterDefStmtList","iterDefIterationStmt","forPred","@38","@39","partialIterStmt",
843 "@40","iterDefStmt","iterSelectionStmt","@41","openScope","closeScope","macroBody",
844 "stmtErr","labeledStmt","optExtraFallThroughs","caseStmt","@42","@43","defaultStmt",
845 "@44","@45","compoundStmt","compoundStmtErr","CreateInnerScope","DeleteInnerScope",
846 "CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe","compoundStmtRest",
847 "compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList","stmtList",
848 "expressionStmt","expressionStmtErr","ifPred","selectionStmt","@46","@47","whilePred",
849 "iterWhilePred","iterStmt","@48","@49","iterArgList","@50","iterArgExpr","cconstantExpr",
850 "primaryIterExpr","postfixIterExpr","unaryIterExpr","castIterExpr","timesIterExpr",
851 "plusIterExpr","shiftIterExpr","relationalIterExpr","equalityIterExpr","bitandIterExpr",
852 "xorIterExpr","bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr",
853 "@51","@52","assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr",
854 "jumpStmt","optSemi","id","newId","typeName", NULL
858 static const short yyr1[] = { 0,
859 193, 193, 194, 194, 195, 195, 195, 195, 195, 195,
860 195, 195, 196, 196, 198, 197, 199, 199, 200, 200,
861 201, 201, 201, 201, 202, 201, 203, 201, 204, 204,
862 204, 204, 205, 204, 206, 204, 208, 209, 207, 210,
863 210, 210, 210, 211, 212, 214, 213, 215, 213, 216,
864 216, 217, 218, 218, 219, 219, 220, 221, 221, 222,
865 222, 222, 223, 223, 223, 224, 224, 225, 225, 225,
866 225, 225, 225, 225, 225, 226, 227, 227, 228, 228,
867 229, 229, 230, 230, 230, 230, 230, 230, 231, 231,
868 231, 231, 231, 231, 232, 234, 233, 235, 236, 238,
869 237, 239, 239, 240, 241, 241, 242, 243, 243, 244,
870 244, 245, 246, 246, 247, 247, 247, 248, 248, 248,
871 248, 248, 249, 249, 249, 249, 249, 250, 250, 251,
872 251, 253, 252, 254, 255, 252, 256, 257, 257, 258,
873 258, 258, 258, 258, 258, 258, 258, 259, 259, 260,
874 260, 261, 261, 261, 261, 261, 261, 261, 261, 262,
875 262, 263, 263, 264, 264, 264, 264, 264, 264, 265,
876 265, 265, 265, 265, 265, 265, 265, 265, 266, 266,
877 267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
878 267, 268, 268, 269, 271, 270, 272, 272, 272, 272,
879 273, 273, 274, 274, 274, 274, 275, 275, 275, 276,
880 276, 276, 277, 277, 277, 277, 277, 278, 278, 278,
881 279, 279, 280, 280, 281, 281, 282, 283, 282, 284,
882 285, 284, 286, 287, 288, 286, 289, 289, 289, 289,
883 289, 289, 289, 289, 289, 289, 289, 289, 290, 290,
884 291, 291, 292, 293, 293, 293, 294, 295, 294, 296,
885 294, 297, 298, 297, 300, 299, 299, 299, 301, 302,
886 303, 304, 304, 305, 305, 306, 306, 306, 307, 307,
887 308, 308, 308, 308, 308, 309, 311, 310, 312, 313,
888 315, 314, 316, 314, 317, 317, 318, 318, 318, 318,
889 318, 319, 319, 319, 319, 320, 320, 320, 320, 320,
890 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
891 320, 320, 321, 321, 322, 322, 323, 323, 324, 324,
892 324, 324, 325, 325, 325, 325, 325, 325, 326, 326,
893 326, 326, 327, 327, 327, 327, 328, 328, 328, 328,
894 328, 328, 328, 328, 328, 328, 328, 329, 329, 329,
895 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
896 329, 330, 331, 331, 332, 332, 333, 333, 333, 334,
897 334, 335, 337, 338, 336, 339, 340, 336, 336, 336,
898 341, 342, 336, 343, 344, 336, 336, 336, 336, 336,
899 345, 346, 346, 346, 347, 347, 348, 348, 349, 349,
900 349, 350, 351, 350, 350, 352, 352, 352, 353, 353,
901 354, 354, 354, 354, 355, 355, 356, 356, 357, 357,
902 358, 358, 359, 359, 359, 359, 360, 360, 361, 361,
903 362, 362, 362, 364, 363, 365, 363, 366, 366, 367,
904 367, 368, 368, 368, 369, 369, 370, 370, 370, 370,
905 370, 370, 370, 370, 370, 371, 371, 371, 371, 371,
906 371, 371, 371, 371, 372, 373, 374, 374, 375, 375,
907 375, 375, 377, 378, 376, 380, 379, 379, 381, 381,
908 381, 381, 381, 381, 381, 381, 381, 381, 381, 381,
909 381, 383, 382, 384, 385, 386, 386, 387, 387, 387,
910 387, 387, 387, 387, 387, 387, 387, 387, 388, 388,
911 389, 389, 391, 390, 392, 390, 394, 393, 395, 393,
912 396, 396, 397, 398, 399, 400, 401, 402, 403, 403,
913 403, 403, 403, 403, 403, 403, 404, 405, 405, 405,
914 405, 406, 406, 407, 407, 408, 408, 409, 409, 410,
915 410, 410, 411, 412, 413, 412, 414, 412, 415, 416,
916 418, 419, 417, 420, 421, 420, 422, 422, 422, 422,
917 423, 423, 424, 424, 425, 425, 425, 425, 425, 425,
918 425, 425, 425, 426, 426, 426, 426, 426, 426, 426,
919 426, 426, 426, 427, 427, 428, 428, 428, 428, 429,
920 429, 429, 430, 430, 430, 431, 431, 431, 431, 431,
921 432, 432, 432, 433, 433, 434, 434, 435, 435, 436,
922 436, 437, 437, 438, 439, 440, 438, 441, 441, 441,
923 441, 441, 441, 441, 441, 441, 441, 441, 441, 442,
924 442, 443, 444, 444, 444, 445, 445, 445, 445, 446,
925 446, 446, 446, 446, 446, 446, 446, 446, 446, 447,
926 447, 448, 449, 449, 449, 449, 449, 450, 450
929 static const short yyr2[] = { 0,
930 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
931 1, 1, 8, 11, 0, 5, 1, 3, 1, 2,
932 1, 6, 3, 6, 0, 6, 0, 7, 1, 6,
933 3, 6, 0, 6, 0, 7, 0, 0, 10, 3,
934 3, 3, 2, 1, 3, 0, 4, 0, 4, 1,
935 3, 1, 1, 1, 3, 1, 3, 1, 1, 1,
936 1, 1, 1, 4, 5, 1, 1, 1, 1, 3,
937 4, 2, 3, 3, 3, 1, 1, 1, 0, 2,
938 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
939 1, 1, 1, 1, 2, 0, 4, 1, 2, 0,
940 3, 1, 3, 1, 1, 0, 2, 3, 2, 1,
941 3, 2, 0, 2, 1, 1, 1, 1, 1, 1,
942 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
943 3, 0, 3, 0, 0, 4, 2, 2, 1, 1,
944 1, 3, 4, 2, 3, 3, 3, 1, 1, 1,
945 3, 1, 1, 3, 4, 2, 3, 3, 3, 0,
946 1, 1, 3, 1, 1, 1, 3, 1, 1, 1,
947 4, 3, 4, 6, 5, 5, 2, 2, 1, 3,
948 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
949 1, 3, 1, 9, 0, 3, 4, 2, 4, 2,
950 1, 4, 1, 3, 3, 3, 1, 3, 3, 1,
951 3, 3, 1, 3, 3, 3, 3, 1, 3, 3,
952 1, 3, 1, 3, 1, 3, 1, 0, 4, 1,
953 0, 4, 1, 0, 0, 7, 1, 3, 3, 3,
954 3, 3, 3, 3, 3, 3, 3, 3, 1, 3,
955 0, 1, 1, 1, 1, 1, 3, 0, 9, 0,
956 11, 2, 0, 6, 0, 8, 4, 4, 0, 0,
957 2, 1, 4, 0, 4, 1, 3, 4, 1, 3,
958 1, 1, 1, 1, 1, 2, 0, 6, 2, 2,
959 0, 6, 0, 5, 1, 1, 1, 1, 1, 1,
960 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
961 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
962 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
963 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
964 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
965 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
966 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
967 2, 3, 1, 4, 1, 3, 2, 2, 2, 0,
968 1, 0, 0, 0, 12, 0, 0, 11, 6, 6,
969 0, 0, 10, 0, 0, 10, 5, 5, 4, 4,
970 0, 1, 1, 2, 5, 3, 2, 4, 1, 3,
971 4, 6, 0, 8, 4, 1, 3, 2, 1, 4,
972 1, 1, 2, 2, 1, 2, 1, 2, 1, 1,
973 1, 2, 1, 2, 2, 3, 1, 3, 1, 3,
974 1, 1, 3, 0, 2, 0, 4, 4, 1, 1,
975 2, 1, 1, 2, 0, 1, 5, 2, 3, 3,
976 4, 3, 4, 4, 5, 1, 1, 1, 1, 1,
977 1, 1, 1, 1, 1, 1, 1, 2, 2, 7,
978 6, 2, 0, 0, 10, 0, 6, 1, 1, 1,
979 1, 2, 1, 1, 1, 1, 1, 1, 1, 3,
980 1, 0, 3, 2, 2, 1, 1, 1, 1, 1,
981 1, 1, 1, 1, 1, 3, 1, 1, 2, 2,
982 0, 2, 0, 4, 0, 6, 0, 3, 0, 5,
983 3, 2, 3, 0, 0, 0, 0, 0, 1, 2,
984 2, 3, 2, 3, 3, 4, 2, 2, 3, 3,
985 4, 1, 2, 1, 2, 1, 2, 1, 2, 1,
986 2, 1, 4, 2, 0, 5, 0, 6, 4, 4,
987 0, 0, 10, 1, 0, 4, 1, 1, 1, 1,
988 1, 2, 1, 3, 1, 4, 3, 4, 6, 5,
989 5, 2, 2, 1, 2, 2, 2, 2, 2, 2,
990 2, 2, 1, 1, 4, 1, 3, 3, 3, 1,
991 3, 3, 1, 3, 3, 1, 3, 3, 3, 3,
992 1, 3, 3, 1, 3, 1, 3, 1, 3, 1,
993 3, 1, 3, 1, 0, 0, 7, 1, 3, 3,
994 3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
995 0, 1, 2, 7, 2, 2, 7, 6, 2, 3,
996 2, 3, 2, 3, 3, 3, 3, 2, 3, 0,
997 1, 1, 1, 1, 1, 1, 1, 1, 1
1000 static const short yydefact[] = { 0,
1001 12, 11, 433, 401, 255, 401, 15, 0, 0, 0,
1002 0, 269, 269, 282, 281, 283, 284, 285, 343, 344,
1003 308, 310, 309, 313, 314, 302, 304, 305, 303, 311,
1004 312, 345, 346, 306, 307, 323, 319, 315, 320, 316,
1005 297, 298, 301, 299, 300, 340, 341, 342, 339, 325,
1006 324, 318, 317, 329, 330, 331, 332, 327, 328, 326,
1007 333, 334, 337, 338, 335, 336, 401, 401, 401, 401,
1008 401, 401, 401, 401, 401, 401, 321, 672, 673, 677,
1009 322, 674, 675, 678, 0, 3, 6, 7, 425, 8,
1010 9, 134, 44, 670, 10, 254, 256, 0, 380, 269,
1011 269, 269, 269, 269, 269, 269, 269, 401, 269, 380,
1012 380, 401, 373, 401, 0, 401, 130, 269, 676, 21,
1013 401, 429, 430, 431, 434, 435, 272, 269, 269, 265,
1014 401, 679, 401, 401, 677, 0, 518, 269, 527, 0,
1015 0, 0, 652, 0, 0, 0, 0, 269, 560, 0,
1016 269, 269, 269, 269, 269, 269, 269, 269, 269, 0,
1017 43, 0, 0, 0, 0, 0, 521, 269, 169, 165,
1018 168, 581, 571, 170, 181, 201, 191, 190, 203, 207,
1019 210, 213, 218, 221, 223, 225, 227, 230, 233, 237,
1020 249, 562, 195, 0, 0, 552, 508, 509, 510, 511,
1021 0, 0, 512, 269, 513, 0, 514, 166, 0, 515,
1022 517, 164, 0, 501, 0, 558, 0, 534, 488, 0,
1023 0, 0, 497, 0, 498, 477, 496, 493, 494, 489,
1024 490, 491, 0, 0, 495, 502, 0, 0, 499, 476,
1025 0, 347, 348, 358, 360, 359, 361, 362, 363, 364,
1026 365, 366, 367, 4, 269, 0, 132, 137, 401, 671,
1027 5, 401, 381, 377, 351, 353, 350, 352, 355, 354,
1028 356, 357, 371, 349, 378, 379, 0, 269, 269, 369,
1029 269, 269, 0, 370, 426, 368, 432, 436, 401, 0,
1030 271, 401, 0, 262, 269, 670, 17, 19, 0, 401,
1031 269, 29, 444, 269, 165, 168, 201, 253, 523, 164,
1032 0, 269, 269, 269, 269, 0, 661, 663, 668, 0,
1033 0, 401, 450, 0, 0, 184, 189, 188, 187, 186,
1034 185, 0, 269, 182, 183, 269, 0, 0, 0, 0,
1035 0, 521, 0, 269, 520, 269, 466, 467, 468, 469,
1036 0, 470, 471, 269, 473, 269, 472, 474, 534, 269,
1037 269, 177, 178, 0, 269, 269, 269, 269, 269, 269,
1038 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
1039 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
1040 269, 228, 234, 231, 561, 269, 0, 659, 40, 0,
1041 535, 553, 564, 656, 582, 0, 519, 269, 0, 0,
1042 0, 559, 41, 478, 482, 554, 401, 492, 504, 505,
1043 0, 0, 0, 42, 23, 269, 444, 401, 401, 269,
1044 257, 131, 401, 0, 375, 0, 401, 0, 401, 0,
1045 269, 269, 268, 269, 267, 263, 401, 0, 269, 0,
1046 401, 269, 20, 441, 0, 0, 427, 442, 269, 0,
1047 0, 528, 0, 567, 0, 252, 0, 660, 669, 167,
1048 269, 269, 0, 452, 451, 453, 269, 516, 269, 0,
1049 664, 665, 666, 667, 662, 522, 269, 529, 0, 655,
1050 401, 532, 653, 0, 0, 172, 0, 179, 0, 0,
1051 0, 238, 239, 240, 241, 242, 243, 244, 245, 246,
1052 247, 248, 204, 205, 206, 209, 208, 211, 212, 214,
1053 215, 216, 217, 219, 220, 222, 224, 226, 269, 269,
1054 269, 250, 269, 269, 196, 548, 168, 552, 0, 401,
1055 533, 565, 0, 0, 500, 486, 269, 555, 503, 0,
1056 0, 25, 0, 539, 269, 556, 133, 401, 269, 534,
1057 269, 258, 374, 269, 391, 0, 399, 394, 0, 400,
1058 0, 416, 419, 413, 415, 273, 269, 269, 670, 16,
1059 31, 269, 444, 269, 18, 428, 437, 439, 37, 446,
1060 401, 445, 449, 524, 563, 0, 569, 269, 372, 458,
1061 0, 444, 454, 269, 0, 202, 401, 269, 525, 0,
1062 531, 547, 0, 572, 269, 173, 171, 269, 269, 229,
1063 0, 232, 269, 198, 269, 200, 549, 550, 269, 269,
1064 269, 570, 269, 401, 269, 401, 79, 27, 540, 543,
1065 269, 269, 541, 269, 557, 534, 136, 0, 260, 269,
1066 376, 397, 536, 383, 398, 536, 386, 269, 418, 269,
1067 0, 106, 269, 269, 269, 0, 33, 0, 269, 0,
1068 81, 443, 269, 455, 269, 0, 459, 462, 269, 0,
1069 460, 0, 444, 0, 0, 0, 530, 269, 269, 180,
1070 175, 176, 235, 0, 0, 551, 566, 0, 269, 269,
1071 269, 269, 269, 269, 269, 269, 269, 0, 165, 168,
1072 181, 201, 190, 207, 210, 213, 218, 221, 223, 225,
1073 227, 230, 0, 575, 574, 166, 585, 594, 604, 606,
1074 610, 613, 616, 621, 624, 626, 628, 630, 632, 634,
1075 638, 577, 164, 0, 24, 0, 96, 100, 98, 123,
1076 124, 125, 126, 127, 128, 129, 26, 79, 83, 0,
1077 85, 84, 0, 88, 0, 401, 401, 86, 0, 87,
1078 293, 0, 79, 544, 545, 269, 542, 22, 269, 274,
1079 401, 389, 536, 401, 390, 536, 412, 417, 269, 0,
1080 0, 105, 269, 276, 264, 269, 0, 401, 81, 35,
1081 0, 438, 440, 38, 81, 89, 91, 90, 94, 92,
1082 93, 447, 421, 0, 269, 455, 422, 456, 568, 483,
1083 0, 463, 461, 464, 0, 0, 174, 526, 0, 575,
1084 269, 197, 199, 658, 0, 0, 184, 189, 188, 187,
1085 186, 185, 182, 183, 269, 269, 269, 177, 178, 0,
1086 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
1087 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
1088 269, 269, 269, 269, 269, 269, 269, 228, 635, 231,
1089 487, 0, 481, 104, 109, 102, 113, 670, 80, 95,
1090 99, 107, 287, 290, 286, 0, 291, 289, 28, 546,
1091 269, 0, 403, 401, 401, 402, 401, 401, 401, 420,
1092 269, 266, 279, 0, 274, 13, 32, 34, 81, 30,
1093 670, 82, 444, 448, 423, 424, 269, 457, 465, 0,
1094 193, 0, 534, 236, 657, 167, 269, 0, 172, 0,
1095 0, 0, 0, 639, 640, 641, 642, 643, 644, 645,
1096 646, 647, 648, 649, 204, 205, 206, 209, 208, 211,
1097 212, 214, 215, 216, 217, 219, 220, 222, 224, 226,
1098 631, 269, 633, 269, 480, 108, 0, 118, 119, 120,
1099 121, 122, 670, 110, 401, 113, 0, 0, 141, 101,
1100 150, 670, 139, 140, 0, 48, 0, 0, 58, 59,
1101 69, 67, 296, 0, 295, 56, 76, 0, 63, 66,
1102 0, 670, 68, 160, 274, 269, 401, 0, 269, 404,
1103 392, 401, 395, 401, 414, 277, 269, 670, 36, 0,
1104 269, 484, 269, 0, 654, 651, 202, 269, 173, 171,
1105 269, 269, 0, 576, 103, 113, 97, 116, 112, 117,
1106 115, 114, 0, 144, 0, 0, 0, 0, 138, 0,
1107 0, 153, 162, 670, 152, 0, 0, 66, 0, 72,
1108 0, 54, 53, 0, 61, 60, 62, 0, 0, 0,
1109 0, 0, 0, 269, 670, 161, 0, 259, 269, 406,
1110 269, 269, 401, 409, 0, 384, 0, 387, 278, 280,
1111 0, 39, 269, 0, 194, 192, 650, 535, 0, 175,
1112 176, 636, 111, 145, 142, 148, 0, 149, 146, 147,
1113 151, 0, 156, 0, 0, 0, 0, 269, 0, 78,
1114 77, 0, 73, 0, 50, 45, 46, 55, 66, 57,
1115 70, 0, 74, 75, 0, 0, 294, 269, 269, 275,
1116 269, 269, 0, 407, 269, 393, 0, 396, 0, 14,
1117 485, 573, 174, 269, 143, 157, 154, 0, 158, 159,
1118 163, 288, 52, 49, 0, 0, 71, 47, 64, 292,
1119 261, 410, 401, 405, 269, 382, 388, 637, 155, 65,
1120 51, 408, 411, 385, 0, 0, 0
1123 static const short yydefgoto[] = { 1195,
1124 85, 86, 87, 88, 134, 296, 297, 89, 637, 773,
1125 298, 799, 919, 90, 671, 921, 903, 92, 1003, 1135,
1126 1082, 1066, 1136, 1174, 1074, 1005, 1006, 1007, 1078, 1008,
1127 1009, 1139, 1011, 1132, 757, 804, 758, 805, 759, 806,
1128 887, 807, 762, 808, 888, 885, 886, 791, 764, 765,
1129 983, 984, 985, 1049, 986, 766, 767, 93, 258, 428,
1130 259, 560, 94, 990, 1116, 1117, 992, 1063, 1085, 1064,
1131 174, 175, 497, 176, 930, 177, 178, 397, 535, 179,
1132 180, 181, 182, 183, 184, 185, 186, 187, 188, 529,
1133 189, 531, 190, 530, 831, 191, 220, 467, 309, 416,
1134 96, 650, 779, 127, 578, 97, 292, 193, 256, 128,
1135 129, 902, 795, 914, 99, 768, 810, 995, 770, 771,
1136 811, 1014, 896, 1012, 100, 101, 102, 103, 104, 105,
1137 106, 107, 108, 109, 110, 111, 323, 417, 434, 113,
1138 264, 1194, 114, 783, 1157, 786, 1159, 653, 1095, 656,
1139 1097, 115, 905, 906, 1092, 1093, 116, 661, 571, 572,
1140 815, 131, 456, 124, 125, 118, 586, 587, 457, 458,
1141 459, 673, 592, 324, 821, 817, 476, 345, 221, 241,
1142 222, 223, 346, 927, 1104, 225, 633, 226, 227, 421,
1143 228, 229, 195, 402, 347, 343, 348, 461, 686, 349,
1144 311, 610, 350, 200, 351, 541, 781, 1021, 234, 557,
1145 492, 401, 202, 558, 559, 352, 203, 204, 353, 630,
1146 596, 354, 237, 355, 359, 689, 724, 882, 725, 208,
1147 727, 728, 729, 730, 731, 732, 733, 734, 735, 736,
1148 737, 738, 739, 740, 741, 972, 1164, 742, 1108, 356,
1149 357, 210, 358, 261, 310, 213, 121
1152 static const short yypact[] = { 2061,
1153 -32768,-32768, 119, 5146,-32768, 6281,-32768, 724, 3013, 3310,
1154 3310,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1155 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1156 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1157 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1158 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1159 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1160 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 657,
1161 -32768,-32768,-32768,-32768, 2253,-32768,-32768,-32768, 136,-32768,
1162 -32768, 78,-32768, 93,-32768,-32768,-32768, 109, 6116,-32768,
1163 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 6116,
1164 6116, 124, 62,-32768, 776,-32768,-32768, 724,-32768,-32768,
1165 -32768,-32768,-32768,-32768, 119,-32768,-32768, 167,-32768, 124,
1166 -32768,-32768,-32768, 5146,-32768, 174,-32768, 5382,-32768, 199,
1167 215, 246,-32768, 273, 724, 295, 313, 1433,-32768, 2631,
1168 5382, 5382, 5382, 5382, 5382, 5382,-32768, 5407, 5407, 321,
1169 -32768, 236, 337, 374, 416, 322, 260, 4586,-32768, 440,
1170 460,-32768, 475,-32768, 806, 841,-32768,-32768,-32768, 838,
1171 272, 271, 931, 349, 391, 387, 497, 489, 60,-32768,
1172 -32768, 254,-32768, 3436, 482, 491,-32768,-32768,-32768,-32768,
1173 546, 3057,-32768, 4586,-32768, 3436,-32768, 405, 3436,-32768,
1174 -32768, 580, 587,-32768, 619,-32768, 2822, 475, 702, 361,
1175 555, 3206,-32768, 3310,-32768,-32768,-32768, 5739,-32768,-32768,
1176 -32768,-32768, 696, 709,-32768,-32768, 3310, 3436,-32768,-32768,
1177 647,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1178 -32768,-32768,-32768,-32768, 719, 745,-32768,-32768, 6005,-32768,
1179 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1180 -32768,-32768,-32768,-32768,-32768,-32768, 762, 367,-32768,-32768,
1181 724, 724, 57,-32768, 136,-32768,-32768,-32768,-32768, 769,
1182 -32768,-32768, 780, 799, 367, 93,-32768, 150, 783,-32768,
1183 724,-32768, 228, 5382,-32768,-32768,-32768,-32768,-32768,-32768,
1184 790, 5382, 5382, 5382, 1550, 833,-32768,-32768,-32768, 390,
1185 550, 5606, 104, 861, 869,-32768,-32768,-32768,-32768,-32768,
1186 -32768, 873, 5382,-32768,-32768, 5382, 840, 894, 899, 917,
1187 920, 260, 432, 1914,-32768, 4586,-32768,-32768,-32768,-32768,
1188 928,-32768,-32768, 4586,-32768, 4586,-32768,-32768,-32768, 5157,
1189 5382,-32768,-32768, 56, 5382, 5382, 5382, 5382, 5382, 5382,
1190 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382,
1191 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382,
1192 5382,-32768,-32768,-32768,-32768, 5382, 473,-32768,-32768, 2440,
1193 -32768,-32768, 947,-32768,-32768, 968,-32768, 5382, 552, 936,
1194 960,-32768,-32768,-32768,-32768,-32768, 124, 5739,-32768,-32768,
1195 3310, 1881, 975,-32768,-32768, 5382, 209, 3540, 4668, 367,
1196 -32768, 616, 6281, 903, 978, 977, 983, 985, 983, 724,
1197 994, 367,-32768, 367,-32768,-32768,-32768, 945, 999, 1017,
1198 -32768, 367, 150,-32768, 724, 996,-32768, 1021, 724, 127,
1199 1025,-32768, 305, 1029, 344, 1029, 1030,-32768,-32768,-32768,
1200 -32768, 5320, 1028, 612,-32768, 766, 5382,-32768,-32768, 1038,
1201 -32768,-32768,-32768,-32768,-32768,-32768, 5382,-32768, 1026,-32768,
1202 3540,-32768,-32768, 1051, 1039,-32768, 404,-32768, 234, 724,
1203 724,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1204 -32768,-32768,-32768,-32768,-32768, 838, 838, 272, 272, 271,
1205 271, 271, 271, 931, 931, 349, 391, 387, 5382, 5382,
1206 5382,-32768, 5439, 5494,-32768,-32768, 4902,-32768, 3250, 3726,
1207 -32768,-32768, 1040, 477,-32768,-32768, 367,-32768,-32768, 1041,
1208 1043,-32768, 1047,-32768, 4098,-32768,-32768, 3912, 4142, 1042,
1209 -32768, 1050,-32768,-32768, 1055, 1057,-32768, 1062, 1065,-32768,
1210 651,-32768, 1063,-32768,-32768,-32768, 167,-32768, 217,-32768,
1211 -32768, 5382, 220, 367,-32768,-32768, 1066,-32768,-32768, 1083,
1212 6281,-32768,-32768,-32768,-32768, 1067,-32768, 1550,-32768,-32768,
1213 1069, 730, 766, 5331, 1074,-32768,-32768,-32768,-32768, 1071,
1214 -32768,-32768, 1075,-32768, 5382,-32768,-32768,-32768,-32768, 497,
1215 507, 489, 5382,-32768, 5382,-32768,-32768,-32768, 4246, 4586,
1216 5382,-32768, 5527,-32768, 5382,-32768, 1927,-32768,-32768,-32768,
1217 4290, 4394,-32768, 4438,-32768, 1042,-32768, 1076,-32768,-32768,
1218 -32768,-32768,-32768, 1082,-32768,-32768, 1088,-32768, 724,-32768,
1219 724, 1022, 5066,-32768,-32768, 1084,-32768, 1085,-32768, 410,
1220 1927,-32768, 724, 548, 4586, 1091,-32768,-32768, 121, 1087,
1221 -32768, 1086, 77, 1093, 1094, 1096,-32768, 5382, 5527,-32768,
1222 -32768,-32768,-32768, 1095, 1103,-32768,-32768, 524, 5382, 5382,
1223 5382, 5382, 5382, 5382, 5382, 5407, 5407, 1097, 529, 558,
1224 843, 1689, 590, 976, 688, 816, 938, 784, 1101, 1098,
1225 1099, 1078, 69, 1106,-32768, 33,-32768,-32768,-32768,-32768,
1226 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1227 -32768,-32768, 607, 627,-32768, 949,-32768,-32768,-32768,-32768,
1228 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1927,-32768, 1045,
1229 -32768,-32768, 1052,-32768, 1054,-32768,-32768,-32768, 1059,-32768,
1230 2174, 1064, 1927,-32768,-32768, 4542,-32768,-32768,-32768,-32768,
1231 6203,-32768,-32768, 6203,-32768,-32768,-32768,-32768, 5382, 950,
1232 1127,-32768, 5066,-32768,-32768, 5066, 1081,-32768, 1927,-32768,
1233 1131,-32768,-32768,-32768, 1927,-32768,-32768,-32768,-32768,-32768,
1234 -32768,-32768, 136, 1133,-32768, 149,-32768, 766,-32768,-32768,
1235 1147,-32768,-32768,-32768, 1154, 724,-32768,-32768, 639, 1155,
1236 5382,-32768,-32768, 1163, 642, 1157, 675, 693, 722, 727,
1237 738, 740, 758, 772, 5382, 5351, 5382, 788, 789, 80,
1238 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382,
1239 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382,
1240 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382,-32768, 5382,
1241 -32768, 1162, 1166,-32768, 998, 1148, 591, 75,-32768,-32768,
1242 -32768,-32768,-32768,-32768,-32768, 502,-32768,-32768,-32768,-32768,
1243 5066, 471,-32768, 124, 4746,-32768, 6203, 4746, 6203,-32768,
1244 -32768,-32768,-32768, 986,-32768,-32768,-32768,-32768, 1927,-32768,
1245 93,-32768, 64,-32768,-32768,-32768, 5362,-32768,-32768, 360,
1246 -32768, 1169, 1042,-32768,-32768, 800, 5382, 1172, 810, 836,
1247 259, 724, 724,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1248 -32768,-32768,-32768,-32768, 854, 860, 868, 923, 1070, 194,
1249 633, 462, 474, 681, 770, 915, 1002, 118, 398, 96,
1250 497, 5382, 489, 5527,-32768, 405, 949,-32768,-32768,-32768,
1251 -32768,-32768, 517,-32768, 5872, 591, 413, 413,-32768,-32768,
1252 240, 598,-32768,-32768, 493,-32768, 586, 593,-32768,-32768,
1253 -32768,-32768,-32768, 1167,-32768, 13,-32768, 965,-32768, 435,
1254 1170, 93,-32768, 493,-32768,-32768,-32768, 1177, 122,-32768,
1255 -32768, 4746,-32768, 4746,-32768,-32768, 1837, 604,-32768, 1107,
1256 508,-32768,-32768, 724,-32768, 1006, 890,-32768, 897, 916,
1257 -32768,-32768, 1003,-32768,-32768, 591,-32768,-32768,-32768,-32768,
1258 -32768,-32768, 579, 240, 597, 724, 724, 413,-32768, 493,
1259 493,-32768, 342, 667,-32768, 1176, 997, 834, 593, 422,
1260 47,-32768,-32768, 586,-32768,-32768,-32768, 586, 5, 724,
1261 724, 1179, 586,-32768, 93, 1178, 686,-32768, 367,-32768,
1262 -32768, 1181,-32768, 1183, 1187,-32768, 1189,-32768,-32768,-32768,
1263 1113,-32768, 291, 1185,-32768,-32768,-32768,-32768, 1186, 924,
1264 925,-32768,-32768,-32768,-32768, 240, 1188, 405,-32768,-32768,
1265 240, 895, 342, 692, 724, 724, 493,-32768, 1020,-32768,
1266 -32768, 586,-32768, 834, 1180,-32768, 422,-32768, 422,-32768,
1267 -32768, 1190,-32768,-32768, 1020, 1191,-32768,-32768,-32768,-32768,
1268 5382, 122, 1196,-32768,-32768,-32768, 1199,-32768, 1204,-32768,
1269 -32768,-32768, 980, 5382,-32768,-32768,-32768, 1200,-32768,-32768,
1270 342,-32768,-32768,-32768, 1201, 47,-32768,-32768,-32768,-32768,
1271 -32768,-32768,-32768,-32768, 5382,-32768,-32768,-32768,-32768,-32768,
1272 -32768,-32768,-32768,-32768, 1228, 1230,-32768
1275 static const short yypgoto[] = {-32768,
1276 -32768, 1146,-32768,-32768,-32768,-32768, -377, -111,-32768,-32768,
1277 933,-32768,-32768,-32768,-32768,-32768, 73,-32768,-32768, 336,
1278 -32768,-32768, 59, 92,-32768, 164,-32768,-32768,-32768, -937,
1279 -32768, -866,-32768,-32768, -636, -727,-32768,-32768,-32768, -572,
1280 -32768, -522,-32768, -322,-32768, 262,-32768,-32768, 578, -642,
1281 -32768, 195, 256,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1282 -32768,-32768,-32768,-32768, -868, 123,-32768, -947,-32768, 229,
1283 -32768, -612, 399, 1174,-32768,-32768, -585,-32768,-32768, -113,
1284 -362, -348, -339, -360, -366, -371, -334, -504, -507,-32768,
1285 -582,-32768, -136,-32768,-32768, 559, 1141, -584, -423, 6,
1286 -32768,-32768,-32768, -427,-32768,-32768,-32768, 699, -276, 804,
1287 -32768, -836, -740,-32768,-32768,-32768, -315,-32768,-32768,-32768,
1288 -313,-32768,-32768,-32768,-32768,-32768, 479,-32768,-32768,-32768,
1289 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 55, 689,-32768,
1290 934,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1291 -32768, 1092, -689, -825,-32768, 102,-32768,-32768, 594, 599,
1292 441, 1, -392, 1134,-32768, 2,-32768,-32768, -571,-32768,
1293 -32768,-32768, 583, -266, 939,-32768, -458, 761, 1250,-32768,
1294 1031,-32768, 551,-32768,-32768,-32768,-32768, -130,-32768,-32768,
1295 -32768,-32768,-32768, 94, 646, 927, 1027,-32768,-32768, 1289,
1296 -32768,-32768, -332,-32768, 247, 158, -619, -812,-32768, 779,
1297 -32768,-32768, 871, -192, -435, 52,-32768, 159, 169,-32768,
1298 -32768, 178,-32768, 284,-32768,-32768, 584,-32768, 298, -583,
1299 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1300 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1420,
1301 -32768,-32768, 1595, -270, 0, 66,-32768
1308 static const short yytable[] = { 119,
1309 117, 308, 551, 119, 126, 95, 285, 119, 212, 212,
1310 212, 489, 435, 676, 576, 603, 516, 517, 527, 991,
1311 711, 450, 526, 622, 620, 448, 524, 525, 809, 1010,
1312 680, 1141, 518, 519, 553, 418, 784, 326, 327, 328,
1313 329, 330, 331, 520, 521, 522, 523, 713, 601, 726,
1314 723, 996, 913, -583, 112, 915, 528, -583, 130, 1067,
1315 133, 235, 235, 609, 760, 120, 429, 1072, 454, 120,
1316 1069, 918, 91, 136, 585, 440, 711, 922, 1028, 1020,
1317 998, 454, 1020, 500, 119, 117, 410, -401, 678, -401,
1318 95, 414, 260, 415, 908, 1023, 257, -401, 987, 501,
1319 393, 824, 196, 713, 629, 726, 723, 942, 988, 879,
1320 260, 825, 1122, 1123, 761, 394, -629, 119, 1053, 1054,
1321 -629, 889, 642, 943, 880, 722, 288, -269, 721, 472,
1322 1068, 1070, 262, 119, 390, 301, 899, 3, -625, 112,
1323 1140, -269, -625, 1091, 119, 1146, 472, 396, 279, 212,
1324 120, 470, 3, 263, 3, 3, 809, 91, 666, -270,
1325 1015, 255, 809, 907, 263, 263, 909, 212, 236, 236,
1326 387, 388, -269, -270, 472, 449, 450, 205, 1087, 1171,
1327 682, 722, 3, 120, 721, 760, 206, 289, 300, 1121,
1328 668, 1029, 1142, 212, 1175, 1073, 1020, 303, 1020, 302,
1329 760, 212, 1134, 212, 1137, 212, 669, 540, 212, 1096,
1330 316, 1098, 607, 454, -614, 818, 212, 1022, -614, 1024,
1331 405, 212, 312, 212, 454, 379, 380, 647, 122, 123,
1332 78, 1001, 454, 552, 260, 761, 212, 212, 313, 664,
1333 78, 79, 135, 325, 667, 82, 83, -401, -401, -401,
1334 761, 337, -401, -401, 396, 201, 233, 233, 78, 989,
1335 617, 719, 513, 514, 515, 1055, 718, 1056, 235, 314,
1336 714, 395, 717, 235, 396, 235, 809, 119, 432, 396,
1337 119, 119, 119, 1057, 715, 1040, 1100, 398, 235, 308,
1338 549, 414, 207, 716, 119, 447, 315, 435, 720, 404,
1339 119, 976, 406, 379, 380, 78, 79, 135, 665, 1137,
1340 82, 83, 317, 489, 763, -452, 472, 719, 205, 381,
1341 382, 769, 718, 772, 474, 396, 714, 206, 717, 595,
1342 318, 423, 78, 79, 135, 308, 341, 82, 83, 925,
1343 715, 685, 1032, 120, 336, 212, 437, 439, 441, 716,
1344 308, 680, 338, 212, 720, 212, 694, 818, 695, 342,
1345 120, 711, 205, 606, 396, 910, 302, 1124, 597, 1125,
1346 205, 206, 973, 971, 205, 236, 471, 205, 412, 206,
1347 236, 396, 236, 206, 1033, 1126, 206, 1034, 713, 339,
1348 726, 723, -401, -401, -401, 236, 201, -401, -401, 212,
1349 3, 387, 388, -401, -401, -401, 205, 469, -401, -401,
1350 396, -401, -401, -401, 802, 206, -401, -401, -627, 389,
1351 212, 212, -627, 548, 615, 390, 389, 212, 616, 119,
1352 561, 340, 836, 207, 548, 763, 987, 487, 488, 119,
1353 201, 119, 769, 119, 772, 308, 988, 1079, 201, 1080,
1354 763, 119, 201, 301, 119, 201, -46, 769, 119, 772,
1355 1079, -673, 1080, 233, 411, 1081, 722, 308, 233, 721,
1356 233, 1118, 235, 235, 78, 79, 135, 207, 1081, 82,
1357 83, -677, -617, 233, 201, 207, -617, 471, 1016, 207,
1358 212, 1017, 207, 538, -618, 120, -674, 396, -618, 119,
1359 119, 632, 958, 959, 969, 573, 996, 120, 968, 120,
1360 381, 382, 966, 967, 533, 534, 1060, 302, 960, 961,
1361 588, 207, 381, 382, 593, 997, 1061, 396, 693, 962,
1362 963, 964, 965, 472, 260, 998, 391, 1046, 212, 212,
1363 1118, 3, 970, 392, 396, 548, 119, 634, 834, -580,
1364 78, 79, 135, -580, 212, 82, 83, 212, 212, 194,
1365 224, 224, 813, 548, 400, 618, 619, 395, 205, 412,
1366 396, -269, 396, 472, 470, 399, 470, 206, -579, 236,
1367 236, 3, -579, 119, -506, 301, 837, 838, 839, 840,
1368 841, 842, 405, 78, 79, 135, 78, 989, 82, 83,
1369 1036, -676, 719, 1114, 1055, 495, 1056, 718, 407, 997,
1370 -603, 714, 120, 717, -603, 260, 1069, 993, 1058, 998,
1371 987, 260, 1057, 1115, 1017, 715, 998, -578, 212, 212,
1372 988, -578, 743, -401, 716, -269, -401, 472, -401, 720,
1373 212, 212, 408, 212, 603, 674, 201, 396, 413, 302,
1374 1030, 883, 308, -615, 197, 230, 230, -615, 119, 396,
1375 119, 1150, 396, 932, 379, 380, 936, 233, 233, 119,
1376 658, 659, 119, 119, 212, 816, 78, 1062, 978, 979,
1377 474, 999, 1000, 207, 260, 78, 1001, 1127, 743, 1002,
1378 -679, 78, 79, 135, 934, -597, 82, 83, 98, -597,
1379 194, -619, 98, 1149, 813, -619, 1017, 205, 980, 981,
1380 242, 243, 1047, -602, 419, 987, 206, -602, 1167, 865,
1381 866, 1059, 982, -675, 573, 988, 573, 1182, 420, 381,
1382 382, 78, 79, 135, 454, 803, 82, 83, 593, 120,
1383 424, 1084, -601, -679, 194, 425, -601, -600, 955, 956,
1384 957, -600, 194, -401, 678, -401, 194, 1101, -599, 194,
1385 -598, 1193, -599, -401, -598, 999, 1000, 224, 427, 78,
1386 1001, 1109, 224, 1002, 224, 212, 78, 1001, -595, 431,
1387 78, 989, -595, 98, 172, 201, 443, 224, 194, -269,
1388 -620, 604, -596, 1128, -620, 197, -596, 445, 265, 266,
1389 267, 268, 269, 270, 271, 272, 451, 274, -592, -593,
1390 277, 462, -592, -593, 1148, 119, 98, 816, 381, 382,
1391 -584, 446, 207, 1037, -584, 119, 290, 291, 293, 360,
1392 -587, 361, 299, -401, -587, 904, 873, 874, 904, 197,
1393 -679, -679, 281, 282, 283, -679, -679, 197, 322, -401,
1394 468, 197, 362, 363, 197, 332, 615, 481, 1133, 1079,
1395 1039, 1080, 230, 365, 867, 868, 846, 230, 847, 230,
1396 -401, 376, 377, 378, -607, 78, 989, 1081, -607, 172,
1397 -608, 120, 230, 197, -608, 477, -401, 994, -609, 848,
1398 849, 931, -609, 478, 480, 1013, 479, 366, 367, 368,
1399 369, 370, 371, 372, 373, 374, 375, 78, 79, 135,
1400 -605, 482, 82, 83, -605, 322, 483, -588, 498, 1166,
1401 1124, -588, 1125, 502, 503, 504, 505, 506, 507, 508,
1402 509, 510, 511, 512, 484, -622, -586, 485, 1126, -622,
1403 -586, 119, 119, -612, -590, -591, 491, -612, -590, -591,
1404 194, 383, 384, 426, 532, 542, 376, 377, 378, 904,
1405 545, 904, 904, 904, 403, 385, 386, 383, 384, 911,
1406 659, 224, 224, 743, 869, 870, 98, 433, 543, 436,
1407 438, 385, 386, 546, 1051, 550, 994, 994, 871, 872,
1408 1050, 285, 563, 98, 1065, 565, 1013, 1013, 564, 299,
1409 -589, -269, 322, 568, -589, 1026, 1027, 1041, 1042, 862,
1410 863, 864, 574, 1065, 308, 1075, 1076, 1077, 119, 1094,
1411 589, 473, -623, 396, 1112, 581, -623, 1188, 1130, 1131,
1412 119, 561, 1103, 119, 580, 198, 231, 231, 383, 384,
1413 583, 590, 322, 275, 276, 197, 594, 598, 308, 396,
1414 611, 602, 385, 386, 994, 119, 119, 994, 608, 1065,
1415 1065, 613, 614, 631, 635, 646, 230, 230, 1013, 636,
1416 1013, 638, 649, 1013, 652, 654, 904, 1013, 904, 119,
1417 119, 655, 1013, 657, 120, 660, 670, 672, 119, 194,
1418 -611, 675, 687, 746, -611, 677, 120, 683, 688, 1106,
1419 778, 782, 119, 376, 377, 378, 490, 785, 820, 800,
1420 798, 822, 823, 826, 493, 277, 494, 828, 827, 832,
1421 845, 1119, 1120, 994, 119, 119, 1065, 833, 98, 875,
1422 881, 1013, 878, 884, 890, 566, 876, 569, 877, 575,
1423 98, 891, 98, 892, 912, 1143, 1144, 582, 895, 192,
1424 299, 119, 1094, 898, 120, 920, 923, 591, 244, 245,
1425 246, 247, 248, 249, 250, 251, 252, 253, 120, 599,
1426 916, 928, 473, 690, 605, 1013, 198, 433, 929, 933,
1427 935, 937, 974, 975, 197, 172, 1035, 977, 556, 1071,
1428 1169, 1170, 1038, 1083, 1090, 1107, 1102, 1129, 1127, 273,
1429 1145, 1152, 1160, 278, 1155, 280, 1156, 284, 1158, 1161,
1430 1163, 1173, 286, 1184, 1165, 1179, 1177, 120, 1186, 1176,
1431 198, 794, 294, 1187, 295, 1190, 1189, 1196, 198, 1197,
1432 254, 1004, 198, 453, 1191, 198, 1178, 1138, 1045, 792,
1433 1113, 1052, 1086, 231, 940, 98, 1168, 577, 231, 897,
1434 231, 556, 651, 1183, 790, 812, 926, 788, 287, 648,
1435 240, 475, 433, 231, 198, 1162, 364, 422, 486, 612,
1436 539, 1044, 830, 0, 0, 662, 663, 0, 0, 0,
1437 0, 0, 299, 0, 0, 0, 0, 0, 320, 0,
1438 321, 0, 0, 0, 0, 0, 0, 199, 232, 232,
1439 556, 605, 0, 0, 0, 0, 433, 0, 0, 0,
1440 0, 307, 0, 0, 0, 0, 691, 692, 556, 645,
1441 0, 322, 0, 322, 307, 307, 307, 307, 307, 307,
1442 0, 334, 335, 0, 192, 0, 0, 0, 0, 0,
1443 0, 0, 192, 0, 0, 0, 192, 0, 780, 192,
1444 0, 794, 0, 430, 794, 0, 787, 409, 789, 0,
1445 0, 0, 796, 797, 0, 0, 0, 801, 0, 0,
1446 0, 591, 814, 0, 0, 0, 0, 473, 192, 0,
1447 442, 0, 0, 444, 0, 0, 0, 0, 0, 645,
1448 697, 452, 0, 0, 455, 0, 0, 322, 0, 0,
1449 0, 0, 645, 938, 498, 0, 0, 0, 0, 944,
1450 945, 946, 947, 948, 949, 950, 951, 952, 953, 954,
1451 0, 0, 0, 0, 0, 0, 198, 0, 209, 238,
1452 238, 0, 0, 0, 0, 819, 0, 0, 199, 0,
1453 0, 0, 0, 0, 460, 0, 0, 231, 231, 0,
1454 319, 0, 463, 464, 465, 466, 304, 0, 0, 794,
1455 0, 151, 152, 153, 154, 155, 156, 0, 0, 0,
1456 0, 0, 0, 460, 0, 0, 0, 901, 157, 158,
1457 159, 0, 199, 0, 460, 0, 0, 0, 0, 0,
1458 199, 0, 0, 0, 199, 0, 0, 199, 0, 0,
1459 0, 499, 160, 0, 0, 232, 0, 0, 547, 0,
1460 232, 0, 232, 924, 814, 0, 605, 0, 455, 0,
1461 0, 0, 0, 562, 0, 232, 199, 0, 567, 0,
1462 570, 0, 0, 0, 0, 0, 0, 0, 579, 0,
1463 192, 0, 584, 0, 0, 169, 0, 0, 544, 307,
1464 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
1465 307, 307, 307, 307, 307, 198, 0, -251, 0, 209,
1466 0, 0, 0, 304, 0, 0, 0, 0, 151, 152,
1467 153, 154, 155, 156, 0, 794, 0, 0, 0, 0,
1468 0, 0, 0, 0, 0, 157, 158, 159, 0, 307,
1469 0, 0, 1018, 211, 239, 239, 0, 0, 0, 1025,
1470 0, 0, 0, 209, 0, 0, 78, 305, 306, 160,
1471 172, 209, 0, 0, 0, 209, 0, 0, 209, 0,
1472 0, 0, 0, 0, 0, 0, 238, 0, 0, 0,
1473 0, 238, 0, 238, 0, 307, 0, 0, 0, 0,
1474 307, 0, 0, 0, 0, 0, 238, 209, 0, 0,
1475 307, 0, 169, 0, 0, 0, 0, 0, 0, 0,
1476 621, 0, 0, 0, 455, 0, 0, 0, 0, 192,
1477 0, 0, 0, 0, 0, 0, 0, 0, 199, 0,
1478 0, 0, 0, 679, 0, 0, 0, 0, 684, 0,
1479 0, 0, 307, 0, 307, 0, 624, 626, 0, 232,
1480 232, 851, 0, 0, 1088, 0, 0, 98, 0, 0,
1481 0, 0, 0, 0, 0, 562, 0, 745, 0, 814,
1482 0, 1105, 0, 78, 305, 306, 433, 172, 466, 1110,
1483 1111, 0, 0, 0, 211, 852, 853, 854, 855, 856,
1484 857, 858, 859, 860, 861, 307, 0, 0, 0, 0,
1485 0, 0, 0, 460, 0, 460, 0, 0, 0, 0,
1486 0, 698, 0, 0, 0, 744, 0, 307, 0, 0,
1487 0, 0, 1147, 0, 0, 0, 0, 98, 211, 1151,
1488 1153, 0, 0, 0, 0, 0, 211, 0, 0, 0,
1489 211, 814, 850, 211, 0, 0, 712, 0, 0, 0,
1490 0, 239, 0, 0, 0, 0, 239, 0, 239, 209,
1491 0, 0, 0, 0, 0, 0, 1172, 199, 829, 0,
1492 0, 239, 211, 0, 0, 0, 0, 0, 0, 835,
1493 238, 238, 0, 0, 0, 0, 1180, 1181, 0, 0,
1494 98, 0, 0, 1185, 0, 793, 1099, 893, 894, 0,
1495 304, 0, 712, 0, 0, 151, 152, 153, 154, 155,
1496 156, 0, 0, 307, 307, 307, 307, 307, 307, 843,
1497 844, 214, 157, 158, 159, 0, 138, 139, 140, 917,
1498 0, 215, 143, 144, 145, 146, 147, 148, 216, -479,
1499 -479, 0, 0, 0, 217, -479, 160, 0, 0, 151,
1500 152, 153, 154, 155, 156, 0, 0, 0, 0, 0,
1501 0, 0, -269, -269, 0, 0, 157, 158, 159, 0,
1502 0, 0, -534, 0, 0, 0, 0, 344, 0, 0,
1503 0, 0, 151, 152, 153, 154, 155, 156, 0, 169,
1504 160, 0, 0, 0, 0, 0, 0, 0, 209, 157,
1505 158, 159, 307, 0, 0, 0, 0, 0, 0, 0,
1506 0, 0, 0, 0, -479, 162, 163, 164, 165, 166,
1507 167, 0, 0, 160, 0, 0, 0, 941, 0, 168,
1508 0, 0, 0, 169, 211, 1019, 0, 0, 746, 747,
1509 748, 749, 0, 0, 307, 750, 751, 752, 753, 754,
1510 755, 756, 0, 0, 1031, 239, 239, 0, 0, 0,
1511 78, 305, 306, 0, 172, 0, 169, 0, 0, 0,
1512 0, 0, 0, 0, 0, 307, 307, 307, 307, 307,
1513 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
1514 307, 307, 0, 307, 0, 0, 0, 0, 0, 0,
1515 -1, 1, 0, 0, 78, 170, 171, 466, 172, 218,
1516 219, 0, 0, 0, 0, 0, 0, 0, 2, 0,
1517 0, 0, 0, 0, -269, 0, 0, 0, 0, 0,
1518 0, 0, 0, 0, 3, 0, 0, 78, 305, 306,
1519 0, 172, 0, 0, 0, 4, 0, 0, 1089, 0,
1520 307, 0, 1043, 0, 0, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, -401, -401, -401,
1522 0, 5, 0, 211, 0, 0, 6, 7, 8, 0,
1523 0, 0, 0, 0, 0, 0, 0, 712, 0, 0,
1524 0, 9, 10, 11, 0, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1526 12, 13, 14, 0, 15, 16, 17, 18, 19, 20,
1527 21, 22, 23, 24, 1154, 25, 26, 27, 28, 29,
1528 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1529 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1530 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1531 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1532 70, 71, 72, 73, 74, 75, 76, 77, 0, 0,
1533 0, 0, 0, 0, 78, 79, 80, 81, 0, 82,
1534 83, 84, -2, 1, 0, 0, 0, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536 2, 0, 0, 0, 1192, 0, -269, 0, 0, 0,
1537 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
1538 0, 0, 0, 21, 22, 23, 24, 4, 25, 0,
1539 0, 0, 0, 30, 31, 0, 0, 34, 35, 0,
1540 37, 38, 39, 40, 0, 0, 0, 0, 0, -401,
1541 -401, -401, 0, 5, 307, 52, 53, 0, 6, 7,
1542 8, 0, 0, 0, 0, 0, 0, 307, 0, 0,
1543 0, 0, 0, 9, 10, 11, 0, 0, 0, 0,
1544 77, 0, 0, 0, 0, 0, 0, 0, 307, 0,
1545 81, 0, 12, 13, 14, 0, 15, 16, 17, 18,
1546 19, 20, 21, 22, 23, 24, 0, 25, 26, 27,
1547 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1548 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1549 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1550 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1551 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1552 0, 0, 0, 0, 0, 0, 78, 79, 80, 81,
1553 137, 82, 83, 84, 0, 138, 139, 140, 0, 141,
1554 142, 143, 144, 145, 146, 147, 148, 149, -534, 536,
1555 0, 0, 0, 150, 0, 0, 0, 0, 151, 152,
1556 153, 154, 155, 156, 0, 0, 0, 0, 0, 0,
1557 0, -269, -269, 0, 4, 157, 158, 159, 0, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1559 0, 0, 0, 0, 0, 0, -401, -401, -401, 160,
1560 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1562 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
1563 0, 0, 0, 0, 0, 0, 0, 0, 168, 12,
1564 13, 14, 169, 15, 16, 17, 18, 19, 20, 21,
1565 22, 23, 24, 0, 25, 26, 27, 28, 29, 30,
1566 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1567 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1568 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1569 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1570 71, 72, 73, 74, 75, 76, 77, 0, 0, 0,
1571 0, 0, 0, 78, 170, 537, 81, 172, 173, 83,
1572 84, 137, 0, 0, 0, 0, 138, 139, 140, 0,
1573 141, 142, 143, 144, 145, 146, 147, 148, 149, -534,
1574 0, 0, 0, 0, 150, 0, 0, 0, 0, 151,
1575 152, 153, 154, 155, 156, 0, 0, 0, 0, 0,
1576 0, 0, -269, -269, 0, 0, 157, 158, 159, 0,
1577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1578 0, 0, 0, 0, 0, 0, 0, -269, -269, -269,
1579 160, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1581 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
1582 167, 0, 0, 0, 0, 0, 0, 0, 0, 168,
1583 -269, -269, -269, 169, -269, -269, -269, -269, -269, -269,
1584 -269, -269, -269, -269, 0, -269, -269, -269, -269, -269,
1585 -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
1586 -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
1587 -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
1588 -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
1589 -269, -269, -269, -269, -269, -269, -269, -269, 0, 0,
1590 0, 0, 0, 0, 78, 170, 171, -269, 172, 173,
1591 83, -269, 214, 0, 0, 0, 0, 138, 139, 140,
1592 0, 0, 215, 143, 144, 145, 146, 147, 148, 216,
1593 -534, -538, 0, 0, 0, 217, 0, 0, 0, 0,
1594 151, 152, 153, 154, 155, 156, 0, 0, 0, 0,
1595 0, 0, 0, -269, -269, 0, 0, 157, 158, 159,
1596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1597 0, 0, 0, 0, 0, 0, 0, 0, -269, -269,
1598 -269, 160, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1600 0, 0, 0, 0, 0, 0, 162, 163, 164, 165,
1601 166, 167, 0, 0, 0, 0, 0, 0, 0, 0,
1602 168, -269, -269, -269, 169, -269, -269, -269, -269, -269,
1603 -269, -269, -269, -269, -269, 0, -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, -269, -269, -269,
1608 -269, -269, -269, -269, -269, -269, -269, -269, -269, 0,
1609 0, 0, 0, 0, 0, 78, 170, 171, -269, 172,
1610 218, 219, -269, 137, 0, 0, 0, 0, 138, 139,
1611 140, 0, 141, 142, 143, 144, 145, 146, 147, 148,
1612 149, -534, 0, 0, 0, 0, 150, 0, 0, 0,
1613 0, 151, 152, 153, 154, 155, 156, 0, 0, 0,
1614 0, 0, 0, 0, -269, -269, 0, 137, 157, 158,
1615 159, 0, 138, 139, 140, 0, 141, 142, 143, 144,
1616 145, 146, 147, 148, 149, -534, 0, 0, 0, 0,
1617 150, 0, 160, 0, 0, 151, 152, 153, 154, 155,
1618 156, 0, 0, 0, 0, 0, 0, 0, -269, -269,
1619 0, 0, 157, 158, 159, 0, 161, 162, 163, 164,
1620 165, 166, 167, 0, 0, 0, 0, 0, 0, 0,
1621 0, 168, 0, 0, 0, 169, 160, 0, 0, 0,
1622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1624 -507, 162, 163, 164, 165, 166, 167, 0, 0, 0,
1625 0, 0, 0, 0, 0, 168, 0, 0, 0, 169,
1626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1628 0, 0, 0, 0, 0, 0, 78, 170, 171, 0,
1629 172, 173, 83, 0, 0, 0, 214, 0, 0, 0,
1630 0, 138, 139, 140, 0, 0, 215, 143, 144, 145,
1631 146, 147, 148, 216, -534, -538, 0, 0, 0, 217,
1632 0, 0, 0, 0, 151, 152, 153, 154, 155, 156,
1633 78, 170, 171, 0, 172, 173, 83, -269, -269, 0,
1634 137, 157, 158, 159, 0, 138, 139, 140, 0, 141,
1635 142, 143, 144, 145, 146, 147, 148, 149, -534, 627,
1636 0, 0, 0, 150, 0, 160, 0, 0, 151, 152,
1637 153, 154, 155, 156, 0, 0, 0, 0, 0, 0,
1638 0, -269, -269, 0, 0, 157, 158, 159, 0, -475,
1639 162, 163, 164, 165, 166, 167, 0, 0, 0, 0,
1640 214, 0, 0, 0, 168, 138, 139, 140, 169, 160,
1641 215, 143, 144, 145, 146, 147, 148, 216, -534, -538,
1642 0, 0, 0, 217, 0, 0, 0, 0, 151, 152,
1643 153, 154, 155, 156, 162, 163, 164, 165, 166, 167,
1644 0, -269, -269, 0, 0, 157, 158, 159, 168, 0,
1645 0, 0, 169, 0, 0, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, 160,
1647 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,
1648 170, 171, 0, 172, 218, 219, 0, 0, 0, 0,
1649 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
1650 0, 0, 0, 0, 0, 0, 0, 0, 168, 0,
1651 0, 0, 169, 0, 0, 0, 0, 0, 0, 0,
1652 0, 0, 0, 78, 170, 171, 137, 172, 173, 83,
1653 0, 138, 139, 140, 0, 141, 142, 143, 144, 145,
1654 146, 147, 148, 149, -534, 0, 0, 0, 0, 150,
1655 0, 0, 0, 0, 151, 152, 153, 154, 155, 156,
1656 0, 0, 0, 0, 0, 0, 0, -269, -269, 0,
1657 0, 157, 158, 159, 0, 0, 0, 0, 0, 0,
1658 0, 0, 0, 78, 170, 171, 0, 172, 218, 219,
1659 0, 0, 0, 0, 0, 160, 0, 0, 0, 0,
1660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1662 162, 163, 164, 165, 166, 167, 0, 0, 0, 0,
1663 0, 0, 0, 0, 168, 138, 139, 140, 169, 141,
1664 142, 143, 144, 145, 146, 147, 148, 216, -534, 554,
1665 0, 0, 0, 344, 0, 0, 0, 0, 151, 152,
1666 153, 154, 155, 156, 0, 0, 0, 0, 0, 0,
1667 0, -269, -269, 0, 4, 157, 158, 159, 0, 0,
1668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1669 0, 0, 0, 0, 0, 0, 0, 0, 0, 160,
1670 5, 0, 0, 0, 0, 0, 0, 0, 0, 78,
1671 170, 171, 0, 172, 173, 83, 0, 0, 0, 0,
1672 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
1673 0, 0, 0, 0, 0, 0, 0, 0, 555, 12,
1674 13, 14, 169, 15, 16, 17, 18, 19, 20, 21,
1675 22, 23, 24, 0, 25, 26, 27, 28, 29, 30,
1676 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1677 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1678 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1679 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1680 71, 72, 73, 74, 75, 76, 77, 0, 0, 0,
1681 0, 0, 0, 78, 170, 537, 81, 172, 173, 83,
1682 84, 138, 139, 140, 0, 141, 142, 143, 144, 145,
1683 146, 147, 148, 216, -534, 628, 0, 0, 0, 344,
1684 0, 0, 0, 0, 151, 152, 153, 154, 155, 156,
1685 0, 0, 0, 0, 0, 0, 0, -269, -269, 0,
1686 4, 157, 158, 159, 0, 0, 0, 0, 0, 0,
1687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1688 0, 0, 0, 0, 0, 160, 5, 0, 0, 0,
1689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1690 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1691 162, 163, 164, 165, 166, 167, 0, 0, 0, 0,
1692 0, 0, 0, 0, 168, 12, 13, 14, 169, 15,
1693 16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
1694 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1695 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1696 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1697 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1698 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1699 75, 76, 77, 0, 0, 0, 0, 0, 0, 78,
1700 170, 537, 81, 172, 173, 83, 84, 138, 139, 140,
1701 0, 141, 142, 143, 144, 145, 146, 147, 148, 216,
1702 -534, 640, 0, 0, 0, 344, 0, 0, 0, 0,
1703 151, 152, 153, 154, 155, 156, 0, 0, 0, 0,
1704 0, 0, 0, -269, -269, 0, 4, 157, 158, 159,
1705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1707 0, 160, 5, 0, 0, 0, 0, 0, 0, 0,
1708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1709 0, 0, 0, 0, 0, 0, 162, 163, 164, 165,
1710 166, 167, 0, 0, 0, 0, 0, 0, 0, 0,
1711 641, 12, 13, 14, 169, 15, 16, 17, 18, 19,
1712 20, 21, 22, 23, 24, 0, 25, 26, 27, 28,
1713 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1714 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1715 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1716 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1717 69, 70, 71, 72, 73, 74, 75, 76, 77, 0,
1718 0, 0, 0, 0, 0, 78, 170, 537, 81, 172,
1719 173, 83, 84, 138, 139, 140, 0, 141, 142, 143,
1720 144, 145, 146, 147, 148, 216, -534, 639, 0, 0,
1721 0, 344, 0, 0, 0, 0, 151, 152, 153, 154,
1722 155, 156, 0, 0, 0, 0, 0, 0, 0, 0,
1723 0, 0, 0, 157, 158, 159, 0, 138, 139, 140,
1724 0, 141, 142, 143, 144, 145, 146, 147, 148, 216,
1725 -534, 643, 0, 0, 0, 344, 0, 160, 0, 0,
1726 151, 152, 153, 154, 155, 156, 0, 0, 0, 0,
1727 0, 0, 0, 0, 0, 0, 0, 157, 158, 159,
1728 0, 0, 162, 163, 164, 165, 166, 167, 0, 0,
1729 0, 0, 0, 0, 0, 0, 168, 0, 0, 0,
1730 169, 160, 0, 0, 0, 0, 0, 0, 0, 0,
1731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1732 0, 0, 0, 0, 0, 0, 162, 163, 164, 165,
1733 166, 167, 0, 0, 0, 0, 0, 0, 0, 0,
1734 644, 138, 139, 140, 169, 141, 142, 143, 144, 145,
1735 146, 147, 148, 216, -534, 696, 0, 0, 0, 344,
1736 0, 0, 0, 0, 151, 152, 153, 154, 155, 156,
1737 0, 78, 170, 171, 0, 172, 173, 83, 0, 0,
1738 0, 157, 158, 159, 0, 138, 139, 140, 0, 141,
1739 142, 143, 144, 145, 146, 147, 148, 216, -534, 774,
1740 0, 0, 0, 344, 0, 160, 0, 0, 151, 152,
1741 153, 154, 155, 156, 0, 78, 170, 171, 0, 172,
1742 173, 83, 0, 0, 0, 157, 158, 159, 0, 0,
1743 162, 163, 164, 165, 166, 167, 0, 0, 0, 0,
1744 0, 0, 0, 0, 168, 0, 0, 0, 169, 160,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
1748 0, 0, 0, 0, 0, 0, 0, 0, 168, 138,
1749 139, 140, 169, 141, 142, 143, 144, 145, 146, 147,
1750 148, 216, -534, 775, 0, 0, 0, 344, 0, 0,
1751 0, 0, 151, 152, 153, 154, 155, 156, 0, 78,
1752 170, 171, 0, 172, 173, 83, 0, 0, 0, 157,
1753 158, 159, 0, 138, 139, 140, 0, 141, 142, 143,
1754 144, 145, 146, 147, 148, 216, -534, 777, 0, 0,
1755 0, 344, 0, 160, 0, 0, 151, 152, 153, 154,
1756 155, 156, 0, 78, 170, 171, 0, 172, 173, 83,
1757 0, 0, 0, 157, 158, 159, 0, 0, 162, 163,
1758 164, 165, 166, 167, 0, 0, 0, 0, 0, 0,
1759 0, 0, 776, 0, 0, 0, 169, 160, 0, 0,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762 0, 0, 162, 163, 164, 165, 166, 167, 0, 0,
1763 0, 0, 0, 0, 0, 0, 168, 138, 139, 140,
1764 169, 141, 142, 143, 144, 145, 146, 147, 148, 216,
1765 -534, 900, 0, 0, 0, 344, 0, 0, 0, 0,
1766 151, 152, 153, 154, 155, 156, 0, 78, 170, 171,
1767 0, 172, 173, 83, 0, 0, 0, 157, 158, 159,
1768 0, 138, 139, 140, 0, 141, 142, 143, 144, 145,
1769 146, 147, 148, 216, -534, 0, 0, 0, 0, 344,
1770 0, 160, 0, 0, 151, 152, 153, 154, 155, 156,
1771 0, 78, 170, 171, 0, 172, 173, 83, 0, 0,
1772 0, 157, 158, 159, 0, 0, 162, 163, 164, 165,
1773 166, 167, 0, 0, 0, 0, 0, 0, 0, 0,
1774 168, 0, 0, 0, 169, 160, 0, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1777 162, 163, 164, 165, 166, 167, -135, 0, 0, 0,
1778 0, -135, 0, 0, 168, 0, 0, 0, 169, 0,
1779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
1781 0, 0, 0, 0, 0, 78, 170, 171, 0, 172,
1782 173, 83, 0, 0, 0, 0, 0, 0, 5, 0,
1783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1785 0, 0, 0, 0, 0, -537, 0, 0, 0, 78,
1786 170, 171, 0, 172, 173, 83, 0, 12, 13, 14,
1787 0, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1788 24, 0, 25, 26, 27, 28, 29, 30, 31, 32,
1789 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1790 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1791 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1792 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1793 73, 74, 75, 76, 77, 0, 0, 0, 0, 0,
1794 0, 0, 0, 132, 81, 12, 13, 14, 84, 15,
1795 16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
1796 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1797 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1798 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1799 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1800 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1801 75, 76, 77, -677, 0, 0, 0, 0, 0, 0,
1802 0, 132, 81, 0, 0, 0, 84, 0, 0, 0,
1803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1805 0, 0, 0, 0, 0, 0, 0, 0, -679, -679,
1806 -679, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1807 0, 0, 0, 0, 0, 0, 0, 0, -679, 0,
1808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810 0, -679, -679, -679, 0, -679, -679, -679, -679, -679,
1811 -679, -679, -679, -679, -679, 0, -679, -679, -679, -679,
1812 -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
1813 -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
1814 -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
1815 -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
1816 -679, -679, -679, -679, -679, -679, -679, -679, -679, 0,
1817 0, 0, 0, 0, 793, 0, 0, 0, -679, 304,
1818 0, 0, -679, 0, 151, 152, 153, 154, 155, 156,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 157, 158, 159, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1822 0, 0, 0, 0, 0, 160, 0, 0, 0, 0,
1823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1825 0, 0, 0, 0, 0, 0, 0, 0, 0, -269,
1826 0, 0, 0, 0, 0, 0, 0, 0, 169, 3,
1827 304, 496, 0, 0, 0, 151, 152, 153, 154, 155,
1828 156, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 0, 157, 158, 159, 0, 0, 0, 0, 0,
1830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1831 0, 0, 0, 0, 0, 0, 160, 0, 0, 0,
1832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,
1834 305, 306, 0, 172, 0, 12, 13, 14, 0, 15,
1835 16, 17, 18, 19, 20, 21, 22, 23, 24, 169,
1836 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1837 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1838 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1839 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1840 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1841 75, 76, 77, 0, 0, 0, 0, 0, 0, 78,
1842 79, 80, 81, 0, 82, 83, 84, 0, 0, 0,
1843 78, 305, 306, 304, 172, 0, 600, 0, 151, 152,
1844 153, 154, 155, 156, 304, 0, 0, 681, 0, 151,
1845 152, 153, 154, 155, 156, 157, 158, 159, 0, 0,
1846 0, 0, 0, 0, 304, 939, 157, 158, 159, 151,
1847 152, 153, 154, 155, 156, 304, -251, 0, 0, 160,
1848 151, 152, 153, 154, 155, 156, 157, 158, 159, 0,
1849 160, 0, 0, 0, 0, 304, 0, 157, 158, 159,
1850 151, 152, 153, 154, 155, 156, 0, 0, 0, 0,
1851 160, 0, 0, 0, 0, 0, 0, 157, 158, 159,
1852 333, 160, 169, 0, 0, 151, 152, 153, 154, 155,
1853 156, 0, 0, 169, 0, 0, 0, 0, 0, 0,
1854 0, 160, 157, 158, 159, 0, 0, 0, 0, 0,
1855 0, 0, 623, 169, 0, 0, 0, 151, 152, 153,
1856 154, 155, 156, 0, 169, 0, 160, 0, 0, 0,
1857 0, 0, 0, 0, 157, 158, 159, 0, 0, 0,
1858 0, 0, 0, 0, 169, 0, 0, 0, 0, 0,
1859 0, 0, 0, 78, 305, 306, 0, 172, 160, 0,
1860 0, 0, 0, 0, 78, 305, 306, 625, 172, 169,
1861 0, 0, 151, 152, 153, 154, 155, 156, 0, 0,
1862 0, 0, 0, 0, 78, 305, 306, 0, 172, 157,
1863 158, 159, 0, 0, 0, 78, 305, 306, 0, 172,
1864 699, 169, 0, 0, 0, 700, 701, 702, 703, 704,
1865 705, 0, 0, 160, 0, 78, 305, 306, 0, 172,
1866 0, 0, 157, 706, 707, 0, 0, 0, 0, 0,
1867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1868 78, 305, 306, 0, 172, 0, 708, 0, 0, 0,
1869 0, 0, 0, 0, 0, 0, 169, 0, 0, 0,
1870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1871 0, 0, 78, 305, 306, 0, 172, 0, 0, 0,
1872 0, 0, 0, 0, 0, 0, 0, 0, 0, 169,
1873 0, 0, 0, 0, 0, 0, 0, -195, -195, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1876 0, 0, 0, 0, 0, 0, 0, 78, 305, 306,
1877 0, 172, 0, 0, 0, 0, 0, 0, 0, 0,
1878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1880 78, 709, 710, 0, 172, 12, 13, 14, 0, 15,
1881 16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
1882 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1883 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1884 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1885 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1886 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1887 75, 76, 77, 4, 0, 0, 0, 0, 0, 0,
1888 0, 132, 81, 0, 0, 0, 84, 0, 0, 0,
1889 0, 0, 0, 0, 0, -401, -401, -401, 0, 5,
1890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1893 0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
1894 14, 0, 15, 16, 17, 18, 19, 20, 21, 22,
1895 23, 24, 0, 25, 26, 27, 28, 29, 30, 31,
1896 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1897 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1898 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1899 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1900 72, 73, 74, 75, 76, 77, 4, 0, 0, 0,
1901 0, 0, 0, 0, 132, 81, 0, 0, 0, 84,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1907 0, 12, 13, 14, 0, 15, 16, 17, 18, 19,
1908 20, 21, 22, 23, 24, 0, 25, 26, 27, 28,
1909 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1910 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1911 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1912 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1913 69, 70, 71, 72, 73, 74, 75, 76, 77, 4,
1914 0, 0, 0, 0, 0, 78, 1048, 132, 81, 0,
1915 0, 0, 84, 0, 0, 0, 0, 0, 0, 0,
1916 0, 0, 0, 0, 0, 5, 0, 0, 0, 0,
1917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1920 0, 0, 0, 0, 12, 13, 14, 0, 15, 16,
1921 17, 18, 19, 20, 21, 22, 23, 24, 0, 25,
1922 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1923 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1924 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1925 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1926 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1927 76, 77, -401, -401, -401, 0, 0, 0, 0, 0,
1928 132, 81, 0, 0, 0, 84, 0, 0, 0, 0,
1929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1931 0, 0, 0, 0, 0, 12, 13, 14, 0, 15,
1932 16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
1933 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1934 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1935 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1936 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1937 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1938 75, 76, 77, 9, 10, 11, 0, 0, 0, 0,
1939 0, 132, 81, 0, 0, 0, 84, 0, 0, 0,
1940 0, 0, 12, 13, 14, 0, 15, 16, 17, 18,
1941 19, 20, 21, 22, 23, 24, 0, 25, 26, 27,
1942 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1943 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1944 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1945 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1946 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1947 0, 0, 0, 0, 0, 0, 0, 0, 132, 81,
1948 12, 13, 14, 84, 15, 16, 17, 18, 19, 20,
1949 21, 22, 23, 24, 0, 25, 26, 27, 28, 29,
1950 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1951 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1952 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1953 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1954 70, 71, 72, 73, 74, 75, 76, 77, 0, 0,
1955 0, 0, 0, 0, 0, 0, 132, 81, 0, 0,
1959 static const short yycheck[] = { 0,
1960 0, 138, 426, 4, 3, 0, 118, 8, 9, 10,
1961 11, 344, 279, 598, 442, 474, 379, 380, 390, 888,
1962 633, 298, 389, 531, 529, 296, 387, 388, 671, 896,
1963 602, 27, 381, 382, 427, 228, 656, 151, 152, 153,
1964 154, 155, 156, 383, 384, 385, 386, 633, 472, 633,
1965 633, 5, 793, 21, 0, 796, 391, 25, 4, 997,
1966 6, 10, 11, 487, 637, 0, 259, 55, 5, 4,
1967 24, 799, 0, 8, 452, 19, 689, 805, 915, 905,
1968 34, 5, 908, 28, 85, 85, 217, 24, 25, 26,
1969 85, 222, 18, 224, 784, 908, 19, 34, 24, 44,
1970 41, 25, 9, 689, 540, 689, 689, 28, 34, 41,
1971 18, 683, 1060, 1061, 637, 56, 21, 118, 987, 988,
1972 25, 758, 558, 44, 56, 633, 125, 24, 633, 26,
1973 997, 998, 24, 134, 39, 134, 773, 34, 21, 85,
1974 1078, 18, 25, 22, 145, 1083, 26, 21, 87, 150,
1975 85, 25, 34, 99, 34, 34, 799, 85, 582, 24,
1976 901, 26, 805, 783, 110, 111, 786, 168, 10, 11,
1977 53, 54, 24, 24, 26, 26, 453, 9, 1015, 1127,
1978 604, 689, 34, 118, 689, 758, 9, 21, 134, 1058,
1979 583, 919, 188, 194, 1132, 183, 1022, 24, 1024, 134,
1980 773, 202, 1069, 204, 1071, 206, 584, 400, 209, 1022,
1981 145, 1024, 479, 5, 21, 674, 217, 907, 25, 909,
1982 188, 222, 24, 224, 5, 32, 33, 560, 110, 111,
1983 184, 185, 5, 25, 18, 758, 237, 238, 24, 23,
1984 184, 185, 186, 150, 25, 189, 190, 184, 185, 186,
1985 773, 16, 189, 190, 21, 9, 10, 11, 184, 185,
1986 27, 633, 376, 377, 378, 26, 633, 28, 217, 24,
1987 633, 18, 633, 222, 21, 224, 919, 278, 278, 21,
1988 281, 282, 283, 44, 633, 27, 1027, 194, 237, 426,
1989 421, 422, 9, 633, 295, 295, 24, 564, 633, 206,
1990 301, 885, 209, 32, 33, 184, 185, 186, 579, 1176,
1991 189, 190, 18, 646, 637, 25, 26, 689, 150, 49,
1992 50, 637, 689, 637, 323, 21, 689, 150, 689, 25,
1993 18, 238, 184, 185, 186, 472, 15, 189, 190, 191,
1994 689, 608, 927, 278, 24, 346, 281, 282, 283, 689,
1995 487, 923, 16, 354, 689, 356, 623, 816, 625, 100,
1996 295, 974, 194, 477, 21, 789, 301, 26, 25, 28,
1997 202, 194, 880, 878, 206, 217, 322, 209, 18, 202,
1998 222, 21, 224, 206, 25, 44, 209, 28, 974, 16,
1999 974, 974, 184, 185, 186, 237, 150, 189, 190, 400,
2000 34, 53, 54, 184, 185, 186, 238, 18, 189, 190,
2001 21, 184, 185, 186, 5, 238, 189, 190, 21, 29,
2002 421, 422, 25, 418, 21, 39, 29, 428, 25, 430,
2003 430, 16, 699, 150, 429, 758, 24, 6, 7, 440,
2004 194, 442, 758, 444, 758, 582, 34, 26, 202, 28,
2005 773, 452, 206, 452, 455, 209, 22, 773, 459, 773,
2006 26, 22, 28, 217, 218, 44, 974, 604, 222, 974,
2007 224, 1055, 421, 422, 184, 185, 186, 194, 44, 189,
2008 190, 22, 21, 237, 238, 202, 25, 433, 18, 206,
2009 491, 21, 209, 400, 21, 430, 22, 21, 25, 500,
2010 501, 25, 865, 866, 876, 440, 5, 442, 875, 444,
2011 49, 50, 873, 874, 42, 43, 24, 452, 867, 868,
2012 455, 238, 49, 50, 459, 24, 34, 21, 22, 869,
2013 870, 871, 872, 26, 18, 34, 40, 21, 539, 540,
2014 1124, 34, 877, 55, 21, 540, 547, 547, 25, 21,
2015 184, 185, 186, 25, 555, 189, 190, 558, 559, 9,
2016 10, 11, 674, 558, 19, 500, 501, 18, 400, 18,
2017 21, 24, 21, 26, 25, 94, 25, 400, 21, 421,
2018 422, 34, 25, 584, 94, 584, 700, 701, 702, 703,
2019 704, 705, 188, 184, 185, 186, 184, 185, 189, 190,
2020 933, 22, 974, 25, 26, 359, 28, 974, 22, 24,
2021 21, 974, 547, 974, 25, 18, 24, 888, 21, 34,
2022 24, 18, 44, 27, 21, 974, 34, 21, 629, 630,
2023 34, 25, 633, 18, 974, 24, 21, 26, 23, 974,
2024 641, 642, 24, 644, 1103, 591, 400, 21, 94, 584,
2025 921, 25, 789, 21, 9, 10, 11, 25, 659, 21,
2026 661, 1089, 21, 25, 32, 33, 25, 421, 422, 670,
2027 20, 21, 673, 674, 675, 674, 184, 185, 88, 89,
2028 679, 180, 181, 400, 18, 184, 185, 21, 689, 188,
2029 34, 184, 185, 186, 831, 21, 189, 190, 0, 25,
2030 150, 21, 4, 18, 816, 25, 21, 539, 118, 119,
2031 12, 13, 983, 21, 19, 24, 539, 25, 27, 32,
2032 33, 992, 132, 22, 659, 34, 661, 1151, 20, 49,
2033 50, 184, 185, 186, 5, 670, 189, 190, 673, 674,
2034 94, 1012, 21, 87, 194, 27, 25, 21, 862, 863,
2035 864, 25, 202, 24, 25, 26, 206, 1028, 21, 209,
2036 21, 1185, 25, 34, 25, 180, 181, 217, 24, 184,
2037 185, 1038, 222, 188, 224, 776, 184, 185, 21, 18,
2038 184, 185, 25, 85, 188, 539, 18, 237, 238, 24,
2039 21, 26, 21, 1064, 25, 150, 25, 18, 100, 101,
2040 102, 103, 104, 105, 106, 107, 24, 109, 21, 21,
2041 112, 22, 25, 25, 1085, 816, 118, 816, 49, 50,
2042 21, 23, 539, 937, 25, 826, 128, 129, 130, 24,
2043 21, 26, 134, 28, 25, 781, 53, 54, 784, 194,
2044 184, 185, 67, 68, 69, 189, 190, 202, 150, 44,
2045 18, 206, 47, 48, 209, 157, 21, 18, 25, 26,
2046 25, 28, 217, 23, 49, 50, 24, 222, 26, 224,
2047 28, 34, 35, 36, 21, 184, 185, 44, 25, 188,
2048 21, 816, 237, 238, 25, 25, 44, 888, 21, 47,
2049 48, 826, 25, 25, 336, 896, 24, 57, 58, 59,
2050 60, 61, 62, 63, 64, 65, 66, 184, 185, 186,
2051 21, 18, 189, 190, 25, 217, 18, 21, 360, 25,
2052 26, 25, 28, 365, 366, 367, 368, 369, 370, 371,
2053 372, 373, 374, 375, 18, 21, 21, 18, 44, 25,
2054 25, 942, 943, 21, 21, 21, 19, 25, 25, 25,
2055 400, 37, 38, 255, 396, 9, 34, 35, 36, 905,
2056 25, 907, 908, 909, 204, 51, 52, 37, 38, 20,
2057 21, 421, 422, 974, 37, 38, 278, 279, 11, 281,
2058 282, 51, 52, 24, 985, 11, 987, 988, 51, 52,
2059 985, 1103, 90, 295, 995, 19, 997, 998, 21, 301,
2060 21, 19, 304, 19, 25, 20, 21, 942, 943, 34,
2061 35, 36, 19, 1014, 1151, 51, 52, 53, 1019, 1019,
2062 25, 323, 21, 21, 22, 27, 25, 1164, 32, 33,
2063 1031, 1031, 1031, 1034, 90, 9, 10, 11, 37, 38,
2064 24, 21, 344, 110, 111, 400, 22, 18, 1185, 21,
2065 25, 24, 51, 52, 1055, 1056, 1057, 1058, 21, 1060,
2066 1061, 11, 24, 24, 24, 24, 421, 422, 1069, 27,
2067 1071, 25, 23, 1074, 20, 19, 1022, 1078, 1024, 1080,
2068 1081, 20, 1083, 19, 1019, 23, 21, 5, 1089, 539,
2069 21, 25, 22, 72, 25, 27, 1031, 24, 24, 1034,
2070 25, 20, 1103, 34, 35, 36, 346, 20, 18, 25,
2071 27, 25, 27, 21, 354, 417, 356, 22, 25, 25,
2072 24, 1056, 1057, 1124, 1125, 1126, 1127, 25, 430, 29,
2073 25, 1132, 55, 185, 90, 437, 39, 439, 40, 441,
2074 442, 90, 444, 90, 18, 1080, 1081, 449, 90, 9,
2075 452, 1152, 1152, 90, 1089, 25, 24, 459, 67, 68,
2076 69, 70, 71, 72, 73, 74, 75, 76, 1103, 471,
2077 90, 25, 474, 615, 476, 1176, 150, 479, 25, 25,
2078 18, 25, 21, 18, 539, 188, 18, 40, 428, 23,
2079 1125, 1126, 21, 24, 18, 190, 90, 22, 21, 108,
2080 22, 21, 90, 112, 22, 114, 20, 116, 20, 25,
2081 25, 192, 121, 18, 27, 25, 27, 1152, 20, 40,
2082 194, 663, 131, 20, 133, 25, 27, 0, 202, 0,
2083 85, 896, 206, 301, 1176, 209, 1145, 1074, 977, 662,
2084 1046, 986, 1014, 217, 846, 547, 1124, 444, 222, 771,
2085 224, 491, 564, 1152, 661, 673, 816, 659, 125, 561,
2086 11, 323, 564, 237, 238, 1108, 175, 237, 342, 491,
2087 400, 974, 689, -1, -1, 577, 578, -1, -1, -1,
2088 -1, -1, 584, -1, -1, -1, -1, -1, 148, -1,
2089 150, -1, -1, -1, -1, -1, -1, 9, 10, 11,
2090 540, 603, -1, -1, -1, -1, 608, -1, -1, -1,
2091 -1, 138, -1, -1, -1, -1, 618, 619, 558, 559,
2092 -1, 623, -1, 625, 151, 152, 153, 154, 155, 156,
2093 -1, 158, 159, -1, 194, -1, -1, -1, -1, -1,
2094 -1, -1, 202, -1, -1, -1, 206, -1, 650, 209,
2095 -1, 793, -1, 262, 796, -1, 658, 217, 660, -1,
2096 -1, -1, 664, 665, -1, -1, -1, 669, -1, -1,
2097 -1, 673, 674, -1, -1, -1, -1, 679, 238, -1,
2098 289, -1, -1, 292, -1, -1, -1, -1, -1, 629,
2099 630, 300, -1, -1, 303, -1, -1, 699, -1, -1,
2100 -1, -1, 642, 845, 846, -1, -1, -1, -1, 851,
2101 852, 853, 854, 855, 856, 857, 858, 859, 860, 861,
2102 -1, -1, -1, -1, -1, -1, 400, -1, 9, 10,
2103 11, -1, -1, -1, -1, 675, -1, -1, 150, -1,
2104 -1, -1, -1, -1, 304, -1, -1, 421, 422, -1,
2105 18, -1, 312, 313, 314, 315, 24, -1, -1, 901,
2106 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2107 -1, -1, -1, 333, -1, -1, -1, 779, 46, 47,
2108 48, -1, 194, -1, 344, -1, -1, -1, -1, -1,
2109 202, -1, -1, -1, 206, -1, -1, 209, -1, -1,
2110 -1, 361, 70, -1, -1, 217, -1, -1, 417, -1,
2111 222, -1, 224, 815, 816, -1, 818, -1, 427, -1,
2112 -1, -1, -1, 432, -1, 237, 238, -1, 437, -1,
2113 439, -1, -1, -1, -1, -1, -1, -1, 447, -1,
2114 400, -1, 451, -1, -1, 113, -1, -1, 408, 376,
2115 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
2116 387, 388, 389, 390, 391, 539, -1, 18, -1, 150,
2117 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2118 31, 32, 33, 34, -1, 1027, -1, -1, -1, -1,
2119 -1, -1, -1, -1, -1, 46, 47, 48, -1, 426,
2120 -1, -1, 904, 9, 10, 11, -1, -1, -1, 911,
2121 -1, -1, -1, 194, -1, -1, 184, 185, 186, 70,
2122 188, 202, -1, -1, -1, 206, -1, -1, 209, -1,
2123 -1, -1, -1, -1, -1, -1, 217, -1, -1, -1,
2124 -1, 222, -1, 224, -1, 472, -1, -1, -1, -1,
2125 477, -1, -1, -1, -1, -1, 237, 238, -1, -1,
2126 487, -1, 113, -1, -1, -1, -1, -1, -1, -1,
2127 530, -1, -1, -1, 583, -1, -1, -1, -1, 539,
2128 -1, -1, -1, -1, -1, -1, -1, -1, 400, -1,
2129 -1, -1, -1, 602, -1, -1, -1, -1, 607, -1,
2130 -1, -1, 529, -1, 531, -1, 533, 534, -1, 421,
2131 422, 23, -1, -1, 1016, -1, -1, 1019, -1, -1,
2132 -1, -1, -1, -1, -1, 634, -1, 636, -1, 1031,
2133 -1, 1033, -1, 184, 185, 186, 1038, 188, 598, 1041,
2134 1042, -1, -1, -1, 150, 57, 58, 59, 60, 61,
2135 62, 63, 64, 65, 66, 582, -1, -1, -1, -1,
2136 -1, -1, -1, 623, -1, 625, -1, -1, -1, -1,
2137 -1, 631, -1, -1, -1, 635, -1, 604, -1, -1,
2138 -1, -1, 1084, -1, -1, -1, -1, 1089, 194, 1091,
2139 1092, -1, -1, -1, -1, -1, 202, -1, -1, -1,
2140 206, 1103, 711, 209, -1, -1, 633, -1, -1, -1,
2141 -1, 217, -1, -1, -1, -1, 222, -1, 224, 400,
2142 -1, -1, -1, -1, -1, -1, 1128, 539, 688, -1,
2143 -1, 237, 238, -1, -1, -1, -1, -1, -1, 699,
2144 421, 422, -1, -1, -1, -1, 1148, 1149, -1, -1,
2145 1152, -1, -1, 1155, -1, 19, 20, 766, 767, -1,
2146 24, -1, 689, -1, -1, 29, 30, 31, 32, 33,
2147 34, -1, -1, 700, 701, 702, 703, 704, 705, 706,
2148 707, 1, 46, 47, 48, -1, 6, 7, 8, 798,
2149 -1, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2150 20, -1, -1, -1, 24, 25, 70, -1, -1, 29,
2151 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2152 -1, -1, 42, 43, -1, -1, 46, 47, 48, -1,
2153 -1, -1, 19, -1, -1, -1, -1, 24, -1, -1,
2154 -1, -1, 29, 30, 31, 32, 33, 34, -1, 113,
2155 70, -1, -1, -1, -1, -1, -1, -1, 539, 46,
2156 47, 48, 789, -1, -1, -1, -1, -1, -1, -1,
2157 -1, -1, -1, -1, 94, 95, 96, 97, 98, 99,
2158 100, -1, -1, 70, -1, -1, -1, 847, -1, 109,
2159 -1, -1, -1, 113, 400, 904, -1, -1, 72, 73,
2160 74, 75, -1, -1, 831, 79, 80, 81, 82, 83,
2161 84, 85, -1, -1, 923, 421, 422, -1, -1, -1,
2162 184, 185, 186, -1, 188, -1, 113, -1, -1, -1,
2163 -1, -1, -1, -1, -1, 862, 863, 864, 865, 866,
2164 867, 868, 869, 870, 871, 872, 873, 874, 875, 876,
2165 877, 878, -1, 880, -1, -1, -1, -1, -1, -1,
2166 0, 1, -1, -1, 184, 185, 186, 927, 188, 189,
2167 190, -1, -1, -1, -1, -1, -1, -1, 18, -1,
2168 -1, -1, -1, -1, 24, -1, -1, -1, -1, -1,
2169 -1, -1, -1, -1, 34, -1, -1, 184, 185, 186,
2170 -1, 188, -1, -1, -1, 45, -1, -1, 1017, -1,
2171 937, -1, 972, -1, -1, -1, -1, -1, -1, -1,
2172 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
2173 -1, 71, -1, 539, -1, -1, 76, 77, 78, -1,
2174 -1, -1, -1, -1, -1, -1, -1, 974, -1, -1,
2175 -1, 91, 92, 93, -1, -1, -1, -1, -1, -1,
2176 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2177 110, 111, 112, -1, 114, 115, 116, 117, 118, 119,
2178 120, 121, 122, 123, 1093, 125, 126, 127, 128, 129,
2179 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2180 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2181 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2182 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2183 170, 171, 172, 173, 174, 175, 176, 177, -1, -1,
2184 -1, -1, -1, -1, 184, 185, 186, 187, -1, 189,
2185 190, 191, 0, 1, -1, -1, -1, -1, -1, -1,
2186 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2187 18, -1, -1, -1, 1183, -1, 24, -1, -1, -1,
2188 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
2189 -1, -1, -1, 120, 121, 122, 123, 45, 125, -1,
2190 -1, -1, -1, 130, 131, -1, -1, 134, 135, -1,
2191 137, 138, 139, 140, -1, -1, -1, -1, -1, 67,
2192 68, 69, -1, 71, 1151, 152, 153, -1, 76, 77,
2193 78, -1, -1, -1, -1, -1, -1, 1164, -1, -1,
2194 -1, -1, -1, 91, 92, 93, -1, -1, -1, -1,
2195 177, -1, -1, -1, -1, -1, -1, -1, 1185, -1,
2196 187, -1, 110, 111, 112, -1, 114, 115, 116, 117,
2197 118, 119, 120, 121, 122, 123, -1, 125, 126, 127,
2198 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2199 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2200 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2201 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2202 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2203 -1, -1, -1, -1, -1, -1, 184, 185, 186, 187,
2204 1, 189, 190, 191, -1, 6, 7, 8, -1, 10,
2205 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2206 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2207 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2208 -1, 42, 43, -1, 45, 46, 47, 48, -1, -1,
2209 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2210 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
2211 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2212 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2213 -1, -1, -1, -1, 95, 96, 97, 98, 99, 100,
2214 -1, -1, -1, -1, -1, -1, -1, -1, 109, 110,
2215 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2216 121, 122, 123, -1, 125, 126, 127, 128, 129, 130,
2217 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2218 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2219 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2220 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2221 171, 172, 173, 174, 175, 176, 177, -1, -1, -1,
2222 -1, -1, -1, 184, 185, 186, 187, 188, 189, 190,
2223 191, 1, -1, -1, -1, -1, 6, 7, 8, -1,
2224 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2225 -1, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2226 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2227 -1, -1, 42, 43, -1, -1, 46, 47, 48, -1,
2228 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2229 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
2230 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2231 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2232 -1, -1, -1, -1, -1, 95, 96, 97, 98, 99,
2233 100, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2234 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2235 120, 121, 122, 123, -1, 125, 126, 127, 128, 129,
2236 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2237 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2238 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2239 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2240 170, 171, 172, 173, 174, 175, 176, 177, -1, -1,
2241 -1, -1, -1, -1, 184, 185, 186, 187, 188, 189,
2242 190, 191, 1, -1, -1, -1, -1, 6, 7, 8,
2243 -1, -1, 11, 12, 13, 14, 15, 16, 17, 18,
2244 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2245 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2246 -1, -1, -1, 42, 43, -1, -1, 46, 47, 48,
2247 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2248 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
2249 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2250 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2251 -1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
2252 99, 100, -1, -1, -1, -1, -1, -1, -1, -1,
2253 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2254 119, 120, 121, 122, 123, -1, 125, 126, 127, 128,
2255 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2256 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2257 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2258 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2259 169, 170, 171, 172, 173, 174, 175, 176, 177, -1,
2260 -1, -1, -1, -1, -1, 184, 185, 186, 187, 188,
2261 189, 190, 191, 1, -1, -1, -1, -1, 6, 7,
2262 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2263 18, 19, -1, -1, -1, -1, 24, -1, -1, -1,
2264 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2265 -1, -1, -1, -1, 42, 43, -1, 1, 46, 47,
2266 48, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2267 14, 15, 16, 17, 18, 19, -1, -1, -1, -1,
2268 24, -1, 70, -1, -1, 29, 30, 31, 32, 33,
2269 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2270 -1, -1, 46, 47, 48, -1, 94, 95, 96, 97,
2271 98, 99, 100, -1, -1, -1, -1, -1, -1, -1,
2272 -1, 109, -1, -1, -1, 113, 70, -1, -1, -1,
2273 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2274 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2275 94, 95, 96, 97, 98, 99, 100, -1, -1, -1,
2276 -1, -1, -1, -1, -1, 109, -1, -1, -1, 113,
2277 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2278 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2279 -1, -1, -1, -1, -1, -1, 184, 185, 186, -1,
2280 188, 189, 190, -1, -1, -1, 1, -1, -1, -1,
2281 -1, 6, 7, 8, -1, -1, 11, 12, 13, 14,
2282 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2283 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2284 184, 185, 186, -1, 188, 189, 190, 42, 43, -1,
2285 1, 46, 47, 48, -1, 6, 7, 8, -1, 10,
2286 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2287 -1, -1, -1, 24, -1, 70, -1, -1, 29, 30,
2288 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2289 -1, 42, 43, -1, -1, 46, 47, 48, -1, 94,
2290 95, 96, 97, 98, 99, 100, -1, -1, -1, -1,
2291 1, -1, -1, -1, 109, 6, 7, 8, 113, 70,
2292 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2293 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2294 31, 32, 33, 34, 95, 96, 97, 98, 99, 100,
2295 -1, 42, 43, -1, -1, 46, 47, 48, 109, -1,
2296 -1, -1, 113, -1, -1, -1, -1, -1, -1, -1,
2297 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2298 -1, -1, -1, -1, -1, -1, -1, -1, -1, 184,
2299 185, 186, -1, 188, 189, 190, -1, -1, -1, -1,
2300 -1, -1, -1, -1, 95, 96, 97, 98, 99, 100,
2301 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1,
2302 -1, -1, 113, -1, -1, -1, -1, -1, -1, -1,
2303 -1, -1, -1, 184, 185, 186, 1, 188, 189, 190,
2304 -1, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2305 15, 16, 17, 18, 19, -1, -1, -1, -1, 24,
2306 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2307 -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
2308 -1, 46, 47, 48, -1, -1, -1, -1, -1, -1,
2309 -1, -1, -1, 184, 185, 186, -1, 188, 189, 190,
2310 -1, -1, -1, -1, -1, 70, -1, -1, -1, -1,
2311 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2312 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2313 95, 96, 97, 98, 99, 100, -1, -1, -1, -1,
2314 -1, -1, -1, -1, 109, 6, 7, 8, 113, 10,
2315 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2316 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2317 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2318 -1, 42, 43, -1, 45, 46, 47, 48, -1, -1,
2319 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2320 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2321 71, -1, -1, -1, -1, -1, -1, -1, -1, 184,
2322 185, 186, -1, 188, 189, 190, -1, -1, -1, -1,
2323 -1, -1, -1, -1, 95, 96, 97, 98, 99, 100,
2324 -1, -1, -1, -1, -1, -1, -1, -1, 109, 110,
2325 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2326 121, 122, 123, -1, 125, 126, 127, 128, 129, 130,
2327 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2328 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2329 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2330 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2331 171, 172, 173, 174, 175, 176, 177, -1, -1, -1,
2332 -1, -1, -1, 184, 185, 186, 187, 188, 189, 190,
2333 191, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2334 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2335 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2336 -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
2337 45, 46, 47, 48, -1, -1, -1, -1, -1, -1,
2338 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2339 -1, -1, -1, -1, -1, 70, 71, -1, -1, -1,
2340 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2341 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2342 95, 96, 97, 98, 99, 100, -1, -1, -1, -1,
2343 -1, -1, -1, -1, 109, 110, 111, 112, 113, 114,
2344 115, 116, 117, 118, 119, 120, 121, 122, 123, -1,
2345 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2346 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2347 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2348 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2349 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2350 175, 176, 177, -1, -1, -1, -1, -1, -1, 184,
2351 185, 186, 187, 188, 189, 190, 191, 6, 7, 8,
2352 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2353 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2354 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2355 -1, -1, -1, 42, 43, -1, 45, 46, 47, 48,
2356 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2357 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2358 -1, 70, 71, -1, -1, -1, -1, -1, -1, -1,
2359 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2360 -1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
2361 99, 100, -1, -1, -1, -1, -1, -1, -1, -1,
2362 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2363 119, 120, 121, 122, 123, -1, 125, 126, 127, 128,
2364 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2365 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2366 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2367 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2368 169, 170, 171, 172, 173, 174, 175, 176, 177, -1,
2369 -1, -1, -1, -1, -1, 184, 185, 186, 187, 188,
2370 189, 190, 191, 6, 7, 8, -1, 10, 11, 12,
2371 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2372 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2373 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2374 -1, -1, -1, 46, 47, 48, -1, 6, 7, 8,
2375 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2376 19, 20, -1, -1, -1, 24, -1, 70, -1, -1,
2377 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2378 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2379 -1, -1, 95, 96, 97, 98, 99, 100, -1, -1,
2380 -1, -1, -1, -1, -1, -1, 109, -1, -1, -1,
2381 113, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2382 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2383 -1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
2384 99, 100, -1, -1, -1, -1, -1, -1, -1, -1,
2385 109, 6, 7, 8, 113, 10, 11, 12, 13, 14,
2386 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2387 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2388 -1, 184, 185, 186, -1, 188, 189, 190, -1, -1,
2389 -1, 46, 47, 48, -1, 6, 7, 8, -1, 10,
2390 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2391 -1, -1, -1, 24, -1, 70, -1, -1, 29, 30,
2392 31, 32, 33, 34, -1, 184, 185, 186, -1, 188,
2393 189, 190, -1, -1, -1, 46, 47, 48, -1, -1,
2394 95, 96, 97, 98, 99, 100, -1, -1, -1, -1,
2395 -1, -1, -1, -1, 109, -1, -1, -1, 113, 70,
2396 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2397 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2398 -1, -1, -1, -1, 95, 96, 97, 98, 99, 100,
2399 -1, -1, -1, -1, -1, -1, -1, -1, 109, 6,
2400 7, 8, 113, 10, 11, 12, 13, 14, 15, 16,
2401 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2402 -1, -1, 29, 30, 31, 32, 33, 34, -1, 184,
2403 185, 186, -1, 188, 189, 190, -1, -1, -1, 46,
2404 47, 48, -1, 6, 7, 8, -1, 10, 11, 12,
2405 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2406 -1, 24, -1, 70, -1, -1, 29, 30, 31, 32,
2407 33, 34, -1, 184, 185, 186, -1, 188, 189, 190,
2408 -1, -1, -1, 46, 47, 48, -1, -1, 95, 96,
2409 97, 98, 99, 100, -1, -1, -1, -1, -1, -1,
2410 -1, -1, 109, -1, -1, -1, 113, 70, -1, -1,
2411 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2412 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2413 -1, -1, 95, 96, 97, 98, 99, 100, -1, -1,
2414 -1, -1, -1, -1, -1, -1, 109, 6, 7, 8,
2415 113, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2416 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2417 29, 30, 31, 32, 33, 34, -1, 184, 185, 186,
2418 -1, 188, 189, 190, -1, -1, -1, 46, 47, 48,
2419 -1, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2420 15, 16, 17, 18, 19, -1, -1, -1, -1, 24,
2421 -1, 70, -1, -1, 29, 30, 31, 32, 33, 34,
2422 -1, 184, 185, 186, -1, 188, 189, 190, -1, -1,
2423 -1, 46, 47, 48, -1, -1, 95, 96, 97, 98,
2424 99, 100, -1, -1, -1, -1, -1, -1, -1, -1,
2425 109, -1, -1, -1, 113, 70, -1, -1, -1, -1,
2426 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2427 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2428 95, 96, 97, 98, 99, 100, 19, -1, -1, -1,
2429 -1, 24, -1, -1, 109, -1, -1, -1, 113, -1,
2430 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2431 -1, -1, 45, -1, -1, -1, -1, -1, -1, -1,
2432 -1, -1, -1, -1, -1, 184, 185, 186, -1, 188,
2433 189, 190, -1, -1, -1, -1, -1, -1, 71, -1,
2434 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2436 -1, -1, -1, -1, -1, 20, -1, -1, -1, 184,
2437 185, 186, -1, 188, 189, 190, -1, 110, 111, 112,
2438 -1, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2439 123, -1, 125, 126, 127, 128, 129, 130, 131, 132,
2440 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2441 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2442 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2443 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2444 173, 174, 175, 176, 177, -1, -1, -1, -1, -1,
2445 -1, -1, -1, 186, 187, 110, 111, 112, 191, 114,
2446 115, 116, 117, 118, 119, 120, 121, 122, 123, -1,
2447 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2448 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2449 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2450 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2451 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2452 175, 176, 177, 22, -1, -1, -1, -1, -1, -1,
2453 -1, 186, 187, -1, -1, -1, 191, -1, -1, -1,
2454 -1, -1, -1, -1, -1, -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, 67, 68,
2457 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2458 -1, -1, -1, -1, -1, -1, -1, -1, 87, -1,
2459 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2461 -1, 110, 111, 112, -1, 114, 115, 116, 117, 118,
2462 119, 120, 121, 122, 123, -1, 125, 126, 127, 128,
2463 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2464 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2465 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2466 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2467 169, 170, 171, 172, 173, 174, 175, 176, 177, -1,
2468 -1, -1, -1, -1, 19, -1, -1, -1, 187, 24,
2469 -1, -1, 191, -1, 29, 30, 31, 32, 33, 34,
2470 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2471 -1, 46, 47, 48, -1, -1, -1, -1, -1, -1,
2472 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2473 -1, -1, -1, -1, -1, 70, -1, -1, -1, -1,
2474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2476 -1, -1, -1, -1, -1, -1, -1, -1, -1, 24,
2477 -1, -1, -1, -1, -1, -1, -1, -1, 113, 34,
2478 24, 25, -1, -1, -1, 29, 30, 31, 32, 33,
2479 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2480 -1, -1, 46, 47, 48, -1, -1, -1, -1, -1,
2481 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2482 -1, -1, -1, -1, -1, -1, 70, -1, -1, -1,
2483 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2484 -1, -1, -1, -1, -1, -1, -1, -1, -1, 184,
2485 185, 186, -1, 188, -1, 110, 111, 112, -1, 114,
2486 115, 116, 117, 118, 119, 120, 121, 122, 123, 113,
2487 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2488 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2489 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2490 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2491 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2492 175, 176, 177, -1, -1, -1, -1, -1, -1, 184,
2493 185, 186, 187, -1, 189, 190, 191, -1, -1, -1,
2494 184, 185, 186, 24, 188, -1, 27, -1, 29, 30,
2495 31, 32, 33, 34, 24, -1, -1, 27, -1, 29,
2496 30, 31, 32, 33, 34, 46, 47, 48, -1, -1,
2497 -1, -1, -1, -1, 24, 25, 46, 47, 48, 29,
2498 30, 31, 32, 33, 34, 24, 25, -1, -1, 70,
2499 29, 30, 31, 32, 33, 34, 46, 47, 48, -1,
2500 70, -1, -1, -1, -1, 24, -1, 46, 47, 48,
2501 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2502 70, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2503 24, 70, 113, -1, -1, 29, 30, 31, 32, 33,
2504 34, -1, -1, 113, -1, -1, -1, -1, -1, -1,
2505 -1, 70, 46, 47, 48, -1, -1, -1, -1, -1,
2506 -1, -1, 24, 113, -1, -1, -1, 29, 30, 31,
2507 32, 33, 34, -1, 113, -1, 70, -1, -1, -1,
2508 -1, -1, -1, -1, 46, 47, 48, -1, -1, -1,
2509 -1, -1, -1, -1, 113, -1, -1, -1, -1, -1,
2510 -1, -1, -1, 184, 185, 186, -1, 188, 70, -1,
2511 -1, -1, -1, -1, 184, 185, 186, 24, 188, 113,
2512 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2513 -1, -1, -1, -1, 184, 185, 186, -1, 188, 46,
2514 47, 48, -1, -1, -1, 184, 185, 186, -1, 188,
2515 24, 113, -1, -1, -1, 29, 30, 31, 32, 33,
2516 34, -1, -1, 70, -1, 184, 185, 186, -1, 188,
2517 -1, -1, 46, 47, 48, -1, -1, -1, -1, -1,
2518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2519 184, 185, 186, -1, 188, -1, 70, -1, -1, -1,
2520 -1, -1, -1, -1, -1, -1, 113, -1, -1, -1,
2521 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2522 -1, -1, 184, 185, 186, -1, 188, -1, -1, -1,
2523 -1, -1, -1, -1, -1, -1, -1, -1, -1, 113,
2524 -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
2525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2526 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2527 -1, -1, -1, -1, -1, -1, -1, 184, 185, 186,
2528 -1, 188, -1, -1, -1, -1, -1, -1, -1, -1,
2529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2530 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2531 184, 185, 186, -1, 188, 110, 111, 112, -1, 114,
2532 115, 116, 117, 118, 119, 120, 121, 122, 123, -1,
2533 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2534 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2535 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2536 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2537 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2538 175, 176, 177, 45, -1, -1, -1, -1, -1, -1,
2539 -1, 186, 187, -1, -1, -1, 191, -1, -1, -1,
2540 -1, -1, -1, -1, -1, 67, 68, 69, -1, 71,
2541 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2542 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2544 -1, -1, -1, -1, -1, -1, -1, -1, 110, 111,
2545 112, -1, 114, 115, 116, 117, 118, 119, 120, 121,
2546 122, 123, -1, 125, 126, 127, 128, 129, 130, 131,
2547 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2548 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2549 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2550 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2551 172, 173, 174, 175, 176, 177, 45, -1, -1, -1,
2552 -1, -1, -1, -1, 186, 187, -1, -1, -1, 191,
2553 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2554 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2555 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2556 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2557 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2558 -1, 110, 111, 112, -1, 114, 115, 116, 117, 118,
2559 119, 120, 121, 122, 123, -1, 125, 126, 127, 128,
2560 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2561 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2562 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2563 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2564 169, 170, 171, 172, 173, 174, 175, 176, 177, 45,
2565 -1, -1, -1, -1, -1, 184, 185, 186, 187, -1,
2566 -1, -1, 191, -1, -1, -1, -1, -1, -1, -1,
2567 -1, -1, -1, -1, -1, 71, -1, -1, -1, -1,
2568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2569 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2570 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2571 -1, -1, -1, -1, 110, 111, 112, -1, 114, 115,
2572 116, 117, 118, 119, 120, 121, 122, 123, -1, 125,
2573 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2574 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2575 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2576 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2577 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2578 176, 177, 67, 68, 69, -1, -1, -1, -1, -1,
2579 186, 187, -1, -1, -1, 191, -1, -1, -1, -1,
2580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2581 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2582 -1, -1, -1, -1, -1, 110, 111, 112, -1, 114,
2583 115, 116, 117, 118, 119, 120, 121, 122, 123, -1,
2584 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2585 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2586 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2587 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2588 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2589 175, 176, 177, 91, 92, 93, -1, -1, -1, -1,
2590 -1, 186, 187, -1, -1, -1, 191, -1, -1, -1,
2591 -1, -1, 110, 111, 112, -1, 114, 115, 116, 117,
2592 118, 119, 120, 121, 122, 123, -1, 125, 126, 127,
2593 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2594 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2595 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2596 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2597 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2598 -1, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2599 110, 111, 112, 191, 114, 115, 116, 117, 118, 119,
2600 120, 121, 122, 123, -1, 125, 126, 127, 128, 129,
2601 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2602 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2603 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2604 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2605 170, 171, 172, 173, 174, 175, 176, 177, -1, -1,
2606 -1, -1, -1, -1, -1, -1, 186, 187, -1, -1,
2609 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2611 /* This file comes from bison-1.28. */
2613 /* Skeleton output parser for bison,
2614 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2616 This program is free software; you can redistribute it and/or modify
2617 it under the terms of the GNU General Public License as published by
2618 the Free Software Foundation; either version 2, or (at your option)
2621 This program is distributed in the hope that it will be useful,
2622 but WITHOUT ANY WARRANTY; without even the implied warranty of
2623 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2624 GNU General Public License for more details.
2626 You should have received a copy of the GNU General Public License
2627 along with this program; if not, write to the Free Software
2628 Foundation, Inc., 59 Temple Place - Suite 330,
2629 Boston, MA 02111-1307, USA. */
2631 /* As a special exception, when this file is copied by Bison into a
2632 Bison output file, you may use that output file without restriction.
2633 This special exception was added by the Free Software Foundation
2634 in version 1.24 of Bison. */
2636 /* This is the parser code that is written into each bison parser
2637 when the %semantic_parser declaration is not specified in the grammar.
2638 It was written by Richard Stallman by simplifying the hairy parser
2639 used when %semantic_parser is specified. */
2641 #ifndef YYSTACK_USE_ALLOCA
2643 #define YYSTACK_USE_ALLOCA
2644 #else /* alloca not defined */
2646 #define YYSTACK_USE_ALLOCA
2647 #define alloca __builtin_alloca
2648 #else /* not GNU C. */
2649 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2650 #define YYSTACK_USE_ALLOCA
2652 #else /* not sparc */
2653 /* We think this test detects Watcom and Microsoft C. */
2654 /* This used to test MSDOS, but that is a bad idea
2655 since that symbol is in the user namespace. */
2656 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2657 #if 0 /* No need for malloc.h, which pollutes the namespace;
2658 instead, just don't use alloca. */
2661 #else /* not MSDOS, or __TURBOC__ */
2663 /* I don't know what this was needed for, but it pollutes the namespace.
2664 So I turned it off. rms, 2 May 1997. */
2665 /* #include <malloc.h> */
2667 #define YYSTACK_USE_ALLOCA
2668 #else /* not MSDOS, or __TURBOC__, or _AIX */
2670 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
2671 and on HPUX 10. Eventually we can turn this on. */
2672 #define YYSTACK_USE_ALLOCA
2673 #define alloca __builtin_alloca
2676 #endif /* not _AIX */
2677 #endif /* not MSDOS, or __TURBOC__ */
2678 #endif /* not sparc */
2679 #endif /* not GNU C */
2680 #endif /* alloca not defined */
2681 #endif /* YYSTACK_USE_ALLOCA not defined */
2683 #ifdef YYSTACK_USE_ALLOCA
2684 #define YYSTACK_ALLOC alloca
2686 #define YYSTACK_ALLOC malloc
2689 /* Note: there must be only one dollar sign in this file.
2690 It is replaced by the list of actions, each action
2691 as one case of the switch. */
2693 #define yyerrok (yyerrstatus = 0)
2694 #define yyclearin (yychar = YYEMPTY)
2697 #define YYACCEPT goto yyacceptlab
2698 #define YYABORT goto yyabortlab
2699 #define YYERROR goto yyerrlab1
2700 /* Like YYERROR except do call yyerror.
2701 This remains here temporarily to ease the
2702 transition to the new meaning of YYERROR, for GCC.
2703 Once GCC version 2 has supplanted version 1, this can go. */
2704 #define YYFAIL goto yyerrlab
2705 #define YYRECOVERING() (!!yyerrstatus)
2706 #define YYBACKUP(token, value) \
2708 if (yychar == YYEMPTY && yylen == 1) \
2709 { yychar = (token), yylval = (value); \
2710 yychar1 = YYTRANSLATE (yychar); \
2715 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2719 #define YYERRCODE 256
2722 #define YYLEX yylex()
2728 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2730 #define YYLEX yylex(&yylval, &yylloc)
2732 #else /* not YYLSP_NEEDED */
2734 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2736 #define YYLEX yylex(&yylval)
2738 #endif /* not YYLSP_NEEDED */
2741 /* If nonreentrant, generate the variables here */
2745 int yychar; /* the lookahead symbol */
2746 YYSTYPE yylval; /* the semantic value of the */
2747 /* lookahead symbol */
2750 YYLTYPE yylloc; /* location data for the lookahead */
2754 int yynerrs; /* number of parse errors so far */
2755 #endif /* not YYPURE */
2758 int yydebug; /* nonzero means print parse trace */
2759 /* Since this is uninitialized, it does not stop multiple parsers
2763 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2766 #define YYINITDEPTH 200
2769 /* YYMAXDEPTH is the maximum size the stacks can grow to
2770 (effective only if the built-in stack extension method is used). */
2777 #define YYMAXDEPTH 10000
2780 /* Define __yy_memcpy. Note that the size argument
2781 should be passed with type unsigned int, because that is what the non-GCC
2782 definitions require. With GCC, __builtin_memcpy takes an arg
2783 of type size_t, but it can handle unsigned int. */
2785 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2786 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2787 #else /* not GNU C or C++ */
2790 /* This is the most reliable way to avoid incompatibilities
2791 in available built-in functions on various systems. */
2793 __yy_memcpy (to, from, count)
2798 register char *f = from;
2799 register char *t = to;
2800 register int i = count;
2806 #else /* __cplusplus */
2808 /* This is the most reliable way to avoid incompatibilities
2809 in available built-in functions on various systems. */
2811 __yy_memcpy (char *to, char *from, unsigned int count)
2813 register char *t = to;
2814 register char *f = from;
2815 register int i = count;
2826 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2827 into yyparse. The argument should have type void *.
2828 It should actually point to an object.
2829 Grammar actions can access the variable by casting it
2830 to the proper pointer type. */
2832 #ifdef YYPARSE_PARAM
2834 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2835 #define YYPARSE_PARAM_DECL
2836 #else /* not __cplusplus */
2837 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2838 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2839 #endif /* not __cplusplus */
2840 #else /* not YYPARSE_PARAM */
2841 #define YYPARSE_PARAM_ARG
2842 #define YYPARSE_PARAM_DECL
2843 #endif /* not YYPARSE_PARAM */
2845 /* Prevent warning if -Wstrict-prototypes. */
2847 #ifdef YYPARSE_PARAM
2848 int yyparse (void *);
2855 yyparse(YYPARSE_PARAM_ARG)
2858 register int yystate;
2860 register short *yyssp;
2861 register YYSTYPE *yyvsp;
2862 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2863 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2865 short yyssa[YYINITDEPTH]; /* the state stack */
2866 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2868 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2869 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2872 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2873 YYLTYPE *yyls = yylsa;
2876 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2878 #define YYPOPSTACK (yyvsp--, yyssp--)
2881 int yystacksize = YYINITDEPTH;
2882 int yyfree_stacks = 0;
2893 YYSTYPE yyval; /* the variable used to return */
2894 /* semantic values from the action */
2901 fprintf(stderr, "Starting parse\n");
2907 yychar = YYEMPTY; /* Cause a token to be read. */
2909 /* Initialize stack pointers.
2910 Waste one element of value and location stack
2911 so that they stay on the same level as the state stack.
2912 The wasted elements are never initialized. */
2920 /* Push a new state, which is found in yystate . */
2921 /* In all cases, when you get here, the value and location stacks
2922 have just been pushed. so pushing a state here evens the stacks. */
2927 if (yyssp >= yyss + yystacksize - 1)
2929 /* Give user a chance to reallocate the stack */
2930 /* Use copies of these so that the &'s don't force the real ones into memory. */
2931 YYSTYPE *yyvs1 = yyvs;
2932 short *yyss1 = yyss;
2934 YYLTYPE *yyls1 = yyls;
2937 /* Get the current used size of the three stacks, in elements. */
2938 int size = yyssp - yyss + 1;
2941 /* Each stack pointer address is followed by the size of
2942 the data in use in that stack, in bytes. */
2944 /* This used to be a conditional around just the two extra args,
2945 but that might be undefined if yyoverflow is a macro. */
2946 yyoverflow("parser stack overflow",
2947 &yyss1, size * sizeof (*yyssp),
2948 &yyvs1, size * sizeof (*yyvsp),
2949 &yyls1, size * sizeof (*yylsp),
2952 yyoverflow("parser stack overflow",
2953 &yyss1, size * sizeof (*yyssp),
2954 &yyvs1, size * sizeof (*yyvsp),
2958 yyss = yyss1; yyvs = yyvs1;
2962 #else /* no yyoverflow */
2963 /* Extend the stack our own way. */
2964 if (yystacksize >= YYMAXDEPTH)
2966 yyerror("parser stack overflow");
2978 if (yystacksize > YYMAXDEPTH)
2979 yystacksize = YYMAXDEPTH;
2980 #ifndef YYSTACK_USE_ALLOCA
2983 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
2984 __yy_memcpy ((char *)yyss, (char *)yyss1,
2985 size * (unsigned int) sizeof (*yyssp));
2986 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
2987 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
2988 size * (unsigned int) sizeof (*yyvsp));
2990 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
2991 __yy_memcpy ((char *)yyls, (char *)yyls1,
2992 size * (unsigned int) sizeof (*yylsp));
2994 #endif /* no yyoverflow */
2996 yyssp = yyss + size - 1;
2997 yyvsp = yyvs + size - 1;
2999 yylsp = yyls + size - 1;
3004 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3007 if (yyssp >= yyss + yystacksize - 1)
3013 fprintf(stderr, "Entering state %d\n", yystate);
3019 /* Do appropriate processing given the current state. */
3020 /* Read a lookahead token if we need one and don't already have one. */
3023 /* First try to decide what to do without reference to lookahead token. */
3025 yyn = yypact[yystate];
3029 /* Not known => get a lookahead token if don't already have one. */
3031 /* yychar is either YYEMPTY or YYEOF
3032 or a valid token in external form. */
3034 if (yychar == YYEMPTY)
3038 fprintf(stderr, "Reading a token: ");
3043 /* Convert token to internal form (in yychar1) for indexing tables with */
3045 if (yychar <= 0) /* This means end of input. */
3048 yychar = YYEOF; /* Don't call YYLEX any more */
3052 fprintf(stderr, "Now at end of input.\n");
3057 yychar1 = YYTRANSLATE(yychar);
3062 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3063 /* Give the individual parser a way to print the precise meaning
3064 of a token, for further debugging info. */
3066 YYPRINT (stderr, yychar, yylval);
3068 fprintf (stderr, ")\n");
3074 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3079 /* yyn is what to do for this token type in this state.
3080 Negative => reduce, -yyn is rule number.
3081 Positive => shift, yyn is new state.
3082 New state is final state => don't bother to shift,
3083 just return success.
3084 0, or most negative number => error. */
3099 /* Shift the lookahead token. */
3103 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3106 /* Discard the token being shifted unless it is eof. */
3107 if (yychar != YYEOF)
3115 /* count tokens shifted since error; after three, turn off error status. */
3116 if (yyerrstatus) yyerrstatus--;
3121 /* Do the default action for the current state. */
3124 yyn = yydefact[yystate];
3128 /* Do a reduction. yyn is the number of a rule to reduce with. */
3132 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3139 fprintf (stderr, "Reducing via rule %d (line %d), ",
3142 /* Print the symbols being reduced, and their result. */
3143 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3144 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3145 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3153 { context_checkGlobalScope (); ;
3156 { context_checkGlobalScope (); ;
3159 { uentry_clearDecl (); ;
3162 { uentry_clearDecl (); ;
3165 { uentry_clearDecl (); ;
3168 { uentry_clearDecl (); ;
3171 { uentry_clearDecl (); ;
3174 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3177 { uentry_clearDecl (); /* evans 2002-02-08: okay to have a null statement */ ;
3180 { uentry_clearDecl (); ;
3183 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3186 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3189 { context_enterFunctionHeader (); ;
3193 declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3194 context_exitFunctionHeader ();
3199 qtype qint = qtype_create (ctype_int);
3200 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3205 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3208 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3211 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3214 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3217 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3221 exprNode_findValue (yyvsp[-2].expr);
3222 idDecl_notExpectingFunction (yyvsp[-5].ntyp);
3224 if (exprNode_hasValue (yyvsp[-2].expr))
3226 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp),
3227 exprNode_getLongValue (yyvsp[-2].expr)));
3231 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-5].ntyp)));
3236 { setCurrentParams (uentryList_missingParams); ;
3239 { /* need to support globals and modifies here! */
3240 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3241 uentryList_makeMissingParams ());
3243 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3244 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3246 /*drl 7/25/01 added*/
3247 setImplictfcnConstraints();
3251 { setCurrentParams (yyvsp[-1].entrylist); ;
3254 { setImplictfcnConstraints ();
3255 clearCurrentParams ();
3256 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3257 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3262 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3265 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3268 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3274 if (exprNode_hasValue (yyvsp[-2].expr)
3275 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3277 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3284 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3288 { setCurrentParams (uentryList_missingParams); ;
3292 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3293 uentryList_makeMissingParams ());
3295 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3296 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3301 { setCurrentParams (yyvsp[-1].entrylist); ;
3305 clearCurrentParams ();
3306 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3307 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3312 { setCurrentParams (yyvsp[-1].entrylist); ;
3315 { clearCurrentParams (); ;
3318 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3321 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3324 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3327 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3330 { exprChecks_checkEmptyMacroBody (); ;
3333 { clabstract_declareFunction (yyvsp[0].ntyp); ;
3336 { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3339 { cscanner_expectingMetaStateName (); ;
3342 { cscanner_clearExpectingMetaStateName ();
3343 yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo); ;
3346 { cscanner_expectingMetaStateName (); ;
3349 { cscanner_clearExpectingMetaStateName ();
3350 yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo); ;
3353 { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
3356 { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3359 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3362 { yyval.conL = constraintList_single (yyvsp[0].con); ;
3366 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3367 DPRINTF(("Done BufConstraint1\n")); ;
3370 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3374 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3375 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3378 { yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
3381 { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
3384 { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
3387 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3390 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3396 t = cstring_toCharsSafe (exprNode_unparse($3));
3399 yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3403 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3406 { yyval.sr = yyvsp[-1].sr; ;
3409 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3412 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3415 { yyval.funcclauselist = functionClauseList_new (); ;
3418 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3421 { yyval.funcclauselist = functionClauseList_new (); ;
3424 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3427 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3430 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3433 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3436 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3439 { yyval.funcclause = yyvsp[0].funcclause; ;
3442 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3445 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3448 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3451 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3454 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3457 { yyval.funcclause = yyvsp[0].funcclause; ;
3460 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3463 { yyval.globsclause = yyvsp[-1].globsclause; ;
3466 { setProcessingGlobalsList (); ;
3470 unsetProcessingGlobals ();
3471 yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
3475 { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
3478 { yyval.modsclause = yyvsp[-1].modsclause; ;
3482 context_setProtectVars (); enterParamsTemp ();
3483 sRef_setGlobalScopeSafe ();
3489 sRef_clearGlobalScopeSafe ();
3490 context_releaseVars ();
3491 yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3495 { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
3498 { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
3501 { yyval.warnclause = warnClause_undefined; ;
3504 { yyval.warnclause = yyvsp[-1].warnclause; ;
3508 llassert (exprNode_knownStringValue (yyvsp[0].expr));
3509 yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
3510 exprNode_free (yyvsp[0].expr);
3514 { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
3517 { yyval.globset = globSet_single (yyvsp[0].sr); ;
3520 { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3523 { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3526 { yyval.tquallist = qualList_undefined; ;
3529 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3532 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3535 { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3538 { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3541 { yyval.typequal = qual_createUndef (); ;
3544 { yyval.typequal = qual_createKilled (); ;
3547 { yyval.typequal = qual_createOut (); ;
3550 { yyval.typequal = qual_createIn (); ;
3553 { yyval.typequal = qual_createPartial (); ;
3557 qtype qint = qtype_create (ctype_int);
3558 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3563 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3566 { checkDoneParams (); context_enterInnerContext (); ;
3570 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3571 context_exitInner (yyvsp[0].expr);
3575 { context_enterOldStyleScope (); ;
3578 { oldStyleDoneParams (); context_enterInnerContext (); ;
3582 exprNode_checkFunctionBody (yyvsp[0].expr);
3583 yyval.expr = yyvsp[0].expr; /* oldstyle */
3584 context_exitInner (yyvsp[0].expr);
3589 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3590 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3593 context_exitFunction ();
3597 { yyval.srset = yyvsp[-1].srset; ;
3600 { yyval.srset = sRefSet_new (); ;
3603 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3606 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3609 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3612 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3615 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3618 { yyval.sr = yyvsp[-1].sr; ;
3621 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3624 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3627 { yyval.sr = yyvsp[0].sr; ;
3630 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3633 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3636 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3639 { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
3642 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3645 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3648 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3651 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3654 { yyval.sr = yyvsp[-1].sr; ;
3657 { cstring_markOwned (yyvsp[0].cname);
3658 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3661 { cstring_markOwned (yyvsp[0].cname);
3662 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3665 { yyval.srset = sRefSet_undefined ;
3668 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3669 else { yyval.srset = sRefSet_undefined; }
3673 { if (sRef_isValid (yyvsp[0].sr))
3675 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3679 yyval.srset = yyvsp[-2].srset;
3684 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3687 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3690 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3693 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3696 { yyval.expr = exprNode_makeError (); ;
3699 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3702 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3705 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
3708 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3711 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3714 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3717 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3720 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3723 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3726 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
3729 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3732 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3735 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3738 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3741 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3744 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3747 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3750 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3753 { yyval.expr = yyvsp[0].expr; ;
3756 { yyval.expr = yyvsp[0].expr; ;
3759 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3762 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3765 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3768 { context_setProtectVars (); ;
3771 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3774 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3777 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3780 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3783 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3786 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3789 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3792 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3795 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3798 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3801 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3804 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3807 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3810 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3813 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3816 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
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 { exprNode_produceGuards (yyvsp[-1].expr);
3838 context_enterAndClause (yyvsp[-1].expr);
3843 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3844 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3849 exprNode_produceGuards (yyvsp[-1].expr);
3850 context_enterOrClause (yyvsp[-1].expr);
3855 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3856 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3860 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3863 { context_enterFalseClause (yyvsp[-4].expr); ;
3866 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3869 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3872 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3875 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3878 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3881 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3884 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3887 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3890 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3893 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3896 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3899 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3902 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
3905 { yyval.expr = exprNode_undefined; ;
3908 { yyval.expr = yyvsp[0].expr; ;
3911 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
3914 { yyval.expr = exprNode_makeError (); ;
3917 { yyval.expr = exprNode_makeError (); ;
3921 setProcessingVars (yyvsp[-3].qtyp);
3922 processNamedDecl (yyvsp[-1].ntyp);
3927 unsetProcessingVars ();
3928 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
3929 DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
3933 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
3936 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
3937 unsetProcessingVars ();
3942 processNamedDecl (yyvsp[-1].ntyp);
3943 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
3947 { processNamedDecl (yyvsp[-2].ntyp); ;
3950 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
3953 { setProcessingTypedef (yyvsp[0].qtyp); ;
3956 { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
3959 { /* in the ANSI grammar, semantics unclear */ ;
3962 { /* in the ANSI grammar, semantics unclear */ ;
3965 { g_expectingTypeName = TRUE; ;
3968 { g_expectingTypeName = TRUE; context_pushLoc (); ;
3971 { yyval.exprlist = yyvsp[-1].exprlist; ;
3974 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3977 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
3980 { yyval.expr = exprNode_makeError (); ;
3983 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
3986 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); ;
3989 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); ;
3992 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3995 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
3998 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4001 { yyval.typequal = qual_createInline (); ;
4004 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4007 { yyval.typequal = qual_createAuto (); ;
4010 { yyval.typequal = qual_createRegister (); ;
4013 { yyval.stateclause = yyvsp[-1].stateclause; ;
4017 context_setProtectVars ();
4019 sRef_setGlobalScopeSafe ();
4025 sRef_clearGlobalScopeSafe ();
4026 context_releaseVars ();
4027 yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4031 { yyval.funcclause = yyvsp[-1].funcclause; ;
4034 { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
4038 context_exitFunctionHeader ();
4039 context_setProtectVars ();
4041 sRef_setGlobalScopeSafe ();
4047 sRef_clearGlobalScopeSafe ();
4048 context_releaseVars ();
4049 yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4054 context_setProtectVars ();
4056 sRef_setGlobalScopeSafe ();
4061 context_exitFunctionHeader ();
4063 sRef_clearGlobalScopeSafe ();
4064 context_releaseVars ();
4065 DPRINTF (("done optGlobBufConstraintsAux\n"));
4067 if (lltok_isEnsures (yyvsp[-4].tok))
4069 yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4071 else if (lltok_isRequires (yyvsp[-4].tok))
4073 yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4080 DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4084 { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
4087 { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
4090 { yyval.typequal = qual_createExits (); ;
4093 { yyval.typequal = qual_createMayExit (); ;
4096 { yyval.typequal = qual_createTrueExit (); ;
4099 { yyval.typequal = qual_createFalseExit (); ;
4102 { yyval.typequal = qual_createNeverExit (); ;
4105 { yyval.typequal = qual_createChecked (); ;
4108 { yyval.typequal = qual_createCheckMod (); ;
4111 { yyval.typequal = qual_createUnchecked (); ;
4114 { yyval.typequal = qual_createCheckedStrict (); ;
4117 { yyval.typequal = qual_createOwned (); ;
4120 { yyval.typequal = qual_createDependent (); ;
4123 { yyval.typequal = qual_createYield (); ;
4126 { yyval.typequal = qual_createTemp (); ;
4129 { yyval.typequal = qual_createOnly (); ;
4132 { yyval.typequal = qual_createKeep (); ;
4135 { yyval.typequal = qual_createKept (); ;
4138 { yyval.typequal = qual_createShared (); ;
4141 { yyval.typequal = qual_createUnique (); ;
4144 { yyval.typequal = qual_createNull (); ;
4147 { yyval.typequal = qual_createIsNull (); ;
4150 { yyval.typequal = qual_createRelNull (); ;
4153 { yyval.typequal = qual_createNotNull (); ;
4156 { yyval.typequal = qual_createExposed (); ;
4159 { yyval.typequal = qual_createObserver (); ;
4162 { yyval.typequal = qual_createNullTerminated (); ;
4165 { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
4168 { yyval.typequal = qual_createReturned (); ;
4171 { yyval.typequal = qual_createSef (); ;
4174 { yyval.typequal = qual_createUnused (); ;
4177 { yyval.typequal = qual_createExternal (); ;
4180 { yyval.typequal = qual_createTrueNull (); ;
4183 { yyval.typequal = qual_createFalseNull (); ;
4186 { yyval.typequal = qual_createAbstract (); ;
4189 { yyval.typequal = qual_createConcrete (); ;
4192 { yyval.typequal = qual_createMutable (); ;
4195 { yyval.typequal = qual_createImmutable (); ;
4198 { yyval.typequal = qual_createRefCounted (); ;
4201 { yyval.typequal = qual_createRefs (); ;
4204 { yyval.typequal = qual_createKillRef (); ;
4207 { yyval.typequal = qual_createRelDef (); ;
4210 { yyval.typequal = qual_createNewRef (); ;
4213 { yyval.typequal = qual_createTempRef (); ;
4216 { yyval.typequal = qual_createShort (); ;
4219 { yyval.typequal = qual_createLong (); ;
4222 { yyval.typequal = qual_createSigned (); ;
4225 { yyval.typequal = qual_createUnsigned (); ;
4228 { yyval.typequal = qual_createOut (); ;
4231 { yyval.typequal = qual_createIn (); ;
4234 { yyval.typequal = qual_createPartial (); ;
4237 { yyval.typequal = qual_createSpecial (); ;
4240 { yyval.typequal = qual_createConst (); ;
4243 { yyval.typequal = qual_createVolatile (); ;
4246 { yyval.typequal = yyvsp[-1].typequal; ;
4249 { yyval.typequal = yyvsp[-1].typequal; ;
4252 { yyval.typequal = yyvsp[-1].typequal; ;
4255 { yyval.typequal = yyvsp[-1].typequal; ;
4258 { yyval.typequal = yyvsp[-1].typequal; ;
4261 { yyval.typequal = yyvsp[-1].typequal; ;
4264 { yyval.typequal = yyvsp[-1].typequal; ;
4267 { yyval.typequal = yyvsp[-1].typequal; ;
4270 { yyval.typequal = yyvsp[-1].typequal; ;
4273 { yyval.ctyp = ctype_unknown; ;
4276 { yyval.ctyp = ctype_anyintegral; ;
4279 { yyval.ctyp = ctype_unsignedintegral; ;
4282 { yyval.ctyp = ctype_signedintegral; ;
4285 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4288 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4291 { yyval.qtyp = yyvsp[0].qtyp; ;
4294 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4297 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4300 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4303 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4306 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4309 { yyval.qtyp = qtype_unknown (); ;
4312 { yyval.qtyp = yyvsp[0].qtyp; ;
4315 { yyval.conL = constraintList_undefined; ;
4318 { sRef_setGlobalScopeSafe (); ;
4321 { sRef_clearGlobalScopeSafe (); ;
4324 { {ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); /* setGlobalStructInfo(ct, $12);*/ yyval.ctyp = ct;} ;
4327 { sRef_setGlobalScopeSafe (); ;
4330 { sRef_clearGlobalScopeSafe (); ;
4333 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4336 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4339 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4342 { sRef_setGlobalScopeSafe (); ;
4345 { sRef_clearGlobalScopeSafe (); ;
4348 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4351 { sRef_setGlobalScopeSafe (); ;
4354 { sRef_clearGlobalScopeSafe (); ;
4357 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4360 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4363 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4366 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4369 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4372 { g_expectingTypeName = FALSE; ;
4375 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4378 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4381 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4384 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4387 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4390 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4393 { yyval.ntyp = yyvsp[0].ntyp; ;
4396 { yyval.ntyp = idDecl_undefined; ;
4399 { yyval.ntyp = yyvsp[-3].ntyp; ;
4402 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4405 { context_pushLoc (); ;
4408 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4411 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4414 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4417 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4420 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4421 usymtab_supGlobalEntry (ue);
4422 yyval.cname = yyvsp[0].cname;
4426 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4427 usymtab_supGlobalEntry (ue);
4428 yyval.cname = yyvsp[-3].cname;
4432 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4436 qtype qt = qtype_unknown ();
4438 qtype_adjustPointers (yyvsp[-1].count, qt);
4439 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4443 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4446 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4449 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4452 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4455 { /* ignored for now */; ;
4467 { yyval.count = 1; ;
4470 { yyval.count = 1; ;
4473 { yyval.count = 1 + yyvsp[0].count; ;
4476 { yyval.count = 1 + yyvsp[0].count; ;
4479 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4482 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4485 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4488 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4491 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4497 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4503 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4507 if (isFlipOldStyle ())
4509 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4515 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4520 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4524 llparseerror (message ("Inconsistent function parameter syntax: %q",
4525 idDecl_unparse (tparam)));
4529 yyval.oentry = makeCurrentParam (tparam);
4530 idDecl_free (tparam);
4534 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4537 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4540 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4543 { yyval.ctyp = ctype_unknown; ;
4546 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4549 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4552 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4555 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4558 { yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4561 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4564 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4567 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4570 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4573 { yyval.expr = yyvsp[0].expr; ;
4576 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4579 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4582 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4585 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4588 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4591 { context_setProtectVars (); ;
4594 { context_sizeofReleaseVars (); ;
4597 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4598 context_enterForClause (yyvsp[-5].expr); ;
4601 { setProcessingIterVars (yyvsp[-2].entry); ;
4604 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
4607 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4610 { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
4613 { yyval.expr = yyvsp[-1].expr; ;
4616 { yyval.expr = exprNode_makeError (); ;
4619 { exprNode_checkIfPred (yyvsp[0].expr); ;
4622 { /* don't: context_exitTrueClause ($1, $2); */
4623 yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr);
4627 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4630 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4633 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4636 { yyval.expr = exprNode_makeError (); ;
4639 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4642 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4651 { context_enterCaseClause (yyvsp[0].expr); ;
4654 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4657 { context_enterCaseClause (yyvsp[0].expr); ;
4660 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4663 { context_enterCaseClause (exprNode_undefined); ;
4666 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4669 { context_enterCaseClause (exprNode_undefined); ;
4672 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4675 { yyval.expr = yyvsp[-1].expr; ;
4678 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4681 { yyval.expr = yyvsp[-1].expr; ;
4684 { context_enterInnerContext (); ;
4687 { context_exitInnerPlain (); ;
4690 { context_enterStructInnerContext (); ;
4693 { context_exitStructInnerContext (); ;
4696 { context_exitInnerSafe (); ;
4699 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4702 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4705 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4708 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4711 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4714 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4717 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4720 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4721 lltok_getLoc (yyvsp[-1].tok)));
4725 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4728 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4731 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4734 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4737 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4740 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4743 { yyval.expr = yyvsp[0].expr; ;
4746 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4749 { yyval.expr = yyvsp[0].expr; ;
4752 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4755 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4758 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4761 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4764 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4767 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
4771 exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr);
4772 exprNode_checkIfPred (yyvsp[-1].expr);
4773 yyval.expr = yyvsp[-1].expr;
4778 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4779 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4783 { context_enterFalseClause (yyvsp[-2].expr); ;
4787 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4788 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4792 { context_enterSwitch (yyvsp[0].expr); ;
4795 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4798 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4801 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4804 { context_enterIterClause (); ;
4807 { setProcessingIterVars (yyvsp[-3].entry); ;
4811 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
4816 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4819 { nextIterParam (); ;
4822 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4825 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4828 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4831 { uentry ue = coerceIterId (yyvsp[0].cname);
4833 if (uentry_isValid (ue))
4835 yyval.expr = exprNode_iterId (ue);
4839 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
4844 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
4847 { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
4850 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4853 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4856 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4859 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
4862 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4865 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4868 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4871 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4874 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4877 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4880 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4883 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4886 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4889 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4892 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4895 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4898 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4901 { yyval.expr = yyvsp[0].expr; ;
4904 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
4907 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4910 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4913 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4916 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4919 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4922 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4925 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4928 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4931 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4934 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4937 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4940 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4943 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4946 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4949 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4952 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4955 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4958 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4961 { context_enterTrueClause (yyvsp[-1].expr); ;
4964 { context_enterFalseClause (yyvsp[-4].expr); ;
4967 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4970 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4973 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4976 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4979 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4982 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4985 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4988 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4991 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4994 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4997 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5000 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5003 { yyval.entry = yyvsp[0].entry; ;
5006 { yyval.entry = uentry_undefined; ;
5009 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5012 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5015 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5018 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5021 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5024 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5027 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5030 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5033 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5036 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5039 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5042 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5045 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5048 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5051 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5054 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5057 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5060 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5066 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5069 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5072 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5075 { yyval.cname = yyvsp[0].cname; ;
5078 { yyval.ctyp = ctype_unknown; ;
5081 /* the action file gets copied in in place of this dollarsign */
5093 short *ssp1 = yyss - 1;
5094 fprintf (stderr, "state stack now");
5095 while (ssp1 != yyssp)
5096 fprintf (stderr, " %d", *++ssp1);
5097 fprintf (stderr, "\n");
5107 yylsp->first_line = yylloc.first_line;
5108 yylsp->first_column = yylloc.first_column;
5109 yylsp->last_line = (yylsp-1)->last_line;
5110 yylsp->last_column = (yylsp-1)->last_column;
5115 yylsp->last_line = (yylsp+yylen-1)->last_line;
5116 yylsp->last_column = (yylsp+yylen-1)->last_column;
5120 /* Now "shift" the result of the reduction.
5121 Determine what state that goes to,
5122 based on the state we popped back to
5123 and the rule number reduced by. */
5127 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5128 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5129 yystate = yytable[yystate];
5131 yystate = yydefgoto[yyn - YYNTBASE];
5135 yyerrlab: /* here on detecting error */
5138 /* If not already recovering from an error, report this error. */
5142 #ifdef YYERROR_VERBOSE
5143 yyn = yypact[yystate];
5145 if (yyn > YYFLAG && yyn < YYLAST)
5152 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5153 for (x = (yyn < 0 ? -yyn : 0);
5154 x < (sizeof(yytname) / sizeof(char *)); x++)
5155 if (yycheck[x + yyn] == x)
5156 size += strlen(yytname[x]) + 15, count++;
5157 msg = (char *) malloc(size + 15);
5160 strcpy(msg, "parse error");
5165 for (x = (yyn < 0 ? -yyn : 0);
5166 x < (sizeof(yytname) / sizeof(char *)); x++)
5167 if (yycheck[x + yyn] == x)
5169 strcat(msg, count == 0 ? ", expecting `" : " or `");
5170 strcat(msg, yytname[x]);
5179 yyerror ("parse error; also virtual memory exceeded");
5182 #endif /* YYERROR_VERBOSE */
5183 yyerror("parse error");
5187 yyerrlab1: /* here on error raised explicitly by an action */
5189 if (yyerrstatus == 3)
5191 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5193 /* return failure if at end of input */
5194 if (yychar == YYEOF)
5199 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5205 /* Else will try to reuse lookahead token
5206 after shifting the error token. */
5208 yyerrstatus = 3; /* Each real token shifted decrements this */
5212 yyerrdefault: /* current state does not do anything special for the error token. */
5215 /* This is wrong; only states that explicitly want error tokens
5216 should shift them. */
5217 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5218 if (yyn) goto yydefault;
5221 yyerrpop: /* pop the current state because it cannot handle the error token */
5223 if (yyssp == yyss) YYABORT;
5233 short *ssp1 = yyss - 1;
5234 fprintf (stderr, "Error: state stack now");
5235 while (ssp1 != yyssp)
5236 fprintf (stderr, " %d", *++ssp1);
5237 fprintf (stderr, "\n");
5243 yyn = yypact[yystate];
5248 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5267 fprintf(stderr, "Shifting error token, ");
5279 /* YYACCEPT comes here. */
5291 /* YYABORT comes here. */
5304 /*@-redecl@*/ /*@-namechecks@*/
5305 extern char *yytext;
5306 /*@=redecl@*/ /*@=namechecks@*/
5308 # include "bison.reset"
5310 void yyerror (/*@unused@*/ char *s)
5312 static bool givehint = FALSE;
5314 if (context_inIterDef ())
5316 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5317 context_inFunctionName ()));
5319 else if (context_inIterEnd ())
5321 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5322 context_inFunctionName ()));
5324 else if (context_inMacro ())
5326 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5327 context_inFunctionName ()));
5329 if (context_inUnknownMacro ())
5333 llhint (cstring_makeLiteral
5334 ("Precede macro definition with /*@notfunction@*/ "
5335 "to suppress checking and force expansion"));
5341 context_exitAllClausesQuiet ();
5345 llparseerror (cstring_undefined);
5361 ** Resets all flags in bison.head
5383 /*@=evalorderuncon@*/
5392 /*@=elseifcomplete@*/
5396 /*@=readonlytrans@*/
5399 /*@=systemunrecog@*/
5400 /*@=dependenttrans@*/
5401 /*@=unqualifiedtrans@*/
5405 /*drl added 11/27/2001*/