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