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