|
|
1.1 ! root 1: ! 2: /* A Bison parser, made from objc-parse.y */ ! 3: ! 4: #define YYBISON 1 /* Identify Bison output. */ ! 5: ! 6: #define IDENTIFIER 258 ! 7: #define TYPENAME 259 ! 8: #define SCSPEC 260 ! 9: #define TYPESPEC 261 ! 10: #define TYPE_QUAL 262 ! 11: #define CONSTANT 263 ! 12: #define STRING 264 ! 13: #define ELLIPSIS 265 ! 14: #define SIZEOF 266 ! 15: #define ENUM 267 ! 16: #define STRUCT 268 ! 17: #define UNION 269 ! 18: #define IF 270 ! 19: #define ELSE 271 ! 20: #define WHILE 272 ! 21: #define DO 273 ! 22: #define FOR 274 ! 23: #define SWITCH 275 ! 24: #define CASE 276 ! 25: #define DEFAULT 277 ! 26: #define BREAK 278 ! 27: #define CONTINUE 279 ! 28: #define RETURN 280 ! 29: #define GOTO 281 ! 30: #define ASM 282 ! 31: #define TYPEOF 283 ! 32: #define ALIGNOF 284 ! 33: #define ALIGN 285 ! 34: #define ATTRIBUTE 286 ! 35: #define EXTENSION 287 ! 36: #define LABEL 288 ! 37: #define ASSIGN 289 ! 38: #define OROR 290 ! 39: #define ANDAND 291 ! 40: #define EQCOMPARE 292 ! 41: #define ARITHCOMPARE 293 ! 42: #define LSHIFT 294 ! 43: #define RSHIFT 295 ! 44: #define UNARY 296 ! 45: #define PLUSPLUS 297 ! 46: #define MINUSMINUS 298 ! 47: #define HYPERUNARY 299 ! 48: #define POINTSAT 300 ! 49: #define INTERFACE 301 ! 50: #define IMPLEMENTATION 302 ! 51: #define END 303 ! 52: #define SELECTOR 304 ! 53: #define DEFS 305 ! 54: #define ENCODE 306 ! 55: #define CLASSNAME 307 ! 56: #define PUBLIC 308 ! 57: ! 58: #line 40 "objc-parse.y" ! 59: ! 60: #include <stdio.h> ! 61: #include <errno.h> ! 62: #include <setjmp.h> ! 63: ! 64: #include "config.h" ! 65: #include "tree.h" ! 66: #include "input.h" ! 67: #include "c-lex.h" ! 68: #include "c-tree.h" ! 69: #include "flags.h" ! 70: ! 71: #include "objc-actions.h" ! 72: ! 73: #ifndef errno ! 74: extern int errno; ! 75: #endif ! 76: ! 77: void yyerror (); ! 78: ! 79: /* Like YYERROR but do call yyerror. */ ! 80: #define YYERROR1 { yyerror ("syntax error"); YYERROR; } ! 81: ! 82: /* Cause the `yydebug' variable to be defined. */ ! 83: #define YYDEBUG 1 ! 84: ! 85: #line 69 "objc-parse.y" ! 86: typedef union {long itype; tree ttype; enum tree_code code; ! 87: char *filename; int lineno; } YYSTYPE; ! 88: #line 181 "objc-parse.y" ! 89: ! 90: /* Number of statements (loosely speaking) seen so far. */ ! 91: static int stmt_count; ! 92: ! 93: /* Input file and line number of the end of the body of last simple_if; ! 94: used by the stmt-rule immediately after simple_if returns. */ ! 95: static char *if_stmt_file; ! 96: static int if_stmt_line; ! 97: ! 98: /* List of types and structure classes of the current declaration. */ ! 99: static tree current_declspecs; ! 100: ! 101: /* Stack of saved values of current_declspecs. */ ! 102: static tree declspec_stack; ! 103: ! 104: /* 1 if we explained undeclared var errors. */ ! 105: static int undeclared_variable_notice; ! 106: ! 107: /* Objective-C specific information */ ! 108: ! 109: tree objc_interface_context; ! 110: tree objc_implementation_context; ! 111: tree objc_method_context; ! 112: tree objc_ivar_chain; ! 113: tree objc_ivar_context; ! 114: enum tree_code objc_inherit_code; ! 115: int objc_receiver_context; ! 116: int objc_public_flag; ! 117: ! 118: /* Tell yyparse how to print a token's value, if yydebug is set. */ ! 119: ! 120: #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL) ! 121: extern void yyprint (); ! 122: ! 123: #ifndef YYLTYPE ! 124: typedef ! 125: struct yyltype ! 126: { ! 127: int timestamp; ! 128: int first_line; ! 129: int first_column; ! 130: int last_line; ! 131: int last_column; ! 132: char *text; ! 133: } ! 134: yyltype; ! 135: ! 136: #define YYLTYPE yyltype ! 137: #endif ! 138: ! 139: #include <stdio.h> ! 140: ! 141: #ifndef __STDC__ ! 142: #define const ! 143: #endif ! 144: ! 145: ! 146: ! 147: #define YYFINAL 797 ! 148: #define YYFLAG -32768 ! 149: #define YYNTBASE 76 ! 150: ! 151: #define YYTRANSLATE(x) ((unsigned)(x) <= 308 ? yytranslate[x] : 257) ! 152: ! 153: static const char yytranslate[] = { 0, ! 154: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 155: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 156: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 157: 2, 2, 72, 2, 2, 2, 51, 42, 2, 58, ! 158: 68, 49, 47, 73, 48, 57, 50, 2, 2, 2, ! 159: 2, 2, 2, 2, 2, 2, 2, 37, 69, 2, ! 160: 35, 2, 36, 2, 2, 2, 2, 2, 2, 2, ! 161: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 162: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 163: 59, 2, 75, 41, 2, 2, 2, 2, 2, 2, ! 164: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 165: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 166: 2, 2, 74, 40, 70, 71, 2, 2, 2, 2, ! 167: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 168: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 169: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 170: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 171: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 172: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 173: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 174: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 175: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 176: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 177: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 178: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 179: 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, ! 180: 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, ! 181: 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, ! 182: 26, 27, 28, 29, 30, 31, 32, 33, 34, 38, ! 183: 39, 43, 44, 45, 46, 52, 53, 54, 55, 56, ! 184: 60, 61, 62, 63, 64, 65, 66, 67 ! 185: }; ! 186: ! 187: static const short yyprhs[] = { 0, ! 188: 0, 1, 3, 4, 7, 8, 12, 14, 16, 18, ! 189: 24, 28, 33, 38, 41, 44, 47, 50, 52, 53, ! 190: 54, 62, 67, 68, 69, 77, 82, 83, 84, 91, ! 191: 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, ! 192: 115, 117, 118, 120, 122, 126, 128, 131, 132, 136, ! 193: 139, 142, 145, 150, 153, 158, 160, 165, 173, 175, ! 194: 179, 183, 187, 191, 195, 199, 203, 207, 211, 215, ! 195: 219, 223, 227, 231, 237, 241, 245, 247, 249, 251, ! 196: 255, 259, 260, 265, 270, 275, 279, 283, 286, 289, ! 197: 291, 293, 295, 297, 300, 301, 303, 306, 310, 312, ! 198: 314, 317, 320, 321, 326, 331, 335, 339, 342, 345, ! 199: 348, 352, 353, 356, 359, 361, 363, 366, 369, 372, ! 200: 376, 377, 380, 382, 384, 386, 388, 393, 398, 400, ! 201: 402, 404, 406, 410, 412, 416, 417, 422, 423, 430, ! 202: 434, 435, 442, 446, 447, 454, 456, 460, 462, 467, ! 203: 476, 478, 481, 485, 490, 492, 494, 498, 503, 510, ! 204: 514, 520, 521, 525, 526, 530, 532, 534, 538, 542, ! 205: 547, 551, 555, 557, 561, 566, 570, 574, 576, 580, ! 206: 584, 588, 593, 597, 599, 600, 607, 612, 615, 616, ! 207: 623, 628, 631, 632, 640, 641, 648, 651, 652, 654, ! 208: 655, 657, 659, 662, 663, 667, 670, 675, 679, 681, ! 209: 685, 687, 689, 691, 695, 700, 707, 712, 714, 718, ! 210: 720, 724, 727, 730, 731, 733, 735, 738, 739, 742, ! 211: 746, 750, 753, 757, 762, 766, 769, 773, 776, 778, ! 212: 781, 784, 785, 787, 790, 791, 792, 794, 796, 799, ! 213: 803, 805, 808, 811, 818, 824, 830, 831, 838, 839, ! 214: 840, 844, 846, 849, 850, 855, 857, 858, 859, 867, ! 215: 868, 869, 879, 880, 881, 882, 895, 896, 903, 904, ! 216: 910, 911, 919, 920, 925, 928, 931, 934, 938, 945, ! 217: 954, 965, 978, 982, 987, 988, 993, 995, 996, 998, ! 218: 999, 1001, 1002, 1004, 1006, 1010, 1015, 1017, 1021, 1022, ! 219: 1025, 1026, 1029, 1032, 1035, 1038, 1041, 1044, 1045, 1047, ! 220: 1051, 1053, 1057, 1060, 1063, 1066, 1069, 1072, 1074, 1078, ! 221: 1080, 1082, 1084, 1085, 1086, 1096, 1097, 1103, 1104, 1105, ! 222: 1117, 1118, 1126, 1127, 1134, 1137, 1138, 1147, 1152, 1153, ! 223: 1162, 1168, 1169, 1174, 1176, 1177, 1181, 1184, 1188, 1192, ! 224: 1194, 1195, 1197, 1201, 1203, 1207, 1210, 1211, 1212, 1213, ! 225: 1221, 1222, 1223, 1224, 1232, 1233, 1234, 1237, 1239, 1241, ! 226: 1244, 1245, 1249, 1251, 1253, 1254, 1255, 1261, 1262, 1263, ! 227: 1269, 1274, 1276, 1282, 1285, 1286, 1289, 1290, 1292, 1294, ! 228: 1296, 1299, 1302, 1307, 1310, 1313, 1315, 1319, 1321, 1323, ! 229: 1325, 1326, 1329, 1330, 1334, 1336, 1338, 1341, 1343, 1345, ! 230: 1347, 1349, 1351, 1353, 1355, 1357, 1359, 1361, 1363, 1365, ! 231: 1367, 1369, 1371, 1373, 1375, 1377, 1379, 1381, 1383, 1385, ! 232: 1387, 1389, 1396, 1400, 1406, 1409, 1411, 1413, 1415, 1418, ! 233: 1420, 1424, 1427, 1429, 1431, 1432, 1433, 1440, 1442, 1444, ! 234: 1446, 1449, 1452, 1454, 1459 ! 235: }; ! 236: ! 237: static const short yyrhs[] = { -1, ! 238: 77, 0, 0, 78, 80, 0, 0, 77, 79, 80, ! 239: 0, 82, 0, 81, 0, 196, 0, 27, 58, 100, ! 240: 68, 69, 0, 104, 114, 69, 0, 108, 104, 114, ! 241: 69, 0, 106, 104, 113, 69, 0, 108, 69, 0, ! 242: 106, 69, 0, 1, 69, 0, 1, 70, 0, 69, ! 243: 0, 0, 0, 106, 104, 129, 83, 101, 84, 159, ! 244: 0, 106, 104, 129, 1, 0, 0, 0, 108, 104, ! 245: 132, 85, 101, 86, 159, 0, 108, 104, 132, 1, ! 246: 0, 0, 0, 104, 132, 87, 101, 88, 159, 0, ! 247: 104, 132, 1, 0, 3, 0, 4, 0, 66, 0, ! 248: 42, 0, 48, 0, 47, 0, 53, 0, 54, 0, ! 249: 71, 0, 72, 0, 93, 0, 0, 93, 0, 97, ! 250: 0, 93, 73, 97, 0, 98, 0, 49, 96, 0, ! 251: 0, 32, 95, 96, 0, 90, 96, 0, 39, 89, ! 252: 0, 11, 94, 0, 11, 58, 147, 68, 0, 29, ! 253: 94, 0, 29, 58, 147, 68, 0, 94, 0, 58, ! 254: 147, 68, 96, 0, 58, 147, 68, 74, 124, 138, ! 255: 70, 0, 96, 0, 97, 47, 97, 0, 97, 48, ! 256: 97, 0, 97, 49, 97, 0, 97, 50, 97, 0, ! 257: 97, 51, 97, 0, 97, 45, 97, 0, 97, 46, ! 258: 97, 0, 97, 44, 97, 0, 97, 43, 97, 0, ! 259: 97, 42, 97, 0, 97, 40, 97, 0, 97, 41, ! 260: 97, 0, 97, 39, 97, 0, 97, 38, 97, 0, ! 261: 97, 36, 181, 37, 97, 0, 97, 35, 97, 0, ! 262: 97, 34, 97, 0, 3, 0, 8, 0, 100, 0, ! 263: 58, 91, 68, 0, 58, 1, 68, 0, 0, 58, ! 264: 99, 160, 68, 0, 98, 58, 92, 68, 0, 98, ! 265: 59, 91, 75, 0, 98, 57, 89, 0, 98, 56, ! 266: 89, 0, 98, 53, 0, 98, 54, 0, 249, 0, ! 267: 255, 0, 256, 0, 9, 0, 100, 9, 0, 0, ! 268: 103, 0, 103, 10, 0, 163, 164, 105, 0, 102, ! 269: 0, 154, 0, 103, 102, 0, 102, 154, 0, 0, ! 270: 106, 104, 113, 69, 0, 108, 104, 114, 69, 0, ! 271: 106, 104, 125, 0, 108, 104, 127, 0, 106, 69, ! 272: 0, 108, 69, 0, 111, 107, 0, 108, 111, 107, ! 273: 0, 0, 107, 112, 0, 107, 5, 0, 7, 0, ! 274: 5, 0, 108, 7, 0, 108, 5, 0, 111, 110, ! 275: 0, 149, 111, 110, 0, 0, 110, 112, 0, 6, ! 276: 0, 133, 0, 4, 0, 66, 0, 28, 58, 91, ! 277: 68, 0, 28, 58, 147, 68, 0, 6, 0, 7, ! 278: 0, 133, 0, 116, 0, 113, 73, 116, 0, 118, ! 279: 0, 114, 73, 116, 0, 0, 27, 58, 100, 68, ! 280: 0, 0, 129, 115, 120, 35, 117, 123, 0, 129, ! 281: 115, 120, 0, 0, 132, 115, 120, 35, 119, 123, ! 282: 0, 132, 115, 120, 0, 0, 31, 58, 58, 121, ! 283: 68, 68, 0, 122, 0, 121, 73, 122, 0, 3, ! 284: 0, 3, 58, 8, 68, 0, 3, 58, 3, 73, ! 285: 8, 73, 8, 68, 0, 97, 0, 74, 70, 0, ! 286: 74, 124, 70, 0, 74, 124, 73, 70, 0, 1, ! 287: 0, 123, 0, 124, 73, 123, 0, 59, 97, 75, ! 288: 123, 0, 124, 73, 21, 97, 37, 123, 0, 89, ! 289: 37, 123, 0, 124, 73, 89, 37, 123, 0, 0, ! 290: 129, 126, 160, 0, 0, 132, 128, 160, 0, 130, ! 291: 0, 132, 0, 58, 130, 68, 0, 130, 58, 188, ! 292: 0, 130, 59, 91, 75, 0, 130, 59, 75, 0, ! 293: 49, 150, 130, 0, 4, 0, 131, 58, 188, 0, ! 294: 131, 59, 91, 75, 0, 131, 59, 75, 0, 49, ! 295: 150, 131, 0, 4, 0, 132, 58, 188, 0, 58, ! 296: 132, 68, 0, 49, 150, 132, 0, 132, 59, 91, ! 297: 75, 0, 132, 59, 75, 0, 3, 0, 0, 13, ! 298: 89, 74, 134, 140, 70, 0, 13, 74, 140, 70, ! 299: 0, 13, 89, 0, 0, 14, 89, 74, 135, 140, ! 300: 70, 0, 14, 74, 140, 70, 0, 14, 89, 0, ! 301: 0, 12, 89, 74, 136, 145, 139, 70, 0, 0, ! 302: 12, 74, 137, 145, 139, 70, 0, 12, 89, 0, ! 303: 0, 73, 0, 0, 73, 0, 141, 0, 141, 142, ! 304: 0, 0, 141, 142, 69, 0, 141, 69, 0, 64, ! 305: 58, 66, 68, 0, 109, 104, 143, 0, 109, 0, ! 306: 149, 104, 143, 0, 149, 0, 1, 0, 144, 0, ! 307: 143, 73, 144, 0, 163, 164, 129, 120, 0, 163, ! 308: 164, 129, 37, 97, 120, 0, 163, 164, 37, 97, ! 309: 0, 146, 0, 145, 73, 146, 0, 89, 0, 89, ! 310: 35, 97, 0, 109, 148, 0, 149, 148, 0, 0, ! 311: 151, 0, 7, 0, 149, 7, 0, 0, 150, 7, ! 312: 0, 58, 151, 68, 0, 49, 150, 151, 0, 49, ! 313: 150, 0, 151, 58, 186, 0, 151, 59, 91, 75, ! 314: 0, 151, 59, 75, 0, 58, 186, 0, 59, 91, ! 315: 75, 0, 59, 75, 0, 165, 0, 152, 165, 0, ! 316: 152, 154, 0, 0, 152, 0, 1, 69, 0, 0, ! 317: 0, 157, 0, 158, 0, 157, 158, 0, 33, 195, ! 318: 69, 0, 160, 0, 1, 160, 0, 74, 70, 0, ! 319: 74, 155, 156, 103, 153, 70, 0, 74, 155, 156, ! 320: 1, 70, 0, 74, 155, 156, 152, 70, 0, 0, ! 321: 15, 58, 91, 68, 162, 165, 0, 0, 0, 163, ! 322: 164, 166, 0, 160, 0, 91, 69, 0, 0, 161, ! 323: 16, 167, 165, 0, 161, 0, 0, 0, 17, 168, ! 324: 58, 91, 68, 169, 165, 0, 0, 0, 18, 170, ! 325: 165, 17, 171, 58, 91, 68, 69, 0, 0, 0, ! 326: 0, 19, 58, 181, 69, 172, 181, 69, 173, 181, ! 327: 68, 174, 165, 0, 0, 20, 58, 91, 68, 175, ! 328: 165, 0, 0, 21, 91, 37, 176, 165, 0, 0, ! 329: 21, 91, 10, 91, 37, 177, 165, 0, 0, 22, ! 330: 37, 178, 165, 0, 23, 69, 0, 24, 69, 0, ! 331: 25, 69, 0, 25, 91, 69, 0, 27, 180, 58, ! 332: 100, 68, 69, 0, 27, 180, 58, 100, 37, 182, ! 333: 68, 69, 0, 27, 180, 58, 100, 37, 182, 37, ! 334: 182, 68, 69, 0, 27, 180, 58, 100, 37, 182, ! 335: 37, 182, 37, 185, 68, 69, 0, 26, 89, 69, ! 336: 0, 26, 49, 91, 69, 0, 0, 89, 37, 179, ! 337: 165, 0, 69, 0, 0, 7, 0, 0, 91, 0, ! 338: 0, 183, 0, 184, 0, 183, 73, 184, 0, 9, ! 339: 58, 91, 68, 0, 100, 0, 185, 73, 100, 0, ! 340: 0, 187, 191, 0, 0, 189, 190, 0, 192, 68, ! 341: 0, 195, 68, 0, 1, 68, 0, 192, 68, 0, ! 342: 1, 68, 0, 0, 193, 0, 193, 73, 10, 0, ! 343: 194, 0, 193, 73, 194, 0, 106, 131, 0, 106, ! 344: 132, 0, 106, 148, 0, 108, 132, 0, 108, 148, ! 345: 0, 3, 0, 195, 73, 3, 0, 197, 0, 213, ! 346: 0, 62, 0, 0, 0, 60, 89, 74, 198, 207, ! 347: 70, 199, 220, 62, 0, 0, 60, 89, 200, 220, ! 348: 62, 0, 0, 0, 60, 89, 37, 89, 74, 201, ! 349: 207, 70, 202, 220, 62, 0, 0, 60, 89, 37, ! 350: 89, 203, 220, 62, 0, 0, 61, 89, 74, 204, ! 351: 207, 70, 0, 61, 89, 0, 0, 61, 89, 37, ! 352: 89, 74, 205, 207, 70, 0, 61, 89, 37, 89, ! 353: 0, 0, 60, 89, 58, 89, 68, 206, 220, 62, ! 354: 0, 61, 89, 58, 89, 68, 0, 0, 209, 67, ! 355: 208, 209, 0, 209, 0, 0, 209, 210, 69, 0, ! 356: 209, 69, 0, 109, 104, 211, 0, 149, 104, 211, ! 357: 0, 1, 0, 0, 212, 0, 211, 73, 212, 0, ! 358: 129, 0, 129, 37, 97, 0, 37, 97, 0, 0, ! 359: 0, 0, 47, 214, 230, 215, 231, 216, 159, 0, ! 360: 0, 0, 0, 48, 217, 230, 218, 231, 219, 159, ! 361: 0, 0, 0, 221, 222, 0, 225, 0, 81, 0, ! 362: 222, 225, 0, 0, 222, 223, 81, 0, 69, 0, ! 363: 1, 0, 0, 0, 47, 226, 230, 227, 224, 0, ! 364: 0, 0, 48, 228, 230, 229, 224, 0, 58, 147, ! 365: 68, 239, 0, 239, 0, 58, 147, 68, 240, 237, ! 366: 0, 240, 237, 0, 0, 69, 232, 0, 0, 233, ! 367: 0, 234, 0, 154, 0, 233, 234, 0, 234, 154, ! 368: 0, 106, 104, 235, 69, 0, 106, 69, 0, 108, ! 369: 69, 0, 236, 0, 235, 73, 236, 0, 131, 0, ! 370: 132, 0, 148, 0, 0, 73, 10, 0, 0, 73, ! 371: 238, 192, 0, 241, 0, 243, 0, 240, 243, 0, ! 372: 3, 0, 4, 0, 242, 0, 12, 0, 13, 0, ! 373: 14, 0, 15, 0, 16, 0, 17, 0, 18, 0, ! 374: 19, 0, 20, 0, 21, 0, 22, 0, 23, 0, ! 375: 24, 0, 25, 0, 26, 0, 27, 0, 11, 0, ! 376: 28, 0, 29, 0, 6, 0, 7, 0, 241, 37, ! 377: 58, 147, 68, 89, 0, 241, 37, 89, 0, 37, ! 378: 58, 147, 68, 89, 0, 37, 89, 0, 241, 0, ! 379: 245, 0, 247, 0, 245, 247, 0, 93, 0, 241, ! 380: 37, 246, 0, 37, 246, 0, 91, 0, 66, 0, ! 381: 0, 0, 59, 250, 248, 251, 244, 75, 0, 241, ! 382: 0, 253, 0, 254, 0, 253, 254, 0, 241, 37, ! 383: 0, 37, 0, 63, 58, 252, 68, 0, 65, 58, ! 384: 147, 68, 0 ! 385: }; ! 386: ! 387: #if YYDEBUG != 0 ! 388: static const short yyrline[] = { 0, ! 389: 217, 221, 229, 231, 231, 232, 234, 236, 237, 238, ! 390: 245, 251, 253, 255, 257, 259, 260, 261, 266, 272, ! 391: 274, 275, 277, 282, 284, 285, 287, 292, 294, 295, ! 392: 299, 301, 302, 306, 308, 310, 312, 314, 316, 318, ! 393: 322, 326, 329, 332, 335, 339, 341, 344, 347, 350, ! 394: 353, 372, 377, 379, 381, 385, 387, 390, 404, 406, ! 395: 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, ! 396: 428, 430, 432, 434, 436, 438, 442, 539, 540, 542, ! 397: 548, 550, 563, 576, 578, 580, 592, 606, 608, 610, ! 398: 612, 614, 619, 621, 625, 627, 628, 639, 644, 646, ! 399: 647, 648, 655, 663, 668, 672, 676, 680, 682, 690, ! 400: 693, 697, 699, 701, 709, 712, 714, 716, 725, 728, ! 401: 732, 734, 742, 743, 744, 745, 747, 751, 759, 760, ! 402: 761, 764, 766, 769, 771, 774, 777, 785, 790, 792, ! 403: 798, 803, 805, 812, 815, 820, 822, 827, 831, 842, ! 404: 856, 858, 862, 864, 866, 872, 875, 878, 880, 882, ! 405: 884, 888, 905, 909, 926, 933, 935, 940, 943, 948, ! 406: 950, 952, 954, 962, 968, 970, 972, 974, 980, 986, ! 407: 988, 990, 992, 994, 997, 1002, 1006, 1009, 1011, 1013, ! 408: 1015, 1018, 1020, 1023, 1026, 1029, 1032, 1036, 1038, 1041, ! 409: 1043, 1047, 1050, 1055, 1057, 1059, 1063, 1076, 1082, 1087, ! 410: 1092, 1097, 1101, 1103, 1107, 1111, 1115, 1124, 1126, 1131, ! 411: 1134, 1138, 1141, 1145, 1148, 1151, 1154, 1158, 1161, 1165, ! 412: 1169, 1171, 1173, 1175, 1177, 1179, 1181, 1183, 1191, 1193, ! 413: 1194, 1197, 1199, 1202, 1205, 1217, 1219, 1224, 1226, 1229, ! 414: 1246, 1249, 1252, 1254, 1259, 1264, 1272, 1281, 1283, 1287, ! 415: 1291, 1296, 1299, 1304, 1309, 1312, 1317, 1322, 1327, 1328, ! 416: 1334, 1336, 1341, 1348, 1352, 1358, 1364, 1373, 1375, 1400, ! 417: 1400, 1429, 1429, 1445, 1445, 1450, 1455, 1459, 1463, 1469, ! 418: 1477, 1485, 1493, 1504, 1508, 1516, 1516, 1521, 1526, 1532, ! 419: 1535, 1540, 1542, 1545, 1547, 1551, 1556, 1559, 1565, 1569, ! 420: 1576, 1580, 1585, 1587, 1589, 1593, 1595, 1601, 1603, 1605, ! 421: 1609, 1612, 1618, 1621, 1623, 1625, 1627, 1632, 1635, 1642, ! 422: 1644, 1645, 1658, 1665, 1670, 1676, 1683, 1689, 1695, 1700, ! 423: 1706, 1713, 1719, 1725, 1731, 1739, 1745, 1751, 1759, 1766, ! 424: 1772, 1781, 1783, 1783, 1786, 1791, 1792, 1809, 1815, 1820, ! 425: 1824, 1827, 1828, 1831, 1839, 1845, 1854, 1863, 1869, 1873, ! 426: 1878, 1886, 1892, 1896, 1906, 1908, 1909, 1911, 1913, 1914, ! 427: 1915, 1916, 1918, 1920, 1923, 1929, 1934, 1934, 1939, 1943, ! 428: 1945, 1951, 1956, 1961, 1970, 1972, 1978, 1980, 1983, 1985, ! 429: 1986, 1987, 1990, 1993, 1995, 1999, 2002, 2009, 2012, 2014, ! 430: 2018, 2023, 2028, 2033, 2040, 2044, 2047, 2053, 2055, 2056, ! 431: 2059, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, ! 432: 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, ! 433: 2079, 2082, 2088, 2093, 2098, 2104, 2106, 2109, 2111, 2118, ! 434: 2130, 2135, 2141, 2143, 2149, 2153, 2154, 2160, 2162, 2165, ! 435: 2167, 2173, 2178, 2184, 2193 ! 436: }; ! 437: ! 438: static const char * const yytname[] = { "$","error","$illegal.","IDENTIFIER", ! 439: "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF", ! 440: "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT", ! 441: "BREAK","CONTINUE","RETURN","GOTO","ASM","TYPEOF","ALIGNOF","ALIGN","ATTRIBUTE", ! 442: "EXTENSION","LABEL","ASSIGN","'='","'?'","':'","OROR","ANDAND","'|'","'^'","'&'", ! 443: "EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY", ! 444: "PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT","'.'","'('","'['","INTERFACE", ! 445: "IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE","CLASSNAME","PUBLIC","')'", ! 446: "';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs","@1","@2","extdef", ! 447: "datadef","fndef","@3","@4","@5","@6","@7","@8","identifier","unop","expr","exprlist", ! 448: "nonnull_exprlist","unary_expr","@9","cast_expr","expr_no_commas","primary", ! 449: "@10","string","xdecls","lineno_decl","decls","setspecs","decl","typed_declspecs", ! 450: "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec", ! 451: "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl", ! 452: "@11","notype_initdcl","@12","maybe_attribute","attribute_list","attrib","init", ! 453: "initlist","nested_function","@13","notype_nested_function","@14","declarator", ! 454: "after_type_declarator","parm_declarator","notype_declarator","structsp","@15", ! 455: "@16","@17","@18","maybecomma","maybecomma_warn","component_decl_list","component_decl_list2", ! 456: "component_decl","components","component_declarator","enumlist","enumerator", ! 457: "typename","absdcl","nonempty_type_quals","type_quals","absdcl1","stmts","xstmts", ! 458: "errstmt","pushlevel","maybe_label_decls","label_decls","label_decl","compstmt_or_error", ! 459: "compstmt","simple_if","@19","save_filename","save_lineno","lineno_stmt","stmt", ! 460: "@20","@21","@22","@23","@24","@25","@26","@27","@28","@29","@30","@31","@32", ! 461: "maybe_type_qual","xexpr","asm_operands","nonnull_asm_operands","asm_operand", ! 462: "asm_clobbers","parmlist","@33","parmlist_or_identifiers","@34","parmlist_or_identifiers_1", ! 463: "parmlist_1","parmlist_2","parms","parm","identifiers","objcdef","classdef", ! 464: "@35","@36","@37","@38","@39","@40","@41","@42","@43","ivar_decl_list","@44", ! 465: "ivar_decls","ivar_decl","ivars","ivar_declarator","methoddef","@45","@46","@47", ! 466: "@48","@49","@50","methodprotolist","@51","methodprotolist2","@52","semi_or_error", ! 467: "methodproto","@53","@54","@55","@56","methoddecl","optarglist","myxdecls","mydecls", ! 468: "mydecl","myparms","myparm","optparmlist","@57","unaryselector","keywordselector", ! 469: "selector","reservedwords","keyworddecl","messageargs","keywordarglist","keywordexpr", ! 470: "keywordarg","receiver","objcmessageexpr","@58","@59","selectorarg","keywordnamelist", ! 471: "keywordname","objcselectorexpr","objcencodeexpr","" ! 472: }; ! 473: #endif ! 474: ! 475: static const short yyr1[] = { 0, ! 476: 76, 76, 78, 77, 79, 77, 80, 80, 80, 80, ! 477: 81, 81, 81, 81, 81, 81, 81, 81, 83, 84, ! 478: 82, 82, 85, 86, 82, 82, 87, 88, 82, 82, ! 479: 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, ! 480: 91, 92, 92, 93, 93, 94, 94, 95, 94, 94, ! 481: 94, 94, 94, 94, 94, 96, 96, 96, 97, 97, ! 482: 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, ! 483: 97, 97, 97, 97, 97, 97, 98, 98, 98, 98, ! 484: 98, 99, 98, 98, 98, 98, 98, 98, 98, 98, ! 485: 98, 98, 100, 100, 101, 101, 101, 102, 103, 103, ! 486: 103, 103, 104, 105, 105, 105, 105, 105, 105, 106, ! 487: 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, ! 488: 110, 110, 111, 111, 111, 111, 111, 111, 112, 112, ! 489: 112, 113, 113, 114, 114, 115, 115, 117, 116, 116, ! 490: 119, 118, 118, 120, 120, 121, 121, 122, 122, 122, ! 491: 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, ! 492: 124, 126, 125, 128, 127, 129, 129, 130, 130, 130, ! 493: 130, 130, 130, 131, 131, 131, 131, 131, 132, 132, ! 494: 132, 132, 132, 132, 134, 133, 133, 133, 135, 133, ! 495: 133, 133, 136, 133, 137, 133, 133, 138, 138, 139, ! 496: 139, 140, 140, 141, 141, 141, 141, 142, 142, 142, ! 497: 142, 142, 143, 143, 144, 144, 144, 145, 145, 146, ! 498: 146, 147, 147, 148, 148, 149, 149, 150, 150, 151, ! 499: 151, 151, 151, 151, 151, 151, 151, 151, 152, 152, ! 500: 152, 153, 153, 154, 155, 156, 156, 157, 157, 158, ! 501: 159, 159, 160, 160, 160, 160, 162, 161, 163, 164, ! 502: 165, 166, 166, 167, 166, 166, 168, 169, 166, 170, ! 503: 171, 166, 172, 173, 174, 166, 175, 166, 176, 166, ! 504: 177, 166, 178, 166, 166, 166, 166, 166, 166, 166, ! 505: 166, 166, 166, 166, 179, 166, 166, 180, 180, 181, ! 506: 181, 182, 182, 183, 183, 184, 185, 185, 187, 186, ! 507: 189, 188, 190, 190, 190, 191, 191, 192, 192, 192, ! 508: 193, 193, 194, 194, 194, 194, 194, 195, 195, 196, ! 509: 196, 196, 198, 199, 197, 200, 197, 201, 202, 197, ! 510: 203, 197, 204, 197, 197, 205, 197, 197, 206, 197, ! 511: 197, 208, 207, 207, 209, 209, 209, 210, 210, 210, ! 512: 211, 211, 211, 212, 212, 212, 214, 215, 216, 213, ! 513: 217, 218, 219, 213, 220, 221, 220, 222, 222, 222, ! 514: 223, 222, 224, 224, 226, 227, 225, 228, 229, 225, ! 515: 230, 230, 230, 230, 231, 231, 232, 232, 233, 233, ! 516: 233, 233, 234, 234, 234, 235, 235, 236, 236, 236, ! 517: 237, 237, 238, 237, 239, 240, 240, 241, 241, 241, ! 518: 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, ! 519: 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, ! 520: 242, 243, 243, 243, 243, 244, 244, 245, 245, 246, ! 521: 247, 247, 248, 248, 250, 251, 249, 252, 252, 253, ! 522: 253, 254, 254, 255, 256 ! 523: }; ! 524: ! 525: static const short yyr2[] = { 0, ! 526: 0, 1, 0, 2, 0, 3, 1, 1, 1, 5, ! 527: 3, 4, 4, 2, 2, 2, 2, 1, 0, 0, ! 528: 7, 4, 0, 0, 7, 4, 0, 0, 6, 3, ! 529: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 530: 1, 0, 1, 1, 3, 1, 2, 0, 3, 2, ! 531: 2, 2, 4, 2, 4, 1, 4, 7, 1, 3, ! 532: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 533: 3, 3, 3, 5, 3, 3, 1, 1, 1, 3, ! 534: 3, 0, 4, 4, 4, 3, 3, 2, 2, 1, ! 535: 1, 1, 1, 2, 0, 1, 2, 3, 1, 1, ! 536: 2, 2, 0, 4, 4, 3, 3, 2, 2, 2, ! 537: 3, 0, 2, 2, 1, 1, 2, 2, 2, 3, ! 538: 0, 2, 1, 1, 1, 1, 4, 4, 1, 1, ! 539: 1, 1, 3, 1, 3, 0, 4, 0, 6, 3, ! 540: 0, 6, 3, 0, 6, 1, 3, 1, 4, 8, ! 541: 1, 2, 3, 4, 1, 1, 3, 4, 6, 3, ! 542: 5, 0, 3, 0, 3, 1, 1, 3, 3, 4, ! 543: 3, 3, 1, 3, 4, 3, 3, 1, 3, 3, ! 544: 3, 4, 3, 1, 0, 6, 4, 2, 0, 6, ! 545: 4, 2, 0, 7, 0, 6, 2, 0, 1, 0, ! 546: 1, 1, 2, 0, 3, 2, 4, 3, 1, 3, ! 547: 1, 1, 1, 3, 4, 6, 4, 1, 3, 1, ! 548: 3, 2, 2, 0, 1, 1, 2, 0, 2, 3, ! 549: 3, 2, 3, 4, 3, 2, 3, 2, 1, 2, ! 550: 2, 0, 1, 2, 0, 0, 1, 1, 2, 3, ! 551: 1, 2, 2, 6, 5, 5, 0, 6, 0, 0, ! 552: 3, 1, 2, 0, 4, 1, 0, 0, 7, 0, ! 553: 0, 9, 0, 0, 0, 12, 0, 6, 0, 5, ! 554: 0, 7, 0, 4, 2, 2, 2, 3, 6, 8, ! 555: 10, 12, 3, 4, 0, 4, 1, 0, 1, 0, ! 556: 1, 0, 1, 1, 3, 4, 1, 3, 0, 2, ! 557: 0, 2, 2, 2, 2, 2, 2, 0, 1, 3, ! 558: 1, 3, 2, 2, 2, 2, 2, 1, 3, 1, ! 559: 1, 1, 0, 0, 9, 0, 5, 0, 0, 11, ! 560: 0, 7, 0, 6, 2, 0, 8, 4, 0, 8, ! 561: 5, 0, 4, 1, 0, 3, 2, 3, 3, 1, ! 562: 0, 1, 3, 1, 3, 2, 0, 0, 0, 7, ! 563: 0, 0, 0, 7, 0, 0, 2, 1, 1, 2, ! 564: 0, 3, 1, 1, 0, 0, 5, 0, 0, 5, ! 565: 4, 1, 5, 2, 0, 2, 0, 1, 1, 1, ! 566: 2, 2, 4, 2, 2, 1, 3, 1, 1, 1, ! 567: 0, 2, 0, 3, 1, 1, 2, 1, 1, 1, ! 568: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 569: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 570: 1, 6, 3, 5, 2, 1, 1, 1, 2, 1, ! 571: 3, 2, 1, 1, 0, 0, 6, 1, 1, 1, ! 572: 2, 2, 1, 4, 4 ! 573: }; ! 574: ! 575: static const short yydefact[] = { 3, ! 576: 5, 0, 0, 0, 125, 116, 123, 115, 0, 0, ! 577: 0, 0, 0, 367, 371, 0, 0, 332, 126, 18, ! 578: 4, 8, 7, 0, 103, 103, 112, 124, 9, 330, ! 579: 331, 6, 16, 17, 31, 32, 33, 195, 197, 204, ! 580: 188, 204, 192, 0, 0, 0, 0, 336, 345, 184, ! 581: 228, 0, 0, 134, 0, 15, 0, 118, 117, 14, ! 582: 0, 112, 110, 0, 193, 0, 0, 0, 185, 0, ! 583: 189, 93, 0, 77, 226, 78, 0, 0, 48, 0, ! 584: 34, 36, 35, 0, 37, 38, 0, 455, 0, 0, ! 585: 39, 40, 0, 0, 41, 56, 59, 44, 46, 79, ! 586: 224, 121, 0, 224, 90, 91, 92, 418, 419, 440, ! 587: 441, 437, 421, 422, 423, 424, 425, 426, 427, 428, ! 588: 429, 430, 431, 432, 433, 434, 435, 436, 438, 439, ! 589: 0, 0, 368, 392, 411, 415, 420, 416, 372, 0, ! 590: 0, 333, 376, 0, 0, 343, 0, 0, 11, 0, ! 591: 30, 0, 311, 0, 0, 144, 173, 228, 0, 0, ! 592: 132, 0, 166, 167, 0, 0, 111, 114, 129, 130, ! 593: 113, 131, 220, 200, 218, 0, 0, 187, 212, 206, ! 594: 103, 203, 103, 204, 191, 204, 94, 0, 0, 52, ! 595: 0, 54, 0, 51, 47, 0, 0, 0, 0, 0, ! 596: 0, 0, 50, 127, 0, 0, 0, 300, 0, 0, ! 597: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 598: 0, 0, 88, 89, 0, 0, 42, 0, 228, 309, ! 599: 0, 222, 225, 119, 128, 227, 121, 223, 0, 445, ! 600: 0, 395, 413, 394, 0, 417, 0, 395, 341, 0, ! 601: 355, 0, 0, 348, 0, 355, 229, 181, 180, 135, ! 602: 136, 0, 179, 0, 183, 0, 0, 28, 0, 259, ! 603: 100, 260, 0, 143, 0, 0, 13, 0, 22, 0, ! 604: 144, 311, 0, 12, 26, 0, 0, 201, 0, 200, ! 605: 0, 259, 205, 259, 0, 0, 10, 0, 0, 49, ! 606: 81, 80, 245, 0, 0, 454, 453, 456, 463, 458, ! 607: 0, 459, 460, 0, 45, 76, 75, 301, 0, 73, ! 608: 72, 70, 71, 69, 68, 67, 65, 66, 60, 61, ! 609: 62, 63, 64, 87, 86, 0, 43, 0, 232, 0, ! 610: 236, 0, 238, 0, 309, 0, 122, 120, 0, 0, ! 611: 0, 369, 412, 318, 0, 443, 373, 338, 376, 349, ! 612: 0, 0, 337, 385, 388, 379, 0, 103, 103, 381, ! 613: 378, 346, 351, 0, 0, 0, 328, 224, 224, 312, ! 614: 0, 319, 321, 0, 182, 244, 0, 102, 97, 101, ! 615: 0, 0, 141, 172, 168, 133, 20, 140, 169, 171, ! 616: 0, 24, 221, 219, 196, 0, 207, 208, 213, 260, ! 617: 210, 186, 190, 53, 55, 253, 246, 83, 0, 57, ! 618: 0, 462, 464, 0, 461, 465, 0, 84, 85, 231, ! 619: 230, 0, 310, 0, 237, 233, 235, 0, 0, 391, ! 620: 411, 103, 0, 400, 396, 398, 0, 0, 414, 0, ! 621: 0, 355, 0, 376, 334, 360, 352, 357, 103, 103, ! 622: 0, 0, 0, 136, 0, 0, 0, 380, 355, 344, ! 623: 137, 315, 178, 228, 309, 323, 324, 325, 228, 326, ! 624: 327, 313, 0, 314, 0, 0, 29, 251, 98, 103, ! 625: 103, 0, 0, 0, 138, 170, 0, 194, 259, 0, ! 626: 0, 0, 247, 248, 155, 77, 455, 0, 0, 151, ! 627: 156, 198, 0, 446, 0, 447, 448, 74, 317, 316, ! 628: 234, 444, 393, 404, 224, 405, 401, 402, 370, 0, ! 629: 374, 0, 342, 0, 376, 355, 361, 361, 356, 386, ! 630: 389, 382, 0, 232, 311, 0, 232, 320, 322, 329, ! 631: 252, 108, 0, 109, 0, 148, 0, 146, 142, 21, ! 632: 0, 25, 214, 0, 144, 0, 0, 259, 0, 260, ! 633: 239, 249, 0, 152, 0, 0, 0, 0, 450, 452, ! 634: 0, 457, 0, 449, 408, 409, 410, 0, 406, 442, ! 635: 339, 350, 0, 0, 0, 364, 358, 362, 359, 0, ! 636: 0, 347, 177, 174, 176, 0, 0, 106, 136, 0, ! 637: 107, 136, 0, 0, 0, 139, 217, 0, 215, 250, ! 638: 255, 0, 0, 256, 241, 260, 240, 0, 0, 153, ! 639: 0, 160, 0, 0, 157, 58, 451, 403, 224, 376, ! 640: 335, 366, 0, 0, 384, 383, 387, 390, 175, 104, ! 641: 0, 105, 0, 0, 0, 145, 147, 144, 254, 0, ! 642: 125, 0, 267, 270, 0, 0, 0, 0, 0, 0, ! 643: 0, 0, 298, 126, 297, 0, 0, 262, 266, 261, ! 644: 158, 154, 0, 0, 407, 0, 365, 363, 163, 165, ! 645: 0, 149, 216, 0, 0, 259, 300, 0, 0, 283, ! 646: 285, 286, 287, 0, 0, 0, 299, 0, 295, 263, ! 647: 264, 0, 161, 340, 0, 0, 0, 0, 0, 0, ! 648: 0, 279, 259, 288, 0, 293, 0, 259, 259, 159, ! 649: 0, 257, 0, 271, 273, 277, 0, 259, 284, 294, ! 650: 0, 296, 265, 0, 259, 268, 0, 300, 259, 281, ! 651: 280, 302, 0, 150, 258, 259, 0, 0, 278, 259, ! 652: 0, 0, 303, 304, 289, 269, 0, 274, 282, 0, ! 653: 302, 0, 0, 0, 300, 0, 0, 290, 305, 272, ! 654: 0, 306, 0, 0, 275, 307, 0, 291, 259, 0, ! 655: 0, 276, 292, 308, 0, 0, 0 ! 656: }; ! 657: ! 658: static const short yydefgoto[] = { 795, ! 659: 1, 2, 3, 21, 22, 23, 280, 494, 286, 497, ! 660: 155, 387, 173, 93, 318, 336, 95, 96, 193, 97, ! 661: 98, 99, 198, 100, 268, 269, 270, 24, 489, 378, ! 662: 63, 379, 101, 234, 27, 171, 160, 53, 156, 161, ! 663: 561, 54, 493, 274, 557, 558, 511, 512, 608, 651, ! 664: 611, 653, 261, 163, 585, 164, 28, 184, 186, 176, ! 665: 64, 578, 289, 67, 68, 182, 408, 409, 174, 175, ! 666: 103, 587, 104, 147, 233, 569, 623, 271, 417, 502, ! 667: 503, 504, 487, 488, 679, 745, 626, 391, 571, 680, ! 668: 729, 695, 756, 696, 747, 748, 775, 789, 749, 738, ! 669: 760, 723, 728, 708, 319, 762, 763, 764, 787, 341, ! 670: 342, 263, 264, 380, 433, 381, 382, 383, 384, 29, ! 671: 30, 251, 535, 143, 452, 640, 359, 256, 469, 454, ! 672: 361, 536, 362, 461, 597, 598, 31, 46, 242, 448, ! 673: 47, 248, 451, 252, 253, 370, 467, 647, 371, 462, ! 674: 600, 463, 601, 133, 352, 445, 446, 447, 588, 589, ! 675: 244, 354, 134, 135, 136, 137, 138, 515, 516, 580, ! 676: 517, 308, 105, 200, 421, 311, 312, 313, 106, 107 ! 677: }; ! 678: ! 679: static const short yypact[] = { 62, ! 680: 96, 2160, 2160, 191,-32768,-32768,-32768,-32768, 84, 97, ! 681: 173, 46, 72,-32768,-32768, 52, 52,-32768,-32768,-32768, ! 682: -32768,-32768,-32768, 134, 85, 635,-32768,-32768,-32768,-32768, ! 683: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 91, 56, ! 684: 113, 56, 124, 217, 1878, 2302, 2302, 159, 179,-32768, ! 685: -32768, 134, 16,-32768, 1336,-32768, 267,-32768,-32768,-32768, ! 686: 134,-32768, 507, 52,-32768, 151, 172, 541,-32768, 188, ! 687: -32768,-32768, 51,-32768,-32768,-32768, 2001, 2036,-32768, 52, ! 688: -32768,-32768,-32768, 2071,-32768,-32768, 1039,-32768, 219, 239, ! 689: -32768,-32768, 2071, 237, 261,-32768,-32768, 2465, 542, 327, ! 690: 328,-32768, 291, 408,-32768,-32768,-32768,-32768,-32768,-32768, ! 691: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 692: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 693: 139, 1135,-32768,-32768, 1851, 324,-32768,-32768,-32768, 52, ! 694: 52,-32768, 304, 52, 52,-32768, 187, 330,-32768, 267, ! 695: -32768, 320,-32768, 1476, 66, 352,-32768,-32768, 267, 154, ! 696: -32768, 1440, 264, 326, 200, 1407, 507,-32768,-32768,-32768, ! 697: -32768,-32768, 355, 334,-32768, 52, 350,-32768,-32768,-32768, ! 698: 424, 331, 523, 56,-32768, 56,-32768, 354, 1039,-32768, ! 699: 1039,-32768, 2071,-32768,-32768, 363, 374, 371, 383, 1931, ! 700: 2371, 1135,-32768,-32768, 2071, 2071, 2071, 2071, 2071, 2071, ! 701: 2071, 2071, 2071, 2071, 2071, 2071, 2071, 2071, 2071, 2071, ! 702: 2071, 2071,-32768,-32768, 52, 52, 2071, 2071,-32768, 328, ! 703: 1529,-32768, 440, 561,-32768,-32768,-32768,-32768, 1135,-32768, ! 704: 386, 368, 449,-32768, 324,-32768, 166, 368, 395, 407, ! 705: -32768, 415, 2227, 410, 427,-32768,-32768, 326,-32768,-32768, ! 706: 462, 217,-32768, 1488,-32768, 426, 435,-32768, 751, 49, ! 707: -32768,-32768, 457, 488, 207, 351,-32768, 267,-32768, 66, ! 708: 352,-32768, 1564,-32768,-32768, 66, 2071, 52, 437, 334, ! 709: 460,-32768,-32768,-32768, 461, 468,-32768, 475, 478,-32768, ! 710: -32768,-32768, 487, 492, 677,-32768,-32768,-32768,-32768, 524, ! 711: 497, 2371,-32768, 511, 2465, 2465, 2465,-32768, 535, 1854, ! 712: 1382, 2108, 1413, 1908, 2166, 2148, 609, 609, 292, 292, ! 713: -32768,-32768,-32768,-32768,-32768, 512, 261, 506, 243, 397, ! 714: -32768, 325,-32768, 515,-32768, 1599,-32768, 561, 514, 2398, ! 715: 101,-32768,-32768, 434, 1135,-32768,-32768,-32768, 304,-32768, ! 716: 516, 1207,-32768,-32768,-32768,-32768, 134, 85, 635, 271, ! 717: -32768,-32768,-32768, 521, 54, 537,-32768, 369, 2245,-32768, ! 718: 538, 539,-32768, -7,-32768,-32768, 53,-32768,-32768,-32768, ! 719: 434, 557,-32768, 264,-32768,-32768,-32768, 581,-32768,-32768, ! 720: 544,-32768, 2465,-32768,-32768, 553,-32768, 558,-32768,-32768, ! 721: 558,-32768,-32768,-32768,-32768,-32768, 602,-32768, 555,-32768, ! 722: 2425,-32768,-32768, 524,-32768,-32768, 2071,-32768,-32768, 440, ! 723: -32768, 569,-32768, 570,-32768,-32768,-32768, 568, 52,-32768, ! 724: 1851, 575, 663,-32768,-32768, 434, 504, 53,-32768, 582, ! 725: 53,-32768, 590, 304,-32768,-32768,-32768,-32768,-32768, 1279, ! 726: 584, 2302, 2302, 240, 267, 134, 2178,-32768,-32768,-32768, ! 727: -32768,-32768,-32768,-32768, 163, 467, 326,-32768,-32768, 326, ! 728: -32768,-32768, 1123,-32768, 658, 371,-32768,-32768,-32768, 596, ! 729: 1052, 668, 1327, 53,-32768,-32768, 53,-32768,-32768, 343, ! 730: 669, 823, 602,-32768,-32768, 636, 2071, 1255, 642, 2465, ! 731: -32768, 608, 2071, 645, 614, 2425,-32768, 2481,-32768,-32768, ! 732: -32768,-32768,-32768,-32768, 369,-32768,-32768,-32768,-32768, 52, ! 733: -32768, 620,-32768, 622, 304,-32768, 421, 421,-32768,-32768, ! 734: -32768,-32768, 623, 345,-32768, 1634, 347,-32768,-32768,-32768, ! 735: -32768,-32768, 267,-32768, 134, 634, -4,-32768,-32768,-32768, ! 736: 1327,-32768,-32768, 2071, 263, 298, 464, 624, 895,-32768, ! 737: -32768,-32768, 2306,-32768, 116, 1327, 1111, 625, 261,-32768, ! 738: 2071,-32768, 645,-32768, 467, 326,-32768, 357,-32768,-32768, ! 739: -32768,-32768, 637, 2134, 2071, 659, 630,-32768, 630, 40, ! 740: 40,-32768, 467,-32768,-32768, 632, 414,-32768, 59, 417, ! 741: -32768, 24, 222, 629, 668,-32768, 2465, 2071,-32768,-32768, ! 742: -32768, 967, 638,-32768,-32768,-32768,-32768, 1707, 1327,-32768, ! 743: 1183,-32768, 2071, 673,-32768,-32768,-32768,-32768, 369, 304, ! 744: -32768, 2465, 2071, 421,-32768,-32768,-32768,-32768,-32768,-32768, ! 745: 371,-32768, 371, 640, 643,-32768,-32768, 2429,-32768, 1779, ! 746: 678, 647,-32768,-32768, 660, 662, 2071, 680, 652, 653, ! 747: 1966, 197, 716, 691,-32768, 696, 665,-32768, 721,-32768, ! 748: -32768,-32768, 2447, 1327,-32768, 676, 2465,-32768,-32768,-32768, ! 749: 733,-32768,-32768, 2071, 685,-32768, 2071, 2071, 80,-32768, ! 750: -32768,-32768,-32768, 675, 2071, 681,-32768, 687,-32768,-32768, ! 751: -32768, 1327,-32768,-32768, 694, 714, 2071, 729, 715, 717, ! 752: 2071,-32768,-32768,-32768, 718,-32768, 217,-32768,-32768,-32768, ! 753: 778,-32768, 720,-32768,-32768,-32768, 752,-32768,-32768,-32768, ! 754: 44,-32768,-32768, 723,-32768,-32768, 734, 2071,-32768,-32768, ! 755: -32768, 785, 726,-32768,-32768,-32768, 2071, 727,-32768,-32768, ! 756: 739, 31, 728,-32768,-32768,-32768, 735,-32768,-32768, 2071, ! 757: 785, 737, 785, 738, 2071, 740, 136,-32768,-32768,-32768, ! 758: 743,-32768, 217, 744,-32768, 327, 170,-32768,-32768, 746, ! 759: 217,-32768,-32768, 327, 802, 812,-32768 ! 760: }; ! 761: ! 762: static const short yypgoto[] = {-32768, ! 763: -32768,-32768,-32768, 815, -215,-32768,-32768,-32768,-32768,-32768, ! 764: -32768,-32768, -6,-32768, -43,-32768, -207, 472,-32768, -41, ! 765: 69,-32768,-32768, -44, 41, -248, 317, 1,-32768, 4, ! 766: 771, 6, -55, 616, -11, -189, 286, -49, -145, -110, ! 767: -32768,-32768,-32768, -256,-32768, 241, -416, 346,-32768,-32768, ! 768: -32768,-32768, -56, -111, -336, -3, -31,-32768,-32768,-32768, ! 769: -32768,-32768, 567, -5,-32768,-32768, 564, 360, 684, 573, ! 770: -40, -65, -54, -134, -165, 295,-32768, -241,-32768,-32768, ! 771: -32768, 361, -86, -175,-32768,-32768, -139, -377, -494,-32768, ! 772: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 773: -32768,-32768,-32768,-32768, -651, 95,-32768, 94,-32768, 528, ! 774: -32768, -252,-32768,-32768,-32768, -251,-32768, 385, 373,-32768, ! 775: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 776: -221,-32768, 333,-32768, 337, 234,-32768,-32768,-32768,-32768, ! 777: -32768,-32768,-32768, -328,-32768,-32768,-32768, 278, 510,-32768, ! 778: -32768,-32768,-32768, -28, 639,-32768,-32768, 438,-32768, 244, ! 779: 444,-32768, 540, 543, -117,-32768, -106,-32768,-32768, 310, ! 780: 384,-32768,-32768,-32768,-32768,-32768,-32768, 589,-32768,-32768 ! 781: }; ! 782: ! 783: ! 784: #define YYLAST 2532 ! 785: ! 786: ! 787: static const short yytable[] = { 73, ! 788: 162, 94, 39, 41, 43, 25, 25, 26, 26, 48, ! 789: 49, 165, 181, 183, 62, 272, 281, 245, 139, 337, ! 790: 55, 390, 304, 275, 398, 57, 61, 388, 246, 399, ! 791: 453, 172, 500, 102, 374, 232, 70, 366, 238, 260, ! 792: 645, 476, 195, 197, 347, 719, 199, 276, 148, -96, ! 793: 152, 203, 187, 486, 35, 36, 102, 166, 389, 187, ! 794: 484, -1, 187, 614, 340, 485, 267, 771, 615, -259, ! 795: -259, -259, -259, 194, 627, 102, 559, -259, -259, -259, ! 796: 752, 153, 154, 310, 149, 152, 35, 36, 150, 721, ! 797: 434, 241, 237, -259, 339, -2, 758, -164, 772, 35, ! 798: 36, 267, 449, 44, 5, 6, 7, 8, 646, 444, ! 799: 266, 753, 9, 10, 11, 281, 722, 37, 188, 66, ! 800: 102, 471, -96, 781, 240, 534, 303, 627, 13, 45, ! 801: 272, -259, -162, 249, 250, 172, 50, 254, 255, -95, ! 802: 272, 35, 36, 258, 616, 197, 272, 197, 298, 37, ! 803: 299, 300, 410, 56, 410, 148, 307, 38, 347, 632, ! 804: 635, 314, 37, 394, 65, 50, 19, 396, 35, 36, ! 805: 40, 237, 783, 430, -397, 35, 36, 102, 295, 102, ! 806: 296, 292, 51, 294, 338, 630, 69, 344, 631, 50, ! 807: 102, 52, 628, 257, 424, 140, 239, 71, 349, 35, ! 808: 36, 718, 172, 784, 37, 528, 593, 603, 177, 50, ! 809: 157, 479, 681, 257, 635, 144, 141, 375, 334, 335, ! 810: 475, 231, 277, 355, 654, 72, 278, 102, 739, 655, ! 811: 532, 37, 142, 742, 743, 51, 145, 790, 37, 401, ! 812: 356, 178, 791, 751, 52, 705, 42, 543, 660, 257, ! 813: 755, 542, 146, 367, 759, 158, 368, 185, 369, 33, ! 814: 34, 766, 37, 420, 159, 769, 152, 713, 284, 50, ! 815: 157, 258, 150, 315, 316, 317, 201, 320, 321, 322, ! 816: 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, ! 817: 333, 229, 604, 273, 792, 730, 202, 153, 154, 618, ! 818: 230, 231, 438, 514, 204, 579, 459, 460, 619, 340, ! 819: 551, 686, 478, 481, 450, 158, 172, 364, 365, 390, ! 820: 397, 282, 283, 245, 159, 432, 402, 625, 5, 6, ! 821: 7, 8, -377, 205, 246, 187, 9, 10, 11, 544, ! 822: 220, 221, 222, 102, 547, 50, 157, 50, 473, 50, ! 823: 102, 257, 13, 257, 442, 403, 443, 62, 235, 410, ! 824: 247, 529, 570, 464, 531, -375, 620, 62, 465, 466, ! 825: 485, 50, 473, 579, 477, 480, 229, 262, 430, 564, ! 826: 625, 430, 273, 153, 154, 230, 231, 153, 154, 287, ! 827: 19, 158, -318, 474, 490, 479, 491, 259, 583, 293, ! 828: 159, 693, 475, 231, 475, 231, 288, 560, 282, 283, ! 829: 562, 5, 509, 7, 236, 291, 165, 474, 395, 9, ! 830: 10, 11, 297, 50, 157, 638, 475, 231, 570, 639, ! 831: 301, 62, 522, 540, 541, 13, 351, 5, 6, 7, ! 832: 8, 302, 525, 565, 303, 9, 10, 11, 237, 442, ! 833: 305, 443, 678, 350, 345, 346, 229, 595, 353, 537, ! 834: 538, 13, 464, 281, 431, 230, 231, 367, 358, 158, ! 835: 368, 148, 369, 19, 360, 689, 363, 690, 159, 62, ! 836: 596, 596, 650, 372, 678, 652, 278, 510, 152, 150, ! 837: 553, 555, -209, -209, 373, 518, 609, 345, 346, 19, ! 838: 385, 509, 606, 386, 267, 610, 405, -399, -399, -399, ! 839: -399, 168, 169, 170, 392, -399, -399, -399, 9, 10, ! 840: 11, 586, 393, 590, 545, 546, 5, 407, 7, 236, ! 841: 412, -399, 386, 621, 9, 10, 11, 413, 459, 460, ! 842: 258, 179, 414, 258, 5, 415, 7, 75, 190, 192, ! 843: 13, 612, 9, 10, 11, 505, 416, 506, 36, 418, ! 844: 422, 510, 76, 72, 423, 77, 169, 170, 13, -399, ! 845: 634, 427, 9, 10, 11, 573, 510, -399, 426, 428, ! 846: 429, 439, 102, 78, 677, 455, 79, 596, 19, 435, ! 847: 470, -211, -211, 80, 223, 224, 81, 225, 226, 227, ! 848: 228, 82, 83, 84, 472, 482, 19, 85, 86, 180, ! 849: -202, 483, 87, 507, 492, 495, 677, 89, 496, 90, ! 850: 37, 676, 498, 699, 634, 91, 92, 704, 508, 510, ! 851: 499, 490, 617, 491, 501, 586, 519, 520, 5, 58, ! 852: 7, 59, 521, 524, 510, 510, 9, 10, 11, 530, ! 853: 716, 533, 539, 676, 720, 218, 219, 220, 221, 222, ! 854: 550, 725, 13, 642, 552, 706, 5, 58, 7, 59, ! 855: 556, 377, -31, 733, 9, 10, 11, 737, 576, 74, ! 856: 577, 581, 741, 592, 76, 72, 658, 77, 582, 591, ! 857: 13, 613, 602, -242, 636, 643, 656, 510, 641, 510, ! 858: 19, 683, 644, 60, 694, 78, 649, 659, 79, 684, ! 859: 692, 687, 691, 767, -32, 80, 700, 697, 81, 698, ! 860: 701, 702, 707, 82, 83, 84, 776, -33, 19, 85, ! 861: 86, 526, 709, 710, 87, 88, 711, 714, 786, 89, ! 862: 715, 90, 717, 724, 727, 734, 794, 91, 92, 726, ! 863: 419, 267, 510, -99, -99, -99, -99, -99, -99, -99, ! 864: -99, -99, -99, -99, -99, -99, 731, -99, -99, -99, ! 865: -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, ! 866: 510, 732, -99, 735, 736, 744, 740, 746, 750, -99, ! 867: 754, 757, -99, 761, 765, 768, 770, -99, -99, -99, ! 868: 773, 796, 774, -99, -99, 778, 780, 782, -99, -99, ! 869: 785, 797, 788, -99, 793, -99, -99, 32, 568, -99, ! 870: -99, -99, -99, 567, -99, -259, -259, -259, -259, -259, ! 871: -259, -259, 167, -259, -259, -259, -259, -259, 607, -259, ! 872: -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, ! 873: -259, -259, 348, 575, -259, 657, 406, 411, 563, 290, ! 874: 404, -259, 622, 572, -259, 777, 779, 549, 594, -259, ! 875: -259, -259, 436, 566, 599, -259, -259, 688, 648, 468, ! 876: -259, -259, 685, 527, 523, -259, 357, -259, -259, 440, ! 877: 637, -259, 441, -259, -259, 267, -259, -259, -259, 584, ! 878: 425, 0, -259, -259, 0, -259, 0, 0, 0, -259, ! 879: 0, -259, -259, -259, -259, -259, -259, -259, -259, -259, ! 880: -259, -259, 0, -259, 0, 0, -259, 0, 0, 0, ! 881: 0, 0, 0, -259, 0, 0, -259, 0, 0, 0, ! 882: 0, -259, -259, -259, 0, 0, 0, -259, -259, 0, ! 883: 0, 0, -259, -259, 0, 0, 0, -259, 0, -259, ! 884: -259, 0, 0, -259, 624, -259, -259, 267, -259, -259, ! 885: -259, 0, 0, 0, -259, -259, 0, -259, 0, 0, ! 886: 0, -259, 0, -259, -259, -259, -259, -259, -259, -259, ! 887: -259, -259, -259, -259, 0, -259, 0, 0, -259, 0, ! 888: 0, 0, 0, 0, 0, -259, 0, 0, -259, 0, ! 889: 0, 0, 0, -259, -259, -259, 0, 0, 0, -259, ! 890: -259, 0, 0, 0, -259, -259, 0, 0, 0, -259, ! 891: 0, -259, -259, 0, 0, -259, -243, -259, -259, 196, ! 892: -259, 74, 5, 0, 7, 75, 76, 72, 0, 77, ! 893: 9, 10, 11, 0, 0, 5, 58, 7, 59, 0, ! 894: 0, 0, 0, 9, 10, 11, 13, 78, 0, 0, ! 895: 79, 0, 0, 0, 0, 0, 0, 80, 0, 13, ! 896: 81, 0, 0, 0, 0, 82, 83, 84, 0, 0, ! 897: 0, 85, 86, 0, 0, 0, 87, 88, 0, 0, ! 898: 0, 89, 0, 90, 19, 0, 0, 0, 0, 91, ! 899: 92, 505, -82, 506, 36, 0, 0, 19, 76, 72, ! 900: 554, 77, 0, 0, 0, 0, 5, 6, 7, 8, ! 901: 0, 633, 548, 0, 9, 10, 11, 0, 5, 78, ! 902: 7, 75, 79, 0, 0, 0, 9, 10, 11, 80, ! 903: 13, 0, 81, 0, 0, 0, 0, 82, 83, 84, ! 904: 0, 0, 13, 85, 86, 0, 0, 0, 87, 88, ! 905: 0, 0, 0, 89, 0, 90, 37, 0, 0, 0, ! 906: -199, 91, 92, 505, 508, 506, 36, 0, 19, 0, ! 907: 76, 72, 0, 77, 0, 0, 0, 0, 0, 0, ! 908: 19, 0, 0, 633, 0, 0, 0, 456, 0, 0, ! 909: 5, 78, 7, 75, 79, 0, 0, 0, 9, 10, ! 910: 11, 80, 0, 0, 81, 0, 0, 0, 0, 82, ! 911: 83, 84, 0, 0, 13, 85, 86, 0, 0, 0, ! 912: 87, 88, 0, 0, 0, 89, 0, 90, 37, 0, ! 913: 0, 0, 682, 91, 92, 505, 508, 506, 36, 0, ! 914: 0, 0, 76, 72, 0, 77, 0, 0, 0, 0, ! 915: 0, 0, 19, 457, 0, 458, -354, 0, 0, 0, ! 916: 0, 0, 5, 78, 7, 236, 79, 0, 0, 0, ! 917: 9, 10, 11, 80, 0, 0, 81, 0, 0, 0, ! 918: 0, 82, 83, 84, 0, 0, 13, 85, 86, 0, ! 919: 0, 0, 87, 507, 0, 0, 0, 89, 0, 90, ! 920: 37, 0, 0, 0, 574, 91, 92, 505, 508, 74, ! 921: 0, 0, 0, 0, 76, 72, 151, 77, 0, -27, ! 922: -27, -27, -27, 0, 19, 0, 0, -27, -27, -27, ! 923: 0, 0, 0, 0, 0, 78, 0, 0, 79, 0, ! 924: 0, 0, 152, -27, 0, 80, -136, 0, 81, 0, ! 925: -136, 0, 0, 82, 83, 84, 0, 0, 0, 85, ! 926: 86, 0, 0, 0, 87, 88, 0, 0, 0, 89, ! 927: 0, 90, 0, 153, 154, 0, 0, 91, 92, 0, ! 928: 508, -27, 0, 0, -136, 0, 0, 285, -136, -27, ! 929: -23, -23, -23, -23, 0, 0, 0, 0, -23, -23, ! 930: -23, 211, 212, 213, 214, 215, 216, 217, 218, 219, ! 931: 220, 221, 222, 152, -23, 0, 0, -136, 0, 0, ! 932: 279, -136, 0, -19, -19, -19, -19, 0, 0, 0, ! 933: 0, -19, -19, -19, 213, 214, 215, 216, 217, 218, ! 934: 219, 220, 221, 222, 153, 154, 152, -19, 0, 0, ! 935: -136, 0, -23, 0, -136, -136, 0, 0, 74, -136, ! 936: -23, 0, 0, 76, 72, 0, 77, 0, 376, 0, ! 937: 377, 5, 6, 7, 8, 0, 0, 0, 0, 9, ! 938: 10, 11, 0, 0, 78, -19, 0, 79, -136, 0, ! 939: 0, 0, -136, -19, 80, 13, 0, 81, 0, 0, ! 940: 0, 0, 82, 83, 84, 0, 0, 0, 85, 86, ! 941: 0, 74, 0, 87, 88, 0, 76, 72, 89, 77, ! 942: 90, 0, 0, 0, 0, 0, 91, 92, 0, 0, ! 943: 265, 0, 0, 19, 0, -318, 0, 78, 0, 0, ! 944: 79, 0, 0, 0, 0, 0, 74, 80, 0, 0, ! 945: 81, 76, 72, 0, 77, 82, 83, 84, 0, 0, ! 946: 0, 85, 86, 0, 0, 0, 87, 88, 0, 0, ! 947: 0, 89, 78, 90, 0, 79, 0, 0, 0, 91, ! 948: 92, 74, 80, 343, 0, 81, 76, 72, 0, 77, ! 949: 82, 83, 84, 0, 0, 0, 85, 86, 0, 0, ! 950: 0, 87, 88, 0, 0, 0, 89, 78, 90, 0, ! 951: 79, 0, 0, 0, 91, 92, 74, 80, 400, 0, ! 952: 81, 76, 72, 0, 77, 82, 83, 84, 0, 0, ! 953: 0, 85, 86, 0, 0, 0, 87, 88, 0, 0, ! 954: 0, 89, 78, 90, 0, 79, 0, 0, 0, 91, ! 955: 92, 0, 80, 437, 0, 81, 0, 0, 0, 0, ! 956: 82, 83, 84, 0, 0, 0, 85, 86, 0, 0, ! 957: 0, 87, 88, 0, 0, 0, 89, 0, 90, 0, ! 958: 0, 0, 0, 0, 91, 92, 0, 0, 605, 506, ! 959: 661, 6, 7, 8, 76, 72, 0, 77, 9, 10, ! 960: 11, 662, 0, 663, 664, 665, 666, 667, 668, 669, ! 961: 670, 671, 672, 673, 13, 78, 0, 0, 79, 0, ! 962: 0, 0, 0, 0, 0, 80, 0, 0, 81, 0, ! 963: 0, 0, 0, 82, 83, 84, 0, 0, 0, 85, ! 964: 86, 0, 0, 0, 87, 88, 0, 0, 0, 89, ! 965: 0, 90, 674, 0, 0, 675, 0, 91, 92, 0, ! 966: 303, 506, 36, 0, 0, 0, 76, 72, 0, 77, ! 967: 0, 0, 0, 662, 0, 663, 664, 665, 666, 667, ! 968: 668, 669, 670, 671, 672, 673, 0, 78, 0, 0, ! 969: 79, 0, 0, 0, 0, 0, 0, 80, 0, 0, ! 970: 81, 0, 0, 0, 0, 82, 83, 84, 0, 0, ! 971: 0, 85, 86, 0, 0, 0, 87, 88, 0, 0, ! 972: 0, 89, 0, 90, 37, 0, 0, 675, 0, 91, ! 973: 92, 0, 303, 108, 109, 0, 110, 111, 0, 0, ! 974: 0, 112, 113, 114, 115, 116, 117, 118, 119, 120, ! 975: 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, ! 976: 74, 5, 0, 7, 75, 76, 72, 131, 77, 9, ! 977: 10, 11, 210, 211, 212, 213, 214, 215, 216, 217, ! 978: 218, 219, 220, 221, 222, 13, 78, 0, 0, 79, ! 979: 0, 0, 0, 0, 0, 0, 80, 0, 0, 81, ! 980: 0, 0, 0, 243, 82, 83, 84, 0, 0, 0, ! 981: 85, 86, 0, 74, 0, 87, 88, 0, 76, 72, ! 982: 89, 77, 90, 19, 0, 0, 0, 0, 91, 92, ! 983: 214, 215, 216, 217, 218, 219, 220, 221, 222, 78, ! 984: 0, 0, 79, 0, 0, 0, 0, 0, 74, 80, ! 985: 0, 0, 81, 76, 72, 0, 77, 82, 83, 84, ! 986: 0, 0, 0, 85, 86, 0, 0, 0, 87, 88, ! 987: 0, 0, 0, 89, 78, 90, 306, 79, 0, 0, ! 988: 0, 91, 92, 74, 80, 0, 0, 81, 76, 72, ! 989: 0, 77, 82, 83, 84, 0, 0, 0, 85, 86, ! 990: 0, 0, 0, 87, 88, 0, 0, 0, 89, 78, ! 991: 90, 0, 79, 0, 703, 0, 91, 92, 74, 80, ! 992: 0, 0, 81, 76, 72, 0, 77, 82, 83, 84, ! 993: 0, 0, 0, 85, 86, 0, 0, 0, 189, 88, ! 994: 0, 0, 0, 89, 78, 90, 0, 79, 0, 0, ! 995: 0, 91, 92, 74, 80, 0, 0, 81, 76, 72, ! 996: 0, 77, 82, 83, 84, 0, 0, 0, 85, 86, ! 997: 0, 0, 0, 191, 88, 0, 0, 0, 89, 78, ! 998: 90, 0, 79, 0, 0, 0, 91, 92, 0, 80, ! 999: 0, 0, 81, 0, 0, 0, 0, 82, 83, 84, ! 1000: 0, 0, 0, 85, 86, 0, 0, 0, 87, 88, ! 1001: 0, 0, 0, 89, 456, 90, 0, 5, 0, 7, ! 1002: 75, 91, 92, 0, 0, 9, 10, 11, 212, 213, ! 1003: 214, 215, 216, 217, 218, 219, 220, 221, 222, 0, ! 1004: 4, 13, -103, 5, 6, 7, 8, 0, 0, 0, ! 1005: 0, 9, 10, 11, 0, 0, 0, 0, 4, 0, ! 1006: -103, 5, 6, 7, 8, 0, 12, 13, 0, 9, ! 1007: 10, 11, 216, 217, 218, 219, 220, 221, 222, 19, ! 1008: 0, 0, 458, -353, 0, 13, 14, 15, -103, 215, ! 1009: 216, 217, 218, 219, 220, 221, 222, -103, 0, 16, ! 1010: 17, 18, 0, 0, 0, 19, -103, 4, 20, -103, ! 1011: 5, 6, 7, 8, 0, -103, 0, 0, 9, 10, ! 1012: 11, 0, 0, 19, 0, 0, 20, 50, 5, 58, ! 1013: 7, 59, 0, 0, 13, 0, 9, 10, 11, 0, ! 1014: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1015: 0, 0, 13, 364, 365, -103, 0, 0, 0, 0, ! 1016: 0, 0, 0, 0, -103, 0, 0, 0, 0, 0, ! 1017: 0, 0, 19, 479, 0, 20, 0, 0, 0, 0, ! 1018: 0, 0, 475, 231, 108, 109, 0, 110, 111, 0, ! 1019: 19, 0, 112, 113, 114, 115, 116, 117, 118, 119, ! 1020: 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, ! 1021: 130, 0, 0, 0, 0, 0, 0, 0, 131, 206, ! 1022: 207, 208, 0, 209, 210, 211, 212, 213, 214, 215, ! 1023: 216, 217, 218, 219, 220, 221, 222, 0, 0, 132, ! 1024: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 1025: 0, 0, 0, 108, 109, 0, 110, 111, 0, 0, ! 1026: 629, 112, 113, 114, 115, 116, 117, 118, 119, 120, ! 1027: 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, ! 1028: 108, 109, 0, 110, 111, 0, 0, 309, 112, 113, ! 1029: 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, ! 1030: 124, 125, 126, 127, 128, 129, 130, 108, 109, 0, ! 1031: 110, 111, 0, 0, 131, 112, 113, 114, 115, 116, ! 1032: 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, ! 1033: 127, 128, 129, 130, 0, 0, 0, 0, 0, 273, ! 1034: 0, 513, 206, 207, 208, 0, 209, 210, 211, 212, ! 1035: 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, ! 1036: 206, 207, 208, 712, 209, 210, 211, 212, 213, 214, ! 1037: 215, 216, 217, 218, 219, 220, 221, 222, 206, 207, ! 1038: 208, 0, 209, 210, 211, 212, 213, 214, 215, 216, ! 1039: 217, 218, 219, 220, 221, 222, 208, 0, 209, 210, ! 1040: 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, ! 1041: 221, 222 ! 1042: }; ! 1043: ! 1044: static const short yycheck[] = { 44, ! 1045: 57, 45, 9, 10, 11, 2, 3, 2, 3, 16, ! 1046: 17, 61, 68, 68, 26, 155, 162, 135, 47, 227, ! 1047: 24, 270, 198, 158, 281, 25, 26, 269, 135, 282, ! 1048: 359, 63, 410, 45, 256, 101, 42, 253, 104, 150, ! 1049: 1, 378, 84, 87, 234, 697, 87, 159, 52, 1, ! 1050: 27, 93, 9, 1, 3, 4, 68, 61, 10, 9, ! 1051: 68, 0, 9, 68, 230, 73, 1, 37, 73, 4, ! 1052: 5, 6, 7, 80, 569, 87, 493, 12, 13, 14, ! 1053: 37, 58, 59, 201, 69, 27, 3, 4, 73, 10, ! 1054: 342, 132, 104, 28, 229, 0, 748, 74, 68, 3, ! 1055: 4, 1, 354, 58, 4, 5, 6, 7, 69, 351, ! 1056: 154, 68, 12, 13, 14, 261, 37, 66, 68, 64, ! 1057: 132, 68, 74, 775, 131, 454, 74, 622, 28, 58, ! 1058: 270, 66, 74, 140, 141, 167, 3, 144, 145, 74, ! 1059: 280, 3, 4, 147, 561, 189, 286, 191, 189, 66, ! 1060: 191, 193, 292, 69, 294, 159, 200, 74, 348, 576, ! 1061: 577, 202, 66, 275, 74, 3, 66, 278, 3, 4, ! 1062: 74, 183, 37, 339, 74, 3, 4, 189, 184, 191, ! 1063: 186, 181, 49, 183, 228, 70, 74, 231, 73, 3, ! 1064: 202, 58, 570, 7, 312, 37, 58, 74, 239, 3, ! 1065: 4, 696, 234, 68, 66, 447, 535, 544, 58, 3, ! 1066: 4, 49, 629, 7, 631, 37, 58, 262, 225, 226, ! 1067: 58, 59, 69, 58, 3, 9, 73, 239, 723, 8, ! 1068: 452, 66, 74, 728, 729, 49, 58, 68, 66, 283, ! 1069: 247, 70, 73, 738, 58, 49, 74, 469, 626, 7, ! 1070: 745, 467, 74, 253, 749, 49, 253, 70, 253, 69, ! 1071: 70, 756, 66, 305, 58, 760, 27, 684, 69, 3, ! 1072: 4, 275, 73, 205, 206, 207, 58, 209, 210, 211, ! 1073: 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, ! 1074: 222, 49, 545, 31, 789, 712, 58, 58, 59, 37, ! 1075: 58, 59, 346, 421, 68, 513, 362, 362, 565, 475, ! 1076: 486, 640, 378, 379, 355, 49, 348, 47, 48, 568, ! 1077: 280, 58, 59, 441, 58, 1, 286, 569, 4, 5, ! 1078: 6, 7, 62, 73, 441, 9, 12, 13, 14, 474, ! 1079: 49, 50, 51, 355, 479, 3, 4, 3, 4, 3, ! 1080: 362, 7, 28, 7, 351, 287, 351, 369, 68, 499, ! 1081: 37, 448, 502, 367, 451, 62, 69, 379, 368, 369, ! 1082: 73, 3, 4, 581, 378, 379, 49, 58, 544, 37, ! 1083: 622, 547, 31, 58, 59, 58, 59, 58, 59, 35, ! 1084: 66, 49, 68, 49, 391, 49, 391, 68, 516, 69, ! 1085: 58, 658, 58, 59, 58, 59, 73, 494, 58, 59, ! 1086: 497, 4, 419, 6, 7, 66, 466, 49, 68, 12, ! 1087: 13, 14, 69, 3, 4, 69, 58, 59, 568, 73, ! 1088: 68, 443, 439, 462, 463, 28, 69, 4, 5, 6, ! 1089: 7, 68, 442, 500, 74, 12, 13, 14, 460, 446, ! 1090: 68, 446, 628, 68, 58, 59, 49, 37, 10, 459, ! 1091: 460, 28, 466, 609, 68, 58, 59, 467, 74, 49, ! 1092: 467, 475, 467, 66, 68, 651, 62, 653, 58, 491, ! 1093: 537, 538, 69, 74, 660, 69, 73, 419, 27, 73, ! 1094: 490, 491, 69, 70, 68, 427, 553, 58, 59, 66, ! 1095: 75, 508, 546, 69, 1, 555, 70, 4, 5, 6, ! 1096: 7, 5, 6, 7, 58, 12, 13, 14, 12, 13, ! 1097: 14, 525, 35, 530, 58, 59, 4, 68, 6, 7, ! 1098: 70, 28, 69, 70, 12, 13, 14, 70, 594, 594, ! 1099: 544, 1, 68, 547, 4, 68, 6, 7, 77, 78, ! 1100: 28, 555, 12, 13, 14, 1, 70, 3, 4, 68, ! 1101: 37, 493, 8, 9, 68, 11, 6, 7, 28, 66, ! 1102: 577, 37, 12, 13, 14, 507, 508, 74, 68, 68, ! 1103: 75, 68, 594, 29, 628, 70, 32, 644, 66, 75, ! 1104: 70, 69, 70, 39, 53, 54, 42, 56, 57, 58, ! 1105: 59, 47, 48, 49, 68, 68, 66, 53, 54, 69, ! 1106: 70, 73, 58, 59, 58, 35, 660, 63, 75, 65, ! 1107: 66, 628, 70, 667, 631, 71, 72, 671, 74, 561, ! 1108: 73, 628, 564, 628, 33, 639, 68, 68, 4, 5, ! 1109: 6, 7, 75, 69, 576, 577, 12, 13, 14, 68, ! 1110: 694, 62, 69, 660, 698, 47, 48, 49, 50, 51, ! 1111: 3, 705, 28, 595, 69, 672, 4, 5, 6, 7, ! 1112: 3, 3, 37, 717, 12, 13, 14, 721, 37, 3, ! 1113: 73, 37, 727, 62, 8, 9, 618, 11, 75, 70, ! 1114: 28, 58, 70, 70, 70, 37, 68, 629, 62, 631, ! 1115: 66, 633, 73, 69, 58, 29, 75, 70, 32, 37, ! 1116: 68, 643, 73, 757, 37, 39, 37, 58, 42, 58, ! 1117: 69, 69, 7, 47, 48, 49, 770, 37, 66, 53, ! 1118: 54, 69, 37, 69, 58, 59, 16, 62, 783, 63, ! 1119: 8, 65, 58, 69, 58, 17, 791, 71, 72, 69, ! 1120: 74, 1, 684, 3, 4, 5, 6, 7, 8, 9, ! 1121: 10, 11, 12, 13, 14, 15, 73, 17, 18, 19, ! 1122: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, ! 1123: 712, 68, 32, 69, 68, 8, 69, 68, 37, 39, ! 1124: 68, 58, 42, 9, 69, 69, 58, 47, 48, 49, ! 1125: 73, 0, 68, 53, 54, 69, 69, 68, 58, 59, ! 1126: 68, 0, 69, 63, 69, 65, 66, 3, 502, 69, ! 1127: 70, 71, 72, 1, 74, 3, 4, 5, 6, 7, ! 1128: 8, 9, 62, 11, 12, 13, 14, 15, 553, 17, ! 1129: 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, ! 1130: 28, 29, 237, 508, 32, 615, 290, 294, 499, 176, ! 1131: 288, 39, 568, 503, 42, 771, 773, 483, 536, 47, ! 1132: 48, 49, 345, 501, 538, 53, 54, 644, 601, 370, ! 1133: 58, 59, 639, 446, 441, 63, 248, 65, 66, 350, ! 1134: 581, 69, 350, 71, 72, 1, 74, 3, 4, 516, ! 1135: 312, -1, 8, 9, -1, 11, -1, -1, -1, 15, ! 1136: -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, ! 1137: 26, 27, -1, 29, -1, -1, 32, -1, -1, -1, ! 1138: -1, -1, -1, 39, -1, -1, 42, -1, -1, -1, ! 1139: -1, 47, 48, 49, -1, -1, -1, 53, 54, -1, ! 1140: -1, -1, 58, 59, -1, -1, -1, 63, -1, 65, ! 1141: 66, -1, -1, 69, 70, 71, 72, 1, 74, 3, ! 1142: 4, -1, -1, -1, 8, 9, -1, 11, -1, -1, ! 1143: -1, 15, -1, 17, 18, 19, 20, 21, 22, 23, ! 1144: 24, 25, 26, 27, -1, 29, -1, -1, 32, -1, ! 1145: -1, -1, -1, -1, -1, 39, -1, -1, 42, -1, ! 1146: -1, -1, -1, 47, 48, 49, -1, -1, -1, 53, ! 1147: 54, -1, -1, -1, 58, 59, -1, -1, -1, 63, ! 1148: -1, 65, 66, -1, -1, 69, 70, 71, 72, 1, ! 1149: 74, 3, 4, -1, 6, 7, 8, 9, -1, 11, ! 1150: 12, 13, 14, -1, -1, 4, 5, 6, 7, -1, ! 1151: -1, -1, -1, 12, 13, 14, 28, 29, -1, -1, ! 1152: 32, -1, -1, -1, -1, -1, -1, 39, -1, 28, ! 1153: 42, -1, -1, -1, -1, 47, 48, 49, -1, -1, ! 1154: -1, 53, 54, -1, -1, -1, 58, 59, -1, -1, ! 1155: -1, 63, -1, 65, 66, -1, -1, -1, -1, 71, ! 1156: 72, 1, 74, 3, 4, -1, -1, 66, 8, 9, ! 1157: 69, 11, -1, -1, -1, -1, 4, 5, 6, 7, ! 1158: -1, 21, 10, -1, 12, 13, 14, -1, 4, 29, ! 1159: 6, 7, 32, -1, -1, -1, 12, 13, 14, 39, ! 1160: 28, -1, 42, -1, -1, -1, -1, 47, 48, 49, ! 1161: -1, -1, 28, 53, 54, -1, -1, -1, 58, 59, ! 1162: -1, -1, -1, 63, -1, 65, 66, -1, -1, -1, ! 1163: 70, 71, 72, 1, 74, 3, 4, -1, 66, -1, ! 1164: 8, 9, -1, 11, -1, -1, -1, -1, -1, -1, ! 1165: 66, -1, -1, 21, -1, -1, -1, 1, -1, -1, ! 1166: 4, 29, 6, 7, 32, -1, -1, -1, 12, 13, ! 1167: 14, 39, -1, -1, 42, -1, -1, -1, -1, 47, ! 1168: 48, 49, -1, -1, 28, 53, 54, -1, -1, -1, ! 1169: 58, 59, -1, -1, -1, 63, -1, 65, 66, -1, ! 1170: -1, -1, 70, 71, 72, 1, 74, 3, 4, -1, ! 1171: -1, -1, 8, 9, -1, 11, -1, -1, -1, -1, ! 1172: -1, -1, 66, 67, -1, 69, 70, -1, -1, -1, ! 1173: -1, -1, 4, 29, 6, 7, 32, -1, -1, -1, ! 1174: 12, 13, 14, 39, -1, -1, 42, -1, -1, -1, ! 1175: -1, 47, 48, 49, -1, -1, 28, 53, 54, -1, ! 1176: -1, -1, 58, 59, -1, -1, -1, 63, -1, 65, ! 1177: 66, -1, -1, -1, 70, 71, 72, 1, 74, 3, ! 1178: -1, -1, -1, -1, 8, 9, 1, 11, -1, 4, ! 1179: 5, 6, 7, -1, 66, -1, -1, 12, 13, 14, ! 1180: -1, -1, -1, -1, -1, 29, -1, -1, 32, -1, ! 1181: -1, -1, 27, 28, -1, 39, 31, -1, 42, -1, ! 1182: 35, -1, -1, 47, 48, 49, -1, -1, -1, 53, ! 1183: 54, -1, -1, -1, 58, 59, -1, -1, -1, 63, ! 1184: -1, 65, -1, 58, 59, -1, -1, 71, 72, -1, ! 1185: 74, 66, -1, -1, 69, -1, -1, 1, 73, 74, ! 1186: 4, 5, 6, 7, -1, -1, -1, -1, 12, 13, ! 1187: 14, 40, 41, 42, 43, 44, 45, 46, 47, 48, ! 1188: 49, 50, 51, 27, 28, -1, -1, 31, -1, -1, ! 1189: 1, 35, -1, 4, 5, 6, 7, -1, -1, -1, ! 1190: -1, 12, 13, 14, 42, 43, 44, 45, 46, 47, ! 1191: 48, 49, 50, 51, 58, 59, 27, 28, -1, -1, ! 1192: 31, -1, 66, -1, 35, 69, -1, -1, 3, 73, ! 1193: 74, -1, -1, 8, 9, -1, 11, -1, 1, -1, ! 1194: 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, ! 1195: 13, 14, -1, -1, 29, 66, -1, 32, 69, -1, ! 1196: -1, -1, 73, 74, 39, 28, -1, 42, -1, -1, ! 1197: -1, -1, 47, 48, 49, -1, -1, -1, 53, 54, ! 1198: -1, 3, -1, 58, 59, -1, 8, 9, 63, 11, ! 1199: 65, -1, -1, -1, -1, -1, 71, 72, -1, -1, ! 1200: 75, -1, -1, 66, -1, 68, -1, 29, -1, -1, ! 1201: 32, -1, -1, -1, -1, -1, 3, 39, -1, -1, ! 1202: 42, 8, 9, -1, 11, 47, 48, 49, -1, -1, ! 1203: -1, 53, 54, -1, -1, -1, 58, 59, -1, -1, ! 1204: -1, 63, 29, 65, -1, 32, -1, -1, -1, 71, ! 1205: 72, 3, 39, 75, -1, 42, 8, 9, -1, 11, ! 1206: 47, 48, 49, -1, -1, -1, 53, 54, -1, -1, ! 1207: -1, 58, 59, -1, -1, -1, 63, 29, 65, -1, ! 1208: 32, -1, -1, -1, 71, 72, 3, 39, 75, -1, ! 1209: 42, 8, 9, -1, 11, 47, 48, 49, -1, -1, ! 1210: -1, 53, 54, -1, -1, -1, 58, 59, -1, -1, ! 1211: -1, 63, 29, 65, -1, 32, -1, -1, -1, 71, ! 1212: 72, -1, 39, 75, -1, 42, -1, -1, -1, -1, ! 1213: 47, 48, 49, -1, -1, -1, 53, 54, -1, -1, ! 1214: -1, 58, 59, -1, -1, -1, 63, -1, 65, -1, ! 1215: -1, -1, -1, -1, 71, 72, -1, -1, 75, 3, ! 1216: 4, 5, 6, 7, 8, 9, -1, 11, 12, 13, ! 1217: 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, ! 1218: 24, 25, 26, 27, 28, 29, -1, -1, 32, -1, ! 1219: -1, -1, -1, -1, -1, 39, -1, -1, 42, -1, ! 1220: -1, -1, -1, 47, 48, 49, -1, -1, -1, 53, ! 1221: 54, -1, -1, -1, 58, 59, -1, -1, -1, 63, ! 1222: -1, 65, 66, -1, -1, 69, -1, 71, 72, -1, ! 1223: 74, 3, 4, -1, -1, -1, 8, 9, -1, 11, ! 1224: -1, -1, -1, 15, -1, 17, 18, 19, 20, 21, ! 1225: 22, 23, 24, 25, 26, 27, -1, 29, -1, -1, ! 1226: 32, -1, -1, -1, -1, -1, -1, 39, -1, -1, ! 1227: 42, -1, -1, -1, -1, 47, 48, 49, -1, -1, ! 1228: -1, 53, 54, -1, -1, -1, 58, 59, -1, -1, ! 1229: -1, 63, -1, 65, 66, -1, -1, 69, -1, 71, ! 1230: 72, -1, 74, 3, 4, -1, 6, 7, -1, -1, ! 1231: -1, 11, 12, 13, 14, 15, 16, 17, 18, 19, ! 1232: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, ! 1233: 3, 4, -1, 6, 7, 8, 9, 37, 11, 12, ! 1234: 13, 14, 39, 40, 41, 42, 43, 44, 45, 46, ! 1235: 47, 48, 49, 50, 51, 28, 29, -1, -1, 32, ! 1236: -1, -1, -1, -1, -1, -1, 39, -1, -1, 42, ! 1237: -1, -1, -1, 73, 47, 48, 49, -1, -1, -1, ! 1238: 53, 54, -1, 3, -1, 58, 59, -1, 8, 9, ! 1239: 63, 11, 65, 66, -1, -1, -1, -1, 71, 72, ! 1240: 43, 44, 45, 46, 47, 48, 49, 50, 51, 29, ! 1241: -1, -1, 32, -1, -1, -1, -1, -1, 3, 39, ! 1242: -1, -1, 42, 8, 9, -1, 11, 47, 48, 49, ! 1243: -1, -1, -1, 53, 54, -1, -1, -1, 58, 59, ! 1244: -1, -1, -1, 63, 29, 65, 66, 32, -1, -1, ! 1245: -1, 71, 72, 3, 39, -1, -1, 42, 8, 9, ! 1246: -1, 11, 47, 48, 49, -1, -1, -1, 53, 54, ! 1247: -1, -1, -1, 58, 59, -1, -1, -1, 63, 29, ! 1248: 65, -1, 32, -1, 69, -1, 71, 72, 3, 39, ! 1249: -1, -1, 42, 8, 9, -1, 11, 47, 48, 49, ! 1250: -1, -1, -1, 53, 54, -1, -1, -1, 58, 59, ! 1251: -1, -1, -1, 63, 29, 65, -1, 32, -1, -1, ! 1252: -1, 71, 72, 3, 39, -1, -1, 42, 8, 9, ! 1253: -1, 11, 47, 48, 49, -1, -1, -1, 53, 54, ! 1254: -1, -1, -1, 58, 59, -1, -1, -1, 63, 29, ! 1255: 65, -1, 32, -1, -1, -1, 71, 72, -1, 39, ! 1256: -1, -1, 42, -1, -1, -1, -1, 47, 48, 49, ! 1257: -1, -1, -1, 53, 54, -1, -1, -1, 58, 59, ! 1258: -1, -1, -1, 63, 1, 65, -1, 4, -1, 6, ! 1259: 7, 71, 72, -1, -1, 12, 13, 14, 41, 42, ! 1260: 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, ! 1261: 1, 28, 3, 4, 5, 6, 7, -1, -1, -1, ! 1262: -1, 12, 13, 14, -1, -1, -1, -1, 1, -1, ! 1263: 3, 4, 5, 6, 7, -1, 27, 28, -1, 12, ! 1264: 13, 14, 45, 46, 47, 48, 49, 50, 51, 66, ! 1265: -1, -1, 69, 70, -1, 28, 47, 48, 49, 44, ! 1266: 45, 46, 47, 48, 49, 50, 51, 58, -1, 60, ! 1267: 61, 62, -1, -1, -1, 66, 49, 1, 69, 3, ! 1268: 4, 5, 6, 7, -1, 58, -1, -1, 12, 13, ! 1269: 14, -1, -1, 66, -1, -1, 69, 3, 4, 5, ! 1270: 6, 7, -1, -1, 28, -1, 12, 13, 14, -1, ! 1271: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 1272: -1, -1, 28, 47, 48, 49, -1, -1, -1, -1, ! 1273: -1, -1, -1, -1, 58, -1, -1, -1, -1, -1, ! 1274: -1, -1, 66, 49, -1, 69, -1, -1, -1, -1, ! 1275: -1, -1, 58, 59, 3, 4, -1, 6, 7, -1, ! 1276: 66, -1, 11, 12, 13, 14, 15, 16, 17, 18, ! 1277: 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, ! 1278: 29, -1, -1, -1, -1, -1, -1, -1, 37, 34, ! 1279: 35, 36, -1, 38, 39, 40, 41, 42, 43, 44, ! 1280: 45, 46, 47, 48, 49, 50, 51, -1, -1, 58, ! 1281: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 1282: -1, -1, -1, 3, 4, -1, 6, 7, -1, -1, ! 1283: 75, 11, 12, 13, 14, 15, 16, 17, 18, 19, ! 1284: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, ! 1285: 3, 4, -1, 6, 7, -1, -1, 37, 11, 12, ! 1286: 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, ! 1287: 23, 24, 25, 26, 27, 28, 29, 3, 4, -1, ! 1288: 6, 7, -1, -1, 37, 11, 12, 13, 14, 15, ! 1289: 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, ! 1290: 26, 27, 28, 29, -1, -1, -1, -1, -1, 31, ! 1291: -1, 37, 34, 35, 36, -1, 38, 39, 40, 41, ! 1292: 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, ! 1293: 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, ! 1294: 44, 45, 46, 47, 48, 49, 50, 51, 34, 35, ! 1295: 36, -1, 38, 39, 40, 41, 42, 43, 44, 45, ! 1296: 46, 47, 48, 49, 50, 51, 36, -1, 38, 39, ! 1297: 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, ! 1298: 50, 51 ! 1299: }; ! 1300: /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ ! 1301: #line 3 "bison.simple" ! 1302: ! 1303: /* Skeleton output parser for bison, ! 1304: Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman ! 1305: ! 1306: This program is free software; you can redistribute it and/or modify ! 1307: it under the terms of the GNU General Public License as published by ! 1308: the Free Software Foundation; either version 1, or (at your option) ! 1309: any later version. ! 1310: ! 1311: This program is distributed in the hope that it will be useful, ! 1312: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 1313: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 1314: GNU General Public License for more details. ! 1315: ! 1316: You should have received a copy of the GNU General Public License ! 1317: along with this program; if not, write to the Free Software ! 1318: Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ ! 1319: ! 1320: ! 1321: #ifndef alloca ! 1322: #ifdef __GNUC__ ! 1323: #define alloca __builtin_alloca ! 1324: #else /* not GNU C. */ ! 1325: #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) ! 1326: #include <alloca.h> ! 1327: #else /* not sparc */ ! 1328: #if defined (MSDOS) && !defined (__TURBOC__) ! 1329: #include <malloc.h> ! 1330: #else /* not MSDOS, or __TURBOC__ */ ! 1331: #if defined(_AIX) ! 1332: #include <malloc.h> ! 1333: #pragma alloca ! 1334: #endif /* not _AIX */ ! 1335: #endif /* not MSDOS, or __TURBOC__ */ ! 1336: #endif /* not sparc. */ ! 1337: #endif /* not GNU C. */ ! 1338: #endif /* alloca not defined. */ ! 1339: ! 1340: /* This is the parser code that is written into each bison parser ! 1341: when the %semantic_parser declaration is not specified in the grammar. ! 1342: It was written by Richard Stallman by simplifying the hairy parser ! 1343: used when %semantic_parser is specified. */ ! 1344: ! 1345: /* Note: there must be only one dollar sign in this file. ! 1346: It is replaced by the list of actions, each action ! 1347: as one case of the switch. */ ! 1348: ! 1349: #define yyerrok (yyerrstatus = 0) ! 1350: #define yyclearin (yychar = YYEMPTY) ! 1351: #define YYEMPTY -2 ! 1352: #define YYEOF 0 ! 1353: #define YYACCEPT return(0) ! 1354: #define YYABORT return(1) ! 1355: #define YYERROR goto yyerrlab1 ! 1356: /* Like YYERROR except do call yyerror. ! 1357: This remains here temporarily to ease the ! 1358: transition to the new meaning of YYERROR, for GCC. ! 1359: Once GCC version 2 has supplanted version 1, this can go. */ ! 1360: #define YYFAIL goto yyerrlab ! 1361: #define YYRECOVERING() (!!yyerrstatus) ! 1362: #define YYBACKUP(token, value) \ ! 1363: do \ ! 1364: if (yychar == YYEMPTY && yylen == 1) \ ! 1365: { yychar = (token), yylval = (value); \ ! 1366: yychar1 = YYTRANSLATE (yychar); \ ! 1367: YYPOPSTACK; \ ! 1368: goto yybackup; \ ! 1369: } \ ! 1370: else \ ! 1371: { yyerror ("syntax error: cannot back up"); YYERROR; } \ ! 1372: while (0) ! 1373: ! 1374: #define YYTERROR 1 ! 1375: #define YYERRCODE 256 ! 1376: ! 1377: #ifndef YYPURE ! 1378: #define YYLEX yylex() ! 1379: #endif ! 1380: ! 1381: #ifdef YYPURE ! 1382: #ifdef YYLSP_NEEDED ! 1383: #define YYLEX yylex(&yylval, &yylloc) ! 1384: #else ! 1385: #define YYLEX yylex(&yylval) ! 1386: #endif ! 1387: #endif ! 1388: ! 1389: /* If nonreentrant, generate the variables here */ ! 1390: ! 1391: #ifndef YYPURE ! 1392: ! 1393: int yychar; /* the lookahead symbol */ ! 1394: YYSTYPE yylval; /* the semantic value of the */ ! 1395: /* lookahead symbol */ ! 1396: ! 1397: #ifdef YYLSP_NEEDED ! 1398: YYLTYPE yylloc; /* location data for the lookahead */ ! 1399: /* symbol */ ! 1400: #endif ! 1401: ! 1402: int yynerrs; /* number of parse errors so far */ ! 1403: #endif /* not YYPURE */ ! 1404: ! 1405: #if YYDEBUG != 0 ! 1406: int yydebug; /* nonzero means print parse trace */ ! 1407: /* Since this is uninitialized, it does not stop multiple parsers ! 1408: from coexisting. */ ! 1409: #endif ! 1410: ! 1411: /* YYINITDEPTH indicates the initial size of the parser's stacks */ ! 1412: ! 1413: #ifndef YYINITDEPTH ! 1414: #define YYINITDEPTH 200 ! 1415: #endif ! 1416: ! 1417: /* YYMAXDEPTH is the maximum size the stacks can grow to ! 1418: (effective only if the built-in stack extension method is used). */ ! 1419: ! 1420: #if YYMAXDEPTH == 0 ! 1421: #undef YYMAXDEPTH ! 1422: #endif ! 1423: ! 1424: #ifndef YYMAXDEPTH ! 1425: #define YYMAXDEPTH 10000 ! 1426: #endif ! 1427: ! 1428: #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ ! 1429: #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT) ! 1430: #else /* not GNU C or C++ */ ! 1431: #ifndef __cplusplus ! 1432: ! 1433: /* This is the most reliable way to avoid incompatibilities ! 1434: in available built-in functions on various systems. */ ! 1435: static void ! 1436: __yy_bcopy (from, to, count) ! 1437: char *from; ! 1438: char *to; ! 1439: int count; ! 1440: { ! 1441: register char *f = from; ! 1442: register char *t = to; ! 1443: register int i = count; ! 1444: ! 1445: while (i-- > 0) ! 1446: *t++ = *f++; ! 1447: } ! 1448: ! 1449: #else /* __cplusplus */ ! 1450: ! 1451: /* This is the most reliable way to avoid incompatibilities ! 1452: in available built-in functions on various systems. */ ! 1453: static void ! 1454: __yy_bcopy (char *from, char *to, int count) ! 1455: { ! 1456: register char *f = from; ! 1457: register char *t = to; ! 1458: register int i = count; ! 1459: ! 1460: while (i-- > 0) ! 1461: *t++ = *f++; ! 1462: } ! 1463: ! 1464: #endif ! 1465: #endif ! 1466: ! 1467: #line 169 "bison.simple" ! 1468: int ! 1469: yyparse() ! 1470: { ! 1471: register int yystate; ! 1472: register int yyn; ! 1473: register short *yyssp; ! 1474: register YYSTYPE *yyvsp; ! 1475: int yyerrstatus; /* number of tokens to shift before error messages enabled */ ! 1476: int yychar1; /* lookahead token as an internal (translated) token number */ ! 1477: ! 1478: short yyssa[YYINITDEPTH]; /* the state stack */ ! 1479: YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ ! 1480: ! 1481: short *yyss = yyssa; /* refer to the stacks thru separate pointers */ ! 1482: YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ ! 1483: ! 1484: #ifdef YYLSP_NEEDED ! 1485: YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ ! 1486: YYLTYPE *yyls = yylsa; ! 1487: YYLTYPE *yylsp; ! 1488: ! 1489: #define YYPOPSTACK (yyvsp--, yysp--, yylsp--) ! 1490: #else ! 1491: #define YYPOPSTACK (yyvsp--, yysp--) ! 1492: #endif ! 1493: ! 1494: int yystacksize = YYINITDEPTH; ! 1495: ! 1496: #ifdef YYPURE ! 1497: int yychar; ! 1498: YYSTYPE yylval; ! 1499: int yynerrs; ! 1500: #ifdef YYLSP_NEEDED ! 1501: YYLTYPE yylloc; ! 1502: #endif ! 1503: #endif ! 1504: ! 1505: YYSTYPE yyval; /* the variable used to return */ ! 1506: /* semantic values from the action */ ! 1507: /* routines */ ! 1508: ! 1509: int yylen; ! 1510: ! 1511: #if YYDEBUG != 0 ! 1512: if (yydebug) ! 1513: fprintf(stderr, "Starting parse\n"); ! 1514: #endif ! 1515: ! 1516: yystate = 0; ! 1517: yyerrstatus = 0; ! 1518: yynerrs = 0; ! 1519: yychar = YYEMPTY; /* Cause a token to be read. */ ! 1520: ! 1521: /* Initialize stack pointers. ! 1522: Waste one element of value and location stack ! 1523: so that they stay on the same level as the state stack. */ ! 1524: ! 1525: yyssp = yyss - 1; ! 1526: yyvsp = yyvs; ! 1527: #ifdef YYLSP_NEEDED ! 1528: yylsp = yyls; ! 1529: #endif ! 1530: ! 1531: /* Push a new state, which is found in yystate . */ ! 1532: /* In all cases, when you get here, the value and location stacks ! 1533: have just been pushed. so pushing a state here evens the stacks. */ ! 1534: yynewstate: ! 1535: ! 1536: *++yyssp = yystate; ! 1537: ! 1538: if (yyssp >= yyss + yystacksize - 1) ! 1539: { ! 1540: /* Give user a chance to reallocate the stack */ ! 1541: /* Use copies of these so that the &'s don't force the real ones into memory. */ ! 1542: YYSTYPE *yyvs1 = yyvs; ! 1543: short *yyss1 = yyss; ! 1544: #ifdef YYLSP_NEEDED ! 1545: YYLTYPE *yyls1 = yyls; ! 1546: #endif ! 1547: ! 1548: /* Get the current used size of the three stacks, in elements. */ ! 1549: int size = yyssp - yyss + 1; ! 1550: ! 1551: #ifdef yyoverflow ! 1552: /* Each stack pointer address is followed by the size of ! 1553: the data in use in that stack, in bytes. */ ! 1554: yyoverflow("parser stack overflow", ! 1555: &yyss1, size * sizeof (*yyssp), ! 1556: &yyvs1, size * sizeof (*yyvsp), ! 1557: #ifdef YYLSP_NEEDED ! 1558: &yyls1, size * sizeof (*yylsp), ! 1559: #endif ! 1560: &yystacksize); ! 1561: ! 1562: yyss = yyss1; yyvs = yyvs1; ! 1563: #ifdef YYLSP_NEEDED ! 1564: yyls = yyls1; ! 1565: #endif ! 1566: #else /* no yyoverflow */ ! 1567: /* Extend the stack our own way. */ ! 1568: if (yystacksize >= YYMAXDEPTH) ! 1569: { ! 1570: yyerror("parser stack overflow"); ! 1571: return 2; ! 1572: } ! 1573: yystacksize *= 2; ! 1574: if (yystacksize > YYMAXDEPTH) ! 1575: yystacksize = YYMAXDEPTH; ! 1576: yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); ! 1577: __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp)); ! 1578: yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); ! 1579: __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp)); ! 1580: #ifdef YYLSP_NEEDED ! 1581: yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); ! 1582: __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp)); ! 1583: #endif ! 1584: #endif /* no yyoverflow */ ! 1585: ! 1586: yyssp = yyss + size - 1; ! 1587: yyvsp = yyvs + size - 1; ! 1588: #ifdef YYLSP_NEEDED ! 1589: yylsp = yyls + size - 1; ! 1590: #endif ! 1591: ! 1592: #if YYDEBUG != 0 ! 1593: if (yydebug) ! 1594: fprintf(stderr, "Stack size increased to %d\n", yystacksize); ! 1595: #endif ! 1596: ! 1597: if (yyssp >= yyss + yystacksize - 1) ! 1598: YYABORT; ! 1599: } ! 1600: ! 1601: #if YYDEBUG != 0 ! 1602: if (yydebug) ! 1603: fprintf(stderr, "Entering state %d\n", yystate); ! 1604: #endif ! 1605: ! 1606: yybackup: ! 1607: ! 1608: /* Do appropriate processing given the current state. */ ! 1609: /* Read a lookahead token if we need one and don't already have one. */ ! 1610: /* yyresume: */ ! 1611: ! 1612: /* First try to decide what to do without reference to lookahead token. */ ! 1613: ! 1614: yyn = yypact[yystate]; ! 1615: if (yyn == YYFLAG) ! 1616: goto yydefault; ! 1617: ! 1618: /* Not known => get a lookahead token if don't already have one. */ ! 1619: ! 1620: /* yychar is either YYEMPTY or YYEOF ! 1621: or a valid token in external form. */ ! 1622: ! 1623: if (yychar == YYEMPTY) ! 1624: { ! 1625: #if YYDEBUG != 0 ! 1626: if (yydebug) ! 1627: fprintf(stderr, "Reading a token: "); ! 1628: #endif ! 1629: yychar = YYLEX; ! 1630: } ! 1631: ! 1632: /* Convert token to internal form (in yychar1) for indexing tables with */ ! 1633: ! 1634: if (yychar <= 0) /* This means end of input. */ ! 1635: { ! 1636: yychar1 = 0; ! 1637: yychar = YYEOF; /* Don't call YYLEX any more */ ! 1638: ! 1639: #if YYDEBUG != 0 ! 1640: if (yydebug) ! 1641: fprintf(stderr, "Now at end of input.\n"); ! 1642: #endif ! 1643: } ! 1644: else ! 1645: { ! 1646: yychar1 = YYTRANSLATE(yychar); ! 1647: ! 1648: #if YYDEBUG != 0 ! 1649: if (yydebug) ! 1650: { ! 1651: fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); ! 1652: /* Give the individual parser a way to print the precise meaning ! 1653: of a token, for further debugging info. */ ! 1654: #ifdef YYPRINT ! 1655: YYPRINT (stderr, yychar, yylval); ! 1656: #endif ! 1657: fprintf (stderr, ")\n"); ! 1658: } ! 1659: #endif ! 1660: } ! 1661: ! 1662: yyn += yychar1; ! 1663: if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) ! 1664: goto yydefault; ! 1665: ! 1666: yyn = yytable[yyn]; ! 1667: ! 1668: /* yyn is what to do for this token type in this state. ! 1669: Negative => reduce, -yyn is rule number. ! 1670: Positive => shift, yyn is new state. ! 1671: New state is final state => don't bother to shift, ! 1672: just return success. ! 1673: 0, or most negative number => error. */ ! 1674: ! 1675: if (yyn < 0) ! 1676: { ! 1677: if (yyn == YYFLAG) ! 1678: goto yyerrlab; ! 1679: yyn = -yyn; ! 1680: goto yyreduce; ! 1681: } ! 1682: else if (yyn == 0) ! 1683: goto yyerrlab; ! 1684: ! 1685: if (yyn == YYFINAL) ! 1686: YYACCEPT; ! 1687: ! 1688: /* Shift the lookahead token. */ ! 1689: ! 1690: #if YYDEBUG != 0 ! 1691: if (yydebug) ! 1692: fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); ! 1693: #endif ! 1694: ! 1695: /* Discard the token being shifted unless it is eof. */ ! 1696: if (yychar != YYEOF) ! 1697: yychar = YYEMPTY; ! 1698: ! 1699: *++yyvsp = yylval; ! 1700: #ifdef YYLSP_NEEDED ! 1701: *++yylsp = yylloc; ! 1702: #endif ! 1703: ! 1704: /* count tokens shifted since error; after three, turn off error status. */ ! 1705: if (yyerrstatus) yyerrstatus--; ! 1706: ! 1707: yystate = yyn; ! 1708: goto yynewstate; ! 1709: ! 1710: /* Do the default action for the current state. */ ! 1711: yydefault: ! 1712: ! 1713: yyn = yydefact[yystate]; ! 1714: if (yyn == 0) ! 1715: goto yyerrlab; ! 1716: ! 1717: /* Do a reduction. yyn is the number of a rule to reduce with. */ ! 1718: yyreduce: ! 1719: yylen = yyr2[yyn]; ! 1720: yyval = yyvsp[1-yylen]; /* implement default value of the action */ ! 1721: ! 1722: #if YYDEBUG != 0 ! 1723: if (yydebug) ! 1724: { ! 1725: int i; ! 1726: ! 1727: fprintf (stderr, "Reducing via rule %d (line %d), ", ! 1728: yyn, yyrline[yyn]); ! 1729: ! 1730: /* Print the symboles being reduced, and their result. */ ! 1731: for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) ! 1732: fprintf (stderr, "%s ", yytname[yyrhs[i]]); ! 1733: fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); ! 1734: } ! 1735: #endif ! 1736: ! 1737: ! 1738: switch (yyn) { ! 1739: ! 1740: case 1: ! 1741: #line 218 "objc-parse.y" ! 1742: { if (pedantic) ! 1743: pedwarn ("ANSI C forbids an empty source file"); ! 1744: objc_finish (); ; ! 1745: break;} ! 1746: case 2: ! 1747: #line 222 "objc-parse.y" ! 1748: { objc_finish (); ; ! 1749: break;} ! 1750: case 3: ! 1751: #line 230 "objc-parse.y" ! 1752: {yyval.ttype = NULL_TREE; ; ! 1753: break;} ! 1754: case 5: ! 1755: #line 231 "objc-parse.y" ! 1756: {yyval.ttype = NULL_TREE; ; ! 1757: break;} ! 1758: case 10: ! 1759: #line 239 "objc-parse.y" ! 1760: { if (pedantic) ! 1761: pedwarn ("ANSI C forbids use of `asm' keyword"); ! 1762: if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype); ! 1763: assemble_asm (yyvsp[-2].ttype); ; ! 1764: break;} ! 1765: case 11: ! 1766: #line 247 "objc-parse.y" ! 1767: { if (pedantic) ! 1768: error ("ANSI C forbids data definition with no type or storage class"); ! 1769: else if (!flag_traditional) ! 1770: warning ("data definition has no type or storage class"); ; ! 1771: break;} ! 1772: case 12: ! 1773: #line 252 "objc-parse.y" ! 1774: {; ! 1775: break;} ! 1776: case 13: ! 1777: #line 254 "objc-parse.y" ! 1778: {; ! 1779: break;} ! 1780: case 14: ! 1781: #line 256 "objc-parse.y" ! 1782: { error ("empty declaration"); ; ! 1783: break;} ! 1784: case 15: ! 1785: #line 258 "objc-parse.y" ! 1786: { shadow_tag (yyvsp[-1].ttype); ; ! 1787: break;} ! 1788: case 18: ! 1789: #line 262 "objc-parse.y" ! 1790: { if (pedantic) ! 1791: pedwarn ("ANSI C does not allow extra `;' outside of a function"); ; ! 1792: break;} ! 1793: case 19: ! 1794: #line 268 "objc-parse.y" ! 1795: { if (! start_function (yyvsp[-2].ttype, yyvsp[0].ttype, 0)) ! 1796: YYERROR1; ! 1797: reinit_parse_for_function (); ; ! 1798: break;} ! 1799: case 20: ! 1800: #line 272 "objc-parse.y" ! 1801: { store_parm_decls (); ; ! 1802: break;} ! 1803: case 21: ! 1804: #line 274 "objc-parse.y" ! 1805: { finish_function (0); ; ! 1806: break;} ! 1807: case 22: ! 1808: #line 276 "objc-parse.y" ! 1809: { ; ! 1810: break;} ! 1811: case 23: ! 1812: #line 278 "objc-parse.y" ! 1813: { if (! start_function (yyvsp[-2].ttype, yyvsp[0].ttype, 0)) ! 1814: YYERROR1; ! 1815: reinit_parse_for_function (); ; ! 1816: break;} ! 1817: case 24: ! 1818: #line 282 "objc-parse.y" ! 1819: { store_parm_decls (); ; ! 1820: break;} ! 1821: case 25: ! 1822: #line 284 "objc-parse.y" ! 1823: { finish_function (0); ; ! 1824: break;} ! 1825: case 26: ! 1826: #line 286 "objc-parse.y" ! 1827: { ; ! 1828: break;} ! 1829: case 27: ! 1830: #line 288 "objc-parse.y" ! 1831: { if (! start_function (0, yyvsp[0].ttype, 0)) ! 1832: YYERROR1; ! 1833: reinit_parse_for_function (); ; ! 1834: break;} ! 1835: case 28: ! 1836: #line 292 "objc-parse.y" ! 1837: { store_parm_decls (); ; ! 1838: break;} ! 1839: case 29: ! 1840: #line 294 "objc-parse.y" ! 1841: { finish_function (0); ; ! 1842: break;} ! 1843: case 30: ! 1844: #line 296 "objc-parse.y" ! 1845: { ; ! 1846: break;} ! 1847: case 33: ! 1848: #line 303 "objc-parse.y" ! 1849: { yyval.ttype = CLASS_NAME (yyvsp[0].ttype); ; ! 1850: break;} ! 1851: case 34: ! 1852: #line 307 "objc-parse.y" ! 1853: { yyval.code = ADDR_EXPR; ; ! 1854: break;} ! 1855: case 35: ! 1856: #line 309 "objc-parse.y" ! 1857: { yyval.code = NEGATE_EXPR; ; ! 1858: break;} ! 1859: case 36: ! 1860: #line 311 "objc-parse.y" ! 1861: { yyval.code = CONVERT_EXPR; ; ! 1862: break;} ! 1863: case 37: ! 1864: #line 313 "objc-parse.y" ! 1865: { yyval.code = PREINCREMENT_EXPR; ; ! 1866: break;} ! 1867: case 38: ! 1868: #line 315 "objc-parse.y" ! 1869: { yyval.code = PREDECREMENT_EXPR; ; ! 1870: break;} ! 1871: case 39: ! 1872: #line 317 "objc-parse.y" ! 1873: { yyval.code = BIT_NOT_EXPR; ; ! 1874: break;} ! 1875: case 40: ! 1876: #line 319 "objc-parse.y" ! 1877: { yyval.code = TRUTH_NOT_EXPR; ; ! 1878: break;} ! 1879: case 41: ! 1880: #line 323 "objc-parse.y" ! 1881: { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ; ! 1882: break;} ! 1883: case 42: ! 1884: #line 328 "objc-parse.y" ! 1885: { yyval.ttype = NULL_TREE; ; ! 1886: break;} ! 1887: case 44: ! 1888: #line 334 "objc-parse.y" ! 1889: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; ! 1890: break;} ! 1891: case 45: ! 1892: #line 336 "objc-parse.y" ! 1893: { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; ! 1894: break;} ! 1895: case 47: ! 1896: #line 342 "objc-parse.y" ! 1897: { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ; ! 1898: break;} ! 1899: case 48: ! 1900: #line 345 "objc-parse.y" ! 1901: { yyvsp[0].itype = pedantic; ! 1902: pedantic = 0; ; ! 1903: break;} ! 1904: case 49: ! 1905: #line 348 "objc-parse.y" ! 1906: { yyval.ttype = yyvsp[0].ttype; ! 1907: pedantic = yyvsp[-2].itype; ; ! 1908: break;} ! 1909: case 50: ! 1910: #line 351 "objc-parse.y" ! 1911: { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0); ; ! 1912: break;} ! 1913: case 51: ! 1914: #line 354 "objc-parse.y" ! 1915: { tree label = lookup_label (yyvsp[0].ttype); ! 1916: TREE_USED (label) = 1; ! 1917: yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label); ! 1918: TREE_CONSTANT (yyval.ttype) = 1; ; ! 1919: break;} ! 1920: case 52: ! 1921: #line 373 "objc-parse.y" ! 1922: { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF ! 1923: && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1))) ! 1924: error ("`sizeof' applied to a bit-field"); ! 1925: yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ; ! 1926: break;} ! 1927: case 53: ! 1928: #line 378 "objc-parse.y" ! 1929: { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ; ! 1930: break;} ! 1931: case 54: ! 1932: #line 380 "objc-parse.y" ! 1933: { yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ; ! 1934: break;} ! 1935: case 55: ! 1936: #line 382 "objc-parse.y" ! 1937: { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ; ! 1938: break;} ! 1939: case 57: ! 1940: #line 388 "objc-parse.y" ! 1941: { tree type = groktypename (yyvsp[-2].ttype); ! 1942: yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ; ! 1943: break;} ! 1944: case 58: ! 1945: #line 391 "objc-parse.y" ! 1946: { tree type = groktypename (yyvsp[-5].ttype); ! 1947: if (pedantic) ! 1948: pedwarn ("ANSI C forbids constructor expressions"); ! 1949: yyval.ttype = digest_init (type, build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)), 0, 0, 0); ! 1950: if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0) ! 1951: { ! 1952: int failure = complete_array_type (type, yyval.ttype, 1); ! 1953: if (failure) ! 1954: abort (); ! 1955: } ! 1956: ; ! 1957: break;} ! 1958: case 60: ! 1959: #line 407 "objc-parse.y" ! 1960: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 1961: break;} ! 1962: case 61: ! 1963: #line 409 "objc-parse.y" ! 1964: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 1965: break;} ! 1966: case 62: ! 1967: #line 411 "objc-parse.y" ! 1968: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 1969: break;} ! 1970: case 63: ! 1971: #line 413 "objc-parse.y" ! 1972: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 1973: break;} ! 1974: case 64: ! 1975: #line 415 "objc-parse.y" ! 1976: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 1977: break;} ! 1978: case 65: ! 1979: #line 417 "objc-parse.y" ! 1980: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 1981: break;} ! 1982: case 66: ! 1983: #line 419 "objc-parse.y" ! 1984: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 1985: break;} ! 1986: case 67: ! 1987: #line 421 "objc-parse.y" ! 1988: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 1989: break;} ! 1990: case 68: ! 1991: #line 423 "objc-parse.y" ! 1992: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 1993: break;} ! 1994: case 69: ! 1995: #line 425 "objc-parse.y" ! 1996: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 1997: break;} ! 1998: case 70: ! 1999: #line 427 "objc-parse.y" ! 2000: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 2001: break;} ! 2002: case 71: ! 2003: #line 429 "objc-parse.y" ! 2004: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 2005: break;} ! 2006: case 72: ! 2007: #line 431 "objc-parse.y" ! 2008: { yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 2009: break;} ! 2010: case 73: ! 2011: #line 433 "objc-parse.y" ! 2012: { yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 2013: break;} ! 2014: case 74: ! 2015: #line 435 "objc-parse.y" ! 2016: { yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 2017: break;} ! 2018: case 75: ! 2019: #line 437 "objc-parse.y" ! 2020: { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype); ; ! 2021: break;} ! 2022: case 76: ! 2023: #line 439 "objc-parse.y" ! 2024: { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype); ; ! 2025: break;} ! 2026: case 77: ! 2027: #line 444 "objc-parse.y" ! 2028: { ! 2029: tree context; ! 2030: ! 2031: yyval.ttype = lastiddecl; ! 2032: if (!yyval.ttype || yyval.ttype == error_mark_node) ! 2033: { ! 2034: if (yychar == YYEMPTY) ! 2035: yychar = YYLEX; ! 2036: if (yychar == '(') ! 2037: { ! 2038: if (objc_receiver_context ! 2039: && ! (objc_receiver_context ! 2040: && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super"))) ! 2041: /* we have a message to super */ ! 2042: yyval.ttype = get_super_receiver (); ! 2043: else if (objc_method_context ! 2044: && is_ivar (objc_ivar_chain, yyvsp[0].ttype)) ! 2045: yyval.ttype = build_ivar_reference (yyvsp[0].ttype); ! 2046: else ! 2047: { ! 2048: /* Ordinary implicit function declaration. */ ! 2049: yyval.ttype = implicitly_declare (yyvsp[0].ttype); ! 2050: assemble_external (yyval.ttype); ! 2051: TREE_USED (yyval.ttype) = 1; ! 2052: } ! 2053: } ! 2054: else if (current_function_decl == 0) ! 2055: { ! 2056: error ("`%s' undeclared, outside of functions", ! 2057: IDENTIFIER_POINTER (yyvsp[0].ttype)); ! 2058: yyval.ttype = error_mark_node; ! 2059: } ! 2060: else ! 2061: { ! 2062: if (objc_receiver_context ! 2063: && ! (objc_receiver_context ! 2064: && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super"))) ! 2065: /* we have a message to super */ ! 2066: yyval.ttype = get_super_receiver (); ! 2067: else if (objc_method_context ! 2068: && is_ivar (objc_ivar_chain, yyvsp[0].ttype)) ! 2069: yyval.ttype = build_ivar_reference (yyvsp[0].ttype); ! 2070: else ! 2071: { ! 2072: if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node ! 2073: || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl) ! 2074: { ! 2075: error ("`%s' undeclared (first use this function)", ! 2076: IDENTIFIER_POINTER (yyvsp[0].ttype)); ! 2077: ! 2078: if (! undeclared_variable_notice) ! 2079: { ! 2080: error ("(Each undeclared identifier is reported only once"); ! 2081: error ("for each function it appears in.)"); ! 2082: undeclared_variable_notice = 1; ! 2083: } ! 2084: } ! 2085: yyval.ttype = error_mark_node; ! 2086: /* Prevent repeated error messages. */ ! 2087: IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node; ! 2088: IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl; ! 2089: } ! 2090: } ! 2091: } ! 2092: else ! 2093: { ! 2094: if (! TREE_USED (yyval.ttype)) ! 2095: { ! 2096: if (TREE_EXTERNAL (yyval.ttype)) ! 2097: assemble_external (yyval.ttype); ! 2098: TREE_USED (yyval.ttype) = 1; ! 2099: } ! 2100: /* we have a definition - still check if iVariable */ ! 2101: ! 2102: if (!objc_receiver_context ! 2103: || (objc_receiver_context ! 2104: && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super"))) ! 2105: { ! 2106: if (objc_method_context ! 2107: && is_ivar (objc_ivar_chain, yyvsp[0].ttype)) ! 2108: { ! 2109: if (IDENTIFIER_LOCAL_VALUE (yyvsp[0].ttype)) ! 2110: warning ("local declaration of `%s' hides instance variable", ! 2111: IDENTIFIER_POINTER (yyvsp[0].ttype)); ! 2112: else ! 2113: yyval.ttype = build_ivar_reference (yyvsp[0].ttype); ! 2114: } ! 2115: } ! 2116: else /* we have a message to super */ ! 2117: yyval.ttype = get_super_receiver (); ! 2118: } ! 2119: ! 2120: if (TREE_CODE (yyval.ttype) == CONST_DECL) ! 2121: yyval.ttype = DECL_INITIAL (yyval.ttype); ! 2122: ; ! 2123: break;} ! 2124: case 79: ! 2125: #line 541 "objc-parse.y" ! 2126: { yyval.ttype = combine_strings (yyvsp[0].ttype); ; ! 2127: break;} ! 2128: case 80: ! 2129: #line 543 "objc-parse.y" ! 2130: { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)); ! 2131: if (class == 'e' || class == '1' ! 2132: || class == '2' || class == '<') ! 2133: C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK); ! 2134: yyval.ttype = yyvsp[-1].ttype; ; ! 2135: break;} ! 2136: case 81: ! 2137: #line 549 "objc-parse.y" ! 2138: { yyval.ttype = error_mark_node; ; ! 2139: break;} ! 2140: case 82: ! 2141: #line 551 "objc-parse.y" ! 2142: { if (current_function_decl == 0) ! 2143: { ! 2144: error ("braced-group within expression allowed only inside a function"); ! 2145: YYERROR; ! 2146: } ! 2147: /* We must force a BLOCK for this level ! 2148: so that, if it is not expanded later, ! 2149: there is a way to turn off the entire subtree of blocks ! 2150: that are contained in it. */ ! 2151: keep_next_level (); ! 2152: push_label_level (); ! 2153: yyval.ttype = expand_start_stmt_expr (); ; ! 2154: break;} ! 2155: case 83: ! 2156: #line 564 "objc-parse.y" ! 2157: { tree rtl_exp; ! 2158: if (pedantic) ! 2159: pedwarn ("ANSI C forbids braced-groups within expressions"); ! 2160: pop_label_level (); ! 2161: rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype); ! 2162: /* The statements have side effects, so the group does. */ ! 2163: TREE_SIDE_EFFECTS (rtl_exp) = 1; ! 2164: ! 2165: /* Make a BIND_EXPR for the BLOCK already made. */ ! 2166: yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp), ! 2167: NULL_TREE, rtl_exp, yyvsp[-1].ttype); ! 2168: ; ! 2169: break;} ! 2170: case 84: ! 2171: #line 577 "objc-parse.y" ! 2172: { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ; ! 2173: break;} ! 2174: case 85: ! 2175: #line 579 "objc-parse.y" ! 2176: { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ; ! 2177: break;} ! 2178: case 86: ! 2179: #line 581 "objc-parse.y" ! 2180: { ! 2181: if (doing_objc_thang) ! 2182: { ! 2183: if (is_public (yyvsp[-2].ttype, yyvsp[0].ttype)) ! 2184: yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype); ! 2185: else ! 2186: yyval.ttype = error_mark_node; ! 2187: } ! 2188: else ! 2189: yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype); ! 2190: ; ! 2191: break;} ! 2192: case 87: ! 2193: #line 593 "objc-parse.y" ! 2194: { ! 2195: tree anExpr = build_indirect_ref (yyvsp[-2].ttype, "->"); ! 2196: ! 2197: if (doing_objc_thang) ! 2198: { ! 2199: if (is_public (anExpr, yyvsp[0].ttype)) ! 2200: yyval.ttype = build_component_ref (anExpr, yyvsp[0].ttype); ! 2201: else ! 2202: yyval.ttype = error_mark_node; ! 2203: } ! 2204: else ! 2205: yyval.ttype = build_component_ref (anExpr, yyvsp[0].ttype); ! 2206: ; ! 2207: break;} ! 2208: case 88: ! 2209: #line 607 "objc-parse.y" ! 2210: { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ; ! 2211: break;} ! 2212: case 89: ! 2213: #line 609 "objc-parse.y" ! 2214: { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ; ! 2215: break;} ! 2216: case 90: ! 2217: #line 611 "objc-parse.y" ! 2218: { yyval.ttype = build_message_expr (yyvsp[0].ttype); ; ! 2219: break;} ! 2220: case 91: ! 2221: #line 613 "objc-parse.y" ! 2222: { yyval.ttype = build_selector_expr (yyvsp[0].ttype); ; ! 2223: break;} ! 2224: case 92: ! 2225: #line 615 "objc-parse.y" ! 2226: { yyval.ttype = build_encode_expr (yyvsp[0].ttype); ; ! 2227: break;} ! 2228: case 94: ! 2229: #line 622 "objc-parse.y" ! 2230: { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 2231: break;} ! 2232: case 97: ! 2233: #line 630 "objc-parse.y" ! 2234: { c_mark_varargs (); ! 2235: if (pedantic) ! 2236: pedwarn ("ANSI C does not permit use of `varargs.h'"); ; ! 2237: break;} ! 2238: case 98: ! 2239: #line 641 "objc-parse.y" ! 2240: { ; ! 2241: break;} ! 2242: case 103: ! 2243: #line 656 "objc-parse.y" ! 2244: { yyval.itype = suspend_momentary (); ! 2245: pending_xref_error (); ! 2246: declspec_stack = tree_cons (0, current_declspecs, ! 2247: declspec_stack); ! 2248: current_declspecs = yyvsp[0].ttype; ; ! 2249: break;} ! 2250: case 104: ! 2251: #line 665 "objc-parse.y" ! 2252: { current_declspecs = TREE_VALUE (declspec_stack); ! 2253: declspec_stack = TREE_CHAIN (declspec_stack); ! 2254: resume_momentary (yyvsp[-2].itype); ; ! 2255: break;} ! 2256: case 105: ! 2257: #line 669 "objc-parse.y" ! 2258: { current_declspecs = TREE_VALUE (declspec_stack); ! 2259: declspec_stack = TREE_CHAIN (declspec_stack); ! 2260: resume_momentary (yyvsp[-2].itype); ; ! 2261: break;} ! 2262: case 106: ! 2263: #line 673 "objc-parse.y" ! 2264: { current_declspecs = TREE_VALUE (declspec_stack); ! 2265: declspec_stack = TREE_CHAIN (declspec_stack); ! 2266: resume_momentary (yyvsp[-1].itype); ; ! 2267: break;} ! 2268: case 107: ! 2269: #line 677 "objc-parse.y" ! 2270: { current_declspecs = TREE_VALUE (declspec_stack); ! 2271: declspec_stack = TREE_CHAIN (declspec_stack); ! 2272: resume_momentary (yyvsp[-1].itype); ; ! 2273: break;} ! 2274: case 108: ! 2275: #line 681 "objc-parse.y" ! 2276: { shadow_tag (yyvsp[-1].ttype); ; ! 2277: break;} ! 2278: case 109: ! 2279: #line 683 "objc-parse.y" ! 2280: { pedwarn ("empty declaration"); ; ! 2281: break;} ! 2282: case 110: ! 2283: #line 692 "objc-parse.y" ! 2284: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 2285: break;} ! 2286: case 111: ! 2287: #line 694 "objc-parse.y" ! 2288: { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; ! 2289: break;} ! 2290: case 112: ! 2291: #line 698 "objc-parse.y" ! 2292: { yyval.ttype = NULL_TREE; ; ! 2293: break;} ! 2294: case 113: ! 2295: #line 700 "objc-parse.y" ! 2296: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; ! 2297: break;} ! 2298: case 114: ! 2299: #line 702 "objc-parse.y" ! 2300: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; ! 2301: break;} ! 2302: case 115: ! 2303: #line 711 "objc-parse.y" ! 2304: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; ! 2305: break;} ! 2306: case 116: ! 2307: #line 713 "objc-parse.y" ! 2308: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; ! 2309: break;} ! 2310: case 117: ! 2311: #line 715 "objc-parse.y" ! 2312: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; ! 2313: break;} ! 2314: case 118: ! 2315: #line 717 "objc-parse.y" ! 2316: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; ! 2317: break;} ! 2318: case 119: ! 2319: #line 727 "objc-parse.y" ! 2320: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 2321: break;} ! 2322: case 120: ! 2323: #line 729 "objc-parse.y" ! 2324: { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; ! 2325: break;} ! 2326: case 121: ! 2327: #line 733 "objc-parse.y" ! 2328: { yyval.ttype = NULL_TREE; ; ! 2329: break;} ! 2330: case 122: ! 2331: #line 735 "objc-parse.y" ! 2332: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; ! 2333: break;} ! 2334: case 126: ! 2335: #line 746 "objc-parse.y" ! 2336: { yyval.ttype = get_static_reference (yyvsp[0].ttype); ; ! 2337: break;} ! 2338: case 127: ! 2339: #line 748 "objc-parse.y" ! 2340: { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ! 2341: if (pedantic) ! 2342: pedwarn ("ANSI C forbids `typeof'"); ; ! 2343: break;} ! 2344: case 128: ! 2345: #line 752 "objc-parse.y" ! 2346: { yyval.ttype = groktypename (yyvsp[-1].ttype); ! 2347: if (pedantic) ! 2348: pedwarn ("ANSI C forbids `typeof'"); ; ! 2349: break;} ! 2350: case 136: ! 2351: #line 776 "objc-parse.y" ! 2352: { yyval.ttype = NULL_TREE; ; ! 2353: break;} ! 2354: case 137: ! 2355: #line 778 "objc-parse.y" ! 2356: { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); ! 2357: yyval.ttype = yyvsp[-1].ttype; ! 2358: if (pedantic) ! 2359: pedwarn ("ANSI C forbids use of `asm' keyword"); ! 2360: ; ! 2361: break;} ! 2362: case 138: ! 2363: #line 787 "objc-parse.y" ! 2364: { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1); ; ! 2365: break;} ! 2366: case 139: ! 2367: #line 790 "objc-parse.y" ! 2368: { decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype); ! 2369: finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; ! 2370: break;} ! 2371: case 140: ! 2372: #line 793 "objc-parse.y" ! 2373: { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0); ! 2374: decl_attributes (d, yyvsp[0].ttype); ! 2375: finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; ! 2376: break;} ! 2377: case 141: ! 2378: #line 800 "objc-parse.y" ! 2379: { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1); ; ! 2380: break;} ! 2381: case 142: ! 2382: #line 803 "objc-parse.y" ! 2383: { decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype); ! 2384: finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; ! 2385: break;} ! 2386: case 143: ! 2387: #line 806 "objc-parse.y" ! 2388: { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0); ! 2389: decl_attributes (d, yyvsp[0].ttype); ! 2390: finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; ! 2391: break;} ! 2392: case 144: ! 2393: #line 814 "objc-parse.y" ! 2394: { yyval.ttype = NULL_TREE; ; ! 2395: break;} ! 2396: case 145: ! 2397: #line 816 "objc-parse.y" ! 2398: { yyval.ttype = yyvsp[-2].ttype; ; ! 2399: break;} ! 2400: case 146: ! 2401: #line 821 "objc-parse.y" ! 2402: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; ! 2403: break;} ! 2404: case 147: ! 2405: #line 823 "objc-parse.y" ! 2406: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ; ! 2407: break;} ! 2408: case 148: ! 2409: #line 828 "objc-parse.y" ! 2410: { warning ("`%s' attribute directive ignored", ! 2411: IDENTIFIER_POINTER (yyvsp[0].ttype)); ! 2412: yyval.ttype = yyvsp[0].ttype; ; ! 2413: break;} ! 2414: case 149: ! 2415: #line 832 "objc-parse.y" ! 2416: { /* if not "aligned(n)", then issue warning */ ! 2417: if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0 ! 2418: || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST) ! 2419: { ! 2420: warning ("`%s' attribute directive ignored", ! 2421: IDENTIFIER_POINTER (yyvsp[-3].ttype)); ! 2422: yyval.ttype = yyvsp[-3].ttype; ! 2423: } ! 2424: else ! 2425: yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype); ; ! 2426: break;} ! 2427: case 150: ! 2428: #line 843 "objc-parse.y" ! 2429: { /* if not "format(...)", then issue warning */ ! 2430: if (strcmp (IDENTIFIER_POINTER (yyvsp[-7].ttype), "format") != 0 ! 2431: || TREE_CODE (yyvsp[-3].ttype) != INTEGER_CST ! 2432: || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST) ! 2433: { ! 2434: warning ("`%s' attribute directive ignored", ! 2435: IDENTIFIER_POINTER (yyvsp[-7].ttype)); ! 2436: yyval.ttype = yyvsp[-7].ttype; ! 2437: } ! 2438: else ! 2439: yyval.ttype = tree_cons (yyvsp[-7].ttype, tree_cons (yyvsp[-5].ttype, tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype))); ; ! 2440: break;} ! 2441: case 152: ! 2442: #line 859 "objc-parse.y" ! 2443: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE); ! 2444: if (pedantic) ! 2445: pedwarn ("ANSI C forbids empty initializer braces"); ; ! 2446: break;} ! 2447: case 153: ! 2448: #line 863 "objc-parse.y" ! 2449: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype)); ; ! 2450: break;} ! 2451: case 154: ! 2452: #line 865 "objc-parse.y" ! 2453: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); ; ! 2454: break;} ! 2455: case 155: ! 2456: #line 867 "objc-parse.y" ! 2457: { yyval.ttype = NULL_TREE; ; ! 2458: break;} ! 2459: case 156: ! 2460: #line 874 "objc-parse.y" ! 2461: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; ! 2462: break;} ! 2463: case 157: ! 2464: #line 876 "objc-parse.y" ! 2465: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ; ! 2466: break;} ! 2467: case 158: ! 2468: #line 879 "objc-parse.y" ! 2469: { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 2470: break;} ! 2471: case 159: ! 2472: #line 881 "objc-parse.y" ! 2473: { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-5].ttype); ; ! 2474: break;} ! 2475: case 160: ! 2476: #line 883 "objc-parse.y" ! 2477: { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 2478: break;} ! 2479: case 161: ! 2480: #line 885 "objc-parse.y" ! 2481: { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; ! 2482: break;} ! 2483: case 162: ! 2484: #line 890 "objc-parse.y" ! 2485: { push_c_function_context (); ! 2486: if (! start_function (current_declspecs, yyvsp[0].ttype, 1)) ! 2487: { ! 2488: pop_c_function_context (); ! 2489: YYERROR1; ! 2490: } ! 2491: reinit_parse_for_function (); ! 2492: store_parm_decls (); ; ! 2493: break;} ! 2494: case 163: ! 2495: #line 905 "objc-parse.y" ! 2496: { finish_function (1); ! 2497: pop_c_function_context (); ; ! 2498: break;} ! 2499: case 164: ! 2500: #line 911 "objc-parse.y" ! 2501: { push_c_function_context (); ! 2502: if (! start_function (current_declspecs, yyvsp[0].ttype, 1)) ! 2503: { ! 2504: pop_c_function_context (); ! 2505: YYERROR1; ! 2506: } ! 2507: reinit_parse_for_function (); ! 2508: store_parm_decls (); ; ! 2509: break;} ! 2510: case 165: ! 2511: #line 926 "objc-parse.y" ! 2512: { finish_function (1); ! 2513: pop_c_function_context (); ; ! 2514: break;} ! 2515: case 168: ! 2516: #line 942 "objc-parse.y" ! 2517: { yyval.ttype = yyvsp[-1].ttype; ; ! 2518: break;} ! 2519: case 169: ! 2520: #line 944 "objc-parse.y" ! 2521: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; ! 2522: break;} ! 2523: case 170: ! 2524: #line 949 "objc-parse.y" ! 2525: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; ! 2526: break;} ! 2527: case 171: ! 2528: #line 951 "objc-parse.y" ! 2529: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; ! 2530: break;} ! 2531: case 172: ! 2532: #line 953 "objc-parse.y" ! 2533: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 2534: break;} ! 2535: case 174: ! 2536: #line 964 "objc-parse.y" ! 2537: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; ! 2538: break;} ! 2539: case 175: ! 2540: #line 969 "objc-parse.y" ! 2541: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; ! 2542: break;} ! 2543: case 176: ! 2544: #line 971 "objc-parse.y" ! 2545: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; ! 2546: break;} ! 2547: case 177: ! 2548: #line 973 "objc-parse.y" ! 2549: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 2550: break;} ! 2551: case 179: ! 2552: #line 982 "objc-parse.y" ! 2553: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; ! 2554: break;} ! 2555: case 180: ! 2556: #line 987 "objc-parse.y" ! 2557: { yyval.ttype = yyvsp[-1].ttype; ; ! 2558: break;} ! 2559: case 181: ! 2560: #line 989 "objc-parse.y" ! 2561: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 2562: break;} ! 2563: case 182: ! 2564: #line 991 "objc-parse.y" ! 2565: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; ! 2566: break;} ! 2567: case 183: ! 2568: #line 993 "objc-parse.y" ! 2569: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; ! 2570: break;} ! 2571: case 185: ! 2572: #line 999 "objc-parse.y" ! 2573: { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype); ! 2574: /* Start scope of tag before parsing components. */ ! 2575: ; ! 2576: break;} ! 2577: case 186: ! 2578: #line 1003 "objc-parse.y" ! 2579: { yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype); ! 2580: /* Really define the structure. */ ! 2581: ; ! 2582: break;} ! 2583: case 187: ! 2584: #line 1007 "objc-parse.y" ! 2585: { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE), ! 2586: yyvsp[-1].ttype); ; ! 2587: break;} ! 2588: case 188: ! 2589: #line 1010 "objc-parse.y" ! 2590: { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ; ! 2591: break;} ! 2592: case 189: ! 2593: #line 1012 "objc-parse.y" ! 2594: { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ; ! 2595: break;} ! 2596: case 190: ! 2597: #line 1014 "objc-parse.y" ! 2598: { yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype); ; ! 2599: break;} ! 2600: case 191: ! 2601: #line 1016 "objc-parse.y" ! 2602: { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE), ! 2603: yyvsp[-1].ttype); ; ! 2604: break;} ! 2605: case 192: ! 2606: #line 1019 "objc-parse.y" ! 2607: { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ; ! 2608: break;} ! 2609: case 193: ! 2610: #line 1021 "objc-parse.y" ! 2611: { yyvsp[0].itype = suspend_momentary (); ! 2612: yyval.ttype = start_enum (yyvsp[-1].ttype); ; ! 2613: break;} ! 2614: case 194: ! 2615: #line 1024 "objc-parse.y" ! 2616: { yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype)); ! 2617: resume_momentary (yyvsp[-4].itype); ; ! 2618: break;} ! 2619: case 195: ! 2620: #line 1027 "objc-parse.y" ! 2621: { yyvsp[0].itype = suspend_momentary (); ! 2622: yyval.ttype = start_enum (NULL_TREE); ; ! 2623: break;} ! 2624: case 196: ! 2625: #line 1030 "objc-parse.y" ! 2626: { yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype)); ! 2627: resume_momentary (yyvsp[-4].itype); ; ! 2628: break;} ! 2629: case 197: ! 2630: #line 1033 "objc-parse.y" ! 2631: { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ; ! 2632: break;} ! 2633: case 201: ! 2634: #line 1044 "objc-parse.y" ! 2635: { if (pedantic) pedwarn ("comma at end of enumerator list"); ; ! 2636: break;} ! 2637: case 202: ! 2638: #line 1049 "objc-parse.y" ! 2639: { yyval.ttype = yyvsp[0].ttype; ; ! 2640: break;} ! 2641: case 203: ! 2642: #line 1051 "objc-parse.y" ! 2643: { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ! 2644: warning ("no semicolon at end of struct or union"); ; ! 2645: break;} ! 2646: case 204: ! 2647: #line 1056 "objc-parse.y" ! 2648: { yyval.ttype = NULL_TREE; ; ! 2649: break;} ! 2650: case 205: ! 2651: #line 1058 "objc-parse.y" ! 2652: { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ; ! 2653: break;} ! 2654: case 206: ! 2655: #line 1060 "objc-parse.y" ! 2656: { if (pedantic) ! 2657: warning ("extra semicolon in struct or union specified"); ; ! 2658: break;} ! 2659: case 207: ! 2660: #line 1064 "objc-parse.y" ! 2661: { yyval.ttype = get_class_ivars (yyvsp[-1].ttype); ; ! 2662: break;} ! 2663: case 208: ! 2664: #line 1078 "objc-parse.y" ! 2665: { yyval.ttype = yyvsp[0].ttype; ! 2666: current_declspecs = TREE_VALUE (declspec_stack); ! 2667: declspec_stack = TREE_CHAIN (declspec_stack); ! 2668: resume_momentary (yyvsp[-1].itype); ; ! 2669: break;} ! 2670: case 209: ! 2671: #line 1083 "objc-parse.y" ! 2672: { if (pedantic) ! 2673: pedwarn ("ANSI C forbids member declarations with no members"); ! 2674: shadow_tag(yyvsp[0].ttype); ! 2675: yyval.ttype = NULL_TREE; ; ! 2676: break;} ! 2677: case 210: ! 2678: #line 1088 "objc-parse.y" ! 2679: { yyval.ttype = yyvsp[0].ttype; ! 2680: current_declspecs = TREE_VALUE (declspec_stack); ! 2681: declspec_stack = TREE_CHAIN (declspec_stack); ! 2682: resume_momentary (yyvsp[-1].itype); ; ! 2683: break;} ! 2684: case 211: ! 2685: #line 1093 "objc-parse.y" ! 2686: { if (pedantic) ! 2687: pedwarn ("ANSI C forbids member declarations with no members"); ! 2688: shadow_tag(yyvsp[0].ttype); ! 2689: yyval.ttype = NULL_TREE; ; ! 2690: break;} ! 2691: case 212: ! 2692: #line 1098 "objc-parse.y" ! 2693: { yyval.ttype = NULL_TREE; ; ! 2694: break;} ! 2695: case 214: ! 2696: #line 1104 "objc-parse.y" ! 2697: { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 2698: break;} ! 2699: case 215: ! 2700: #line 1109 "objc-parse.y" ! 2701: { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE); ! 2702: decl_attributes (yyval.ttype, yyvsp[0].ttype); ; ! 2703: break;} ! 2704: case 216: ! 2705: #line 1113 "objc-parse.y" ! 2706: { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype); ! 2707: decl_attributes (yyval.ttype, yyvsp[0].ttype); ; ! 2708: break;} ! 2709: case 217: ! 2710: #line 1116 "objc-parse.y" ! 2711: { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, NULL_TREE, current_declspecs, yyvsp[0].ttype); ; ! 2712: break;} ! 2713: case 219: ! 2714: #line 1127 "objc-parse.y" ! 2715: { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ; ! 2716: break;} ! 2717: case 220: ! 2718: #line 1133 "objc-parse.y" ! 2719: { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ; ! 2720: break;} ! 2721: case 221: ! 2722: #line 1135 "objc-parse.y" ! 2723: { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 2724: break;} ! 2725: case 222: ! 2726: #line 1140 "objc-parse.y" ! 2727: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 2728: break;} ! 2729: case 223: ! 2730: #line 1142 "objc-parse.y" ! 2731: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 2732: break;} ! 2733: case 224: ! 2734: #line 1147 "objc-parse.y" ! 2735: { yyval.ttype = NULL_TREE; ; ! 2736: break;} ! 2737: case 226: ! 2738: #line 1153 "objc-parse.y" ! 2739: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; ! 2740: break;} ! 2741: case 227: ! 2742: #line 1155 "objc-parse.y" ! 2743: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; ! 2744: break;} ! 2745: case 228: ! 2746: #line 1160 "objc-parse.y" ! 2747: { yyval.ttype = NULL_TREE; ; ! 2748: break;} ! 2749: case 229: ! 2750: #line 1162 "objc-parse.y" ! 2751: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; ! 2752: break;} ! 2753: case 230: ! 2754: #line 1167 "objc-parse.y" ! 2755: { yyval.ttype = yyvsp[-1].ttype; ; ! 2756: break;} ! 2757: case 231: ! 2758: #line 1170 "objc-parse.y" ! 2759: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 2760: break;} ! 2761: case 232: ! 2762: #line 1172 "objc-parse.y" ! 2763: { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; ! 2764: break;} ! 2765: case 233: ! 2766: #line 1174 "objc-parse.y" ! 2767: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; ! 2768: break;} ! 2769: case 234: ! 2770: #line 1176 "objc-parse.y" ! 2771: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; ! 2772: break;} ! 2773: case 235: ! 2774: #line 1178 "objc-parse.y" ! 2775: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; ! 2776: break;} ! 2777: case 236: ! 2778: #line 1180 "objc-parse.y" ! 2779: { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; ! 2780: break;} ! 2781: case 237: ! 2782: #line 1182 "objc-parse.y" ! 2783: { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; ! 2784: break;} ! 2785: case 238: ! 2786: #line 1184 "objc-parse.y" ! 2787: { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ; ! 2788: break;} ! 2789: case 245: ! 2790: #line 1206 "objc-parse.y" ! 2791: { emit_line_note (input_filename, lineno); ! 2792: pushlevel (0); ! 2793: clear_last_expr (); ! 2794: push_momentary (); ! 2795: expand_start_bindings (0); ! 2796: if (objc_method_context) ! 2797: add_objc_decls (); ; ! 2798: break;} ! 2799: case 247: ! 2800: #line 1220 "objc-parse.y" ! 2801: { if (pedantic) ! 2802: pedwarn ("ANSI C forbids label declarations"); ; ! 2803: break;} ! 2804: case 250: ! 2805: #line 1231 "objc-parse.y" ! 2806: { tree link; ! 2807: for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) ! 2808: { ! 2809: tree label = shadow_label (TREE_VALUE (link)); ! 2810: C_DECLARED_LABEL_FLAG (label) = 1; ! 2811: declare_nonlocal_label (label); ! 2812: } ! 2813: ; ! 2814: break;} ! 2815: case 251: ! 2816: #line 1248 "objc-parse.y" ! 2817: {; ! 2818: break;} ! 2819: case 253: ! 2820: #line 1253 "objc-parse.y" ! 2821: { yyval.ttype = convert (void_type_node, integer_zero_node); ; ! 2822: break;} ! 2823: case 254: ! 2824: #line 1255 "objc-parse.y" ! 2825: { emit_line_note (input_filename, lineno); ! 2826: expand_end_bindings (getdecls (), 1, 0); ! 2827: yyval.ttype = poplevel (1, 1, 0); ! 2828: pop_momentary (); ; ! 2829: break;} ! 2830: case 255: ! 2831: #line 1260 "objc-parse.y" ! 2832: { emit_line_note (input_filename, lineno); ! 2833: expand_end_bindings (getdecls (), kept_level_p (), 0); ! 2834: yyval.ttype = poplevel (kept_level_p (), 0, 0); ! 2835: pop_momentary (); ; ! 2836: break;} ! 2837: case 256: ! 2838: #line 1265 "objc-parse.y" ! 2839: { emit_line_note (input_filename, lineno); ! 2840: expand_end_bindings (getdecls (), kept_level_p (), 0); ! 2841: yyval.ttype = poplevel (kept_level_p (), 0, 0); ! 2842: pop_momentary (); ; ! 2843: break;} ! 2844: case 257: ! 2845: #line 1274 "objc-parse.y" ! 2846: { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); ! 2847: expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0); ! 2848: yyvsp[-3].itype = stmt_count; ! 2849: if_stmt_file = yyvsp[-5].filename; ! 2850: if_stmt_line = yyvsp[-4].lineno; ! 2851: position_after_white_space (); ; ! 2852: break;} ! 2853: case 259: ! 2854: #line 1284 "objc-parse.y" ! 2855: { yyval.filename = input_filename; ; ! 2856: break;} ! 2857: case 260: ! 2858: #line 1288 "objc-parse.y" ! 2859: { yyval.lineno = lineno; ; ! 2860: break;} ! 2861: case 261: ! 2862: #line 1293 "objc-parse.y" ! 2863: { ; ! 2864: break;} ! 2865: case 262: ! 2866: #line 1298 "objc-parse.y" ! 2867: { stmt_count++; ; ! 2868: break;} ! 2869: case 263: ! 2870: #line 1300 "objc-parse.y" ! 2871: { stmt_count++; ! 2872: emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); ! 2873: c_expand_expr_stmt (yyvsp[-1].ttype); ! 2874: clear_momentary (); ; ! 2875: break;} ! 2876: case 264: ! 2877: #line 1305 "objc-parse.y" ! 2878: { expand_start_else (); ! 2879: yyvsp[-1].itype = stmt_count; ! 2880: position_after_white_space (); ; ! 2881: break;} ! 2882: case 265: ! 2883: #line 1309 "objc-parse.y" ! 2884: { expand_end_cond (); ! 2885: if (extra_warnings && stmt_count == yyvsp[-3].itype) ! 2886: warning ("empty body in an else-statement"); ; ! 2887: break;} ! 2888: case 266: ! 2889: #line 1313 "objc-parse.y" ! 2890: { expand_end_cond (); ! 2891: if (extra_warnings && stmt_count == yyvsp[0].itype) ! 2892: warning_with_file_and_line (if_stmt_file, if_stmt_line, ! 2893: "empty body in an if-statement"); ; ! 2894: break;} ! 2895: case 267: ! 2896: #line 1318 "objc-parse.y" ! 2897: { emit_nop (); ! 2898: stmt_count++; ! 2899: emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); ! 2900: expand_start_loop (1); ; ! 2901: break;} ! 2902: case 268: ! 2903: #line 1323 "objc-parse.y" ! 2904: { emit_line_note (input_filename, lineno); ! 2905: expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ! 2906: position_after_white_space (); ; ! 2907: break;} ! 2908: case 269: ! 2909: #line 1327 "objc-parse.y" ! 2910: { expand_end_loop (); ; ! 2911: break;} ! 2912: case 270: ! 2913: #line 1329 "objc-parse.y" ! 2914: { emit_nop (); ! 2915: stmt_count++; ! 2916: emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); ! 2917: expand_start_loop_continue_elsewhere (1); ! 2918: position_after_white_space (); ; ! 2919: break;} ! 2920: case 271: ! 2921: #line 1335 "objc-parse.y" ! 2922: { expand_loop_continue_here (); ; ! 2923: break;} ! 2924: case 272: ! 2925: #line 1337 "objc-parse.y" ! 2926: { emit_line_note (input_filename, lineno); ! 2927: expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-2].ttype)); ! 2928: expand_end_loop (); ! 2929: clear_momentary (); ; ! 2930: break;} ! 2931: case 273: ! 2932: #line 1343 "objc-parse.y" ! 2933: { emit_nop (); ! 2934: stmt_count++; ! 2935: emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); ! 2936: if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype); ! 2937: expand_start_loop_continue_elsewhere (1); ; ! 2938: break;} ! 2939: case 274: ! 2940: #line 1349 "objc-parse.y" ! 2941: { emit_line_note (input_filename, lineno); ! 2942: if (yyvsp[-1].ttype) ! 2943: expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ; ! 2944: break;} ! 2945: case 275: ! 2946: #line 1355 "objc-parse.y" ! 2947: { push_momentary (); ! 2948: position_after_white_space (); ; ! 2949: break;} ! 2950: case 276: ! 2951: #line 1358 "objc-parse.y" ! 2952: { emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno); ! 2953: expand_loop_continue_here (); ! 2954: if (yyvsp[-3].ttype) ! 2955: c_expand_expr_stmt (yyvsp[-3].ttype); ! 2956: pop_momentary (); ! 2957: expand_end_loop (); ; ! 2958: break;} ! 2959: case 277: ! 2960: #line 1365 "objc-parse.y" ! 2961: { stmt_count++; ! 2962: emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); ! 2963: c_expand_start_case (yyvsp[-1].ttype); ! 2964: /* Don't let the tree nodes for $3 be discarded by ! 2965: clear_momentary during the parsing of the next stmt. */ ! 2966: push_momentary (); ! 2967: position_after_white_space (); ; ! 2968: break;} ! 2969: case 278: ! 2970: #line 1373 "objc-parse.y" ! 2971: { expand_end_case (yyvsp[-3].ttype); ! 2972: pop_momentary (); ; ! 2973: break;} ! 2974: case 279: ! 2975: #line 1376 "objc-parse.y" ! 2976: { register tree value = check_case_value (yyvsp[-1].ttype); ! 2977: register tree label ! 2978: = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE); ! 2979: ! 2980: stmt_count++; ! 2981: ! 2982: if (value != error_mark_node) ! 2983: { ! 2984: tree duplicate; ! 2985: int success = pushcase (value, label, &duplicate); ! 2986: if (success == 1) ! 2987: error ("case label not within a switch statement"); ! 2988: else if (success == 2) ! 2989: { ! 2990: error ("duplicate case value"); ! 2991: error_with_decl (duplicate, "this is the first entry for that value"); ! 2992: } ! 2993: else if (success == 3) ! 2994: warning ("case value out of range"); ! 2995: else if (success == 5) ! 2996: error ("case label within scope of cleanup or variable array"); ! 2997: } ! 2998: position_after_white_space (); ; ! 2999: break;} ! 3000: case 281: ! 3001: #line 1401 "objc-parse.y" ! 3002: { register tree value1 = check_case_value (yyvsp[-3].ttype); ! 3003: register tree value2 = check_case_value (yyvsp[-1].ttype); ! 3004: register tree label ! 3005: = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE); ! 3006: ! 3007: stmt_count++; ! 3008: ! 3009: if (value1 != error_mark_node && value2 != error_mark_node) ! 3010: { ! 3011: tree duplicate; ! 3012: int success = pushcase_range (value1, value2, label, ! 3013: &duplicate); ! 3014: if (success == 1) ! 3015: error ("case label not within a switch statement"); ! 3016: else if (success == 2) ! 3017: { ! 3018: error ("duplicate case value"); ! 3019: error_with_decl (duplicate, "this is the first entry overlapping that value"); ! 3020: } ! 3021: else if (success == 3) ! 3022: warning ("case value out of range"); ! 3023: else if (success == 4) ! 3024: warning ("empty case range"); ! 3025: else if (success == 5) ! 3026: error ("case label within scope of cleanup or variable array"); ! 3027: } ! 3028: position_after_white_space (); ; ! 3029: break;} ! 3030: case 283: ! 3031: #line 1430 "objc-parse.y" ! 3032: { ! 3033: tree duplicate; ! 3034: register tree label ! 3035: = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE); ! 3036: int success = pushcase (NULL_TREE, label, &duplicate); ! 3037: stmt_count++; ! 3038: if (success == 1) ! 3039: error ("default label not within a switch statement"); ! 3040: else if (success == 2) ! 3041: { ! 3042: error ("multiple default labels in one switch"); ! 3043: error_with_decl (duplicate, "this is the first default albel"); ! 3044: } ! 3045: position_after_white_space (); ; ! 3046: break;} ! 3047: case 285: ! 3048: #line 1446 "objc-parse.y" ! 3049: { stmt_count++; ! 3050: emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); ! 3051: if ( ! expand_exit_something ()) ! 3052: error ("break statement not within loop or switch"); ; ! 3053: break;} ! 3054: case 286: ! 3055: #line 1451 "objc-parse.y" ! 3056: { stmt_count++; ! 3057: emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); ! 3058: if (! expand_continue_loop (0)) ! 3059: error ("continue statement not within a loop"); ; ! 3060: break;} ! 3061: case 287: ! 3062: #line 1456 "objc-parse.y" ! 3063: { stmt_count++; ! 3064: emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); ! 3065: c_expand_return (NULL_TREE); ; ! 3066: break;} ! 3067: case 288: ! 3068: #line 1460 "objc-parse.y" ! 3069: { stmt_count++; ! 3070: emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); ! 3071: c_expand_return (yyvsp[-1].ttype); ; ! 3072: break;} ! 3073: case 289: ! 3074: #line 1464 "objc-parse.y" ! 3075: { stmt_count++; ! 3076: emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno); ! 3077: if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype); ! 3078: expand_asm (yyvsp[-2].ttype); ; ! 3079: break;} ! 3080: case 290: ! 3081: #line 1470 "objc-parse.y" ! 3082: { stmt_count++; ! 3083: emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno); ! 3084: if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype); ! 3085: c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, ! 3086: yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE], ! 3087: input_filename, lineno); ; ! 3088: break;} ! 3089: case 291: ! 3090: #line 1478 "objc-parse.y" ! 3091: { stmt_count++; ! 3092: emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno); ! 3093: if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype); ! 3094: c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, ! 3095: yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE], ! 3096: input_filename, lineno); ; ! 3097: break;} ! 3098: case 292: ! 3099: #line 1487 "objc-parse.y" ! 3100: { stmt_count++; ! 3101: emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno); ! 3102: if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype); ! 3103: c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, ! 3104: yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE], ! 3105: input_filename, lineno); ; ! 3106: break;} ! 3107: case 293: ! 3108: #line 1494 "objc-parse.y" ! 3109: { tree decl; ! 3110: stmt_count++; ! 3111: emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); ! 3112: decl = lookup_label (yyvsp[-1].ttype); ! 3113: if (decl != 0) ! 3114: { ! 3115: TREE_USED (decl) = 1; ! 3116: expand_goto (decl); ! 3117: } ! 3118: ; ! 3119: break;} ! 3120: case 294: ! 3121: #line 1505 "objc-parse.y" ! 3122: { stmt_count++; ! 3123: emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); ! 3124: expand_computed_goto (yyvsp[-1].ttype); ; ! 3125: break;} ! 3126: case 295: ! 3127: #line 1509 "objc-parse.y" ! 3128: { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype); ! 3129: stmt_count++; ! 3130: emit_nop (); ! 3131: if (label) ! 3132: expand_label (label); ! 3133: position_after_white_space (); ; ! 3134: break;} ! 3135: case 298: ! 3136: #line 1523 "objc-parse.y" ! 3137: { if (pedantic) ! 3138: pedwarn ("ANSI C forbids use of `asm' keyword"); ! 3139: emit_line_note (input_filename, lineno); ; ! 3140: break;} ! 3141: case 299: ! 3142: #line 1527 "objc-parse.y" ! 3143: { if (pedantic) ! 3144: pedwarn ("ANSI C forbids use of `asm' keyword"); ! 3145: emit_line_note (input_filename, lineno); ; ! 3146: break;} ! 3147: case 300: ! 3148: #line 1534 "objc-parse.y" ! 3149: { yyval.ttype = NULL_TREE; ; ! 3150: break;} ! 3151: case 302: ! 3152: #line 1541 "objc-parse.y" ! 3153: { yyval.ttype = NULL_TREE; ; ! 3154: break;} ! 3155: case 305: ! 3156: #line 1548 "objc-parse.y" ! 3157: { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; ! 3158: break;} ! 3159: case 306: ! 3160: #line 1553 "objc-parse.y" ! 3161: { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; ! 3162: break;} ! 3163: case 307: ! 3164: #line 1558 "objc-parse.y" ! 3165: { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ; ! 3166: break;} ! 3167: case 308: ! 3168: #line 1560 "objc-parse.y" ! 3169: { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; ! 3170: break;} ! 3171: case 309: ! 3172: #line 1566 "objc-parse.y" ! 3173: { pushlevel (0); ! 3174: declare_parm_level (0); ; ! 3175: break;} ! 3176: case 310: ! 3177: #line 1569 "objc-parse.y" ! 3178: { yyval.ttype = yyvsp[0].ttype; ! 3179: parmlist_tags_warning (); ! 3180: poplevel (0, 0, 0); ; ! 3181: break;} ! 3182: case 311: ! 3183: #line 1577 "objc-parse.y" ! 3184: { pushlevel (0); ! 3185: declare_parm_level (1); ; ! 3186: break;} ! 3187: case 312: ! 3188: #line 1580 "objc-parse.y" ! 3189: { yyval.ttype = yyvsp[0].ttype; ! 3190: parmlist_tags_warning (); ! 3191: poplevel (0, 0, 0); ; ! 3192: break;} ! 3193: case 314: ! 3194: #line 1588 "objc-parse.y" ! 3195: { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ; ! 3196: break;} ! 3197: case 315: ! 3198: #line 1590 "objc-parse.y" ! 3199: { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ; ! 3200: break;} ! 3201: case 317: ! 3202: #line 1596 "objc-parse.y" ! 3203: { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ; ! 3204: break;} ! 3205: case 318: ! 3206: #line 1602 "objc-parse.y" ! 3207: { yyval.ttype = get_parm_info (0); ; ! 3208: break;} ! 3209: case 319: ! 3210: #line 1604 "objc-parse.y" ! 3211: { yyval.ttype = get_parm_info (1); ; ! 3212: break;} ! 3213: case 320: ! 3214: #line 1606 "objc-parse.y" ! 3215: { yyval.ttype = get_parm_info (0); ; ! 3216: break;} ! 3217: case 321: ! 3218: #line 1611 "objc-parse.y" ! 3219: { push_parm_decl (yyvsp[0].ttype); ; ! 3220: break;} ! 3221: case 322: ! 3222: #line 1613 "objc-parse.y" ! 3223: { push_parm_decl (yyvsp[0].ttype); ; ! 3224: break;} ! 3225: case 323: ! 3226: #line 1620 "objc-parse.y" ! 3227: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ; ! 3228: break;} ! 3229: case 324: ! 3230: #line 1622 "objc-parse.y" ! 3231: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ; ! 3232: break;} ! 3233: case 325: ! 3234: #line 1624 "objc-parse.y" ! 3235: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 3236: break;} ! 3237: case 326: ! 3238: #line 1626 "objc-parse.y" ! 3239: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ; ! 3240: break;} ! 3241: case 327: ! 3242: #line 1628 "objc-parse.y" ! 3243: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; ! 3244: break;} ! 3245: case 328: ! 3246: #line 1634 "objc-parse.y" ! 3247: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; ! 3248: break;} ! 3249: case 329: ! 3250: #line 1636 "objc-parse.y" ! 3251: { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; ! 3252: break;} ! 3253: case 332: ! 3254: #line 1646 "objc-parse.y" ! 3255: { ! 3256: if (objc_implementation_context) ! 3257: { ! 3258: finish_class (objc_implementation_context); ! 3259: objc_ivar_chain = NULL_TREE; ! 3260: objc_implementation_context = NULL_TREE; ! 3261: } ! 3262: else ! 3263: warning ("`@end' must appear in an implementation context"); ! 3264: ; ! 3265: break;} ! 3266: case 333: ! 3267: #line 1660 "objc-parse.y" ! 3268: { ! 3269: objc_interface_context = objc_ivar_context ! 3270: = start_class (INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE); ! 3271: objc_public_flag = 0; ! 3272: ; ! 3273: break;} ! 3274: case 334: ! 3275: #line 1666 "objc-parse.y" ! 3276: { ! 3277: continue_class (objc_interface_context); ! 3278: ; ! 3279: break;} ! 3280: case 335: ! 3281: #line 1671 "objc-parse.y" ! 3282: { ! 3283: finish_class (objc_interface_context); ! 3284: objc_interface_context = NULL_TREE; ! 3285: ; ! 3286: break;} ! 3287: case 336: ! 3288: #line 1677 "objc-parse.y" ! 3289: { ! 3290: objc_interface_context ! 3291: = start_class (INTERFACE_TYPE, yyvsp[0].ttype, NULL_TREE); ! 3292: continue_class (objc_interface_context); ! 3293: ; ! 3294: break;} ! 3295: case 337: ! 3296: #line 1684 "objc-parse.y" ! 3297: { ! 3298: finish_class (objc_interface_context); ! 3299: objc_interface_context = NULL_TREE; ! 3300: ; ! 3301: break;} ! 3302: case 338: ! 3303: #line 1690 "objc-parse.y" ! 3304: { ! 3305: objc_interface_context = objc_ivar_context ! 3306: = start_class (INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype); ! 3307: objc_public_flag = 0; ! 3308: ; ! 3309: break;} ! 3310: case 339: ! 3311: #line 1696 "objc-parse.y" ! 3312: { ! 3313: continue_class (objc_interface_context); ! 3314: ; ! 3315: break;} ! 3316: case 340: ! 3317: #line 1701 "objc-parse.y" ! 3318: { ! 3319: finish_class (objc_interface_context); ! 3320: objc_interface_context = NULL_TREE; ! 3321: ; ! 3322: break;} ! 3323: case 341: ! 3324: #line 1707 "objc-parse.y" ! 3325: { ! 3326: objc_interface_context ! 3327: = start_class (INTERFACE_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype); ! 3328: continue_class (objc_interface_context); ! 3329: ; ! 3330: break;} ! 3331: case 342: ! 3332: #line 1714 "objc-parse.y" ! 3333: { ! 3334: finish_class (objc_interface_context); ! 3335: objc_interface_context = NULL_TREE; ! 3336: ; ! 3337: break;} ! 3338: case 343: ! 3339: #line 1720 "objc-parse.y" ! 3340: { ! 3341: objc_implementation_context = objc_ivar_context ! 3342: = start_class (IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE); ! 3343: objc_public_flag = 0; ! 3344: ; ! 3345: break;} ! 3346: case 344: ! 3347: #line 1726 "objc-parse.y" ! 3348: { ! 3349: objc_ivar_chain ! 3350: = continue_class (objc_implementation_context); ! 3351: ; ! 3352: break;} ! 3353: case 345: ! 3354: #line 1732 "objc-parse.y" ! 3355: { ! 3356: objc_implementation_context ! 3357: = start_class (IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE); ! 3358: objc_ivar_chain ! 3359: = continue_class (objc_implementation_context); ! 3360: ; ! 3361: break;} ! 3362: case 346: ! 3363: #line 1740 "objc-parse.y" ! 3364: { ! 3365: objc_implementation_context = objc_ivar_context ! 3366: = start_class (IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype); ! 3367: objc_public_flag = 0; ! 3368: ; ! 3369: break;} ! 3370: case 347: ! 3371: #line 1746 "objc-parse.y" ! 3372: { ! 3373: objc_ivar_chain ! 3374: = continue_class (objc_implementation_context); ! 3375: ; ! 3376: break;} ! 3377: case 348: ! 3378: #line 1752 "objc-parse.y" ! 3379: { ! 3380: objc_implementation_context ! 3381: = start_class (IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype); ! 3382: objc_ivar_chain ! 3383: = continue_class (objc_implementation_context); ! 3384: ; ! 3385: break;} ! 3386: case 349: ! 3387: #line 1760 "objc-parse.y" ! 3388: { ! 3389: objc_interface_context ! 3390: = start_class (PROTOCOL_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype); ! 3391: continue_class (objc_interface_context); ! 3392: ; ! 3393: break;} ! 3394: case 350: ! 3395: #line 1767 "objc-parse.y" ! 3396: { ! 3397: finish_class (objc_interface_context); ! 3398: objc_interface_context = NULL_TREE; ! 3399: ; ! 3400: break;} ! 3401: case 351: ! 3402: #line 1773 "objc-parse.y" ! 3403: { ! 3404: objc_implementation_context ! 3405: = start_class (CATEGORY_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype); ! 3406: objc_ivar_chain ! 3407: = continue_class (objc_implementation_context); ! 3408: ; ! 3409: break;} ! 3410: case 352: ! 3411: #line 1782 "objc-parse.y" ! 3412: { objc_public_flag = 1; ; ! 3413: break;} ! 3414: case 355: ! 3415: #line 1788 "objc-parse.y" ! 3416: { ! 3417: yyval.ttype = NULL_TREE; ! 3418: ; ! 3419: break;} ! 3420: case 357: ! 3421: #line 1793 "objc-parse.y" ! 3422: { ! 3423: if (pedantic) ! 3424: warning ("extra semicolon in struct or union specified"); ! 3425: ; ! 3426: break;} ! 3427: case 358: ! 3428: #line 1811 "objc-parse.y" ! 3429: { ! 3430: yyval.ttype = yyvsp[0].ttype; ! 3431: resume_momentary (yyvsp[-1].itype); ! 3432: ; ! 3433: break;} ! 3434: case 359: ! 3435: #line 1816 "objc-parse.y" ! 3436: { ! 3437: yyval.ttype = yyvsp[0].ttype; ! 3438: resume_momentary (yyvsp[-1].itype); ! 3439: ; ! 3440: break;} ! 3441: case 360: ! 3442: #line 1821 "objc-parse.y" ! 3443: { yyval.ttype = NULL_TREE; ; ! 3444: break;} ! 3445: case 361: ! 3446: #line 1826 "objc-parse.y" ! 3447: { yyval.ttype = NULL_TREE; ; ! 3448: break;} ! 3449: case 364: ! 3450: #line 1833 "objc-parse.y" ! 3451: { ! 3452: yyval.ttype = add_instance_variable (objc_ivar_context, ! 3453: objc_public_flag, ! 3454: yyvsp[0].ttype, current_declspecs, ! 3455: NULL_TREE); ! 3456: ; ! 3457: break;} ! 3458: case 365: ! 3459: #line 1840 "objc-parse.y" ! 3460: { ! 3461: yyval.ttype = add_instance_variable (objc_ivar_context, ! 3462: objc_public_flag, ! 3463: yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype); ! 3464: ; ! 3465: break;} ! 3466: case 366: ! 3467: #line 1846 "objc-parse.y" ! 3468: { ! 3469: yyval.ttype = add_instance_variable (objc_ivar_context, ! 3470: objc_public_flag, ! 3471: NULL_TREE, ! 3472: current_declspecs, yyvsp[0].ttype); ! 3473: ; ! 3474: break;} ! 3475: case 367: ! 3476: #line 1856 "objc-parse.y" ! 3477: { ! 3478: if (objc_implementation_context) ! 3479: objc_inherit_code = CLASS_METHOD_DECL; ! 3480: else ! 3481: fatal ("method definition not in class context"); ! 3482: ; ! 3483: break;} ! 3484: case 368: ! 3485: #line 1863 "objc-parse.y" ! 3486: { ! 3487: add_class_method (objc_implementation_context, yyvsp[0].ttype); ! 3488: start_method_def (yyvsp[0].ttype); ! 3489: objc_method_context = yyvsp[0].ttype; ! 3490: ; ! 3491: break;} ! 3492: case 369: ! 3493: #line 1869 "objc-parse.y" ! 3494: { ! 3495: continue_method_def (); ! 3496: ; ! 3497: break;} ! 3498: case 370: ! 3499: #line 1873 "objc-parse.y" ! 3500: { ! 3501: finish_method_def (); ! 3502: objc_method_context = NULL_TREE; ! 3503: ; ! 3504: break;} ! 3505: case 371: ! 3506: #line 1879 "objc-parse.y" ! 3507: { ! 3508: if (objc_implementation_context) ! 3509: objc_inherit_code = INSTANCE_METHOD_DECL; ! 3510: else ! 3511: fatal ("method definition not in class context"); ! 3512: ; ! 3513: break;} ! 3514: case 372: ! 3515: #line 1886 "objc-parse.y" ! 3516: { ! 3517: add_instance_method (objc_implementation_context, yyvsp[0].ttype); ! 3518: start_method_def (yyvsp[0].ttype); ! 3519: objc_method_context = yyvsp[0].ttype; ! 3520: ; ! 3521: break;} ! 3522: case 373: ! 3523: #line 1892 "objc-parse.y" ! 3524: { ! 3525: continue_method_def (); ! 3526: ; ! 3527: break;} ! 3528: case 374: ! 3529: #line 1896 "objc-parse.y" ! 3530: { ! 3531: finish_method_def (); ! 3532: objc_method_context = NULL_TREE; ! 3533: ; ! 3534: break;} ! 3535: case 376: ! 3536: #line 1908 "objc-parse.y" ! 3537: {yyval.ttype = NULL_TREE; ; ! 3538: break;} ! 3539: case 381: ! 3540: #line 1915 "objc-parse.y" ! 3541: {yyval.ttype = NULL_TREE; ; ! 3542: break;} ! 3543: case 385: ! 3544: #line 1925 "objc-parse.y" ! 3545: { ! 3546: objc_inherit_code = CLASS_METHOD_DECL; ! 3547: ; ! 3548: break;} ! 3549: case 386: ! 3550: #line 1929 "objc-parse.y" ! 3551: { ! 3552: add_class_method (objc_interface_context, yyvsp[0].ttype); ! 3553: ; ! 3554: break;} ! 3555: case 388: ! 3556: #line 1935 "objc-parse.y" ! 3557: { ! 3558: objc_inherit_code = INSTANCE_METHOD_DECL; ! 3559: ; ! 3560: break;} ! 3561: case 389: ! 3562: #line 1939 "objc-parse.y" ! 3563: { ! 3564: add_instance_method (objc_interface_context, yyvsp[0].ttype); ! 3565: ; ! 3566: break;} ! 3567: case 391: ! 3568: #line 1947 "objc-parse.y" ! 3569: { ! 3570: yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ! 3571: ; ! 3572: break;} ! 3573: case 392: ! 3574: #line 1952 "objc-parse.y" ! 3575: { ! 3576: yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ! 3577: ; ! 3578: break;} ! 3579: case 393: ! 3580: #line 1957 "objc-parse.y" ! 3581: { ! 3582: yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ! 3583: ; ! 3584: break;} ! 3585: case 394: ! 3586: #line 1962 "objc-parse.y" ! 3587: { ! 3588: yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ! 3589: ; ! 3590: break;} ! 3591: case 403: ! 3592: #line 1992 "objc-parse.y" ! 3593: { resume_momentary (yyvsp[-2].itype); ; ! 3594: break;} ! 3595: case 404: ! 3596: #line 1994 "objc-parse.y" ! 3597: { shadow_tag (yyvsp[-1].ttype); ; ! 3598: break;} ! 3599: case 405: ! 3600: #line 1996 "objc-parse.y" ! 3601: { warning ("empty declaration"); ; ! 3602: break;} ! 3603: case 406: ! 3604: #line 2001 "objc-parse.y" ! 3605: { push_parm_decl (yyvsp[0].ttype); ; ! 3606: break;} ! 3607: case 407: ! 3608: #line 2003 "objc-parse.y" ! 3609: { push_parm_decl (yyvsp[0].ttype); ; ! 3610: break;} ! 3611: case 408: ! 3612: #line 2011 "objc-parse.y" ! 3613: { yyval.ttype = build_tree_list (current_declspecs, yyvsp[0].ttype) ; ; ! 3614: break;} ! 3615: case 409: ! 3616: #line 2013 "objc-parse.y" ! 3617: { yyval.ttype = build_tree_list (current_declspecs, yyvsp[0].ttype) ; ; ! 3618: break;} ! 3619: case 410: ! 3620: #line 2015 "objc-parse.y" ! 3621: { yyval.ttype = build_tree_list (current_declspecs, yyvsp[0].ttype) ; ; ! 3622: break;} ! 3623: case 411: ! 3624: #line 2020 "objc-parse.y" ! 3625: { ! 3626: yyval.ttype = NULL_TREE; ! 3627: ; ! 3628: break;} ! 3629: case 412: ! 3630: #line 2024 "objc-parse.y" ! 3631: { ! 3632: /* oh what a kludge! */ ! 3633: yyval.ttype = (tree)1; ! 3634: ; ! 3635: break;} ! 3636: case 413: ! 3637: #line 2029 "objc-parse.y" ! 3638: { ! 3639: pushlevel (0); ! 3640: ; ! 3641: break;} ! 3642: case 414: ! 3643: #line 2033 "objc-parse.y" ! 3644: { ! 3645: /* returns a tree list node generated by get_parm_info */ ! 3646: yyval.ttype = yyvsp[0].ttype; ! 3647: poplevel (0, 0, 0); ! 3648: ; ! 3649: break;} ! 3650: case 417: ! 3651: #line 2048 "objc-parse.y" ! 3652: { ! 3653: yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ! 3654: ; ! 3655: break;} ! 3656: case 421: ! 3657: #line 2060 "objc-parse.y" ! 3658: { yyval.ttype = get_identifier (token_buffer); ; ! 3659: break;} ! 3660: case 422: ! 3661: #line 2061 "objc-parse.y" ! 3662: { yyval.ttype = get_identifier (token_buffer); ; ! 3663: break;} ! 3664: case 423: ! 3665: #line 2062 "objc-parse.y" ! 3666: { yyval.ttype = get_identifier (token_buffer); ; ! 3667: break;} ! 3668: case 424: ! 3669: #line 2063 "objc-parse.y" ! 3670: { yyval.ttype = get_identifier (token_buffer); ; ! 3671: break;} ! 3672: case 425: ! 3673: #line 2064 "objc-parse.y" ! 3674: { yyval.ttype = get_identifier (token_buffer); ; ! 3675: break;} ! 3676: case 426: ! 3677: #line 2065 "objc-parse.y" ! 3678: { yyval.ttype = get_identifier (token_buffer); ; ! 3679: break;} ! 3680: case 427: ! 3681: #line 2066 "objc-parse.y" ! 3682: { yyval.ttype = get_identifier (token_buffer); ; ! 3683: break;} ! 3684: case 428: ! 3685: #line 2067 "objc-parse.y" ! 3686: { yyval.ttype = get_identifier (token_buffer); ; ! 3687: break;} ! 3688: case 429: ! 3689: #line 2068 "objc-parse.y" ! 3690: { yyval.ttype = get_identifier (token_buffer); ; ! 3691: break;} ! 3692: case 430: ! 3693: #line 2069 "objc-parse.y" ! 3694: { yyval.ttype = get_identifier (token_buffer); ; ! 3695: break;} ! 3696: case 431: ! 3697: #line 2070 "objc-parse.y" ! 3698: { yyval.ttype = get_identifier (token_buffer); ; ! 3699: break;} ! 3700: case 432: ! 3701: #line 2071 "objc-parse.y" ! 3702: { yyval.ttype = get_identifier (token_buffer); ; ! 3703: break;} ! 3704: case 433: ! 3705: #line 2072 "objc-parse.y" ! 3706: { yyval.ttype = get_identifier (token_buffer); ; ! 3707: break;} ! 3708: case 434: ! 3709: #line 2073 "objc-parse.y" ! 3710: { yyval.ttype = get_identifier (token_buffer); ; ! 3711: break;} ! 3712: case 435: ! 3713: #line 2074 "objc-parse.y" ! 3714: { yyval.ttype = get_identifier (token_buffer); ; ! 3715: break;} ! 3716: case 436: ! 3717: #line 2075 "objc-parse.y" ! 3718: { yyval.ttype = get_identifier (token_buffer); ; ! 3719: break;} ! 3720: case 437: ! 3721: #line 2076 "objc-parse.y" ! 3722: { yyval.ttype = get_identifier (token_buffer); ; ! 3723: break;} ! 3724: case 438: ! 3725: #line 2077 "objc-parse.y" ! 3726: { yyval.ttype = get_identifier (token_buffer); ; ! 3727: break;} ! 3728: case 439: ! 3729: #line 2078 "objc-parse.y" ! 3730: { yyval.ttype = get_identifier (token_buffer); ; ! 3731: break;} ! 3732: case 442: ! 3733: #line 2084 "objc-parse.y" ! 3734: { ! 3735: yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ! 3736: ; ! 3737: break;} ! 3738: case 443: ! 3739: #line 2089 "objc-parse.y" ! 3740: { ! 3741: yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype); ! 3742: ; ! 3743: break;} ! 3744: case 444: ! 3745: #line 2094 "objc-parse.y" ! 3746: { ! 3747: yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); ! 3748: ; ! 3749: break;} ! 3750: case 445: ! 3751: #line 2099 "objc-parse.y" ! 3752: { ! 3753: yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ! 3754: ; ! 3755: break;} ! 3756: case 449: ! 3757: #line 2112 "objc-parse.y" ! 3758: { ! 3759: yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ! 3760: ; ! 3761: break;} ! 3762: case 450: ! 3763: #line 2120 "objc-parse.y" ! 3764: { ! 3765: if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE) ! 3766: /* just return the expr., remove a level of indirection */ ! 3767: yyval.ttype = TREE_VALUE (yyvsp[0].ttype); ! 3768: else ! 3769: /* we have a comma expr., we will collapse later */ ! 3770: yyval.ttype = yyvsp[0].ttype; ! 3771: ; ! 3772: break;} ! 3773: case 451: ! 3774: #line 2132 "objc-parse.y" ! 3775: { ! 3776: yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ! 3777: ; ! 3778: break;} ! 3779: case 452: ! 3780: #line 2136 "objc-parse.y" ! 3781: { ! 3782: yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ! 3783: ; ! 3784: break;} ! 3785: case 454: ! 3786: #line 2144 "objc-parse.y" ! 3787: { ! 3788: yyval.ttype = get_class_reference (yyvsp[0].ttype); ! 3789: ; ! 3790: break;} ! 3791: case 455: ! 3792: #line 2151 "objc-parse.y" ! 3793: { objc_receiver_context = 1; ; ! 3794: break;} ! 3795: case 456: ! 3796: #line 2153 "objc-parse.y" ! 3797: { objc_receiver_context = 0; ; ! 3798: break;} ! 3799: case 457: ! 3800: #line 2155 "objc-parse.y" ! 3801: { ! 3802: yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ! 3803: ; ! 3804: break;} ! 3805: case 461: ! 3806: #line 2168 "objc-parse.y" ! 3807: { ! 3808: yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ! 3809: ; ! 3810: break;} ! 3811: case 462: ! 3812: #line 2175 "objc-parse.y" ! 3813: { ! 3814: yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE); ! 3815: ; ! 3816: break;} ! 3817: case 463: ! 3818: #line 2179 "objc-parse.y" ! 3819: { ! 3820: yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE); ! 3821: ; ! 3822: break;} ! 3823: case 464: ! 3824: #line 2186 "objc-parse.y" ! 3825: { ! 3826: yyval.ttype = yyvsp[-1].ttype; ! 3827: ; ! 3828: break;} ! 3829: case 465: ! 3830: #line 2195 "objc-parse.y" ! 3831: { ! 3832: yyval.ttype = groktypename (yyvsp[-1].ttype); ! 3833: ; ! 3834: break;} ! 3835: } ! 3836: /* the action file gets copied in in place of this dollarsign */ ! 3837: #line 440 "bison.simple" ! 3838: ! 3839: yyvsp -= yylen; ! 3840: yyssp -= yylen; ! 3841: #ifdef YYLSP_NEEDED ! 3842: yylsp -= yylen; ! 3843: #endif ! 3844: ! 3845: #if YYDEBUG != 0 ! 3846: if (yydebug) ! 3847: { ! 3848: short *ssp1 = yyss - 1; ! 3849: fprintf (stderr, "state stack now"); ! 3850: while (ssp1 != yyssp) ! 3851: fprintf (stderr, " %d", *++ssp1); ! 3852: fprintf (stderr, "\n"); ! 3853: } ! 3854: #endif ! 3855: ! 3856: *++yyvsp = yyval; ! 3857: ! 3858: #ifdef YYLSP_NEEDED ! 3859: yylsp++; ! 3860: if (yylen == 0) ! 3861: { ! 3862: yylsp->first_line = yylloc.first_line; ! 3863: yylsp->first_column = yylloc.first_column; ! 3864: yylsp->last_line = (yylsp-1)->last_line; ! 3865: yylsp->last_column = (yylsp-1)->last_column; ! 3866: yylsp->text = 0; ! 3867: } ! 3868: else ! 3869: { ! 3870: yylsp->last_line = (yylsp+yylen-1)->last_line; ! 3871: yylsp->last_column = (yylsp+yylen-1)->last_column; ! 3872: } ! 3873: #endif ! 3874: ! 3875: /* Now "shift" the result of the reduction. ! 3876: Determine what state that goes to, ! 3877: based on the state we popped back to ! 3878: and the rule number reduced by. */ ! 3879: ! 3880: yyn = yyr1[yyn]; ! 3881: ! 3882: yystate = yypgoto[yyn - YYNTBASE] + *yyssp; ! 3883: if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) ! 3884: yystate = yytable[yystate]; ! 3885: else ! 3886: yystate = yydefgoto[yyn - YYNTBASE]; ! 3887: ! 3888: goto yynewstate; ! 3889: ! 3890: yyerrlab: /* here on detecting error */ ! 3891: ! 3892: if (! yyerrstatus) ! 3893: /* If not already recovering from an error, report this error. */ ! 3894: { ! 3895: ++yynerrs; ! 3896: ! 3897: #ifdef YYERROR_VERBOSE ! 3898: yyn = yypact[yystate]; ! 3899: ! 3900: if (yyn > YYFLAG && yyn < YYLAST) ! 3901: { ! 3902: int size = 0; ! 3903: char *msg; ! 3904: int x, count; ! 3905: ! 3906: count = 0; ! 3907: for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++) ! 3908: if (yycheck[x + yyn] == x) ! 3909: size += strlen(yytname[x]) + 15, count++; ! 3910: msg = (char *) malloc(size + 15); ! 3911: if (msg != 0) ! 3912: { ! 3913: strcpy(msg, "parse error"); ! 3914: ! 3915: if (count < 5) ! 3916: { ! 3917: count = 0; ! 3918: for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++) ! 3919: if (yycheck[x + yyn] == x) ! 3920: { ! 3921: strcat(msg, count == 0 ? ", expecting `" : " or `"); ! 3922: strcat(msg, yytname[x]); ! 3923: strcat(msg, "'"); ! 3924: count++; ! 3925: } ! 3926: } ! 3927: yyerror(msg); ! 3928: free(msg); ! 3929: } ! 3930: else ! 3931: yyerror ("parse error; also virtual memory exceeded"); ! 3932: } ! 3933: else ! 3934: #endif /* YYERROR_VERBOSE */ ! 3935: yyerror("parse error"); ! 3936: } ! 3937: ! 3938: yyerrlab1: /* here on error raised explicitly by an action */ ! 3939: ! 3940: if (yyerrstatus == 3) ! 3941: { ! 3942: /* if just tried and failed to reuse lookahead token after an error, discard it. */ ! 3943: ! 3944: /* return failure if at end of input */ ! 3945: if (yychar == YYEOF) ! 3946: YYABORT; ! 3947: ! 3948: #if YYDEBUG != 0 ! 3949: if (yydebug) ! 3950: fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); ! 3951: #endif ! 3952: ! 3953: yychar = YYEMPTY; ! 3954: } ! 3955: ! 3956: /* Else will try to reuse lookahead token ! 3957: after shifting the error token. */ ! 3958: ! 3959: yyerrstatus = 3; /* Each real token shifted decrements this */ ! 3960: ! 3961: goto yyerrhandle; ! 3962: ! 3963: yyerrdefault: /* current state does not do anything special for the error token. */ ! 3964: ! 3965: #if 0 ! 3966: /* This is wrong; only states that explicitly want error tokens ! 3967: should shift them. */ ! 3968: yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ ! 3969: if (yyn) goto yydefault; ! 3970: #endif ! 3971: ! 3972: yyerrpop: /* pop the current state because it cannot handle the error token */ ! 3973: ! 3974: if (yyssp == yyss) YYABORT; ! 3975: yyvsp--; ! 3976: yystate = *--yyssp; ! 3977: #ifdef YYLSP_NEEDED ! 3978: yylsp--; ! 3979: #endif ! 3980: ! 3981: #if YYDEBUG != 0 ! 3982: if (yydebug) ! 3983: { ! 3984: short *ssp1 = yyss - 1; ! 3985: fprintf (stderr, "Error: state stack now"); ! 3986: while (ssp1 != yyssp) ! 3987: fprintf (stderr, " %d", *++ssp1); ! 3988: fprintf (stderr, "\n"); ! 3989: } ! 3990: #endif ! 3991: ! 3992: yyerrhandle: ! 3993: ! 3994: yyn = yypact[yystate]; ! 3995: if (yyn == YYFLAG) ! 3996: goto yyerrdefault; ! 3997: ! 3998: yyn += YYTERROR; ! 3999: if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) ! 4000: goto yyerrdefault; ! 4001: ! 4002: yyn = yytable[yyn]; ! 4003: if (yyn < 0) ! 4004: { ! 4005: if (yyn == YYFLAG) ! 4006: goto yyerrpop; ! 4007: yyn = -yyn; ! 4008: goto yyreduce; ! 4009: } ! 4010: else if (yyn == 0) ! 4011: goto yyerrpop; ! 4012: ! 4013: if (yyn == YYFINAL) ! 4014: YYACCEPT; ! 4015: ! 4016: #if YYDEBUG != 0 ! 4017: if (yydebug) ! 4018: fprintf(stderr, "Shifting error token, "); ! 4019: #endif ! 4020: ! 4021: *++yyvsp = yylval; ! 4022: #ifdef YYLSP_NEEDED ! 4023: *++yylsp = yylloc; ! 4024: #endif ! 4025: ! 4026: yystate = yyn; ! 4027: goto yynewstate; ! 4028: } ! 4029: #line 2199 "objc-parse.y" ! 4030: ! 4031: /* If STRING is the name of an Objective C @-keyword ! 4032: (not including the @), return the token type for that keyword. ! 4033: Otherwise return 0. */ ! 4034: ! 4035: int ! 4036: recognize_objc_keyword (string) ! 4037: char *string; ! 4038: { ! 4039: switch (string[0]) ! 4040: { ! 4041: case 'd': ! 4042: if (!strcmp (string, "defs")) ! 4043: return DEFS; ! 4044: break; ! 4045: case 'e': ! 4046: if (!strcmp (string, "end")) ! 4047: return END; ! 4048: if (!strcmp (string, "encode")) ! 4049: return ENCODE; ! 4050: break; ! 4051: case 'i': ! 4052: if (!strcmp (string, "interface")) ! 4053: return INTERFACE; ! 4054: if (!strcmp (string, "implementation")) ! 4055: return IMPLEMENTATION; ! 4056: break; ! 4057: case 'p': ! 4058: if (!strcmp (string, "public")) ! 4059: return PUBLIC; ! 4060: break; ! 4061: case 's': ! 4062: if (!strcmp (string, "selector")) ! 4063: return SELECTOR; ! 4064: break; ! 4065: } ! 4066: return 0; ! 4067: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.