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