2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
49 /*drl added 11/27/2001*/
51 /* < end of bison.head > */
54 /* A Bison parser, made from cgrammar.y
55 by GNU Bison version 1.28 */
57 #define YYBISON 1 /* Identify Bison output. */
61 #define CTOK_ELIPSIS 259
85 #define TAMPERSAND 283
103 #define COFFSETOF 301
114 #define MUL_ASSIGN 312
115 #define DIV_ASSIGN 313
116 #define MOD_ASSIGN 314
117 #define ADD_ASSIGN 315
118 #define SUB_ASSIGN 316
119 #define LEFT_ASSIGN 317
120 #define RIGHT_ASSIGN 318
121 #define AND_ASSIGN 319
122 #define XOR_ASSIGN 320
123 #define OR_ASSIGN 321
131 #define QMODIFIES 329
133 #define QCONSTANT 331
134 #define QFUNCTION 332
138 #define QALLOCATES 336
140 #define QRELEASES 338
141 #define QPRECLAUSE 339
142 #define QPOSTCLAUSE 340
143 #define QINVARIANT 341
147 #define QENDMACRO 345
149 #define LLMACROITER 347
150 #define LLMACROEND 348
151 #define TENDMACRO 349
152 #define QSWITCHBREAK 350
153 #define QLOOPBREAK 351
154 #define QINNERBREAK 352
155 #define QSAFEBREAK 353
156 #define QINNERCONTINUE 354
157 #define QFALLTHROUGH 355
158 #define QLINTNOTREACHED 356
159 #define QLINTFALLTHROUGH 357
160 #define QLINTFALLTHRU 358
161 #define QARGSUSED 359
162 #define QPRINTFLIKE 360
163 #define QLINTPRINTFLIKE 361
164 #define QSCANFLIKE 362
165 #define QMESSAGELIKE 363
166 #define QNOTREACHED 364
168 #define QRESTRICT 366
169 #define QVOLATILE 367
171 #define QEXTENSION 369
175 #define QREGISTER 373
185 #define QUNCHECKED 383
186 #define QCHECKEDSTRICT 384
187 #define QCHECKMOD 385
193 #define QDEPENDENT 391
194 #define QRETURNED 392
197 #define QOBSERVER 395
201 #define QNEVEREXIT 399
202 #define QTRUEEXIT 400
203 #define QFALSEEXIT 401
206 #define QUNSIGNED 404
212 #define QABSTRACT 410
213 #define QCONCRETE 411
215 #define QIMMUTABLE 413
216 #define QTRUENULL 414
217 #define QFALSENULL 415
218 #define QEXTERNAL 416
219 #define QREFCOUNTED 417
232 #define QINTEGRALTYPE 430
233 #define QUNSIGNEDINTEGRALTYPE 431
234 #define QSIGNEDINTEGRALTYPE 432
235 #define QNULLTERMINATED 433
236 #define QSETBUFFERSIZE 434
237 #define QSETSTRINGLENGTH 435
240 #define QTESTINRANGE 438
242 #define IDENTIFIER 440
243 #define NEW_IDENTIFIER 441
244 #define TYPE_NAME_OR_ID 442
245 #define CANNOTATION 443
246 #define CCONSTANT 444
247 #define ITER_NAME 445
248 #define ITER_ENDNAME 446
249 #define TYPE_NAME 447
250 #define METASTATE_NAME 448
257 ** Yacc/Bison grammar for extended ANSI C used by Splint.
259 ** original grammar by Nate Osgood ---
260 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
262 ** changes for Splint --- handle typedef names correctly
263 ** fix struct/union parsing bug (empty struct is accepted)
264 ** add productions to handle macros --- require
265 ** error correction --- main source of conflicts in grammar.
266 ** need to process initializations sequentially, L->R
268 ** production names are cryptic, so more productions fit on one line
270 ** conflicts: 87 shift/reduce, 18 reduce/reduce
271 ** most of these are due to handling macros
272 ** a few are due to handling type expressions
278 extern void yyerror (char *);
280 # include "splintMacros.nf"
282 # include "cscanner.h"
283 # include "cgrammar.h"
284 # include "exprChecks.h"
289 # define SHOWCSYM FALSE
292 ** This is necessary, or else when the bison-generated code #include's malloc.h,
293 ** there will be a parse error.
295 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
296 ** in bison-generated files under Win32.
313 /*@dependent@*/ sRef sr;
316 /*@only@*/ functionClauseList funcclauselist;
317 /*@only@*/ functionClause funcclause;
318 /*@only@*/ flagSpec flagspec;
319 /*@only@*/ globalsClause globsclause;
320 /*@only@*/ modifiesClause modsclause;
321 /*@only@*/ warnClause warnclause;
322 /*@only@*/ stateClause stateclause;
323 /*@only@*/ pointers pointers;
324 /*@only@*/ functionConstraint fcnconstraint;
326 /*@only@*/ metaStateConstraint msconstraint;
327 /*@only@*/ metaStateSpecifier msspec;
328 /*@only@*/ metaStateExpression msexpr;
329 /*@observer@*/ metaStateInfo msinfo;
331 /*@only@*/ sRefList srlist;
332 /*@only@*/ globSet globset;
333 /*@only@*/ qtype qtyp;
334 /*@only@*/ cstring cname;
335 /*@observer@*/ annotationInfo annotation;
336 /*@only@*/ idDecl ntyp;
337 /*@only@*/ idDeclList ntyplist;
338 /*@only@*/ uentryList flist;
339 /*@owned@*/ uentryList entrylist;
340 /*@observer@*/ /*@dependent@*/ uentry entry;
341 /*@only@*/ uentry oentry;
342 /*@only@*/ exprNode expr;
343 /*@only@*/ enumNameList enumnamelist;
344 /*@only@*/ exprNodeList exprlist;
345 /*@only@*/ sRefSet srset;
346 /*@only@*/ cstringList cstringlist;
371 #define YYFLAG -32768
374 #define YYTRANSLATE(x) ((unsigned)(x) <= 448 ? yytranslate[x] : 460)
376 static const short yytranslate[] = { 0,
377 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
378 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
379 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
380 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
381 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
382 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
383 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
384 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
385 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
386 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
387 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
388 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
389 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
390 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
391 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
392 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
393 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
394 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
395 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
396 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
397 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
398 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
399 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
400 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
401 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
402 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
403 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
404 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
405 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
406 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
407 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
408 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
409 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
410 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
411 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
412 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
413 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
414 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
415 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
416 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
417 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
418 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
419 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
420 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
421 187, 188, 189, 190, 191, 192, 193, 194
425 static const short yyprhs[] = { 0,
426 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
427 21, 23, 25, 34, 46, 47, 53, 55, 59, 61,
428 64, 66, 73, 77, 84, 85, 92, 93, 101, 103,
429 110, 114, 121, 122, 129, 130, 138, 139, 140, 151,
430 155, 159, 163, 166, 168, 172, 173, 178, 179, 184,
431 186, 190, 192, 194, 196, 200, 202, 206, 208, 210,
432 212, 214, 216, 218, 223, 229, 231, 233, 235, 237,
433 241, 246, 249, 253, 257, 261, 263, 265, 267, 268,
434 271, 272, 275, 277, 279, 281, 283, 285, 287, 289,
435 291, 293, 295, 297, 299, 302, 303, 308, 310, 313,
436 314, 318, 320, 324, 326, 328, 329, 332, 336, 339,
437 341, 345, 348, 349, 352, 354, 356, 358, 360, 362,
438 364, 366, 368, 370, 372, 374, 376, 378, 380, 382,
439 384, 388, 389, 393, 394, 395, 400, 403, 406, 408,
440 410, 412, 416, 421, 424, 428, 432, 436, 438, 440,
441 442, 446, 448, 450, 454, 459, 462, 466, 470, 474,
442 475, 477, 479, 483, 485, 487, 489, 493, 495, 497,
443 498, 503, 505, 510, 514, 519, 526, 532, 538, 541,
444 544, 552, 554, 558, 560, 563, 566, 569, 572, 575,
445 578, 581, 584, 586, 588, 592, 597, 599, 609, 610,
446 614, 619, 622, 627, 630, 632, 637, 639, 643, 647,
447 651, 653, 657, 661, 663, 667, 671, 673, 677, 681,
448 685, 689, 691, 695, 699, 701, 705, 707, 711, 713,
449 717, 719, 720, 725, 727, 728, 733, 735, 736, 737,
450 745, 747, 751, 755, 759, 763, 767, 771, 775, 779,
451 783, 787, 791, 793, 797, 798, 800, 802, 804, 806,
452 808, 812, 813, 823, 824, 836, 839, 840, 847, 848,
453 857, 862, 867, 868, 869, 872, 874, 879, 880, 885,
454 887, 891, 896, 899, 902, 905, 907, 910, 914, 917,
455 919, 923, 925, 927, 929, 931, 933, 936, 937, 944,
456 947, 950, 951, 958, 959, 965, 967, 969, 971, 973,
457 975, 977, 979, 981, 983, 985, 987, 989, 991, 993,
458 995, 997, 999, 1001, 1003, 1005, 1007, 1009, 1011, 1013,
459 1015, 1017, 1019, 1021, 1023, 1025, 1027, 1029, 1031, 1033,
460 1035, 1037, 1039, 1041, 1043, 1045, 1047, 1049, 1051, 1053,
461 1055, 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1072, 1075,
462 1078, 1081, 1084, 1087, 1090, 1093, 1096, 1099, 1102, 1105,
463 1108, 1111, 1114, 1117, 1120, 1123, 1126, 1129, 1132, 1135,
464 1138, 1141, 1144, 1147, 1151, 1153, 1158, 1160, 1164, 1167,
465 1170, 1173, 1174, 1176, 1177, 1178, 1179, 1192, 1193, 1194,
466 1206, 1213, 1220, 1221, 1222, 1233, 1234, 1235, 1246, 1252,
467 1258, 1263, 1268, 1269, 1271, 1273, 1276, 1282, 1286, 1289,
468 1294, 1296, 1300, 1305, 1312, 1313, 1322, 1327, 1329, 1333,
469 1336, 1338, 1343, 1345, 1347, 1350, 1353, 1355, 1358, 1360,
470 1363, 1365, 1367, 1369, 1371, 1374, 1376, 1379, 1382, 1386,
471 1388, 1392, 1394, 1398, 1400, 1402, 1406, 1407, 1410, 1411,
472 1416, 1421, 1423, 1425, 1428, 1430, 1432, 1435, 1436, 1438,
473 1444, 1447, 1451, 1455, 1460, 1464, 1469, 1474, 1480, 1482,
474 1484, 1486, 1488, 1490, 1492, 1494, 1496, 1498, 1500, 1502,
475 1504, 1507, 1510, 1518, 1525, 1528, 1529, 1530, 1541, 1542,
476 1549, 1551, 1553, 1555, 1557, 1560, 1562, 1564, 1566, 1568,
477 1570, 1572, 1574, 1578, 1580, 1581, 1585, 1588, 1591, 1593,
478 1595, 1597, 1599, 1601, 1603, 1605, 1607, 1609, 1611, 1615,
479 1617, 1619, 1622, 1625, 1626, 1629, 1630, 1635, 1636, 1643,
480 1644, 1648, 1649, 1655, 1659, 1662, 1666, 1667, 1668, 1669,
481 1670, 1671, 1673, 1676, 1679, 1683, 1686, 1690, 1694, 1699,
482 1702, 1705, 1709, 1713, 1718, 1720, 1723, 1725, 1728, 1730,
483 1734, 1736, 1741, 1743, 1746, 1748, 1751, 1753, 1756, 1758,
484 1763, 1766, 1767, 1773, 1774, 1781, 1786, 1791, 1792, 1793,
485 1804, 1806, 1807, 1812, 1814, 1816, 1818, 1820, 1822, 1825,
486 1827, 1831, 1833, 1838, 1842, 1847, 1854, 1860, 1866, 1869,
487 1872, 1874, 1877, 1880, 1883, 1886, 1889, 1892, 1895, 1898,
488 1900, 1902, 1907, 1909, 1913, 1917, 1921, 1923, 1927, 1931,
489 1933, 1937, 1941, 1943, 1947, 1951, 1955, 1959, 1961, 1965,
490 1969, 1971, 1975, 1977, 1981, 1983, 1987, 1989, 1993, 1995,
491 1999, 2001, 2002, 2003, 2011, 2013, 2017, 2021, 2025, 2029,
492 2033, 2037, 2041, 2045, 2049, 2053, 2057, 2059, 2060, 2062,
493 2065, 2073, 2076, 2079, 2087, 2094, 2097, 2101, 2104, 2108,
494 2111, 2115, 2119, 2123, 2127, 2130, 2134, 2135, 2137, 2138,
495 2140, 2142, 2144, 2146, 2148, 2150, 2152, 2154, 2156, 2161
498 static const short yyrhs[] = { -1,
499 196, 0, 197, 0, 196, 197, 0, 258, 455, 0,
500 198, 0, 199, 0, 209, 0, 212, 0, 296, 0,
501 18, 0, 1, 0, 77, 337, 351, 361, 351, 455,
502 304, 91, 0, 77, 337, 351, 361, 351, 23, 304,
503 309, 308, 455, 91, 0, 0, 78, 200, 201, 455,
504 91, 0, 202, 0, 337, 351, 202, 0, 206, 0,
505 365, 206, 0, 458, 0, 304, 24, 351, 361, 304,
506 25, 0, 203, 26, 27, 0, 203, 26, 304, 295,
507 27, 351, 0, 0, 203, 305, 24, 25, 204, 230,
508 0, 0, 203, 305, 24, 362, 25, 205, 230, 0,
509 458, 0, 304, 24, 351, 202, 304, 25, 0, 206,
510 26, 27, 0, 206, 26, 304, 295, 27, 351, 0,
511 0, 206, 305, 24, 25, 207, 231, 0, 0, 206,
512 305, 24, 362, 25, 208, 231, 0, 0, 0, 79,
513 458, 24, 362, 25, 210, 231, 211, 455, 91, 0,
514 92, 392, 95, 0, 93, 378, 95, 0, 94, 379,
515 95, 0, 92, 95, 0, 253, 0, 215, 23, 218,
516 0, 0, 227, 216, 22, 219, 0, 0, 5, 217,
517 22, 219, 0, 215, 0, 215, 40, 218, 0, 194,
518 0, 185, 0, 56, 0, 222, 220, 221, 0, 222,
519 0, 225, 224, 225, 0, 182, 0, 183, 0, 53,
520 0, 52, 0, 54, 0, 226, 0, 228, 24, 225,
521 25, 0, 24, 225, 229, 225, 25, 0, 227, 0,
522 190, 0, 457, 0, 187, 0, 227, 26, 27, 0,
523 227, 26, 190, 27, 0, 34, 227, 0, 24, 227,
524 25, 0, 227, 28, 458, 0, 227, 45, 458, 0,
525 223, 0, 33, 0, 32, 0, 0, 232, 230, 0,
526 0, 233, 231, 0, 234, 0, 238, 0, 237, 0,
527 315, 0, 318, 0, 244, 0, 235, 0, 239, 0,
528 237, 0, 316, 0, 320, 0, 245, 0, 235, 91,
529 0, 0, 74, 236, 246, 455, 0, 76, 0, 239,
530 91, 0, 0, 75, 240, 259, 0, 242, 0, 242,
531 40, 241, 0, 187, 0, 244, 0, 0, 245, 91,
532 0, 73, 241, 431, 0, 73, 241, 0, 247, 0,
533 246, 21, 247, 0, 248, 249, 0, 0, 250, 248,
534 0, 457, 0, 187, 0, 296, 0, 89, 0, 90,
535 0, 120, 0, 121, 0, 134, 0, 80, 0, 81,
536 0, 82, 0, 83, 0, 84, 0, 85, 0, 86,
537 0, 361, 0, 337, 351, 361, 0, 0, 19, 255,
538 409, 0, 0, 0, 256, 413, 257, 402, 0, 213,
539 254, 0, 262, 455, 0, 455, 0, 457, 0, 187,
540 0, 260, 26, 27, 0, 260, 26, 261, 27, 0,
541 34, 260, 0, 24, 260, 25, 0, 260, 28, 458,
542 0, 260, 45, 458, 0, 260, 0, 431, 0, 260,
543 0, 262, 21, 260, 0, 457, 0, 187, 0, 263,
544 26, 27, 0, 263, 26, 261, 27, 0, 34, 263,
545 0, 24, 263, 25, 0, 263, 28, 458, 0, 263,
546 45, 458, 0, 0, 265, 0, 263, 0, 265, 21,
547 263, 0, 457, 0, 187, 0, 431, 0, 24, 293,
548 25, 0, 188, 0, 115, 0, 0, 24, 267, 402,
549 25, 0, 266, 0, 268, 26, 293, 27, 0, 268,
550 24, 25, 0, 268, 24, 269, 25, 0, 71, 24,
551 292, 21, 373, 25, 0, 268, 351, 28, 458, 304,
552 0, 268, 351, 45, 458, 304, 0, 268, 48, 0,
553 268, 49, 0, 24, 373, 25, 19, 414, 456, 20,
554 0, 292, 0, 269, 21, 292, 0, 268, 0, 48,
555 270, 0, 49, 270, 0, 29, 276, 0, 34, 276,
556 0, 33, 276, 0, 32, 276, 0, 31, 276, 0,
557 30, 276, 0, 273, 0, 272, 0, 271, 28, 458,
558 0, 271, 26, 293, 27, 0, 458, 0, 47, 304,
559 24, 373, 351, 21, 271, 25, 304, 0, 0, 304,
560 274, 275, 0, 42, 24, 373, 25, 0, 42, 270,
561 0, 43, 24, 373, 25, 0, 43, 270, 0, 270,
562 0, 24, 373, 25, 276, 0, 276, 0, 277, 34,
563 276, 0, 277, 35, 276, 0, 277, 36, 276, 0,
564 277, 0, 278, 33, 277, 0, 278, 32, 277, 0,
565 278, 0, 279, 50, 278, 0, 279, 51, 278, 0,
566 279, 0, 280, 37, 279, 0, 280, 38, 279, 0,
567 280, 52, 279, 0, 280, 53, 279, 0, 280, 0,
568 281, 54, 280, 0, 281, 55, 280, 0, 281, 0,
569 282, 29, 281, 0, 282, 0, 283, 39, 282, 0,
570 283, 0, 284, 40, 283, 0, 284, 0, 0, 285,
571 56, 286, 284, 0, 285, 0, 0, 287, 57, 288,
572 285, 0, 287, 0, 0, 0, 287, 41, 290, 293,
573 22, 291, 289, 0, 289, 0, 270, 23, 292, 0,
574 270, 58, 292, 0, 270, 59, 292, 0, 270, 60,
575 292, 0, 270, 61, 292, 0, 270, 62, 292, 0,
576 270, 63, 292, 0, 270, 64, 292, 0, 270, 65,
577 292, 0, 270, 66, 292, 0, 270, 67, 292, 0,
578 292, 0, 293, 21, 292, 0, 0, 293, 0, 289,
579 0, 297, 0, 72, 0, 302, 0, 337, 304, 18,
580 0, 0, 337, 351, 361, 351, 298, 304, 308, 18,
581 304, 0, 0, 337, 351, 361, 351, 23, 299, 304,
582 309, 308, 18, 304, 0, 361, 351, 0, 0, 361,
583 351, 23, 301, 304, 309, 0, 0, 46, 337, 303,
584 351, 306, 304, 243, 18, 0, 46, 337, 304, 18,
585 0, 46, 306, 304, 18, 0, 0, 0, 307, 304,
586 0, 300, 0, 306, 21, 351, 300, 0, 0, 308,
587 21, 351, 300, 0, 292, 0, 19, 313, 20, 0,
588 19, 313, 21, 20, 0, 310, 309, 0, 311, 23,
589 0, 458, 22, 0, 312, 0, 311, 312, 0, 26,
590 295, 27, 0, 28, 458, 0, 309, 0, 313, 21,
591 309, 0, 116, 0, 114, 0, 117, 0, 118, 0,
592 119, 0, 316, 91, 0, 0, 251, 351, 317, 265,
593 455, 304, 0, 320, 91, 0, 252, 351, 0, 0,
594 319, 326, 321, 264, 455, 304, 0, 0, 319, 322,
595 323, 455, 304, 0, 221, 0, 214, 0, 143, 0,
596 144, 0, 146, 0, 147, 0, 145, 0, 128, 0,
597 131, 0, 129, 0, 130, 0, 136, 0, 137, 0,
598 122, 0, 124, 0, 123, 0, 132, 0, 133, 0,
599 125, 0, 127, 0, 140, 0, 142, 0, 155, 0,
600 154, 0, 139, 0, 141, 0, 179, 0, 189, 0,
601 138, 0, 153, 0, 152, 0, 162, 0, 160, 0,
602 161, 0, 156, 0, 157, 0, 158, 0, 159, 0,
603 163, 0, 164, 0, 167, 0, 168, 0, 165, 0,
604 166, 0, 151, 0, 148, 0, 149, 0, 150, 0,
605 120, 0, 121, 0, 134, 0, 135, 0, 111, 304,
606 0, 113, 304, 0, 112, 304, 0, 333, 304, 0,
607 326, 304, 0, 324, 304, 0, 327, 304, 0, 325,
608 304, 0, 329, 304, 0, 328, 304, 0, 330, 304,
609 0, 331, 304, 0, 169, 351, 0, 171, 351, 0,
610 170, 351, 0, 172, 351, 0, 173, 351, 0, 174,
611 351, 0, 175, 351, 0, 176, 351, 0, 177, 351,
612 0, 178, 351, 0, 459, 351, 0, 342, 351, 0,
613 356, 351, 0, 332, 351, 0, 304, 337, 304, 0,
614 339, 0, 339, 88, 338, 91, 0, 373, 0, 373,
615 21, 338, 0, 314, 340, 0, 334, 340, 0, 335,
616 340, 0, 0, 337, 0, 0, 0, 0, 351, 68,
617 458, 304, 19, 343, 406, 352, 407, 344, 20, 341,
618 0, 0, 0, 351, 69, 458, 304, 19, 345, 406,
619 352, 407, 346, 20, 0, 351, 68, 458, 304, 19,
620 20, 0, 351, 69, 458, 304, 19, 20, 0, 0,
621 0, 351, 68, 304, 19, 347, 406, 352, 407, 348,
622 20, 0, 0, 0, 351, 69, 304, 19, 349, 406,
623 352, 407, 350, 20, 0, 351, 68, 304, 19, 20,
624 0, 351, 69, 304, 19, 20, 0, 351, 68, 458,
625 351, 0, 351, 69, 458, 351, 0, 0, 353, 0,
626 212, 0, 352, 353, 0, 337, 351, 354, 304, 18,
627 0, 337, 304, 18, 0, 355, 351, 0, 354, 21,
628 355, 351, 0, 361, 0, 22, 304, 295, 0, 361,
629 22, 304, 295, 0, 351, 70, 19, 358, 20, 304,
630 0, 0, 351, 70, 458, 19, 357, 358, 20, 304,
631 0, 351, 70, 458, 304, 0, 359, 0, 358, 21,
632 359, 0, 358, 21, 0, 458, 0, 458, 23, 304,
633 295, 0, 203, 0, 375, 0, 365, 193, 0, 365,
634 360, 0, 203, 0, 365, 203, 0, 368, 0, 351,
635 366, 0, 111, 0, 112, 0, 113, 0, 363, 0,
636 364, 363, 0, 34, 0, 34, 364, 0, 34, 365,
637 0, 34, 364, 365, 0, 367, 0, 367, 21, 5,
638 0, 458, 0, 367, 21, 458, 0, 5, 0, 369,
639 0, 369, 21, 5, 0, 0, 370, 372, 0, 0,
640 369, 21, 371, 372, 0, 304, 337, 360, 304, 0,
641 458, 0, 336, 0, 336, 374, 0, 365, 0, 376,
642 0, 365, 376, 0, 0, 376, 0, 304, 24, 351,
643 374, 25, 0, 26, 27, 0, 26, 295, 27, 0,
644 376, 26, 27, 0, 376, 26, 295, 27, 0, 304,
645 24, 25, 0, 304, 24, 368, 25, 0, 376, 304,
646 24, 25, 0, 376, 304, 24, 368, 25, 0, 394,
647 0, 396, 0, 399, 0, 402, 0, 417, 0, 420,
648 0, 452, 0, 425, 0, 454, 0, 380, 0, 378,
649 0, 387, 0, 380, 387, 0, 424, 380, 0, 451,
650 393, 11, 24, 293, 25, 18, 0, 451, 393, 11,
651 24, 293, 25, 0, 382, 387, 0, 0, 0, 13,
652 24, 294, 18, 294, 18, 383, 294, 384, 25, 0,
653 0, 191, 404, 24, 386, 428, 25, 0, 192, 0,
654 394, 0, 396, 0, 399, 0, 390, 413, 0, 390,
655 0, 391, 0, 417, 0, 388, 0, 381, 0, 385,
656 0, 454, 0, 24, 387, 25, 0, 1, 0, 0,
657 419, 389, 387, 0, 404, 19, 0, 408, 20, 0,
658 393, 0, 412, 0, 394, 0, 396, 0, 399, 0,
659 403, 0, 418, 0, 420, 0, 425, 0, 453, 0,
660 24, 393, 25, 0, 454, 0, 1, 0, 458, 22,
661 0, 110, 377, 0, 0, 101, 395, 0, 0, 6,
662 295, 397, 22, 0, 0, 101, 395, 6, 295, 398,
663 22, 0, 0, 7, 400, 22, 0, 0, 101, 395,
664 7, 401, 22, 0, 24, 402, 25, 0, 404, 410,
665 0, 404, 411, 405, 0, 0, 0, 0, 0, 0,
666 20, 0, 110, 20, 0, 416, 20, 0, 416, 110,
667 20, 0, 413, 20, 0, 413, 110, 20, 0, 413,
668 416, 20, 0, 413, 416, 110, 20, 0, 19, 409,
669 0, 19, 20, 0, 19, 412, 20, 0, 19, 413,
670 20, 0, 19, 413, 416, 20, 0, 393, 0, 412,
671 393, 0, 296, 0, 413, 296, 0, 415, 0, 414,
672 21, 415, 0, 292, 0, 19, 414, 456, 20, 0,
673 377, 0, 416, 377, 0, 18, 0, 293, 18, 0,
674 18, 0, 293, 18, 0, 293, 0, 8, 24, 293,
675 25, 0, 419, 377, 0, 0, 419, 377, 9, 421,
676 377, 0, 0, 10, 24, 293, 422, 25, 377, 0,
677 11, 24, 293, 25, 0, 11, 24, 293, 25, 0,
678 0, 0, 191, 426, 404, 24, 427, 428, 25, 402,
679 450, 405, 0, 430, 0, 0, 428, 429, 21, 430,
680 0, 449, 0, 457, 0, 188, 0, 187, 0, 190,
681 0, 431, 190, 0, 431, 0, 24, 293, 25, 0,
682 432, 0, 268, 26, 293, 27, 0, 268, 24, 25,
683 0, 268, 24, 269, 25, 0, 71, 24, 292, 21,
684 373, 25, 0, 268, 351, 28, 458, 304, 0, 268,
685 351, 45, 458, 304, 0, 268, 48, 0, 268, 49,
686 0, 433, 0, 48, 270, 0, 49, 270, 0, 29,
687 276, 0, 34, 276, 0, 33, 276, 0, 32, 276,
688 0, 31, 276, 0, 30, 276, 0, 273, 0, 434,
689 0, 24, 373, 25, 276, 0, 435, 0, 277, 34,
690 276, 0, 277, 35, 276, 0, 277, 36, 276, 0,
691 436, 0, 278, 33, 277, 0, 278, 32, 277, 0,
692 437, 0, 279, 50, 278, 0, 279, 51, 278, 0,
693 438, 0, 280, 37, 279, 0, 280, 38, 279, 0,
694 280, 52, 279, 0, 280, 53, 279, 0, 439, 0,
695 281, 54, 280, 0, 281, 55, 280, 0, 440, 0,
696 282, 29, 281, 0, 441, 0, 283, 39, 282, 0,
697 442, 0, 284, 40, 283, 0, 443, 0, 285, 56,
698 284, 0, 444, 0, 287, 57, 285, 0, 445, 0,
699 0, 0, 287, 41, 447, 293, 22, 448, 289, 0,
700 446, 0, 270, 23, 292, 0, 270, 58, 292, 0,
701 270, 59, 292, 0, 270, 60, 292, 0, 270, 61,
702 292, 0, 270, 62, 292, 0, 270, 63, 292, 0,
703 270, 64, 292, 0, 270, 65, 292, 0, 270, 66,
704 292, 0, 270, 67, 292, 0, 192, 0, 0, 12,
705 0, 423, 377, 0, 451, 377, 11, 24, 293, 25,
706 18, 0, 382, 377, 0, 423, 393, 0, 451, 393,
707 11, 24, 293, 25, 18, 0, 451, 393, 11, 24,
708 293, 25, 0, 382, 393, 0, 14, 458, 18, 0,
709 15, 18, 0, 100, 15, 18, 0, 16, 18, 0,
710 96, 16, 18, 0, 97, 16, 18, 0, 98, 16,
711 18, 0, 99, 16, 18, 0, 17, 18, 0, 17,
712 293, 18, 0, 0, 18, 0, 0, 21, 0, 186,
713 0, 187, 0, 191, 0, 192, 0, 457, 0, 188,
714 0, 193, 0, 188, 0, 44, 24, 293, 25, 0,
721 static const short yyrline[] = { 0,
722 324, 325, 328, 329, 332, 333, 334, 335, 336, 337,
723 338, 339, 342, 344, 348, 348, 356, 362, 366, 367,
724 371, 372, 374, 376, 393, 396, 407, 410, 419, 420,
725 422, 426, 443, 446, 455, 458, 468, 470, 470, 476,
726 477, 478, 479, 482, 485, 489, 489, 494, 494, 501,
727 502, 505, 510, 511, 514, 515, 518, 523, 524, 527,
728 528, 529, 532, 533, 534, 539, 540, 543, 545, 547,
729 549, 558, 560, 562, 564, 580, 584, 585, 592, 593,
730 601, 603, 607, 608, 609, 610, 611, 612, 615, 616,
731 617, 618, 619, 620, 623, 626, 627, 634, 637, 640,
732 646, 654, 656, 660, 663, 664, 667, 670, 676, 680,
733 681, 684, 687, 688, 691, 692, 693, 696, 697, 698,
734 699, 700, 703, 704, 705, 706, 707, 710, 711, 714,
735 721, 725, 727, 731, 732, 734, 741, 751, 752, 755,
736 756, 757, 758, 759, 760, 761, 762, 766, 767, 771,
737 772, 775, 777, 779, 780, 781, 782, 783, 785, 789,
738 790, 793, 797, 809, 810, 811, 812, 813, 814, 815,
739 816, 820, 821, 822, 823, 824, 825, 826, 827, 828,
740 829, 833, 834, 837, 838, 839, 840, 841, 842, 843,
741 844, 845, 846, 847, 850, 851, 853, 856, 861, 862,
742 865, 866, 867, 868, 871, 872, 876, 877, 878, 879,
743 882, 883, 884, 887, 888, 889, 892, 893, 894, 895,
744 896, 899, 900, 901, 904, 905, 908, 909, 913, 914,
745 917, 918, 923, 929, 930, 936, 942, 943, 943, 945,
746 948, 949, 950, 951, 952, 953, 954, 955, 956, 957,
747 958, 959, 962, 963, 966, 967, 970, 975, 976, 977,
748 980, 994, 999, 1005, 1007, 1013, 1018, 1018, 1022, 1023,
749 1025, 1026, 1029, 1032, 1035, 1038, 1039, 1042, 1043, 1046,
750 1047, 1048, 1049, 1056, 1057, 1061, 1062, 1065, 1066, 1069,
751 1071, 1080, 1081, 1082, 1083, 1084, 1087, 1090, 1096, 1105,
752 1108, 1111, 1118, 1125, 1131, 1156, 1157, 1160, 1161, 1162,
753 1163, 1164, 1167, 1168, 1169, 1170, 1173, 1174, 1175, 1176,
754 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186,
755 1187, 1188, 1189, 1193, 1194, 1197, 1198, 1201, 1202, 1205,
756 1206, 1207, 1208, 1211, 1212, 1213, 1214, 1215, 1216, 1219,
757 1220, 1221, 1222, 1225, 1226, 1227, 1228, 1231, 1232, 1233,
758 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1249,
759 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259,
760 1260, 1261, 1262, 1265, 1269, 1270, 1274, 1275, 1279, 1280,
761 1281, 1284, 1285, 1289, 1294, 1296, 1298, 1300, 1302, 1304,
762 1305, 1307, 1309, 1311, 1313, 1314, 1315, 1318, 1319, 1321,
763 1323, 1324, 1327, 1330, 1331, 1332, 1335, 1337, 1341, 1343,
764 1347, 1348, 1349, 1353, 1355, 1355, 1357, 1360, 1362, 1364,
765 1367, 1372, 1379, 1380, 1381, 1387, 1391, 1392, 1396, 1397,
766 1400, 1401, 1402, 1405, 1406, 1409, 1410, 1411, 1412, 1415,
767 1416, 1419, 1420, 1423, 1424, 1425, 1428, 1428, 1429, 1430,
768 1433, 1445, 1461, 1462, 1465, 1466, 1467, 1470, 1471, 1474,
769 1476, 1477, 1479, 1480, 1482, 1484, 1486, 1488, 1494, 1495,
770 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1506, 1509, 1512,
771 1513, 1517, 1519, 1521, 1523, 1527, 1528, 1530, 1534, 1536,
772 1538, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549,
773 1550, 1551, 1552, 1553, 1556, 1557, 1562, 1565, 1568, 1569,
774 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581,
775 1582, 1585, 1586, 1593, 1594, 1600, 1601, 1602, 1603, 1606,
776 1607, 1608, 1609, 1612, 1613, 1617, 1620, 1623, 1626, 1629,
777 1632, 1635, 1636, 1637, 1638, 1640, 1641, 1643, 1645, 1651,
778 1655, 1657, 1659, 1661, 1665, 1666, 1669, 1670, 1673, 1674,
779 1677, 1678, 1681, 1682, 1685, 1686, 1689, 1690, 1691, 1694,
780 1707, 1712, 1713, 1717, 1718, 1721, 1726, 1729, 1730, 1731,
781 1739, 1740, 1740, 1744, 1745, 1746, 1757, 1764, 1765, 1768,
782 1769, 1772, 1773, 1774, 1775, 1776, 1778, 1779, 1780, 1781,
783 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793,
784 1796, 1797, 1800, 1801, 1802, 1803, 1806, 1807, 1808, 1811,
785 1812, 1813, 1816, 1817, 1818, 1819, 1820, 1823, 1824, 1825,
786 1828, 1829, 1832, 1833, 1837, 1838, 1841, 1842, 1845, 1846,
787 1849, 1850, 1851, 1852, 1855, 1856, 1857, 1858, 1859, 1860,
788 1861, 1862, 1863, 1864, 1865, 1866, 1869, 1870, 1873, 1876,
789 1878, 1880, 1884, 1885, 1887, 1889, 1892, 1893, 1894, 1896,
790 1897, 1898, 1899, 1900, 1901, 1902, 1905, 1906, 1909, 1910,
791 1913, 1916, 1917, 1918, 1919, 1920, 1923, 1924, 1925, 1926
796 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
798 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
799 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
800 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
801 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
802 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
803 "TBAR","TQUEST","CSIZEOF","CALIGNOF","CTYPEOF","ARROW_OP","CTYPEDEF","COFFSETOF",
804 "INC_OP","DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP",
805 "OR_OP","MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
806 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
807 "VA_ARG","VA_DCL","QWARN","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION",
808 "QITER","QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
809 "QINVARIANT","QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND",
810 "TENDMACRO","QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE",
811 "QFALLTHROUGH","QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED",
812 "QPRINTFLIKE","QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST",
813 "QRESTRICT","QVOLATILE","QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER",
814 "QOUT","QIN","QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED",
815 "QUNCHECKED","QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL",
816 "QOWNED","QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS",
817 "QMAYEXIT","QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED",
818 "QSHORT","QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE",
819 "QIMMUTABLE","QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF",
820 "QTEMPREF","QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE",
821 "CVOID","QANYTYPE","QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE",
822 "QNULLTERMINATED","QSETBUFFERSIZE","QSETSTRINGLENGTH","QMAXSET","QMAXREAD","QTESTINRANGE",
823 "TCAND","IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID","CANNOTATION","CCONSTANT",
824 "ITER_NAME","ITER_ENDNAME","TYPE_NAME","METASTATE_NAME","file","externalDefs",
825 "externalDef","constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase",
826 "@2","@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
827 "metaStateConstraint","metaStateSpecifier","@8","@9","metaStateExpression","metaStateName",
828 "constraintSeperator","BufConstraintList","BufConstraint","bufferModifier","relationalOp",
829 "BufConstraintExpr","BufConstraintTerm","BufConstraintSrefExpr","BufUnaryOp",
830 "BufBinaryOp","functionClauses","functionClausesPlain","functionClause","functionClausePlain",
831 "globalsClause","globalsClausePlain","@10","nomodsClause","modifiesClause","modifiesClausePlain",
832 "@11","flagSpec","flagId","optWarnClause","warnClause","warnClausePlain","globIdList",
833 "globIdListExpr","optGlobQuals","globId","globQual","stateTag","conditionTag",
834 "fcnDefHdrAux","fcnBody","@12","@13","@14","fcnDef","locModifies","modListExpr",
835 "mExpr","modList","specClauseListExpr","optSpecClauseList","specClauseList",
836 "primaryExpr","@15","postfixExpr","argumentExprList","unaryExpr","fieldDesignator",
837 "offsetofExpr","sizeofExpr","@16","sizeofExprAux","castExpr","timesExpr","plusExpr",
838 "shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr",
839 "andExpr","@17","orExpr","@18","conditionalExpr","@19","@20","assignExpr","expr",
840 "optExpr","constantExpr","initializer","instanceDecl","@21","@22","namedInitializer",
841 "@23","typeDecl","@24","IsType","PushType","namedInitializerList","namedInitializerListAux",
842 "optDeclarators","init","designation","designatorList","designator","initList",
843 "storageSpecifier","stateClause","stateClausePlain","@25","conditionClause",
844 "startConditionClause","conditionClausePlain","@26","@27","functionConstraint",
845 "exitsQualifier","checkQualifier","stateQualifier","paramQualifier","visibilityQualifier",
846 "returnQualifier","typedefQualifier","refcountQualifier","typeModifier","definedQualifier",
847 "typeQualifier","typeSpecifier","completeType","completeTypeSpecifier","altType",
848 "completeTypeSpecifierAux","optCompleteType","optStructInvariant","suSpc","@28",
849 "@29","@30","@31","@32","@33","@34","@35","NotType","structDeclList","structDecl",
850 "structNamedDeclList","structNamedDecl","enumSpc","@36","enumeratorList","enumerator",
851 "optNamedDecl","namedDecl","genericParamList","innerMods","innerModsList","pointers",
852 "paramIdList","idList","paramTypeList","paramList","@37","@38","paramDecl","typeExpression",
853 "abstractDecl","optAbstractDeclBase","abstractDeclBase","stmt","iterBody","endBody",
854 "iterDefStmtList","iterDefIterationStmt","forPred","@39","@40","partialIterStmt",
855 "@41","iterDefStmt","iterSelectionStmt","@42","openScope","closeScope","macroBody",
856 "stmtErr","labeledStmt","optExtraFallThroughs","caseStmt","@43","@44","defaultStmt",
857 "@45","@46","compoundStmt","compoundStmtErr","CreateInnerScope","DeleteInnerScope",
858 "CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe","compoundStmtRest",
859 "compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList","typeInitializerList",
860 "typeInitializer","stmtList","expressionStmt","expressionStmtErr","ifPred","selectionStmt",
861 "@47","@48","whilePred","iterWhilePred","iterStmt","@49","@50","iterArgList",
862 "@51","iterArgExpr","cconstantExpr","primaryIterExpr","postfixIterExpr","unaryIterExpr",
863 "castIterExpr","timesIterExpr","plusIterExpr","shiftIterExpr","relationalIterExpr",
864 "equalityIterExpr","bitandIterExpr","xorIterExpr","bitorIterExpr","andIterExpr",
865 "orIterExpr","conditionalIterExpr","@52","@53","assignIterExpr","endIter","doHeader",
866 "iterationStmt","iterationStmtErr","jumpStmt","optSemi","optComma","id","newId",
871 static const short yyr1[] = { 0,
872 195, 195, 196, 196, 197, 197, 197, 197, 197, 197,
873 197, 197, 198, 198, 200, 199, 201, 201, 202, 202,
874 203, 203, 203, 203, 204, 203, 205, 203, 206, 206,
875 206, 206, 207, 206, 208, 206, 210, 211, 209, 212,
876 212, 212, 212, 213, 214, 216, 215, 217, 215, 218,
877 218, 219, 220, 220, 221, 221, 222, 223, 223, 224,
878 224, 224, 225, 225, 225, 226, 226, 227, 227, 227,
879 227, 227, 227, 227, 227, 228, 229, 229, 230, 230,
880 231, 231, 232, 232, 232, 232, 232, 232, 233, 233,
881 233, 233, 233, 233, 234, 236, 235, 237, 238, 240,
882 239, 241, 241, 242, 243, 243, 244, 245, 245, 246,
883 246, 247, 248, 248, 249, 249, 249, 250, 250, 250,
884 250, 250, 251, 251, 251, 251, 251, 252, 252, 253,
885 253, 255, 254, 256, 257, 254, 258, 259, 259, 260,
886 260, 260, 260, 260, 260, 260, 260, 261, 261, 262,
887 262, 263, 263, 263, 263, 263, 263, 263, 263, 264,
888 264, 265, 265, 266, 266, 266, 266, 266, 266, 267,
889 266, 268, 268, 268, 268, 268, 268, 268, 268, 268,
890 268, 269, 269, 270, 270, 270, 270, 270, 270, 270,
891 270, 270, 270, 270, 271, 271, 271, 272, 274, 273,
892 275, 275, 275, 275, 276, 276, 277, 277, 277, 277,
893 278, 278, 278, 279, 279, 279, 280, 280, 280, 280,
894 280, 281, 281, 281, 282, 282, 283, 283, 284, 284,
895 285, 286, 285, 287, 288, 287, 289, 290, 291, 289,
896 292, 292, 292, 292, 292, 292, 292, 292, 292, 292,
897 292, 292, 293, 293, 294, 294, 295, 296, 296, 296,
898 297, 298, 297, 299, 297, 300, 301, 300, 303, 302,
899 302, 302, 304, 305, 306, 307, 307, 308, 308, 309,
900 309, 309, 309, 310, 310, 311, 311, 312, 312, 313,
901 313, 314, 314, 314, 314, 314, 315, 317, 316, 318,
902 319, 321, 320, 322, 320, 323, 323, 324, 324, 324,
903 324, 324, 325, 325, 325, 325, 326, 326, 326, 326,
904 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
905 326, 326, 326, 327, 327, 328, 328, 329, 329, 330,
906 330, 330, 330, 331, 331, 331, 331, 331, 331, 332,
907 332, 332, 332, 333, 333, 333, 333, 334, 334, 334,
908 334, 334, 334, 334, 334, 334, 334, 334, 334, 335,
909 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
910 335, 335, 335, 336, 337, 337, 338, 338, 339, 339,
911 339, 340, 340, 341, 343, 344, 342, 345, 346, 342,
912 342, 342, 347, 348, 342, 349, 350, 342, 342, 342,
913 342, 342, 351, 352, 352, 352, 353, 353, 354, 354,
914 355, 355, 355, 356, 357, 356, 356, 358, 358, 358,
915 359, 359, 360, 360, 360, 360, 361, 361, 362, 362,
916 363, 363, 363, 364, 364, 365, 365, 365, 365, 366,
917 366, 367, 367, 368, 368, 368, 370, 369, 371, 369,
918 372, 372, 373, 373, 374, 374, 374, 375, 375, 376,
919 376, 376, 376, 376, 376, 376, 376, 376, 377, 377,
920 377, 377, 377, 377, 377, 377, 377, 378, 379, 380,
921 380, 381, 381, 381, 381, 383, 384, 382, 386, 385,
922 385, 387, 387, 387, 387, 387, 387, 387, 387, 387,
923 387, 387, 387, 387, 389, 388, 390, 391, 392, 392,
924 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
925 393, 394, 394, 395, 395, 397, 396, 398, 396, 400,
926 399, 401, 399, 402, 402, 403, 404, 405, 406, 407,
927 408, 409, 409, 409, 409, 409, 409, 409, 409, 410,
928 411, 411, 411, 411, 412, 412, 413, 413, 414, 414,
929 415, 415, 416, 416, 417, 417, 418, 418, 418, 419,
930 420, 421, 420, 422, 420, 423, 424, 426, 427, 425,
931 428, 429, 428, 430, 430, 430, 430, 431, 431, 432,
932 432, 433, 433, 433, 433, 433, 433, 433, 433, 433,
933 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
934 435, 435, 436, 436, 436, 436, 437, 437, 437, 438,
935 438, 438, 439, 439, 439, 439, 439, 440, 440, 440,
936 441, 441, 442, 442, 443, 443, 444, 444, 445, 445,
937 446, 447, 448, 446, 449, 449, 449, 449, 449, 449,
938 449, 449, 449, 449, 449, 449, 450, 450, 451, 452,
939 452, 452, 453, 453, 453, 453, 454, 454, 454, 454,
940 454, 454, 454, 454, 454, 454, 455, 455, 456, 456,
941 457, 458, 458, 458, 458, 458, 459, 459, 459, 459
944 static const short yyr2[] = { 0,
945 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
946 1, 1, 8, 11, 0, 5, 1, 3, 1, 2,
947 1, 6, 3, 6, 0, 6, 0, 7, 1, 6,
948 3, 6, 0, 6, 0, 7, 0, 0, 10, 3,
949 3, 3, 2, 1, 3, 0, 4, 0, 4, 1,
950 3, 1, 1, 1, 3, 1, 3, 1, 1, 1,
951 1, 1, 1, 4, 5, 1, 1, 1, 1, 3,
952 4, 2, 3, 3, 3, 1, 1, 1, 0, 2,
953 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
954 1, 1, 1, 1, 2, 0, 4, 1, 2, 0,
955 3, 1, 3, 1, 1, 0, 2, 3, 2, 1,
956 3, 2, 0, 2, 1, 1, 1, 1, 1, 1,
957 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
958 3, 0, 3, 0, 0, 4, 2, 2, 1, 1,
959 1, 3, 4, 2, 3, 3, 3, 1, 1, 1,
960 3, 1, 1, 3, 4, 2, 3, 3, 3, 0,
961 1, 1, 3, 1, 1, 1, 3, 1, 1, 0,
962 4, 1, 4, 3, 4, 6, 5, 5, 2, 2,
963 7, 1, 3, 1, 2, 2, 2, 2, 2, 2,
964 2, 2, 1, 1, 3, 4, 1, 9, 0, 3,
965 4, 2, 4, 2, 1, 4, 1, 3, 3, 3,
966 1, 3, 3, 1, 3, 3, 1, 3, 3, 3,
967 3, 1, 3, 3, 1, 3, 1, 3, 1, 3,
968 1, 0, 4, 1, 0, 4, 1, 0, 0, 7,
969 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
970 3, 3, 1, 3, 0, 1, 1, 1, 1, 1,
971 3, 0, 9, 0, 11, 2, 0, 6, 0, 8,
972 4, 4, 0, 0, 2, 1, 4, 0, 4, 1,
973 3, 4, 2, 2, 2, 1, 2, 3, 2, 1,
974 3, 1, 1, 1, 1, 1, 2, 0, 6, 2,
975 2, 0, 6, 0, 5, 1, 1, 1, 1, 1,
976 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
977 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
978 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
979 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
980 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
981 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
982 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
983 2, 2, 2, 3, 1, 4, 1, 3, 2, 2,
984 2, 0, 1, 0, 0, 0, 12, 0, 0, 11,
985 6, 6, 0, 0, 10, 0, 0, 10, 5, 5,
986 4, 4, 0, 1, 1, 2, 5, 3, 2, 4,
987 1, 3, 4, 6, 0, 8, 4, 1, 3, 2,
988 1, 4, 1, 1, 2, 2, 1, 2, 1, 2,
989 1, 1, 1, 1, 2, 1, 2, 2, 3, 1,
990 3, 1, 3, 1, 1, 3, 0, 2, 0, 4,
991 4, 1, 1, 2, 1, 1, 2, 0, 1, 5,
992 2, 3, 3, 4, 3, 4, 4, 5, 1, 1,
993 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
994 2, 2, 7, 6, 2, 0, 0, 10, 0, 6,
995 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
996 1, 1, 3, 1, 0, 3, 2, 2, 1, 1,
997 1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
998 1, 2, 2, 0, 2, 0, 4, 0, 6, 0,
999 3, 0, 5, 3, 2, 3, 0, 0, 0, 0,
1000 0, 1, 2, 2, 3, 2, 3, 3, 4, 2,
1001 2, 3, 3, 4, 1, 2, 1, 2, 1, 3,
1002 1, 4, 1, 2, 1, 2, 1, 2, 1, 4,
1003 2, 0, 5, 0, 6, 4, 4, 0, 0, 10,
1004 1, 0, 4, 1, 1, 1, 1, 1, 2, 1,
1005 3, 1, 4, 3, 4, 6, 5, 5, 2, 2,
1006 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
1007 1, 4, 1, 3, 3, 3, 1, 3, 3, 1,
1008 3, 3, 1, 3, 3, 3, 3, 1, 3, 3,
1009 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
1010 1, 0, 0, 7, 1, 3, 3, 3, 3, 3,
1011 3, 3, 3, 3, 3, 3, 1, 0, 1, 2,
1012 7, 2, 2, 7, 6, 2, 3, 2, 3, 2,
1013 3, 3, 3, 3, 2, 3, 0, 1, 0, 1,
1014 1, 1, 1, 1, 1, 1, 1, 1, 4, 4
1017 static const short yydefact[] = { 0,
1018 12, 11, 446, 0, 413, 259, 413, 15, 0, 0,
1019 0, 0, 273, 273, 273, 293, 292, 294, 295, 296,
1020 354, 355, 319, 321, 320, 324, 325, 313, 315, 316,
1021 314, 322, 323, 356, 357, 317, 318, 334, 330, 326,
1022 331, 327, 308, 309, 312, 310, 311, 351, 352, 353,
1023 350, 336, 335, 329, 328, 340, 341, 342, 343, 338,
1024 339, 337, 344, 345, 348, 349, 346, 347, 413, 413,
1025 413, 413, 413, 413, 413, 413, 413, 413, 332, 691,
1026 692, 696, 333, 693, 694, 697, 0, 3, 6, 7,
1027 437, 8, 9, 134, 44, 687, 10, 258, 260, 0,
1028 392, 273, 273, 273, 273, 273, 273, 273, 273, 413,
1029 273, 392, 392, 413, 385, 413, 0, 413, 130, 273,
1030 695, 21, 413, 441, 442, 443, 444, 447, 448, 273,
1031 276, 273, 273, 269, 413, 698, 413, 413, 696, 0,
1032 531, 273, 540, 0, 0, 0, 669, 0, 0, 0,
1033 0, 273, 577, 0, 273, 273, 273, 273, 273, 273,
1034 273, 273, 273, 0, 43, 0, 0, 0, 0, 0,
1035 534, 273, 169, 165, 168, 598, 588, 172, 184, 205,
1036 194, 193, 207, 211, 214, 217, 222, 225, 227, 229,
1037 231, 234, 237, 241, 253, 579, 199, 0, 0, 565,
1038 521, 522, 523, 524, 0, 0, 525, 273, 526, 0,
1039 527, 166, 0, 528, 530, 164, 0, 514, 0, 575,
1040 0, 547, 501, 0, 0, 0, 510, 0, 511, 490,
1041 509, 506, 507, 502, 503, 504, 0, 0, 508, 515,
1042 0, 0, 512, 489, 0, 358, 360, 359, 370, 372,
1043 371, 373, 374, 375, 376, 377, 378, 379, 4, 273,
1044 0, 132, 137, 413, 688, 5, 413, 393, 389, 363,
1045 365, 362, 364, 367, 366, 368, 369, 383, 361, 390,
1046 391, 0, 273, 273, 381, 273, 273, 0, 382, 438,
1047 380, 445, 449, 273, 165, 168, 0, 413, 463, 0,
1048 164, 413, 0, 275, 413, 0, 266, 273, 687, 17,
1049 19, 0, 413, 273, 29, 457, 205, 257, 536, 0,
1050 273, 273, 273, 273, 0, 678, 680, 685, 0, 547,
1051 0, 0, 0, 187, 192, 191, 190, 189, 188, 0,
1052 273, 185, 186, 273, 0, 0, 0, 0, 0, 534,
1053 0, 273, 533, 273, 479, 480, 481, 482, 0, 483,
1054 484, 273, 486, 273, 485, 487, 547, 273, 273, 179,
1055 180, 0, 273, 273, 273, 273, 273, 273, 273, 273,
1056 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
1057 273, 273, 273, 273, 273, 273, 273, 273, 273, 232,
1058 238, 235, 578, 273, 0, 676, 40, 0, 548, 566,
1059 581, 673, 599, 0, 532, 273, 0, 0, 0, 576,
1060 41, 491, 495, 567, 413, 505, 517, 518, 0, 0,
1061 0, 42, 23, 273, 457, 413, 413, 273, 261, 131,
1062 413, 0, 387, 0, 413, 0, 413, 0, 273, 0,
1063 699, 273, 273, 0, 465, 464, 466, 700, 273, 272,
1064 273, 271, 267, 413, 0, 273, 0, 413, 273, 20,
1065 454, 0, 0, 439, 455, 273, 0, 541, 0, 584,
1066 0, 256, 0, 677, 686, 547, 0, 167, 273, 529,
1067 273, 0, 0, 681, 682, 683, 684, 679, 535, 273,
1068 542, 0, 672, 413, 545, 670, 0, 0, 174, 0,
1069 182, 0, 0, 0, 242, 243, 244, 245, 246, 247,
1070 248, 249, 250, 251, 252, 208, 209, 210, 213, 212,
1071 215, 216, 218, 219, 220, 221, 223, 224, 226, 228,
1072 230, 273, 273, 273, 254, 273, 273, 200, 561, 698,
1073 565, 0, 413, 546, 582, 0, 0, 513, 499, 273,
1074 568, 516, 0, 0, 25, 0, 552, 273, 573, 133,
1075 413, 273, 547, 273, 262, 386, 273, 403, 0, 411,
1076 406, 0, 412, 0, 428, 431, 425, 427, 384, 471,
1077 0, 457, 467, 273, 0, 277, 273, 273, 687, 16,
1078 31, 273, 457, 273, 18, 440, 450, 452, 37, 459,
1079 413, 458, 462, 537, 580, 0, 586, 273, 171, 273,
1080 206, 413, 0, 273, 538, 0, 544, 560, 0, 589,
1081 273, 175, 173, 273, 273, 233, 0, 236, 273, 202,
1082 273, 204, 562, 563, 273, 273, 273, 587, 273, 413,
1083 273, 413, 79, 27, 553, 556, 273, 273, 554, 273,
1084 574, 136, 0, 264, 273, 388, 409, 549, 395, 410,
1085 549, 398, 273, 430, 273, 0, 472, 475, 273, 0,
1086 473, 0, 457, 106, 273, 273, 273, 0, 33, 0,
1087 273, 0, 81, 456, 273, 468, 273, 0, 273, 571,
1088 689, 569, 0, 0, 0, 543, 273, 273, 183, 177,
1089 178, 239, 0, 0, 564, 583, 0, 273, 273, 273,
1090 273, 273, 273, 273, 273, 273, 0, 165, 168, 184,
1091 205, 193, 211, 214, 217, 222, 225, 227, 229, 231,
1092 234, 0, 592, 591, 166, 602, 611, 621, 623, 627,
1093 630, 633, 638, 641, 643, 645, 647, 649, 651, 655,
1094 594, 164, 0, 24, 0, 96, 100, 98, 123, 124,
1095 125, 126, 127, 128, 129, 26, 79, 83, 0, 85,
1096 84, 0, 88, 0, 413, 413, 86, 0, 87, 304,
1097 0, 79, 557, 558, 273, 555, 22, 273, 278, 413,
1098 401, 549, 413, 402, 549, 424, 429, 273, 0, 0,
1099 476, 474, 477, 0, 0, 105, 273, 273, 0, 280,
1100 268, 273, 0, 286, 0, 273, 0, 413, 81, 35,
1101 0, 451, 453, 38, 81, 89, 91, 90, 94, 92,
1102 93, 460, 433, 0, 273, 468, 434, 469, 585, 496,
1103 689, 273, 0, 0, 176, 539, 0, 592, 273, 201,
1104 203, 675, 0, 0, 187, 192, 191, 190, 189, 188,
1105 185, 186, 273, 273, 273, 179, 180, 0, 273, 273,
1106 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
1107 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
1108 273, 273, 273, 273, 273, 232, 652, 235, 500, 0,
1109 494, 104, 109, 102, 113, 687, 80, 95, 99, 107,
1110 298, 301, 297, 0, 302, 300, 28, 559, 273, 0,
1111 415, 413, 413, 414, 413, 413, 413, 432, 273, 470,
1112 478, 270, 290, 0, 0, 289, 283, 284, 287, 285,
1113 278, 13, 32, 34, 81, 30, 687, 82, 457, 461,
1114 435, 436, 273, 0, 570, 181, 0, 197, 0, 547,
1115 240, 674, 167, 273, 0, 174, 0, 0, 0, 0,
1116 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
1117 666, 208, 209, 210, 213, 212, 215, 216, 218, 219,
1118 220, 221, 223, 224, 226, 228, 230, 648, 273, 650,
1119 273, 493, 108, 0, 118, 119, 120, 121, 122, 687,
1120 110, 413, 113, 0, 0, 141, 101, 150, 687, 139,
1121 140, 0, 48, 0, 0, 58, 59, 69, 67, 307,
1122 0, 306, 56, 76, 0, 63, 66, 0, 687, 68,
1123 160, 278, 273, 413, 0, 273, 416, 404, 413, 407,
1124 413, 426, 281, 273, 288, 687, 36, 0, 273, 497,
1125 572, 273, 273, 0, 671, 668, 206, 273, 175, 173,
1126 273, 273, 0, 593, 103, 113, 97, 116, 112, 117,
1127 115, 114, 0, 144, 0, 0, 0, 0, 138, 0,
1128 0, 153, 162, 687, 152, 0, 0, 66, 0, 72,
1129 0, 54, 53, 0, 61, 60, 62, 0, 0, 0,
1130 0, 0, 0, 273, 687, 161, 0, 263, 273, 418,
1131 273, 273, 413, 421, 0, 396, 0, 399, 282, 291,
1132 0, 39, 273, 0, 198, 0, 195, 667, 548, 0,
1133 177, 178, 653, 111, 145, 142, 148, 0, 149, 146,
1134 147, 151, 0, 156, 0, 0, 0, 0, 273, 0,
1135 78, 77, 0, 73, 0, 50, 45, 46, 55, 66,
1136 57, 70, 0, 74, 75, 0, 0, 305, 273, 273,
1137 279, 273, 273, 0, 419, 273, 405, 0, 408, 0,
1138 14, 498, 196, 590, 176, 273, 143, 157, 154, 0,
1139 158, 159, 163, 299, 52, 49, 0, 0, 71, 47,
1140 64, 303, 265, 422, 413, 417, 273, 394, 400, 654,
1141 155, 65, 51, 420, 423, 397, 0, 0, 0
1144 static const short yydefgoto[] = { 1237,
1145 87, 88, 89, 90, 138, 309, 310, 91, 653, 792,
1146 311, 829, 955, 92, 693, 957, 931, 94, 1040, 1176,
1147 1122, 1106, 1177, 1216, 1114, 1042, 1043, 1044, 1118, 1045,
1148 1046, 1180, 1048, 1173, 776, 834, 777, 835, 778, 836,
1149 915, 837, 781, 838, 916, 913, 914, 815, 783, 784,
1150 1020, 1021, 1022, 1089, 1023, 785, 786, 95, 263, 436,
1151 264, 573, 96, 1027, 1157, 1158, 1029, 1103, 1125, 1104,
1152 178, 330, 179, 510, 180, 967, 181, 182, 405, 548,
1153 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
1154 542, 193, 544, 194, 543, 859, 195, 224, 483, 319,
1155 424, 98, 665, 798, 131, 598, 99, 305, 197, 261,
1156 132, 133, 930, 821, 822, 823, 824, 944, 101, 787,
1157 840, 1032, 789, 790, 841, 1051, 924, 1049, 102, 103,
1158 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1159 299, 425, 442, 115, 269, 1236, 116, 802, 1198, 805,
1160 1200, 668, 1135, 671, 1137, 117, 933, 934, 1132, 1133,
1161 118, 676, 584, 585, 845, 135, 473, 127, 128, 120,
1162 606, 607, 474, 475, 476, 695, 612, 332, 810, 847,
1163 457, 353, 225, 245, 226, 227, 354, 963, 1144, 229,
1164 649, 230, 231, 429, 232, 233, 199, 410, 355, 351,
1165 356, 477, 705, 357, 320, 626, 358, 204, 359, 554,
1166 800, 1058, 238, 570, 505, 409, 206, 571, 701, 702,
1167 572, 360, 207, 208, 361, 646, 616, 362, 241, 363,
1168 367, 708, 743, 910, 744, 212, 746, 747, 748, 749,
1169 750, 751, 752, 753, 754, 755, 756, 757, 758, 759,
1170 760, 1009, 1206, 761, 1149, 364, 365, 214, 366, 266,
1174 static const short yypact[] = { 2065,
1175 -32768,-32768, 384, 46, 5282,-32768, 6580,-32768, 798, 3278,
1176 3580, 3580,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1177 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1178 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1179 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1180 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1181 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1182 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1183 -32768, 637,-32768,-32768,-32768,-32768, 2295,-32768,-32768,-32768,
1184 413,-32768,-32768, 103,-32768, 79,-32768,-32768,-32768, 109,
1185 6172,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1186 -32768, 6172, 6172, 128, 70,-32768, 891,-32768,-32768, 798,
1187 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 384,-32768, 5564,
1188 -32768, 183,-32768, 128,-32768,-32768,-32768, 5282,-32768, 162,
1189 -32768, 5564,-32768, 201, 231, 240,-32768, 280, 798, 293,
1190 303, 1612,-32768, 2681, 5564, 5564, 5564, 5564, 5564, 5564,
1191 -32768, 5585, 5585, 333,-32768, 357, 385, 395, 428, 448,
1192 404, 4793,-32768, 527, 556,-32768, 571,-32768, 848, 1096,
1193 -32768,-32768,-32768, 1019, 244, 59, 471, 279, 526, 557,
1194 560, 565, 139,-32768,-32768, 126,-32768, 3625, 519, 567,
1195 -32768,-32768,-32768,-32768, 645, 3323,-32768, 4793,-32768, 3625,
1196 -32768, 460, 3625,-32768,-32768, 664, 710,-32768, 719,-32768,
1197 2874, 571, 715, 368, 674, 3429,-32768, 3580,-32768,-32768,
1198 -32768, 5900,-32768,-32768,-32768,-32768, 783, 769,-32768,-32768,
1199 3580, 3625,-32768,-32768, 756,-32768,-32768,-32768,-32768,-32768,
1200 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 836,
1201 917,-32768,-32768, 6444,-32768,-32768,-32768,-32768,-32768,-32768,
1202 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1203 -32768, 863, 765,-32768,-32768, 798, 798, 523,-32768, 413,
1204 -32768,-32768,-32768, 3368,-32768,-32768, 351, 5764, 393, 843,
1205 -32768,-32768, 912,-32768,-32768, 958, 886, 765, 79,-32768,
1206 425, 954,-32768, 798,-32768, 302,-32768,-32768,-32768, 978,
1207 5564, 5564, 5564, 1885, 1000,-32768,-32768,-32768, 462, 985,
1208 242, 995, 1001,-32768,-32768,-32768,-32768,-32768,-32768, 1009,
1209 3368,-32768,-32768, 5564, 1020, 1025, 1028, 1030, 1039, 404,
1210 451, 3519,-32768, 4793,-32768,-32768,-32768,-32768, 1040,-32768,
1211 -32768, 4793,-32768, 4793,-32768,-32768,-32768, 5452, 5564,-32768,
1212 -32768, 134, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564,
1213 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564,
1214 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564,-32768,
1215 -32768,-32768,-32768, 5564, 389,-32768,-32768, 2488,-32768,-32768,
1216 1054,-32768,-32768, 1057,-32768, 5564, 457, 1047, 1055,-32768,
1217 -32768,-32768,-32768,-32768, 128, 5900,-32768,-32768, 3580, 3172,
1218 1071,-32768,-32768, 5564, 87, 3731, 4876, 765,-32768, 681,
1219 6580, 992, 1067, 1072, 1073, 1074, 1073, 798, 1080, 375,
1220 -32768,-32768, 5463, 1066, 653,-32768, 770,-32768, 765,-32768,
1221 765,-32768,-32768,-32768, 1021, 1086, 1092,-32768, 765, 425,
1222 -32768, 798, 1097,-32768, 1103, 798, 1105,-32768, 495, 1104,
1223 588, 1104, 1110,-32768,-32768, 985, 1106,-32768, 4698,-32768,
1224 -32768, 1107, 1109,-32768,-32768,-32768,-32768,-32768,-32768, 5564,
1225 -32768, 1113,-32768, 3731,-32768,-32768, 1123, 1111,-32768, 640,
1226 -32768, 263, 798, 798,-32768,-32768,-32768,-32768,-32768,-32768,
1227 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1019, 1019,
1228 244, 244, 59, 59, 59, 59, 471, 471, 279, 526,
1229 557, 5564, 5564, 5564,-32768, 5596, 5628,-32768,-32768, 3067,
1230 -32768, 3474, 3919,-32768,-32768, 1115, 673,-32768,-32768, 765,
1231 -32768,-32768, 1116, 1114,-32768, 1117,-32768, 4295,-32768,-32768,
1232 4107, 4340, 985,-32768, 1122,-32768,-32768, 1126, 1128,-32768,
1233 1132, 1129,-32768, 506,-32768, 1130,-32768,-32768,-32768,-32768,
1234 1137, 507, 770, 5495, 1145,-32768, 183,-32768, 273,-32768,
1235 -32768, 5564, 234, 765,-32768,-32768, 1150,-32768,-32768, 1167,
1236 6580,-32768,-32768,-32768,-32768, 1149,-32768, 1885,-32768, 5202,
1237 -32768,-32768, 1170,-32768,-32768, 1168,-32768,-32768, 1172,-32768,
1238 5564,-32768,-32768,-32768,-32768, 560, 470, 565, 3368,-32768,
1239 3368,-32768,-32768,-32768, 4446, 4793, 5564,-32768, 5684,-32768,
1240 5564,-32768, 922,-32768,-32768,-32768, 4491, 4597,-32768, 4642,
1241 -32768,-32768, 1169,-32768,-32768,-32768,-32768,-32768, 1177,-32768,
1242 -32768, 1179,-32768, 798,-32768, 798,-32768,-32768, 214, 1176,
1243 -32768, 1180, 210, 1119, 916,-32768,-32768, 1182,-32768, 1178,
1244 -32768, 315, 922,-32768, 798, 419, 4793, 1186, 5202,-32768,
1245 1185,-32768, 1190, 1188, 1193,-32768, 5564, 5684,-32768,-32768,
1246 -32768,-32768, 1192, 1195,-32768,-32768, 682, 3368, 5564, 5564,
1247 5564, 5564, 5564, 5564, 5585, 5585, 1197, 713, 788, 943,
1248 1121, 790, 1051, 742, 514, 745, 578, 1194, 1189, 1187,
1249 1174, 170, 1200,-32768, 33,-32768,-32768,-32768,-32768,-32768,
1250 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1251 -32768, 791, 793,-32768, 1044,-32768,-32768,-32768,-32768,-32768,
1252 -32768,-32768,-32768,-32768,-32768,-32768, 922,-32768, 1141,-32768,
1253 -32768, 1142,-32768, 1143,-32768,-32768,-32768, 1146,-32768, 2137,
1254 1147, 922,-32768,-32768, 4748,-32768,-32768,-32768,-32768, 6308,
1255 -32768,-32768, 6308,-32768,-32768,-32768,-32768, 5564, 800, 1211,
1256 -32768,-32768,-32768, 1214, 1222,-32768, 916, 5564, 798,-32768,
1257 -32768, 916, 777,-32768, 1219, 916, 1151,-32768, 922,-32768,
1258 1218,-32768,-32768,-32768, 922,-32768,-32768,-32768,-32768,-32768,
1259 -32768,-32768, 413, 1221,-32768, 646,-32768, 770,-32768,-32768,
1260 1185, 1985, 1226, 798,-32768,-32768, 820, 1229, 5564, 1170,
1261 1170, 1239, 828, 1234, 844, 845, 850, 857, 859, 867,
1262 873, 874, 5564, 5484, 5564, 880, 887, 157, 5564, 5564,
1263 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564,
1264 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564,
1265 5564, 5564, 5564, 5564, 5564, 5564,-32768, 5564,-32768, 1240,
1266 1244,-32768, 1075, 1224, 235, 248,-32768,-32768,-32768,-32768,
1267 -32768,-32768,-32768, 558,-32768,-32768,-32768,-32768, 916, 623,
1268 -32768, 128, 5036,-32768, 6308, 5036, 6308,-32768,-32768,-32768,
1269 -32768,-32768,-32768, 815, 1241,-32768,-32768,-32768,-32768,-32768,
1270 -32768,-32768,-32768,-32768, 922,-32768, 79,-32768, 593,-32768,
1271 -32768,-32768, 5516, 1246,-32768,-32768, 1016,-32768, 1251, 985,
1272 -32768,-32768, 890, 4698, 1249, 898, 906, 291, 798, 798,
1273 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1274 -32768, 918, 937, 945, 736, 947, 497, 555, 105, 533,
1275 631, 714, 668, 725, 86, 638, 328, 560, 5564, 565,
1276 5684,-32768, 460, 1044,-32768,-32768,-32768,-32768,-32768, 695,
1277 -32768, 6036, 235, 45, 45,-32768,-32768, 575, 705,-32768,
1278 -32768, 111,-32768, 894, 212,-32768,-32768,-32768,-32768,-32768,
1279 1250,-32768, -3,-32768, 976,-32768, 489, 1248, 79,-32768,
1280 111,-32768,-32768,-32768, 1256, 656,-32768,-32768, 5036,-32768,
1281 5036,-32768,-32768, 3127,-32768, 733,-32768, 1184, 600,-32768,
1282 -32768,-32768, 5564, 798,-32768, 1098, 952,-32768, 989, 991,
1283 -32768,-32768, 911,-32768,-32768, 235,-32768,-32768,-32768,-32768,
1284 -32768,-32768, 78, 575, 160, 798, 798, 45,-32768, 111,
1285 111,-32768, 602, 809,-32768, 1266, 961, 145, 212, 603,
1286 154,-32768,-32768, 894,-32768,-32768,-32768, 894, 30, 798,
1287 798, 1267, 894,-32768, 79, 1270, 885,-32768, 765,-32768,
1288 -32768, 1271,-32768, 1272, 1276,-32768, 1277,-32768,-32768,-32768,
1289 1208,-32768, 734, 1275,-32768, 295,-32768,-32768,-32768, 1278,
1290 994, 996,-32768,-32768,-32768,-32768, 575, 1274, 460,-32768,
1291 -32768, 575, 549, 602, 532, 798, 798, 111,-32768, 1108,
1292 -32768,-32768, 894,-32768, 145, 1264,-32768, 603,-32768, 603,
1293 -32768,-32768, 1279,-32768,-32768, 1108, 1280,-32768,-32768,-32768,
1294 -32768, 5564, 656, 1290,-32768,-32768,-32768, 1289,-32768, 1291,
1295 -32768,-32768,-32768,-32768, 1002, 5564,-32768,-32768,-32768, 1283,
1296 -32768,-32768, 602,-32768,-32768,-32768, 1287, 154,-32768,-32768,
1297 -32768,-32768,-32768,-32768,-32768,-32768, 5564,-32768,-32768,-32768,
1298 -32768,-32768,-32768,-32768,-32768,-32768, 1314, 1315,-32768
1301 static const short yypgoto[] = {-32768,
1302 -32768, 1230,-32768,-32768,-32768,-32768, -361, -94,-32768,-32768,
1303 1004,-32768,-32768,-32768,-32768,-32768, 77,-32768,-32768, 392,
1304 -32768,-32768, 102, 135,-32768, 208,-32768,-32768,-32768, -970,
1305 -32768, -858,-32768,-32768, -627, -698,-32768,-32768,-32768, -548,
1306 -32768, -448,-32768, -325,-32768, 309,-32768,-32768, 641, -646,
1307 -32768, 238, 305,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1308 -32768,-32768,-32768,-32768, -864, 161,-32768, -1005,-32768, 278,
1309 -32768,-32768, -609, 458, 1093,-32768,-32768, -607,-32768,-32768,
1310 -84, -343, -356, -275, -357, -360, -369, -395, -492, -513,
1311 -32768, -587,-32768, -117,-32768,-32768, 903, 1412, -570, -402,
1312 28,-32768,-32768,-32768, -456,-32768,-32768,-32768, 753, -251,
1313 870,-32768, -886, -732,-32768,-32768, 510,-32768,-32768,-32768,
1314 -322,-32768,-32768,-32768, -311,-32768,-32768,-32768,-32768,-32768,
1315 544,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1316 -32768, 1, 758,-32768, 953,-32768,-32768,-32768,-32768,-32768,
1317 -32768,-32768,-32768,-32768,-32768, -55, -736, -852,-32768, 143,
1318 -32768,-32768, 662, 665, 494, 2, -379, 1213,-32768, 4,
1319 -32768,-32768, -549,-32768,-32768,-32768, 647, -103, 1045,-32768,
1320 -431, 862, 1331,-32768, 1112,-32768, 117,-32768,-32768,-32768,
1321 -32768, -135,-32768,-32768,-32768,-32768,-32768, 20, 258, 997,
1322 1165,-32768,-32768, 1458,-32768,-32768, -317,-32768, 1139, 199,
1323 -588, -599,-32768, 851,-32768,-32768, 946, -186, 657, 512,
1324 -428, 140,-32768, 156, 39,-32768,-32768, 165,-32768, 181,
1325 -32768,-32768, 650,-32768, 348, -608,-32768,-32768,-32768,-32768,
1326 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1327 -32768,-32768,-32768,-32768,-32768, 1518,-32768,-32768, 1639, -273,
1335 static const short yytable[] = { 121,
1336 114, 119, 596, 541, 121, 134, 129, 137, 121, 216,
1337 216, 216, 487, 249, 250, 251, 252, 253, 254, 255,
1338 256, 257, 258, 593, 318, 290, 300, 97, 540, 200,
1339 638, 564, 531, 532, 502, 465, 539, 537, 538, 730,
1340 745, 732, 680, 529, 530, 426, 839, 698, 209, 636,
1341 591, 1028, 1112, -600, 278, 566, 1182, -600, 283, 467,
1342 285, 742, 289, 1107, 1066, 1047, 936, 291, 1024, 130,
1343 334, 335, 336, 337, 338, 339, 93, 437, 1025, 307,
1344 1057, 308, 803, 1057, 943, 418, 121, 114, 119, 947,
1345 422, 471, 423, 951, 1163, 1164, 265, 625, 730, 745,
1346 732, 268, 1155, 1095, 779, 1096, -642, 605, 389, 390,
1347 -642, 565, 268, 268, 97, 533, 534, 535, 536, 121,
1348 742, 262, 1097, 372, 645, -634, 198, 228, 228, -634,
1349 954, 293, 267, 814, 1100, 741, 958, 121, 313, 395,
1350 396, 314, 658, 403, 1101, -273, 404, 1181, 121, 917,
1351 239, 239, 1187, 216, 389, 390, 740, 284, 1033, 1093,
1352 1094, 513, 1213, 93, 927, 1127, 240, 240, 502, 1174,
1353 1119, 216, 1120, 333, 210, 1108, 1110, 1109, 514, 401,
1354 443, 1113, 839, 1024, 979, 316, 1156, 1035, 839, 1121,
1355 211, 682, 209, 1025, 741, 402, 1052, 216, 1059, 688,
1356 1061, 980, 1217, 302, 780, 216, 1057, 216, 1057, 216,
1357 907, 438, 216, 935, 471, 740, 937, 406, 467, 1183,
1358 216, 553, 413, 690, 321, 216, 908, 216, 779, 412,
1359 80, 1026, 414, 1162, 813, 1109, 209, 492, 471, 453,
1360 216, 216, 691, 779, 209, 1035, 459, 3, 209, 461,
1361 1175, 209, 1178, 739, 322, 662, 1067, 469, 689, 403,
1362 472, 431, 404, 323, 848, 265, 488, 201, 234, 234,
1363 198, 1024, -413, -413, -413, 387, 388, -413, -413, 738,
1364 209, 1025, 121, 404, 440, 121, 121, 121, 737, 633,
1365 265, 736, 734, 562, 422, 686, 80, 1102, 452, 526,
1366 527, 528, 455, 324, 1013, 733, 471, 121, 839, 464,
1367 326, 404, 739, 121, 198, 404, 318, 1080, 210, 832,
1368 327, 1203, 198, 1015, 1016, 687, 198, 782, 780, 198,
1369 788, 1140, 395, 396, 211, 318, 1060, 228, 738, 80,
1370 1038, 791, 228, 780, 228, 80, 1026, 737, -646, 176,
1371 736, 734, -646, 216, 1017, 1018, 344, 228, 198, 1178,
1372 239, 216, 210, 216, 733, 239, 398, 239, 1019, 560,
1373 210, 404, 345, 735, 210, 451, 240, 210, 211, 472,
1374 239, 240, 318, 240, 575, 420, 211, 622, 404, 580,
1375 211, 583, 1070, 211, 1010, 404, 240, 80, 1038, 488,
1376 346, 730, 745, 732, 621, 938, 210, 216, 599, 680,
1377 347, 201, 604, 1008, 848, 945, -273, 3, 453, -413,
1378 -413, -413, 211, 742, -413, -413, 3, 551, 216, 216,
1379 546, 547, 735, 80, 1026, 216, -274, 121, 260, 574,
1380 122, 452, -273, 348, 453, 122, 209, 121, -274, 140,
1381 466, 782, 3, 561, 788, 201, 500, 501, 121, 1136,
1382 121, 1138, 349, 201, 561, 791, 782, 201, 121, 788,
1383 201, 121, 314, 443, 420, 121, 318, 404, 234, 485,
1384 791, 488, 404, 234, 318, 234, 1159, -413, -413, -413,
1385 404, 712, -413, -413, 124, 125, 126, 741, 234, 201,
1386 80, 81, 139, 216, 350, 84, 85, 391, 392, 1007,
1387 -46, 471, 121, 121, 1119, 404, 1120, -631, 740, 615,
1388 704, -631, 393, 394, 198, 673, 674, 122, 387, 388,
1389 -413, 678, -413, 1121, 1006, 713, 679, 714, 997, 998,
1390 -413, 448, 1005, 1003, 1004, 228, 228, 472, -692, 995,
1391 996, 216, 216, -635, 397, 1024, 1159, -635, 1209, 121,
1392 122, 650, 1033, 895, 896, 1025, 703, 216, 239, 239,
1393 216, 216, 210, 1208, 1165, -632, 1166, -696, 315, -632,
1394 561, 1034, 389, 390, 240, 240, 387, 388, 211, 325,
1395 209, 1035, -693, 1167, 575, 398, 764, 471, 561, 399,
1396 1095, 843, 1096, 121, 80, 81, 139, 314, 404, 84,
1397 85, 696, 617, 407, 864, 739, -413, 678, -413, 1097,
1398 400, 999, 1000, 1001, 1002, 453, -413, 1165, 1119, 1166,
1399 1120, 901, 902, 3, 865, 866, 867, 868, 869, 870,
1400 1053, 738, 1030, 1054, 216, 216, 1167, 1121, 762, 413,
1401 737, -636, 1076, 736, 734, -636, 216, 216, -644, 216,
1402 631, -519, -644, 408, 632, 201, 397, 733, 198, -273,
1403 -698, 453, 1191, 121, 878, 121, -273, 1131, 453, 3,
1404 389, 390, 455, 1068, 216, -695, 234, 234, -639, 3,
1405 318, 121, -639, 404, 121, 121, 216, 648, -413, 846,
1406 318, -413, 404, -413, 391, 392, 862, 762, 80, 81,
1407 139, 593, 265, 84, 85, 1086, 210, 80, 1026, 393,
1408 394, 176, 265, 122, -698, 1098, 445, 447, 449, 921,
1409 922, 415, 211, -597, -637, 735, -694, -597, -637, 1036,
1410 1037, 971, 416, 80, 1038, -640, 1087, 1039, 122, -640,
1411 265, 843, 100, 1054, 315, 1099, -629, 100, -465, 453,
1412 -629, 391, 392, 389, 390, 246, 247, 248, 421, 384,
1413 385, 386, 953, 893, 894, 1124, 393, 394, -413, -413,
1414 -413, 897, 898, -413, -413, 80, 81, 139, 428, 1224,
1415 84, 85, 1141, -273, 216, 594, 899, 900, 3, 948,
1416 932, 427, 818, 932, 819, 992, 993, 994, -596, 201,
1417 -620, -595, -596, 404, -620, -595, 216, 911, 121, 939,
1418 674, 216, -698, -698, 1235, 216, 265, -698, -698, 1168,
1419 1169, 80, 81, 139, 1063, 1064, 84, 85, 961, 100,
1420 404, 80, 81, 139, 969, 121, 84, 85, 404, 846,
1421 432, 1189, 973, 121, 270, 271, 272, 273, 274, 275,
1422 276, 277, 433, 279, -614, -619, 282, 458, -614, -619,
1423 -618, 368, 100, 369, -618, -413, 1056, -617, 122, -616,
1424 439, -617, 298, -616, 303, 304, 306, -615, 586, 1077,
1425 312, -615, -413, -612, -613, 370, 371, -612, -613, 122,
1426 -609, 122, 1190, 1069, -609, 1054, 298, -610, 463, 315,
1427 -601, -610, 608, 340, -601, 1031, 613, 1034, -604, 80,
1428 81, 139, -604, 1050, 84, 85, 631, 1035, 216, 460,
1429 1079, 404, 1153, 932, 817, 932, 932, 932, -624, 294,
1430 435, 818, -624, 819, 155, 156, 157, 158, 159, 160,
1431 80, 81, 139, 634, 635, 84, 85, -625, 286, 287,
1432 288, -625, 161, 162, 163, -626, 874, -628, 875, -626,
1433 -413, -628, -622, 298, 1150, 462, -622, 468, 121, 121,
1434 384, 385, 386, 80, 81, 139, 164, -413, 84, 85,
1435 876, 877, 1171, 1172, 765, 766, 767, 768, 1129, 478,
1436 122, 769, 770, 771, 772, 773, 774, 775, 486, -605,
1437 762, -603, 434, -605, -607, -603, -608, 484, -607, 489,
1438 -608, 1091, -606, 1031, 1031, 490, -606, 1115, 1116, 1117,
1439 173, 1105, 491, 1050, 1050, 100, 441, 494, 444, 446,
1440 1072, 1073, 495, 1074, 315, 496, 298, 497, 290, 1090,
1441 1105, 454, 384, 385, 386, 121, 498, 1134, 504, 932,
1442 100, 932, 555, 216, 280, 281, 312, 556, 121, 411,
1443 574, 558, 1143, 121, 318, 1036, 1037, 1195, 559, 80,
1444 1038, 563, 576, 1039, 890, 891, 892, 577, 1230, 592,
1445 578, -273, 581, 298, 1031, 121, 121, 1031, 587, 1105,
1446 1105, 80, 174, 175, 298, 176, 84, 85, 1050, 318,
1447 1050, 600, 601, 1050, 586, 603, 586, 1050, 373, 121,
1448 121, 609, 1050, 610, 404, 825, 614, 618, 121, 624,
1449 619, 623, 833, 629, 630, 613, 122, 627, 647, 651,
1450 652, 654, 121, 879, 664, 667, 669, 672, 205, 237,
1451 237, 670, 675, 374, 375, 376, 377, 378, 379, 380,
1452 381, 382, 383, 677, 1031, 121, 121, 1105, 683, 1234,
1453 692, 694, 1050, 697, 202, 235, 235, 282, 880, 881,
1454 882, 883, 884, 885, 886, 887, 888, 889, 620, 706,
1455 100, 765, 121, 797, 1134, 707, 801, 579, 804, 582,
1456 811, 588, 830, 850, 589, 852, 812, 454, 828, 595,
1457 854, 100, 855, 100, 856, 503, 860, 1050, 602, 861,
1458 873, 312, 903, 506, 909, 507, 905, 904, 611, 906,
1459 912, 918, 919, 920, 317, 940, 923, 926, 941, 942,
1460 950, 952, 956, 441, 959, 966, 493, 317, 317, 317,
1461 317, 317, 317, 970, 342, 343, 972, 825, 974, 946,
1462 1011, 1012, 825, 1014, 176, 1071, 825, 1065, 1075, 1078,
1463 511, 1123, 1111, 1130, 1142, 515, 516, 517, 518, 519,
1464 520, 521, 522, 523, 524, 525, 122, 1170, 1186, 1148,
1465 1168, 1193, 205, 1196, 968, 1197, 1199, 569, 1201, 1202,
1466 1207, 1215, 1205, 1218, 1221, 1219, 545, 1226, 1228, 1231,
1467 1229, 1232, 100, 1238, 1239, 1041, 259, 470, 202, 1233,
1468 1220, 1179, 1085, 1154, 816, 1210, 663, 1092, 1126, 441,
1469 597, 977, 949, 925, 666, 1225, 205, 809, 807, 962,
1470 292, 842, 244, 456, 205, 595, 499, 1204, 205, 684,
1471 685, 205, 430, 552, 628, 851, 312, 858, 1084, 237,
1472 419, 964, 202, 965, 237, 569, 237, 0, 0, 825,
1473 202, 0, 0, 0, 202, 0, 441, 202, 0, 237,
1474 205, 0, 0, 0, 0, 235, 710, 711, 0, 0,
1475 235, 298, 235, 298, 0, 0, 0, 0, 0, 0,
1476 0, 0, 0, 0, 0, 235, 202, 0, 0, 0,
1477 0, 0, 0, 0, 569, 0, 0, 799, 0, 1081,
1478 1082, 196, 0, 0, 0, 806, 0, 808, 0, 0,
1479 0, 454, 569, 661, 0, 0, 0, 0, 826, 827,
1480 0, 0, 0, 831, 0, 0, 0, 611, 844, 0,
1481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1482 0, 0, 0, 0, 0, 0, 0, 203, 236, 236,
1483 298, 0, 0, 0, 0, 0, 317, 317, 317, 317,
1484 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
1485 317, 317, 0, 0, 0, 0, 122, 0, 0, 0,
1486 0, 0, 0, 0, 825, 508, 661, 716, 0, 122,
1487 0, 0, 0, 0, 1147, 0, 0, 0, 0, 661,
1488 0, 0, 700, 0, 0, 0, 317, 213, 242, 242,
1489 0, 0, 0, 709, 0, 0, 1160, 1161, 0, 0,
1490 0, 297, 0, 0, 0, 317, 205, 0, 0, 0,
1491 929, 0, 0, 0, 0, 0, 0, 0, 849, 0,
1492 1184, 1185, 0, 329, 0, 331, 0, 237, 237, 122,
1493 0, 0, 202, 0, 0, 0, 0, 0, 0, 0,
1494 0, 317, 0, 122, 0, 0, 0, 820, 0, 0,
1495 0, 0, 317, 235, 235, 0, 0, 960, 844, 0,
1496 595, 700, 0, 0, 0, 0, 1211, 1212, 0, 196,
1497 0, 203, 0, 0, 0, 0, 0, 196, 0, 0,
1498 0, 196, 0, 0, 196, 0, 0, 0, 0, 328,
1499 0, 0, 417, 122, 317, 294, 317, 0, 640, 642,
1500 155, 156, 157, 158, 159, 160, 0, 0, 215, 243,
1501 243, 0, 0, 196, 0, 203, 0, 0, 161, 162,
1502 163, 0, 0, 203, 0, 0, 0, 203, 0, 0,
1503 203, 213, 0, 0, 0, 0, 0, 0, 236, 0,
1504 0, 0, 164, 236, 1055, 236, 317, 0, 0, 0,
1505 205, 1062, 0, 0, 317, 0, 0, 0, 236, 203,
1506 0, 0, 0, 0, 0, 450, 0, 0, 0, 0,
1507 0, 0, 0, 0, 0, 213, 202, 0, 0, 820,
1508 0, 0, 0, 213, 820, 0, 173, 213, 820, 0,
1509 213, 0, 479, 480, 481, 482, 0, 0, 242, 0,
1510 0, 731, 0, 242, 0, 242, 0, 0, 0, 0,
1511 0, 0, 450, 0, 700, 0, 0, 0, 242, 213,
1512 0, 0, 0, 450, 0, 0, 0, 0, 0, 0,
1513 0, 0, 0, 0, 0, 975, 511, 0, 0, 0,
1514 512, 981, 982, 983, 984, 985, 986, 987, 988, 989,
1515 990, 991, 215, 0, 0, 0, 0, 80, 295, 296,
1516 731, 176, 0, 0, 0, 1128, 0, 0, 100, 0,
1517 0, 317, 317, 317, 317, 317, 317, 871, 872, 196,
1518 0, 844, 0, 0, 1145, 0, 0, 557, 0, 0,
1519 441, 820, 0, 1151, 1152, 0, 215, 0, 0, 0,
1520 0, 0, 0, 0, 215, 0, 0, 0, 215, 0,
1521 0, 215, 0, 0, 0, 0, 0, 0, 0, 243,
1522 0, 0, 0, 0, 243, 203, 243, 0, 0, 0,
1523 0, 0, 0, 0, 0, 0, 1188, 0, 0, 243,
1524 215, 100, 0, 1192, 1194, 0, 236, 236, 0, 0,
1525 0, 0, 0, 0, 0, 844, 0, 0, 0, 0,
1526 317, 0, -255, 0, 0, 0, 0, 0, 294, 0,
1527 317, 0, 0, 155, 156, 157, 158, 159, 160, 0,
1528 0, 1214, 0, 0, 0, 213, 0, 0, 0, 0,
1529 0, 161, 162, 163, 0, 0, 0, 0, 0, 0,
1530 0, 1222, 1223, 0, 0, 100, 242, 242, 1227, 0,
1531 0, 317, 0, 0, 637, 164, 0, 0, 0, 0,
1532 0, 0, 0, 196, 0, 0, 820, 0, 0, 0,
1533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1534 0, 0, 317, 317, 317, 317, 317, 317, 317, 317,
1535 317, 317, 317, 317, 317, 317, 317, 317, 317, 173,
1536 317, 0, 0, 699, -690, 0, 0, 0, 294, 203,
1537 0, 0, 0, 155, 156, 157, 158, 159, 160, 0,
1538 0, 0, 0, 0, 0, 0, 0, 0, 0, 482,
1539 0, 161, 162, 163, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 215, 0, 0, 0,
1541 450, 0, 450, 0, 0, 164, 0, 0, 717, 0,
1542 0, 0, 763, 0, -1, 1, 317, 243, 243, 213,
1543 80, 295, 296, 0, 176, 0, 0, 0, 0, 0,
1544 0, 0, 2, 0, 0, 0, 0, 0, -273, 0,
1545 0, 0, 0, 0, 0, 0, 0, 0, 3, 173,
1546 0, 0, 0, 731, 0, 0, 0, 0, 4, 0,
1547 5, 0, 0, 0, 0, 0, 0, 0, 857, 0,
1548 0, 0, 0, 0, 0, 0, 0, 0, 0, 863,
1549 0, 0, -413, -413, -413, 0, 6, 0, 0, 0,
1550 0, 7, 8, 9, 0, 0, 0, 0, 0, 0,
1551 0, 0, 0, 0, 0, 0, 10, 11, 12, 0,
1552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1553 80, 295, 296, 0, 176, 13, 14, 15, 16, 0,
1554 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1555 215, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1556 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1557 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1558 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1559 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1560 76, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1561 80, 81, 82, 83, 0, 84, 85, 86, 23, 24,
1562 25, 26, 0, 27, 0, 0, 0, 0, 32, 33,
1563 0, 0, 36, 37, 0, 39, 40, 41, 42, 0,
1564 0, 0, 0, 0, 317, 0, 978, 0, 0, 0,
1565 54, 55, 0, 0, -2, 1, 0, 0, 317, 0,
1566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1567 0, 0, 2, 0, 0, 79, 0, 0, -273, 317,
1568 0, 0, 0, 0, 0, 83, 0, 0, 3, 0,
1569 0, 0, 0, 0, 0, 0, 0, 0, 4, 0,
1570 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1572 0, 0, -413, -413, -413, 0, 6, 0, 0, 0,
1573 0, 7, 8, 9, 482, 0, 0, 0, 0, 0,
1574 0, 0, 0, 0, 0, 0, 10, 11, 12, 0,
1575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1576 0, 0, 0, 0, 0, 13, 14, 15, 16, 0,
1577 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1578 1083, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1579 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1580 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1581 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1582 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1583 76, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1584 80, 81, 82, 83, 1146, 84, 85, 86, 141, 0,
1585 0, 0, 0, 142, 143, 144, 0, 145, 146, 147,
1586 148, 149, 150, 151, 152, 153, -547, 549, 0, 0,
1587 0, 154, 0, 0, 0, 0, 155, 156, 157, 158,
1588 159, 160, 0, 0, 0, 0, 0, 0, 0, -273,
1589 -273, 4, 0, 5, 161, 162, 163, 0, 0, 0,
1590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1591 0, 0, 0, 0, 0, -413, -413, -413, 164, 6,
1592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1594 0, 0, 0, 166, 167, 168, 169, 170, 171, 0,
1595 0, 0, 0, 0, 0, 0, 0, 172, 13, 14,
1596 15, 16, 173, 17, 18, 19, 20, 21, 22, 23,
1597 24, 25, 26, 0, 27, 28, 29, 30, 31, 32,
1598 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1599 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1600 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1601 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1602 73, 74, 75, 76, 77, 78, 79, 0, 0, 0,
1603 0, 0, 0, 80, 174, 550, 83, 176, 177, 85,
1604 86, 141, 0, 0, 0, 0, 142, 143, 144, 0,
1605 145, 146, 147, 148, 149, 150, 151, 152, 153, -170,
1606 0, 0, 0, 0, 154, 0, 0, 0, 0, 155,
1607 156, 157, 158, 159, 160, 0, 0, 0, 0, 0,
1608 0, 0, -273, -273, -273, 0, 0, 161, 162, 163,
1609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1610 0, 0, 0, 0, 0, 0, 0, 0, -273, -273,
1611 -273, 164, 0, 0, 0, 0, 0, 0, 0, 0,
1612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1613 0, 0, 0, 0, 0, 0, 166, 167, 168, 169,
1614 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1615 172, -273, -273, -273, -273, 173, -273, -273, -273, -273,
1616 -273, -273, -273, -273, -273, -273, 0, -273, -273, -273,
1617 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1618 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1619 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1620 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1621 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1622 0, 0, 0, 0, 0, 0, 80, 174, 175, -273,
1623 176, 177, 85, -273, 218, 0, 0, 0, 0, 142,
1624 143, 144, 0, 0, 219, 147, 148, 149, 150, 151,
1625 152, 220, -170, -551, 0, 0, 0, 221, 0, 0,
1626 0, 0, 155, 156, 157, 158, 159, 160, 0, 0,
1627 0, 0, 0, 0, 0, -273, -273, -273, 0, 0,
1628 161, 162, 163, 0, 0, 0, 0, 0, 0, 0,
1629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1630 0, -273, -273, -273, 164, 0, 0, 0, 0, 0,
1631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1632 0, 0, 0, 0, 0, 0, 0, 0, 0, 166,
1633 167, 168, 169, 170, 171, 0, 0, 0, 0, 0,
1634 0, 0, 0, 172, -273, -273, -273, -273, 173, -273,
1635 -273, -273, -273, -273, -273, -273, -273, -273, -273, 0,
1636 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1637 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1638 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1639 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1640 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1641 -273, -273, -273, 0, 0, 0, 0, 0, 0, 80,
1642 174, 175, -273, 176, 222, 223, -273, -168, 0, 0,
1643 0, 0, -168, -168, -168, 0, -168, -168, -168, -168,
1644 -168, -168, -168, -168, -168, -168, -168, -168, -696, -168,
1645 -168, 0, -168, 0, -168, -168, -168, -168, -168, -168,
1646 -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
1647 0, -168, 0, -168, -168, -168, -168, -168, -168, -168,
1648 -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
1649 -168, -168, -168, -168, 0, 0, 0, -168, 0, 0,
1650 0, 0, 0, 0, 0, 817, 1139, 0, 0, 0,
1651 294, 0, 818, 0, 819, 155, 156, 157, 158, 159,
1652 160, 0, -168, -168, -168, -168, -168, -168, 0, 0,
1653 0, 0, 218, 161, 162, 163, -168, 142, 143, 144,
1654 0, -168, 219, 147, 148, 149, 150, 151, 152, 220,
1655 -492, -492, 0, 0, 0, 221, -492, 164, 0, 0,
1656 155, 156, 157, 158, 159, 160, 0, 0, 0, 0,
1657 0, 0, 0, -273, -273, 0, 0, 0, 161, 162,
1658 163, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, 173, 164, 0, 0, 0, 0, 0, 0, 0,
1661 0, 0, -168, -168, -168, 0, -168, -168, -168, 0,
1662 0, 0, 0, 0, 0, 0, -492, 166, 167, 168,
1663 169, 170, 171, 0, 0, 0, 0, 0, 141, 0,
1664 0, 172, 0, 142, 143, 144, 173, 145, 146, 147,
1665 148, 149, 150, 151, 152, 153, -547, 0, 0, 0,
1666 0, 154, 0, 0, 0, 0, 155, 156, 157, 158,
1667 159, 160, 80, 174, 175, 0, 176, 84, 85, -273,
1668 -273, 0, 0, 141, 161, 162, 163, 0, 142, 143,
1669 144, 0, 145, 146, 147, 148, 149, 150, 151, 152,
1670 153, -547, 0, 0, 0, 0, 154, 0, 164, 0,
1671 0, 155, 156, 157, 158, 159, 160, 80, 174, 175,
1672 0, 176, 222, 223, -273, -273, 0, 0, 0, 161,
1673 162, 163, 165, 166, 167, 168, 169, 170, 171, 0,
1674 0, 0, 0, 0, 0, 0, -170, 172, 0, 0,
1675 0, 294, 173, 164, 0, 0, 155, 156, 157, 158,
1676 159, 160, 0, 0, 0, 0, 0, 0, 0, 0,
1677 0, 0, 0, 0, 161, 162, 163, -520, 166, 167,
1678 168, 169, 170, 171, 0, 0, 0, 0, 0, 218,
1679 0, 0, 172, 0, 142, 143, 144, 173, 164, 219,
1680 147, 148, 149, 150, 151, 152, 220, -547, -551, 0,
1681 0, 0, 221, 0, 0, 0, 0, 155, 156, 157,
1682 158, 159, 160, 80, 174, 175, 0, 176, 177, 85,
1683 -273, -273, 0, 0, 141, 161, 162, 163, 0, 142,
1684 143, 144, 173, 145, 146, 147, 148, 149, 150, 151,
1685 152, 153, -547, 643, 0, 0, 0, 154, 0, 164,
1686 0, 0, 155, 156, 157, 158, 159, 160, 80, 174,
1687 175, 0, 176, 177, 85, -273, -273, 0, 0, 0,
1688 161, 162, 163, -488, 166, 167, 168, 169, 170, 171,
1689 0, 0, 0, 0, 0, 0, 0, -170, 172, 0,
1690 0, 0, 352, 173, 164, 0, 0, 155, 156, 157,
1691 158, 159, 160, 80, 295, 296, 0, 176, 0, 0,
1692 0, 0, 0, 0, 0, 161, 162, 163, 0, 166,
1693 167, 168, 169, 170, 171, 0, 0, 0, 0, 0,
1694 218, 0, 0, 172, 0, 142, 143, 144, 173, 164,
1695 219, 147, 148, 149, 150, 151, 152, 220, -547, -551,
1696 0, 0, 0, 221, 0, 0, 0, 0, 155, 156,
1697 157, 158, 159, 160, 80, 174, 175, 0, 176, 222,
1698 223, -273, -273, 0, 0, 141, 161, 162, 163, 0,
1699 142, 143, 144, 173, 145, 146, 147, 148, 149, 150,
1700 151, 152, 153, -547, 0, 0, 0, 0, 154, 0,
1701 164, 0, 0, 155, 156, 157, 158, 159, 160, 80,
1702 174, 175, 0, 176, 177, 85, -273, -273, 0, 0,
1703 0, 161, 162, 163, 0, 166, 167, 168, 169, 170,
1704 171, 0, 0, 0, 0, 0, 0, 0, 0, 172,
1705 0, 0, 0, 0, 173, 164, 0, 0, 0, 0,
1706 0, 0, 0, 0, 80, 295, 296, 0, 176, 0,
1707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1708 166, 167, 168, 169, 170, 171, 0, 0, 0, 0,
1709 0, 0, 0, 0, 172, 0, 142, 143, 144, 173,
1710 145, 146, 147, 148, 149, 150, 151, 152, 220, -547,
1711 567, 0, 0, 0, 352, 0, 0, 0, 0, 155,
1712 156, 157, 158, 159, 160, 80, 174, 175, 0, 176,
1713 222, 223, -273, -273, 4, 0, 5, 161, 162, 163,
1714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1716 0, 164, 6, 0, 0, 0, 0, 0, 0, 0,
1717 80, 174, 175, 0, 176, 177, 85, 0, 0, 0,
1718 0, 0, 0, 0, 0, 0, 166, 167, 168, 169,
1719 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1720 568, 13, 14, 15, 16, 173, 17, 18, 19, 20,
1721 21, 22, 23, 24, 25, 26, 0, 27, 28, 29,
1722 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1723 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1724 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1725 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1726 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1727 0, 0, 0, 0, 0, 0, 80, 174, 550, 83,
1728 176, 177, 85, 86, 142, 143, 144, 0, 145, 146,
1729 147, 148, 149, 150, 151, 152, 220, -547, 644, 0,
1730 0, 0, 352, 0, 0, 0, 0, 155, 156, 157,
1731 158, 159, 160, 0, 0, 0, 0, 0, 0, 0,
1732 -273, -273, 4, 0, 5, 161, 162, 163, 0, 0,
1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1734 0, 0, 0, 0, 0, 0, 0, 0, 0, 164,
1735 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1737 0, 0, 0, 0, 166, 167, 168, 169, 170, 171,
1738 0, 0, 0, 0, 0, 0, 0, 0, 172, 13,
1739 14, 15, 16, 173, 17, 18, 19, 20, 21, 22,
1740 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
1741 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1742 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1743 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1744 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1745 72, 73, 74, 75, 76, 77, 78, 79, 0, 0,
1746 0, 0, 0, 0, 80, 174, 550, 83, 176, 177,
1747 85, 86, 142, 143, 144, 0, 145, 146, 147, 148,
1748 149, 150, 151, 152, 220, -547, 656, 0, 0, 0,
1749 352, 0, 0, 0, 0, 155, 156, 157, 158, 159,
1750 160, 0, 0, 0, 0, 0, 0, 0, -273, -273,
1751 4, 0, 5, 161, 162, 163, 0, 0, 0, 0,
1752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 164, 6, 0,
1754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1756 0, 0, 166, 167, 168, 169, 170, 171, 0, 0,
1757 0, 0, 0, 0, 0, 0, 657, 13, 14, 15,
1758 16, 173, 17, 18, 19, 20, 21, 22, 23, 24,
1759 25, 26, 0, 27, 28, 29, 30, 31, 32, 33,
1760 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1761 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1762 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1763 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1764 74, 75, 76, 77, 78, 79, 0, 0, 0, 0,
1765 0, 0, 80, 174, 550, 83, 176, 177, 85, 86,
1766 142, 143, 144, 0, 145, 146, 147, 148, 149, 150,
1767 151, 152, 220, -547, 655, 0, 0, 0, 352, 0,
1768 0, 0, 0, 155, 156, 157, 158, 159, 160, 0,
1769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1770 0, 161, 162, 163, 0, 142, 143, 144, 0, 145,
1771 146, 147, 148, 149, 150, 151, 152, 220, -547, 659,
1772 0, 0, 0, 352, 0, 164, 0, 0, 155, 156,
1773 157, 158, 159, 160, 0, 0, 0, 0, 0, 0,
1774 0, 0, 0, 0, 0, 0, 161, 162, 163, 0,
1775 166, 167, 168, 169, 170, 171, 0, 0, 0, 0,
1776 0, 0, 0, 0, 172, 0, 0, 0, 0, 173,
1777 164, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1779 0, 0, 0, 0, 0, 166, 167, 168, 169, 170,
1780 171, 0, 0, 0, 0, 0, 0, 0, 0, 660,
1781 0, 142, 143, 144, 173, 145, 146, 147, 148, 149,
1782 150, 151, 152, 220, -547, 715, 0, 0, 0, 352,
1783 0, 0, 0, 0, 155, 156, 157, 158, 159, 160,
1784 80, 174, 175, 0, 176, 177, 85, 0, 0, 0,
1785 0, 0, 161, 162, 163, 0, 142, 143, 144, 0,
1786 145, 146, 147, 148, 149, 150, 151, 152, 220, -547,
1787 793, 0, 0, 0, 352, 0, 164, 0, 0, 155,
1788 156, 157, 158, 159, 160, 80, 174, 175, 0, 176,
1789 177, 85, 0, 0, 0, 0, 0, 161, 162, 163,
1790 0, 166, 167, 168, 169, 170, 171, 0, 0, 0,
1791 0, 0, 0, 0, 0, 172, 0, 0, 0, 0,
1792 173, 164, 0, 0, 0, 0, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 0, 0, 0, 0, 0, 166, 167, 168, 169,
1795 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1796 172, 0, 142, 143, 144, 173, 145, 146, 147, 148,
1797 149, 150, 151, 152, 220, -547, 794, 0, 0, 0,
1798 352, 0, 0, 0, 0, 155, 156, 157, 158, 159,
1799 160, 80, 174, 175, 0, 176, 177, 85, 0, 0,
1800 0, 0, 0, 161, 162, 163, 0, 142, 143, 144,
1801 0, 145, 146, 147, 148, 149, 150, 151, 152, 220,
1802 -547, 796, 0, 0, 0, 352, 0, 164, 0, 0,
1803 155, 156, 157, 158, 159, 160, 80, 174, 175, 0,
1804 176, 177, 85, 0, 0, 0, 0, 0, 161, 162,
1805 163, 0, 166, 167, 168, 169, 170, 171, 0, 0,
1806 0, 0, 0, 0, 0, 0, 795, 0, 0, 0,
1807 0, 173, 164, 0, 0, 0, 620, 0, 0, 0,
1808 0, 294, 0, 0, 0, 0, 155, 156, 157, 158,
1809 159, 160, 0, 0, 0, 0, 0, 166, 167, 168,
1810 169, 170, 171, 0, 161, 162, 163, 0, 0, 0,
1811 0, 172, 0, 142, 143, 144, 173, 145, 146, 147,
1812 148, 149, 150, 151, 152, 220, -547, 928, 164, 0,
1813 0, 352, 0, 0, 0, 0, 155, 156, 157, 158,
1814 159, 160, 80, 174, 175, 0, 176, 177, 85, 0,
1815 0, 0, 0, 0, 161, 162, 163, 0, 142, 143,
1816 144, 0, 145, 146, 147, 148, 149, 150, 151, 152,
1817 220, -547, 173, 0, 0, 0, 352, 0, 164, 0,
1818 0, 155, 156, 157, 158, 159, 160, 80, 174, 175,
1819 0, 176, 177, 85, 0, 0, 0, 0, 0, 161,
1820 162, 163, 0, 166, 167, 168, 169, 170, 171, 0,
1821 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
1822 0, 0, 173, 164, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 80, 295, 296, 0, 176, 166, 167,
1825 168, 169, 170, 171, -135, 0, 0, 0, 0, -135,
1826 0, 0, 172, 0, 0, 0, 0, 173, 0, 0,
1827 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
1828 0, 5, 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 0, 0, 80, 174, 175, 0, 176, 177, 85,
1830 0, 0, 0, 0, 0, 0, 0, 6, 0, 0,
1831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833 0, 0, 0, 0, 0, 0, 0, 0, 80, 174,
1834 175, 0, 176, 177, 85, 0, 13, 14, 15, 16,
1835 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1836 26, 0, 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, 78, 79, -550, 0, 0, 0, 0,
1842 0, 0, 0, 136, 83, 0, 0, 0, 86, 0,
1843 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
1844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 0, 0, 13, 14, 15, 16,
1851 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1852 26, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1853 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1854 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1855 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1856 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1857 75, 76, 77, 78, 79, 0, 0, 0, 0, 0,
1858 699, 0, 0, 136, 83, 294, 0, 0, 86, 0,
1859 155, 156, 157, 158, 159, 160, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0, 161, 162,
1861 163, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 164, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1866 0, 0, 0, 0, 0, -273, 0, 0, 0, 0,
1867 0, 0, 0, 0, 0, 3, 173, 0, 0, 0,
1868 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
1869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 80, 295, 296,
1875 0, 176, 13, 14, 15, 16, 0, 17, 18, 19,
1876 20, 21, 22, 23, 24, 25, 26, 0, 27, 28,
1877 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1878 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1879 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1880 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1881 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1882 79, 0, 0, 0, 0, 0, 0, 80, 81, 82,
1883 83, 0, 84, 85, 86, 294, 509, 0, 0, 0,
1884 155, 156, 157, 158, 159, 160, 294, 0, 0, 590,
1885 0, 155, 156, 157, 158, 159, 160, 0, 161, 162,
1886 163, 0, 0, 0, 0, 0, 0, 294, 976, 161,
1887 162, 163, 155, 156, 157, 158, 159, 160, 294, 0,
1888 0, 681, 164, 155, 156, 157, 158, 159, 160, 0,
1889 161, 162, 163, 164, 0, 0, 0, 0, 0, 294,
1890 -255, 161, 162, 163, 155, 156, 157, 158, 159, 160,
1891 0, 0, 0, 0, 164, 0, 0, 0, 0, 0,
1892 0, 0, 161, 162, 163, 164, 173, 0, 0, 0,
1893 0, 0, 0, 0, 0, 0, 0, 173, 0, 0,
1894 0, 0, 0, 0, 0, 0, 164, 294, 0, 0,
1895 0, 0, 155, 156, 157, 158, 159, 160, 173, 0,
1896 0, 0, 0, 0, 0, 0, 0, 0, 341, 173,
1897 161, 162, 163, 155, 156, 157, 158, 159, 160, 639,
1898 0, 0, 0, 0, 155, 156, 157, 158, 159, 160,
1899 173, 161, 162, 163, 164, 0, 0, 80, 295, 296,
1900 0, 176, 161, 162, 163, 0, 0, 0, 80, 295,
1901 296, 641, 176, 0, 0, 164, 155, 156, 157, 158,
1902 159, 160, 0, 0, 0, 0, 164, 0, 0, 80,
1903 295, 296, 0, 176, 161, 162, 163, 0, 173, 0,
1904 80, 295, 296, 0, 176, 0, 0, 0, 0, 0,
1905 0, 0, 0, 0, 0, 0, 0, 0, 164, 173,
1906 0, 80, 295, 296, 0, 176, 0, 718, 0, 0,
1907 173, 0, 719, 720, 721, 722, 723, 724, 0, 0,
1908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1909 161, 725, 726, 0, 0, 0, 0, 0, 0, 0,
1910 0, 0, 173, 0, 0, 0, 0, 0, 0, 80,
1911 295, 296, 0, 176, 727, 0, 0, 0, 0, 0,
1912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1913 80, 295, 296, 0, 176, 0, 0, 0, 0, 0,
1914 0, 80, 295, 296, 0, 176, 0, 0, 0, 0,
1915 0, 0, 0, 0, 0, 0, 0, 0, 173, 0,
1916 0, 0, 0, 0, 0, -199, -199, 4, 0, 0,
1917 0, 0, 0, 80, 295, 296, 0, 176, 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, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,
1923 728, 729, 0, 176, 13, 14, 15, 16, 0, 17,
1924 18, 19, 20, 21, 22, 23, 24, 25, 26, 0,
1925 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1926 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1927 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1928 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1929 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1930 77, 78, 79, 4, 0, 5, 0, 0, 0, 0,
1931 0, 136, 83, 0, 0, 0, 86, 0, 0, 0,
1932 0, 0, 0, 0, 0, 0, 0, -413, -413, -413,
1933 0, 6, 0, 0, 0, 0, 0, 0, 0, 0,
1934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1937 13, 14, 15, 16, 0, 17, 18, 19, 20, 21,
1938 22, 23, 24, 25, 26, 0, 27, 28, 29, 30,
1939 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1940 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1941 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1942 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1943 71, 72, 73, 74, 75, 76, 77, 78, 79, 4,
1944 0, 5, 0, 0, 0, 0, 0, 136, 83, 0,
1945 0, 0, 86, 0, 0, 0, 0, 0, 0, 0,
1946 0, 0, 0, 0, 0, 0, 0, 6, 0, 0,
1947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1950 0, 0, 0, 0, 0, 0, 13, 14, 15, 16,
1951 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1952 26, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1953 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1954 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1955 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1956 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1957 75, 76, 77, 78, 79, 4, 0, 0, 0, 0,
1958 0, 80, 1088, 136, 83, 0, 0, 0, 86, 0,
1959 0, 0, 0, 0, 0, 0, 0, 0, 0, -413,
1960 -413, -413, 0, 0, 0, 0, 0, 0, 0, 0,
1961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1964 0, 0, 13, 14, 15, 16, 0, 17, 18, 19,
1965 20, 21, 22, 23, 24, 25, 26, 0, 27, 28,
1966 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1967 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1968 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1969 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1970 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1971 79, 4, 0, 0, 0, 0, 0, 0, 0, 136,
1972 83, 0, 0, 0, 86, 0, 0, 0, 0, 0,
1973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1975 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
1976 11, 12, 0, 0, 0, 0, 0, 0, 0, 0,
1977 0, 0, 0, 0, 0, 0, 0, 0, 13, 14,
1978 15, 16, 0, 17, 18, 19, 20, 21, 22, 23,
1979 24, 25, 26, 0, 27, 28, 29, 30, 31, 32,
1980 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1981 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1982 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1983 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1984 73, 74, 75, 76, 77, 78, 79, 4, 0, 5,
1985 0, 0, 0, 0, 0, 136, 83, 0, 0, 0,
1986 86, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1987 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
1988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1991 0, 0, 0, 0, 13, 14, 15, 16, 0, 17,
1992 18, 19, 20, 21, 22, 23, 24, 25, 26, 0,
1993 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1994 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1995 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1996 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1997 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1998 77, 78, 79, 4, 0, 0, 0, 0, 0, 0,
1999 0, 136, 83, 0, 0, 0, 86, 0, 0, 0,
2000 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2002 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2005 13, 14, 15, 16, 0, 17, 18, 19, 20, 21,
2006 22, 23, 24, 25, 26, 0, 27, 28, 29, 30,
2007 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2008 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2009 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
2010 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2011 71, 72, 73, 74, 75, 76, 77, 78, 79, 0,
2012 0, 0, 0, 0, 0, 0, 0, 136, 83, 0,
2016 static const short yycheck[] = { 0,
2017 0, 0, 459, 399, 5, 5, 3, 7, 9, 10,
2018 11, 12, 330, 69, 70, 71, 72, 73, 74, 75,
2019 76, 77, 78, 455, 142, 120, 130, 0, 398, 10,
2020 544, 434, 389, 390, 352, 309, 397, 395, 396, 649,
2021 649, 649, 592, 387, 388, 232, 693, 618, 10, 542,
2022 453, 916, 56, 21, 110, 435, 27, 25, 114, 311,
2023 116, 649, 118, 1034, 951, 924, 803, 123, 24, 24,
2024 155, 156, 157, 158, 159, 160, 0, 264, 34, 135,
2025 933, 137, 671, 936, 817, 221, 87, 87, 87, 822,
2026 226, 5, 228, 826, 1100, 1101, 18, 500, 708, 708,
2027 708, 101, 25, 26, 653, 28, 21, 469, 50, 51,
2028 25, 25, 112, 113, 87, 391, 392, 393, 394, 120,
2029 708, 19, 45, 179, 553, 21, 10, 11, 12, 25,
2030 829, 128, 24, 683, 24, 649, 835, 138, 138, 54,
2031 55, 138, 571, 18, 34, 18, 21, 1118, 149, 777,
2032 11, 12, 1123, 154, 50, 51, 649, 88, 5, 1024,
2033 1025, 28, 1168, 87, 792, 1052, 11, 12, 486, 25,
2034 26, 172, 28, 154, 10, 1034, 1035, 24, 45, 41,
2035 284, 185, 829, 24, 28, 24, 27, 34, 835, 45,
2036 10, 594, 154, 34, 708, 57, 929, 198, 935, 602,
2037 937, 45, 1173, 21, 653, 206, 1059, 208, 1061, 210,
2038 41, 267, 213, 802, 5, 708, 805, 198, 470, 190,
2039 221, 408, 190, 603, 24, 226, 57, 228, 777, 210,
2040 186, 187, 213, 1098, 25, 24, 198, 341, 5, 26,
2041 241, 242, 604, 792, 206, 34, 302, 34, 210, 305,
2042 1109, 213, 1111, 649, 24, 573, 955, 313, 25, 18,
2043 316, 242, 21, 24, 696, 18, 25, 10, 11, 12,
2044 154, 24, 186, 187, 188, 32, 33, 191, 192, 649,
2045 242, 34, 283, 21, 283, 286, 287, 288, 649, 27,
2046 18, 649, 649, 429, 430, 23, 186, 187, 298, 384,
2047 385, 386, 299, 24, 913, 649, 5, 308, 955, 308,
2048 18, 21, 708, 314, 198, 21, 434, 27, 154, 5,
2049 18, 27, 206, 89, 90, 599, 210, 653, 777, 213,
2050 653, 1064, 54, 55, 154, 453, 936, 221, 708, 186,
2051 187, 653, 226, 792, 228, 186, 187, 708, 21, 190,
2052 708, 708, 25, 354, 120, 121, 24, 241, 242, 1218,
2053 221, 362, 198, 364, 708, 226, 39, 228, 134, 425,
2054 206, 21, 16, 649, 210, 25, 221, 213, 198, 435,
2055 241, 226, 500, 228, 440, 18, 206, 491, 21, 445,
2056 210, 447, 963, 213, 908, 21, 241, 186, 187, 25,
2057 16, 1011, 1011, 1011, 489, 808, 242, 408, 464, 959,
2058 16, 154, 468, 906, 846, 818, 24, 34, 26, 186,
2059 187, 188, 242, 1011, 191, 192, 34, 408, 429, 430,
2060 42, 43, 708, 186, 187, 436, 24, 438, 26, 438,
2061 0, 441, 24, 16, 26, 5, 408, 448, 24, 9,
2062 26, 777, 34, 426, 777, 198, 6, 7, 459, 1059,
2063 461, 1061, 15, 206, 437, 777, 792, 210, 469, 792,
2064 213, 472, 469, 577, 18, 476, 594, 21, 221, 18,
2065 792, 25, 21, 226, 602, 228, 1095, 186, 187, 188,
2066 21, 22, 191, 192, 111, 112, 113, 1011, 241, 242,
2067 186, 187, 188, 504, 101, 191, 192, 37, 38, 905,
2068 22, 5, 513, 514, 26, 21, 28, 21, 1011, 25,
2069 624, 25, 52, 53, 408, 20, 21, 87, 32, 33,
2070 24, 25, 26, 45, 904, 639, 592, 641, 895, 896,
2071 34, 19, 903, 901, 902, 429, 430, 603, 22, 893,
2072 894, 552, 553, 21, 29, 24, 1165, 25, 27, 560,
2073 120, 560, 5, 50, 51, 34, 622, 568, 429, 430,
2074 571, 572, 408, 25, 26, 21, 28, 22, 138, 25,
2075 553, 24, 50, 51, 429, 430, 32, 33, 408, 149,
2076 552, 34, 22, 45, 650, 39, 652, 5, 571, 40,
2077 26, 696, 28, 604, 186, 187, 188, 604, 21, 191,
2078 192, 611, 25, 95, 718, 1011, 24, 25, 26, 45,
2079 56, 897, 898, 899, 900, 26, 34, 26, 26, 28,
2080 28, 54, 55, 34, 719, 720, 721, 722, 723, 724,
2081 18, 1011, 916, 21, 645, 646, 45, 45, 649, 190,
2082 1011, 21, 970, 1011, 1011, 25, 657, 658, 21, 660,
2083 21, 95, 25, 19, 25, 408, 29, 1011, 552, 24,
2084 34, 26, 1129, 674, 730, 676, 24, 22, 26, 34,
2085 50, 51, 679, 957, 685, 22, 429, 430, 21, 34,
2086 808, 692, 25, 21, 695, 696, 697, 25, 18, 696,
2087 818, 21, 21, 23, 37, 38, 25, 708, 186, 187,
2088 188, 1143, 18, 191, 192, 21, 552, 186, 187, 52,
2089 53, 190, 18, 283, 88, 21, 286, 287, 288, 785,
2090 786, 22, 552, 21, 21, 1011, 22, 25, 25, 182,
2091 183, 859, 24, 186, 187, 21, 1020, 190, 308, 25,
2092 18, 846, 0, 21, 314, 1029, 21, 5, 25, 26,
2093 25, 37, 38, 50, 51, 13, 14, 15, 95, 34,
2094 35, 36, 828, 32, 33, 1049, 52, 53, 186, 187,
2095 188, 37, 38, 191, 192, 186, 187, 188, 20, 1192,
2096 191, 192, 1066, 24, 795, 26, 52, 53, 34, 23,
2097 800, 19, 26, 803, 28, 890, 891, 892, 21, 552,
2098 21, 21, 25, 21, 25, 25, 817, 25, 819, 20,
2099 21, 822, 186, 187, 1227, 826, 18, 191, 192, 21,
2100 1104, 186, 187, 188, 20, 21, 191, 192, 193, 87,
2101 21, 186, 187, 188, 25, 846, 191, 192, 21, 846,
2102 95, 1125, 25, 854, 102, 103, 104, 105, 106, 107,
2103 108, 109, 27, 111, 21, 21, 114, 25, 25, 25,
2104 21, 24, 120, 26, 25, 28, 932, 21, 438, 21,
2105 18, 25, 130, 25, 132, 133, 134, 21, 448, 974,
2106 138, 25, 45, 21, 21, 48, 49, 25, 25, 459,
2107 21, 461, 18, 959, 25, 21, 154, 21, 23, 469,
2108 21, 25, 472, 161, 25, 916, 476, 24, 21, 186,
2109 187, 188, 25, 924, 191, 192, 21, 34, 929, 18,
2110 25, 21, 22, 933, 19, 935, 936, 937, 21, 24,
2111 24, 26, 25, 28, 29, 30, 31, 32, 33, 34,
2112 186, 187, 188, 513, 514, 191, 192, 21, 68, 69,
2113 70, 25, 47, 48, 49, 21, 24, 21, 26, 25,
2114 28, 25, 21, 221, 1078, 18, 25, 24, 979, 980,
2115 34, 35, 36, 186, 187, 188, 71, 45, 191, 192,
2116 48, 49, 32, 33, 73, 74, 75, 76, 1054, 22,
2117 560, 80, 81, 82, 83, 84, 85, 86, 24, 21,
2118 1011, 21, 260, 25, 21, 25, 21, 18, 25, 25,
2119 25, 1022, 21, 1024, 1025, 25, 25, 52, 53, 54,
2120 115, 1032, 24, 1034, 1035, 283, 284, 18, 286, 287,
2121 25, 26, 18, 28, 604, 18, 294, 18, 1143, 1022,
2122 1051, 299, 34, 35, 36, 1056, 18, 1056, 19, 1059,
2123 308, 1061, 9, 1064, 112, 113, 314, 11, 1069, 208,
2124 1069, 25, 1069, 1074, 1192, 182, 183, 1133, 24, 186,
2125 187, 11, 91, 190, 34, 35, 36, 21, 1206, 24,
2126 19, 19, 19, 341, 1095, 1096, 1097, 1098, 19, 1100,
2127 1101, 186, 187, 188, 352, 190, 191, 192, 1109, 1227,
2128 1111, 91, 27, 1114, 674, 24, 676, 1118, 23, 1120,
2129 1121, 25, 1123, 21, 21, 685, 22, 18, 1129, 21,
2130 25, 25, 692, 11, 24, 695, 696, 25, 24, 24,
2131 27, 25, 1143, 23, 23, 20, 19, 19, 10, 11,
2132 12, 20, 23, 58, 59, 60, 61, 62, 63, 64,
2133 65, 66, 67, 27, 1165, 1166, 1167, 1168, 24, 1225,
2134 21, 5, 1173, 25, 10, 11, 12, 425, 58, 59,
2135 60, 61, 62, 63, 64, 65, 66, 67, 19, 22,
2136 438, 73, 1193, 25, 1193, 24, 20, 445, 20, 447,
2137 25, 449, 25, 18, 452, 21, 27, 455, 27, 457,
2138 21, 459, 25, 461, 22, 354, 25, 1218, 466, 25,
2139 24, 469, 29, 362, 25, 364, 40, 39, 476, 56,
2140 187, 91, 91, 91, 142, 25, 91, 91, 25, 18,
2141 22, 91, 25, 491, 24, 20, 344, 155, 156, 157,
2142 158, 159, 160, 25, 162, 163, 18, 817, 25, 819,
2143 21, 18, 822, 40, 190, 20, 826, 27, 18, 21,
2144 368, 24, 23, 18, 91, 373, 374, 375, 376, 377,
2145 378, 379, 380, 381, 382, 383, 846, 22, 22, 192,
2146 21, 21, 154, 22, 854, 20, 20, 436, 91, 25,
2147 27, 194, 25, 40, 25, 27, 404, 18, 20, 27,
2148 20, 25, 560, 0, 0, 924, 87, 314, 154, 1218,
2149 1186, 1114, 1014, 1086, 684, 1165, 574, 1023, 1051, 577,
2150 461, 874, 823, 790, 577, 1193, 198, 676, 674, 846,
2151 128, 695, 12, 299, 206, 593, 350, 1149, 210, 597,
2152 598, 213, 241, 408, 504, 699, 604, 708, 1011, 221,
2153 222, 851, 198, 852, 226, 504, 228, -1, -1, 929,
2154 206, -1, -1, -1, 210, -1, 624, 213, -1, 241,
2155 242, -1, -1, -1, -1, 221, 634, 635, -1, -1,
2156 226, 639, 228, 641, -1, -1, -1, -1, -1, -1,
2157 -1, -1, -1, -1, -1, 241, 242, -1, -1, -1,
2158 -1, -1, -1, -1, 553, -1, -1, 665, -1, 979,
2159 980, 10, -1, -1, -1, 673, -1, 675, -1, -1,
2160 -1, 679, 571, 572, -1, -1, -1, -1, 686, 687,
2161 -1, -1, -1, 691, -1, -1, -1, 695, 696, -1,
2162 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2163 -1, -1, -1, -1, -1, -1, -1, 10, 11, 12,
2164 718, -1, -1, -1, -1, -1, 384, 385, 386, 387,
2165 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
2166 398, 399, -1, -1, -1, -1, 1056, -1, -1, -1,
2167 -1, -1, -1, -1, 1064, 367, 645, 646, -1, 1069,
2168 -1, -1, -1, -1, 1074, -1, -1, -1, -1, 658,
2169 -1, -1, 620, -1, -1, -1, 434, 10, 11, 12,
2170 -1, -1, -1, 631, -1, -1, 1096, 1097, -1, -1,
2171 -1, 130, -1, -1, -1, 453, 408, -1, -1, -1,
2172 798, -1, -1, -1, -1, -1, -1, -1, 697, -1,
2173 1120, 1121, -1, 152, -1, 154, -1, 429, 430, 1129,
2174 -1, -1, 408, -1, -1, -1, -1, -1, -1, -1,
2175 -1, 489, -1, 1143, -1, -1, -1, 685, -1, -1,
2176 -1, -1, 500, 429, 430, -1, -1, 845, 846, -1,
2177 848, 699, -1, -1, -1, -1, 1166, 1167, -1, 198,
2178 -1, 154, -1, -1, -1, -1, -1, 206, -1, -1,
2179 -1, 210, -1, -1, 213, -1, -1, -1, -1, 18,
2180 -1, -1, 221, 1193, 542, 24, 544, -1, 546, 547,
2181 29, 30, 31, 32, 33, 34, -1, -1, 10, 11,
2182 12, -1, -1, 242, -1, 198, -1, -1, 47, 48,
2183 49, -1, -1, 206, -1, -1, -1, 210, -1, -1,
2184 213, 154, -1, -1, -1, -1, -1, -1, 221, -1,
2185 -1, -1, 71, 226, 932, 228, 594, -1, -1, -1,
2186 552, 939, -1, -1, 602, -1, -1, -1, 241, 242,
2187 -1, -1, -1, -1, -1, 294, -1, -1, -1, -1,
2188 -1, -1, -1, -1, -1, 198, 552, -1, -1, 817,
2189 -1, -1, -1, 206, 822, -1, 115, 210, 826, -1,
2190 213, -1, 321, 322, 323, 324, -1, -1, 221, -1,
2191 -1, 649, -1, 226, -1, 228, -1, -1, -1, -1,
2192 -1, -1, 341, -1, 852, -1, -1, -1, 241, 242,
2193 -1, -1, -1, 352, -1, -1, -1, -1, -1, -1,
2194 -1, -1, -1, -1, -1, 873, 874, -1, -1, -1,
2195 369, 879, 880, 881, 882, 883, 884, 885, 886, 887,
2196 888, 889, 154, -1, -1, -1, -1, 186, 187, 188,
2197 708, 190, -1, -1, -1, 1053, -1, -1, 1056, -1,
2198 -1, 719, 720, 721, 722, 723, 724, 725, 726, 408,
2199 -1, 1069, -1, -1, 1072, -1, -1, 416, -1, -1,
2200 1078, 929, -1, 1081, 1082, -1, 198, -1, -1, -1,
2201 -1, -1, -1, -1, 206, -1, -1, -1, 210, -1,
2202 -1, 213, -1, -1, -1, -1, -1, -1, -1, 221,
2203 -1, -1, -1, -1, 226, 408, 228, -1, -1, -1,
2204 -1, -1, -1, -1, -1, -1, 1124, -1, -1, 241,
2205 242, 1129, -1, 1131, 1132, -1, 429, 430, -1, -1,
2206 -1, -1, -1, -1, -1, 1143, -1, -1, -1, -1,
2207 808, -1, 18, -1, -1, -1, -1, -1, 24, -1,
2208 818, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2209 -1, 1169, -1, -1, -1, 408, -1, -1, -1, -1,
2210 -1, 47, 48, 49, -1, -1, -1, -1, -1, -1,
2211 -1, 1189, 1190, -1, -1, 1193, 429, 430, 1196, -1,
2212 -1, 859, -1, -1, 543, 71, -1, -1, -1, -1,
2213 -1, -1, -1, 552, -1, -1, 1064, -1, -1, -1,
2214 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2215 -1, -1, 890, 891, 892, 893, 894, 895, 896, 897,
2216 898, 899, 900, 901, 902, 903, 904, 905, 906, 115,
2217 908, -1, -1, 19, 20, -1, -1, -1, 24, 552,
2218 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2219 -1, -1, -1, -1, -1, -1, -1, -1, -1, 618,
2220 -1, 47, 48, 49, -1, -1, -1, -1, -1, -1,
2221 -1, -1, -1, -1, -1, -1, 408, -1, -1, -1,
2222 639, -1, 641, -1, -1, 71, -1, -1, 647, -1,
2223 -1, -1, 651, -1, 0, 1, 974, 429, 430, 552,
2224 186, 187, 188, -1, 190, -1, -1, -1, -1, -1,
2225 -1, -1, 18, -1, -1, -1, -1, -1, 24, -1,
2226 -1, -1, -1, -1, -1, -1, -1, -1, 34, 115,
2227 -1, -1, -1, 1011, -1, -1, -1, -1, 44, -1,
2228 46, -1, -1, -1, -1, -1, -1, -1, 707, -1,
2229 -1, -1, -1, -1, -1, -1, -1, -1, -1, 718,
2230 -1, -1, 68, 69, 70, -1, 72, -1, -1, -1,
2231 -1, 77, 78, 79, -1, -1, -1, -1, -1, -1,
2232 -1, -1, -1, -1, -1, -1, 92, 93, 94, -1,
2233 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2234 186, 187, 188, -1, 190, 111, 112, 113, 114, -1,
2235 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2236 552, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2237 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2238 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2239 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2240 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2241 176, 177, 178, 179, -1, -1, -1, -1, -1, -1,
2242 186, 187, 188, 189, -1, 191, 192, 193, 122, 123,
2243 124, 125, -1, 127, -1, -1, -1, -1, 132, 133,
2244 -1, -1, 136, 137, -1, 139, 140, 141, 142, -1,
2245 -1, -1, -1, -1, 1192, -1, 875, -1, -1, -1,
2246 154, 155, -1, -1, 0, 1, -1, -1, 1206, -1,
2247 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2248 -1, -1, 18, -1, -1, 179, -1, -1, 24, 1227,
2249 -1, -1, -1, -1, -1, 189, -1, -1, 34, -1,
2250 -1, -1, -1, -1, -1, -1, -1, -1, 44, -1,
2251 46, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2252 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2253 -1, -1, 68, 69, 70, -1, 72, -1, -1, -1,
2254 -1, 77, 78, 79, 963, -1, -1, -1, -1, -1,
2255 -1, -1, -1, -1, -1, -1, 92, 93, 94, -1,
2256 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2257 -1, -1, -1, -1, -1, 111, 112, 113, 114, -1,
2258 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2259 1009, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2260 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2261 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2262 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2263 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2264 176, 177, 178, 179, -1, -1, -1, -1, -1, -1,
2265 186, 187, 188, 189, 1073, 191, 192, 193, 1, -1,
2266 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2267 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2268 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2269 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2270 43, 44, -1, 46, 47, 48, 49, -1, -1, -1,
2271 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2272 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
2273 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2274 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2275 -1, -1, -1, 96, 97, 98, 99, 100, 101, -1,
2276 -1, -1, -1, -1, -1, -1, -1, 110, 111, 112,
2277 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2278 123, 124, 125, -1, 127, 128, 129, 130, 131, 132,
2279 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2280 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2281 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2282 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2283 173, 174, 175, 176, 177, 178, 179, -1, -1, -1,
2284 -1, -1, -1, 186, 187, 188, 189, 190, 191, 192,
2285 193, 1, -1, -1, -1, -1, 6, 7, 8, -1,
2286 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2287 -1, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2288 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2289 -1, -1, 42, 43, 44, -1, -1, 47, 48, 49,
2290 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2291 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
2292 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2293 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2294 -1, -1, -1, -1, -1, -1, 96, 97, 98, 99,
2295 100, 101, -1, -1, -1, -1, -1, -1, -1, -1,
2296 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2297 120, 121, 122, 123, 124, 125, -1, 127, 128, 129,
2298 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2299 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2300 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2301 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2302 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2303 -1, -1, -1, -1, -1, -1, 186, 187, 188, 189,
2304 190, 191, 192, 193, 1, -1, -1, -1, -1, 6,
2305 7, 8, -1, -1, 11, 12, 13, 14, 15, 16,
2306 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2307 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2308 -1, -1, -1, -1, -1, 42, 43, 44, -1, -1,
2309 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
2310 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2311 -1, 68, 69, 70, 71, -1, -1, -1, -1, -1,
2312 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2313 -1, -1, -1, -1, -1, -1, -1, -1, -1, 96,
2314 97, 98, 99, 100, 101, -1, -1, -1, -1, -1,
2315 -1, -1, -1, 110, 111, 112, 113, 114, 115, 116,
2316 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
2317 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2318 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2319 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2320 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2321 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2322 177, 178, 179, -1, -1, -1, -1, -1, -1, 186,
2323 187, 188, 189, 190, 191, 192, 193, 1, -1, -1,
2324 -1, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2325 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2326 24, -1, 26, -1, 28, 29, 30, 31, 32, 33,
2327 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2328 -1, 45, -1, 47, 48, 49, 50, 51, 52, 53,
2329 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2330 64, 65, 66, 67, -1, -1, -1, 71, -1, -1,
2331 -1, -1, -1, -1, -1, 19, 20, -1, -1, -1,
2332 24, -1, 26, -1, 28, 29, 30, 31, 32, 33,
2333 34, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2334 -1, -1, 1, 47, 48, 49, 110, 6, 7, 8,
2335 -1, 115, 11, 12, 13, 14, 15, 16, 17, 18,
2336 19, 20, -1, -1, -1, 24, 25, 71, -1, -1,
2337 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2338 -1, -1, -1, 42, 43, -1, -1, -1, 47, 48,
2339 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2340 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2341 -1, 115, 71, -1, -1, -1, -1, -1, -1, -1,
2342 -1, -1, 186, 187, 188, -1, 190, 191, 192, -1,
2343 -1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
2344 99, 100, 101, -1, -1, -1, -1, -1, 1, -1,
2345 -1, 110, -1, 6, 7, 8, 115, 10, 11, 12,
2346 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2347 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2348 33, 34, 186, 187, 188, -1, 190, 191, 192, 42,
2349 43, -1, -1, 1, 47, 48, 49, -1, 6, 7,
2350 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2351 18, 19, -1, -1, -1, -1, 24, -1, 71, -1,
2352 -1, 29, 30, 31, 32, 33, 34, 186, 187, 188,
2353 -1, 190, 191, 192, 42, 43, -1, -1, -1, 47,
2354 48, 49, 95, 96, 97, 98, 99, 100, 101, -1,
2355 -1, -1, -1, -1, -1, -1, 19, 110, -1, -1,
2356 -1, 24, 115, 71, -1, -1, 29, 30, 31, 32,
2357 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2358 -1, -1, -1, -1, 47, 48, 49, 95, 96, 97,
2359 98, 99, 100, 101, -1, -1, -1, -1, -1, 1,
2360 -1, -1, 110, -1, 6, 7, 8, 115, 71, 11,
2361 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2362 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2363 32, 33, 34, 186, 187, 188, -1, 190, 191, 192,
2364 42, 43, -1, -1, 1, 47, 48, 49, -1, 6,
2365 7, 8, 115, 10, 11, 12, 13, 14, 15, 16,
2366 17, 18, 19, 20, -1, -1, -1, 24, -1, 71,
2367 -1, -1, 29, 30, 31, 32, 33, 34, 186, 187,
2368 188, -1, 190, 191, 192, 42, 43, -1, -1, -1,
2369 47, 48, 49, 95, 96, 97, 98, 99, 100, 101,
2370 -1, -1, -1, -1, -1, -1, -1, 19, 110, -1,
2371 -1, -1, 24, 115, 71, -1, -1, 29, 30, 31,
2372 32, 33, 34, 186, 187, 188, -1, 190, -1, -1,
2373 -1, -1, -1, -1, -1, 47, 48, 49, -1, 96,
2374 97, 98, 99, 100, 101, -1, -1, -1, -1, -1,
2375 1, -1, -1, 110, -1, 6, 7, 8, 115, 71,
2376 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2377 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2378 31, 32, 33, 34, 186, 187, 188, -1, 190, 191,
2379 192, 42, 43, -1, -1, 1, 47, 48, 49, -1,
2380 6, 7, 8, 115, 10, 11, 12, 13, 14, 15,
2381 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2382 71, -1, -1, 29, 30, 31, 32, 33, 34, 186,
2383 187, 188, -1, 190, 191, 192, 42, 43, -1, -1,
2384 -1, 47, 48, 49, -1, 96, 97, 98, 99, 100,
2385 101, -1, -1, -1, -1, -1, -1, -1, -1, 110,
2386 -1, -1, -1, -1, 115, 71, -1, -1, -1, -1,
2387 -1, -1, -1, -1, 186, 187, 188, -1, 190, -1,
2388 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2389 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
2390 -1, -1, -1, -1, 110, -1, 6, 7, 8, 115,
2391 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2392 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2393 30, 31, 32, 33, 34, 186, 187, 188, -1, 190,
2394 191, 192, 42, 43, 44, -1, 46, 47, 48, 49,
2395 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2396 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2397 -1, 71, 72, -1, -1, -1, -1, -1, -1, -1,
2398 186, 187, 188, -1, 190, 191, 192, -1, -1, -1,
2399 -1, -1, -1, -1, -1, -1, 96, 97, 98, 99,
2400 100, 101, -1, -1, -1, -1, -1, -1, -1, -1,
2401 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2402 120, 121, 122, 123, 124, 125, -1, 127, 128, 129,
2403 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2404 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2405 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2406 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2407 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2408 -1, -1, -1, -1, -1, -1, 186, 187, 188, 189,
2409 190, 191, 192, 193, 6, 7, 8, -1, 10, 11,
2410 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2411 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2412 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2413 42, 43, 44, -1, 46, 47, 48, 49, -1, -1,
2414 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2415 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2416 72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2417 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2418 -1, -1, -1, -1, 96, 97, 98, 99, 100, 101,
2419 -1, -1, -1, -1, -1, -1, -1, -1, 110, 111,
2420 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2421 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2422 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2423 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2424 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2425 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2426 172, 173, 174, 175, 176, 177, 178, 179, -1, -1,
2427 -1, -1, -1, -1, 186, 187, 188, 189, 190, 191,
2428 192, 193, 6, 7, 8, -1, 10, 11, 12, 13,
2429 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2430 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2431 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2432 44, -1, 46, 47, 48, 49, -1, -1, -1, -1,
2433 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2434 -1, -1, -1, -1, -1, -1, -1, 71, 72, -1,
2435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2436 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2437 -1, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2438 -1, -1, -1, -1, -1, -1, 110, 111, 112, 113,
2439 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2440 124, 125, -1, 127, 128, 129, 130, 131, 132, 133,
2441 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2442 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2443 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2444 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2445 174, 175, 176, 177, 178, 179, -1, -1, -1, -1,
2446 -1, -1, 186, 187, 188, 189, 190, 191, 192, 193,
2447 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2448 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2449 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2450 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2451 -1, 47, 48, 49, -1, 6, 7, 8, -1, 10,
2452 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2453 -1, -1, -1, 24, -1, 71, -1, -1, 29, 30,
2454 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2455 -1, -1, -1, -1, -1, -1, 47, 48, 49, -1,
2456 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
2457 -1, -1, -1, -1, 110, -1, -1, -1, -1, 115,
2458 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2459 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2460 -1, -1, -1, -1, -1, 96, 97, 98, 99, 100,
2461 101, -1, -1, -1, -1, -1, -1, -1, -1, 110,
2462 -1, 6, 7, 8, 115, 10, 11, 12, 13, 14,
2463 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2464 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2465 186, 187, 188, -1, 190, 191, 192, -1, -1, -1,
2466 -1, -1, 47, 48, 49, -1, 6, 7, 8, -1,
2467 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2468 20, -1, -1, -1, 24, -1, 71, -1, -1, 29,
2469 30, 31, 32, 33, 34, 186, 187, 188, -1, 190,
2470 191, 192, -1, -1, -1, -1, -1, 47, 48, 49,
2471 -1, 96, 97, 98, 99, 100, 101, -1, -1, -1,
2472 -1, -1, -1, -1, -1, 110, -1, -1, -1, -1,
2473 115, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2475 -1, -1, -1, -1, -1, -1, 96, 97, 98, 99,
2476 100, 101, -1, -1, -1, -1, -1, -1, -1, -1,
2477 110, -1, 6, 7, 8, 115, 10, 11, 12, 13,
2478 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2479 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2480 34, 186, 187, 188, -1, 190, 191, 192, -1, -1,
2481 -1, -1, -1, 47, 48, 49, -1, 6, 7, 8,
2482 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2483 19, 20, -1, -1, -1, 24, -1, 71, -1, -1,
2484 29, 30, 31, 32, 33, 34, 186, 187, 188, -1,
2485 190, 191, 192, -1, -1, -1, -1, -1, 47, 48,
2486 49, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2487 -1, -1, -1, -1, -1, -1, 110, -1, -1, -1,
2488 -1, 115, 71, -1, -1, -1, 19, -1, -1, -1,
2489 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2490 33, 34, -1, -1, -1, -1, -1, 96, 97, 98,
2491 99, 100, 101, -1, 47, 48, 49, -1, -1, -1,
2492 -1, 110, -1, 6, 7, 8, 115, 10, 11, 12,
2493 13, 14, 15, 16, 17, 18, 19, 20, 71, -1,
2494 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2495 33, 34, 186, 187, 188, -1, 190, 191, 192, -1,
2496 -1, -1, -1, -1, 47, 48, 49, -1, 6, 7,
2497 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2498 18, 19, 115, -1, -1, -1, 24, -1, 71, -1,
2499 -1, 29, 30, 31, 32, 33, 34, 186, 187, 188,
2500 -1, 190, 191, 192, -1, -1, -1, -1, -1, 47,
2501 48, 49, -1, 96, 97, 98, 99, 100, 101, -1,
2502 -1, -1, -1, -1, -1, -1, -1, 110, -1, -1,
2503 -1, -1, 115, 71, -1, -1, -1, -1, -1, -1,
2504 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2505 -1, -1, -1, 186, 187, 188, -1, 190, 96, 97,
2506 98, 99, 100, 101, 19, -1, -1, -1, -1, 24,
2507 -1, -1, 110, -1, -1, -1, -1, 115, -1, -1,
2508 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2509 -1, 46, -1, -1, -1, -1, -1, -1, -1, -1,
2510 -1, -1, -1, 186, 187, 188, -1, 190, 191, 192,
2511 -1, -1, -1, -1, -1, -1, -1, 72, -1, -1,
2512 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2513 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2514 -1, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2515 188, -1, 190, 191, 192, -1, 111, 112, 113, 114,
2516 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2517 125, -1, 127, 128, 129, 130, 131, 132, 133, 134,
2518 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2519 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2520 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2521 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2522 175, 176, 177, 178, 179, 20, -1, -1, -1, -1,
2523 -1, -1, -1, 188, 189, -1, -1, -1, 193, -1,
2524 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
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, -1, -1, -1,
2528 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2530 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2531 -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
2532 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2533 125, -1, 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, 178, 179, -1, -1, -1, -1, -1,
2539 19, -1, -1, 188, 189, 24, -1, -1, 193, -1,
2540 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2541 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2542 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2544 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2545 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2546 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2547 -1, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2548 -1, -1, -1, -1, -1, 34, 115, -1, -1, -1,
2549 -1, -1, -1, -1, -1, 44, -1, -1, -1, -1,
2550 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2551 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2552 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2553 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2554 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2555 -1, -1, -1, -1, -1, -1, -1, 186, 187, 188,
2556 -1, 190, 111, 112, 113, 114, -1, 116, 117, 118,
2557 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
2558 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2559 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2560 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2561 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2562 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2563 179, -1, -1, -1, -1, -1, -1, 186, 187, 188,
2564 189, -1, 191, 192, 193, 24, 25, -1, -1, -1,
2565 29, 30, 31, 32, 33, 34, 24, -1, -1, 27,
2566 -1, 29, 30, 31, 32, 33, 34, -1, 47, 48,
2567 49, -1, -1, -1, -1, -1, -1, 24, 25, 47,
2568 48, 49, 29, 30, 31, 32, 33, 34, 24, -1,
2569 -1, 27, 71, 29, 30, 31, 32, 33, 34, -1,
2570 47, 48, 49, 71, -1, -1, -1, -1, -1, 24,
2571 25, 47, 48, 49, 29, 30, 31, 32, 33, 34,
2572 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
2573 -1, -1, 47, 48, 49, 71, 115, -1, -1, -1,
2574 -1, -1, -1, -1, -1, -1, -1, 115, -1, -1,
2575 -1, -1, -1, -1, -1, -1, 71, 24, -1, -1,
2576 -1, -1, 29, 30, 31, 32, 33, 34, 115, -1,
2577 -1, -1, -1, -1, -1, -1, -1, -1, 24, 115,
2578 47, 48, 49, 29, 30, 31, 32, 33, 34, 24,
2579 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2580 115, 47, 48, 49, 71, -1, -1, 186, 187, 188,
2581 -1, 190, 47, 48, 49, -1, -1, -1, 186, 187,
2582 188, 24, 190, -1, -1, 71, 29, 30, 31, 32,
2583 33, 34, -1, -1, -1, -1, 71, -1, -1, 186,
2584 187, 188, -1, 190, 47, 48, 49, -1, 115, -1,
2585 186, 187, 188, -1, 190, -1, -1, -1, -1, -1,
2586 -1, -1, -1, -1, -1, -1, -1, -1, 71, 115,
2587 -1, 186, 187, 188, -1, 190, -1, 24, -1, -1,
2588 115, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2589 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2590 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
2591 -1, -1, 115, -1, -1, -1, -1, -1, -1, 186,
2592 187, 188, -1, 190, 71, -1, -1, -1, -1, -1,
2593 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2594 186, 187, 188, -1, 190, -1, -1, -1, -1, -1,
2595 -1, 186, 187, 188, -1, 190, -1, -1, -1, -1,
2596 -1, -1, -1, -1, -1, -1, -1, -1, 115, -1,
2597 -1, -1, -1, -1, -1, 42, 43, 44, -1, -1,
2598 -1, -1, -1, 186, 187, 188, -1, 190, -1, -1,
2599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2602 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2603 -1, -1, -1, -1, -1, -1, -1, -1, -1, 186,
2604 187, 188, -1, 190, 111, 112, 113, 114, -1, 116,
2605 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
2606 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2607 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2608 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2609 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2610 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2611 177, 178, 179, 44, -1, 46, -1, -1, -1, -1,
2612 -1, 188, 189, -1, -1, -1, 193, -1, -1, -1,
2613 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
2614 -1, 72, -1, -1, -1, -1, -1, -1, -1, -1,
2615 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2616 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2618 111, 112, 113, 114, -1, 116, 117, 118, 119, 120,
2619 121, 122, 123, 124, 125, -1, 127, 128, 129, 130,
2620 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2621 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2622 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2623 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2624 171, 172, 173, 174, 175, 176, 177, 178, 179, 44,
2625 -1, 46, -1, -1, -1, -1, -1, 188, 189, -1,
2626 -1, -1, 193, -1, -1, -1, -1, -1, -1, -1,
2627 -1, -1, -1, -1, -1, -1, -1, 72, -1, -1,
2628 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2630 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2631 -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
2632 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2633 125, -1, 127, 128, 129, 130, 131, 132, 133, 134,
2634 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2635 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2636 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2637 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2638 175, 176, 177, 178, 179, 44, -1, -1, -1, -1,
2639 -1, 186, 187, 188, 189, -1, -1, -1, 193, -1,
2640 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
2641 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2644 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2645 -1, -1, 111, 112, 113, 114, -1, 116, 117, 118,
2646 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
2647 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2648 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2649 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2650 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2651 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2652 179, 44, -1, -1, -1, -1, -1, -1, -1, 188,
2653 189, -1, -1, -1, 193, -1, -1, -1, -1, -1,
2654 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2655 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2656 -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
2657 93, 94, -1, -1, -1, -1, -1, -1, -1, -1,
2658 -1, -1, -1, -1, -1, -1, -1, -1, 111, 112,
2659 113, 114, -1, 116, 117, 118, 119, 120, 121, 122,
2660 123, 124, 125, -1, 127, 128, 129, 130, 131, 132,
2661 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2662 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2663 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2664 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2665 173, 174, 175, 176, 177, 178, 179, 44, -1, 46,
2666 -1, -1, -1, -1, -1, 188, 189, -1, -1, -1,
2667 193, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2668 -1, -1, -1, -1, -1, 72, -1, -1, -1, -1,
2669 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2671 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2672 -1, -1, -1, -1, 111, 112, 113, 114, -1, 116,
2673 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
2674 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2675 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2676 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2677 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2678 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2679 177, 178, 179, 44, -1, -1, -1, -1, -1, -1,
2680 -1, 188, 189, -1, -1, -1, 193, -1, -1, -1,
2681 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2682 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2683 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2684 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2685 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2686 111, 112, 113, 114, -1, 116, 117, 118, 119, 120,
2687 121, 122, 123, 124, 125, -1, 127, 128, 129, 130,
2688 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2689 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2690 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2691 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2692 171, 172, 173, 174, 175, 176, 177, 178, 179, -1,
2693 -1, -1, -1, -1, -1, -1, -1, 188, 189, -1,
2696 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2698 /* This file comes from bison-1.28. */
2700 /* Skeleton output parser for bison,
2701 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2703 This program is free software; you can redistribute it and/or modify
2704 it under the terms of the GNU General Public License as published by
2705 the Free Software Foundation; either version 2, or (at your option)
2708 This program is distributed in the hope that it will be useful,
2709 but WITHOUT ANY WARRANTY; without even the implied warranty of
2710 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2711 GNU General Public License for more details.
2713 You should have received a copy of the GNU General Public License
2714 along with this program; if not, write to the Free Software
2715 Foundation, Inc., 59 Temple Place - Suite 330,
2716 Boston, MA 02111-1307, USA. */
2718 /* As a special exception, when this file is copied by Bison into a
2719 Bison output file, you may use that output file without restriction.
2720 This special exception was added by the Free Software Foundation
2721 in version 1.24 of Bison. */
2723 /* This is the parser code that is written into each bison parser
2724 when the %semantic_parser declaration is not specified in the grammar.
2725 It was written by Richard Stallman by simplifying the hairy parser
2726 used when %semantic_parser is specified. */
2728 #ifndef YYSTACK_USE_ALLOCA
2730 #define YYSTACK_USE_ALLOCA
2731 #else /* alloca not defined */
2733 #define YYSTACK_USE_ALLOCA
2734 #define alloca __builtin_alloca
2735 #else /* not GNU C. */
2736 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2737 #define YYSTACK_USE_ALLOCA
2739 #else /* not sparc */
2740 /* We think this test detects Watcom and Microsoft C. */
2741 /* This used to test MSDOS, but that is a bad idea
2742 since that symbol is in the user namespace. */
2743 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2744 #if 0 /* No need for malloc.h, which pollutes the namespace;
2745 instead, just don't use alloca. */
2748 #else /* not MSDOS, or __TURBOC__ */
2750 /* I don't know what this was needed for, but it pollutes the namespace.
2751 So I turned it off. rms, 2 May 1997. */
2752 /* #include <malloc.h> */
2754 #define YYSTACK_USE_ALLOCA
2755 #else /* not MSDOS, or __TURBOC__, or _AIX */
2757 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
2758 and on HPUX 10. Eventually we can turn this on. */
2759 #define YYSTACK_USE_ALLOCA
2760 #define alloca __builtin_alloca
2763 #endif /* not _AIX */
2764 #endif /* not MSDOS, or __TURBOC__ */
2765 #endif /* not sparc */
2766 #endif /* not GNU C */
2767 #endif /* alloca not defined */
2768 #endif /* YYSTACK_USE_ALLOCA not defined */
2770 #ifdef YYSTACK_USE_ALLOCA
2771 #define YYSTACK_ALLOC alloca
2773 #define YYSTACK_ALLOC malloc
2776 /* Note: there must be only one dollar sign in this file.
2777 It is replaced by the list of actions, each action
2778 as one case of the switch. */
2780 #define yyerrok (yyerrstatus = 0)
2781 #define yyclearin (yychar = YYEMPTY)
2784 #define YYACCEPT goto yyacceptlab
2785 #define YYABORT goto yyabortlab
2786 #define YYERROR goto yyerrlab1
2787 /* Like YYERROR except do call yyerror.
2788 This remains here temporarily to ease the
2789 transition to the new meaning of YYERROR, for GCC.
2790 Once GCC version 2 has supplanted version 1, this can go. */
2791 #define YYFAIL goto yyerrlab
2792 #define YYRECOVERING() (!!yyerrstatus)
2793 #define YYBACKUP(token, value) \
2795 if (yychar == YYEMPTY && yylen == 1) \
2796 { yychar = (token), yylval = (value); \
2797 yychar1 = YYTRANSLATE (yychar); \
2802 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2806 #define YYERRCODE 256
2809 #define YYLEX yylex()
2815 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2817 #define YYLEX yylex(&yylval, &yylloc)
2819 #else /* not YYLSP_NEEDED */
2821 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2823 #define YYLEX yylex(&yylval)
2825 #endif /* not YYLSP_NEEDED */
2828 /* If nonreentrant, generate the variables here */
2832 int yychar; /* the lookahead symbol */
2833 cgrammar_YYSTYPE yylval; /* the semantic value of the */
2834 /* lookahead symbol */
2837 YYLTYPE yylloc; /* location data for the lookahead */
2841 int yynerrs; /* number of parse errors so far */
2842 #endif /* not YYPURE */
2845 int yydebug; /* nonzero means print parse trace */
2846 /* Since this is uninitialized, it does not stop multiple parsers
2850 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2853 #define YYINITDEPTH 200
2856 /* YYMAXDEPTH is the maximum size the stacks can grow to
2857 (effective only if the built-in stack extension method is used). */
2864 #define YYMAXDEPTH 10000
2867 /* Define __yy_memcpy. Note that the size argument
2868 should be passed with type unsigned int, because that is what the non-GCC
2869 definitions require. With GCC, __builtin_memcpy takes an arg
2870 of type size_t, but it can handle unsigned int. */
2872 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2873 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2874 #else /* not GNU C or C++ */
2877 /* This is the most reliable way to avoid incompatibilities
2878 in available built-in functions on various systems. */
2880 __yy_memcpy (to, from, count)
2885 register char *f = from;
2886 register char *t = to;
2887 register int i = count;
2893 #else /* __cplusplus */
2895 /* This is the most reliable way to avoid incompatibilities
2896 in available built-in functions on various systems. */
2898 __yy_memcpy (char *to, char *from, unsigned int count)
2900 register char *t = to;
2901 register char *f = from;
2902 register int i = count;
2913 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2914 into yyparse. The argument should have type void *.
2915 It should actually point to an object.
2916 Grammar actions can access the variable by casting it
2917 to the proper pointer type. */
2919 #ifdef YYPARSE_PARAM
2921 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2922 #define YYPARSE_PARAM_DECL
2923 #else /* not __cplusplus */
2924 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2925 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2926 #endif /* not __cplusplus */
2927 #else /* not YYPARSE_PARAM */
2928 #define YYPARSE_PARAM_ARG
2929 #define YYPARSE_PARAM_DECL
2930 #endif /* not YYPARSE_PARAM */
2932 /* Prevent warning if -Wstrict-prototypes. */
2934 #ifdef YYPARSE_PARAM
2935 int yyparse (void *);
2942 yyparse(YYPARSE_PARAM_ARG)
2945 register int yystate;
2947 register short *yyssp;
2948 register cgrammar_YYSTYPE *yyvsp;
2949 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2950 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2952 short yyssa[YYINITDEPTH]; /* the state stack */
2953 cgrammar_YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2955 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2956 cgrammar_YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2959 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2960 YYLTYPE *yyls = yylsa;
2963 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2965 #define YYPOPSTACK (yyvsp--, yyssp--)
2968 int yystacksize = YYINITDEPTH;
2969 int yyfree_stacks = 0;
2973 cgrammar_YYSTYPE yylval;
2980 cgrammar_YYSTYPE yyval; /* the variable used to return */
2981 /* semantic values from the action */
2988 fprintf(stderr, "Starting parse\n");
2994 yychar = YYEMPTY; /* Cause a token to be read. */
2996 /* Initialize stack pointers.
2997 Waste one element of value and location stack
2998 so that they stay on the same level as the state stack.
2999 The wasted elements are never initialized. */
3007 /* Push a new state, which is found in yystate . */
3008 /* In all cases, when you get here, the value and location stacks
3009 have just been pushed. so pushing a state here evens the stacks. */
3014 if (yyssp >= yyss + yystacksize - 1)
3016 /* Give user a chance to reallocate the stack */
3017 /* Use copies of these so that the &'s don't force the real ones into memory. */
3018 cgrammar_YYSTYPE *yyvs1 = yyvs;
3019 short *yyss1 = yyss;
3021 YYLTYPE *yyls1 = yyls;
3024 /* Get the current used size of the three stacks, in elements. */
3025 int size = yyssp - yyss + 1;
3028 /* Each stack pointer address is followed by the size of
3029 the data in use in that stack, in bytes. */
3031 /* This used to be a conditional around just the two extra args,
3032 but that might be undefined if yyoverflow is a macro. */
3033 yyoverflow("parser stack overflow",
3034 &yyss1, size * sizeof (*yyssp),
3035 &yyvs1, size * sizeof (*yyvsp),
3036 &yyls1, size * sizeof (*yylsp),
3039 yyoverflow("parser stack overflow",
3040 &yyss1, size * sizeof (*yyssp),
3041 &yyvs1, size * sizeof (*yyvsp),
3045 yyss = yyss1; yyvs = yyvs1;
3049 #else /* no yyoverflow */
3050 /* Extend the stack our own way. */
3051 if (yystacksize >= YYMAXDEPTH)
3053 yyerror("parser stack overflow");
3065 if (yystacksize > YYMAXDEPTH)
3066 yystacksize = YYMAXDEPTH;
3067 #ifndef YYSTACK_USE_ALLOCA
3070 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
3071 __yy_memcpy ((char *)yyss, (char *)yyss1,
3072 size * (unsigned int) sizeof (*yyssp));
3073 yyvs = (cgrammar_YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
3074 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
3075 size * (unsigned int) sizeof (*yyvsp));
3077 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
3078 __yy_memcpy ((char *)yyls, (char *)yyls1,
3079 size * (unsigned int) sizeof (*yylsp));
3081 #endif /* no yyoverflow */
3083 yyssp = yyss + size - 1;
3084 yyvsp = yyvs + size - 1;
3086 yylsp = yyls + size - 1;
3091 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3094 if (yyssp >= yyss + yystacksize - 1)
3100 fprintf(stderr, "Entering state %d\n", yystate);
3106 /* Do appropriate processing given the current state. */
3107 /* Read a lookahead token if we need one and don't already have one. */
3110 /* First try to decide what to do without reference to lookahead token. */
3112 yyn = yypact[yystate];
3116 /* Not known => get a lookahead token if don't already have one. */
3118 /* yychar is either YYEMPTY or YYEOF
3119 or a valid token in external form. */
3121 if (yychar == YYEMPTY)
3125 fprintf(stderr, "Reading a token: ");
3130 /* Convert token to internal form (in yychar1) for indexing tables with */
3132 if (yychar <= 0) /* This means end of input. */
3135 yychar = YYEOF; /* Don't call YYLEX any more */
3139 fprintf(stderr, "Now at end of input.\n");
3144 yychar1 = YYTRANSLATE(yychar);
3149 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3150 /* Give the individual parser a way to print the precise meaning
3151 of a token, for further debugging info. */
3153 YYPRINT (stderr, yychar, yylval);
3155 fprintf (stderr, ")\n");
3161 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3166 /* yyn is what to do for this token type in this state.
3167 Negative => reduce, -yyn is rule number.
3168 Positive => shift, yyn is new state.
3169 New state is final state => don't bother to shift,
3170 just return success.
3171 0, or most negative number => error. */
3186 /* Shift the lookahead token. */
3190 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3193 /* Discard the token being shifted unless it is eof. */
3194 if (yychar != YYEOF)
3202 /* count tokens shifted since error; after three, turn off error status. */
3203 if (yyerrstatus) yyerrstatus--;
3208 /* Do the default action for the current state. */
3211 yyn = yydefact[yystate];
3215 /* Do a reduction. yyn is the number of a rule to reduce with. */
3219 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3226 fprintf (stderr, "Reducing via rule %d (line %d), ",
3229 /* Print the symbols being reduced, and their result. */
3230 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3231 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3232 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3240 { context_checkGlobalScope (); ;
3243 { context_checkGlobalScope (); ;
3246 { uentry_clearDecl (); ;
3249 { uentry_clearDecl (); ;
3252 { uentry_clearDecl (); ;
3255 { uentry_clearDecl (); ;
3258 { uentry_clearDecl (); ;
3261 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3264 { uentry_clearDecl (); lltok_free (yyvsp[0].tok); /* evans 2002-02-08: okay to have a null statement */ ;
3267 { uentry_clearDecl (); ;
3270 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); lltok_free2 (yyvsp[-7].tok, yyvsp[0].tok); ;
3273 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr); lltok_free3 (yyvsp[-10].tok, yyvsp[-5].tok, yyvsp[0].tok); ;
3276 { context_enterFunctionHeader (); ;
3280 declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3281 context_exitFunctionHeader ();
3282 lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); /*!*/
3287 qtype qint = qtype_create (ctype_int);
3288 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3293 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3296 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
3299 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3302 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;
3305 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
3309 exprNode_findValue (yyvsp[-2].expr);
3310 idDecl_notExpectingFunction (yyvsp[-5].ntyp);
3312 if (exprNode_hasValue (yyvsp[-2].expr))
3314 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp),
3315 exprNode_getLongValue (yyvsp[-2].expr)));
3319 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-5].ntyp)));
3322 lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
3326 { setCurrentParams (uentryList_missingParams); ;
3329 { /* need to support globals and modifies here! */
3330 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3331 uentryList_makeMissingParams ());
3333 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3334 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3336 /*drl 7/25/01 added*/
3337 setImplictfcnConstraints();
3338 lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
3342 { setCurrentParams (yyvsp[-1].entrylist); ;
3345 { setImplictfcnConstraints ();
3346 clearCurrentParams ();
3347 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3348 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3350 lltok_free2 (yyvsp[-4].tok, yyvsp[-2].tok);
3354 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3357 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;
3360 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp)));
3361 lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok);
3368 if (exprNode_hasValue (yyvsp[-2].expr)
3369 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3371 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3378 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3379 lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
3383 { setCurrentParams (uentryList_missingParams); ;
3387 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3388 uentryList_makeMissingParams ());
3390 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3391 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3393 lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
3397 { setCurrentParams (yyvsp[-1].entrylist); ;
3401 clearCurrentParams ();
3402 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3403 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3405 lltok_free (yyvsp[-4].tok);
3406 /*!! lltok_free2 ($3, $5); */
3410 { setCurrentParams (yyvsp[-1].entrylist); ;
3413 { clearCurrentParams (); ;
3416 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist);
3417 lltok_free3 (yyvsp[-9].tok, yyvsp[-7].tok, yyvsp[-5].tok);
3421 { exprNode_checkMacroBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
3424 { exprNode_checkIterBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
3427 { exprNode_checkIterEnd (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok);;
3430 { exprChecks_checkEmptyMacroBody (); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
3433 { clabstract_declareFunction (yyvsp[0].ntyp); ;
3436 { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;
3439 { cscanner_expectingMetaStateName (); ;
3442 { cscanner_clearExpectingMetaStateName ();
3443 yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo);
3444 lltok_free (yyvsp[-1].tok);
3448 { cscanner_expectingMetaStateName (); ;
3451 { cscanner_clearExpectingMetaStateName ();
3452 yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo);
3453 lltok_free2 (yyvsp[-3].tok, yyvsp[-1].tok);
3457 { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
3460 { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;
3463 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3466 { yyval.conL = constraintList_single (yyvsp[0].con); ;
3470 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3471 DPRINTF(("Done BufConstraint1\n")); ;
3474 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3478 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3479 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3482 { yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
3485 { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
3488 { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
3491 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3494 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3500 t = cstring_toCharsSafe (exprNode_unparse($3));
3503 yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3507 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3510 { yyval.sr = yyvsp[-1].sr; ;
3513 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3516 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3519 { yyval.funcclauselist = functionClauseList_new (); ;
3522 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3525 { yyval.funcclauselist = functionClauseList_new (); ;
3528 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3531 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3534 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3537 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3540 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3543 { yyval.funcclause = yyvsp[0].funcclause; ;
3546 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3549 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3552 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3555 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3558 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3561 { yyval.funcclause = yyvsp[0].funcclause; ;
3564 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3567 { yyval.globsclause = yyvsp[-1].globsclause; ;
3570 { setProcessingGlobalsList (); ;
3574 unsetProcessingGlobals ();
3575 yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
3579 { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
3582 { yyval.modsclause = yyvsp[-1].modsclause; ;
3586 context_setProtectVars (); enterParamsTemp ();
3587 sRef_setGlobalScopeSafe ();
3593 sRef_clearGlobalScopeSafe ();
3594 context_releaseVars ();
3595 yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3599 { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
3602 { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
3605 { yyval.warnclause = warnClause_undefined; ;
3608 { yyval.warnclause = yyvsp[-1].warnclause; ;
3612 llassert (exprNode_knownStringValue (yyvsp[0].expr));
3613 yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
3614 exprNode_free (yyvsp[0].expr);
3618 { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
3621 { yyval.globset = globSet_single (yyvsp[0].sr); ;
3624 { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3627 { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3630 { yyval.tquallist = qualList_undefined; ;
3633 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3636 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3639 { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3642 { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3645 { yyval.typequal = qual_createUndef (); ;
3648 { yyval.typequal = qual_createKilled (); ;
3651 { yyval.typequal = qual_createOut (); ;
3654 { yyval.typequal = qual_createIn (); ;
3657 { yyval.typequal = qual_createPartial (); ;
3661 /**!!! deal with fred; fred (int); declarations! **/
3662 qtype qint = qtype_create (ctype_int);
3663 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3668 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3671 { checkDoneParams (); context_enterInnerContext (); ;
3675 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3676 context_exitInner (yyvsp[0].expr);
3680 { context_enterOldStyleScope (); ;
3683 { oldStyleDoneParams (); context_enterInnerContext (); ;
3687 exprNode_checkFunctionBody (yyvsp[0].expr);
3688 yyval.expr = yyvsp[0].expr; /* oldstyle */
3689 context_exitInner (yyvsp[0].expr);
3694 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3695 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3698 context_exitFunction ();
3702 { yyval.srset = yyvsp[-1].srset; ;
3705 { yyval.srset = sRefSet_new (); ;
3708 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3711 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3714 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3717 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3720 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3723 { yyval.sr = yyvsp[-1].sr; ;
3726 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3729 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3732 { yyval.sr = yyvsp[0].sr; ;
3735 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3738 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3741 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3744 { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
3747 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3750 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3753 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3756 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3759 { yyval.sr = yyvsp[-1].sr; ;
3762 { cstring_markOwned (yyvsp[0].cname);
3763 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3766 { cstring_markOwned (yyvsp[0].cname);
3767 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3770 { yyval.srset = sRefSet_undefined ;
3773 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3774 else { yyval.srset = sRefSet_undefined; }
3778 { if (sRef_isValid (yyvsp[0].sr))
3780 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3784 yyval.srset = yyvsp[-2].srset;
3789 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3792 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3795 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3798 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3801 { yyval.expr = exprNode_makeError (); ;
3804 { exprChecks_inCompoundStatementExpression (); ;
3807 { exprChecks_leaveCompoundStatementExpression (); yyval.expr = exprNode_compoundStatementExpression (yyvsp[-3].tok, yyvsp[-1].expr); ;
3810 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3813 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3816 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
3819 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3822 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3825 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3828 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3831 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3834 { /* added for C99 */ yyval.expr = exprNode_undefined; /*@i87 no checking */ ;
3837 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3840 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
3843 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3846 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3849 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3852 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3855 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3858 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3861 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3864 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3867 { yyval.expr = yyvsp[0].expr; ;
3870 { yyval.expr = yyvsp[0].expr; ;
3873 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); lltok_free (yyvsp[-1].tok); ;
3876 { yyval.cstringlist = yyvsp[-3].cstringlist; lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
3879 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3882 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist);
3883 lltok_free3 (yyvsp[-8].tok, yyvsp[-6].tok, yyvsp[-3].tok); lltok_free (yyvsp[-1].tok); ;
3886 { context_setProtectVars (); ;
3889 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3892 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ;
3895 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;
3898 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ;
3901 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;
3904 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); lltok_free (yyvsp[-1].tok); ;
3907 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3910 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3913 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3916 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3919 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3922 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3925 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3928 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3931 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3934 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3937 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3940 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3943 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3946 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3949 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3952 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3955 { exprNode_produceGuards (yyvsp[-1].expr);
3956 context_enterAndClause (yyvsp[-1].expr);
3961 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3962 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3967 exprNode_produceGuards (yyvsp[-1].expr);
3968 context_enterOrClause (yyvsp[-1].expr);
3973 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3974 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3978 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3981 { context_enterFalseClause (yyvsp[-4].expr); ;
3984 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3987 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3990 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3993 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3996 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3999 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4002 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4005 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4008 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4011 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4014 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4017 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4020 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
4023 { yyval.expr = exprNode_undefined; ;
4026 { yyval.expr = yyvsp[0].expr; ;
4029 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
4032 { yyval.expr = exprNode_makeError (); ;
4035 { yyval.expr = exprNode_makeError (); ;
4039 setProcessingVars (yyvsp[-3].qtyp);
4040 processNamedDecl (yyvsp[-1].ntyp);
4045 unsetProcessingVars ();
4046 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
4047 DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
4051 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
4054 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4055 unsetProcessingVars ();
4060 processNamedDecl (yyvsp[-1].ntyp);
4061 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
4065 { processNamedDecl (yyvsp[-2].ntyp); ;
4068 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4071 { setProcessingTypedef (yyvsp[0].qtyp); ;
4074 { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
4077 { /* in the ANSI grammar, semantics unclear */ ;
4080 { /* in the ANSI grammar, semantics unclear */ ;
4083 { g_expectingTypeName = TRUE; ;
4086 { g_expectingTypeName = TRUE; context_pushLoc (); ;
4089 { yyval.exprlist = yyvsp[-1].exprlist; ;
4092 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4095 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4098 { yyval.expr = exprNode_makeError (); ;
4101 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4104 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); lltok_free (yyvsp[0].tok); ;
4107 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
4110 { yyval.expr = exprNode_undefined; ;
4113 { yyval.expr = yyvsp[-1].expr; ;
4116 { yyval.expr = exprNode_undefined;
4117 /* gcc extension, obsolete since 2.5 */ ;
4120 { yyval.expr = exprNode_undefined; ;
4123 { yyval.expr = exprNode_undefined; ;
4126 { yyval.expr = exprNode_undefined; ;
4129 { yyval.expr = exprNode_undefined; ;
4132 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4135 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4138 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4141 { yyval.typequal = qual_createInline (); ;
4144 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4147 { yyval.typequal = qual_createAuto (); ;
4150 { yyval.typequal = qual_createRegister (); ;
4153 { yyval.stateclause = yyvsp[-1].stateclause; ;
4157 context_setProtectVars ();
4159 sRef_setGlobalScopeSafe ();
4165 sRef_clearGlobalScopeSafe ();
4166 context_releaseVars ();
4167 yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4171 { yyval.funcclause = yyvsp[-1].funcclause; ;
4174 { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
4178 context_exitFunctionHeader ();
4179 context_setProtectVars ();
4181 sRef_setGlobalScopeSafe ();
4187 sRef_clearGlobalScopeSafe ();
4188 context_releaseVars ();
4189 yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4194 context_setProtectVars ();
4196 sRef_setGlobalScopeSafe ();
4201 context_exitFunctionHeader ();
4203 sRef_clearGlobalScopeSafe ();
4204 context_releaseVars ();
4205 DPRINTF (("done optGlobBufConstraintsAux\n"));
4207 if (lltok_isEnsures (yyvsp[-4].tok))
4209 yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4211 else if (lltok_isRequires (yyvsp[-4].tok))
4213 yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4220 DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4224 { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
4227 { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
4230 { yyval.typequal = qual_createExits (); ;
4233 { yyval.typequal = qual_createMayExit (); ;
4236 { yyval.typequal = qual_createTrueExit (); ;
4239 { yyval.typequal = qual_createFalseExit (); ;
4242 { yyval.typequal = qual_createNeverExit (); ;
4245 { yyval.typequal = qual_createChecked (); ;
4248 { yyval.typequal = qual_createCheckMod (); ;
4251 { yyval.typequal = qual_createUnchecked (); ;
4254 { yyval.typequal = qual_createCheckedStrict (); ;
4257 { yyval.typequal = qual_createOwned (); ;
4260 { yyval.typequal = qual_createDependent (); ;
4263 { yyval.typequal = qual_createYield (); ;
4266 { yyval.typequal = qual_createTemp (); ;
4269 { yyval.typequal = qual_createOnly (); ;
4272 { yyval.typequal = qual_createKeep (); ;
4275 { yyval.typequal = qual_createKept (); ;
4278 { yyval.typequal = qual_createShared (); ;
4281 { yyval.typequal = qual_createUnique (); ;
4284 { yyval.typequal = qual_createNull (); ;
4287 { yyval.typequal = qual_createIsNull (); ;
4290 { yyval.typequal = qual_createRelNull (); ;
4293 { yyval.typequal = qual_createNotNull (); ;
4296 { yyval.typequal = qual_createExposed (); ;
4299 { yyval.typequal = qual_createObserver (); ;
4302 { yyval.typequal = qual_createNullTerminated (); ;
4305 { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
4308 { yyval.typequal = qual_createReturned (); ;
4311 { yyval.typequal = qual_createSef (); ;
4314 { yyval.typequal = qual_createUnused (); ;
4317 { yyval.typequal = qual_createExternal (); ;
4320 { yyval.typequal = qual_createTrueNull (); ;
4323 { yyval.typequal = qual_createFalseNull (); ;
4326 { yyval.typequal = qual_createAbstract (); ;
4329 { yyval.typequal = qual_createConcrete (); ;
4332 { yyval.typequal = qual_createMutable (); ;
4335 { yyval.typequal = qual_createImmutable (); ;
4338 { yyval.typequal = qual_createRefCounted (); ;
4341 { yyval.typequal = qual_createRefs (); ;
4344 { yyval.typequal = qual_createKillRef (); ;
4347 { yyval.typequal = qual_createRelDef (); ;
4350 { yyval.typequal = qual_createNewRef (); ;
4353 { yyval.typequal = qual_createTempRef (); ;
4356 { yyval.typequal = qual_createShort (); ;
4359 { yyval.typequal = qual_createLong (); ;
4362 { yyval.typequal = qual_createSigned (); ;
4365 { yyval.typequal = qual_createUnsigned (); ;
4368 { yyval.typequal = qual_createOut (); ;
4371 { yyval.typequal = qual_createIn (); ;
4374 { yyval.typequal = qual_createPartial (); ;
4377 { yyval.typequal = qual_createSpecial (); ;
4380 { yyval.typequal = qual_createConst (); ;
4383 { yyval.typequal = qual_createVolatile (); ;
4386 { yyval.typequal = qual_createRestrict (); ;
4389 { yyval.typequal = yyvsp[-1].typequal; ;
4392 { yyval.typequal = yyvsp[-1].typequal; ;
4395 { yyval.typequal = yyvsp[-1].typequal; ;
4398 { yyval.typequal = yyvsp[-1].typequal; ;
4401 { yyval.typequal = yyvsp[-1].typequal; ;
4404 { yyval.typequal = yyvsp[-1].typequal; ;
4407 { yyval.typequal = yyvsp[-1].typequal; ;
4410 { yyval.typequal = yyvsp[-1].typequal; ;
4413 { yyval.typequal = yyvsp[-1].typequal; ;
4416 { yyval.ctyp = ctype_makeAnytype (); ;
4419 { yyval.ctyp = ctype_anyintegral; ;
4422 { yyval.ctyp = ctype_unsignedintegral; ;
4425 { yyval.ctyp = ctype_signedintegral; ;
4428 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4431 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4434 { yyval.qtyp = yyvsp[0].qtyp; ;
4437 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4440 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4443 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4446 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4449 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4452 { yyval.qtyp = qtype_unknown (); ;
4455 { yyval.qtyp = yyvsp[0].qtyp; ;
4458 { yyval.conL = constraintList_undefined; ;
4461 { sRef_setGlobalScopeSafe (); ;
4464 { sRef_clearGlobalScopeSafe (); ;
4467 { ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); setGlobalStructInfo(ct, yyvsp[0].conL); yyval.ctyp = ct; ;
4470 { sRef_setGlobalScopeSafe (); ;
4473 { sRef_clearGlobalScopeSafe (); ;
4476 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4479 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4482 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4485 { sRef_setGlobalScopeSafe (); ;
4488 { sRef_clearGlobalScopeSafe (); ;
4491 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4494 { sRef_setGlobalScopeSafe (); ;
4497 { sRef_clearGlobalScopeSafe (); ;
4500 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4503 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4506 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4509 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4512 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4515 { g_expectingTypeName = FALSE; ;
4518 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4521 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4524 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4527 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4530 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4533 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4536 { yyval.ntyp = yyvsp[0].ntyp; ;
4539 { yyval.ntyp = idDecl_undefined; ;
4542 { yyval.ntyp = yyvsp[-3].ntyp; ;
4545 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4548 { context_pushLoc (); ;
4551 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4554 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4557 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4560 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4563 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4564 usymtab_supGlobalEntry (ue);
4565 yyval.cname = yyvsp[0].cname;
4569 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4570 usymtab_supGlobalEntry (ue);
4571 yyval.cname = yyvsp[-3].cname;
4575 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4579 qtype qt = qtype_unknown ();
4580 qtype_adjustPointers (yyvsp[-1].pointers, qt);
4581 yyval.ntyp = idDecl_create (cstring_copy (cscanner_observeLastIdentifier ()), qt);
4585 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
4588 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
4591 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4594 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4597 { yyval.typequal = qual_createConst (); ;
4600 { yyval.typequal = qual_createRestrict (); ;
4603 { yyval.typequal = qual_createVolatile (); ;
4606 { yyval.tquallist = qualList_single (yyvsp[0].typequal); ;
4609 { yyval.tquallist = qualList_add (yyvsp[-1].tquallist, yyvsp[0].typequal); ;
4612 { yyval.pointers = pointers_create (yyvsp[0].tok); ;
4615 { yyval.pointers = pointers_createMods (yyvsp[-1].tok, yyvsp[0].tquallist); ;
4618 { yyval.pointers = pointers_extend (pointers_create (yyvsp[-1].tok), yyvsp[0].pointers); ;
4621 { yyval.pointers = pointers_extend (pointers_createMods (yyvsp[-2].tok, yyvsp[-1].tquallist), yyvsp[0].pointers); ;
4624 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4627 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4630 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4633 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4636 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4642 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4648 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4652 if (isFlipOldStyle ())
4654 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4660 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4665 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4669 llparseerror (message ("Inconsistent function parameter syntax: %q",
4670 idDecl_unparse (tparam)));
4674 yyval.oentry = makeCurrentParam (tparam);
4675 idDecl_free (tparam);
4679 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4682 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;
4685 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;
4688 { yyval.ctyp = ctype_unknown; ;
4691 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4694 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4697 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4700 { yyval.ctyp = ctype_makeInnerArray (yyvsp[-2].ctyp); ;
4703 { yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4706 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4709 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4712 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4715 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4718 { yyval.expr = yyvsp[0].expr; ;
4721 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4724 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4727 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4730 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4733 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4736 { context_setProtectVars (); ;
4739 { context_sizeofReleaseVars (); ;
4742 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4743 context_enterForClause (yyvsp[-5].expr); ;
4746 { setProcessingIterVars (yyvsp[-2].entry); ;
4749 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
4752 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4755 { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
4758 { yyval.expr = yyvsp[-1].expr; ;
4761 { yyval.expr = exprNode_makeError (); ;
4764 { exprNode_checkIfPred (yyvsp[0].expr); ;
4767 { /* don't: context_exitTrueClause ($1, $2); */
4768 yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr);
4772 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4775 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4778 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4781 { yyval.expr = exprNode_makeError (); ;
4784 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4787 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4796 { context_enterCaseClause (yyvsp[0].expr); ;
4799 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4802 { context_enterCaseClause (yyvsp[0].expr); ;
4805 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4808 { context_enterCaseClause (exprNode_undefined); ;
4811 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4814 { context_enterCaseClause (exprNode_undefined); ;
4817 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4820 { yyval.expr = yyvsp[-1].expr; ;
4823 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4826 { yyval.expr = yyvsp[-1].expr; ;
4829 { context_enterInnerContext (); ;
4832 { context_exitInnerPlain (); ;
4835 { context_enterStructInnerContext (); ;
4838 { context_exitStructInnerContext (); ;
4841 { context_exitInnerSafe (); ;
4844 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4847 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4850 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4853 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4856 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4859 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4862 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4865 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4866 lltok_getLoc (yyvsp[-1].tok)));
4870 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4873 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4876 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4879 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4882 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4885 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4888 { yyval.expr = yyvsp[0].expr; ;
4891 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4894 { yyval.expr = yyvsp[0].expr; ;
4897 { yyval.expr = exprNode_concat (yyvsp[-2].expr, yyvsp[0].expr); ;
4900 { yyval.expr = yyvsp[0].expr; ;
4903 { yyval.expr = yyvsp[-2].expr; ;
4906 { yyval.expr = yyvsp[0].expr; ;
4909 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4912 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4915 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4918 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4921 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4924 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
4928 exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr);
4929 exprNode_checkIfPred (yyvsp[-1].expr);
4930 yyval.expr = yyvsp[-1].expr;
4935 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4936 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4940 { context_enterFalseClause (yyvsp[-2].expr); ;
4944 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4945 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4949 { context_enterSwitch (yyvsp[0].expr); ;
4952 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4955 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4958 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4961 { context_enterIterClause (); ;
4964 { setProcessingIterVars (yyvsp[-3].entry); ;
4968 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
4973 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4976 { nextIterParam (); ;
4979 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4982 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4985 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4988 { uentry ue = coerceIterId (yyvsp[0].cname);
4990 if (uentry_isValid (ue))
4992 yyval.expr = exprNode_iterId (ue);
4996 yyval.expr = exprNode_iterNewId (cstring_copy (cscanner_observeLastIdentifier ()));
5001 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
5004 { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
5007 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5010 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
5013 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
5016 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
5019 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
5022 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5025 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5028 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5031 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5034 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5037 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5040 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5043 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5046 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5049 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5052 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5055 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5058 { yyval.expr = yyvsp[0].expr; ;
5061 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
5064 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5067 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5070 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5073 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5076 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5079 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5082 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5085 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5088 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5091 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5094 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5097 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5100 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5103 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5106 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5109 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5112 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5115 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5118 { context_enterTrueClause (yyvsp[-1].expr); ;
5121 { context_enterFalseClause (yyvsp[-4].expr); ;
5124 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5127 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5130 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5133 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5136 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5139 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5142 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5145 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5148 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5151 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5154 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5157 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5160 { yyval.entry = yyvsp[0].entry; ;
5163 { yyval.entry = uentry_undefined; ;
5166 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5169 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5172 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5175 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5178 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5181 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5184 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5187 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5190 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5193 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5196 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5199 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5202 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5205 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5208 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5211 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5214 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5217 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5226 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5229 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5232 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5235 { yyval.cname = yyvsp[0].cname; ;
5238 { yyval.ctyp = ctype_unknown; ;
5241 { yyval.ctyp = exprNode_getType (yyvsp[-1].expr); exprNode_free (yyvsp[-1].expr); ;
5244 { yyval.ctyp = qtype_getType (yyvsp[-1].qtyp); ;
5247 /* the action file gets copied in in place of this dollarsign */
5259 short *ssp1 = yyss - 1;
5260 fprintf (stderr, "state stack now");
5261 while (ssp1 != yyssp)
5262 fprintf (stderr, " %d", *++ssp1);
5263 fprintf (stderr, "\n");
5273 yylsp->first_line = yylloc.first_line;
5274 yylsp->first_column = yylloc.first_column;
5275 yylsp->last_line = (yylsp-1)->last_line;
5276 yylsp->last_column = (yylsp-1)->last_column;
5281 yylsp->last_line = (yylsp+yylen-1)->last_line;
5282 yylsp->last_column = (yylsp+yylen-1)->last_column;
5286 /* Now "shift" the result of the reduction.
5287 Determine what state that goes to,
5288 based on the state we popped back to
5289 and the rule number reduced by. */
5293 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5294 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5295 yystate = yytable[yystate];
5297 yystate = yydefgoto[yyn - YYNTBASE];
5301 yyerrlab: /* here on detecting error */
5304 /* If not already recovering from an error, report this error. */
5308 #ifdef YYERROR_VERBOSE
5309 yyn = yypact[yystate];
5311 if (yyn > YYFLAG && yyn < YYLAST)
5318 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5319 for (x = (yyn < 0 ? -yyn : 0);
5320 x < (sizeof(yytname) / sizeof(char *)); x++)
5321 if (yycheck[x + yyn] == x)
5322 size += strlen(yytname[x]) + 15, count++;
5323 msg = (char *) malloc(size + 15);
5326 strcpy(msg, "parse error");
5331 for (x = (yyn < 0 ? -yyn : 0);
5332 x < (sizeof(yytname) / sizeof(char *)); x++)
5333 if (yycheck[x + yyn] == x)
5335 strcat(msg, count == 0 ? ", expecting `" : " or `");
5336 strcat(msg, yytname[x]);
5345 yyerror ("parse error; also virtual memory exceeded");
5348 #endif /* YYERROR_VERBOSE */
5349 yyerror("parse error");
5353 yyerrlab1: /* here on error raised explicitly by an action */
5355 if (yyerrstatus == 3)
5357 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5359 /* return failure if at end of input */
5360 if (yychar == YYEOF)
5365 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5371 /* Else will try to reuse lookahead token
5372 after shifting the error token. */
5374 yyerrstatus = 3; /* Each real token shifted decrements this */
5378 yyerrdefault: /* current state does not do anything special for the error token. */
5381 /* This is wrong; only states that explicitly want error tokens
5382 should shift them. */
5383 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5384 if (yyn) goto yydefault;
5387 yyerrpop: /* pop the current state because it cannot handle the error token */
5389 if (yyssp == yyss) YYABORT;
5399 short *ssp1 = yyss - 1;
5400 fprintf (stderr, "Error: state stack now");
5401 while (ssp1 != yyssp)
5402 fprintf (stderr, " %d", *++ssp1);
5403 fprintf (stderr, "\n");
5409 yyn = yypact[yystate];
5414 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5433 fprintf(stderr, "Shifting error token, ");
5445 /* YYACCEPT comes here. */
5457 /* YYABORT comes here. */
5470 /*@-redecl@*/ /*@-namechecks@*/
5471 extern char *yytext;
5472 /*@=redecl@*/ /*@=namechecks@*/
5474 # include "bison.reset"
5476 void yyerror (/*@unused@*/ char *s)
5478 static bool givehint = FALSE;
5480 if (context_inIterDef ())
5482 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5483 context_inFunctionName ()));
5485 else if (context_inIterEnd ())
5487 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5488 context_inFunctionName ()));
5490 else if (context_inMacro ())
5492 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5493 context_inFunctionName ()));
5495 if (context_inUnknownMacro ())
5499 llhint (cstring_makeLiteral
5500 ("Precede macro definition with /*@notfunction@*/ "
5501 "to suppress checking and force expansion"));
5506 cscanner_swallowMacro ();
5507 context_exitAllClausesQuiet ();
5511 llparseerror (cstring_undefined);
5527 ** Resets all flags in bison.head
5549 /*@=evalorderuncon@*/
5558 /*@=elseifcomplete@*/
5562 /*@=readonlytrans@*/
5565 /*@=systemunrecog@*/
5566 /*@=dependenttrans@*/
5567 /*@=unqualifiedtrans@*/
5571 /*drl added 11/27/2001*/