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