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