Initial revision
[official-gcc.git] / gcc / objc / objc-parse.c
blob6a04682d3418f6c48564a51f34888e0d7195d085
2 /* A Bison parser, made from objc-parse.y with Bison version GNU Bison version 1.24
3 */
5 #define YYBISON 1 /* Identify Bison output. */
7 #define IDENTIFIER 258
8 #define TYPENAME 259
9 #define SCSPEC 260
10 #define TYPESPEC 261
11 #define TYPE_QUAL 262
12 #define CONSTANT 263
13 #define STRING 264
14 #define ELLIPSIS 265
15 #define SIZEOF 266
16 #define ENUM 267
17 #define STRUCT 268
18 #define UNION 269
19 #define IF 270
20 #define ELSE 271
21 #define WHILE 272
22 #define DO 273
23 #define FOR 274
24 #define SWITCH 275
25 #define CASE 276
26 #define DEFAULT 277
27 #define BREAK 278
28 #define CONTINUE 279
29 #define RETURN 280
30 #define GOTO 281
31 #define ASM_KEYWORD 282
32 #define TYPEOF 283
33 #define ALIGNOF 284
34 #define ATTRIBUTE 285
35 #define EXTENSION 286
36 #define LABEL 287
37 #define REALPART 288
38 #define IMAGPART 289
39 #define ASSIGN 290
40 #define OROR 291
41 #define ANDAND 292
42 #define EQCOMPARE 293
43 #define ARITHCOMPARE 294
44 #define LSHIFT 295
45 #define RSHIFT 296
46 #define UNARY 297
47 #define PLUSPLUS 298
48 #define MINUSMINUS 299
49 #define HYPERUNARY 300
50 #define POINTSAT 301
51 #define INTERFACE 302
52 #define IMPLEMENTATION 303
53 #define END 304
54 #define SELECTOR 305
55 #define DEFS 306
56 #define ENCODE 307
57 #define CLASSNAME 308
58 #define PUBLIC 309
59 #define PRIVATE 310
60 #define PROTECTED 311
61 #define PROTOCOL 312
62 #define OBJECTNAME 313
63 #define CLASS 314
64 #define ALIAS 315
65 #define OBJC_STRING 316
67 #line 33 "objc-parse.y"
69 #include <stdio.h>
70 #include <errno.h>
71 #include <setjmp.h>
73 #include "config.h"
74 #include "tree.h"
75 #include "input.h"
76 #include "c-lex.h"
77 #include "c-tree.h"
78 #include "flags.h"
80 #ifdef MULTIBYTE_CHARS
81 #include <stdlib.h>
82 #include <locale.h>
83 #endif
85 #include "objc-act.h"
87 /* Since parsers are distinct for each language, put the language string
88 definition here. */
89 char *language_string = "GNU Obj-C";
91 #ifndef errno
92 extern int errno;
93 #endif
95 void yyerror ();
97 /* Like YYERROR but do call yyerror. */
98 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
100 /* Cause the `yydebug' variable to be defined. */
101 #define YYDEBUG 1
103 #line 71 "objc-parse.y"
104 typedef union {long itype; tree ttype; enum tree_code code;
105 char *filename; int lineno; int ends_in_label; } YYSTYPE;
106 #line 198 "objc-parse.y"
108 /* Number of statements (loosely speaking) seen so far. */
109 static int stmt_count;
111 /* Input file and line number of the end of the body of last simple_if;
112 used by the stmt-rule immediately after simple_if returns. */
113 static char *if_stmt_file;
114 static int if_stmt_line;
116 /* List of types and structure classes of the current declaration. */
117 static tree current_declspecs = NULL_TREE;
118 static tree prefix_attributes = NULL_TREE;
120 /* Stack of saved values of current_declspecs and prefix_attributes. */
121 static tree declspec_stack;
123 /* 1 if we explained undeclared var errors. */
124 static int undeclared_variable_notice;
126 /* Objective-C specific information */
128 tree objc_interface_context;
129 tree objc_implementation_context;
130 tree objc_method_context;
131 tree objc_ivar_chain;
132 tree objc_ivar_context;
133 enum tree_code objc_inherit_code;
134 int objc_receiver_context;
135 int objc_public_flag;
138 /* Tell yyparse how to print a token's value, if yydebug is set. */
140 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
141 extern void yyprint ();
143 #ifndef YYLTYPE
144 typedef
145 struct yyltype
147 int timestamp;
148 int first_line;
149 int first_column;
150 int last_line;
151 int last_column;
152 char *text;
154 yyltype;
156 #define YYLTYPE yyltype
157 #endif
159 #include <stdio.h>
161 #ifndef __cplusplus
162 #ifndef __STDC__
163 #define const
164 #endif
165 #endif
169 #define YYFINAL 940
170 #define YYFLAG -32768
171 #define YYNTBASE 84
173 #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 305)
175 static const char yytranslate[] = { 0,
176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
178 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
179 2, 2, 80, 2, 2, 2, 52, 43, 2, 59,
180 76, 50, 48, 81, 49, 58, 51, 2, 2, 2,
181 2, 2, 2, 2, 2, 2, 2, 38, 77, 2,
182 36, 2, 37, 2, 2, 2, 2, 2, 2, 2,
183 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
184 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
185 60, 2, 83, 42, 2, 2, 2, 2, 2, 2,
186 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
187 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
188 2, 2, 82, 41, 78, 79, 2, 2, 2, 2,
189 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
190 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
191 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
192 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
193 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
194 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
195 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
196 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
197 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
198 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
199 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
201 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
202 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
203 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
204 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
205 39, 40, 44, 45, 46, 47, 53, 54, 55, 56,
206 57, 61, 62, 63, 64, 65, 66, 67, 68, 69,
207 70, 71, 72, 73, 74, 75
210 #if YYDEBUG != 0
211 static const short yyprhs[] = { 0,
212 0, 1, 3, 4, 7, 8, 12, 14, 16, 18,
213 24, 27, 31, 36, 41, 44, 47, 50, 53, 55,
214 56, 57, 65, 70, 71, 72, 80, 85, 86, 87,
215 94, 98, 100, 102, 104, 106, 108, 110, 112, 114,
216 116, 118, 120, 122, 123, 125, 127, 131, 133, 136,
217 139, 142, 145, 148, 153, 156, 161, 164, 167, 169,
218 171, 173, 178, 179, 187, 189, 193, 197, 201, 205,
219 209, 213, 217, 221, 225, 229, 233, 237, 238, 243,
220 244, 249, 250, 251, 259, 260, 266, 270, 274, 276,
221 278, 280, 284, 288, 289, 294, 299, 304, 308, 312,
222 315, 318, 320, 322, 324, 326, 328, 330, 333, 335,
223 338, 339, 341, 344, 348, 350, 352, 355, 358, 363,
224 368, 371, 374, 378, 380, 382, 385, 388, 389, 390,
225 395, 400, 404, 408, 411, 414, 417, 420, 424, 425,
226 428, 431, 434, 437, 441, 442, 445, 448, 450, 452,
227 455, 458, 460, 462, 465, 468, 471, 475, 476, 479,
228 481, 483, 485, 488, 491, 493, 498, 503, 505, 507,
229 509, 511, 515, 517, 521, 522, 527, 528, 535, 539,
230 540, 547, 551, 552, 554, 556, 559, 566, 568, 572,
231 573, 575, 580, 587, 592, 594, 596, 598, 600, 602,
232 603, 608, 610, 611, 614, 616, 620, 622, 623, 628,
233 630, 631, 636, 637, 643, 644, 645, 651, 652, 653,
234 659, 661, 663, 667, 671, 676, 680, 684, 688, 690,
235 692, 696, 701, 705, 709, 713, 715, 719, 723, 727,
236 732, 736, 740, 742, 743, 751, 757, 760, 761, 769,
237 775, 778, 779, 788, 789, 797, 800, 801, 803, 804,
238 806, 808, 811, 812, 816, 819, 824, 828, 830, 834,
239 836, 838, 841, 843, 847, 852, 859, 865, 867, 871,
240 873, 875, 879, 882, 885, 886, 888, 890, 893, 894,
241 897, 901, 905, 908, 912, 917, 921, 924, 928, 931,
242 933, 935, 938, 941, 942, 944, 947, 948, 949, 951,
243 953, 956, 960, 962, 965, 968, 975, 981, 987, 990,
244 993, 998, 999, 1004, 1005, 1006, 1010, 1015, 1019, 1021,
245 1023, 1025, 1027, 1030, 1031, 1036, 1038, 1042, 1043, 1044,
246 1052, 1058, 1061, 1062, 1063, 1064, 1077, 1078, 1085, 1088,
247 1091, 1094, 1098, 1105, 1114, 1125, 1138, 1142, 1147, 1149,
248 1151, 1152, 1159, 1163, 1169, 1172, 1175, 1176, 1178, 1179,
249 1181, 1182, 1184, 1186, 1190, 1195, 1197, 1201, 1202, 1205,
250 1208, 1209, 1214, 1217, 1218, 1220, 1222, 1226, 1228, 1232,
251 1237, 1242, 1247, 1252, 1257, 1258, 1261, 1263, 1266, 1268,
252 1272, 1274, 1278, 1280, 1282, 1284, 1286, 1288, 1290, 1292,
253 1294, 1298, 1302, 1307, 1308, 1309, 1320, 1321, 1328, 1329,
254 1330, 1343, 1344, 1353, 1354, 1361, 1364, 1365, 1374, 1379,
255 1380, 1390, 1396, 1397, 1404, 1405, 1407, 1411, 1415, 1417,
256 1419, 1421, 1423, 1424, 1428, 1431, 1435, 1439, 1441, 1442,
257 1444, 1448, 1450, 1454, 1457, 1458, 1459, 1460, 1468, 1469,
258 1470, 1471, 1479, 1480, 1481, 1484, 1486, 1488, 1491, 1492,
259 1496, 1498, 1500, 1501, 1502, 1508, 1509, 1510, 1516, 1521,
260 1523, 1529, 1532, 1533, 1536, 1537, 1539, 1541, 1543, 1546,
261 1549, 1554, 1557, 1560, 1562, 1566, 1569, 1572, 1575, 1576,
262 1579, 1580, 1584, 1586, 1588, 1591, 1593, 1595, 1597, 1599,
263 1601, 1603, 1605, 1607, 1609, 1611, 1613, 1615, 1617, 1619,
264 1621, 1623, 1625, 1627, 1629, 1631, 1633, 1635, 1637, 1639,
265 1641, 1648, 1652, 1658, 1661, 1663, 1665, 1667, 1670, 1672,
266 1676, 1679, 1681, 1683, 1684, 1685, 1692, 1694, 1696, 1698,
267 1701, 1704, 1706, 1711, 1716
270 static const short yyrhs[] = { -1,
271 85, 0, 0, 86, 88, 0, 0, 85, 87, 88,
272 0, 90, 0, 89, 0, 236, 0, 27, 59, 99,
273 76, 77, 0, 235, 88, 0, 123, 137, 77, 0,
274 130, 123, 137, 77, 0, 126, 123, 136, 77, 0,
275 130, 77, 0, 126, 77, 0, 1, 77, 0, 1,
276 78, 0, 77, 0, 0, 0, 126, 123, 163, 91,
277 117, 92, 194, 0, 126, 123, 163, 1, 0, 0,
278 0, 130, 123, 166, 93, 117, 94, 194, 0, 130,
279 123, 166, 1, 0, 0, 0, 123, 166, 95, 117,
280 96, 194, 0, 123, 166, 1, 0, 3, 0, 4,
281 0, 72, 0, 67, 0, 43, 0, 49, 0, 48,
282 0, 54, 0, 55, 0, 79, 0, 80, 0, 101,
283 0, 0, 101, 0, 107, 0, 101, 81, 107, 0,
284 113, 0, 50, 105, 0, 235, 105, 0, 98, 105,
285 0, 40, 97, 0, 103, 102, 0, 103, 59, 181,
286 76, 0, 104, 102, 0, 104, 59, 181, 76, 0,
287 33, 105, 0, 34, 105, 0, 11, 0, 29, 0,
288 102, 0, 59, 181, 76, 105, 0, 0, 59, 181,
289 76, 82, 106, 151, 78, 0, 105, 0, 107, 48,
290 107, 0, 107, 49, 107, 0, 107, 50, 107, 0,
291 107, 51, 107, 0, 107, 52, 107, 0, 107, 46,
292 107, 0, 107, 47, 107, 0, 107, 45, 107, 0,
293 107, 44, 107, 0, 107, 43, 107, 0, 107, 41,
294 107, 0, 107, 42, 107, 0, 0, 107, 40, 108,
295 107, 0, 0, 107, 39, 109, 107, 0, 0, 0,
296 107, 37, 110, 99, 38, 111, 107, 0, 0, 107,
297 37, 112, 38, 107, 0, 107, 36, 107, 0, 107,
298 35, 107, 0, 3, 0, 8, 0, 115, 0, 59,
299 99, 76, 0, 59, 1, 76, 0, 0, 59, 114,
300 195, 76, 0, 113, 59, 100, 76, 0, 113, 60,
301 99, 83, 0, 113, 58, 97, 0, 113, 57, 97,
302 0, 113, 54, 0, 113, 55, 0, 296, 0, 302,
303 0, 303, 0, 304, 0, 116, 0, 9, 0, 115,
304 9, 0, 75, 0, 116, 75, 0, 0, 119, 0,
305 119, 10, 0, 200, 201, 120, 0, 118, 0, 189,
306 0, 119, 118, 0, 118, 189, 0, 128, 123, 136,
307 77, 0, 131, 123, 137, 77, 0, 128, 77, 0,
308 131, 77, 0, 200, 201, 125, 0, 121, 0, 189,
309 0, 122, 121, 0, 121, 189, 0, 0, 0, 126,
310 123, 136, 77, 0, 130, 123, 137, 77, 0, 126,
311 123, 157, 0, 130, 123, 160, 0, 126, 77, 0,
312 130, 77, 0, 235, 125, 0, 134, 127, 0, 130,
313 134, 127, 0, 0, 127, 135, 0, 127, 5, 0,
314 127, 144, 0, 134, 129, 0, 131, 134, 129, 0,
315 0, 129, 135, 0, 129, 5, 0, 131, 0, 144,
316 0, 130, 131, 0, 130, 144, 0, 7, 0, 5,
317 0, 131, 7, 0, 131, 5, 0, 134, 133, 0,
318 183, 134, 133, 0, 0, 133, 135, 0, 6, 0,
319 167, 0, 4, 0, 67, 252, 0, 72, 252, 0,
320 253, 0, 28, 59, 99, 76, 0, 28, 59, 181,
321 76, 0, 6, 0, 7, 0, 167, 0, 139, 0,
322 136, 81, 139, 0, 141, 0, 137, 81, 139, 0,
323 0, 27, 59, 115, 76, 0, 0, 163, 138, 143,
324 36, 140, 149, 0, 163, 138, 143, 0, 0, 166,
325 138, 143, 36, 142, 149, 0, 166, 138, 143, 0,
326 0, 144, 0, 145, 0, 144, 145, 0, 30, 59,
327 59, 146, 76, 76, 0, 147, 0, 146, 81, 147,
328 0, 0, 148, 0, 148, 59, 3, 76, 0, 148,
329 59, 3, 81, 101, 76, 0, 148, 59, 100, 76,
330 0, 97, 0, 5, 0, 6, 0, 7, 0, 107,
331 0, 0, 82, 150, 151, 78, 0, 1, 0, 0,
332 152, 172, 0, 153, 0, 152, 81, 153, 0, 107,
333 0, 0, 82, 154, 151, 78, 0, 1, 0, 0,
334 97, 38, 155, 153, 0, 0, 58, 97, 36, 156,
335 153, 0, 0, 0, 163, 158, 117, 159, 195, 0,
336 0, 0, 166, 161, 117, 162, 195, 0, 164, 0,
337 166, 0, 59, 164, 76, 0, 164, 59, 230, 0,
338 164, 60, 99, 83, 0, 164, 60, 83, 0, 50,
339 184, 164, 0, 144, 124, 164, 0, 4, 0, 72,
340 0, 165, 59, 230, 0, 165, 60, 99, 83, 0,
341 165, 60, 83, 0, 50, 184, 165, 0, 144, 124,
342 165, 0, 4, 0, 166, 59, 230, 0, 59, 166,
343 76, 0, 50, 184, 166, 0, 166, 60, 99, 83,
344 0, 166, 60, 83, 0, 144, 124, 166, 0, 3,
345 0, 0, 13, 97, 82, 168, 174, 78, 143, 0,
346 13, 82, 174, 78, 143, 0, 13, 97, 0, 0,
347 14, 97, 82, 169, 174, 78, 143, 0, 14, 82,
348 174, 78, 143, 0, 14, 97, 0, 0, 12, 97,
349 82, 170, 179, 173, 78, 143, 0, 0, 12, 82,
350 171, 179, 173, 78, 143, 0, 12, 97, 0, 0,
351 81, 0, 0, 81, 0, 175, 0, 175, 176, 0,
352 0, 175, 176, 77, 0, 175, 77, 0, 65, 59,
353 67, 76, 0, 132, 123, 177, 0, 132, 0, 183,
354 123, 177, 0, 183, 0, 1, 0, 235, 176, 0,
355 178, 0, 177, 81, 178, 0, 200, 201, 163, 143,
356 0, 200, 201, 163, 38, 107, 143, 0, 200, 201,
357 38, 107, 143, 0, 180, 0, 179, 81, 180, 0,
358 1, 0, 97, 0, 97, 36, 107, 0, 132, 182,
359 0, 183, 182, 0, 0, 185, 0, 7, 0, 183,
360 7, 0, 0, 184, 7, 0, 59, 185, 76, 0,
361 50, 184, 185, 0, 50, 184, 0, 185, 59, 223,
362 0, 185, 60, 99, 83, 0, 185, 60, 83, 0,
363 59, 223, 0, 60, 99, 83, 0, 60, 83, 0,
364 187, 0, 203, 0, 187, 203, 0, 187, 189, 0,
365 0, 186, 0, 1, 77, 0, 0, 0, 192, 0,
366 193, 0, 192, 193, 0, 32, 234, 77, 0, 195,
367 0, 1, 195, 0, 82, 78, 0, 82, 190, 191,
368 122, 188, 78, 0, 82, 190, 191, 1, 78, 0,
369 82, 190, 191, 186, 78, 0, 197, 202, 0, 197,
370 1, 0, 15, 59, 99, 76, 0, 0, 18, 199,
371 202, 17, 0, 0, 0, 200, 201, 205, 0, 200,
372 201, 216, 202, 0, 200, 201, 204, 0, 205, 0,
373 216, 0, 195, 0, 213, 0, 99, 77, 0, 0,
374 196, 16, 206, 202, 0, 196, 0, 196, 16, 1,
375 0, 0, 0, 17, 207, 59, 99, 76, 208, 202,
376 0, 198, 59, 99, 76, 77, 0, 198, 1, 0,
377 0, 0, 0, 19, 59, 218, 77, 209, 218, 77,
378 210, 218, 76, 211, 202, 0, 0, 20, 59, 99,
379 76, 212, 202, 0, 23, 77, 0, 24, 77, 0,
380 25, 77, 0, 25, 99, 77, 0, 27, 217, 59,
381 99, 76, 77, 0, 27, 217, 59, 99, 38, 219,
382 76, 77, 0, 27, 217, 59, 99, 38, 219, 38,
383 219, 76, 77, 0, 27, 217, 59, 99, 38, 219,
384 38, 219, 38, 222, 76, 77, 0, 26, 97, 77,
385 0, 26, 50, 99, 77, 0, 77, 0, 214, 0,
386 0, 19, 59, 113, 76, 215, 202, 0, 21, 107,
387 38, 0, 21, 107, 10, 107, 38, 0, 22, 38,
388 0, 97, 38, 0, 0, 7, 0, 0, 99, 0,
389 0, 220, 0, 221, 0, 220, 81, 221, 0, 9,
390 59, 99, 76, 0, 115, 0, 222, 81, 115, 0,
391 0, 224, 225, 0, 227, 76, 0, 0, 228, 77,
392 226, 225, 0, 1, 76, 0, 0, 10, 0, 228,
393 0, 228, 81, 10, 0, 229, 0, 228, 81, 229,
394 0, 126, 123, 165, 143, 0, 126, 123, 166, 143,
395 0, 126, 123, 182, 143, 0, 130, 123, 166, 143,
396 0, 130, 123, 182, 143, 0, 0, 231, 232, 0,
397 225, 0, 233, 76, 0, 3, 0, 233, 81, 3,
398 0, 97, 0, 234, 81, 97, 0, 31, 0, 240,
399 0, 238, 0, 239, 0, 250, 0, 260, 0, 63,
400 0, 97, 0, 237, 81, 97, 0, 73, 237, 77,
401 0, 74, 97, 97, 77, 0, 0, 0, 61, 97,
402 252, 82, 241, 254, 78, 242, 267, 63, 0, 0,
403 61, 97, 252, 243, 267, 63, 0, 0, 0, 61,
404 97, 38, 97, 252, 82, 244, 254, 78, 245, 267,
405 63, 0, 0, 61, 97, 38, 97, 252, 246, 267,
406 63, 0, 0, 62, 97, 82, 247, 254, 78, 0,
407 62, 97, 0, 0, 62, 97, 38, 97, 82, 248,
408 254, 78, 0, 62, 97, 38, 97, 0, 0, 61,
409 97, 59, 97, 76, 252, 249, 267, 63, 0, 62,
410 97, 59, 97, 76, 0, 0, 71, 97, 252, 251,
411 267, 63, 0, 0, 253, 0, 45, 237, 45, 0,
412 254, 255, 256, 0, 256, 0, 69, 0, 70, 0,
413 68, 0, 0, 256, 257, 77, 0, 256, 77, 0,
414 132, 123, 258, 0, 183, 123, 258, 0, 1, 0,
415 0, 259, 0, 258, 81, 259, 0, 163, 0, 163,
416 38, 107, 0, 38, 107, 0, 0, 0, 0, 48,
417 261, 277, 262, 278, 263, 194, 0, 0, 0, 0,
418 49, 264, 277, 265, 278, 266, 194, 0, 0, 0,
419 268, 269, 0, 272, 0, 89, 0, 269, 272, 0,
420 0, 269, 270, 89, 0, 77, 0, 1, 0, 0,
421 0, 48, 273, 277, 274, 271, 0, 0, 0, 49,
422 275, 277, 276, 271, 0, 59, 181, 76, 286, 0,
423 286, 0, 59, 181, 76, 287, 284, 0, 287, 284,
424 0, 0, 77, 279, 0, 0, 280, 0, 281, 0,
425 189, 0, 280, 281, 0, 281, 189, 0, 126, 123,
426 282, 77, 0, 126, 77, 0, 130, 77, 0, 283,
427 0, 282, 81, 283, 0, 165, 143, 0, 166, 143,
428 0, 182, 143, 0, 0, 81, 10, 0, 0, 81,
429 285, 227, 0, 288, 0, 290, 0, 287, 290, 0,
430 3, 0, 4, 0, 72, 0, 289, 0, 12, 0,
431 13, 0, 14, 0, 15, 0, 16, 0, 17, 0,
432 18, 0, 19, 0, 20, 0, 21, 0, 22, 0,
433 23, 0, 24, 0, 25, 0, 26, 0, 27, 0,
434 11, 0, 28, 0, 29, 0, 6, 0, 7, 0,
435 288, 38, 59, 181, 76, 97, 0, 288, 38, 97,
436 0, 38, 59, 181, 76, 97, 0, 38, 97, 0,
437 288, 0, 292, 0, 294, 0, 292, 294, 0, 101,
438 0, 288, 38, 293, 0, 38, 293, 0, 99, 0,
439 67, 0, 0, 0, 60, 297, 295, 298, 291, 83,
440 0, 288, 0, 300, 0, 301, 0, 300, 301, 0,
441 288, 38, 0, 38, 0, 64, 59, 299, 76, 0,
442 71, 59, 97, 76, 0, 66, 59, 181, 76, 0
445 #endif
447 #if YYDEBUG != 0
448 static const short yyrline[] = { 0,
449 236, 241, 255, 257, 257, 258, 260, 262, 263, 264,
450 272, 276, 287, 292, 297, 299, 301, 302, 303, 308,
451 315, 317, 322, 327, 333, 335, 340, 345, 351, 353,
452 358, 365, 367, 368, 369, 372, 374, 376, 378, 380,
453 382, 384, 388, 392, 395, 398, 401, 405, 407, 410,
454 413, 417, 445, 451, 454, 457, 460, 462, 466, 470,
455 474, 476, 479, 483, 510, 512, 514, 516, 518, 520,
456 522, 524, 526, 528, 530, 532, 534, 536, 540, 542,
457 546, 548, 551, 555, 557, 564, 567, 570, 576, 736,
458 737, 739, 745, 747, 761, 784, 786, 788, 800, 814,
459 816, 818, 820, 822, 824, 826, 831, 833, 839, 841,
460 845, 847, 848, 858, 863, 865, 866, 867, 874, 880,
461 885, 888, 896, 901, 903, 904, 905, 912, 923, 927,
462 933, 938, 943, 948, 950, 952, 961, 964, 968, 970,
463 972, 977, 981, 984, 988, 991, 993, 1005, 1008, 1010,
464 1012, 1016, 1020, 1022, 1025, 1038, 1041, 1045, 1047, 1055,
465 1056, 1057, 1061, 1063, 1068, 1070, 1072, 1078, 1079, 1080,
466 1083, 1085, 1088, 1090, 1093, 1096, 1102, 1109, 1111, 1118,
467 1125, 1128, 1135, 1138, 1142, 1145, 1149, 1154, 1157, 1161,
468 1164, 1166, 1168, 1170, 1177, 1179, 1180, 1181, 1186, 1188,
469 1193, 1201, 1206, 1210, 1213, 1215, 1220, 1223, 1225, 1227,
470 1231, 1234, 1234, 1237, 1239, 1250, 1258, 1262, 1273, 1281,
471 1288, 1290, 1295, 1298, 1303, 1305, 1307, 1314, 1316, 1317,
472 1325, 1331, 1333, 1335, 1342, 1344, 1350, 1356, 1358, 1360,
473 1362, 1369, 1371, 1374, 1379, 1381, 1385, 1387, 1389, 1391,
474 1395, 1397, 1400, 1403, 1406, 1409, 1413, 1415, 1418, 1420,
475 1424, 1427, 1432, 1434, 1436, 1440, 1464, 1471, 1476, 1482,
476 1487, 1489, 1494, 1496, 1500, 1504, 1508, 1518, 1520, 1525,
477 1530, 1533, 1537, 1540, 1544, 1547, 1550, 1553, 1557, 1560,
478 1564, 1568, 1570, 1572, 1574, 1576, 1578, 1580, 1582, 1592,
479 1600, 1602, 1604, 1608, 1610, 1613, 1616, 1629, 1631, 1636,
480 1638, 1641, 1655, 1658, 1661, 1663, 1671, 1679, 1690, 1695,
481 1698, 1711, 1719, 1723, 1727, 1731, 1737, 1741, 1746, 1749,
482 1754, 1757, 1758, 1775, 1780, 1783, 1795, 1797, 1807, 1817,
483 1818, 1826, 1829, 1841, 1845, 1862, 1872, 1881, 1886, 1891,
484 1896, 1900, 1904, 1915, 1922, 1929, 1936, 1947, 1953, 1956,
485 1961, 1984, 2018, 2043, 2074, 2089, 2100, 2104, 2108, 2111,
486 2116, 2118, 2121, 2123, 2127, 2132, 2135, 2141, 2146, 2151,
487 2153, 2162, 2163, 2169, 2171, 2181, 2183, 2187, 2190, 2196,
488 2206, 2215, 2224, 2234, 2248, 2253, 2258, 2260, 2269, 2272,
489 2277, 2280, 2284, 2292, 2294, 2295, 2296, 2297, 2298, 2312,
490 2315, 2319, 2325, 2331, 2338, 2343, 2349, 2356, 2362, 2368,
491 2373, 2379, 2386, 2392, 2398, 2404, 2412, 2418, 2424, 2432,
492 2439, 2445, 2454, 2461, 2469, 2474, 2477, 2487, 2489, 2492,
493 2494, 2495, 2498, 2503, 2504, 2521, 2528, 2534, 2538, 2541,
494 2542, 2545, 2553, 2559, 2568, 2578, 2585, 2589, 2594, 2603,
495 2610, 2614, 2624, 2626, 2627, 2629, 2631, 2632, 2633, 2634,
496 2636, 2638, 2641, 2647, 2652, 2652, 2657, 2661, 2663, 2669,
497 2674, 2679, 2688, 2690, 2696, 2698, 2701, 2703, 2704, 2705,
498 2708, 2714, 2716, 2720, 2723, 2730, 2736, 2741, 2748, 2753,
499 2758, 2763, 2770, 2774, 2777, 2783, 2785, 2786, 2787, 2790,
500 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801,
501 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2810,
502 2813, 2819, 2824, 2829, 2835, 2837, 2840, 2842, 2849, 2861,
503 2866, 2872, 2874, 2880, 2884, 2885, 2891, 2893, 2896, 2898,
504 2904, 2909, 2915, 2922, 2931
507 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
508 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
509 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
510 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
511 "EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
512 "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
513 "'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
514 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
515 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
516 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
517 "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
518 "unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
519 "cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
520 "string","objc_string","old_style_parm_decls","lineno_datadecl","datadecls",
521 "datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
522 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
523 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
524 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
525 "initdcl","@16","notype_initdcl","@17","maybe_attribute","attributes","attribute",
526 "attribute_list","attrib","any_word","init","@18","initlist_maybe_comma","initlist1",
527 "initelt","@19","@20","@21","nested_function","@22","@23","notype_nested_function",
528 "@24","@25","declarator","after_type_declarator","parm_declarator","notype_declarator",
529 "structsp","@26","@27","@28","@29","maybecomma","maybecomma_warn","component_decl_list",
530 "component_decl_list2","component_decl","components","component_declarator",
531 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
532 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
533 "label_decls","label_decl","compstmt_or_error","compstmt","simple_if","if_prefix",
534 "do_stmt_start","@30","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
535 "stmt_or_label","stmt","@31","@32","@33","@34","@35","@36","@37","all_iter_stmt",
536 "all_iter_stmt_simple","@38","label","maybe_type_qual","xexpr","asm_operands",
537 "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@39","parmlist_1",
538 "@40","parmlist_2","parms","parm","parmlist_or_identifiers","@41","parmlist_or_identifiers_1",
539 "identifiers","identifiers_or_typenames","extension","objcdef","identifier_list",
540 "classdecl","aliasdecl","classdef","@42","@43","@44","@45","@46","@47","@48",
541 "@49","@50","protocoldef","@51","protocolrefs","non_empty_protocolrefs","ivar_decl_list",
542 "visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator","methoddef",
543 "@52","@53","@54","@55","@56","@57","methodprotolist","@58","methodprotolist2",
544 "@59","semi_or_error","methodproto","@60","@61","@62","@63","methoddecl","optarglist",
545 "myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@64","unaryselector",
546 "keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist",
547 "keywordexpr","keywordarg","receiver","objcmessageexpr","@65","@66","selectorarg",
548 "keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr","objcencodeexpr",
551 #endif
553 static const short yyr1[] = { 0,
554 84, 84, 86, 85, 87, 85, 88, 88, 88, 88,
555 88, 89, 89, 89, 89, 89, 89, 89, 89, 91,
556 92, 90, 90, 93, 94, 90, 90, 95, 96, 90,
557 90, 97, 97, 97, 97, 98, 98, 98, 98, 98,
558 98, 98, 99, 100, 100, 101, 101, 102, 102, 102,
559 102, 102, 102, 102, 102, 102, 102, 102, 103, 104,
560 105, 105, 106, 105, 107, 107, 107, 107, 107, 107,
561 107, 107, 107, 107, 107, 107, 107, 108, 107, 109,
562 107, 110, 111, 107, 112, 107, 107, 107, 113, 113,
563 113, 113, 113, 114, 113, 113, 113, 113, 113, 113,
564 113, 113, 113, 113, 113, 113, 115, 115, 116, 116,
565 117, 117, 117, 118, 119, 119, 119, 119, 120, 120,
566 120, 120, 121, 122, 122, 122, 122, 123, 124, 125,
567 125, 125, 125, 125, 125, 125, 126, 126, 127, 127,
568 127, 127, 128, 128, 129, 129, 129, 130, 130, 130,
569 130, 131, 131, 131, 131, 132, 132, 133, 133, 134,
570 134, 134, 134, 134, 134, 134, 134, 135, 135, 135,
571 136, 136, 137, 137, 138, 138, 140, 139, 139, 142,
572 141, 141, 143, 143, 144, 144, 145, 146, 146, 147,
573 147, 147, 147, 147, 148, 148, 148, 148, 149, 150,
574 149, 149, 151, 151, 152, 152, 153, 154, 153, 153,
575 155, 153, 156, 153, 158, 159, 157, 161, 162, 160,
576 163, 163, 164, 164, 164, 164, 164, 164, 164, 164,
577 165, 165, 165, 165, 165, 165, 166, 166, 166, 166,
578 166, 166, 166, 168, 167, 167, 167, 169, 167, 167,
579 167, 170, 167, 171, 167, 167, 172, 172, 173, 173,
580 174, 174, 175, 175, 175, 175, 176, 176, 176, 176,
581 176, 176, 177, 177, 178, 178, 178, 179, 179, 179,
582 180, 180, 181, 181, 182, 182, 183, 183, 184, 184,
583 185, 185, 185, 185, 185, 185, 185, 185, 185, 186,
584 187, 187, 187, 188, 188, 189, 190, 191, 191, 192,
585 192, 193, 194, 194, 195, 195, 195, 195, 196, 196,
586 197, 199, 198, 200, 201, 202, 202, 203, 204, 204,
587 205, 205, 205, 206, 205, 205, 205, 207, 208, 205,
588 205, 205, 209, 210, 211, 205, 212, 205, 205, 205,
589 205, 205, 205, 205, 205, 205, 205, 205, 205, 213,
590 215, 214, 216, 216, 216, 216, 217, 217, 218, 218,
591 219, 219, 220, 220, 221, 222, 222, 224, 223, 225,
592 226, 225, 225, 227, 227, 227, 227, 228, 228, 229,
593 229, 229, 229, 229, 231, 230, 232, 232, 233, 233,
594 234, 234, 235, 236, 236, 236, 236, 236, 236, 237,
595 237, 238, 239, 241, 242, 240, 243, 240, 244, 245,
596 240, 246, 240, 247, 240, 240, 248, 240, 240, 249,
597 240, 240, 251, 250, 252, 252, 253, 254, 254, 255,
598 255, 255, 256, 256, 256, 257, 257, 257, 258, 258,
599 258, 259, 259, 259, 261, 262, 263, 260, 264, 265,
600 266, 260, 267, 268, 267, 269, 269, 269, 270, 269,
601 271, 271, 273, 274, 272, 275, 276, 272, 277, 277,
602 277, 277, 278, 278, 279, 279, 280, 280, 280, 280,
603 281, 281, 281, 282, 282, 283, 283, 283, 284, 284,
604 285, 284, 286, 287, 287, 288, 288, 288, 288, 289,
605 289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
606 289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
607 290, 290, 290, 290, 291, 291, 292, 292, 293, 294,
608 294, 295, 295, 297, 298, 296, 299, 299, 300, 300,
609 301, 301, 302, 303, 304
612 static const short yyr2[] = { 0,
613 0, 1, 0, 2, 0, 3, 1, 1, 1, 5,
614 2, 3, 4, 4, 2, 2, 2, 2, 1, 0,
615 0, 7, 4, 0, 0, 7, 4, 0, 0, 6,
616 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
617 1, 1, 1, 0, 1, 1, 3, 1, 2, 2,
618 2, 2, 2, 4, 2, 4, 2, 2, 1, 1,
619 1, 4, 0, 7, 1, 3, 3, 3, 3, 3,
620 3, 3, 3, 3, 3, 3, 3, 0, 4, 0,
621 4, 0, 0, 7, 0, 5, 3, 3, 1, 1,
622 1, 3, 3, 0, 4, 4, 4, 3, 3, 2,
623 2, 1, 1, 1, 1, 1, 1, 2, 1, 2,
624 0, 1, 2, 3, 1, 1, 2, 2, 4, 4,
625 2, 2, 3, 1, 1, 2, 2, 0, 0, 4,
626 4, 3, 3, 2, 2, 2, 2, 3, 0, 2,
627 2, 2, 2, 3, 0, 2, 2, 1, 1, 2,
628 2, 1, 1, 2, 2, 2, 3, 0, 2, 1,
629 1, 1, 2, 2, 1, 4, 4, 1, 1, 1,
630 1, 3, 1, 3, 0, 4, 0, 6, 3, 0,
631 6, 3, 0, 1, 1, 2, 6, 1, 3, 0,
632 1, 4, 6, 4, 1, 1, 1, 1, 1, 0,
633 4, 1, 0, 2, 1, 3, 1, 0, 4, 1,
634 0, 4, 0, 5, 0, 0, 5, 0, 0, 5,
635 1, 1, 3, 3, 4, 3, 3, 3, 1, 1,
636 3, 4, 3, 3, 3, 1, 3, 3, 3, 4,
637 3, 3, 1, 0, 7, 5, 2, 0, 7, 5,
638 2, 0, 8, 0, 7, 2, 0, 1, 0, 1,
639 1, 2, 0, 3, 2, 4, 3, 1, 3, 1,
640 1, 2, 1, 3, 4, 6, 5, 1, 3, 1,
641 1, 3, 2, 2, 0, 1, 1, 2, 0, 2,
642 3, 3, 2, 3, 4, 3, 2, 3, 2, 1,
643 1, 2, 2, 0, 1, 2, 0, 0, 1, 1,
644 2, 3, 1, 2, 2, 6, 5, 5, 2, 2,
645 4, 0, 4, 0, 0, 3, 4, 3, 1, 1,
646 1, 1, 2, 0, 4, 1, 3, 0, 0, 7,
647 5, 2, 0, 0, 0, 12, 0, 6, 2, 2,
648 2, 3, 6, 8, 10, 12, 3, 4, 1, 1,
649 0, 6, 3, 5, 2, 2, 0, 1, 0, 1,
650 0, 1, 1, 3, 4, 1, 3, 0, 2, 2,
651 0, 4, 2, 0, 1, 1, 3, 1, 3, 4,
652 4, 4, 4, 4, 0, 2, 1, 2, 1, 3,
653 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
654 3, 3, 4, 0, 0, 10, 0, 6, 0, 0,
655 12, 0, 8, 0, 6, 2, 0, 8, 4, 0,
656 9, 5, 0, 6, 0, 1, 3, 3, 1, 1,
657 1, 1, 0, 3, 2, 3, 3, 1, 0, 1,
658 3, 1, 3, 2, 0, 0, 0, 7, 0, 0,
659 0, 7, 0, 0, 2, 1, 1, 2, 0, 3,
660 1, 1, 0, 0, 5, 0, 0, 5, 4, 1,
661 5, 2, 0, 2, 0, 1, 1, 1, 2, 2,
662 4, 2, 2, 1, 3, 2, 2, 2, 0, 2,
663 0, 3, 1, 1, 2, 1, 1, 1, 1, 1,
664 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
665 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
666 6, 3, 5, 2, 1, 1, 1, 2, 1, 3,
667 2, 1, 1, 0, 0, 6, 1, 1, 1, 2,
668 2, 1, 4, 4, 4
671 static const short yydefact[] = { 3,
672 5, 0, 0, 0, 162, 153, 160, 152, 0, 0,
673 0, 0, 0, 0, 403, 0, 455, 459, 0, 0,
674 409, 435, 0, 435, 0, 0, 19, 4, 8, 7,
675 0, 128, 128, 148, 139, 149, 185, 161, 0, 9,
676 405, 406, 404, 407, 165, 408, 6, 17, 18, 32,
677 33, 35, 34, 254, 256, 263, 247, 263, 251, 0,
678 0, 0, 410, 0, 0, 0, 435, 426, 163, 436,
679 435, 164, 0, 0, 243, 289, 0, 0, 173, 129,
680 0, 16, 0, 15, 0, 150, 139, 151, 155, 154,
681 137, 186, 11, 0, 252, 0, 0, 0, 244, 0,
682 248, 89, 90, 107, 59, 60, 0, 0, 0, 36,
683 38, 37, 0, 39, 40, 0, 544, 0, 0, 0,
684 109, 41, 42, 0, 0, 43, 61, 0, 0, 65,
685 46, 48, 91, 106, 0, 102, 103, 104, 105, 287,
686 0, 285, 158, 0, 285, 190, 437, 0, 506, 507,
687 529, 530, 526, 510, 511, 512, 513, 514, 515, 516,
688 517, 518, 519, 520, 521, 522, 523, 524, 525, 527,
689 528, 0, 0, 508, 456, 480, 499, 503, 509, 504,
690 460, 0, 0, 417, 0, 0, 424, 433, 412, 0,
691 0, 0, 12, 0, 0, 31, 0, 395, 0, 0,
692 183, 229, 289, 0, 230, 0, 171, 129, 0, 221,
693 222, 0, 0, 138, 141, 168, 169, 140, 142, 170,
694 280, 281, 259, 278, 0, 0, 183, 271, 265, 128,
695 262, 128, 0, 263, 183, 263, 57, 58, 52, 49,
696 0, 0, 0, 0, 0, 0, 0, 0, 51, 0,
697 0, 0, 53, 0, 55, 0, 0, 82, 80, 78,
698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
699 0, 0, 100, 101, 0, 0, 44, 0, 108, 110,
700 50, 166, 289, 378, 0, 283, 286, 156, 167, 288,
701 158, 284, 196, 197, 198, 195, 0, 188, 191, 411,
702 0, 534, 0, 483, 501, 482, 0, 505, 0, 483,
703 435, 0, 414, 464, 429, 0, 443, 464, 413, 290,
704 239, 238, 174, 175, 242, 0, 237, 0, 241, 0,
705 0, 29, 0, 324, 116, 325, 182, 184, 0, 0,
706 14, 0, 0, 23, 0, 183, 395, 0, 13, 27,
707 0, 0, 260, 0, 259, 0, 246, 324, 264, 324,
708 272, 0, 250, 0, 93, 92, 307, 0, 0, 543,
709 542, 545, 552, 547, 0, 548, 549, 0, 0, 10,
710 47, 0, 0, 88, 87, 0, 0, 0, 0, 76,
711 77, 75, 74, 73, 71, 72, 66, 67, 68, 69,
712 70, 99, 98, 0, 45, 0, 293, 0, 297, 0,
713 299, 0, 378, 0, 159, 157, 0, 190, 44, 0,
714 0, 0, 457, 500, 384, 0, 532, 461, 422, 435,
715 443, 0, 0, 427, 432, 0, 0, 0, 0, 0,
716 399, 385, 128, 128, 397, 0, 386, 388, 396, 0,
717 240, 306, 0, 118, 113, 117, 0, 180, 227, 223,
718 172, 228, 21, 179, 224, 226, 0, 25, 282, 279,
719 183, 0, 266, 267, 273, 325, 269, 183, 183, 315,
720 308, 95, 63, 62, 0, 551, 553, 0, 550, 555,
721 554, 54, 56, 0, 0, 81, 79, 96, 97, 292,
722 291, 379, 298, 294, 296, 0, 187, 189, 89, 0,
723 0, 479, 499, 128, 0, 488, 484, 486, 0, 0,
724 502, 386, 0, 0, 419, 464, 430, 0, 418, 473,
725 476, 467, 0, 128, 128, 469, 466, 443, 442, 440,
726 441, 425, 443, 448, 445, 128, 128, 0, 434, 176,
727 383, 285, 285, 380, 381, 0, 398, 0, 0, 30,
728 313, 114, 128, 128, 145, 0, 0, 177, 225, 0,
729 255, 183, 324, 0, 245, 249, 0, 0, 309, 310,
730 0, 0, 535, 0, 536, 537, 83, 86, 295, 192,
731 0, 194, 533, 481, 492, 285, 493, 489, 490, 458,
732 0, 462, 443, 0, 464, 415, 0, 0, 175, 0,
733 0, 0, 468, 0, 0, 449, 449, 444, 236, 289,
734 378, 129, 183, 183, 183, 289, 183, 183, 0, 387,
735 389, 400, 314, 121, 0, 122, 0, 145, 143, 202,
736 200, 199, 181, 22, 0, 26, 253, 274, 0, 183,
737 401, 0, 0, 0, 324, 0, 0, 125, 325, 301,
738 311, 210, 89, 0, 208, 0, 207, 0, 257, 205,
739 539, 541, 0, 546, 0, 538, 0, 0, 183, 183,
740 183, 0, 494, 531, 0, 423, 0, 464, 474, 477,
741 470, 428, 0, 452, 446, 450, 447, 293, 0, 395,
742 0, 390, 391, 392, 293, 393, 394, 382, 0, 0,
743 144, 147, 146, 0, 178, 183, 0, 275, 312, 0,
744 317, 127, 126, 305, 0, 318, 303, 325, 302, 0,
745 0, 0, 211, 64, 0, 204, 540, 84, 193, 496,
746 497, 498, 491, 285, 420, 431, 0, 0, 0, 454,
747 0, 0, 234, 289, 235, 231, 233, 0, 119, 120,
748 0, 277, 183, 402, 316, 0, 162, 0, 338, 322,
749 0, 0, 0, 0, 0, 0, 0, 0, 367, 435,
750 435, 359, 0, 0, 123, 128, 128, 331, 336, 0,
751 0, 328, 329, 332, 360, 330, 0, 213, 0, 0,
752 206, 495, 464, 416, 472, 471, 475, 478, 453, 451,
753 0, 232, 201, 276, 0, 0, 324, 369, 0, 0,
754 365, 349, 350, 351, 0, 0, 0, 368, 0, 366,
755 333, 134, 0, 135, 0, 0, 320, 325, 319, 342,
756 0, 136, 0, 209, 212, 0, 0, 0, 0, 370,
757 48, 0, 0, 0, 363, 352, 0, 357, 0, 0,
758 132, 215, 0, 133, 218, 337, 324, 0, 0, 214,
759 421, 321, 0, 323, 361, 343, 347, 0, 358, 0,
760 130, 0, 131, 0, 335, 326, 324, 0, 339, 324,
761 369, 324, 364, 371, 0, 216, 219, 327, 341, 324,
762 362, 0, 348, 0, 0, 372, 373, 353, 0, 0,
763 340, 344, 0, 371, 0, 0, 217, 220, 369, 0,
764 0, 354, 374, 0, 375, 0, 0, 345, 376, 0,
765 355, 324, 0, 0, 346, 356, 377, 0, 0, 0
768 static const short yydefgoto[] = { 938,
769 1, 2, 3, 28, 29, 30, 345, 567, 351, 570,
770 200, 453, 666, 124, 242, 404, 126, 127, 128, 129,
771 130, 581, 131, 389, 388, 386, 677, 387, 132, 243,
772 133, 134, 332, 333, 334, 562, 654, 655, 31, 195,
773 785, 443, 91, 563, 639, 444, 34, 142, 288, 35,
774 218, 206, 78, 201, 207, 645, 79, 566, 337, 338,
775 37, 297, 298, 299, 643, 714, 668, 669, 670, 732,
776 800, 843, 861, 882, 909, 864, 884, 910, 324, 210,
777 679, 211, 38, 234, 236, 225, 94, 736, 354, 97,
778 98, 231, 474, 475, 223, 224, 144, 681, 145, 191,
779 287, 656, 657, 725, 335, 481, 578, 579, 580, 560,
780 561, 789, 790, 791, 817, 838, 457, 839, 660, 792,
781 793, 867, 816, 900, 891, 919, 932, 892, 794, 795,
782 890, 796, 829, 852, 905, 906, 907, 930, 409, 410,
783 445, 629, 446, 447, 448, 327, 328, 449, 450, 652,
784 135, 40, 64, 41, 42, 43, 431, 688, 314, 603,
785 803, 526, 317, 538, 605, 44, 318, 69, 45, 436,
786 543, 437, 548, 695, 696, 46, 65, 304, 520, 66,
787 310, 524, 432, 433, 536, 612, 807, 537, 607, 748,
788 608, 749, 175, 423, 517, 518, 519, 682, 683, 306,
789 425, 176, 177, 178, 179, 180, 584, 585, 672, 586,
790 372, 136, 245, 485, 375, 376, 377, 137, 138, 139
793 static const short yypact[] = { 128,
794 132, 2936, 2936, 108,-32768,-32768,-32768,-32768, 139, 253,
795 266, 86, 103, 111,-32768, 99,-32768,-32768, 99, 99,
796 -32768, 158, 99, 158, 99, 99,-32768,-32768,-32768,-32768,
797 169, 137, 2416, 115,-32768, 197,-32768,-32768, 2936,-32768,
798 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
799 -32768,-32768,-32768,-32768, 155, 214, 210, 214, 212, 2645,
800 2483, 252,-32768, 50, 3210, 3210, 151, 51,-32768,-32768,
801 158,-32768, 209, 99,-32768,-32768, 169, 286,-32768, 197,
802 1661,-32768, 319,-32768, 169, 115,-32768, 197,-32768,-32768,
803 729,-32768,-32768, 120,-32768, 255, 277, 1592,-32768, 283,
804 -32768,-32768,-32768,-32768,-32768,-32768, 2645, 2645, 99,-32768,
805 -32768,-32768, 2645,-32768,-32768, 932,-32768, 288, 312, 314,
806 -32768,-32768,-32768, 2645, 305, 311,-32768, 2699, 2753,-32768,
807 3581, 622, 396, 346, 2645,-32768,-32768,-32768,-32768,-32768,
808 356, 267,-32768, 359, 3364, 269,-32768, 99,-32768,-32768,
809 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
810 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
811 -32768, 398, 3487,-32768,-32768,-32768, 2377, 415,-32768,-32768,
812 -32768, 99, 99, 377, 99, 99,-32768,-32768,-32768, 397,
813 105, 119,-32768, 319, 169,-32768, 420,-32768, 1846, 1806,
814 197,-32768,-32768, 319,-32768, 327,-32768, 197, 1759, 434,
815 484, 364, 1680, 729,-32768,-32768,-32768,-32768, 197,-32768,
816 -32768, 473, 439,-32768, 120, 448, 197,-32768,-32768, 534,
817 445, 352, 3175, 214, 197, 214,-32768,-32768,-32768,-32768,
818 454, 456, 472, 481, 2537, 3272, 3487, 99,-32768, 485,
819 2645, 932,-32768, 932,-32768, 2645, 2645, 557,-32768,-32768,
820 2645, 2645, 2645, 2645, 2645, 2645, 2645, 2645, 2645, 2645,
821 2645, 2645,-32768,-32768, 99, 99, 2645, 2645,-32768,-32768,
822 -32768,-32768,-32768, 267, 1905,-32768, 562, 766,-32768,-32768,
823 -32768,-32768,-32768,-32768,-32768,-32768, 225,-32768, 547,-32768,
824 3487,-32768, 542, 550, 624,-32768, 415,-32768, 408, 550,
825 158, 560,-32768, 581, 566, 578,-32768, 581,-32768,-32768,
826 484,-32768,-32768, 641, 484, 660,-32768, 3089,-32768, 602,
827 614,-32768, 682, 83,-32768,-32768, 634, 197, 110, 243,
828 -32768, 319, 319,-32768, 1806, 197,-32768, 1964,-32768,-32768,
829 1806, 2645, 99, 619, 439, 627,-32768,-32768,-32768,-32768,
830 -32768, 620,-32768, 628,-32768,-32768, 629, 633, 2297,-32768,
831 -32768,-32768,-32768, 662, 640, 3272,-32768, 642, 644,-32768,
832 3581, 648, 650, 3581, 3581, 2645, 679, 2645, 2645, 2456,
833 783, 879, 1653, 1750, 760, 760, 537, 537,-32768,-32768,
834 -32768,-32768,-32768, 652, 311, 667, 336, 245,-32768, 3108,
835 -32768, 673,-32768, 2023,-32768, 766, 669, 269, 2807, 695,
836 3300, 850,-32768,-32768, 3375, 3487,-32768,-32768, 693, 158,
837 -32768, 718, 3011,-32768,-32768, 184, 2884, 719, 78, 707,
838 -32768,-32768,-32768, 3450,-32768, 711, 430,-32768,-32768, 298,
839 -32768,-32768, 76,-32768,-32768,-32768, 3469,-32768, 434,-32768,
840 -32768, 434,-32768, 752,-32768,-32768, 708,-32768, 3581,-32768,
841 197, 715,-32768, 713,-32768,-32768, 713, 197, 197,-32768,
842 763,-32768,-32768,-32768, 3336,-32768,-32768, 662,-32768,-32768,
843 -32768,-32768,-32768, 761, 2645, 1473, 1820,-32768,-32768, 562,
844 -32768,-32768,-32768,-32768,-32768, 722,-32768,-32768, 339, 730,
845 99,-32768, 2377, 740, 3119,-32768,-32768, 3450, 1778, 76,
846 -32768, 741, 765, 76,-32768, 581,-32768, 348,-32768,-32768,
847 -32768,-32768, 169, 137, 2416, 335,-32768,-32768,-32768,-32768,
848 -32768,-32768,-32768,-32768,-32768,-32768, 3506, 767,-32768,-32768,
849 -32768, 593, 238,-32768,-32768, 3439,-32768, 834, 472,-32768,
850 -32768,-32768, 768, 725,-32768, 839, 76,-32768,-32768, 76,
851 -32768, 197,-32768, 257,-32768,-32768, 99, 1101, 763,-32768,
852 1421, 2645, 805, 769, 3336,-32768,-32768, 1394,-32768,-32768,
853 2645,-32768,-32768,-32768,-32768, 593,-32768,-32768,-32768,-32768,
854 99,-32768,-32768, 790, 581,-32768, 3210, 3210, 70, 319,
855 169, 3039,-32768, 459, 2902, 280, 280,-32768,-32768,-32768,
856 238, 197, 340, 347, 197,-32768, 347, 197, 3108,-32768,
857 -32768,-32768,-32768,-32768, 319,-32768, 169,-32768, 659,-32768,
858 -32768, 3581,-32768,-32768, 839,-32768,-32768,-32768, 2645, 81,
859 -32768, 435, 564, 1021, 780, 782, 1181,-32768,-32768,-32768,
860 -32768,-32768, 828, 99,-32768, 833, 3581, 796, 800,-32768,
861 311,-32768, 2645,-32768, 805,-32768, 2645, 427, 340, 347,
862 197, 464,-32768,-32768, 515,-32768, 820, 581,-32768,-32768,
863 -32768,-32768, 2645, 846, 804,-32768, 804, 587, 510,-32768,
864 2082,-32768,-32768,-32768, 600,-32768,-32768,-32768, 501, 521,
865 659,-32768,-32768, 1421,-32768, 3214, 2645,-32768,-32768, 99,
866 -32768,-32768,-32768,-32768, 808,-32768,-32768,-32768,-32768, 2163,
867 854, 1421,-32768,-32768, 1501,-32768,-32768, 1394,-32768,-32768,
868 -32768,-32768,-32768, 593,-32768,-32768, 829, 80, 80, 3581,
869 2645, 280, 598,-32768, 598,-32768,-32768, 813,-32768,-32768,
870 822,-32768, 3214,-32768,-32768, 2243, 853, 842,-32768,-32768,
871 843, 845, 2645, 868, 830, 831, 2591, 372, 902, 187,
872 226,-32768, 873, 838,-32768, 865, 3138,-32768, 900, 1261,
873 91,-32768,-32768,-32768,-32768,-32768, 2405,-32768, 869, 1581,
874 -32768,-32768, 581,-32768,-32768,-32768,-32768,-32768, 3581,-32768,
875 278,-32768,-32768,-32768, 2645, 861,-32768, 2645, 2645, 3545,
876 -32768,-32768,-32768,-32768, 871, 2645, 872,-32768, 891,-32768,
877 -32768,-32768, 319,-32768, 169, 1341,-32768,-32768,-32768,-32768,
878 2645,-32768, 1581,-32768,-32768, 888, 877, 2645, 937,-32768,
879 441, 880, 882, 2645,-32768,-32768, 885,-32768, 2645, 523,
880 -32768, 442, 524,-32768, 663,-32768,-32768, 2243, 892,-32768,
881 -32768,-32768, 893,-32768,-32768,-32768,-32768, 3563,-32768, 58,
882 -32768, 1806,-32768, 1806,-32768,-32768,-32768, 887,-32768,-32768,
883 2645,-32768,-32768, 947, 890,-32768,-32768,-32768,-32768,-32768,
884 -32768, 896,-32768, 911, 60, 895,-32768,-32768, 472, 472,
885 -32768,-32768, 2645, 947, 897, 947,-32768,-32768, 2645, 903,
886 68,-32768,-32768, 907,-32768, 660, 901,-32768, 396, 429,
887 -32768,-32768, 908, 660,-32768,-32768, 396, 984, 988,-32768
890 static const short yypgoto[] = {-32768,
891 -32768,-32768,-32768, 102, -367,-32768,-32768,-32768,-32768,-32768,
892 -32768,-32768, -9,-32768, -52, 570, -231, 533,-32768,-32768,
893 -45,-32768, 220,-32768,-32768,-32768,-32768,-32768, 172,-32768,
894 -295,-32768, -308, 661,-32768,-32768, 342,-32768, 17, -195,
895 203, 16, 914,-32768, 367, 21, -11, -65, 703, 11,
896 -249, -574, -58, -206, -127,-32768,-32768,-32768, 196, 3,
897 -6,-32768, 584,-32768, 361,-32768, -607,-32768, -662,-32768,
898 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -68, -135,
899 -498, 14, -66,-32768,-32768,-32768,-32768,-32768, 653, 12,
900 -32768, 776, 655, 437, 788, 664, -12, -89, -50, -168,
901 -232, 363,-32768,-32768, -269,-32768,-32768,-32768, 440, -290,
902 -205,-32768,-32768,-32768,-32768, -122, -435, -741, 366,-32768,
903 148,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
904 -32768, 153,-32768, -739, 117,-32768, 121,-32768, 643,-32768,
905 -351,-32768, 632, 635, 497, -307,-32768,-32768,-32768,-32768,
906 18,-32768, 1033,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
907 -32768,-32768,-32768,-32768,-32768,-32768,-32768, -20, 4, -348,
908 -32768, 516,-32768, 450, 310,-32768,-32768,-32768,-32768,-32768,
909 -32768,-32768, -306,-32768,-32768,-32768, 316, 532,-32768,-32768,
910 -32768,-32768, -37, 762,-32768,-32768, 555,-32768, 333, 565,
911 -32768, 658, 665, -145,-32768, -119,-32768,-32768, 409, 498,
912 -32768,-32768,-32768,-32768,-32768,-32768, 714,-32768,-32768,-32768
916 #define YYLAST 3633
919 static const short yytable[] = { 55,
920 57, 59, 346, 72, 36, 36, 63, 125, 141, 67,
921 68, 438, 343, 71, 209, 63, 74, 32, 32, 39,
922 39, 86, 33, 33, 220, 70, 212, 70, 181, 92,
923 439, 307, 230, 80, 339, 88, 463, 368, 415, 465,
924 574, 36, 468, 87, 81, 405, 184, 232, 83, 85,
925 188, 408, 286, 623, 32, 292, 39, 308, 502, 33,
926 709, 237, 238, 454, 190, 532, 323, 240, 340, 100,
927 70, 143, 801, 92, 70, 849, 559, 336, 249, 80,
928 805, 92, 528, -112, 222, 208, 279, 80, 185, 281,
929 192, 840, 455, 219, 147, 894, 197, 914, 213, 239,
930 374, 50, 51, 244, 47, 926, 761, 75, 143, 186,
931 14, 320, 75, 202, 407, 233, 320, 346, 717, 89,
932 221, 90, 50, 51, 799, 885, 143, -1, 198, 199,
933 148, -2, 187, 895, 14, 915, 296, 845, 300, 14,
934 93, 50, 51, 927, 60, 898, 330, 220, 901, 841,
935 903, 902, 516, 550, 76, 291, 806, 367, 911, 203,
936 303, 61, 302, 77, -112, 52, 415, 230, 204, 62,
937 53, 75, 311, 312, 500, 315, 316, 198, 199, 924,
938 870, 205, 232, 143, 48, 49, 52, 405, 182, 614,
939 935, 53, 371, 80, 322, 16, 208, 80, 14, 753,
940 755, 92, 16, 459, 321, 52, 208, 462, 325, 183,
941 53, 336, 92, 82, 461, 222, 219, 192, 76, 604,
942 54, 220, 336, 730, -35, 406, 14, 77, 336, 600,
943 488, 16, 412, 602, 378, 476, 95, 476, 379, 382,
944 75, 383, 291, 143, 691, 362, 358, 364, 360, 599,
945 233, 539, 540, 541, 685, 50, 51, 143, 860, 75,
946 202, 542, 143, -34, 143, 402, 403, 14, 50, 51,
947 16, 50, 51, 293, 294, 295, 644, 708, 96, 646,
948 75, 619, 75, 202, 320, 189, 14, 626, 420, 148,
949 429, 99, 766, 101, 649, 467, 621, 285, 687, 427,
950 417, 347, 348, 413, 414, 418, 203, 14, 658, 14,
951 146, 143, 753, 226, 70, 204, 283, 693, 460, 52,
952 501, 75, 202, 484, 53, 284, 285, 754, 205, 203,
953 36, 92, 52, 494, 56, 52, 77, 53, 204, 583,
954 53, 208, 320, 222, 208, 208, 246, 58, 14, 220,
955 671, 205, 321, 633, 227, 5, 325, 7, 290, 678,
956 235, 506, 193, 9, 10, 11, 194, 307, 203, 14,
957 247, 546, 248, 557, 50, 51, 14, 204, 558, 13,
958 250, 747, 530, 531, 722, 283, 547, 727, 408, 713,
959 205, 251, 756, 308, 284, 285, 16, -465, 700, 701,
960 50, 51, 868, 341, 279, 198, 199, 342, 296, 527,
961 50, 51, 36, 523, 590, 539, 540, 541, 22, 591,
962 280, 826, 357, 24, 36, 606, 699, 36, -270, -270,
963 363, 282, 86, 70, 289, 36, 143, 514, 52, 675,
964 349, 671, 515, 53, 194, 564, 88, 143, 534, 533,
965 476, 698, 309, 535, 87, 659, 301, 705, 313, 552,
966 553, 713, 625, 628, 52, 500, 426, 565, 197, 53,
967 381, -175, 500, 319, 52, 384, 385, -175, 326, 53,
968 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
969 400, 401, 347, 348, 273, 274, 846, 275, 276, 277,
970 278, 593, 739, 86, 933, 650, 555, 251, 352, 934,
971 556, 719, 75, 619, 356, 720, 875, 88, -175, 353,
972 36, 359, -175, 86, 788, 87, 539, 540, 541, 365,
973 596, 366, 659, 514, 728, 80, 692, 88, 515, 14,
974 743, 464, 198, 199, 744, 87, 609, 694, 694, 546,
975 610, 611, 212, 367, 622, 80, 369, 291, 36, 754,
976 788, 380, 616, 617, 547, 624, 627, 651, 77, 689,
977 690, 469, 220, 896, 638, 897, 208, 759, 710, 635,
978 637, 342, 539, 540, 541, 811, 270, 271, 272, 75,
979 619, 684, 745, 320, -85, 75, 619, 760, 622, 881,
980 883, 194, 75, 342, 194, 419, 320, 496, 497, 680,
981 -268, -268, 208, 80, 36, 92, 14, 421, 208, 208,
982 413, 414, 14, 80, 609, 143, 422, 534, 533, 14,
983 929, 36, 535, 424, 192, 430, 620, 208, 937, 80,
984 452, 721, 620, -463, 220, 621, 285, 434, 758, 626,
985 609, 621, 285, 435, 731, 346, 700, 701, 621, 285,
986 253, 255, 788, 712, 216, 217, 571, 197, 104, 458,
987 9, 10, 11, 575, 576, 273, 274, 784, 275, 276,
988 277, 278, 331, 694, 451, -115, -115, -115, -115, 197,
989 452, -115, -175, -115, -115, -115, 471, 478, -175, 486,
990 622, 622, 473, 917, 918, 479, 480, 80, 482, -115,
991 764, 321, 325, 784, 588, 487, 495, 490, 321, 491,
992 783, 198, 199, 492, 825, 493, -115, 498, 5, 89,
993 7, 90, 36, 215, 216, 217, 9, 10, 11, -175,
994 9, 10, 11, -175, 507, 786, 622, 797, -115, 499,
995 787, 281, 13, -115, 208, 503, 783, 680, 14, 336,
996 72, 336, 847, -115, 862, 850, 853, 647, 827, 16,
997 511, 216, 217, 857, 525, 86, 863, 9, 10, 11,
998 529, 549, 551, 70, 70, 642, 554, 568, 869, 88,
999 569, 22, 572, 573, 577, 873, 24, 87, 587, 36,
1000 667, 636, 833, 835, 589, 592, 880, 268, 269, 270,
1001 271, 272, 786, 622, 797, 784, 595, 787, 702, 703,
1002 704, 556, 706, 707, 321, 263, 264, 265, 266, 267,
1003 268, 269, 270, 271, 272, 208, 632, 80, 850, 640,
1004 601, 102, 673, 618, 634, 718, 103, 104, 865, 105,
1005 331, 674, 686, 5, 6, 7, 8, -304, 783, 726,
1006 920, 9, 10, 11, 642, -32, 850, 106, 716, 15,
1007 733, 107, 108, 734, 740, 741, 742, 13, 109, 14,
1008 735, 110, 746, 751, 752, 765, 111, 112, 113, 798,
1009 -33, 804, 114, 115, 16, 812, 738, 116, 117, 813,
1010 815, 818, 118, 819, 119, 821, 822, 823, 828, 120,
1011 830, 762, 750, 121, 831, 836, 22, 122, 123, 848,
1012 641, 24, 264, 265, 266, 267, 268, 269, 270, 271,
1013 272, -485, 241, 667, 102, 5, 763, 7, 140, 103,
1014 104, 832, 105, 9, 10, 11, 844, 856, 858, 859,
1015 871, 667, 872, 874, 667, 904, 876, 877, 814, 13,
1016 106, 879, 15, 899, 107, 108, 908, 888, 889, 913,
1017 809, 109, 912, 922, 110, 916, 16, 931, 925, 111,
1018 112, 113, 928, 939, 936, 114, 115, 940, 510, 851,
1019 116, 117, 820, 416, 456, 118, 723, 119, 22, 842,
1020 214, 508, 120, 24, 711, 715, 121, 472, 361, 648,
1021 122, 123, 355, -94, 477, 886, 470, 724, 661, 667,
1022 887, 331, 729, -124, -124, -124, -124, -124, -124, -124,
1023 921, -124, -124, -124, -124, -124, 923, -124, -124, -124,
1024 -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
1025 -124, -124, 631, -124, -124, 504, 521, 73, 615, 522,
1026 -124, 810, 667, -124, 808, -124, 697, 613, -124, -124,
1027 -124, 428, 598, 878, -124, -124, 802, 594, 512, -124,
1028 -124, 737, 676, 0, -124, 513, -124, -124, 0, 489,
1029 0, -124, -124, 0, 0, -124, 0, -124, -124, -124,
1030 -124, 653, -124, -324, -324, -324, -324, -324, -324, -324,
1031 0, -324, -324, -324, -324, -324, 0, -324, -324, -324,
1032 -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
1033 -324, -324, 0, -324, -324, 0, 0, 0, 0, 0,
1034 -324, 0, 0, -324, 0, -324, 0, 0, -324, -324,
1035 -324, 0, 0, 0, -324, -324, 0, 0, 0, -324,
1036 -324, 0, 0, 0, -324, 0, -324, -324, 0, 0,
1037 0, -324, -324, 0, 0, -324, 0, -324, 0, -324,
1038 -324, 331, -324, -324, -324, 0, 0, 0, -324, -324,
1039 0, -324, 0, 0, 0, -324, 0, -324, -324, -324,
1040 -324, -324, -324, -324, -324, -324, -324, -324, 0, -324,
1041 0, -324, 0, -324, -324, 0, 0, 0, 0, 0,
1042 -324, 0, 0, -324, 0, 0, 0, 0, -324, -324,
1043 -324, 0, 0, 0, -324, -324, 0, 0, 0, -324,
1044 -324, 0, 0, 0, -324, 0, -324, -324, 0, 0,
1045 0, -324, -324, 0, 0, -324, 0, -324, -300, -324,
1046 -324, 837, -324, -324, -324, 0, 0, 0, -324, -324,
1047 0, -324, 0, 0, 0, -324, 0, -324, -324, -324,
1048 -324, -324, -324, -324, -324, -324, -324, -324, 0, -324,
1049 0, -324, 0, -324, -324, 0, 0, 0, 0, 0,
1050 -324, 0, 0, -324, 0, 0, 0, 0, -324, -324,
1051 -324, 0, 0, 0, -324, -324, 0, 0, 0, -324,
1052 -324, 0, 0, 0, -324, 0, -324, -324, 0, 0,
1053 0, -324, -324, 0, 0, -324, 0, -324, 0, -324,
1054 -324, 866, -324, -334, -334, 0, 0, 0, -334, -334,
1055 0, -334, 0, 0, 0, -334, 0, -334, -334, -334,
1056 -334, -334, -334, -334, -334, -334, -334, -334, 0, -334,
1057 0, -334, 0, -334, -334, 0, 0, 0, 0, 0,
1058 -334, 0, 0, -334, 0, 0, 0, 0, -334, -334,
1059 -334, 0, 0, 0, -334, -334, 0, 0, 0, -334,
1060 -334, 0, 0, 0, -334, 0, -334, -334, 0, 0,
1061 0, -334, -334, 0, 0, -334, 0, -334, 0, -334,
1062 -334, 662, -334, 663, 51, 0, 0, 0, 103, 104,
1063 258, 105, 259, 260, 261, 262, 263, 264, 265, 266,
1064 267, 268, 269, 270, 271, 272, 0, 0, 0, 106,
1065 0, 15, 0, 107, 108, 0, 0, 0, 0, 0,
1066 109, 0, 0, 110, 0, 0, 0, 0, 111, 112,
1067 113, 0, 0, 0, 114, 115, 0, 0, 664, 116,
1068 117, 0, 0, 0, 118, 0, 119, 52, 0, 0,
1069 0, 120, 53, 0, 0, 121, 0, 0, -203, 122,
1070 123, 662, 665, 663, 51, 0, 0, 0, 103, 104,
1071 0, 105, 260, 261, 262, 263, 264, 265, 266, 267,
1072 268, 269, 270, 271, 272, 0, 0, 0, 0, 106,
1073 0, 15, 0, 107, 108, 0, 0, 0, 0, 0,
1074 109, 0, 0, 110, 0, 0, 0, 0, 111, 112,
1075 113, 0, 0, 0, 114, 115, 0, 0, 664, 116,
1076 117, 0, 0, 0, 118, 0, 119, 52, 0, 0,
1077 0, 120, 53, 0, 0, 121, 0, 0, -258, 122,
1078 123, 662, 665, 663, 51, 0, 0, 0, 103, 104,
1079 0, 105, 228, 0, 0, 5, 0, 7, 140, 0,
1080 0, 0, 0, 9, 10, 11, 0, 0, 0, 106,
1081 0, 15, 0, 107, 108, 0, 0, 0, 0, 13,
1082 109, 0, 15, 110, 0, 0, 0, 0, 111, 112,
1083 113, 0, 0, 0, 114, 115, 16, 0, 664, 116,
1084 117, 0, 0, 0, 118, 0, 119, 52, 0, 0,
1085 0, 120, 53, 0, 0, 121, 0, 0, 22, 122,
1086 123, 196, 665, 24, -28, -28, -28, -28, 229, -261,
1087 0, 0, -28, -28, -28, 0, 0, 0, 0, 0,
1088 350, 0, 0, -24, -24, -24, -24, 197, -28, 0,
1089 -175, -24, -24, -24, 0, 0, -175, 265, 266, 267,
1090 268, 269, 270, 271, 272, -28, 197, -24, 0, -175,
1091 0, 0, 0, 0, 0, -175, 0, 0, 0, 198,
1092 199, 0, 0, 0, -24, 0, 0, -28, 0, 0,
1093 0, 0, -28, 0, 0, 0, 0, -175, 198, 199,
1094 0, -175, -28, 0, 0, 0, -24, 0, 0, 0,
1095 0, -24, 0, 0, 0, 0, -175, 0, 0, 344,
1096 -175, -24, -20, -20, -20, -20, 0, 0, 0, 0,
1097 -20, -20, -20, 0, 0, 0, 0, 0, 331, 0,
1098 0, -487, -487, -487, -487, 197, -20, 0, -175, -487,
1099 -487, -487, 0, 0, -175, 266, 267, 268, 269, 270,
1100 271, 272, 0, -20, 0, -487, 331, -487, 0, -324,
1101 -324, -324, -324, 0, 0, 0, 0, -324, -324, -324,
1102 0, 0, -487, 0, 0, -20, 0, 0, 0, 0,
1103 -20, 0, 0, -324, 0, -175, 0, 0, 0, -175,
1104 -20, 0, 0, 0, -487, 0, 0, 0, 102, -487,
1105 -324, 0, 0, 103, 104, 0, 105, 0, 0, -487,
1106 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
1107 271, 272, -324, 0, 106, 0, 15, -324, 107, 108,
1108 0, 0, 0, 0, 0, 109, 0, -111, 110, 0,
1109 0, 0, 0, 111, 112, 113, 0, 0, 0, 114,
1110 115, 0, 0, 0, 116, 117, 0, 102, 0, 118,
1111 0, 119, 103, 104, 0, 105, 120, 0, 0, 0,
1112 121, 0, 0, 0, 122, 123, 0, 0, 329, 0,
1113 0, 0, 0, 106, 0, 15, 0, 107, 108, 0,
1114 0, 0, 0, 0, 109, 0, 0, 110, 0, 0,
1115 0, 0, 111, 112, 113, 0, 0, 0, 114, 115,
1116 0, 0, 0, 116, 117, 0, 102, 0, 118, 0,
1117 119, 103, 104, 0, 105, 120, 0, 0, 0, 121,
1118 0, 0, 0, 122, 123, 0, 0, 411, 0, 0,
1119 0, 0, 106, 0, 15, 0, 107, 108, 0, 0,
1120 0, 0, 0, 109, 0, 0, 110, 0, 0, 0,
1121 0, 111, 112, 113, 0, 0, 0, 114, 115, 0,
1122 0, 0, 116, 117, 0, 102, 0, 118, 0, 119,
1123 103, 104, 0, 105, 120, 0, 0, 0, 121, 0,
1124 0, 0, 122, 123, 0, 0, 466, 0, 0, 0,
1125 0, 106, 0, 15, 0, 107, 108, 0, 0, 0,
1126 0, 0, 109, 0, 0, 110, 0, 0, 0, 0,
1127 111, 112, 113, 0, 0, 0, 114, 115, 0, 0,
1128 0, 116, 117, 0, 102, 0, 118, 0, 119, 103,
1129 104, 0, 105, 120, 0, 0, 0, 121, 0, 0,
1130 0, 122, 123, 0, 0, 505, 0, 0, 0, 0,
1131 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1132 0, 109, 0, 0, 110, 0, 0, 0, 0, 111,
1133 112, 113, 0, 0, 0, 114, 115, 0, 0, 0,
1134 116, 117, 0, 0, 0, 118, 0, 119, 0, 0,
1135 0, 0, 120, 0, 0, 0, 121, 0, 0, 0,
1136 122, 123, 0, 0, 757, 663, 767, 6, 7, 8,
1137 103, 104, 0, 105, 9, 10, 11, 768, 0, 769,
1138 770, 771, 772, 773, 774, 775, 776, 777, 778, 779,
1139 13, 106, 14, 15, 0, 107, 108, 0, 0, 0,
1140 0, 0, 109, 0, 0, 110, 0, 16, 0, 0,
1141 111, 112, 113, 0, 0, 0, 114, 115, 0, 0,
1142 0, 116, 117, 0, 0, 0, 118, 0, 119, 780,
1143 0, 0, 0, 120, 781, 0, 0, 121, 0, 782,
1144 0, 122, 123, 0, 367, 663, 51, 0, 0, 0,
1145 103, 104, 0, 105, 0, 0, 0, 768, 0, 769,
1146 770, 771, 772, 773, 774, 775, 776, 777, 778, 779,
1147 0, 106, 0, 15, 0, 107, 108, 0, 0, 0,
1148 0, 0, 109, 0, 0, 110, 0, 0, 0, 0,
1149 111, 112, 113, 0, 0, 0, 114, 115, 0, 102,
1150 0, 116, 117, 0, 103, 104, 118, 105, 119, 52,
1151 0, 0, 0, 120, 53, 0, 0, 121, 0, 782,
1152 0, 122, 123, 0, 367, 106, 0, 15, 0, 107,
1153 108, 0, 0, 0, 0, 0, 109, 0, 0, 110,
1154 0, 0, 0, 0, 111, 112, 113, 0, 0, 0,
1155 114, 115, 0, 0, 0, 116, 117, 0, 0, 0,
1156 118, 0, 119, 0, 0, 0, 0, 120, 0, 0,
1157 0, 121, 0, 0, 0, 122, 123, 0, 483, 149,
1158 150, 0, 151, 152, 0, 0, 0, 153, 154, 155,
1159 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1160 166, 167, 168, 169, 170, 171, 0, 102, 5, 6,
1161 7, 8, 103, 104, 172, 105, 9, 10, 11, 5,
1162 6, 7, 8, 0, 0, 0, 0, 9, 10, 11,
1163 0, 0, 13, 106, 14, 15, 0, 107, 108, 0,
1164 0, 0, 0, 13, 109, 14, 0, 110, 174, 16,
1165 0, 0, 111, 112, 113, 0, 0, 305, 114, 115,
1166 16, 0, 0, 116, 117, 0, 0, 0, 118, 0,
1167 119, 22, 0, 0, 0, 120, 24, 0, 0, 121,
1168 0, 0, 22, 122, 123, 102, 5, 24, 7, 140,
1169 103, 104, 84, 105, 9, 10, 11, 262, 263, 264,
1170 265, 266, 267, 268, 269, 270, 271, 272, 0, 0,
1171 13, 106, 0, 15, 0, 107, 108, 0, 0, 0,
1172 0, 0, 109, 0, 0, 110, 0, 16, 0, 0,
1173 111, 112, 113, 0, 0, 0, 114, 115, 0, 102,
1174 0, 116, 117, 0, 103, 104, 118, 105, 119, 22,
1175 0, 0, 0, 120, 24, 0, 0, 121, 0, 0,
1176 0, 122, 123, 0, 0, 106, 0, 15, 0, 107,
1177 108, 0, 0, 0, 0, 0, 109, 0, 0, 110,
1178 0, 0, 0, 0, 111, 112, 113, 0, 0, 0,
1179 114, 115, 0, 102, 0, 116, 117, 0, 103, 104,
1180 118, 105, 119, 370, 0, 0, 0, 120, 0, 0,
1181 0, 121, 0, 0, 0, 122, 123, 0, 0, 106,
1182 0, 15, 0, 107, 108, 0, 0, 0, 0, 0,
1183 109, 0, 0, 110, 0, 0, 0, 0, 111, 112,
1184 113, 0, 0, 0, 114, 115, 0, 102, 0, 116,
1185 117, 0, 103, 104, 118, 105, 119, 0, 0, 0,
1186 0, 120, 0, 0, 0, 121, 0, 824, 0, 122,
1187 123, 0, 0, 106, 0, 15, 0, 107, 108, 0,
1188 0, 0, 0, 0, 109, 0, 0, 110, 0, 0,
1189 0, 0, 111, 112, 113, 0, 0, 0, 114, 115,
1190 0, 102, 0, 116, 117, 0, 103, 104, 118, 105,
1191 119, 0, 0, 0, 0, 120, 0, 0, 0, 121,
1192 0, 0, 0, 122, 123, 0, 0, 106, 0, 15,
1193 0, 107, 108, 0, 0, 0, 0, 0, 109, 0,
1194 0, 110, 0, 0, 0, 0, 111, 112, 113, 0,
1195 0, 0, 114, 115, 0, 102, 0, 252, 117, 0,
1196 103, 104, 118, 105, 119, 0, 0, 0, 0, 120,
1197 0, 0, 0, 121, 0, 0, 0, 122, 123, 0,
1198 0, 106, 0, 15, 0, 107, 108, 0, 0, 0,
1199 0, 0, 109, 0, 0, 110, 0, 0, 0, 0,
1200 111, 112, 113, 0, 0, 0, 114, 115, 0, 509,
1201 0, 254, 117, 0, 103, 104, 118, 105, 119, 0,
1202 0, 0, 0, 120, 0, 0, 0, 121, 0, 0,
1203 0, 122, 123, 0, 0, 106, 0, 15, 0, 107,
1204 108, 0, 0, 0, 0, 0, 109, 0, 0, 110,
1205 0, 0, 0, 0, 111, 112, 113, 0, 0, 0,
1206 114, 115, 0, 0, 0, 116, 117, 0, 0, 0,
1207 118, 0, 119, 0, 0, 0, 0, 120, 0, 0,
1208 0, 121, 0, 0, 544, 122, 123, 5, 0, 7,
1209 140, 0, 0, 0, 0, 9, 10, 11, 0, 0,
1210 0, 0, 544, 0, 0, 5, 0, 7, 140, 0,
1211 0, 13, 0, 9, 10, 11, 0, 0, 0, 0,
1212 0, 0, 0, 0, 0, 0, 0, 0, 16, 13,
1213 0, 0, 0, 0, 0, 0, 4, 0, -128, 5,
1214 6, 7, 8, 0, 0, 0, 16, 9, 10, 11,
1215 22, -439, -439, -439, 0, 24, 0, 0, 0, 0,
1216 545, -439, 12, 13, 0, 14, 15, 0, 22, -438,
1217 -438, -438, 0, 24, 0, 0, 0, 0, 545, -438,
1218 16, 0, 0, 17, 18, -128, 0, 0, 0, 0,
1219 0, 0, 0, 0, -128, 0, 19, 20, 21, 0,
1220 0, 0, 22, 0, 0, 0, 23, 24, 25, 26,
1221 0, 4, 27, -128, 5, 6, 7, 8, 0, 0,
1222 0, 0, 9, 10, 11, 0, 0, 0, 0, 0,
1223 0, 0, 0, 0, 0, 0, 0, 0, 13, 4,
1224 14, -128, 5, 6, 7, 8, 0, 0, 0, 0,
1225 9, 10, 11, 0, 0, 16, 0, 0, 530, 531,
1226 -128, 0, 0, 0, 0, 0, 13, 0, 14, -128,
1227 0, 0, 0, 0, 0, 0, 0, 22, 0, 0,
1228 0, 0, 24, 16, 0, 0, 0, 27, -128, 440,
1229 0, 441, 5, 6, 7, 8, 0, -128, 442, 0,
1230 9, 10, 11, 0, 0, 22, 0, 0, 440, 0,
1231 24, 5, 6, 7, 8, 27, 13, 442, 14, 9,
1232 10, 11, 5, 6, 7, 8, 0, 0, 0, 0,
1233 9, 10, 11, 16, 0, 13, 0, 14, 0, 0,
1234 0, 5, 6, 7, 8, 0, 13, 0, 14, 9,
1235 10, 11, 16, 0, 0, 22, 0, 0, 0, 0,
1236 24, 0, 0, 16, -384, 13, 0, 14, 0, 0,
1237 0, 0, 0, 0, 22, 228, 0, 0, 5, 24,
1238 7, 140, 16, -384, 0, 22, 9, 10, 11, 0,
1239 24, 0, 0, 0, 0, 597, 0, 0, 0, 0,
1240 0, 0, 13, 0, 22, 15, 0, 0, 0, 24,
1241 0, 0, 149, 150, 834, 151, 152, 0, 0, 16,
1242 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
1243 163, 164, 165, 166, 167, 168, 169, 170, 171, 0,
1244 0, 22, 0, 14, 0, 0, 24, 172, 256, 257,
1245 258, 0, 259, 260, 261, 262, 263, 264, 265, 266,
1246 267, 268, 269, 270, 271, 272, 0, 0, 173, 0,
1247 0, 0, 0, 0, 149, 150, 0, 151, 152, 0,
1248 0, 174, 153, 154, 155, 156, 157, 158, 159, 160,
1249 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
1250 171, 0, 149, 150, 0, 151, 152, 0, 0, 373,
1251 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
1252 163, 164, 165, 166, 167, 168, 169, 170, 171, 0,
1253 0, 0, 0, 0, 0, 0, 0, 172, 149, 150,
1254 0, 151, 152, 174, 0, 0, 153, 154, 155, 156,
1255 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
1256 167, 168, 169, 170, 171, 0, 0, 5, 0, 7,
1257 290, 174, 0, 582, 0, 9, 10, 11, 5, 6,
1258 7, 8, 0, 0, 442, 0, 9, 10, 11, 0,
1259 0, 13, 0, 0, 0, 0, 0, 0, 0, 0,
1260 0, 0, 13, 0, 14, 0, 0, 174, 16, 0,
1261 0, 0, 0, 283, 0, 0, 0, 0, 0, 16,
1262 0, 0, 284, 285, 0, 0, 0, 0, 0, 0,
1263 22, 0, 0, 0, 0, 24, 0, 0, 0, 0,
1264 0, 22, 5, 6, 7, 8, 24, 0, 630, 0,
1265 9, 10, 11, 5, 6, 7, 8, 0, 0, 0,
1266 0, 9, 10, 11, 0, 0, 13, 0, 14, 0,
1267 0, 0, 5, 6, 7, 8, 0, 13, 0, 14,
1268 9, 10, 11, 16, 0, 0, 0, 0, 0, 0,
1269 5, 0, 7, 140, 16, 0, 13, 0, 9, 10,
1270 11, 0, 0, 0, 0, 22, 0, 0, 0, 5,
1271 24, 7, 290, 16, 13, 0, 22, 9, 10, 11,
1272 0, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1273 0, 16, 0, 13, 0, 22, 0, 0, 0, 0,
1274 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1275 16, 0, 0, 22, 854, 0, 0, 0, 24, 0,
1276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1277 0, 0, 22, 0, 0, 0, 0, 24, 0, 256,
1278 257, 258, 855, 259, 260, 261, 262, 263, 264, 265,
1279 266, 267, 268, 269, 270, 271, 272, 256, 257, 258,
1280 893, 259, 260, 261, 262, 263, 264, 265, 266, 267,
1281 268, 269, 270, 271, 272, 256, 257, 258, 0, 259,
1282 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1283 270, 271, 272
1286 static const short yycheck[] = { 9,
1287 10, 11, 209, 24, 2, 3, 16, 60, 61, 19,
1288 20, 318, 208, 23, 83, 25, 26, 2, 3, 2,
1289 3, 33, 2, 3, 91, 22, 85, 24, 66, 36,
1290 326, 177, 98, 31, 203, 33, 345, 243, 288, 347,
1291 476, 39, 351, 33, 31, 277, 67, 98, 32, 33,
1292 71, 284, 142, 552, 39, 145, 39, 177, 410, 39,
1293 635, 107, 108, 333, 74, 433, 194, 113, 204, 58,
1294 67, 61, 735, 80, 71, 817, 1, 200, 124, 77,
1295 1, 88, 431, 1, 94, 83, 9, 85, 38, 135,
1296 77, 1, 10, 91, 45, 38, 27, 38, 85, 109,
1297 246, 3, 4, 116, 3, 38, 714, 3, 98, 59,
1298 30, 7, 3, 4, 283, 98, 7, 324, 38, 5,
1299 1, 7, 3, 4, 732, 867, 116, 0, 59, 60,
1300 81, 0, 82, 76, 30, 76, 146, 800, 148, 30,
1301 39, 3, 4, 76, 59, 887, 199, 214, 890, 59,
1302 892, 891, 422, 76, 50, 145, 77, 82, 900, 50,
1303 173, 59, 172, 59, 82, 67, 416, 233, 59, 59,
1304 72, 3, 182, 183, 407, 185, 186, 59, 60, 919,
1305 843, 72, 233, 173, 77, 78, 67, 419, 38, 538,
1306 932, 72, 245, 191, 76, 45, 194, 195, 30, 698,
1307 699, 208, 45, 339, 191, 67, 204, 343, 195, 59,
1308 72, 334, 219, 77, 342, 225, 214, 204, 50, 526,
1309 82, 288, 345, 659, 38, 278, 30, 59, 351, 520,
1310 376, 45, 285, 524, 247, 358, 82, 360, 248, 252,
1311 3, 254, 232, 233, 612, 234, 230, 236, 232, 519,
1312 233, 68, 69, 70, 603, 3, 4, 247, 833, 3,
1313 4, 78, 252, 38, 254, 275, 276, 30, 3, 4,
1314 45, 3, 4, 5, 6, 7, 567, 629, 65, 570,
1315 3, 4, 3, 4, 7, 77, 30, 50, 301, 81,
1316 311, 82, 728, 82, 38, 348, 59, 60, 605, 309,
1317 76, 59, 60, 59, 60, 81, 50, 30, 578, 30,
1318 59, 301, 811, 59, 311, 59, 50, 38, 76, 67,
1319 76, 3, 4, 369, 72, 59, 60, 50, 72, 50,
1320 328, 338, 67, 386, 82, 67, 59, 72, 59, 485,
1321 72, 339, 7, 353, 342, 343, 59, 82, 30, 416,
1322 582, 72, 339, 559, 78, 4, 343, 6, 7, 591,
1323 78, 414, 77, 12, 13, 14, 81, 513, 50, 30,
1324 59, 437, 59, 76, 3, 4, 30, 59, 81, 28,
1325 76, 688, 48, 49, 654, 50, 437, 657, 621, 639,
1326 72, 81, 700, 513, 59, 60, 45, 63, 59, 60,
1327 3, 4, 838, 77, 9, 59, 60, 81, 418, 430,
1328 3, 4, 410, 426, 76, 68, 69, 70, 67, 81,
1329 75, 50, 227, 72, 422, 78, 622, 425, 77, 78,
1330 235, 76, 444, 430, 76, 433, 426, 422, 67, 585,
1331 77, 673, 422, 72, 81, 457, 444, 437, 433, 433,
1332 573, 620, 38, 433, 444, 578, 59, 626, 82, 443,
1333 444, 711, 552, 553, 67, 698, 59, 457, 27, 72,
1334 251, 30, 705, 77, 67, 256, 257, 36, 59, 72,
1335 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
1336 271, 272, 59, 60, 54, 55, 803, 57, 58, 59,
1337 60, 511, 76, 515, 76, 574, 77, 81, 36, 81,
1338 81, 77, 3, 4, 67, 81, 76, 515, 77, 81,
1339 518, 77, 81, 535, 730, 515, 68, 69, 70, 76,
1340 514, 76, 655, 518, 657, 533, 78, 535, 518, 30,
1341 77, 346, 59, 60, 81, 535, 533, 616, 617, 615,
1342 534, 535, 611, 82, 552, 553, 76, 547, 556, 50,
1343 766, 77, 546, 547, 615, 552, 553, 577, 59, 607,
1344 608, 352, 639, 882, 564, 884, 574, 77, 637, 563,
1345 564, 81, 68, 69, 70, 754, 50, 51, 52, 3,
1346 4, 601, 78, 7, 38, 3, 4, 77, 596, 77,
1347 77, 81, 3, 81, 81, 59, 7, 388, 389, 596,
1348 77, 78, 610, 611, 612, 622, 30, 76, 616, 617,
1349 59, 60, 30, 621, 611, 615, 77, 612, 612, 30,
1350 926, 629, 612, 10, 621, 76, 50, 635, 934, 637,
1351 77, 78, 50, 63, 711, 59, 60, 82, 701, 50,
1352 637, 59, 60, 76, 664, 862, 59, 60, 59, 60,
1353 128, 129, 868, 5, 6, 7, 471, 27, 9, 36,
1354 12, 13, 14, 478, 479, 54, 55, 730, 57, 58,
1355 59, 60, 1, 752, 83, 4, 5, 6, 7, 27,
1356 77, 10, 30, 12, 13, 14, 78, 78, 36, 38,
1357 698, 699, 76, 909, 910, 78, 78, 705, 76, 28,
1358 720, 698, 699, 766, 495, 76, 38, 76, 705, 76,
1359 730, 59, 60, 76, 777, 76, 45, 76, 4, 5,
1360 6, 7, 730, 5, 6, 7, 12, 13, 14, 77,
1361 12, 13, 14, 81, 76, 730, 744, 730, 67, 83,
1362 730, 797, 28, 72, 752, 83, 766, 744, 30, 882,
1363 781, 884, 815, 82, 833, 818, 819, 572, 778, 45,
1364 76, 6, 7, 826, 82, 787, 835, 12, 13, 14,
1365 63, 63, 76, 780, 781, 566, 76, 36, 841, 787,
1366 83, 67, 78, 81, 32, 848, 72, 787, 38, 797,
1367 581, 77, 786, 787, 83, 76, 859, 48, 49, 50,
1368 51, 52, 797, 811, 797, 868, 77, 797, 623, 624,
1369 625, 81, 627, 628, 811, 43, 44, 45, 46, 47,
1370 48, 49, 50, 51, 52, 833, 3, 835, 891, 1,
1371 76, 3, 38, 77, 77, 650, 8, 9, 835, 11,
1372 1, 83, 63, 4, 5, 6, 7, 78, 868, 78,
1373 913, 12, 13, 14, 645, 38, 919, 29, 649, 31,
1374 38, 33, 34, 78, 679, 680, 681, 28, 40, 30,
1375 81, 43, 63, 38, 81, 78, 48, 49, 50, 36,
1376 38, 63, 54, 55, 45, 83, 677, 59, 60, 78,
1377 59, 59, 64, 59, 66, 38, 77, 77, 7, 71,
1378 38, 716, 693, 75, 77, 16, 67, 79, 80, 59,
1379 82, 72, 44, 45, 46, 47, 48, 49, 50, 51,
1380 52, 82, 1, 714, 3, 4, 717, 6, 7, 8,
1381 9, 77, 11, 12, 13, 14, 78, 77, 77, 59,
1382 63, 732, 76, 17, 735, 9, 77, 76, 763, 28,
1383 29, 77, 31, 77, 33, 34, 77, 76, 76, 59,
1384 751, 40, 77, 77, 43, 81, 45, 77, 76, 48,
1385 49, 50, 76, 0, 77, 54, 55, 0, 419, 818,
1386 59, 60, 773, 291, 334, 64, 655, 66, 67, 797,
1387 87, 418, 71, 72, 638, 645, 75, 355, 233, 573,
1388 79, 80, 225, 82, 360, 868, 353, 655, 579, 800,
1389 868, 1, 657, 3, 4, 5, 6, 7, 8, 9,
1390 914, 11, 12, 13, 14, 15, 916, 17, 18, 19,
1391 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1392 30, 31, 556, 33, 34, 413, 425, 25, 543, 425,
1393 40, 752, 843, 43, 749, 45, 617, 536, 48, 49,
1394 50, 310, 518, 854, 54, 55, 744, 513, 421, 59,
1395 60, 673, 585, -1, 64, 421, 66, 67, -1, 376,
1396 -1, 71, 72, -1, -1, 75, -1, 77, 78, 79,
1397 80, 1, 82, 3, 4, 5, 6, 7, 8, 9,
1398 -1, 11, 12, 13, 14, 15, -1, 17, 18, 19,
1399 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1400 30, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1401 40, -1, -1, 43, -1, 45, -1, -1, 48, 49,
1402 50, -1, -1, -1, 54, 55, -1, -1, -1, 59,
1403 60, -1, -1, -1, 64, -1, 66, 67, -1, -1,
1404 -1, 71, 72, -1, -1, 75, -1, 77, -1, 79,
1405 80, 1, 82, 3, 4, -1, -1, -1, 8, 9,
1406 -1, 11, -1, -1, -1, 15, -1, 17, 18, 19,
1407 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
1408 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1409 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1410 50, -1, -1, -1, 54, 55, -1, -1, -1, 59,
1411 60, -1, -1, -1, 64, -1, 66, 67, -1, -1,
1412 -1, 71, 72, -1, -1, 75, -1, 77, 78, 79,
1413 80, 1, 82, 3, 4, -1, -1, -1, 8, 9,
1414 -1, 11, -1, -1, -1, 15, -1, 17, 18, 19,
1415 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
1416 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1417 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1418 50, -1, -1, -1, 54, 55, -1, -1, -1, 59,
1419 60, -1, -1, -1, 64, -1, 66, 67, -1, -1,
1420 -1, 71, 72, -1, -1, 75, -1, 77, -1, 79,
1421 80, 1, 82, 3, 4, -1, -1, -1, 8, 9,
1422 -1, 11, -1, -1, -1, 15, -1, 17, 18, 19,
1423 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
1424 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1425 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1426 50, -1, -1, -1, 54, 55, -1, -1, -1, 59,
1427 60, -1, -1, -1, 64, -1, 66, 67, -1, -1,
1428 -1, 71, 72, -1, -1, 75, -1, 77, -1, 79,
1429 80, 1, 82, 3, 4, -1, -1, -1, 8, 9,
1430 37, 11, 39, 40, 41, 42, 43, 44, 45, 46,
1431 47, 48, 49, 50, 51, 52, -1, -1, -1, 29,
1432 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1433 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1434 50, -1, -1, -1, 54, 55, -1, -1, 58, 59,
1435 60, -1, -1, -1, 64, -1, 66, 67, -1, -1,
1436 -1, 71, 72, -1, -1, 75, -1, -1, 78, 79,
1437 80, 1, 82, 3, 4, -1, -1, -1, 8, 9,
1438 -1, 11, 40, 41, 42, 43, 44, 45, 46, 47,
1439 48, 49, 50, 51, 52, -1, -1, -1, -1, 29,
1440 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1441 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1442 50, -1, -1, -1, 54, 55, -1, -1, 58, 59,
1443 60, -1, -1, -1, 64, -1, 66, 67, -1, -1,
1444 -1, 71, 72, -1, -1, 75, -1, -1, 78, 79,
1445 80, 1, 82, 3, 4, -1, -1, -1, 8, 9,
1446 -1, 11, 1, -1, -1, 4, -1, 6, 7, -1,
1447 -1, -1, -1, 12, 13, 14, -1, -1, -1, 29,
1448 -1, 31, -1, 33, 34, -1, -1, -1, -1, 28,
1449 40, -1, 31, 43, -1, -1, -1, -1, 48, 49,
1450 50, -1, -1, -1, 54, 55, 45, -1, 58, 59,
1451 60, -1, -1, -1, 64, -1, 66, 67, -1, -1,
1452 -1, 71, 72, -1, -1, 75, -1, -1, 67, 79,
1453 80, 1, 82, 72, 4, 5, 6, 7, 77, 78,
1454 -1, -1, 12, 13, 14, -1, -1, -1, -1, -1,
1455 1, -1, -1, 4, 5, 6, 7, 27, 28, -1,
1456 30, 12, 13, 14, -1, -1, 36, 45, 46, 47,
1457 48, 49, 50, 51, 52, 45, 27, 28, -1, 30,
1458 -1, -1, -1, -1, -1, 36, -1, -1, -1, 59,
1459 60, -1, -1, -1, 45, -1, -1, 67, -1, -1,
1460 -1, -1, 72, -1, -1, -1, -1, 77, 59, 60,
1461 -1, 81, 82, -1, -1, -1, 67, -1, -1, -1,
1462 -1, 72, -1, -1, -1, -1, 77, -1, -1, 1,
1463 81, 82, 4, 5, 6, 7, -1, -1, -1, -1,
1464 12, 13, 14, -1, -1, -1, -1, -1, 1, -1,
1465 -1, 4, 5, 6, 7, 27, 28, -1, 30, 12,
1466 13, 14, -1, -1, 36, 46, 47, 48, 49, 50,
1467 51, 52, -1, 45, -1, 28, 1, 30, -1, 4,
1468 5, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1469 -1, -1, 45, -1, -1, 67, -1, -1, -1, -1,
1470 72, -1, -1, 28, -1, 77, -1, -1, -1, 81,
1471 82, -1, -1, -1, 67, -1, -1, -1, 3, 72,
1472 45, -1, -1, 8, 9, -1, 11, -1, -1, 82,
1473 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1474 51, 52, 67, -1, 29, -1, 31, 72, 33, 34,
1475 -1, -1, -1, -1, -1, 40, -1, 82, 43, -1,
1476 -1, -1, -1, 48, 49, 50, -1, -1, -1, 54,
1477 55, -1, -1, -1, 59, 60, -1, 3, -1, 64,
1478 -1, 66, 8, 9, -1, 11, 71, -1, -1, -1,
1479 75, -1, -1, -1, 79, 80, -1, -1, 83, -1,
1480 -1, -1, -1, 29, -1, 31, -1, 33, 34, -1,
1481 -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
1482 -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1483 -1, -1, -1, 59, 60, -1, 3, -1, 64, -1,
1484 66, 8, 9, -1, 11, 71, -1, -1, -1, 75,
1485 -1, -1, -1, 79, 80, -1, -1, 83, -1, -1,
1486 -1, -1, 29, -1, 31, -1, 33, 34, -1, -1,
1487 -1, -1, -1, 40, -1, -1, 43, -1, -1, -1,
1488 -1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1489 -1, -1, 59, 60, -1, 3, -1, 64, -1, 66,
1490 8, 9, -1, 11, 71, -1, -1, -1, 75, -1,
1491 -1, -1, 79, 80, -1, -1, 83, -1, -1, -1,
1492 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1493 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1494 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1495 -1, 59, 60, -1, 3, -1, 64, -1, 66, 8,
1496 9, -1, 11, 71, -1, -1, -1, 75, -1, -1,
1497 -1, 79, 80, -1, -1, 83, -1, -1, -1, -1,
1498 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1499 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1500 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1501 59, 60, -1, -1, -1, 64, -1, 66, -1, -1,
1502 -1, -1, 71, -1, -1, -1, 75, -1, -1, -1,
1503 79, 80, -1, -1, 83, 3, 4, 5, 6, 7,
1504 8, 9, -1, 11, 12, 13, 14, 15, -1, 17,
1505 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1506 28, 29, 30, 31, -1, 33, 34, -1, -1, -1,
1507 -1, -1, 40, -1, -1, 43, -1, 45, -1, -1,
1508 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1509 -1, 59, 60, -1, -1, -1, 64, -1, 66, 67,
1510 -1, -1, -1, 71, 72, -1, -1, 75, -1, 77,
1511 -1, 79, 80, -1, 82, 3, 4, -1, -1, -1,
1512 8, 9, -1, 11, -1, -1, -1, 15, -1, 17,
1513 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1514 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1515 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1516 48, 49, 50, -1, -1, -1, 54, 55, -1, 3,
1517 -1, 59, 60, -1, 8, 9, 64, 11, 66, 67,
1518 -1, -1, -1, 71, 72, -1, -1, 75, -1, 77,
1519 -1, 79, 80, -1, 82, 29, -1, 31, -1, 33,
1520 34, -1, -1, -1, -1, -1, 40, -1, -1, 43,
1521 -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
1522 54, 55, -1, -1, -1, 59, 60, -1, -1, -1,
1523 64, -1, 66, -1, -1, -1, -1, 71, -1, -1,
1524 -1, 75, -1, -1, -1, 79, 80, -1, 82, 3,
1525 4, -1, 6, 7, -1, -1, -1, 11, 12, 13,
1526 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1527 24, 25, 26, 27, 28, 29, -1, 3, 4, 5,
1528 6, 7, 8, 9, 38, 11, 12, 13, 14, 4,
1529 5, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1530 -1, -1, 28, 29, 30, 31, -1, 33, 34, -1,
1531 -1, -1, -1, 28, 40, 30, -1, 43, 72, 45,
1532 -1, -1, 48, 49, 50, -1, -1, 81, 54, 55,
1533 45, -1, -1, 59, 60, -1, -1, -1, 64, -1,
1534 66, 67, -1, -1, -1, 71, 72, -1, -1, 75,
1535 -1, -1, 67, 79, 80, 3, 4, 72, 6, 7,
1536 8, 9, 77, 11, 12, 13, 14, 42, 43, 44,
1537 45, 46, 47, 48, 49, 50, 51, 52, -1, -1,
1538 28, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1539 -1, -1, 40, -1, -1, 43, -1, 45, -1, -1,
1540 48, 49, 50, -1, -1, -1, 54, 55, -1, 3,
1541 -1, 59, 60, -1, 8, 9, 64, 11, 66, 67,
1542 -1, -1, -1, 71, 72, -1, -1, 75, -1, -1,
1543 -1, 79, 80, -1, -1, 29, -1, 31, -1, 33,
1544 34, -1, -1, -1, -1, -1, 40, -1, -1, 43,
1545 -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
1546 54, 55, -1, 3, -1, 59, 60, -1, 8, 9,
1547 64, 11, 66, 67, -1, -1, -1, 71, -1, -1,
1548 -1, 75, -1, -1, -1, 79, 80, -1, -1, 29,
1549 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1550 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1551 50, -1, -1, -1, 54, 55, -1, 3, -1, 59,
1552 60, -1, 8, 9, 64, 11, 66, -1, -1, -1,
1553 -1, 71, -1, -1, -1, 75, -1, 77, -1, 79,
1554 80, -1, -1, 29, -1, 31, -1, 33, 34, -1,
1555 -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
1556 -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1557 -1, 3, -1, 59, 60, -1, 8, 9, 64, 11,
1558 66, -1, -1, -1, -1, 71, -1, -1, -1, 75,
1559 -1, -1, -1, 79, 80, -1, -1, 29, -1, 31,
1560 -1, 33, 34, -1, -1, -1, -1, -1, 40, -1,
1561 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1562 -1, -1, 54, 55, -1, 3, -1, 59, 60, -1,
1563 8, 9, 64, 11, 66, -1, -1, -1, -1, 71,
1564 -1, -1, -1, 75, -1, -1, -1, 79, 80, -1,
1565 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1566 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1567 48, 49, 50, -1, -1, -1, 54, 55, -1, 3,
1568 -1, 59, 60, -1, 8, 9, 64, 11, 66, -1,
1569 -1, -1, -1, 71, -1, -1, -1, 75, -1, -1,
1570 -1, 79, 80, -1, -1, 29, -1, 31, -1, 33,
1571 34, -1, -1, -1, -1, -1, 40, -1, -1, 43,
1572 -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
1573 54, 55, -1, -1, -1, 59, 60, -1, -1, -1,
1574 64, -1, 66, -1, -1, -1, -1, 71, -1, -1,
1575 -1, 75, -1, -1, 1, 79, 80, 4, -1, 6,
1576 7, -1, -1, -1, -1, 12, 13, 14, -1, -1,
1577 -1, -1, 1, -1, -1, 4, -1, 6, 7, -1,
1578 -1, 28, -1, 12, 13, 14, -1, -1, -1, -1,
1579 -1, -1, -1, -1, -1, -1, -1, -1, 45, 28,
1580 -1, -1, -1, -1, -1, -1, 1, -1, 3, 4,
1581 5, 6, 7, -1, -1, -1, 45, 12, 13, 14,
1582 67, 68, 69, 70, -1, 72, -1, -1, -1, -1,
1583 77, 78, 27, 28, -1, 30, 31, -1, 67, 68,
1584 69, 70, -1, 72, -1, -1, -1, -1, 77, 78,
1585 45, -1, -1, 48, 49, 50, -1, -1, -1, -1,
1586 -1, -1, -1, -1, 59, -1, 61, 62, 63, -1,
1587 -1, -1, 67, -1, -1, -1, 71, 72, 73, 74,
1588 -1, 1, 77, 3, 4, 5, 6, 7, -1, -1,
1589 -1, -1, 12, 13, 14, -1, -1, -1, -1, -1,
1590 -1, -1, -1, -1, -1, -1, -1, -1, 28, 1,
1591 30, 3, 4, 5, 6, 7, -1, -1, -1, -1,
1592 12, 13, 14, -1, -1, 45, -1, -1, 48, 49,
1593 50, -1, -1, -1, -1, -1, 28, -1, 30, 59,
1594 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1,
1595 -1, -1, 72, 45, -1, -1, -1, 77, 50, 1,
1596 -1, 3, 4, 5, 6, 7, -1, 59, 10, -1,
1597 12, 13, 14, -1, -1, 67, -1, -1, 1, -1,
1598 72, 4, 5, 6, 7, 77, 28, 10, 30, 12,
1599 13, 14, 4, 5, 6, 7, -1, -1, -1, -1,
1600 12, 13, 14, 45, -1, 28, -1, 30, -1, -1,
1601 -1, 4, 5, 6, 7, -1, 28, -1, 30, 12,
1602 13, 14, 45, -1, -1, 67, -1, -1, -1, -1,
1603 72, -1, -1, 45, 76, 28, -1, 30, -1, -1,
1604 -1, -1, -1, -1, 67, 1, -1, -1, 4, 72,
1605 6, 7, 45, 76, -1, 67, 12, 13, 14, -1,
1606 72, -1, -1, -1, -1, 77, -1, -1, -1, -1,
1607 -1, -1, 28, -1, 67, 31, -1, -1, -1, 72,
1608 -1, -1, 3, 4, 77, 6, 7, -1, -1, 45,
1609 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1610 21, 22, 23, 24, 25, 26, 27, 28, 29, -1,
1611 -1, 67, -1, 30, -1, -1, 72, 38, 35, 36,
1612 37, -1, 39, 40, 41, 42, 43, 44, 45, 46,
1613 47, 48, 49, 50, 51, 52, -1, -1, 59, -1,
1614 -1, -1, -1, -1, 3, 4, -1, 6, 7, -1,
1615 -1, 72, 11, 12, 13, 14, 15, 16, 17, 18,
1616 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1617 29, -1, 3, 4, -1, 6, 7, -1, -1, 38,
1618 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1619 21, 22, 23, 24, 25, 26, 27, 28, 29, -1,
1620 -1, -1, -1, -1, -1, -1, -1, 38, 3, 4,
1621 -1, 6, 7, 72, -1, -1, 11, 12, 13, 14,
1622 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1623 25, 26, 27, 28, 29, -1, -1, 4, -1, 6,
1624 7, 72, -1, 38, -1, 12, 13, 14, 4, 5,
1625 6, 7, -1, -1, 10, -1, 12, 13, 14, -1,
1626 -1, 28, -1, -1, -1, -1, -1, -1, -1, -1,
1627 -1, -1, 28, -1, 30, -1, -1, 72, 45, -1,
1628 -1, -1, -1, 50, -1, -1, -1, -1, -1, 45,
1629 -1, -1, 59, 60, -1, -1, -1, -1, -1, -1,
1630 67, -1, -1, -1, -1, 72, -1, -1, -1, -1,
1631 -1, 67, 4, 5, 6, 7, 72, -1, 10, -1,
1632 12, 13, 14, 4, 5, 6, 7, -1, -1, -1,
1633 -1, 12, 13, 14, -1, -1, 28, -1, 30, -1,
1634 -1, -1, 4, 5, 6, 7, -1, 28, -1, 30,
1635 12, 13, 14, 45, -1, -1, -1, -1, -1, -1,
1636 4, -1, 6, 7, 45, -1, 28, -1, 12, 13,
1637 14, -1, -1, -1, -1, 67, -1, -1, -1, 4,
1638 72, 6, 7, 45, 28, -1, 67, 12, 13, 14,
1639 -1, 72, -1, -1, -1, -1, -1, -1, -1, -1,
1640 -1, 45, -1, 28, -1, 67, -1, -1, -1, -1,
1641 72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1642 45, -1, -1, 67, 10, -1, -1, -1, 72, -1,
1643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1644 -1, -1, 67, -1, -1, -1, -1, 72, -1, 35,
1645 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1646 46, 47, 48, 49, 50, 51, 52, 35, 36, 37,
1647 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1648 48, 49, 50, 51, 52, 35, 36, 37, -1, 39,
1649 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1650 50, 51, 52
1652 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1653 #line 3 "/usr/local/share/bison.simple"
1655 /* Skeleton output parser for bison,
1656 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1658 This program is free software; you can redistribute it and/or modify
1659 it under the terms of the GNU General Public License as published by
1660 the Free Software Foundation; either version 2, or (at your option)
1661 any later version.
1663 This program is distributed in the hope that it will be useful,
1664 but WITHOUT ANY WARRANTY; without even the implied warranty of
1665 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1666 GNU General Public License for more details.
1668 You should have received a copy of the GNU General Public License
1669 along with this program; if not, write to the Free Software
1670 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1672 /* As a special exception, when this file is copied by Bison into a
1673 Bison output file, you may use that output file without restriction.
1674 This special exception was added by the Free Software Foundation
1675 in version 1.24 of Bison. */
1677 #ifndef alloca
1678 #ifdef __GNUC__
1679 #define alloca __builtin_alloca
1680 #else /* not GNU C. */
1681 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1682 #include <alloca.h>
1683 #else /* not sparc */
1684 #if defined (MSDOS) && !defined (__TURBOC__)
1685 #include <malloc.h>
1686 #else /* not MSDOS, or __TURBOC__ */
1687 #if defined(_AIX)
1688 #include <malloc.h>
1689 #pragma alloca
1690 #else /* not MSDOS, __TURBOC__, or _AIX */
1691 #ifdef __hpux
1692 #ifdef __cplusplus
1693 extern "C" {
1694 void *alloca (unsigned int);
1696 #else /* not __cplusplus */
1697 void *alloca ();
1698 #endif /* not __cplusplus */
1699 #endif /* __hpux */
1700 #endif /* not _AIX */
1701 #endif /* not MSDOS, or __TURBOC__ */
1702 #endif /* not sparc. */
1703 #endif /* not GNU C. */
1704 #endif /* alloca not defined. */
1706 /* This is the parser code that is written into each bison parser
1707 when the %semantic_parser declaration is not specified in the grammar.
1708 It was written by Richard Stallman by simplifying the hairy parser
1709 used when %semantic_parser is specified. */
1711 /* Note: there must be only one dollar sign in this file.
1712 It is replaced by the list of actions, each action
1713 as one case of the switch. */
1715 #define yyerrok (yyerrstatus = 0)
1716 #define yyclearin (yychar = YYEMPTY)
1717 #define YYEMPTY -2
1718 #define YYEOF 0
1719 #define YYACCEPT return(0)
1720 #define YYABORT return(1)
1721 #define YYERROR goto yyerrlab1
1722 /* Like YYERROR except do call yyerror.
1723 This remains here temporarily to ease the
1724 transition to the new meaning of YYERROR, for GCC.
1725 Once GCC version 2 has supplanted version 1, this can go. */
1726 #define YYFAIL goto yyerrlab
1727 #define YYRECOVERING() (!!yyerrstatus)
1728 #define YYBACKUP(token, value) \
1729 do \
1730 if (yychar == YYEMPTY && yylen == 1) \
1731 { yychar = (token), yylval = (value); \
1732 yychar1 = YYTRANSLATE (yychar); \
1733 YYPOPSTACK; \
1734 goto yybackup; \
1736 else \
1737 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1738 while (0)
1740 #define YYTERROR 1
1741 #define YYERRCODE 256
1743 #ifndef YYPURE
1744 #define YYLEX yylex()
1745 #endif
1747 #ifdef YYPURE
1748 #ifdef YYLSP_NEEDED
1749 #ifdef YYLEX_PARAM
1750 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1751 #else
1752 #define YYLEX yylex(&yylval, &yylloc)
1753 #endif
1754 #else /* not YYLSP_NEEDED */
1755 #ifdef YYLEX_PARAM
1756 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1757 #else
1758 #define YYLEX yylex(&yylval)
1759 #endif
1760 #endif /* not YYLSP_NEEDED */
1761 #endif
1763 /* If nonreentrant, generate the variables here */
1765 #ifndef YYPURE
1767 int yychar; /* the lookahead symbol */
1768 YYSTYPE yylval; /* the semantic value of the */
1769 /* lookahead symbol */
1771 #ifdef YYLSP_NEEDED
1772 YYLTYPE yylloc; /* location data for the lookahead */
1773 /* symbol */
1774 #endif
1776 int yynerrs; /* number of parse errors so far */
1777 #endif /* not YYPURE */
1779 #if YYDEBUG != 0
1780 int yydebug; /* nonzero means print parse trace */
1781 /* Since this is uninitialized, it does not stop multiple parsers
1782 from coexisting. */
1783 #endif
1785 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1787 #ifndef YYINITDEPTH
1788 #define YYINITDEPTH 200
1789 #endif
1791 /* YYMAXDEPTH is the maximum size the stacks can grow to
1792 (effective only if the built-in stack extension method is used). */
1794 #if YYMAXDEPTH == 0
1795 #undef YYMAXDEPTH
1796 #endif
1798 #ifndef YYMAXDEPTH
1799 #define YYMAXDEPTH 10000
1800 #endif
1802 /* Prevent warning if -Wstrict-prototypes. */
1803 #ifdef __GNUC__
1804 int yyparse (void);
1805 #endif
1807 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1808 #define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1809 #else /* not GNU C or C++ */
1810 #ifndef __cplusplus
1812 /* This is the most reliable way to avoid incompatibilities
1813 in available built-in functions on various systems. */
1814 static void
1815 __yy_memcpy (from, to, count)
1816 char *from;
1817 char *to;
1818 int count;
1820 register char *f = from;
1821 register char *t = to;
1822 register int i = count;
1824 while (i-- > 0)
1825 *t++ = *f++;
1828 #else /* __cplusplus */
1830 /* This is the most reliable way to avoid incompatibilities
1831 in available built-in functions on various systems. */
1832 static void
1833 __yy_memcpy (char *from, char *to, int count)
1835 register char *f = from;
1836 register char *t = to;
1837 register int i = count;
1839 while (i-- > 0)
1840 *t++ = *f++;
1843 #endif
1844 #endif
1846 #line 192 "/usr/local/share/bison.simple"
1848 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1849 into yyparse. The argument should have type void *.
1850 It should actually point to an object.
1851 Grammar actions can access the variable by casting it
1852 to the proper pointer type. */
1854 #ifdef YYPARSE_PARAM
1855 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1856 #else
1857 #define YYPARSE_PARAM
1858 #define YYPARSE_PARAM_DECL
1859 #endif
1862 yyparse(YYPARSE_PARAM)
1863 YYPARSE_PARAM_DECL
1865 register int yystate;
1866 register int yyn;
1867 register short *yyssp;
1868 register YYSTYPE *yyvsp;
1869 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1870 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1872 short yyssa[YYINITDEPTH]; /* the state stack */
1873 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1875 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1876 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1878 #ifdef YYLSP_NEEDED
1879 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1880 YYLTYPE *yyls = yylsa;
1881 YYLTYPE *yylsp;
1883 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1884 #else
1885 #define YYPOPSTACK (yyvsp--, yyssp--)
1886 #endif
1888 int yystacksize = YYINITDEPTH;
1890 #ifdef YYPURE
1891 int yychar;
1892 YYSTYPE yylval;
1893 int yynerrs;
1894 #ifdef YYLSP_NEEDED
1895 YYLTYPE yylloc;
1896 #endif
1897 #endif
1899 YYSTYPE yyval; /* the variable used to return */
1900 /* semantic values from the action */
1901 /* routines */
1903 int yylen;
1905 #if YYDEBUG != 0
1906 if (yydebug)
1907 fprintf(stderr, "Starting parse\n");
1908 #endif
1910 yystate = 0;
1911 yyerrstatus = 0;
1912 yynerrs = 0;
1913 yychar = YYEMPTY; /* Cause a token to be read. */
1915 /* Initialize stack pointers.
1916 Waste one element of value and location stack
1917 so that they stay on the same level as the state stack.
1918 The wasted elements are never initialized. */
1920 yyssp = yyss - 1;
1921 yyvsp = yyvs;
1922 #ifdef YYLSP_NEEDED
1923 yylsp = yyls;
1924 #endif
1926 /* Push a new state, which is found in yystate . */
1927 /* In all cases, when you get here, the value and location stacks
1928 have just been pushed. so pushing a state here evens the stacks. */
1929 yynewstate:
1931 *++yyssp = yystate;
1933 if (yyssp >= yyss + yystacksize - 1)
1935 /* Give user a chance to reallocate the stack */
1936 /* Use copies of these so that the &'s don't force the real ones into memory. */
1937 YYSTYPE *yyvs1 = yyvs;
1938 short *yyss1 = yyss;
1939 #ifdef YYLSP_NEEDED
1940 YYLTYPE *yyls1 = yyls;
1941 #endif
1943 /* Get the current used size of the three stacks, in elements. */
1944 int size = yyssp - yyss + 1;
1946 #ifdef yyoverflow
1947 /* Each stack pointer address is followed by the size of
1948 the data in use in that stack, in bytes. */
1949 #ifdef YYLSP_NEEDED
1950 /* This used to be a conditional around just the two extra args,
1951 but that might be undefined if yyoverflow is a macro. */
1952 yyoverflow("parser stack overflow",
1953 &yyss1, size * sizeof (*yyssp),
1954 &yyvs1, size * sizeof (*yyvsp),
1955 &yyls1, size * sizeof (*yylsp),
1956 &yystacksize);
1957 #else
1958 yyoverflow("parser stack overflow",
1959 &yyss1, size * sizeof (*yyssp),
1960 &yyvs1, size * sizeof (*yyvsp),
1961 &yystacksize);
1962 #endif
1964 yyss = yyss1; yyvs = yyvs1;
1965 #ifdef YYLSP_NEEDED
1966 yyls = yyls1;
1967 #endif
1968 #else /* no yyoverflow */
1969 /* Extend the stack our own way. */
1970 if (yystacksize >= YYMAXDEPTH)
1972 yyerror("parser stack overflow");
1973 return 2;
1975 yystacksize *= 2;
1976 if (yystacksize > YYMAXDEPTH)
1977 yystacksize = YYMAXDEPTH;
1978 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1979 __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
1980 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1981 __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
1982 #ifdef YYLSP_NEEDED
1983 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1984 __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
1985 #endif
1986 #endif /* no yyoverflow */
1988 yyssp = yyss + size - 1;
1989 yyvsp = yyvs + size - 1;
1990 #ifdef YYLSP_NEEDED
1991 yylsp = yyls + size - 1;
1992 #endif
1994 #if YYDEBUG != 0
1995 if (yydebug)
1996 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1997 #endif
1999 if (yyssp >= yyss + yystacksize - 1)
2000 YYABORT;
2003 #if YYDEBUG != 0
2004 if (yydebug)
2005 fprintf(stderr, "Entering state %d\n", yystate);
2006 #endif
2008 goto yybackup;
2009 yybackup:
2011 /* Do appropriate processing given the current state. */
2012 /* Read a lookahead token if we need one and don't already have one. */
2013 /* yyresume: */
2015 /* First try to decide what to do without reference to lookahead token. */
2017 yyn = yypact[yystate];
2018 if (yyn == YYFLAG)
2019 goto yydefault;
2021 /* Not known => get a lookahead token if don't already have one. */
2023 /* yychar is either YYEMPTY or YYEOF
2024 or a valid token in external form. */
2026 if (yychar == YYEMPTY)
2028 #if YYDEBUG != 0
2029 if (yydebug)
2030 fprintf(stderr, "Reading a token: ");
2031 #endif
2032 yychar = YYLEX;
2035 /* Convert token to internal form (in yychar1) for indexing tables with */
2037 if (yychar <= 0) /* This means end of input. */
2039 yychar1 = 0;
2040 yychar = YYEOF; /* Don't call YYLEX any more */
2042 #if YYDEBUG != 0
2043 if (yydebug)
2044 fprintf(stderr, "Now at end of input.\n");
2045 #endif
2047 else
2049 yychar1 = YYTRANSLATE(yychar);
2051 #if YYDEBUG != 0
2052 if (yydebug)
2054 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2055 /* Give the individual parser a way to print the precise meaning
2056 of a token, for further debugging info. */
2057 #ifdef YYPRINT
2058 YYPRINT (stderr, yychar, yylval);
2059 #endif
2060 fprintf (stderr, ")\n");
2062 #endif
2065 yyn += yychar1;
2066 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2067 goto yydefault;
2069 yyn = yytable[yyn];
2071 /* yyn is what to do for this token type in this state.
2072 Negative => reduce, -yyn is rule number.
2073 Positive => shift, yyn is new state.
2074 New state is final state => don't bother to shift,
2075 just return success.
2076 0, or most negative number => error. */
2078 if (yyn < 0)
2080 if (yyn == YYFLAG)
2081 goto yyerrlab;
2082 yyn = -yyn;
2083 goto yyreduce;
2085 else if (yyn == 0)
2086 goto yyerrlab;
2088 if (yyn == YYFINAL)
2089 YYACCEPT;
2091 /* Shift the lookahead token. */
2093 #if YYDEBUG != 0
2094 if (yydebug)
2095 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2096 #endif
2098 /* Discard the token being shifted unless it is eof. */
2099 if (yychar != YYEOF)
2100 yychar = YYEMPTY;
2102 *++yyvsp = yylval;
2103 #ifdef YYLSP_NEEDED
2104 *++yylsp = yylloc;
2105 #endif
2107 /* count tokens shifted since error; after three, turn off error status. */
2108 if (yyerrstatus) yyerrstatus--;
2110 yystate = yyn;
2111 goto yynewstate;
2113 /* Do the default action for the current state. */
2114 yydefault:
2116 yyn = yydefact[yystate];
2117 if (yyn == 0)
2118 goto yyerrlab;
2120 /* Do a reduction. yyn is the number of a rule to reduce with. */
2121 yyreduce:
2122 yylen = yyr2[yyn];
2123 if (yylen > 0)
2124 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2126 #if YYDEBUG != 0
2127 if (yydebug)
2129 int i;
2131 fprintf (stderr, "Reducing via rule %d (line %d), ",
2132 yyn, yyrline[yyn]);
2134 /* Print the symbols being reduced, and their result. */
2135 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2136 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2137 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2139 #endif
2142 switch (yyn) {
2144 case 1:
2145 #line 237 "objc-parse.y"
2146 { if (pedantic)
2147 pedwarn ("ANSI C forbids an empty source file");
2148 finish_file ();
2150 break;}
2151 case 2:
2152 #line 242 "objc-parse.y"
2154 /* In case there were missing closebraces,
2155 get us back to the global binding level. */
2156 while (! global_bindings_p ())
2157 poplevel (0, 0, 0);
2158 finish_file ();
2160 break;}
2161 case 3:
2162 #line 256 "objc-parse.y"
2163 {yyval.ttype = NULL_TREE; ;
2164 break;}
2165 case 5:
2166 #line 257 "objc-parse.y"
2167 {yyval.ttype = NULL_TREE; ;
2168 break;}
2169 case 10:
2170 #line 265 "objc-parse.y"
2171 { STRIP_NOPS (yyvsp[-2].ttype);
2172 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
2173 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
2174 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
2175 assemble_asm (yyvsp[-2].ttype);
2176 else
2177 error ("argument of `asm' is not a constant string"); ;
2178 break;}
2179 case 11:
2180 #line 273 "objc-parse.y"
2181 { pedantic = yyvsp[-1].itype; ;
2182 break;}
2183 case 12:
2184 #line 278 "objc-parse.y"
2185 { if (pedantic)
2186 error ("ANSI C forbids data definition with no type or storage class");
2187 else if (!flag_traditional)
2188 warning ("data definition has no type or storage class");
2190 current_declspecs = TREE_VALUE (declspec_stack);
2191 prefix_attributes = TREE_PURPOSE (declspec_stack);
2192 declspec_stack = TREE_CHAIN (declspec_stack);
2193 resume_momentary (yyvsp[-2].itype); ;
2194 break;}
2195 case 13:
2196 #line 288 "objc-parse.y"
2197 { current_declspecs = TREE_VALUE (declspec_stack);
2198 prefix_attributes = TREE_PURPOSE (declspec_stack);
2199 declspec_stack = TREE_CHAIN (declspec_stack);
2200 resume_momentary (yyvsp[-2].itype); ;
2201 break;}
2202 case 14:
2203 #line 293 "objc-parse.y"
2204 { current_declspecs = TREE_VALUE (declspec_stack);
2205 prefix_attributes = TREE_PURPOSE (declspec_stack);
2206 declspec_stack = TREE_CHAIN (declspec_stack);
2207 resume_momentary (yyvsp[-2].itype); ;
2208 break;}
2209 case 15:
2210 #line 298 "objc-parse.y"
2211 { pedwarn ("empty declaration"); ;
2212 break;}
2213 case 16:
2214 #line 300 "objc-parse.y"
2215 { shadow_tag (yyvsp[-1].ttype); ;
2216 break;}
2217 case 19:
2218 #line 304 "objc-parse.y"
2219 { if (pedantic)
2220 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
2221 break;}
2222 case 20:
2223 #line 310 "objc-parse.y"
2224 { if (! start_function (current_declspecs, yyvsp[0].ttype,
2225 prefix_attributes, NULL_TREE, 0))
2226 YYERROR1;
2227 reinit_parse_for_function (); ;
2228 break;}
2229 case 21:
2230 #line 315 "objc-parse.y"
2231 { store_parm_decls (); ;
2232 break;}
2233 case 22:
2234 #line 317 "objc-parse.y"
2235 { finish_function (0);
2236 current_declspecs = TREE_VALUE (declspec_stack);
2237 prefix_attributes = TREE_PURPOSE (declspec_stack);
2238 declspec_stack = TREE_CHAIN (declspec_stack);
2239 resume_momentary (yyvsp[-5].itype); ;
2240 break;}
2241 case 23:
2242 #line 323 "objc-parse.y"
2243 { current_declspecs = TREE_VALUE (declspec_stack);
2244 prefix_attributes = TREE_PURPOSE (declspec_stack);
2245 declspec_stack = TREE_CHAIN (declspec_stack);
2246 resume_momentary (yyvsp[-2].itype); ;
2247 break;}
2248 case 24:
2249 #line 328 "objc-parse.y"
2250 { if (! start_function (current_declspecs, yyvsp[0].ttype,
2251 prefix_attributes, NULL_TREE, 0))
2252 YYERROR1;
2253 reinit_parse_for_function (); ;
2254 break;}
2255 case 25:
2256 #line 333 "objc-parse.y"
2257 { store_parm_decls (); ;
2258 break;}
2259 case 26:
2260 #line 335 "objc-parse.y"
2261 { finish_function (0);
2262 current_declspecs = TREE_VALUE (declspec_stack);
2263 prefix_attributes = TREE_PURPOSE (declspec_stack);
2264 declspec_stack = TREE_CHAIN (declspec_stack);
2265 resume_momentary (yyvsp[-5].itype); ;
2266 break;}
2267 case 27:
2268 #line 341 "objc-parse.y"
2269 { current_declspecs = TREE_VALUE (declspec_stack);
2270 prefix_attributes = TREE_PURPOSE (declspec_stack);
2271 declspec_stack = TREE_CHAIN (declspec_stack);
2272 resume_momentary (yyvsp[-2].itype); ;
2273 break;}
2274 case 28:
2275 #line 346 "objc-parse.y"
2276 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
2277 prefix_attributes, NULL_TREE, 0))
2278 YYERROR1;
2279 reinit_parse_for_function (); ;
2280 break;}
2281 case 29:
2282 #line 351 "objc-parse.y"
2283 { store_parm_decls (); ;
2284 break;}
2285 case 30:
2286 #line 353 "objc-parse.y"
2287 { finish_function (0);
2288 current_declspecs = TREE_VALUE (declspec_stack);
2289 prefix_attributes = TREE_PURPOSE (declspec_stack);
2290 declspec_stack = TREE_CHAIN (declspec_stack);
2291 resume_momentary (yyvsp[-5].itype); ;
2292 break;}
2293 case 31:
2294 #line 359 "objc-parse.y"
2295 { current_declspecs = TREE_VALUE (declspec_stack);
2296 prefix_attributes = TREE_PURPOSE (declspec_stack);
2297 declspec_stack = TREE_CHAIN (declspec_stack);
2298 resume_momentary (yyvsp[-2].itype); ;
2299 break;}
2300 case 36:
2301 #line 373 "objc-parse.y"
2302 { yyval.code = ADDR_EXPR; ;
2303 break;}
2304 case 37:
2305 #line 375 "objc-parse.y"
2306 { yyval.code = NEGATE_EXPR; ;
2307 break;}
2308 case 38:
2309 #line 377 "objc-parse.y"
2310 { yyval.code = CONVERT_EXPR; ;
2311 break;}
2312 case 39:
2313 #line 379 "objc-parse.y"
2314 { yyval.code = PREINCREMENT_EXPR; ;
2315 break;}
2316 case 40:
2317 #line 381 "objc-parse.y"
2318 { yyval.code = PREDECREMENT_EXPR; ;
2319 break;}
2320 case 41:
2321 #line 383 "objc-parse.y"
2322 { yyval.code = BIT_NOT_EXPR; ;
2323 break;}
2324 case 42:
2325 #line 385 "objc-parse.y"
2326 { yyval.code = TRUTH_NOT_EXPR; ;
2327 break;}
2328 case 43:
2329 #line 389 "objc-parse.y"
2330 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
2331 break;}
2332 case 44:
2333 #line 394 "objc-parse.y"
2334 { yyval.ttype = NULL_TREE; ;
2335 break;}
2336 case 46:
2337 #line 400 "objc-parse.y"
2338 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
2339 break;}
2340 case 47:
2341 #line 402 "objc-parse.y"
2342 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
2343 break;}
2344 case 49:
2345 #line 408 "objc-parse.y"
2346 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
2347 break;}
2348 case 50:
2349 #line 411 "objc-parse.y"
2350 { yyval.ttype = yyvsp[0].ttype;
2351 pedantic = yyvsp[-1].itype; ;
2352 break;}
2353 case 51:
2354 #line 414 "objc-parse.y"
2355 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
2356 overflow_warning (yyval.ttype); ;
2357 break;}
2358 case 52:
2359 #line 418 "objc-parse.y"
2360 { tree label = lookup_label (yyvsp[0].ttype);
2361 if (pedantic)
2362 pedwarn ("ANSI C forbids `&&'");
2363 if (label == 0)
2364 yyval.ttype = null_pointer_node;
2365 else
2367 TREE_USED (label) = 1;
2368 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
2369 TREE_CONSTANT (yyval.ttype) = 1;
2372 break;}
2373 case 53:
2374 #line 446 "objc-parse.y"
2375 { skip_evaluation--;
2376 if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
2377 && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
2378 error ("`sizeof' applied to a bit-field");
2379 yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
2380 break;}
2381 case 54:
2382 #line 452 "objc-parse.y"
2383 { skip_evaluation--;
2384 yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
2385 break;}
2386 case 55:
2387 #line 455 "objc-parse.y"
2388 { skip_evaluation--;
2389 yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
2390 break;}
2391 case 56:
2392 #line 458 "objc-parse.y"
2393 { skip_evaluation--;
2394 yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
2395 break;}
2396 case 57:
2397 #line 461 "objc-parse.y"
2398 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
2399 break;}
2400 case 58:
2401 #line 463 "objc-parse.y"
2402 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
2403 break;}
2404 case 59:
2405 #line 467 "objc-parse.y"
2406 { skip_evaluation++; ;
2407 break;}
2408 case 60:
2409 #line 471 "objc-parse.y"
2410 { skip_evaluation++; ;
2411 break;}
2412 case 62:
2413 #line 477 "objc-parse.y"
2414 { tree type = groktypename (yyvsp[-2].ttype);
2415 yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
2416 break;}
2417 case 63:
2418 #line 480 "objc-parse.y"
2419 { start_init (NULL_TREE, NULL, 0);
2420 yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
2421 really_start_incremental_init (yyvsp[-2].ttype); ;
2422 break;}
2423 case 64:
2424 #line 484 "objc-parse.y"
2425 { char *name;
2426 tree result = pop_init_level (0);
2427 tree type = yyvsp[-5].ttype;
2428 finish_init ();
2430 if (pedantic)
2431 pedwarn ("ANSI C forbids constructor expressions");
2432 if (TYPE_NAME (type) != 0)
2434 if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
2435 name = IDENTIFIER_POINTER (TYPE_NAME (type));
2436 else
2437 name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
2439 else
2440 name = "";
2441 yyval.ttype = result;
2442 if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
2444 int failure = complete_array_type (type, yyval.ttype, 1);
2445 if (failure)
2446 abort ();
2449 break;}
2450 case 66:
2451 #line 513 "objc-parse.y"
2452 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2453 break;}
2454 case 67:
2455 #line 515 "objc-parse.y"
2456 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2457 break;}
2458 case 68:
2459 #line 517 "objc-parse.y"
2460 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2461 break;}
2462 case 69:
2463 #line 519 "objc-parse.y"
2464 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2465 break;}
2466 case 70:
2467 #line 521 "objc-parse.y"
2468 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2469 break;}
2470 case 71:
2471 #line 523 "objc-parse.y"
2472 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2473 break;}
2474 case 72:
2475 #line 525 "objc-parse.y"
2476 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2477 break;}
2478 case 73:
2479 #line 527 "objc-parse.y"
2480 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2481 break;}
2482 case 74:
2483 #line 529 "objc-parse.y"
2484 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2485 break;}
2486 case 75:
2487 #line 531 "objc-parse.y"
2488 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2489 break;}
2490 case 76:
2491 #line 533 "objc-parse.y"
2492 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2493 break;}
2494 case 77:
2495 #line 535 "objc-parse.y"
2496 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2497 break;}
2498 case 78:
2499 #line 537 "objc-parse.y"
2500 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2501 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2502 break;}
2503 case 79:
2504 #line 540 "objc-parse.y"
2505 { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
2506 yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2507 break;}
2508 case 80:
2509 #line 543 "objc-parse.y"
2510 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2511 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2512 break;}
2513 case 81:
2514 #line 546 "objc-parse.y"
2515 { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
2516 yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2517 break;}
2518 case 82:
2519 #line 549 "objc-parse.y"
2520 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2521 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2522 break;}
2523 case 83:
2524 #line 552 "objc-parse.y"
2525 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
2526 - (yyvsp[-4].ttype == boolean_false_node)); ;
2527 break;}
2528 case 84:
2529 #line 555 "objc-parse.y"
2530 { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
2531 yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2532 break;}
2533 case 85:
2534 #line 558 "objc-parse.y"
2535 { if (pedantic)
2536 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2537 /* Make sure first operand is calculated only once. */
2538 yyvsp[0].ttype = save_expr (yyvsp[-1].ttype);
2539 yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
2540 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2541 break;}
2542 case 86:
2543 #line 565 "objc-parse.y"
2544 { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
2545 yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2546 break;}
2547 case 87:
2548 #line 568 "objc-parse.y"
2549 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
2550 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
2551 break;}
2552 case 88:
2553 #line 571 "objc-parse.y"
2554 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
2555 /* This inhibits warnings in truthvalue_conversion. */
2556 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
2557 break;}
2558 case 89:
2559 #line 578 "objc-parse.y"
2561 yyval.ttype = lastiddecl;
2562 if (!yyval.ttype || yyval.ttype == error_mark_node)
2564 if (yychar == YYEMPTY)
2565 yychar = YYLEX;
2566 if (yychar == '(')
2568 tree decl;
2570 if (objc_receiver_context
2571 && ! (objc_receiver_context
2572 && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super")))
2573 /* we have a message to super */
2574 yyval.ttype = get_super_receiver ();
2575 else if (objc_method_context
2576 && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
2578 if (is_private (decl))
2579 yyval.ttype = error_mark_node;
2580 else
2581 yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
2583 else
2585 /* Ordinary implicit function declaration. */
2586 yyval.ttype = implicitly_declare (yyvsp[0].ttype);
2587 assemble_external (yyval.ttype);
2588 TREE_USED (yyval.ttype) = 1;
2591 else if (current_function_decl == 0)
2593 error ("`%s' undeclared here (not in a function)",
2594 IDENTIFIER_POINTER (yyvsp[0].ttype));
2595 yyval.ttype = error_mark_node;
2597 else
2599 tree decl;
2601 if (objc_receiver_context
2602 && ! strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super"))
2603 /* we have a message to super */
2604 yyval.ttype = get_super_receiver ();
2605 else if (objc_method_context
2606 && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
2608 if (is_private (decl))
2609 yyval.ttype = error_mark_node;
2610 else
2611 yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
2613 else
2615 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
2616 || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
2618 error ("`%s' undeclared (first use this function)",
2619 IDENTIFIER_POINTER (yyvsp[0].ttype));
2621 if (! undeclared_variable_notice)
2623 error ("(Each undeclared identifier is reported only once");
2624 error ("for each function it appears in.)");
2625 undeclared_variable_notice = 1;
2628 yyval.ttype = error_mark_node;
2629 /* Prevent repeated error messages. */
2630 IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
2631 IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
2635 else if (TREE_TYPE (yyval.ttype) == error_mark_node)
2636 yyval.ttype = error_mark_node;
2637 else if (C_DECL_ANTICIPATED (yyval.ttype))
2639 /* The first time we see a build-in function used,
2640 if it has not been declared. */
2641 C_DECL_ANTICIPATED (yyval.ttype) = 0;
2642 if (yychar == YYEMPTY)
2643 yychar = YYLEX;
2644 if (yychar == '(')
2646 /* Omit the implicit declaration we
2647 would ordinarily do, so we don't lose
2648 the actual built in type.
2649 But print a diagnostic for the mismatch. */
2650 if (objc_method_context
2651 && is_ivar (objc_ivar_chain, yyvsp[0].ttype))
2652 error ("Instance variable `%s' implicitly declared as function",
2653 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2654 else
2655 if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
2656 error ("`%s' implicitly declared as function",
2657 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2658 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
2659 != TYPE_MODE (integer_type_node))
2660 && (TREE_TYPE (TREE_TYPE (yyval.ttype))
2661 != void_type_node))
2662 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2663 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2664 /* If it really returns void, change that to int. */
2665 if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
2666 TREE_TYPE (yyval.ttype)
2667 = build_function_type (integer_type_node,
2668 TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
2670 else
2671 pedwarn ("built-in function `%s' used without declaration",
2672 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2674 /* Do what we would ordinarily do when a fn is used. */
2675 assemble_external (yyval.ttype);
2676 TREE_USED (yyval.ttype) = 1;
2678 else
2680 assemble_external (yyval.ttype);
2681 TREE_USED (yyval.ttype) = 1;
2682 /* we have a definition - still check if iVariable */
2684 if (!objc_receiver_context
2685 || (objc_receiver_context
2686 && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super")))
2688 tree decl;
2690 if (objc_method_context
2691 && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
2693 if (IDENTIFIER_LOCAL_VALUE (yyvsp[0].ttype))
2694 warning ("local declaration of `%s' hides instance variable",
2695 IDENTIFIER_POINTER (yyvsp[0].ttype));
2696 else
2698 if (is_private (decl))
2699 yyval.ttype = error_mark_node;
2700 else
2701 yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
2705 else /* we have a message to super */
2706 yyval.ttype = get_super_receiver ();
2709 if (TREE_CODE (yyval.ttype) == CONST_DECL)
2711 yyval.ttype = DECL_INITIAL (yyval.ttype);
2712 /* This is to prevent an enum whose value is 0
2713 from being considered a null pointer constant. */
2714 yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
2715 TREE_CONSTANT (yyval.ttype) = 1;
2718 break;}
2719 case 91:
2720 #line 738 "objc-parse.y"
2721 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
2722 break;}
2723 case 92:
2724 #line 740 "objc-parse.y"
2725 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
2726 if (class == 'e' || class == '1'
2727 || class == '2' || class == '<')
2728 C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
2729 yyval.ttype = yyvsp[-1].ttype; ;
2730 break;}
2731 case 93:
2732 #line 746 "objc-parse.y"
2733 { yyval.ttype = error_mark_node; ;
2734 break;}
2735 case 94:
2736 #line 748 "objc-parse.y"
2737 { if (current_function_decl == 0)
2739 error ("braced-group within expression allowed only inside a function");
2740 YYERROR;
2742 /* We must force a BLOCK for this level
2743 so that, if it is not expanded later,
2744 there is a way to turn off the entire subtree of blocks
2745 that are contained in it. */
2746 keep_next_level ();
2747 push_iterator_stack ();
2748 push_label_level ();
2749 yyval.ttype = expand_start_stmt_expr (); ;
2750 break;}
2751 case 95:
2752 #line 762 "objc-parse.y"
2753 { tree rtl_exp;
2754 if (pedantic)
2755 pedwarn ("ANSI C forbids braced-groups within expressions");
2756 pop_iterator_stack ();
2757 pop_label_level ();
2758 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
2759 /* The statements have side effects, so the group does. */
2760 TREE_SIDE_EFFECTS (rtl_exp) = 1;
2762 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
2764 /* Make a BIND_EXPR for the BLOCK already made. */
2765 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
2766 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
2767 /* Remove the block from the tree at this point.
2768 It gets put back at the proper place
2769 when the BIND_EXPR is expanded. */
2770 delete_block (yyvsp[-1].ttype);
2772 else
2773 yyval.ttype = yyvsp[-1].ttype;
2775 break;}
2776 case 96:
2777 #line 785 "objc-parse.y"
2778 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2779 break;}
2780 case 97:
2781 #line 787 "objc-parse.y"
2782 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2783 break;}
2784 case 98:
2785 #line 789 "objc-parse.y"
2787 if (doing_objc_thang)
2789 if (is_public (yyvsp[-2].ttype, yyvsp[0].ttype))
2790 yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2791 else
2792 yyval.ttype = error_mark_node;
2794 else
2795 yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2797 break;}
2798 case 99:
2799 #line 801 "objc-parse.y"
2801 tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
2803 if (doing_objc_thang)
2805 if (is_public (expr, yyvsp[0].ttype))
2806 yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
2807 else
2808 yyval.ttype = error_mark_node;
2810 else
2811 yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
2813 break;}
2814 case 100:
2815 #line 815 "objc-parse.y"
2816 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2817 break;}
2818 case 101:
2819 #line 817 "objc-parse.y"
2820 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2821 break;}
2822 case 102:
2823 #line 819 "objc-parse.y"
2824 { yyval.ttype = build_message_expr (yyvsp[0].ttype); ;
2825 break;}
2826 case 103:
2827 #line 821 "objc-parse.y"
2828 { yyval.ttype = build_selector_expr (yyvsp[0].ttype); ;
2829 break;}
2830 case 104:
2831 #line 823 "objc-parse.y"
2832 { yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ;
2833 break;}
2834 case 105:
2835 #line 825 "objc-parse.y"
2836 { yyval.ttype = build_encode_expr (yyvsp[0].ttype); ;
2837 break;}
2838 case 106:
2839 #line 827 "objc-parse.y"
2840 { yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ;
2841 break;}
2842 case 108:
2843 #line 834 "objc-parse.y"
2844 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2845 break;}
2846 case 110:
2847 #line 842 "objc-parse.y"
2848 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2849 break;}
2850 case 113:
2851 #line 850 "objc-parse.y"
2852 { c_mark_varargs ();
2853 if (pedantic)
2854 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2855 break;}
2856 case 114:
2857 #line 860 "objc-parse.y"
2859 break;}
2860 case 119:
2861 #line 876 "objc-parse.y"
2862 { current_declspecs = TREE_VALUE (declspec_stack);
2863 prefix_attributes = TREE_PURPOSE (declspec_stack);
2864 declspec_stack = TREE_CHAIN (declspec_stack);
2865 resume_momentary (yyvsp[-2].itype); ;
2866 break;}
2867 case 120:
2868 #line 881 "objc-parse.y"
2869 { current_declspecs = TREE_VALUE (declspec_stack);
2870 prefix_attributes = TREE_PURPOSE (declspec_stack);
2871 declspec_stack = TREE_CHAIN (declspec_stack);
2872 resume_momentary (yyvsp[-2].itype); ;
2873 break;}
2874 case 121:
2875 #line 886 "objc-parse.y"
2876 { shadow_tag_warned (yyvsp[-1].ttype, 1);
2877 pedwarn ("empty declaration"); ;
2878 break;}
2879 case 122:
2880 #line 889 "objc-parse.y"
2881 { pedwarn ("empty declaration"); ;
2882 break;}
2883 case 123:
2884 #line 898 "objc-parse.y"
2886 break;}
2887 case 128:
2888 #line 913 "objc-parse.y"
2889 { yyval.itype = suspend_momentary ();
2890 pending_xref_error ();
2891 declspec_stack = tree_cons (prefix_attributes,
2892 current_declspecs,
2893 declspec_stack);
2894 split_specs_attrs (yyvsp[0].ttype,
2895 &current_declspecs, &prefix_attributes); ;
2896 break;}
2897 case 129:
2898 #line 924 "objc-parse.y"
2899 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
2900 break;}
2901 case 130:
2902 #line 929 "objc-parse.y"
2903 { current_declspecs = TREE_VALUE (declspec_stack);
2904 prefix_attributes = TREE_PURPOSE (declspec_stack);
2905 declspec_stack = TREE_CHAIN (declspec_stack);
2906 resume_momentary (yyvsp[-2].itype); ;
2907 break;}
2908 case 131:
2909 #line 934 "objc-parse.y"
2910 { current_declspecs = TREE_VALUE (declspec_stack);
2911 prefix_attributes = TREE_PURPOSE (declspec_stack);
2912 declspec_stack = TREE_CHAIN (declspec_stack);
2913 resume_momentary (yyvsp[-2].itype); ;
2914 break;}
2915 case 132:
2916 #line 939 "objc-parse.y"
2917 { current_declspecs = TREE_VALUE (declspec_stack);
2918 prefix_attributes = TREE_PURPOSE (declspec_stack);
2919 declspec_stack = TREE_CHAIN (declspec_stack);
2920 resume_momentary (yyvsp[-1].itype); ;
2921 break;}
2922 case 133:
2923 #line 944 "objc-parse.y"
2924 { current_declspecs = TREE_VALUE (declspec_stack);
2925 prefix_attributes = TREE_PURPOSE (declspec_stack);
2926 declspec_stack = TREE_CHAIN (declspec_stack);
2927 resume_momentary (yyvsp[-1].itype); ;
2928 break;}
2929 case 134:
2930 #line 949 "objc-parse.y"
2931 { shadow_tag (yyvsp[-1].ttype); ;
2932 break;}
2933 case 135:
2934 #line 951 "objc-parse.y"
2935 { pedwarn ("empty declaration"); ;
2936 break;}
2937 case 136:
2938 #line 953 "objc-parse.y"
2939 { pedantic = yyvsp[-1].itype; ;
2940 break;}
2941 case 137:
2942 #line 963 "objc-parse.y"
2943 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2944 break;}
2945 case 138:
2946 #line 965 "objc-parse.y"
2947 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2948 break;}
2949 case 139:
2950 #line 969 "objc-parse.y"
2951 { yyval.ttype = NULL_TREE; ;
2952 break;}
2953 case 140:
2954 #line 971 "objc-parse.y"
2955 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2956 break;}
2957 case 141:
2958 #line 973 "objc-parse.y"
2959 { if (extra_warnings)
2960 warning ("`%s' is not at beginning of declaration",
2961 IDENTIFIER_POINTER (yyvsp[0].ttype));
2962 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2963 break;}
2964 case 142:
2965 #line 978 "objc-parse.y"
2966 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2967 break;}
2968 case 143:
2969 #line 983 "objc-parse.y"
2970 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2971 break;}
2972 case 144:
2973 #line 985 "objc-parse.y"
2974 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2975 break;}
2976 case 145:
2977 #line 990 "objc-parse.y"
2978 { yyval.ttype = NULL_TREE; ;
2979 break;}
2980 case 146:
2981 #line 992 "objc-parse.y"
2982 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2983 break;}
2984 case 147:
2985 #line 994 "objc-parse.y"
2986 { if (extra_warnings)
2987 warning ("`%s' is not at beginning of declaration",
2988 IDENTIFIER_POINTER (yyvsp[0].ttype));
2989 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2990 break;}
2991 case 148:
2992 #line 1007 "objc-parse.y"
2993 { yyval.ttype = yyvsp[0].ttype; ;
2994 break;}
2995 case 149:
2996 #line 1009 "objc-parse.y"
2997 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
2998 break;}
2999 case 150:
3000 #line 1011 "objc-parse.y"
3001 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
3002 break;}
3003 case 151:
3004 #line 1013 "objc-parse.y"
3005 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
3006 break;}
3007 case 152:
3008 #line 1018 "objc-parse.y"
3009 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
3010 TREE_STATIC (yyval.ttype) = 1; ;
3011 break;}
3012 case 153:
3013 #line 1021 "objc-parse.y"
3014 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3015 break;}
3016 case 154:
3017 #line 1023 "objc-parse.y"
3018 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
3019 TREE_STATIC (yyval.ttype) = 1; ;
3020 break;}
3021 case 155:
3022 #line 1026 "objc-parse.y"
3023 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
3024 warning ("`%s' is not at beginning of declaration",
3025 IDENTIFIER_POINTER (yyvsp[0].ttype));
3026 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
3027 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
3028 break;}
3029 case 156:
3030 #line 1040 "objc-parse.y"
3031 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
3032 break;}
3033 case 157:
3034 #line 1042 "objc-parse.y"
3035 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
3036 break;}
3037 case 158:
3038 #line 1046 "objc-parse.y"
3039 { yyval.ttype = NULL_TREE; ;
3040 break;}
3041 case 159:
3042 #line 1048 "objc-parse.y"
3043 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3044 break;}
3045 case 162:
3046 #line 1058 "objc-parse.y"
3047 { /* For a typedef name, record the meaning, not the name.
3048 In case of `foo foo, bar;'. */
3049 yyval.ttype = lookup_name (yyvsp[0].ttype); ;
3050 break;}
3051 case 163:
3052 #line 1062 "objc-parse.y"
3053 { yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3054 break;}
3055 case 164:
3056 #line 1064 "objc-parse.y"
3057 { yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
3058 break;}
3059 case 165:
3060 #line 1069 "objc-parse.y"
3061 { yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
3062 break;}
3063 case 166:
3064 #line 1071 "objc-parse.y"
3065 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
3066 break;}
3067 case 167:
3068 #line 1073 "objc-parse.y"
3069 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
3070 break;}
3071 case 175:
3072 #line 1095 "objc-parse.y"
3073 { yyval.ttype = NULL_TREE; ;
3074 break;}
3075 case 176:
3076 #line 1097 "objc-parse.y"
3077 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
3078 yyval.ttype = yyvsp[-1].ttype;
3080 break;}
3081 case 177:
3082 #line 1104 "objc-parse.y"
3083 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
3084 yyvsp[-1].ttype, prefix_attributes);
3085 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
3086 break;}
3087 case 178:
3088 #line 1109 "objc-parse.y"
3089 { finish_init ();
3090 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
3091 break;}
3092 case 179:
3093 #line 1112 "objc-parse.y"
3094 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
3095 yyvsp[0].ttype, prefix_attributes);
3096 finish_decl (d, NULL_TREE, yyvsp[-1].ttype);
3098 break;}
3099 case 180:
3100 #line 1120 "objc-parse.y"
3101 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
3102 yyvsp[-1].ttype, prefix_attributes);
3103 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
3104 break;}
3105 case 181:
3106 #line 1125 "objc-parse.y"
3107 { finish_init ();
3108 decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
3109 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
3110 break;}
3111 case 182:
3112 #line 1129 "objc-parse.y"
3113 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
3114 yyvsp[0].ttype, prefix_attributes);
3115 finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
3116 break;}
3117 case 183:
3118 #line 1137 "objc-parse.y"
3119 { yyval.ttype = NULL_TREE; ;
3120 break;}
3121 case 184:
3122 #line 1139 "objc-parse.y"
3123 { yyval.ttype = yyvsp[0].ttype; ;
3124 break;}
3125 case 185:
3126 #line 1144 "objc-parse.y"
3127 { yyval.ttype = yyvsp[0].ttype; ;
3128 break;}
3129 case 186:
3130 #line 1146 "objc-parse.y"
3131 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3132 break;}
3133 case 187:
3134 #line 1151 "objc-parse.y"
3135 { yyval.ttype = yyvsp[-2].ttype; ;
3136 break;}
3137 case 188:
3138 #line 1156 "objc-parse.y"
3139 { yyval.ttype = yyvsp[0].ttype; ;
3140 break;}
3141 case 189:
3142 #line 1158 "objc-parse.y"
3143 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3144 break;}
3145 case 190:
3146 #line 1163 "objc-parse.y"
3147 { yyval.ttype = NULL_TREE; ;
3148 break;}
3149 case 191:
3150 #line 1165 "objc-parse.y"
3151 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
3152 break;}
3153 case 192:
3154 #line 1167 "objc-parse.y"
3155 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
3156 break;}
3157 case 193:
3158 #line 1169 "objc-parse.y"
3159 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
3160 break;}
3161 case 194:
3162 #line 1171 "objc-parse.y"
3163 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3164 break;}
3165 case 200:
3166 #line 1189 "objc-parse.y"
3167 { really_start_incremental_init (NULL_TREE);
3168 /* Note that the call to clear_momentary
3169 is in process_init_element. */
3170 push_momentary (); ;
3171 break;}
3172 case 201:
3173 #line 1194 "objc-parse.y"
3174 { yyval.ttype = pop_init_level (0);
3175 if (yyval.ttype == error_mark_node
3176 && ! (yychar == STRING || yychar == CONSTANT))
3177 pop_momentary ();
3178 else
3179 pop_momentary_nofree (); ;
3180 break;}
3181 case 202:
3182 #line 1202 "objc-parse.y"
3183 { yyval.ttype = error_mark_node; ;
3184 break;}
3185 case 203:
3186 #line 1208 "objc-parse.y"
3187 { if (pedantic)
3188 pedwarn ("ANSI C forbids empty initializer braces"); ;
3189 break;}
3190 case 207:
3191 #line 1222 "objc-parse.y"
3192 { process_init_element (yyvsp[0].ttype); ;
3193 break;}
3194 case 208:
3195 #line 1224 "objc-parse.y"
3196 { push_init_level (0); ;
3197 break;}
3198 case 209:
3199 #line 1226 "objc-parse.y"
3200 { process_init_element (pop_init_level (0)); ;
3201 break;}
3202 case 211:
3203 #line 1232 "objc-parse.y"
3204 { set_init_label (yyvsp[-1].ttype); ;
3205 break;}
3206 case 213:
3207 #line 1235 "objc-parse.y"
3208 { set_init_label (yyvsp[-1].ttype); ;
3209 break;}
3210 case 215:
3211 #line 1241 "objc-parse.y"
3212 { push_c_function_context ();
3213 if (! start_function (current_declspecs, yyvsp[0].ttype,
3214 prefix_attributes, NULL_TREE, 1))
3216 pop_c_function_context ();
3217 YYERROR1;
3219 reinit_parse_for_function (); ;
3220 break;}
3221 case 216:
3222 #line 1250 "objc-parse.y"
3223 { store_parm_decls (); ;
3224 break;}
3225 case 217:
3226 #line 1258 "objc-parse.y"
3227 { finish_function (1);
3228 pop_c_function_context (); ;
3229 break;}
3230 case 218:
3231 #line 1264 "objc-parse.y"
3232 { push_c_function_context ();
3233 if (! start_function (current_declspecs, yyvsp[0].ttype,
3234 prefix_attributes, NULL_TREE, 1))
3236 pop_c_function_context ();
3237 YYERROR1;
3239 reinit_parse_for_function (); ;
3240 break;}
3241 case 219:
3242 #line 1273 "objc-parse.y"
3243 { store_parm_decls (); ;
3244 break;}
3245 case 220:
3246 #line 1281 "objc-parse.y"
3247 { finish_function (1);
3248 pop_c_function_context (); ;
3249 break;}
3250 case 223:
3251 #line 1297 "objc-parse.y"
3252 { yyval.ttype = yyvsp[-1].ttype; ;
3253 break;}
3254 case 224:
3255 #line 1299 "objc-parse.y"
3256 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3257 break;}
3258 case 225:
3259 #line 1304 "objc-parse.y"
3260 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3261 break;}
3262 case 226:
3263 #line 1306 "objc-parse.y"
3264 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3265 break;}
3266 case 227:
3267 #line 1308 "objc-parse.y"
3268 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3269 break;}
3270 case 228:
3271 #line 1315 "objc-parse.y"
3272 { yyval.ttype = yyvsp[0].ttype; ;
3273 break;}
3274 case 231:
3275 #line 1327 "objc-parse.y"
3276 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3277 break;}
3278 case 232:
3279 #line 1332 "objc-parse.y"
3280 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3281 break;}
3282 case 233:
3283 #line 1334 "objc-parse.y"
3284 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3285 break;}
3286 case 234:
3287 #line 1336 "objc-parse.y"
3288 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3289 break;}
3290 case 235:
3291 #line 1343 "objc-parse.y"
3292 { yyval.ttype = yyvsp[0].ttype; ;
3293 break;}
3294 case 237:
3295 #line 1352 "objc-parse.y"
3296 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3297 break;}
3298 case 238:
3299 #line 1357 "objc-parse.y"
3300 { yyval.ttype = yyvsp[-1].ttype; ;
3301 break;}
3302 case 239:
3303 #line 1359 "objc-parse.y"
3304 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3305 break;}
3306 case 240:
3307 #line 1361 "objc-parse.y"
3308 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3309 break;}
3310 case 241:
3311 #line 1363 "objc-parse.y"
3312 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3313 break;}
3314 case 242:
3315 #line 1370 "objc-parse.y"
3316 { yyval.ttype = yyvsp[0].ttype; ;
3317 break;}
3318 case 244:
3319 #line 1376 "objc-parse.y"
3320 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
3321 /* Start scope of tag before parsing components. */
3323 break;}
3324 case 245:
3325 #line 1380 "objc-parse.y"
3326 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
3327 break;}
3328 case 246:
3329 #line 1382 "objc-parse.y"
3330 { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
3331 yyvsp[-2].ttype, yyvsp[0].ttype);
3333 break;}
3334 case 247:
3335 #line 1386 "objc-parse.y"
3336 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
3337 break;}
3338 case 248:
3339 #line 1388 "objc-parse.y"
3340 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
3341 break;}
3342 case 249:
3343 #line 1390 "objc-parse.y"
3344 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
3345 break;}
3346 case 250:
3347 #line 1392 "objc-parse.y"
3348 { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
3349 yyvsp[-2].ttype, yyvsp[0].ttype);
3351 break;}
3352 case 251:
3353 #line 1396 "objc-parse.y"
3354 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
3355 break;}
3356 case 252:
3357 #line 1398 "objc-parse.y"
3358 { yyvsp[0].itype = suspend_momentary ();
3359 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
3360 break;}
3361 case 253:
3362 #line 1401 "objc-parse.y"
3363 { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
3364 resume_momentary (yyvsp[-5].itype); ;
3365 break;}
3366 case 254:
3367 #line 1404 "objc-parse.y"
3368 { yyvsp[0].itype = suspend_momentary ();
3369 yyval.ttype = start_enum (NULL_TREE); ;
3370 break;}
3371 case 255:
3372 #line 1407 "objc-parse.y"
3373 { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
3374 resume_momentary (yyvsp[-5].itype); ;
3375 break;}
3376 case 256:
3377 #line 1410 "objc-parse.y"
3378 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
3379 break;}
3380 case 260:
3381 #line 1421 "objc-parse.y"
3382 { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
3383 break;}
3384 case 261:
3385 #line 1426 "objc-parse.y"
3386 { yyval.ttype = yyvsp[0].ttype; ;
3387 break;}
3388 case 262:
3389 #line 1428 "objc-parse.y"
3390 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
3391 pedwarn ("no semicolon at end of struct or union"); ;
3392 break;}
3393 case 263:
3394 #line 1433 "objc-parse.y"
3395 { yyval.ttype = NULL_TREE; ;
3396 break;}
3397 case 264:
3398 #line 1435 "objc-parse.y"
3399 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
3400 break;}
3401 case 265:
3402 #line 1437 "objc-parse.y"
3403 { if (pedantic)
3404 pedwarn ("extra semicolon in struct or union specified"); ;
3405 break;}
3406 case 266:
3407 #line 1441 "objc-parse.y"
3409 tree interface = lookup_interface (yyvsp[-1].ttype);
3411 if (interface)
3412 yyval.ttype = get_class_ivars (interface);
3413 else
3415 error ("Cannot find interface declaration for `%s'",
3416 IDENTIFIER_POINTER (yyvsp[-1].ttype));
3417 yyval.ttype = NULL_TREE;
3420 break;}
3421 case 267:
3422 #line 1466 "objc-parse.y"
3423 { yyval.ttype = yyvsp[0].ttype;
3424 current_declspecs = TREE_VALUE (declspec_stack);
3425 prefix_attributes = TREE_PURPOSE (declspec_stack);
3426 declspec_stack = TREE_CHAIN (declspec_stack);
3427 resume_momentary (yyvsp[-1].itype); ;
3428 break;}
3429 case 268:
3430 #line 1472 "objc-parse.y"
3431 { if (pedantic)
3432 pedwarn ("ANSI C forbids member declarations with no members");
3433 shadow_tag(yyvsp[0].ttype);
3434 yyval.ttype = NULL_TREE; ;
3435 break;}
3436 case 269:
3437 #line 1477 "objc-parse.y"
3438 { yyval.ttype = yyvsp[0].ttype;
3439 current_declspecs = TREE_VALUE (declspec_stack);
3440 prefix_attributes = TREE_PURPOSE (declspec_stack);
3441 declspec_stack = TREE_CHAIN (declspec_stack);
3442 resume_momentary (yyvsp[-1].itype); ;
3443 break;}
3444 case 270:
3445 #line 1483 "objc-parse.y"
3446 { if (pedantic)
3447 pedwarn ("ANSI C forbids member declarations with no members");
3448 shadow_tag(yyvsp[0].ttype);
3449 yyval.ttype = NULL_TREE; ;
3450 break;}
3451 case 271:
3452 #line 1488 "objc-parse.y"
3453 { yyval.ttype = NULL_TREE; ;
3454 break;}
3455 case 272:
3456 #line 1490 "objc-parse.y"
3457 { yyval.ttype = yyvsp[0].ttype;
3458 pedantic = yyvsp[-1].itype; ;
3459 break;}
3460 case 274:
3461 #line 1497 "objc-parse.y"
3462 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3463 break;}
3464 case 275:
3465 #line 1502 "objc-parse.y"
3466 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
3467 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
3468 break;}
3469 case 276:
3470 #line 1506 "objc-parse.y"
3471 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
3472 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
3473 break;}
3474 case 277:
3475 #line 1509 "objc-parse.y"
3476 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
3477 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
3478 break;}
3479 case 279:
3480 #line 1521 "objc-parse.y"
3481 { if (yyvsp[-2].ttype == error_mark_node)
3482 yyval.ttype = yyvsp[-2].ttype;
3483 else
3484 yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
3485 break;}
3486 case 280:
3487 #line 1526 "objc-parse.y"
3488 { yyval.ttype = error_mark_node; ;
3489 break;}
3490 case 281:
3491 #line 1532 "objc-parse.y"
3492 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
3493 break;}
3494 case 282:
3495 #line 1534 "objc-parse.y"
3496 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3497 break;}
3498 case 283:
3499 #line 1539 "objc-parse.y"
3500 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3501 break;}
3502 case 284:
3503 #line 1541 "objc-parse.y"
3504 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3505 break;}
3506 case 285:
3507 #line 1546 "objc-parse.y"
3508 { yyval.ttype = NULL_TREE; ;
3509 break;}
3510 case 287:
3511 #line 1552 "objc-parse.y"
3512 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3513 break;}
3514 case 288:
3515 #line 1554 "objc-parse.y"
3516 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3517 break;}
3518 case 289:
3519 #line 1559 "objc-parse.y"
3520 { yyval.ttype = NULL_TREE; ;
3521 break;}
3522 case 290:
3523 #line 1561 "objc-parse.y"
3524 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3525 break;}
3526 case 291:
3527 #line 1566 "objc-parse.y"
3528 { yyval.ttype = yyvsp[-1].ttype; ;
3529 break;}
3530 case 292:
3531 #line 1569 "objc-parse.y"
3532 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3533 break;}
3534 case 293:
3535 #line 1571 "objc-parse.y"
3536 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
3537 break;}
3538 case 294:
3539 #line 1573 "objc-parse.y"
3540 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3541 break;}
3542 case 295:
3543 #line 1575 "objc-parse.y"
3544 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3545 break;}
3546 case 296:
3547 #line 1577 "objc-parse.y"
3548 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3549 break;}
3550 case 297:
3551 #line 1579 "objc-parse.y"
3552 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3553 break;}
3554 case 298:
3555 #line 1581 "objc-parse.y"
3556 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
3557 break;}
3558 case 299:
3559 #line 1583 "objc-parse.y"
3560 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
3561 break;}
3562 case 300:
3563 #line 1594 "objc-parse.y"
3565 if (pedantic && yyvsp[0].ends_in_label)
3566 pedwarn ("ANSI C forbids label at end of compound statement");
3568 break;}
3569 case 302:
3570 #line 1603 "objc-parse.y"
3571 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3572 break;}
3573 case 303:
3574 #line 1605 "objc-parse.y"
3575 { yyval.ends_in_label = 0; ;
3576 break;}
3577 case 307:
3578 #line 1617 "objc-parse.y"
3579 { emit_line_note (input_filename, lineno);
3580 pushlevel (0);
3581 clear_last_expr ();
3582 push_momentary ();
3583 expand_start_bindings (0);
3584 if (objc_method_context)
3585 add_objc_decls ();
3587 break;}
3588 case 309:
3589 #line 1632 "objc-parse.y"
3590 { if (pedantic)
3591 pedwarn ("ANSI C forbids label declarations"); ;
3592 break;}
3593 case 312:
3594 #line 1643 "objc-parse.y"
3595 { tree link;
3596 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
3598 tree label = shadow_label (TREE_VALUE (link));
3599 C_DECLARED_LABEL_FLAG (label) = 1;
3600 declare_nonlocal_label (label);
3603 break;}
3604 case 313:
3605 #line 1657 "objc-parse.y"
3607 break;}
3608 case 315:
3609 #line 1662 "objc-parse.y"
3610 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
3611 break;}
3612 case 316:
3613 #line 1664 "objc-parse.y"
3614 { emit_line_note (input_filename, lineno);
3615 expand_end_bindings (getdecls (), 1, 0);
3616 yyval.ttype = poplevel (1, 1, 0);
3617 if (yychar == CONSTANT || yychar == STRING)
3618 pop_momentary_nofree ();
3619 else
3620 pop_momentary (); ;
3621 break;}
3622 case 317:
3623 #line 1672 "objc-parse.y"
3624 { emit_line_note (input_filename, lineno);
3625 expand_end_bindings (getdecls (), kept_level_p (), 0);
3626 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3627 if (yychar == CONSTANT || yychar == STRING)
3628 pop_momentary_nofree ();
3629 else
3630 pop_momentary (); ;
3631 break;}
3632 case 318:
3633 #line 1680 "objc-parse.y"
3634 { emit_line_note (input_filename, lineno);
3635 expand_end_bindings (getdecls (), kept_level_p (), 0);
3636 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3637 if (yychar == CONSTANT || yychar == STRING)
3638 pop_momentary_nofree ();
3639 else
3640 pop_momentary (); ;
3641 break;}
3642 case 321:
3643 #line 1700 "objc-parse.y"
3644 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3645 expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
3646 yyval.itype = stmt_count;
3647 if_stmt_file = yyvsp[-5].filename;
3648 if_stmt_line = yyvsp[-4].lineno;
3649 position_after_white_space (); ;
3650 break;}
3651 case 322:
3652 #line 1713 "objc-parse.y"
3653 { stmt_count++;
3654 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3655 /* See comment in `while' alternative, above. */
3656 emit_nop ();
3657 expand_start_loop_continue_elsewhere (1);
3658 position_after_white_space (); ;
3659 break;}
3660 case 323:
3661 #line 1720 "objc-parse.y"
3662 { expand_loop_continue_here (); ;
3663 break;}
3664 case 324:
3665 #line 1724 "objc-parse.y"
3666 { yyval.filename = input_filename; ;
3667 break;}
3668 case 325:
3669 #line 1728 "objc-parse.y"
3670 { yyval.lineno = lineno; ;
3671 break;}
3672 case 326:
3673 #line 1733 "objc-parse.y"
3675 break;}
3676 case 327:
3677 #line 1738 "objc-parse.y"
3679 break;}
3680 case 328:
3681 #line 1743 "objc-parse.y"
3682 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3683 break;}
3684 case 329:
3685 #line 1748 "objc-parse.y"
3686 { yyval.ends_in_label = 0; ;
3687 break;}
3688 case 330:
3689 #line 1750 "objc-parse.y"
3690 { yyval.ends_in_label = 1; ;
3691 break;}
3692 case 331:
3693 #line 1756 "objc-parse.y"
3694 { stmt_count++; ;
3695 break;}
3696 case 333:
3697 #line 1759 "objc-parse.y"
3698 { stmt_count++;
3699 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3700 /* It appears that this should not be done--that a non-lvalue array
3701 shouldn't get an error if the value isn't used.
3702 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3703 if it appears as a top-level expression,
3704 but says nothing about non-lvalue arrays. */
3705 #if 0
3706 /* Call default_conversion to get an error
3707 on referring to a register array if pedantic. */
3708 if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
3709 || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
3710 yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
3711 #endif
3712 iterator_expand (yyvsp[-1].ttype);
3713 clear_momentary (); ;
3714 break;}
3715 case 334:
3716 #line 1776 "objc-parse.y"
3717 { expand_start_else ();
3718 yyvsp[-1].itype = stmt_count;
3719 position_after_white_space (); ;
3720 break;}
3721 case 335:
3722 #line 1780 "objc-parse.y"
3723 { expand_end_cond ();
3724 if (extra_warnings && stmt_count == yyvsp[-3].itype)
3725 warning ("empty body in an else-statement"); ;
3726 break;}
3727 case 336:
3728 #line 1784 "objc-parse.y"
3729 { expand_end_cond ();
3730 /* This warning is here instead of in simple_if, because we
3731 do not want a warning if an empty if is followed by an
3732 else statement. Increment stmt_count so we don't
3733 give a second error if this is a nested `if'. */
3734 if (extra_warnings && stmt_count++ == yyvsp[0].itype)
3735 warning_with_file_and_line (if_stmt_file, if_stmt_line,
3736 "empty body in an if-statement"); ;
3737 break;}
3738 case 337:
3739 #line 1796 "objc-parse.y"
3740 { expand_end_cond (); ;
3741 break;}
3742 case 338:
3743 #line 1798 "objc-parse.y"
3744 { stmt_count++;
3745 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3746 /* The emit_nop used to come before emit_line_note,
3747 but that made the nop seem like part of the preceding line.
3748 And that was confusing when the preceding line was
3749 inside of an if statement and was not really executed.
3750 I think it ought to work to put the nop after the line number.
3751 We will see. --rms, July 15, 1991. */
3752 emit_nop (); ;
3753 break;}
3754 case 339:
3755 #line 1808 "objc-parse.y"
3756 { /* Don't start the loop till we have succeeded
3757 in parsing the end test. This is to make sure
3758 that we end every loop we start. */
3759 expand_start_loop (1);
3760 emit_line_note (input_filename, lineno);
3761 expand_exit_loop_if_false (NULL_PTR,
3762 truthvalue_conversion (yyvsp[-1].ttype));
3763 position_after_white_space (); ;
3764 break;}
3765 case 340:
3766 #line 1817 "objc-parse.y"
3767 { expand_end_loop (); ;
3768 break;}
3769 case 341:
3770 #line 1820 "objc-parse.y"
3771 { emit_line_note (input_filename, lineno);
3772 expand_exit_loop_if_false (NULL_PTR,
3773 truthvalue_conversion (yyvsp[-2].ttype));
3774 expand_end_loop ();
3775 clear_momentary (); ;
3776 break;}
3777 case 342:
3778 #line 1827 "objc-parse.y"
3779 { expand_end_loop ();
3780 clear_momentary (); ;
3781 break;}
3782 case 343:
3783 #line 1831 "objc-parse.y"
3784 { stmt_count++;
3785 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3786 /* See comment in `while' alternative, above. */
3787 emit_nop ();
3788 if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
3789 /* Next step is to call expand_start_loop_continue_elsewhere,
3790 but wait till after we parse the entire for (...).
3791 Otherwise, invalid input might cause us to call that
3792 fn without calling expand_end_loop. */
3794 break;}
3795 case 344:
3796 #line 1843 "objc-parse.y"
3797 { yyvsp[0].lineno = lineno;
3798 yyval.filename = input_filename; ;
3799 break;}
3800 case 345:
3801 #line 1846 "objc-parse.y"
3803 /* Start the loop. Doing this after parsing
3804 all the expressions ensures we will end the loop. */
3805 expand_start_loop_continue_elsewhere (1);
3806 /* Emit the end-test, with a line number. */
3807 emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
3808 if (yyvsp[-4].ttype)
3809 expand_exit_loop_if_false (NULL_PTR,
3810 truthvalue_conversion (yyvsp[-4].ttype));
3811 /* Don't let the tree nodes for $9 be discarded by
3812 clear_momentary during the parsing of the next stmt. */
3813 push_momentary ();
3814 yyvsp[-3].lineno = lineno;
3815 yyvsp[-2].filename = input_filename;
3816 position_after_white_space (); ;
3817 break;}
3818 case 346:
3819 #line 1862 "objc-parse.y"
3820 { /* Emit the increment expression, with a line number. */
3821 emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
3822 expand_loop_continue_here ();
3823 if (yyvsp[-3].ttype)
3824 c_expand_expr_stmt (yyvsp[-3].ttype);
3825 if (yychar == CONSTANT || yychar == STRING)
3826 pop_momentary_nofree ();
3827 else
3828 pop_momentary ();
3829 expand_end_loop (); ;
3830 break;}
3831 case 347:
3832 #line 1873 "objc-parse.y"
3833 { stmt_count++;
3834 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3835 c_expand_start_case (yyvsp[-1].ttype);
3836 /* Don't let the tree nodes for $3 be discarded by
3837 clear_momentary during the parsing of the next stmt. */
3838 push_momentary ();
3839 position_after_white_space (); ;
3840 break;}
3841 case 348:
3842 #line 1881 "objc-parse.y"
3843 { expand_end_case (yyvsp[-3].ttype);
3844 if (yychar == CONSTANT || yychar == STRING)
3845 pop_momentary_nofree ();
3846 else
3847 pop_momentary (); ;
3848 break;}
3849 case 349:
3850 #line 1887 "objc-parse.y"
3851 { stmt_count++;
3852 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3853 if ( ! expand_exit_something ())
3854 error ("break statement not within loop or switch"); ;
3855 break;}
3856 case 350:
3857 #line 1892 "objc-parse.y"
3858 { stmt_count++;
3859 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3860 if (! expand_continue_loop (NULL_PTR))
3861 error ("continue statement not within a loop"); ;
3862 break;}
3863 case 351:
3864 #line 1897 "objc-parse.y"
3865 { stmt_count++;
3866 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3867 c_expand_return (NULL_TREE); ;
3868 break;}
3869 case 352:
3870 #line 1901 "objc-parse.y"
3871 { stmt_count++;
3872 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3873 c_expand_return (yyvsp[-1].ttype); ;
3874 break;}
3875 case 353:
3876 #line 1905 "objc-parse.y"
3877 { stmt_count++;
3878 emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
3879 STRIP_NOPS (yyvsp[-2].ttype);
3880 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
3881 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
3882 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
3883 expand_asm (yyvsp[-2].ttype);
3884 else
3885 error ("argument of `asm' is not a constant string"); ;
3886 break;}
3887 case 354:
3888 #line 1916 "objc-parse.y"
3889 { stmt_count++;
3890 emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
3891 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
3892 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
3893 input_filename, lineno); ;
3894 break;}
3895 case 355:
3896 #line 1923 "objc-parse.y"
3897 { stmt_count++;
3898 emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
3899 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
3900 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
3901 input_filename, lineno); ;
3902 break;}
3903 case 356:
3904 #line 1931 "objc-parse.y"
3905 { stmt_count++;
3906 emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
3907 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
3908 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
3909 input_filename, lineno); ;
3910 break;}
3911 case 357:
3912 #line 1937 "objc-parse.y"
3913 { tree decl;
3914 stmt_count++;
3915 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3916 decl = lookup_label (yyvsp[-1].ttype);
3917 if (decl != 0)
3919 TREE_USED (decl) = 1;
3920 expand_goto (decl);
3923 break;}
3924 case 358:
3925 #line 1948 "objc-parse.y"
3926 { if (pedantic)
3927 pedwarn ("ANSI C forbids `goto *expr;'");
3928 stmt_count++;
3929 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3930 expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
3931 break;}
3932 case 361:
3933 #line 1963 "objc-parse.y"
3935 /* The value returned by this action is */
3936 /* 1 if everything is OK */
3937 /* 0 in case of error or already bound iterator */
3939 yyval.itype = 0;
3940 if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
3941 error ("invalid `for (ITERATOR)' syntax");
3942 else if (! ITERATOR_P (yyvsp[-1].ttype))
3943 error ("`%s' is not an iterator",
3944 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3945 else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
3946 error ("`for (%s)' inside expansion of same iterator",
3947 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3948 else
3950 yyval.itype = 1;
3951 iterator_for_loop_start (yyvsp[-1].ttype);
3954 break;}
3955 case 362:
3956 #line 1984 "objc-parse.y"
3958 if (yyvsp[-1].itype)
3959 iterator_for_loop_end (yyvsp[-3].ttype);
3961 break;}
3962 case 363:
3963 #line 2019 "objc-parse.y"
3964 { register tree value = check_case_value (yyvsp[-1].ttype);
3965 register tree label
3966 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3968 stmt_count++;
3970 if (value != error_mark_node)
3972 tree duplicate;
3973 int success = pushcase (value, convert_and_check,
3974 label, &duplicate);
3975 if (success == 1)
3976 error ("case label not within a switch statement");
3977 else if (success == 2)
3979 error ("duplicate case value");
3980 error_with_decl (duplicate, "this is the first entry for that value");
3982 else if (success == 3)
3983 warning ("case value out of range");
3984 else if (success == 5)
3985 error ("case label within scope of cleanup or variable array");
3987 position_after_white_space (); ;
3988 break;}
3989 case 364:
3990 #line 2044 "objc-parse.y"
3991 { register tree value1 = check_case_value (yyvsp[-3].ttype);
3992 register tree value2 = check_case_value (yyvsp[-1].ttype);
3993 register tree label
3994 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3996 if (pedantic)
3997 pedwarn ("ANSI C forbids case ranges");
3998 stmt_count++;
4000 if (value1 != error_mark_node && value2 != error_mark_node)
4002 tree duplicate;
4003 int success = pushcase_range (value1, value2,
4004 convert_and_check, label,
4005 &duplicate);
4006 if (success == 1)
4007 error ("case label not within a switch statement");
4008 else if (success == 2)
4010 error ("duplicate case value");
4011 error_with_decl (duplicate, "this is the first entry for that value");
4013 else if (success == 3)
4014 warning ("case value out of range");
4015 else if (success == 4)
4016 warning ("empty case range");
4017 else if (success == 5)
4018 error ("case label within scope of cleanup or variable array");
4020 position_after_white_space (); ;
4021 break;}
4022 case 365:
4023 #line 2075 "objc-parse.y"
4025 tree duplicate;
4026 register tree label
4027 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
4028 int success = pushcase (NULL_TREE, 0, label, &duplicate);
4029 stmt_count++;
4030 if (success == 1)
4031 error ("default label not within a switch statement");
4032 else if (success == 2)
4034 error ("multiple default labels in one switch");
4035 error_with_decl (duplicate, "this is the first default label");
4037 position_after_white_space (); ;
4038 break;}
4039 case 366:
4040 #line 2090 "objc-parse.y"
4041 { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
4042 stmt_count++;
4043 emit_nop ();
4044 if (label)
4045 expand_label (label);
4046 position_after_white_space (); ;
4047 break;}
4048 case 367:
4049 #line 2102 "objc-parse.y"
4050 { emit_line_note (input_filename, lineno);
4051 yyval.ttype = NULL_TREE; ;
4052 break;}
4053 case 368:
4054 #line 2105 "objc-parse.y"
4055 { emit_line_note (input_filename, lineno); ;
4056 break;}
4057 case 369:
4058 #line 2110 "objc-parse.y"
4059 { yyval.ttype = NULL_TREE; ;
4060 break;}
4061 case 371:
4062 #line 2117 "objc-parse.y"
4063 { yyval.ttype = NULL_TREE; ;
4064 break;}
4065 case 374:
4066 #line 2124 "objc-parse.y"
4067 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4068 break;}
4069 case 375:
4070 #line 2129 "objc-parse.y"
4071 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4072 break;}
4073 case 376:
4074 #line 2134 "objc-parse.y"
4075 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
4076 break;}
4077 case 377:
4078 #line 2136 "objc-parse.y"
4079 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
4080 break;}
4081 case 378:
4082 #line 2142 "objc-parse.y"
4083 { pushlevel (0);
4084 clear_parm_order ();
4085 declare_parm_level (0); ;
4086 break;}
4087 case 379:
4088 #line 2146 "objc-parse.y"
4089 { yyval.ttype = yyvsp[0].ttype;
4090 parmlist_tags_warning ();
4091 poplevel (0, 0, 0); ;
4092 break;}
4093 case 381:
4094 #line 2154 "objc-parse.y"
4095 { tree parm;
4096 if (pedantic)
4097 pedwarn ("ANSI C forbids forward parameter declarations");
4098 /* Mark the forward decls as such. */
4099 for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
4100 TREE_ASM_WRITTEN (parm) = 1;
4101 clear_parm_order (); ;
4102 break;}
4103 case 382:
4104 #line 2162 "objc-parse.y"
4105 { yyval.ttype = yyvsp[0].ttype; ;
4106 break;}
4107 case 383:
4108 #line 2164 "objc-parse.y"
4109 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
4110 break;}
4111 case 384:
4112 #line 2170 "objc-parse.y"
4113 { yyval.ttype = get_parm_info (0); ;
4114 break;}
4115 case 385:
4116 #line 2172 "objc-parse.y"
4117 { yyval.ttype = get_parm_info (0);
4118 /* Gcc used to allow this as an extension. However, it does
4119 not work for all targets, and thus has been disabled.
4120 Also, since func (...) and func () are indistinguishable,
4121 it caused problems with the code in expand_builtin which
4122 tries to verify that BUILT_IN_NEXT_ARG is being used
4123 correctly. */
4124 error ("ANSI C requires a named argument before `...'");
4126 break;}
4127 case 386:
4128 #line 2182 "objc-parse.y"
4129 { yyval.ttype = get_parm_info (1); ;
4130 break;}
4131 case 387:
4132 #line 2184 "objc-parse.y"
4133 { yyval.ttype = get_parm_info (0); ;
4134 break;}
4135 case 388:
4136 #line 2189 "objc-parse.y"
4137 { push_parm_decl (yyvsp[0].ttype); ;
4138 break;}
4139 case 389:
4140 #line 2191 "objc-parse.y"
4141 { push_parm_decl (yyvsp[0].ttype); ;
4142 break;}
4143 case 390:
4144 #line 2198 "objc-parse.y"
4145 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4146 yyvsp[-1].ttype),
4147 build_tree_list (prefix_attributes,
4148 yyvsp[0].ttype));
4149 current_declspecs = TREE_VALUE (declspec_stack);
4150 prefix_attributes = TREE_PURPOSE (declspec_stack);
4151 declspec_stack = TREE_CHAIN (declspec_stack);
4152 resume_momentary (yyvsp[-2].itype); ;
4153 break;}
4154 case 391:
4155 #line 2207 "objc-parse.y"
4156 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4157 yyvsp[-1].ttype),
4158 build_tree_list (prefix_attributes,
4159 yyvsp[0].ttype));
4160 current_declspecs = TREE_VALUE (declspec_stack);
4161 prefix_attributes = TREE_PURPOSE (declspec_stack);
4162 declspec_stack = TREE_CHAIN (declspec_stack);
4163 resume_momentary (yyvsp[-2].itype); ;
4164 break;}
4165 case 392:
4166 #line 2216 "objc-parse.y"
4167 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4168 yyvsp[-1].ttype),
4169 build_tree_list (prefix_attributes,
4170 yyvsp[0].ttype));
4171 current_declspecs = TREE_VALUE (declspec_stack);
4172 prefix_attributes = TREE_PURPOSE (declspec_stack);
4173 declspec_stack = TREE_CHAIN (declspec_stack);
4174 resume_momentary (yyvsp[-2].itype); ;
4175 break;}
4176 case 393:
4177 #line 2225 "objc-parse.y"
4178 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4179 yyvsp[-1].ttype),
4180 build_tree_list (prefix_attributes,
4181 yyvsp[0].ttype));
4182 current_declspecs = TREE_VALUE (declspec_stack);
4183 prefix_attributes = TREE_PURPOSE (declspec_stack);
4184 declspec_stack = TREE_CHAIN (declspec_stack);
4185 resume_momentary (yyvsp[-2].itype); ;
4186 break;}
4187 case 394:
4188 #line 2235 "objc-parse.y"
4189 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4190 yyvsp[-1].ttype),
4191 build_tree_list (prefix_attributes,
4192 yyvsp[0].ttype));
4193 current_declspecs = TREE_VALUE (declspec_stack);
4194 prefix_attributes = TREE_PURPOSE (declspec_stack);
4195 declspec_stack = TREE_CHAIN (declspec_stack);
4196 resume_momentary (yyvsp[-2].itype); ;
4197 break;}
4198 case 395:
4199 #line 2249 "objc-parse.y"
4200 { pushlevel (0);
4201 clear_parm_order ();
4202 declare_parm_level (1); ;
4203 break;}
4204 case 396:
4205 #line 2253 "objc-parse.y"
4206 { yyval.ttype = yyvsp[0].ttype;
4207 parmlist_tags_warning ();
4208 poplevel (0, 0, 0); ;
4209 break;}
4210 case 398:
4211 #line 2261 "objc-parse.y"
4212 { tree t;
4213 for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
4214 if (TREE_VALUE (t) == NULL_TREE)
4215 error ("`...' in old-style identifier list");
4216 yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
4217 break;}
4218 case 399:
4219 #line 2271 "objc-parse.y"
4220 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4221 break;}
4222 case 400:
4223 #line 2273 "objc-parse.y"
4224 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4225 break;}
4226 case 401:
4227 #line 2279 "objc-parse.y"
4228 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4229 break;}
4230 case 402:
4231 #line 2281 "objc-parse.y"
4232 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4233 break;}
4234 case 403:
4235 #line 2286 "objc-parse.y"
4236 { yyval.itype = pedantic;
4237 pedantic = 0; ;
4238 break;}
4239 case 409:
4240 #line 2299 "objc-parse.y"
4242 if (objc_implementation_context)
4244 finish_class (objc_implementation_context);
4245 objc_ivar_chain = NULL_TREE;
4246 objc_implementation_context = NULL_TREE;
4248 else
4249 warning ("`@end' must appear in an implementation context");
4251 break;}
4252 case 410:
4253 #line 2314 "objc-parse.y"
4254 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4255 break;}
4256 case 411:
4257 #line 2316 "objc-parse.y"
4258 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4259 break;}
4260 case 412:
4261 #line 2321 "objc-parse.y"
4263 objc_declare_class (yyvsp[-1].ttype);
4265 break;}
4266 case 413:
4267 #line 2327 "objc-parse.y"
4269 objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype);
4271 break;}
4272 case 414:
4273 #line 2333 "objc-parse.y"
4275 objc_interface_context = objc_ivar_context
4276 = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
4277 objc_public_flag = 0;
4279 break;}
4280 case 415:
4281 #line 2339 "objc-parse.y"
4283 continue_class (objc_interface_context);
4285 break;}
4286 case 416:
4287 #line 2344 "objc-parse.y"
4289 finish_class (objc_interface_context);
4290 objc_interface_context = NULL_TREE;
4292 break;}
4293 case 417:
4294 #line 2350 "objc-parse.y"
4296 objc_interface_context
4297 = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype);
4298 continue_class (objc_interface_context);
4300 break;}
4301 case 418:
4302 #line 2357 "objc-parse.y"
4304 finish_class (objc_interface_context);
4305 objc_interface_context = NULL_TREE;
4307 break;}
4308 case 419:
4309 #line 2363 "objc-parse.y"
4311 objc_interface_context = objc_ivar_context
4312 = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype);
4313 objc_public_flag = 0;
4315 break;}
4316 case 420:
4317 #line 2369 "objc-parse.y"
4319 continue_class (objc_interface_context);
4321 break;}
4322 case 421:
4323 #line 2374 "objc-parse.y"
4325 finish_class (objc_interface_context);
4326 objc_interface_context = NULL_TREE;
4328 break;}
4329 case 422:
4330 #line 2380 "objc-parse.y"
4332 objc_interface_context
4333 = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
4334 continue_class (objc_interface_context);
4336 break;}
4337 case 423:
4338 #line 2387 "objc-parse.y"
4340 finish_class (objc_interface_context);
4341 objc_interface_context = NULL_TREE;
4343 break;}
4344 case 424:
4345 #line 2393 "objc-parse.y"
4347 objc_implementation_context = objc_ivar_context
4348 = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4349 objc_public_flag = 0;
4351 break;}
4352 case 425:
4353 #line 2399 "objc-parse.y"
4355 objc_ivar_chain
4356 = continue_class (objc_implementation_context);
4358 break;}
4359 case 426:
4360 #line 2405 "objc-parse.y"
4362 objc_implementation_context
4363 = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
4364 objc_ivar_chain
4365 = continue_class (objc_implementation_context);
4367 break;}
4368 case 427:
4369 #line 2413 "objc-parse.y"
4371 objc_implementation_context = objc_ivar_context
4372 = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
4373 objc_public_flag = 0;
4375 break;}
4376 case 428:
4377 #line 2419 "objc-parse.y"
4379 objc_ivar_chain
4380 = continue_class (objc_implementation_context);
4382 break;}
4383 case 429:
4384 #line 2425 "objc-parse.y"
4386 objc_implementation_context
4387 = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
4388 objc_ivar_chain
4389 = continue_class (objc_implementation_context);
4391 break;}
4392 case 430:
4393 #line 2433 "objc-parse.y"
4395 objc_interface_context
4396 = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
4397 continue_class (objc_interface_context);
4399 break;}
4400 case 431:
4401 #line 2440 "objc-parse.y"
4403 finish_class (objc_interface_context);
4404 objc_interface_context = NULL_TREE;
4406 break;}
4407 case 432:
4408 #line 2446 "objc-parse.y"
4410 objc_implementation_context
4411 = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
4412 objc_ivar_chain
4413 = continue_class (objc_implementation_context);
4415 break;}
4416 case 433:
4417 #line 2456 "objc-parse.y"
4419 remember_protocol_qualifiers ();
4420 objc_interface_context
4421 = start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[-1].ttype, yyvsp[0].ttype);
4423 break;}
4424 case 434:
4425 #line 2462 "objc-parse.y"
4427 forget_protocol_qualifiers();
4428 finish_protocol(objc_interface_context);
4429 objc_interface_context = NULL_TREE;
4431 break;}
4432 case 435:
4433 #line 2471 "objc-parse.y"
4435 yyval.ttype = NULL_TREE;
4437 break;}
4438 case 437:
4439 #line 2479 "objc-parse.y"
4441 if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR)
4442 yyval.ttype = yyvsp[-1].ttype;
4443 else
4444 YYERROR1;
4446 break;}
4447 case 440:
4448 #line 2493 "objc-parse.y"
4449 { objc_public_flag = 2; ;
4450 break;}
4451 case 441:
4452 #line 2494 "objc-parse.y"
4453 { objc_public_flag = 0; ;
4454 break;}
4455 case 442:
4456 #line 2495 "objc-parse.y"
4457 { objc_public_flag = 1; ;
4458 break;}
4459 case 443:
4460 #line 2500 "objc-parse.y"
4462 yyval.ttype = NULL_TREE;
4464 break;}
4465 case 445:
4466 #line 2505 "objc-parse.y"
4468 if (pedantic)
4469 pedwarn ("extra semicolon in struct or union specified");
4471 break;}
4472 case 446:
4473 #line 2523 "objc-parse.y"
4474 { yyval.ttype = yyvsp[0].ttype;
4475 current_declspecs = TREE_VALUE (declspec_stack);
4476 prefix_attributes = TREE_PURPOSE (declspec_stack);
4477 declspec_stack = TREE_CHAIN (declspec_stack);
4478 resume_momentary (yyvsp[-1].itype); ;
4479 break;}
4480 case 447:
4481 #line 2529 "objc-parse.y"
4482 { yyval.ttype = yyvsp[0].ttype;
4483 current_declspecs = TREE_VALUE (declspec_stack);
4484 prefix_attributes = TREE_PURPOSE (declspec_stack);
4485 declspec_stack = TREE_CHAIN (declspec_stack);
4486 resume_momentary (yyvsp[-1].itype); ;
4487 break;}
4488 case 448:
4489 #line 2535 "objc-parse.y"
4490 { yyval.ttype = NULL_TREE; ;
4491 break;}
4492 case 449:
4493 #line 2540 "objc-parse.y"
4494 { yyval.ttype = NULL_TREE; ;
4495 break;}
4496 case 452:
4497 #line 2547 "objc-parse.y"
4499 yyval.ttype = add_instance_variable (objc_ivar_context,
4500 objc_public_flag,
4501 yyvsp[0].ttype, current_declspecs,
4502 NULL_TREE);
4504 break;}
4505 case 453:
4506 #line 2554 "objc-parse.y"
4508 yyval.ttype = add_instance_variable (objc_ivar_context,
4509 objc_public_flag,
4510 yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype);
4512 break;}
4513 case 454:
4514 #line 2560 "objc-parse.y"
4516 yyval.ttype = add_instance_variable (objc_ivar_context,
4517 objc_public_flag,
4518 NULL_TREE,
4519 current_declspecs, yyvsp[0].ttype);
4521 break;}
4522 case 455:
4523 #line 2570 "objc-parse.y"
4525 remember_protocol_qualifiers ();
4526 if (objc_implementation_context)
4527 objc_inherit_code = CLASS_METHOD_DECL;
4528 else
4529 fatal ("method definition not in class context");
4531 break;}
4532 case 456:
4533 #line 2578 "objc-parse.y"
4535 forget_protocol_qualifiers ();
4536 add_class_method (objc_implementation_context, yyvsp[0].ttype);
4537 start_method_def (yyvsp[0].ttype);
4538 objc_method_context = yyvsp[0].ttype;
4540 break;}
4541 case 457:
4542 #line 2585 "objc-parse.y"
4544 continue_method_def ();
4546 break;}
4547 case 458:
4548 #line 2589 "objc-parse.y"
4550 finish_method_def ();
4551 objc_method_context = NULL_TREE;
4553 break;}
4554 case 459:
4555 #line 2595 "objc-parse.y"
4557 remember_protocol_qualifiers ();
4558 if (objc_implementation_context)
4559 objc_inherit_code = INSTANCE_METHOD_DECL;
4560 else
4561 fatal ("method definition not in class context");
4563 break;}
4564 case 460:
4565 #line 2603 "objc-parse.y"
4567 forget_protocol_qualifiers ();
4568 add_instance_method (objc_implementation_context, yyvsp[0].ttype);
4569 start_method_def (yyvsp[0].ttype);
4570 objc_method_context = yyvsp[0].ttype;
4572 break;}
4573 case 461:
4574 #line 2610 "objc-parse.y"
4576 continue_method_def ();
4578 break;}
4579 case 462:
4580 #line 2614 "objc-parse.y"
4582 finish_method_def ();
4583 objc_method_context = NULL_TREE;
4585 break;}
4586 case 464:
4587 #line 2626 "objc-parse.y"
4588 {yyval.ttype = NULL_TREE; ;
4589 break;}
4590 case 469:
4591 #line 2633 "objc-parse.y"
4592 {yyval.ttype = NULL_TREE; ;
4593 break;}
4594 case 473:
4595 #line 2643 "objc-parse.y"
4597 objc_inherit_code = CLASS_METHOD_DECL;
4599 break;}
4600 case 474:
4601 #line 2647 "objc-parse.y"
4603 add_class_method (objc_interface_context, yyvsp[0].ttype);
4605 break;}
4606 case 476:
4607 #line 2653 "objc-parse.y"
4609 objc_inherit_code = INSTANCE_METHOD_DECL;
4611 break;}
4612 case 477:
4613 #line 2657 "objc-parse.y"
4615 add_instance_method (objc_interface_context, yyvsp[0].ttype);
4617 break;}
4618 case 479:
4619 #line 2665 "objc-parse.y"
4621 yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
4623 break;}
4624 case 480:
4625 #line 2670 "objc-parse.y"
4627 yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE);
4629 break;}
4630 case 481:
4631 #line 2675 "objc-parse.y"
4633 yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
4635 break;}
4636 case 482:
4637 #line 2680 "objc-parse.y"
4639 yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
4641 break;}
4642 case 491:
4643 #line 2710 "objc-parse.y"
4644 { current_declspecs = TREE_VALUE (declspec_stack);
4645 prefix_attributes = TREE_PURPOSE (declspec_stack);
4646 declspec_stack = TREE_CHAIN (declspec_stack);
4647 resume_momentary (yyvsp[-2].itype); ;
4648 break;}
4649 case 492:
4650 #line 2715 "objc-parse.y"
4651 { shadow_tag (yyvsp[-1].ttype); ;
4652 break;}
4653 case 493:
4654 #line 2717 "objc-parse.y"
4655 { pedwarn ("empty declaration"); ;
4656 break;}
4657 case 494:
4658 #line 2722 "objc-parse.y"
4659 { push_parm_decl (yyvsp[0].ttype); ;
4660 break;}
4661 case 495:
4662 #line 2724 "objc-parse.y"
4663 { push_parm_decl (yyvsp[0].ttype); ;
4664 break;}
4665 case 496:
4666 #line 2732 "objc-parse.y"
4667 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4668 yyvsp[-1].ttype),
4669 build_tree_list (prefix_attributes,
4670 yyvsp[0].ttype)); ;
4671 break;}
4672 case 497:
4673 #line 2737 "objc-parse.y"
4674 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4675 yyvsp[-1].ttype),
4676 build_tree_list (prefix_attributes,
4677 yyvsp[0].ttype)); ;
4678 break;}
4679 case 498:
4680 #line 2742 "objc-parse.y"
4681 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4682 yyvsp[-1].ttype),
4683 build_tree_list (prefix_attributes,
4684 yyvsp[0].ttype)); ;
4685 break;}
4686 case 499:
4687 #line 2750 "objc-parse.y"
4689 yyval.ttype = NULL_TREE;
4691 break;}
4692 case 500:
4693 #line 2754 "objc-parse.y"
4695 /* oh what a kludge! */
4696 yyval.ttype = (tree)1;
4698 break;}
4699 case 501:
4700 #line 2759 "objc-parse.y"
4702 pushlevel (0);
4704 break;}
4705 case 502:
4706 #line 2763 "objc-parse.y"
4708 /* returns a tree list node generated by get_parm_info */
4709 yyval.ttype = yyvsp[0].ttype;
4710 poplevel (0, 0, 0);
4712 break;}
4713 case 505:
4714 #line 2778 "objc-parse.y"
4716 yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
4718 break;}
4719 case 510:
4720 #line 2791 "objc-parse.y"
4721 { yyval.ttype = get_identifier (token_buffer); ;
4722 break;}
4723 case 511:
4724 #line 2792 "objc-parse.y"
4725 { yyval.ttype = get_identifier (token_buffer); ;
4726 break;}
4727 case 512:
4728 #line 2793 "objc-parse.y"
4729 { yyval.ttype = get_identifier (token_buffer); ;
4730 break;}
4731 case 513:
4732 #line 2794 "objc-parse.y"
4733 { yyval.ttype = get_identifier (token_buffer); ;
4734 break;}
4735 case 514:
4736 #line 2795 "objc-parse.y"
4737 { yyval.ttype = get_identifier (token_buffer); ;
4738 break;}
4739 case 515:
4740 #line 2796 "objc-parse.y"
4741 { yyval.ttype = get_identifier (token_buffer); ;
4742 break;}
4743 case 516:
4744 #line 2797 "objc-parse.y"
4745 { yyval.ttype = get_identifier (token_buffer); ;
4746 break;}
4747 case 517:
4748 #line 2798 "objc-parse.y"
4749 { yyval.ttype = get_identifier (token_buffer); ;
4750 break;}
4751 case 518:
4752 #line 2799 "objc-parse.y"
4753 { yyval.ttype = get_identifier (token_buffer); ;
4754 break;}
4755 case 519:
4756 #line 2800 "objc-parse.y"
4757 { yyval.ttype = get_identifier (token_buffer); ;
4758 break;}
4759 case 520:
4760 #line 2801 "objc-parse.y"
4761 { yyval.ttype = get_identifier (token_buffer); ;
4762 break;}
4763 case 521:
4764 #line 2802 "objc-parse.y"
4765 { yyval.ttype = get_identifier (token_buffer); ;
4766 break;}
4767 case 522:
4768 #line 2803 "objc-parse.y"
4769 { yyval.ttype = get_identifier (token_buffer); ;
4770 break;}
4771 case 523:
4772 #line 2804 "objc-parse.y"
4773 { yyval.ttype = get_identifier (token_buffer); ;
4774 break;}
4775 case 524:
4776 #line 2805 "objc-parse.y"
4777 { yyval.ttype = get_identifier (token_buffer); ;
4778 break;}
4779 case 525:
4780 #line 2806 "objc-parse.y"
4781 { yyval.ttype = get_identifier (token_buffer); ;
4782 break;}
4783 case 526:
4784 #line 2807 "objc-parse.y"
4785 { yyval.ttype = get_identifier (token_buffer); ;
4786 break;}
4787 case 527:
4788 #line 2808 "objc-parse.y"
4789 { yyval.ttype = get_identifier (token_buffer); ;
4790 break;}
4791 case 528:
4792 #line 2809 "objc-parse.y"
4793 { yyval.ttype = get_identifier (token_buffer); ;
4794 break;}
4795 case 531:
4796 #line 2815 "objc-parse.y"
4798 yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
4800 break;}
4801 case 532:
4802 #line 2820 "objc-parse.y"
4804 yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
4806 break;}
4807 case 533:
4808 #line 2825 "objc-parse.y"
4810 yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype);
4812 break;}
4813 case 534:
4814 #line 2830 "objc-parse.y"
4816 yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
4818 break;}
4819 case 538:
4820 #line 2843 "objc-parse.y"
4822 yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
4824 break;}
4825 case 539:
4826 #line 2851 "objc-parse.y"
4828 if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE)
4829 /* just return the expr., remove a level of indirection */
4830 yyval.ttype = TREE_VALUE (yyvsp[0].ttype);
4831 else
4832 /* we have a comma expr., we will collapse later */
4833 yyval.ttype = yyvsp[0].ttype;
4835 break;}
4836 case 540:
4837 #line 2863 "objc-parse.y"
4839 yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
4841 break;}
4842 case 541:
4843 #line 2867 "objc-parse.y"
4845 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
4847 break;}
4848 case 543:
4849 #line 2875 "objc-parse.y"
4851 yyval.ttype = get_class_reference (yyvsp[0].ttype);
4853 break;}
4854 case 544:
4855 #line 2882 "objc-parse.y"
4856 { objc_receiver_context = 1; ;
4857 break;}
4858 case 545:
4859 #line 2884 "objc-parse.y"
4860 { objc_receiver_context = 0; ;
4861 break;}
4862 case 546:
4863 #line 2886 "objc-parse.y"
4865 yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype);
4867 break;}
4868 case 550:
4869 #line 2899 "objc-parse.y"
4871 yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
4873 break;}
4874 case 551:
4875 #line 2906 "objc-parse.y"
4877 yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
4879 break;}
4880 case 552:
4881 #line 2910 "objc-parse.y"
4883 yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE);
4885 break;}
4886 case 553:
4887 #line 2917 "objc-parse.y"
4889 yyval.ttype = yyvsp[-1].ttype;
4891 break;}
4892 case 554:
4893 #line 2924 "objc-parse.y"
4895 yyval.ttype = yyvsp[-1].ttype;
4897 break;}
4898 case 555:
4899 #line 2933 "objc-parse.y"
4901 yyval.ttype = groktypename (yyvsp[-1].ttype);
4903 break;}
4905 /* the action file gets copied in in place of this dollarsign */
4906 #line 487 "/usr/local/share/bison.simple"
4908 yyvsp -= yylen;
4909 yyssp -= yylen;
4910 #ifdef YYLSP_NEEDED
4911 yylsp -= yylen;
4912 #endif
4914 #if YYDEBUG != 0
4915 if (yydebug)
4917 short *ssp1 = yyss - 1;
4918 fprintf (stderr, "state stack now");
4919 while (ssp1 != yyssp)
4920 fprintf (stderr, " %d", *++ssp1);
4921 fprintf (stderr, "\n");
4923 #endif
4925 *++yyvsp = yyval;
4927 #ifdef YYLSP_NEEDED
4928 yylsp++;
4929 if (yylen == 0)
4931 yylsp->first_line = yylloc.first_line;
4932 yylsp->first_column = yylloc.first_column;
4933 yylsp->last_line = (yylsp-1)->last_line;
4934 yylsp->last_column = (yylsp-1)->last_column;
4935 yylsp->text = 0;
4937 else
4939 yylsp->last_line = (yylsp+yylen-1)->last_line;
4940 yylsp->last_column = (yylsp+yylen-1)->last_column;
4942 #endif
4944 /* Now "shift" the result of the reduction.
4945 Determine what state that goes to,
4946 based on the state we popped back to
4947 and the rule number reduced by. */
4949 yyn = yyr1[yyn];
4951 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
4952 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4953 yystate = yytable[yystate];
4954 else
4955 yystate = yydefgoto[yyn - YYNTBASE];
4957 goto yynewstate;
4959 yyerrlab: /* here on detecting error */
4961 if (! yyerrstatus)
4962 /* If not already recovering from an error, report this error. */
4964 ++yynerrs;
4966 #ifdef YYERROR_VERBOSE
4967 yyn = yypact[yystate];
4969 if (yyn > YYFLAG && yyn < YYLAST)
4971 int size = 0;
4972 char *msg;
4973 int x, count;
4975 count = 0;
4976 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
4977 for (x = (yyn < 0 ? -yyn : 0);
4978 x < (sizeof(yytname) / sizeof(char *)); x++)
4979 if (yycheck[x + yyn] == x)
4980 size += strlen(yytname[x]) + 15, count++;
4981 msg = (char *) malloc(size + 15);
4982 if (msg != 0)
4984 strcpy(msg, "parse error");
4986 if (count < 5)
4988 count = 0;
4989 for (x = (yyn < 0 ? -yyn : 0);
4990 x < (sizeof(yytname) / sizeof(char *)); x++)
4991 if (yycheck[x + yyn] == x)
4993 strcat(msg, count == 0 ? ", expecting `" : " or `");
4994 strcat(msg, yytname[x]);
4995 strcat(msg, "'");
4996 count++;
4999 yyerror(msg);
5000 free(msg);
5002 else
5003 yyerror ("parse error; also virtual memory exceeded");
5005 else
5006 #endif /* YYERROR_VERBOSE */
5007 yyerror("parse error");
5010 goto yyerrlab1;
5011 yyerrlab1: /* here on error raised explicitly by an action */
5013 if (yyerrstatus == 3)
5015 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5017 /* return failure if at end of input */
5018 if (yychar == YYEOF)
5019 YYABORT;
5021 #if YYDEBUG != 0
5022 if (yydebug)
5023 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5024 #endif
5026 yychar = YYEMPTY;
5029 /* Else will try to reuse lookahead token
5030 after shifting the error token. */
5032 yyerrstatus = 3; /* Each real token shifted decrements this */
5034 goto yyerrhandle;
5036 yyerrdefault: /* current state does not do anything special for the error token. */
5038 #if 0
5039 /* This is wrong; only states that explicitly want error tokens
5040 should shift them. */
5041 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5042 if (yyn) goto yydefault;
5043 #endif
5045 yyerrpop: /* pop the current state because it cannot handle the error token */
5047 if (yyssp == yyss) YYABORT;
5048 yyvsp--;
5049 yystate = *--yyssp;
5050 #ifdef YYLSP_NEEDED
5051 yylsp--;
5052 #endif
5054 #if YYDEBUG != 0
5055 if (yydebug)
5057 short *ssp1 = yyss - 1;
5058 fprintf (stderr, "Error: state stack now");
5059 while (ssp1 != yyssp)
5060 fprintf (stderr, " %d", *++ssp1);
5061 fprintf (stderr, "\n");
5063 #endif
5065 yyerrhandle:
5067 yyn = yypact[yystate];
5068 if (yyn == YYFLAG)
5069 goto yyerrdefault;
5071 yyn += YYTERROR;
5072 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5073 goto yyerrdefault;
5075 yyn = yytable[yyn];
5076 if (yyn < 0)
5078 if (yyn == YYFLAG)
5079 goto yyerrpop;
5080 yyn = -yyn;
5081 goto yyreduce;
5083 else if (yyn == 0)
5084 goto yyerrpop;
5086 if (yyn == YYFINAL)
5087 YYACCEPT;
5089 #if YYDEBUG != 0
5090 if (yydebug)
5091 fprintf(stderr, "Shifting error token, ");
5092 #endif
5094 *++yyvsp = yylval;
5095 #ifdef YYLSP_NEEDED
5096 *++yylsp = yylloc;
5097 #endif
5099 yystate = yyn;
5100 goto yynewstate;
5102 #line 2938 "objc-parse.y"