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