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