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