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