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