|
|
1.1 ! root 1: ! 2: /* A Bison parser, made from cp-parse.y */ ! 3: ! 4: #define YYBISON 1 /* Identify Bison output. */ ! 5: ! 6: #define IDENTIFIER 258 ! 7: #define TYPENAME 259 ! 8: #define SCOPED_TYPENAME 260 ! 9: #define SCSPEC 261 ! 10: #define TYPESPEC 262 ! 11: #define TYPE_QUAL 263 ! 12: #define CONSTANT 264 ! 13: #define STRING 265 ! 14: #define ELLIPSIS 266 ! 15: #define SIZEOF 267 ! 16: #define ENUM 268 ! 17: #define IF 269 ! 18: #define ELSE 270 ! 19: #define WHILE 271 ! 20: #define DO 272 ! 21: #define FOR 273 ! 22: #define SWITCH 274 ! 23: #define CASE 275 ! 24: #define DEFAULT 276 ! 25: #define BREAK 277 ! 26: #define CONTINUE 278 ! 27: #define RETURN 279 ! 28: #define GOTO 280 ! 29: #define ASM 281 ! 30: #define TYPEOF 282 ! 31: #define ALIGNOF 283 ! 32: #define HEADOF 284 ! 33: #define CLASSOF 285 ! 34: #define ATTRIBUTE 286 ! 35: #define AGGR 287 ! 36: #define VISSPEC 288 ! 37: #define DELETE 289 ! 38: #define NEW 290 ! 39: #define OVERLOAD 291 ! 40: #define THIS 292 ! 41: #define OPERATOR 293 ! 42: #define DYNAMIC 294 ! 43: #define POINTSAT_LEFT_RIGHT 295 ! 44: #define LEFT_RIGHT 296 ! 45: #define TEMPLATE 297 ! 46: #define SCOPE 298 ! 47: #define START_DECLARATOR 299 ! 48: #define EMPTY 300 ! 49: #define TYPENAME_COLON 301 ! 50: #define ASSIGN 302 ! 51: #define RANGE 303 ! 52: #define OROR 304 ! 53: #define ANDAND 305 ! 54: #define MIN_MAX 306 ! 55: #define EQCOMPARE 307 ! 56: #define ARITHCOMPARE 308 ! 57: #define LSHIFT 309 ! 58: #define RSHIFT 310 ! 59: #define UNARY 311 ! 60: #define PLUSPLUS 312 ! 61: #define MINUSMINUS 313 ! 62: #define HYPERUNARY 314 ! 63: #define PAREN_STAR_PAREN 315 ! 64: #define POINTSAT 316 ! 65: #define POINTSAT_STAR 317 ! 66: #define DOT_STAR 318 ! 67: #define RAISE 319 ! 68: #define RAISES 320 ! 69: #define RERAISE 321 ! 70: #define TRY 322 ! 71: #define EXCEPT 323 ! 72: #define CATCH 324 ! 73: #define THROW 325 ! 74: #define ANSI_TRY 326 ! 75: #define ANSI_THROW 327 ! 76: #define TYPENAME_ELLIPSIS 328 ! 77: #define PTYPENAME 329 ! 78: #define PRE_PARSED_FUNCTION_DECL 330 ! 79: #define EXTERN_LANG_STRING 331 ! 80: #define ALL 332 ! 81: #define PRE_PARSED_CLASS_DECL 333 ! 82: #define TYPENAME_DEFN 334 ! 83: #define IDENTIFIER_DEFN 335 ! 84: #define PTYPENAME_DEFN 336 ! 85: #define END_OF_SAVED_INPUT 337 ! 86: ! 87: #line 42 "cp-parse.y" ! 88: ! 89: #ifdef GATHER_STATISTICS ! 90: #undef YYDEBUG ! 91: #define YYDEBUG 1 ! 92: #endif ! 93: ! 94: #include "config.h" ! 95: ! 96: #include <stdio.h> ! 97: #include <errno.h> ! 98: ! 99: #include "tree.h" ! 100: #include "input.h" ! 101: #include "cp-lex.h" ! 102: #include "cp-tree.h" ! 103: #include "assert.h" ! 104: ! 105: extern tree void_list_node; ! 106: ! 107: #ifndef errno ! 108: extern int errno; ! 109: #endif ! 110: ! 111: extern int end_of_file; ! 112: ! 113: void yyerror (); ! 114: ! 115: /* Like YYERROR but do call yyerror. */ ! 116: #define YYERROR1 { yyerror ("syntax error"); YYERROR; } ! 117: ! 118: static void position_after_white_space (); ! 119: ! 120: /* The elements of `ridpointers' are identifier nodes ! 121: for the reserved type names and storage classes. ! 122: It is indexed by a RID_... value. */ ! 123: ! 124: tree ridpointers[(int) RID_MAX]; ! 125: #define NORID RID_UNUSED ! 126: ! 127: /* Contains error message to give if user tries to declare ! 128: a variable where one does not belong. */ ! 129: static char *stmt_decl_msg = 0; ! 130: ! 131: /* Nonzero if we have an `extern "C"' acting as an extern specifier. */ ! 132: ! 133: static int have_extern_spec; ! 134: ! 135: void yyhook (); ! 136: ! 137: /* Cons up an empty parameter list. */ ! 138: #ifdef __GNUC__ ! 139: __inline ! 140: #endif ! 141: static tree ! 142: empty_parms () ! 143: { ! 144: tree parms; ! 145: ! 146: if (strict_prototype) ! 147: parms = void_list_node; ! 148: else ! 149: parms = NULL_TREE; ! 150: return parms; ! 151: } ! 152: ! 153: #line 110 "cp-parse.y" ! 154: typedef union {long itype; tree ttype; enum tree_code code; } YYSTYPE; ! 155: #line 262 "cp-parse.y" ! 156: ! 157: /* the declaration found for the last IDENTIFIER token read in. ! 158: yylex must look this up to detect typedefs, which get token type TYPENAME, ! 159: so it is left around in case the identifier is not a typedef but is ! 160: used in a context which makes it a reference to a variable. */ ! 161: tree lastiddecl; ! 162: ! 163: /* Back-door communication channel to the lexer. */ ! 164: extern int looking_for_typename; ! 165: ! 166: tree make_pointer_declarator (), make_reference_declarator (); ! 167: ! 168: void reinit_parse_for_function (); ! 169: void reinit_parse_for_method (); ! 170: ! 171: /* List of types and structure classes of the current declaration. */ ! 172: tree current_declspecs; ! 173: ! 174: /* When defining an aggregate, this is the most recent one being defined. */ ! 175: static tree current_aggr; ! 176: ! 177: int undeclared_variable_notice; /* 1 if we explained undeclared var errors. */ ! 178: ! 179: int yylex (); ! 180: ! 181: #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL) ! 182: ! 183: #ifndef YYLTYPE ! 184: typedef ! 185: struct yyltype ! 186: { ! 187: int timestamp; ! 188: int first_line; ! 189: int first_column; ! 190: int last_line; ! 191: int last_column; ! 192: char *text; ! 193: } ! 194: yyltype; ! 195: ! 196: #define YYLTYPE yyltype ! 197: #endif ! 198: ! 199: #include <stdio.h> ! 200: ! 201: #ifndef __STDC__ ! 202: #define const ! 203: #endif ! 204: ! 205: ! 206: ! 207: #define YYFINAL 1219 ! 208: #define YYFLAG -32768 ! 209: #define YYNTBASE 107 ! 210: ! 211: #define YYTRANSLATE(x) ((unsigned)(x) <= 337 ? yytranslate[x] : 293) ! 212: ! 213: static const char yytranslate[] = { 0, ! 214: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 215: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 216: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 217: 2, 2, 105, 2, 2, 2, 70, 58, 2, 80, ! 218: 101, 68, 66, 48, 67, 78, 69, 2, 2, 2, ! 219: 2, 2, 2, 2, 2, 2, 2, 52, 102, 62, ! 220: 50, 63, 51, 2, 2, 2, 2, 2, 2, 2, ! 221: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 222: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 223: 81, 2, 106, 57, 2, 2, 2, 2, 2, 2, ! 224: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 225: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 226: 2, 2, 47, 56, 103, 104, 2, 2, 2, 2, ! 227: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 228: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 229: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 230: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 231: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 232: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 233: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 234: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 235: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 236: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 237: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 238: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 239: 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, ! 240: 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, ! 241: 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, ! 242: 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, ! 243: 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, ! 244: 46, 49, 53, 54, 55, 59, 60, 61, 64, 65, ! 245: 71, 72, 73, 74, 75, 76, 77, 79, 82, 83, ! 246: 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, ! 247: 94, 95, 96, 97, 98, 99, 100 ! 248: }; ! 249: ! 250: static const short yyprhs[] = { 0, ! 251: 0, 1, 3, 4, 7, 10, 11, 12, 14, 16, ! 252: 18, 20, 26, 31, 35, 40, 45, 47, 48, 54, ! 253: 56, 60, 63, 68, 72, 74, 78, 80, 84, 85, ! 254: 91, 92, 98, 99, 105, 106, 112, 116, 120, 127, ! 255: 135, 140, 142, 144, 146, 148, 150, 153, 157, 161, ! 256: 165, 169, 172, 175, 178, 181, 183, 187, 192, 196, ! 257: 202, 207, 211, 215, 218, 222, 226, 229, 236, 243, ! 258: 248, 253, 255, 262, 267, 271, 278, 283, 287, 290, ! 259: 293, 295, 299, 304, 307, 311, 312, 313, 315, 319, ! 260: 322, 326, 328, 333, 336, 342, 346, 348, 350, 352, ! 261: 354, 356, 358, 360, 362, 364, 367, 369, 372, 375, ! 262: 378, 382, 386, 388, 391, 394, 398, 403, 405, 407, ! 263: 408, 409, 411, 415, 417, 419, 420, 427, 428, 430, ! 264: 431, 434, 436, 438, 440, 442, 444, 446, 448, 450, ! 265: 454, 458, 460, 463, 466, 469, 472, 475, 480, 483, ! 266: 488, 492, 499, 504, 510, 520, 530, 537, 544, 548, ! 267: 551, 556, 562, 564, 569, 577, 582, 587, 592, 594, ! 268: 598, 602, 606, 610, 614, 618, 622, 626, 630, 634, ! 269: 638, 642, 646, 650, 654, 658, 662, 668, 672, 676, ! 270: 680, 683, 685, 687, 689, 691, 695, 699, 700, 705, ! 271: 706, 713, 716, 721, 724, 728, 731, 734, 736, 741, ! 272: 746, 749, 752, 755, 758, 764, 768, 774, 778, 785, ! 273: 790, 792, 797, 800, 806, 807, 809, 811, 814, 816, ! 274: 819, 820, 823, 826, 829, 833, 837, 841, 845, 848, ! 275: 851, 853, 855, 858, 861, 863, 866, 869, 873, 875, ! 276: 877, 880, 883, 885, 887, 890, 893, 895, 898, 901, ! 277: 905, 907, 910, 912, 914, 916, 918, 923, 928, 930, ! 278: 932, 934, 936, 938, 942, 944, 948, 949, 954, 955, ! 279: 963, 968, 969, 977, 982, 983, 991, 996, 997, 1004, ! 280: 1006, 1010, 1012, 1017, 1022, 1024, 1028, 1030, 1033, 1037, ! 281: 1042, 1044, 1046, 1050, 1055, 1062, 1066, 1072, 1073, 1081, ! 282: 1086, 1087, 1094, 1098, 1101, 1106, 1108, 1109, 1111, 1112, ! 283: 1114, 1116, 1119, 1125, 1128, 1131, 1134, 1137, 1140, 1143, ! 284: 1146, 1150, 1154, 1157, 1158, 1162, 1163, 1167, 1170, 1172, ! 285: 1174, 1175, 1177, 1180, 1182, 1186, 1188, 1191, 1195, 1197, ! 286: 1199, 1201, 1204, 1207, 1209, 1210, 1212, 1217, 1221, 1223, ! 287: 1226, 1229, 1233, 1239, 1245, 1249, 1253, 1257, 1261, 1265, ! 288: 1271, 1277, 1281, 1285, 1289, 1293, 1295, 1298, 1301, 1305, ! 289: 1309, 1310, 1312, 1316, 1320, 1326, 1330, 1333, 1336, 1340, ! 290: 1346, 1350, 1353, 1356, 1358, 1362, 1364, 1368, 1371, 1374, ! 291: 1375, 1377, 1380, 1382, 1385, 1386, 1389, 1390, 1393, 1399, ! 292: 1405, 1409, 1415, 1420, 1424, 1428, 1434, 1436, 1438, 1444, ! 293: 1448, 1452, 1454, 1460, 1466, 1470, 1476, 1481, 1485, 1489, ! 294: 1491, 1493, 1497, 1501, 1507, 1513, 1517, 1523, 1527, 1531, ! 295: 1535, 1540, 1544, 1546, 1548, 1551, 1554, 1557, 1560, 1564, ! 296: 1568, 1572, 1576, 1584, 1592, 1598, 1606, 1610, 1618, 1626, ! 297: 1632, 1640, 1644, 1646, 1650, 1653, 1655, 1659, 1663, 1666, ! 298: 1668, 1672, 1676, 1679, 1685, 1689, 1694, 1698, 1703, 1706, ! 299: 1710, 1713, 1717, 1722, 1726, 1731, 1737, 1743, 1745, 1747, ! 300: 1750, 1753, 1756, 1757, 1759, 1762, 1765, 1770, 1775, 1776, ! 301: 1783, 1785, 1787, 1790, 1791, 1796, 1798, 1799, 1800, 1808, ! 302: 1809, 1810, 1820, 1821, 1822, 1823, 1833, 1834, 1835, 1836, ! 303: 1846, 1847, 1854, 1855, 1861, 1862, 1870, 1871, 1876, 1879, ! 304: 1882, 1885, 1889, 1896, 1905, 1916, 1929, 1933, 1936, 1939, ! 305: 1941, 1944, 1948, 1955, 1960, 1967, 1972, 1976, 1977, 1985, ! 306: 1988, 1989, 1995, 1999, 2001, 2004, 2008, 2012, 2015, 2018, ! 307: 2020, 2021, 2026, 2029, 2033, 2037, 2038, 2039, 2044, 2045, ! 308: 2046, 2051, 2052, 2057, 2058, 2060, 2061, 2062, 2071, 2075, ! 309: 2080, 2085, 2089, 2094, 2101, 2108, 2109, 2111, 2112, 2114, ! 310: 2116, 2117, 2119, 2121, 2125, 2130, 2132, 2136, 2137, 2139, ! 311: 2143, 2146, 2148, 2150, 2153, 2156, 2158, 2162, 2166, 2172, ! 312: 2176, 2182, 2186, 2190, 2192, 2194, 2197, 2199, 2200, 2201, ! 313: 2203, 2204, 2207, 2212, 2214, 2216, 2218, 2221, 2224, 2227, ! 314: 2229, 2231, 2233, 2237, 2239, 2243, 2246, 2249, 2252, 2255, ! 315: 2258, 2261, 2264, 2267, 2270, 2273, 2276, 2279, 2282, 2285, ! 316: 2288, 2291, 2294, 2297, 2300, 2303, 2306, 2309, 2312, 2316, ! 317: 2319, 2322, 2325, 2329, 2332, 2336, 2339, 2342, 2346 ! 318: }; ! 319: ! 320: static const short yyrhs[] = { -1, ! 321: 108, 0, 0, 109, 112, 0, 108, 112, 0, 0, ! 322: 0, 127, 0, 126, 0, 120, 0, 118, 0, 26, ! 323: 80, 162, 101, 102, 0, 113, 47, 108, 103, 0, ! 324: 113, 47, 103, 0, 113, 110, 127, 111, 0, 113, ! 325: 110, 126, 111, 0, 94, 0, 0, 42, 62, 115, ! 326: 116, 63, 0, 117, 0, 116, 48, 117, 0, 195, ! 327: 136, 0, 195, 137, 52, 206, 0, 195, 46, 206, ! 328: 0, 281, 0, 36, 119, 102, 0, 3, 0, 119, ! 329: 48, 3, 0, 0, 114, 196, 47, 121, 102, 0, ! 330: 0, 114, 197, 47, 122, 102, 0, 0, 114, 196, ! 331: 52, 123, 102, 0, 0, 114, 197, 52, 124, 102, ! 332: 0, 114, 196, 102, 0, 114, 197, 102, 0, 114, ! 333: 225, 287, 177, 184, 125, 0, 114, 168, 167, 287, ! 334: 177, 184, 125, 0, 114, 170, 167, 125, 0, 47, ! 335: 0, 52, 0, 102, 0, 50, 0, 24, 0, 176, ! 336: 102, 0, 170, 176, 102, 0, 170, 167, 102, 0, ! 337: 168, 175, 102, 0, 168, 167, 102, 0, 170, 102, ! 338: 0, 168, 102, 0, 1, 102, 0, 1, 103, 0, ! 339: 102, 0, 128, 132, 235, 0, 128, 131, 132, 235, ! 340: 0, 128, 163, 235, 0, 128, 131, 102, 163, 235, ! 341: 0, 128, 131, 163, 235, 0, 168, 167, 1, 0, ! 342: 170, 225, 1, 0, 225, 1, 0, 168, 167, 287, ! 343: 0, 170, 225, 287, 0, 225, 287, 0, 4, 80, ! 344: 279, 101, 220, 287, 0, 228, 80, 279, 101, 220, ! 345: 287, 0, 4, 41, 220, 287, 0, 228, 41, 220, ! 346: 287, 0, 93, 0, 168, 80, 279, 101, 220, 287, ! 347: 0, 168, 41, 220, 287, 0, 168, 167, 287, 0, ! 348: 170, 80, 279, 101, 220, 287, 0, 170, 41, 220, ! 349: 287, 0, 170, 167, 287, 0, 225, 287, 0, 24, ! 350: 3, 0, 130, 0, 130, 50, 188, 0, 130, 80, ! 351: 152, 101, 0, 130, 41, 0, 52, 133, 134, 0, ! 352: 0, 0, 135, 0, 134, 48, 135, 0, 134, 1, ! 353: 0, 80, 152, 101, 0, 41, 0, 136, 80, 152, ! 354: 101, 0, 136, 41, 0, 226, 136, 80, 152, 101, ! 355: 0, 226, 136, 41, 0, 3, 0, 4, 0, 92, ! 356: 0, 98, 0, 97, 0, 99, 0, 3, 0, 4, ! 357: 0, 92, 0, 104, 136, 0, 292, 0, 139, 3, ! 358: 0, 139, 4, 0, 139, 292, 0, 139, 226, 3, ! 359: 0, 139, 226, 292, 0, 41, 0, 104, 41, 0, ! 360: 41, 51, 0, 141, 142, 148, 0, 92, 62, 144, ! 361: 63, 0, 47, 0, 52, 0, 0, 0, 145, 0, ! 362: 144, 48, 145, 0, 217, 0, 155, 0, 0, 96, ! 363: 203, 147, 208, 209, 103, 0, 0, 146, 0, 0, ! 364: 146, 149, 0, 67, 0, 66, 0, 72, 0, 73, ! 365: 0, 105, 0, 152, 0, 155, 0, 155, 0, 152, ! 366: 48, 155, 0, 152, 48, 1, 0, 156, 0, 68, ! 367: 154, 0, 58, 154, 0, 104, 154, 0, 150, 154, ! 368: 0, 12, 153, 0, 12, 80, 217, 101, 0, 28, ! 369: 153, 0, 28, 80, 217, 101, 0, 160, 159, 217, ! 370: 0, 160, 159, 173, 80, 152, 101, 0, 160, 159, ! 371: 173, 41, 0, 160, 159, 217, 50, 188, 0, 160, ! 372: 159, 80, 171, 218, 101, 81, 221, 106, 0, 160, ! 373: 159, 80, 219, 218, 101, 81, 221, 106, 0, 160, ! 374: 159, 80, 171, 218, 101, 0, 160, 159, 80, 219, ! 375: 218, 101, 0, 160, 159, 46, 0, 161, 154, 0, ! 376: 161, 81, 106, 154, 0, 161, 81, 151, 106, 154, ! 377: 0, 153, 0, 80, 217, 101, 155, 0, 80, 217, ! 378: 101, 47, 189, 193, 103, 0, 29, 80, 151, 101, ! 379: 0, 30, 80, 151, 101, 0, 30, 80, 4, 101, ! 380: 0, 154, 0, 155, 66, 155, 0, 155, 67, 155, ! 381: 0, 155, 68, 155, 0, 155, 69, 155, 0, 155, ! 382: 70, 155, 0, 155, 64, 155, 0, 155, 65, 155, ! 383: 0, 155, 61, 155, 0, 155, 62, 155, 0, 155, ! 384: 63, 155, 0, 155, 60, 155, 0, 155, 59, 155, ! 385: 0, 155, 58, 155, 0, 155, 56, 155, 0, 155, ! 386: 57, 155, 0, 155, 55, 155, 0, 155, 54, 155, ! 387: 0, 155, 51, 274, 52, 155, 0, 155, 50, 155, ! 388: 0, 155, 49, 155, 0, 156, 79, 155, 0, 165, ! 389: 155, 0, 3, 0, 292, 0, 9, 0, 162, 0, ! 390: 80, 151, 101, 0, 80, 1, 101, 0, 0, 80, ! 391: 157, 236, 101, 0, 0, 156, 80, 152, 101, 158, ! 392: 149, 0, 156, 41, 0, 156, 81, 151, 106, 0, ! 393: 164, 138, 0, 164, 226, 138, 0, 156, 72, 0, ! 394: 156, 73, 0, 37, 0, 8, 80, 152, 101, 0, ! 395: 173, 80, 152, 101, 0, 173, 41, 0, 43, 3, ! 396: 0, 43, 292, 0, 226, 138, 0, 226, 138, 80, ! 397: 152, 101, 0, 226, 138, 41, 0, 164, 138, 80, ! 398: 152, 101, 0, 164, 138, 41, 0, 164, 226, 138, ! 399: 80, 152, 101, 0, 164, 226, 138, 41, 0, 35, ! 400: 0, 35, 47, 152, 103, 0, 35, 39, 0, 35, ! 401: 39, 80, 162, 101, 0, 0, 43, 0, 34, 0, ! 402: 43, 161, 0, 10, 0, 162, 10, 0, 0, 156, ! 403: 78, 0, 156, 76, 0, 156, 77, 0, 168, 175, ! 404: 102, 0, 168, 167, 102, 0, 170, 176, 102, 0, ! 405: 170, 167, 102, 0, 168, 102, 0, 170, 102, 0, ! 406: 223, 0, 225, 0, 44, 223, 0, 44, 225, 0, ! 407: 173, 0, 170, 173, 0, 173, 169, 0, 170, 173, ! 408: 169, 0, 174, 0, 6, 0, 169, 174, 0, 169, ! 409: 6, 0, 8, 0, 6, 0, 170, 8, 0, 170, ! 410: 6, 0, 173, 0, 219, 173, 0, 173, 172, 0, ! 411: 219, 173, 172, 0, 174, 0, 172, 174, 0, 190, ! 412: 0, 7, 0, 4, 0, 228, 0, 27, 80, 151, ! 413: 101, 0, 27, 80, 217, 101, 0, 140, 0, 7, ! 414: 0, 8, 0, 190, 0, 178, 0, 175, 48, 180, ! 415: 0, 182, 0, 176, 48, 180, 0, 0, 26, 80, ! 416: 162, 101, 0, 0, 167, 287, 177, 184, 50, 179, ! 417: 188, 0, 167, 287, 177, 184, 0, 0, 167, 287, ! 418: 177, 184, 50, 181, 188, 0, 167, 287, 177, 184, ! 419: 0, 0, 225, 287, 177, 184, 50, 183, 188, 0, ! 420: 225, 287, 177, 184, 0, 0, 31, 80, 80, 185, ! 421: 101, 101, 0, 186, 0, 185, 48, 186, 0, 3, ! 422: 0, 3, 80, 9, 101, 0, 3, 80, 187, 101, ! 423: 0, 3, 0, 187, 48, 3, 0, 155, 0, 47, ! 424: 103, 0, 47, 189, 103, 0, 47, 189, 48, 103, ! 425: 0, 1, 0, 188, 0, 189, 48, 188, 0, 81, ! 426: 155, 106, 188, 0, 189, 48, 20, 155, 52, 188, ! 427: 0, 136, 52, 188, 0, 189, 48, 136, 52, 188, ! 428: 0, 0, 13, 136, 47, 191, 215, 194, 103, 0, ! 429: 13, 136, 47, 103, 0, 0, 13, 47, 192, 215, ! 430: 194, 103, 0, 13, 47, 103, 0, 13, 136, 0, ! 431: 202, 208, 209, 103, 0, 202, 0, 0, 48, 0, ! 432: 0, 48, 0, 32, 0, 39, 32, 0, 39, 80, ! 433: 162, 101, 32, 0, 195, 6, 0, 195, 7, 0, ! 434: 195, 8, 0, 195, 32, 0, 195, 136, 0, 195, ! 435: 141, 0, 195, 46, 0, 195, 141, 47, 0, 195, ! 436: 141, 52, 0, 195, 137, 0, 0, 196, 199, 203, ! 437: 0, 0, 197, 200, 203, 0, 195, 47, 0, 201, ! 438: 0, 198, 0, 0, 52, 0, 52, 204, 0, 205, ! 439: 0, 204, 48, 205, 0, 206, 0, 207, 206, 0, ! 440: 141, 143, 148, 0, 136, 0, 33, 0, 6, 0, ! 441: 207, 33, 0, 207, 6, 0, 47, 0, 0, 210, ! 442: 0, 209, 33, 52, 210, 0, 209, 33, 52, 0, ! 443: 211, 0, 210, 211, 0, 210, 102, 0, 168, 212, ! 444: 102, 0, 168, 80, 279, 101, 102, 0, 168, 80, ! 445: 279, 101, 103, 0, 168, 41, 102, 0, 168, 41, ! 446: 103, 0, 170, 212, 102, 0, 170, 167, 102, 0, ! 447: 170, 212, 103, 0, 170, 80, 279, 101, 102, 0, ! 448: 170, 80, 279, 101, 103, 0, 170, 41, 102, 0, ! 449: 170, 41, 103, 0, 52, 155, 102, 0, 52, 155, ! 450: 103, 0, 1, 0, 129, 52, 0, 129, 47, 0, ! 451: 225, 287, 102, 0, 225, 287, 103, 0, 0, 213, ! 452: 0, 212, 48, 214, 0, 167, 287, 177, 0, 167, ! 453: 287, 177, 50, 188, 0, 3, 52, 155, 0, 46, ! 454: 155, 0, 52, 155, 0, 167, 287, 177, 0, 167, ! 455: 287, 177, 50, 188, 0, 3, 52, 155, 0, 46, ! 456: 155, 0, 52, 155, 0, 216, 0, 215, 48, 216, ! 457: 0, 136, 0, 136, 50, 155, 0, 171, 218, 0, ! 458: 219, 218, 0, 0, 229, 0, 44, 229, 0, 8, ! 459: 0, 219, 8, 0, 0, 220, 8, 0, 0, 222, ! 460: 151, 0, 223, 80, 152, 101, 220, 0, 223, 80, ! 461: 279, 101, 220, 0, 223, 41, 220, 0, 223, 80, ! 462: 1, 101, 220, 0, 223, 81, 221, 106, 0, 223, ! 463: 81, 106, 0, 80, 224, 101, 0, 80, 68, 220, ! 464: 223, 101, 0, 75, 0, 231, 0, 80, 58, 220, ! 465: 223, 101, 0, 68, 220, 223, 0, 58, 220, 223, ! 466: 0, 4, 0, 224, 80, 152, 101, 220, 0, 224, ! 467: 80, 279, 101, 220, 0, 224, 41, 220, 0, 224, ! 468: 80, 1, 101, 220, 0, 224, 81, 221, 106, 0, ! 469: 224, 81, 106, 0, 80, 224, 101, 0, 75, 0, ! 470: 231, 0, 68, 220, 223, 0, 58, 220, 223, 0, ! 471: 225, 80, 152, 101, 220, 0, 225, 80, 279, 101, ! 472: 220, 0, 225, 41, 220, 0, 225, 80, 1, 101, ! 473: 220, 0, 80, 225, 101, 0, 68, 220, 225, 0, ! 474: 58, 220, 225, 0, 225, 81, 221, 106, 0, 225, ! 475: 81, 106, 0, 3, 0, 292, 0, 104, 4, 0, ! 476: 104, 3, 0, 104, 92, 0, 41, 136, 0, 41, ! 477: 51, 136, 0, 104, 41, 136, 0, 226, 283, 225, ! 478: 0, 226, 283, 4, 0, 226, 283, 4, 80, 152, ! 479: 101, 220, 0, 226, 283, 4, 80, 279, 101, 220, ! 480: 0, 226, 283, 4, 41, 220, 0, 226, 283, 4, ! 481: 80, 1, 101, 220, 0, 226, 283, 92, 0, 226, ! 482: 283, 92, 80, 152, 101, 220, 0, 226, 283, 92, ! 483: 80, 279, 101, 220, 0, 226, 283, 92, 41, 220, ! 484: 0, 226, 283, 92, 80, 1, 101, 220, 0, 43, ! 485: 283, 225, 0, 227, 0, 140, 43, 285, 0, 4, ! 486: 43, 0, 5, 0, 80, 229, 101, 0, 68, 220, ! 487: 229, 0, 68, 220, 0, 75, 0, 80, 230, 101, ! 488: 0, 58, 220, 229, 0, 58, 220, 0, 229, 80, ! 489: 279, 101, 220, 0, 229, 41, 220, 0, 229, 81, ! 490: 221, 106, 0, 229, 81, 106, 0, 80, 279, 101, ! 491: 220, 0, 41, 220, 0, 81, 221, 106, 0, 81, ! 492: 106, 0, 226, 68, 220, 0, 226, 68, 220, 229, ! 493: 0, 226, 58, 220, 0, 226, 58, 220, 229, 0, ! 494: 226, 283, 68, 220, 223, 0, 226, 283, 58, 220, ! 495: 223, 0, 239, 0, 233, 0, 232, 239, 0, 232, ! 496: 233, 0, 1, 102, 0, 0, 236, 0, 1, 236, ! 497: 0, 47, 103, 0, 47, 234, 232, 103, 0, 47, ! 498: 234, 1, 103, 0, 0, 14, 80, 151, 101, 238, ! 499: 239, 0, 236, 0, 166, 0, 151, 102, 0, 0, ! 500: 237, 15, 240, 239, 0, 237, 0, 0, 0, 16, ! 501: 241, 80, 151, 101, 242, 239, 0, 0, 0, 17, ! 502: 243, 239, 16, 244, 80, 151, 101, 102, 0, 0, ! 503: 0, 0, 271, 245, 274, 102, 246, 274, 101, 247, ! 504: 239, 0, 0, 0, 0, 272, 248, 274, 102, 249, ! 505: 274, 101, 250, 239, 0, 0, 19, 80, 151, 101, ! 506: 251, 239, 0, 0, 20, 151, 52, 252, 239, 0, ! 507: 0, 20, 151, 53, 151, 52, 253, 239, 0, 0, ! 508: 21, 52, 254, 239, 0, 22, 102, 0, 23, 102, ! 509: 0, 24, 102, 0, 24, 151, 102, 0, 26, 273, ! 510: 80, 162, 101, 102, 0, 26, 273, 80, 162, 52, ! 511: 275, 101, 102, 0, 26, 273, 80, 162, 52, 275, ! 512: 52, 275, 101, 102, 0, 26, 273, 80, 162, 52, ! 513: 275, 52, 275, 52, 278, 101, 102, 0, 25, 136, ! 514: 102, 0, 258, 239, 0, 258, 103, 0, 102, 0, ! 515: 90, 102, 0, 90, 151, 102, 0, 88, 288, 80, ! 516: 152, 101, 102, 0, 88, 288, 41, 102, 0, 82, ! 517: 288, 80, 152, 101, 102, 0, 82, 288, 41, 102, ! 518: 0, 82, 136, 102, 0, 0, 257, 86, 136, 47, ! 519: 255, 265, 103, 0, 257, 1, 0, 0, 261, 262, ! 520: 262, 256, 269, 0, 257, 84, 290, 0, 257, 0, ! 521: 259, 103, 0, 259, 232, 103, 0, 259, 1, 103, ! 522: 0, 3, 52, 0, 92, 52, 0, 46, 0, 0, ! 523: 85, 47, 260, 234, 0, 263, 103, 0, 263, 232, ! 524: 103, 0, 263, 1, 103, 0, 0, 0, 89, 47, ! 525: 264, 234, 0, 0, 0, 265, 288, 266, 236, 0, ! 526: 0, 265, 21, 267, 236, 0, 0, 136, 0, 0, ! 527: 0, 269, 87, 80, 217, 268, 101, 270, 236, 0, ! 528: 18, 80, 102, 0, 18, 80, 151, 102, 0, 18, ! 529: 80, 47, 103, 0, 18, 80, 166, 0, 18, 80, ! 530: 1, 102, 0, 18, 80, 47, 234, 232, 103, 0, ! 531: 18, 80, 47, 234, 1, 103, 0, 0, 8, 0, ! 532: 0, 151, 0, 1, 0, 0, 276, 0, 277, 0, ! 533: 276, 48, 277, 0, 10, 80, 151, 101, 0, 10, ! 534: 0, 278, 48, 10, 0, 0, 280, 0, 280, 48, ! 535: 11, 0, 280, 11, 0, 11, 0, 91, 0, 280, ! 536: 91, 0, 280, 52, 0, 281, 0, 281, 50, 188, ! 537: 0, 280, 48, 281, 0, 280, 48, 281, 50, 188, ! 538: 0, 280, 48, 286, 0, 280, 48, 286, 50, 188, ! 539: 0, 168, 284, 282, 0, 170, 284, 282, 0, 218, ! 540: 0, 225, 0, 44, 225, 0, 220, 0, 0, 0, ! 541: 282, 0, 0, 83, 290, 0, 90, 80, 291, 101, ! 542: 0, 95, 0, 3, 0, 4, 0, 43, 3, 0, ! 543: 43, 4, 0, 226, 3, 0, 228, 0, 217, 0, ! 544: 288, 0, 290, 48, 288, 0, 289, 0, 291, 48, ! 545: 289, 0, 38, 68, 0, 38, 69, 0, 38, 70, ! 546: 0, 38, 66, 0, 38, 67, 0, 38, 58, 0, ! 547: 38, 56, 0, 38, 57, 0, 38, 104, 0, 38, ! 548: 48, 0, 38, 61, 0, 38, 62, 0, 38, 63, ! 549: 0, 38, 60, 0, 38, 49, 0, 38, 50, 0, ! 550: 38, 64, 0, 38, 65, 0, 38, 72, 0, 38, ! 551: 73, 0, 38, 55, 0, 38, 54, 0, 38, 105, ! 552: 0, 38, 51, 52, 0, 38, 59, 0, 38, 76, ! 553: 0, 38, 77, 0, 38, 40, 220, 0, 38, 41, ! 554: 0, 38, 81, 106, 0, 38, 35, 0, 38, 34, ! 555: 0, 38, 171, 218, 0, 38, 1, 0 ! 556: }; ! 557: ! 558: #if YYDEBUG != 0 ! 559: static const short yyrline[] = { 0, ! 560: 291, 292, 300, 302, 303, 307, 310, 314, 317, 319, ! 561: 321, 322, 327, 329, 331, 334, 339, 344, 347, 351, ! 562: 354, 358, 371, 378, 385, 388, 391, 393, 397, 403, ! 563: 403, 406, 406, 409, 409, 422, 422, 427, 432, 455, ! 564: 476, 486, 487, 488, 489, 490, 493, 499, 502, 507, ! 565: 513, 520, 522, 540, 541, 542, 545, 559, 572, 575, ! 566: 578, 581, 583, 585, 589, 595, 600, 605, 610, 615, ! 567: 620, 625, 631, 641, 650, 657, 666, 675, 682, 691, ! 568: 699, 701, 703, 705, 709, 718, 741, 744, 746, 747, ! 569: 750, 757, 764, 768, 770, 774, 780, 782, 783, 786, ! 570: 788, 789, 792, 794, 795, 799, 800, 801, 803, 805, ! 571: 807, 809, 813, 815, 817, 821, 831, 836, 840, 841, ! 572: 845, 850, 853, 857, 860, 863, 896, 911, 914, 918, ! 573: 921, 925, 927, 929, 931, 933, 937, 940, 943, 946, ! 574: 948, 952, 958, 960, 962, 964, 969, 982, 984, 1017, ! 575: 1020, 1022, 1024, 1026, 1032, 1049, 1052, 1056, 1059, 1063, ! 576: 1079, 1090, 1106, 1108, 1111, 1126, 1128, 1130, 1141, 1143, ! 577: 1145, 1147, 1149, 1151, 1153, 1155, 1157, 1159, 1161, 1163, ! 578: 1165, 1167, 1169, 1171, 1173, 1175, 1177, 1179, 1181, 1187, ! 579: 1190, 1205, 1208, 1223, 1224, 1226, 1228, 1230, 1238, 1250, ! 580: 1256, 1263, 1270, 1320, 1322, 1338, 1340, 1344, 1367, 1405, ! 581: 1407, 1409, 1438, 1445, 1447, 1449, 1451, 1454, 1457, 1459, ! 582: 1501, 1503, 1505, 1507, 1511, 1514, 1518, 1520, 1528, 1530, ! 583: 1534, 1543, 1558, 1564, 1567, 1574, 1582, 1585, 1592, 1597, ! 584: 1604, 1606, 1607, 1609, 1617, 1620, 1622, 1624, 1628, 1632, ! 585: 1634, 1636, 1644, 1647, 1649, 1651, 1662, 1665, 1667, 1669, ! 586: 1673, 1676, 1684, 1685, 1686, 1687, 1688, 1692, 1696, 1701, ! 587: 1702, 1703, 1706, 1708, 1711, 1713, 1716, 1719, 1727, 1734, ! 588: 1736, 1744, 1749, 1750, 1755, 1762, 1764, 1774, 1777, 1782, ! 589: 1783, 1787, 1790, 1797, 1802, 1805, 1809, 1811, 1816, 1819, ! 590: 1822, 1828, 1831, 1834, 1836, 1838, 1840, 1844, 1848, 1852, ! 591: 1855, 1858, 1862, 1865, 1869, 1895, 1910, 1912, 1915, 1917, ! 592: 1921, 1922, 1924, 1926, 1929, 1932, 1935, 1940, 1943, 1945, ! 593: 1947, 1952, 1956, 1961, 1966, 1973, 1978, 1987, 1992, 1992, ! 594: 1994, 1997, 1999, 2003, 2005, 2009, 2014, 2020, 2022, 2025, ! 595: 2034, 2038, 2064, 2073, 2099, 2102, 2104, 2106, 2109, 2112, ! 596: 2115, 2120, 2169, 2171, 2175, 2177, 2181, 2184, 2186, 2190, ! 597: 2192, 2196, 2198, 2202, 2204, 2208, 2213, 2215, 2217, 2219, ! 598: 2225, 2228, 2229, 2240, 2244, 2247, 2250, 2253, 2258, 2261, ! 599: 2263, 2265, 2267, 2275, 2277, 2281, 2284, 2288, 2291, 2295, ! 600: 2298, 2299, 2303, 2306, 2310, 2313, 2321, 2323, 2327, 2330, ! 601: 2332, 2334, 2336, 2338, 2340, 2342, 2344, 2346, 2347, 2349, ! 602: 2351, 2353, 2356, 2359, 2361, 2363, 2365, 2367, 2369, 2371, ! 603: 2373, 2374, 2376, 2383, 2386, 2388, 2390, 2392, 2394, 2396, ! 604: 2398, 2400, 2402, 2406, 2409, 2415, 2417, 2419, 2424, 2430, ! 605: 2433, 2442, 2444, 2446, 2448, 2450, 2453, 2455, 2457, 2459, ! 606: 2461, 2463, 2467, 2469, 2481, 2484, 2499, 2504, 2506, 2508, ! 607: 2510, 2512, 2514, 2516, 2518, 2520, 2522, 2524, 2526, 2528, ! 608: 2530, 2534, 2542, 2549, 2556, 2565, 2573, 2586, 2588, 2589, ! 609: 2590, 2593, 2600, 2612, 2615, 2618, 2620, 2625, 2632, 2638, ! 610: 2641, 2644, 2649, 2662, 2666, 2669, 2673, 2677, 2681, 2685, ! 611: 2690, 2693, 2699, 2704, 2707, 2713, 2720, 2724, 2727, 2734, ! 612: 2750, 2758, 2762, 2812, 2812, 2894, 2894, 2910, 2910, 2914, ! 613: 2918, 2921, 2926, 2933, 2942, 2951, 2960, 2966, 2968, 2972, ! 614: 2976, 2977, 2978, 2981, 2984, 2987, 2990, 2993, 3006, 3035, ! 615: 3045, 3059, 3087, 3119, 3131, 3139, 3144, 3151, 3159, 3161, ! 616: 3168, 3170, 3170, 3178, 3183, 3190, 3191, 3193, 3193, 3196, ! 617: 3217, 3233, 3252, 3269, 3272, 3274, 3277, 3296, 3314, 3317, ! 618: 3319, 3323, 3326, 3328, 3330, 3336, 3341, 3347, 3350, 3351, ! 619: 3357, 3359, 3362, 3364, 3368, 3373, 3376, 3385, 3392, 3397, ! 620: 3402, 3406, 3410, 3414, 3418, 3432, 3435, 3437, 3439, 3441, ! 621: 3443, 3451, 3467, 3472, 3473, 3474, 3478, 3482, 3486, 3498, ! 622: 3506, 3509, 3511, 3515, 3518, 3520, 3522, 3524, 3526, 3528, ! 623: 3531, 3536, 3538, 3545, 3547, 3554, 3557, 3559, 3561, 3563, ! 624: 3565, 3567, 3569, 3571, 3573, 3575, 3577, 3579, 3581, 3583, ! 625: 3585, 3594, 3596, 3598, 3600, 3602, 3604, 3606, 3608, 3610, ! 626: 3612, 3624, 3636, 3667, 3679, 3691, 3704, 3720, 3724 ! 627: }; ! 628: ! 629: static const char * const yytname[] = { "$","error","$illegal.","IDENTIFIER", ! 630: "TYPENAME","SCOPED_TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING", ! 631: "ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT", ! 632: "BREAK","CONTINUE","RETURN","GOTO","ASM","TYPEOF","ALIGNOF","HEADOF","CLASSOF", ! 633: "ATTRIBUTE","AGGR","VISSPEC","DELETE","NEW","OVERLOAD","THIS","OPERATOR","DYNAMIC", ! 634: "POINTSAT_LEFT_RIGHT","LEFT_RIGHT","TEMPLATE","SCOPE","START_DECLARATOR","EMPTY", ! 635: "TYPENAME_COLON","'{'","','","ASSIGN","'='","'?'","':'","RANGE","OROR","ANDAND", ! 636: "'|'","'^'","'&'","MIN_MAX","EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT", ! 637: "RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY", ! 638: "PAREN_STAR_PAREN","POINTSAT","POINTSAT_STAR","'.'","DOT_STAR","'('","'['","RAISE", ! 639: "RAISES","RERAISE","TRY","EXCEPT","CATCH","THROW","ANSI_TRY","ANSI_THROW","TYPENAME_ELLIPSIS", ! 640: "PTYPENAME","PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL", ! 641: "TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN","END_OF_SAVED_INPUT","')'", ! 642: "';'","'}'","'~'","'!'","']'","program","extdefs","@1",".hush_warning",".warning_ok", ! 643: "extdef","extern_lang_string","template_header","@2","template_parm_list","template_parm", ! 644: "overloaddef","ov_identifiers","template_def","@3","@4","@5","@6","fn_tmpl_end", ! 645: "datadef","fndef","fn.def1","fn.def2","return_id","return_init","base_init", ! 646: ".set_base_init","member_init_list","member_init","identifier","identifier_defn", ! 647: "identifier_or_opname","wrapper","template_type","template_type_name","tmpl.1", ! 648: "tmpl.2","template_arg_list","template_arg","template_instantiate_once","@7", ! 649: "template_instantiation","template_instantiate_some","unop","expr","nonnull_exprlist", ! 650: "unary_expr","cast_expr","expr_no_commas","primary","@8","@9","new",".scope", ! 651: "delete","string","nodecls","object","object_star","decl","declarator","typed_declspecs", ! 652: "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec", ! 653: "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl0", ! 654: "@10","initdcl","@11","notype_initdcl0","@12","maybe_attribute","attribute_list", ! 655: "attrib","identifiers","init","initlist","structsp","@13","@14","maybecomma", ! 656: "maybecomma_warn","aggr","named_class_head_sans_basetype","named_class_head_sans_basetype_defn", ! 657: "named_class_head","@15","@16","unnamed_class_head","class_head","maybe_base_class_list", ! 658: "base_class_list","base_class","base_class.1","base_class_visibility_list","LC", ! 659: "opt.component_decl_list","component_decl_list","component_decl","components", ! 660: "component_declarator0","component_declarator","enumlist","enumerator","typename", ! 661: "absdcl","nonempty_type_quals","type_quals","nonmomentary_expr","@17","after_type_declarator", ! 662: "after_type_declarator_no_typename","notype_declarator","scoped_id","TYPENAME_SCOPE", ! 663: "scoped_typename","absdcl1","abs_member_declarator","after_type_member_declarator", ! 664: "stmts","errstmt",".pushlevel","compstmt_or_error","compstmt","simple_if","@18", ! 665: "stmt","@19","@20","@21","@22","@23","@24","@25","@26","@27","@28","@29","@30", ! 666: "@31","@32","@33","@34","@35","try","label_colon","try_head","@36","ansi_try", ! 667: "ansi_dummy","ansi_try_head","@37","except_stmts","@38","@39","optional_identifier", ! 668: "ansi_except_stmts","@40","forhead.1","forhead.2","maybe_type_qual","xexpr", ! 669: "asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist", ! 670: "parms","parm","abs_or_notype_decl","see_typename","dont_see_typename","try_for_typename", ! 671: "bad_parm","maybe_raises","raise_identifier","ansi_raise_identifier","raise_identifiers", ! 672: "ansi_raise_identifiers","operator_name","" ! 673: }; ! 674: #endif ! 675: ! 676: static const short yyr1[] = { 0, ! 677: 107, 107, 109, 108, 108, 110, 111, 112, 112, 112, ! 678: 112, 112, 112, 112, 112, 112, 113, 115, 114, 116, ! 679: 116, 117, 117, 117, 117, 118, 119, 119, 121, 120, ! 680: 122, 120, 123, 120, 124, 120, 120, 120, 120, 120, ! 681: 120, 125, 125, 125, 125, 125, 126, 126, 126, 126, ! 682: 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, ! 683: 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, ! 684: 128, 128, 129, 129, 129, 129, 129, 129, 129, 130, ! 685: 131, 131, 131, 131, 132, 133, 134, 134, 134, 134, ! 686: 135, 135, 135, 135, 135, 135, 136, 136, 136, 137, ! 687: 137, 137, 138, 138, 138, 138, 138, 138, 138, 138, ! 688: 138, 138, 139, 139, 139, 140, 141, 142, 142, 142, ! 689: 143, 144, 144, 145, 145, 147, 146, 148, 148, 149, ! 690: 149, 150, 150, 150, 150, 150, 151, 151, 152, 152, ! 691: 152, 153, 153, 153, 153, 153, 153, 153, 153, 153, ! 692: 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, ! 693: 153, 153, 154, 154, 154, 154, 154, 154, 155, 155, ! 694: 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, ! 695: 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, ! 696: 155, 156, 156, 156, 156, 156, 156, 157, 156, 158, ! 697: 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, ! 698: 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, ! 699: 159, 159, 159, 159, 160, 160, 161, 161, 162, 162, ! 700: 163, 164, 164, 165, 166, 166, 166, 166, 166, 166, ! 701: 167, 167, 167, 167, 168, 168, 168, 168, 169, 169, ! 702: 169, 169, 170, 170, 170, 170, 171, 171, 171, 171, ! 703: 172, 172, 173, 173, 173, 173, 173, 173, 173, 174, ! 704: 174, 174, 175, 175, 176, 176, 177, 177, 179, 178, ! 705: 178, 181, 180, 180, 183, 182, 182, 184, 184, 185, ! 706: 185, 186, 186, 186, 187, 187, 188, 188, 188, 188, ! 707: 188, 189, 189, 189, 189, 189, 189, 191, 190, 190, ! 708: 192, 190, 190, 190, 190, 190, 193, 193, 194, 194, ! 709: 195, 195, 195, 195, 195, 195, 195, 196, 196, 196, ! 710: 196, 196, 197, 199, 198, 200, 198, 201, 202, 202, ! 711: 203, 203, 203, 204, 204, 205, 205, 206, 206, 207, ! 712: 207, 207, 207, 208, 209, 209, 209, 209, 210, 210, ! 713: 210, 211, 211, 211, 211, 211, 211, 211, 211, 211, ! 714: 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, ! 715: 212, 212, 212, 213, 213, 213, 213, 213, 214, 214, ! 716: 214, 214, 214, 215, 215, 216, 216, 217, 217, 218, ! 717: 218, 218, 219, 219, 220, 220, 222, 221, 223, 223, ! 718: 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, ! 719: 223, 223, 224, 224, 224, 224, 224, 224, 224, 224, ! 720: 224, 224, 224, 225, 225, 225, 225, 225, 225, 225, ! 721: 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, ! 722: 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, ! 723: 225, 225, 226, 226, 227, 228, 229, 229, 229, 229, ! 724: 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, ! 725: 229, 230, 230, 230, 230, 231, 231, 232, 232, 232, ! 726: 232, 233, 234, 235, 235, 236, 236, 236, 238, 237, ! 727: 239, 239, 239, 240, 239, 239, 241, 242, 239, 243, ! 728: 244, 239, 245, 246, 247, 239, 248, 249, 250, 239, ! 729: 251, 239, 252, 239, 253, 239, 254, 239, 239, 239, ! 730: 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, ! 731: 239, 239, 239, 239, 239, 239, 239, 255, 239, 239, ! 732: 256, 239, 239, 239, 257, 257, 257, 258, 258, 258, ! 733: 260, 259, 261, 261, 261, 262, 264, 263, 265, 266, ! 734: 265, 267, 265, 268, 268, 269, 270, 269, 271, 271, ! 735: 271, 272, 272, 272, 272, 273, 273, 274, 274, 274, ! 736: 275, 275, 276, 276, 277, 278, 278, 279, 279, 279, ! 737: 279, 279, 279, 279, 279, 280, 280, 280, 280, 280, ! 738: 280, 281, 281, 282, 282, 282, 283, 284, 285, 286, ! 739: 287, 287, 287, 288, 288, 288, 288, 288, 288, 288, ! 740: 289, 290, 290, 291, 291, 292, 292, 292, 292, 292, ! 741: 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, ! 742: 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, ! 743: 292, 292, 292, 292, 292, 292, 292, 292, 292 ! 744: }; ! 745: ! 746: static const short yyr2[] = { 0, ! 747: 0, 1, 0, 2, 2, 0, 0, 1, 1, 1, ! 748: 1, 5, 4, 3, 4, 4, 1, 0, 5, 1, ! 749: 3, 2, 4, 3, 1, 3, 1, 3, 0, 5, ! 750: 0, 5, 0, 5, 0, 5, 3, 3, 6, 7, ! 751: 4, 1, 1, 1, 1, 1, 2, 3, 3, 3, ! 752: 3, 2, 2, 2, 2, 1, 3, 4, 3, 5, ! 753: 4, 3, 3, 2, 3, 3, 2, 6, 6, 4, ! 754: 4, 1, 6, 4, 3, 6, 4, 3, 2, 2, ! 755: 1, 3, 4, 2, 3, 0, 0, 1, 3, 2, ! 756: 3, 1, 4, 2, 5, 3, 1, 1, 1, 1, ! 757: 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, ! 758: 3, 3, 1, 2, 2, 3, 4, 1, 1, 0, ! 759: 0, 1, 3, 1, 1, 0, 6, 0, 1, 0, ! 760: 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, ! 761: 3, 1, 2, 2, 2, 2, 2, 4, 2, 4, ! 762: 3, 6, 4, 5, 9, 9, 6, 6, 3, 2, ! 763: 4, 5, 1, 4, 7, 4, 4, 4, 1, 3, ! 764: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 765: 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, ! 766: 2, 1, 1, 1, 1, 3, 3, 0, 4, 0, ! 767: 6, 2, 4, 2, 3, 2, 2, 1, 4, 4, ! 768: 2, 2, 2, 2, 5, 3, 5, 3, 6, 4, ! 769: 1, 4, 2, 5, 0, 1, 1, 2, 1, 2, ! 770: 0, 2, 2, 2, 3, 3, 3, 3, 2, 2, ! 771: 1, 1, 2, 2, 1, 2, 2, 3, 1, 1, ! 772: 2, 2, 1, 1, 2, 2, 1, 2, 2, 3, ! 773: 1, 2, 1, 1, 1, 1, 4, 4, 1, 1, ! 774: 1, 1, 1, 3, 1, 3, 0, 4, 0, 7, ! 775: 4, 0, 7, 4, 0, 7, 4, 0, 6, 1, ! 776: 3, 1, 4, 4, 1, 3, 1, 2, 3, 4, ! 777: 1, 1, 3, 4, 6, 3, 5, 0, 7, 4, ! 778: 0, 6, 3, 2, 4, 1, 0, 1, 0, 1, ! 779: 1, 2, 5, 2, 2, 2, 2, 2, 2, 2, ! 780: 3, 3, 2, 0, 3, 0, 3, 2, 1, 1, ! 781: 0, 1, 2, 1, 3, 1, 2, 3, 1, 1, ! 782: 1, 2, 2, 1, 0, 1, 4, 3, 1, 2, ! 783: 2, 3, 5, 5, 3, 3, 3, 3, 3, 5, ! 784: 5, 3, 3, 3, 3, 1, 2, 2, 3, 3, ! 785: 0, 1, 3, 3, 5, 3, 2, 2, 3, 5, ! 786: 3, 2, 2, 1, 3, 1, 3, 2, 2, 0, ! 787: 1, 2, 1, 2, 0, 2, 0, 2, 5, 5, ! 788: 3, 5, 4, 3, 3, 5, 1, 1, 5, 3, ! 789: 3, 1, 5, 5, 3, 5, 4, 3, 3, 1, ! 790: 1, 3, 3, 5, 5, 3, 5, 3, 3, 3, ! 791: 4, 3, 1, 1, 2, 2, 2, 2, 3, 3, ! 792: 3, 3, 7, 7, 5, 7, 3, 7, 7, 5, ! 793: 7, 3, 1, 3, 2, 1, 3, 3, 2, 1, ! 794: 3, 3, 2, 5, 3, 4, 3, 4, 2, 3, ! 795: 2, 3, 4, 3, 4, 5, 5, 1, 1, 2, ! 796: 2, 2, 0, 1, 2, 2, 4, 4, 0, 6, ! 797: 1, 1, 2, 0, 4, 1, 0, 0, 7, 0, ! 798: 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, ! 799: 0, 6, 0, 5, 0, 7, 0, 4, 2, 2, ! 800: 2, 3, 6, 8, 10, 12, 3, 2, 2, 1, ! 801: 2, 3, 6, 4, 6, 4, 3, 0, 7, 2, ! 802: 0, 5, 3, 1, 2, 3, 3, 2, 2, 1, ! 803: 0, 4, 2, 3, 3, 0, 0, 4, 0, 0, ! 804: 4, 0, 4, 0, 1, 0, 0, 8, 3, 4, ! 805: 4, 3, 4, 6, 6, 0, 1, 0, 1, 1, ! 806: 0, 1, 1, 3, 4, 1, 3, 0, 1, 3, ! 807: 2, 1, 1, 2, 2, 1, 3, 3, 5, 3, ! 808: 5, 3, 3, 1, 1, 2, 1, 0, 0, 1, ! 809: 0, 2, 4, 1, 1, 1, 2, 2, 2, 1, ! 810: 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, ! 811: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 812: 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, ! 813: 2, 2, 3, 2, 3, 2, 2, 3, 2 ! 814: }; ! 815: ! 816: static const short yydefact[] = { 3, ! 817: 0, 0, 0, 443, 265, 466, 254, 264, 253, 0, ! 818: 0, 0, 321, 0, 0, 0, 0, 0, 405, 405, ! 819: 405, 0, 0, 72, 17, 56, 0, 5, 6, 0, ! 820: 11, 10, 9, 8, 231, 269, 120, 0, 0, 245, ! 821: 0, 275, 263, 0, 334, 336, 340, 339, 316, 0, ! 822: 405, 463, 266, 444, 4, 54, 55, 405, 465, 598, ! 823: 97, 98, 311, 99, 314, 0, 225, 27, 0, 669, ! 824: 265, 403, 667, 666, 405, 664, 645, 650, 651, 0, ! 825: 657, 656, 642, 643, 641, 660, 649, 646, 647, 648, ! 826: 652, 653, 639, 640, 636, 637, 638, 654, 655, 661, ! 827: 662, 0, 644, 658, 269, 400, 257, 0, 266, 322, ! 828: 0, 0, 448, 18, 617, 0, 0, 0, 0, 0, ! 829: 0, 225, 446, 445, 0, 447, 3, 0, 265, 0, ! 830: 0, 334, 336, 621, 0, 86, 81, 231, 0, 0, ! 831: 619, 118, 119, 128, 422, 0, 405, 405, 417, 0, ! 832: 53, 0, 0, 273, 241, 242, 405, 418, 265, 256, ! 833: 255, 52, 0, 246, 0, 0, 250, 270, 271, 247, ! 834: 249, 272, 0, 47, 324, 325, 326, 327, 330, 338, ! 835: 99, 101, 100, 102, 328, 333, 329, 341, 341, 354, ! 836: 0, 64, 405, 0, 407, 0, 0, 67, 0, 405, ! 837: 598, 621, 602, 603, 618, 618, 0, 599, 606, 313, ! 838: 0, 308, 229, 0, 192, 403, 194, 225, 225, 0, ! 839: 0, 227, 208, 226, 225, 133, 132, 225, 134, 135, ! 840: 0, 225, 136, 225, 0, 137, 163, 169, 138, 142, ! 841: 0, 225, 195, 0, 225, 400, 257, 0, 400, 0, ! 842: 193, 0, 26, 663, 659, 665, 405, 0, 405, 405, ! 843: 470, 598, 407, 668, 401, 259, 261, 404, 258, 0, ! 844: 449, 0, 406, 462, 440, 439, 438, 0, 122, 125, ! 845: 124, 450, 14, 0, 7, 7, 621, 0, 29, 33, ! 846: 37, 31, 35, 38, 277, 80, 87, 84, 0, 225, ! 847: 231, 0, 0, 0, 493, 57, 494, 59, 464, 341, ! 848: 129, 116, 243, 244, 0, 0, 405, 405, 430, 0, ! 849: 0, 431, 62, 51, 65, 0, 50, 405, 0, 407, ! 850: 0, 49, 248, 48, 63, 66, 252, 251, 621, 276, ! 851: 331, 332, 342, 335, 337, 376, 225, 0, 381, 381, ! 852: 0, 0, 359, 621, 436, 0, 253, 0, 139, 245, ! 853: 0, 442, 0, 225, 625, 626, 0, 624, 0, 630, ! 854: 632, 622, 0, 0, 288, 452, 457, 451, 621, 0, ! 855: 70, 400, 400, 405, 601, 400, 605, 604, 0, 396, ! 856: 319, 394, 310, 0, 230, 0, 225, 0, 0, 147, ! 857: 142, 0, 0, 149, 225, 225, 212, 0, 228, 213, ! 858: 144, 143, 0, 0, 0, 0, 145, 146, 267, 0, ! 859: 225, 225, 0, 225, 225, 225, 225, 225, 225, 225, ! 860: 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, ! 861: 202, 206, 207, 233, 234, 232, 225, 225, 225, 221, ! 862: 0, 225, 160, 103, 104, 113, 105, 0, 204, 0, ! 863: 0, 107, 191, 398, 211, 225, 268, 399, 104, 105, ! 864: 214, 28, 479, 402, 473, 469, 0, 0, 0, 0, ! 865: 481, 0, 405, 598, 407, 262, 260, 0, 0, 20, ! 866: 0, 25, 225, 117, 13, 16, 15, 277, 46, 42, ! 867: 45, 43, 44, 41, 0, 0, 0, 0, 288, 98, ! 868: 92, 225, 0, 88, 0, 0, 301, 0, 297, 82, ! 869: 0, 0, 58, 61, 495, 496, 0, 126, 421, 420, ! 870: 0, 0, 405, 405, 0, 405, 0, 407, 415, 288, ! 871: 274, 411, 0, 0, 0, 414, 0, 405, 405, 277, ! 872: 351, 350, 349, 121, 343, 344, 346, 0, 0, 378, ! 873: 377, 443, 405, 225, 225, 598, 621, 0, 382, 405, ! 874: 598, 621, 0, 0, 315, 361, 360, 79, 405, 405, ! 875: 405, 441, 408, 627, 628, 629, 0, 631, 634, 0, ! 876: 0, 0, 287, 405, 0, 405, 0, 71, 405, 405, ! 877: 0, 405, 405, 598, 614, 615, 612, 613, 621, 600, ! 878: 608, 620, 610, 607, 225, 320, 0, 319, 12, 0, ! 879: 0, 0, 0, 265, 0, 197, 196, 0, 225, 141, ! 880: 140, 189, 188, 590, 589, 0, 186, 185, 183, 184, ! 881: 182, 181, 180, 177, 178, 179, 175, 176, 170, 171, ! 882: 172, 173, 174, 190, 0, 0, 223, 225, 159, 0, ! 883: 257, 151, 225, 0, 115, 114, 106, 218, 225, 108, ! 884: 109, 0, 110, 205, 0, 216, 225, 472, 468, 405, ! 885: 405, 467, 471, 405, 480, 475, 0, 477, 0, 323, ! 886: 0, 19, 330, 328, 333, 123, 288, 30, 34, 32, ! 887: 36, 0, 0, 90, 0, 94, 225, 0, 192, 265, ! 888: 225, 298, 0, 302, 0, 83, 60, 0, 192, 0, ! 889: 507, 510, 0, 0, 225, 0, 0, 0, 225, 0, ! 890: 586, 560, 0, 0, 0, 0, 225, 0, 540, 0, ! 891: 502, 0, 0, 0, 489, 501, 506, 488, 0, 225, ! 892: 0, 566, 0, 513, 517, 0, 0, 0, 0, 0, ! 893: 429, 425, 0, 0, 0, 428, 0, 281, 405, 405, ! 894: 405, 413, 0, 0, 288, 128, 0, 353, 352, 347, ! 895: 374, 375, 225, 365, 366, 621, 387, 388, 0, 277, ! 896: 0, 362, 372, 373, 621, 0, 368, 277, 367, 369, ! 897: 0, 379, 380, 437, 434, 435, 633, 0, 623, 0, ! 898: 0, 285, 455, 0, 0, 0, 460, 0, 0, 0, ! 899: 621, 616, 473, 469, 405, 68, 0, 0, 397, 395, ! 900: 312, 0, 209, 148, 150, 166, 168, 167, 199, 0, ! 901: 164, 225, 200, 203, 0, 0, 400, 400, 153, 225, ! 902: 0, 161, 225, 0, 111, 112, 220, 225, 210, 0, ! 903: 484, 482, 478, 405, 476, 21, 24, 0, 0, 39, ! 904: 91, 89, 0, 96, 225, 0, 0, 0, 299, 492, ! 905: 498, 558, 225, 0, 225, 0, 225, 0, 527, 529, ! 906: 530, 531, 0, 0, 587, 0, 625, 626, 0, 0, ! 907: 561, 0, 567, 541, 0, 559, 503, 239, 621, 0, ! 908: 240, 0, 0, 621, 0, 497, 491, 490, 504, 550, ! 909: 0, 0, 539, 538, 0, 555, 0, 566, 0, 563, ! 910: 0, 0, 0, 0, 419, 416, 433, 432, 405, 405, ! 911: 405, 427, 279, 412, 409, 410, 487, 486, 284, 348, ! 912: 345, 386, 74, 405, 384, 443, 225, 225, 621, 383, ! 913: 77, 405, 0, 635, 278, 0, 0, 405, 405, 405, ! 914: 405, 405, 405, 69, 609, 611, 309, 317, 187, 130, ! 915: 0, 222, 0, 0, 0, 154, 162, 217, 0, 215, ! 916: 485, 483, 474, 23, 40, 93, 0, 0, 306, 225, ! 917: 300, 0, 303, 0, 225, 0, 0, 493, 579, 0, ! 918: 582, 0, 523, 225, 225, 532, 537, 0, 547, 0, ! 919: 225, 493, 0, 225, 493, 542, 236, 277, 235, 238, ! 920: 237, 277, 225, 553, 0, 557, 556, 551, 565, 564, ! 921: 0, 0, 0, 426, 423, 424, 0, 282, 363, 364, ! 922: 621, 0, 225, 392, 393, 277, 370, 371, 621, 292, ! 923: 0, 290, 286, 456, 453, 454, 461, 458, 459, 0, ! 924: 0, 130, 201, 224, 157, 158, 152, 219, 95, 304, ! 925: 0, 0, 499, 0, 511, 583, 581, 0, 580, 521, ! 926: 225, 0, 528, 0, 546, 0, 562, 544, 0, 568, ! 927: 505, 548, 576, 514, 518, 127, 280, 0, 73, 385, ! 928: 391, 389, 76, 0, 0, 0, 165, 131, 407, 407, ! 929: 0, 307, 225, 508, 0, 0, 0, 225, 524, 525, ! 930: 591, 0, 0, 0, 569, 552, 0, 0, 283, 0, ! 931: 295, 0, 0, 291, 289, 0, 0, 305, 500, 225, ! 932: 225, 585, 584, 522, 225, 0, 0, 592, 593, 533, ! 933: 545, 543, 0, 0, 0, 0, 390, 293, 0, 294, ! 934: 155, 156, 509, 0, 526, 225, 591, 0, 0, 572, ! 935: 549, 570, 0, 515, 519, 296, 0, 0, 0, 534, ! 936: 594, 0, 0, 574, 225, 225, 512, 595, 0, 0, ! 937: 573, 571, 575, 0, 516, 520, 596, 0, 535, 577, ! 938: 0, 0, 0, 597, 536, 578, 0, 0, 0 ! 939: }; ! 940: ! 941: static const short yydefgoto[] = { 1217, ! 942: 1, 2, 128, 496, 28, 29, 30, 272, 489, 490, ! 943: 31, 69, 32, 505, 507, 506, 508, 504, 33, 34, ! 944: 35, 348, 137, 138, 139, 297, 513, 514, 553, 186, ! 945: 459, 460, 36, 37, 144, 776, 278, 279, 311, 756, ! 946: 312, 1073, 234, 740, 236, 237, 238, 239, 240, 415, ! 947: 980, 451, 241, 242, 243, 140, 244, 245, 741, 339, ! 948: 742, 170, 743, 246, 266, 402, 267, 153, 41, 375, ! 949: 154, 1047, 340, 1108, 42, 967, 593, 1061, 1062, 1143, ! 950: 714, 715, 43, 394, 211, 1071, 617, 44, 45, 46, ! 951: 47, 188, 189, 48, 49, 344, 555, 556, 557, 558, ! 952: 191, 351, 352, 353, 568, 569, 960, 391, 392, 281, ! 953: 605, 249, 115, 363, 364, 155, 321, 156, 250, 52, ! 954: 109, 265, 479, 158, 744, 745, 527, 306, 746, 747, ! 955: 1123, 748, 1033, 884, 1150, 885, 1125, 932, 1137, 1195, ! 956: 933, 1138, 1196, 1128, 1091, 1155, 1015, 1135, 1103, 749, ! 957: 750, 751, 1022, 752, 928, 753, 1025, 1163, 1193, 1192, ! 958: 1204, 1136, 1213, 754, 755, 896, 636, 1157, 1158, 1159, ! 959: 1208, 480, 208, 209, 607, 199, 382, 309, 613, 198, ! 960: 371, 589, 372, 590, 251 ! 961: }; ! 962: ! 963: static const short yypact[] = { 196, ! 964: 1953, 4724, 235,-32768, 489,-32768,-32768,-32768,-32768, 130, ! 965: 26, 156,-32768, 250, 3128, 219, 133, 211,-32768,-32768, ! 966: -32768, 4851, 273,-32768,-32768,-32768, 276,-32768, 380, 6174, ! 967: -32768,-32768,-32768,-32768, 421, 403, 619, 1470, 5959, 862, ! 968: 127,-32768,-32768, 1245,-32768,-32768,-32768,-32768, 477, 913, ! 969: -32768,-32768, 341,-32768,-32768,-32768,-32768,-32768,-32768, 1851, ! 970: -32768,-32768, 484,-32768, 559, 585, 5526,-32768, 173,-32768, ! 971: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 578, ! 972: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 973: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 974: -32768, 517,-32768,-32768,-32768, 1367, 963, 1394,-32768,-32768, ! 975: 585, 99,-32768,-32768, 678, 4851, 4769, 4769, 656, 403, ! 976: 348, 5526,-32768,-32768, 99,-32768, 601, 942, 656, 785, ! 977: 6118, 190, 192, 731, 685,-32768, 574, 22, 227, 227, ! 978: -32768,-32768,-32768, 615, 656, 5260,-32768,-32768,-32768, 5341, ! 979: -32768, 370, 240,-32768, 597, 604,-32768,-32768, 690,-32768, ! 980: -32768,-32768, 613, 862, 241, 1660,-32768,-32768,-32768, 1047, ! 981: -32768,-32768, 785,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 982: 273,-32768,-32768,-32768,-32768,-32768, 623, 665, 665,-32768, ! 983: 4838,-32768,-32768, 3218, 621, 106, 650, 49, 5155,-32768, ! 984: 1851, 230,-32768,-32768,-32768, 892, 631, 345, 686,-32768, ! 985: 99, 638,-32768, 66,-32768, 684,-32768, 5762, 5836, 706, ! 986: 710,-32768,-32768, 576, 5607,-32768,-32768, 5607,-32768,-32768, ! 987: 4148, 5607,-32768, 5607, 691, 705,-32768,-32768, 6336, 1065, ! 988: 761, 5202, 788, 90, 5607, 1367, 469, 702, 6244, 205, ! 989: -32768, 802,-32768, 678,-32768,-32768,-32768, 1214,-32768,-32768, ! 990: -32768, 6223, 700,-32768, 612, 963,-32768,-32768, 963, 79, ! 991: -32768, 1788,-32768,-32768, 604, 604,-32768, 35,-32768, 3213, ! 992: -32768,-32768,-32768, 4677,-32768,-32768, 582, 383,-32768,-32768, ! 993: -32768,-32768,-32768,-32768, 784,-32768, 223,-32768, 4229, 5607, ! 994: -32768, 227, 227, 766, 713,-32768,-32768,-32768,-32768, 665, ! 995: -32768,-32768, 597, 604, 3716, 3716,-32768,-32768,-32768, 5422, ! 996: 385,-32768,-32768,-32768, 49, 785,-32768,-32768, 3323, 711, ! 997: 5503,-32768, 1047,-32768,-32768, 49,-32768,-32768, 582,-32768, ! 998: -32768,-32768, 263,-32768,-32768,-32768, 5607, 648, 1731, 1833, ! 999: 38, 1562,-32768, 731, 678, 717, 684, 0, 6382, 628, ! 1000: 721,-32768, 718, 5607,-32768, 656, 405,-32768, 822,-32768, ! 1001: -32768, 779, 1464, 750, 800, 656, 273,-32768, 230, 735, ! 1002: -32768, 509, 509,-32768,-32768, 1348,-32768,-32768, 4229, 782, ! 1003: 790,-32768,-32768, 99,-32768, 740, 5607, 684, 4148,-32768, ! 1004: 1158, 416, 4148,-32768, 5607, 5688,-32768, 460,-32768,-32768, ! 1005: -32768,-32768, 744, 745, 766, 748,-32768,-32768,-32768, 4553, ! 1006: 5607, 5607, 4310, 5607, 5607, 5607, 5607, 5607, 5607, 5607, ! 1007: 5607, 5607, 5607, 5607, 5607, 5607, 5607, 5607, 5607, 5607, ! 1008: -32768,-32768,-32768,-32768,-32768,-32768, 5607, 5607, 5607, 440, ! 1009: 1644, 4634,-32768,-32768, 656, 799, 273, 283, 461, 396, ! 1010: 205,-32768,-32768,-32768,-32768, 5607,-32768,-32768,-32768,-32768, ! 1011: 540,-32768, 678, 612, 1182, 1182, 197, 457, 751, 753, ! 1012: -32768, 755,-32768, 1851, 756,-32768, 963, 825, 199,-32768, ! 1013: 1841,-32768, 5526,-32768,-32768,-32768,-32768, 784,-32768,-32768, ! 1014: -32768,-32768,-32768,-32768, 762, 764, 770, 771, 800, 656, ! 1015: -32768, 5607, 544,-32768, 571, 99,-32768, 3743, 6382,-32768, ! 1016: 44, 227,-32768,-32768,-32768,-32768, 2933,-32768, 597, 597, ! 1017: 3716, 3716,-32768,-32768, 459,-32768, 3428, 757,-32768, 800, ! 1018: -32768, 678, 773, 222, 775,-32768, 777,-32768,-32768, 784, ! 1019: -32768,-32768,-32768,-32768, 840,-32768,-32768, 298, 6305,-32768, ! 1020: -32768, 839, 278, 5607, 5607, 6015, 582, 282,-32768, 515, ! 1021: 6015, -2, 204, 841,-32768,-32768,-32768, 309,-32768,-32768, ! 1022: -32768,-32768,-32768,-32768,-32768,-32768, 106,-32768,-32768, 243, ! 1023: 585, 824, 842,-32768, 3533,-32768, 3638,-32768,-32768, 133, ! 1024: 3657,-32768,-32768, 5879,-32768, 604,-32768,-32768, 230,-32768, ! 1025: 856,-32768, 857,-32768, 5607, 99, 805, 790,-32768, 338, ! 1026: 808, 809, 811, 34, 815,-32768,-32768, 817, 5283,-32768, ! 1027: 6382, 6382, 6382,-32768,-32768, 861, 2042, 6417, 3310, 3279, ! 1028: 3383, 3084, 2114, 1830, 1830, 1830, 812, 812, 652, 652, ! 1029: -32768,-32768,-32768,-32768, 347, 823, 843, 5607,-32768, 1464, ! 1030: 998, 871, 5607, 828,-32768,-32768,-32768,-32768, 5607,-32768, ! 1031: 656, 70,-32768, 588, 366,-32768, 5607, 612, 612,-32768, ! 1032: -32768,-32768,-32768,-32768,-32768, 678, 834,-32768, 830,-32768, ! 1033: 1788,-32768, 846, 215, 888,-32768, 800,-32768,-32768,-32768, ! 1034: -32768, 383, 368,-32768, 223,-32768, 5607, 602, 889, 462, ! 1035: 5607,-32768, 890,-32768, 19,-32768,-32768, 321, 899, 872, ! 1036: -32768,-32768, 873, 876, 5607, 905, 865, 875, 5364, 99, ! 1037: 956,-32768, 213, 926, 106, 931, 5445, 455,-32768, 877, ! 1038: -32768, 2290, 6071, 2234,-32768,-32768, 967,-32768, 2127, 4996, ! 1039: 2408,-32768, 2513,-32768,-32768, 477, 463, 481, 3716, 3716, ! 1040: -32768, 678, 885, 377, 891,-32768, 883, 940,-32768,-32768, ! 1041: -32768,-32768, 3716, 3716, 800, 615, 263,-32768,-32768,-32768, ! 1042: -32768,-32768, 5607,-32768,-32768, 230, 6382, 6382, 896, 590, ! 1043: 1984,-32768,-32768,-32768, 230, 897,-32768, 687,-32768,-32768, ! 1044: 4894,-32768,-32768, 678, 678, 678,-32768, 1464,-32768, 86, ! 1045: 919,-32768, 678, 900, 389, 903, 678, 906, 390, 908, ! 1046: 230, 604, 82, 82, 197,-32768, 4229, 4229, 6382,-32768, ! 1047: -32768, 909,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 4067, ! 1048: -32768, 5607,-32768,-32768, 585, 100, 1367, 6244,-32768, 5607, ! 1049: 4229,-32768, 5607, 415,-32768,-32768,-32768, 5607,-32768, 420, ! 1050: 1182, 1182, 678,-32768,-32768,-32768,-32768, 140, 383,-32768, ! 1051: -32768,-32768, 433,-32768, 5607, 6283, 4229, 3824,-32768,-32768, ! 1052: -32768,-32768, 5607, 933, 5099, 3905, 5607, 707,-32768,-32768, ! 1053: -32768,-32768, 915, 916,-32768, 939, 918, 15, 921, 616, ! 1054: -32768, 617,-32768,-32768, 922,-32768,-32768,-32768, 645, 313, ! 1055: -32768, 925, 317, 622, 929,-32768,-32768,-32768,-32768,-32768, ! 1056: 106, 99,-32768,-32768, 659,-32768, 2618,-32768, 673,-32768, ! 1057: 2723, 4391, 4391, 4838,-32768,-32768, 597, 597,-32768,-32768, ! 1058: -32768,-32768,-32768, 678, 678, 678, 597, 597, 971,-32768, ! 1059: -32768, 6382,-32768, 675, 978, 981, 5607, 5607, 582,-32768, ! 1060: -32768, 679, 4782,-32768,-32768, 1033, 4229,-32768,-32768,-32768, ! 1061: -32768,-32768,-32768,-32768,-32768,-32768,-32768, 990, 6402, 615, ! 1062: 122,-32768, 944, 946, 447,-32768,-32768,-32768, 458,-32768, ! 1063: 612, 612, 678,-32768,-32768,-32768, 487, 4229,-32768, 5607, ! 1064: -32768, 988,-32768, 947, 5607, 1025, 948, 949,-32768, 954, ! 1065: -32768, 957,-32768, 5607, 5099,-32768,-32768, 585,-32768, 966, ! 1066: 5607,-32768, 968, 5607,-32768,-32768,-32768, 784,-32768,-32768, ! 1067: -32768, 784, 5099, 779, 1018,-32768,-32768,-32768,-32768,-32768, ! 1068: 972, 973, 58, 678, 678, 678, 4229,-32768,-32768,-32768, ! 1069: 230, 4229, 5607, 6382, 6382, 784,-32768,-32768, 230, 989, ! 1070: 498,-32768,-32768, 678, 678, 678, 678, 678, 678, 3986, ! 1071: 970, 615,-32768,-32768, 995, 996,-32768,-32768,-32768,-32768, ! 1072: 6360, 4229,-32768, 984,-32768,-32768,-32768, 3038,-32768,-32768, ! 1073: 5099, 1036,-32768, 77,-32768, 524,-32768,-32768, 525,-32768, ! 1074: -32768,-32768,-32768,-32768,-32768,-32768,-32768, 4229,-32768,-32768, ! 1075: 6382, 1039,-32768, 548, 1033, 992,-32768,-32768,-32768,-32768, ! 1076: 4229,-32768, 5099,-32768, 1014, 692, 2828, 5099,-32768,-32768, ! 1077: 1085, 994, 997, 1005,-32768, 1013, 4472, 4472,-32768, 4229, ! 1078: -32768, 1007, 526,-32768,-32768, 1003, 1010,-32768,-32768, 5099, ! 1079: 5607,-32768,-32768,-32768, 5099, 1031, 312, 1069,-32768,-32768, ! 1080: -32768,-32768, 255, 1038, 1012, 1020,-32768,-32768, 1116,-32768, ! 1081: -32768,-32768,-32768, 1023,-32768, 5607, 1085, 1027, 1085,-32768, ! 1082: -32768,-32768, 1464,-32768,-32768,-32768, 1037, 1032, 331,-32768, ! 1083: -32768, 766, 766, 99, 5099, 5099,-32768,-32768, 1130, 1048, ! 1084: -32768,-32768,-32768, 1052,-32768,-32768,-32768, 527,-32768,-32768, ! 1085: 1145, 1054, 766,-32768,-32768,-32768, 1157, 1160,-32768 ! 1086: }; ! 1087: ! 1088: static const short yypgoto[] = {-32768, ! 1089: 1035,-32768,-32768, 878, 1156,-32768,-32768,-32768,-32768, 474, ! 1090: -32768,-32768,-32768,-32768,-32768,-32768,-32768, -650, 1040, 1043, ! 1091: -32768,-32768,-32768,-32768, 1028,-32768,-32768, 468, -7, 676, ! 1092: -227,-32768, -4, -29,-32768,-32768,-32768, 683, -908,-32768, ! 1093: 407, 112,-32768, -46, 454, 583, -192, 781, -164,-32768, ! 1094: -32768,-32768,-32768, -177, -60, -81,-32768,-32768, 300, 24, ! 1095: 1041, 1034, 1133, -8, 923, -1, 6, 449, -34, -265, ! 1096: -32768,-32768, 870,-32768,-32768,-32768, -456,-32768, 85,-32768, ! 1097: -273, 357, -12,-32768,-32768,-32768, 586, -247, 1192, 1194, ! 1098: -32768,-32768,-32768,-32768,-32768, -157,-32768, 448, -527,-32768, ! 1099: 470, 293, 432, -332, 887,-32768,-32768, 847, 627, -63, ! 1100: -90, 2, 1435, -261,-32768, -127, 924, 986, 324,-32768, ! 1101: 11, -143,-32768, -107, -712, -717, -257, -91, -131,-32768, ! 1102: -32768, 431,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 1103: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 1104: -32768,-32768,-32768,-32768, 318,-32768,-32768,-32768,-32768,-32768, ! 1105: -32768,-32768,-32768,-32768,-32768,-32768, -888, 83,-32768, 75, ! 1106: -32768, 5,-32768, -248, -304, 3, 1050,-32768,-32768, 13, ! 1107: -552, 451, 343,-32768, 1150 ! 1108: }; ! 1109: ! 1110: ! 1111: #define YYLAST 6487 ! 1112: ! 1113: ! 1114: static const short yytable[] = { 40, ! 1115: 40, 482, 65, 248, 165, 214, 106, 307, 307, 113, ! 1116: 105, 53, 53, 107, 187, 264, 108, 120, 313, 577, ! 1117: 235, 116, 471, 492, 491, 520, 917, 172, 40, 509, ! 1118: 780, 345, 411, 120, 807, 412, 185, 164, 927, 417, ! 1119: 931, 418, 322, 1041, 1042, 171, 409, 420, 308, 453, ! 1120: 270, 870, 702, 401, 401, 105, 303, 59, 40, 540, ! 1121: 401, 152, 163, 401, 207, 247, 878, 401, 547, 401, ! 1122: 574, 1072, 855, 136, 374, 395, 59, 401, 608, -277, ! 1123: 196, 612, 493, 768, 4, 119, 395, 197, 395, 273, ! 1124: 574, 420, 454, 455, 172, 395, -277, 494, -277, 797, ! 1125: 580, 61, 62, 105, 271, 66, 269, 15, 365, 366, ! 1126: 6, 120, 120, 120, 474, 614, -98, 282, 478, 15, ! 1127: 247, 879, 600, 301, 19, 120, 40, 15, 1131, 164, ! 1128: 456, 395, 61, 62, 837, 61, 62, 611, 53, 602, ! 1129: 575, 120, 61, 62, 716, 120, 295, 420, 367, 603, ! 1130: -277, 172, 528, 287, 288, 464, 261, 172, 468, 331, ! 1131: 1106, 604, 263, 1072, 325, 867, 396, 416, 120, 171, ! 1132: 307, 307, 525, 23, 173, 338, 63, 1132, 336, 488, ! 1133: 900, 457, 902, 112, 414, 27, 965, 529, 530, 40, ! 1134: 64, 120, 360, 458, 120, -1, 105, 23, 361, 40, ! 1135: 368, 105, 982, 390, 164, 380, 370, 454, 469, 917, ! 1136: 523, 524, 322, 917, 381, 897, 898, 6, 995, 522, ! 1137: 252, 64, 1074, 689, 64, 61, 510, 304, 174, 247, ! 1138: 409, 181, 697, 674, 172, 67, 289, 273, 292, 120, ! 1139: 869, 290, 15, 293, 105, 456, 691, 269, 1165, 1166, ! 1140: 110, 791, 68, 172, 680, 367, 172, 365, 366, 6, ! 1141: 40, 692, -22, 511, 681, 61, 62, 105, 551, 420, ! 1142: 40, 486, 114, 305, 253, 1180, 767, -22, 123, 124, ! 1143: 61, 62, 40, 628, 775, 61, 62, 326, 173, 515, ! 1144: 808, 291, 120, 294, 53, 552, 470, 367, 111, 498, ! 1145: 61, 62, 512, 778, 181, 799, 800, 368, 458, 588, ! 1146: 120, 120, 196, 554, 181, 120, 125, 583, 949, 197, ! 1147: 172, 120, 770, 666, 51, 51, 120, 360, 112, 791, ! 1148: 779, 678, 679, 545, 122, 621, 56, 57, 338, 622, ! 1149: 994, 327, 334, 809, 120, 51, 23, 172, 164, 368, ! 1150: 40, 550, 414, 51, 181, 385, 414, 1181, 623, 625, ! 1151: 326, 157, 157, 1177, 173, 171, 578, 126, 105, 64, ! 1152: 323, 107, 567, 572, 64, 1127, 635, 120, 120, 784, ! 1153: 785, 200, 1199, 792, 40, 420, 390, 662, 193, 181, ! 1154: 307, 598, 386, -621, 420, -621, 387, 247, 670, 671, ! 1155: -621, 247, 656, 757, 758, 664, 499, 584, 585, 917, ! 1156: 802, 803, 1178, 420, 1029, 420, -621, -621, 1031, -621, ! 1157: 201, -621, 880, 881, 420, 536, 127, 194, 195, 500, ! 1158: 717, 1200, 501, 15, 502, 388, 420, 420, 833, 51, ! 1159: 51, 51, 492, 491, 135, 141, 105, 843, 277, 661, ! 1160: 667, 51, 196, 157, 157, 120, 465, 474, 322, 197, ! 1161: 478, 187, 420, 322, 537, 538, 859, 420, 871, 157, ! 1162: 852, 324, 136, 157, 172, 168, 169, 940, 657, 105, ! 1163: 420, 10, 40, 694, 503, 539, 658, 23, 687, 969, ! 1164: 972, 247, 486, 222, 420, 466, 157, 483, 401, 536, ! 1165: 13, 668, 408, 328, 59, 420, 906, 16, 708, 465, ! 1166: 713, 4, 119, -98, 51, 988, 122, 61, 62, 369, ! 1167: 990, 328, 51, 190, 955, 360, 120, 120, 554, 58, ! 1168: 810, 59, 955, 996, 420, 360, 484, 485, 537, 538, ! 1169: 669, 765, 329, 330, 704, 1115, 15, 1077, 466, 600, ! 1170: 1141, 19, 601, 975, 976, 113, 1142, 682, 1078, 761, ! 1171: 329, 330, 113, 935, 40, 112, 602, 461, 60, 40, ! 1172: 789, 420, 420, 1169, 1211, 796, 603, 986, 407, 790, ! 1173: 676, 936, 120, 261, 798, 477, 210, 1079, 604, 263, ! 1174: -85, 705, 113, 360, 213, 360, 120, 370, 1116, 816, ! 1175: 23, 820, 40, 999, 1003, 212, 64, 51, 390, 222, ! 1176: 1182, 706, 27, 15, 298, 374, 793, 794, 408, 677, ! 1177: 516, 826, 256, 299, 1133, 1134, 1170, 1212, 857, 255, ! 1178: 577, 937, 938, 167, 168, 169, -75, 328, 157, 157, ! 1179: 10, -75, 874, 157, 193, 947, 948, 358, 172, 157, ! 1180: 707, 847, 483, 300, 51, 105, 1020, 1023, 107, 13, ! 1181: 987, 848, 193, 554, 196, 142, 16, 858, 465, 341, ! 1182: 143, 197, 157, 157, 342, 51, 329, 330, 888, 678, ! 1183: 679, 875, 893, 194, 195, 273, 105, 296, 401, 40, ! 1184: 905, 484, 485, 1063, 560, 1021, 1024, 515, 59, 561, ! 1185: 120, 194, 195, 283, 196, 51, 51, 466, 913, 51, ! 1186: 310, 197, 374, -422, 332, -422, 343, 991, 992, 438, ! 1187: 439, 440, 894, -242, 1080, 899, 362, 196, 120, 373, ! 1188: 120, 384, 59, -78, 197, 389, -422, 120, -78, -422, ! 1189: 393, 164, 360, 370, 588, 370, 1027, 554, 360, 360, ! 1190: 1088, 360, 420, 521, 120, 120, 983, 984, 1013, 1014, ! 1191: 880, 1036, 540, 397, 1097, 909, 912, 1100, 120, 120, ! 1192: -422, 193, -422, 1107, 880, 1039, 1049, 1050, 1110, -422, ! 1193: 1057, 1058, 544, 672, 981, 405, 120, 4, 145, 406, ! 1194: 1112, 419, -422, 880, 1152, 450, 1003, 395, 953, 40, ! 1195: 400, 404, 467, 105, 472, 481, 107, 961, 1122, 374, ! 1196: 194, 195, 305, 196, 959, 526, 546, 579, 120, 120, ! 1197: 197, 581, 15, 582, 586, 17, 587, 19, 146, 591, ! 1198: 592, 615, 713, 974, 1139, 599, 1004, 616, 554, 1010, ! 1199: 1012, 619, 147, 105, 626, 627, 269, 1148, 629, 665, ! 1200: 620, 683, 148, 684, 157, 157, 690, 1146, 1147, 149, ! 1201: 685, 688, 766, 698, 150, 699, 1167, 167, 168, 169, ! 1202: 1002, 700, 701, 769, 10, 771, 23, 436, 437, 438, ! 1203: 439, 440, 772, 360, 360, 635, 635, 777, 27, 157, ! 1204: 783, 812, 801, 13, 157, 71, 6, 160, 8, 161, ! 1205: 16, 655, 280, 811, 10, 827, 828, 831, 834, 835, ! 1206: 369, 836, 842, 192, 1035, 838, 120, 839, 12, 675, ! 1207: 851, 1028, 845, 13, 51, 360, 1032, 825, 844, 360, ! 1208: 16, 370, 40, 853, 864, 865, -621, 181, -621, 868, ! 1209: -97, 877, 3, -621, 4, 5, 6, 7, 8, 9, ! 1210: 882, 883, 886, 193, 10, 887, 889, 1094, 1084, -621, ! 1211: -621, 40, -621, 895, -621, 703, 890, 1092, 12, 168, ! 1212: 169, 1056, 901, 13, 359, 10, 891, 903, 907, 15, ! 1213: 16, 919, 17, 23, 19, 939, 50, 50, 942, 943, ! 1214: 764, 941, 194, 195, 13, 196, 954, 962, 966, 20, ! 1215: 968, 16, 197, 970, 168, 169, 971, 121, 973, 21, ! 1216: 10, 977, 1005, 360, -621, 134, 1016, 1017, 1018, -97, ! 1217: 1048, 22, 1019, 1026, 166, 463, 1030, 1052, 516, 13, ! 1218: 880, 360, 1053, 23, 24, 1060, 16, 1070, 849, 1082, ! 1219: 1085, 38, 38, 26, 1075, 27, 1076, 1083, 815, 1086, ! 1220: 819, 1087, 337, 168, 169, 1089, 369, 1090, 369, 10, ! 1221: 1201, 1202, 1002, 1109, 1102, 157, 157, 1095, 1114, 1098, ! 1222: 130, 1113, 1117, 1104, 1105, 1119, 1120, 850, 13, 519, ! 1223: 359, 1216, 157, 157, 1124, 16, 360, 1130, 1140, 360, ! 1224: 635, 635, 1145, 1151, 1156, 1160, 157, 157, 1161, 1164, ! 1225: 205, 274, 275, 276, 1174, 441, 1162, 1168, 1171, 359, ! 1226: 1176, 846, 1184, 50, 157, 1172, 1179, 1183, 1186, 1194, ! 1227: 1185, 360, 854, 1187, 51, 360, 360, 559, 1190, 1188, ! 1228: 860, 314, 1198, 39, 39, 121, 442, 443, 1197, 1207, ! 1229: 444, 445, 446, 447, 448, 449, 51, 51, 360, 1209, ! 1230: 54, 54, 1210, 360, 1214, 1215, 1218, 55, 120, 1219, ! 1231: 873, 284, 131, 497, 866, 302, 695, 285, 38, 519, ! 1232: 286, 54, 872, 370, 918, 696, 354, 359, 105, 54, ! 1233: 924, 107, 950, 1118, 378, 1011, 1203, 54, 54, 273, ! 1234: 910, 487, 206, 360, 360, 541, 978, 333, 441, 1144, ! 1235: 631, 632, 633, 832, 637, 638, 639, 640, 641, 642, ! 1236: 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, ! 1237: 653, 132, 257, 133, 951, 934, 1043, 654, 359, 442, ! 1238: 443, 349, 963, 444, 205, 446, 573, 448, 449, 259, ! 1239: 618, 205, 830, 535, 369, 1038, 359, 61, 62, 260, ! 1240: 175, 176, 177, 1191, 257, 383, 261, 51, 964, 1189, ! 1241: 39, 262, 263, 1034, 0, 54, 54, 54, 0, 50, ! 1242: 0, 259, 0, 280, 0, 0, 178, 54, 0, 54, ! 1243: 54, 260, 0, 0, 0, 0, 51, 0, 261, 0, ! 1244: 179, 180, 359, 262, 263, 54, 0, 0, 519, 54, ! 1245: 275, 276, 205, 985, 0, 121, 0, 0, 0, 0, ! 1246: 0, 989, 205, 0, 0, 1006, 378, 359, 0, 0, ! 1247: 0, 0, 54, 350, 38, 0, 206, 0, 997, 0, ! 1248: 0, 0, 0, 206, 0, 0, 181, 354, 0, 0, ! 1249: 54, 182, 183, 184, 787, 788, 0, 0, 54, 0, ! 1250: 4, 129, 6, 7, 8, 9, 0, 918, 610, 0, ! 1251: 10, 918, 0, 0, 0, 0, 0, 606, 606, 205, ! 1252: 0, 606, 0, 410, 12, 359, 0, 359, 0, 13, ! 1253: 0, 0, 0, 0, 0, 15, 16, 0, 600, 0, ! 1254: 19, 601, 349, 462, 206, 829, 0, 71, 6, 462, ! 1255: 8, 268, 0, 0, 206, 602, 10, 257, 0, 841, ! 1256: 258, 0, 0, 0, 0, 603, 39, 0, 0, 0, ! 1257: 12, 0, 261, 0, 259, 13, 205, 604, 263, 0, ! 1258: 0, 0, 16, 54, 260, 0, 0, 0, 359, 23, ! 1259: 0, 261, 0, 0, 0, 1093, 262, 263, 0, 359, ! 1260: 0, 27, 0, 0, 117, 118, 0, 359, 0, 0, ! 1261: 0, 206, 0, 1101, 54, 54, 0, 71, 6, 54, ! 1262: 8, 72, 4, 145, 1096, 54, 10, 1099, 0, 0, ! 1263: 54, 0, 0, 0, 350, 23, 369, 359, 0, 0, ! 1264: 12, 876, 202, 0, 0, 13, 0, 0, 54, 54, ! 1265: 0, 54, 16, 0, 0, 0, 0, 15, 0, 254, ! 1266: 17, 0, 19, 146, 0, 0, 275, 276, 206, 0, ! 1267: 0, 1129, 0, 0, 205, 0, 0, 147, 0, 0, ! 1268: 0, 54, 54, 0, 0, 54, 0, 148, 0, 0, ! 1269: 0, 0, 0, 0, 149, 0, 0, 0, 0, 150, ! 1270: 0, 121, 0, 1149, 0, 23, 121, 918, 1154, 0, ! 1271: 0, 23, 346, 952, 4, 129, 6, 7, 8, 9, ! 1272: 0, 151, 0, 27, 10, 0, 0, 205, 0, 0, ! 1273: 1173, 315, 316, 0, 0, 1175, 822, 0, 12, 121, ! 1274: 0, 0, 0, 13, -356, 0, 0, 0, 0, 15, ! 1275: 16, 0, 17, 0, 19, 0, 205, 519, 519, 673, ! 1276: 462, 205, 0, 347, 0, 0, 206, 0, 0, 20, ! 1277: 519, 0, 979, 0, 0, 1205, 1206, 355, 0, 21, ! 1278: 359, 519, 0, 0, 379, 205, 0, 205, 359, 0, ! 1279: 0, 22, 0, 0, 205, 0, 0, 71, 6, 0, ! 1280: 8, 72, 0, 23, 0, 359, 10, 519, 519, 0, ! 1281: 335, 0, 0, 576, -356, 27, 0, 0, 0, 206, ! 1282: 12, 0, 0, 0, 0, 13, 0, 0, 0, 0, ! 1283: 54, 54, 16, -621, 0, -621, 0, 0, 0, 659, ! 1284: -621, 473, 0, 475, 476, 0, 0, 0, 206, 0, ! 1285: 193, 0, 0, 206, 0, 0, -621, -621, 0, -621, ! 1286: 0, -621, 0, 0, 0, 54, 0, 0, 0, 0, ! 1287: 54, 0, 0, 660, 0, 0, 0, 206, 914, 206, ! 1288: 0, 205, 0, 562, 145, 23, 206, 1054, 1055, 194, ! 1289: 195, 0, 196, 0, 275, 276, 0, 519, 0, 197, ! 1290: 54, 531, 532, 54, 0, 0, 0, 0, 275, 276, ! 1291: 0, -242, 542, 0, 0, 0, 0, 0, 15, 0, ! 1292: 0, 563, 0, 19, 146, 0, 564, 0, 519, 0, ! 1293: 1081, 0, 565, 0, 0, 0, 354, 0, 147, 0, ! 1294: 0, 71, 6, 7, 8, 9, 0, 0, 148, 0, ! 1295: 10, 359, 0, 0, 359, 149, 0, 0, 275, 276, ! 1296: 566, 0, 0, 0, 12, 0, 0, 0, 609, 13, ! 1297: 0, 856, 23, 206, 0, 0, 16, 519, 0, 0, ! 1298: 0, 0, 519, 1111, 27, 562, 159, 6, 160, 8, ! 1299: 161, 349, 0, 61, 62, 10, 175, 176, 177, 0, ! 1300: 519, 0, 0, 0, 71, 6, 7, 8, 9, 12, ! 1301: 0, 203, 519, 10, 13, 0, 0, 0, 0, 0, ! 1302: 15, 16, 178, 570, 0, 19, 146, 12, 564, 23, ! 1303: 0, 0, 13, 0, 565, 0, 693, 180, 519, 16, ! 1304: 147, 54, 54, 434, 435, 436, 437, 438, 439, 440, ! 1305: 148, 519, 0, 0, 0, 0, 0, 149, 54, 54, ! 1306: 0, 0, 571, 0, 0, 0, 0, 686, 0, 354, ! 1307: 519, 0, 54, 54, 23, 0, 0, 0, 0, 0, ! 1308: 0, 0, 181, 350, 0, 0, 27, 182, 183, 184, ! 1309: 54, 204, 23, 0, 0, 0, 0, 0, 354, 0, ! 1310: 54, 0, -2, 3, 0, 4, 5, 6, 7, 8, ! 1311: 9, 0, 0, 0, 0, 10, 0, 759, 760, 0, ! 1312: 762, 0, 54, 54, 349, 0, 0, 0, 11, 12, ! 1313: 0, 0, 773, 774, 13, 0, 956, 145, 14, 0, ! 1314: 15, 16, 0, 17, 18, 19, 0, 786, 0, 0, ! 1315: 0, 0, 0, 349, 795, 0, 0, 0, 0, 0, ! 1316: 20, 0, 0, 804, 805, 806, 0, 0, 0, 0, ! 1317: 21, 15, 0, 0, 17, 0, 19, 146, 813, 957, ! 1318: 817, 0, 22, 821, 473, 958, 823, 824, 0, 0, ! 1319: 0, 147, 0, 0, 23, 24, 25, 0, 0, 0, ! 1320: 0, 148, 0, 0, 26, 0, 27, 0, 149, 0, ! 1321: 0, 0, 0, 150, 0, 0, 350, 0, 0, 0, ! 1322: 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, ! 1323: 0, 0, 0, 54, 0, 0, 0, 27, 0, 0, ! 1324: 0, 0, 0, 0, 0, 350, 425, 426, 427, 428, ! 1325: 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, ! 1326: 439, 440, 54, 0, 861, 862, 0, 0, 863, 0, ! 1327: 0, 0, 0, 0, 0, 0, 0, 920, 0, -554, ! 1328: -554, -554, -554, -554, -554, -554, -554, 0, -554, -554, ! 1329: -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, ! 1330: -554, -554, -554, -554, -554, -554, -554, 0, -554, 0, ! 1331: -554, -554, 0, -554, -554, -554, 0, 0, 0, -554, ! 1332: 0, 0, -554, -554, 431, 432, 433, 434, 435, 436, ! 1333: 437, 438, 439, 440, -554, 0, 0, 0, 0, 0, ! 1334: 0, 0, -554, -554, -554, 0, 0, 0, -554, -554, ! 1335: 0, 0, 0, 944, 945, 946, -554, 0, -554, 0, ! 1336: 921, -554, 922, 0, -554, -554, -554, 0, -554, 0, ! 1337: 0, 0, 0, 0, 0, 0, 0, 0, -554, -554, ! 1338: -554, -554, 0, 0, 915, 0, 719, 129, 6, 7, ! 1339: 8, 357, 217, 213, 0, 218, 10, 720, 0, 721, ! 1340: 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, ! 1341: 12, 219, 220, 221, 0, 13, 0, 222, -225, 0, ! 1342: 223, 15, 16, 0, 0, 0, 224, 0, 0, 732, ! 1343: 305, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1344: 0, 225, 4, 145, 0, 0, 0, 0, 993, 226, ! 1345: 227, 228, 0, 0, 0, 229, 230, 0, 0, 0, ! 1346: 0, 0, 0, 231, 0, 733, 0, 0, 734, 0, ! 1347: 0, 735, 736, 737, 0, 738, 0, 15, 0, 0, ! 1348: 17, 0, 19, 146, 0, 739, 916, 232, 233, 0, ! 1349: 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, ! 1350: 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, ! 1351: 0, 0, 0, 0, 149, 0, 0, 0, 0, 150, ! 1352: 0, 0, 0, 1044, 1045, 1046, 0, 0, 0, 0, ! 1353: 0, 23, 0, 0, 0, 0, 0, 0, 1051, 0, ! 1354: 0, 908, 0, 27, 0, 0, 1059, 0, 0, 0, ! 1355: 0, 0, 1064, 1065, 1066, 1067, 1068, 1069, 925, 0, ! 1356: 719, 129, 6, 7, 8, 357, 217, 213, 0, 218, ! 1357: 10, 720, 0, 721, 722, 723, 724, 725, 726, 727, ! 1358: 728, 729, 730, 731, 12, 219, 220, 221, 0, 13, ! 1359: 0, 222, -225, 0, 223, 15, 16, 0, 0, 0, ! 1360: 224, 0, 0, 732, 305, 0, 0, 0, 0, 0, ! 1361: 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, ! 1362: 0, 0, 0, 226, 227, 228, 0, 0, 0, 229, ! 1363: 230, 0, 0, 0, 0, 0, 0, 231, 0, 733, ! 1364: 0, 0, 734, 0, 0, 735, 736, 737, 0, 738, ! 1365: 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, ! 1366: 926, 232, 233, 929, 0, 719, 129, 6, 7, 8, ! 1367: 357, 217, 213, 0, 218, 10, 720, 0, 721, 722, ! 1368: 723, 724, 725, 726, 727, 728, 729, 730, 731, 12, ! 1369: 219, 220, 221, 0, 13, 0, 222, -225, 0, 223, ! 1370: 15, 16, 0, 0, 0, 224, 0, 0, 732, 305, ! 1371: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1372: 225, 0, 0, 0, 0, 0, 0, 0, 226, 227, ! 1373: 228, 0, 0, 0, 229, 230, 0, 0, 0, 0, ! 1374: 0, 0, 231, 0, 733, 0, 0, 734, 0, 0, ! 1375: 735, 736, 737, 0, 738, 0, 0, 0, 0, 0, ! 1376: 0, 0, 0, 0, 739, 930, 232, 233, 915, 0, ! 1377: 719, 129, 6, 7, 8, 357, 217, 213, 0, 218, ! 1378: 10, 720, 0, 721, 722, 723, 724, 725, 726, 727, ! 1379: 728, 729, 730, 731, 12, 219, 220, 221, 0, 13, ! 1380: 0, 222, -225, 0, 223, 15, 16, 0, 0, 0, ! 1381: 224, 0, 0, 732, 305, 0, 0, 0, 0, 0, ! 1382: 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, ! 1383: 0, 0, 0, 226, 227, 228, 0, 0, 0, 229, ! 1384: 230, 0, 0, 0, 0, 0, 0, 231, 0, 733, ! 1385: 0, 0, 734, 0, 0, 735, 736, 737, 0, 738, ! 1386: 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, ! 1387: 1037, 232, 233, 915, 0, 719, 129, 6, 7, 8, ! 1388: 357, 217, 213, 0, 218, 10, 720, 0, 721, 722, ! 1389: 723, 724, 725, 726, 727, 728, 729, 730, 731, 12, ! 1390: 219, 220, 221, 0, 13, 0, 222, -225, 0, 223, ! 1391: 15, 16, 0, 0, 0, 224, 0, 0, 732, 305, ! 1392: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1393: 225, 0, 0, 0, 0, 0, 0, 0, 226, 227, ! 1394: 228, 0, 0, 0, 229, 230, 0, 0, 0, 0, ! 1395: 0, 0, 231, 0, 733, 0, 0, 734, 0, 0, ! 1396: 735, 736, 737, 0, 738, 0, 0, 0, 0, 0, ! 1397: 0, 0, 0, 0, 739, 1040, 232, 233, 915, 0, ! 1398: 719, 129, 6, 7, 8, 357, 217, 213, 0, 218, ! 1399: 10, 720, 0, 721, 722, 723, 724, 725, 726, 727, ! 1400: 728, 729, 730, 731, 12, 219, 220, 221, 0, 13, ! 1401: 0, 222, -225, 0, 223, 15, 16, 0, 0, 0, ! 1402: 224, 0, 0, 732, 305, 0, 0, 0, 0, 0, ! 1403: 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, ! 1404: 0, 0, 0, 226, 227, 228, 0, 0, 0, 229, ! 1405: 230, 0, 0, 0, 0, 0, 0, 231, 0, 733, ! 1406: 0, 0, 734, 0, 0, 735, 736, 737, 0, 738, ! 1407: 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, ! 1408: 1153, 232, 233, 718, 0, 719, 129, 6, 7, 8, ! 1409: 357, 217, 213, 0, 218, 10, 720, 0, 721, 722, ! 1410: 723, 724, 725, 726, 727, 728, 729, 730, 731, 12, ! 1411: 219, 220, 221, 0, 13, 0, 222, -225, 0, 223, ! 1412: 15, 16, 0, 0, 0, 224, 0, 0, 732, 305, ! 1413: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1414: 225, 0, 0, 0, 0, 0, 0, 0, 226, 227, ! 1415: 228, 0, 0, 0, 229, 230, 0, 0, 0, 0, ! 1416: 0, 0, 231, 0, 733, 0, 0, 734, 0, 0, ! 1417: 735, 736, 737, 0, 738, 0, 0, 0, 0, 0, ! 1418: 0, 0, 0, 0, 739, 0, 232, 233, 1126, 0, ! 1419: 719, 129, 6, 7, 8, 357, 217, 213, 0, 218, ! 1420: 10, 720, 0, 721, 722, 723, 724, 725, 726, 727, ! 1421: 728, 729, 730, 731, 12, 219, 220, 221, 0, 13, ! 1422: 0, 222, -225, 0, 223, 15, 16, 0, 0, 0, ! 1423: 224, 0, 0, 732, 305, 0, 0, 0, 0, 0, ! 1424: 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, ! 1425: 0, 0, 0, 226, 227, 228, 0, 0, 0, 229, ! 1426: 230, 0, 0, 0, 0, 0, 0, 231, 0, 733, ! 1427: 0, 0, 734, 0, 0, 735, 736, 737, 70, 738, ! 1428: 0, 71, 6, 0, 8, 72, 0, 0, 0, 739, ! 1429: 10, 232, 233, 430, 431, 432, 433, 434, 435, 436, ! 1430: 437, 438, 439, 440, 12, 0, 0, 0, 0, 13, ! 1431: 0, 73, 74, 0, 0, 0, 16, 75, 76, 0, ! 1432: 0, 0, 0, 0, 0, 77, 78, 79, 80, 0, ! 1433: 0, 81, 82, 83, 84, 85, 86, 87, 88, 89, ! 1434: 90, 91, 92, 93, 94, 95, 96, 97, 0, 98, ! 1435: 99, 0, 0, 100, 101, 0, 0, 0, 102, 0, ! 1436: 0, 0, 0, 0, 0, 0, 0, 0, 356, 23, ! 1437: 215, 129, 6, 7, 8, 357, 217, 213, 203, 218, ! 1438: 10, 103, 104, 0, 0, 0, 0, 0, 0, 0, ! 1439: 0, 0, 0, 0, 12, 219, 220, 221, 0, 13, ! 1440: 0, 222, -225, 0, 223, 15, 16, 0, 0, 0, ! 1441: 224, 421, 422, 423, 0, 0, 424, 425, 426, 427, ! 1442: 428, 429, 430, 431, 432, 225, 434, 435, 436, 437, ! 1443: 438, 439, 440, 226, 227, 228, 0, 0, 0, 229, ! 1444: 230, 0, 0, 0, 0, 0, 0, 231, 0, 0, ! 1445: 0, 0, 0, 0, 0, 0, 0, 0, 204, 23, ! 1446: 0, 0, 0, 0, 0, 0, 0, 0, -598, 0, ! 1447: 0, 232, 233, 543, 0, 215, 129, 6, 7, 8, ! 1448: 357, 217, 213, 203, 218, 10, 428, 429, 430, 431, ! 1449: 432, 433, 434, 435, 436, 437, 438, 439, 440, 12, ! 1450: 219, 220, 221, 0, 13, 0, 222, -225, 0, 223, ! 1451: 15, 16, 0, 0, 0, 224, 427, 428, 429, 430, ! 1452: 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, ! 1453: 225, 0, 0, 0, 0, 0, 0, 0, 226, 227, ! 1454: 228, 0, 0, 0, 229, 230, 0, 0, 0, 0, ! 1455: 0, 0, 231, 0, 0, 0, 0, 0, 0, 0, ! 1456: 0, 0, 0, 204, 23, 0, 0, 0, 0, 0, ! 1457: 0, 0, 0, -598, 0, 0, 232, 233, 763, 0, ! 1458: 215, 129, 6, 7, 8, 357, 217, 213, 203, 218, ! 1459: 10, 429, 430, 431, 432, 433, 434, 435, 436, 437, ! 1460: 438, 439, 440, 0, 12, 219, 220, 221, 0, 13, ! 1461: 0, 222, -225, 0, 223, 15, 16, 0, 0, 0, ! 1462: 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1463: 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, ! 1464: 0, 0, 0, 226, 227, 228, 0, 0, 0, 229, ! 1465: 230, 0, 0, 0, 0, 0, 0, 231, 0, 0, ! 1466: 0, 0, 0, 0, 0, 0, 0, 0, 204, 23, ! 1467: 0, 0, 0, 0, 0, 0, 0, 0, -598, 0, ! 1468: 0, 232, 233, 814, 0, 215, 129, 6, 7, 8, ! 1469: 357, 217, 213, 203, 218, 10, 0, 0, 0, 0, ! 1470: 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, ! 1471: 219, 220, 221, 0, 13, 0, 222, -225, 0, 223, ! 1472: 15, 16, 0, 0, 0, 224, 0, 0, 0, 0, ! 1473: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1474: 225, 0, 0, 0, 0, 0, 0, 0, 226, 227, ! 1475: 228, 0, 0, 0, 229, 230, 0, 0, 0, 0, ! 1476: 0, 0, 231, 0, 0, 0, 0, 0, 0, 0, ! 1477: 0, 0, 0, 204, 23, 0, 0, 0, 0, 0, ! 1478: 0, 0, 0, -598, 0, 0, 232, 233, 818, 0, ! 1479: 215, 129, 6, 7, 8, 357, 217, 213, 203, 218, ! 1480: 10, 0, 0, 0, 0, 0, 0, 0, 0, 4, ! 1481: 119, 0, 0, 0, 12, 219, 220, 221, 0, 13, ! 1482: 0, 222, -225, 0, 223, 15, 16, 0, 0, 0, ! 1483: 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1484: 0, 0, 0, 0, 15, 225, 0, 600, 0, 19, ! 1485: 0, 0, 0, 226, 227, 228, 0, 0, 0, 229, ! 1486: 230, 0, 0, 0, 602, 0, 0, 231, 4, 145, ! 1487: 0, 0, 0, 273, 603, 0, 0, 0, 204, 23, ! 1488: 0, 261, 0, 0, 0, 0, 604, 263, -598, 0, ! 1489: 0, 232, 233, 517, 0, 709, 710, 6, 23, 8, ! 1490: 398, 217, 213, 15, 218, 10, 17, 0, 19, 0, ! 1491: 27, 0, 0, 0, 0, 0, 0, 0, 0, 12, ! 1492: 219, 220, 221, 147, 13, 0, 222, -225, 0, 223, ! 1493: 15, 16, 0, 148, 0, 224, 0, 0, 0, 518, ! 1494: 149, 0, 0, 0, 0, 150, 0, 0, 0, 0, ! 1495: 225, 0, 0, 0, 0, 0, 0, 23, 226, 227, ! 1496: 228, 0, 0, 0, 229, 230, 0, 0, 0, 27, ! 1497: 0, 0, 231, 711, 517, 0, 709, 710, 6, 0, ! 1498: 8, 398, 217, 213, 181, 218, 10, 0, 0, 0, ! 1499: 0, 0, 0, 1000, 0, 712, 232, 233, 0, 0, ! 1500: 12, 219, 220, 221, 0, 13, 0, 222, -225, 0, ! 1501: 223, 15, 16, 0, 0, 0, 224, 0, 0, 0, ! 1502: 518, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1503: 0, 225, 0, 0, 0, 0, 0, 0, 0, 226, ! 1504: 227, 228, 0, 0, 0, 229, 230, 0, 0, 0, ! 1505: 0, 0, 0, 231, 0, 1007, 0, 215, 129, 6, ! 1506: 7, 8, 357, 217, 213, 181, 218, 10, 0, 0, ! 1507: 0, 0, 0, 0, 0, 0, 1001, 232, 233, 0, ! 1508: 0, 12, 219, 220, 221, 0, 13, 0, 222, -225, ! 1509: 0, 223, 15, 16, 0, 0, 0, 224, 0, 0, ! 1510: 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, ! 1511: 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, ! 1512: 226, 227, 228, 0, 0, 0, 229, 230, 0, 0, ! 1513: 0, 0, 0, 0, 231, 0, 517, 0, 709, 710, ! 1514: 6, 0, 8, 398, 217, 213, 23, 218, 10, 0, ! 1515: 0, 0, 0, 0, 0, 1000, 1009, 0, 232, 233, ! 1516: 0, 0, 12, 219, 220, 221, 0, 13, 0, 222, ! 1517: -225, 0, 223, 15, 16, 0, 0, 0, 224, 0, ! 1518: 0, 0, 518, 0, 0, 0, 0, 0, 0, 0, ! 1519: 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, ! 1520: 0, 226, 227, 228, 0, 0, 0, 229, 230, 0, ! 1521: 0, 0, 0, 0, 0, 231, 0, 517, 0, 709, ! 1522: 710, 6, 0, 8, 398, 217, 213, 181, 218, 10, ! 1523: 0, 0, 0, 0, 0, 0, 0, 0, -318, 232, ! 1524: 233, 0, 0, 12, 219, 220, 221, 0, 13, 0, ! 1525: 222, -225, 0, 223, 15, 16, 0, 0, 0, 224, ! 1526: 0, 0, 0, 518, 0, 0, 0, 0, 0, 0, ! 1527: 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, ! 1528: 0, 0, 226, 227, 228, 0, 0, 0, 229, 230, ! 1529: 0, 0, 0, 0, 0, 0, 231, 711, 413, 0, ! 1530: 215, 129, 6, 0, 8, 216, 217, 213, 181, 218, ! 1531: 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1532: 232, 233, 0, 0, 12, 219, 220, 221, 0, 13, ! 1533: 0, 222, -225, 0, 223, 15, 16, 0, 0, 0, ! 1534: 224, 0, 0, 0, -198, 0, 0, 0, 0, 0, ! 1535: 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, ! 1536: 0, 0, 0, 226, 227, 228, 0, 0, 0, 229, ! 1537: 230, 0, 0, 0, 0, 0, 0, 231, 0, 517, ! 1538: 0, 215, 129, 6, 0, 8, 398, 217, 213, 23, ! 1539: 218, 10, 0, 0, 0, 0, 0, 0, 0, 0, ! 1540: 0, 232, 233, 0, 0, 12, 219, 220, 221, 0, ! 1541: 13, 0, 222, -225, 0, 223, 15, 16, 0, 0, ! 1542: 0, 224, 0, 0, 0, 518, 0, 0, 0, 0, ! 1543: 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, ! 1544: 0, 0, 0, 0, 226, 227, 228, 0, 0, 0, ! 1545: 229, 230, 0, 0, 0, 0, 0, 0, 231, 0, ! 1546: 634, 0, 215, 129, 6, 0, 8, 398, 217, 213, ! 1547: 23, 218, 10, 0, 0, 0, 0, 0, 0, 0, ! 1548: 0, 0, 232, 233, 0, 0, 12, 219, 220, 221, ! 1549: 0, 13, 0, 222, -225, 0, 223, 15, 16, 0, ! 1550: 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, ! 1551: 0, -588, 0, 0, 0, 0, 0, 225, 0, 0, ! 1552: 0, 0, 0, 0, 0, 226, 227, 228, 0, 0, ! 1553: 0, 229, 230, 0, 0, 0, 0, 0, 0, 231, ! 1554: 0, 634, 0, 215, 129, 6, 0, 8, 398, 217, ! 1555: 213, 23, 218, 10, 0, 0, 0, 0, 0, 0, ! 1556: 0, 0, 0, 232, 233, 0, 0, 12, 219, 220, ! 1557: 221, 0, 13, 0, 222, -225, 0, 223, 15, 16, ! 1558: 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, ! 1559: 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, ! 1560: 0, 0, 0, 0, 0, 0, 226, 227, 228, 0, ! 1561: 0, 0, 229, 230, 0, 0, 0, 0, 0, 0, ! 1562: 231, 0, 634, 0, 215, 129, 6, 0, 8, 398, ! 1563: 217, 213, 23, 218, 10, 0, 0, 0, 0, 0, ! 1564: 0, 0, -588, 0, 232, 233, 0, 0, 12, 219, ! 1565: 220, 221, 0, 13, 0, 222, -225, 0, 223, 15, ! 1566: 16, 0, 0, 0, 224, 0, 0, 0, 0, 0, ! 1567: 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, ! 1568: 0, 0, 0, 0, 0, 0, 0, 226, 227, 228, ! 1569: 0, 0, 0, 229, 230, 0, 0, 0, 0, 0, ! 1570: 0, 231, 0, 630, 0, 215, 129, 6, 0, 8, ! 1571: 398, 217, 213, 23, 218, 10, 0, 0, 0, 0, ! 1572: 0, 0, -588, 0, 0, 232, 233, 0, 0, 12, ! 1573: 219, 220, 221, 0, 13, 0, 222, -225, 0, 223, ! 1574: 15, 16, 0, 0, 0, 224, 0, 0, 0, 0, ! 1575: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1576: 225, 0, 0, 0, 0, 0, 0, 0, 226, 227, ! 1577: 228, 0, 0, 0, 229, 230, 0, 0, 0, 0, ! 1578: 0, 0, 231, 0, 0, 0, 215, 129, 6, 0, ! 1579: 8, 398, 217, 213, 23, 218, 10, 0, 0, 0, ! 1580: 0, 0, 0, 0, 0, 0, 232, 233, 0, 0, ! 1581: 12, 219, 220, 221, 0, 13, 0, 222, 0, 0, ! 1582: 223, 15, 16, 0, 0, 0, 224, 3, 0, 4, ! 1583: 5, 6, 7, 8, 9, 0, 0, 0, 0, 10, ! 1584: 0, 225, 0, 0, 0, 0, 0, 0, 0, 226, ! 1585: 227, 228, 11, 12, 0, 229, 230, 0, 13, 0, ! 1586: 0, 0, 14, 231, 15, 16, 0, 17, 18, 19, ! 1587: 0, 0, 0, 0, 3, 23, 4, 5, 6, 7, ! 1588: 8, 9, 0, 0, 20, 0, 10, 232, 233, 663, ! 1589: 0, 0, 0, 0, 21, 0, 0, 0, 0, 11, ! 1590: 12, 0, 0, 0, 0, 13, 22, 0, 0, 14, ! 1591: 0, 15, 16, 0, 17, 18, 19, 0, 23, 24, ! 1592: 25, 4, 119, 0, 0, 0, 273, 0, 26, 495, ! 1593: 27, 20, 346, 0, 4, 129, 6, 7, 8, 9, ! 1594: 0, 21, 0, 0, 10, 0, 0, 0, 0, 0, ! 1595: 0, 0, 0, 22, 0, 0, 15, 0, 12, 17, ! 1596: 0, 19, 0, 13, -357, 23, 24, 25, 0, 15, ! 1597: 16, 0, 17, 0, 19, 26, 20, 27, 0, 0, ! 1598: 0, 0, 0, 347, 0, 0, 21, 0, 346, 20, ! 1599: 4, 129, 6, 7, 8, 9, 0, 0, 22, 21, ! 1600: 10, 0, 0, 4, 119, 0, 0, 0, 0, 0, ! 1601: 23, 22, 0, 0, 12, 0, 0, 0, 0, 13, ! 1602: -355, 0, 27, 23, 0, 15, 16, 0, 17, 0, ! 1603: 19, 0, 0, 576, -357, 27, 0, 0, 15, 347, ! 1604: 0, 17, 0, 19, 346, 20, 4, 129, 6, 7, ! 1605: 8, 9, 0, 0, 0, 21, 10, 0, 20, 0, ! 1606: 0, 0, 0, 0, 0, 0, 0, 22, 21, 0, ! 1607: 12, 0, 0, 0, 0, 13, -358, 0, 0, 23, ! 1608: 22, 15, 16, 0, 17, 0, 19, 0, 0, 0, ! 1609: -355, 27, 23, 0, 0, 347, 0, 0, 0, 0, ! 1610: 0, 20, 0, 0, 27, 0, 0, 0, 0, 0, ! 1611: 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, ! 1612: 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, ! 1613: 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, ! 1614: 0, 0, 0, 0, 0, 0, -358, 27, 719, 129, ! 1615: 6, 7, 8, 357, 217, 213, 0, 218, 10, 720, ! 1616: 0, 721, 722, 723, 724, 725, 726, 727, 728, 729, ! 1617: 730, 731, 12, 219, 220, 221, 0, 13, 0, 222, ! 1618: 0, 0, 223, 15, 16, 0, 0, 0, 224, 0, ! 1619: 0, 732, 305, 0, 0, 0, 0, 0, 0, 0, ! 1620: 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, ! 1621: 0, 226, 227, 228, 0, 0, 0, 229, 230, 0, ! 1622: 0, 0, 0, 0, 0, 231, 0, 733, 0, 0, ! 1623: 734, 0, 0, 735, 736, 737, 0, 738, 0, 0, ! 1624: 0, 0, 0, 0, 0, 0, 0, 739, 923, 232, ! 1625: 233, 719, 129, 6, 7, 8, 357, 217, 213, 0, ! 1626: 218, 10, 720, 0, 721, 722, 723, 724, 725, 726, ! 1627: 727, 728, 729, 730, 731, 12, 219, 220, 221, 0, ! 1628: 13, 0, 222, 0, 0, 223, 15, 16, 0, 0, ! 1629: 0, 224, 0, 0, 732, 305, 0, 0, 0, 0, ! 1630: 0, 0, 0, 0, 0, 0, 225, 4, 376, 0, ! 1631: 0, 0, 0, 0, 226, 227, 228, 0, 0, 0, ! 1632: 229, 230, 0, 0, 0, 0, 0, 0, 231, 0, ! 1633: 733, 0, 0, 734, 0, 0, 735, 736, 737, 0, ! 1634: 738, 0, 15, 0, 0, 17, 0, 19, 0, 0, ! 1635: 739, 0, 232, 233, 215, 129, 6, 0, 8, 398, ! 1636: 217, 213, 20, 218, 10, 0, 0, 0, 0, 0, ! 1637: 0, 0, 21, 0, 0, 0, 0, 0, 12, 219, ! 1638: 220, 221, 0, 13, 22, 222, 0, 0, 223, 15, ! 1639: 16, 0, 0, 0, 224, 0, 377, 0, 0, 0, ! 1640: 0, 0, 0, 0, 0, 0, 0, 0, 27, 225, ! 1641: 0, 0, 4, 145, 0, 0, 0, 226, 227, 228, ! 1642: 0, 0, 0, 229, 230, 0, 0, 0, 0, 0, ! 1643: 0, 231, 452, 0, 0, 215, 129, 6, 0, 8, ! 1644: 398, 217, 213, 23, 218, 10, 0, 15, 0, 0, ! 1645: 17, 0, 19, 0, 0, 232, 233, 0, 0, 12, ! 1646: 219, 220, 221, 0, 13, 0, 222, 147, 0, 223, ! 1647: 15, 16, 0, 0, 0, 224, 0, 148, 0, 840, ! 1648: 0, 0, 0, 0, 149, 0, 0, 0, 0, 150, ! 1649: 225, 0, 0, 4, 119, 0, 0, 0, 226, 227, ! 1650: 228, 23, 0, 0, 229, 230, 0, 0, 0, 0, ! 1651: 0, 0, 231, 27, 0, 0, 215, 129, 6, 0, ! 1652: 8, 398, 217, 213, 23, 218, 10, 0, 15, 0, ! 1653: 0, 17, 0, 19, 0, 0, 232, 233, 0, 0, ! 1654: 12, 219, 220, 221, 0, 13, 0, 222, 317, 0, ! 1655: 223, 15, 16, 0, 0, 0, 224, 0, 318, 0, ! 1656: 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, ! 1657: 320, 225, 0, 0, 4, 119, 0, 0, 0, 226, ! 1658: 227, 228, 23, 0, 0, 229, 230, 0, 0, 0, ! 1659: 0, 0, 0, 231, 27, 0, 0, 215, 129, 6, ! 1660: 0, 8, 398, 217, 213, 23, 218, 10, 0, 15, ! 1661: 0, 0, 17, 0, 19, 892, 0, 232, 233, 0, ! 1662: 0, 12, 219, 220, 221, 0, 13, 0, 222, 533, ! 1663: 0, 223, 15, 16, 0, 0, 0, 224, 0, 534, ! 1664: 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, ! 1665: 0, 320, 225, 0, 0, 4, 376, 0, 0, 0, ! 1666: 226, 227, 228, 23, 0, 0, 229, 230, 0, 0, ! 1667: 0, 0, 0, 0, 231, 27, 0, 0, 215, 129, ! 1668: 6, 0, 8, 216, 217, 213, 23, 218, 10, 0, ! 1669: 15, 0, 0, 17, 0, 19, 904, 0, 232, 233, ! 1670: 0, 0, 12, 219, 220, 221, 0, 13, 0, 222, ! 1671: 548, 0, 223, 15, 16, 0, 0, 0, 224, 0, ! 1672: 549, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1673: 0, 0, 22, 225, 0, 0, 0, 0, 0, 0, ! 1674: 0, 226, 227, 228, 377, 0, 0, 229, 230, 0, ! 1675: 0, 0, 0, 0, 0, 231, 27, 0, 0, 215, ! 1676: 129, 6, 0, 8, 398, 217, 213, 23, 218, 10, ! 1677: 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, ! 1678: 233, 0, 0, 12, 219, 220, 221, 0, 13, 0, ! 1679: 222, 0, 0, 223, 15, 16, 0, 0, 0, 224, ! 1680: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1681: 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, ! 1682: 0, 0, 226, 227, 228, 0, 0, 0, 229, 230, ! 1683: 0, 0, 0, 0, 0, 0, 231, 0, 0, 0, ! 1684: 215, 624, 6, 0, 8, 398, 217, 213, 23, 218, ! 1685: 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1686: 232, 233, 0, 0, 12, 219, 220, 221, 0, 13, ! 1687: 0, 222, 0, 0, 223, 15, 16, 0, 0, 0, ! 1688: 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1689: 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, ! 1690: 0, 0, 0, 226, 227, 228, 0, 0, 0, 229, ! 1691: 230, 0, 0, 0, 215, 129, 6, 231, 8, 398, ! 1692: 217, 213, 0, 218, 10, 0, 0, 0, 0, 23, ! 1693: 0, 0, 0, 0, 0, 0, 0, 0, 12, 219, ! 1694: 0, 232, 233, 13, 0, 222, 0, 0, 223, 15, ! 1695: 16, 0, 0, 0, 224, 0, 0, 0, 0, 0, ! 1696: 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, ! 1697: 0, 0, 0, 0, 0, 0, 0, 226, 227, 228, ! 1698: 0, 0, 0, 229, 230, 0, 0, 0, 215, 129, ! 1699: 6, 399, 8, 398, 217, 213, 0, 218, 10, 0, ! 1700: 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, ! 1701: 0, 0, 12, 219, 0, 232, 233, 13, 0, 222, ! 1702: 0, 0, 223, 15, 16, 0, 0, 0, 224, 0, ! 1703: 0, 4, 129, 6, 7, 8, 9, 0, 0, 203, ! 1704: 0, 10, 0, 225, 0, 0, 0, 0, 0, 0, ! 1705: 0, 226, 227, 228, 0, 12, 0, 229, 230, 0, ! 1706: 13, 0, 0, 0, 0, 403, 15, 16, 0, 600, ! 1707: 0, 19, 0, 0, 0, 0, 0, 23, 0, 0, ! 1708: 0, 0, 0, 0, 0, 0, 602, 0, 0, 232, ! 1709: 233, 0, 0, 0, 0, 0, 603, 0, 0, 0, ! 1710: 0, 0, 0, 261, 0, 0, 0, 0, 604, 263, ! 1711: 0, 4, 159, 6, 160, 8, 161, 0, 0, 204, ! 1712: 23, 10, 0, 0, 0, 0, 0, 0, 0, 0, ! 1713: 0, 0, 27, 0, 0, 12, 0, 0, 0, 0, ! 1714: 13, 0, 0, 0, 0, 0, 15, 16, 0, 17, ! 1715: 0, 19, 146, 0, 0, 0, 0, 0, 0, 0, ! 1716: 0, 0, 0, 0, 0, 0, 147, 4, 129, 6, ! 1717: 7, 8, 9, 0, 0, 203, 148, 10, 0, 0, ! 1718: 0, 0, 0, 149, 0, 0, 0, 0, 150, 0, ! 1719: 0, 12, 0, 0, 0, 0, 13, 0, 0, 0, ! 1720: 23, 0, 15, 16, 0, 17, 0, 19, 0, 0, ! 1721: 162, 0, 27, 0, 0, 0, 0, 0, 0, 0, ! 1722: 0, 0, 317, 4, 159, 6, 160, 8, 161, 0, ! 1723: 0, 0, 318, 10, 0, 0, 0, 0, 0, 319, ! 1724: 0, 0, 0, 0, 320, 0, 0, 12, 0, 0, ! 1725: 0, 0, 13, 0, 0, 204, 23, 0, 15, 16, ! 1726: 0, 17, 0, 19, 146, 0, 0, 0, 27, 0, ! 1727: 4, 159, 6, 160, 8, 161, 0, 0, 147, 0, ! 1728: 10, 0, 0, 0, 0, 0, 0, 0, 148, 0, ! 1729: 0, 0, 0, 0, 12, 149, 0, 0, 0, 13, ! 1730: 150, 0, 0, 0, 0, 15, 16, 0, 17, 0, ! 1731: 19, 146, 23, 0, 0, 0, 0, 0, 0, 0, ! 1732: 0, 0, 911, 0, 27, 147, 4, 129, 6, 7, ! 1733: 8, 9, 0, 0, 0, 148, 10, 0, 0, 0, ! 1734: 0, 0, 149, 0, 0, 0, 0, 150, 0, 0, ! 1735: 12, 0, 0, 0, 0, 13, 0, 0, 0, 23, ! 1736: 0, 15, 16, 0, 17, 0, 19, 0, 0, 0, ! 1737: 0, 27, 0, 0, 0, 0, 129, 6, 7, 8, ! 1738: 9, 20, 0, 203, 0, 10, 0, 0, 0, 0, ! 1739: 0, 21, 0, 0, 0, 0, 0, 71, 6, 12, ! 1740: 8, 268, 0, 22, 13, 0, 10, 0, 0, 0, ! 1741: 0, 16, 0, 257, 0, 23, 0, 0, 0, 0, ! 1742: 12, 0, 0, 0, 0, 13, 0, 27, 0, 0, ! 1743: 259, 0, 16, 0, 257, 0, 0, 258, 0, 0, ! 1744: 260, 0, 0, 0, 0, 0, 0, 261, 0, 0, ! 1745: 0, 259, 262, 263, 0, 0, 0, 0, 0, 0, ! 1746: 0, 260, 0, 204, 23, 0, 0, 0, 261, 0, ! 1747: 0, 0, 0, 262, 263, 0, 0, 0, 0, 0, ! 1748: 0, 421, 422, 423, 0, 23, 424, 425, 426, 427, ! 1749: 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, ! 1750: 438, 439, 440, 421, 422, 423, 0, 0, 424, 425, ! 1751: 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, ! 1752: 436, 437, 438, 439, 440, 0, 0, 0, 0, 0, ! 1753: 0, 0, 0, -139, 421, 422, 423, 0, 998, 424, ! 1754: 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, ! 1755: 435, 436, 437, 438, 439, 440, 781, 782, 421, 422, ! 1756: 423, 1121, 0, 424, 425, 426, 427, 428, 429, 430, ! 1757: 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, ! 1758: 421, 422, 423, 0, 0, 424, 425, 426, 427, 428, ! 1759: 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, ! 1760: 439, 440, 423, 0, 0, 424, 425, 426, 427, 428, ! 1761: 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, ! 1762: 439, 440, 426, 427, 428, 429, 430, 431, 432, 433, ! 1763: 434, 435, 436, 437, 438, 439, 440 ! 1764: }; ! 1765: ! 1766: static const short yycheck[] = { 1, ! 1767: 2, 263, 10, 67, 39, 66, 15, 139, 140, 17, ! 1768: 15, 1, 2, 15, 44, 106, 15, 22, 146, 352, ! 1769: 67, 19, 250, 272, 272, 299, 744, 40, 30, 295, ! 1770: 558, 189, 225, 38, 587, 228, 44, 39, 751, 232, ! 1771: 753, 234, 150, 932, 933, 40, 224, 48, 140, 242, ! 1772: 111, 702, 509, 218, 219, 60, 138, 43, 60, 325, ! 1773: 225, 38, 39, 228, 60, 67, 48, 232, 330, 234, ! 1774: 33, 980, 3, 52, 26, 10, 43, 242, 383, 31, ! 1775: 83, 386, 48, 540, 3, 4, 10, 90, 10, 8, ! 1776: 33, 48, 3, 4, 107, 10, 48, 63, 50, 102, ! 1777: 101, 3, 4, 108, 112, 80, 108, 38, 3, 4, ! 1778: 5, 116, 117, 118, 258, 389, 102, 125, 262, 38, ! 1779: 122, 103, 41, 102, 43, 130, 128, 38, 52, 131, ! 1780: 41, 10, 3, 4, 101, 3, 4, 386, 128, 58, ! 1781: 103, 146, 3, 4, 101, 150, 134, 48, 43, 68, ! 1782: 102, 164, 310, 130, 131, 246, 75, 170, 249, 157, ! 1783: 103, 80, 81, 1072, 152, 693, 101, 231, 173, 164, ! 1784: 302, 303, 304, 92, 48, 170, 47, 101, 166, 101, ! 1785: 733, 92, 735, 51, 231, 104, 101, 315, 316, 191, ! 1786: 92, 196, 194, 104, 199, 0, 201, 92, 194, 201, ! 1787: 95, 206, 103, 211, 206, 201, 196, 3, 4, 927, ! 1788: 302, 303, 320, 931, 202, 3, 4, 5, 869, 301, ! 1789: 48, 92, 101, 485, 92, 3, 4, 1, 102, 231, ! 1790: 408, 92, 498, 461, 247, 80, 47, 8, 47, 244, ! 1791: 697, 52, 38, 52, 249, 41, 48, 249, 1137, 1138, ! 1792: 32, 48, 3, 266, 58, 43, 269, 3, 4, 5, ! 1793: 262, 63, 48, 41, 68, 3, 4, 272, 6, 48, ! 1794: 272, 266, 62, 47, 102, 21, 538, 63, 3, 4, ! 1795: 3, 4, 284, 415, 550, 3, 4, 48, 48, 297, ! 1796: 48, 102, 297, 102, 284, 33, 92, 43, 80, 287, ! 1797: 3, 4, 80, 6, 92, 102, 103, 95, 104, 373, ! 1798: 315, 316, 83, 343, 92, 320, 41, 364, 775, 90, ! 1799: 333, 326, 101, 41, 1, 2, 331, 329, 51, 48, ! 1800: 33, 475, 476, 329, 62, 399, 102, 103, 333, 403, ! 1801: 868, 102, 102, 101, 349, 22, 92, 360, 350, 95, ! 1802: 352, 339, 399, 30, 92, 11, 403, 103, 405, 406, ! 1803: 48, 38, 39, 52, 48, 360, 354, 92, 373, 92, ! 1804: 1, 373, 349, 350, 92, 1088, 423, 382, 383, 102, ! 1805: 103, 41, 52, 102, 386, 48, 394, 451, 41, 92, ! 1806: 522, 379, 48, 24, 48, 26, 52, 399, 3, 4, ! 1807: 31, 403, 449, 531, 532, 452, 24, 3, 4, 1127, ! 1808: 102, 103, 101, 48, 102, 48, 47, 48, 102, 50, ! 1809: 80, 52, 102, 103, 48, 41, 47, 80, 81, 47, ! 1810: 522, 101, 50, 38, 52, 91, 48, 48, 101, 116, ! 1811: 117, 118, 691, 691, 24, 43, 451, 101, 101, 451, ! 1812: 458, 128, 83, 130, 131, 460, 41, 601, 566, 90, ! 1813: 604, 491, 48, 571, 80, 81, 101, 48, 101, 146, ! 1814: 663, 102, 52, 150, 487, 7, 8, 101, 39, 484, ! 1815: 48, 13, 484, 491, 102, 101, 47, 92, 484, 101, ! 1816: 101, 493, 487, 34, 48, 80, 173, 41, 663, 41, ! 1817: 32, 41, 43, 41, 43, 48, 52, 39, 516, 41, ! 1818: 518, 3, 4, 52, 191, 101, 62, 3, 4, 196, ! 1819: 101, 41, 199, 47, 790, 527, 531, 532, 558, 41, ! 1820: 591, 43, 798, 101, 48, 537, 80, 81, 80, 81, ! 1821: 80, 537, 80, 81, 1, 48, 38, 101, 80, 41, ! 1822: 3, 43, 44, 827, 828, 563, 9, 101, 101, 101, ! 1823: 80, 81, 570, 101, 566, 51, 58, 244, 80, 571, ! 1824: 566, 48, 48, 48, 48, 571, 68, 851, 3, 567, ! 1825: 41, 101, 587, 75, 572, 262, 103, 101, 80, 81, ! 1826: 47, 48, 600, 595, 10, 597, 601, 587, 101, 595, ! 1827: 92, 597, 604, 877, 878, 47, 92, 284, 616, 34, ! 1828: 1163, 41, 104, 38, 41, 26, 102, 103, 43, 80, ! 1829: 297, 609, 106, 50, 101, 101, 101, 101, 41, 52, ! 1830: 963, 759, 760, 6, 7, 8, 47, 41, 315, 316, ! 1831: 13, 52, 41, 320, 41, 773, 774, 194, 661, 326, ! 1832: 80, 660, 41, 80, 331, 660, 41, 41, 660, 32, ! 1833: 853, 660, 41, 693, 83, 47, 39, 80, 41, 47, ! 1834: 52, 90, 349, 350, 52, 352, 80, 81, 725, 823, ! 1835: 824, 80, 729, 80, 81, 8, 691, 3, 853, 691, ! 1836: 737, 80, 81, 967, 47, 80, 80, 705, 43, 52, ! 1837: 705, 80, 81, 103, 83, 382, 383, 80, 743, 386, ! 1838: 96, 90, 26, 24, 102, 26, 52, 861, 862, 68, ! 1839: 69, 70, 730, 102, 998, 733, 106, 83, 733, 80, ! 1840: 735, 101, 43, 47, 90, 50, 47, 742, 52, 50, ! 1841: 103, 743, 744, 733, 808, 735, 102, 777, 750, 751, ! 1842: 1008, 753, 48, 300, 759, 760, 847, 848, 52, 53, ! 1843: 102, 103, 1028, 80, 1022, 742, 743, 1025, 773, 774, ! 1844: 81, 41, 83, 1047, 102, 103, 102, 103, 1052, 90, ! 1845: 102, 103, 329, 460, 845, 80, 791, 3, 4, 80, ! 1846: 1056, 101, 103, 102, 103, 35, 1070, 10, 786, 801, ! 1847: 218, 219, 101, 808, 3, 106, 808, 795, 1082, 26, ! 1848: 80, 81, 47, 83, 791, 103, 106, 101, 823, 824, ! 1849: 90, 101, 38, 106, 3, 41, 48, 43, 44, 80, ! 1850: 31, 50, 840, 821, 1108, 101, 883, 48, 868, 886, ! 1851: 887, 102, 58, 848, 101, 101, 848, 1121, 101, 51, ! 1852: 397, 101, 68, 101, 531, 532, 32, 1119, 1120, 75, ! 1853: 106, 106, 106, 102, 80, 102, 1140, 6, 7, 8, ! 1854: 878, 102, 102, 101, 13, 101, 92, 66, 67, 68, ! 1855: 69, 70, 106, 885, 886, 932, 933, 48, 104, 566, ! 1856: 52, 50, 52, 32, 571, 4, 5, 6, 7, 8, ! 1857: 39, 448, 122, 80, 13, 50, 50, 103, 101, 101, ! 1858: 587, 101, 52, 1, 922, 101, 921, 101, 27, 466, ! 1859: 50, 909, 80, 32, 601, 927, 914, 604, 106, 931, ! 1860: 39, 921, 934, 106, 101, 106, 24, 92, 26, 52, ! 1861: 52, 52, 1, 31, 3, 4, 5, 6, 7, 8, ! 1862: 52, 80, 80, 41, 13, 80, 52, 1018, 1005, 47, ! 1863: 48, 963, 50, 8, 52, 512, 102, 1014, 27, 7, ! 1864: 8, 959, 47, 32, 194, 13, 102, 47, 102, 38, ! 1865: 39, 15, 41, 92, 43, 101, 1, 2, 106, 50, ! 1866: 537, 101, 80, 81, 32, 83, 101, 101, 80, 58, ! 1867: 101, 39, 90, 101, 7, 8, 101, 22, 101, 68, ! 1868: 13, 103, 80, 1015, 102, 30, 102, 102, 80, 102, ! 1869: 50, 80, 102, 102, 39, 245, 102, 50, 705, 32, ! 1870: 102, 1033, 52, 92, 93, 3, 39, 48, 41, 52, ! 1871: 16, 1, 2, 102, 101, 104, 101, 101, 595, 102, ! 1872: 597, 103, 6, 7, 8, 102, 733, 101, 735, 13, ! 1873: 1192, 1193, 1070, 1051, 47, 742, 743, 102, 80, 102, ! 1874: 30, 1059, 103, 102, 102, 81, 81, 80, 32, 299, ! 1875: 300, 1213, 759, 760, 101, 39, 1088, 52, 50, 1091, ! 1876: 1137, 1138, 101, 80, 10, 102, 773, 774, 102, 87, ! 1877: 60, 116, 117, 118, 1151, 41, 102, 101, 106, 329, ! 1878: 80, 658, 101, 128, 791, 106, 48, 80, 3, 1183, ! 1879: 101, 1123, 669, 101, 801, 1127, 1128, 347, 102, 1176, ! 1880: 677, 146, 101, 1, 2, 150, 72, 73, 102, 10, ! 1881: 76, 77, 78, 79, 80, 81, 823, 824, 1150, 102, ! 1882: 1, 2, 101, 1155, 10, 102, 0, 2, 1163, 0, ! 1883: 707, 127, 30, 286, 691, 138, 491, 128, 128, 389, ! 1884: 128, 22, 705, 1163, 744, 493, 191, 397, 1183, 30, ! 1885: 750, 1183, 776, 1072, 199, 886, 1194, 38, 39, 8, ! 1886: 742, 269, 60, 1195, 1196, 326, 840, 164, 41, 1115, ! 1887: 420, 421, 422, 618, 424, 425, 426, 427, 428, 429, ! 1888: 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, ! 1889: 440, 30, 41, 30, 777, 756, 934, 447, 448, 72, ! 1890: 73, 191, 801, 76, 194, 78, 350, 80, 81, 58, ! 1891: 394, 201, 616, 320, 921, 928, 466, 3, 4, 68, ! 1892: 6, 7, 8, 1179, 41, 206, 75, 934, 808, 1177, ! 1893: 128, 80, 81, 921, -1, 116, 117, 118, -1, 284, ! 1894: -1, 58, -1, 493, -1, -1, 32, 128, -1, 130, ! 1895: 131, 68, -1, -1, -1, -1, 963, -1, 75, -1, ! 1896: 46, 47, 512, 80, 81, 146, -1, -1, 518, 150, ! 1897: 315, 316, 262, 850, -1, 320, -1, -1, -1, -1, ! 1898: -1, 858, 272, -1, -1, 885, 331, 537, -1, -1, ! 1899: -1, -1, 173, 191, 284, -1, 194, -1, 875, -1, ! 1900: -1, -1, -1, 201, -1, -1, 92, 352, -1, -1, ! 1901: 191, 97, 98, 99, 564, 565, -1, -1, 199, -1, ! 1902: 3, 4, 5, 6, 7, 8, -1, 927, 11, -1, ! 1903: 13, 931, -1, -1, -1, -1, -1, 382, 383, 329, ! 1904: -1, 386, -1, 224, 27, 595, -1, 597, -1, 32, ! 1905: -1, -1, -1, -1, -1, 38, 39, -1, 41, -1, ! 1906: 43, 44, 352, 244, 262, 615, -1, 4, 5, 250, ! 1907: 7, 8, -1, -1, 272, 58, 13, 41, -1, 629, ! 1908: 44, -1, -1, -1, -1, 68, 284, -1, -1, -1, ! 1909: 27, -1, 75, -1, 58, 32, 386, 80, 81, -1, ! 1910: -1, -1, 39, 284, 68, -1, -1, -1, 658, 92, ! 1911: -1, 75, -1, -1, -1, 1015, 80, 81, -1, 669, ! 1912: -1, 104, -1, -1, 20, 21, -1, 677, -1, -1, ! 1913: -1, 329, -1, 1033, 315, 316, -1, 4, 5, 320, ! 1914: 7, 8, 3, 4, 1021, 326, 13, 1024, -1, -1, ! 1915: 331, -1, -1, -1, 352, 92, 1163, 707, -1, -1, ! 1916: 27, 711, 58, -1, -1, 32, -1, -1, 349, 350, ! 1917: -1, 352, 39, -1, -1, -1, -1, 38, -1, 75, ! 1918: 41, -1, 43, 44, -1, -1, 531, 532, 386, -1, ! 1919: -1, 1091, -1, -1, 484, -1, -1, 58, -1, -1, ! 1920: -1, 382, 383, -1, -1, 386, -1, 68, -1, -1, ! 1921: -1, -1, -1, -1, 75, -1, -1, -1, -1, 80, ! 1922: -1, 566, -1, 1123, -1, 92, 571, 1127, 1128, -1, ! 1923: -1, 92, 1, 783, 3, 4, 5, 6, 7, 8, ! 1924: -1, 102, -1, 104, 13, -1, -1, 537, -1, -1, ! 1925: 1150, 147, 148, -1, -1, 1155, 601, -1, 27, 604, ! 1926: -1, -1, -1, 32, 33, -1, -1, -1, -1, 38, ! 1927: 39, -1, 41, -1, 43, -1, 566, 827, 828, 460, ! 1928: 461, 571, -1, 52, -1, -1, 484, -1, -1, 58, ! 1929: 840, -1, 842, -1, -1, 1195, 1196, 193, -1, 68, ! 1930: 850, 851, -1, -1, 200, 595, -1, 597, 858, -1, ! 1931: -1, 80, -1, -1, 604, -1, -1, 4, 5, -1, ! 1932: 7, 8, -1, 92, -1, 875, 13, 877, 878, -1, ! 1933: 1, -1, -1, 102, 103, 104, -1, -1, -1, 537, ! 1934: 27, -1, -1, -1, -1, 32, -1, -1, -1, -1, ! 1935: 531, 532, 39, 24, -1, 26, -1, -1, -1, 46, ! 1936: 31, 257, -1, 259, 260, -1, -1, -1, 566, -1, ! 1937: 41, -1, -1, 571, -1, -1, 47, 48, -1, 50, ! 1938: -1, 52, -1, -1, -1, 566, -1, -1, -1, -1, ! 1939: 571, -1, -1, 80, -1, -1, -1, 595, 743, 597, ! 1940: -1, 691, -1, 3, 4, 92, 604, 957, 958, 80, ! 1941: 81, -1, 83, -1, 759, 760, -1, 967, -1, 90, ! 1942: 601, 317, 318, 604, -1, -1, -1, -1, 773, 774, ! 1943: -1, 102, 328, -1, -1, -1, -1, -1, 38, -1, ! 1944: -1, 41, -1, 43, 44, -1, 46, -1, 998, -1, ! 1945: 1000, -1, 52, -1, -1, -1, 801, -1, 58, -1, ! 1946: -1, 4, 5, 6, 7, 8, -1, -1, 68, -1, ! 1947: 13, 1021, -1, -1, 1024, 75, -1, -1, 823, 824, ! 1948: 80, -1, -1, -1, 27, -1, -1, -1, 384, 32, ! 1949: -1, 672, 92, 691, -1, -1, 39, 1047, -1, -1, ! 1950: -1, -1, 1052, 1053, 104, 3, 4, 5, 6, 7, ! 1951: 8, 801, -1, 3, 4, 13, 6, 7, 8, -1, ! 1952: 1070, -1, -1, -1, 4, 5, 6, 7, 8, 27, ! 1953: -1, 11, 1082, 13, 32, -1, -1, -1, -1, -1, ! 1954: 38, 39, 32, 41, -1, 43, 44, 27, 46, 92, ! 1955: -1, -1, 32, -1, 52, -1, 46, 47, 1108, 39, ! 1956: 58, 742, 743, 64, 65, 66, 67, 68, 69, 70, ! 1957: 68, 1121, -1, -1, -1, -1, -1, 75, 759, 760, ! 1958: -1, -1, 80, -1, -1, -1, -1, 483, -1, 934, ! 1959: 1140, -1, 773, 774, 92, -1, -1, -1, -1, -1, ! 1960: -1, -1, 92, 801, -1, -1, 104, 97, 98, 99, ! 1961: 791, 91, 92, -1, -1, -1, -1, -1, 963, -1, ! 1962: 801, -1, 0, 1, -1, 3, 4, 5, 6, 7, ! 1963: 8, -1, -1, -1, -1, 13, -1, 533, 534, -1, ! 1964: 536, -1, 823, 824, 934, -1, -1, -1, 26, 27, ! 1965: -1, -1, 548, 549, 32, -1, 3, 4, 36, -1, ! 1966: 38, 39, -1, 41, 42, 43, -1, 563, -1, -1, ! 1967: -1, -1, -1, 963, 570, -1, -1, -1, -1, -1, ! 1968: 58, -1, -1, 579, 580, 581, -1, -1, -1, -1, ! 1969: 68, 38, -1, -1, 41, -1, 43, 44, 594, 46, ! 1970: 596, -1, 80, 599, 600, 52, 602, 603, -1, -1, ! 1971: -1, 58, -1, -1, 92, 93, 94, -1, -1, -1, ! 1972: -1, 68, -1, -1, 102, -1, 104, -1, 75, -1, ! 1973: -1, -1, -1, 80, -1, -1, 934, -1, -1, -1, ! 1974: -1, -1, -1, -1, -1, 92, -1, -1, -1, -1, ! 1975: -1, -1, -1, 934, -1, -1, -1, 104, -1, -1, ! 1976: -1, -1, -1, -1, -1, 963, 55, 56, 57, 58, ! 1977: 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, ! 1978: 69, 70, 963, -1, 680, 681, -1, -1, 684, -1, ! 1979: -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, ! 1980: 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, ! 1981: 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, ! 1982: 24, 25, 26, 27, 28, 29, 30, -1, 32, -1, ! 1983: 34, 35, -1, 37, 38, 39, -1, -1, -1, 43, ! 1984: -1, -1, 46, 47, 61, 62, 63, 64, 65, 66, ! 1985: 67, 68, 69, 70, 58, -1, -1, -1, -1, -1, ! 1986: -1, -1, 66, 67, 68, -1, -1, -1, 72, 73, ! 1987: -1, -1, -1, 769, 770, 771, 80, -1, 82, -1, ! 1988: 84, 85, 86, -1, 88, 89, 90, -1, 92, -1, ! 1989: -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, ! 1990: 104, 105, -1, -1, 1, -1, 3, 4, 5, 6, ! 1991: 7, 8, 9, 10, -1, 12, 13, 14, -1, 16, ! 1992: 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, ! 1993: 27, 28, 29, 30, -1, 32, -1, 34, 35, -1, ! 1994: 37, 38, 39, -1, -1, -1, 43, -1, -1, 46, ! 1995: 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 1996: -1, 58, 3, 4, -1, -1, -1, -1, 864, 66, ! 1997: 67, 68, -1, -1, -1, 72, 73, -1, -1, -1, ! 1998: -1, -1, -1, 80, -1, 82, -1, -1, 85, -1, ! 1999: -1, 88, 89, 90, -1, 92, -1, 38, -1, -1, ! 2000: 41, -1, 43, 44, -1, 102, 103, 104, 105, -1, ! 2001: -1, -1, -1, -1, -1, -1, -1, 58, -1, -1, ! 2002: -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, ! 2003: -1, -1, -1, -1, 75, -1, -1, -1, -1, 80, ! 2004: -1, -1, -1, 939, 940, 941, -1, -1, -1, -1, ! 2005: -1, 92, -1, -1, -1, -1, -1, -1, 954, -1, ! 2006: -1, 102, -1, 104, -1, -1, 962, -1, -1, -1, ! 2007: -1, -1, 968, 969, 970, 971, 972, 973, 1, -1, ! 2008: 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, ! 2009: 13, 14, -1, 16, 17, 18, 19, 20, 21, 22, ! 2010: 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, ! 2011: -1, 34, 35, -1, 37, 38, 39, -1, -1, -1, ! 2012: 43, -1, -1, 46, 47, -1, -1, -1, -1, -1, ! 2013: -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, ! 2014: -1, -1, -1, 66, 67, 68, -1, -1, -1, 72, ! 2015: 73, -1, -1, -1, -1, -1, -1, 80, -1, 82, ! 2016: -1, -1, 85, -1, -1, 88, 89, 90, -1, 92, ! 2017: -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, ! 2018: 103, 104, 105, 1, -1, 3, 4, 5, 6, 7, ! 2019: 8, 9, 10, -1, 12, 13, 14, -1, 16, 17, ! 2020: 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, ! 2021: 28, 29, 30, -1, 32, -1, 34, 35, -1, 37, ! 2022: 38, 39, -1, -1, -1, 43, -1, -1, 46, 47, ! 2023: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 2024: 58, -1, -1, -1, -1, -1, -1, -1, 66, 67, ! 2025: 68, -1, -1, -1, 72, 73, -1, -1, -1, -1, ! 2026: -1, -1, 80, -1, 82, -1, -1, 85, -1, -1, ! 2027: 88, 89, 90, -1, 92, -1, -1, -1, -1, -1, ! 2028: -1, -1, -1, -1, 102, 103, 104, 105, 1, -1, ! 2029: 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, ! 2030: 13, 14, -1, 16, 17, 18, 19, 20, 21, 22, ! 2031: 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, ! 2032: -1, 34, 35, -1, 37, 38, 39, -1, -1, -1, ! 2033: 43, -1, -1, 46, 47, -1, -1, -1, -1, -1, ! 2034: -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, ! 2035: -1, -1, -1, 66, 67, 68, -1, -1, -1, 72, ! 2036: 73, -1, -1, -1, -1, -1, -1, 80, -1, 82, ! 2037: -1, -1, 85, -1, -1, 88, 89, 90, -1, 92, ! 2038: -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, ! 2039: 103, 104, 105, 1, -1, 3, 4, 5, 6, 7, ! 2040: 8, 9, 10, -1, 12, 13, 14, -1, 16, 17, ! 2041: 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, ! 2042: 28, 29, 30, -1, 32, -1, 34, 35, -1, 37, ! 2043: 38, 39, -1, -1, -1, 43, -1, -1, 46, 47, ! 2044: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 2045: 58, -1, -1, -1, -1, -1, -1, -1, 66, 67, ! 2046: 68, -1, -1, -1, 72, 73, -1, -1, -1, -1, ! 2047: -1, -1, 80, -1, 82, -1, -1, 85, -1, -1, ! 2048: 88, 89, 90, -1, 92, -1, -1, -1, -1, -1, ! 2049: -1, -1, -1, -1, 102, 103, 104, 105, 1, -1, ! 2050: 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, ! 2051: 13, 14, -1, 16, 17, 18, 19, 20, 21, 22, ! 2052: 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, ! 2053: -1, 34, 35, -1, 37, 38, 39, -1, -1, -1, ! 2054: 43, -1, -1, 46, 47, -1, -1, -1, -1, -1, ! 2055: -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, ! 2056: -1, -1, -1, 66, 67, 68, -1, -1, -1, 72, ! 2057: 73, -1, -1, -1, -1, -1, -1, 80, -1, 82, ! 2058: -1, -1, 85, -1, -1, 88, 89, 90, -1, 92, ! 2059: -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, ! 2060: 103, 104, 105, 1, -1, 3, 4, 5, 6, 7, ! 2061: 8, 9, 10, -1, 12, 13, 14, -1, 16, 17, ! 2062: 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, ! 2063: 28, 29, 30, -1, 32, -1, 34, 35, -1, 37, ! 2064: 38, 39, -1, -1, -1, 43, -1, -1, 46, 47, ! 2065: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 2066: 58, -1, -1, -1, -1, -1, -1, -1, 66, 67, ! 2067: 68, -1, -1, -1, 72, 73, -1, -1, -1, -1, ! 2068: -1, -1, 80, -1, 82, -1, -1, 85, -1, -1, ! 2069: 88, 89, 90, -1, 92, -1, -1, -1, -1, -1, ! 2070: -1, -1, -1, -1, 102, -1, 104, 105, 1, -1, ! 2071: 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, ! 2072: 13, 14, -1, 16, 17, 18, 19, 20, 21, 22, ! 2073: 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, ! 2074: -1, 34, 35, -1, 37, 38, 39, -1, -1, -1, ! 2075: 43, -1, -1, 46, 47, -1, -1, -1, -1, -1, ! 2076: -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, ! 2077: -1, -1, -1, 66, 67, 68, -1, -1, -1, 72, ! 2078: 73, -1, -1, -1, -1, -1, -1, 80, -1, 82, ! 2079: -1, -1, 85, -1, -1, 88, 89, 90, 1, 92, ! 2080: -1, 4, 5, -1, 7, 8, -1, -1, -1, 102, ! 2081: 13, 104, 105, 60, 61, 62, 63, 64, 65, 66, ! 2082: 67, 68, 69, 70, 27, -1, -1, -1, -1, 32, ! 2083: -1, 34, 35, -1, -1, -1, 39, 40, 41, -1, ! 2084: -1, -1, -1, -1, -1, 48, 49, 50, 51, -1, ! 2085: -1, 54, 55, 56, 57, 58, 59, 60, 61, 62, ! 2086: 63, 64, 65, 66, 67, 68, 69, 70, -1, 72, ! 2087: 73, -1, -1, 76, 77, -1, -1, -1, 81, -1, ! 2088: -1, -1, -1, -1, -1, -1, -1, -1, 1, 92, ! 2089: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ! 2090: 13, 104, 105, -1, -1, -1, -1, -1, -1, -1, ! 2091: -1, -1, -1, -1, 27, 28, 29, 30, -1, 32, ! 2092: -1, 34, 35, -1, 37, 38, 39, -1, -1, -1, ! 2093: 43, 49, 50, 51, -1, -1, 54, 55, 56, 57, ! 2094: 58, 59, 60, 61, 62, 58, 64, 65, 66, 67, ! 2095: 68, 69, 70, 66, 67, 68, -1, -1, -1, 72, ! 2096: 73, -1, -1, -1, -1, -1, -1, 80, -1, -1, ! 2097: -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, ! 2098: -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, ! 2099: -1, 104, 105, 1, -1, 3, 4, 5, 6, 7, ! 2100: 8, 9, 10, 11, 12, 13, 58, 59, 60, 61, ! 2101: 62, 63, 64, 65, 66, 67, 68, 69, 70, 27, ! 2102: 28, 29, 30, -1, 32, -1, 34, 35, -1, 37, ! 2103: 38, 39, -1, -1, -1, 43, 57, 58, 59, 60, ! 2104: 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, ! 2105: 58, -1, -1, -1, -1, -1, -1, -1, 66, 67, ! 2106: 68, -1, -1, -1, 72, 73, -1, -1, -1, -1, ! 2107: -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, ! 2108: -1, -1, -1, 91, 92, -1, -1, -1, -1, -1, ! 2109: -1, -1, -1, 101, -1, -1, 104, 105, 1, -1, ! 2110: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ! 2111: 13, 59, 60, 61, 62, 63, 64, 65, 66, 67, ! 2112: 68, 69, 70, -1, 27, 28, 29, 30, -1, 32, ! 2113: -1, 34, 35, -1, 37, 38, 39, -1, -1, -1, ! 2114: 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 2115: -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, ! 2116: -1, -1, -1, 66, 67, 68, -1, -1, -1, 72, ! 2117: 73, -1, -1, -1, -1, -1, -1, 80, -1, -1, ! 2118: -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, ! 2119: -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, ! 2120: -1, 104, 105, 1, -1, 3, 4, 5, 6, 7, ! 2121: 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, ! 2122: -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, ! 2123: 28, 29, 30, -1, 32, -1, 34, 35, -1, 37, ! 2124: 38, 39, -1, -1, -1, 43, -1, -1, -1, -1, ! 2125: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 2126: 58, -1, -1, -1, -1, -1, -1, -1, 66, 67, ! 2127: 68, -1, -1, -1, 72, 73, -1, -1, -1, -1, ! 2128: -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, ! 2129: -1, -1, -1, 91, 92, -1, -1, -1, -1, -1, ! 2130: -1, -1, -1, 101, -1, -1, 104, 105, 1, -1, ! 2131: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ! 2132: 13, -1, -1, -1, -1, -1, -1, -1, -1, 3, ! 2133: 4, -1, -1, -1, 27, 28, 29, 30, -1, 32, ! 2134: -1, 34, 35, -1, 37, 38, 39, -1, -1, -1, ! 2135: 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 2136: -1, -1, -1, -1, 38, 58, -1, 41, -1, 43, ! 2137: -1, -1, -1, 66, 67, 68, -1, -1, -1, 72, ! 2138: 73, -1, -1, -1, 58, -1, -1, 80, 3, 4, ! 2139: -1, -1, -1, 8, 68, -1, -1, -1, 91, 92, ! 2140: -1, 75, -1, -1, -1, -1, 80, 81, 101, -1, ! 2141: -1, 104, 105, 1, -1, 3, 4, 5, 92, 7, ! 2142: 8, 9, 10, 38, 12, 13, 41, -1, 43, -1, ! 2143: 104, -1, -1, -1, -1, -1, -1, -1, -1, 27, ! 2144: 28, 29, 30, 58, 32, -1, 34, 35, -1, 37, ! 2145: 38, 39, -1, 68, -1, 43, -1, -1, -1, 47, ! 2146: 75, -1, -1, -1, -1, 80, -1, -1, -1, -1, ! 2147: 58, -1, -1, -1, -1, -1, -1, 92, 66, 67, ! 2148: 68, -1, -1, -1, 72, 73, -1, -1, -1, 104, ! 2149: -1, -1, 80, 81, 1, -1, 3, 4, 5, -1, ! 2150: 7, 8, 9, 10, 92, 12, 13, -1, -1, -1, ! 2151: -1, -1, -1, 20, -1, 103, 104, 105, -1, -1, ! 2152: 27, 28, 29, 30, -1, 32, -1, 34, 35, -1, ! 2153: 37, 38, 39, -1, -1, -1, 43, -1, -1, -1, ! 2154: 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 2155: -1, 58, -1, -1, -1, -1, -1, -1, -1, 66, ! 2156: 67, 68, -1, -1, -1, 72, 73, -1, -1, -1, ! 2157: -1, -1, -1, 80, -1, 1, -1, 3, 4, 5, ! 2158: 6, 7, 8, 9, 10, 92, 12, 13, -1, -1, ! 2159: -1, -1, -1, -1, -1, -1, 103, 104, 105, -1, ! 2160: -1, 27, 28, 29, 30, -1, 32, -1, 34, 35, ! 2161: -1, 37, 38, 39, -1, -1, -1, 43, -1, -1, ! 2162: -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, ! 2163: -1, -1, 58, -1, -1, -1, -1, -1, -1, -1, ! 2164: 66, 67, 68, -1, -1, -1, 72, 73, -1, -1, ! 2165: -1, -1, -1, -1, 80, -1, 1, -1, 3, 4, ! 2166: 5, -1, 7, 8, 9, 10, 92, 12, 13, -1, ! 2167: -1, -1, -1, -1, -1, 20, 102, -1, 104, 105, ! 2168: -1, -1, 27, 28, 29, 30, -1, 32, -1, 34, ! 2169: 35, -1, 37, 38, 39, -1, -1, -1, 43, -1, ! 2170: -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, ! 2171: -1, -1, -1, 58, -1, -1, -1, -1, -1, -1, ! 2172: -1, 66, 67, 68, -1, -1, -1, 72, 73, -1, ! 2173: -1, -1, -1, -1, -1, 80, -1, 1, -1, 3, ! 2174: 4, 5, -1, 7, 8, 9, 10, 92, 12, 13, ! 2175: -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, ! 2176: 105, -1, -1, 27, 28, 29, 30, -1, 32, -1, ! 2177: 34, 35, -1, 37, 38, 39, -1, -1, -1, 43, ! 2178: -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, ! 2179: -1, -1, -1, -1, 58, -1, -1, -1, -1, -1, ! 2180: -1, -1, 66, 67, 68, -1, -1, -1, 72, 73, ! 2181: -1, -1, -1, -1, -1, -1, 80, 81, 1, -1, ! 2182: 3, 4, 5, -1, 7, 8, 9, 10, 92, 12, ! 2183: 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 2184: 104, 105, -1, -1, 27, 28, 29, 30, -1, 32, ! 2185: -1, 34, 35, -1, 37, 38, 39, -1, -1, -1, ! 2186: 43, -1, -1, -1, 47, -1, -1, -1, -1, -1, ! 2187: -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, ! 2188: -1, -1, -1, 66, 67, 68, -1, -1, -1, 72, ! 2189: 73, -1, -1, -1, -1, -1, -1, 80, -1, 1, ! 2190: -1, 3, 4, 5, -1, 7, 8, 9, 10, 92, ! 2191: 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, ! 2192: -1, 104, 105, -1, -1, 27, 28, 29, 30, -1, ! 2193: 32, -1, 34, 35, -1, 37, 38, 39, -1, -1, ! 2194: -1, 43, -1, -1, -1, 47, -1, -1, -1, -1, ! 2195: -1, -1, -1, -1, -1, -1, 58, -1, -1, -1, ! 2196: -1, -1, -1, -1, 66, 67, 68, -1, -1, -1, ! 2197: 72, 73, -1, -1, -1, -1, -1, -1, 80, -1, ! 2198: 1, -1, 3, 4, 5, -1, 7, 8, 9, 10, ! 2199: 92, 12, 13, -1, -1, -1, -1, -1, -1, -1, ! 2200: -1, -1, 104, 105, -1, -1, 27, 28, 29, 30, ! 2201: -1, 32, -1, 34, 35, -1, 37, 38, 39, -1, ! 2202: -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, ! 2203: -1, 52, -1, -1, -1, -1, -1, 58, -1, -1, ! 2204: -1, -1, -1, -1, -1, 66, 67, 68, -1, -1, ! 2205: -1, 72, 73, -1, -1, -1, -1, -1, -1, 80, ! 2206: -1, 1, -1, 3, 4, 5, -1, 7, 8, 9, ! 2207: 10, 92, 12, 13, -1, -1, -1, -1, -1, -1, ! 2208: -1, -1, -1, 104, 105, -1, -1, 27, 28, 29, ! 2209: 30, -1, 32, -1, 34, 35, -1, 37, 38, 39, ! 2210: -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, ! 2211: -1, -1, -1, -1, -1, -1, -1, -1, 58, -1, ! 2212: -1, -1, -1, -1, -1, -1, 66, 67, 68, -1, ! 2213: -1, -1, 72, 73, -1, -1, -1, -1, -1, -1, ! 2214: 80, -1, 1, -1, 3, 4, 5, -1, 7, 8, ! 2215: 9, 10, 92, 12, 13, -1, -1, -1, -1, -1, ! 2216: -1, -1, 102, -1, 104, 105, -1, -1, 27, 28, ! 2217: 29, 30, -1, 32, -1, 34, 35, -1, 37, 38, ! 2218: 39, -1, -1, -1, 43, -1, -1, -1, -1, -1, ! 2219: -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, ! 2220: -1, -1, -1, -1, -1, -1, -1, 66, 67, 68, ! 2221: -1, -1, -1, 72, 73, -1, -1, -1, -1, -1, ! 2222: -1, 80, -1, 1, -1, 3, 4, 5, -1, 7, ! 2223: 8, 9, 10, 92, 12, 13, -1, -1, -1, -1, ! 2224: -1, -1, 101, -1, -1, 104, 105, -1, -1, 27, ! 2225: 28, 29, 30, -1, 32, -1, 34, 35, -1, 37, ! 2226: 38, 39, -1, -1, -1, 43, -1, -1, -1, -1, ! 2227: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 2228: 58, -1, -1, -1, -1, -1, -1, -1, 66, 67, ! 2229: 68, -1, -1, -1, 72, 73, -1, -1, -1, -1, ! 2230: -1, -1, 80, -1, -1, -1, 3, 4, 5, -1, ! 2231: 7, 8, 9, 10, 92, 12, 13, -1, -1, -1, ! 2232: -1, -1, -1, -1, -1, -1, 104, 105, -1, -1, ! 2233: 27, 28, 29, 30, -1, 32, -1, 34, -1, -1, ! 2234: 37, 38, 39, -1, -1, -1, 43, 1, -1, 3, ! 2235: 4, 5, 6, 7, 8, -1, -1, -1, -1, 13, ! 2236: -1, 58, -1, -1, -1, -1, -1, -1, -1, 66, ! 2237: 67, 68, 26, 27, -1, 72, 73, -1, 32, -1, ! 2238: -1, -1, 36, 80, 38, 39, -1, 41, 42, 43, ! 2239: -1, -1, -1, -1, 1, 92, 3, 4, 5, 6, ! 2240: 7, 8, -1, -1, 58, -1, 13, 104, 105, 106, ! 2241: -1, -1, -1, -1, 68, -1, -1, -1, -1, 26, ! 2242: 27, -1, -1, -1, -1, 32, 80, -1, -1, 36, ! 2243: -1, 38, 39, -1, 41, 42, 43, -1, 92, 93, ! 2244: 94, 3, 4, -1, -1, -1, 8, -1, 102, 103, ! 2245: 104, 58, 1, -1, 3, 4, 5, 6, 7, 8, ! 2246: -1, 68, -1, -1, 13, -1, -1, -1, -1, -1, ! 2247: -1, -1, -1, 80, -1, -1, 38, -1, 27, 41, ! 2248: -1, 43, -1, 32, 33, 92, 93, 94, -1, 38, ! 2249: 39, -1, 41, -1, 43, 102, 58, 104, -1, -1, ! 2250: -1, -1, -1, 52, -1, -1, 68, -1, 1, 58, ! 2251: 3, 4, 5, 6, 7, 8, -1, -1, 80, 68, ! 2252: 13, -1, -1, 3, 4, -1, -1, -1, -1, -1, ! 2253: 92, 80, -1, -1, 27, -1, -1, -1, -1, 32, ! 2254: 33, -1, 104, 92, -1, 38, 39, -1, 41, -1, ! 2255: 43, -1, -1, 102, 103, 104, -1, -1, 38, 52, ! 2256: -1, 41, -1, 43, 1, 58, 3, 4, 5, 6, ! 2257: 7, 8, -1, -1, -1, 68, 13, -1, 58, -1, ! 2258: -1, -1, -1, -1, -1, -1, -1, 80, 68, -1, ! 2259: 27, -1, -1, -1, -1, 32, 33, -1, -1, 92, ! 2260: 80, 38, 39, -1, 41, -1, 43, -1, -1, -1, ! 2261: 103, 104, 92, -1, -1, 52, -1, -1, -1, -1, ! 2262: -1, 58, -1, -1, 104, -1, -1, -1, -1, -1, ! 2263: -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, ! 2264: -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, ! 2265: -1, -1, -1, -1, -1, 92, -1, -1, -1, -1, ! 2266: -1, -1, -1, -1, -1, -1, 103, 104, 3, 4, ! 2267: 5, 6, 7, 8, 9, 10, -1, 12, 13, 14, ! 2268: -1, 16, 17, 18, 19, 20, 21, 22, 23, 24, ! 2269: 25, 26, 27, 28, 29, 30, -1, 32, -1, 34, ! 2270: -1, -1, 37, 38, 39, -1, -1, -1, 43, -1, ! 2271: -1, 46, 47, -1, -1, -1, -1, -1, -1, -1, ! 2272: -1, -1, -1, 58, -1, -1, -1, -1, -1, -1, ! 2273: -1, 66, 67, 68, -1, -1, -1, 72, 73, -1, ! 2274: -1, -1, -1, -1, -1, 80, -1, 82, -1, -1, ! 2275: 85, -1, -1, 88, 89, 90, -1, 92, -1, -1, ! 2276: -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, ! 2277: 105, 3, 4, 5, 6, 7, 8, 9, 10, -1, ! 2278: 12, 13, 14, -1, 16, 17, 18, 19, 20, 21, ! 2279: 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, ! 2280: 32, -1, 34, -1, -1, 37, 38, 39, -1, -1, ! 2281: -1, 43, -1, -1, 46, 47, -1, -1, -1, -1, ! 2282: -1, -1, -1, -1, -1, -1, 58, 3, 4, -1, ! 2283: -1, -1, -1, -1, 66, 67, 68, -1, -1, -1, ! 2284: 72, 73, -1, -1, -1, -1, -1, -1, 80, -1, ! 2285: 82, -1, -1, 85, -1, -1, 88, 89, 90, -1, ! 2286: 92, -1, 38, -1, -1, 41, -1, 43, -1, -1, ! 2287: 102, -1, 104, 105, 3, 4, 5, -1, 7, 8, ! 2288: 9, 10, 58, 12, 13, -1, -1, -1, -1, -1, ! 2289: -1, -1, 68, -1, -1, -1, -1, -1, 27, 28, ! 2290: 29, 30, -1, 32, 80, 34, -1, -1, 37, 38, ! 2291: 39, -1, -1, -1, 43, -1, 92, -1, -1, -1, ! 2292: -1, -1, -1, -1, -1, -1, -1, -1, 104, 58, ! 2293: -1, -1, 3, 4, -1, -1, -1, 66, 67, 68, ! 2294: -1, -1, -1, 72, 73, -1, -1, -1, -1, -1, ! 2295: -1, 80, 81, -1, -1, 3, 4, 5, -1, 7, ! 2296: 8, 9, 10, 92, 12, 13, -1, 38, -1, -1, ! 2297: 41, -1, 43, -1, -1, 104, 105, -1, -1, 27, ! 2298: 28, 29, 30, -1, 32, -1, 34, 58, -1, 37, ! 2299: 38, 39, -1, -1, -1, 43, -1, 68, -1, 47, ! 2300: -1, -1, -1, -1, 75, -1, -1, -1, -1, 80, ! 2301: 58, -1, -1, 3, 4, -1, -1, -1, 66, 67, ! 2302: 68, 92, -1, -1, 72, 73, -1, -1, -1, -1, ! 2303: -1, -1, 80, 104, -1, -1, 3, 4, 5, -1, ! 2304: 7, 8, 9, 10, 92, 12, 13, -1, 38, -1, ! 2305: -1, 41, -1, 43, -1, -1, 104, 105, -1, -1, ! 2306: 27, 28, 29, 30, -1, 32, -1, 34, 58, -1, ! 2307: 37, 38, 39, -1, -1, -1, 43, -1, 68, -1, ! 2308: -1, -1, -1, -1, -1, 75, -1, -1, -1, -1, ! 2309: 80, 58, -1, -1, 3, 4, -1, -1, -1, 66, ! 2310: 67, 68, 92, -1, -1, 72, 73, -1, -1, -1, ! 2311: -1, -1, -1, 80, 104, -1, -1, 3, 4, 5, ! 2312: -1, 7, 8, 9, 10, 92, 12, 13, -1, 38, ! 2313: -1, -1, 41, -1, 43, 102, -1, 104, 105, -1, ! 2314: -1, 27, 28, 29, 30, -1, 32, -1, 34, 58, ! 2315: -1, 37, 38, 39, -1, -1, -1, 43, -1, 68, ! 2316: -1, -1, -1, -1, -1, -1, 75, -1, -1, -1, ! 2317: -1, 80, 58, -1, -1, 3, 4, -1, -1, -1, ! 2318: 66, 67, 68, 92, -1, -1, 72, 73, -1, -1, ! 2319: -1, -1, -1, -1, 80, 104, -1, -1, 3, 4, ! 2320: 5, -1, 7, 8, 9, 10, 92, 12, 13, -1, ! 2321: 38, -1, -1, 41, -1, 43, 102, -1, 104, 105, ! 2322: -1, -1, 27, 28, 29, 30, -1, 32, -1, 34, ! 2323: 58, -1, 37, 38, 39, -1, -1, -1, 43, -1, ! 2324: 68, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 2325: -1, -1, 80, 58, -1, -1, -1, -1, -1, -1, ! 2326: -1, 66, 67, 68, 92, -1, -1, 72, 73, -1, ! 2327: -1, -1, -1, -1, -1, 80, 104, -1, -1, 3, ! 2328: 4, 5, -1, 7, 8, 9, 10, 92, 12, 13, ! 2329: -1, -1, -1, -1, -1, -1, -1, -1, -1, 104, ! 2330: 105, -1, -1, 27, 28, 29, 30, -1, 32, -1, ! 2331: 34, -1, -1, 37, 38, 39, -1, -1, -1, 43, ! 2332: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 2333: -1, -1, -1, -1, 58, -1, -1, -1, -1, -1, ! 2334: -1, -1, 66, 67, 68, -1, -1, -1, 72, 73, ! 2335: -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, ! 2336: 3, 4, 5, -1, 7, 8, 9, 10, 92, 12, ! 2337: 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 2338: 104, 105, -1, -1, 27, 28, 29, 30, -1, 32, ! 2339: -1, 34, -1, -1, 37, 38, 39, -1, -1, -1, ! 2340: 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 2341: -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, ! 2342: -1, -1, -1, 66, 67, 68, -1, -1, -1, 72, ! 2343: 73, -1, -1, -1, 3, 4, 5, 80, 7, 8, ! 2344: 9, 10, -1, 12, 13, -1, -1, -1, -1, 92, ! 2345: -1, -1, -1, -1, -1, -1, -1, -1, 27, 28, ! 2346: -1, 104, 105, 32, -1, 34, -1, -1, 37, 38, ! 2347: 39, -1, -1, -1, 43, -1, -1, -1, -1, -1, ! 2348: -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, ! 2349: -1, -1, -1, -1, -1, -1, -1, 66, 67, 68, ! 2350: -1, -1, -1, 72, 73, -1, -1, -1, 3, 4, ! 2351: 5, 80, 7, 8, 9, 10, -1, 12, 13, -1, ! 2352: -1, -1, -1, 92, -1, -1, -1, -1, -1, -1, ! 2353: -1, -1, 27, 28, -1, 104, 105, 32, -1, 34, ! 2354: -1, -1, 37, 38, 39, -1, -1, -1, 43, -1, ! 2355: -1, 3, 4, 5, 6, 7, 8, -1, -1, 11, ! 2356: -1, 13, -1, 58, -1, -1, -1, -1, -1, -1, ! 2357: -1, 66, 67, 68, -1, 27, -1, 72, 73, -1, ! 2358: 32, -1, -1, -1, -1, 80, 38, 39, -1, 41, ! 2359: -1, 43, -1, -1, -1, -1, -1, 92, -1, -1, ! 2360: -1, -1, -1, -1, -1, -1, 58, -1, -1, 104, ! 2361: 105, -1, -1, -1, -1, -1, 68, -1, -1, -1, ! 2362: -1, -1, -1, 75, -1, -1, -1, -1, 80, 81, ! 2363: -1, 3, 4, 5, 6, 7, 8, -1, -1, 91, ! 2364: 92, 13, -1, -1, -1, -1, -1, -1, -1, -1, ! 2365: -1, -1, 104, -1, -1, 27, -1, -1, -1, -1, ! 2366: 32, -1, -1, -1, -1, -1, 38, 39, -1, 41, ! 2367: -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, ! 2368: -1, -1, -1, -1, -1, -1, 58, 3, 4, 5, ! 2369: 6, 7, 8, -1, -1, 11, 68, 13, -1, -1, ! 2370: -1, -1, -1, 75, -1, -1, -1, -1, 80, -1, ! 2371: -1, 27, -1, -1, -1, -1, 32, -1, -1, -1, ! 2372: 92, -1, 38, 39, -1, 41, -1, 43, -1, -1, ! 2373: 102, -1, 104, -1, -1, -1, -1, -1, -1, -1, ! 2374: -1, -1, 58, 3, 4, 5, 6, 7, 8, -1, ! 2375: -1, -1, 68, 13, -1, -1, -1, -1, -1, 75, ! 2376: -1, -1, -1, -1, 80, -1, -1, 27, -1, -1, ! 2377: -1, -1, 32, -1, -1, 91, 92, -1, 38, 39, ! 2378: -1, 41, -1, 43, 44, -1, -1, -1, 104, -1, ! 2379: 3, 4, 5, 6, 7, 8, -1, -1, 58, -1, ! 2380: 13, -1, -1, -1, -1, -1, -1, -1, 68, -1, ! 2381: -1, -1, -1, -1, 27, 75, -1, -1, -1, 32, ! 2382: 80, -1, -1, -1, -1, 38, 39, -1, 41, -1, ! 2383: 43, 44, 92, -1, -1, -1, -1, -1, -1, -1, ! 2384: -1, -1, 102, -1, 104, 58, 3, 4, 5, 6, ! 2385: 7, 8, -1, -1, -1, 68, 13, -1, -1, -1, ! 2386: -1, -1, 75, -1, -1, -1, -1, 80, -1, -1, ! 2387: 27, -1, -1, -1, -1, 32, -1, -1, -1, 92, ! 2388: -1, 38, 39, -1, 41, -1, 43, -1, -1, -1, ! 2389: -1, 104, -1, -1, -1, -1, 4, 5, 6, 7, ! 2390: 8, 58, -1, 11, -1, 13, -1, -1, -1, -1, ! 2391: -1, 68, -1, -1, -1, -1, -1, 4, 5, 27, ! 2392: 7, 8, -1, 80, 32, -1, 13, -1, -1, -1, ! 2393: -1, 39, -1, 41, -1, 92, -1, -1, -1, -1, ! 2394: 27, -1, -1, -1, -1, 32, -1, 104, -1, -1, ! 2395: 58, -1, 39, -1, 41, -1, -1, 44, -1, -1, ! 2396: 68, -1, -1, -1, -1, -1, -1, 75, -1, -1, ! 2397: -1, 58, 80, 81, -1, -1, -1, -1, -1, -1, ! 2398: -1, 68, -1, 91, 92, -1, -1, -1, 75, -1, ! 2399: -1, -1, -1, 80, 81, -1, -1, -1, -1, -1, ! 2400: -1, 49, 50, 51, -1, 92, 54, 55, 56, 57, ! 2401: 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, ! 2402: 68, 69, 70, 49, 50, 51, -1, -1, 54, 55, ! 2403: 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, ! 2404: 66, 67, 68, 69, 70, -1, -1, -1, -1, -1, ! 2405: -1, -1, -1, 48, 49, 50, 51, -1, 106, 54, ! 2406: 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, ! 2407: 65, 66, 67, 68, 69, 70, 102, 103, 49, 50, ! 2408: 51, 52, -1, 54, 55, 56, 57, 58, 59, 60, ! 2409: 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, ! 2410: 49, 50, 51, -1, -1, 54, 55, 56, 57, 58, ! 2411: 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, ! 2412: 69, 70, 51, -1, -1, 54, 55, 56, 57, 58, ! 2413: 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, ! 2414: 69, 70, 56, 57, 58, 59, 60, 61, 62, 63, ! 2415: 64, 65, 66, 67, 68, 69, 70 ! 2416: }; ! 2417: /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ ! 2418: #line 3 "bison.simple" ! 2419: ! 2420: /* Skeleton output parser for bison, ! 2421: Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman ! 2422: ! 2423: This program is free software; you can redistribute it and/or modify ! 2424: it under the terms of the GNU General Public License as published by ! 2425: the Free Software Foundation; either version 1, or (at your option) ! 2426: any later version. ! 2427: ! 2428: This program is distributed in the hope that it will be useful, ! 2429: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 2430: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 2431: GNU General Public License for more details. ! 2432: ! 2433: You should have received a copy of the GNU General Public License ! 2434: along with this program; if not, write to the Free Software ! 2435: Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ ! 2436: ! 2437: ! 2438: #ifndef alloca ! 2439: #ifdef __GNUC__ ! 2440: #define alloca __builtin_alloca ! 2441: #else /* not GNU C. */ ! 2442: #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) ! 2443: #include <alloca.h> ! 2444: #else /* not sparc */ ! 2445: #if defined (MSDOS) && !defined (__TURBOC__) ! 2446: #include <malloc.h> ! 2447: #else /* not MSDOS, or __TURBOC__ */ ! 2448: #if defined(_AIX) ! 2449: #include <malloc.h> ! 2450: #pragma alloca ! 2451: #endif /* not _AIX */ ! 2452: #endif /* not MSDOS, or __TURBOC__ */ ! 2453: #endif /* not sparc. */ ! 2454: #endif /* not GNU C. */ ! 2455: #endif /* alloca not defined. */ ! 2456: ! 2457: /* This is the parser code that is written into each bison parser ! 2458: when the %semantic_parser declaration is not specified in the grammar. ! 2459: It was written by Richard Stallman by simplifying the hairy parser ! 2460: used when %semantic_parser is specified. */ ! 2461: ! 2462: /* Note: there must be only one dollar sign in this file. ! 2463: It is replaced by the list of actions, each action ! 2464: as one case of the switch. */ ! 2465: ! 2466: #define yyerrok (yyerrstatus = 0) ! 2467: #define yyclearin (yychar = YYEMPTY) ! 2468: #define YYEMPTY -2 ! 2469: #define YYEOF 0 ! 2470: #define YYACCEPT return(0) ! 2471: #define YYABORT return(1) ! 2472: #define YYERROR goto yyerrlab1 ! 2473: /* Like YYERROR except do call yyerror. ! 2474: This remains here temporarily to ease the ! 2475: transition to the new meaning of YYERROR, for GCC. ! 2476: Once GCC version 2 has supplanted version 1, this can go. */ ! 2477: #define YYFAIL goto yyerrlab ! 2478: #define YYRECOVERING() (!!yyerrstatus) ! 2479: #define YYBACKUP(token, value) \ ! 2480: do \ ! 2481: if (yychar == YYEMPTY && yylen == 1) \ ! 2482: { yychar = (token), yylval = (value); \ ! 2483: yychar1 = YYTRANSLATE (yychar); \ ! 2484: YYPOPSTACK; \ ! 2485: goto yybackup; \ ! 2486: } \ ! 2487: else \ ! 2488: { yyerror ("syntax error: cannot back up"); YYERROR; } \ ! 2489: while (0) ! 2490: ! 2491: #define YYTERROR 1 ! 2492: #define YYERRCODE 256 ! 2493: ! 2494: #ifndef YYPURE ! 2495: #define YYLEX yylex() ! 2496: #endif ! 2497: ! 2498: #ifdef YYPURE ! 2499: #ifdef YYLSP_NEEDED ! 2500: #define YYLEX yylex(&yylval, &yylloc) ! 2501: #else ! 2502: #define YYLEX yylex(&yylval) ! 2503: #endif ! 2504: #endif ! 2505: ! 2506: /* If nonreentrant, generate the variables here */ ! 2507: ! 2508: #ifndef YYPURE ! 2509: ! 2510: int yychar; /* the lookahead symbol */ ! 2511: YYSTYPE yylval; /* the semantic value of the */ ! 2512: /* lookahead symbol */ ! 2513: ! 2514: #ifdef YYLSP_NEEDED ! 2515: YYLTYPE yylloc; /* location data for the lookahead */ ! 2516: /* symbol */ ! 2517: #endif ! 2518: ! 2519: int yynerrs; /* number of parse errors so far */ ! 2520: #endif /* not YYPURE */ ! 2521: ! 2522: #if YYDEBUG != 0 ! 2523: int yydebug; /* nonzero means print parse trace */ ! 2524: /* Since this is uninitialized, it does not stop multiple parsers ! 2525: from coexisting. */ ! 2526: #endif ! 2527: ! 2528: /* YYINITDEPTH indicates the initial size of the parser's stacks */ ! 2529: ! 2530: #ifndef YYINITDEPTH ! 2531: #define YYINITDEPTH 200 ! 2532: #endif ! 2533: ! 2534: /* YYMAXDEPTH is the maximum size the stacks can grow to ! 2535: (effective only if the built-in stack extension method is used). */ ! 2536: ! 2537: #if YYMAXDEPTH == 0 ! 2538: #undef YYMAXDEPTH ! 2539: #endif ! 2540: ! 2541: #ifndef YYMAXDEPTH ! 2542: #define YYMAXDEPTH 10000 ! 2543: #endif ! 2544: ! 2545: #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ ! 2546: #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT) ! 2547: #else /* not GNU C or C++ */ ! 2548: #ifndef __cplusplus ! 2549: ! 2550: /* This is the most reliable way to avoid incompatibilities ! 2551: in available built-in functions on various systems. */ ! 2552: static void ! 2553: __yy_bcopy (from, to, count) ! 2554: char *from; ! 2555: char *to; ! 2556: int count; ! 2557: { ! 2558: register char *f = from; ! 2559: register char *t = to; ! 2560: register int i = count; ! 2561: ! 2562: while (i-- > 0) ! 2563: *t++ = *f++; ! 2564: } ! 2565: ! 2566: #else /* __cplusplus */ ! 2567: ! 2568: /* This is the most reliable way to avoid incompatibilities ! 2569: in available built-in functions on various systems. */ ! 2570: static void ! 2571: __yy_bcopy (char *from, char *to, int count) ! 2572: { ! 2573: register char *f = from; ! 2574: register char *t = to; ! 2575: register int i = count; ! 2576: ! 2577: while (i-- > 0) ! 2578: *t++ = *f++; ! 2579: } ! 2580: ! 2581: #endif ! 2582: #endif ! 2583: ! 2584: #line 169 "bison.simple" ! 2585: int ! 2586: yyparse() ! 2587: { ! 2588: register int yystate; ! 2589: register int yyn; ! 2590: register short *yyssp; ! 2591: register YYSTYPE *yyvsp; ! 2592: int yyerrstatus; /* number of tokens to shift before error messages enabled */ ! 2593: int yychar1; /* lookahead token as an internal (translated) token number */ ! 2594: ! 2595: short yyssa[YYINITDEPTH]; /* the state stack */ ! 2596: YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ ! 2597: ! 2598: short *yyss = yyssa; /* refer to the stacks thru separate pointers */ ! 2599: YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ ! 2600: ! 2601: #ifdef YYLSP_NEEDED ! 2602: YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ ! 2603: YYLTYPE *yyls = yylsa; ! 2604: YYLTYPE *yylsp; ! 2605: ! 2606: #define YYPOPSTACK (yyvsp--, yysp--, yylsp--) ! 2607: #else ! 2608: #define YYPOPSTACK (yyvsp--, yysp--) ! 2609: #endif ! 2610: ! 2611: int yystacksize = YYINITDEPTH; ! 2612: ! 2613: #ifdef YYPURE ! 2614: int yychar; ! 2615: YYSTYPE yylval; ! 2616: int yynerrs; ! 2617: #ifdef YYLSP_NEEDED ! 2618: YYLTYPE yylloc; ! 2619: #endif ! 2620: #endif ! 2621: ! 2622: YYSTYPE yyval; /* the variable used to return */ ! 2623: /* semantic values from the action */ ! 2624: /* routines */ ! 2625: ! 2626: int yylen; ! 2627: ! 2628: #if YYDEBUG != 0 ! 2629: if (yydebug) ! 2630: fprintf(stderr, "Starting parse\n"); ! 2631: #endif ! 2632: ! 2633: yystate = 0; ! 2634: yyerrstatus = 0; ! 2635: yynerrs = 0; ! 2636: yychar = YYEMPTY; /* Cause a token to be read. */ ! 2637: ! 2638: /* Initialize stack pointers. ! 2639: Waste one element of value and location stack ! 2640: so that they stay on the same level as the state stack. */ ! 2641: ! 2642: yyssp = yyss - 1; ! 2643: yyvsp = yyvs; ! 2644: #ifdef YYLSP_NEEDED ! 2645: yylsp = yyls; ! 2646: #endif ! 2647: ! 2648: /* Push a new state, which is found in yystate . */ ! 2649: /* In all cases, when you get here, the value and location stacks ! 2650: have just been pushed. so pushing a state here evens the stacks. */ ! 2651: yynewstate: ! 2652: ! 2653: *++yyssp = yystate; ! 2654: ! 2655: if (yyssp >= yyss + yystacksize - 1) ! 2656: { ! 2657: /* Give user a chance to reallocate the stack */ ! 2658: /* Use copies of these so that the &'s don't force the real ones into memory. */ ! 2659: YYSTYPE *yyvs1 = yyvs; ! 2660: short *yyss1 = yyss; ! 2661: #ifdef YYLSP_NEEDED ! 2662: YYLTYPE *yyls1 = yyls; ! 2663: #endif ! 2664: ! 2665: /* Get the current used size of the three stacks, in elements. */ ! 2666: int size = yyssp - yyss + 1; ! 2667: ! 2668: #ifdef yyoverflow ! 2669: /* Each stack pointer address is followed by the size of ! 2670: the data in use in that stack, in bytes. */ ! 2671: yyoverflow("parser stack overflow", ! 2672: &yyss1, size * sizeof (*yyssp), ! 2673: &yyvs1, size * sizeof (*yyvsp), ! 2674: #ifdef YYLSP_NEEDED ! 2675: &yyls1, size * sizeof (*yylsp), ! 2676: #endif ! 2677: &yystacksize); ! 2678: ! 2679: yyss = yyss1; yyvs = yyvs1; ! 2680: #ifdef YYLSP_NEEDED ! 2681: yyls = yyls1; ! 2682: #endif ! 2683: #else /* no yyoverflow */ ! 2684: /* Extend the stack our own way. */ ! 2685: if (yystacksize >= YYMAXDEPTH) ! 2686: { ! 2687: yyerror("parser stack overflow"); ! 2688: return 2; ! 2689: } ! 2690: yystacksize *= 2; ! 2691: if (yystacksize > YYMAXDEPTH) ! 2692: yystacksize = YYMAXDEPTH; ! 2693: yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); ! 2694: __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp)); ! 2695: yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); ! 2696: __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp)); ! 2697: #ifdef YYLSP_NEEDED ! 2698: yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); ! 2699: __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp)); ! 2700: #endif ! 2701: #endif /* no yyoverflow */ ! 2702: ! 2703: yyssp = yyss + size - 1; ! 2704: yyvsp = yyvs + size - 1; ! 2705: #ifdef YYLSP_NEEDED ! 2706: yylsp = yyls + size - 1; ! 2707: #endif ! 2708: ! 2709: #if YYDEBUG != 0 ! 2710: if (yydebug) ! 2711: fprintf(stderr, "Stack size increased to %d\n", yystacksize); ! 2712: #endif ! 2713: ! 2714: if (yyssp >= yyss + yystacksize - 1) ! 2715: YYABORT; ! 2716: } ! 2717: ! 2718: #if YYDEBUG != 0 ! 2719: if (yydebug) ! 2720: fprintf(stderr, "Entering state %d\n", yystate); ! 2721: #endif ! 2722: ! 2723: yybackup: ! 2724: ! 2725: /* Do appropriate processing given the current state. */ ! 2726: /* Read a lookahead token if we need one and don't already have one. */ ! 2727: /* yyresume: */ ! 2728: ! 2729: /* First try to decide what to do without reference to lookahead token. */ ! 2730: ! 2731: yyn = yypact[yystate]; ! 2732: if (yyn == YYFLAG) ! 2733: goto yydefault; ! 2734: ! 2735: /* Not known => get a lookahead token if don't already have one. */ ! 2736: ! 2737: /* yychar is either YYEMPTY or YYEOF ! 2738: or a valid token in external form. */ ! 2739: ! 2740: if (yychar == YYEMPTY) ! 2741: { ! 2742: #if YYDEBUG != 0 ! 2743: if (yydebug) ! 2744: fprintf(stderr, "Reading a token: "); ! 2745: #endif ! 2746: yychar = YYLEX; ! 2747: } ! 2748: ! 2749: /* Convert token to internal form (in yychar1) for indexing tables with */ ! 2750: ! 2751: if (yychar <= 0) /* This means end of input. */ ! 2752: { ! 2753: yychar1 = 0; ! 2754: yychar = YYEOF; /* Don't call YYLEX any more */ ! 2755: ! 2756: #if YYDEBUG != 0 ! 2757: if (yydebug) ! 2758: fprintf(stderr, "Now at end of input.\n"); ! 2759: #endif ! 2760: } ! 2761: else ! 2762: { ! 2763: yychar1 = YYTRANSLATE(yychar); ! 2764: ! 2765: #if YYDEBUG != 0 ! 2766: if (yydebug) ! 2767: { ! 2768: fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); ! 2769: /* Give the individual parser a way to print the precise meaning ! 2770: of a token, for further debugging info. */ ! 2771: #ifdef YYPRINT ! 2772: YYPRINT (stderr, yychar, yylval); ! 2773: #endif ! 2774: fprintf (stderr, ")\n"); ! 2775: } ! 2776: #endif ! 2777: } ! 2778: ! 2779: yyn += yychar1; ! 2780: if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) ! 2781: goto yydefault; ! 2782: ! 2783: yyn = yytable[yyn]; ! 2784: ! 2785: /* yyn is what to do for this token type in this state. ! 2786: Negative => reduce, -yyn is rule number. ! 2787: Positive => shift, yyn is new state. ! 2788: New state is final state => don't bother to shift, ! 2789: just return success. ! 2790: 0, or most negative number => error. */ ! 2791: ! 2792: if (yyn < 0) ! 2793: { ! 2794: if (yyn == YYFLAG) ! 2795: goto yyerrlab; ! 2796: yyn = -yyn; ! 2797: goto yyreduce; ! 2798: } ! 2799: else if (yyn == 0) ! 2800: goto yyerrlab; ! 2801: ! 2802: if (yyn == YYFINAL) ! 2803: YYACCEPT; ! 2804: ! 2805: /* Shift the lookahead token. */ ! 2806: ! 2807: #if YYDEBUG != 0 ! 2808: if (yydebug) ! 2809: fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); ! 2810: #endif ! 2811: ! 2812: /* Discard the token being shifted unless it is eof. */ ! 2813: if (yychar != YYEOF) ! 2814: yychar = YYEMPTY; ! 2815: ! 2816: *++yyvsp = yylval; ! 2817: #ifdef YYLSP_NEEDED ! 2818: *++yylsp = yylloc; ! 2819: #endif ! 2820: ! 2821: /* count tokens shifted since error; after three, turn off error status. */ ! 2822: if (yyerrstatus) yyerrstatus--; ! 2823: ! 2824: yystate = yyn; ! 2825: goto yynewstate; ! 2826: ! 2827: /* Do the default action for the current state. */ ! 2828: yydefault: ! 2829: ! 2830: yyn = yydefact[yystate]; ! 2831: if (yyn == 0) ! 2832: goto yyerrlab; ! 2833: ! 2834: /* Do a reduction. yyn is the number of a rule to reduce with. */ ! 2835: yyreduce: ! 2836: yylen = yyr2[yyn]; ! 2837: yyval = yyvsp[1-yylen]; /* implement default value of the action */ ! 2838: ! 2839: #if YYDEBUG != 0 ! 2840: if (yydebug) ! 2841: { ! 2842: int i; ! 2843: ! 2844: fprintf (stderr, "Reducing via rule %d (line %d), ", ! 2845: yyn, yyrline[yyn]); ! 2846: ! 2847: /* Print the symboles being reduced, and their result. */ ! 2848: for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) ! 2849: fprintf (stderr, "%s ", yytname[yyrhs[i]]); ! 2850: fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); ! 2851: } ! 2852: #endif ! 2853: ! 2854: ! 2855: switch (yyn) { ! 2856: ! 2857: case 2: ! 2858: #line 293 "cp-parse.y" ! 2859: { finish_file (); ; ! 2860: break;} ! 2861: case 3: ! 2862: #line 301 "cp-parse.y" ! 2863: { yyval.ttype = NULL_TREE; ; ! 2864: break;} ! 2865: case 4: ! 2866: #line 302 "cp-parse.y" ! 2867: {yyval.ttype = NULL_TREE; ; ! 2868: break;} ! 2869: case 5: ! 2870: #line 304 "cp-parse.y" ! 2871: {yyval.ttype = NULL_TREE; ; ! 2872: break;} ! 2873: case 6: ! 2874: #line 308 "cp-parse.y" ! 2875: { have_extern_spec = 1; ; ! 2876: break;} ! 2877: case 7: ! 2878: #line 311 "cp-parse.y" ! 2879: { have_extern_spec = 0; ; ! 2880: break;} ! 2881: case 8: ! 2882: #line 316 "cp-parse.y" ! 2883: { if (pending_inlines) do_pending_inlines (); ; ! 2884: break;} ! 2885: case 9: ! 2886: #line 318 "cp-parse.y" ! 2887: { if (pending_inlines) do_pending_inlines (); ; ! 2888: break;} ! 2889: case 10: ! 2890: #line 320 "cp-parse.y" ! 2891: { if (pending_inlines) do_pending_inlines (); ; ! 2892: break;} ! 2893: case 12: ! 2894: #line 323 "cp-parse.y" ! 2895: { if (pedantic) ! 2896: warning ("ANSI C forbids use of `asm' keyword"); ! 2897: if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype); ! 2898: assemble_asm (yyvsp[-2].ttype); ; ! 2899: break;} ! 2900: case 13: ! 2901: #line 328 "cp-parse.y" ! 2902: { pop_lang_context (); ; ! 2903: break;} ! 2904: case 14: ! 2905: #line 330 "cp-parse.y" ! 2906: { pop_lang_context (); ; ! 2907: break;} ! 2908: case 15: ! 2909: #line 332 "cp-parse.y" ! 2910: { if (pending_inlines) do_pending_inlines (); ! 2911: pop_lang_context (); ; ! 2912: break;} ! 2913: case 16: ! 2914: #line 335 "cp-parse.y" ! 2915: { if (pending_inlines) do_pending_inlines (); ! 2916: pop_lang_context (); ; ! 2917: break;} ! 2918: case 17: ! 2919: #line 341 "cp-parse.y" ! 2920: { push_lang_context (yyvsp[0].ttype); ; ! 2921: break;} ! 2922: case 18: ! 2923: #line 346 "cp-parse.y" ! 2924: { begin_template_parm_list (); ; ! 2925: break;} ! 2926: case 19: ! 2927: #line 348 "cp-parse.y" ! 2928: { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ; ! 2929: break;} ! 2930: case 20: ! 2931: #line 353 "cp-parse.y" ! 2932: { yyval.ttype = process_template_parm (0, yyvsp[0].ttype); ; ! 2933: break;} ! 2934: case 21: ! 2935: #line 355 "cp-parse.y" ! 2936: { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 2937: break;} ! 2938: case 22: ! 2939: #line 366 "cp-parse.y" ! 2940: { ! 2941: if ((enum tag_types) TREE_INT_CST_LOW (yyvsp[-1].ttype) != class_type) ! 2942: error ("template type parameter must use keyword `class'"); ! 2943: yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ! 2944: ; ! 2945: break;} ! 2946: case 23: ! 2947: #line 372 "cp-parse.y" ! 2948: { ! 2949: if ((enum tag_types) TREE_INT_CST_LOW (yyvsp[-3].ttype) != class_type) ! 2950: error ("template type parameter must use keyword `class'"); ! 2951: warning ("restricted template type parameters not yet implemented"); ! 2952: yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ! 2953: ; ! 2954: break;} ! 2955: case 24: ! 2956: #line 379 "cp-parse.y" ! 2957: { ! 2958: if ((enum tag_types) TREE_INT_CST_LOW (yyvsp[-2].ttype) != class_type) ! 2959: error ("template type parameter must use keyword `class'"); ! 2960: warning ("restricted template type parameters not yet implemented"); ! 2961: yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ! 2962: ; ! 2963: break;} ! 2964: case 27: ! 2965: #line 392 "cp-parse.y" ! 2966: { declare_overloaded (yyvsp[0].ttype); ; ! 2967: break;} ! 2968: case 28: ! 2969: #line 394 "cp-parse.y" ! 2970: { declare_overloaded (yyvsp[0].ttype); ; ! 2971: break;} ! 2972: case 29: ! 2973: #line 401 "cp-parse.y" ! 2974: { yychar = '{'; goto template1; ; ! 2975: break;} ! 2976: case 31: ! 2977: #line 404 "cp-parse.y" ! 2978: { yychar = '{'; goto template1; ; ! 2979: break;} ! 2980: case 33: ! 2981: #line 407 "cp-parse.y" ! 2982: { yychar = ':'; goto template1; ; ! 2983: break;} ! 2984: case 35: ! 2985: #line 410 "cp-parse.y" ! 2986: { ! 2987: yychar = ':'; ! 2988: template1: ! 2989: if (current_aggr == exception_type_node) ! 2990: error ("template type must define an aggregate or union"); ! 2991: /* Maybe pedantic warning for union? ! 2992: How about an enum? :-) */ ! 2993: end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr); ! 2994: reinit_parse_for_template (yychar, yyvsp[-2].ttype, yyvsp[-1].ttype); ! 2995: yychar = YYEMPTY; ! 2996: ; ! 2997: break;} ! 2998: case 37: ! 2999: #line 423 "cp-parse.y" ! 3000: { ! 3001: end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr); ! 3002: /* declare $2 as template name with $1 parm list */ ! 3003: ; ! 3004: break;} ! 3005: case 38: ! 3006: #line 428 "cp-parse.y" ! 3007: { ! 3008: end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr); ! 3009: /* declare $2 as template name with $1 parm list */ ! 3010: ; ! 3011: break;} ! 3012: case 39: ! 3013: #line 435 "cp-parse.y" ! 3014: { ! 3015: tree d; ! 3016: int momentary; ! 3017: /* current_declspecs = $<ttype>0;*/ ! 3018: momentary = suspend_momentary (); ! 3019: d = start_decl (yyvsp[-4].ttype, /*current_declspecs*/0, 0, yyvsp[-3].ttype); ! 3020: finish_decl (d, NULL_TREE, yyvsp[-2].ttype); ! 3021: ! 3022: #if 0 /* Need to sort out destructor templates, and not give warnings ! 3023: for them. */ ! 3024: if (pedantic) ! 3025: error ("ANSI C forbids data definition with no type or storage class"); ! 3026: else if (! flag_traditional && ! have_extern_spec) ! 3027: warning ("data definition has no type or storage class"); ! 3028: #endif ! 3029: end_template_decl (yyvsp[-5].ttype, d, 0); ! 3030: if (yyvsp[0].itype != ';') ! 3031: reinit_parse_for_template (yyvsp[0].itype, yyvsp[-5].ttype, d); ! 3032: resume_momentary (momentary); ! 3033: ; ! 3034: break;} ! 3035: case 40: ! 3036: #line 458 "cp-parse.y" ! 3037: { ! 3038: tree d; ! 3039: int momentary; ! 3040: ! 3041: current_declspecs = yyvsp[-5].ttype; ! 3042: momentary = suspend_momentary (); ! 3043: d = start_decl (yyvsp[-4].ttype, current_declspecs, 0, yyvsp[-3].ttype); ! 3044: finish_decl (d, NULL_TREE, yyvsp[-2].ttype); ! 3045: end_exception_decls (); ! 3046: end_template_decl (yyvsp[-6].ttype, d, 0); ! 3047: if (yyvsp[0].itype != ';') ! 3048: { ! 3049: reinit_parse_for_template (yyvsp[0].itype, yyvsp[-6].ttype, d); ! 3050: yychar = YYEMPTY; ! 3051: } ! 3052: note_list_got_semicolon (yyvsp[-5].ttype); ! 3053: resume_momentary (momentary); ! 3054: ; ! 3055: break;} ! 3056: case 41: ! 3057: #line 477 "cp-parse.y" ! 3058: { ! 3059: tree d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE); ! 3060: finish_decl (d, NULL_TREE, NULL_TREE); ! 3061: end_template_decl (yyvsp[-3].ttype, d, 0); ! 3062: if (yyvsp[0].itype != ';') ! 3063: reinit_parse_for_template (yyvsp[0].itype, yyvsp[-3].ttype, d); ! 3064: ; ! 3065: break;} ! 3066: case 42: ! 3067: #line 486 "cp-parse.y" ! 3068: { yyval.itype = '{'; ; ! 3069: break;} ! 3070: case 43: ! 3071: #line 487 "cp-parse.y" ! 3072: { yyval.itype = ':'; ; ! 3073: break;} ! 3074: case 44: ! 3075: #line 488 "cp-parse.y" ! 3076: { yyval.itype = ';'; ; ! 3077: break;} ! 3078: case 45: ! 3079: #line 489 "cp-parse.y" ! 3080: { yyval.itype = '='; ; ! 3081: break;} ! 3082: case 46: ! 3083: #line 490 "cp-parse.y" ! 3084: { yyval.itype = RETURN; ; ! 3085: break;} ! 3086: case 47: ! 3087: #line 495 "cp-parse.y" ! 3088: { if (pedantic) ! 3089: error ("ANSI C forbids data definition with no type or storage class"); ! 3090: else if (! flag_traditional && ! have_extern_spec) ! 3091: warning ("data definition has no type or storage class"); ; ! 3092: break;} ! 3093: case 48: ! 3094: #line 500 "cp-parse.y" ! 3095: {; ! 3096: break;} ! 3097: case 49: ! 3098: #line 503 "cp-parse.y" ! 3099: { tree d; ! 3100: d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE); ! 3101: finish_decl (d, NULL_TREE, NULL_TREE); ! 3102: ; ! 3103: break;} ! 3104: case 50: ! 3105: #line 508 "cp-parse.y" ! 3106: { ! 3107: end_exception_decls (); ! 3108: note_list_got_semicolon (yyval.ttype); ! 3109: ; ! 3110: break;} ! 3111: case 51: ! 3112: #line 514 "cp-parse.y" ! 3113: { tree d; ! 3114: d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE); ! 3115: finish_decl (d, NULL_TREE, NULL_TREE); ! 3116: end_exception_decls (); ! 3117: note_list_got_semicolon (yyval.ttype); ! 3118: ; ! 3119: break;} ! 3120: case 52: ! 3121: #line 521 "cp-parse.y" ! 3122: { error ("empty declaration"); ; ! 3123: break;} ! 3124: case 53: ! 3125: #line 523 "cp-parse.y" ! 3126: { ! 3127: tree t = yyval.ttype; ! 3128: shadow_tag (t); ! 3129: if (TREE_CODE (t) == TREE_LIST ! 3130: && TREE_PURPOSE (t) == NULL_TREE) ! 3131: { ! 3132: t = TREE_VALUE (t); ! 3133: if (TREE_CODE (t) == RECORD_TYPE) ! 3134: { ! 3135: if (CLASSTYPE_USE_TEMPLATE (t) == 0) ! 3136: CLASSTYPE_USE_TEMPLATE (t) = 2; ! 3137: else if (CLASSTYPE_USE_TEMPLATE (t) == 1) ! 3138: error ("override declaration for already-expanded template"); ! 3139: } ! 3140: } ! 3141: note_list_got_semicolon (yyval.ttype); ! 3142: ; ! 3143: break;} ! 3144: case 57: ! 3145: #line 547 "cp-parse.y" ! 3146: { ! 3147: finish_function (lineno, 1); ! 3148: /* finish_function performs these three statements: ! 3149: ! 3150: expand_end_bindings (getdecls (), 1, 0); ! 3151: poplevel (1, 1, 0); ! 3152: ! 3153: expand_end_bindings (0, 0, 0); ! 3154: poplevel (0, 0, 1); ! 3155: */ ! 3156: if (yyval.ttype) process_next_inline (yyval.ttype); ! 3157: ; ! 3158: break;} ! 3159: case 58: ! 3160: #line 560 "cp-parse.y" ! 3161: { ! 3162: finish_function (lineno, 1); ! 3163: /* finish_function performs these three statements: ! 3164: ! 3165: expand_end_bindings (getdecls (), 1, 0); ! 3166: poplevel (1, 1, 0); ! 3167: ! 3168: expand_end_bindings (0, 0, 0); ! 3169: poplevel (0, 0, 1); ! 3170: */ ! 3171: if (yyval.ttype) process_next_inline (yyval.ttype); ! 3172: ; ! 3173: break;} ! 3174: case 59: ! 3175: #line 573 "cp-parse.y" ! 3176: { finish_function (lineno, 0); ! 3177: if (yyval.ttype) process_next_inline (yyval.ttype); ; ! 3178: break;} ! 3179: case 60: ! 3180: #line 576 "cp-parse.y" ! 3181: { finish_function (lineno, 0); ! 3182: if (yyval.ttype) process_next_inline (yyval.ttype); ; ! 3183: break;} ! 3184: case 61: ! 3185: #line 579 "cp-parse.y" ! 3186: { finish_function (lineno, 0); ! 3187: if (yyval.ttype) process_next_inline (yyval.ttype); ; ! 3188: break;} ! 3189: case 62: ! 3190: #line 582 "cp-parse.y" ! 3191: {; ! 3192: break;} ! 3193: case 63: ! 3194: #line 584 "cp-parse.y" ! 3195: {; ! 3196: break;} ! 3197: case 64: ! 3198: #line 586 "cp-parse.y" ! 3199: {; ! 3200: break;} ! 3201: case 65: ! 3202: #line 591 "cp-parse.y" ! 3203: { if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0)) ! 3204: YYERROR1; ! 3205: reinit_parse_for_function (); ! 3206: yyval.ttype = NULL_TREE; ; ! 3207: break;} ! 3208: case 66: ! 3209: #line 596 "cp-parse.y" ! 3210: { if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0)) ! 3211: YYERROR1; ! 3212: reinit_parse_for_function (); ! 3213: yyval.ttype = NULL_TREE; ; ! 3214: break;} ! 3215: case 67: ! 3216: #line 601 "cp-parse.y" ! 3217: { if (! start_function (NULL_TREE, yyval.ttype, yyvsp[0].ttype, 0)) ! 3218: YYERROR1; ! 3219: reinit_parse_for_function (); ! 3220: yyval.ttype = NULL_TREE; ; ! 3221: break;} ! 3222: case 68: ! 3223: #line 606 "cp-parse.y" ! 3224: { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0)) ! 3225: YYERROR1; ! 3226: reinit_parse_for_function (); ! 3227: yyval.ttype = NULL_TREE; ; ! 3228: break;} ! 3229: case 69: ! 3230: #line 611 "cp-parse.y" ! 3231: { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0)) ! 3232: YYERROR1; ! 3233: reinit_parse_for_function (); ! 3234: yyval.ttype = NULL_TREE; ; ! 3235: break;} ! 3236: case 70: ! 3237: #line 616 "cp-parse.y" ! 3238: { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0)) ! 3239: YYERROR1; ! 3240: reinit_parse_for_function (); ! 3241: yyval.ttype = NULL_TREE; ; ! 3242: break;} ! 3243: case 71: ! 3244: #line 621 "cp-parse.y" ! 3245: { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0)) ! 3246: YYERROR1; ! 3247: reinit_parse_for_function (); ! 3248: yyval.ttype = NULL_TREE; ; ! 3249: break;} ! 3250: case 72: ! 3251: #line 626 "cp-parse.y" ! 3252: { start_function (NULL_TREE, TREE_VALUE (yyval.ttype), NULL_TREE, 1); ! 3253: reinit_parse_for_function (); ; ! 3254: break;} ! 3255: case 73: ! 3256: #line 633 "cp-parse.y" ! 3257: { ! 3258: tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype); ! 3259: yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype); ! 3260: if (! yyval.ttype) ! 3261: YYERROR1; ! 3262: if (yychar == YYEMPTY) ! 3263: yychar = YYLEX; ! 3264: reinit_parse_for_method (yychar, yyval.ttype); ; ! 3265: break;} ! 3266: case 74: ! 3267: #line 642 "cp-parse.y" ! 3268: { ! 3269: tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype); ! 3270: yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype); ! 3271: if (! yyval.ttype) ! 3272: YYERROR1; ! 3273: if (yychar == YYEMPTY) ! 3274: yychar = YYLEX; ! 3275: reinit_parse_for_method (yychar, yyval.ttype); ; ! 3276: break;} ! 3277: case 75: ! 3278: #line 651 "cp-parse.y" ! 3279: { yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ! 3280: if (! yyval.ttype) ! 3281: YYERROR1; ! 3282: if (yychar == YYEMPTY) ! 3283: yychar = YYLEX; ! 3284: reinit_parse_for_method (yychar, yyval.ttype); ; ! 3285: break;} ! 3286: case 76: ! 3287: #line 658 "cp-parse.y" ! 3288: { ! 3289: tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype); ! 3290: yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype); ! 3291: if (! yyval.ttype) ! 3292: YYERROR1; ! 3293: if (yychar == YYEMPTY) ! 3294: yychar = YYLEX; ! 3295: reinit_parse_for_method (yychar, yyval.ttype); ; ! 3296: break;} ! 3297: case 77: ! 3298: #line 667 "cp-parse.y" ! 3299: { ! 3300: tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype); ! 3301: yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype); ! 3302: if (! yyval.ttype) ! 3303: YYERROR1; ! 3304: if (yychar == YYEMPTY) ! 3305: yychar = YYLEX; ! 3306: reinit_parse_for_method (yychar, yyval.ttype); ; ! 3307: break;} ! 3308: case 78: ! 3309: #line 676 "cp-parse.y" ! 3310: { yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ! 3311: if (! yyval.ttype) ! 3312: YYERROR1; ! 3313: if (yychar == YYEMPTY) ! 3314: yychar = YYLEX; ! 3315: reinit_parse_for_method (yychar, yyval.ttype); ; ! 3316: break;} ! 3317: case 79: ! 3318: #line 683 "cp-parse.y" ! 3319: { yyval.ttype = start_method (NULL_TREE, yyval.ttype, yyvsp[0].ttype); ! 3320: if (! yyval.ttype) ! 3321: YYERROR1; ! 3322: if (yychar == YYEMPTY) ! 3323: yychar = YYLEX; ! 3324: reinit_parse_for_method (yychar, yyval.ttype); ; ! 3325: break;} ! 3326: case 80: ! 3327: #line 692 "cp-parse.y" ! 3328: { ! 3329: if (! current_function_parms_stored) ! 3330: store_parm_decls (); ! 3331: yyval.ttype = yyvsp[0].ttype; ! 3332: ; ! 3333: break;} ! 3334: case 81: ! 3335: #line 700 "cp-parse.y" ! 3336: { store_return_init (yyval.ttype, NULL_TREE); ; ! 3337: break;} ! 3338: case 82: ! 3339: #line 702 "cp-parse.y" ! 3340: { store_return_init (yyval.ttype, yyvsp[-1].code); ; ! 3341: break;} ! 3342: case 83: ! 3343: #line 704 "cp-parse.y" ! 3344: { store_return_init (yyval.ttype, yyvsp[-1].ttype); ; ! 3345: break;} ! 3346: case 84: ! 3347: #line 706 "cp-parse.y" ! 3348: { store_return_init (yyval.ttype, NULL_TREE); ; ! 3349: break;} ! 3350: case 85: ! 3351: #line 711 "cp-parse.y" ! 3352: { ! 3353: if (yyvsp[0].itype == 0) ! 3354: error ("no base initializers given following ':'"); ! 3355: setup_vtbl_ptr (); ! 3356: ; ! 3357: break;} ! 3358: case 86: ! 3359: #line 720 "cp-parse.y" ! 3360: { ! 3361: if (! current_function_parms_stored) ! 3362: store_parm_decls (); ! 3363: ! 3364: /* Flag that we are processing base and member initializers. */ ! 3365: current_vtable_decl = error_mark_node; ! 3366: ! 3367: if (DECL_CONSTRUCTOR_P (current_function_decl)) ! 3368: { ! 3369: /* Make a contour for the initializer list. */ ! 3370: pushlevel (0); ! 3371: clear_last_expr (); ! 3372: expand_start_bindings (0); ! 3373: } ! 3374: else if (current_class_type == NULL_TREE) ! 3375: error ("base initializers not allowed for non-member functions"); ! 3376: else if (! DECL_CONSTRUCTOR_P (current_function_decl)) ! 3377: error ("only constructors take base initializers"); ! 3378: ; ! 3379: break;} ! 3380: case 87: ! 3381: #line 743 "cp-parse.y" ! 3382: { yyval.itype = 0; ; ! 3383: break;} ! 3384: case 88: ! 3385: #line 745 "cp-parse.y" ! 3386: { yyval.itype = 1; ; ! 3387: break;} ! 3388: case 91: ! 3389: #line 751 "cp-parse.y" ! 3390: { ! 3391: if (current_class_name && pedantic) ! 3392: warning ("old style base class initialization; use `%s (...)'", ! 3393: IDENTIFIER_POINTER (current_class_name)); ! 3394: expand_member_init (C_C_D, NULL_TREE, yyvsp[-1].ttype); ! 3395: ; ! 3396: break;} ! 3397: case 92: ! 3398: #line 758 "cp-parse.y" ! 3399: { ! 3400: if (current_class_name && pedantic) ! 3401: warning ("old style base class initialization; use `%s (...)'", ! 3402: IDENTIFIER_POINTER (current_class_name)); ! 3403: expand_member_init (C_C_D, NULL_TREE, void_type_node); ! 3404: ; ! 3405: break;} ! 3406: case 93: ! 3407: #line 765 "cp-parse.y" ! 3408: { ! 3409: expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype); ! 3410: ; ! 3411: break;} ! 3412: case 94: ! 3413: #line 769 "cp-parse.y" ! 3414: { expand_member_init (C_C_D, yyval.ttype, void_type_node); ; ! 3415: break;} ! 3416: case 95: ! 3417: #line 771 "cp-parse.y" ! 3418: { ! 3419: do_member_init (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ! 3420: ; ! 3421: break;} ! 3422: case 96: ! 3423: #line 775 "cp-parse.y" ! 3424: { ! 3425: do_member_init (yyval.ttype, yyvsp[-1].ttype, void_type_node); ! 3426: ; ! 3427: break;} ! 3428: case 106: ! 3429: #line 799 "cp-parse.y" ! 3430: { yyval.ttype = build_parse_node (BIT_NOT_EXPR,yyvsp[0].ttype);; ! 3431: break;} ! 3432: case 108: ! 3433: #line 802 "cp-parse.y" ! 3434: { yyval.ttype = hack_wrapper (yyval.ttype, NULL_TREE, yyvsp[0].ttype); ; ! 3435: break;} ! 3436: case 109: ! 3437: #line 804 "cp-parse.y" ! 3438: { yyval.ttype = hack_wrapper (yyval.ttype, NULL_TREE, yyvsp[0].ttype); ; ! 3439: break;} ! 3440: case 110: ! 3441: #line 806 "cp-parse.y" ! 3442: { yyval.ttype = hack_wrapper (yyval.ttype, NULL_TREE, yyvsp[0].ttype); ; ! 3443: break;} ! 3444: case 111: ! 3445: #line 808 "cp-parse.y" ! 3446: { yyval.ttype = hack_wrapper (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 3447: break;} ! 3448: case 112: ! 3449: #line 810 "cp-parse.y" ! 3450: { yyval.ttype = hack_wrapper (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 3451: break;} ! 3452: case 113: ! 3453: #line 814 "cp-parse.y" ! 3454: { yyval.itype = 0; ; ! 3455: break;} ! 3456: case 114: ! 3457: #line 816 "cp-parse.y" ! 3458: { yyval.itype = 1; ; ! 3459: break;} ! 3460: case 115: ! 3461: #line 818 "cp-parse.y" ! 3462: { yyval.itype = 2; ; ! 3463: break;} ! 3464: case 116: ! 3465: #line 823 "cp-parse.y" ! 3466: { ! 3467: if (yyvsp[0].ttype) ! 3468: yyval.ttype = yyvsp[0].ttype; ! 3469: else if (yyval.ttype != error_mark_node) ! 3470: yyval.ttype = IDENTIFIER_TYPE_VALUE (yyval.ttype); ! 3471: ; ! 3472: break;} ! 3473: case 117: ! 3474: #line 833 "cp-parse.y" ! 3475: { yyval.ttype = lookup_template_class (yyval.ttype, yyvsp[-1].ttype); ; ! 3476: break;} ! 3477: case 118: ! 3478: #line 839 "cp-parse.y" ! 3479: { yyungetc ('{', 1); yyval.ttype = 0; ; ! 3480: break;} ! 3481: case 119: ! 3482: #line 840 "cp-parse.y" ! 3483: { yyungetc (':', 1); yyval.ttype = 0; ; ! 3484: break;} ! 3485: case 120: ! 3486: #line 842 "cp-parse.y" ! 3487: { yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ; ! 3488: break;} ! 3489: case 121: ! 3490: #line 847 "cp-parse.y" ! 3491: { yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ; ! 3492: break;} ! 3493: case 122: ! 3494: #line 852 "cp-parse.y" ! 3495: { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; ! 3496: break;} ! 3497: case 123: ! 3498: #line 854 "cp-parse.y" ! 3499: { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; ! 3500: break;} ! 3501: case 124: ! 3502: #line 859 "cp-parse.y" ! 3503: { yyval.ttype = groktypename (yyval.ttype); ; ! 3504: break;} ! 3505: case 126: ! 3506: #line 865 "cp-parse.y" ! 3507: { ! 3508: tree t, decl, id, tmpl; ! 3509: ! 3510: id = TREE_VALUE (yyvsp[-1].ttype); ! 3511: tmpl = TREE_PURPOSE (IDENTIFIER_TEMPLATE (id)); ! 3512: t = xref_tag (DECL_TEMPLATE_INFO (tmpl)->aggr, id, yyvsp[0].ttype); ! 3513: set_current_level_tags_transparency (1); ! 3514: assert (TREE_CODE (t) == RECORD_TYPE); ! 3515: yyval.ttype = t; ! 3516: ! 3517: /* Now, put a copy of the decl in global scope, to avoid ! 3518: recursive expansion. */ ! 3519: decl = IDENTIFIER_LOCAL_VALUE (id); ! 3520: if (!decl) ! 3521: decl = IDENTIFIER_CLASS_VALUE (id); ! 3522: /* Now, put a copy of the decl in global scope, to avoid ! 3523: recursive expansion. */ ! 3524: if (decl) ! 3525: { ! 3526: /* Need to copy it to clear the chain pointer, ! 3527: and need to get it into permanent storage. */ ! 3528: extern struct obstack permanent_obstack; ! 3529: assert (TREE_CODE (decl) == TYPE_DECL); ! 3530: push_obstacks (&permanent_obstack, &permanent_obstack); ! 3531: decl = copy_node (decl); ! 3532: if (DECL_LANG_SPECIFIC (decl)) ! 3533: copy_lang_decl (decl); ! 3534: pop_obstacks (); ! 3535: pushdecl_top_level (decl); ! 3536: } ! 3537: ; ! 3538: break;} ! 3539: case 127: ! 3540: #line 897 "cp-parse.y" ! 3541: { ! 3542: extern void end_template_instantiation (); ! 3543: tree id, members; ! 3544: ! 3545: yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-1].ttype, 0, 0); ! 3546: ! 3547: pop_obstacks (); ! 3548: end_template_instantiation (yyvsp[-5].ttype, yyvsp[-3].ttype); ! 3549: ! 3550: /* Now go after the methods & class data. */ ! 3551: instantiate_member_templates (yyvsp[-5].ttype); ! 3552: ; ! 3553: break;} ! 3554: case 128: ! 3555: #line 913 "cp-parse.y" ! 3556: { yyval.ttype = NULL_TREE; ; ! 3557: break;} ! 3558: case 129: ! 3559: #line 915 "cp-parse.y" ! 3560: { yyval.ttype = yyvsp[0].ttype; ; ! 3561: break;} ! 3562: case 130: ! 3563: #line 920 "cp-parse.y" ! 3564: { yyval.ttype = NULL_TREE; /* never used from here... */; ! 3565: break;} ! 3566: case 131: ! 3567: #line 922 "cp-parse.y" ! 3568: { yyval.ttype = yyvsp[-1].ttype; /*???*/ ; ! 3569: break;} ! 3570: case 132: ! 3571: #line 926 "cp-parse.y" ! 3572: { yyval.code = NEGATE_EXPR; ; ! 3573: break;} ! 3574: case 133: ! 3575: #line 928 "cp-parse.y" ! 3576: { yyval.code = CONVERT_EXPR; ; ! 3577: break;} ! 3578: case 134: ! 3579: #line 930 "cp-parse.y" ! 3580: { yyval.code = PREINCREMENT_EXPR; ; ! 3581: break;} ! 3582: case 135: ! 3583: #line 932 "cp-parse.y" ! 3584: { yyval.code = PREDECREMENT_EXPR; ; ! 3585: break;} ! 3586: case 136: ! 3587: #line 934 "cp-parse.y" ! 3588: { yyval.code = TRUTH_NOT_EXPR; ; ! 3589: break;} ! 3590: case 137: ! 3591: #line 938 "cp-parse.y" ! 3592: { yyval.ttype = build_x_compound_expr (yyval.ttype); ; ! 3593: break;} ! 3594: case 139: ! 3595: #line 945 "cp-parse.y" ! 3596: { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; ! 3597: break;} ! 3598: case 140: ! 3599: #line 947 "cp-parse.y" ! 3600: { chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; ! 3601: break;} ! 3602: case 141: ! 3603: #line 949 "cp-parse.y" ! 3604: { chainon (yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ; ! 3605: break;} ! 3606: case 142: ! 3607: #line 954 "cp-parse.y" ! 3608: { ! 3609: if (TREE_CODE (yyval.ttype) == TYPE_EXPR) ! 3610: yyval.ttype = build_component_type_expr (C_C_D, yyval.ttype, NULL_TREE, 1); ! 3611: ; ! 3612: break;} ! 3613: case 143: ! 3614: #line 959 "cp-parse.y" ! 3615: { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ; ! 3616: break;} ! 3617: case 144: ! 3618: #line 961 "cp-parse.y" ! 3619: { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ; ! 3620: break;} ! 3621: case 145: ! 3622: #line 963 "cp-parse.y" ! 3623: { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ; ! 3624: break;} ! 3625: case 146: ! 3626: #line 965 "cp-parse.y" ! 3627: { yyval.ttype = build_x_unary_op (yyval.ttype, yyvsp[0].ttype); ! 3628: if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST) ! 3629: TREE_NEGATED_INT (yyval.ttype) = 1; ! 3630: ; ! 3631: break;} ! 3632: case 147: ! 3633: #line 970 "cp-parse.y" ! 3634: { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF ! 3635: && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1))) ! 3636: error ("sizeof applied to a bit-field"); ! 3637: /* ANSI says arrays and functions are converted inside comma. ! 3638: But we can't really convert them in build_compound_expr ! 3639: because that would break commas in lvalues. ! 3640: So do the conversion here if operand was a comma. */ ! 3641: if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR ! 3642: && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE ! 3643: || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE)) ! 3644: yyvsp[0].ttype = default_conversion (yyvsp[0].ttype); ! 3645: yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ; ! 3646: break;} ! 3647: case 148: ! 3648: #line 983 "cp-parse.y" ! 3649: { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ; ! 3650: break;} ! 3651: case 149: ! 3652: #line 985 "cp-parse.y" ! 3653: { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF ! 3654: && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1))) ! 3655: error ("`__alignof' applied to a bit-field"); ! 3656: if (TREE_CODE (yyvsp[0].ttype) == INDIRECT_REF) ! 3657: { ! 3658: tree t = TREE_OPERAND (yyvsp[0].ttype, 0); ! 3659: tree best = t; ! 3660: int bestalign = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (t))); ! 3661: while (TREE_CODE (t) == NOP_EXPR ! 3662: && TREE_CODE (TREE_TYPE (TREE_OPERAND (t, 0))) == POINTER_TYPE) ! 3663: { ! 3664: int thisalign; ! 3665: t = TREE_OPERAND (t, 0); ! 3666: thisalign = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (t))); ! 3667: if (thisalign > bestalign) ! 3668: best = t, bestalign = thisalign; ! 3669: } ! 3670: yyval.ttype = c_alignof (TREE_TYPE (TREE_TYPE (best))); ! 3671: } ! 3672: else ! 3673: { ! 3674: /* ANSI says arrays and fns are converted inside comma. ! 3675: But we can't convert them in build_compound_expr ! 3676: because that would break commas in lvalues. ! 3677: So do the conversion here if operand was a comma. */ ! 3678: if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR ! 3679: && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE ! 3680: || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE)) ! 3681: yyvsp[0].ttype = default_conversion (yyvsp[0].ttype); ! 3682: yyval.ttype = c_alignof (TREE_TYPE (yyvsp[0].ttype)); ! 3683: } ! 3684: ; ! 3685: break;} ! 3686: case 150: ! 3687: #line 1018 "cp-parse.y" ! 3688: { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ; ! 3689: break;} ! 3690: case 151: ! 3691: #line 1021 "cp-parse.y" ! 3692: { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype); ; ! 3693: break;} ! 3694: case 152: ! 3695: #line 1023 "cp-parse.y" ! 3696: { yyval.ttype = build_new (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyval.ttype); ; ! 3697: break;} ! 3698: case 153: ! 3699: #line 1025 "cp-parse.y" ! 3700: { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE, yyval.ttype); ; ! 3701: break;} ! 3702: case 154: ! 3703: #line 1027 "cp-parse.y" ! 3704: { yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ; ! 3705: break;} ! 3706: case 155: ! 3707: #line 1033 "cp-parse.y" ! 3708: { ! 3709: tree absdcl, typename; ! 3710: static int gave_warning = 0; ! 3711: ! 3712: illegal_new_array: ! 3713: absdcl = build_parse_node (ARRAY_REF, yyvsp[-4].ttype, yyvsp[-1].ttype); ! 3714: typename = build_decl_list (yyvsp[-5].ttype, absdcl); ! 3715: warning ("array dimensions with parenthesized type is disallowed in standard C++"); ! 3716: if (!gave_warning) ! 3717: { ! 3718: gave_warning++; ! 3719: warning (" (per grammar in Ellis & Stroustrup [1990], chapter 17)"); ! 3720: warning (" try rewriting, perhaps with a typedef"); ! 3721: } ! 3722: yyval.ttype = build_new (yyvsp[-7].ttype, typename, NULL_TREE, yyval.ttype); ! 3723: ; ! 3724: break;} ! 3725: case 156: ! 3726: #line 1050 "cp-parse.y" ! 3727: { goto illegal_new_array; ; ! 3728: break;} ! 3729: case 157: ! 3730: #line 1053 "cp-parse.y" ! 3731: { ! 3732: yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype); ! 3733: ; ! 3734: break;} ! 3735: case 158: ! 3736: #line 1057 "cp-parse.y" ! 3737: { yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype); ; ! 3738: break;} ! 3739: case 159: ! 3740: #line 1060 "cp-parse.y" ! 3741: { yyungetc (':', 1); ! 3742: yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype); ; ! 3743: break;} ! 3744: case 160: ! 3745: #line 1064 "cp-parse.y" ! 3746: { tree expr = stabilize_reference (convert_from_reference (yyvsp[0].ttype)); ! 3747: tree type = TREE_TYPE (expr); ! 3748: ! 3749: if (integer_zerop (expr)) ! 3750: yyval.ttype = build1 (NOP_EXPR, void_type_node, expr); ! 3751: else if (TREE_CODE (type) != POINTER_TYPE) ! 3752: { ! 3753: error ("non-pointer type to `delete'"); ! 3754: yyval.ttype = error_mark_node; ! 3755: break; ! 3756: } ! 3757: yyval.ttype = build_delete (type, expr, integer_three_node, ! 3758: LOOKUP_NORMAL|LOOKUP_HAS_IN_CHARGE, ! 3759: TYPE_HAS_DESTRUCTOR (TREE_TYPE (type)) ? yyval.ttype : 0, 1); ! 3760: ; ! 3761: break;} ! 3762: case 161: ! 3763: #line 1080 "cp-parse.y" ! 3764: { ! 3765: tree exp = stabilize_reference (convert_from_reference (yyvsp[0].ttype)); ! 3766: tree elt_size = c_sizeof (TREE_TYPE (exp)); ! 3767: ! 3768: if (yychar == YYEMPTY) ! 3769: yychar = YYLEX; ! 3770: ! 3771: yyval.ttype = build_vec_delete (exp, NULL_TREE, elt_size, NULL_TREE, ! 3772: integer_one_node, integer_two_node); ! 3773: ; ! 3774: break;} ! 3775: case 162: ! 3776: #line 1091 "cp-parse.y" ! 3777: { ! 3778: tree maxindex = build_binary_op (MINUS_EXPR, yyvsp[-2].ttype, ! 3779: integer_one_node); ! 3780: tree exp = stabilize_reference (convert_from_reference (yyvsp[0].ttype)); ! 3781: tree elt_size = c_sizeof (TREE_TYPE (exp)); ! 3782: ! 3783: if (yychar == YYEMPTY) ! 3784: yychar = YYLEX; ! 3785: ! 3786: warning ("use of array size with vector delete is anachronistic"); ! 3787: yyval.ttype = build_vec_delete (exp, maxindex, elt_size, NULL_TREE, ! 3788: integer_one_node, integer_two_node); ! 3789: ; ! 3790: break;} ! 3791: case 164: ! 3792: #line 1109 "cp-parse.y" ! 3793: { tree type = groktypename (yyvsp[-2].ttype); ! 3794: yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ; ! 3795: break;} ! 3796: case 165: ! 3797: #line 1112 "cp-parse.y" ! 3798: { tree type = groktypename (yyvsp[-5].ttype); ! 3799: tree init = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); ! 3800: if (pedantic) ! 3801: warning ("ANSI C forbids constructor-expressions"); ! 3802: /* Indicate that this was a GNU C constructor expression. */ ! 3803: TREE_HAS_CONSTRUCTOR (init) = 1; ! 3804: yyval.ttype = digest_init (type, init, 0); ! 3805: if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0) ! 3806: { ! 3807: int failure = complete_array_type (type, yyval.ttype, 1); ! 3808: if (failure) ! 3809: abort (); ! 3810: } ! 3811: ; ! 3812: break;} ! 3813: case 166: ! 3814: #line 1127 "cp-parse.y" ! 3815: { yyval.ttype = build_headof (yyvsp[-1].ttype); ; ! 3816: break;} ! 3817: case 167: ! 3818: #line 1129 "cp-parse.y" ! 3819: { yyval.ttype = build_classof (yyvsp[-1].ttype); ; ! 3820: break;} ! 3821: case 168: ! 3822: #line 1131 "cp-parse.y" ! 3823: { if (is_aggr_typedef (yyvsp[-1].ttype, 1)) ! 3824: { ! 3825: tree type = IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype); ! 3826: yyval.ttype = CLASSTYPE_DOSSIER (type); ! 3827: } ! 3828: else ! 3829: yyval.ttype = error_mark_node; ! 3830: ; ! 3831: break;} ! 3832: case 170: ! 3833: #line 1144 "cp-parse.y" ! 3834: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; ! 3835: break;} ! 3836: case 171: ! 3837: #line 1146 "cp-parse.y" ! 3838: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; ! 3839: break;} ! 3840: case 172: ! 3841: #line 1148 "cp-parse.y" ! 3842: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; ! 3843: break;} ! 3844: case 173: ! 3845: #line 1150 "cp-parse.y" ! 3846: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; ! 3847: break;} ! 3848: case 174: ! 3849: #line 1152 "cp-parse.y" ! 3850: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; ! 3851: break;} ! 3852: case 175: ! 3853: #line 1154 "cp-parse.y" ! 3854: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; ! 3855: break;} ! 3856: case 176: ! 3857: #line 1156 "cp-parse.y" ! 3858: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; ! 3859: break;} ! 3860: case 177: ! 3861: #line 1158 "cp-parse.y" ! 3862: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; ! 3863: break;} ! 3864: case 178: ! 3865: #line 1160 "cp-parse.y" ! 3866: { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ; ! 3867: break;} ! 3868: case 179: ! 3869: #line 1162 "cp-parse.y" ! 3870: { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ; ! 3871: break;} ! 3872: case 180: ! 3873: #line 1164 "cp-parse.y" ! 3874: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; ! 3875: break;} ! 3876: case 181: ! 3877: #line 1166 "cp-parse.y" ! 3878: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; ! 3879: break;} ! 3880: case 182: ! 3881: #line 1168 "cp-parse.y" ! 3882: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; ! 3883: break;} ! 3884: case 183: ! 3885: #line 1170 "cp-parse.y" ! 3886: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; ! 3887: break;} ! 3888: case 184: ! 3889: #line 1172 "cp-parse.y" ! 3890: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; ! 3891: break;} ! 3892: case 185: ! 3893: #line 1174 "cp-parse.y" ! 3894: { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; ! 3895: break;} ! 3896: case 186: ! 3897: #line 1176 "cp-parse.y" ! 3898: { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; ! 3899: break;} ! 3900: case 187: ! 3901: #line 1178 "cp-parse.y" ! 3902: { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 3903: break;} ! 3904: case 188: ! 3905: #line 1180 "cp-parse.y" ! 3906: { yyval.ttype = build_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); ; ! 3907: break;} ! 3908: case 189: ! 3909: #line 1182 "cp-parse.y" ! 3910: { register tree rval; ! 3911: if (rval = build_opfncall (MODIFY_EXPR, LOOKUP_NORMAL, yyval.ttype, yyvsp[0].ttype, yyvsp[-1].code)) ! 3912: yyval.ttype = rval; ! 3913: else ! 3914: yyval.ttype = build_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ; ! 3915: break;} ! 3916: case 190: ! 3917: #line 1188 "cp-parse.y" ! 3918: { yyval.ttype = build_m_component_ref (yyval.ttype, build_indirect_ref (yyvsp[0].ttype, 0)); ; ! 3919: break;} ! 3920: case 191: ! 3921: #line 1191 "cp-parse.y" ! 3922: { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ; ! 3923: break;} ! 3924: case 192: ! 3925: #line 1207 "cp-parse.y" ! 3926: { yyval.ttype = do_identifier (yyval.ttype); ; ! 3927: break;} ! 3928: case 193: ! 3929: #line 1209 "cp-parse.y" ! 3930: { ! 3931: tree op = yyval.ttype; ! 3932: if (TREE_CODE (op) != IDENTIFIER_NODE) ! 3933: yyval.ttype = op; ! 3934: else ! 3935: { ! 3936: yyval.ttype = lookup_name (op); ! 3937: if (yyval.ttype == NULL_TREE) ! 3938: { ! 3939: error ("operator %s not defined", operator_name_string (op)); ! 3940: yyval.ttype = error_mark_node; ! 3941: } ! 3942: } ! 3943: ; ! 3944: break;} ! 3945: case 195: ! 3946: #line 1225 "cp-parse.y" ! 3947: { yyval.ttype = combine_strings (yyval.ttype); ; ! 3948: break;} ! 3949: case 196: ! 3950: #line 1227 "cp-parse.y" ! 3951: { yyval.ttype = yyvsp[-1].ttype; ; ! 3952: break;} ! 3953: case 197: ! 3954: #line 1229 "cp-parse.y" ! 3955: { yyval.ttype = error_mark_node; ; ! 3956: break;} ! 3957: case 198: ! 3958: #line 1231 "cp-parse.y" ! 3959: { if (current_function_decl == 0) ! 3960: { ! 3961: error ("braced-group within expression allowed only inside a function"); ! 3962: YYERROR; ! 3963: } ! 3964: keep_next_level (); ! 3965: yyval.ttype = expand_start_stmt_expr (); ; ! 3966: break;} ! 3967: case 199: ! 3968: #line 1239 "cp-parse.y" ! 3969: { tree rtl_exp; ! 3970: if (pedantic) ! 3971: warning ("ANSI C forbids braced-groups within expressions"); ! 3972: rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype); ! 3973: /* The statements have side effects, so the group does. */ ! 3974: TREE_SIDE_EFFECTS (rtl_exp) = 1; ! 3975: ! 3976: /* Make a BIND_EXPR for the BLOCK already made. */ ! 3977: yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp), ! 3978: NULL_TREE, rtl_exp, yyvsp[-1].ttype); ! 3979: ; ! 3980: break;} ! 3981: case 200: ! 3982: #line 1251 "cp-parse.y" ! 3983: { /* [eichin:19911016.1902EST] */ ! 3984: extern struct pending_template* pending_templates; ! 3985: yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_decl); ! 3986: /* here we instantiate_class_template as needed... */ ! 3987: if (pending_templates) do_pending_templates (); ! 3988: ; ! 3989: break;} ! 3990: case 201: ! 3991: #line 1256 "cp-parse.y" ! 3992: { ! 3993: if (TREE_CODE (yyvsp[-1].ttype) == CALL_EXPR ! 3994: && TREE_TYPE (yyvsp[-1].ttype) != void_type_node) ! 3995: yyval.ttype = require_complete_type (yyvsp[-1].ttype); ! 3996: else ! 3997: yyval.ttype = yyvsp[-1].ttype; ! 3998: ; ! 3999: break;} ! 4000: case 202: ! 4001: #line 1264 "cp-parse.y" ! 4002: { ! 4003: yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_decl); ! 4004: if (TREE_CODE (yyval.ttype) == CALL_EXPR ! 4005: && TREE_TYPE (yyval.ttype) != void_type_node) ! 4006: yyval.ttype = require_complete_type (yyval.ttype); ! 4007: ; ! 4008: break;} ! 4009: case 203: ! 4010: #line 1271 "cp-parse.y" ! 4011: { ! 4012: do_array: ! 4013: { ! 4014: tree array_expr = yyval.ttype; ! 4015: tree index_exp = yyvsp[-1].ttype; ! 4016: tree type = TREE_TYPE (array_expr); ! 4017: if (type == error_mark_node || index_exp == error_mark_node) ! 4018: yyval.ttype = error_mark_node; ! 4019: else if (type == NULL_TREE) ! 4020: { ! 4021: /* Something has gone very wrong. Assume we ! 4022: are mistakenly reducing an expression ! 4023: instead of a declaration. */ ! 4024: error ("parser may be lost: is there a '{' missing somewhere?"); ! 4025: yyval.ttype = NULL_TREE; ! 4026: } ! 4027: else ! 4028: { ! 4029: if (TREE_CODE (type) == OFFSET_TYPE) ! 4030: type = TREE_TYPE (type); ! 4031: if (TREE_CODE (type) == REFERENCE_TYPE) ! 4032: type = TREE_TYPE (type); ! 4033: ! 4034: if (TYPE_LANG_SPECIFIC (type) ! 4035: && TYPE_OVERLOADS_ARRAY_REF (type)) ! 4036: yyval.ttype = build_opfncall (ARRAY_REF, LOOKUP_NORMAL, array_expr, index_exp); ! 4037: else if (TREE_CODE (type) == POINTER_TYPE ! 4038: || TREE_CODE (type) == ARRAY_TYPE) ! 4039: yyval.ttype = build_array_ref (array_expr, index_exp); ! 4040: else ! 4041: { ! 4042: type = TREE_TYPE (index_exp); ! 4043: if (TREE_CODE (type) == OFFSET_TYPE) ! 4044: type = TREE_TYPE (type); ! 4045: if (TREE_CODE (type) == REFERENCE_TYPE) ! 4046: type = TREE_TYPE (type); ! 4047: ! 4048: if (TYPE_LANG_SPECIFIC (type) ! 4049: && TYPE_OVERLOADS_ARRAY_REF (type)) ! 4050: error ("array expression backwards"); ! 4051: else if (TREE_CODE (type) == POINTER_TYPE ! 4052: || TREE_CODE (type) == ARRAY_TYPE) ! 4053: yyval.ttype = build_array_ref (index_exp, array_expr); ! 4054: else ! 4055: error("[] applied to non-pointer type"); ! 4056: } ! 4057: } ! 4058: } ! 4059: ; ! 4060: break;} ! 4061: case 204: ! 4062: #line 1321 "cp-parse.y" ! 4063: { yyval.ttype = build_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ; ! 4064: break;} ! 4065: case 205: ! 4066: #line 1323 "cp-parse.y" ! 4067: { ! 4068: tree basetype = yyvsp[-1].ttype; ! 4069: if (is_aggr_typedef (basetype, 1)) ! 4070: { ! 4071: basetype = IDENTIFIER_TYPE_VALUE (basetype); ! 4072: ! 4073: if (yyval.ttype == error_mark_node) ! 4074: ; ! 4075: else if (binfo_or_else (basetype, TREE_TYPE (yyval.ttype))) ! 4076: yyval.ttype = build_component_ref (build_scoped_ref (yyval.ttype, yyvsp[-1].ttype), yyvsp[0].ttype, NULL_TREE, 1); ! 4077: else ! 4078: yyval.ttype = error_mark_node; ! 4079: } ! 4080: else yyval.ttype = error_mark_node; ! 4081: ; ! 4082: break;} ! 4083: case 206: ! 4084: #line 1339 "cp-parse.y" ! 4085: { yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ; ! 4086: break;} ! 4087: case 207: ! 4088: #line 1341 "cp-parse.y" ! 4089: { yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ; ! 4090: break;} ! 4091: case 208: ! 4092: #line 1345 "cp-parse.y" ! 4093: { if (current_class_decl) ! 4094: { ! 4095: #ifdef WARNING_ABOUT_CCD ! 4096: TREE_USED (current_class_decl) = 1; ! 4097: #endif ! 4098: yyval.ttype = current_class_decl; ! 4099: } ! 4100: else if (current_function_decl ! 4101: && DECL_STATIC_FUNCTION_P (current_function_decl)) ! 4102: { ! 4103: error ("`this' is unavailable for static member functions"); ! 4104: yyval.ttype = error_mark_node; ! 4105: } ! 4106: else ! 4107: { ! 4108: if (current_function_decl) ! 4109: error ("invalid use of `this' in non-member function"); ! 4110: else ! 4111: error ("invalid use of `this' at top level"); ! 4112: yyval.ttype = error_mark_node; ! 4113: } ! 4114: ; ! 4115: break;} ! 4116: case 209: ! 4117: #line 1368 "cp-parse.y" ! 4118: { ! 4119: tree type; ! 4120: tree id = yyval.ttype; ! 4121: ! 4122: /* This is a C cast in C++'s `functional' notation. */ ! 4123: if (yyvsp[-1].ttype == error_mark_node) ! 4124: { ! 4125: yyval.ttype = error_mark_node; ! 4126: break; ! 4127: } ! 4128: #if 0 ! 4129: if (yyvsp[-1].ttype == NULL_TREE) ! 4130: { ! 4131: error ("cannot cast null list to type `%s'", ! 4132: IDENTIFIER_POINTER (TYPE_NAME (id))); ! 4133: yyval.ttype = error_mark_node; ! 4134: break; ! 4135: } ! 4136: #endif ! 4137: if (type == error_mark_node) ! 4138: yyval.ttype = error_mark_node; ! 4139: else ! 4140: { ! 4141: if (id == ridpointers[(int) RID_CONST]) ! 4142: type = build_type_variant (integer_type_node, 1, 0); ! 4143: else if (id == ridpointers[(int) RID_VOLATILE]) ! 4144: type = build_type_variant (integer_type_node, 0, 1); ! 4145: else if (id == ridpointers[(int) RID_FRIEND]) ! 4146: { ! 4147: error ("cannot cast expression to `friend' type"); ! 4148: yyval.ttype = error_mark_node; ! 4149: break; ! 4150: } ! 4151: else abort (); ! 4152: yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype)); ! 4153: } ! 4154: ; ! 4155: break;} ! 4156: case 210: ! 4157: #line 1406 "cp-parse.y" ! 4158: { yyval.ttype = build_functional_cast (yyval.ttype, yyvsp[-1].ttype); ; ! 4159: break;} ! 4160: case 211: ! 4161: #line 1408 "cp-parse.y" ! 4162: { yyval.ttype = build_functional_cast (yyval.ttype, NULL_TREE); ; ! 4163: break;} ! 4164: case 212: ! 4165: #line 1410 "cp-parse.y" ! 4166: { ! 4167: do_scoped_id: ! 4168: yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); ! 4169: if (yychar == YYEMPTY) ! 4170: yychar = YYLEX; ! 4171: if (! yyval.ttype) ! 4172: { ! 4173: if (yychar == '(' || yychar == LEFT_RIGHT) ! 4174: yyval.ttype = implicitly_declare (yyvsp[0].ttype); ! 4175: else ! 4176: { ! 4177: if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node) ! 4178: error ("undeclared variable `%s' (first use here)", ! 4179: IDENTIFIER_POINTER (yyvsp[0].ttype)); ! 4180: yyval.ttype = error_mark_node; ! 4181: /* Prevent repeated error messages. */ ! 4182: IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node; ! 4183: } ! 4184: } ! 4185: else ! 4186: { ! 4187: assemble_external (yyval.ttype); ! 4188: TREE_USED (yyval.ttype) = 1; ! 4189: } ! 4190: if (TREE_CODE (yyval.ttype) == CONST_DECL) ! 4191: yyval.ttype = DECL_INITIAL (yyval.ttype); ! 4192: /* XXX CHS - should we set TREE_USED of the constant? */ ! 4193: ; ! 4194: break;} ! 4195: case 213: ! 4196: #line 1439 "cp-parse.y" ! 4197: { ! 4198: if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) ! 4199: goto do_scoped_id; ! 4200: do_scoped_operator: ! 4201: yyval.ttype = yyvsp[0].ttype; ! 4202: ; ! 4203: break;} ! 4204: case 214: ! 4205: #line 1446 "cp-parse.y" ! 4206: { yyval.ttype = build_offset_ref (yyval.ttype, yyvsp[0].ttype); ; ! 4207: break;} ! 4208: case 215: ! 4209: #line 1448 "cp-parse.y" ! 4210: { yyval.ttype = build_member_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ; ! 4211: break;} ! 4212: case 216: ! 4213: #line 1450 "cp-parse.y" ! 4214: { yyval.ttype = build_member_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ; ! 4215: break;} ! 4216: case 217: ! 4217: #line 1452 "cp-parse.y" ! 4218: { yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, ! 4219: (LOOKUP_NORMAL|LOOKUP_AGGR)); ; ! 4220: break;} ! 4221: case 218: ! 4222: #line 1455 "cp-parse.y" ! 4223: { yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE, ! 4224: (LOOKUP_NORMAL|LOOKUP_AGGR)); ; ! 4225: break;} ! 4226: case 219: ! 4227: #line 1458 "cp-parse.y" ! 4228: { yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ; ! 4229: break;} ! 4230: case 220: ! 4231: #line 1460 "cp-parse.y" ! 4232: { yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE); ; ! 4233: break;} ! 4234: case 221: ! 4235: #line 1502 "cp-parse.y" ! 4236: { yyval.ttype = NULL_TREE; ; ! 4237: break;} ! 4238: case 222: ! 4239: #line 1504 "cp-parse.y" ! 4240: { yyval.ttype = yyvsp[-1].ttype; ; ! 4241: break;} ! 4242: case 223: ! 4243: #line 1506 "cp-parse.y" ! 4244: { yyval.ttype = void_type_node; ; ! 4245: break;} ! 4246: case 224: ! 4247: #line 1508 "cp-parse.y" ! 4248: { yyval.ttype = combine_strings (yyvsp[-1].ttype); ; ! 4249: break;} ! 4250: case 225: ! 4251: #line 1513 "cp-parse.y" ! 4252: { yyval.itype = 0; ; ! 4253: break;} ! 4254: case 226: ! 4255: #line 1515 "cp-parse.y" ! 4256: { yyval.itype = 1; ; ! 4257: break;} ! 4258: case 227: ! 4259: #line 1519 "cp-parse.y" ! 4260: { yyval.ttype = NULL_TREE; ; ! 4261: break;} ! 4262: case 228: ! 4263: #line 1521 "cp-parse.y" ! 4264: { if (yyvsp[0].ttype) ! 4265: error ("extra `::' before `delete' ignored"); ! 4266: yyval.ttype = error_mark_node; ! 4267: ; ! 4268: break;} ! 4269: case 230: ! 4270: #line 1531 "cp-parse.y" ! 4271: { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; ! 4272: break;} ! 4273: case 231: ! 4274: #line 1536 "cp-parse.y" ! 4275: { ! 4276: if (! current_function_parms_stored) ! 4277: store_parm_decls (); ! 4278: setup_vtbl_ptr (); ! 4279: ; ! 4280: break;} ! 4281: case 232: ! 4282: #line 1544 "cp-parse.y" ! 4283: { ! 4284: if (yyval.ttype == error_mark_node) ! 4285: ; ! 4286: else ! 4287: { ! 4288: tree type = TREE_TYPE (yyval.ttype); ! 4289: ! 4290: if (! PROMOTES_TO_AGGR_TYPE (type, REFERENCE_TYPE)) ! 4291: { ! 4292: error ("object in '.' expression is not of aggregate type"); ! 4293: yyval.ttype = error_mark_node; ! 4294: } ! 4295: } ! 4296: ; ! 4297: break;} ! 4298: case 233: ! 4299: #line 1559 "cp-parse.y" ! 4300: { ! 4301: yyval.ttype = build_x_arrow (yyval.ttype, 0); ! 4302: ; ! 4303: break;} ! 4304: case 235: ! 4305: #line 1569 "cp-parse.y" ! 4306: { ! 4307: resume_momentary (yyvsp[-1].itype); ! 4308: note_list_got_semicolon (yyval.ttype); ! 4309: ; ! 4310: break;} ! 4311: case 236: ! 4312: #line 1575 "cp-parse.y" ! 4313: { tree d; ! 4314: int yes = suspend_momentary (); ! 4315: d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE); ! 4316: finish_decl (d, NULL_TREE, NULL_TREE); ! 4317: resume_momentary (yes); ! 4318: note_list_got_semicolon (yyval.ttype); ! 4319: ; ! 4320: break;} ! 4321: case 237: ! 4322: #line 1583 "cp-parse.y" ! 4323: { resume_momentary (yyvsp[-1].itype); ; ! 4324: break;} ! 4325: case 238: ! 4326: #line 1586 "cp-parse.y" ! 4327: { tree d; ! 4328: int yes = suspend_momentary (); ! 4329: d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE); ! 4330: finish_decl (d, NULL_TREE, NULL_TREE); ! 4331: resume_momentary (yes); ! 4332: ; ! 4333: break;} ! 4334: case 239: ! 4335: #line 1593 "cp-parse.y" ! 4336: { ! 4337: shadow_tag (yyval.ttype); ! 4338: note_list_got_semicolon (yyval.ttype); ! 4339: ; ! 4340: break;} ! 4341: case 240: ! 4342: #line 1598 "cp-parse.y" ! 4343: { warning ("empty declaration"); ; ! 4344: break;} ! 4345: case 243: ! 4346: #line 1608 "cp-parse.y" ! 4347: { yyval.ttype = yyvsp[0].ttype; ; ! 4348: break;} ! 4349: case 244: ! 4350: #line 1610 "cp-parse.y" ! 4351: { yyval.ttype = yyvsp[0].ttype; ; ! 4352: break;} ! 4353: case 245: ! 4354: #line 1619 "cp-parse.y" ! 4355: { yyval.ttype = list_hash_lookup_or_cons (yyval.ttype); ; ! 4356: break;} ! 4357: case 246: ! 4358: #line 1621 "cp-parse.y" ! 4359: { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype); ; ! 4360: break;} ! 4361: case 247: ! 4362: #line 1623 "cp-parse.y" ! 4363: { yyval.ttype = hash_tree_chain (yyval.ttype, yyvsp[0].ttype); ; ! 4364: break;} ! 4365: case 248: ! 4366: #line 1625 "cp-parse.y" ! 4367: { yyval.ttype = hash_tree_chain (yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ; ! 4368: break;} ! 4369: case 249: ! 4370: #line 1631 "cp-parse.y" ! 4371: { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ; ! 4372: break;} ! 4373: case 250: ! 4374: #line 1633 "cp-parse.y" ! 4375: { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ; ! 4376: break;} ! 4377: case 251: ! 4378: #line 1635 "cp-parse.y" ! 4379: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; ! 4380: break;} ! 4381: case 252: ! 4382: #line 1637 "cp-parse.y" ! 4383: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; ! 4384: break;} ! 4385: case 253: ! 4386: #line 1646 "cp-parse.y" ! 4387: { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ; ! 4388: break;} ! 4389: case 254: ! 4390: #line 1648 "cp-parse.y" ! 4391: { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ; ! 4392: break;} ! 4393: case 255: ! 4394: #line 1650 "cp-parse.y" ! 4395: { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype); ; ! 4396: break;} ! 4397: case 256: ! 4398: #line 1652 "cp-parse.y" ! 4399: { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype); ; ! 4400: break;} ! 4401: case 257: ! 4402: #line 1664 "cp-parse.y" ! 4403: { yyval.ttype = get_decl_list (yyval.ttype); ; ! 4404: break;} ! 4405: case 258: ! 4406: #line 1666 "cp-parse.y" ! 4407: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; ! 4408: break;} ! 4409: case 259: ! 4410: #line 1668 "cp-parse.y" ! 4411: { yyval.ttype = decl_tree_cons (NULL_TREE, yyval.ttype, yyvsp[0].ttype); ; ! 4412: break;} ! 4413: case 260: ! 4414: #line 1670 "cp-parse.y" ! 4415: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ; ! 4416: break;} ! 4417: case 261: ! 4418: #line 1675 "cp-parse.y" ! 4419: { yyval.ttype = get_decl_list (yyval.ttype); ; ! 4420: break;} ! 4421: case 262: ! 4422: #line 1677 "cp-parse.y" ! 4423: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; ! 4424: break;} ! 4425: case 267: ! 4426: #line 1689 "cp-parse.y" ! 4427: { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ! 4428: if (pedantic) ! 4429: warning ("ANSI C forbids `typeof'"); ; ! 4430: break;} ! 4431: case 268: ! 4432: #line 1693 "cp-parse.y" ! 4433: { yyval.ttype = groktypename (yyvsp[-1].ttype); ! 4434: if (pedantic) ! 4435: warning ("ANSI C forbids `typeof'"); ; ! 4436: break;} ! 4437: case 277: ! 4438: #line 1718 "cp-parse.y" ! 4439: { yyval.ttype = NULL_TREE; ; ! 4440: break;} ! 4441: case 278: ! 4442: #line 1720 "cp-parse.y" ! 4443: { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); ! 4444: yyval.ttype = yyvsp[-1].ttype; ! 4445: if (pedantic) ! 4446: warning ("ANSI C forbids use of `asm' keyword"); ! 4447: ; ! 4448: break;} ! 4449: case 279: ! 4450: #line 1729 "cp-parse.y" ! 4451: { current_declspecs = yyvsp[-5].ttype; ! 4452: yyvsp[0].itype = suspend_momentary (); ! 4453: yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype); ; ! 4454: break;} ! 4455: case 280: ! 4456: #line 1734 "cp-parse.y" ! 4457: { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ! 4458: yyval.itype = yyvsp[-2].itype; ; ! 4459: break;} ! 4460: case 281: ! 4461: #line 1737 "cp-parse.y" ! 4462: { tree d; ! 4463: current_declspecs = yyvsp[-4].ttype; ! 4464: yyval.itype = suspend_momentary (); ! 4465: d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype); ! 4466: finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; ! 4467: break;} ! 4468: case 282: ! 4469: #line 1746 "cp-parse.y" ! 4470: { yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype); ; ! 4471: break;} ! 4472: case 283: ! 4473: #line 1749 "cp-parse.y" ! 4474: { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; ! 4475: break;} ! 4476: case 284: ! 4477: #line 1751 "cp-parse.y" ! 4478: { tree d = start_decl (yyval.itype, current_declspecs, 0, yyvsp[-2].ttype); ! 4479: finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; ! 4480: break;} ! 4481: case 285: ! 4482: #line 1757 "cp-parse.y" ! 4483: { current_declspecs = yyvsp[-5].ttype; ! 4484: yyvsp[0].itype = suspend_momentary (); ! 4485: yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype); ; ! 4486: break;} ! 4487: case 286: ! 4488: #line 1762 "cp-parse.y" ! 4489: { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ! 4490: yyval.itype = yyvsp[-2].itype; ; ! 4491: break;} ! 4492: case 287: ! 4493: #line 1765 "cp-parse.y" ! 4494: { tree d; ! 4495: current_declspecs = yyvsp[-4].ttype; ! 4496: yyval.itype = suspend_momentary (); ! 4497: d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype); ! 4498: finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; ! 4499: break;} ! 4500: case 288: ! 4501: #line 1776 "cp-parse.y" ! 4502: { yyval.ttype = NULL_TREE; ; ! 4503: break;} ! 4504: case 289: ! 4505: #line 1778 "cp-parse.y" ! 4506: { yyval.ttype = yyvsp[-2].ttype; ; ! 4507: break;} ! 4508: case 292: ! 4509: #line 1788 "cp-parse.y" ! 4510: { warning ("`%s' attribute directive ignored", ! 4511: IDENTIFIER_POINTER (yyval.ttype)); ; ! 4512: break;} ! 4513: case 293: ! 4514: #line 1791 "cp-parse.y" ! 4515: { /* if not "aligned(1)", then issue warning */ ! 4516: if (strcmp (IDENTIFIER_POINTER (yyval.ttype), "aligned") != 0 ! 4517: || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST ! 4518: || TREE_INT_CST_LOW (yyvsp[-1].ttype) != 1) ! 4519: warning ("`%s' attribute directive ignored", ! 4520: IDENTIFIER_POINTER (yyval.ttype)); ; ! 4521: break;} ! 4522: case 294: ! 4523: #line 1798 "cp-parse.y" ! 4524: { warning ("`%s' attribute directive ignored", ! 4525: IDENTIFIER_POINTER (yyval.ttype)); ; ! 4526: break;} ! 4527: case 295: ! 4528: #line 1804 "cp-parse.y" ! 4529: { ; ! 4530: break;} ! 4531: case 296: ! 4532: #line 1806 "cp-parse.y" ! 4533: { ; ! 4534: break;} ! 4535: case 298: ! 4536: #line 1812 "cp-parse.y" ! 4537: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE); ! 4538: TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ! 4539: if (pedantic) ! 4540: warning ("ANSI C forbids empty initializer braces"); ; ! 4541: break;} ! 4542: case 299: ! 4543: #line 1817 "cp-parse.y" ! 4544: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype)); ! 4545: TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; ! 4546: break;} ! 4547: case 300: ! 4548: #line 1820 "cp-parse.y" ! 4549: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); ! 4550: TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; ! 4551: break;} ! 4552: case 301: ! 4553: #line 1823 "cp-parse.y" ! 4554: { yyval.ttype = NULL_TREE; ; ! 4555: break;} ! 4556: case 302: ! 4557: #line 1830 "cp-parse.y" ! 4558: { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; ! 4559: break;} ! 4560: case 303: ! 4561: #line 1832 "cp-parse.y" ! 4562: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; ! 4563: break;} ! 4564: case 304: ! 4565: #line 1835 "cp-parse.y" ! 4566: { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 4567: break;} ! 4568: case 305: ! 4569: #line 1837 "cp-parse.y" ! 4570: { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ; ! 4571: break;} ! 4572: case 306: ! 4573: #line 1839 "cp-parse.y" ! 4574: { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ; ! 4575: break;} ! 4576: case 307: ! 4577: #line 1841 "cp-parse.y" ! 4578: { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ; ! 4579: break;} ! 4580: case 308: ! 4581: #line 1846 "cp-parse.y" ! 4582: { yyvsp[0].itype = suspend_momentary (); ! 4583: yyval.ttype = start_enum (yyvsp[-1].ttype); ; ! 4584: break;} ! 4585: case 309: ! 4586: #line 1849 "cp-parse.y" ! 4587: { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype); ! 4588: resume_momentary (yyvsp[-4].itype); ! 4589: check_for_missing_semicolon (yyvsp[-3].ttype); ; ! 4590: break;} ! 4591: case 310: ! 4592: #line 1853 "cp-parse.y" ! 4593: { yyval.ttype = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE); ! 4594: check_for_missing_semicolon (yyval.ttype); ; ! 4595: break;} ! 4596: case 311: ! 4597: #line 1856 "cp-parse.y" ! 4598: { yyvsp[0].itype = suspend_momentary (); ! 4599: yyval.ttype = start_enum (make_anon_name ()); ; ! 4600: break;} ! 4601: case 312: ! 4602: #line 1859 "cp-parse.y" ! 4603: { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype); ! 4604: resume_momentary (yyvsp[-5].itype); ! 4605: check_for_missing_semicolon (yyvsp[-3].ttype); ; ! 4606: break;} ! 4607: case 313: ! 4608: #line 1863 "cp-parse.y" ! 4609: { yyval.ttype = finish_enum (start_enum (make_anon_name()), NULL_TREE); ! 4610: check_for_missing_semicolon (yyval.ttype); ; ! 4611: break;} ! 4612: case 314: ! 4613: #line 1866 "cp-parse.y" ! 4614: { yyval.ttype = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE); ; ! 4615: break;} ! 4616: case 315: ! 4617: #line 1870 "cp-parse.y" ! 4618: { ! 4619: int semi; ! 4620: #if 0 ! 4621: /* Need to rework class nesting in the ! 4622: presence of nested classes, etc. */ ! 4623: shadow_tag (CLASSTYPE_AS_LIST (yyval.ttype)); */ ! 4624: #endif ! 4625: semi = yychar == ';'; ! 4626: if (semi) ! 4627: note_got_semicolon (yyval.ttype); ! 4628: if (TREE_CODE (yyval.ttype) == ENUMERAL_TYPE) ! 4629: /* $$ = $1 from default rule. */; ! 4630: else if (CLASSTYPE_DECLARED_EXCEPTION (yyval.ttype)) ! 4631: { ! 4632: if (! semi) ! 4633: yyval.ttype = finish_exception (yyval.ttype, yyvsp[-1].ttype); ! 4634: else ! 4635: warning ("empty exception declaration\n"); ! 4636: } ! 4637: else ! 4638: yyval.ttype = finish_struct (yyval.ttype, yyvsp[-1].ttype, semi, semi); ! 4639: ! 4640: pop_obstacks (); ! 4641: if (! semi) ! 4642: check_for_missing_semicolon (yyval.ttype); ; ! 4643: break;} ! 4644: case 316: ! 4645: #line 1896 "cp-parse.y" ! 4646: { ! 4647: #if 0 ! 4648: /* It's no longer clear what the following error is supposed to ! 4649: accomplish. If it turns out to be needed, add a comment why. */ ! 4650: if (TYPE_BINFO_BASETYPES (yyval.ttype) && !TYPE_SIZE (yyval.ttype)) ! 4651: { ! 4652: error ("incomplete definition of type `%s'", ! 4653: TYPE_NAME_STRING (yyval.ttype)); ! 4654: yyval.ttype = error_mark_node; ! 4655: } ! 4656: #endif ! 4657: ; ! 4658: break;} ! 4659: case 320: ! 4660: #line 1918 "cp-parse.y" ! 4661: { if (pedantic) warning ("comma at end of enumerator list"); ; ! 4662: break;} ! 4663: case 322: ! 4664: #line 1923 "cp-parse.y" ! 4665: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; ! 4666: break;} ! 4667: case 323: ! 4668: #line 1925 "cp-parse.y" ! 4669: { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 4670: break;} ! 4671: case 324: ! 4672: #line 1927 "cp-parse.y" ! 4673: { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ! 4674: ; ! 4675: break;} ! 4676: case 325: ! 4677: #line 1930 "cp-parse.y" ! 4678: { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ! 4679: ; ! 4680: break;} ! 4681: case 326: ! 4682: #line 1933 "cp-parse.y" ! 4683: { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ! 4684: ; ! 4685: break;} ! 4686: case 327: ! 4687: #line 1936 "cp-parse.y" ! 4688: { error ("no body nor ';' separates two class, struct or union declarations"); ! 4689: ; ! 4690: break;} ! 4691: case 328: ! 4692: #line 1942 "cp-parse.y" ! 4693: { aggr1: current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; ! 4694: break;} ! 4695: case 329: ! 4696: #line 1944 "cp-parse.y" ! 4697: { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; ! 4698: break;} ! 4699: case 330: ! 4700: #line 1946 "cp-parse.y" ! 4701: { yyungetc (':', 1); goto aggr1; ; ! 4702: break;} ! 4703: case 331: ! 4704: #line 1948 "cp-parse.y" ! 4705: { yyungetc ('{', 1); ! 4706: aggr2: ! 4707: current_aggr = yyval.ttype; ! 4708: yyval.ttype = yyvsp[-1].ttype; ; ! 4709: break;} ! 4710: case 332: ! 4711: #line 1953 "cp-parse.y" ! 4712: { yyungetc (':', 1); goto aggr2; ; ! 4713: break;} ! 4714: case 333: ! 4715: #line 1958 "cp-parse.y" ! 4716: { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; ! 4717: break;} ! 4718: case 334: ! 4719: #line 1963 "cp-parse.y" ! 4720: { ! 4721: yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE); ! 4722: ; ! 4723: break;} ! 4724: case 335: ! 4725: #line 1967 "cp-parse.y" ! 4726: { ! 4727: if (yyvsp[0].ttype) ! 4728: yyval.ttype = xref_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype); ! 4729: else ! 4730: yyval.ttype = yyvsp[-1].ttype; ! 4731: ; ! 4732: break;} ! 4733: case 336: ! 4734: #line 1975 "cp-parse.y" ! 4735: { ! 4736: yyval.ttype = xref_defn_tag (current_aggr, yyvsp[0].ttype, NULL_TREE); ! 4737: ; ! 4738: break;} ! 4739: case 337: ! 4740: #line 1979 "cp-parse.y" ! 4741: { ! 4742: if (yyvsp[0].ttype) ! 4743: yyval.ttype = xref_defn_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype); ! 4744: else ! 4745: yyval.ttype = yyvsp[-1].ttype; ! 4746: ; ! 4747: break;} ! 4748: case 338: ! 4749: #line 1988 "cp-parse.y" ! 4750: { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE); ! 4751: yyungetc ('{', 1); ; ! 4752: break;} ! 4753: case 341: ! 4754: #line 1996 "cp-parse.y" ! 4755: { yyval.ttype = NULL_TREE; ; ! 4756: break;} ! 4757: case 342: ! 4758: #line 1998 "cp-parse.y" ! 4759: { yyungetc(':', 1); yyval.ttype = NULL_TREE; ; ! 4760: break;} ! 4761: case 343: ! 4762: #line 2000 "cp-parse.y" ! 4763: { yyval.ttype = yyvsp[0].ttype; ; ! 4764: break;} ! 4765: case 345: ! 4766: #line 2006 "cp-parse.y" ! 4767: { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; ! 4768: break;} ! 4769: case 346: ! 4770: #line 2011 "cp-parse.y" ! 4771: { if (! is_aggr_typedef (yyval.ttype, 1)) ! 4772: yyval.ttype = NULL_TREE; ! 4773: else yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ; ! 4774: break;} ! 4775: case 347: ! 4776: #line 2015 "cp-parse.y" ! 4777: { if (! is_aggr_typedef (yyvsp[0].ttype, 1)) ! 4778: yyval.ttype = NULL_TREE; ! 4779: else yyval.ttype = build_tree_list ((tree) yyval.ttype, yyvsp[0].ttype); ; ! 4780: break;} ! 4781: case 350: ! 4782: #line 2027 "cp-parse.y" ! 4783: { ! 4784: if (yyval.itype == visibility_protected) ! 4785: { ! 4786: warning ("`protected' visibility not implemented"); ! 4787: yyval.itype = visibility_public; ! 4788: } ! 4789: ; ! 4790: break;} ! 4791: case 351: ! 4792: #line 2035 "cp-parse.y" ! 4793: { if (yyval.ttype != ridpointers[(int)RID_VIRTUAL]) ! 4794: sorry ("non-virtual visibility"); ! 4795: yyval.itype = visibility_default_virtual; ; ! 4796: break;} ! 4797: case 352: ! 4798: #line 2039 "cp-parse.y" ! 4799: { int err = 0; ! 4800: if (yyvsp[0].itype == visibility_protected) ! 4801: { ! 4802: warning ("`protected' visibility not implemented"); ! 4803: yyvsp[0].itype = visibility_public; ! 4804: err++; ! 4805: } ! 4806: else if (yyvsp[0].itype == visibility_public) ! 4807: { ! 4808: if (yyvsp[-1].itype == visibility_private) ! 4809: { ! 4810: mixed: ! 4811: error ("base class cannot be public and private"); ! 4812: } ! 4813: else if (yyvsp[-1].itype == visibility_default_virtual) ! 4814: yyval.itype = visibility_public_virtual; ! 4815: } ! 4816: else /* $2 == visibility_priavte */ ! 4817: { ! 4818: if (yyvsp[-1].itype == visibility_public) ! 4819: goto mixed; ! 4820: else if (yyvsp[-1].itype == visibility_default_virtual) ! 4821: yyval.itype = visibility_private_virtual; ! 4822: } ! 4823: ; ! 4824: break;} ! 4825: case 353: ! 4826: #line 2065 "cp-parse.y" ! 4827: { if (yyvsp[0].ttype != ridpointers[(int)RID_VIRTUAL]) ! 4828: sorry ("non-virtual visibility"); ! 4829: if (yyval.itype == visibility_public) ! 4830: yyval.itype = visibility_public_virtual; ! 4831: else if (yyval.itype == visibility_private) ! 4832: yyval.itype = visibility_private_virtual; ; ! 4833: break;} ! 4834: case 354: ! 4835: #line 2074 "cp-parse.y" ! 4836: { tree t; ! 4837: push_obstacks_nochange (); ! 4838: end_temporary_allocation (); ! 4839: ! 4840: if (! IS_AGGR_TYPE (yyvsp[-1].ttype)) ! 4841: { ! 4842: yyvsp[-1].ttype = make_lang_type (RECORD_TYPE); ! 4843: TYPE_NAME (yyvsp[-1].ttype) = get_identifier ("erroneous type"); ! 4844: } ! 4845: if (TYPE_SIZE (yyvsp[-1].ttype)) ! 4846: duplicate_tag_error (yyvsp[-1].ttype); ! 4847: if (TYPE_SIZE (yyvsp[-1].ttype) || TYPE_BEING_DEFINED (yyvsp[-1].ttype)) ! 4848: { ! 4849: t = make_lang_type (TREE_CODE (yyvsp[-1].ttype)); ! 4850: pushtag (DECL_NAME (TYPE_NAME (yyvsp[-1].ttype)), t); ! 4851: yyvsp[-1].ttype = t; ! 4852: } ! 4853: pushclass (yyvsp[-1].ttype, 0); ! 4854: TYPE_BEING_DEFINED (yyvsp[-1].ttype) = 1; ! 4855: t = DECL_NAME (TYPE_NAME (yyvsp[-1].ttype)); ! 4856: if (IDENTIFIER_TEMPLATE (t)) ! 4857: overload_template_name (t, 1); ! 4858: ; ! 4859: break;} ! 4860: case 355: ! 4861: #line 2101 "cp-parse.y" ! 4862: { yyval.ttype = NULL_TREE; ; ! 4863: break;} ! 4864: case 356: ! 4865: #line 2103 "cp-parse.y" ! 4866: { yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ; ! 4867: break;} ! 4868: case 357: ! 4869: #line 2105 "cp-parse.y" ! 4870: { yyval.ttype = chainon (yyval.ttype, build_tree_list ((tree) yyvsp[-2].itype, yyvsp[0].ttype)); ; ! 4871: break;} ! 4872: case 359: ! 4873: #line 2111 "cp-parse.y" ! 4874: { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; ; ! 4875: break;} ! 4876: case 360: ! 4877: #line 2113 "cp-parse.y" ! 4878: { if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node) ! 4879: yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; ! 4880: break;} ! 4881: case 361: ! 4882: #line 2116 "cp-parse.y" ! 4883: { if (pedantic) ! 4884: warning ("extra semicolon in struct or union specified"); ; ! 4885: break;} ! 4886: case 362: ! 4887: #line 2122 "cp-parse.y" ! 4888: { ! 4889: do_components: ! 4890: if (yyvsp[-1].ttype == void_type_node) ! 4891: /* We just got some friends. ! 4892: They have been recorded elsewhere. */ ! 4893: yyval.ttype = NULL_TREE; ! 4894: else if (yyvsp[-1].ttype == NULL_TREE) ! 4895: { ! 4896: tree t = groktypename (build_decl_list (yyval.ttype, NULL_TREE)); ! 4897: if (t == NULL_TREE) ! 4898: { ! 4899: error ("error in component specification"); ! 4900: yyval.ttype = NULL_TREE; ! 4901: } ! 4902: else if (TREE_CODE (t) == UNION_TYPE) ! 4903: { ! 4904: /* handle anonymous unions */ ! 4905: if (CLASSTYPE_METHOD_VEC (t)) ! 4906: sorry ("methods in anonymous unions"); ! 4907: yyval.ttype = build_lang_field_decl (FIELD_DECL, NULL_TREE, t); ! 4908: } ! 4909: else if (TREE_CODE (t) == ENUMERAL_TYPE) ! 4910: yyval.ttype = grok_enum_decls (t, NULL_TREE); ! 4911: else if (TREE_CODE (t) == RECORD_TYPE) ! 4912: { ! 4913: if (TYPE_LANG_SPECIFIC (t) ! 4914: && CLASSTYPE_DECLARED_EXCEPTION (t)) ! 4915: shadow_tag (yyval.ttype); ! 4916: yyval.ttype = NULL_TREE; ! 4917: } ! 4918: else if (t != void_type_node) ! 4919: { ! 4920: error ("empty component declaration"); ! 4921: yyval.ttype = NULL_TREE; ! 4922: } ! 4923: else yyval.ttype = NULL_TREE; ! 4924: } ! 4925: else ! 4926: { ! 4927: tree t = TREE_TYPE (yyvsp[-1].ttype); ! 4928: if (TREE_CODE (t) == ENUMERAL_TYPE && TREE_NONLOCAL_FLAG (t)) ! 4929: yyval.ttype = grok_enum_decls (t, yyvsp[-1].ttype); ! 4930: else ! 4931: yyval.ttype = yyvsp[-1].ttype; ! 4932: } ! 4933: end_exception_decls (); ! 4934: ; ! 4935: break;} ! 4936: case 363: ! 4937: #line 2170 "cp-parse.y" ! 4938: { yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ; ! 4939: break;} ! 4940: case 364: ! 4941: #line 2172 "cp-parse.y" ! 4942: { error ("missing ';' before right brace"); ! 4943: yyungetc ('}', 0); ! 4944: yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ; ! 4945: break;} ! 4946: case 365: ! 4947: #line 2176 "cp-parse.y" ! 4948: { yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ; ! 4949: break;} ! 4950: case 366: ! 4951: #line 2178 "cp-parse.y" ! 4952: { error ("missing ';' before right brace"); ! 4953: yyungetc ('}', 0); ! 4954: yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ; ! 4955: break;} ! 4956: case 367: ! 4957: #line 2182 "cp-parse.y" ! 4958: { goto do_components; ; ! 4959: break;} ! 4960: case 368: ! 4961: #line 2185 "cp-parse.y" ! 4962: { yyval.ttype = grokfield (yyvsp[-1].ttype, yyval.ttype, 0, 0, 0, 0); ; ! 4963: break;} ! 4964: case 369: ! 4965: #line 2187 "cp-parse.y" ! 4966: { error ("missing ';' before right brace"); ! 4967: yyungetc ('}', 0); ! 4968: goto do_components; ; ! 4969: break;} ! 4970: case 370: ! 4971: #line 2191 "cp-parse.y" ! 4972: { yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ; ! 4973: break;} ! 4974: case 371: ! 4975: #line 2193 "cp-parse.y" ! 4976: { error ("missing ';' before right brace"); ! 4977: yyungetc ('}', 0); ! 4978: yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ; ! 4979: break;} ! 4980: case 372: ! 4981: #line 2197 "cp-parse.y" ! 4982: { yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ; ! 4983: break;} ! 4984: case 373: ! 4985: #line 2199 "cp-parse.y" ! 4986: { error ("missing ';' before right brace"); ! 4987: yyungetc ('}', 0); ! 4988: yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ; ! 4989: break;} ! 4990: case 374: ! 4991: #line 2203 "cp-parse.y" ! 4992: { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ; ! 4993: break;} ! 4994: case 375: ! 4995: #line 2205 "cp-parse.y" ! 4996: { error ("missing ';' before right brace"); ! 4997: yyungetc ('}', 0); ! 4998: yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ; ! 4999: break;} ! 5000: case 376: ! 5001: #line 2209 "cp-parse.y" ! 5002: { yyval.ttype = NULL_TREE; ; ! 5003: break;} ! 5004: case 377: ! 5005: #line 2214 "cp-parse.y" ! 5006: { yyval.ttype = finish_method (yyval.ttype); ; ! 5007: break;} ! 5008: case 378: ! 5009: #line 2216 "cp-parse.y" ! 5010: { yyval.ttype = finish_method (yyval.ttype); ; ! 5011: break;} ! 5012: case 379: ! 5013: #line 2218 "cp-parse.y" ! 5014: { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ; ! 5015: break;} ! 5016: case 380: ! 5017: #line 2220 "cp-parse.y" ! 5018: { error ("missing ';' before right brace"); ! 5019: yyungetc ('}', 0); ! 5020: yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ; ! 5021: break;} ! 5022: case 381: ! 5023: #line 2227 "cp-parse.y" ! 5024: { yyval.ttype = NULL_TREE; ; ! 5025: break;} ! 5026: case 383: ! 5027: #line 2230 "cp-parse.y" ! 5028: { ! 5029: /* In this context, void_type_node encodes ! 5030: friends. They have been recorded elsewhere. */ ! 5031: if (yyval.ttype == void_type_node) ! 5032: yyval.ttype = yyvsp[0].ttype; ! 5033: else ! 5034: yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ! 5035: ; ! 5036: break;} ! 5037: case 384: ! 5038: #line 2242 "cp-parse.y" ! 5039: { current_declspecs = yyvsp[-3].ttype; ! 5040: yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype); ; ! 5041: break;} ! 5042: case 385: ! 5043: #line 2245 "cp-parse.y" ! 5044: { current_declspecs = yyvsp[-5].ttype; ! 5045: yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-2].ttype); ; ! 5046: break;} ! 5047: case 386: ! 5048: #line 2248 "cp-parse.y" ! 5049: { current_declspecs = yyvsp[-3].ttype; ! 5050: yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[0].ttype); ; ! 5051: break;} ! 5052: case 387: ! 5053: #line 2251 "cp-parse.y" ! 5054: { current_declspecs = yyvsp[-2].ttype; ! 5055: yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[0].ttype); ; ! 5056: break;} ! 5057: case 388: ! 5058: #line 2254 "cp-parse.y" ! 5059: { current_declspecs = yyvsp[-2].ttype; ! 5060: yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ; ! 5061: break;} ! 5062: case 389: ! 5063: #line 2260 "cp-parse.y" ! 5064: { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype); ; ! 5065: break;} ! 5066: case 390: ! 5067: #line 2262 "cp-parse.y" ! 5068: { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-2].ttype); ; ! 5069: break;} ! 5070: case 391: ! 5071: #line 2264 "cp-parse.y" ! 5072: { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[0].ttype); ; ! 5073: break;} ! 5074: case 392: ! 5075: #line 2266 "cp-parse.y" ! 5076: { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[0].ttype); ; ! 5077: break;} ! 5078: case 393: ! 5079: #line 2268 "cp-parse.y" ! 5080: { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ; ! 5081: break;} ! 5082: case 395: ! 5083: #line 2278 "cp-parse.y" ! 5084: { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; ! 5085: break;} ! 5086: case 396: ! 5087: #line 2283 "cp-parse.y" ! 5088: { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ; ! 5089: break;} ! 5090: case 397: ! 5091: #line 2285 "cp-parse.y" ! 5092: { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ; ! 5093: break;} ! 5094: case 398: ! 5095: #line 2290 "cp-parse.y" ! 5096: { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ; ! 5097: break;} ! 5098: case 399: ! 5099: #line 2292 "cp-parse.y" ! 5100: { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ; ! 5101: break;} ! 5102: case 400: ! 5103: #line 2297 "cp-parse.y" ! 5104: { yyval.ttype = NULL_TREE; ; ! 5105: break;} ! 5106: case 402: ! 5107: #line 2300 "cp-parse.y" ! 5108: { yyval.ttype = yyvsp[0].ttype; ; ! 5109: break;} ! 5110: case 403: ! 5111: #line 2305 "cp-parse.y" ! 5112: { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ; ! 5113: break;} ! 5114: case 404: ! 5115: #line 2307 "cp-parse.y" ! 5116: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; ! 5117: break;} ! 5118: case 405: ! 5119: #line 2312 "cp-parse.y" ! 5120: { yyval.ttype = NULL_TREE; ; ! 5121: break;} ! 5122: case 406: ! 5123: #line 2314 "cp-parse.y" ! 5124: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; ! 5125: break;} ! 5126: case 407: ! 5127: #line 2322 "cp-parse.y" ! 5128: { yyval.itype = suspend_momentary (); ; ! 5129: break;} ! 5130: case 408: ! 5131: #line 2323 "cp-parse.y" ! 5132: { resume_momentary (yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ; ! 5133: break;} ! 5134: case 409: ! 5135: #line 2329 "cp-parse.y" ! 5136: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 5137: break;} ! 5138: case 410: ! 5139: #line 2331 "cp-parse.y" ! 5140: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 5141: break;} ! 5142: case 411: ! 5143: #line 2333 "cp-parse.y" ! 5144: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ; ! 5145: break;} ! 5146: case 412: ! 5147: #line 2335 "cp-parse.y" ! 5148: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ; ! 5149: break;} ! 5150: case 413: ! 5151: #line 2337 "cp-parse.y" ! 5152: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; ! 5153: break;} ! 5154: case 414: ! 5155: #line 2339 "cp-parse.y" ! 5156: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; ! 5157: break;} ! 5158: case 415: ! 5159: #line 2341 "cp-parse.y" ! 5160: { yyval.ttype = yyvsp[-1].ttype; ; ! 5161: break;} ! 5162: case 416: ! 5163: #line 2343 "cp-parse.y" ! 5164: { yyval.ttype = make_pointer_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ; ! 5165: break;} ! 5166: case 417: ! 5167: #line 2345 "cp-parse.y" ! 5168: { see_typename (); ; ! 5169: break;} ! 5170: case 419: ! 5171: #line 2348 "cp-parse.y" ! 5172: { yyval.ttype = make_reference_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ; ! 5173: break;} ! 5174: case 420: ! 5175: #line 2350 "cp-parse.y" ! 5176: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 5177: break;} ! 5178: case 421: ! 5179: #line 2352 "cp-parse.y" ! 5180: { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 5181: break;} ! 5182: case 423: ! 5183: #line 2358 "cp-parse.y" ! 5184: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 5185: break;} ! 5186: case 424: ! 5187: #line 2360 "cp-parse.y" ! 5188: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 5189: break;} ! 5190: case 425: ! 5191: #line 2362 "cp-parse.y" ! 5192: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ; ! 5193: break;} ! 5194: case 426: ! 5195: #line 2364 "cp-parse.y" ! 5196: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ; ! 5197: break;} ! 5198: case 427: ! 5199: #line 2366 "cp-parse.y" ! 5200: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; ! 5201: break;} ! 5202: case 428: ! 5203: #line 2368 "cp-parse.y" ! 5204: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; ! 5205: break;} ! 5206: case 429: ! 5207: #line 2370 "cp-parse.y" ! 5208: { yyval.ttype = yyvsp[-1].ttype; ; ! 5209: break;} ! 5210: case 430: ! 5211: #line 2372 "cp-parse.y" ! 5212: { see_typename (); ; ! 5213: break;} ! 5214: case 432: ! 5215: #line 2375 "cp-parse.y" ! 5216: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 5217: break;} ! 5218: case 433: ! 5219: #line 2377 "cp-parse.y" ! 5220: { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 5221: break;} ! 5222: case 434: ! 5223: #line 2385 "cp-parse.y" ! 5224: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 5225: break;} ! 5226: case 435: ! 5227: #line 2387 "cp-parse.y" ! 5228: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 5229: break;} ! 5230: case 436: ! 5231: #line 2389 "cp-parse.y" ! 5232: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ; ! 5233: break;} ! 5234: case 437: ! 5235: #line 2391 "cp-parse.y" ! 5236: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ; ! 5237: break;} ! 5238: case 438: ! 5239: #line 2393 "cp-parse.y" ! 5240: { yyval.ttype = yyvsp[-1].ttype; ; ! 5241: break;} ! 5242: case 439: ! 5243: #line 2395 "cp-parse.y" ! 5244: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 5245: break;} ! 5246: case 440: ! 5247: #line 2397 "cp-parse.y" ! 5248: { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 5249: break;} ! 5250: case 441: ! 5251: #line 2399 "cp-parse.y" ! 5252: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; ! 5253: break;} ! 5254: case 442: ! 5255: #line 2401 "cp-parse.y" ! 5256: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; ! 5257: break;} ! 5258: case 443: ! 5259: #line 2403 "cp-parse.y" ! 5260: { see_typename (); ; ! 5261: break;} ! 5262: case 444: ! 5263: #line 2407 "cp-parse.y" ! 5264: { see_typename (); ; ! 5265: break;} ! 5266: case 445: ! 5267: #line 2410 "cp-parse.y" ! 5268: { ! 5269: destructor_name: ! 5270: see_typename (); ! 5271: yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ! 5272: ; ! 5273: break;} ! 5274: case 446: ! 5275: #line 2416 "cp-parse.y" ! 5276: { goto destructor_name; ; ! 5277: break;} ! 5278: case 447: ! 5279: #line 2418 "cp-parse.y" ! 5280: { goto destructor_name; ; ! 5281: break;} ! 5282: case 448: ! 5283: #line 2420 "cp-parse.y" ! 5284: { ! 5285: see_typename (); ! 5286: yyval.ttype = build_parse_node (WRAPPER_EXPR, yyvsp[0].ttype); ! 5287: ; ! 5288: break;} ! 5289: case 449: ! 5290: #line 2425 "cp-parse.y" ! 5291: { ! 5292: see_typename (); ! 5293: yyval.ttype = build_parse_node (WRAPPER_EXPR, ! 5294: build_parse_node (COND_EXPR, yyvsp[0].ttype, NULL_TREE, NULL_TREE)); ! 5295: ; ! 5296: break;} ! 5297: case 450: ! 5298: #line 2431 "cp-parse.y" ! 5299: { see_typename (); ! 5300: yyval.ttype = build_parse_node (ANTI_WRAPPER_EXPR, yyvsp[0].ttype); ; ! 5301: break;} ! 5302: case 451: ! 5303: #line 2434 "cp-parse.y" ! 5304: { see_typename (); ! 5305: if (TREE_CODE (yyval.ttype) != SCOPE_REF) ! 5306: yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ! 5307: else if (TREE_OPERAND (yyval.ttype, 1) == NULL_TREE) ! 5308: TREE_OPERAND (yyval.ttype, 1) = yyvsp[0].ttype; ! 5309: else ! 5310: yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ! 5311: ; ! 5312: break;} ! 5313: case 452: ! 5314: #line 2443 "cp-parse.y" ! 5315: { yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ; ! 5316: break;} ! 5317: case 453: ! 5318: #line 2445 "cp-parse.y" ! 5319: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ; ! 5320: break;} ! 5321: case 454: ! 5322: #line 2447 "cp-parse.y" ! 5323: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ; ! 5324: break;} ! 5325: case 455: ! 5326: #line 2449 "cp-parse.y" ! 5327: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ; ! 5328: break;} ! 5329: case 456: ! 5330: #line 2451 "cp-parse.y" ! 5331: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ; ! 5332: break;} ! 5333: case 457: ! 5334: #line 2454 "cp-parse.y" ! 5335: { yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ; ! 5336: break;} ! 5337: case 458: ! 5338: #line 2456 "cp-parse.y" ! 5339: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ; ! 5340: break;} ! 5341: case 459: ! 5342: #line 2458 "cp-parse.y" ! 5343: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ; ! 5344: break;} ! 5345: case 460: ! 5346: #line 2460 "cp-parse.y" ! 5347: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ; ! 5348: break;} ! 5349: case 461: ! 5350: #line 2462 "cp-parse.y" ! 5351: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ; ! 5352: break;} ! 5353: case 462: ! 5354: #line 2464 "cp-parse.y" ! 5355: { yyval.ttype = build_parse_node (SCOPE_REF, NULL_TREE, yyvsp[0].ttype); ; ! 5356: break;} ! 5357: case 463: ! 5358: #line 2468 "cp-parse.y" ! 5359: { yyval.ttype = resolve_scope_to_name (NULL_TREE, yyval.ttype); ; ! 5360: break;} ! 5361: case 464: ! 5362: #line 2470 "cp-parse.y" ! 5363: { ! 5364: if (yyval.ttype == error_mark_node) ! 5365: /* leave it alone */; ! 5366: else ! 5367: { ! 5368: yyval.ttype = resolve_scope_to_name (NULL_TREE, TYPE_IDENTIFIER (yyval.ttype)); ! 5369: } ! 5370: if (yyvsp[0].itype) popclass (1); ! 5371: ; ! 5372: break;} ! 5373: case 467: ! 5374: #line 2501 "cp-parse.y" ! 5375: { see_typename (); ! 5376: yyval.ttype = yyvsp[-1].ttype; ; ! 5377: break;} ! 5378: case 468: ! 5379: #line 2505 "cp-parse.y" ! 5380: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 5381: break;} ! 5382: case 469: ! 5383: #line 2507 "cp-parse.y" ! 5384: { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; ! 5385: break;} ! 5386: case 470: ! 5387: #line 2509 "cp-parse.y" ! 5388: { see_typename (); ; ! 5389: break;} ! 5390: case 471: ! 5391: #line 2511 "cp-parse.y" ! 5392: { yyval.ttype = yyvsp[-1].ttype; ; ! 5393: break;} ! 5394: case 472: ! 5395: #line 2513 "cp-parse.y" ! 5396: { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 5397: break;} ! 5398: case 473: ! 5399: #line 2515 "cp-parse.y" ! 5400: { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ; ! 5401: break;} ! 5402: case 474: ! 5403: #line 2517 "cp-parse.y" ! 5404: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 5405: break;} ! 5406: case 475: ! 5407: #line 2519 "cp-parse.y" ! 5408: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ; ! 5409: break;} ! 5410: case 476: ! 5411: #line 2521 "cp-parse.y" ! 5412: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; ! 5413: break;} ! 5414: case 477: ! 5415: #line 2523 "cp-parse.y" ! 5416: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; ! 5417: break;} ! 5418: case 478: ! 5419: #line 2525 "cp-parse.y" ! 5420: { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 5421: break;} ! 5422: case 479: ! 5423: #line 2527 "cp-parse.y" ! 5424: { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, empty_parms (), yyvsp[0].ttype); ; ! 5425: break;} ! 5426: case 480: ! 5427: #line 2529 "cp-parse.y" ! 5428: { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; ! 5429: break;} ! 5430: case 481: ! 5431: #line 2531 "cp-parse.y" ! 5432: { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ; ! 5433: break;} ! 5434: case 482: ! 5435: #line 2536 "cp-parse.y" ! 5436: { tree t; ! 5437: t = yyval.ttype; ! 5438: while (TREE_OPERAND (t, 1)) ! 5439: t = TREE_OPERAND (t, 1); ! 5440: TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, 0); ! 5441: ; ! 5442: break;} ! 5443: case 483: ! 5444: #line 2543 "cp-parse.y" ! 5445: { tree t; ! 5446: t = yyval.ttype; ! 5447: while (TREE_OPERAND (t, 1)) ! 5448: t = TREE_OPERAND (t, 1); ! 5449: TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ! 5450: ; ! 5451: break;} ! 5452: case 484: ! 5453: #line 2550 "cp-parse.y" ! 5454: { tree t; ! 5455: t = yyval.ttype; ! 5456: while (TREE_OPERAND (t, 1)) ! 5457: t = TREE_OPERAND (t, 1); ! 5458: TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, 0); ! 5459: ; ! 5460: break;} ! 5461: case 485: ! 5462: #line 2557 "cp-parse.y" ! 5463: { tree t; ! 5464: t = yyval.ttype; ! 5465: while (TREE_OPERAND (t, 1)) ! 5466: t = TREE_OPERAND (t, 1); ! 5467: TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ! 5468: ; ! 5469: break;} ! 5470: case 486: ! 5471: #line 2567 "cp-parse.y" ! 5472: { tree t; ! 5473: t = yyval.ttype; ! 5474: while (TREE_OPERAND (t, 1)) ! 5475: t = TREE_OPERAND (t, 1); ! 5476: TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ! 5477: ; ! 5478: break;} ! 5479: case 487: ! 5480: #line 2574 "cp-parse.y" ! 5481: { tree t; ! 5482: t = yyval.ttype; ! 5483: while (TREE_OPERAND (t, 1)) ! 5484: t = TREE_OPERAND (t, 1); ! 5485: TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ! 5486: ; ! 5487: break;} ! 5488: case 493: ! 5489: #line 2601 "cp-parse.y" ! 5490: { ! 5491: pushlevel (0); ! 5492: clear_last_expr (); ! 5493: push_momentary (); ! 5494: expand_start_bindings (0); ! 5495: stmt_decl_msg = 0; ! 5496: ; ! 5497: break;} ! 5498: case 494: ! 5499: #line 2614 "cp-parse.y" ! 5500: {; ! 5501: break;} ! 5502: case 496: ! 5503: #line 2619 "cp-parse.y" ! 5504: { yyval.ttype = convert (void_type_node, integer_zero_node); ; ! 5505: break;} ! 5506: case 497: ! 5507: #line 2621 "cp-parse.y" ! 5508: { pop_implicit_try_blocks (NULL_TREE); ! 5509: expand_end_bindings (getdecls (), kept_level_p (), 1); ! 5510: yyval.ttype = poplevel (kept_level_p (), 1, 0); ! 5511: pop_momentary (); ; ! 5512: break;} ! 5513: case 498: ! 5514: #line 2626 "cp-parse.y" ! 5515: { pop_implicit_try_blocks (NULL_TREE); ! 5516: expand_end_bindings (getdecls (), kept_level_p (), 1); ! 5517: yyval.ttype = poplevel (kept_level_p (), 0, 0); ! 5518: pop_momentary (); ; ! 5519: break;} ! 5520: case 499: ! 5521: #line 2634 "cp-parse.y" ! 5522: { emit_line_note (input_filename, lineno); ! 5523: expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0); ! 5524: stmt_decl_msg = "if"; ; ! 5525: break;} ! 5526: case 500: ! 5527: #line 2638 "cp-parse.y" ! 5528: { stmt_decl_msg = 0; ; ! 5529: break;} ! 5530: case 501: ! 5531: #line 2643 "cp-parse.y" ! 5532: { finish_stmt (); ; ! 5533: break;} ! 5534: case 502: ! 5535: #line 2645 "cp-parse.y" ! 5536: { if (stmt_decl_msg) ! 5537: error ("declaration after %s invalid", stmt_decl_msg); ! 5538: stmt_decl_msg = 0; ! 5539: finish_stmt (); ; ! 5540: break;} ! 5541: case 503: ! 5542: #line 2650 "cp-parse.y" ! 5543: { ! 5544: tree expr = yyvsp[-1].ttype; ! 5545: emit_line_note (input_filename, lineno); ! 5546: /* Do default conversion if safe and possibly important, ! 5547: in case within ({...}). */ ! 5548: if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE ! 5549: && lvalue_p (expr)) ! 5550: || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE) ! 5551: expr = default_conversion (expr); ! 5552: cplus_expand_expr_stmt (expr); ! 5553: clear_momentary (); ! 5554: finish_stmt (); ; ! 5555: break;} ! 5556: case 504: ! 5557: #line 2663 "cp-parse.y" ! 5558: { expand_start_else (); ! 5559: stmt_decl_msg = "else"; ; ! 5560: break;} ! 5561: case 505: ! 5562: #line 2666 "cp-parse.y" ! 5563: { expand_end_cond (); ! 5564: stmt_decl_msg = 0; ! 5565: finish_stmt (); ; ! 5566: break;} ! 5567: case 506: ! 5568: #line 2670 "cp-parse.y" ! 5569: { expand_end_cond (); ! 5570: stmt_decl_msg = 0; ! 5571: finish_stmt (); ; ! 5572: break;} ! 5573: case 507: ! 5574: #line 2674 "cp-parse.y" ! 5575: { emit_nop (); ! 5576: emit_line_note (input_filename, lineno); ! 5577: expand_start_loop (1); ; ! 5578: break;} ! 5579: case 508: ! 5580: #line 2678 "cp-parse.y" ! 5581: { expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ! 5582: stmt_decl_msg = "while"; ; ! 5583: break;} ! 5584: case 509: ! 5585: #line 2681 "cp-parse.y" ! 5586: { ! 5587: expand_end_loop (); ! 5588: stmt_decl_msg = 0; ! 5589: finish_stmt (); ; ! 5590: break;} ! 5591: case 510: ! 5592: #line 2686 "cp-parse.y" ! 5593: { emit_nop (); ! 5594: emit_line_note (input_filename, lineno); ! 5595: expand_start_loop_continue_elsewhere (1); ! 5596: stmt_decl_msg = "do"; ; ! 5597: break;} ! 5598: case 511: ! 5599: #line 2691 "cp-parse.y" ! 5600: { stmt_decl_msg = 0; ! 5601: expand_loop_continue_here (); ; ! 5602: break;} ! 5603: case 512: ! 5604: #line 2694 "cp-parse.y" ! 5605: { emit_line_note (input_filename, lineno); ! 5606: expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-2].ttype)); ! 5607: expand_end_loop (); ! 5608: clear_momentary (); ! 5609: finish_stmt (); ; ! 5610: break;} ! 5611: case 513: ! 5612: #line 2700 "cp-parse.y" ! 5613: { emit_nop (); ! 5614: emit_line_note (input_filename, lineno); ! 5615: if (yyvsp[0].ttype) cplus_expand_expr_stmt (yyvsp[0].ttype); ! 5616: expand_start_loop_continue_elsewhere (1); ; ! 5617: break;} ! 5618: case 514: ! 5619: #line 2705 "cp-parse.y" ! 5620: { emit_line_note (input_filename, lineno); ! 5621: if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ; ! 5622: break;} ! 5623: case 515: ! 5624: #line 2710 "cp-parse.y" ! 5625: { push_momentary (); ! 5626: stmt_decl_msg = "for"; ; ! 5627: break;} ! 5628: case 516: ! 5629: #line 2713 "cp-parse.y" ! 5630: { emit_line_note (input_filename, lineno); ! 5631: expand_loop_continue_here (); ! 5632: if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype); ! 5633: pop_momentary (); ! 5634: expand_end_loop (); ! 5635: stmt_decl_msg = 0; ! 5636: finish_stmt (); ; ! 5637: break;} ! 5638: case 517: ! 5639: #line 2721 "cp-parse.y" ! 5640: { emit_nop (); ! 5641: emit_line_note (input_filename, lineno); ! 5642: expand_start_loop_continue_elsewhere (1); ; ! 5643: break;} ! 5644: case 518: ! 5645: #line 2725 "cp-parse.y" ! 5646: { emit_line_note (input_filename, lineno); ! 5647: if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ; ! 5648: break;} ! 5649: case 519: ! 5650: #line 2730 "cp-parse.y" ! 5651: { push_momentary (); ! 5652: stmt_decl_msg = "for"; ! 5653: yyvsp[0].itype = lineno; ; ! 5654: break;} ! 5655: case 520: ! 5656: #line 2734 "cp-parse.y" ! 5657: { emit_line_note (input_filename, yyvsp[-2].itype); ! 5658: expand_loop_continue_here (); ! 5659: if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype); ! 5660: pop_momentary (); ! 5661: expand_end_loop (); ! 5662: pop_implicit_try_blocks (NULL_TREE); ! 5663: if (yyvsp[-8].itype) ! 5664: { ! 5665: register keep = yyvsp[-8].itype > 0; ! 5666: if (keep) expand_end_bindings (0, keep, 1); ! 5667: poplevel (keep, 1, 0); ! 5668: pop_momentary (); ! 5669: } ! 5670: stmt_decl_msg = 0; ! 5671: finish_stmt (); ! 5672: ; ! 5673: break;} ! 5674: case 521: ! 5675: #line 2751 "cp-parse.y" ! 5676: { emit_line_note (input_filename, lineno); ! 5677: c_expand_start_case (yyvsp[-1].ttype); ! 5678: /* Don't let the tree nodes for $3 be discarded by ! 5679: clear_momentary during the parsing of the next stmt. */ ! 5680: push_momentary (); ! 5681: stmt_decl_msg = "switch"; ; ! 5682: break;} ! 5683: case 522: ! 5684: #line 2758 "cp-parse.y" ! 5685: { expand_end_case (yyvsp[-3].ttype); ! 5686: pop_momentary (); ! 5687: stmt_decl_msg = 0; ! 5688: finish_stmt (); ; ! 5689: break;} ! 5690: case 523: ! 5691: #line 2763 "cp-parse.y" ! 5692: { register tree value = yyvsp[-1].ttype; ! 5693: register tree label ! 5694: = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE); ! 5695: ! 5696: /* build_c_cast puts on a NOP_EXPR to make a non-lvalue. ! 5697: Strip such NOP_EXPRs. */ ! 5698: if (TREE_CODE (value) == NOP_EXPR ! 5699: && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0))) ! 5700: value = TREE_OPERAND (value, 0); ! 5701: ! 5702: if (TREE_READONLY_DECL_P (value)) ! 5703: { ! 5704: value = decl_constant_value (value); ! 5705: /* build_c_cast puts on a NOP_EXPR to make a non-lvalue. ! 5706: Strip such NOP_EXPRs. */ ! 5707: if (TREE_CODE (value) == NOP_EXPR ! 5708: && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0))) ! 5709: value = TREE_OPERAND (value, 0); ! 5710: } ! 5711: value = fold (value); ! 5712: ! 5713: if (TREE_CODE (value) != INTEGER_CST ! 5714: && value != error_mark_node) ! 5715: { ! 5716: error ("case label does not reduce to an integer constant"); ! 5717: value = error_mark_node; ! 5718: } ! 5719: else ! 5720: /* Promote char or short to int. */ ! 5721: value = default_conversion (value); ! 5722: if (value != error_mark_node) ! 5723: { ! 5724: tree duplicate; ! 5725: int success = pushcase (value, label, &duplicate); ! 5726: if (success == 1) ! 5727: error ("case label not within a switch statement"); ! 5728: else if (success == 2) ! 5729: { ! 5730: error ("duplicate case value"); ! 5731: error_with_decl (duplicate, "this is the first entry for that value"); ! 5732: } ! 5733: else if (success == 3) ! 5734: warning ("case value out of range"); ! 5735: else if (success == 5) ! 5736: error ("case label within scope of cleanup or variable array"); ! 5737: } ! 5738: define_case_label (label); ! 5739: ; ! 5740: break;} ! 5741: case 525: ! 5742: #line 2813 "cp-parse.y" ! 5743: { register tree value1 = yyvsp[-3].ttype; ! 5744: register tree value2 = yyvsp[-1].ttype; ! 5745: register tree label ! 5746: = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE); ! 5747: ! 5748: if (pedantic) ! 5749: { ! 5750: error ("ANSI C does not allow range expressions in switch statement"); ! 5751: value1 = error_mark_node; ! 5752: value2 = error_mark_node; ! 5753: break; ! 5754: } ! 5755: /* build_c_cast puts on a NOP_EXPR to make a non-lvalue. ! 5756: Strip such NOP_EXPRs. */ ! 5757: if (TREE_CODE (value1) == NOP_EXPR ! 5758: && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0))) ! 5759: value1 = TREE_OPERAND (value1, 0); ! 5760: ! 5761: if (TREE_READONLY_DECL_P (value1)) ! 5762: { ! 5763: value1 = decl_constant_value (value1); ! 5764: /* build_c_cast puts on a NOP_EXPR to make a non-lvalue. ! 5765: Strip such NOP_EXPRs. */ ! 5766: if (TREE_CODE (value1) == NOP_EXPR ! 5767: && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0))) ! 5768: value1 = TREE_OPERAND (value1, 0); ! 5769: } ! 5770: value1 = fold (value1); ! 5771: ! 5772: /* build_c_cast puts on a NOP_EXPR to make a non-lvalue. ! 5773: Strip such NOP_EXPRs. */ ! 5774: if (TREE_CODE (value2) == NOP_EXPR ! 5775: && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0))) ! 5776: value2 = TREE_OPERAND (value2, 0); ! 5777: ! 5778: if (TREE_READONLY_DECL_P (value2)) ! 5779: { ! 5780: value2 = decl_constant_value (value2); ! 5781: /* build_c_cast puts on a NOP_EXPR to make a non-lvalue. ! 5782: Strip such NOP_EXPRs. */ ! 5783: if (TREE_CODE (value2) == NOP_EXPR ! 5784: && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0))) ! 5785: value2 = TREE_OPERAND (value2, 0); ! 5786: } ! 5787: value2 = fold (value2); ! 5788: ! 5789: ! 5790: if (TREE_CODE (value1) != INTEGER_CST ! 5791: && value1 != error_mark_node) ! 5792: { ! 5793: error ("case label does not reduce to an integer constant"); ! 5794: value1 = error_mark_node; ! 5795: } ! 5796: if (TREE_CODE (value2) != INTEGER_CST ! 5797: && value2 != error_mark_node) ! 5798: { ! 5799: error ("case label does not reduce to an integer constant"); ! 5800: value2 = error_mark_node; ! 5801: } ! 5802: if (value1 != error_mark_node ! 5803: && value2 != error_mark_node) ! 5804: { ! 5805: tree duplicate; ! 5806: int success = pushcase_range (value1, value2, label); ! 5807: if (success == 1) ! 5808: error ("case label not within a switch statement"); ! 5809: else if (success == 2) ! 5810: { ! 5811: error ("duplicate (or overlapping) case value"); ! 5812: error_with_decl (duplicate, "this is the first entry overlapping that value"); ! 5813: } ! 5814: else if (success == 3) ! 5815: warning ("case value out of range"); ! 5816: else if (success == 4) ! 5817: warning ("empty range specified"); ! 5818: else if (success == 5) ! 5819: error ("case label within scope of cleanup or variable array"); ! 5820: } ! 5821: define_case_label (label); ! 5822: ; ! 5823: break;} ! 5824: case 527: ! 5825: #line 2895 "cp-parse.y" ! 5826: { ! 5827: tree duplicate; ! 5828: register tree label ! 5829: = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE); ! 5830: int success = pushcase (NULL_TREE, label, &duplicate); ! 5831: if (success == 1) ! 5832: error ("default label not within a switch statement"); ! 5833: else if (success == 2) ! 5834: { ! 5835: error ("multiple default labels in one switch"); ! 5836: error_with_decl (duplicate, "this is the first default label"); ! 5837: } ! 5838: define_case_label (NULL_TREE); ! 5839: ; ! 5840: break;} ! 5841: case 529: ! 5842: #line 2911 "cp-parse.y" ! 5843: { emit_line_note (input_filename, lineno); ! 5844: if ( ! expand_exit_something ()) ! 5845: error ("break statement not within loop or switch"); ; ! 5846: break;} ! 5847: case 530: ! 5848: #line 2915 "cp-parse.y" ! 5849: { emit_line_note (input_filename, lineno); ! 5850: if (! expand_continue_loop (0)) ! 5851: error ("continue statement not within a loop"); ; ! 5852: break;} ! 5853: case 531: ! 5854: #line 2919 "cp-parse.y" ! 5855: { emit_line_note (input_filename, lineno); ! 5856: c_expand_return (NULL_TREE); ; ! 5857: break;} ! 5858: case 532: ! 5859: #line 2922 "cp-parse.y" ! 5860: { emit_line_note (input_filename, lineno); ! 5861: c_expand_return (yyvsp[-1].ttype); ! 5862: finish_stmt (); ! 5863: ; ! 5864: break;} ! 5865: case 533: ! 5866: #line 2927 "cp-parse.y" ! 5867: { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype); ! 5868: emit_line_note (input_filename, lineno); ! 5869: expand_asm (yyvsp[-2].ttype); ! 5870: finish_stmt (); ! 5871: ; ! 5872: break;} ! 5873: case 534: ! 5874: #line 2934 "cp-parse.y" ! 5875: { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype); ! 5876: emit_line_note (input_filename, lineno); ! 5877: c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, ! 5878: yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE], ! 5879: input_filename, lineno); ! 5880: finish_stmt (); ! 5881: ; ! 5882: break;} ! 5883: case 535: ! 5884: #line 2943 "cp-parse.y" ! 5885: { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype); ! 5886: emit_line_note (input_filename, lineno); ! 5887: c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, ! 5888: yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE], ! 5889: input_filename, lineno); ! 5890: finish_stmt (); ! 5891: ; ! 5892: break;} ! 5893: case 536: ! 5894: #line 2953 "cp-parse.y" ! 5895: { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype); ! 5896: emit_line_note (input_filename, lineno); ! 5897: c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, ! 5898: yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE], ! 5899: input_filename, lineno); ! 5900: finish_stmt (); ! 5901: ; ! 5902: break;} ! 5903: case 537: ! 5904: #line 2961 "cp-parse.y" ! 5905: { tree decl; ! 5906: emit_line_note (input_filename, lineno); ! 5907: decl = lookup_label (yyvsp[-1].ttype); ! 5908: TREE_USED (decl) = 1; ! 5909: expand_goto (decl); ; ! 5910: break;} ! 5911: case 538: ! 5912: #line 2967 "cp-parse.y" ! 5913: { finish_stmt (); ; ! 5914: break;} ! 5915: case 539: ! 5916: #line 2969 "cp-parse.y" ! 5917: { error ("label must be followed by statement"); ! 5918: yyungetc ('}', 0); ! 5919: finish_stmt (); ; ! 5920: break;} ! 5921: case 540: ! 5922: #line 2973 "cp-parse.y" ! 5923: { finish_stmt (); ; ! 5924: break;} ! 5925: case 541: ! 5926: #line 2976 "cp-parse.y" ! 5927: { cplus_expand_throw (NULL_TREE); ; ! 5928: break;} ! 5929: case 542: ! 5930: #line 2977 "cp-parse.y" ! 5931: { cplus_expand_throw (yyvsp[-1].ttype); ; ! 5932: break;} ! 5933: case 543: ! 5934: #line 2979 "cp-parse.y" ! 5935: { cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0); ! 5936: finish_stmt (); ; ! 5937: break;} ! 5938: case 544: ! 5939: #line 2982 "cp-parse.y" ! 5940: { cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0); ! 5941: finish_stmt (); ; ! 5942: break;} ! 5943: case 545: ! 5944: #line 2985 "cp-parse.y" ! 5945: { cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0); ! 5946: finish_stmt (); ; ! 5947: break;} ! 5948: case 546: ! 5949: #line 2988 "cp-parse.y" ! 5950: { cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0); ! 5951: finish_stmt (); ; ! 5952: break;} ! 5953: case 547: ! 5954: #line 2991 "cp-parse.y" ! 5955: { cplus_expand_reraise (yyvsp[-1].ttype); ! 5956: finish_stmt (); ; ! 5957: break;} ! 5958: case 548: ! 5959: #line 2994 "cp-parse.y" ! 5960: { ! 5961: tree decl = cplus_expand_end_try (yyvsp[-3].itype); ! 5962: yyvsp[-2].ttype = current_exception_type; ! 5963: yyvsp[0].ttype = current_exception_decl; ! 5964: yyval.ttype = current_exception_object; ! 5965: cplus_expand_start_except (yyvsp[-1].ttype, decl); ! 5966: pushlevel (0); ! 5967: clear_last_expr (); ! 5968: push_momentary (); ! 5969: expand_start_bindings (0); ! 5970: stmt_decl_msg = 0; ! 5971: ; ! 5972: break;} ! 5973: case 549: ! 5974: #line 3007 "cp-parse.y" ! 5975: { ! 5976: tree decls = getdecls (); ! 5977: /* If there is a default exception to handle, ! 5978: handle it here. */ ! 5979: if (yyvsp[-1].ttype) ! 5980: { ! 5981: tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0); ! 5982: tree block; ! 5983: ! 5984: pushlevel (1); ! 5985: expand_start_bindings (0); ! 5986: expand_expr (yyvsp[-1].ttype, 0, 0, 0); ! 5987: expand_end_bindings (0, 1, 0); ! 5988: block = poplevel (1, 0, 0); ! 5989: ! 5990: /* This is a catch block. */ ! 5991: TREE_LANG_FLAG_2 (block) = 1; ! 5992: BLOCK_VARS (block) = decl; ! 5993: } ! 5994: ! 5995: expand_end_bindings (decls, decls != 0, 1); ! 5996: poplevel (decls != 0, 1, 0); ! 5997: pop_momentary (); ! 5998: current_exception_type = yyvsp[-5].ttype; ! 5999: current_exception_decl = yyvsp[-3].ttype; ! 6000: current_exception_object = yyvsp[-2].ttype; ! 6001: cplus_expand_end_except (yyvsp[-1].ttype); ! 6002: ; ! 6003: break;} ! 6004: case 550: ! 6005: #line 3036 "cp-parse.y" ! 6006: { ! 6007: cplus_expand_end_try (yyvsp[-1].itype); ! 6008: /* These are the important actions of ! 6009: `cplus_expand_end_except' which we must emulate. */ ! 6010: if (expand_escape_except ()) ! 6011: expand_end_except (); ! 6012: expand_end_bindings (0, 0, 1); ! 6013: poplevel (0, 0, 0); ! 6014: ; ! 6015: break;} ! 6016: case 551: ! 6017: #line 3046 "cp-parse.y" ! 6018: { ! 6019: tree decl = cplus_expand_end_try (yyvsp[-2].itype); ! 6020: yyvsp[-1].ttype = current_exception_type; ! 6021: yyvsp[0].ttype = current_exception_decl; ! 6022: yyval.ttype = current_exception_object; ! 6023: cplus_expand_start_except (NULL, decl); ! 6024: pushlevel (0); ! 6025: clear_last_expr (); ! 6026: push_momentary (); ! 6027: expand_start_bindings (0); ! 6028: stmt_decl_msg = 0; ! 6029: ; ! 6030: break;} ! 6031: case 552: ! 6032: #line 3059 "cp-parse.y" ! 6033: { ! 6034: tree decls = getdecls (); ! 6035: /* If there is a default exception to handle, ! 6036: handle it here. */ ! 6037: if (yyvsp[0].ttype) ! 6038: { ! 6039: tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0); ! 6040: tree block; ! 6041: ! 6042: pushlevel (1); ! 6043: expand_start_bindings (0); ! 6044: expand_expr (yyvsp[0].ttype, 0, 0, 0); ! 6045: expand_end_bindings (0, 1, 0); ! 6046: block = poplevel (1, 0, 0); ! 6047: ! 6048: /* This is a catch block. */ ! 6049: TREE_LANG_FLAG_2 (block) = 1; ! 6050: BLOCK_VARS (block) = decl; ! 6051: } ! 6052: ! 6053: expand_end_bindings (decls, decls != 0, 1); ! 6054: poplevel (decls != 0, 1, 0); ! 6055: pop_momentary (); ! 6056: current_exception_type = yyvsp[-3].ttype; ! 6057: current_exception_decl = yyvsp[-2].ttype; ! 6058: current_exception_object = yyvsp[-1].ttype; ! 6059: cplus_expand_end_except (yyvsp[0].ttype); ! 6060: ; ! 6061: break;} ! 6062: case 553: ! 6063: #line 3088 "cp-parse.y" ! 6064: { tree name = get_identifier ("(compiler error)"); ! 6065: tree orig_ex_type = current_exception_type; ! 6066: tree orig_ex_decl = current_exception_decl; ! 6067: tree orig_ex_obj = current_exception_object; ! 6068: tree decl = cplus_expand_end_try (yyvsp[-2].itype), decls; ! 6069: ! 6070: /* Start hidden EXCEPT. */ ! 6071: cplus_expand_start_except (name, decl); ! 6072: pushlevel (0); ! 6073: clear_last_expr (); ! 6074: push_momentary (); ! 6075: expand_start_bindings (0); ! 6076: stmt_decl_msg = 0; ! 6077: ! 6078: /* This sets up the reraise. */ ! 6079: cplus_expand_reraise (yyvsp[0].ttype); ! 6080: ! 6081: decls = getdecls (); ! 6082: expand_end_bindings (decls, decls != 0, 1); ! 6083: poplevel (decls != 0, 1, 0); ! 6084: pop_momentary (); ! 6085: current_exception_type = orig_ex_type; ! 6086: current_exception_decl = orig_ex_decl; ! 6087: current_exception_object = orig_ex_obj; ! 6088: /* This will reraise for us. */ ! 6089: cplus_expand_end_except (error_mark_node); ! 6090: if (yychar == YYEMPTY) ! 6091: yychar = YYLEX; ! 6092: if (yychar != ';') ! 6093: error ("missing ';' after reraise statement"); ! 6094: ; ! 6095: break;} ! 6096: case 554: ! 6097: #line 3120 "cp-parse.y" ! 6098: { yyerror ("`except' missing after `try' statement"); ! 6099: /* Terminate the binding contour started by special ! 6100: code in `.pushlevel'. Automagically pops off ! 6101: the conditional we started for `try' stmt. */ ! 6102: cplus_expand_end_try (yyvsp[0].itype); ! 6103: expand_end_bindings (0, 0, 1); ! 6104: poplevel (0, 0, 0); ! 6105: pop_momentary (); ! 6106: YYERROR; ; ! 6107: break;} ! 6108: case 555: ! 6109: #line 3135 "cp-parse.y" ! 6110: { ! 6111: yyval.itype = 1; ! 6112: pop_implicit_try_blocks (NULL_TREE); ! 6113: ; ! 6114: break;} ! 6115: case 556: ! 6116: #line 3140 "cp-parse.y" ! 6117: { ! 6118: yyval.itype = 1; ! 6119: pop_implicit_try_blocks (NULL_TREE); ! 6120: ; ! 6121: break;} ! 6122: case 557: ! 6123: #line 3145 "cp-parse.y" ! 6124: { ! 6125: yyval.itype = 0; ! 6126: pop_implicit_try_blocks (NULL_TREE); ! 6127: ; ! 6128: break;} ! 6129: case 558: ! 6130: #line 3153 "cp-parse.y" ! 6131: { tree label; ! 6132: do_label: ! 6133: label = define_label (input_filename, lineno, yyvsp[-1].ttype); ! 6134: if (label) ! 6135: expand_label (label); ! 6136: ; ! 6137: break;} ! 6138: case 559: ! 6139: #line 3160 "cp-parse.y" ! 6140: { goto do_label; ; ! 6141: break;} ! 6142: case 560: ! 6143: #line 3162 "cp-parse.y" ! 6144: { tree label = define_label (input_filename, lineno, yyvsp[0].ttype); ! 6145: if (label) ! 6146: expand_label (label); ! 6147: ; ! 6148: break;} ! 6149: case 561: ! 6150: #line 3168 "cp-parse.y" ! 6151: { cplus_expand_start_try (0); ; ! 6152: break;} ! 6153: case 563: ! 6154: #line 3174 "cp-parse.y" ! 6155: { ! 6156: yyval.itype = 1; ! 6157: pop_implicit_try_blocks (NULL_TREE); ! 6158: ; ! 6159: break;} ! 6160: case 564: ! 6161: #line 3179 "cp-parse.y" ! 6162: { ! 6163: yyval.itype = 1; ! 6164: pop_implicit_try_blocks (NULL_TREE); ! 6165: ; ! 6166: break;} ! 6167: case 565: ! 6168: #line 3184 "cp-parse.y" ! 6169: { ! 6170: yyval.itype = 0; ! 6171: pop_implicit_try_blocks (NULL_TREE); ! 6172: ; ! 6173: break;} ! 6174: case 567: ! 6175: #line 3191 "cp-parse.y" ! 6176: { cplus_expand_start_try (0); ; ! 6177: break;} ! 6178: case 569: ! 6179: #line 3195 "cp-parse.y" ! 6180: { yyval.ttype = NULL_TREE; ; ! 6181: break;} ! 6182: case 570: ! 6183: #line 3197 "cp-parse.y" ! 6184: { ! 6185: tree type = lookup_exception_type (current_class_type, current_class_name, yyvsp[0].ttype); ! 6186: if (type == NULL_TREE) ! 6187: { ! 6188: error ("`%s' is not an exception type", ! 6189: IDENTIFIER_POINTER (TREE_VALUE (yyvsp[0].ttype))); ! 6190: current_exception_type = NULL_TREE; ! 6191: TREE_TYPE (current_exception_object) = error_mark_node; ! 6192: } ! 6193: else ! 6194: { ! 6195: current_exception_type = type; ! 6196: /* In-place union. */ ! 6197: TREE_TYPE (current_exception_object) = type; ! 6198: } ! 6199: yyvsp[0].ttype = cplus_expand_start_catch (yyvsp[0].ttype); ! 6200: pushlevel (1); ! 6201: expand_start_bindings (0); ! 6202: ; ! 6203: break;} ! 6204: case 571: ! 6205: #line 3217 "cp-parse.y" ! 6206: { ! 6207: expand_end_bindings (0, 1, 0); ! 6208: yyvsp[0].ttype = poplevel (1, 0, 0); ! 6209: ! 6210: cplus_expand_end_catch (0); ! 6211: ! 6212: /* Mark this as a catch block. */ ! 6213: TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1; ! 6214: if (yyvsp[-2].ttype != error_mark_node) ! 6215: { ! 6216: tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-2].ttype), 0); ! 6217: DECL_RTL (decl) = DECL_RTL (yyvsp[-2].ttype); ! 6218: TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype); ! 6219: BLOCK_VARS (yyvsp[0].ttype) = decl; ! 6220: } ! 6221: ; ! 6222: break;} ! 6223: case 572: ! 6224: #line 3234 "cp-parse.y" ! 6225: { ! 6226: if (yyvsp[-1].ttype) ! 6227: error ("duplicate default in exception handler"); ! 6228: current_exception_type = NULL_TREE; ! 6229: /* Takes it right out of scope. */ ! 6230: TREE_TYPE (current_exception_object) = error_mark_node; ! 6231: ! 6232: if (! expand_catch_default ()) ! 6233: compiler_error ("default catch botch"); ! 6234: ! 6235: /* The default exception is handled as the ! 6236: last in the chain of exceptions handled. */ ! 6237: do_pending_stack_adjust (); ! 6238: start_sequence (); ! 6239: yyvsp[-1].ttype = make_node (RTL_EXPR); ! 6240: TREE_TYPE (yyvsp[-1].ttype) = void_type_node; ! 6241: ; ! 6242: break;} ! 6243: case 573: ! 6244: #line 3252 "cp-parse.y" ! 6245: { ! 6246: do_pending_stack_adjust (); ! 6247: if (! expand_catch (NULL_TREE)) ! 6248: compiler_error ("except nesting botch"); ! 6249: if (! expand_end_catch ()) ! 6250: compiler_error ("except nesting botch"); ! 6251: RTL_EXPR_SEQUENCE (yyvsp[-3].ttype) = (struct rtx_def *)get_insns (); ! 6252: if (yyvsp[0].ttype) ! 6253: { ! 6254: /* Mark this block as the default catch block. */ ! 6255: TREE_LANG_FLAG_1 (yyvsp[0].ttype) = 1; ! 6256: TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1; ! 6257: } ! 6258: end_sequence (); ! 6259: ; ! 6260: break;} ! 6261: case 574: ! 6262: #line 3271 "cp-parse.y" ! 6263: { yyval.ttype = NULL_TREE; ; ! 6264: break;} ! 6265: case 576: ! 6266: #line 3276 "cp-parse.y" ! 6267: { yyval.ttype = NULL_TREE; ; ! 6268: break;} ! 6269: case 577: ! 6270: #line 3278 "cp-parse.y" ! 6271: { ! 6272: extern tree ansi_expand_start_catch (); ! 6273: extern tree cplus_exception_name (); ! 6274: tree type = groktypename (yyvsp[-2].ttype); ! 6275: current_exception_type = type; ! 6276: /* In-place union. */ ! 6277: if (yyvsp[-1].ttype) ! 6278: { ! 6279: tree tmp; ! 6280: tmp = pushdecl (build_decl (VAR_DECL, yyvsp[-1].ttype, type)); ! 6281: current_exception_object = ! 6282: build1 (INDIRECT_REF, type, tmp); ! 6283: } ! 6284: yyvsp[-2].ttype = ansi_expand_start_catch(type); ! 6285: pushlevel (1); ! 6286: expand_start_bindings (0); ! 6287: ; ! 6288: break;} ! 6289: case 578: ! 6290: #line 3296 "cp-parse.y" ! 6291: { ! 6292: expand_end_bindings (0, 1, 0); ! 6293: yyvsp[0].ttype = poplevel (1, 0, 0); ! 6294: ! 6295: cplus_expand_end_catch (0); ! 6296: ! 6297: /* Mark this as a catch block. */ ! 6298: TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1; ! 6299: if (yyvsp[-4].ttype != error_mark_node) ! 6300: { ! 6301: tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-4].ttype), 0); ! 6302: DECL_RTL (decl) = DECL_RTL (yyvsp[-4].ttype); ! 6303: TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype); ! 6304: BLOCK_VARS (yyvsp[0].ttype) = decl; ! 6305: } ! 6306: ; ! 6307: break;} ! 6308: case 579: ! 6309: #line 3316 "cp-parse.y" ! 6310: { yyval.ttype = NULL_TREE; ; ! 6311: break;} ! 6312: case 580: ! 6313: #line 3318 "cp-parse.y" ! 6314: { yyval.ttype = yyvsp[-1].ttype; ; ! 6315: break;} ! 6316: case 581: ! 6317: #line 3320 "cp-parse.y" ! 6318: { yyval.ttype = NULL_TREE; ; ! 6319: break;} ! 6320: case 582: ! 6321: #line 3325 "cp-parse.y" ! 6322: { yyval.itype = 0; ; ! 6323: break;} ! 6324: case 583: ! 6325: #line 3327 "cp-parse.y" ! 6326: { yyval.itype = 0; ; ! 6327: break;} ! 6328: case 584: ! 6329: #line 3329 "cp-parse.y" ! 6330: { yyval.itype = 1; ; ! 6331: break;} ! 6332: case 585: ! 6333: #line 3331 "cp-parse.y" ! 6334: { yyval.itype = -1; ; ! 6335: break;} ! 6336: case 586: ! 6337: #line 3338 "cp-parse.y" ! 6338: { if (pedantic) ! 6339: warning ("ANSI C forbids use of `asm' keyword"); ! 6340: emit_line_note (input_filename, lineno); ; ! 6341: break;} ! 6342: case 587: ! 6343: #line 3342 "cp-parse.y" ! 6344: { if (pedantic) ! 6345: warning ("ANSI C forbids use of `asm' keyword"); ! 6346: emit_line_note (input_filename, lineno); ; ! 6347: break;} ! 6348: case 588: ! 6349: #line 3349 "cp-parse.y" ! 6350: { yyval.ttype = NULL_TREE; ; ! 6351: break;} ! 6352: case 590: ! 6353: #line 3352 "cp-parse.y" ! 6354: { yyval.ttype = NULL_TREE; ; ! 6355: break;} ! 6356: case 591: ! 6357: #line 3358 "cp-parse.y" ! 6358: { yyval.ttype = NULL_TREE; ; ! 6359: break;} ! 6360: case 594: ! 6361: #line 3365 "cp-parse.y" ! 6362: { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; ! 6363: break;} ! 6364: case 595: ! 6365: #line 3370 "cp-parse.y" ! 6366: { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ; ! 6367: break;} ! 6368: case 596: ! 6369: #line 3375 "cp-parse.y" ! 6370: { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ; ! 6371: break;} ! 6372: case 597: ! 6373: #line 3377 "cp-parse.y" ! 6374: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; ! 6375: break;} ! 6376: case 598: ! 6377: #line 3386 "cp-parse.y" ! 6378: { ! 6379: if (strict_prototype) ! 6380: yyval.ttype = void_list_node; ! 6381: else ! 6382: yyval.ttype = NULL_TREE; ! 6383: ; ! 6384: break;} ! 6385: case 599: ! 6386: #line 3393 "cp-parse.y" ! 6387: { ! 6388: yyval.ttype = chainon (yyval.ttype, void_list_node); ! 6389: TREE_PARMLIST (yyval.ttype) = 1; ! 6390: ; ! 6391: break;} ! 6392: case 600: ! 6393: #line 3398 "cp-parse.y" ! 6394: { ! 6395: TREE_PARMLIST (yyval.ttype) = 1; ! 6396: ; ! 6397: break;} ! 6398: case 601: ! 6399: #line 3403 "cp-parse.y" ! 6400: { ! 6401: TREE_PARMLIST (yyval.ttype) = 1; ! 6402: ; ! 6403: break;} ! 6404: case 602: ! 6405: #line 3407 "cp-parse.y" ! 6406: { ! 6407: yyval.ttype = NULL_TREE; ! 6408: ; ! 6409: break;} ! 6410: case 603: ! 6411: #line 3411 "cp-parse.y" ! 6412: { ! 6413: TREE_PARMLIST (yyval.ttype) = 1; ! 6414: ; ! 6415: break;} ! 6416: case 604: ! 6417: #line 3415 "cp-parse.y" ! 6418: { ! 6419: TREE_PARMLIST (yyval.ttype) = 1; ! 6420: ; ! 6421: break;} ! 6422: case 605: ! 6423: #line 3419 "cp-parse.y" ! 6424: { ! 6425: /* This helps us recover from really nasty ! 6426: parse errors, for example, a missing right ! 6427: parenthesis. */ ! 6428: yyerror ("possibly missing ')'"); ! 6429: yyval.ttype = chainon (yyval.ttype, void_list_node); ! 6430: TREE_PARMLIST (yyval.ttype) = 1; ! 6431: yyungetc (':', 0); ! 6432: yychar = ')'; ! 6433: ; ! 6434: break;} ! 6435: case 606: ! 6436: #line 3434 "cp-parse.y" ! 6437: { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; ! 6438: break;} ! 6439: case 607: ! 6440: #line 3436 "cp-parse.y" ! 6441: { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyval.ttype); ; ! 6442: break;} ! 6443: case 608: ! 6444: #line 3438 "cp-parse.y" ! 6445: { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; ! 6446: break;} ! 6447: case 609: ! 6448: #line 3440 "cp-parse.y" ! 6449: { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ; ! 6450: break;} ! 6451: case 610: ! 6452: #line 3442 "cp-parse.y" ! 6453: { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; ! 6454: break;} ! 6455: case 611: ! 6456: #line 3444 "cp-parse.y" ! 6457: { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ; ! 6458: break;} ! 6459: case 612: ! 6460: #line 3465 "cp-parse.y" ! 6461: { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ! 6462: see_typename (); ; ! 6463: break;} ! 6464: case 613: ! 6465: #line 3468 "cp-parse.y" ! 6466: { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ! 6467: see_typename (); ; ! 6468: break;} ! 6469: case 616: ! 6470: #line 3475 "cp-parse.y" ! 6471: { yyval.ttype = yyvsp[0].ttype; ; ! 6472: break;} ! 6473: case 617: ! 6474: #line 3479 "cp-parse.y" ! 6475: { see_typename (); ; ! 6476: break;} ! 6477: case 618: ! 6478: #line 3483 "cp-parse.y" ! 6479: { dont_see_typename (); ; ! 6480: break;} ! 6481: case 619: ! 6482: #line 3487 "cp-parse.y" ! 6483: { ! 6484: if (yyvsp[-1].ttype == error_mark_node) ! 6485: yyval.itype = 0; ! 6486: else ! 6487: { ! 6488: yyval.itype = 1; ! 6489: pushclass (yyvsp[-1].ttype, 1); ! 6490: } ! 6491: ; ! 6492: break;} ! 6493: case 620: ! 6494: #line 3500 "cp-parse.y" ! 6495: { ! 6496: warning ("type specifier omitted for parameter"); ! 6497: yyval.ttype = build_tree_list (TREE_PURPOSE (TREE_VALUE (yyvsp[-2].ttype)), yyval.ttype); ! 6498: ; ! 6499: break;} ! 6500: case 621: ! 6501: #line 3508 "cp-parse.y" ! 6502: { yyval.ttype = NULL_TREE; ; ! 6503: break;} ! 6504: case 622: ! 6505: #line 3510 "cp-parse.y" ! 6506: { yyval.ttype = yyvsp[0].ttype; ; ! 6507: break;} ! 6508: case 623: ! 6509: #line 3512 "cp-parse.y" ! 6510: { yyval.ttype = yyvsp[-1].ttype; ; ! 6511: break;} ! 6512: case 624: ! 6513: #line 3517 "cp-parse.y" ! 6514: { yyval.ttype = void_list_node; ; ! 6515: break;} ! 6516: case 625: ! 6517: #line 3519 "cp-parse.y" ! 6518: { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ; ! 6519: break;} ! 6520: case 626: ! 6521: #line 3521 "cp-parse.y" ! 6522: { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ; ! 6523: break;} ! 6524: case 627: ! 6525: #line 3523 "cp-parse.y" ! 6526: { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ; ! 6527: break;} ! 6528: case 628: ! 6529: #line 3525 "cp-parse.y" ! 6530: { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ; ! 6531: break;} ! 6532: case 629: ! 6533: #line 3527 "cp-parse.y" ! 6534: { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ; ! 6535: break;} ! 6536: case 631: ! 6537: #line 3533 "cp-parse.y" ! 6538: { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ; ! 6539: break;} ! 6540: case 633: ! 6541: #line 3539 "cp-parse.y" ! 6542: { ! 6543: TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; ! 6544: yyval.ttype = yyvsp[0].ttype; ! 6545: ; ! 6546: break;} ! 6547: case 635: ! 6548: #line 3548 "cp-parse.y" ! 6549: { ! 6550: TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; ! 6551: yyval.ttype = yyvsp[0].ttype; ! 6552: ; ! 6553: break;} ! 6554: case 636: ! 6555: #line 3556 "cp-parse.y" ! 6556: { yyval.ttype = ansi_opname[MULT_EXPR]; ; ! 6557: break;} ! 6558: case 637: ! 6559: #line 3558 "cp-parse.y" ! 6560: { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ; ! 6561: break;} ! 6562: case 638: ! 6563: #line 3560 "cp-parse.y" ! 6564: { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ; ! 6565: break;} ! 6566: case 639: ! 6567: #line 3562 "cp-parse.y" ! 6568: { yyval.ttype = ansi_opname[PLUS_EXPR]; ; ! 6569: break;} ! 6570: case 640: ! 6571: #line 3564 "cp-parse.y" ! 6572: { yyval.ttype = ansi_opname[MINUS_EXPR]; ; ! 6573: break;} ! 6574: case 641: ! 6575: #line 3566 "cp-parse.y" ! 6576: { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ; ! 6577: break;} ! 6578: case 642: ! 6579: #line 3568 "cp-parse.y" ! 6580: { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ; ! 6581: break;} ! 6582: case 643: ! 6583: #line 3570 "cp-parse.y" ! 6584: { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ; ! 6585: break;} ! 6586: case 644: ! 6587: #line 3572 "cp-parse.y" ! 6588: { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ; ! 6589: break;} ! 6590: case 645: ! 6591: #line 3574 "cp-parse.y" ! 6592: { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ; ! 6593: break;} ! 6594: case 646: ! 6595: #line 3576 "cp-parse.y" ! 6596: { yyval.ttype = ansi_opname[yyvsp[0].code]; ; ! 6597: break;} ! 6598: case 647: ! 6599: #line 3578 "cp-parse.y" ! 6600: { yyval.ttype = ansi_opname[LT_EXPR]; ; ! 6601: break;} ! 6602: case 648: ! 6603: #line 3580 "cp-parse.y" ! 6604: { yyval.ttype = ansi_opname[GT_EXPR]; ; ! 6605: break;} ! 6606: case 649: ! 6607: #line 3582 "cp-parse.y" ! 6608: { yyval.ttype = ansi_opname[yyvsp[0].code]; ; ! 6609: break;} ! 6610: case 650: ! 6611: #line 3584 "cp-parse.y" ! 6612: { yyval.ttype = ansi_assopname[yyvsp[0].code]; ; ! 6613: break;} ! 6614: case 651: ! 6615: #line 3586 "cp-parse.y" ! 6616: { ! 6617: yyval.ttype = ansi_opname [MODIFY_EXPR]; ! 6618: if (current_class_type) ! 6619: { ! 6620: TYPE_HAS_ASSIGNMENT (current_class_type) = 1; ! 6621: TYPE_GETS_ASSIGNMENT (current_class_type) = 1; ! 6622: } ! 6623: ; ! 6624: break;} ! 6625: case 652: ! 6626: #line 3595 "cp-parse.y" ! 6627: { yyval.ttype = ansi_opname[yyvsp[0].code]; ; ! 6628: break;} ! 6629: case 653: ! 6630: #line 3597 "cp-parse.y" ! 6631: { yyval.ttype = ansi_opname[yyvsp[0].code]; ; ! 6632: break;} ! 6633: case 654: ! 6634: #line 3599 "cp-parse.y" ! 6635: { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ; ! 6636: break;} ! 6637: case 655: ! 6638: #line 3601 "cp-parse.y" ! 6639: { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ; ! 6640: break;} ! 6641: case 656: ! 6642: #line 3603 "cp-parse.y" ! 6643: { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ; ! 6644: break;} ! 6645: case 657: ! 6646: #line 3605 "cp-parse.y" ! 6647: { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ; ! 6648: break;} ! 6649: case 658: ! 6650: #line 3607 "cp-parse.y" ! 6651: { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ; ! 6652: break;} ! 6653: case 659: ! 6654: #line 3609 "cp-parse.y" ! 6655: { yyval.ttype = ansi_opname[COND_EXPR]; ; ! 6656: break;} ! 6657: case 660: ! 6658: #line 3611 "cp-parse.y" ! 6659: { yyval.ttype = ansi_opname[yyvsp[0].code]; ; ! 6660: break;} ! 6661: case 661: ! 6662: #line 3613 "cp-parse.y" ! 6663: { yyval.ttype = ansi_opname[COMPONENT_REF]; ! 6664: if (current_class_type) ! 6665: { ! 6666: tree t = current_class_type; ! 6667: while (t) ! 6668: { ! 6669: TYPE_OVERLOADS_ARROW (t) = 1; ! 6670: t = TYPE_NEXT_VARIANT (t); ! 6671: } ! 6672: } ! 6673: ; ! 6674: break;} ! 6675: case 662: ! 6676: #line 3625 "cp-parse.y" ! 6677: { yyval.ttype = ansi_opname[MEMBER_REF]; ! 6678: if (current_class_type) ! 6679: { ! 6680: tree t = current_class_type; ! 6681: while (t) ! 6682: { ! 6683: TYPE_OVERLOADS_ARROW (t) = 1; ! 6684: t = TYPE_NEXT_VARIANT (t); ! 6685: } ! 6686: } ! 6687: ; ! 6688: break;} ! 6689: case 663: ! 6690: #line 3637 "cp-parse.y" ! 6691: { ! 6692: if (yychar == YYEMPTY) ! 6693: yychar = YYLEX; ! 6694: if (yychar == '(' || yychar == LEFT_RIGHT) ! 6695: { ! 6696: yyval.ttype = ansi_opname[METHOD_CALL_EXPR]; ! 6697: if (current_class_type) ! 6698: { ! 6699: tree t = current_class_type; ! 6700: while (t) ! 6701: { ! 6702: TYPE_OVERLOADS_METHOD_CALL_EXPR (t) = 1; ! 6703: t = TYPE_NEXT_VARIANT (t); ! 6704: } ! 6705: } ! 6706: } ! 6707: else ! 6708: { ! 6709: yyval.ttype = build_parse_node (CALL_EXPR, ansi_opname[COMPONENT_REF], void_list_node, yyvsp[0].ttype); ! 6710: if (current_class_type) ! 6711: { ! 6712: tree t = current_class_type; ! 6713: while (t) ! 6714: { ! 6715: TYPE_OVERLOADS_ARROW (t) = 1; ! 6716: t = TYPE_NEXT_VARIANT (t); ! 6717: } ! 6718: } ! 6719: } ! 6720: ; ! 6721: break;} ! 6722: case 664: ! 6723: #line 3668 "cp-parse.y" ! 6724: { yyval.ttype = ansi_opname[CALL_EXPR]; ! 6725: if (current_class_type) ! 6726: { ! 6727: tree t = current_class_type; ! 6728: while (t) ! 6729: { ! 6730: TYPE_OVERLOADS_CALL_EXPR (t) = 1; ! 6731: t = TYPE_NEXT_VARIANT (t); ! 6732: } ! 6733: } ! 6734: ; ! 6735: break;} ! 6736: case 665: ! 6737: #line 3680 "cp-parse.y" ! 6738: { yyval.ttype = ansi_opname[ARRAY_REF]; ! 6739: if (current_class_type) ! 6740: { ! 6741: tree t = current_class_type; ! 6742: while (t) ! 6743: { ! 6744: TYPE_OVERLOADS_ARRAY_REF (t) = 1; ! 6745: t = TYPE_NEXT_VARIANT (t); ! 6746: } ! 6747: } ! 6748: ; ! 6749: break;} ! 6750: case 666: ! 6751: #line 3692 "cp-parse.y" ! 6752: { ! 6753: yyval.ttype = ansi_opname[NEW_EXPR]; ! 6754: if (current_class_type) ! 6755: { ! 6756: tree t = current_class_type; ! 6757: while (t) ! 6758: { ! 6759: TREE_GETS_NEW (t) = 1; ! 6760: t = TYPE_NEXT_VARIANT (t); ! 6761: } ! 6762: } ! 6763: ; ! 6764: break;} ! 6765: case 667: ! 6766: #line 3705 "cp-parse.y" ! 6767: { ! 6768: yyval.ttype = ansi_opname[DELETE_EXPR]; ! 6769: if (current_class_type) ! 6770: { ! 6771: tree t = current_class_type; ! 6772: while (t) ! 6773: { ! 6774: TREE_GETS_DELETE (t) = 1; ! 6775: t = TYPE_NEXT_VARIANT (t); ! 6776: } ! 6777: } ! 6778: ; ! 6779: break;} ! 6780: case 668: ! 6781: #line 3721 "cp-parse.y" ! 6782: { ! 6783: yyval.ttype = build1 (TYPE_EXPR, yyvsp[-1].ttype, yyvsp[0].ttype); ! 6784: ; ! 6785: break;} ! 6786: case 669: ! 6787: #line 3725 "cp-parse.y" ! 6788: { yyval.ttype = ansi_opname[ERROR_MARK]; ; ! 6789: break;} ! 6790: } ! 6791: /* the action file gets copied in in place of this dollarsign */ ! 6792: #line 440 "bison.simple" ! 6793: ! 6794: yyvsp -= yylen; ! 6795: yyssp -= yylen; ! 6796: #ifdef YYLSP_NEEDED ! 6797: yylsp -= yylen; ! 6798: #endif ! 6799: ! 6800: #if YYDEBUG != 0 ! 6801: if (yydebug) ! 6802: { ! 6803: short *ssp1 = yyss - 1; ! 6804: fprintf (stderr, "state stack now"); ! 6805: while (ssp1 != yyssp) ! 6806: fprintf (stderr, " %d", *++ssp1); ! 6807: fprintf (stderr, "\n"); ! 6808: } ! 6809: #endif ! 6810: ! 6811: *++yyvsp = yyval; ! 6812: ! 6813: #ifdef YYLSP_NEEDED ! 6814: yylsp++; ! 6815: if (yylen == 0) ! 6816: { ! 6817: yylsp->first_line = yylloc.first_line; ! 6818: yylsp->first_column = yylloc.first_column; ! 6819: yylsp->last_line = (yylsp-1)->last_line; ! 6820: yylsp->last_column = (yylsp-1)->last_column; ! 6821: yylsp->text = 0; ! 6822: } ! 6823: else ! 6824: { ! 6825: yylsp->last_line = (yylsp+yylen-1)->last_line; ! 6826: yylsp->last_column = (yylsp+yylen-1)->last_column; ! 6827: } ! 6828: #endif ! 6829: ! 6830: /* Now "shift" the result of the reduction. ! 6831: Determine what state that goes to, ! 6832: based on the state we popped back to ! 6833: and the rule number reduced by. */ ! 6834: ! 6835: yyn = yyr1[yyn]; ! 6836: ! 6837: yystate = yypgoto[yyn - YYNTBASE] + *yyssp; ! 6838: if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) ! 6839: yystate = yytable[yystate]; ! 6840: else ! 6841: yystate = yydefgoto[yyn - YYNTBASE]; ! 6842: ! 6843: goto yynewstate; ! 6844: ! 6845: yyerrlab: /* here on detecting error */ ! 6846: ! 6847: if (! yyerrstatus) ! 6848: /* If not already recovering from an error, report this error. */ ! 6849: { ! 6850: ++yynerrs; ! 6851: ! 6852: #ifdef YYERROR_VERBOSE ! 6853: yyn = yypact[yystate]; ! 6854: ! 6855: if (yyn > YYFLAG && yyn < YYLAST) ! 6856: { ! 6857: int size = 0; ! 6858: char *msg; ! 6859: int x, count; ! 6860: ! 6861: count = 0; ! 6862: for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++) ! 6863: if (yycheck[x + yyn] == x) ! 6864: size += strlen(yytname[x]) + 15, count++; ! 6865: msg = (char *) malloc(size + 15); ! 6866: if (msg != 0) ! 6867: { ! 6868: strcpy(msg, "parse error"); ! 6869: ! 6870: if (count < 5) ! 6871: { ! 6872: count = 0; ! 6873: for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++) ! 6874: if (yycheck[x + yyn] == x) ! 6875: { ! 6876: strcat(msg, count == 0 ? ", expecting `" : " or `"); ! 6877: strcat(msg, yytname[x]); ! 6878: strcat(msg, "'"); ! 6879: count++; ! 6880: } ! 6881: } ! 6882: yyerror(msg); ! 6883: free(msg); ! 6884: } ! 6885: else ! 6886: yyerror ("parse error; also virtual memory exceeded"); ! 6887: } ! 6888: else ! 6889: #endif /* YYERROR_VERBOSE */ ! 6890: yyerror("parse error"); ! 6891: } ! 6892: ! 6893: yyerrlab1: /* here on error raised explicitly by an action */ ! 6894: ! 6895: if (yyerrstatus == 3) ! 6896: { ! 6897: /* if just tried and failed to reuse lookahead token after an error, discard it. */ ! 6898: ! 6899: /* return failure if at end of input */ ! 6900: if (yychar == YYEOF) ! 6901: YYABORT; ! 6902: ! 6903: #if YYDEBUG != 0 ! 6904: if (yydebug) ! 6905: fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); ! 6906: #endif ! 6907: ! 6908: yychar = YYEMPTY; ! 6909: } ! 6910: ! 6911: /* Else will try to reuse lookahead token ! 6912: after shifting the error token. */ ! 6913: ! 6914: yyerrstatus = 3; /* Each real token shifted decrements this */ ! 6915: ! 6916: goto yyerrhandle; ! 6917: ! 6918: yyerrdefault: /* current state does not do anything special for the error token. */ ! 6919: ! 6920: #if 0 ! 6921: /* This is wrong; only states that explicitly want error tokens ! 6922: should shift them. */ ! 6923: yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ ! 6924: if (yyn) goto yydefault; ! 6925: #endif ! 6926: ! 6927: yyerrpop: /* pop the current state because it cannot handle the error token */ ! 6928: ! 6929: if (yyssp == yyss) YYABORT; ! 6930: yyvsp--; ! 6931: yystate = *--yyssp; ! 6932: #ifdef YYLSP_NEEDED ! 6933: yylsp--; ! 6934: #endif ! 6935: ! 6936: #if YYDEBUG != 0 ! 6937: if (yydebug) ! 6938: { ! 6939: short *ssp1 = yyss - 1; ! 6940: fprintf (stderr, "Error: state stack now"); ! 6941: while (ssp1 != yyssp) ! 6942: fprintf (stderr, " %d", *++ssp1); ! 6943: fprintf (stderr, "\n"); ! 6944: } ! 6945: #endif ! 6946: ! 6947: yyerrhandle: ! 6948: ! 6949: yyn = yypact[yystate]; ! 6950: if (yyn == YYFLAG) ! 6951: goto yyerrdefault; ! 6952: ! 6953: yyn += YYTERROR; ! 6954: if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) ! 6955: goto yyerrdefault; ! 6956: ! 6957: yyn = yytable[yyn]; ! 6958: if (yyn < 0) ! 6959: { ! 6960: if (yyn == YYFLAG) ! 6961: goto yyerrpop; ! 6962: yyn = -yyn; ! 6963: goto yyreduce; ! 6964: } ! 6965: else if (yyn == 0) ! 6966: goto yyerrpop; ! 6967: ! 6968: if (yyn == YYFINAL) ! 6969: YYACCEPT; ! 6970: ! 6971: #if YYDEBUG != 0 ! 6972: if (yydebug) ! 6973: fprintf(stderr, "Shifting error token, "); ! 6974: #endif ! 6975: ! 6976: *++yyvsp = yylval; ! 6977: #ifdef YYLSP_NEEDED ! 6978: *++yylsp = yylloc; ! 6979: #endif ! 6980: ! 6981: yystate = yyn; ! 6982: goto yynewstate; ! 6983: } ! 6984: #line 3728 "cp-parse.y" ! 6985: ! 6986: ! 6987: #if YYDEBUG != 0 ! 6988: db_yyerror (s, yyps, yychar) ! 6989: char *s; ! 6990: short *yyps; ! 6991: int yychar; ! 6992: { ! 6993: FILE *yyout; ! 6994: char buf[1024]; ! 6995: int st; ! 6996: ! 6997: yyerror (s); ! 6998: printf ("State is %d, input token number is %d.\n", *yyps, yychar); ! 6999: ! 7000: #ifdef PARSE_OUTPUT ! 7001: if (*yyps < 1) fatal ("Cannot start from here"); ! 7002: else if ((yyout = fopen (PARSE_OUTPUT, "r")) == NULL) ! 7003: error ("cannot open file %s", PARSE_OUTPUT); ! 7004: else ! 7005: { ! 7006: printf ("That is to say,\n\n"); ! 7007: while (fgets(buf, sizeof (buf)-1, yyout)) ! 7008: { ! 7009: if (buf[0] != 's') continue; ! 7010: st = atoi (buf+6); ! 7011: if (st != *yyps) continue; ! 7012: printf ("%s", buf); ! 7013: while (fgets (buf, sizeof (buf)-1, yyout)) ! 7014: { ! 7015: if (buf[0] == 's') break; ! 7016: printf ("%s", buf); ! 7017: } ! 7018: break; ! 7019: } ! 7020: printf ("With the token %s\n", yytname[YYTRANSLATE (yychar)]); ! 7021: fclose (yyout); ! 7022: } ! 7023: #endif ! 7024: } ! 7025: #endif ! 7026: ! 7027: void ! 7028: yyerror (string) ! 7029: char *string; ! 7030: { ! 7031: extern int end_of_file; ! 7032: extern char *token_buffer; ! 7033: extern int input_redirected (); ! 7034: char buf[200]; ! 7035: ! 7036: strcpy (buf, string); ! 7037: ! 7038: /* We can't print string and character constants well ! 7039: because the token_buffer contains the result of processing escapes. */ ! 7040: if (end_of_file) ! 7041: strcat (buf, input_redirected () ! 7042: ? " at end of saved text" ! 7043: : " at end of input"); ! 7044: else if (token_buffer[0] == 0) ! 7045: strcat (buf, " at null character"); ! 7046: else if (token_buffer[0] == '"') ! 7047: strcat (buf, " before string constant"); ! 7048: else if (token_buffer[0] == '\'') ! 7049: strcat (buf, " before character constant"); ! 7050: else if (token_buffer[0] < 040 || (unsigned char) token_buffer[0] >= 0177) ! 7051: sprintf (buf + strlen (buf), " before character 0%o", ! 7052: (unsigned char) token_buffer[0]); ! 7053: else ! 7054: strcat (buf, " before `%s'"); ! 7055: ! 7056: error (buf, token_buffer); ! 7057: } ! 7058: ! 7059: static ! 7060: #ifdef __GNUC__ ! 7061: __inline ! 7062: #endif ! 7063: void ! 7064: yyprint (file, yychar, yylval) ! 7065: FILE *file; ! 7066: int yychar; ! 7067: YYSTYPE yylval; ! 7068: { ! 7069: tree t; ! 7070: switch (yychar) ! 7071: { ! 7072: case IDENTIFIER: ! 7073: case TYPENAME: ! 7074: case TYPESPEC: ! 7075: case PTYPENAME: ! 7076: case IDENTIFIER_DEFN: ! 7077: case TYPENAME_DEFN: ! 7078: case PTYPENAME_DEFN: ! 7079: case TYPENAME_COLON: ! 7080: case TYPENAME_ELLIPSIS: ! 7081: case SCOPED_TYPENAME: ! 7082: case SCSPEC: ! 7083: t = yylval.ttype; ! 7084: print_id: ! 7085: assert (TREE_CODE (t) == IDENTIFIER_NODE); ! 7086: if (IDENTIFIER_POINTER (t)) ! 7087: fprintf (file, " `%s'", IDENTIFIER_POINTER (t)); ! 7088: break; ! 7089: case AGGR: ! 7090: if (yylval.ttype == class_type_node) ! 7091: fprintf (file, " `class'"); ! 7092: else if (yylval.ttype == record_type_node) ! 7093: fprintf (file, " `struct'"); ! 7094: else if (yylval.ttype == union_type_node) ! 7095: fprintf (file, " `union'"); ! 7096: else if (yylval.ttype == enum_type_node) ! 7097: fprintf (file, " `enum'"); ! 7098: else ! 7099: abort (); ! 7100: break; ! 7101: case PRE_PARSED_CLASS_DECL: ! 7102: t = yylval.ttype; ! 7103: assert (TREE_CODE (t) == TREE_LIST); ! 7104: t = TREE_VALUE (t); ! 7105: goto print_id; ! 7106: } ! 7107: } ! 7108: ! 7109: static int *reduce_count; ! 7110: int *token_count; ! 7111: ! 7112: #define REDUCE_LENGTH (sizeof (yyr2) / sizeof (yyr2[0])) ! 7113: #define TOKEN_LENGTH (256 + sizeof (yytname) / sizeof (yytname[0])) ! 7114: ! 7115: int * ! 7116: init_parse () ! 7117: { ! 7118: #ifdef GATHER_STATISTICS ! 7119: reduce_count = (int *)malloc (sizeof (int) * (REDUCE_LENGTH + 1)); ! 7120: bzero (reduce_count, sizeof (int) * (REDUCE_LENGTH + 1)); ! 7121: reduce_count += 1; ! 7122: token_count = (int *)malloc (sizeof (int) * (TOKEN_LENGTH + 1)); ! 7123: bzero (token_count, sizeof (int) * (TOKEN_LENGTH + 1)); ! 7124: token_count += 1; ! 7125: #endif ! 7126: return token_count; ! 7127: } ! 7128: ! 7129: #ifdef GATHER_STATISTICS ! 7130: void ! 7131: yyhook (yyn) ! 7132: int yyn; ! 7133: { ! 7134: reduce_count[yyn] += 1; ! 7135: } ! 7136: #endif ! 7137: ! 7138: static int ! 7139: reduce_cmp (p, q) ! 7140: int *p, *q; ! 7141: { ! 7142: return reduce_count[*q] - reduce_count[*p]; ! 7143: } ! 7144: ! 7145: static int ! 7146: token_cmp (p, q) ! 7147: int *p, *q; ! 7148: { ! 7149: return token_count[*q] - token_count[*p]; ! 7150: } ! 7151: ! 7152: void ! 7153: print_parse_statistics () ! 7154: { ! 7155: #if YYDEBUG != 0 ! 7156: int i; ! 7157: int maxlen = REDUCE_LENGTH; ! 7158: unsigned *sorted; ! 7159: ! 7160: if (reduce_count[-1] == 0) ! 7161: return; ! 7162: ! 7163: if (TOKEN_LENGTH > REDUCE_LENGTH) ! 7164: maxlen = TOKEN_LENGTH; ! 7165: sorted = (unsigned *) alloca (sizeof (int) * maxlen); ! 7166: ! 7167: for (i = 0; i < TOKEN_LENGTH; i++) ! 7168: sorted[i] = i; ! 7169: qsort (sorted, TOKEN_LENGTH, sizeof (int), token_cmp); ! 7170: for (i = 0; i < TOKEN_LENGTH; i++) ! 7171: { ! 7172: int index = sorted[i]; ! 7173: if (token_count[index] == 0) ! 7174: break; ! 7175: if (token_count[index] < token_count[-1]) ! 7176: break; ! 7177: fprintf (stderr, "token %d, `%s', count = %d\n", ! 7178: index, yytname[YYTRANSLATE (index)], token_count[index]); ! 7179: } ! 7180: fprintf (stderr, "\n"); ! 7181: for (i = 0; i < REDUCE_LENGTH; i++) ! 7182: sorted[i] = i; ! 7183: qsort (sorted, REDUCE_LENGTH, sizeof (int), reduce_cmp); ! 7184: for (i = 0; i < REDUCE_LENGTH; i++) ! 7185: { ! 7186: int index = sorted[i]; ! 7187: if (reduce_count[index] == 0) ! 7188: break; ! 7189: if (reduce_count[index] < reduce_count[-1]) ! 7190: break; ! 7191: fprintf (stderr, "rule %d, line %d, count = %d\n", ! 7192: index, yyrline[index], reduce_count[index]); ! 7193: } ! 7194: fprintf (stderr, "\n"); ! 7195: #endif ! 7196: } ! 7197: ! 7198: ! 7199: /* Sets the value of the 'yydebug' varable to VALUE. ! 7200: This is a function so we don't have to have YYDEBUG defined ! 7201: in order to build the compiler. */ ! 7202: void ! 7203: set_yydebug (value) ! 7204: int value; ! 7205: { ! 7206: #if YYDEBUG != 0 ! 7207: yydebug = value; ! 7208: #else ! 7209: warning ("YYDEBUG not defined."); ! 7210: #endif ! 7211: } ! 7212: ! 7213: #ifdef SPEW_DEBUG ! 7214: const char * ! 7215: debug_yytranslate (value) ! 7216: int value; ! 7217: { ! 7218: #if YYDEBUG != 0 ! 7219: return yytname[YYTRANSLATE (value)]; ! 7220: #else ! 7221: return "YYDEBUG not defined."; ! 7222: #endif ! 7223: } ! 7224: ! 7225: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.