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