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