/* ** Inserted at beginning of c files generated by bison ** REMEMBER: Change bison.reset too. */ /*@-allmacros@*/ /*@+boolint@*/ /*@+charint@*/ /*@-macroparams@*/ /*@-macroundef@*/ /*@-unreachable@*/ /*@-macrospec@*/ /*@-varuse@*/ /*@+ignorequals@*/ /*@-macrostmt@*/ /*@-noeffect@*/ /*@-shadow@*/ /*@-exitarg@*/ /*@-macroredef@*/ /*@-uniondef@*/ /*@-compdef@*/ /*@-matchfields@*/ /*@-exportlocal@*/ /*@-evalorderuncon@*/ /*@-exportheader@*/ /*@-typeuse@*/ /*@-redecl@*/ /*@-redef@*/ /*@-noparams@*/ /*@-ansireserved@*/ /*@-fielduse@*/ /*@-ifblock@*/ /*@-elseifcomplete@*/ /*@-whileblock@*/ /*@-forblock@*/ /*@-branchstate@*/ /*@-readonlytrans@*/ /*@-namechecks@*/ /*@-usedef@*/ /*@-systemunrecog@*/ /*@-dependenttrans@*/ /*@-unqualifiedtrans@*/ /*@-nullassign@*/ /*@-nullpass@*/ /*@-nullptrarith*/ /*@-usereleased@*/ /*@-declundef@*/ /*drl added 11/27/2001*/ /*@-bounds@*/ /*drl added 12/11/2002*/ /*@-type@*/ /* < end of bison.head > */ /* A Bison parser, made from cgrammar.y by GNU bison 1.35. */ #define YYBISON 1 /* Identify Bison output. */ # define BADTOK 257 # define SKIPTOK 258 # define CTOK_ELIPSIS 259 # define CASE 260 # define DEFAULT 261 # define CIF 262 # define CELSE 263 # define SWITCH 264 # define WHILE 265 # define DO 266 # define CFOR 267 # define GOTO 268 # define CONTINUE 269 # define BREAK 270 # define RETURN 271 # define TSEMI 272 # define TLBRACE 273 # define TRBRACE 274 # define TCOMMA 275 # define TCOLON 276 # define TASSIGN 277 # define TLPAREN 278 # define TRPAREN 279 # define TLSQBR 280 # define TRSQBR 281 # define TDOT 282 # define TAMPERSAND 283 # define TEXCL 284 # define TTILDE 285 # define TMINUS 286 # define TPLUS 287 # define TMULT 288 # define TDIV 289 # define TPERCENT 290 # define TLT 291 # define TGT 292 # define TCIRC 293 # define TBAR 294 # define TQUEST 295 # define CSIZEOF 296 # define CALIGNOF 297 # define CTYPEOF 298 # define ARROW_OP 299 # define CTYPEDEF 300 # define COFFSETOF 301 # define INC_OP 302 # define DEC_OP 303 # define LEFT_OP 304 # define RIGHT_OP 305 # define LE_OP 306 # define GE_OP 307 # define EQ_OP 308 # define NE_OP 309 # define AND_OP 310 # define OR_OP 311 # define MUL_ASSIGN 312 # define DIV_ASSIGN 313 # define MOD_ASSIGN 314 # define ADD_ASSIGN 315 # define SUB_ASSIGN 316 # define LEFT_ASSIGN 317 # define RIGHT_ASSIGN 318 # define AND_ASSIGN 319 # define XOR_ASSIGN 320 # define OR_ASSIGN 321 # define CSTRUCT 322 # define CUNION 323 # define CENUM 324 # define VA_ARG 325 # define VA_DCL 326 # define QWARN 327 # define QGLOBALS 328 # define QMODIFIES 329 # define QNOMODS 330 # define QCONSTANT 331 # define QFUNCTION 332 # define QITER 333 # define QDEFINES 334 # define QUSES 335 # define QALLOCATES 336 # define QSETS 337 # define QRELEASES 338 # define QPRECLAUSE 339 # define QPOSTCLAUSE 340 # define QINVARIANT 341 # define QALT 342 # define QUNDEF 343 # define QKILLED 344 # define QENDMACRO 345 # define LLMACRO 346 # define LLMACROITER 347 # define LLMACROEND 348 # define TENDMACRO 349 # define QSWITCHBREAK 350 # define QLOOPBREAK 351 # define QINNERBREAK 352 # define QSAFEBREAK 353 # define QINNERCONTINUE 354 # define QFALLTHROUGH 355 # define QLINTNOTREACHED 356 # define QLINTFALLTHROUGH 357 # define QLINTFALLTHRU 358 # define QARGSUSED 359 # define QPRINTFLIKE 360 # define QLINTPRINTFLIKE 361 # define QSCANFLIKE 362 # define QMESSAGELIKE 363 # define QNOTREACHED 364 # define QCONST 365 # define QRESTRICT 366 # define QVOLATILE 367 # define QINLINE 368 # define QEXTENSION 369 # define QEXTERN 370 # define QSTATIC 371 # define QAUTO 372 # define QREGISTER 373 # define QOUT 374 # define QIN 375 # define QYIELD 376 # define QONLY 377 # define QTEMP 378 # define QSHARED 379 # define QREF 380 # define QUNIQUE 381 # define QCHECKED 382 # define QUNCHECKED 383 # define QCHECKEDSTRICT 384 # define QCHECKMOD 385 # define QKEEP 386 # define QKEPT 387 # define QPARTIAL 388 # define QSPECIAL 389 # define QOWNED 390 # define QDEPENDENT 391 # define QRETURNED 392 # define QEXPOSED 393 # define QNULL 394 # define QOBSERVER 395 # define QISNULL 396 # define QEXITS 397 # define QMAYEXIT 398 # define QNEVEREXIT 399 # define QTRUEEXIT 400 # define QFALSEEXIT 401 # define QLONG 402 # define QSIGNED 403 # define QUNSIGNED 404 # define QSHORT 405 # define QUNUSED 406 # define QSEF 407 # define QNOTNULL 408 # define QRELNULL 409 # define QABSTRACT 410 # define QNUMABSTRACT 411 # define QCONCRETE 412 # define QMUTABLE 413 # define QIMMUTABLE 414 # define QTRUENULL 415 # define QFALSENULL 416 # define QEXTERNAL 417 # define QREFCOUNTED 418 # define QREFS 419 # define QNEWREF 420 # define QTEMPREF 421 # define QKILLREF 422 # define QRELDEF 423 # define CGCHAR 424 # define CBOOL 425 # define CINT 426 # define CGFLOAT 427 # define CDOUBLE 428 # define CVOID 429 # define QANYTYPE 430 # define QINTEGRALTYPE 431 # define QUNSIGNEDINTEGRALTYPE 432 # define QSIGNEDINTEGRALTYPE 433 # define QNULLTERMINATED 434 # define QSETBUFFERSIZE 435 # define QSETSTRINGLENGTH 436 # define QMAXSET 437 # define QMAXREAD 438 # define QTESTINRANGE 439 # define TCAND 440 # define IDENTIFIER 441 # define NEW_IDENTIFIER 442 # define TYPE_NAME_OR_ID 443 # define CANNOTATION 444 # define CCONSTANT 445 # define ITER_NAME 446 # define ITER_ENDNAME 447 # define TYPE_NAME 448 # define METASTATE_NAME 449 /* ** ** cgrammar.y ** ** Yacc/Bison grammar for extended ANSI C used by Splint. ** ** original grammar by Nate Osgood --- ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993 ** ** changes for Splint --- handle typedef names correctly ** fix struct/union parsing bug (empty struct is accepted) ** add productions to handle macros --- require ** error correction --- main source of conflicts in grammar. ** need to process initializations sequentially, L->R ** ** production names are cryptic, so more productions fit on one line ** ** conflicts: 87 shift/reduce, 18 reduce/reduce ** most of these are due to handling macros ** a few are due to handling type expressions */ /*@=allmacros@*/ extern int yylex (); extern void yyerror (char *); # include "splintMacros.nf" # include "basic.h" # include "cscanner.h" # include "cscannerHelp.h" # include "cgrammar.h" # include "exprChecks.h" /*@-allmacros@*/ /*@-matchfields@*/ # define SHOWCSYM FALSE /* ** This is necessary, or else when the bison-generated code #include's malloc.h, ** there will be a parse error. ** ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations ** in bison-generated files under Win32. */ # ifdef WIN32 # undef malloc # undef calloc # undef realloc # endif #ifndef cgrammar_YYSTYPE typedef union { lltok tok; int count; qual typequal; qualList tquallist; ctype ctyp; /*@dependent@*/ sRef sr; /*@only@*/ sRef osr; /*@only@*/ functionClauseList funcclauselist; /*@only@*/ functionClause funcclause; /*@only@*/ flagSpec flagspec; /*@only@*/ globalsClause globsclause; /*@only@*/ modifiesClause modsclause; /*@only@*/ warnClause warnclause; /*@only@*/ stateClause stateclause; /*@only@*/ pointers pointers; /*@only@*/ functionConstraint fcnconstraint; /*@only@*/ metaStateConstraint msconstraint; /*@only@*/ metaStateSpecifier msspec; /*@only@*/ metaStateExpression msexpr; /*@observer@*/ metaStateInfo msinfo; /*@only@*/ sRefList srlist; /*@only@*/ globSet globset; /*@only@*/ qtype qtyp; /*@only@*/ cstring cname; /*@observer@*/ annotationInfo annotation; /*@only@*/ idDecl ntyp; /*@only@*/ idDeclList ntyplist; /*@only@*/ uentryList flist; /*@owned@*/ uentryList entrylist; /*@observer@*/ /*@dependent@*/ uentry entry; /*@only@*/ uentry oentry; /*@only@*/ exprNode expr; /*@only@*/ enumNameList enumnamelist; /*@only@*/ exprNodeList exprlist; /*@only@*/ sRefSet srset; /*@only@*/ cstringList cstringlist; /*drl added 1/19/2001 */ constraint con; constraintList conL; constraintExpr conE; /* drl */ } yystype; # define cgrammar_YYSTYPE yystype # define cgrammar_YYSTYPE_IS_TRIVIAL 1 #endif #ifndef YYDEBUG # define YYDEBUG 1 #endif #define YYFINAL 1250 #define YYFLAG -32768 #define YYNTBASE 196 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ #define YYTRANSLATE(x) ((unsigned)(x) <= 449 ? yytranslate[x] : 466) /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 }; #if YYDEBUG static const short yyprhs[] = { 0, 0, 1, 3, 5, 8, 11, 13, 15, 17, 19, 21, 23, 25, 34, 46, 47, 53, 55, 59, 61, 64, 66, 73, 77, 84, 85, 92, 93, 101, 103, 110, 114, 121, 122, 129, 130, 138, 139, 140, 151, 155, 159, 163, 166, 168, 172, 173, 178, 179, 184, 186, 190, 192, 194, 196, 200, 202, 206, 208, 210, 212, 214, 216, 218, 223, 229, 231, 233, 235, 237, 241, 246, 249, 253, 257, 261, 263, 265, 267, 268, 271, 272, 275, 277, 279, 281, 283, 285, 287, 289, 291, 293, 295, 297, 299, 302, 303, 308, 310, 313, 314, 318, 320, 324, 326, 328, 329, 332, 336, 339, 341, 345, 348, 349, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382, 384, 388, 389, 393, 394, 395, 400, 403, 406, 408, 410, 412, 414, 418, 423, 426, 430, 434, 438, 440, 442, 444, 448, 450, 452, 456, 461, 464, 468, 472, 476, 477, 479, 481, 485, 487, 489, 491, 495, 497, 499, 500, 505, 507, 512, 516, 521, 528, 534, 540, 543, 546, 554, 556, 560, 562, 565, 568, 571, 574, 577, 580, 583, 586, 590, 592, 596, 601, 603, 613, 614, 618, 619, 620, 625, 628, 633, 636, 638, 643, 645, 649, 653, 657, 659, 663, 667, 669, 673, 677, 679, 683, 687, 691, 695, 697, 701, 705, 707, 711, 713, 717, 719, 723, 725, 726, 731, 733, 734, 739, 741, 742, 743, 751, 753, 757, 761, 765, 769, 773, 777, 781, 785, 789, 793, 797, 799, 803, 804, 806, 808, 810, 812, 814, 818, 819, 829, 830, 842, 844, 846, 849, 850, 857, 858, 867, 872, 877, 878, 879, 882, 884, 889, 892, 894, 899, 900, 905, 907, 911, 916, 919, 922, 925, 927, 930, 934, 937, 939, 943, 945, 947, 949, 951, 953, 956, 957, 964, 967, 970, 971, 978, 979, 985, 987, 989, 991, 993, 995, 997, 999, 1001, 1003, 1005, 1007, 1009, 1011, 1013, 1015, 1017, 1019, 1021, 1023, 1025, 1027, 1029, 1031, 1033, 1035, 1037, 1039, 1041, 1043, 1045, 1047, 1049, 1051, 1053, 1055, 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1085, 1087, 1089, 1091, 1094, 1097, 1100, 1103, 1106, 1109, 1112, 1115, 1118, 1121, 1124, 1127, 1130, 1133, 1136, 1139, 1142, 1145, 1148, 1151, 1154, 1157, 1160, 1163, 1166, 1169, 1173, 1175, 1180, 1182, 1186, 1189, 1192, 1195, 1196, 1198, 1199, 1200, 1201, 1214, 1215, 1216, 1228, 1235, 1242, 1243, 1244, 1255, 1256, 1257, 1268, 1274, 1280, 1285, 1290, 1291, 1293, 1295, 1298, 1304, 1308, 1311, 1316, 1318, 1322, 1327, 1334, 1335, 1344, 1349, 1351, 1355, 1358, 1360, 1365, 1367, 1369, 1372, 1375, 1377, 1380, 1382, 1385, 1387, 1389, 1391, 1393, 1396, 1398, 1401, 1404, 1408, 1410, 1414, 1416, 1420, 1422, 1424, 1428, 1429, 1432, 1433, 1438, 1443, 1445, 1447, 1450, 1452, 1454, 1457, 1458, 1460, 1466, 1469, 1473, 1477, 1482, 1486, 1491, 1496, 1502, 1504, 1506, 1508, 1510, 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1526, 1529, 1532, 1540, 1547, 1550, 1551, 1552, 1563, 1564, 1571, 1573, 1575, 1577, 1579, 1582, 1584, 1586, 1588, 1590, 1592, 1594, 1596, 1600, 1602, 1603, 1607, 1610, 1613, 1615, 1617, 1619, 1621, 1623, 1625, 1627, 1629, 1631, 1633, 1637, 1639, 1641, 1644, 1647, 1648, 1651, 1652, 1657, 1658, 1665, 1666, 1670, 1671, 1677, 1681, 1684, 1688, 1689, 1690, 1691, 1692, 1693, 1695, 1698, 1701, 1705, 1708, 1712, 1716, 1721, 1724, 1727, 1731, 1735, 1740, 1742, 1745, 1747, 1750, 1752, 1756, 1758, 1763, 1765, 1768, 1770, 1773, 1775, 1778, 1780, 1785, 1788, 1789, 1795, 1796, 1803, 1808, 1813, 1814, 1815, 1826, 1828, 1829, 1834, 1836, 1838, 1840, 1842, 1844, 1847, 1849, 1853, 1855, 1860, 1864, 1869, 1876, 1882, 1888, 1891, 1894, 1896, 1899, 1902, 1905, 1908, 1911, 1914, 1917, 1920, 1922, 1924, 1929, 1931, 1935, 1939, 1943, 1945, 1949, 1953, 1955, 1959, 1963, 1965, 1969, 1973, 1977, 1981, 1983, 1987, 1991, 1993, 1997, 1999, 2003, 2005, 2009, 2011, 2015, 2017, 2021, 2023, 2024, 2025, 2033, 2035, 2039, 2043, 2047, 2051, 2055, 2059, 2063, 2067, 2071, 2075, 2079, 2081, 2082, 2084, 2087, 2095, 2098, 2101, 2109, 2116, 2119, 2123, 2126, 2130, 2133, 2137, 2141, 2145, 2149, 2152, 2156, 2157, 2159, 2160, 2162, 2164, 2166, 2168, 2170, 2172, 2174, 2176, 2178, 2183 }; static const short yyrhs[] = { -1, 197, 0, 198, 0, 197, 198, 0, 259, 461, 0, 199, 0, 200, 0, 210, 0, 213, 0, 299, 0, 18, 0, 1, 0, 77, 343, 357, 367, 357, 461, 308, 91, 0, 77, 343, 357, 367, 357, 23, 308, 315, 314, 461, 91, 0, 0, 78, 201, 202, 461, 91, 0, 203, 0, 343, 357, 203, 0, 207, 0, 371, 207, 0, 464, 0, 308, 24, 357, 367, 308, 25, 0, 204, 26, 27, 0, 204, 26, 308, 298, 27, 357, 0, 0, 204, 309, 24, 25, 205, 231, 0, 0, 204, 309, 24, 368, 25, 206, 231, 0, 464, 0, 308, 24, 357, 203, 308, 25, 0, 207, 26, 27, 0, 207, 26, 308, 298, 27, 357, 0, 0, 207, 309, 24, 25, 208, 232, 0, 0, 207, 309, 24, 368, 25, 209, 232, 0, 0, 0, 79, 464, 24, 368, 25, 211, 232, 212, 461, 91, 0, 92, 398, 95, 0, 93, 384, 95, 0, 94, 385, 95, 0, 92, 95, 0, 254, 0, 216, 23, 219, 0, 0, 228, 217, 22, 220, 0, 0, 5, 218, 22, 220, 0, 216, 0, 216, 40, 219, 0, 195, 0, 186, 0, 56, 0, 223, 221, 222, 0, 223, 0, 226, 225, 226, 0, 183, 0, 184, 0, 53, 0, 52, 0, 54, 0, 227, 0, 229, 24, 226, 25, 0, 24, 226, 230, 226, 25, 0, 228, 0, 191, 0, 463, 0, 188, 0, 228, 26, 27, 0, 228, 26, 191, 27, 0, 34, 228, 0, 24, 228, 25, 0, 228, 28, 464, 0, 228, 45, 464, 0, 224, 0, 33, 0, 32, 0, 0, 233, 231, 0, 0, 234, 232, 0, 235, 0, 239, 0, 238, 0, 321, 0, 324, 0, 245, 0, 236, 0, 240, 0, 238, 0, 322, 0, 326, 0, 246, 0, 236, 91, 0, 0, 74, 237, 247, 461, 0, 76, 0, 240, 91, 0, 0, 75, 241, 260, 0, 243, 0, 243, 40, 242, 0, 188, 0, 245, 0, 0, 246, 91, 0, 73, 242, 437, 0, 73, 242, 0, 248, 0, 247, 21, 248, 0, 249, 250, 0, 0, 251, 249, 0, 463, 0, 188, 0, 299, 0, 89, 0, 90, 0, 120, 0, 121, 0, 134, 0, 80, 0, 81, 0, 82, 0, 83, 0, 84, 0, 85, 0, 86, 0, 367, 0, 343, 357, 367, 0, 0, 19, 256, 415, 0, 0, 0, 257, 419, 258, 408, 0, 214, 255, 0, 263, 461, 0, 461, 0, 463, 0, 188, 0, 189, 0, 261, 26, 27, 0, 261, 26, 262, 27, 0, 34, 261, 0, 24, 261, 25, 0, 261, 28, 464, 0, 261, 45, 464, 0, 261, 0, 437, 0, 261, 0, 263, 21, 261, 0, 463, 0, 188, 0, 264, 26, 27, 0, 264, 26, 262, 27, 0, 34, 264, 0, 24, 264, 25, 0, 264, 28, 464, 0, 264, 45, 464, 0, 0, 266, 0, 264, 0, 266, 21, 264, 0, 463, 0, 188, 0, 437, 0, 24, 296, 25, 0, 189, 0, 115, 0, 0, 24, 268, 408, 25, 0, 267, 0, 269, 26, 296, 27, 0, 269, 24, 25, 0, 269, 24, 270, 25, 0, 71, 24, 295, 21, 379, 25, 0, 269, 357, 28, 464, 308, 0, 269, 357, 45, 464, 308, 0, 269, 48, 0, 269, 49, 0, 24, 379, 25, 19, 420, 462, 20, 0, 295, 0, 270, 21, 295, 0, 269, 0, 48, 271, 0, 49, 271, 0, 29, 279, 0, 34, 279, 0, 33, 279, 0, 32, 279, 0, 31, 279, 0, 30, 279, 0, 276, 274, 277, 0, 273, 0, 272, 28, 464, 0, 272, 26, 296, 27, 0, 464, 0, 47, 308, 24, 379, 357, 21, 272, 25, 308, 0, 0, 308, 275, 278, 0, 0, 0, 42, 24, 379, 25, 0, 42, 271, 0, 43, 24, 379, 25, 0, 43, 271, 0, 271, 0, 24, 379, 25, 279, 0, 279, 0, 280, 34, 279, 0, 280, 35, 279, 0, 280, 36, 279, 0, 280, 0, 281, 33, 280, 0, 281, 32, 280, 0, 281, 0, 282, 50, 281, 0, 282, 51, 281, 0, 282, 0, 283, 37, 282, 0, 283, 38, 282, 0, 283, 52, 282, 0, 283, 53, 282, 0, 283, 0, 284, 54, 283, 0, 284, 55, 283, 0, 284, 0, 285, 29, 284, 0, 285, 0, 286, 39, 285, 0, 286, 0, 287, 40, 286, 0, 287, 0, 0, 288, 56, 289, 287, 0, 288, 0, 0, 290, 57, 291, 288, 0, 290, 0, 0, 0, 290, 41, 293, 296, 22, 294, 292, 0, 292, 0, 271, 23, 295, 0, 271, 58, 295, 0, 271, 59, 295, 0, 271, 60, 295, 0, 271, 61, 295, 0, 271, 62, 295, 0, 271, 63, 295, 0, 271, 64, 295, 0, 271, 65, 295, 0, 271, 66, 295, 0, 271, 67, 295, 0, 295, 0, 296, 21, 295, 0, 0, 296, 0, 292, 0, 300, 0, 72, 0, 306, 0, 343, 308, 18, 0, 0, 343, 357, 367, 357, 301, 308, 314, 18, 308, 0, 0, 343, 357, 367, 357, 23, 302, 308, 315, 314, 18, 308, 0, 304, 0, 194, 0, 367, 357, 0, 0, 367, 357, 23, 305, 308, 315, 0, 0, 46, 343, 307, 357, 312, 308, 244, 18, 0, 46, 343, 308, 18, 0, 46, 310, 308, 18, 0, 0, 0, 311, 308, 0, 304, 0, 310, 21, 357, 304, 0, 313, 308, 0, 303, 0, 312, 21, 357, 303, 0, 0, 314, 21, 357, 304, 0, 295, 0, 19, 319, 20, 0, 19, 319, 21, 20, 0, 316, 315, 0, 317, 23, 0, 464, 22, 0, 318, 0, 317, 318, 0, 26, 298, 27, 0, 28, 464, 0, 315, 0, 319, 21, 315, 0, 116, 0, 114, 0, 117, 0, 118, 0, 119, 0, 322, 91, 0, 0, 252, 357, 323, 266, 461, 308, 0, 326, 91, 0, 253, 357, 0, 0, 325, 332, 327, 265, 461, 308, 0, 0, 325, 328, 329, 461, 308, 0, 222, 0, 215, 0, 143, 0, 144, 0, 146, 0, 147, 0, 145, 0, 128, 0, 131, 0, 129, 0, 130, 0, 136, 0, 137, 0, 122, 0, 124, 0, 123, 0, 132, 0, 133, 0, 125, 0, 127, 0, 140, 0, 142, 0, 155, 0, 154, 0, 139, 0, 141, 0, 180, 0, 190, 0, 138, 0, 153, 0, 152, 0, 163, 0, 161, 0, 162, 0, 156, 0, 157, 0, 158, 0, 159, 0, 160, 0, 164, 0, 165, 0, 168, 0, 169, 0, 166, 0, 167, 0, 151, 0, 148, 0, 149, 0, 150, 0, 120, 0, 121, 0, 134, 0, 135, 0, 111, 308, 0, 113, 308, 0, 112, 308, 0, 339, 308, 0, 332, 308, 0, 330, 308, 0, 333, 308, 0, 331, 308, 0, 335, 308, 0, 334, 308, 0, 336, 308, 0, 337, 308, 0, 170, 357, 0, 172, 357, 0, 171, 357, 0, 173, 357, 0, 174, 357, 0, 175, 357, 0, 176, 357, 0, 177, 357, 0, 178, 357, 0, 179, 357, 0, 465, 357, 0, 348, 357, 0, 362, 357, 0, 338, 357, 0, 308, 343, 308, 0, 345, 0, 345, 88, 344, 91, 0, 379, 0, 379, 21, 344, 0, 320, 346, 0, 340, 346, 0, 341, 346, 0, 0, 343, 0, 0, 0, 0, 357, 68, 464, 308, 19, 349, 412, 358, 413, 350, 20, 347, 0, 0, 0, 357, 69, 464, 308, 19, 351, 412, 358, 413, 352, 20, 0, 357, 68, 464, 308, 19, 20, 0, 357, 69, 464, 308, 19, 20, 0, 0, 0, 357, 68, 308, 19, 353, 412, 358, 413, 354, 20, 0, 0, 0, 357, 69, 308, 19, 355, 412, 358, 413, 356, 20, 0, 357, 68, 308, 19, 20, 0, 357, 69, 308, 19, 20, 0, 357, 68, 464, 357, 0, 357, 69, 464, 357, 0, 0, 359, 0, 213, 0, 358, 359, 0, 343, 357, 360, 308, 18, 0, 343, 308, 18, 0, 361, 357, 0, 360, 21, 361, 357, 0, 367, 0, 22, 308, 298, 0, 367, 22, 308, 298, 0, 357, 70, 19, 364, 20, 308, 0, 0, 357, 70, 464, 19, 363, 364, 20, 308, 0, 357, 70, 464, 308, 0, 365, 0, 364, 21, 365, 0, 364, 21, 0, 464, 0, 464, 23, 308, 298, 0, 204, 0, 381, 0, 371, 194, 0, 371, 366, 0, 204, 0, 371, 204, 0, 374, 0, 357, 372, 0, 111, 0, 112, 0, 113, 0, 369, 0, 370, 369, 0, 34, 0, 34, 370, 0, 34, 371, 0, 34, 370, 371, 0, 373, 0, 373, 21, 5, 0, 464, 0, 373, 21, 464, 0, 5, 0, 375, 0, 375, 21, 5, 0, 0, 376, 378, 0, 0, 375, 21, 377, 378, 0, 308, 343, 366, 308, 0, 464, 0, 342, 0, 342, 380, 0, 371, 0, 382, 0, 371, 382, 0, 0, 382, 0, 308, 24, 357, 380, 25, 0, 26, 27, 0, 26, 298, 27, 0, 382, 26, 27, 0, 382, 26, 298, 27, 0, 308, 24, 25, 0, 308, 24, 374, 25, 0, 382, 308, 24, 25, 0, 382, 308, 24, 374, 25, 0, 400, 0, 402, 0, 405, 0, 408, 0, 423, 0, 426, 0, 458, 0, 431, 0, 460, 0, 386, 0, 384, 0, 393, 0, 386, 393, 0, 430, 386, 0, 457, 399, 11, 24, 296, 25, 18, 0, 457, 399, 11, 24, 296, 25, 0, 388, 393, 0, 0, 0, 13, 24, 297, 18, 297, 18, 389, 297, 390, 25, 0, 0, 192, 410, 24, 392, 434, 25, 0, 193, 0, 400, 0, 402, 0, 405, 0, 396, 419, 0, 396, 0, 397, 0, 423, 0, 394, 0, 387, 0, 391, 0, 460, 0, 24, 393, 25, 0, 1, 0, 0, 425, 395, 393, 0, 410, 19, 0, 414, 20, 0, 399, 0, 418, 0, 400, 0, 402, 0, 405, 0, 409, 0, 424, 0, 426, 0, 431, 0, 459, 0, 24, 399, 25, 0, 460, 0, 1, 0, 464, 22, 0, 110, 383, 0, 0, 101, 401, 0, 0, 6, 298, 403, 22, 0, 0, 101, 401, 6, 298, 404, 22, 0, 0, 7, 406, 22, 0, 0, 101, 401, 7, 407, 22, 0, 24, 408, 25, 0, 410, 416, 0, 410, 417, 411, 0, 0, 0, 0, 0, 0, 20, 0, 110, 20, 0, 422, 20, 0, 422, 110, 20, 0, 419, 20, 0, 419, 110, 20, 0, 419, 422, 20, 0, 419, 422, 110, 20, 0, 19, 415, 0, 19, 20, 0, 19, 418, 20, 0, 19, 419, 20, 0, 19, 419, 422, 20, 0, 399, 0, 418, 399, 0, 299, 0, 419, 299, 0, 421, 0, 420, 21, 421, 0, 295, 0, 19, 420, 462, 20, 0, 383, 0, 422, 383, 0, 18, 0, 296, 18, 0, 18, 0, 296, 18, 0, 296, 0, 8, 24, 296, 25, 0, 425, 383, 0, 0, 425, 383, 9, 427, 383, 0, 0, 10, 24, 296, 428, 25, 383, 0, 11, 24, 296, 25, 0, 11, 24, 296, 25, 0, 0, 0, 192, 432, 410, 24, 433, 434, 25, 408, 456, 411, 0, 436, 0, 0, 434, 435, 21, 436, 0, 455, 0, 463, 0, 189, 0, 188, 0, 191, 0, 437, 191, 0, 437, 0, 24, 296, 25, 0, 438, 0, 269, 26, 296, 27, 0, 269, 24, 25, 0, 269, 24, 270, 25, 0, 71, 24, 295, 21, 379, 25, 0, 269, 357, 28, 464, 308, 0, 269, 357, 45, 464, 308, 0, 269, 48, 0, 269, 49, 0, 439, 0, 48, 271, 0, 49, 271, 0, 29, 279, 0, 34, 279, 0, 33, 279, 0, 32, 279, 0, 31, 279, 0, 30, 279, 0, 274, 0, 440, 0, 24, 379, 25, 279, 0, 441, 0, 280, 34, 279, 0, 280, 35, 279, 0, 280, 36, 279, 0, 442, 0, 281, 33, 280, 0, 281, 32, 280, 0, 443, 0, 282, 50, 281, 0, 282, 51, 281, 0, 444, 0, 283, 37, 282, 0, 283, 38, 282, 0, 283, 52, 282, 0, 283, 53, 282, 0, 445, 0, 284, 54, 283, 0, 284, 55, 283, 0, 446, 0, 285, 29, 284, 0, 447, 0, 286, 39, 285, 0, 448, 0, 287, 40, 286, 0, 449, 0, 288, 56, 287, 0, 450, 0, 290, 57, 288, 0, 451, 0, 0, 0, 290, 41, 453, 296, 22, 454, 292, 0, 452, 0, 271, 23, 295, 0, 271, 58, 295, 0, 271, 59, 295, 0, 271, 60, 295, 0, 271, 61, 295, 0, 271, 62, 295, 0, 271, 63, 295, 0, 271, 64, 295, 0, 271, 65, 295, 0, 271, 66, 295, 0, 271, 67, 295, 0, 193, 0, 0, 12, 0, 429, 383, 0, 457, 383, 11, 24, 296, 25, 18, 0, 388, 383, 0, 429, 399, 0, 457, 399, 11, 24, 296, 25, 18, 0, 457, 399, 11, 24, 296, 25, 0, 388, 399, 0, 14, 464, 18, 0, 15, 18, 0, 100, 15, 18, 0, 16, 18, 0, 96, 16, 18, 0, 97, 16, 18, 0, 98, 16, 18, 0, 99, 16, 18, 0, 17, 18, 0, 17, 296, 18, 0, 0, 18, 0, 0, 21, 0, 187, 0, 188, 0, 192, 0, 193, 0, 463, 0, 189, 0, 194, 0, 189, 0, 44, 24, 296, 25, 0, 44, 24, 379, 25, 0 }; #endif #if YYDEBUG /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const short yyrline[] = { 0, 325, 326, 330, 331, 335, 336, 337, 338, 339, 340, 341, 342, 346, 348, 353, 353, 362, 368, 373, 374, 379, 380, 382, 384, 401, 401, 432, 432, 462, 463, 465, 469, 486, 486, 498, 498, 512, 512, 512, 521, 522, 523, 524, 528, 532, 537, 537, 542, 542, 550, 551, 555, 561, 562, 566, 567, 571, 577, 578, 582, 583, 584, 588, 589, 590, 596, 597, 601, 603, 605, 607, 616, 618, 620, 622, 639, 643, 644, 651, 652, 661, 663, 668, 669, 670, 671, 672, 673, 677, 678, 679, 680, 681, 682, 686, 690, 690, 699, 703, 707, 707, 722, 724, 729, 733, 734, 738, 742, 748, 753, 754, 758, 762, 763, 767, 768, 769, 773, 774, 775, 776, 777, 781, 782, 783, 784, 785, 789, 790, 794, 801, 806, 806, 812, 812, 812, 823, 834, 835, 839, 840, 841, 842, 843, 844, 845, 846, 847, 851, 852, 857, 858, 862, 864, 866, 867, 868, 869, 870, 872, 877, 878, 882, 888, 901, 902, 903, 904, 905, 906, 907, 907, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 927, 928, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 946, 947, 949, 953, 959, 959, 963, 966, 970, 971, 972, 973, 979, 980, 985, 986, 987, 988, 992, 993, 994, 998, 999, 1000, 1004, 1005, 1006, 1007, 1008, 1012, 1013, 1014, 1018, 1019, 1023, 1024, 1028, 1029, 1033, 1034, 1034, 1046, 1047, 1047, 1060, 1061, 1061, 1061, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1082, 1083, 1087, 1088, 1092, 1098, 1099, 1100, 1104, 1118, 1118, 1129, 1129, 1138, 1139, 1143, 1148, 1148, 1153, 1153, 1156, 1157, 1161, 1165, 1169, 1173, 1174, 1178, 1182, 1183, 1187, 1188, 1192, 1193, 1194, 1195, 1203, 1204, 1209, 1210, 1214, 1215, 1219, 1221, 1231, 1232, 1233, 1234, 1235, 1239, 1243, 1243, 1259, 1263, 1267, 1267, 1281, 1281, 1313, 1314, 1318, 1319, 1320, 1321, 1322, 1326, 1327, 1328, 1329, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1353, 1354, 1358, 1359, 1363, 1364, 1368, 1369, 1370, 1371, 1372, 1376, 1377, 1378, 1379, 1380, 1381, 1385, 1386, 1387, 1388, 1392, 1393, 1394, 1395, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1435, 1440, 1441, 1446, 1447, 1452, 1453, 1454, 1458, 1459, 1463, 1470, 1470, 1470, 1476, 1476, 1476, 1481, 1483, 1485, 1485, 1485, 1490, 1490, 1490, 1495, 1497, 1499, 1500, 1504, 1508, 1509, 1510, 1514, 1516, 1521, 1523, 1528, 1529, 1530, 1535, 1537, 1537, 1539, 1543, 1545, 1547, 1551, 1556, 1564, 1565, 1566, 1572, 1577, 1578, 1583, 1584, 1588, 1589, 1590, 1594, 1595, 1599, 1600, 1601, 1602, 1606, 1607, 1611, 1612, 1616, 1617, 1618, 1622, 1622, 1623, 1623, 1628, 1640, 1657, 1658, 1662, 1663, 1664, 1668, 1669, 1673, 1675, 1676, 1678, 1679, 1681, 1683, 1685, 1687, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1707, 1711, 1715, 1716, 1721, 1723, 1725, 1727, 1732, 1732, 1732, 1740, 1740, 1744, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1764, 1764, 1771, 1775, 1779, 1780, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1798, 1799, 1807, 1808, 1815, 1815, 1817, 1817, 1822, 1822, 1824, 1824, 1829, 1830, 1835, 1839, 1843, 1847, 1851, 1855, 1859, 1860, 1861, 1862, 1864, 1865, 1867, 1869, 1876, 1881, 1883, 1885, 1887, 1892, 1893, 1897, 1898, 1902, 1903, 1907, 1908, 1912, 1913, 1917, 1918, 1922, 1923, 1924, 1928, 1942, 1947, 1947, 1952, 1952, 1957, 1963, 1967, 1967, 1967, 1978, 1979, 1979, 1984, 1985, 1986, 1997, 2005, 2006, 2010, 2011, 2015, 2016, 2017, 2018, 2019, 2021, 2022, 2023, 2024, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2041, 2042, 2046, 2047, 2048, 2049, 2053, 2054, 2055, 2059, 2060, 2061, 2065, 2066, 2067, 2068, 2069, 2073, 2074, 2075, 2079, 2080, 2084, 2085, 2089, 2090, 2094, 2095, 2099, 2100, 2104, 2105, 2105, 2105, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2126, 2127, 2131, 2135, 2137, 2139, 2144, 2145, 2147, 2149, 2153, 2154, 2155, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2167, 2168, 2172, 2173, 2177, 2181, 2182, 2183, 2184, 2185, 2189, 2190, 2191, 2192 }; #endif #if (YYDEBUG) || defined YYERROR_VERBOSE /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ static const char *const yytname[] = { "$", "error", "$undefined.", "BADTOK", "SKIPTOK", "CTOK_ELIPSIS", "CASE", "DEFAULT", "CIF", "CELSE", "SWITCH", "WHILE", "DO", "CFOR", "GOTO", "CONTINUE", "BREAK", "RETURN", "TSEMI", "TLBRACE", "TRBRACE", "TCOMMA", "TCOLON", "TASSIGN", "TLPAREN", "TRPAREN", "TLSQBR", "TRSQBR", "TDOT", "TAMPERSAND", "TEXCL", "TTILDE", "TMINUS", "TPLUS", "TMULT", "TDIV", "TPERCENT", "TLT", "TGT", "TCIRC", "TBAR", "TQUEST", "CSIZEOF", "CALIGNOF", "CTYPEOF", "ARROW_OP", "CTYPEDEF", "COFFSETOF", "INC_OP", "DEC_OP", "LEFT_OP", "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "ADD_ASSIGN", "SUB_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "CSTRUCT", "CUNION", "CENUM", "VA_ARG", "VA_DCL", "QWARN", "QGLOBALS", "QMODIFIES", "QNOMODS", "QCONSTANT", "QFUNCTION", "QITER", "QDEFINES", "QUSES", "QALLOCATES", "QSETS", "QRELEASES", "QPRECLAUSE", "QPOSTCLAUSE", "QINVARIANT", "QALT", "QUNDEF", "QKILLED", "QENDMACRO", "LLMACRO", "LLMACROITER", "LLMACROEND", "TENDMACRO", "QSWITCHBREAK", "QLOOPBREAK", "QINNERBREAK", "QSAFEBREAK", "QINNERCONTINUE", "QFALLTHROUGH", "QLINTNOTREACHED", "QLINTFALLTHROUGH", "QLINTFALLTHRU", "QARGSUSED", "QPRINTFLIKE", "QLINTPRINTFLIKE", "QSCANFLIKE", "QMESSAGELIKE", "QNOTREACHED", "QCONST", "QRESTRICT", "QVOLATILE", "QINLINE", "QEXTENSION", "QEXTERN", "QSTATIC", "QAUTO", "QREGISTER", "QOUT", "QIN", "QYIELD", "QONLY", "QTEMP", "QSHARED", "QREF", "QUNIQUE", "QCHECKED", "QUNCHECKED", "QCHECKEDSTRICT", "QCHECKMOD", "QKEEP", "QKEPT", "QPARTIAL", "QSPECIAL", "QOWNED", "QDEPENDENT", "QRETURNED", "QEXPOSED", "QNULL", "QOBSERVER", "QISNULL", "QEXITS", "QMAYEXIT", "QNEVEREXIT", "QTRUEEXIT", "QFALSEEXIT", "QLONG", "QSIGNED", "QUNSIGNED", "QSHORT", "QUNUSED", "QSEF", "QNOTNULL", "QRELNULL", "QABSTRACT", "QNUMABSTRACT", "QCONCRETE", "QMUTABLE", "QIMMUTABLE", "QTRUENULL", "QFALSENULL", "QEXTERNAL", "QREFCOUNTED", "QREFS", "QNEWREF", "QTEMPREF", "QKILLREF", "QRELDEF", "CGCHAR", "CBOOL", "CINT", "CGFLOAT", "CDOUBLE", "CVOID", "QANYTYPE", "QINTEGRALTYPE", "QUNSIGNEDINTEGRALTYPE", "QSIGNEDINTEGRALTYPE", "QNULLTERMINATED", "QSETBUFFERSIZE", "QSETSTRINGLENGTH", "QMAXSET", "QMAXREAD", "QTESTINRANGE", "TCAND", "IDENTIFIER", "NEW_IDENTIFIER", "TYPE_NAME_OR_ID", "CANNOTATION", "CCONSTANT", "ITER_NAME", "ITER_ENDNAME", "TYPE_NAME", "METASTATE_NAME", "file", "externalDefs", "externalDef", "constantDecl", "fcnDecl", "@1", "plainFcn", "plainNamedDecl", "namedDeclBase", "@2", "@3", "plainNamedDeclBase", "@4", "@5", "iterDecl", "@6", "@7", "macroDef", "fcnDefHdr", "metaStateConstraint", "metaStateSpecifier", "@8", "@9", "metaStateExpression", "metaStateName", "constraintSeperator", "BufConstraintList", "BufConstraint", "bufferModifier", "relationalOp", "BufConstraintExpr", "BufConstraintTerm", "BufConstraintSrefExpr", "BufUnaryOp", "BufBinaryOp", "functionClauses", "functionClausesPlain", "functionClause", "functionClausePlain", "globalsClause", "globalsClausePlain", "@10", "nomodsClause", "modifiesClause", "modifiesClausePlain", "@11", "flagSpec", "flagId", "optWarnClause", "warnClause", "warnClausePlain", "globIdList", "globIdListExpr", "optGlobQuals", "globId", "globQual", "stateTag", "conditionTag", "fcnDefHdrAux", "fcnBody", "@12", "@13", "@14", "fcnDef", "locModifies", "modListExpr", "mExpr", "modList", "specClauseListExpr", "optSpecClauseList", "specClauseList", "primaryExpr", "@15", "postfixExpr", "argumentExprList", "unaryExpr", "fieldDesignator", "offsetofExpr", "sizeofExpr", "@16", "processSizeof", "endprocessSizeof", "sizeofExprAux", "castExpr", "timesExpr", "plusExpr", "shiftExpr", "relationalExpr", "equalityExpr", "bitandExpr", "xorExpr", "bitorExpr", "andExpr", "@17", "orExpr", "@18", "conditionalExpr", "@19", "@20", "assignExpr", "expr", "optExpr", "constantExpr", "initializer", "instanceDecl", "@21", "@22", "namedInitializerType", "namedInitializer", "@23", "typeDecl", "@24", "IsType", "PushType", "namedInitializerList", "namedInitializerListAux", "namedInitializerTypeList", "namedInitializerTypeListAux", "optDeclarators", "init", "designation", "designatorList", "designator", "initList", "storageSpecifier", "stateClause", "stateClausePlain", "@25", "conditionClause", "startConditionClause", "conditionClausePlain", "@26", "@27", "functionConstraint", "exitsQualifier", "checkQualifier", "stateQualifier", "paramQualifier", "visibilityQualifier", "returnQualifier", "typedefQualifier", "refcountQualifier", "typeModifier", "definedQualifier", "typeQualifier", "typeSpecifier", "completeType", "completeTypeSpecifier", "altType", "completeTypeSpecifierAux", "optCompleteType", "optStructInvariant", "suSpc", "@28", "@29", "@30", "@31", "@32", "@33", "@34", "@35", "NotType", "structDeclList", "structDecl", "structNamedDeclList", "structNamedDecl", "enumSpc", "@36", "enumeratorList", "enumerator", "optNamedDecl", "namedDecl", "genericParamList", "innerMods", "innerModsList", "pointers", "paramIdList", "idList", "paramTypeList", "paramList", "@37", "@38", "paramDecl", "typeExpression", "abstractDecl", "optAbstractDeclBase", "abstractDeclBase", "stmt", "iterBody", "endBody", "iterDefStmtList", "iterDefIterationStmt", "forPred", "@39", "@40", "partialIterStmt", "@41", "iterDefStmt", "iterSelectionStmt", "@42", "openScope", "closeScope", "macroBody", "stmtErr", "labeledStmt", "optExtraFallThroughs", "caseStmt", "@43", "@44", "defaultStmt", "@45", "@46", "compoundStmt", "compoundStmtErr", "CreateInnerScope", "DeleteInnerScope", "CreateStructInnerScope", "DeleteStructInnerScope", "DeleteInnerScopeSafe", "compoundStmtRest", "compoundStmtAux", "compoundStmtAuxErr", "stmtListErr", "initializerList", "typeInitializerList", "typeInitializer", "stmtList", "expressionStmt", "expressionStmtErr", "ifPred", "selectionStmt", "@47", "@48", "whilePred", "iterWhilePred", "iterStmt", "@49", "@50", "iterArgList", "@51", "iterArgExpr", "cconstantExpr", "primaryIterExpr", "postfixIterExpr", "unaryIterExpr", "castIterExpr", "timesIterExpr", "plusIterExpr", "shiftIterExpr", "relationalIterExpr", "equalityIterExpr", "bitandIterExpr", "xorIterExpr", "bitorIterExpr", "andIterExpr", "orIterExpr", "conditionalIterExpr", "@52", "@53", "assignIterExpr", "endIter", "doHeader", "iterationStmt", "iterationStmtErr", "jumpStmt", "optSemi", "optComma", "id", "newId", "typeName", 0 }; #endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const short yyr1[] = { 0, 196, 196, 197, 197, 198, 198, 198, 198, 198, 198, 198, 198, 199, 199, 201, 200, 202, 202, 203, 203, 204, 204, 204, 204, 205, 204, 206, 204, 207, 207, 207, 207, 208, 207, 209, 207, 211, 212, 210, 213, 213, 213, 213, 214, 215, 217, 216, 218, 216, 219, 219, 220, 221, 221, 222, 222, 223, 224, 224, 225, 225, 225, 226, 226, 226, 227, 227, 228, 228, 228, 228, 228, 228, 228, 228, 229, 230, 230, 231, 231, 232, 232, 233, 233, 233, 233, 233, 233, 234, 234, 234, 234, 234, 234, 235, 237, 236, 238, 239, 241, 240, 242, 242, 243, 244, 244, 245, 246, 246, 247, 247, 248, 249, 249, 250, 250, 250, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 253, 253, 254, 254, 256, 255, 257, 258, 255, 259, 260, 260, 261, 261, 261, 261, 261, 261, 261, 261, 261, 262, 262, 263, 263, 264, 264, 264, 264, 264, 264, 264, 264, 265, 265, 266, 266, 267, 267, 267, 267, 267, 267, 268, 267, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 270, 270, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 272, 272, 272, 273, 275, 274, 276, 277, 278, 278, 278, 278, 279, 279, 280, 280, 280, 280, 281, 281, 281, 282, 282, 282, 283, 283, 283, 283, 283, 284, 284, 284, 285, 285, 286, 286, 287, 287, 288, 289, 288, 290, 291, 290, 292, 293, 294, 292, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 296, 296, 297, 297, 298, 299, 299, 299, 300, 301, 300, 302, 300, 303, 303, 304, 305, 304, 307, 306, 306, 306, 308, 309, 310, 311, 311, 312, 313, 313, 314, 314, 315, 315, 315, 315, 316, 316, 317, 317, 318, 318, 319, 319, 320, 320, 320, 320, 320, 321, 323, 322, 324, 325, 327, 326, 328, 326, 329, 329, 330, 330, 330, 330, 330, 331, 331, 331, 331, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 333, 333, 334, 334, 335, 335, 336, 336, 336, 336, 336, 337, 337, 337, 337, 337, 337, 338, 338, 338, 338, 339, 339, 339, 339, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 342, 343, 343, 344, 344, 345, 345, 345, 346, 346, 347, 349, 350, 348, 351, 352, 348, 348, 348, 353, 354, 348, 355, 356, 348, 348, 348, 348, 348, 357, 358, 358, 358, 359, 359, 360, 360, 361, 361, 361, 362, 363, 362, 362, 364, 364, 364, 365, 365, 366, 366, 366, 366, 367, 367, 368, 368, 369, 369, 369, 370, 370, 371, 371, 371, 371, 372, 372, 373, 373, 374, 374, 374, 376, 375, 377, 375, 378, 378, 379, 379, 380, 380, 380, 381, 381, 382, 382, 382, 382, 382, 382, 382, 382, 382, 383, 383, 383, 383, 383, 383, 383, 383, 383, 384, 385, 386, 386, 387, 387, 387, 387, 389, 390, 388, 392, 391, 391, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 395, 394, 396, 397, 398, 398, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 400, 400, 401, 401, 403, 402, 404, 402, 406, 405, 407, 405, 408, 408, 409, 410, 411, 412, 413, 414, 415, 415, 415, 415, 415, 415, 415, 415, 416, 417, 417, 417, 417, 418, 418, 419, 419, 420, 420, 421, 421, 422, 422, 423, 423, 424, 424, 424, 425, 426, 427, 426, 428, 426, 429, 430, 432, 433, 431, 434, 435, 434, 436, 436, 436, 436, 437, 437, 438, 438, 439, 439, 439, 439, 439, 439, 439, 439, 439, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 441, 441, 442, 442, 442, 442, 443, 443, 443, 444, 444, 444, 445, 445, 445, 445, 445, 446, 446, 446, 447, 447, 448, 448, 449, 449, 450, 450, 451, 451, 452, 453, 454, 452, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 456, 456, 457, 458, 458, 458, 459, 459, 459, 459, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 461, 461, 462, 462, 463, 464, 464, 464, 464, 464, 465, 465, 465, 465 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const short yyr2[] = { 0, 0, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 8, 11, 0, 5, 1, 3, 1, 2, 1, 6, 3, 6, 0, 6, 0, 7, 1, 6, 3, 6, 0, 6, 0, 7, 0, 0, 10, 3, 3, 3, 2, 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 4, 2, 3, 3, 3, 1, 1, 1, 0, 2, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 4, 1, 2, 0, 3, 1, 3, 1, 1, 0, 2, 3, 2, 1, 3, 2, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 3, 0, 0, 4, 2, 2, 1, 1, 1, 1, 3, 4, 2, 3, 3, 3, 1, 1, 1, 3, 1, 1, 3, 4, 2, 3, 3, 3, 0, 1, 1, 3, 1, 1, 1, 3, 1, 1, 0, 4, 1, 4, 3, 4, 6, 5, 5, 2, 2, 7, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 1, 3, 4, 1, 9, 0, 3, 0, 0, 4, 2, 4, 2, 1, 4, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 0, 4, 1, 0, 4, 1, 0, 0, 7, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 0, 1, 1, 1, 1, 1, 3, 0, 9, 0, 11, 1, 1, 2, 0, 6, 0, 8, 4, 4, 0, 0, 2, 1, 4, 2, 1, 4, 0, 4, 1, 3, 4, 2, 2, 2, 1, 2, 3, 2, 1, 3, 1, 1, 1, 1, 1, 2, 0, 6, 2, 2, 0, 6, 0, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 1, 4, 1, 3, 2, 2, 2, 0, 1, 0, 0, 0, 12, 0, 0, 11, 6, 6, 0, 0, 10, 0, 0, 10, 5, 5, 4, 4, 0, 1, 1, 2, 5, 3, 2, 4, 1, 3, 4, 6, 0, 8, 4, 1, 3, 2, 1, 4, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 3, 1, 3, 1, 3, 1, 1, 3, 0, 2, 0, 4, 4, 1, 1, 2, 1, 1, 2, 0, 1, 5, 2, 3, 3, 4, 3, 4, 4, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 7, 6, 2, 0, 0, 10, 0, 6, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 0, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 2, 2, 0, 2, 0, 4, 0, 6, 0, 3, 0, 5, 3, 2, 3, 0, 0, 0, 0, 0, 1, 2, 2, 3, 2, 3, 3, 4, 2, 2, 3, 3, 4, 1, 2, 1, 2, 1, 3, 1, 4, 1, 2, 1, 2, 1, 2, 1, 4, 2, 0, 5, 0, 6, 4, 4, 0, 0, 10, 1, 0, 4, 1, 1, 1, 1, 1, 2, 1, 3, 1, 4, 3, 4, 6, 5, 5, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 4, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 0, 0, 7, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 0, 1, 2, 7, 2, 2, 7, 6, 2, 3, 2, 3, 2, 3, 3, 3, 3, 2, 3, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4 }; /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const short yydefact[] = { 0, 12, 11, 455, 0, 422, 262, 422, 15, 0, 0, 0, 0, 278, 278, 278, 301, 300, 302, 303, 304, 363, 364, 327, 329, 328, 332, 333, 321, 323, 324, 322, 330, 331, 365, 366, 325, 326, 342, 338, 334, 339, 335, 316, 317, 320, 318, 319, 360, 361, 362, 359, 344, 343, 337, 336, 348, 349, 350, 351, 352, 346, 347, 345, 353, 354, 357, 358, 355, 356, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 340, 700, 701, 705, 341, 702, 703, 706, 0, 3, 6, 7, 446, 8, 9, 134, 44, 696, 10, 261, 263, 0, 401, 278, 278, 278, 278, 278, 278, 278, 278, 422, 278, 401, 401, 422, 394, 422, 0, 422, 130, 278, 704, 21, 422, 450, 451, 452, 453, 456, 457, 278, 281, 278, 278, 274, 422, 707, 422, 422, 705, 0, 540, 202, 549, 0, 0, 0, 678, 0, 0, 0, 0, 202, 586, 0, 202, 202, 202, 202, 202, 202, 278, 202, 202, 0, 43, 0, 0, 0, 0, 0, 543, 202, 170, 166, 169, 607, 597, 173, 185, 208, 195, 278, 210, 214, 217, 220, 225, 228, 230, 232, 234, 237, 240, 244, 256, 588, 0, 0, 574, 530, 531, 532, 533, 0, 0, 534, 202, 535, 0, 536, 167, 0, 537, 539, 165, 0, 523, 0, 584, 0, 556, 510, 0, 0, 0, 519, 0, 520, 499, 518, 515, 516, 511, 512, 513, 0, 0, 517, 524, 0, 0, 521, 498, 0, 367, 369, 368, 379, 381, 380, 382, 383, 384, 385, 386, 387, 388, 4, 278, 0, 132, 137, 422, 697, 5, 422, 402, 398, 372, 374, 371, 373, 376, 375, 377, 378, 392, 370, 399, 400, 0, 278, 278, 390, 278, 278, 0, 391, 447, 389, 454, 458, 278, 166, 169, 0, 422, 472, 0, 165, 422, 0, 280, 422, 0, 271, 278, 696, 17, 19, 0, 422, 278, 29, 466, 208, 260, 545, 0, 202, 202, 202, 202, 0, 687, 689, 694, 0, 556, 0, 0, 0, 188, 193, 192, 191, 190, 189, 0, 278, 186, 187, 202, 0, 0, 0, 0, 0, 543, 0, 278, 542, 202, 488, 489, 490, 491, 0, 492, 493, 202, 495, 202, 494, 496, 556, 202, 202, 180, 181, 0, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 203, 200, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 235, 241, 238, 587, 202, 685, 40, 0, 557, 575, 590, 682, 608, 0, 541, 202, 0, 0, 0, 585, 41, 500, 504, 576, 422, 514, 526, 527, 0, 0, 0, 42, 23, 202, 466, 422, 422, 278, 264, 131, 0, 396, 0, 422, 0, 422, 0, 278, 0, 708, 278, 202, 0, 474, 473, 475, 709, 278, 277, 278, 276, 272, 422, 0, 278, 0, 422, 278, 20, 463, 0, 0, 448, 464, 278, 0, 550, 0, 593, 0, 259, 0, 686, 695, 556, 0, 168, 202, 538, 278, 0, 0, 690, 691, 692, 693, 688, 544, 202, 551, 0, 681, 422, 554, 679, 0, 0, 175, 0, 183, 0, 0, 0, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 194, 0, 211, 212, 213, 216, 215, 218, 219, 221, 222, 223, 224, 226, 227, 229, 231, 233, 202, 202, 202, 257, 570, 707, 574, 0, 422, 555, 591, 0, 0, 522, 508, 278, 577, 525, 0, 0, 25, 0, 561, 202, 582, 133, 422, 202, 556, 278, 265, 395, 278, 412, 0, 420, 415, 0, 421, 0, 437, 440, 434, 436, 393, 480, 0, 466, 476, 202, 0, 282, 270, 284, 269, 278, 278, 278, 696, 16, 31, 202, 466, 278, 18, 449, 459, 461, 37, 468, 422, 467, 471, 546, 589, 0, 595, 202, 172, 202, 209, 422, 0, 278, 547, 0, 553, 569, 0, 598, 202, 176, 174, 278, 278, 202, 202, 201, 236, 0, 239, 571, 572, 202, 202, 202, 596, 202, 422, 202, 422, 79, 27, 562, 565, 202, 202, 563, 202, 583, 136, 0, 267, 278, 397, 418, 558, 404, 419, 558, 407, 278, 439, 278, 0, 481, 484, 278, 0, 482, 0, 466, 422, 106, 283, 202, 278, 278, 0, 33, 0, 278, 0, 81, 465, 278, 477, 202, 0, 202, 580, 698, 578, 0, 0, 0, 552, 202, 202, 184, 178, 179, 278, 205, 278, 207, 242, 573, 592, 0, 278, 202, 202, 202, 202, 202, 202, 202, 202, 0, 166, 169, 185, 208, 629, 214, 217, 220, 225, 228, 230, 232, 234, 237, 0, 601, 600, 167, 611, 620, 630, 632, 636, 639, 642, 647, 650, 652, 654, 656, 658, 660, 664, 603, 165, 0, 24, 0, 96, 100, 98, 123, 124, 125, 126, 127, 128, 129, 26, 79, 83, 0, 85, 84, 0, 88, 0, 422, 422, 86, 0, 87, 312, 0, 79, 566, 567, 202, 564, 22, 278, 286, 422, 410, 558, 422, 411, 558, 433, 438, 202, 0, 0, 485, 483, 486, 0, 278, 0, 105, 202, 202, 0, 288, 273, 202, 0, 294, 0, 202, 0, 422, 81, 35, 0, 460, 462, 38, 81, 89, 91, 90, 94, 92, 93, 469, 442, 0, 278, 477, 443, 478, 594, 505, 698, 202, 0, 0, 177, 548, 0, 601, 0, 0, 202, 684, 0, 0, 188, 193, 192, 191, 190, 189, 186, 187, 202, 202, 202, 180, 181, 0, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 661, 202, 509, 0, 503, 104, 109, 102, 113, 696, 80, 95, 99, 107, 306, 309, 305, 0, 310, 308, 28, 568, 202, 0, 424, 422, 422, 423, 422, 422, 422, 441, 278, 479, 487, 285, 275, 298, 0, 0, 297, 291, 292, 295, 293, 286, 13, 32, 34, 81, 30, 696, 82, 466, 470, 444, 445, 202, 0, 579, 182, 0, 198, 0, 556, 204, 206, 243, 683, 168, 202, 0, 175, 0, 0, 0, 0, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 211, 212, 213, 216, 215, 218, 219, 221, 222, 223, 224, 226, 227, 229, 231, 233, 657, 202, 659, 202, 502, 108, 0, 118, 119, 120, 121, 122, 696, 110, 422, 113, 0, 0, 141, 142, 101, 151, 696, 139, 140, 0, 48, 0, 0, 58, 59, 69, 67, 315, 0, 314, 56, 76, 0, 63, 66, 0, 696, 68, 161, 286, 278, 422, 0, 278, 425, 413, 422, 416, 422, 435, 289, 202, 296, 696, 36, 0, 278, 506, 581, 278, 202, 0, 680, 677, 209, 278, 176, 174, 278, 278, 0, 602, 103, 113, 97, 116, 112, 117, 115, 114, 0, 145, 0, 0, 0, 0, 138, 0, 0, 154, 163, 696, 153, 0, 0, 66, 0, 72, 0, 54, 53, 0, 61, 60, 62, 0, 0, 0, 0, 0, 0, 278, 696, 162, 0, 266, 278, 427, 278, 278, 422, 430, 0, 405, 0, 408, 290, 299, 0, 39, 278, 0, 199, 0, 196, 676, 557, 0, 178, 179, 662, 111, 146, 143, 149, 0, 150, 147, 148, 152, 0, 157, 0, 0, 0, 0, 278, 0, 78, 77, 0, 73, 0, 50, 45, 46, 55, 66, 57, 70, 0, 74, 75, 0, 0, 313, 278, 278, 287, 202, 278, 0, 428, 278, 414, 0, 417, 0, 14, 507, 197, 599, 177, 202, 144, 158, 155, 0, 159, 160, 164, 307, 52, 49, 0, 0, 71, 47, 64, 311, 268, 431, 422, 426, 202, 403, 409, 663, 156, 65, 51, 429, 432, 406, 0, 0, 0 }; static const short yydefgoto[] = { 1248, 88, 89, 90, 91, 139, 309, 310, 92, 655, 798, 311, 836, 963, 93, 697, 965, 938, 95, 1051, 1187, 1133, 1117, 1188, 1227, 1125, 1053, 1054, 1055, 1129, 1056, 1057, 1191, 1059, 1184, 782, 841, 783, 842, 784, 843, 922, 844, 787, 845, 923, 920, 921, 822, 789, 790, 1030, 1031, 1032, 1100, 1033, 791, 792, 96, 263, 437, 264, 572, 97, 1038, 1168, 1169, 1040, 1114, 1136, 1115, 179, 330, 180, 510, 181, 975, 182, 738, 527, 183, 526, 641, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 544, 194, 546, 195, 545, 868, 196, 224, 483, 319, 425, 99, 667, 804, 597, 598, 601, 100, 305, 101, 261, 133, 134, 599, 600, 937, 828, 829, 830, 831, 952, 102, 793, 847, 1043, 795, 796, 848, 1062, 931, 1060, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 299, 426, 442, 116, 269, 1247, 117, 808, 1209, 811, 1211, 670, 1146, 673, 1148, 118, 940, 941, 1143, 1144, 119, 678, 583, 584, 852, 136, 473, 128, 129, 121, 609, 610, 474, 475, 476, 699, 615, 332, 816, 854, 457, 353, 225, 245, 226, 227, 354, 971, 1155, 229, 651, 230, 231, 430, 232, 233, 199, 411, 355, 351, 356, 477, 709, 357, 320, 629, 358, 204, 359, 553, 806, 1069, 238, 569, 505, 410, 206, 570, 705, 706, 571, 360, 207, 208, 361, 648, 619, 362, 241, 363, 367, 712, 749, 917, 750, 212, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 1019, 1217, 767, 1160, 364, 365, 214, 366, 266, 860, 301, 217, 124 }; static const short yypact[] = { 2068,-32768,-32768, 483, 105, 5486,-32768, 6707,-32768, 662, 3246, 3668, 3668,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768, 535,-32768,-32768,-32768,-32768, 2263,-32768, -32768,-32768, 93,-32768,-32768, 64,-32768, 124,-32768,-32768, -32768, 138, 6296,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768, 6296, 6296, 160, 109,-32768, 681,-32768, -32768, 662,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 483, -32768, 5653,-32768, 167,-32768, 160,-32768,-32768,-32768, 5486, -32768, 185,-32768, 5775,-32768, 193, 300, 446,-32768, 459, 662, 366, 423, 1684,-32768, 2647, 5775, 5775, 5775, 5775, 5775, 5775,-32768, 5804, 5804, 488,-32768, 515, 523, 529, 564, 578, 497, 4945,-32768, 608, 624,-32768, 641,-32768, 834, 1223,-32768,-32768,-32768, 1005, 38, 402, 605, 465, 643, 645, 671, 642, 97,-32768,-32768, 444, 3774, 625, 699,-32768,-32768,-32768,-32768, 803, 3352,-32768, 4945,-32768, 3774,-32768, 639, 3774,-32768,-32768, 819, 837,-32768, 842, -32768, 2841, 641, 854, 481, 799, 3457,-32768, 3668,-32768, -32768,-32768, 6022,-32768,-32768,-32768,-32768, 877, 895,-32768, -32768, 3668, 3774,-32768,-32768, 825,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 878, 903,-32768,-32768, 6570,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768, 951, 864,-32768,-32768, 662, 662, 186,-32768, 93,-32768,-32768,-32768, 3412,-32768,-32768, 204, 6707, 380, 956,-32768,-32768, 975,-32768,-32768, 976, 965, 864, 124, -32768, 717, 994,-32768, 662,-32768, 158,-32768,-32768,-32768, 978, 5775, 5775, 5775, 3095, 1015,-32768,-32768,-32768, 715, 1013, 777, 1025, 1036,-32768,-32768,-32768,-32768,-32768,-32768, 1039, 3412,-32768,-32768, 5775, 1047, 1048, 1051, 1052, 1053, 497, 555, 3623,-32768, 4945,-32768,-32768,-32768,-32768, 1054, -32768,-32768, 4945,-32768, 4945,-32768,-32768,-32768, 5674, 5775, -32768,-32768, 87, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775,-32768,-32768, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775,-32768,-32768,-32768,-32768, 5775,-32768,-32768, 2453, -32768,-32768, 1063,-32768,-32768, 1065,-32768, 5775, 849, 1049, 1055,-32768,-32768,-32768,-32768,-32768, 160, 6022,-32768,-32768, 3668, 3140, 1066,-32768,-32768, 5775, 396, 3880, 5028, 864, -32768, 316, 987, 1061, 1068, 1070, 1073, 1070, 662, 1074, 222,-32768,-32768, 5685, 1071, 753,-32768, 1018,-32768, 864, -32768, 791,-32768,-32768,-32768, 1006, 1069, 1077,-32768, 864, 717,-32768, 662, 1080,-32768, 1081, 662, 1088,-32768, 248, 1092, 328, 1092, 1096,-32768,-32768, 1013, 1090,-32768, 5377, -32768,-32768, 1091, 1098,-32768,-32768,-32768,-32768,-32768,-32768, 5775,-32768, 1099,-32768, 3880,-32768,-32768, 1106, 1097,-32768, 344,-32768, 321, 662, 662,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768, 561,-32768,-32768, -32768, 1005, 1005, 38, 38, 402, 402, 402, 402, 605, 605, 465, 643, 645, 5775, 5775, 5775,-32768,-32768, 3035, -32768, 3563, 4069,-32768,-32768, 1109, 361,-32768,-32768, 864, -32768,-32768, 1112, 1103,-32768, 1113,-32768, 4447,-32768,-32768, 4258, 4492, 1013,-32768, 1100,-32768,-32768, 1119, 1122,-32768, 1126, 1128,-32768, 554,-32768, 1125,-32768,-32768,-32768,-32768, 1130, 765, 1018, 5717, 1129,-32768,-32768,-32768,-32768, 1131, -32768,-32768, 294,-32768,-32768, 5775, 482, 864,-32768,-32768, 1134,-32768,-32768, 1153, 6707,-32768,-32768,-32768,-32768, 1135, -32768, 3095,-32768, 5404,-32768,-32768, 1142,-32768,-32768, 1140, -32768,-32768, 1139,-32768, 5775,-32768,-32768,-32768,-32768, 5853, 5883,-32768, 671, 617, 642,-32768,-32768, 4598, 4945, 5775, -32768, 5941,-32768, 5775,-32768, 1376,-32768,-32768,-32768, 4643, 4749,-32768, 4794,-32768,-32768, 1141,-32768,-32768,-32768,-32768, -32768, 1144,-32768,-32768, 1148,-32768, 662,-32768, 662,-32768, -32768, 35, 1146,-32768, 1145, 80,-32768, 1101,-32768, 1961, -32768,-32768, 1154,-32768, 1150,-32768, 258, 1376,-32768, 662, 737, 4945, 1162, 5404,-32768, 1161,-32768, 1164, 1158, 1147, -32768, 5775, 5941,-32768,-32768,-32768, 3412,-32768, 3412,-32768, -32768,-32768,-32768, 372, 3412, 5775, 5775, 5775, 5775, 5775, 5775, 5804, 5804, 1163, 397, 417, 916, 1279,-32768, 1024, 623, 563, 679, 636, 1157, 1149, 1155, 1133, 111, 1165, -32768, 23,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 450, 525, -32768, 1003,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768, 1376,-32768, 1102,-32768,-32768, 1107,-32768, 1108,-32768,-32768,-32768, 1110,-32768, 4443, 1111, 1376,-32768, -32768, 4900,-32768,-32768,-32768,-32768, 6433,-32768,-32768, 6433, -32768,-32768,-32768,-32768, 5775, 767, 1169,-32768,-32768,-32768, 1175, 791, 1185,-32768, 1961, 5775, 662,-32768,-32768, 1961, 752,-32768, 1187, 1961, 1120,-32768, 1376,-32768, 1188,-32768, -32768,-32768, 1376,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 93, 1190,-32768, 810,-32768, 1018,-32768,-32768, 1161, 5356, 1192, 662,-32768,-32768, 591, 1191, 1194, 1195, 5775, 1197, 603, 1199, 652, 688, 741, 772, 807, 821, 850, 852, 5775, 5706, 5775, 870, 896, 268, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775,-32768, 5775,-32768, 1200, 1209,-32768, 1026, 1198, 10, 141,-32768,-32768,-32768,-32768,-32768,-32768, -32768, 581,-32768,-32768,-32768,-32768, 1961, 802,-32768, 160, 5189,-32768, 6433, 5189, 6433,-32768,-32768,-32768,-32768,-32768, -32768,-32768, 913, 1201,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768, 1376,-32768, 124,-32768, 700,-32768,-32768, -32768, 5749, 1211,-32768,-32768, 942,-32768, 1214, 1013, 1142, 1142,-32768,-32768, 897, 5377, 1213, 907, 929, 360, 662, 662,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768, 935, 961, 970, 556, 658, 723, 806, 61, 338, 443, 485, 471, 629, 81, 476, 59, 671, 5775, 642, 5941,-32768, 639, 1003,-32768,-32768,-32768,-32768,-32768, 885,-32768, 6159, 10, 236, 236,-32768,-32768,-32768, 391, 930,-32768,-32768, 133,-32768, 298, 247,-32768,-32768,-32768, -32768,-32768, 1216,-32768, -9,-32768, 832,-32768, 96, 1212, 124,-32768, 133,-32768,-32768,-32768, 1219, 619,-32768,-32768, 5189,-32768, 5189,-32768,-32768, 1902,-32768, 1008,-32768, 1166, 676,-32768,-32768,-32768, 5775, 662,-32768, 1059, 980,-32768, 985, 986,-32768,-32768, 936,-32768,-32768, 10,-32768,-32768, -32768,-32768,-32768,-32768, 100, 391, 713, 662, 662, 236, -32768, 133, 133,-32768, 512, 1009,-32768, 1218, 1022, 332, 247, 527, 69,-32768,-32768, 298,-32768,-32768,-32768, 298, 29, 662, 662, 1220, 298,-32768, 124, 1224, 1010,-32768, 864,-32768,-32768, 1227,-32768, 1222, 1221,-32768, 1235,-32768, -32768,-32768, 1171,-32768, 784, 1239,-32768, 422,-32768,-32768, -32768, 1241, 992, 998,-32768,-32768,-32768,-32768, 391, 1233, 639,-32768,-32768, 391, 592, 512, 758, 662, 662, 133, -32768, 1072,-32768,-32768, 298,-32768, 332, 1228,-32768, 527, -32768, 527,-32768,-32768, 1242,-32768,-32768, 1072, 1246,-32768, -32768,-32768,-32768, 5775, 619, 1254,-32768,-32768,-32768, 1255, -32768, 1256,-32768,-32768,-32768,-32768, 999, 5775,-32768,-32768, -32768, 1247,-32768,-32768, 512,-32768,-32768,-32768, 1252, 69, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 5775,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1291, 1292, -32768 }; static const short yypgoto[] = { -32768,-32768, 1208,-32768,-32768,-32768,-32768, -437, -118,-32768, -32768, 983,-32768,-32768,-32768,-32768,-32768, 68,-32768,-32768, 367,-32768,-32768, 70, 103,-32768, 176,-32768,-32768,-32768, -768,-32768, -898,-32768,-32768, -688, -745,-32768,-32768,-32768, -634,-32768, -604,-32768, -582,-32768, 279,-32768,-32768, 626, -647,-32768, 207, 283,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768, -842, 142,-32768, -1052,-32768, 257,-32768,-32768, -611, 439, 1151,-32768,-32768, 1138,-32768, -32768,-32768,-32768, -94, -372, -376, -341, -360, -369, -377, -356, -505, -500,-32768, -608,-32768, -68,-32768,-32768, 949, 1012, -599, -422, 6,-32768,-32768,-32768, 526, -3,-32768, -32768,-32768, 804, -270,-32768,-32768,-32768,-32768, -910, -737, -32768,-32768, 518,-32768,-32768,-32768, -579,-32768,-32768,-32768, -494,-32768,-32768,-32768,-32768,-32768, 553,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768, 72, 774,-32768, 861,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768, 161, -689, -806,-32768, 148,-32768,-32768, 678, 682, 501, 1, -410, 1230,-32768, 4,-32768,-32768, -577,-32768, -32768,-32768, 661, -97, 1058,-32768, -451, 136, 1349,-32768, 1121,-32768, 170,-32768,-32768,-32768,-32768, -112,-32768,-32768, -32768,-32768,-32768, 113, 1037, 1019, 1196,-32768,-32768, 1356, -32768,-32768, -310,-32768, 532, 203, -560, -643,-32768, 866, -32768,-32768, 962, -207, 669, 506, -386, 24,-32768, 179, 17,-32768,-32768, 48,-32768, 305,-32768,-32768, 663,-32768, 352, -622,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768, 1403,-32768,-32768, 1479, -301, 516, 0, 19,-32768 }; #define YYLAST 6901 static const short yytable[] = { 122, 120, 132, 290, 592, 122, 98, 130, 465, 122, 216, 216, 216, 563, 682, 533, 534, 531, 532, 123, 487, 785, 702, 542, 123, 427, 565, 209, 141, 751, 541, 590, 608, 1058, 300, 239, 239, 539, 540, 642, 736, 467, 502, 748, -609, 543, 644, 1123, -609, 1077, 846, 786, 535, 536, 537, 538, 1193, 438, 210, 1174, 1175, 453, 334, 335, 336, 337, 338, 339, 94, 3, 389, 390, 115, 788, 1044, 318, 794, 135, 628, 138, -655, 1039, -643, 262, -655, 471, -643, 951, 122, 120, 751, 962, 955, 1120, 98, 924, 959, 966, 400, 1025, 1026, 736, -651, 1046, 748, 819, -651, 123, 820, 419, 934, 391, 392, 809, 423, 513, 424, -279, -46, 260, 943, 122, 1130, 200, 1131, 1166, 1106, 1224, 1107, 131, 1027, 1028, 514, 293, 1068, 397, 398, 1068, 403, 122, 123, 1132, 265, 314, 1029, 1108, 746, 1119, 1121, 785, 122, 747, 914, 1138, 404, 216, 94, 1111, 315, 265, 115, 797, 267, 471, 785, 1034, 647, 1112, 915, 325, 695, 684, 209, 216, 268, 1035, 502, 1124, -278, 786, 198, 228, 228, 692, 660, 268, 268, 443, 302, 846, 240, 240, 1104, 1105, 786, 846, 694, 284, 216, 1063, 467, 788, 552, 210, 794, 448, 216, 746, 216, 316, 216, 313, 747, 216, 414, 209, 788, 321, 1078, 794, 1194, 216, 1186, 209, 1189, 406, 216, 209, 216, 451, 209, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 216, 216, 406, 492, 239, 210, 488, 942, 855, 239, 944, 239, 1070, 210, 1072, 81, 1049, 210, 209, 1034, 210, 664, 839, 1068, 239, 1068, 1173, 333, 406, 1035, 1120, 278, 618, 744, 740, 283, 1118, 285, 739, 289, 1046, 743, 122, 441, 291, 122, 122, 122, 797, 210, 742, 528, 529, 530, 745, 989, 307, 1023, 308, 1071, 691, 123, 455, 797, 445, 447, 449, 122, 464, 741, 407, 265, 990, 122, 211, 846, 690, 561, 423, 81, 1113, 1045, 413, 322, 198, 415, 123, 81, 1036, 1037, 1189, 1046, 315, -422, 744, 740, -422, 1151, -422, 739, 372, 406, 743, 412, -422, -422, -422, 636, 406, -422, -422, 742, 620, 216, 432, 745, 1185, 1130, -644, 1131, 1192, 216, -644, 216, 634, 1198, 318, 198, 635, 452, 741, 1081, 81, 82, 140, 198, 1132, 85, 86, 198, 406, 406, 198, 326, 318, 650, 1091, 391, 392, 682, 228, 945, 406, 625, 624, 228, 869, 228, 751, 240, 471, 855, 953, -278, 240, 453, 240, 1018, 216, 736, 228, 198, 748, 3, 1020, 1228, 1106, -606, 1107, 240, 564, -606, 81, 1036, 1037, 209, 1147, 439, 1149, 216, 216, 318, 560, 81, 1049, 1108, 216, -605, 122, 573, 327, -605, 406, 560, 81, 82, 140, 122, 1214, 85, 86, 391, 392, 239, 239, 595, 210, 123, 122, 211, 122, 405, 459, -645, 406, 461, 585, -645, 122, 323, -604, 122, 314, 469, -604, 122, 472, 123, 443, 123, 1047, 1048, 324, 1170, 81, 1049, 471, 315, 1050, 503, 611, -648, 391, 392, 616, -648, -653, 506, 421, 507, -653, 406, 211, 216, 399, -646, 693, 393, 394, -646, 211, 344, 122, 122, 211, 746, 3, 211, 397, 398, 747, 550, 395, 396, 318, 1007, 1008, 1005, 1006, 708, 345, 637, 638, 1016, 391, 392, 318, 1176, 346, 1177, 1015, 205, 237, 237, 347, 406, 211, 1013, 1014, 918, 216, 216, 1130, 1170, 1131, 1017, 1178, 560, 122, 652, 500, 501, 1009, 1010, 1011, 1012, 216, 209, -707, 216, 216, 1132, 568, 675, 676, 560, -638, 123, 198, 348, -638, 850, -422, -422, -422, 1044, 559, -422, -422, 386, 387, 388, 349, 125, 126, 127, 472, 350, 210, 228, 228, 574, 639, 640, 1045, 579, 122, 582, 240, 240, 314, 406, 902, 903, 1046, 977, 1219, 1176, 866, 1177, 867, 1041, -707, 406, 602, 315, 871, 983, 607, -701, 872, 873, 874, 875, 876, 877, 1178, 406, 720, 568, 1142, 393, 394, 744, 740, -705, 216, 216, 739, -649, 768, 743, 3, -649, 900, 901, 395, 396, 216, 216, 742, 216, -702, 1079, 745, 393, 394, 1087, -422, -422, -422, 399, -623, -422, -422, 122, -623, 122, -637, 741, 395, 396, -637, 400, 455, 700, 205, 568, 216, 908, 909, 386, 387, 388, 585, 122, 585, 402, 122, 122, 216, 453, 592, 853, 471, 568, 663, 832, -628, 3, 401, 768, -628, 211, 840, 904, 905, 616, 123, 408, 198, -707, -707, -422, 680, -422, -707, -707, 1098, 205, 906, 907, 485, -422, 850, 406, 1034, 205, 1110, 1167, -279, 205, 466, -640, 205, 318, 1035, -640, 286, 287, 288, 681, 237, 420, 389, 390, 318, 237, 1135, 237, -278, -627, 453, 1047, 1048, -627, 472, 81, 1049, 471, 3, 1050, 237, 205, 956, 1152, -278, 825, 453, 826, 1235, 1034, 663, 722, 1220, 707, 946, 676, -422, 680, -422, 1035, -626, -528, 405, 663, -626, 406, -422, 981, 216, 488, 1002, 1003, 1004, 81, 82, 140, -474, 453, 85, 86, 574, 1180, 770, 1246, 246, 247, 248, 1064, 122, 409, 1065, 216, 3, 122, -641, -625, 216, 414, -641, -625, 216, -278, 1200, 453, 856, 389, 390, 123, -704, -624, 832, 3, 954, -624, 821, 832, 81, 82, 140, 832, 122, 85, 86, 211, 853, 368, 416, 369, 122, -422, 81, 82, 140, 417, 421, 85, 86, 406, -621, 123, -622, 488, -621, -703, -622, 939, -422, 976, 939, 370, 371, 1126, 1127, 1128, -422, -422, -422, 1088, -618, -422, -422, 422, -618, 428, 885, 3, 508, 81, 1036, 1037, 265, 177, 434, 1097, 270, 271, 272, 273, 274, 275, 276, 277, 429, 279, -619, -610, 282, 433, -619, -610, 1042, 81, 82, 140, 436, -613, 85, 86, 1061, -613, 1074, 1075, 298, 216, 303, 304, 306, 881, 205, 882, 312, -422, 81, 1036, 1037, 265, 177, 634, 1109, 928, 929, 1090, 832, -633, 406, 1164, 298, -633, -422, 237, 237, 883, 884, 340, 1083, 1084, 440, 1085, 81, 82, 140, 280, 281, 85, 86, 81, 82, 140, 458, -634, 85, 86, 596, -634, 385, 463, 122, 122, -635, 1161, 460, 462, -635, 961, 81, 82, 140, 478, -631, 85, 86, 969, -631, -614, -612, 1092, 1093, -614, -612, 939, -616, 939, 939, 939, -616, 468, -617, -615, 768, 197, -617, -615, 298, 265, 265, 1201, 1065, 1179, 1065, 1102, 484, 1042, 1042, 290, 486, 1101, 386, 387, 388, -278, 1116, 593, 1061, 1061, 201, 234, 234, 489, 81, 82, 140, 1182, 1183, 85, 86, 897, 898, 899, 490, 1116, 491, 435, 494, 495, 122, 1145, 496, 497, 498, 554, 504, 557, 216, 555, 562, 575, 558, 122, 573, 576, 205, 1154, 122, 123, 577, 298, -278, 444, 446, 580, 586, 832, 591, 604, 603, 298, 123, 1067, 606, 613, 454, 1158, 612, 1042, 122, 122, 1042, 617, 1116, 1116, 406, 621, 622, 626, 632, 312, 627, 1061, 633, 1061, 666, 630, 1061, 1171, 1172, 1080, 1061, 654, 122, 122, 649, 1061, 318, 653, 1202, 656, 669, 122, 671, 939, 297, 939, 298, 672, 674, 677, 1241, 1195, 1196, 686, 685, 122, 696, 298, 679, 698, 123, 701, 623, 710, 711, 807, 329, 803, 331, 810, 863, 318, 817, 818, 123, 771, 837, 1042, 122, 122, 1116, 857, 835, 859, 862, 1061, 861, 910, 880, 911, 913, 916, 919, 201, 925, 947, 912, 1222, 1223, 926, 927, 948, 930, 933, 950, 122, 1145, 202, 235, 235, 958, 197, 960, 974, 964, 967, 982, 978, 177, 197, 979, 980, 1021, 197, 123, 984, 197, 1140, 1022, 1076, 1061, 282, 1082, 1086, 418, 1089, 201, 1134, 1141, 1024, 1122, 1181, 1208, 1197, 201, 1207, 1179, 373, 201, 1204, 578, 201, 581, 1159, 587, 197, 1210, 588, 1153, 234, 454, 1218, 594, 1212, 234, 1213, 234, 1216, 1226, 1229, 1230, 605, 1232, 1237, 312, 1242, 1239, 1240, 1243, 234, 201, 614, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 1249, 1250, 493, 317, 298, 259, 470, 1052, 1244, 1231, 1190, 886, 1096, 1165, 1206, 450, 317, 317, 317, 317, 317, 317, 823, 342, 343, 1103, 511, 1221, 1137, 987, 384, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 479, 480, 481, 482, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 949, 957, 932, 668, 202, 1236, 450, 970, 547, 815, 456, 813, 292, 849, 244, 431, 1215, 450, 973, 203, 236, 236, 499, 631, 551, 858, 1095, 972, 865, 0, 665, 0, 0, 298, 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 0, 594, 1245, 0, 0, 0, 0, 202, 687, 688, 689, 202, 0, 0, 202, 0, 312, 0, 213, 242, 242, 0, 235, 0, 0, 0, 197, 235, 0, 235, 0, 0, 0, 0, 556, 0, 298, 0, 0, 0, 0, 0, 235, 202, 0, 0, 714, 715, 0, 0, 0, 201, 0, 0, 771, 772, 773, 774, 0, 0, 385, 775, 776, 777, 778, 779, 780, 781, 0, 0, 0, 0, 234, 234, 0, 0, 805, 0, 0, 0, 0, 0, 0, 0, 812, 0, 814, 0, 0, 0, 454, 0, 0, 0, 215, 243, 243, 0, 0, 833, 834, 0, 0, 0, 838, 0, 0, 0, 614, 851, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 385, 0, 0, 0, 298, 0, 298, 0, 0, 0, 0, 0, 298, 0, 0, 0, 0, 0, 0, 0, 0, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 0, 203, 0, 0, 643, 213, 0, 0, 0, 203, 197, 0, 0, 203, 0, 0, 203, 0, 0, 704, 0, 0, 0, 0, 236, 0, 0, 0, 0, 236, 713, 236, 0, 317, 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 236, 203, 0, 0, 213, 0, 0, 317, 202, 0, 0, 936, 213, 0, 0, 0, 213, 0, 0, 213, 0, 0, 0, 0, 0, 0, 0, 242, 0, 235, 235, 0, 242, 0, 242, 0, 482, 215, 0, 0, 0, 827, 0, 317, 0, 0, 0, 242, 213, 0, 0, 0, 0, 0, 317, 704, 0, 0, 0, 968, 851, 0, 594, 0, 723, 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 215, 0, 0, 317, 0, 317, 0, 0, 243, 0, 328, 0, 0, 243, 0, 243, 294, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 243, 215, 0, 864, 0, 0, 0, 0, 450, 0, 450, 162, 163, 164, 0, 0, 870, 0, 0, 0, 0, 0, 0, 1066, 317, 0, 0, 202, 0, 0, 1073, 0, 0, 0, 0, 165, 317, 0, 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 827, 0, 0, 0, 0, 827, 0, 0, 0, 827, 0, 0, 0, 236, 236, 0, 0, 717, 719, 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, 737, 0, 0, 0, 0, 0, 704, 0, 0, 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 385, 0, 0, 0, 985, 511, 0, 0, 242, 242, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 737, 0, 0, 0, 0, 1139, 0, 0, 81, 295, 296, 0, 177, 317, 317, 317, 317, 317, 317, 878, 879, 851, 827, 0, 1156, 215, 0, 0, 0, 0, 298, 988, 0, 1162, 1163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, 0, 243, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 824, 1150, 0, 0, 0, 294, 0, 825, 0, 826, 156, 157, 158, 159, 160, 161, 0, 0, 1199, 0, 0, 0, 0, 0, 0, 1203, 1205, 0, 162, 163, 164, 0, 0, 213, 0, 0, 0, 851, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 165, 0, 0, 317, 0, 0, 0, 824, 0, 0, 482, 1225, 294, 0, 825, 0, 826, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, 0, 1233, 1234, 0, 0, 162, 163, 164, 1238, 0, 0, 0, 0, 0, 174, 0, 317, 0, 0, 0, 0, 827, 0, 0, 0, 0, 0, 215, 1094, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 0, 317, 0, -1, 1, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 81, 175, 176, -278, 177, 85, 86, 1157, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, -422, -422, -422, 0, 6, 0, 0, 0, 0, 7, 8, 9, 81, 175, 176, 0, 177, 85, 86, 0, 0, 0, 0, 0, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 737, 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 0, 0, 0, 0, 0, 81, 82, 83, 84, 0, 85, 86, 87, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, -278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -422, -422, -422, 0, 6, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 13, 14, 15, 16, 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 317, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 0, 0, 0, 0, 0, 81, 82, 83, 84, 142, 85, 86, 87, 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 152, 153, 154, -556, 548, 0, 0, 0, 155, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, -202, -202, 4, 0, 5, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -422, -422, -422, 165, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 173, 13, 14, 15, 16, 174, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 0, 0, 0, 0, 0, 81, 175, 549, 84, 177, 178, 86, 87, 142, 0, 0, 0, 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 152, 153, 154, -171, 0, 0, 0, 0, 155, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, -202, -202, -278, 0, 0, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -278, -278, -278, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 173, -278, -278, -278, -278, 174, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, 0, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, 0, 0, 0, 0, 0, 0, 81, 175, 176, -278, 177, 178, 86, -278, 218, 0, 0, 0, 0, 143, 144, 145, 0, 0, 219, 148, 149, 150, 151, 152, 153, 220, -171, -560, 0, 0, 0, 221, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, -202, -202, -278, 0, 0, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -278, -278, -278, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 173, -278, -278, -278, -278, 174, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, 0, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, 0, 0, 0, 0, 0, 0, 81, 175, 176, -278, 177, 222, 223, -278, -169, 0, 0, 0, 0, -169, -169, -169, 0, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -705, -169, -169, 0, -169, 0, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, 0, -169, 0, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, 0, 0, 0, -169, 0, 0, 0, 0, 0, 0, -258, 0, 0, 0, 0, 0, 294, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, -169, -169, -169, -169, -169, -169, 0, 0, 0, 0, 218, 162, 163, 164, -169, 143, 144, 145, 0, -169, 219, 148, 149, 150, 151, 152, 153, 220, -501, -501, 0, 0, 0, 221, -501, 165, 0, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, -202, -202, 0, 0, 0, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -169, -169, -169, 0, -169, -169, -169, 0, 0, 0, 0, 0, 0, -501, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 142, 0, 0, 173, 0, 143, 144, 145, 174, 146, 147, 148, 149, 150, 151, 152, 153, 154, -556, 0, 0, 0, 0, 155, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 81, 295, 296, 0, 177, 0, -202, -202, 0, 0, 0, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 175, 176, 0, 177, 222, 223, 0, 0, 0, 0, 0, 0, 0, 166, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 142, 0, 0, 173, 0, 143, 144, 145, 174, 146, 147, 148, 149, 150, 151, 152, 153, 154, -556, 0, 0, 0, 0, 155, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, -202, -202, 0, 0, 0, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, 0, -171, 0, 81, 175, 176, 294, 177, 178, 86, 0, 156, 157, 158, 159, 160, 161, -529, 167, 168, 169, 170, 171, 172, -202, -202, 0, 0, 218, 162, 163, 164, 173, 143, 144, 145, 0, 174, 219, 148, 149, 150, 151, 152, 153, 220, -556, -560, 0, 0, 0, 221, 0, 165, 0, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, -202, -202, 0, 0, 0, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 175, 176, 0, 177, 178, 86, 0, 0, 0, 0, 0, 0, -497, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 142, 0, 0, 173, 0, 143, 144, 145, 174, 146, 147, 148, 149, 150, 151, 152, 153, 154, -556, 645, 0, 0, 0, 155, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 81, 295, 296, 0, 177, 0, -202, -202, 0, 0, 0, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, 0, -171, 0, 81, 175, 176, 352, 177, 222, 223, 0, 156, 157, 158, 159, 160, 161, 0, 167, 168, 169, 170, 171, 172, -202, -202, 0, 0, 218, 162, 163, 164, 173, 143, 144, 145, 0, 174, 219, 148, 149, 150, 151, 152, 153, 220, -556, -560, 0, 0, 0, 221, 0, 165, 0, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, -202, -202, 0, 0, 0, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 175, 176, 0, 177, 178, 86, 0, 0, 0, 0, 0, 0, 0, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 142, 0, 0, 173, 0, 143, 144, 145, 174, 146, 147, 148, 149, 150, 151, 152, 153, 154, -556, 0, 0, 0, 0, 155, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 81, 295, 296, 0, 177, 0, -202, -202, 0, 0, 0, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 175, 176, 0, 177, 222, 223, 0, 0, 0, 0, 0, 0, 0, 0, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 143, 144, 145, 174, 146, 147, 148, 149, 150, 151, 152, 153, 220, -556, 566, 0, 0, 0, 352, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, -202, -202, 4, 0, 5, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 6, 0, 0, 0, 0, 0, 0, 0, 0, 81, 175, 176, 0, 177, 178, 86, 0, 0, 0, 0, 0, 0, 0, 0, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 567, 13, 14, 15, 16, 174, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 0, 0, 0, 0, 0, 81, 175, 549, 84, 177, 178, 86, 87, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 152, 153, 220, -556, 646, 0, 0, 0, 352, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, -202, -202, 4, 0, 5, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 173, 13, 14, 15, 16, 174, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 0, 0, 0, 0, 0, 81, 175, 549, 84, 177, 178, 86, 87, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 152, 153, 220, -556, 658, 0, 0, 0, 352, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, -202, -202, 4, 0, 5, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 659, 13, 14, 15, 16, 174, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 0, 0, 0, 0, 0, 81, 175, 549, 84, 177, 178, 86, 87, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 152, 153, 220, -556, 657, 0, 0, 0, 352, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 163, 164, 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 152, 153, 220, -556, 661, 0, 0, 0, 352, 0, 165, 0, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 163, 164, 0, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 174, 165, 0, 23, 24, 25, 26, 0, 27, 0, 0, 0, 0, 32, 33, 0, 0, 36, 37, 0, 39, 40, 41, 42, 0, 0, 167, 168, 169, 170, 171, 172, 0, 0, 0, 54, 55, 0, 0, 0, 662, 0, 143, 144, 145, 174, 146, 147, 148, 149, 150, 151, 152, 153, 220, -556, 721, 0, 0, 0, 352, 80, 0, 0, 0, 156, 157, 158, 159, 160, 161, 84, 81, 175, 176, 0, 177, 178, 86, 0, 0, 0, 0, 162, 163, 164, 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 152, 153, 220, -556, 799, 0, 0, 0, 352, 0, 165, 0, 0, 156, 157, 158, 159, 160, 161, 0, 81, 175, 176, 0, 177, 178, 86, 0, 0, 0, 0, 162, 163, 164, 0, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 174, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 143, 144, 145, 174, 146, 147, 148, 149, 150, 151, 152, 153, 220, -556, 800, 0, 0, 0, 352, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 81, 175, 176, 0, 177, 178, 86, 0, 0, 0, 0, 162, 163, 164, 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 152, 153, 220, -556, 802, 0, 0, 0, 352, 0, 165, 0, 0, 156, 157, 158, 159, 160, 161, 0, 81, 175, 176, 0, 177, 178, 86, 0, 0, 0, 0, 162, 163, 164, 0, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, 174, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 143, 144, 145, 174, 146, 147, 148, 149, 150, 151, 152, 153, 220, -556, 935, 0, 0, 0, 352, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 81, 175, 176, 0, 177, 178, 86, 0, 0, 0, 0, 162, 163, 164, 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 152, 153, 220, -556, 0, 0, 0, 0, 352, 0, 165, 0, 0, 156, 157, 158, 159, 160, 161, 0, 81, 175, 176, 0, 177, 178, 86, 0, 0, 0, 0, 162, 163, 164, 0, 167, 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 174, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 168, 169, 170, 171, 172, -135, 0, 0, 0, 0, -135, 0, 0, 173, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 175, 176, 0, 177, 178, 86, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 175, 176, 0, 177, 178, 86, 13, 14, 15, 16, 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, -559, 0, 0, 0, 0, 0, 0, 0, 137, 84, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 0, 0, 0, 0, 703, -699, 0, 137, 84, 294, 0, 0, 87, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 294, 0, 162, 163, 164, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 703, 162, 163, 164, 165, 294, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 0, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -278, 0, 0, 0, 0, 0, 0, 0, 0, 174, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 295, 296, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 295, 296, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 295, 296, 0, 177, 0, 13, 14, 15, 16, 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 0, 0, 0, 0, 0, 81, 82, 83, 84, 294, 85, 86, 87, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, -202, -202, 0, 294, 509, 162, 163, 164, 156, 157, 158, 159, 160, 161, 294, 0, 0, 589, 0, 156, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 0, 0, 0, 0, 0, 294, 986, 162, 163, 164, 156, 157, 158, 159, 160, 161, 294, 0, 0, 683, 165, 156, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 0, 0, 0, 0, 0, 0, 0, 162, 163, 164, 0, 174, 0, 0, 0, 0, 294, -258, 0, 0, 165, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 165, 174, 0, 0, 0, 0, 0, 0, 162, 163, 164, 294, 174, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 174, 162, 163, 164, 0, 0, 0, 341, 0, 0, 0, 174, 156, 157, 158, 159, 160, 161, 0, 81, 295, 296, 0, 177, 0, 165, 0, 0, 0, 0, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 81, 295, 296, 174, 177, 0, 0, 0, 0, 0, 0, 81, 295, 296, 165, 177, 716, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 0, 174, 0, 0, 81, 295, 296, 0, 177, 0, 0, 162, 163, 164, 0, 81, 295, 296, 718, 177, 0, 0, 0, 156, 157, 158, 159, 160, 161, 0, 174, 0, 0, 0, 0, 165, 0, 0, 0, 0, 0, 162, 163, 164, 0, 0, 0, 81, 295, 296, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, 0, 81, 295, 296, 724, 177, 0, 174, 0, 725, 726, 727, 728, 729, 730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 731, 732, 81, 295, 296, 0, 177, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 295, 296, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5, 0, 81, 295, 296, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -422, -422, -422, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 734, 735, 0, 177, 13, 14, 15, 16, 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 4, 0, 5, 0, 0, 0, 0, 0, 137, 84, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 4, 0, 0, 0, 0, 0, 81, 1099, 137, 84, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -422, -422, -422, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 4, 0, 0, 0, 0, 0, 0, 0, 137, 84, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 4, 0, 5, 0, 0, 0, 0, 0, 137, 84, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 4, 0, 0, 0, 0, 0, 0, 0, 137, 84, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 0, 0, 0, 0, 0, 0, 0, 137, 84, 0, 0, 0, 87 }; static const short yycheck[] = { 0, 0, 5, 121, 455, 5, 0, 3, 309, 9, 10, 11, 12, 435, 591, 391, 392, 389, 390, 0, 330, 655, 621, 400, 5, 232, 436, 10, 9, 651, 399, 453, 469, 931, 131, 11, 12, 397, 398, 544, 651, 311, 352, 651, 21, 401, 546, 56, 25, 959, 697, 655, 393, 394, 395, 396, 27, 264, 10, 1111, 1112, 26, 156, 157, 158, 159, 160, 161, 0, 34, 32, 33, 0, 655, 5, 143, 655, 5, 500, 7, 21, 923, 21, 19, 25, 5, 25, 824, 88, 88, 712, 836, 829, 24, 88, 783, 833, 842, 39, 89, 90, 712, 21, 34, 712, 25, 25, 88, 685, 221, 798, 50, 51, 673, 226, 28, 228, 24, 22, 26, 809, 121, 26, 10, 28, 25, 26, 1179, 28, 24, 120, 121, 45, 129, 940, 54, 55, 943, 41, 139, 121, 45, 18, 139, 134, 45, 651, 1045, 1046, 783, 150, 651, 41, 1063, 57, 155, 88, 24, 139, 18, 88, 655, 24, 5, 798, 24, 552, 34, 57, 150, 607, 593, 155, 173, 102, 34, 486, 186, 18, 783, 10, 11, 12, 605, 570, 113, 114, 284, 21, 836, 11, 12, 1034, 1035, 798, 842, 606, 88, 198, 936, 470, 783, 409, 155, 783, 19, 206, 712, 208, 24, 210, 139, 712, 213, 191, 198, 798, 24, 963, 798, 191, 221, 1120, 206, 1122, 21, 226, 210, 228, 25, 213, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 241, 242, 21, 341, 221, 198, 25, 808, 700, 226, 811, 228, 942, 206, 944, 187, 188, 210, 242, 24, 213, 572, 5, 1070, 241, 1072, 1109, 155, 21, 34, 24, 111, 25, 651, 651, 115, 1045, 117, 651, 119, 34, 651, 283, 283, 124, 286, 287, 288, 783, 242, 651, 386, 387, 388, 651, 28, 136, 920, 138, 943, 602, 283, 299, 798, 286, 287, 288, 308, 308, 651, 198, 18, 45, 314, 10, 963, 23, 430, 431, 187, 188, 24, 210, 24, 155, 213, 308, 187, 188, 189, 1229, 34, 314, 18, 712, 712, 21, 1075, 23, 712, 180, 21, 712, 208, 187, 188, 189, 27, 21, 192, 193, 712, 25, 354, 242, 712, 25, 26, 21, 28, 1129, 362, 25, 364, 21, 1134, 435, 198, 25, 298, 712, 971, 187, 188, 189, 206, 45, 192, 193, 210, 21, 21, 213, 18, 453, 25, 27, 50, 51, 967, 221, 814, 21, 491, 489, 226, 25, 228, 1021, 221, 5, 853, 825, 24, 226, 26, 228, 913, 409, 1021, 241, 242, 1021, 34, 915, 1184, 26, 21, 28, 241, 25, 25, 187, 188, 189, 409, 1070, 267, 1072, 430, 431, 500, 427, 187, 188, 45, 437, 21, 439, 439, 18, 25, 21, 438, 187, 188, 189, 448, 27, 192, 193, 50, 51, 430, 431, 459, 409, 439, 459, 155, 461, 18, 302, 21, 21, 305, 448, 25, 469, 24, 21, 472, 469, 313, 25, 476, 316, 459, 576, 461, 183, 184, 24, 1106, 187, 188, 5, 469, 191, 354, 472, 21, 50, 51, 476, 25, 21, 362, 18, 364, 25, 21, 198, 504, 29, 21, 25, 37, 38, 25, 206, 24, 513, 514, 210, 1021, 34, 213, 54, 55, 1021, 409, 52, 53, 593, 902, 903, 900, 901, 627, 16, 513, 514, 911, 50, 51, 605, 26, 16, 28, 910, 10, 11, 12, 16, 21, 242, 908, 909, 25, 551, 552, 26, 1176, 28, 912, 45, 552, 559, 559, 6, 7, 904, 905, 906, 907, 567, 551, 34, 570, 571, 45, 437, 20, 21, 570, 21, 559, 409, 16, 25, 700, 187, 188, 189, 5, 426, 192, 193, 34, 35, 36, 15, 111, 112, 113, 436, 101, 551, 430, 431, 441, 42, 43, 24, 445, 607, 447, 430, 431, 607, 21, 50, 51, 34, 25, 25, 26, 716, 28, 718, 923, 88, 21, 464, 607, 724, 25, 468, 22, 725, 726, 727, 728, 729, 730, 45, 21, 22, 504, 22, 37, 38, 1021, 1021, 22, 647, 648, 1021, 21, 651, 1021, 34, 25, 32, 33, 52, 53, 659, 660, 1021, 662, 22, 965, 1021, 37, 38, 978, 187, 188, 189, 29, 21, 192, 193, 676, 25, 678, 21, 1021, 52, 53, 25, 39, 681, 614, 155, 552, 689, 54, 55, 34, 35, 36, 676, 696, 678, 56, 699, 700, 701, 26, 1154, 700, 5, 570, 571, 689, 21, 34, 40, 712, 25, 409, 696, 37, 38, 699, 700, 95, 551, 187, 188, 24, 25, 26, 192, 193, 1030, 198, 52, 53, 18, 34, 853, 21, 24, 206, 1040, 27, 24, 210, 26, 21, 213, 814, 34, 25, 68, 69, 70, 591, 221, 222, 32, 33, 825, 226, 1060, 228, 24, 21, 26, 183, 184, 25, 606, 187, 188, 5, 34, 191, 241, 242, 23, 1077, 24, 26, 26, 28, 1203, 24, 647, 648, 27, 625, 20, 21, 24, 25, 26, 34, 21, 95, 18, 660, 25, 21, 34, 868, 801, 25, 897, 898, 899, 187, 188, 189, 25, 26, 192, 193, 652, 1115, 654, 1238, 13, 14, 15, 18, 821, 19, 21, 824, 34, 826, 21, 21, 829, 191, 25, 25, 833, 24, 1136, 26, 701, 32, 33, 821, 22, 21, 824, 34, 826, 25, 686, 829, 187, 188, 189, 833, 853, 192, 193, 551, 853, 24, 22, 26, 861, 28, 187, 188, 189, 24, 18, 192, 193, 21, 21, 853, 21, 25, 25, 22, 25, 806, 45, 861, 809, 48, 49, 52, 53, 54, 187, 188, 189, 984, 21, 192, 193, 95, 25, 19, 736, 34, 367, 187, 188, 189, 18, 191, 27, 21, 103, 104, 105, 106, 107, 108, 109, 110, 20, 112, 21, 21, 115, 95, 25, 25, 923, 187, 188, 189, 24, 21, 192, 193, 931, 25, 20, 21, 131, 936, 133, 134, 135, 24, 409, 26, 139, 28, 187, 188, 189, 18, 191, 21, 21, 791, 792, 25, 936, 21, 21, 22, 155, 25, 45, 430, 431, 48, 49, 162, 25, 26, 18, 28, 187, 188, 189, 113, 114, 192, 193, 187, 188, 189, 25, 21, 192, 193, 194, 25, 183, 23, 989, 990, 21, 1089, 18, 18, 25, 835, 187, 188, 189, 22, 21, 192, 193, 194, 25, 21, 21, 989, 990, 25, 25, 940, 21, 942, 943, 944, 25, 24, 21, 21, 1021, 10, 25, 25, 221, 18, 18, 18, 21, 21, 21, 1032, 18, 1034, 1035, 1154, 24, 1032, 34, 35, 36, 24, 1043, 26, 1045, 1046, 10, 11, 12, 25, 187, 188, 189, 32, 33, 192, 193, 34, 35, 36, 25, 1062, 24, 260, 18, 18, 1067, 1067, 18, 18, 18, 9, 19, 25, 1075, 11, 11, 91, 24, 1080, 1080, 21, 551, 1080, 1085, 1067, 19, 284, 19, 286, 287, 19, 19, 1075, 24, 27, 91, 294, 1080, 939, 24, 21, 299, 1085, 25, 1106, 1107, 1108, 1109, 22, 1111, 1112, 21, 18, 25, 25, 11, 314, 21, 1120, 24, 1122, 23, 25, 1125, 1107, 1108, 967, 1129, 27, 1131, 1132, 24, 1134, 1203, 24, 1140, 25, 20, 1140, 19, 1070, 131, 1072, 341, 20, 19, 23, 1217, 1131, 1132, 21, 24, 1154, 21, 352, 27, 5, 1140, 25, 19, 22, 24, 20, 153, 25, 155, 20, 22, 1238, 25, 27, 1154, 73, 25, 1176, 1177, 1178, 1179, 18, 27, 21, 25, 1184, 21, 29, 24, 39, 56, 25, 188, 155, 91, 25, 40, 1177, 1178, 91, 91, 25, 91, 91, 18, 1204, 1204, 10, 11, 12, 22, 198, 91, 20, 25, 24, 18, 25, 191, 206, 25, 25, 21, 210, 1204, 25, 213, 1065, 18, 27, 1229, 426, 20, 18, 221, 21, 198, 24, 18, 40, 23, 22, 20, 22, 206, 22, 21, 23, 210, 21, 445, 213, 447, 193, 449, 242, 20, 452, 91, 221, 455, 27, 457, 91, 226, 25, 228, 25, 195, 40, 27, 466, 25, 18, 469, 27, 20, 20, 25, 241, 242, 476, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 0, 0, 344, 143, 491, 88, 314, 931, 1229, 1197, 1125, 23, 1024, 1097, 1144, 294, 156, 157, 158, 159, 160, 161, 687, 163, 164, 1033, 368, 1176, 1062, 881, 183, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 321, 322, 323, 324, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 821, 830, 796, 576, 155, 1204, 341, 853, 406, 678, 299, 676, 129, 699, 12, 241, 1160, 352, 859, 10, 11, 12, 350, 504, 409, 703, 1021, 858, 712, -1, 573, -1, -1, 576, 369, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, 592, 1236, -1, -1, -1, -1, 206, 599, 600, 601, 210, -1, -1, 213, -1, 607, -1, 10, 11, 12, -1, 221, -1, -1, -1, 409, 226, -1, 228, -1, -1, -1, -1, 417, -1, 627, -1, -1, -1, -1, -1, 241, 242, -1, -1, 637, 638, -1, -1, -1, 409, -1, -1, 73, 74, 75, 76, -1, -1, 651, 80, 81, 82, 83, 84, 85, 86, -1, -1, -1, -1, 430, 431, -1, -1, 667, -1, -1, -1, -1, -1, -1, -1, 675, -1, 677, -1, -1, -1, 681, -1, -1, -1, 10, 11, 12, -1, -1, 690, 691, -1, -1, -1, 695, -1, -1, -1, 699, 700, -1, -1, -1, -1, -1, -1, 155, -1, -1, -1, -1, 712, -1, -1, -1, 716, -1, 718, -1, -1, -1, -1, -1, 724, -1, -1, -1, -1, -1, -1, -1, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, -1, 198, -1, -1, 545, 155, -1, -1, -1, 206, 551, -1, -1, 210, -1, -1, 213, -1, -1, 623, -1, -1, -1, -1, 221, -1, -1, -1, -1, 226, 634, 228, -1, 435, -1, 551, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, -1, -1, 198, -1, -1, 453, 409, -1, -1, 804, 206, -1, -1, -1, 210, -1, -1, 213, -1, -1, -1, -1, -1, -1, -1, 221, -1, 430, 431, -1, 226, -1, 228, -1, 621, 155, -1, -1, -1, 689, -1, 489, -1, -1, -1, 241, 242, -1, -1, -1, -1, -1, 500, 703, -1, -1, -1, 852, 853, -1, 855, -1, 649, -1, -1, -1, 653, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, -1, -1, -1, 206, -1, -1, -1, 210, -1, -1, 213, -1, -1, 544, -1, 546, -1, -1, 221, -1, 18, -1, -1, 226, -1, 228, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, 241, 242, -1, 711, -1, -1, -1, -1, 716, -1, 718, 47, 48, 49, -1, -1, 724, -1, -1, -1, -1, -1, -1, 939, 593, -1, -1, 551, -1, -1, 946, -1, -1, -1, -1, 71, 605, -1, -1, -1, -1, -1, -1, -1, -1, 409, -1, -1, -1, -1, -1, -1, -1, 824, -1, -1, -1, -1, 829, -1, -1, -1, 833, -1, -1, -1, 430, 431, -1, -1, 639, 640, -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, 651, -1, -1, -1, -1, -1, 859, -1, -1, -1, 409, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1021, -1, -1, -1, 880, 881, -1, -1, 430, 431, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 712, -1, -1, -1, -1, 1064, -1, -1, 187, 188, 189, -1, 191, 725, 726, 727, 728, 729, 730, 731, 732, 1080, 936, -1, 1083, 409, -1, -1, -1, -1, 1089, 882, -1, 1092, 1093, -1, -1, -1, -1, -1, -1, -1, -1, -1, 551, -1, 430, 431, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, 24, -1, 26, -1, 28, 29, 30, 31, 32, 33, 34, -1, -1, 1135, -1, -1, -1, -1, -1, -1, 1142, 1143, -1, 47, 48, 49, -1, -1, 551, -1, -1, -1, 1154, -1, -1, -1, -1, -1, -1, 814, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, 825, -1, -1, -1, 19, -1, -1, 971, 1180, 24, -1, 26, -1, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, 1200, 1201, -1, -1, 47, 48, 49, 1207, -1, -1, -1, -1, -1, 115, -1, 868, -1, -1, -1, -1, 1075, -1, -1, -1, -1, -1, 551, 1019, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, -1, 915, -1, 0, 1, -1, -1, -1, -1, -1, -1, 115, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, -1, -1, 187, 188, 189, 24, 191, 192, 193, 1084, -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 984, 68, 69, 70, -1, 72, -1, -1, -1, -1, 77, 78, 79, 187, 188, 189, -1, 191, 192, 193, -1, -1, -1, -1, -1, 92, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1021, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, -1, -1, -1, -1, -1, -1, 187, 188, 189, 190, -1, 192, 193, 194, 0, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, -1, 72, -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1203, 92, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1217, -1, -1, -1, -1, -1, 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 1238, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, -1, -1, -1, -1, -1, -1, 187, 188, 189, 190, 1, 192, 193, 194, -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, -1, -1, -1, -1, -1, -1, 187, 188, 189, 190, 191, 192, 193, 194, 1, -1, -1, -1, -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, -1, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, -1, -1, -1, -1, -1, -1, 187, 188, 189, 190, 191, 192, 193, 194, 1, -1, -1, -1, -1, 6, 7, 8, -1, -1, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, -1, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, -1, -1, -1, -1, -1, -1, 187, 188, 189, 190, 191, 192, 193, 194, 1, -1, -1, -1, -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, -1, 26, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, -1, 45, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, 1, 47, 48, 49, 110, 6, 7, 8, -1, 115, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, 25, 71, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, -1, -1, -1, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187, 188, 189, -1, 191, 192, 193, -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, 1, -1, -1, 110, -1, 6, 7, 8, 115, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, 187, 188, 189, -1, 191, -1, 42, 43, -1, -1, -1, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187, 188, 189, -1, 191, 192, 193, -1, -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, 1, -1, -1, 110, -1, 6, 7, 8, 115, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, -1, -1, -1, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 19, -1, 187, 188, 189, 24, 191, 192, 193, -1, 29, 30, 31, 32, 33, 34, 95, 96, 97, 98, 99, 100, 101, 42, 43, -1, -1, 1, 47, 48, 49, 110, 6, 7, 8, -1, 115, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, 71, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, -1, -1, -1, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187, 188, 189, -1, 191, 192, 193, -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, 1, -1, -1, 110, -1, 6, 7, 8, 115, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, 187, 188, 189, -1, 191, -1, 42, 43, -1, -1, -1, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 19, -1, 187, 188, 189, 24, 191, 192, 193, -1, 29, 30, 31, 32, 33, 34, -1, 96, 97, 98, 99, 100, 101, 42, 43, -1, -1, 1, 47, 48, 49, 110, 6, 7, 8, -1, 115, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, 71, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, -1, -1, -1, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187, 188, 189, -1, 191, 192, 193, -1, -1, -1, -1, -1, -1, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, 1, -1, -1, 110, -1, 6, 7, 8, 115, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, 187, 188, 189, -1, 191, -1, 42, 43, -1, -1, -1, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187, 188, 189, -1, 191, 192, 193, -1, -1, -1, -1, -1, -1, -1, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, 6, 7, 8, 115, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, 187, 188, 189, -1, 191, 192, 193, -1, -1, -1, -1, -1, -1, -1, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, -1, -1, -1, -1, -1, -1, 187, 188, 189, 190, 191, 192, 193, 194, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, -1, -1, -1, -1, -1, -1, 187, 188, 189, 190, 191, 192, 193, 194, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, -1, -1, -1, -1, -1, -1, 187, 188, 189, 190, 191, 192, 193, 194, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, 48, 49, -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, 71, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, 48, 49, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, -1, 115, 71, -1, 122, 123, 124, 125, -1, 127, -1, -1, -1, -1, 132, 133, -1, -1, 136, 137, -1, 139, 140, 141, 142, -1, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, 154, 155, -1, -1, -1, 110, -1, 6, 7, 8, 115, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, 180, -1, -1, -1, 29, 30, 31, 32, 33, 34, 190, 187, 188, 189, -1, 191, 192, 193, -1, -1, -1, -1, 47, 48, 49, -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, 71, -1, -1, 29, 30, 31, 32, 33, 34, -1, 187, 188, 189, -1, 191, 192, 193, -1, -1, -1, -1, 47, 48, 49, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, -1, 115, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, 6, 7, 8, 115, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, 187, 188, 189, -1, 191, 192, 193, -1, -1, -1, -1, 47, 48, 49, -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, 71, -1, -1, 29, 30, 31, 32, 33, 34, -1, 187, 188, 189, -1, 191, 192, 193, -1, -1, -1, -1, 47, 48, 49, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, -1, 115, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, 6, 7, 8, 115, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, 187, 188, 189, -1, 191, 192, 193, -1, -1, -1, -1, 47, 48, 49, -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, -1, 24, -1, 71, -1, -1, 29, 30, 31, 32, 33, 34, -1, 187, 188, 189, -1, 191, 192, 193, -1, -1, -1, -1, 47, 48, 49, -1, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, -1, 115, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, 97, 98, 99, 100, 101, 19, -1, -1, -1, -1, 24, -1, -1, 110, -1, -1, -1, -1, 115, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187, 188, 189, -1, 191, 192, 193, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187, 188, 189, -1, 191, 192, 193, 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 20, -1, -1, -1, -1, -1, -1, -1, 189, 190, -1, -1, -1, 194, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, -1, -1, -1, -1, -1, 19, 20, -1, 189, 190, 24, -1, -1, 194, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1, 24, -1, 47, 48, 49, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 47, 48, 49, 71, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, 115, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187, 188, 189, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187, 188, 189, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187, 188, 189, -1, 191, -1, 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, -1, -1, -1, -1, -1, -1, 187, 188, 189, 190, 24, 192, 193, 194, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, -1, 24, 25, 47, 48, 49, 29, 30, 31, 32, 33, 34, 24, -1, -1, 27, -1, 29, 30, 31, 32, 33, 34, -1, 47, 48, 49, 71, -1, -1, -1, -1, -1, 24, 25, 47, 48, 49, 29, 30, 31, 32, 33, 34, 24, -1, -1, 27, 71, 29, 30, 31, 32, 33, 34, -1, 47, 48, 49, 71, -1, -1, -1, -1, -1, -1, -1, 47, 48, 49, -1, 115, -1, -1, -1, -1, 24, 25, -1, -1, 71, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, 71, 115, -1, -1, -1, -1, -1, -1, 47, 48, 49, 24, 115, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, 115, 47, 48, 49, -1, -1, -1, 24, -1, -1, -1, 115, 29, 30, 31, 32, 33, 34, -1, 187, 188, 189, -1, 191, -1, 71, -1, -1, -1, -1, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, 187, 188, 189, 115, 191, -1, -1, -1, -1, -1, -1, 187, 188, 189, 71, 191, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, 115, -1, -1, 187, 188, 189, -1, 191, -1, -1, 47, 48, 49, -1, 187, 188, 189, 24, 191, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, 115, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, 47, 48, 49, -1, -1, -1, 187, 188, 189, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 187, 188, 189, 24, 191, -1, 115, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, 48, 49, 187, 188, 189, -1, 191, -1, -1, 115, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187, 188, 189, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, 187, 188, 189, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187, 188, 189, -1, 191, 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 44, -1, 46, -1, -1, -1, -1, -1, 189, 190, -1, -1, -1, 194, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 44, -1, -1, -1, -1, -1, 187, 188, 189, 190, -1, -1, -1, 194, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 44, -1, -1, -1, -1, -1, -1, -1, 189, 190, -1, -1, -1, 194, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 44, -1, 46, -1, -1, -1, -1, -1, 189, 190, -1, -1, -1, 194, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 44, -1, -1, -1, -1, -1, -1, -1, 189, 190, -1, -1, -1, 194, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, -1, -1, -1, -1, -1, -1, -1, -1, 189, 190, -1, -1, -1, 194 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ /* This is the parser code that is written into each bison parser when the %semantic_parser declaration is not specified in the grammar. It was written by Richard Stallman by simplifying the hairy parser used when %semantic_parser is specified. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE) /* The parser invokes alloca or malloc; define the necessary symbols. */ # if YYSTACK_USE_ALLOCA # define YYSTACK_ALLOC alloca # else # ifndef YYSTACK_USE_ALLOCA # if defined (alloca) || defined (_ALLOCA_H) # define YYSTACK_ALLOC alloca # else # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's `empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # else # if defined (__STDC__) || defined (__cplusplus) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # endif # define YYSTACK_ALLOC malloc # define YYSTACK_FREE free # endif #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ #if (! defined (yyoverflow) \ && (! defined (__cplusplus) \ || (YYLTYPE_IS_TRIVIAL && cgrammar_YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { short yyss; cgrammar_YYSTYPE yyvs; # if YYLSP_NEEDED YYLTYPE yyls; # endif }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # if YYLSP_NEEDED # define YYSTACK_BYTES(N) \ ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE) + sizeof (YYLTYPE)) \ + 2 * YYSTACK_GAP_MAX) # else # define YYSTACK_BYTES(N) \ ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE)) \ + YYSTACK_GAP_MAX) # endif /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY # if 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else # define YYCOPY(To, From, Count) \ do \ { \ register YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (To)[yyi] = (From)[yyi]; \ } \ while (0) # endif # endif /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) #endif #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ #endif #if ! defined (YYSIZE_T) && defined (size_t) # define YYSIZE_T size_t #endif #if ! defined (YYSIZE_T) # if defined (__STDC__) || defined (__cplusplus) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # endif #endif #if ! defined (YYSIZE_T) # define YYSIZE_T unsigned int #endif #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { \ yychar = (Token); \ yylval = (Value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { \ yyerror ("syntax error: cannot back up"); \ YYERROR; \ } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 /* YYLLOC_DEFAULT -- Compute the default location (before the actions are run). When YYLLOC_DEFAULT is run, CURRENT is set the location of the first token. By default, to implement support for ranges, extend its range to the last symbol. */ #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ Current.last_line = Rhs[N].last_line; \ Current.last_column = Rhs[N].last_column; #endif /* YYLEX -- calling `yylex' with the right arguments. */ #if YYPURE # if YYLSP_NEEDED # ifdef YYLEX_PARAM # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) # else # define YYLEX yylex (&yylval, &yylloc) # endif # else /* !YYLSP_NEEDED */ # ifdef YYLEX_PARAM # define YYLEX yylex (&yylval, YYLEX_PARAM) # else # define YYLEX yylex (&yylval) # endif # endif /* !YYLSP_NEEDED */ #else /* !YYPURE */ # define YYLEX yylex () #endif /* !YYPURE */ /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #if YYMAXDEPTH == 0 # undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif #ifdef YYERROR_VERBOSE # ifndef yystrlen # if defined (__GLIBC__) && defined (_STRING_H) # define yystrlen strlen # else /* Return the length of YYSTR. */ static YYSIZE_T # if defined (__STDC__) || defined (__cplusplus) yystrlen (const char *yystr) # else yystrlen (yystr) const char *yystr; # endif { register const char *yys = yystr; while (*yys++ != '\0') continue; return yys - yystr - 1; } # endif # endif # ifndef yystpcpy # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ static char * # if defined (__STDC__) || defined (__cplusplus) yystpcpy (char *yydest, const char *yysrc) # else yystpcpy (yydest, yysrc) char *yydest; const char *yysrc; # endif { register char *yyd = yydest; register const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif #endif /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. It should actually point to an object. Grammar actions can access the variable by casting it to the proper pointer type. */ #ifdef YYPARSE_PARAM # if defined (__STDC__) || defined (__cplusplus) # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM # define YYPARSE_PARAM_DECL # else # define YYPARSE_PARAM_ARG YYPARSE_PARAM # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; # endif #else /* !YYPARSE_PARAM */ # define YYPARSE_PARAM_ARG # define YYPARSE_PARAM_DECL #endif /* !YYPARSE_PARAM */ /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ # ifdef YYPARSE_PARAM int yyparse (void *); # else int yyparse (void); # endif #endif /* YY_DECL_VARIABLES -- depending whether we use a pure parser, variables are global, or local to YYPARSE. */ #define YY_DECL_NON_LSP_VARIABLES \ /* The lookahead symbol. */ \ int yychar; \ \ /* The semantic value of the lookahead symbol. */ \ cgrammar_YYSTYPE yylval; \ \ /* Number of parse errors so far. */ \ int yynerrs; #if YYLSP_NEEDED # define YY_DECL_VARIABLES \ YY_DECL_NON_LSP_VARIABLES \ \ /* Location data for the lookahead symbol. */ \ YYLTYPE yylloc; #else # define YY_DECL_VARIABLES \ YY_DECL_NON_LSP_VARIABLES #endif /* If nonreentrant, generate the variables here. */ #if !YYPURE YY_DECL_VARIABLES #endif /* !YYPURE */ int yyparse (YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL { /* If reentrant, generate the variables here. */ #if YYPURE YY_DECL_VARIABLES #endif /* !YYPURE */ register int yystate; register int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Lookahead token as an internal (translated) token number. */ int yychar1 = 0; /* Three stacks and their tools: `yyss': related to states, `yyvs': related to semantic values, `yyls': related to locations. Refer to the stacks thru separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ short yyssa[YYINITDEPTH]; short *yyss = yyssa; register short *yyssp; /* The semantic value stack. */ cgrammar_YYSTYPE yyvsa[YYINITDEPTH]; cgrammar_YYSTYPE *yyvs = yyvsa; register cgrammar_YYSTYPE *yyvsp; #if YYLSP_NEEDED /* The location stack. */ YYLTYPE yylsa[YYINITDEPTH]; YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; #endif #if YYLSP_NEEDED # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else # define YYPOPSTACK (yyvsp--, yyssp--) #endif YYSIZE_T yystacksize = YYINITDEPTH; /* The variables used to return semantic value and location from the action routines. */ cgrammar_YYSTYPE yyval; #if YYLSP_NEEDED YYLTYPE yyloc; #endif /* When reducing, the number of symbols on the RHS of the reduced rule. */ int yylen; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss; yyvsp = yyvs; #if YYLSP_NEEDED yylsp = yyls; #endif goto yysetstate; /*------------------------------------------------------------. | yynewstate -- Push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ yyssp++; yysetstate: *yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ cgrammar_YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. */ # if YYLSP_NEEDED YYLTYPE *yyls1 = yyls; /* This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow ("parser stack overflow", &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yyls1, yysize * sizeof (*yylsp), &yystacksize); yyls = yyls1; # else yyoverflow ("parser stack overflow", &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yystacksize); # endif yyss = yyss1; yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE goto yyoverflowlab; # else /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) goto yyoverflowlab; yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; { short *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyoverflowlab; YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyvs); # if YYLSP_NEEDED YYSTACK_RELOCATE (yyls); # endif # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; #if YYLSP_NEEDED yylsp = yyls + yysize - 1; #endif YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); if (yyssp >= yyss + yystacksize - 1) YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ /* yyresume: */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYFLAG) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* yychar is either YYEMPTY or YYEOF or a valid token in external form. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } /* Convert token to internal form (in yychar1) for indexing tables with */ if (yychar <= 0) /* This means end of input. */ { yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ YYDPRINTF ((stderr, "Now at end of input.\n")); } else { yychar1 = YYTRANSLATE (yychar); #if YYDEBUG /* We have to keep this `#if YYDEBUG', since we use variables which are defined only if `YYDEBUG' is set. */ if (yydebug) { YYFPRINTF (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); /* Give the individual parser a way to print the precise meaning of a token, for further debugging info. */ # ifdef YYPRINT YYPRINT (stderr, yychar, yylval); # endif YYFPRINTF (stderr, ")\n"); } #endif } yyn += yychar1; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) goto yydefault; yyn = yytable[yyn]; /* yyn is what to do for this token type in this state. Negative => reduce, -yyn is rule number. Positive => shift, yyn is new state. New state is final state => don't bother to shift, just return success. 0, or most negative number => error. */ if (yyn < 0) { if (yyn == YYFLAG) goto yyerrlab; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ YYDPRINTF ((stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1])); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; #if YYLSP_NEEDED *++yylsp = yylloc; #endif /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: `$$ = $1'. Otherwise, the following line sets YYVAL to the semantic value of the lookahead token. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; #if YYLSP_NEEDED /* Similarly for the default location. Let the user run additional commands if for instance locations are ranges. */ yyloc = yylsp[1-yylen]; YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); #endif #if YYDEBUG /* We have to keep this `#if YYDEBUG', since we use variables which are defined only if `YYDEBUG' is set. */ if (yydebug) { int yyi; YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif switch (yyn) { case 3: { context_checkGlobalScope (); ; break;} case 4: { context_checkGlobalScope (); ; break;} case 5: { uentry_clearDecl (); ; break;} case 6: { uentry_clearDecl (); ; break;} case 7: { uentry_clearDecl (); ; break;} case 8: { uentry_clearDecl (); ; break;} case 9: { uentry_clearDecl (); ; break;} case 10: { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ; break;} case 11: { uentry_clearDecl (); lltok_free (yyvsp[0].tok); /* evans 2002-02-08: okay to have a null statement */ ; break;} case 12: { uentry_clearDecl (); ; break;} case 13: { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); lltok_free2 (yyvsp[-7].tok, yyvsp[0].tok); ; break;} case 14: { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr); lltok_free3 (yyvsp[-10].tok, yyvsp[-5].tok, yyvsp[0].tok); ; break;} case 15: { context_enterFunctionHeader (); ; break;} case 16: { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction (); context_exitFunctionHeader (); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); /*!*/ ; break;} case 17: { qtype qint = qtype_create (ctype_int); yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint); qtype_free (qint); ; break;} case 18: { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ; break;} case 20: { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ; break;} case 21: { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ; break;} case 22: { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ; break;} case 23: { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ; break;} case 24: { exprNode_findValue (yyvsp[-2].expr); idDecl_notExpectingFunction (yyvsp[-5].ntyp); if (exprNode_hasValue (yyvsp[-2].expr)) { yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), exprNode_getLongValue (yyvsp[-2].expr))); } else { yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-5].ntyp))); } lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok); ; break;} case 25: { setCurrentParams (uentryList_missingParams); ; break;} case 26: { /* need to support globals and modifies here! */ functionClauseList fcl; ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), uentryList_makeMissingParams ()); yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct); /*drl 7/25/01 added*/ setImplicitfcnConstraints(); DPRINTF((message("namedDeclBase PushType TLPAREN TRPAREN...:\n adding implict constraints to functionClause List: %s", functionClauseList_unparse(yyvsp[0].funcclauselist) ) )); fcl = functionClauseList_setImplicitConstraints(yyvsp[0].funcclauselist); idDecl_addClauses (yyval.ntyp, fcl); DPRINTF((message("1 added fuctionClause List: %s to the Id", functionClauseList_unparse(fcl) ) )); context_popLoc (); lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok); ; break;} case 27: { setCurrentParams (yyvsp[-1].entrylist); ; break;} case 28: { functionClauseList fcl; setImplicitfcnConstraints (); clearCurrentParams (); yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist)); DPRINTF((message("namedDeclBase PushType TLPAREN genericParamList TRPAREN...:\n adding implict constraints to functionClause List: %s", functionClauseList_unparse(yyvsp[0].funcclauselist) ) )) ; fcl = functionClauseList_setImplicitConstraints(yyvsp[0].funcclauselist); idDecl_addClauses (yyval.ntyp, fcl); DPRINTF((message("added fuctionClause List: %s to the Id", functionClauseList_unparse(fcl) ) )); context_popLoc (); lltok_free2 (yyvsp[-4].tok, yyvsp[-2].tok); ; break;} case 29: { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ; break;} case 30: { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ; break;} case 31: { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ; break;} case 32: { int value; if (exprNode_hasValue (yyvsp[-2].expr) && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr))) { value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr)); } else { value = 0; } yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value)); lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok); ; break;} case 33: { setCurrentParams (uentryList_missingParams); ; break;} case 34: { ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), uentryList_makeMissingParams ()); yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct); idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist); context_popLoc (); lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok); ; break;} case 35: { setCurrentParams (yyvsp[-1].entrylist); ; break;} case 36: { clearCurrentParams (); yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist)); idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist); context_popLoc (); lltok_free (yyvsp[-4].tok); /*!! lltok_free2 ($3, $5); */ ; break;} case 37: { setCurrentParams (yyvsp[-1].entrylist); ; break;} case 38: { clearCurrentParams (); ; break;} case 39: { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); lltok_free3 (yyvsp[-9].tok, yyvsp[-7].tok, yyvsp[-5].tok); ; break;} case 40: { exprNode_checkMacroBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ; break;} case 41: { exprNode_checkIterBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ; break;} case 42: { exprNode_checkIterEnd (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok);; break;} case 43: { exprChecks_checkEmptyMacroBody (); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ; break;} case 44: { clabstract_declareFunction (yyvsp[0].ntyp); ; break;} case 45: { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ; break;} case 46: { cscannerHelp_expectingMetaStateName (); ; break;} case 47: { cscannerHelp_clearExpectingMetaStateName (); yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo); lltok_free (yyvsp[-1].tok); ; break;} case 48: { cscannerHelp_expectingMetaStateName (); ; break;} case 49: { cscannerHelp_clearExpectingMetaStateName (); yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo); lltok_free2 (yyvsp[-3].tok, yyvsp[-1].tok); ; break;} case 50: { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ; break;} case 51: { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ; break;} case 55: { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ; break;} case 56: { yyval.conL = constraintList_single (yyvsp[0].con); ; break;} case 57: { yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE); DPRINTF(("Done BufConstraint1\n")); ; break;} case 64: {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ; break;} case 65: { DPRINTF( ("Got BufConstraintExpr BINary Op ") ); yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ; break;} case 66: { yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);; break;} case 67: { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ; break;} case 68: { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ; break;} case 69: { yyval.sr = fixStateClausesId (yyvsp[0].cname); ; break;} case 70: { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ; break;} case 71: { /* char *t; int c; t = cstring_toCharsSafe (exprNode_unparse($3)); c = atoi( t ); */ yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr)); ; break;} case 72: { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ; break;} case 73: { yyval.sr = yyvsp[-1].sr; ; break;} case 74: { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 75: { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 79: { yyval.funcclauselist = functionClauseList_new (); ; break;} case 80: { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ; break;} case 81: { yyval.funcclauselist = functionClauseList_new (); ; break;} case 82: { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ; break;} case 83: { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ; break;} case 84: { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ; break;} case 85: { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ; break;} case 86: { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ; break;} case 87: { yyval.funcclause = yyvsp[0].funcclause; ; break;} case 88: { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ; break;} case 89: { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ; break;} case 90: { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ; break;} case 91: { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ; break;} case 92: { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ; break;} case 93: { yyval.funcclause = yyvsp[0].funcclause; ; break;} case 94: { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ; break;} case 95: { yyval.globsclause = yyvsp[-1].globsclause; ; break;} case 96: { setProcessingGlobalsList (); ; break;} case 97: { unsetProcessingGlobals (); yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset); ; break;} case 98: { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ; break;} case 99: { yyval.modsclause = yyvsp[-1].modsclause; ; break;} case 100: { context_setProtectVars (); enterParamsTemp (); sRef_setGlobalScopeSafe (); ; break;} case 101: { exitParamsTemp (); sRef_clearGlobalScopeSafe (); context_releaseVars (); yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset); ; break;} case 102: { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ; break;} case 103: { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ; break;} case 106: { yyval.warnclause = warnClause_undefined; ; break;} case 107: { yyval.warnclause = yyvsp[-1].warnclause; ; break;} case 108: { llassert (exprNode_knownStringValue (yyvsp[0].expr)); yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr)))); exprNode_free (yyvsp[0].expr); ; break;} case 109: { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ; break;} case 110: { yyval.globset = globSet_single (yyvsp[0].sr); ; break;} case 111: { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ; break;} case 112: { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ; break;} case 113: { yyval.tquallist = qualList_undefined; ; break;} case 114: { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ; break;} case 115: { yyval.sr = uentry_getSref (yyvsp[0].entry); ; break;} case 116: { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ; break;} case 117: { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ; break;} case 118: { yyval.typequal = qual_createUndef (); ; break;} case 119: { yyval.typequal = qual_createKilled (); ; break;} case 120: { yyval.typequal = qual_createOut (); ; break;} case 121: { yyval.typequal = qual_createIn (); ; break;} case 122: { yyval.typequal = qual_createPartial (); ; break;} case 130: { /**!!! deal with fred; fred (int); declarations! **/ qtype qint = qtype_create (ctype_int); yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint); qtype_free (qint); ; break;} case 131: { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ; break;} case 132: { checkDoneParams (); context_enterInnerContext (); ; break;} case 133: { exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ; break;} case 134: { context_enterOldStyleScope (); ; break;} case 135: { oldStyleDoneParams (); context_enterInnerContext (); ; break;} case 136: { exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr; /* oldstyle */ context_exitInner (yyvsp[0].expr); ; break;} case 137: { context_setFunctionDefined (exprNode_loc (yyvsp[0].expr)); exprNode_checkFunction (context_getHeader (), yyvsp[0].expr); /* DRL 8 8 2000 */ context_exitFunction (); ; break;} case 138: { yyval.srset = yyvsp[-1].srset; ; break;} case 139: { yyval.srset = sRefSet_new (); ; break;} case 140: { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ; break;} case 141: { yyval.sr = fixModifiesId (yyvsp[0].cname); ; break;} case 142: { yyval.sr = fixModifiesId (yyvsp[0].cname); ; break;} case 143: { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ; break;} case 144: { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ; break;} case 145: { yyval.sr = modListPointer (yyvsp[0].sr); ; break;} case 146: { yyval.sr = yyvsp[-1].sr; ; break;} case 147: { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 148: { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 149: { yyval.sr = yyvsp[0].sr; ; break;} case 150: { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ; break;} case 151: { yyval.srset = sRefSet_single (yyvsp[0].sr); ; break;} case 152: { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ; break;} case 153: { yyval.sr = checkStateClausesId (yyvsp[0].entry); ; break;} case 154: { yyval.sr = fixStateClausesId (yyvsp[0].cname); ; break;} case 155: { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ; break;} case 156: { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ; break;} case 157: { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ; break;} case 158: { yyval.sr = yyvsp[-1].sr; ; break;} case 159: { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 160: { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 161: { DPRINTF ((message("Empty optSpecClauseList") )); yyval.srset = sRefSet_undefined ; break;} case 163: { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); } else { DPRINTF((message("returning sRefSEt_undefined ") )); yyval.srset = sRefSet_undefined; } ; break;} case 164: { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); } else { yyval.srset = yyvsp[-2].srset; } ; break;} case 165: { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ; break;} case 166: { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ; break;} case 168: { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; break;} case 169: { yyval.expr = exprNode_fromIdentifier (cscannerHelp_coerceId (yyvsp[0].cname)); ; break;} case 170: { yyval.expr = exprNode_makeError (); ; break;} case 171: { exprChecks_inCompoundStatementExpression (); ; break;} case 172: { exprChecks_leaveCompoundStatementExpression (); yyval.expr = exprNode_compoundStatementExpression (yyvsp[-3].tok, yyvsp[-1].expr); ; break;} case 174: { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ; break;} case 175: { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ; break;} case 176: { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ; break;} case 177: { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ; break;} case 178: { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ; break;} case 179: { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ; break;} case 180: { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 181: { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 182: { /* added for C99 */ yyval.expr = exprNode_undefined; /*@i87 no checking */ ; break;} case 183: { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ; break;} case 184: { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ; break;} case 186: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 187: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 188: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 189: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 190: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 191: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 192: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 193: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 194: { yyval.expr = yyvsp[-1].expr; ; break;} case 195: { yyval.expr = yyvsp[0].expr; ; break;} case 196: { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); lltok_free (yyvsp[-1].tok); ; break;} case 197: { yyval.cstringlist = yyvsp[-3].cstringlist; lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ; break;} case 198: { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ; break;} case 199: { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); lltok_free3 (yyvsp[-8].tok, yyvsp[-6].tok, yyvsp[-3].tok); lltok_free (yyvsp[-1].tok); ; break;} case 200: { context_setProtectVars (); ; break;} case 201: { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ; break;} case 202: {context_enterSizeof(); break;} case 203: {context_leaveSizeof(); break;} case 204: { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ; break;} case 205: { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ; break;} case 206: { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ; break;} case 207: { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ; break;} case 209: { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); lltok_free (yyvsp[-1].tok); ; break;} case 211: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 212: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 213: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 215: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 216: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 218: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 219: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 221: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 222: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 223: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 224: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 226: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 227: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 229: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 231: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 233: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 235: { exprNode_produceGuards (yyvsp[-1].expr); context_enterAndClause (yyvsp[-1].expr); ; break;} case 236: { yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); context_exitAndClause (yyval.expr, yyvsp[0].expr); ; break;} case 238: { exprNode_produceGuards (yyvsp[-1].expr); context_enterOrClause (yyvsp[-1].expr); ; break;} case 239: { yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); context_exitOrClause (yyval.expr, yyvsp[0].expr); ; break;} case 241: { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ; break;} case 242: { context_enterFalseClause (yyvsp[-4].expr); ; break;} case 243: { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ; break;} case 245: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 246: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 247: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 248: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 249: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 250: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 251: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 252: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 253: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 254: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 255: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 257: { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 258: { yyval.expr = exprNode_undefined; ; break;} case 261: { yyval.expr = yyvsp[0].expr; ; break;} case 262: { doVaDcl (); yyval.expr = exprNode_makeError (); ; break;} case 263: { yyval.expr = exprNode_makeError (); ; break;} case 264: { yyval.expr = exprNode_makeError (); ; break;} case 265: { setProcessingVars (yyvsp[-3].qtyp); processNamedDecl (yyvsp[-1].ntyp); ; break;} case 266: { unsetProcessingVars (); yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp); DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr))); ; break;} case 267: { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ; break;} case 268: { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr)); unsetProcessingVars (); ; break;} case 269: { yyval.expr = yyvsp[0].expr; ; break;} case 270: { yyval.expr = exprNode_fromIdentifier (usymtab_getTypeEntry (ctype_typeId (yyvsp[0].ctyp))); ; break;} case 271: { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp); ; break;} case 272: { processNamedDecl (yyvsp[-2].ntyp); ; break;} case 273: { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ; break;} case 274: { setProcessingTypedef (yyvsp[0].qtyp); ; break;} case 275: { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ; break;} case 276: { /* in the ANSI grammar, semantics unclear */ ; break;} case 277: { /* in the ANSI grammar, semantics unclear */ ; break;} case 278: { cscannerHelp_setExpectingTypeName (); ; break;} case 279: { cscannerHelp_setExpectingTypeName (); context_pushLoc (); ; break;} case 280: { yyval.exprlist = yyvsp[-1].exprlist; ; break;} case 281: { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ; break;} case 282: { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ; break;} case 283: { yyval.exprlist = yyvsp[-1].exprlist; ; break;} case 284: { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ; break;} case 285: { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ; break;} case 286: { yyval.expr = exprNode_makeError (); ; break;} case 287: { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ; break;} case 289: { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); lltok_free (yyvsp[0].tok); ; break;} case 290: { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ; break;} case 291: { yyval.expr = exprNode_undefined; ; break;} case 292: { yyval.expr = yyvsp[-1].expr; ; break;} case 293: { yyval.expr = exprNode_undefined; /* gcc extension, obsolete since 2.5 */ ; break;} case 294: { yyval.expr = exprNode_undefined; ; break;} case 295: { yyval.expr = exprNode_undefined; ; break;} case 296: { yyval.expr = exprNode_undefined; ; break;} case 297: { yyval.expr = exprNode_undefined; ; break;} case 298: { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ; break;} case 299: { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ; break;} case 300: { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ; break;} case 301: { yyval.typequal = qual_createInline (); ; break;} case 302: { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ; break;} case 303: { yyval.typequal = qual_createAuto (); ; break;} case 304: { yyval.typequal = qual_createRegister (); ; break;} case 305: { yyval.stateclause = yyvsp[-1].stateclause; ; break;} case 306: { context_setProtectVars (); enterParamsTemp (); sRef_setGlobalScopeSafe (); ; break;} case 307: { exitParamsTemp (); sRef_clearGlobalScopeSafe (); context_releaseVars (); yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset); ; break;} case 308: { yyval.funcclause = yyvsp[-1].funcclause; ; break;} case 309: { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ; break;} case 310: { context_exitFunctionHeader (); context_setProtectVars (); enterParamsTemp (); sRef_setGlobalScopeSafe (); ; break;} case 311: { exitParamsTemp (); sRef_clearGlobalScopeSafe (); context_releaseVars (); yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset)); ; break;} case 312: { context_setProtectVars (); enterParamsTemp (); sRef_setGlobalScopeSafe (); ; break;} case 313: { context_exitFunctionHeader (); exitParamsTemp (); sRef_clearGlobalScopeSafe (); context_releaseVars (); DPRINTF (("done optGlobBufConstraintsAux\n")); if (lltok_isEnsures (yyvsp[-4].tok)) { yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint); } else if (lltok_isRequires (yyvsp[-4].tok)) { yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint); } else { BADBRANCH; } DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause))); ; break;} case 314: { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ; break;} case 315: { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ; break;} case 316: { yyval.typequal = qual_createExits (); ; break;} case 317: { yyval.typequal = qual_createMayExit (); ; break;} case 318: { yyval.typequal = qual_createTrueExit (); ; break;} case 319: { yyval.typequal = qual_createFalseExit (); ; break;} case 320: { yyval.typequal = qual_createNeverExit (); ; break;} case 321: { yyval.typequal = qual_createChecked (); ; break;} case 322: { yyval.typequal = qual_createCheckMod (); ; break;} case 323: { yyval.typequal = qual_createUnchecked (); ; break;} case 324: { yyval.typequal = qual_createCheckedStrict (); ; break;} case 325: { yyval.typequal = qual_createOwned (); ; break;} case 326: { yyval.typequal = qual_createDependent (); ; break;} case 327: { yyval.typequal = qual_createYield (); ; break;} case 328: { yyval.typequal = qual_createTemp (); ; break;} case 329: { yyval.typequal = qual_createOnly (); ; break;} case 330: { yyval.typequal = qual_createKeep (); ; break;} case 331: { yyval.typequal = qual_createKept (); ; break;} case 332: { yyval.typequal = qual_createShared (); ; break;} case 333: { yyval.typequal = qual_createUnique (); ; break;} case 334: { yyval.typequal = qual_createNull (); ; break;} case 335: { yyval.typequal = qual_createIsNull (); ; break;} case 336: { yyval.typequal = qual_createRelNull (); ; break;} case 337: { yyval.typequal = qual_createNotNull (); ; break;} case 338: { yyval.typequal = qual_createExposed (); ; break;} case 339: { yyval.typequal = qual_createObserver (); ; break;} case 340: { yyval.typequal = qual_createNullTerminated (); ; break;} case 341: { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ; break;} case 342: { yyval.typequal = qual_createReturned (); ; break;} case 343: { yyval.typequal = qual_createSef (); ; break;} case 344: { yyval.typequal = qual_createUnused (); ; break;} case 345: { yyval.typequal = qual_createExternal (); ; break;} case 346: { yyval.typequal = qual_createTrueNull (); ; break;} case 347: { yyval.typequal = qual_createFalseNull (); ; break;} case 348: { yyval.typequal = qual_createAbstract (); ; break;} case 349: { yyval.typequal = qual_createNumAbstract (); ; break;} case 350: { yyval.typequal = qual_createConcrete (); ; break;} case 351: { yyval.typequal = qual_createMutable (); ; break;} case 352: { yyval.typequal = qual_createImmutable (); ; break;} case 353: { yyval.typequal = qual_createRefCounted (); ; break;} case 354: { yyval.typequal = qual_createRefs (); ; break;} case 355: { yyval.typequal = qual_createKillRef (); ; break;} case 356: { yyval.typequal = qual_createRelDef (); ; break;} case 357: { yyval.typequal = qual_createNewRef (); ; break;} case 358: { yyval.typequal = qual_createTempRef (); ; break;} case 359: { yyval.typequal = qual_createShort (); ; break;} case 360: { yyval.typequal = qual_createLong (); ; break;} case 361: { yyval.typequal = qual_createSigned (); ; break;} case 362: { yyval.typequal = qual_createUnsigned (); ; break;} case 363: { yyval.typequal = qual_createOut (); ; break;} case 364: { yyval.typequal = qual_createIn (); ; break;} case 365: { yyval.typequal = qual_createPartial (); ; break;} case 366: { yyval.typequal = qual_createSpecial (); ; break;} case 367: { yyval.typequal = qual_createConst (); ; break;} case 368: { yyval.typequal = qual_createVolatile (); ; break;} case 369: { yyval.typequal = qual_createRestrict (); ; break;} case 370: { yyval.typequal = yyvsp[-1].typequal; ; break;} case 371: { yyval.typequal = yyvsp[-1].typequal; ; break;} case 372: { yyval.typequal = yyvsp[-1].typequal; ; break;} case 373: { yyval.typequal = yyvsp[-1].typequal; ; break;} case 374: { yyval.typequal = yyvsp[-1].typequal; ; break;} case 375: { yyval.typequal = yyvsp[-1].typequal; ; break;} case 376: { yyval.typequal = yyvsp[-1].typequal; ; break;} case 377: { yyval.typequal = yyvsp[-1].typequal; ; break;} case 378: { yyval.typequal = yyvsp[-1].typequal; ; break;} case 385: { yyval.ctyp = ctype_makeAnytype (); ; break;} case 386: { yyval.ctyp = ctype_anyintegral; ; break;} case 387: { yyval.ctyp = ctype_unsignedintegral; ; break;} case 388: { yyval.ctyp = ctype_signedintegral; ; break;} case 392: { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ; break;} case 393: { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ; break;} case 394: { yyval.qtyp = yyvsp[0].qtyp; ; break;} case 395: { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ; break;} case 397: { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ; break;} case 398: { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ; break;} case 399: { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ; break;} case 400: { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ; break;} case 401: { yyval.qtyp = qtype_unknown (); ; break;} case 402: { yyval.qtyp = yyvsp[0].qtyp; ; break;} case 403: { yyval.conL = constraintList_undefined; ; break;} case 404: { sRef_setGlobalScopeSafe (); ; break;} case 405: { sRef_clearGlobalScopeSafe (); ; break;} case 406: { ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); /* context_setGlobalStructInfo(ct, $12); */ yyval.ctyp = ct; ; break;} case 407: { sRef_setGlobalScopeSafe (); ; break;} case 408: { sRef_clearGlobalScopeSafe (); ; break;} case 409: { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ; break;} case 410: { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ; break;} case 411: { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ; break;} case 412: { sRef_setGlobalScopeSafe (); ; break;} case 413: { sRef_clearGlobalScopeSafe (); ; break;} case 414: { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ; break;} case 415: { sRef_setGlobalScopeSafe (); ; break;} case 416: { sRef_clearGlobalScopeSafe (); ; break;} case 417: { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ; break;} case 418: { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ; break;} case 419: { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ; break;} case 420: { yyval.ctyp = handleStruct (yyvsp[-1].cname); ; break;} case 421: { yyval.ctyp = handleUnion (yyvsp[-1].cname); ; break;} case 422: { cscannerHelp_clearExpectingTypeName (); ; break;} case 424: { yyval.flist = uentryList_undefined; /* bogus! */ ; break;} case 425: { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ; break;} case 426: { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ; break;} case 427: { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ; break;} case 428: { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ; break;} case 429: { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ; break;} case 430: { yyval.ntyp = yyvsp[0].ntyp; ; break;} case 431: { yyval.ntyp = idDecl_undefined; ; break;} case 432: { yyval.ntyp = yyvsp[-3].ntyp; ; break;} case 433: { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ; break;} case 434: { context_pushLoc (); ; break;} case 435: { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ; break;} case 436: { yyval.ctyp = handleEnum (yyvsp[-1].cname); ; break;} case 437: { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ; break;} case 438: { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ; break;} case 440: { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown); usymtab_supGlobalEntry (ue); yyval.cname = yyvsp[0].cname; ; break;} case 441: { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr); usymtab_supGlobalEntry (ue); yyval.cname = yyvsp[-3].cname; ; break;} case 443: { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ; break;} case 444: { qtype qt = qtype_unknown (); qtype_adjustPointers (yyvsp[-1].pointers, qt); yyval.ntyp = idDecl_create (cstring_copy (cscannerHelp_observeLastIdentifier ()), qt); ; break;} case 445: { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ; break;} case 447: { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ; break;} case 448: { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ; break;} case 449: { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ; break;} case 450: { yyval.typequal = qual_createConst (); ; break;} case 451: { yyval.typequal = qual_createRestrict (); ; break;} case 452: { yyval.typequal = qual_createVolatile (); ; break;} case 453: { yyval.tquallist = qualList_single (yyvsp[0].typequal); ; break;} case 454: { yyval.tquallist = qualList_add (yyvsp[-1].tquallist, yyvsp[0].typequal); ; break;} case 455: { yyval.pointers = pointers_create (yyvsp[0].tok); ; break;} case 456: { yyval.pointers = pointers_createMods (yyvsp[-1].tok, yyvsp[0].tquallist); ; break;} case 457: { yyval.pointers = pointers_extend (pointers_create (yyvsp[-1].tok), yyvsp[0].pointers); ; break;} case 458: { yyval.pointers = pointers_extend (pointers_createMods (yyvsp[-2].tok, yyvsp[-1].tquallist), yyvsp[0].pointers); ; break;} case 460: { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ; break;} case 461: { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ; break;} case 462: { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ; break;} case 463: { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ; break;} case 465: { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ; break;} case 466: { storeLoc (); ; break;} case 467: { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ; break;} case 468: { storeLoc (); ; break;} case 469: { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ; break;} case 470: { if (isFlipOldStyle ()) { llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)")); } else { setNewStyle (); } yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp)); ; break;} case 471: { idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ()); if (isNewStyle ()) { llparseerror (message ("Inconsistent function parameter syntax: %q", idDecl_unparse (tparam))); } setFlipOldStyle (); yyval.oentry = makeCurrentParam (tparam); idDecl_free (tparam); ; break;} case 473: { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ; break;} case 474: { yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ; break;} case 476: { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ; break;} case 477: { yyval.ctyp = ctype_unknown; ; break;} case 479: { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ; break;} case 480: { yyval.ctyp = ctype_makeArray (ctype_unknown); ; break;} case 481: { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ; break;} case 482: { yyval.ctyp = ctype_makeInnerArray (yyvsp[-2].ctyp); ; break;} case 483: { yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ; break;} case 484: { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ; break;} case 485: { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ; break;} case 486: { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ; break;} case 487: { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ; break;} case 497: { yyval.expr = yyvsp[0].expr; ; break;} case 500: { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 501: { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 502: { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ; break;} case 503: { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ; break;} case 504: { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 505: { context_setProtectVars (); ; break;} case 506: { context_sizeofReleaseVars (); ; break;} case 507: { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr); context_enterForClause (yyvsp[-5].expr); ; break;} case 508: { setProcessingIterVars (yyvsp[-2].entry); ; break;} case 509: { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ; break;} case 510: { yyval.expr = exprNode_createId (yyvsp[0].entry); ; break;} case 514: { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ; break;} case 522: { yyval.expr = yyvsp[-1].expr; ; break;} case 523: { yyval.expr = exprNode_makeError (); ; break;} case 524: { exprNode_checkIfPred (yyvsp[0].expr); ; break;} case 525: { /* don't: context_exitTrueClause ($1, $2); */ yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 526: { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 527: { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 538: { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; break;} case 540: { yyval.expr = exprNode_makeError (); ; break;} case 541: { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ; break;} case 542: { yyval.expr = exprNode_notReached (yyvsp[0].expr); ; break;} case 543: { ; ; break;} case 544: { ; ; break;} case 545: { context_enterCaseClause (yyvsp[0].expr); ; break;} case 546: { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ; break;} case 547: { context_enterCaseClause (yyvsp[0].expr); ; break;} case 548: { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ; break;} case 549: { context_enterCaseClause (exprNode_undefined); ; break;} case 550: { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ; break;} case 551: { context_enterCaseClause (exprNode_undefined); ; break;} case 552: { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ; break;} case 553: { yyval.expr = yyvsp[-1].expr; ; break;} case 554: { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ; break;} case 555: { yyval.expr = yyvsp[-1].expr; ; break;} case 556: { context_enterInnerContext (); ; break;} case 557: { context_exitInnerPlain (); ; break;} case 558: { context_enterStructInnerContext (); ; break;} case 559: { context_exitStructInnerContext (); ; break;} case 560: { context_exitInnerSafe (); ; break;} case 561: { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 562: { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ; break;} case 563: { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; break;} case 564: { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ; break;} case 565: { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; break;} case 566: { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ; break;} case 567: { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ; break;} case 568: { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr), lltok_getLoc (yyvsp[-1].tok))); ; break;} case 569: { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ; break;} case 570: { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 571: { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; break;} case 572: { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; break;} case 573: { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ; break;} case 575: { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 576: { yyval.expr = yyvsp[0].expr; ; break;} case 577: { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 578: { yyval.expr = yyvsp[0].expr; ; break;} case 579: { yyval.expr = exprNode_concat (yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 580: { yyval.expr = yyvsp[0].expr; ; break;} case 581: { yyval.expr = yyvsp[-2].expr; ; break;} case 582: { yyval.expr = yyvsp[0].expr; ; break;} case 583: { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 584: { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 585: { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 586: { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 587: { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 588: { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ; break;} case 589: { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); exprNode_checkIfPred (yyvsp[-1].expr); yyval.expr = yyvsp[-1].expr; ; break;} case 590: { context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr); yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 591: { context_enterFalseClause (yyvsp[-2].expr); ; break;} case 592: { context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); ; break;} case 593: { context_enterSwitch (yyvsp[0].expr); ; break;} case 594: { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ; break;} case 595: { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ; break;} case 596: { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ; break;} case 597: { context_enterIterClause (); ; break;} case 598: { setProcessingIterVars (yyvsp[-3].entry); ; break;} case 599: { yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry); ; break;} case 600: { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ; break;} case 601: { nextIterParam (); ; break;} case 602: { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ; break;} case 603: { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ; break;} case 604: { yyval.expr = exprNode_iterId (yyvsp[0].entry); ; break;} case 605: { uentry ue = cscannerHelp_coerceIterId (yyvsp[0].cname); if (uentry_isValid (ue)) { yyval.expr = exprNode_iterId (ue); } else { yyval.expr = exprNode_iterNewId (cstring_copy (cscannerHelp_observeLastIdentifier ())); } ; break;} case 606: { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ; break;} case 608: { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 610: { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; break;} case 612: { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ; break;} case 613: { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ; break;} case 614: { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ; break;} case 615: { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ; break;} case 616: { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ; break;} case 617: { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ; break;} case 618: { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 619: { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 621: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 622: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 623: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 624: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 625: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 626: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 627: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 628: { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 629: { yyval.expr = yyvsp[0].expr; ; break;} case 631: { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ; break;} case 633: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 634: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 635: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 637: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 638: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 640: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 641: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 643: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 644: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 645: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 646: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 648: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 649: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 651: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 653: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 655: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 657: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 659: { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 661: { context_enterTrueClause (yyvsp[-1].expr); ; break;} case 662: { context_enterFalseClause (yyvsp[-4].expr); ; break;} case 663: { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ; break;} case 665: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 666: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 667: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 668: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 669: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 670: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 671: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 672: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 673: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 674: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 675: { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 676: { yyval.entry = yyvsp[0].entry; ; break;} case 677: { yyval.entry = uentry_undefined; ; break;} case 678: { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ; break;} case 679: { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 680: { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ; break;} case 681: { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 682: { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 683: { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ; break;} case 684: { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ; break;} case 685: { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 686: { yyval.expr = exprNode_goto (yyvsp[-1].cname); ; break;} case 687: { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ; break;} case 688: { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ; break;} case 689: { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ; break;} case 690: { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ; break;} case 691: { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ; break;} case 692: { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ; break;} case 693: { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ; break;} case 694: { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ; break;} case 695: { yyval.expr = exprNode_return (yyvsp[-1].expr); ; break;} case 697: { ; ; break;} case 699: { ; ; break;} case 702: { yyval.cname = uentry_getName (yyvsp[0].entry); ; break;} case 703: { yyval.cname = uentry_getName (yyvsp[0].entry); ; break;} case 704: { yyval.cname = uentry_getName (yyvsp[0].entry); ; break;} case 705: { yyval.cname = yyvsp[0].cname; ; break;} case 707: { yyval.ctyp = ctype_unknown; ; break;} case 708: { yyval.ctyp = exprNode_getType (yyvsp[-1].expr); exprNode_free (yyvsp[-1].expr); ; break;} case 709: { yyval.ctyp = qtype_getType (yyvsp[-1].qtyp); ; break;} } yyvsp -= yylen; yyssp -= yylen; #if YYLSP_NEEDED yylsp -= yylen; #endif #if YYDEBUG if (yydebug) { short *yyssp1 = yyss - 1; YYFPRINTF (stderr, "state stack now"); while (yyssp1 != yyssp) YYFPRINTF (stderr, " %d", *++yyssp1); YYFPRINTF (stderr, "\n"); } #endif *++yyvsp = yyval; #if YYLSP_NEEDED *++yylsp = yyloc; #endif /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTBASE] + *yyssp; if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTBASE]; goto yynewstate; /*------------------------------------. | yyerrlab -- here on detecting error | `------------------------------------*/ yyerrlab: /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; #ifdef YYERROR_VERBOSE yyn = yypact[yystate]; if (yyn > YYFLAG && yyn < YYLAST) { YYSIZE_T yysize = 0; char *yymsg; int yyx, yycount; yycount = 0; /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. */ for (yyx = yyn < 0 ? -yyn : 0; yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) if (yycheck[yyx + yyn] == yyx) yysize += yystrlen (yytname[yyx]) + 15, yycount++; yysize += yystrlen ("parse error, unexpected ") + 1; yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); yymsg = (char *) YYSTACK_ALLOC (yysize); if (yymsg != 0) { char *yyp = yystpcpy (yymsg, "parse error, unexpected "); yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); if (yycount < 5) { yycount = 0; for (yyx = yyn < 0 ? -yyn : 0; yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) if (yycheck[yyx + yyn] == yyx) { const char *yyq = ! yycount ? ", expecting " : " or "; yyp = yystpcpy (yyp, yyq); yyp = yystpcpy (yyp, yytname[yyx]); yycount++; } } yyerror (yymsg); YYSTACK_FREE (yymsg); } else yyerror ("parse error; also virtual memory exhausted"); } else #endif /* defined (YYERROR_VERBOSE) */ yyerror ("parse error"); } goto yyerrlab1; /*--------------------------------------------------. | yyerrlab1 -- error raised explicitly by an action | `--------------------------------------------------*/ yyerrlab1: if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT; YYDPRINTF ((stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1])); yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle; /*-------------------------------------------------------------------. | yyerrdefault -- current state does not do anything special for the | | error token. | `-------------------------------------------------------------------*/ yyerrdefault: #if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ /* If its default is to accept any token, ok. Otherwise pop it. */ yyn = yydefact[yystate]; if (yyn) goto yydefault; #endif /*---------------------------------------------------------------. | yyerrpop -- pop the current state because it cannot handle the | | error token | `---------------------------------------------------------------*/ yyerrpop: if (yyssp == yyss) YYABORT; yyvsp--; yystate = *--yyssp; #if YYLSP_NEEDED yylsp--; #endif #if YYDEBUG if (yydebug) { short *yyssp1 = yyss - 1; YYFPRINTF (stderr, "Error: state stack now"); while (yyssp1 != yyssp) YYFPRINTF (stderr, " %d", *++yyssp1); YYFPRINTF (stderr, "\n"); } #endif /*--------------. | yyerrhandle. | `--------------*/ yyerrhandle: yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; yyn += YYTERROR; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) goto yyerrdefault; yyn = yytable[yyn]; if (yyn < 0) { if (yyn == YYFLAG) goto yyerrpop; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; YYDPRINTF ((stderr, "Shifting error token, ")); *++yyvsp = yylval; #if YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; /*---------------------------------------------. | yyoverflowab -- parser overflow comes here. | `---------------------------------------------*/ yyoverflowlab: yyerror ("parser stack overflow"); yyresult = 2; /* Fall through. */ yyreturn: #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif return yyresult; } /*@-redecl@*/ /*@-namechecks@*/ extern char *yytext; /*@=redecl@*/ /*@=namechecks@*/ # include "bison.reset" void yyerror (/*@unused@*/ char *s) { static bool givehint = FALSE; if (context_inIterDef ()) { llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s", context_inFunctionName ())); } else if (context_inIterEnd ()) { llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s", context_inFunctionName ())); } else if (context_inMacro ()) { llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s", context_inFunctionName ())); if (context_inUnknownMacro ()) { if (!givehint) { llhint (cstring_makeLiteral ("Precede macro definition with /*@notfunction@*/ " "to suppress checking and force expansion")); givehint = TRUE; } } cscannerHelp_swallowMacro (); context_exitAllClausesQuiet (); } else { llparseerror (cstring_undefined); } } /* ** Resets all flags in bison.head */ /*@=allmacros@*/ /*@=boolint@*/ /*@=charint@*/ /*@=macroparams@*/ /*@=macroundef@*/ /*@=unreachable@*/ /*@=macrospec@*/ /*@=varuse@*/ /*@=ignorequals@*/ /*@=macrostmt@*/ /*@=noeffect@*/ /*@=shadow@*/ /*@=exitarg@*/ /*@=macroredef@*/ /*@=uniondef@*/ /*@=compdef@*/ /*@=matchfields@*/ /*@=exportlocal@*/ /*@=evalorderuncon@*/ /*@=exportheader@*/ /*@=typeuse@*/ /*@=redecl@*/ /*@=redef@*/ /*@=noparams@*/ /*@=ansireserved@*/ /*@=fielduse@*/ /*@=ifblock@*/ /*@=elseifcomplete@*/ /*@=whileblock@*/ /*@=forblock@*/ /*@=branchstate@*/ /*@=readonlytrans@*/ /*@=namechecks@*/ /*@=usedef@*/ /*@=systemunrecog@*/ /*@=dependenttrans@*/ /*@=unqualifiedtrans@*/ /*@=declundef@*/ /*drl added 11/27/2001*/ /*@=bounds@*/ /*drl added 12/11/2002*/ /*@=type@*/