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