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