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"
81 #ifdef MULTIBYTE_CHARS
88 /* Since parsers are distinct for each language, put the language string
90 char *language_string
= "GNU Obj-C";
98 /* Like YYERROR but do call yyerror. */
99 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
101 /* Cause the `yydebug' variable to be defined. */
104 #line 72 "objc-parse.y"
105 typedef union {long itype
; tree ttype
; enum tree_code code
;
106 char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
107 #line 199 "objc-parse.y"
109 /* Number of statements (loosely speaking) and compound statements
111 static int stmt_count
;
112 static int compstmt_count
;
114 /* Input file and line number of the end of the body of last simple_if;
115 used by the stmt-rule immediately after simple_if returns. */
116 static char *if_stmt_file
;
117 static int if_stmt_line
;
119 /* List of types and structure classes of the current declaration. */
120 static tree current_declspecs
= NULL_TREE
;
121 static tree prefix_attributes
= NULL_TREE
;
123 /* Stack of saved values of current_declspecs and prefix_attributes. */
124 static tree declspec_stack
;
126 /* 1 if we explained undeclared var errors. */
127 static int undeclared_variable_notice
;
129 /* Objective-C specific information */
131 tree objc_interface_context
;
132 tree objc_implementation_context
;
133 tree objc_method_context
;
134 tree objc_ivar_chain
;
135 tree objc_ivar_context
;
136 enum tree_code objc_inherit_code
;
137 int objc_receiver_context
;
138 int objc_public_flag
;
141 /* Tell yyparse how to print a token's value, if yydebug is set. */
143 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
144 extern void yyprint ();
159 #define YYLTYPE yyltype
173 #define YYFLAG -32768
176 #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 306)
178 static const char yytranslate
[] = { 0,
179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
180 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
181 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
182 2, 2, 80, 2, 2, 2, 52, 43, 2, 59,
183 76, 50, 48, 81, 49, 58, 51, 2, 2, 2,
184 2, 2, 2, 2, 2, 2, 2, 38, 77, 2,
185 36, 2, 37, 2, 2, 2, 2, 2, 2, 2,
186 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
187 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
188 60, 2, 83, 42, 2, 2, 2, 2, 2, 2,
189 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
190 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
191 2, 2, 82, 41, 78, 79, 2, 2, 2, 2,
192 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
193 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
194 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
195 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
196 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
197 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
198 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
199 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
201 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
202 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
203 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
204 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
205 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
206 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
207 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
208 39, 40, 44, 45, 46, 47, 53, 54, 55, 56,
209 57, 61, 62, 63, 64, 65, 66, 67, 68, 69,
210 70, 71, 72, 73, 74, 75
214 static const short yyprhs
[] = { 0,
215 0, 1, 3, 4, 7, 8, 12, 14, 16, 18,
216 24, 27, 31, 36, 41, 44, 47, 50, 53, 55,
217 56, 57, 65, 70, 71, 72, 80, 85, 86, 87,
218 94, 98, 100, 102, 104, 106, 108, 110, 112, 114,
219 116, 118, 120, 122, 123, 125, 127, 131, 133, 136,
220 139, 142, 145, 148, 153, 156, 161, 164, 167, 169,
221 171, 173, 178, 179, 187, 189, 193, 197, 201, 205,
222 209, 213, 217, 221, 225, 229, 233, 237, 238, 243,
223 244, 249, 250, 251, 259, 260, 266, 270, 274, 276,
224 278, 280, 284, 288, 289, 294, 299, 304, 308, 312,
225 315, 318, 320, 322, 324, 326, 328, 330, 333, 335,
226 338, 339, 341, 344, 348, 350, 352, 355, 358, 363,
227 368, 371, 374, 378, 380, 382, 385, 388, 389, 390,
228 395, 400, 404, 408, 411, 414, 417, 420, 424, 425,
229 428, 431, 434, 437, 441, 442, 445, 448, 450, 452,
230 455, 458, 460, 462, 465, 468, 471, 475, 476, 479,
231 481, 483, 485, 488, 491, 493, 498, 503, 505, 507,
232 509, 511, 515, 517, 521, 522, 527, 528, 535, 539,
233 540, 547, 551, 552, 554, 556, 559, 566, 568, 572,
234 573, 575, 580, 587, 592, 594, 596, 598, 600, 602,
235 603, 608, 610, 611, 614, 616, 620, 622, 623, 628,
236 630, 631, 636, 637, 643, 644, 645, 651, 652, 653,
237 659, 661, 663, 667, 671, 676, 680, 684, 688, 690,
238 692, 696, 701, 705, 709, 713, 715, 719, 723, 727,
239 732, 736, 740, 742, 743, 751, 757, 760, 761, 769,
240 775, 778, 779, 788, 789, 797, 800, 801, 803, 804,
241 806, 808, 811, 812, 816, 819, 824, 828, 830, 834,
242 836, 838, 841, 843, 847, 852, 859, 865, 867, 871,
243 873, 875, 879, 882, 885, 886, 888, 890, 893, 894,
244 897, 901, 905, 908, 912, 917, 921, 924, 928, 931,
245 933, 935, 938, 941, 942, 944, 947, 948, 949, 951,
246 953, 956, 960, 962, 965, 967, 970, 977, 983, 989,
247 992, 995, 1000, 1001, 1006, 1007, 1008, 1012, 1017, 1021,
248 1023, 1025, 1027, 1029, 1032, 1033, 1038, 1040, 1044, 1045,
249 1046, 1054, 1060, 1063, 1064, 1065, 1066, 1079, 1080, 1087,
250 1090, 1093, 1096, 1100, 1107, 1116, 1127, 1140, 1144, 1149,
251 1151, 1153, 1154, 1161, 1165, 1171, 1174, 1177, 1178, 1180,
252 1181, 1183, 1184, 1186, 1188, 1192, 1197, 1199, 1203, 1204,
253 1207, 1210, 1211, 1216, 1219, 1220, 1222, 1224, 1228, 1230,
254 1234, 1239, 1244, 1249, 1254, 1259, 1260, 1263, 1265, 1268,
255 1270, 1274, 1276, 1280, 1282, 1284, 1286, 1288, 1290, 1292,
256 1294, 1296, 1300, 1304, 1309, 1310, 1311, 1322, 1323, 1330,
257 1331, 1332, 1345, 1346, 1355, 1356, 1363, 1366, 1367, 1376,
258 1381, 1382, 1392, 1398, 1399, 1406, 1407, 1409, 1413, 1417,
259 1419, 1421, 1423, 1425, 1426, 1430, 1433, 1437, 1441, 1443,
260 1444, 1446, 1450, 1452, 1456, 1459, 1460, 1461, 1462, 1470,
261 1471, 1472, 1473, 1481, 1482, 1483, 1486, 1488, 1490, 1493,
262 1494, 1498, 1500, 1502, 1503, 1504, 1510, 1511, 1512, 1518,
263 1523, 1525, 1531, 1534, 1535, 1538, 1539, 1541, 1543, 1545,
264 1548, 1551, 1556, 1559, 1562, 1564, 1568, 1571, 1574, 1577,
265 1578, 1581, 1582, 1586, 1588, 1590, 1593, 1595, 1597, 1599,
266 1601, 1603, 1605, 1607, 1609, 1611, 1613, 1615, 1617, 1619,
267 1621, 1623, 1625, 1627, 1629, 1631, 1633, 1635, 1637, 1639,
268 1641, 1643, 1650, 1654, 1660, 1663, 1665, 1667, 1669, 1672,
269 1674, 1678, 1681, 1683, 1685, 1686, 1687, 1694, 1696, 1698,
270 1700, 1703, 1706, 1708, 1713, 1718
273 static const short yyrhs
[] = { -1,
274 85, 0, 0, 86, 88, 0, 0, 85, 87, 88,
275 0, 90, 0, 89, 0, 237, 0, 27, 59, 99,
276 76, 77, 0, 236, 88, 0, 123, 137, 77, 0,
277 130, 123, 137, 77, 0, 126, 123, 136, 77, 0,
278 130, 77, 0, 126, 77, 0, 1, 77, 0, 1,
279 78, 0, 77, 0, 0, 0, 126, 123, 163, 91,
280 117, 92, 194, 0, 126, 123, 163, 1, 0, 0,
281 0, 130, 123, 166, 93, 117, 94, 194, 0, 130,
282 123, 166, 1, 0, 0, 0, 123, 166, 95, 117,
283 96, 194, 0, 123, 166, 1, 0, 3, 0, 4,
284 0, 72, 0, 67, 0, 43, 0, 49, 0, 48,
285 0, 54, 0, 55, 0, 79, 0, 80, 0, 101,
286 0, 0, 101, 0, 107, 0, 101, 81, 107, 0,
287 113, 0, 50, 105, 0, 236, 105, 0, 98, 105,
288 0, 40, 97, 0, 103, 102, 0, 103, 59, 181,
289 76, 0, 104, 102, 0, 104, 59, 181, 76, 0,
290 33, 105, 0, 34, 105, 0, 11, 0, 29, 0,
291 102, 0, 59, 181, 76, 105, 0, 0, 59, 181,
292 76, 82, 106, 151, 78, 0, 105, 0, 107, 48,
293 107, 0, 107, 49, 107, 0, 107, 50, 107, 0,
294 107, 51, 107, 0, 107, 52, 107, 0, 107, 46,
295 107, 0, 107, 47, 107, 0, 107, 45, 107, 0,
296 107, 44, 107, 0, 107, 43, 107, 0, 107, 41,
297 107, 0, 107, 42, 107, 0, 0, 107, 40, 108,
298 107, 0, 0, 107, 39, 109, 107, 0, 0, 0,
299 107, 37, 110, 99, 38, 111, 107, 0, 0, 107,
300 37, 112, 38, 107, 0, 107, 36, 107, 0, 107,
301 35, 107, 0, 3, 0, 8, 0, 115, 0, 59,
302 99, 76, 0, 59, 1, 76, 0, 0, 59, 114,
303 196, 76, 0, 113, 59, 100, 76, 0, 113, 60,
304 99, 83, 0, 113, 58, 97, 0, 113, 57, 97,
305 0, 113, 54, 0, 113, 55, 0, 297, 0, 303,
306 0, 304, 0, 305, 0, 116, 0, 9, 0, 115,
307 9, 0, 75, 0, 116, 75, 0, 0, 119, 0,
308 119, 10, 0, 201, 202, 120, 0, 118, 0, 189,
309 0, 119, 118, 0, 118, 189, 0, 128, 123, 136,
310 77, 0, 131, 123, 137, 77, 0, 128, 77, 0,
311 131, 77, 0, 201, 202, 125, 0, 121, 0, 189,
312 0, 122, 121, 0, 121, 189, 0, 0, 0, 126,
313 123, 136, 77, 0, 130, 123, 137, 77, 0, 126,
314 123, 157, 0, 130, 123, 160, 0, 126, 77, 0,
315 130, 77, 0, 236, 125, 0, 134, 127, 0, 130,
316 134, 127, 0, 0, 127, 135, 0, 127, 5, 0,
317 127, 144, 0, 134, 129, 0, 131, 134, 129, 0,
318 0, 129, 135, 0, 129, 5, 0, 131, 0, 144,
319 0, 130, 131, 0, 130, 144, 0, 7, 0, 5,
320 0, 131, 7, 0, 131, 5, 0, 134, 133, 0,
321 183, 134, 133, 0, 0, 133, 135, 0, 6, 0,
322 167, 0, 4, 0, 67, 253, 0, 72, 253, 0,
323 254, 0, 28, 59, 99, 76, 0, 28, 59, 181,
324 76, 0, 6, 0, 7, 0, 167, 0, 139, 0,
325 136, 81, 139, 0, 141, 0, 137, 81, 139, 0,
326 0, 27, 59, 115, 76, 0, 0, 163, 138, 143,
327 36, 140, 149, 0, 163, 138, 143, 0, 0, 166,
328 138, 143, 36, 142, 149, 0, 166, 138, 143, 0,
329 0, 144, 0, 145, 0, 144, 145, 0, 30, 59,
330 59, 146, 76, 76, 0, 147, 0, 146, 81, 147,
331 0, 0, 148, 0, 148, 59, 3, 76, 0, 148,
332 59, 3, 81, 101, 76, 0, 148, 59, 100, 76,
333 0, 97, 0, 5, 0, 6, 0, 7, 0, 107,
334 0, 0, 82, 150, 151, 78, 0, 1, 0, 0,
335 152, 172, 0, 153, 0, 152, 81, 153, 0, 107,
336 0, 0, 82, 154, 151, 78, 0, 1, 0, 0,
337 97, 38, 155, 153, 0, 0, 58, 97, 36, 156,
338 153, 0, 0, 0, 163, 158, 117, 159, 196, 0,
339 0, 0, 166, 161, 117, 162, 196, 0, 164, 0,
340 166, 0, 59, 164, 76, 0, 164, 59, 231, 0,
341 164, 60, 99, 83, 0, 164, 60, 83, 0, 50,
342 184, 164, 0, 144, 124, 164, 0, 4, 0, 72,
343 0, 165, 59, 231, 0, 165, 60, 99, 83, 0,
344 165, 60, 83, 0, 50, 184, 165, 0, 144, 124,
345 165, 0, 4, 0, 166, 59, 231, 0, 59, 166,
346 76, 0, 50, 184, 166, 0, 166, 60, 99, 83,
347 0, 166, 60, 83, 0, 144, 124, 166, 0, 3,
348 0, 0, 13, 97, 82, 168, 174, 78, 143, 0,
349 13, 82, 174, 78, 143, 0, 13, 97, 0, 0,
350 14, 97, 82, 169, 174, 78, 143, 0, 14, 82,
351 174, 78, 143, 0, 14, 97, 0, 0, 12, 97,
352 82, 170, 179, 173, 78, 143, 0, 0, 12, 82,
353 171, 179, 173, 78, 143, 0, 12, 97, 0, 0,
354 81, 0, 0, 81, 0, 175, 0, 175, 176, 0,
355 0, 175, 176, 77, 0, 175, 77, 0, 65, 59,
356 67, 76, 0, 132, 123, 177, 0, 132, 0, 183,
357 123, 177, 0, 183, 0, 1, 0, 236, 176, 0,
358 178, 0, 177, 81, 178, 0, 201, 202, 163, 143,
359 0, 201, 202, 163, 38, 107, 143, 0, 201, 202,
360 38, 107, 143, 0, 180, 0, 179, 81, 180, 0,
361 1, 0, 97, 0, 97, 36, 107, 0, 132, 182,
362 0, 183, 182, 0, 0, 185, 0, 7, 0, 183,
363 7, 0, 0, 184, 7, 0, 59, 185, 76, 0,
364 50, 184, 185, 0, 50, 184, 0, 185, 59, 224,
365 0, 185, 60, 99, 83, 0, 185, 60, 83, 0,
366 59, 224, 0, 60, 99, 83, 0, 60, 83, 0,
367 187, 0, 204, 0, 187, 204, 0, 187, 189, 0,
368 0, 186, 0, 1, 77, 0, 0, 0, 192, 0,
369 193, 0, 192, 193, 0, 32, 235, 77, 0, 196,
370 0, 1, 196, 0, 82, 0, 195, 78, 0, 195,
371 190, 191, 122, 188, 78, 0, 195, 190, 191, 1,
372 78, 0, 195, 190, 191, 186, 78, 0, 198, 203,
373 0, 198, 1, 0, 15, 59, 99, 76, 0, 0,
374 18, 200, 203, 17, 0, 0, 0, 201, 202, 206,
375 0, 201, 202, 217, 203, 0, 201, 202, 205, 0,
376 206, 0, 217, 0, 196, 0, 214, 0, 99, 77,
377 0, 0, 197, 16, 207, 203, 0, 197, 0, 197,
378 16, 1, 0, 0, 0, 17, 208, 59, 99, 76,
379 209, 203, 0, 199, 59, 99, 76, 77, 0, 199,
380 1, 0, 0, 0, 0, 19, 59, 219, 77, 210,
381 219, 77, 211, 219, 76, 212, 203, 0, 0, 20,
382 59, 99, 76, 213, 203, 0, 23, 77, 0, 24,
383 77, 0, 25, 77, 0, 25, 99, 77, 0, 27,
384 218, 59, 99, 76, 77, 0, 27, 218, 59, 99,
385 38, 220, 76, 77, 0, 27, 218, 59, 99, 38,
386 220, 38, 220, 76, 77, 0, 27, 218, 59, 99,
387 38, 220, 38, 220, 38, 223, 76, 77, 0, 26,
388 97, 77, 0, 26, 50, 99, 77, 0, 77, 0,
389 215, 0, 0, 19, 59, 113, 76, 216, 203, 0,
390 21, 107, 38, 0, 21, 107, 10, 107, 38, 0,
391 22, 38, 0, 97, 38, 0, 0, 7, 0, 0,
392 99, 0, 0, 221, 0, 222, 0, 221, 81, 222,
393 0, 9, 59, 99, 76, 0, 115, 0, 223, 81,
394 115, 0, 0, 225, 226, 0, 228, 76, 0, 0,
395 229, 77, 227, 226, 0, 1, 76, 0, 0, 10,
396 0, 229, 0, 229, 81, 10, 0, 230, 0, 229,
397 81, 230, 0, 126, 123, 165, 143, 0, 126, 123,
398 166, 143, 0, 126, 123, 182, 143, 0, 130, 123,
399 166, 143, 0, 130, 123, 182, 143, 0, 0, 232,
400 233, 0, 226, 0, 234, 76, 0, 3, 0, 234,
401 81, 3, 0, 97, 0, 235, 81, 97, 0, 31,
402 0, 241, 0, 239, 0, 240, 0, 251, 0, 261,
403 0, 63, 0, 97, 0, 238, 81, 97, 0, 73,
404 238, 77, 0, 74, 97, 97, 77, 0, 0, 0,
405 61, 97, 253, 82, 242, 255, 78, 243, 268, 63,
406 0, 0, 61, 97, 253, 244, 268, 63, 0, 0,
407 0, 61, 97, 38, 97, 253, 82, 245, 255, 78,
408 246, 268, 63, 0, 0, 61, 97, 38, 97, 253,
409 247, 268, 63, 0, 0, 62, 97, 82, 248, 255,
410 78, 0, 62, 97, 0, 0, 62, 97, 38, 97,
411 82, 249, 255, 78, 0, 62, 97, 38, 97, 0,
412 0, 61, 97, 59, 97, 76, 253, 250, 268, 63,
413 0, 62, 97, 59, 97, 76, 0, 0, 71, 97,
414 253, 252, 268, 63, 0, 0, 254, 0, 45, 238,
415 45, 0, 255, 256, 257, 0, 257, 0, 69, 0,
416 70, 0, 68, 0, 0, 257, 258, 77, 0, 257,
417 77, 0, 132, 123, 259, 0, 183, 123, 259, 0,
418 1, 0, 0, 260, 0, 259, 81, 260, 0, 163,
419 0, 163, 38, 107, 0, 38, 107, 0, 0, 0,
420 0, 48, 262, 278, 263, 279, 264, 194, 0, 0,
421 0, 0, 49, 265, 278, 266, 279, 267, 194, 0,
422 0, 0, 269, 270, 0, 273, 0, 89, 0, 270,
423 273, 0, 0, 270, 271, 89, 0, 77, 0, 1,
424 0, 0, 0, 48, 274, 278, 275, 272, 0, 0,
425 0, 49, 276, 278, 277, 272, 0, 59, 181, 76,
426 287, 0, 287, 0, 59, 181, 76, 288, 285, 0,
427 288, 285, 0, 0, 77, 280, 0, 0, 281, 0,
428 282, 0, 189, 0, 281, 282, 0, 282, 189, 0,
429 126, 123, 283, 77, 0, 126, 77, 0, 130, 77,
430 0, 284, 0, 283, 81, 284, 0, 165, 143, 0,
431 166, 143, 0, 182, 143, 0, 0, 81, 10, 0,
432 0, 81, 286, 228, 0, 289, 0, 291, 0, 288,
433 291, 0, 3, 0, 4, 0, 72, 0, 290, 0,
434 12, 0, 13, 0, 14, 0, 15, 0, 16, 0,
435 17, 0, 18, 0, 19, 0, 20, 0, 21, 0,
436 22, 0, 23, 0, 24, 0, 25, 0, 26, 0,
437 27, 0, 11, 0, 28, 0, 29, 0, 6, 0,
438 7, 0, 289, 38, 59, 181, 76, 97, 0, 289,
439 38, 97, 0, 38, 59, 181, 76, 97, 0, 38,
440 97, 0, 289, 0, 293, 0, 295, 0, 293, 295,
441 0, 101, 0, 289, 38, 294, 0, 38, 294, 0,
442 99, 0, 67, 0, 0, 0, 60, 298, 296, 299,
443 292, 83, 0, 289, 0, 301, 0, 302, 0, 301,
444 302, 0, 289, 38, 0, 38, 0, 64, 59, 300,
445 76, 0, 71, 59, 97, 76, 0, 66, 59, 181,
452 static const short yyrline
[] = { 0,
453 239, 244, 258, 260, 260, 261, 263, 265, 266, 267,
454 275, 279, 290, 295, 300, 302, 304, 305, 306, 311,
455 318, 320, 325, 330, 336, 338, 343, 348, 354, 356,
456 361, 368, 370, 371, 372, 375, 377, 379, 381, 383,
457 385, 387, 391, 395, 398, 401, 404, 408, 410, 413,
458 416, 420, 448, 454, 457, 460, 463, 465, 469, 473,
459 477, 479, 482, 486, 513, 515, 517, 519, 521, 523,
460 525, 527, 529, 531, 533, 535, 537, 539, 543, 545,
461 549, 551, 554, 558, 560, 567, 570, 573, 579, 739,
462 740, 742, 748, 750, 764, 787, 789, 791, 803, 817,
463 819, 821, 823, 825, 827, 829, 834, 836, 842, 844,
464 848, 850, 851, 861, 866, 868, 869, 870, 877, 883,
465 888, 891, 899, 904, 906, 907, 908, 915, 926, 930,
466 936, 941, 946, 951, 953, 955, 964, 967, 971, 973,
467 975, 980, 984, 987, 991, 994, 996, 1008, 1011, 1013,
468 1015, 1019, 1023, 1025, 1028, 1041, 1044, 1048, 1050, 1058,
469 1059, 1060, 1064, 1066, 1071, 1073, 1075, 1081, 1082, 1083,
470 1086, 1088, 1091, 1093, 1096, 1099, 1105, 1112, 1114, 1121,
471 1128, 1131, 1138, 1141, 1145, 1148, 1152, 1157, 1160, 1164,
472 1167, 1169, 1171, 1173, 1180, 1182, 1183, 1184, 1189, 1191,
473 1196, 1204, 1209, 1213, 1216, 1218, 1223, 1226, 1228, 1230,
474 1234, 1237, 1237, 1240, 1242, 1253, 1261, 1265, 1276, 1284,
475 1291, 1293, 1298, 1301, 1306, 1308, 1310, 1317, 1319, 1320,
476 1328, 1334, 1336, 1338, 1345, 1347, 1353, 1359, 1361, 1363,
477 1365, 1372, 1374, 1377, 1382, 1384, 1388, 1390, 1392, 1394,
478 1398, 1400, 1403, 1406, 1409, 1412, 1416, 1418, 1421, 1423,
479 1427, 1430, 1435, 1437, 1439, 1443, 1467, 1474, 1479, 1485,
480 1490, 1492, 1497, 1499, 1503, 1507, 1511, 1521, 1523, 1528,
481 1533, 1536, 1540, 1543, 1547, 1550, 1553, 1556, 1560, 1563,
482 1567, 1571, 1573, 1575, 1577, 1579, 1581, 1583, 1585, 1595,
483 1603, 1605, 1607, 1611, 1613, 1616, 1619, 1632, 1634, 1639,
484 1641, 1644, 1658, 1661, 1664, 1666, 1668, 1676, 1684, 1695,
485 1700, 1703, 1717, 1726, 1730, 1734, 1738, 1744, 1748, 1753,
486 1756, 1761, 1764, 1765, 1782, 1787, 1790, 1802, 1804, 1814,
487 1824, 1825, 1833, 1836, 1848, 1852, 1869, 1879, 1888, 1893,
488 1898, 1903, 1907, 1911, 1922, 1929, 1936, 1943, 1954, 1960,
489 1963, 1968, 1991, 2025, 2050, 2081, 2096, 2107, 2111, 2115,
490 2118, 2123, 2125, 2128, 2130, 2134, 2139, 2142, 2148, 2153,
491 2158, 2160, 2169, 2170, 2176, 2178, 2188, 2190, 2194, 2197,
492 2203, 2213, 2222, 2231, 2241, 2255, 2260, 2265, 2267, 2276,
493 2279, 2284, 2287, 2291, 2299, 2301, 2302, 2303, 2304, 2305,
494 2319, 2322, 2326, 2332, 2338, 2345, 2350, 2356, 2363, 2369,
495 2375, 2380, 2386, 2393, 2399, 2405, 2411, 2419, 2425, 2431,
496 2439, 2446, 2452, 2461, 2468, 2476, 2481, 2484, 2494, 2496,
497 2499, 2501, 2502, 2505, 2510, 2511, 2528, 2535, 2541, 2545,
498 2548, 2549, 2552, 2560, 2566, 2575, 2585, 2592, 2596, 2601,
499 2610, 2617, 2621, 2631, 2633, 2634, 2636, 2638, 2639, 2640,
500 2641, 2643, 2645, 2648, 2654, 2659, 2659, 2664, 2668, 2670,
501 2676, 2681, 2686, 2695, 2697, 2703, 2705, 2708, 2710, 2711,
502 2712, 2715, 2721, 2723, 2727, 2730, 2737, 2743, 2748, 2755,
503 2760, 2765, 2770, 2777, 2781, 2784, 2790, 2792, 2793, 2794,
504 2797, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807,
505 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817,
506 2817, 2820, 2826, 2831, 2836, 2842, 2844, 2847, 2849, 2856,
507 2868, 2873, 2879, 2881, 2887, 2891, 2892, 2898, 2900, 2903,
508 2905, 2911, 2916, 2922, 2929, 2938
511 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
512 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
513 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
514 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
515 "EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
516 "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
517 "'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
518 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
519 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
520 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
521 "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
522 "unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
523 "cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
524 "string","objc_string","old_style_parm_decls","lineno_datadecl","datadecls",
525 "datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
526 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
527 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
528 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
529 "initdcl","@16","notype_initdcl","@17","maybe_attribute","attributes","attribute",
530 "attribute_list","attrib","any_word","init","@18","initlist_maybe_comma","initlist1",
531 "initelt","@19","@20","@21","nested_function","@22","@23","notype_nested_function",
532 "@24","@25","declarator","after_type_declarator","parm_declarator","notype_declarator",
533 "structsp","@26","@27","@28","@29","maybecomma","maybecomma_warn","component_decl_list",
534 "component_decl_list2","component_decl","components","component_declarator",
535 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
536 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
537 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
538 "if_prefix","do_stmt_start","@30","save_filename","save_lineno","lineno_labeled_stmt",
539 "lineno_stmt_or_label","stmt_or_label","stmt","@31","@32","@33","@34","@35",
540 "@36","@37","all_iter_stmt","all_iter_stmt_simple","@38","label","maybe_type_qual",
541 "xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
542 "@39","parmlist_1","@40","parmlist_2","parms","parm","parmlist_or_identifiers",
543 "@41","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension",
544 "objcdef","identifier_list","classdecl","aliasdecl","classdef","@42","@43","@44",
545 "@45","@46","@47","@48","@49","@50","protocoldef","@51","protocolrefs","non_empty_protocolrefs",
546 "ivar_decl_list","visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator",
547 "methoddef","@52","@53","@54","@55","@56","@57","methodprotolist","@58","methodprotolist2",
548 "@59","semi_or_error","methodproto","@60","@61","@62","@63","methoddecl","optarglist",
549 "myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@64","unaryselector",
550 "keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist",
551 "keywordexpr","keywordarg","receiver","objcmessageexpr","@65","@66","selectorarg",
552 "keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr","objcencodeexpr",
557 static const short yyr1
[] = { 0,
558 84, 84, 86, 85, 87, 85, 88, 88, 88, 88,
559 88, 89, 89, 89, 89, 89, 89, 89, 89, 91,
560 92, 90, 90, 93, 94, 90, 90, 95, 96, 90,
561 90, 97, 97, 97, 97, 98, 98, 98, 98, 98,
562 98, 98, 99, 100, 100, 101, 101, 102, 102, 102,
563 102, 102, 102, 102, 102, 102, 102, 102, 103, 104,
564 105, 105, 106, 105, 107, 107, 107, 107, 107, 107,
565 107, 107, 107, 107, 107, 107, 107, 108, 107, 109,
566 107, 110, 111, 107, 112, 107, 107, 107, 113, 113,
567 113, 113, 113, 114, 113, 113, 113, 113, 113, 113,
568 113, 113, 113, 113, 113, 113, 115, 115, 116, 116,
569 117, 117, 117, 118, 119, 119, 119, 119, 120, 120,
570 120, 120, 121, 122, 122, 122, 122, 123, 124, 125,
571 125, 125, 125, 125, 125, 125, 126, 126, 127, 127,
572 127, 127, 128, 128, 129, 129, 129, 130, 130, 130,
573 130, 131, 131, 131, 131, 132, 132, 133, 133, 134,
574 134, 134, 134, 134, 134, 134, 134, 135, 135, 135,
575 136, 136, 137, 137, 138, 138, 140, 139, 139, 142,
576 141, 141, 143, 143, 144, 144, 145, 146, 146, 147,
577 147, 147, 147, 147, 148, 148, 148, 148, 149, 150,
578 149, 149, 151, 151, 152, 152, 153, 154, 153, 153,
579 155, 153, 156, 153, 158, 159, 157, 161, 162, 160,
580 163, 163, 164, 164, 164, 164, 164, 164, 164, 164,
581 165, 165, 165, 165, 165, 165, 166, 166, 166, 166,
582 166, 166, 166, 168, 167, 167, 167, 169, 167, 167,
583 167, 170, 167, 171, 167, 167, 172, 172, 173, 173,
584 174, 174, 175, 175, 175, 175, 176, 176, 176, 176,
585 176, 176, 177, 177, 178, 178, 178, 179, 179, 179,
586 180, 180, 181, 181, 182, 182, 183, 183, 184, 184,
587 185, 185, 185, 185, 185, 185, 185, 185, 185, 186,
588 187, 187, 187, 188, 188, 189, 190, 191, 191, 192,
589 192, 193, 194, 194, 195, 196, 196, 196, 196, 197,
590 197, 198, 200, 199, 201, 202, 203, 203, 204, 205,
591 205, 206, 206, 206, 207, 206, 206, 206, 208, 209,
592 206, 206, 206, 210, 211, 212, 206, 213, 206, 206,
593 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
594 214, 216, 215, 217, 217, 217, 217, 218, 218, 219,
595 219, 220, 220, 221, 221, 222, 223, 223, 225, 224,
596 226, 227, 226, 226, 228, 228, 228, 228, 229, 229,
597 230, 230, 230, 230, 230, 232, 231, 233, 233, 234,
598 234, 235, 235, 236, 237, 237, 237, 237, 237, 237,
599 238, 238, 239, 240, 242, 243, 241, 244, 241, 245,
600 246, 241, 247, 241, 248, 241, 241, 249, 241, 241,
601 250, 241, 241, 252, 251, 253, 253, 254, 255, 255,
602 256, 256, 256, 257, 257, 257, 258, 258, 258, 259,
603 259, 259, 260, 260, 260, 262, 263, 264, 261, 265,
604 266, 267, 261, 268, 269, 268, 270, 270, 270, 271,
605 270, 272, 272, 274, 275, 273, 276, 277, 273, 278,
606 278, 278, 278, 279, 279, 280, 280, 281, 281, 281,
607 281, 282, 282, 282, 283, 283, 284, 284, 284, 285,
608 285, 286, 285, 287, 288, 288, 289, 289, 289, 289,
609 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
610 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
611 290, 291, 291, 291, 291, 292, 292, 293, 293, 294,
612 295, 295, 296, 296, 298, 299, 297, 300, 300, 301,
613 301, 302, 302, 303, 304, 305
616 static const short yyr2
[] = { 0,
617 0, 1, 0, 2, 0, 3, 1, 1, 1, 5,
618 2, 3, 4, 4, 2, 2, 2, 2, 1, 0,
619 0, 7, 4, 0, 0, 7, 4, 0, 0, 6,
620 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
621 1, 1, 1, 0, 1, 1, 3, 1, 2, 2,
622 2, 2, 2, 4, 2, 4, 2, 2, 1, 1,
623 1, 4, 0, 7, 1, 3, 3, 3, 3, 3,
624 3, 3, 3, 3, 3, 3, 3, 0, 4, 0,
625 4, 0, 0, 7, 0, 5, 3, 3, 1, 1,
626 1, 3, 3, 0, 4, 4, 4, 3, 3, 2,
627 2, 1, 1, 1, 1, 1, 1, 2, 1, 2,
628 0, 1, 2, 3, 1, 1, 2, 2, 4, 4,
629 2, 2, 3, 1, 1, 2, 2, 0, 0, 4,
630 4, 3, 3, 2, 2, 2, 2, 3, 0, 2,
631 2, 2, 2, 3, 0, 2, 2, 1, 1, 2,
632 2, 1, 1, 2, 2, 2, 3, 0, 2, 1,
633 1, 1, 2, 2, 1, 4, 4, 1, 1, 1,
634 1, 3, 1, 3, 0, 4, 0, 6, 3, 0,
635 6, 3, 0, 1, 1, 2, 6, 1, 3, 0,
636 1, 4, 6, 4, 1, 1, 1, 1, 1, 0,
637 4, 1, 0, 2, 1, 3, 1, 0, 4, 1,
638 0, 4, 0, 5, 0, 0, 5, 0, 0, 5,
639 1, 1, 3, 3, 4, 3, 3, 3, 1, 1,
640 3, 4, 3, 3, 3, 1, 3, 3, 3, 4,
641 3, 3, 1, 0, 7, 5, 2, 0, 7, 5,
642 2, 0, 8, 0, 7, 2, 0, 1, 0, 1,
643 1, 2, 0, 3, 2, 4, 3, 1, 3, 1,
644 1, 2, 1, 3, 4, 6, 5, 1, 3, 1,
645 1, 3, 2, 2, 0, 1, 1, 2, 0, 2,
646 3, 3, 2, 3, 4, 3, 2, 3, 2, 1,
647 1, 2, 2, 0, 1, 2, 0, 0, 1, 1,
648 2, 3, 1, 2, 1, 2, 6, 5, 5, 2,
649 2, 4, 0, 4, 0, 0, 3, 4, 3, 1,
650 1, 1, 1, 2, 0, 4, 1, 3, 0, 0,
651 7, 5, 2, 0, 0, 0, 12, 0, 6, 2,
652 2, 2, 3, 6, 8, 10, 12, 3, 4, 1,
653 1, 0, 6, 3, 5, 2, 2, 0, 1, 0,
654 1, 0, 1, 1, 3, 4, 1, 3, 0, 2,
655 2, 0, 4, 2, 0, 1, 1, 3, 1, 3,
656 4, 4, 4, 4, 4, 0, 2, 1, 2, 1,
657 3, 1, 3, 1, 1, 1, 1, 1, 1, 1,
658 1, 3, 3, 4, 0, 0, 10, 0, 6, 0,
659 0, 12, 0, 8, 0, 6, 2, 0, 8, 4,
660 0, 9, 5, 0, 6, 0, 1, 3, 3, 1,
661 1, 1, 1, 0, 3, 2, 3, 3, 1, 0,
662 1, 3, 1, 3, 2, 0, 0, 0, 7, 0,
663 0, 0, 7, 0, 0, 2, 1, 1, 2, 0,
664 3, 1, 1, 0, 0, 5, 0, 0, 5, 4,
665 1, 5, 2, 0, 2, 0, 1, 1, 1, 2,
666 2, 4, 2, 2, 1, 3, 2, 2, 2, 0,
667 2, 0, 3, 1, 1, 2, 1, 1, 1, 1,
668 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
669 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
670 1, 6, 3, 5, 2, 1, 1, 1, 2, 1,
671 3, 2, 1, 1, 0, 0, 6, 1, 1, 1,
675 static const short yydefact
[] = { 3,
676 5, 0, 0, 0, 162, 153, 160, 152, 0, 0,
677 0, 0, 0, 0, 404, 0, 456, 460, 0, 0,
678 410, 436, 0, 436, 0, 0, 19, 4, 8, 7,
679 0, 128, 128, 148, 139, 149, 185, 161, 0, 9,
680 406, 407, 405, 408, 165, 409, 6, 17, 18, 32,
681 33, 35, 34, 254, 256, 263, 247, 263, 251, 0,
682 0, 0, 411, 0, 0, 0, 436, 427, 163, 437,
683 436, 164, 0, 0, 243, 289, 0, 0, 173, 129,
684 0, 16, 0, 15, 0, 150, 139, 151, 155, 154,
685 137, 186, 11, 0, 252, 0, 0, 0, 244, 0,
686 248, 89, 90, 107, 59, 60, 0, 0, 0, 36,
687 38, 37, 0, 39, 40, 0, 545, 0, 0, 0,
688 109, 41, 42, 0, 0, 43, 61, 0, 0, 65,
689 46, 48, 91, 106, 0, 102, 103, 104, 105, 287,
690 0, 285, 158, 0, 285, 190, 438, 0, 507, 508,
691 530, 531, 527, 511, 512, 513, 514, 515, 516, 517,
692 518, 519, 520, 521, 522, 523, 524, 525, 526, 528,
693 529, 0, 0, 509, 457, 481, 500, 504, 510, 505,
694 461, 0, 0, 418, 0, 0, 425, 434, 413, 0,
695 0, 0, 12, 0, 0, 31, 0, 396, 0, 0,
696 183, 229, 289, 0, 230, 0, 171, 129, 0, 221,
697 222, 0, 0, 138, 141, 168, 169, 140, 142, 170,
698 280, 281, 259, 278, 0, 0, 183, 271, 265, 128,
699 262, 128, 0, 263, 183, 263, 57, 58, 52, 49,
700 0, 0, 0, 0, 0, 0, 0, 0, 51, 0,
701 0, 0, 53, 0, 55, 0, 0, 82, 80, 78,
702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
703 0, 0, 100, 101, 0, 0, 44, 0, 108, 110,
704 50, 166, 289, 379, 0, 283, 286, 156, 167, 288,
705 158, 284, 196, 197, 198, 195, 0, 188, 191, 412,
706 0, 535, 0, 484, 502, 483, 0, 506, 0, 484,
707 436, 0, 415, 465, 430, 0, 444, 465, 414, 290,
708 239, 238, 174, 175, 242, 0, 237, 0, 241, 0,
709 0, 29, 0, 325, 116, 326, 182, 184, 0, 0,
710 14, 0, 0, 23, 0, 183, 396, 0, 13, 27,
711 0, 0, 260, 0, 259, 0, 246, 325, 264, 325,
712 272, 0, 250, 0, 93, 92, 315, 307, 0, 0,
713 544, 543, 546, 553, 548, 0, 549, 550, 0, 0,
714 10, 47, 0, 0, 88, 87, 0, 0, 0, 0,
715 76, 77, 75, 74, 73, 71, 72, 66, 67, 68,
716 69, 70, 99, 98, 0, 45, 0, 293, 0, 297,
717 0, 299, 0, 379, 0, 159, 157, 0, 190, 44,
718 0, 0, 0, 458, 501, 385, 0, 533, 462, 423,
719 436, 444, 0, 0, 428, 433, 0, 0, 0, 0,
720 0, 400, 386, 128, 128, 398, 0, 387, 389, 397,
721 0, 240, 306, 0, 118, 113, 117, 0, 180, 227,
722 223, 172, 228, 21, 179, 224, 226, 0, 25, 282,
723 279, 183, 0, 266, 267, 273, 326, 269, 183, 183,
724 316, 308, 95, 63, 62, 0, 552, 554, 0, 551,
725 556, 555, 54, 56, 0, 0, 81, 79, 96, 97,
726 292, 291, 380, 298, 294, 296, 0, 187, 189, 89,
727 0, 0, 480, 500, 128, 0, 489, 485, 487, 0,
728 0, 503, 387, 0, 0, 420, 465, 431, 0, 419,
729 474, 477, 468, 0, 128, 128, 470, 467, 444, 443,
730 441, 442, 426, 444, 449, 446, 128, 128, 0, 435,
731 176, 384, 285, 285, 381, 382, 0, 399, 0, 0,
732 30, 313, 114, 128, 128, 145, 0, 0, 177, 225,
733 0, 255, 183, 325, 0, 245, 249, 0, 0, 309,
734 310, 0, 0, 536, 0, 537, 538, 83, 86, 295,
735 192, 0, 194, 534, 482, 493, 285, 494, 490, 491,
736 459, 0, 463, 444, 0, 465, 416, 0, 0, 175,
737 0, 0, 0, 469, 0, 0, 450, 450, 445, 236,
738 289, 379, 129, 183, 183, 183, 289, 183, 183, 0,
739 388, 390, 401, 314, 121, 0, 122, 0, 145, 143,
740 202, 200, 199, 181, 22, 0, 26, 253, 274, 0,
741 183, 402, 0, 0, 0, 325, 0, 0, 125, 326,
742 301, 311, 210, 89, 0, 208, 0, 207, 0, 257,
743 205, 540, 542, 0, 547, 0, 539, 0, 0, 183,
744 183, 183, 0, 495, 532, 0, 424, 0, 465, 475,
745 478, 471, 429, 0, 453, 447, 451, 448, 293, 0,
746 396, 0, 391, 392, 393, 293, 394, 395, 383, 0,
747 0, 144, 147, 146, 0, 178, 183, 0, 275, 312,
748 0, 318, 127, 126, 305, 0, 319, 303, 326, 302,
749 0, 0, 0, 211, 64, 0, 204, 541, 84, 193,
750 497, 498, 499, 492, 285, 421, 432, 0, 0, 0,
751 455, 0, 0, 234, 289, 235, 231, 233, 0, 119,
752 120, 0, 277, 183, 403, 317, 0, 162, 0, 339,
753 323, 0, 0, 0, 0, 0, 0, 0, 0, 368,
754 436, 436, 360, 0, 0, 123, 128, 128, 332, 337,
755 0, 0, 329, 330, 333, 361, 331, 0, 213, 0,
756 0, 206, 496, 465, 417, 473, 472, 476, 479, 454,
757 452, 0, 232, 201, 276, 0, 0, 325, 370, 0,
758 0, 366, 350, 351, 352, 0, 0, 0, 369, 0,
759 367, 334, 134, 0, 135, 0, 0, 321, 326, 320,
760 343, 0, 136, 0, 209, 212, 0, 0, 0, 0,
761 371, 48, 0, 0, 0, 364, 353, 0, 358, 0,
762 0, 132, 215, 0, 133, 218, 338, 325, 0, 0,
763 214, 422, 322, 0, 324, 362, 344, 348, 0, 359,
764 0, 130, 0, 131, 0, 336, 327, 325, 0, 340,
765 325, 370, 325, 365, 372, 0, 216, 219, 328, 342,
766 325, 363, 0, 349, 0, 0, 373, 374, 354, 0,
767 0, 341, 345, 0, 372, 0, 0, 217, 220, 370,
768 0, 0, 355, 375, 0, 376, 0, 0, 346, 377,
769 0, 356, 325, 0, 0, 347, 357, 378, 0, 0,
773 static const short yydefgoto
[] = { 939,
774 1, 2, 3, 28, 29, 30, 345, 568, 351, 571,
775 200, 454, 667, 124, 242, 405, 126, 127, 128, 129,
776 130, 582, 131, 390, 389, 387, 678, 388, 132, 243,
777 133, 134, 332, 333, 334, 563, 655, 656, 31, 195,
778 786, 444, 91, 564, 640, 445, 34, 142, 288, 35,
779 218, 206, 78, 201, 207, 646, 79, 567, 337, 338,
780 37, 297, 298, 299, 644, 715, 669, 670, 671, 733,
781 801, 844, 862, 883, 910, 865, 885, 911, 324, 210,
782 680, 211, 38, 234, 236, 225, 94, 737, 354, 97,
783 98, 231, 475, 476, 223, 224, 144, 682, 145, 191,
784 287, 657, 658, 726, 335, 482, 579, 580, 581, 561,
785 368, 562, 790, 791, 792, 818, 839, 458, 840, 661,
786 793, 794, 868, 817, 901, 892, 920, 933, 893, 795,
787 796, 891, 797, 830, 853, 906, 907, 908, 931, 410,
788 411, 446, 630, 447, 448, 449, 327, 328, 450, 451,
789 653, 135, 40, 64, 41, 42, 43, 432, 689, 314,
790 604, 804, 527, 317, 539, 606, 44, 318, 69, 45,
791 437, 544, 438, 549, 696, 697, 46, 65, 304, 521,
792 66, 310, 525, 433, 434, 537, 613, 808, 538, 608,
793 749, 609, 750, 175, 424, 518, 519, 520, 683, 684,
794 306, 426, 176, 177, 178, 179, 180, 585, 586, 673,
795 587, 373, 136, 245, 486, 376, 377, 378, 137, 138,
799 static const short yypact
[] = { 120,
800 131, 2895, 2895, 468,-32768,-32768,-32768,-32768, 98, 118,
801 257, 110, 122, 132,-32768, 266,-32768,-32768, 266, 266,
802 -32768, 158, 266, 158, 266, 266,-32768,-32768,-32768,-32768,
803 234, 153, 2375, 497,-32768, 218,-32768,-32768, 2895,-32768,
804 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
805 -32768,-32768,-32768,-32768, 172, 210, 203, 210, 221, 2604,
806 2442, 254,-32768, 61, 3182, 3182, 81, 133,-32768,-32768,
807 158,-32768, 151, 266,-32768,-32768, 234, 253,-32768, 218,
808 1662,-32768, 540,-32768, 234, 497,-32768, 218,-32768,-32768,
809 879,-32768,-32768, 94,-32768, 263, 289, 1593,-32768, 298,
810 -32768,-32768,-32768,-32768,-32768,-32768, 2604, 2604, 266,-32768,
811 -32768,-32768, 2604,-32768,-32768, 933,-32768, 278, 323, 326,
812 -32768,-32768,-32768, 2604, 331, 361,-32768, 2658, 2712,-32768,
813 3553, 1169, 403, 370, 2604,-32768,-32768,-32768,-32768,-32768,
814 396, 267,-32768, 402, 3336, 302,-32768, 266,-32768,-32768,
815 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
816 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
817 -32768, 129, 3459,-32768,-32768,-32768, 2336, 457,-32768,-32768,
818 -32768, 266, 266, 449, 266, 266,-32768,-32768,-32768, 461,
819 642, 54,-32768, 540, 234,-32768, 474,-32768, 1805, 683,
820 218,-32768,-32768, 540,-32768, 259,-32768, 218, 1760, 526,
821 529, 318, 1681, 879,-32768,-32768,-32768,-32768, 218,-32768,
822 -32768, 505, 470,-32768, 94, 491, 218,-32768,-32768, 525,
823 486, 3078, 374, 210, 218, 210,-32768,-32768,-32768,-32768,
824 490, 499, 495, 503, 2496, 3244, 3459, 266,-32768, 517,
825 2604, 933,-32768, 933,-32768, 2604, 2604, 558,-32768,-32768,
826 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
827 2604, 2604,-32768,-32768, 266, 266, 2604, 2604,-32768,-32768,
828 -32768,-32768,-32768, 267, 1864,-32768, 547, 711,-32768,-32768,
829 -32768,-32768,-32768,-32768,-32768,-32768, 29,-32768, 539,-32768,
830 3459,-32768, 537, 542, 618,-32768, 457,-32768, 147, 542,
831 158, 559,-32768, 574, 573, 585,-32768, 574,-32768,-32768,
832 529,-32768,-32768, 635, 529, 654,-32768, 3048,-32768, 582,
833 589,-32768, 276, 82,-32768,-32768, 631, 218, 269, 219,
834 -32768, 540, 540,-32768, 683, 218,-32768, 1923,-32768,-32768,
835 683, 2604, 266, 591, 470, 595,-32768,-32768,-32768,-32768,
836 -32768, 592,-32768, 596,-32768,-32768,-32768, 599, 597, 2256,
837 -32768,-32768,-32768,-32768, 640, 606, 3244,-32768, 607, 610,
838 -32768, 3553, 615, 617, 3553, 3553, 2604, 656, 2604, 2604,
839 2834, 2942, 880, 784, 1653, 900, 900, 478, 478,-32768,
840 -32768,-32768,-32768,-32768, 622, 361, 616, 456, 242,-32768,
841 3067,-32768, 621,-32768, 1982,-32768, 711, 624, 302, 2766,
842 632, 3272, 851,-32768,-32768, 3347, 3459,-32768,-32768, 628,
843 158,-32768, 658, 2970,-32768,-32768, 347, 2843, 666, 84,
844 643,-32768,-32768,-32768, 3422,-32768, 659, 327,-32768,-32768,
845 176,-32768,-32768, 86,-32768,-32768,-32768, 3441,-32768, 526,
846 -32768,-32768, 526,-32768, 701,-32768,-32768, 660,-32768, 3553,
847 -32768, 218, 663,-32768, 661,-32768,-32768, 661, 218, 218,
848 -32768, 713,-32768,-32768,-32768, 3308,-32768,-32768, 640,-32768,
849 -32768,-32768,-32768,-32768, 708, 2604, 2417, 1396,-32768,-32768,
850 547,-32768,-32768,-32768,-32768,-32768, 668,-32768,-32768, 211,
851 681, 266,-32768, 2336, 676, 3097,-32768,-32768, 3422, 1779,
852 86,-32768, 679, 700, 86,-32768, 574,-32768, 352,-32768,
853 -32768,-32768,-32768, 234, 153, 2375, 262,-32768,-32768,-32768,
854 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 3478, 705,-32768,
855 -32768,-32768, 464, 93,-32768,-32768, 3411,-32768, 780, 495,
856 -32768,-32768,-32768, 707, 726,-32768, 840, 86,-32768,-32768,
857 86,-32768, 218,-32768, 368,-32768,-32768, 266, 1102, 713,
858 -32768, 1422, 2604, 750, 706, 3308,-32768,-32768, 1475,-32768,
859 -32768, 2604,-32768,-32768,-32768,-32768, 464,-32768,-32768,-32768,
860 -32768, 266,-32768,-32768, 729, 574,-32768, 3182, 3182, 76,
861 540, 234, 2998,-32768, 430, 2861, 1377, 1377,-32768,-32768,
862 -32768, 93, 218, 238, 330, 218,-32768, 330, 218, 3067,
863 -32768,-32768,-32768,-32768,-32768, 540,-32768, 234,-32768, 767,
864 -32768,-32768, 3553,-32768,-32768, 840,-32768,-32768,-32768, 2604,
865 212,-32768, 377, 545, 1022, 716, 717, 1182,-32768,-32768,
866 -32768,-32768,-32768, 758, 266,-32768, 762, 3553, 735, 737,
867 -32768, 361,-32768, 2604,-32768, 750,-32768, 2604, 273, 238,
868 330, 218, 383,-32768,-32768, 442,-32768, 760, 574,-32768,
869 -32768,-32768,-32768, 2604, 789, 757,-32768, 757, 588, 677,
870 -32768, 2041,-32768,-32768,-32768, 594,-32768,-32768,-32768, 389,
871 416, 767,-32768,-32768, 1422,-32768, 3186, 2604,-32768,-32768,
872 266,-32768,-32768,-32768,-32768, 764,-32768,-32768,-32768,-32768,
873 2122, 808, 1422,-32768,-32768, 1502,-32768,-32768, 1475,-32768,
874 -32768,-32768,-32768,-32768, 464,-32768,-32768, 782, 72, 72,
875 3553, 2604, 1377, 583,-32768, 583,-32768,-32768, 763,-32768,
876 -32768, 775,-32768, 3186,-32768,-32768, 2202, 816, 800,-32768,
877 -32768, 802, 813, 2604, 829, 798, 805, 2550, 429, 890,
878 79, 141,-32768, 849, 824,-32768, 825, 3147,-32768, 887,
879 1262, 103,-32768,-32768,-32768,-32768,-32768, 2364,-32768, 827,
880 1582,-32768,-32768, 574,-32768,-32768,-32768,-32768,-32768, 3553,
881 -32768, 601,-32768,-32768,-32768, 2604, 848,-32768, 2604, 2604,
882 3517,-32768,-32768,-32768,-32768, 831, 2604, 833,-32768, 853,
883 -32768,-32768,-32768, 540,-32768, 234, 1342,-32768,-32768,-32768,
884 -32768, 2604,-32768, 1582,-32768,-32768, 854, 845, 2604, 899,
885 -32768, 752, 866, 878, 2604,-32768,-32768, 881,-32768, 2604,
886 432,-32768, 320, 440,-32768, 332,-32768,-32768, 2202, 883,
887 -32768,-32768,-32768, 889,-32768,-32768,-32768,-32768, 3535,-32768,
888 52,-32768, 683,-32768, 683,-32768,-32768,-32768, 886,-32768,
889 -32768, 2604,-32768,-32768, 946, 891,-32768,-32768,-32768,-32768,
890 -32768,-32768, 892,-32768, 898, 69, 893,-32768,-32768, 495,
891 495,-32768,-32768, 2604, 946, 894, 946,-32768,-32768, 2604,
892 901, 145,-32768,-32768, 903,-32768, 654, 907,-32768, 403,
893 303,-32768,-32768, 908, 654,-32768,-32768, 403, 970, 975,
897 static const short yypgoto
[] = {-32768,
898 -32768,-32768,-32768, 192, -367,-32768,-32768,-32768,-32768,-32768,
899 -32768,-32768, -9,-32768, -52, 560, -231, 530,-32768,-32768,
900 -54,-32768, 220,-32768,-32768,-32768,-32768,-32768, 167,-32768,
901 -295,-32768, -312, 655,-32768,-32768, 334,-32768, 17, -195,
902 193, 16, 909,-32768, 356, 21, -11, -61, 710, 11,
903 -276, -575, -58, -206, -118,-32768,-32768,-32768, 196, 3,
904 -6,-32768, 579,-32768, 357,-32768, -604,-32768, -657,-32768,
905 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -68, -135,
906 -489, 14, -66,-32768,-32768,-32768,-32768,-32768, 647, 19,
907 -32768, 773, 649, 433, 785, 664, -27, -79, -55, -168,
908 -226, 355,-32768,-32768, -285,-32768,-32768,-32768, 434, -413,
909 -32768, -205,-32768,-32768,-32768,-32768, -122, -415, -734, 358,
910 -32768, 149,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
911 -32768,-32768, 150,-32768, -658, 105,-32768, 107,-32768, 608,
912 -32768, -359,-32768, 612, 633, 475, -307,-32768,-32768,-32768,
913 -32768, 18,-32768, 1029,-32768,-32768,-32768,-32768,-32768,-32768,
914 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -20, 4,
915 -364,-32768, 513,-32768, 443, 305,-32768,-32768,-32768,-32768,
916 -32768,-32768,-32768, -286,-32768,-32768,-32768, 310, 531,-32768,
917 -32768,-32768,-32768, -25, 753,-32768,-32768, 550,-32768, 321,
918 564,-32768, 651, 652, -121,-32768, -148,-32768,-32768, 405,
919 494,-32768,-32768,-32768,-32768,-32768,-32768, 714,-32768,-32768,
927 static const short yytable
[] = { 55,
928 57, 59, 346, 72, 36, 36, 63, 125, 141, 67,
929 68, 416, 343, 71, 209, 63, 74, 32, 32, 39,
930 39, 86, 33, 33, 220, 70, 212, 70, 308, 92,
931 440, 439, 464, 80, 339, 88, 230, 369, 469, 466,
932 181, 36, 232, 87, 81, 406, 184, 455, 83, 85,
933 188, 503, 237, 238, 32, 307, 39, 409, 240, 33,
934 710, 575, 286, 624, 190, 292, 533, 529, 340, 249,
935 70, 143, 806, 92, 70, 323, 100, 336, 802, 80,
936 281, 92, -112, 850, 222, 208, 560, 80, 244, 895,
937 192, 456, 279, 219, 221, 75, 50, 51, 213, 239,
938 50, 51, 197, 841, 418, 147, 915, 601, 143, 419,
939 762, 603, 198, 199, 408, 233, -35, 346, 182, -1,
940 50, 51, 14, 16, 375, 16, 143, 896, 800, 322,
941 -2, 50, 51, 886, 198, 199, 296, 517, 300, 183,
942 416, 148, 627, 846, 916, 303, 330, 220, 807, 50,
943 51, 622, 285, 899, 645, 291, 902, 647, 904, 551,
944 52, 842, 302, -112, 52, 53, 912, 367, 60, 53,
945 185, 230, 311, 312, 615, 315, 316, 232, -34, 54,
946 61, 501, 927, 143, 52, 16, 871, 301, 406, 53,
947 62, 186, 372, 80, 47, 52, 208, 80, 936, 56,
948 53, 92, 16, 460, 321, 427, 208, 463, 325, 754,
949 756, 336, 92, 52, 187, 222, 219, 192, 53, 379,
950 928, 220, 336, 462, 383, 407, 384, 189, 336, 82,
951 93, 148, 413, 903, 600, 477, 75, 477, 380, 686,
952 605, 14, 291, 143, 731, 692, 358, 14, 360, 718,
953 233, 558, 362, 95, 364, 489, 559, 143, 861, 50,
954 51, 925, 143, 14, 143, 403, 404, 14, 50, 51,
955 709, 75, 202, 421, 96, 320, 331, 347, 348, -115,
956 -115, -115, -115, 76, 99, -115, 591, -115, -115, -115,
957 430, 592, 77, 659, 461, 468, 701, 702, 14, 428,
958 414, 415, 101, -115, 50, 51, 293, 294, 295, 531,
959 532, 143, 146, 767, 70, 485, 283, 502, 203, 688,
960 -115, 226, 754, 52, -466, 284, 285, 204, 53, 193,
961 36, 92, 52, 194, 495, 341, 246, 53, 58, 342,
962 205, 208, -115, 222, 208, 208, 197, -115, 740, -175,
963 220, 672, 321, 251, 634, -175, 325, -115, 197, 14,
964 679, -175, 507, 714, 584, 308, 227, -175, 52, 723,
965 75, 202, 728, 53, 228, 235, 547, 5, 934, 7,
966 140, 247, 548, 935, 248, 9, 10, 11, 198, 199,
967 198, 199, 307, 757, 349, 409, -175, 14, 194, 524,
968 -175, 13, 748, 556, 15, 650, 250, 557, -175, 296,
969 528, 279, -175, 36, 540, 541, 542, 203, 16, 540,
970 541, 542, 357, 869, 543, 36, 204, 700, 36, 607,
971 363, 50, 51, 86, 70, 714, 36, 143, 515, 205,
972 22, 251, 672, 516, 280, 24, 565, 88, 143, 535,
973 534, 477, 699, 720, 536, 87, 660, 721, 706, 744,
974 553, 554, 320, 745, 676, 760, 75, 620, 566, 342,
975 382, 282, 501, 626, 629, 385, 386, 289, 827, 501,
976 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
977 401, 402, 761, 14, 309, 52, 194, 540, 541, 542,
978 53, 89, 594, 90, 86, 283, 651, 693, 882, 540,
979 541, 542, 342, 621, 284, 285, 884, 847, 88, 746,
980 194, 36, 622, 285, 86, 789, 87, 270, 271, 272,
981 313, 597, 326, 660, 515, 729, 80, 319, 88, 516,
982 352, 465, 75, 202, 48, 49, 87, 610, 695, 695,
983 353, 611, 612, 212, 547, 623, 80, 356, 291, 36,
984 548, 789, 359, 617, 618, 365, 625, 628, 652, 14,
985 897, 470, 898, 220, 366, 639, 367, 208, 370, 711,
986 636, 638, 690, 691, 347, 348, 812, 198, 199, 203,
987 75, 620, 685, 381, 320, -85, 75, 420, 204, 623,
988 320, -268, -268, 75, 620, 414, 415, 320, 497, 498,
989 681, 205, 422, 208, 80, 36, 92, 14, 423, 208,
990 208, 453, 722, 14, 80, 610, 143, 425, 535, 534,
991 14, 930, 36, 536, 431, 192, -464, 621, 208, 938,
992 80, 701, 702, 627, 75, 220, 622, 285, 320, 759,
993 755, 610, 622, 285, 435, 732, 346, 253, 255, 77,
994 436, 197, 104, 789, 452, 453, 459, 572, 472, 479,
995 474, 14, 483, 480, 576, 577, 481, 487, 785, 75,
996 620, 488, 491, 331, 695, 492, -325, -325, -325, -325,
997 493, 76, 494, 496, -325, -325, -325, 499, 500, 508,
998 77, 623, 623, 504, 918, 919, 14, 512, 80, 526,
999 -325, 765, 321, 325, 785, 589, 216, 217, 552, 321,
1000 530, 784, 9, 10, 11, 826, 755, -325, 550, 5,
1001 89, 7, 90, 36, 555, 77, 569, 9, 10, 11,
1002 573, 574, 570, 281, 578, 588, 787, 623, 798, -325,
1003 590, 788, 596, 13, -325, 208, 593, 784, 681, 557,
1004 336, 72, 336, 848, -111, 863, 851, 854, 648, 828,
1005 16, 713, 216, 217, 858, 602, 86, 864, 9, 10,
1006 11, 619, 633, 635, 70, 70, 643, 674, 675, 870,
1007 88, 687, 22, -304, 727, -32, 874, 24, 87, 734,
1008 36, 668, 637, 834, 836, 273, 274, 881, 275, 276,
1009 277, 278, 735, 787, 623, 798, 785, 736, 788, 703,
1010 704, 705, 747, 707, 708, 321, 752, 876, 265, 266,
1011 267, 268, 269, 270, 271, 272, 208, 753, 80, 851,
1012 641, 766, 102, 799, 805, 813, 719, 103, 104, 866,
1013 105, 331, 814, -33, 5, 6, 7, 8, 816, 784,
1014 819, 921, 9, 10, 11, 643, 822, 851, 106, 717,
1015 15, 820, 107, 108, 823, 741, 742, 743, 13, 109,
1016 14, 824, 110, 215, 216, 217, 831, 111, 112, 113,
1017 9, 10, 11, 114, 115, 16, 829, 739, 116, 117,
1018 832, 833, 837, 118, 845, 119, 849, 857, 14, 859,
1019 120, 860, 763, 751, 121, 875, 872, 22, 122, 123,
1020 873, 642, 24, 264, 265, 266, 267, 268, 269, 270,
1021 271, 272, -486, 241, 668, 102, 5, 764, 7, 140,
1022 103, 104, 877, 105, 9, 10, 11, 268, 269, 270,
1023 271, 272, 668, 878, 905, 668, 914, 880, 889, 815,
1024 13, 106, 900, 15, 890, 107, 108, 909, 913, 940,
1025 923, 810, 109, 917, 941, 110, 926, 16, 929, 511,
1026 111, 112, 113, 932, 937, 852, 114, 115, 457, 724,
1027 843, 116, 117, 821, 712, 214, 118, 509, 119, 22,
1028 417, 473, 716, 120, 24, 361, 649, 121, 478, 355,
1029 725, 122, 123, 662, -94, 730, 471, 887, 888, 922,
1030 668, 505, 331, 924, -124, -124, -124, -124, -124, -124,
1031 -124, 632, -124, -124, -124, -124, -124, 522, -124, -124,
1032 -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
1033 -124, -124, -124, 73, -124, -124, 616, 811, 523, 809,
1034 698, -124, 429, 668, -124, 803, -124, 614, 599, -124,
1035 -124, -124, 513, 514, 879, -124, -124, 595, 738, 677,
1036 -124, -124, 0, 0, 0, -124, 0, -124, -124, 0,
1037 490, 0, -124, -124, 0, 0, -124, 0, -124, -124,
1038 -124, -124, 654, -124, -325, -325, -325, -325, -325, -325,
1039 -325, 0, -325, -325, -325, -325, -325, 0, -325, -325,
1040 -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
1041 -325, -325, -325, 0, -325, -325, 0, 0, 0, 0,
1042 0, -325, 0, 0, -325, 0, -325, 0, 0, -325,
1043 -325, -325, 0, 0, 0, -325, -325, 0, 0, 0,
1044 -325, -325, 0, 0, 0, -325, 0, -325, -325, 0,
1045 0, 0, -325, -325, 0, 0, -325, 0, -325, 0,
1046 -325, -325, 331, -325, -325, -325, 0, 0, 0, -325,
1047 -325, 0, -325, 0, 0, 0, -325, 0, -325, -325,
1048 -325, -325, -325, -325, -325, -325, -325, -325, -325, 0,
1049 -325, 0, -325, 0, -325, -325, 0, 0, 0, 0,
1050 0, -325, 273, 274, -325, 275, 276, 277, 278, -325,
1051 -325, -325, 0, 0, 0, -325, -325, 0, 0, 0,
1052 -325, -325, 0, 0, 0, -325, 0, -325, -325, 0,
1053 0, 0, -325, -325, 0, 0, -325, 0, -325, -300,
1054 -325, -325, 838, -325, -325, -325, 0, 0, 0, -325,
1055 -325, 0, -325, 0, 0, 0, -325, 0, -325, -325,
1056 -325, -325, -325, -325, -325, -325, -325, -325, -325, 0,
1057 -325, 0, -325, 0, -325, -325, 0, 0, 0, 0,
1058 0, -325, 0, 0, -325, 0, 0, 0, 0, -325,
1059 -325, -325, 0, 0, 0, -325, -325, 0, 0, 0,
1060 -325, -325, 0, 0, 0, -325, 0, -325, -325, 0,
1061 0, 0, -325, -325, 0, 0, -325, 0, -325, 0,
1062 -325, -325, 867, -325, -335, -335, 0, 0, 0, -335,
1063 -335, 0, -335, 0, 0, 0, -335, 0, -335, -335,
1064 -335, -335, -335, -335, -335, -335, -335, -335, -335, 0,
1065 -335, 0, -335, 0, -335, -335, 0, 0, 0, 75,
1066 202, -335, 0, 0, -335, 0, 0, 0, 0, -335,
1067 -335, -335, 0, 0, 0, -335, -335, 0, 0, 0,
1068 -335, -335, 0, 0, 0, -335, 14, -335, -335, 0,
1069 0, 0, -335, -335, 694, 0, -335, 0, -335, 0,
1070 -335, -335, 663, -335, 664, 51, 203, 0, 0, 103,
1071 104, 0, 105, 0, 0, 204, 261, 262, 263, 264,
1072 265, 266, 267, 268, 269, 270, 271, 272, 205, 0,
1073 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1074 0, 109, 0, 0, 110, 0, 0, 0, 0, 111,
1075 112, 113, 0, 0, 0, 114, 115, 0, 0, 665,
1076 116, 117, 0, 0, 0, 118, 0, 119, 52, 0,
1077 0, 0, 120, 53, 0, 0, 121, 0, 0, -203,
1078 122, 123, 663, 666, 664, 51, 0, 0, 0, 103,
1079 104, 258, 105, 259, 260, 261, 262, 263, 264, 265,
1080 266, 267, 268, 269, 270, 271, 272, 0, 0, 0,
1081 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1082 0, 109, 0, 0, 110, 0, 0, 0, 0, 111,
1083 112, 113, 0, 0, 0, 114, 115, 0, 0, 665,
1084 116, 117, 0, 0, 0, 118, 0, 119, 52, 0,
1085 0, 0, 120, 53, 0, 0, 121, 0, 0, -258,
1086 122, 123, 663, 666, 664, 51, 0, 0, 0, 103,
1087 104, 0, 105, 228, 0, 0, 5, 0, 7, 140,
1088 0, 0, 0, 0, 9, 10, 11, 0, 0, 0,
1089 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1090 13, 109, 0, 15, 110, 0, 0, 0, 0, 111,
1091 112, 113, 0, 0, 0, 114, 115, 16, 0, 665,
1092 116, 117, 0, 0, 0, 118, 0, 119, 52, 0,
1093 0, 0, 120, 53, 0, 0, 121, 0, 0, 22,
1094 122, 123, 196, 666, 24, -28, -28, -28, -28, 229,
1095 -261, 0, 0, -28, -28, -28, 0, 0, 0, 0,
1096 0, 350, 0, 0, -24, -24, -24, -24, 197, -28,
1097 0, -175, -24, -24, -24, 0, 0, -175, 266, 267,
1098 268, 269, 270, 271, 272, 0, -28, 197, -24, 0,
1099 -175, 0, 0, 0, 0, 0, -175, 0, 0, 0,
1100 198, 199, 0, 0, 0, -24, 0, 0, -28, 0,
1101 0, 0, 0, -28, 0, 0, 0, 0, -175, 198,
1102 199, 0, -175, -28, 0, 0, 0, -24, 0, 0,
1103 0, 0, -24, 0, 0, 0, 0, -175, 0, 0,
1104 344, -175, -24, -20, -20, -20, -20, 0, 0, 0,
1105 0, -20, -20, -20, 0, 0, 0, 0, 0, 331,
1106 0, 0, -488, -488, -488, -488, 197, -20, 0, -175,
1107 -488, -488, -488, 0, 0, -175, 0, 0, 0, 0,
1108 0, 0, 0, 0, -20, 0, -488, 102, -488, 0,
1109 0, 0, 103, 104, 0, 105, 0, 0, 0, 0,
1110 0, 0, 0, -488, 0, 0, -20, 0, 0, 0,
1111 0, -20, 0, 106, 0, 15, -175, 107, 108, 0,
1112 -175, -20, 0, 0, 109, -488, 0, 110, 0, 0,
1113 -488, 0, 111, 112, 113, 0, 0, 0, 114, 115,
1114 -488, 0, 0, 116, 117, 0, 102, 0, 118, 0,
1115 119, 103, 104, 0, 105, 120, 0, 0, 0, 121,
1116 0, 0, 0, 122, 123, 0, 0, 329, 0, 0,
1117 0, 0, 106, 0, 15, 0, 107, 108, 0, 0,
1118 0, 0, 0, 109, 0, 0, 110, 0, 0, 0,
1119 0, 111, 112, 113, 0, 0, 0, 114, 115, 0,
1120 0, 0, 116, 117, 0, 102, 0, 118, 0, 119,
1121 103, 104, 0, 105, 120, 0, 0, 0, 121, 0,
1122 0, 0, 122, 123, 0, 0, 412, 0, 0, 0,
1123 0, 106, 0, 15, 0, 107, 108, 0, 0, 0,
1124 0, 0, 109, 0, 0, 110, 0, 0, 0, 0,
1125 111, 112, 113, 0, 0, 0, 114, 115, 0, 0,
1126 0, 116, 117, 0, 102, 0, 118, 0, 119, 103,
1127 104, 0, 105, 120, 0, 0, 0, 121, 0, 0,
1128 0, 122, 123, 0, 0, 467, 0, 0, 0, 0,
1129 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1130 0, 109, 0, 0, 110, 0, 0, 0, 0, 111,
1131 112, 113, 0, 0, 0, 114, 115, 0, 0, 0,
1132 116, 117, 0, 102, 0, 118, 0, 119, 103, 104,
1133 0, 105, 120, 0, 0, 0, 121, 0, 0, 0,
1134 122, 123, 0, 0, 506, 0, 0, 0, 0, 106,
1135 0, 15, 0, 107, 108, 0, 0, 0, 0, 0,
1136 109, 0, 0, 110, 0, 0, 0, 0, 111, 112,
1137 113, 0, 0, 0, 114, 115, 0, 0, 0, 116,
1138 117, 0, 0, 0, 118, 0, 119, 0, 0, 0,
1139 0, 120, 0, 0, 0, 121, 0, 0, 0, 122,
1140 123, 0, 0, 758, 664, 768, 6, 7, 8, 103,
1141 104, 0, 105, 9, 10, 11, 769, 0, 770, 771,
1142 772, 773, 774, 775, 776, 777, 778, 779, 780, 13,
1143 106, 14, 15, 0, 107, 108, 0, 0, 0, 0,
1144 0, 109, 0, 0, 110, 0, 16, 0, 0, 111,
1145 112, 113, 0, 0, 0, 114, 115, 0, 0, 0,
1146 116, 117, 0, 0, 0, 118, 0, 119, 781, 0,
1147 0, 0, 120, 782, 0, 0, 121, 0, 783, 0,
1148 122, 123, 0, 367, 664, 51, 0, 0, 0, 103,
1149 104, 0, 105, 0, 0, 0, 769, 0, 770, 771,
1150 772, 773, 774, 775, 776, 777, 778, 779, 780, 0,
1151 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1152 0, 109, 0, 0, 110, 0, 0, 0, 0, 111,
1153 112, 113, 0, 0, 0, 114, 115, 0, 102, 0,
1154 116, 117, 0, 103, 104, 118, 105, 119, 52, 0,
1155 0, 0, 120, 53, 0, 0, 121, 0, 783, 0,
1156 122, 123, 0, 367, 106, 0, 15, 0, 107, 108,
1157 0, 0, 0, 0, 0, 109, 0, 0, 110, 0,
1158 0, 0, 0, 111, 112, 113, 0, 0, 0, 114,
1159 115, 0, 0, 0, 116, 117, 0, 0, 0, 118,
1160 0, 119, 0, 0, 0, 0, 120, 0, 0, 0,
1161 121, 0, 0, 0, 122, 123, 0, 484, 149, 150,
1162 0, 151, 152, 0, 0, 0, 153, 154, 155, 156,
1163 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
1164 167, 168, 169, 170, 171, 0, 102, 5, 6, 7,
1165 8, 103, 104, 172, 105, 9, 10, 11, 5, 6,
1166 7, 8, 0, 0, 0, 0, 9, 10, 11, 0,
1167 0, 13, 106, 14, 15, 0, 107, 108, 0, 0,
1168 0, 0, 13, 109, 14, 0, 110, 174, 16, 0,
1169 0, 111, 112, 113, 0, 0, 305, 114, 115, 16,
1170 0, 0, 116, 117, 0, 0, 0, 118, 0, 119,
1171 22, 0, 0, 0, 120, 24, 0, 0, 121, 0,
1172 0, 22, 122, 123, 102, 5, 24, 7, 140, 103,
1173 104, 84, 105, 9, 10, 11, 260, 261, 262, 263,
1174 264, 265, 266, 267, 268, 269, 270, 271, 272, 13,
1175 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1176 0, 109, 0, 0, 110, 0, 16, 0, 0, 111,
1177 112, 113, 0, 0, 0, 114, 115, 0, 102, 0,
1178 116, 117, 0, 103, 104, 118, 105, 119, 22, 0,
1179 0, 0, 120, 24, 0, 0, 121, 0, 0, 0,
1180 122, 123, 0, 0, 106, 0, 15, 0, 107, 108,
1181 0, 0, 0, 0, 0, 109, 0, 0, 110, 0,
1182 0, 0, 0, 111, 112, 113, 0, 0, 0, 114,
1183 115, 0, 102, 0, 116, 117, 0, 103, 104, 118,
1184 105, 119, 371, 0, 0, 0, 120, 0, 0, 0,
1185 121, 0, 0, 0, 122, 123, 0, 0, 106, 0,
1186 15, 0, 107, 108, 0, 0, 0, 0, 0, 109,
1187 0, 0, 110, 0, 0, 0, 0, 111, 112, 113,
1188 0, 0, 0, 114, 115, 0, 102, 0, 116, 117,
1189 0, 103, 104, 118, 105, 119, 0, 0, 0, 0,
1190 120, 0, 0, 0, 121, 0, 825, 0, 122, 123,
1191 0, 0, 106, 0, 15, 0, 107, 108, 0, 0,
1192 0, 0, 0, 109, 0, 0, 110, 0, 0, 0,
1193 0, 111, 112, 113, 0, 0, 0, 114, 115, 0,
1194 102, 0, 116, 117, 0, 103, 104, 118, 105, 119,
1195 0, 0, 0, 0, 120, 0, 0, 0, 121, 0,
1196 0, 0, 122, 123, 0, 0, 106, 0, 15, 0,
1197 107, 108, 0, 0, 0, 0, 0, 109, 0, 0,
1198 110, 0, 0, 0, 0, 111, 112, 113, 0, 0,
1199 0, 114, 115, 0, 102, 0, 252, 117, 0, 103,
1200 104, 118, 105, 119, 0, 0, 0, 0, 120, 0,
1201 0, 0, 121, 0, 0, 0, 122, 123, 0, 0,
1202 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1203 0, 109, 0, 0, 110, 0, 0, 0, 0, 111,
1204 112, 113, 0, 0, 0, 114, 115, 0, 510, 0,
1205 254, 117, 0, 103, 104, 118, 105, 119, 0, 0,
1206 0, 0, 120, 0, 0, 0, 121, 0, 0, 0,
1207 122, 123, 0, 0, 106, 0, 15, 0, 107, 108,
1208 0, 0, 0, 0, 0, 109, 0, 0, 110, 0,
1209 0, 0, 0, 111, 112, 113, 0, 0, 0, 114,
1210 115, 0, 0, 0, 116, 117, 0, 0, 0, 118,
1211 0, 119, 0, 0, 0, 0, 120, 0, 0, 0,
1212 121, 0, 0, 545, 122, 123, 5, 0, 7, 140,
1213 0, 0, 0, 0, 9, 10, 11, 0, 0, 0,
1214 0, 545, 0, 0, 5, 0, 7, 140, 0, 0,
1215 13, 0, 9, 10, 11, 262, 263, 264, 265, 266,
1216 267, 268, 269, 270, 271, 272, 0, 16, 13, 0,
1217 0, 0, 0, 0, 0, 4, 0, -128, 5, 6,
1218 7, 8, 0, 0, 0, 16, 9, 10, 11, 22,
1219 -440, -440, -440, 0, 24, 0, 0, 0, 0, 546,
1220 -440, 12, 13, 0, 14, 15, 0, 22, -439, -439,
1221 -439, 0, 24, 0, 0, 0, 0, 546, -439, 16,
1222 0, 0, 17, 18, -128, 0, 0, 0, 0, 0,
1223 0, 0, 0, -128, 0, 19, 20, 21, 0, 0,
1224 0, 22, 0, 0, 0, 23, 24, 25, 26, 0,
1225 4, 27, -128, 5, 6, 7, 8, 0, 0, 0,
1226 0, 9, 10, 11, 263, 264, 265, 266, 267, 268,
1227 269, 270, 271, 272, 0, 0, 0, 13, 4, 14,
1228 -128, 5, 6, 7, 8, 0, 0, 0, 0, 9,
1229 10, 11, 0, 0, 16, 0, 0, 531, 532, -128,
1230 0, 0, 0, 0, 0, 13, 0, 14, -128, 0,
1231 0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
1232 0, 24, 16, 0, 0, 0, 27, -128, 441, 0,
1233 442, 5, 6, 7, 8, 0, -128, 443, 0, 9,
1234 10, 11, 0, 0, 22, 0, 0, 441, 0, 24,
1235 5, 6, 7, 8, 27, 13, 443, 14, 9, 10,
1236 11, 5, 0, 7, 290, 0, 0, 0, 0, 9,
1237 10, 11, 16, 0, 13, 0, 14, 0, 0, 0,
1238 5, 6, 7, 8, 0, 13, 0, 0, 9, 10,
1239 11, 16, 0, 0, 22, 0, 0, 0, 0, 24,
1240 0, 0, 16, -385, 13, 0, 14, 0, 0, 0,
1241 0, 0, 0, 22, 0, 0, 0, 0, 24, 0,
1242 0, 16, -385, 0, 22, 0, 0, 0, 0, 24,
1243 5, 6, 7, 8, -270, -270, 0, 0, 9, 10,
1244 11, 0, 0, 22, 0, 0, 0, 0, 24, 0,
1245 0, 0, 0, 598, 13, 0, 14, 0, 0, 0,
1246 0, 0, 0, 0, 149, 150, 0, 151, 152, 0,
1247 0, 16, 153, 154, 155, 156, 157, 158, 159, 160,
1248 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
1249 171, 0, 0, 22, 0, 14, 0, 0, 24, 172,
1250 256, 257, 258, 835, 259, 260, 261, 262, 263, 264,
1251 265, 266, 267, 268, 269, 270, 271, 272, 0, 0,
1252 173, 0, 0, 0, 0, 0, 149, 150, 0, 151,
1253 152, 0, 0, 174, 153, 154, 155, 156, 157, 158,
1254 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
1255 169, 170, 171, 0, 149, 150, 0, 151, 152, 0,
1256 0, 374, 153, 154, 155, 156, 157, 158, 159, 160,
1257 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
1258 171, 0, 0, 0, 0, 0, 0, 0, 0, 172,
1259 149, 150, 0, 151, 152, 174, 0, 0, 153, 154,
1260 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1261 165, 166, 167, 168, 169, 170, 171, 0, 0, 5,
1262 0, 7, 290, 174, 0, 583, 0, 9, 10, 11,
1263 5, 6, 7, 8, 0, 0, 443, 0, 9, 10,
1264 11, 0, 0, 13, 0, 0, 0, 0, 0, 0,
1265 0, 0, 0, 0, 13, 0, 14, 0, 0, 174,
1266 16, 0, 0, 0, 0, 283, 0, 0, 0, 0,
1267 0, 16, 0, 0, 284, 285, 0, 0, 0, 0,
1268 0, 0, 22, 0, 0, 0, 0, 24, 0, 0,
1269 0, 0, 0, 22, 5, 6, 7, 8, 24, 0,
1270 631, 0, 9, 10, 11, 5, 6, 7, 8, 0,
1271 0, 0, 0, 9, 10, 11, 0, 0, 13, 0,
1272 14, 0, 0, 0, 5, 6, 7, 8, 0, 13,
1273 0, 14, 9, 10, 11, 16, 0, 0, 0, 0,
1274 0, 0, 5, 0, 7, 140, 16, 0, 13, 0,
1275 9, 10, 11, 0, 0, 0, 0, 22, 0, 0,
1276 0, 5, 24, 7, 290, 16, 13, 0, 22, 9,
1277 10, 11, 0, 24, 0, 0, 0, 0, 0, 0,
1278 0, 0, 0, 16, 0, 13, 0, 22, 0, 0,
1279 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
1280 0, 0, 16, 0, 0, 22, 855, 0, 0, 0,
1281 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1282 0, 0, 0, 0, 22, 0, 0, 0, 0, 24,
1283 0, 256, 257, 258, 856, 259, 260, 261, 262, 263,
1284 264, 265, 266, 267, 268, 269, 270, 271, 272, 256,
1285 257, 258, 894, 259, 260, 261, 262, 263, 264, 265,
1286 266, 267, 268, 269, 270, 271, 272, 256, 257, 258,
1287 0, 259, 260, 261, 262, 263, 264, 265, 266, 267,
1288 268, 269, 270, 271, 272
1291 static const short yycheck
[] = { 9,
1292 10, 11, 209, 24, 2, 3, 16, 60, 61, 19,
1293 20, 288, 208, 23, 83, 25, 26, 2, 3, 2,
1294 3, 33, 2, 3, 91, 22, 85, 24, 177, 36,
1295 326, 318, 345, 31, 203, 33, 98, 243, 351, 347,
1296 66, 39, 98, 33, 31, 277, 67, 333, 32, 33,
1297 71, 411, 107, 108, 39, 177, 39, 284, 113, 39,
1298 636, 477, 142, 553, 74, 145, 434, 432, 204, 124,
1299 67, 61, 1, 80, 71, 194, 58, 200, 736, 77,
1300 135, 88, 1, 818, 94, 83, 1, 85, 116, 38,
1301 77, 10, 9, 91, 1, 3, 3, 4, 85, 109,
1302 3, 4, 27, 1, 76, 45, 38, 521, 98, 81,
1303 715, 525, 59, 60, 283, 98, 38, 324, 38, 0,
1304 3, 4, 30, 45, 246, 45, 116, 76, 733, 76,
1305 0, 3, 4, 868, 59, 60, 146, 423, 148, 59,
1306 417, 81, 50, 801, 76, 173, 199, 214, 77, 3,
1307 4, 59, 60, 888, 568, 145, 891, 571, 893, 76,
1308 67, 59, 172, 82, 67, 72, 901, 82, 59, 72,
1309 38, 233, 182, 183, 539, 185, 186, 233, 38, 82,
1310 59, 408, 38, 173, 67, 45, 844, 59, 420, 72,
1311 59, 59, 245, 191, 3, 67, 194, 195, 933, 82,
1312 72, 208, 45, 339, 191, 59, 204, 343, 195, 699,
1313 700, 334, 219, 67, 82, 225, 214, 204, 72, 247,
1314 76, 288, 345, 342, 252, 278, 254, 77, 351, 77,
1315 39, 81, 285, 892, 520, 358, 3, 360, 248, 604,
1316 527, 30, 232, 233, 660, 613, 230, 30, 232, 38,
1317 233, 76, 234, 82, 236, 377, 81, 247, 834, 3,
1318 4, 920, 252, 30, 254, 275, 276, 30, 3, 4,
1319 630, 3, 4, 301, 65, 7, 1, 59, 60, 4,
1320 5, 6, 7, 50, 82, 10, 76, 12, 13, 14,
1321 311, 81, 59, 579, 76, 348, 59, 60, 30, 309,
1322 59, 60, 82, 28, 3, 4, 5, 6, 7, 48,
1323 49, 301, 59, 729, 311, 370, 50, 76, 50, 606,
1324 45, 59, 812, 67, 63, 59, 60, 59, 72, 77,
1325 328, 338, 67, 81, 387, 77, 59, 72, 82, 81,
1326 72, 339, 67, 353, 342, 343, 27, 72, 76, 30,
1327 417, 583, 339, 81, 560, 36, 343, 82, 27, 30,
1328 592, 30, 415, 640, 486, 514, 78, 36, 67, 655,
1329 3, 4, 658, 72, 1, 78, 438, 4, 76, 6,
1330 7, 59, 438, 81, 59, 12, 13, 14, 59, 60,
1331 59, 60, 514, 701, 77, 622, 77, 30, 81, 427,
1332 81, 28, 689, 77, 31, 38, 76, 81, 77, 419,
1333 431, 9, 81, 411, 68, 69, 70, 50, 45, 68,
1334 69, 70, 227, 839, 78, 423, 59, 623, 426, 78,
1335 235, 3, 4, 445, 431, 712, 434, 427, 423, 72,
1336 67, 81, 674, 423, 75, 72, 458, 445, 438, 434,
1337 434, 574, 621, 77, 434, 445, 579, 81, 627, 77,
1338 444, 445, 7, 81, 586, 77, 3, 4, 458, 81,
1339 251, 76, 699, 553, 554, 256, 257, 76, 50, 706,
1340 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
1341 271, 272, 77, 30, 38, 67, 81, 68, 69, 70,
1342 72, 5, 512, 7, 516, 50, 575, 78, 77, 68,
1343 69, 70, 81, 50, 59, 60, 77, 804, 516, 78,
1344 81, 519, 59, 60, 536, 731, 516, 50, 51, 52,
1345 82, 515, 59, 656, 519, 658, 534, 77, 536, 519,
1346 36, 346, 3, 4, 77, 78, 536, 534, 617, 618,
1347 81, 535, 536, 612, 616, 553, 554, 67, 548, 557,
1348 616, 767, 77, 547, 548, 76, 553, 554, 578, 30,
1349 883, 352, 885, 640, 76, 565, 82, 575, 76, 638,
1350 564, 565, 608, 609, 59, 60, 755, 59, 60, 50,
1351 3, 4, 602, 77, 7, 38, 3, 59, 59, 597,
1352 7, 77, 78, 3, 4, 59, 60, 7, 389, 390,
1353 597, 72, 76, 611, 612, 613, 623, 30, 77, 617,
1354 618, 77, 78, 30, 622, 612, 616, 10, 613, 613,
1355 30, 927, 630, 613, 76, 622, 63, 50, 636, 935,
1356 638, 59, 60, 50, 3, 712, 59, 60, 7, 702,
1357 50, 638, 59, 60, 82, 665, 863, 128, 129, 59,
1358 76, 27, 9, 869, 83, 77, 36, 472, 78, 78,
1359 76, 30, 76, 78, 479, 480, 78, 38, 731, 3,
1360 4, 76, 76, 1, 753, 76, 4, 5, 6, 7,
1361 76, 50, 76, 38, 12, 13, 14, 76, 83, 76,
1362 59, 699, 700, 83, 910, 911, 30, 76, 706, 82,
1363 28, 721, 699, 700, 767, 496, 6, 7, 76, 706,
1364 63, 731, 12, 13, 14, 778, 50, 45, 63, 4,
1365 5, 6, 7, 731, 76, 59, 36, 12, 13, 14,
1366 78, 81, 83, 798, 32, 38, 731, 745, 731, 67,
1367 83, 731, 77, 28, 72, 753, 76, 767, 745, 81,
1368 883, 782, 885, 816, 82, 834, 819, 820, 573, 779,
1369 45, 5, 6, 7, 827, 76, 788, 836, 12, 13,
1370 14, 77, 3, 77, 781, 782, 567, 38, 83, 842,
1371 788, 63, 67, 78, 78, 38, 849, 72, 788, 38,
1372 798, 582, 77, 787, 788, 54, 55, 860, 57, 58,
1373 59, 60, 78, 798, 812, 798, 869, 81, 798, 624,
1374 625, 626, 63, 628, 629, 812, 38, 76, 45, 46,
1375 47, 48, 49, 50, 51, 52, 834, 81, 836, 892,
1376 1, 78, 3, 36, 63, 83, 651, 8, 9, 836,
1377 11, 1, 78, 38, 4, 5, 6, 7, 59, 869,
1378 59, 914, 12, 13, 14, 646, 38, 920, 29, 650,
1379 31, 59, 33, 34, 77, 680, 681, 682, 28, 40,
1380 30, 77, 43, 5, 6, 7, 38, 48, 49, 50,
1381 12, 13, 14, 54, 55, 45, 7, 678, 59, 60,
1382 77, 77, 16, 64, 78, 66, 59, 77, 30, 77,
1383 71, 59, 717, 694, 75, 17, 63, 67, 79, 80,
1384 76, 82, 72, 44, 45, 46, 47, 48, 49, 50,
1385 51, 52, 82, 1, 715, 3, 4, 718, 6, 7,
1386 8, 9, 77, 11, 12, 13, 14, 48, 49, 50,
1387 51, 52, 733, 76, 9, 736, 59, 77, 76, 764,
1388 28, 29, 77, 31, 76, 33, 34, 77, 77, 0,
1389 77, 752, 40, 81, 0, 43, 76, 45, 76, 420,
1390 48, 49, 50, 77, 77, 819, 54, 55, 334, 656,
1391 798, 59, 60, 774, 639, 87, 64, 419, 66, 67,
1392 291, 355, 646, 71, 72, 233, 574, 75, 360, 225,
1393 656, 79, 80, 580, 82, 658, 353, 869, 869, 915,
1394 801, 414, 1, 917, 3, 4, 5, 6, 7, 8,
1395 9, 557, 11, 12, 13, 14, 15, 426, 17, 18,
1396 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1397 29, 30, 31, 25, 33, 34, 544, 753, 426, 750,
1398 618, 40, 310, 844, 43, 745, 45, 537, 519, 48,
1399 49, 50, 422, 422, 855, 54, 55, 514, 674, 586,
1400 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1401 377, -1, 71, 72, -1, -1, 75, -1, 77, 78,
1402 79, 80, 1, 82, 3, 4, 5, 6, 7, 8,
1403 9, -1, 11, 12, 13, 14, 15, -1, 17, 18,
1404 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1405 29, 30, 31, -1, 33, 34, -1, -1, -1, -1,
1406 -1, 40, -1, -1, 43, -1, 45, -1, -1, 48,
1407 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1408 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1409 -1, -1, 71, 72, -1, -1, 75, -1, 77, -1,
1410 79, 80, 1, 82, 3, 4, -1, -1, -1, 8,
1411 9, -1, 11, -1, -1, -1, 15, -1, 17, 18,
1412 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
1413 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1414 -1, 40, 54, 55, 43, 57, 58, 59, 60, 48,
1415 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1416 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1417 -1, -1, 71, 72, -1, -1, 75, -1, 77, 78,
1418 79, 80, 1, 82, 3, 4, -1, -1, -1, 8,
1419 9, -1, 11, -1, -1, -1, 15, -1, 17, 18,
1420 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
1421 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1422 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1423 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1424 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1425 -1, -1, 71, 72, -1, -1, 75, -1, 77, -1,
1426 79, 80, 1, 82, 3, 4, -1, -1, -1, 8,
1427 9, -1, 11, -1, -1, -1, 15, -1, 17, 18,
1428 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
1429 29, -1, 31, -1, 33, 34, -1, -1, -1, 3,
1430 4, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1431 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1432 59, 60, -1, -1, -1, 64, 30, 66, 67, -1,
1433 -1, -1, 71, 72, 38, -1, 75, -1, 77, -1,
1434 79, 80, 1, 82, 3, 4, 50, -1, -1, 8,
1435 9, -1, 11, -1, -1, 59, 41, 42, 43, 44,
1436 45, 46, 47, 48, 49, 50, 51, 52, 72, -1,
1437 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1438 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1439 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1440 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1441 -1, -1, 71, 72, -1, -1, 75, -1, -1, 78,
1442 79, 80, 1, 82, 3, 4, -1, -1, -1, 8,
1443 9, 37, 11, 39, 40, 41, 42, 43, 44, 45,
1444 46, 47, 48, 49, 50, 51, 52, -1, -1, -1,
1445 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1446 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1447 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1448 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1449 -1, -1, 71, 72, -1, -1, 75, -1, -1, 78,
1450 79, 80, 1, 82, 3, 4, -1, -1, -1, 8,
1451 9, -1, 11, 1, -1, -1, 4, -1, 6, 7,
1452 -1, -1, -1, -1, 12, 13, 14, -1, -1, -1,
1453 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1454 28, 40, -1, 31, 43, -1, -1, -1, -1, 48,
1455 49, 50, -1, -1, -1, 54, 55, 45, -1, 58,
1456 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1457 -1, -1, 71, 72, -1, -1, 75, -1, -1, 67,
1458 79, 80, 1, 82, 72, 4, 5, 6, 7, 77,
1459 78, -1, -1, 12, 13, 14, -1, -1, -1, -1,
1460 -1, 1, -1, -1, 4, 5, 6, 7, 27, 28,
1461 -1, 30, 12, 13, 14, -1, -1, 36, 46, 47,
1462 48, 49, 50, 51, 52, -1, 45, 27, 28, -1,
1463 30, -1, -1, -1, -1, -1, 36, -1, -1, -1,
1464 59, 60, -1, -1, -1, 45, -1, -1, 67, -1,
1465 -1, -1, -1, 72, -1, -1, -1, -1, 77, 59,
1466 60, -1, 81, 82, -1, -1, -1, 67, -1, -1,
1467 -1, -1, 72, -1, -1, -1, -1, 77, -1, -1,
1468 1, 81, 82, 4, 5, 6, 7, -1, -1, -1,
1469 -1, 12, 13, 14, -1, -1, -1, -1, -1, 1,
1470 -1, -1, 4, 5, 6, 7, 27, 28, -1, 30,
1471 12, 13, 14, -1, -1, 36, -1, -1, -1, -1,
1472 -1, -1, -1, -1, 45, -1, 28, 3, 30, -1,
1473 -1, -1, 8, 9, -1, 11, -1, -1, -1, -1,
1474 -1, -1, -1, 45, -1, -1, 67, -1, -1, -1,
1475 -1, 72, -1, 29, -1, 31, 77, 33, 34, -1,
1476 81, 82, -1, -1, 40, 67, -1, 43, -1, -1,
1477 72, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1478 82, -1, -1, 59, 60, -1, 3, -1, 64, -1,
1479 66, 8, 9, -1, 11, 71, -1, -1, -1, 75,
1480 -1, -1, -1, 79, 80, -1, -1, 83, -1, -1,
1481 -1, -1, 29, -1, 31, -1, 33, 34, -1, -1,
1482 -1, -1, -1, 40, -1, -1, 43, -1, -1, -1,
1483 -1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1484 -1, -1, 59, 60, -1, 3, -1, 64, -1, 66,
1485 8, 9, -1, 11, 71, -1, -1, -1, 75, -1,
1486 -1, -1, 79, 80, -1, -1, 83, -1, -1, -1,
1487 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1488 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1489 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1490 -1, 59, 60, -1, 3, -1, 64, -1, 66, 8,
1491 9, -1, 11, 71, -1, -1, -1, 75, -1, -1,
1492 -1, 79, 80, -1, -1, 83, -1, -1, -1, -1,
1493 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1494 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1495 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1496 59, 60, -1, 3, -1, 64, -1, 66, 8, 9,
1497 -1, 11, 71, -1, -1, -1, 75, -1, -1, -1,
1498 79, 80, -1, -1, 83, -1, -1, -1, -1, 29,
1499 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1500 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1501 50, -1, -1, -1, 54, 55, -1, -1, -1, 59,
1502 60, -1, -1, -1, 64, -1, 66, -1, -1, -1,
1503 -1, 71, -1, -1, -1, 75, -1, -1, -1, 79,
1504 80, -1, -1, 83, 3, 4, 5, 6, 7, 8,
1505 9, -1, 11, 12, 13, 14, 15, -1, 17, 18,
1506 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1507 29, 30, 31, -1, 33, 34, -1, -1, -1, -1,
1508 -1, 40, -1, -1, 43, -1, 45, -1, -1, 48,
1509 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1510 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1511 -1, -1, 71, 72, -1, -1, 75, -1, 77, -1,
1512 79, 80, -1, 82, 3, 4, -1, -1, -1, 8,
1513 9, -1, 11, -1, -1, -1, 15, -1, 17, 18,
1514 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
1515 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1516 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1517 49, 50, -1, -1, -1, 54, 55, -1, 3, -1,
1518 59, 60, -1, 8, 9, 64, 11, 66, 67, -1,
1519 -1, -1, 71, 72, -1, -1, 75, -1, 77, -1,
1520 79, 80, -1, 82, 29, -1, 31, -1, 33, 34,
1521 -1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
1522 -1, -1, -1, 48, 49, 50, -1, -1, -1, 54,
1523 55, -1, -1, -1, 59, 60, -1, -1, -1, 64,
1524 -1, 66, -1, -1, -1, -1, 71, -1, -1, -1,
1525 75, -1, -1, -1, 79, 80, -1, 82, 3, 4,
1526 -1, 6, 7, -1, -1, -1, 11, 12, 13, 14,
1527 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1528 25, 26, 27, 28, 29, -1, 3, 4, 5, 6,
1529 7, 8, 9, 38, 11, 12, 13, 14, 4, 5,
1530 6, 7, -1, -1, -1, -1, 12, 13, 14, -1,
1531 -1, 28, 29, 30, 31, -1, 33, 34, -1, -1,
1532 -1, -1, 28, 40, 30, -1, 43, 72, 45, -1,
1533 -1, 48, 49, 50, -1, -1, 81, 54, 55, 45,
1534 -1, -1, 59, 60, -1, -1, -1, 64, -1, 66,
1535 67, -1, -1, -1, 71, 72, -1, -1, 75, -1,
1536 -1, 67, 79, 80, 3, 4, 72, 6, 7, 8,
1537 9, 77, 11, 12, 13, 14, 40, 41, 42, 43,
1538 44, 45, 46, 47, 48, 49, 50, 51, 52, 28,
1539 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1540 -1, 40, -1, -1, 43, -1, 45, -1, -1, 48,
1541 49, 50, -1, -1, -1, 54, 55, -1, 3, -1,
1542 59, 60, -1, 8, 9, 64, 11, 66, 67, -1,
1543 -1, -1, 71, 72, -1, -1, 75, -1, -1, -1,
1544 79, 80, -1, -1, 29, -1, 31, -1, 33, 34,
1545 -1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
1546 -1, -1, -1, 48, 49, 50, -1, -1, -1, 54,
1547 55, -1, 3, -1, 59, 60, -1, 8, 9, 64,
1548 11, 66, 67, -1, -1, -1, 71, -1, -1, -1,
1549 75, -1, -1, -1, 79, 80, -1, -1, 29, -1,
1550 31, -1, 33, 34, -1, -1, -1, -1, -1, 40,
1551 -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1552 -1, -1, -1, 54, 55, -1, 3, -1, 59, 60,
1553 -1, 8, 9, 64, 11, 66, -1, -1, -1, -1,
1554 71, -1, -1, -1, 75, -1, 77, -1, 79, 80,
1555 -1, -1, 29, -1, 31, -1, 33, 34, -1, -1,
1556 -1, -1, -1, 40, -1, -1, 43, -1, -1, -1,
1557 -1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1558 3, -1, 59, 60, -1, 8, 9, 64, 11, 66,
1559 -1, -1, -1, -1, 71, -1, -1, -1, 75, -1,
1560 -1, -1, 79, 80, -1, -1, 29, -1, 31, -1,
1561 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1562 43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
1563 -1, 54, 55, -1, 3, -1, 59, 60, -1, 8,
1564 9, 64, 11, 66, -1, -1, -1, -1, 71, -1,
1565 -1, -1, 75, -1, -1, -1, 79, 80, -1, -1,
1566 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1567 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1568 49, 50, -1, -1, -1, 54, 55, -1, 3, -1,
1569 59, 60, -1, 8, 9, 64, 11, 66, -1, -1,
1570 -1, -1, 71, -1, -1, -1, 75, -1, -1, -1,
1571 79, 80, -1, -1, 29, -1, 31, -1, 33, 34,
1572 -1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
1573 -1, -1, -1, 48, 49, 50, -1, -1, -1, 54,
1574 55, -1, -1, -1, 59, 60, -1, -1, -1, 64,
1575 -1, 66, -1, -1, -1, -1, 71, -1, -1, -1,
1576 75, -1, -1, 1, 79, 80, 4, -1, 6, 7,
1577 -1, -1, -1, -1, 12, 13, 14, -1, -1, -1,
1578 -1, 1, -1, -1, 4, -1, 6, 7, -1, -1,
1579 28, -1, 12, 13, 14, 42, 43, 44, 45, 46,
1580 47, 48, 49, 50, 51, 52, -1, 45, 28, -1,
1581 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
1582 6, 7, -1, -1, -1, 45, 12, 13, 14, 67,
1583 68, 69, 70, -1, 72, -1, -1, -1, -1, 77,
1584 78, 27, 28, -1, 30, 31, -1, 67, 68, 69,
1585 70, -1, 72, -1, -1, -1, -1, 77, 78, 45,
1586 -1, -1, 48, 49, 50, -1, -1, -1, -1, -1,
1587 -1, -1, -1, 59, -1, 61, 62, 63, -1, -1,
1588 -1, 67, -1, -1, -1, 71, 72, 73, 74, -1,
1589 1, 77, 3, 4, 5, 6, 7, -1, -1, -1,
1590 -1, 12, 13, 14, 43, 44, 45, 46, 47, 48,
1591 49, 50, 51, 52, -1, -1, -1, 28, 1, 30,
1592 3, 4, 5, 6, 7, -1, -1, -1, -1, 12,
1593 13, 14, -1, -1, 45, -1, -1, 48, 49, 50,
1594 -1, -1, -1, -1, -1, 28, -1, 30, 59, -1,
1595 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1,
1596 -1, 72, 45, -1, -1, -1, 77, 50, 1, -1,
1597 3, 4, 5, 6, 7, -1, 59, 10, -1, 12,
1598 13, 14, -1, -1, 67, -1, -1, 1, -1, 72,
1599 4, 5, 6, 7, 77, 28, 10, 30, 12, 13,
1600 14, 4, -1, 6, 7, -1, -1, -1, -1, 12,
1601 13, 14, 45, -1, 28, -1, 30, -1, -1, -1,
1602 4, 5, 6, 7, -1, 28, -1, -1, 12, 13,
1603 14, 45, -1, -1, 67, -1, -1, -1, -1, 72,
1604 -1, -1, 45, 76, 28, -1, 30, -1, -1, -1,
1605 -1, -1, -1, 67, -1, -1, -1, -1, 72, -1,
1606 -1, 45, 76, -1, 67, -1, -1, -1, -1, 72,
1607 4, 5, 6, 7, 77, 78, -1, -1, 12, 13,
1608 14, -1, -1, 67, -1, -1, -1, -1, 72, -1,
1609 -1, -1, -1, 77, 28, -1, 30, -1, -1, -1,
1610 -1, -1, -1, -1, 3, 4, -1, 6, 7, -1,
1611 -1, 45, 11, 12, 13, 14, 15, 16, 17, 18,
1612 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1613 29, -1, -1, 67, -1, 30, -1, -1, 72, 38,
1614 35, 36, 37, 77, 39, 40, 41, 42, 43, 44,
1615 45, 46, 47, 48, 49, 50, 51, 52, -1, -1,
1616 59, -1, -1, -1, -1, -1, 3, 4, -1, 6,
1617 7, -1, -1, 72, 11, 12, 13, 14, 15, 16,
1618 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1619 27, 28, 29, -1, 3, 4, -1, 6, 7, -1,
1620 -1, 38, 11, 12, 13, 14, 15, 16, 17, 18,
1621 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1622 29, -1, -1, -1, -1, -1, -1, -1, -1, 38,
1623 3, 4, -1, 6, 7, 72, -1, -1, 11, 12,
1624 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1625 23, 24, 25, 26, 27, 28, 29, -1, -1, 4,
1626 -1, 6, 7, 72, -1, 38, -1, 12, 13, 14,
1627 4, 5, 6, 7, -1, -1, 10, -1, 12, 13,
1628 14, -1, -1, 28, -1, -1, -1, -1, -1, -1,
1629 -1, -1, -1, -1, 28, -1, 30, -1, -1, 72,
1630 45, -1, -1, -1, -1, 50, -1, -1, -1, -1,
1631 -1, 45, -1, -1, 59, 60, -1, -1, -1, -1,
1632 -1, -1, 67, -1, -1, -1, -1, 72, -1, -1,
1633 -1, -1, -1, 67, 4, 5, 6, 7, 72, -1,
1634 10, -1, 12, 13, 14, 4, 5, 6, 7, -1,
1635 -1, -1, -1, 12, 13, 14, -1, -1, 28, -1,
1636 30, -1, -1, -1, 4, 5, 6, 7, -1, 28,
1637 -1, 30, 12, 13, 14, 45, -1, -1, -1, -1,
1638 -1, -1, 4, -1, 6, 7, 45, -1, 28, -1,
1639 12, 13, 14, -1, -1, -1, -1, 67, -1, -1,
1640 -1, 4, 72, 6, 7, 45, 28, -1, 67, 12,
1641 13, 14, -1, 72, -1, -1, -1, -1, -1, -1,
1642 -1, -1, -1, 45, -1, 28, -1, 67, -1, -1,
1643 -1, -1, 72, -1, -1, -1, -1, -1, -1, -1,
1644 -1, -1, 45, -1, -1, 67, 10, -1, -1, -1,
1645 72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1646 -1, -1, -1, -1, 67, -1, -1, -1, -1, 72,
1647 -1, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1648 44, 45, 46, 47, 48, 49, 50, 51, 52, 35,
1649 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1650 46, 47, 48, 49, 50, 51, 52, 35, 36, 37,
1651 -1, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1654 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1655 #line 3 "/usr/local/share/bison.simple"
1657 /* Skeleton output parser for bison,
1658 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1660 This program is free software; you can redistribute it and/or modify
1661 it under the terms of the GNU General Public License as published by
1662 the Free Software Foundation; either version 2, or (at your option)
1665 This program is distributed in the hope that it will be useful,
1666 but WITHOUT ANY WARRANTY; without even the implied warranty of
1667 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1668 GNU General Public License for more details.
1670 You should have received a copy of the GNU General Public License
1671 along with this program; if not, write to the Free Software
1672 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1674 /* As a special exception, when this file is copied by Bison into a
1675 Bison output file, you may use that output file without restriction.
1676 This special exception was added by the Free Software Foundation
1677 in version 1.24 of Bison. */
1681 #define alloca __builtin_alloca
1682 #else /* not GNU C. */
1683 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1685 #else /* not sparc */
1686 #if defined (MSDOS) && !defined (__TURBOC__)
1688 #else /* not MSDOS, or __TURBOC__ */
1692 #else /* not MSDOS, __TURBOC__, or _AIX */
1696 void *alloca (unsigned int);
1698 #else /* not __cplusplus */
1700 #endif /* not __cplusplus */
1702 #endif /* not _AIX */
1703 #endif /* not MSDOS, or __TURBOC__ */
1704 #endif /* not sparc. */
1705 #endif /* not GNU C. */
1706 #endif /* alloca not defined. */
1708 /* This is the parser code that is written into each bison parser
1709 when the %semantic_parser declaration is not specified in the grammar.
1710 It was written by Richard Stallman by simplifying the hairy parser
1711 used when %semantic_parser is specified. */
1713 /* Note: there must be only one dollar sign in this file.
1714 It is replaced by the list of actions, each action
1715 as one case of the switch. */
1717 #define yyerrok (yyerrstatus = 0)
1718 #define yyclearin (yychar = YYEMPTY)
1721 #define YYACCEPT return(0)
1722 #define YYABORT return(1)
1723 #define YYERROR goto yyerrlab1
1724 /* Like YYERROR except do call yyerror.
1725 This remains here temporarily to ease the
1726 transition to the new meaning of YYERROR, for GCC.
1727 Once GCC version 2 has supplanted version 1, this can go. */
1728 #define YYFAIL goto yyerrlab
1729 #define YYRECOVERING() (!!yyerrstatus)
1730 #define YYBACKUP(token, value) \
1732 if (yychar == YYEMPTY && yylen == 1) \
1733 { yychar = (token), yylval = (value); \
1734 yychar1 = YYTRANSLATE (yychar); \
1739 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1743 #define YYERRCODE 256
1746 #define YYLEX yylex()
1752 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1754 #define YYLEX yylex(&yylval, &yylloc)
1756 #else /* not YYLSP_NEEDED */
1758 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1760 #define YYLEX yylex(&yylval)
1762 #endif /* not YYLSP_NEEDED */
1765 /* If nonreentrant, generate the variables here */
1769 int yychar
; /* the lookahead symbol */
1770 YYSTYPE yylval
; /* the semantic value of the */
1771 /* lookahead symbol */
1774 YYLTYPE yylloc
; /* location data for the lookahead */
1778 int yynerrs
; /* number of parse errors so far */
1779 #endif /* not YYPURE */
1782 int yydebug
; /* nonzero means print parse trace */
1783 /* Since this is uninitialized, it does not stop multiple parsers
1787 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1790 #define YYINITDEPTH 200
1793 /* YYMAXDEPTH is the maximum size the stacks can grow to
1794 (effective only if the built-in stack extension method is used). */
1801 #define YYMAXDEPTH 10000
1804 /* Prevent warning if -Wstrict-prototypes. */
1809 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1810 #define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1811 #else /* not GNU C or C++ */
1814 /* This is the most reliable way to avoid incompatibilities
1815 in available built-in functions on various systems. */
1817 __yy_memcpy (from
, to
, count
)
1822 register char *f
= from
;
1823 register char *t
= to
;
1824 register int i
= count
;
1830 #else /* __cplusplus */
1832 /* This is the most reliable way to avoid incompatibilities
1833 in available built-in functions on various systems. */
1835 __yy_memcpy (char *from
, char *to
, int count
)
1837 register char *f
= from
;
1838 register char *t
= to
;
1839 register int i
= count
;
1848 #line 192 "/usr/local/share/bison.simple"
1850 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1851 into yyparse. The argument should have type void *.
1852 It should actually point to an object.
1853 Grammar actions can access the variable by casting it
1854 to the proper pointer type. */
1856 #ifdef YYPARSE_PARAM
1857 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1859 #define YYPARSE_PARAM
1860 #define YYPARSE_PARAM_DECL
1864 yyparse(YYPARSE_PARAM
)
1867 register int yystate
;
1869 register short *yyssp
;
1870 register YYSTYPE
*yyvsp
;
1871 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1872 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1874 short yyssa
[YYINITDEPTH
]; /* the state stack */
1875 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1877 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1878 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1881 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1882 YYLTYPE
*yyls
= yylsa
;
1885 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1887 #define YYPOPSTACK (yyvsp--, yyssp--)
1890 int yystacksize
= YYINITDEPTH
;
1901 YYSTYPE yyval
; /* the variable used to return */
1902 /* semantic values from the action */
1909 fprintf(stderr
, "Starting parse\n");
1915 yychar
= YYEMPTY
; /* Cause a token to be read. */
1917 /* Initialize stack pointers.
1918 Waste one element of value and location stack
1919 so that they stay on the same level as the state stack.
1920 The wasted elements are never initialized. */
1928 /* Push a new state, which is found in yystate . */
1929 /* In all cases, when you get here, the value and location stacks
1930 have just been pushed. so pushing a state here evens the stacks. */
1935 if (yyssp
>= yyss
+ yystacksize
- 1)
1937 /* Give user a chance to reallocate the stack */
1938 /* Use copies of these so that the &'s don't force the real ones into memory. */
1939 YYSTYPE
*yyvs1
= yyvs
;
1940 short *yyss1
= yyss
;
1942 YYLTYPE
*yyls1
= yyls
;
1945 /* Get the current used size of the three stacks, in elements. */
1946 int size
= yyssp
- yyss
+ 1;
1949 /* Each stack pointer address is followed by the size of
1950 the data in use in that stack, in bytes. */
1952 /* This used to be a conditional around just the two extra args,
1953 but that might be undefined if yyoverflow is a macro. */
1954 yyoverflow("parser stack overflow",
1955 &yyss1
, size
* sizeof (*yyssp
),
1956 &yyvs1
, size
* sizeof (*yyvsp
),
1957 &yyls1
, size
* sizeof (*yylsp
),
1960 yyoverflow("parser stack overflow",
1961 &yyss1
, size
* sizeof (*yyssp
),
1962 &yyvs1
, size
* sizeof (*yyvsp
),
1966 yyss
= yyss1
; yyvs
= yyvs1
;
1970 #else /* no yyoverflow */
1971 /* Extend the stack our own way. */
1972 if (yystacksize
>= YYMAXDEPTH
)
1974 yyerror("parser stack overflow");
1978 if (yystacksize
> YYMAXDEPTH
)
1979 yystacksize
= YYMAXDEPTH
;
1980 yyss
= (short *) alloca (yystacksize
* sizeof (*yyssp
));
1981 __yy_memcpy ((char *)yyss1
, (char *)yyss
, size
* sizeof (*yyssp
));
1982 yyvs
= (YYSTYPE
*) alloca (yystacksize
* sizeof (*yyvsp
));
1983 __yy_memcpy ((char *)yyvs1
, (char *)yyvs
, size
* sizeof (*yyvsp
));
1985 yyls
= (YYLTYPE
*) alloca (yystacksize
* sizeof (*yylsp
));
1986 __yy_memcpy ((char *)yyls1
, (char *)yyls
, size
* sizeof (*yylsp
));
1988 #endif /* no yyoverflow */
1990 yyssp
= yyss
+ size
- 1;
1991 yyvsp
= yyvs
+ size
- 1;
1993 yylsp
= yyls
+ size
- 1;
1998 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
2001 if (yyssp
>= yyss
+ yystacksize
- 1)
2007 fprintf(stderr
, "Entering state %d\n", yystate
);
2013 /* Do appropriate processing given the current state. */
2014 /* Read a lookahead token if we need one and don't already have one. */
2017 /* First try to decide what to do without reference to lookahead token. */
2019 yyn
= yypact
[yystate
];
2023 /* Not known => get a lookahead token if don't already have one. */
2025 /* yychar is either YYEMPTY or YYEOF
2026 or a valid token in external form. */
2028 if (yychar
== YYEMPTY
)
2032 fprintf(stderr
, "Reading a token: ");
2037 /* Convert token to internal form (in yychar1) for indexing tables with */
2039 if (yychar
<= 0) /* This means end of input. */
2042 yychar
= YYEOF
; /* Don't call YYLEX any more */
2046 fprintf(stderr
, "Now at end of input.\n");
2051 yychar1
= YYTRANSLATE(yychar
);
2056 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
2057 /* Give the individual parser a way to print the precise meaning
2058 of a token, for further debugging info. */
2060 YYPRINT (stderr
, yychar
, yylval
);
2062 fprintf (stderr
, ")\n");
2068 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
2073 /* yyn is what to do for this token type in this state.
2074 Negative => reduce, -yyn is rule number.
2075 Positive => shift, yyn is new state.
2076 New state is final state => don't bother to shift,
2077 just return success.
2078 0, or most negative number => error. */
2093 /* Shift the lookahead token. */
2097 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
2100 /* Discard the token being shifted unless it is eof. */
2101 if (yychar
!= YYEOF
)
2109 /* count tokens shifted since error; after three, turn off error status. */
2110 if (yyerrstatus
) yyerrstatus
--;
2115 /* Do the default action for the current state. */
2118 yyn
= yydefact
[yystate
];
2122 /* Do a reduction. yyn is the number of a rule to reduce with. */
2126 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
2133 fprintf (stderr
, "Reducing via rule %d (line %d), ",
2136 /* Print the symbols being reduced, and their result. */
2137 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
2138 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
2139 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
2147 #line 240 "objc-parse.y"
2149 pedwarn ("ANSI C forbids an empty source file");
2154 #line 245 "objc-parse.y"
2156 /* In case there were missing closebraces,
2157 get us back to the global binding level. */
2158 while (! global_bindings_p ())
2164 #line 259 "objc-parse.y"
2165 {yyval
.ttype
= NULL_TREE
; ;
2168 #line 260 "objc-parse.y"
2169 {yyval
.ttype
= NULL_TREE
; ;
2172 #line 268 "objc-parse.y"
2173 { STRIP_NOPS (yyvsp
[-2].ttype
);
2174 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
2175 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
2176 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
2177 assemble_asm (yyvsp
[-2].ttype
);
2179 error ("argument of `asm' is not a constant string"); ;
2182 #line 276 "objc-parse.y"
2183 { pedantic
= yyvsp
[-1].itype
; ;
2186 #line 281 "objc-parse.y"
2188 error ("ANSI C forbids data definition with no type or storage class");
2189 else if (!flag_traditional
)
2190 warning ("data definition has no type or storage class");
2192 current_declspecs
= TREE_VALUE (declspec_stack
);
2193 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2194 declspec_stack
= TREE_CHAIN (declspec_stack
);
2195 resume_momentary (yyvsp
[-2].itype
); ;
2198 #line 291 "objc-parse.y"
2199 { current_declspecs
= TREE_VALUE (declspec_stack
);
2200 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2201 declspec_stack
= TREE_CHAIN (declspec_stack
);
2202 resume_momentary (yyvsp
[-2].itype
); ;
2205 #line 296 "objc-parse.y"
2206 { current_declspecs
= TREE_VALUE (declspec_stack
);
2207 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2208 declspec_stack
= TREE_CHAIN (declspec_stack
);
2209 resume_momentary (yyvsp
[-2].itype
); ;
2212 #line 301 "objc-parse.y"
2213 { pedwarn ("empty declaration"); ;
2216 #line 303 "objc-parse.y"
2217 { shadow_tag (yyvsp
[-1].ttype
); ;
2220 #line 307 "objc-parse.y"
2222 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
2225 #line 313 "objc-parse.y"
2226 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2227 prefix_attributes
, NULL_TREE
, 0))
2229 reinit_parse_for_function (); ;
2232 #line 318 "objc-parse.y"
2233 { store_parm_decls (); ;
2236 #line 320 "objc-parse.y"
2237 { finish_function (0);
2238 current_declspecs
= TREE_VALUE (declspec_stack
);
2239 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2240 declspec_stack
= TREE_CHAIN (declspec_stack
);
2241 resume_momentary (yyvsp
[-5].itype
); ;
2244 #line 326 "objc-parse.y"
2245 { current_declspecs
= TREE_VALUE (declspec_stack
);
2246 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2247 declspec_stack
= TREE_CHAIN (declspec_stack
);
2248 resume_momentary (yyvsp
[-2].itype
); ;
2251 #line 331 "objc-parse.y"
2252 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2253 prefix_attributes
, NULL_TREE
, 0))
2255 reinit_parse_for_function (); ;
2258 #line 336 "objc-parse.y"
2259 { store_parm_decls (); ;
2262 #line 338 "objc-parse.y"
2263 { finish_function (0);
2264 current_declspecs
= TREE_VALUE (declspec_stack
);
2265 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2266 declspec_stack
= TREE_CHAIN (declspec_stack
);
2267 resume_momentary (yyvsp
[-5].itype
); ;
2270 #line 344 "objc-parse.y"
2271 { current_declspecs
= TREE_VALUE (declspec_stack
);
2272 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2273 declspec_stack
= TREE_CHAIN (declspec_stack
);
2274 resume_momentary (yyvsp
[-2].itype
); ;
2277 #line 349 "objc-parse.y"
2278 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
2279 prefix_attributes
, NULL_TREE
, 0))
2281 reinit_parse_for_function (); ;
2284 #line 354 "objc-parse.y"
2285 { store_parm_decls (); ;
2288 #line 356 "objc-parse.y"
2289 { finish_function (0);
2290 current_declspecs
= TREE_VALUE (declspec_stack
);
2291 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2292 declspec_stack
= TREE_CHAIN (declspec_stack
);
2293 resume_momentary (yyvsp
[-5].itype
); ;
2296 #line 362 "objc-parse.y"
2297 { current_declspecs
= TREE_VALUE (declspec_stack
);
2298 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2299 declspec_stack
= TREE_CHAIN (declspec_stack
);
2300 resume_momentary (yyvsp
[-2].itype
); ;
2303 #line 376 "objc-parse.y"
2304 { yyval
.code
= ADDR_EXPR
; ;
2307 #line 378 "objc-parse.y"
2308 { yyval
.code
= NEGATE_EXPR
; ;
2311 #line 380 "objc-parse.y"
2312 { yyval
.code
= CONVERT_EXPR
; ;
2315 #line 382 "objc-parse.y"
2316 { yyval
.code
= PREINCREMENT_EXPR
; ;
2319 #line 384 "objc-parse.y"
2320 { yyval
.code
= PREDECREMENT_EXPR
; ;
2323 #line 386 "objc-parse.y"
2324 { yyval
.code
= BIT_NOT_EXPR
; ;
2327 #line 388 "objc-parse.y"
2328 { yyval
.code
= TRUTH_NOT_EXPR
; ;
2331 #line 392 "objc-parse.y"
2332 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
2335 #line 397 "objc-parse.y"
2336 { yyval
.ttype
= NULL_TREE
; ;
2339 #line 403 "objc-parse.y"
2340 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
2343 #line 405 "objc-parse.y"
2344 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
2347 #line 411 "objc-parse.y"
2348 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
2351 #line 414 "objc-parse.y"
2352 { yyval
.ttype
= yyvsp
[0].ttype
;
2353 pedantic
= yyvsp
[-1].itype
; ;
2356 #line 417 "objc-parse.y"
2357 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
2358 overflow_warning (yyval
.ttype
); ;
2361 #line 421 "objc-parse.y"
2362 { tree label
= lookup_label (yyvsp
[0].ttype
);
2364 pedwarn ("ANSI C forbids `&&'");
2366 yyval
.ttype
= null_pointer_node
;
2369 TREE_USED (label
) = 1;
2370 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
2371 TREE_CONSTANT (yyval
.ttype
) = 1;
2376 #line 449 "objc-parse.y"
2377 { skip_evaluation
--;
2378 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
2379 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
2380 error ("`sizeof' applied to a bit-field");
2381 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
2384 #line 455 "objc-parse.y"
2385 { skip_evaluation
--;
2386 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
2389 #line 458 "objc-parse.y"
2390 { skip_evaluation
--;
2391 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
2394 #line 461 "objc-parse.y"
2395 { skip_evaluation
--;
2396 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
2399 #line 464 "objc-parse.y"
2400 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2403 #line 466 "objc-parse.y"
2404 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2407 #line 470 "objc-parse.y"
2408 { skip_evaluation
++; ;
2411 #line 474 "objc-parse.y"
2412 { skip_evaluation
++; ;
2415 #line 480 "objc-parse.y"
2416 { tree type
= groktypename (yyvsp
[-2].ttype
);
2417 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
2420 #line 483 "objc-parse.y"
2421 { start_init (NULL_TREE
, NULL
, 0);
2422 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
2423 really_start_incremental_init (yyvsp
[-2].ttype
); ;
2426 #line 487 "objc-parse.y"
2428 tree result
= pop_init_level (0);
2429 tree type
= yyvsp
[-5].ttype
;
2433 pedwarn ("ANSI C forbids constructor expressions");
2434 if (TYPE_NAME (type
) != 0)
2436 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
2437 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
2439 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
2443 yyval
.ttype
= result
;
2444 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
2446 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
2453 #line 516 "objc-parse.y"
2454 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2457 #line 518 "objc-parse.y"
2458 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2461 #line 520 "objc-parse.y"
2462 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2465 #line 522 "objc-parse.y"
2466 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2469 #line 524 "objc-parse.y"
2470 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2473 #line 526 "objc-parse.y"
2474 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2477 #line 528 "objc-parse.y"
2478 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2481 #line 530 "objc-parse.y"
2482 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2485 #line 532 "objc-parse.y"
2486 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2489 #line 534 "objc-parse.y"
2490 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2493 #line 536 "objc-parse.y"
2494 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2497 #line 538 "objc-parse.y"
2498 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2501 #line 540 "objc-parse.y"
2502 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2503 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2506 #line 543 "objc-parse.y"
2507 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2508 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2511 #line 546 "objc-parse.y"
2512 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2513 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2516 #line 549 "objc-parse.y"
2517 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2518 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2521 #line 552 "objc-parse.y"
2522 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2523 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2526 #line 555 "objc-parse.y"
2527 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2528 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2531 #line 558 "objc-parse.y"
2532 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2533 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2536 #line 561 "objc-parse.y"
2538 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2539 /* Make sure first operand is calculated only once. */
2540 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2541 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2542 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2545 #line 568 "objc-parse.y"
2546 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2547 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2550 #line 571 "objc-parse.y"
2551 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2552 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
); ;
2555 #line 574 "objc-parse.y"
2556 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2557 /* This inhibits warnings in truthvalue_conversion. */
2558 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
); ;
2561 #line 581 "objc-parse.y"
2563 yyval
.ttype
= lastiddecl
;
2564 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2566 if (yychar
== YYEMPTY
)
2572 if (objc_receiver_context
2573 && ! (objc_receiver_context
2574 && strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super")))
2575 /* we have a message to super */
2576 yyval
.ttype
= get_super_receiver ();
2577 else if (objc_method_context
2578 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2580 if (is_private (decl
))
2581 yyval
.ttype
= error_mark_node
;
2583 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2587 /* Ordinary implicit function declaration. */
2588 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2589 assemble_external (yyval
.ttype
);
2590 TREE_USED (yyval
.ttype
) = 1;
2593 else if (current_function_decl
== 0)
2595 error ("`%s' undeclared here (not in a function)",
2596 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2597 yyval
.ttype
= error_mark_node
;
2603 if (objc_receiver_context
2604 && ! strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super"))
2605 /* we have a message to super */
2606 yyval
.ttype
= get_super_receiver ();
2607 else if (objc_method_context
2608 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2610 if (is_private (decl
))
2611 yyval
.ttype
= error_mark_node
;
2613 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2617 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2618 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2620 error ("`%s' undeclared (first use this function)",
2621 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2623 if (! undeclared_variable_notice
)
2625 error ("(Each undeclared identifier is reported only once");
2626 error ("for each function it appears in.)");
2627 undeclared_variable_notice
= 1;
2630 yyval
.ttype
= error_mark_node
;
2631 /* Prevent repeated error messages. */
2632 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2633 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2637 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2638 yyval
.ttype
= error_mark_node
;
2639 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2641 /* The first time we see a build-in function used,
2642 if it has not been declared. */
2643 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2644 if (yychar
== YYEMPTY
)
2648 /* Omit the implicit declaration we
2649 would ordinarily do, so we don't lose
2650 the actual built in type.
2651 But print a diagnostic for the mismatch. */
2652 if (objc_method_context
2653 && is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
))
2654 error ("Instance variable `%s' implicitly declared as function",
2655 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2657 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2658 error ("`%s' implicitly declared as function",
2659 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2660 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2661 != TYPE_MODE (integer_type_node
))
2662 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2664 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2665 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2666 /* If it really returns void, change that to int. */
2667 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2668 TREE_TYPE (yyval
.ttype
)
2669 = build_function_type (integer_type_node
,
2670 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2673 pedwarn ("built-in function `%s' used without declaration",
2674 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2676 /* Do what we would ordinarily do when a fn is used. */
2677 assemble_external (yyval
.ttype
);
2678 TREE_USED (yyval
.ttype
) = 1;
2682 assemble_external (yyval
.ttype
);
2683 TREE_USED (yyval
.ttype
) = 1;
2684 /* we have a definition - still check if iVariable */
2686 if (!objc_receiver_context
2687 || (objc_receiver_context
2688 && strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super")))
2692 if (objc_method_context
2693 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2695 if (IDENTIFIER_LOCAL_VALUE (yyvsp
[0].ttype
))
2696 warning ("local declaration of `%s' hides instance variable",
2697 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2700 if (is_private (decl
))
2701 yyval
.ttype
= error_mark_node
;
2703 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2707 else /* we have a message to super */
2708 yyval
.ttype
= get_super_receiver ();
2711 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2713 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2714 /* This is to prevent an enum whose value is 0
2715 from being considered a null pointer constant. */
2716 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2717 TREE_CONSTANT (yyval
.ttype
) = 1;
2722 #line 741 "objc-parse.y"
2723 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2726 #line 743 "objc-parse.y"
2727 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2728 if (class == 'e' || class == '1'
2729 || class == '2' || class == '<')
2730 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2731 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2734 #line 749 "objc-parse.y"
2735 { yyval
.ttype
= error_mark_node
; ;
2738 #line 751 "objc-parse.y"
2739 { if (current_function_decl
== 0)
2741 error ("braced-group within expression allowed only inside a function");
2744 /* We must force a BLOCK for this level
2745 so that, if it is not expanded later,
2746 there is a way to turn off the entire subtree of blocks
2747 that are contained in it. */
2749 push_iterator_stack ();
2750 push_label_level ();
2751 yyval
.ttype
= expand_start_stmt_expr (); ;
2754 #line 765 "objc-parse.y"
2757 pedwarn ("ANSI C forbids braced-groups within expressions");
2758 pop_iterator_stack ();
2760 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2761 /* The statements have side effects, so the group does. */
2762 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2764 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2766 /* Make a BIND_EXPR for the BLOCK already made. */
2767 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2768 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2769 /* Remove the block from the tree at this point.
2770 It gets put back at the proper place
2771 when the BIND_EXPR is expanded. */
2772 delete_block (yyvsp
[-1].ttype
);
2775 yyval
.ttype
= yyvsp
[-1].ttype
;
2779 #line 788 "objc-parse.y"
2780 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2783 #line 790 "objc-parse.y"
2784 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2787 #line 792 "objc-parse.y"
2789 if (doing_objc_thang
)
2791 if (is_public (yyvsp
[-2].ttype
, yyvsp
[0].ttype
))
2792 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2794 yyval
.ttype
= error_mark_node
;
2797 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2801 #line 804 "objc-parse.y"
2803 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2805 if (doing_objc_thang
)
2807 if (is_public (expr
, yyvsp
[0].ttype
))
2808 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2810 yyval
.ttype
= error_mark_node
;
2813 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2817 #line 818 "objc-parse.y"
2818 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2821 #line 820 "objc-parse.y"
2822 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2825 #line 822 "objc-parse.y"
2826 { yyval
.ttype
= build_message_expr (yyvsp
[0].ttype
); ;
2829 #line 824 "objc-parse.y"
2830 { yyval
.ttype
= build_selector_expr (yyvsp
[0].ttype
); ;
2833 #line 826 "objc-parse.y"
2834 { yyval
.ttype
= build_protocol_expr (yyvsp
[0].ttype
); ;
2837 #line 828 "objc-parse.y"
2838 { yyval
.ttype
= build_encode_expr (yyvsp
[0].ttype
); ;
2841 #line 830 "objc-parse.y"
2842 { yyval
.ttype
= build_objc_string_object (yyvsp
[0].ttype
); ;
2845 #line 837 "objc-parse.y"
2846 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2849 #line 845 "objc-parse.y"
2850 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2853 #line 853 "objc-parse.y"
2854 { c_mark_varargs ();
2856 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2859 #line 863 "objc-parse.y"
2863 #line 879 "objc-parse.y"
2864 { current_declspecs
= TREE_VALUE (declspec_stack
);
2865 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2866 declspec_stack
= TREE_CHAIN (declspec_stack
);
2867 resume_momentary (yyvsp
[-2].itype
); ;
2870 #line 884 "objc-parse.y"
2871 { current_declspecs
= TREE_VALUE (declspec_stack
);
2872 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2873 declspec_stack
= TREE_CHAIN (declspec_stack
);
2874 resume_momentary (yyvsp
[-2].itype
); ;
2877 #line 889 "objc-parse.y"
2878 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2879 pedwarn ("empty declaration"); ;
2882 #line 892 "objc-parse.y"
2883 { pedwarn ("empty declaration"); ;
2886 #line 901 "objc-parse.y"
2890 #line 916 "objc-parse.y"
2891 { yyval
.itype
= suspend_momentary ();
2892 pending_xref_error ();
2893 declspec_stack
= tree_cons (prefix_attributes
,
2896 split_specs_attrs (yyvsp
[0].ttype
,
2897 ¤t_declspecs
, &prefix_attributes
); ;
2900 #line 927 "objc-parse.y"
2901 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2904 #line 932 "objc-parse.y"
2905 { current_declspecs
= TREE_VALUE (declspec_stack
);
2906 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2907 declspec_stack
= TREE_CHAIN (declspec_stack
);
2908 resume_momentary (yyvsp
[-2].itype
); ;
2911 #line 937 "objc-parse.y"
2912 { current_declspecs
= TREE_VALUE (declspec_stack
);
2913 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2914 declspec_stack
= TREE_CHAIN (declspec_stack
);
2915 resume_momentary (yyvsp
[-2].itype
); ;
2918 #line 942 "objc-parse.y"
2919 { current_declspecs
= TREE_VALUE (declspec_stack
);
2920 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2921 declspec_stack
= TREE_CHAIN (declspec_stack
);
2922 resume_momentary (yyvsp
[-1].itype
); ;
2925 #line 947 "objc-parse.y"
2926 { current_declspecs
= TREE_VALUE (declspec_stack
);
2927 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2928 declspec_stack
= TREE_CHAIN (declspec_stack
);
2929 resume_momentary (yyvsp
[-1].itype
); ;
2932 #line 952 "objc-parse.y"
2933 { shadow_tag (yyvsp
[-1].ttype
); ;
2936 #line 954 "objc-parse.y"
2937 { pedwarn ("empty declaration"); ;
2940 #line 956 "objc-parse.y"
2941 { pedantic
= yyvsp
[-1].itype
; ;
2944 #line 966 "objc-parse.y"
2945 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2948 #line 968 "objc-parse.y"
2949 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2952 #line 972 "objc-parse.y"
2953 { yyval
.ttype
= NULL_TREE
; ;
2956 #line 974 "objc-parse.y"
2957 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2960 #line 976 "objc-parse.y"
2961 { if (extra_warnings
)
2962 warning ("`%s' is not at beginning of declaration",
2963 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2964 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2967 #line 981 "objc-parse.y"
2968 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2971 #line 986 "objc-parse.y"
2972 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2975 #line 988 "objc-parse.y"
2976 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2979 #line 993 "objc-parse.y"
2980 { yyval
.ttype
= NULL_TREE
; ;
2983 #line 995 "objc-parse.y"
2984 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2987 #line 997 "objc-parse.y"
2988 { if (extra_warnings
)
2989 warning ("`%s' is not at beginning of declaration",
2990 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2991 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2994 #line 1010 "objc-parse.y"
2995 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2998 #line 1012 "objc-parse.y"
2999 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
3002 #line 1014 "objc-parse.y"
3003 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3006 #line 1016 "objc-parse.y"
3007 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3010 #line 1021 "objc-parse.y"
3011 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
3012 TREE_STATIC (yyval
.ttype
) = 1; ;
3015 #line 1024 "objc-parse.y"
3016 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3019 #line 1026 "objc-parse.y"
3020 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3021 TREE_STATIC (yyval
.ttype
) = 1; ;
3024 #line 1029 "objc-parse.y"
3025 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
3026 warning ("`%s' is not at beginning of declaration",
3027 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
3028 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3029 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
3032 #line 1043 "objc-parse.y"
3033 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3036 #line 1045 "objc-parse.y"
3037 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
3040 #line 1049 "objc-parse.y"
3041 { yyval
.ttype
= NULL_TREE
; ;
3044 #line 1051 "objc-parse.y"
3045 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3048 #line 1061 "objc-parse.y"
3049 { /* For a typedef name, record the meaning, not the name.
3050 In case of `foo foo, bar;'. */
3051 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
3054 #line 1065 "objc-parse.y"
3055 { yyval
.ttype
= get_static_reference (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3058 #line 1067 "objc-parse.y"
3059 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3062 #line 1072 "objc-parse.y"
3063 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3066 #line 1074 "objc-parse.y"
3067 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
3070 #line 1076 "objc-parse.y"
3071 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
3074 #line 1098 "objc-parse.y"
3075 { yyval
.ttype
= NULL_TREE
; ;
3078 #line 1100 "objc-parse.y"
3079 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
3080 yyval
.ttype
= yyvsp
[-1].ttype
;
3084 #line 1107 "objc-parse.y"
3085 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3086 yyvsp
[-1].ttype
, prefix_attributes
);
3087 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3090 #line 1112 "objc-parse.y"
3092 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3095 #line 1115 "objc-parse.y"
3096 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3097 yyvsp
[0].ttype
, prefix_attributes
);
3098 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
3102 #line 1123 "objc-parse.y"
3103 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3104 yyvsp
[-1].ttype
, prefix_attributes
);
3105 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3108 #line 1128 "objc-parse.y"
3110 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
3111 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3114 #line 1132 "objc-parse.y"
3115 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3116 yyvsp
[0].ttype
, prefix_attributes
);
3117 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3120 #line 1140 "objc-parse.y"
3121 { yyval
.ttype
= NULL_TREE
; ;
3124 #line 1142 "objc-parse.y"
3125 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3128 #line 1147 "objc-parse.y"
3129 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3132 #line 1149 "objc-parse.y"
3133 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3136 #line 1154 "objc-parse.y"
3137 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
3140 #line 1159 "objc-parse.y"
3141 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3144 #line 1161 "objc-parse.y"
3145 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3148 #line 1166 "objc-parse.y"
3149 { yyval
.ttype
= NULL_TREE
; ;
3152 #line 1168 "objc-parse.y"
3153 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
3156 #line 1170 "objc-parse.y"
3157 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
3160 #line 1172 "objc-parse.y"
3161 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
3164 #line 1174 "objc-parse.y"
3165 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3168 #line 1192 "objc-parse.y"
3169 { really_start_incremental_init (NULL_TREE
);
3170 /* Note that the call to clear_momentary
3171 is in process_init_element. */
3172 push_momentary (); ;
3175 #line 1197 "objc-parse.y"
3176 { yyval
.ttype
= pop_init_level (0);
3177 if (yyval
.ttype
== error_mark_node
3178 && ! (yychar
== STRING
|| yychar
== CONSTANT
))
3181 pop_momentary_nofree (); ;
3184 #line 1205 "objc-parse.y"
3185 { yyval
.ttype
= error_mark_node
; ;
3188 #line 1211 "objc-parse.y"
3190 pedwarn ("ANSI C forbids empty initializer braces"); ;
3193 #line 1225 "objc-parse.y"
3194 { process_init_element (yyvsp
[0].ttype
); ;
3197 #line 1227 "objc-parse.y"
3198 { push_init_level (0); ;
3201 #line 1229 "objc-parse.y"
3202 { process_init_element (pop_init_level (0)); ;
3205 #line 1235 "objc-parse.y"
3206 { set_init_label (yyvsp
[-1].ttype
); ;
3209 #line 1238 "objc-parse.y"
3210 { set_init_label (yyvsp
[-1].ttype
); ;
3213 #line 1244 "objc-parse.y"
3214 { push_c_function_context ();
3215 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3216 prefix_attributes
, NULL_TREE
, 1))
3218 pop_c_function_context ();
3221 reinit_parse_for_function (); ;
3224 #line 1253 "objc-parse.y"
3225 { store_parm_decls (); ;
3228 #line 1261 "objc-parse.y"
3229 { finish_function (1);
3230 pop_c_function_context (); ;
3233 #line 1267 "objc-parse.y"
3234 { push_c_function_context ();
3235 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3236 prefix_attributes
, NULL_TREE
, 1))
3238 pop_c_function_context ();
3241 reinit_parse_for_function (); ;
3244 #line 1276 "objc-parse.y"
3245 { store_parm_decls (); ;
3248 #line 1284 "objc-parse.y"
3249 { finish_function (1);
3250 pop_c_function_context (); ;
3253 #line 1300 "objc-parse.y"
3254 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3257 #line 1302 "objc-parse.y"
3258 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3261 #line 1307 "objc-parse.y"
3262 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3265 #line 1309 "objc-parse.y"
3266 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3269 #line 1311 "objc-parse.y"
3270 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3273 #line 1318 "objc-parse.y"
3274 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3277 #line 1330 "objc-parse.y"
3278 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3281 #line 1335 "objc-parse.y"
3282 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3285 #line 1337 "objc-parse.y"
3286 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3289 #line 1339 "objc-parse.y"
3290 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3293 #line 1346 "objc-parse.y"
3294 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3297 #line 1355 "objc-parse.y"
3298 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3301 #line 1360 "objc-parse.y"
3302 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3305 #line 1362 "objc-parse.y"
3306 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3309 #line 1364 "objc-parse.y"
3310 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3313 #line 1366 "objc-parse.y"
3314 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3317 #line 1373 "objc-parse.y"
3318 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3321 #line 1379 "objc-parse.y"
3322 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
3323 /* Start scope of tag before parsing components. */
3327 #line 1383 "objc-parse.y"
3328 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3331 #line 1385 "objc-parse.y"
3332 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
3333 yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
3337 #line 1389 "objc-parse.y"
3338 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
3341 #line 1391 "objc-parse.y"
3342 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
3345 #line 1393 "objc-parse.y"
3346 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3349 #line 1395 "objc-parse.y"
3350 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
3351 yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
3355 #line 1399 "objc-parse.y"
3356 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
3359 #line 1401 "objc-parse.y"
3360 { yyvsp
[0].itype
= suspend_momentary ();
3361 yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
3364 #line 1404 "objc-parse.y"
3365 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), yyvsp
[0].ttype
);
3366 resume_momentary (yyvsp
[-5].itype
); ;
3369 #line 1407 "objc-parse.y"
3370 { yyvsp
[0].itype
= suspend_momentary ();
3371 yyval
.ttype
= start_enum (NULL_TREE
); ;
3374 #line 1410 "objc-parse.y"
3375 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), yyvsp
[0].ttype
);
3376 resume_momentary (yyvsp
[-5].itype
); ;
3379 #line 1413 "objc-parse.y"
3380 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
3383 #line 1424 "objc-parse.y"
3384 { if (pedantic
) pedwarn ("comma at end of enumerator list"); ;
3387 #line 1429 "objc-parse.y"
3388 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3391 #line 1431 "objc-parse.y"
3392 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
3393 pedwarn ("no semicolon at end of struct or union"); ;
3396 #line 1436 "objc-parse.y"
3397 { yyval
.ttype
= NULL_TREE
; ;
3400 #line 1438 "objc-parse.y"
3401 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
3404 #line 1440 "objc-parse.y"
3406 pedwarn ("extra semicolon in struct or union specified"); ;
3409 #line 1444 "objc-parse.y"
3411 tree interface
= lookup_interface (yyvsp
[-1].ttype
);
3414 yyval
.ttype
= get_class_ivars (interface
);
3417 error ("Cannot find interface declaration for `%s'",
3418 IDENTIFIER_POINTER (yyvsp
[-1].ttype
));
3419 yyval
.ttype
= NULL_TREE
;
3424 #line 1469 "objc-parse.y"
3425 { yyval
.ttype
= yyvsp
[0].ttype
;
3426 current_declspecs
= TREE_VALUE (declspec_stack
);
3427 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3428 declspec_stack
= TREE_CHAIN (declspec_stack
);
3429 resume_momentary (yyvsp
[-1].itype
); ;
3432 #line 1475 "objc-parse.y"
3434 pedwarn ("ANSI C forbids member declarations with no members");
3435 shadow_tag(yyvsp
[0].ttype
);
3436 yyval
.ttype
= NULL_TREE
; ;
3439 #line 1480 "objc-parse.y"
3440 { yyval
.ttype
= yyvsp
[0].ttype
;
3441 current_declspecs
= TREE_VALUE (declspec_stack
);
3442 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3443 declspec_stack
= TREE_CHAIN (declspec_stack
);
3444 resume_momentary (yyvsp
[-1].itype
); ;
3447 #line 1486 "objc-parse.y"
3449 pedwarn ("ANSI C forbids member declarations with no members");
3450 shadow_tag(yyvsp
[0].ttype
);
3451 yyval
.ttype
= NULL_TREE
; ;
3454 #line 1491 "objc-parse.y"
3455 { yyval
.ttype
= NULL_TREE
; ;
3458 #line 1493 "objc-parse.y"
3459 { yyval
.ttype
= yyvsp
[0].ttype
;
3460 pedantic
= yyvsp
[-1].itype
; ;
3463 #line 1500 "objc-parse.y"
3464 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3467 #line 1505 "objc-parse.y"
3468 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
3469 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3472 #line 1509 "objc-parse.y"
3473 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
3474 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3477 #line 1512 "objc-parse.y"
3478 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
3479 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3482 #line 1524 "objc-parse.y"
3483 { if (yyvsp
[-2].ttype
== error_mark_node
)
3484 yyval
.ttype
= yyvsp
[-2].ttype
;
3486 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
3489 #line 1529 "objc-parse.y"
3490 { yyval
.ttype
= error_mark_node
; ;
3493 #line 1535 "objc-parse.y"
3494 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
3497 #line 1537 "objc-parse.y"
3498 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3501 #line 1542 "objc-parse.y"
3502 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3505 #line 1544 "objc-parse.y"
3506 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3509 #line 1549 "objc-parse.y"
3510 { yyval
.ttype
= NULL_TREE
; ;
3513 #line 1555 "objc-parse.y"
3514 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3517 #line 1557 "objc-parse.y"
3518 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3521 #line 1562 "objc-parse.y"
3522 { yyval
.ttype
= NULL_TREE
; ;
3525 #line 1564 "objc-parse.y"
3526 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3529 #line 1569 "objc-parse.y"
3530 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3533 #line 1572 "objc-parse.y"
3534 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3537 #line 1574 "objc-parse.y"
3538 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3541 #line 1576 "objc-parse.y"
3542 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3545 #line 1578 "objc-parse.y"
3546 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3549 #line 1580 "objc-parse.y"
3550 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3553 #line 1582 "objc-parse.y"
3554 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3557 #line 1584 "objc-parse.y"
3558 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3561 #line 1586 "objc-parse.y"
3562 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3565 #line 1597 "objc-parse.y"
3567 if (pedantic
&& yyvsp
[0].ends_in_label
)
3568 pedwarn ("ANSI C forbids label at end of compound statement");
3572 #line 1606 "objc-parse.y"
3573 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3576 #line 1608 "objc-parse.y"
3577 { yyval
.ends_in_label
= 0; ;
3580 #line 1620 "objc-parse.y"
3581 { emit_line_note (input_filename
, lineno
);
3585 expand_start_bindings (0);
3586 if (objc_method_context
)
3591 #line 1635 "objc-parse.y"
3593 pedwarn ("ANSI C forbids label declarations"); ;
3596 #line 1646 "objc-parse.y"
3598 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3600 tree label
= shadow_label (TREE_VALUE (link
));
3601 C_DECLARED_LABEL_FLAG (label
) = 1;
3602 declare_nonlocal_label (label
);
3607 #line 1660 "objc-parse.y"
3611 #line 1664 "objc-parse.y"
3612 { compstmt_count
++; ;
3615 #line 1667 "objc-parse.y"
3616 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3619 #line 1669 "objc-parse.y"
3620 { emit_line_note (input_filename
, lineno
);
3621 expand_end_bindings (getdecls (), 1, 0);
3622 yyval
.ttype
= poplevel (1, 1, 0);
3623 if (yychar
== CONSTANT
|| yychar
== STRING
)
3624 pop_momentary_nofree ();
3629 #line 1677 "objc-parse.y"
3630 { emit_line_note (input_filename
, lineno
);
3631 expand_end_bindings (getdecls (), kept_level_p (), 0);
3632 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3633 if (yychar
== CONSTANT
|| yychar
== STRING
)
3634 pop_momentary_nofree ();
3639 #line 1685 "objc-parse.y"
3640 { emit_line_note (input_filename
, lineno
);
3641 expand_end_bindings (getdecls (), kept_level_p (), 0);
3642 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3643 if (yychar
== CONSTANT
|| yychar
== STRING
)
3644 pop_momentary_nofree ();
3649 #line 1705 "objc-parse.y"
3650 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3651 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3653 yyval
.itype
= stmt_count
;
3654 if_stmt_file
= yyvsp
[-5].filename
;
3655 if_stmt_line
= yyvsp
[-4].lineno
;
3656 position_after_white_space (); ;
3659 #line 1719 "objc-parse.y"
3662 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3663 /* See comment in `while' alternative, above. */
3665 expand_start_loop_continue_elsewhere (1);
3666 position_after_white_space (); ;
3669 #line 1727 "objc-parse.y"
3670 { expand_loop_continue_here (); ;
3673 #line 1731 "objc-parse.y"
3674 { yyval
.filename
= input_filename
; ;
3677 #line 1735 "objc-parse.y"
3678 { yyval
.lineno
= lineno
; ;
3681 #line 1740 "objc-parse.y"
3685 #line 1745 "objc-parse.y"
3689 #line 1750 "objc-parse.y"
3690 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3693 #line 1755 "objc-parse.y"
3694 { yyval
.ends_in_label
= 0; ;
3697 #line 1757 "objc-parse.y"
3698 { yyval
.ends_in_label
= 1; ;
3701 #line 1763 "objc-parse.y"
3705 #line 1766 "objc-parse.y"
3707 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3708 /* It appears that this should not be done--that a non-lvalue array
3709 shouldn't get an error if the value isn't used.
3710 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3711 if it appears as a top-level expression,
3712 but says nothing about non-lvalue arrays. */
3714 /* Call default_conversion to get an error
3715 on referring to a register array if pedantic. */
3716 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3717 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3718 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3720 iterator_expand (yyvsp
[-1].ttype
);
3721 clear_momentary (); ;
3724 #line 1783 "objc-parse.y"
3725 { c_expand_start_else ();
3726 yyvsp
[-1].itype
= stmt_count
;
3727 position_after_white_space (); ;
3730 #line 1787 "objc-parse.y"
3731 { c_expand_end_cond ();
3732 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3733 warning ("empty body in an else-statement"); ;
3736 #line 1791 "objc-parse.y"
3737 { c_expand_end_cond ();
3738 /* This warning is here instead of in simple_if, because we
3739 do not want a warning if an empty if is followed by an
3740 else statement. Increment stmt_count so we don't
3741 give a second error if this is a nested `if'. */
3742 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3743 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3744 "empty body in an if-statement"); ;
3747 #line 1803 "objc-parse.y"
3748 { c_expand_end_cond (); ;
3751 #line 1805 "objc-parse.y"
3753 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3754 /* The emit_nop used to come before emit_line_note,
3755 but that made the nop seem like part of the preceding line.
3756 And that was confusing when the preceding line was
3757 inside of an if statement and was not really executed.
3758 I think it ought to work to put the nop after the line number.
3759 We will see. --rms, July 15, 1991. */
3763 #line 1815 "objc-parse.y"
3764 { /* Don't start the loop till we have succeeded
3765 in parsing the end test. This is to make sure
3766 that we end every loop we start. */
3767 expand_start_loop (1);
3768 emit_line_note (input_filename
, lineno
);
3769 expand_exit_loop_if_false (NULL_PTR
,
3770 truthvalue_conversion (yyvsp
[-1].ttype
));
3771 position_after_white_space (); ;
3774 #line 1824 "objc-parse.y"
3775 { expand_end_loop (); ;
3778 #line 1827 "objc-parse.y"
3779 { emit_line_note (input_filename
, lineno
);
3780 expand_exit_loop_if_false (NULL_PTR
,
3781 truthvalue_conversion (yyvsp
[-2].ttype
));
3783 clear_momentary (); ;
3786 #line 1834 "objc-parse.y"
3787 { expand_end_loop ();
3788 clear_momentary (); ;
3791 #line 1838 "objc-parse.y"
3793 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3794 /* See comment in `while' alternative, above. */
3796 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3797 /* Next step is to call expand_start_loop_continue_elsewhere,
3798 but wait till after we parse the entire for (...).
3799 Otherwise, invalid input might cause us to call that
3800 fn without calling expand_end_loop. */
3804 #line 1850 "objc-parse.y"
3805 { yyvsp
[0].lineno
= lineno
;
3806 yyval
.filename
= input_filename
; ;
3809 #line 1853 "objc-parse.y"
3811 /* Start the loop. Doing this after parsing
3812 all the expressions ensures we will end the loop. */
3813 expand_start_loop_continue_elsewhere (1);
3814 /* Emit the end-test, with a line number. */
3815 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3816 if (yyvsp
[-4].ttype
)
3817 expand_exit_loop_if_false (NULL_PTR
,
3818 truthvalue_conversion (yyvsp
[-4].ttype
));
3819 /* Don't let the tree nodes for $9 be discarded by
3820 clear_momentary during the parsing of the next stmt. */
3822 yyvsp
[-3].lineno
= lineno
;
3823 yyvsp
[-2].filename
= input_filename
;
3824 position_after_white_space (); ;
3827 #line 1869 "objc-parse.y"
3828 { /* Emit the increment expression, with a line number. */
3829 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3830 expand_loop_continue_here ();
3831 if (yyvsp
[-3].ttype
)
3832 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3833 if (yychar
== CONSTANT
|| yychar
== STRING
)
3834 pop_momentary_nofree ();
3837 expand_end_loop (); ;
3840 #line 1880 "objc-parse.y"
3842 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3843 c_expand_start_case (yyvsp
[-1].ttype
);
3844 /* Don't let the tree nodes for $3 be discarded by
3845 clear_momentary during the parsing of the next stmt. */
3847 position_after_white_space (); ;
3850 #line 1888 "objc-parse.y"
3851 { expand_end_case (yyvsp
[-3].ttype
);
3852 if (yychar
== CONSTANT
|| yychar
== STRING
)
3853 pop_momentary_nofree ();
3858 #line 1894 "objc-parse.y"
3860 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3861 if ( ! expand_exit_something ())
3862 error ("break statement not within loop or switch"); ;
3865 #line 1899 "objc-parse.y"
3867 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3868 if (! expand_continue_loop (NULL_PTR
))
3869 error ("continue statement not within a loop"); ;
3872 #line 1904 "objc-parse.y"
3874 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3875 c_expand_return (NULL_TREE
); ;
3878 #line 1908 "objc-parse.y"
3880 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3881 c_expand_return (yyvsp
[-1].ttype
); ;
3884 #line 1912 "objc-parse.y"
3886 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3887 STRIP_NOPS (yyvsp
[-2].ttype
);
3888 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3889 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3890 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3891 expand_asm (yyvsp
[-2].ttype
);
3893 error ("argument of `asm' is not a constant string"); ;
3896 #line 1923 "objc-parse.y"
3898 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3899 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3900 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3901 input_filename
, lineno
); ;
3904 #line 1930 "objc-parse.y"
3906 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3907 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3908 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3909 input_filename
, lineno
); ;
3912 #line 1938 "objc-parse.y"
3914 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3915 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3916 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3917 input_filename
, lineno
); ;
3920 #line 1944 "objc-parse.y"
3923 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3924 decl
= lookup_label (yyvsp
[-1].ttype
);
3927 TREE_USED (decl
) = 1;
3933 #line 1955 "objc-parse.y"
3935 pedwarn ("ANSI C forbids `goto *expr;'");
3937 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3938 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3941 #line 1970 "objc-parse.y"
3943 /* The value returned by this action is */
3944 /* 1 if everything is OK */
3945 /* 0 in case of error or already bound iterator */
3948 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3949 error ("invalid `for (ITERATOR)' syntax");
3950 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3951 error ("`%s' is not an iterator",
3952 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3953 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3954 error ("`for (%s)' inside expansion of same iterator",
3955 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3959 iterator_for_loop_start (yyvsp
[-1].ttype
);
3964 #line 1991 "objc-parse.y"
3966 if (yyvsp
[-1].itype
)
3967 iterator_for_loop_end (yyvsp
[-3].ttype
);
3971 #line 2026 "objc-parse.y"
3972 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
3974 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3978 if (value
!= error_mark_node
)
3981 int success
= pushcase (value
, convert_and_check
,
3984 error ("case label not within a switch statement");
3985 else if (success
== 2)
3987 error ("duplicate case value");
3988 error_with_decl (duplicate
, "this is the first entry for that value");
3990 else if (success
== 3)
3991 warning ("case value out of range");
3992 else if (success
== 5)
3993 error ("case label within scope of cleanup or variable array");
3995 position_after_white_space (); ;
3998 #line 2051 "objc-parse.y"
3999 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
4000 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
4002 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4005 pedwarn ("ANSI C forbids case ranges");
4008 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
4011 int success
= pushcase_range (value1
, value2
,
4012 convert_and_check
, label
,
4015 error ("case label not within a switch statement");
4016 else if (success
== 2)
4018 error ("duplicate case value");
4019 error_with_decl (duplicate
, "this is the first entry for that value");
4021 else if (success
== 3)
4022 warning ("case value out of range");
4023 else if (success
== 4)
4024 warning ("empty case range");
4025 else if (success
== 5)
4026 error ("case label within scope of cleanup or variable array");
4028 position_after_white_space (); ;
4031 #line 2082 "objc-parse.y"
4035 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4036 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
4039 error ("default label not within a switch statement");
4040 else if (success
== 2)
4042 error ("multiple default labels in one switch");
4043 error_with_decl (duplicate
, "this is the first default label");
4045 position_after_white_space (); ;
4048 #line 2097 "objc-parse.y"
4049 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-1].ttype
);
4053 expand_label (label
);
4054 position_after_white_space (); ;
4057 #line 2109 "objc-parse.y"
4058 { emit_line_note (input_filename
, lineno
);
4059 yyval
.ttype
= NULL_TREE
; ;
4062 #line 2112 "objc-parse.y"
4063 { emit_line_note (input_filename
, lineno
); ;
4066 #line 2117 "objc-parse.y"
4067 { yyval
.ttype
= NULL_TREE
; ;
4070 #line 2124 "objc-parse.y"
4071 { yyval
.ttype
= NULL_TREE
; ;
4074 #line 2131 "objc-parse.y"
4075 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
4078 #line 2136 "objc-parse.y"
4079 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
4082 #line 2141 "objc-parse.y"
4083 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
4086 #line 2143 "objc-parse.y"
4087 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
4090 #line 2149 "objc-parse.y"
4092 clear_parm_order ();
4093 declare_parm_level (0); ;
4096 #line 2153 "objc-parse.y"
4097 { yyval
.ttype
= yyvsp
[0].ttype
;
4098 parmlist_tags_warning ();
4099 poplevel (0, 0, 0); ;
4102 #line 2161 "objc-parse.y"
4105 pedwarn ("ANSI C forbids forward parameter declarations");
4106 /* Mark the forward decls as such. */
4107 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
4108 TREE_ASM_WRITTEN (parm
) = 1;
4109 clear_parm_order (); ;
4112 #line 2169 "objc-parse.y"
4113 { yyval
.ttype
= yyvsp
[0].ttype
; ;
4116 #line 2171 "objc-parse.y"
4117 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
4120 #line 2177 "objc-parse.y"
4121 { yyval
.ttype
= get_parm_info (0); ;
4124 #line 2179 "objc-parse.y"
4125 { yyval
.ttype
= get_parm_info (0);
4126 /* Gcc used to allow this as an extension. However, it does
4127 not work for all targets, and thus has been disabled.
4128 Also, since func (...) and func () are indistinguishable,
4129 it caused problems with the code in expand_builtin which
4130 tries to verify that BUILT_IN_NEXT_ARG is being used
4132 error ("ANSI C requires a named argument before `...'");
4136 #line 2189 "objc-parse.y"
4137 { yyval
.ttype
= get_parm_info (1); ;
4140 #line 2191 "objc-parse.y"
4141 { yyval
.ttype
= get_parm_info (0); ;
4144 #line 2196 "objc-parse.y"
4145 { push_parm_decl (yyvsp
[0].ttype
); ;
4148 #line 2198 "objc-parse.y"
4149 { push_parm_decl (yyvsp
[0].ttype
); ;
4152 #line 2205 "objc-parse.y"
4153 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4155 build_tree_list (prefix_attributes
,
4157 current_declspecs
= TREE_VALUE (declspec_stack
);
4158 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4159 declspec_stack
= TREE_CHAIN (declspec_stack
);
4160 resume_momentary (yyvsp
[-2].itype
); ;
4163 #line 2214 "objc-parse.y"
4164 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4166 build_tree_list (prefix_attributes
,
4168 current_declspecs
= TREE_VALUE (declspec_stack
);
4169 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4170 declspec_stack
= TREE_CHAIN (declspec_stack
);
4171 resume_momentary (yyvsp
[-2].itype
); ;
4174 #line 2223 "objc-parse.y"
4175 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4177 build_tree_list (prefix_attributes
,
4179 current_declspecs
= TREE_VALUE (declspec_stack
);
4180 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4181 declspec_stack
= TREE_CHAIN (declspec_stack
);
4182 resume_momentary (yyvsp
[-2].itype
); ;
4185 #line 2232 "objc-parse.y"
4186 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4188 build_tree_list (prefix_attributes
,
4190 current_declspecs
= TREE_VALUE (declspec_stack
);
4191 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4192 declspec_stack
= TREE_CHAIN (declspec_stack
);
4193 resume_momentary (yyvsp
[-2].itype
); ;
4196 #line 2242 "objc-parse.y"
4197 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4199 build_tree_list (prefix_attributes
,
4201 current_declspecs
= TREE_VALUE (declspec_stack
);
4202 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4203 declspec_stack
= TREE_CHAIN (declspec_stack
);
4204 resume_momentary (yyvsp
[-2].itype
); ;
4207 #line 2256 "objc-parse.y"
4209 clear_parm_order ();
4210 declare_parm_level (1); ;
4213 #line 2260 "objc-parse.y"
4214 { yyval
.ttype
= yyvsp
[0].ttype
;
4215 parmlist_tags_warning ();
4216 poplevel (0, 0, 0); ;
4219 #line 2268 "objc-parse.y"
4221 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
4222 if (TREE_VALUE (t
) == NULL_TREE
)
4223 error ("`...' in old-style identifier list");
4224 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
4227 #line 2278 "objc-parse.y"
4228 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4231 #line 2280 "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
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4239 #line 2288 "objc-parse.y"
4240 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4243 #line 2293 "objc-parse.y"
4244 { yyval
.itype
= pedantic
;
4248 #line 2306 "objc-parse.y"
4250 if (objc_implementation_context
)
4252 finish_class (objc_implementation_context
);
4253 objc_ivar_chain
= NULL_TREE
;
4254 objc_implementation_context
= NULL_TREE
;
4257 warning ("`@end' must appear in an implementation context");
4261 #line 2321 "objc-parse.y"
4262 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4265 #line 2323 "objc-parse.y"
4266 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4269 #line 2328 "objc-parse.y"
4271 objc_declare_class (yyvsp
[-1].ttype
);
4275 #line 2334 "objc-parse.y"
4277 objc_declare_alias (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4281 #line 2340 "objc-parse.y"
4283 objc_interface_context
= objc_ivar_context
4284 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[-1].ttype
);
4285 objc_public_flag
= 0;
4289 #line 2346 "objc-parse.y"
4291 continue_class (objc_interface_context
);
4295 #line 2351 "objc-parse.y"
4297 finish_class (objc_interface_context
);
4298 objc_interface_context
= NULL_TREE
;
4302 #line 2357 "objc-parse.y"
4304 objc_interface_context
4305 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
4306 continue_class (objc_interface_context
);
4310 #line 2364 "objc-parse.y"
4312 finish_class (objc_interface_context
);
4313 objc_interface_context
= NULL_TREE
;
4317 #line 2370 "objc-parse.y"
4319 objc_interface_context
= objc_ivar_context
4320 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4321 objc_public_flag
= 0;
4325 #line 2376 "objc-parse.y"
4327 continue_class (objc_interface_context
);
4331 #line 2381 "objc-parse.y"
4333 finish_class (objc_interface_context
);
4334 objc_interface_context
= NULL_TREE
;
4338 #line 2387 "objc-parse.y"
4340 objc_interface_context
4341 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4342 continue_class (objc_interface_context
);
4346 #line 2394 "objc-parse.y"
4348 finish_class (objc_interface_context
);
4349 objc_interface_context
= NULL_TREE
;
4353 #line 2400 "objc-parse.y"
4355 objc_implementation_context
= objc_ivar_context
4356 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, NULL_TREE
);
4357 objc_public_flag
= 0;
4361 #line 2406 "objc-parse.y"
4364 = continue_class (objc_implementation_context
);
4368 #line 2412 "objc-parse.y"
4370 objc_implementation_context
4371 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
);
4373 = continue_class (objc_implementation_context
);
4377 #line 2420 "objc-parse.y"
4379 objc_implementation_context
= objc_ivar_context
4380 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4381 objc_public_flag
= 0;
4385 #line 2426 "objc-parse.y"
4388 = continue_class (objc_implementation_context
);
4392 #line 2432 "objc-parse.y"
4394 objc_implementation_context
4395 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4397 = continue_class (objc_implementation_context
);
4401 #line 2440 "objc-parse.y"
4403 objc_interface_context
4404 = start_class (CATEGORY_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4405 continue_class (objc_interface_context
);
4409 #line 2447 "objc-parse.y"
4411 finish_class (objc_interface_context
);
4412 objc_interface_context
= NULL_TREE
;
4416 #line 2453 "objc-parse.y"
4418 objc_implementation_context
4419 = start_class (CATEGORY_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4421 = continue_class (objc_implementation_context
);
4425 #line 2463 "objc-parse.y"
4427 remember_protocol_qualifiers ();
4428 objc_interface_context
4429 = start_protocol(PROTOCOL_INTERFACE_TYPE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4433 #line 2469 "objc-parse.y"
4435 forget_protocol_qualifiers();
4436 finish_protocol(objc_interface_context
);
4437 objc_interface_context
= NULL_TREE
;
4441 #line 2478 "objc-parse.y"
4443 yyval
.ttype
= NULL_TREE
;
4447 #line 2486 "objc-parse.y"
4449 if (yyvsp
[-2].code
== LT_EXPR
&& yyvsp
[0].code
== GT_EXPR
)
4450 yyval
.ttype
= yyvsp
[-1].ttype
;
4456 #line 2500 "objc-parse.y"
4457 { objc_public_flag
= 2; ;
4460 #line 2501 "objc-parse.y"
4461 { objc_public_flag
= 0; ;
4464 #line 2502 "objc-parse.y"
4465 { objc_public_flag
= 1; ;
4468 #line 2507 "objc-parse.y"
4470 yyval
.ttype
= NULL_TREE
;
4474 #line 2512 "objc-parse.y"
4477 pedwarn ("extra semicolon in struct or union specified");
4481 #line 2530 "objc-parse.y"
4482 { yyval
.ttype
= yyvsp
[0].ttype
;
4483 current_declspecs
= TREE_VALUE (declspec_stack
);
4484 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4485 declspec_stack
= TREE_CHAIN (declspec_stack
);
4486 resume_momentary (yyvsp
[-1].itype
); ;
4489 #line 2536 "objc-parse.y"
4490 { yyval
.ttype
= yyvsp
[0].ttype
;
4491 current_declspecs
= TREE_VALUE (declspec_stack
);
4492 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4493 declspec_stack
= TREE_CHAIN (declspec_stack
);
4494 resume_momentary (yyvsp
[-1].itype
); ;
4497 #line 2542 "objc-parse.y"
4498 { yyval
.ttype
= NULL_TREE
; ;
4501 #line 2547 "objc-parse.y"
4502 { yyval
.ttype
= NULL_TREE
; ;
4505 #line 2554 "objc-parse.y"
4507 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4509 yyvsp
[0].ttype
, current_declspecs
,
4514 #line 2561 "objc-parse.y"
4516 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4518 yyvsp
[-2].ttype
, current_declspecs
, yyvsp
[0].ttype
);
4522 #line 2567 "objc-parse.y"
4524 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4527 current_declspecs
, yyvsp
[0].ttype
);
4531 #line 2577 "objc-parse.y"
4533 remember_protocol_qualifiers ();
4534 if (objc_implementation_context
)
4535 objc_inherit_code
= CLASS_METHOD_DECL
;
4537 fatal ("method definition not in class context");
4541 #line 2585 "objc-parse.y"
4543 forget_protocol_qualifiers ();
4544 add_class_method (objc_implementation_context
, yyvsp
[0].ttype
);
4545 start_method_def (yyvsp
[0].ttype
);
4546 objc_method_context
= yyvsp
[0].ttype
;
4550 #line 2592 "objc-parse.y"
4552 continue_method_def ();
4556 #line 2596 "objc-parse.y"
4558 finish_method_def ();
4559 objc_method_context
= NULL_TREE
;
4563 #line 2602 "objc-parse.y"
4565 remember_protocol_qualifiers ();
4566 if (objc_implementation_context
)
4567 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4569 fatal ("method definition not in class context");
4573 #line 2610 "objc-parse.y"
4575 forget_protocol_qualifiers ();
4576 add_instance_method (objc_implementation_context
, yyvsp
[0].ttype
);
4577 start_method_def (yyvsp
[0].ttype
);
4578 objc_method_context
= yyvsp
[0].ttype
;
4582 #line 2617 "objc-parse.y"
4584 continue_method_def ();
4588 #line 2621 "objc-parse.y"
4590 finish_method_def ();
4591 objc_method_context
= NULL_TREE
;
4595 #line 2633 "objc-parse.y"
4596 {yyval
.ttype
= NULL_TREE
; ;
4599 #line 2640 "objc-parse.y"
4600 {yyval
.ttype
= NULL_TREE
; ;
4603 #line 2650 "objc-parse.y"
4605 objc_inherit_code
= CLASS_METHOD_DECL
;
4609 #line 2654 "objc-parse.y"
4611 add_class_method (objc_interface_context
, yyvsp
[0].ttype
);
4615 #line 2660 "objc-parse.y"
4617 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4621 #line 2664 "objc-parse.y"
4623 add_instance_method (objc_interface_context
, yyvsp
[0].ttype
);
4627 #line 2672 "objc-parse.y"
4629 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4633 #line 2677 "objc-parse.y"
4635 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
4639 #line 2682 "objc-parse.y"
4641 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4645 #line 2687 "objc-parse.y"
4647 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4651 #line 2717 "objc-parse.y"
4652 { current_declspecs
= TREE_VALUE (declspec_stack
);
4653 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4654 declspec_stack
= TREE_CHAIN (declspec_stack
);
4655 resume_momentary (yyvsp
[-2].itype
); ;
4658 #line 2722 "objc-parse.y"
4659 { shadow_tag (yyvsp
[-1].ttype
); ;
4662 #line 2724 "objc-parse.y"
4663 { pedwarn ("empty declaration"); ;
4666 #line 2729 "objc-parse.y"
4667 { push_parm_decl (yyvsp
[0].ttype
); ;
4670 #line 2731 "objc-parse.y"
4671 { push_parm_decl (yyvsp
[0].ttype
); ;
4674 #line 2739 "objc-parse.y"
4675 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4677 build_tree_list (prefix_attributes
,
4681 #line 2744 "objc-parse.y"
4682 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4684 build_tree_list (prefix_attributes
,
4688 #line 2749 "objc-parse.y"
4689 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4691 build_tree_list (prefix_attributes
,
4695 #line 2757 "objc-parse.y"
4697 yyval
.ttype
= NULL_TREE
;
4701 #line 2761 "objc-parse.y"
4703 /* oh what a kludge! */
4704 yyval
.ttype
= (tree
)1;
4708 #line 2766 "objc-parse.y"
4714 #line 2770 "objc-parse.y"
4716 /* returns a tree list node generated by get_parm_info */
4717 yyval
.ttype
= yyvsp
[0].ttype
;
4722 #line 2785 "objc-parse.y"
4724 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4728 #line 2798 "objc-parse.y"
4729 { yyval
.ttype
= get_identifier (token_buffer
); ;
4732 #line 2799 "objc-parse.y"
4733 { yyval
.ttype
= get_identifier (token_buffer
); ;
4736 #line 2800 "objc-parse.y"
4737 { yyval
.ttype
= get_identifier (token_buffer
); ;
4740 #line 2801 "objc-parse.y"
4741 { yyval
.ttype
= get_identifier (token_buffer
); ;
4744 #line 2802 "objc-parse.y"
4745 { yyval
.ttype
= get_identifier (token_buffer
); ;
4748 #line 2803 "objc-parse.y"
4749 { yyval
.ttype
= get_identifier (token_buffer
); ;
4752 #line 2804 "objc-parse.y"
4753 { yyval
.ttype
= get_identifier (token_buffer
); ;
4756 #line 2805 "objc-parse.y"
4757 { yyval
.ttype
= get_identifier (token_buffer
); ;
4760 #line 2806 "objc-parse.y"
4761 { yyval
.ttype
= get_identifier (token_buffer
); ;
4764 #line 2807 "objc-parse.y"
4765 { yyval
.ttype
= get_identifier (token_buffer
); ;
4768 #line 2808 "objc-parse.y"
4769 { yyval
.ttype
= get_identifier (token_buffer
); ;
4772 #line 2809 "objc-parse.y"
4773 { yyval
.ttype
= get_identifier (token_buffer
); ;
4776 #line 2810 "objc-parse.y"
4777 { yyval
.ttype
= get_identifier (token_buffer
); ;
4780 #line 2811 "objc-parse.y"
4781 { yyval
.ttype
= get_identifier (token_buffer
); ;
4784 #line 2812 "objc-parse.y"
4785 { yyval
.ttype
= get_identifier (token_buffer
); ;
4788 #line 2813 "objc-parse.y"
4789 { yyval
.ttype
= get_identifier (token_buffer
); ;
4792 #line 2814 "objc-parse.y"
4793 { yyval
.ttype
= get_identifier (token_buffer
); ;
4796 #line 2815 "objc-parse.y"
4797 { yyval
.ttype
= get_identifier (token_buffer
); ;
4800 #line 2816 "objc-parse.y"
4801 { yyval
.ttype
= get_identifier (token_buffer
); ;
4804 #line 2822 "objc-parse.y"
4806 yyval
.ttype
= build_keyword_decl (yyvsp
[-5].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4810 #line 2827 "objc-parse.y"
4812 yyval
.ttype
= build_keyword_decl (yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
4816 #line 2832 "objc-parse.y"
4818 yyval
.ttype
= build_keyword_decl (NULL_TREE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4822 #line 2837 "objc-parse.y"
4824 yyval
.ttype
= build_keyword_decl (NULL_TREE
, NULL_TREE
, yyvsp
[0].ttype
);
4828 #line 2850 "objc-parse.y"
4830 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4834 #line 2858 "objc-parse.y"
4836 if (TREE_CHAIN (yyvsp
[0].ttype
) == NULL_TREE
)
4837 /* just return the expr., remove a level of indirection */
4838 yyval
.ttype
= TREE_VALUE (yyvsp
[0].ttype
);
4840 /* we have a comma expr., we will collapse later */
4841 yyval
.ttype
= yyvsp
[0].ttype
;
4845 #line 2870 "objc-parse.y"
4847 yyval
.ttype
= build_tree_list (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4851 #line 2874 "objc-parse.y"
4853 yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
);
4857 #line 2882 "objc-parse.y"
4859 yyval
.ttype
= get_class_reference (yyvsp
[0].ttype
);
4863 #line 2889 "objc-parse.y"
4864 { objc_receiver_context
= 1; ;
4867 #line 2891 "objc-parse.y"
4868 { objc_receiver_context
= 0; ;
4871 #line 2893 "objc-parse.y"
4873 yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
);
4877 #line 2906 "objc-parse.y"
4879 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4883 #line 2913 "objc-parse.y"
4885 yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, NULL_TREE
);
4889 #line 2917 "objc-parse.y"
4891 yyval
.ttype
= build_tree_list (NULL_TREE
, NULL_TREE
);
4895 #line 2924 "objc-parse.y"
4897 yyval
.ttype
= yyvsp
[-1].ttype
;
4901 #line 2931 "objc-parse.y"
4903 yyval
.ttype
= yyvsp
[-1].ttype
;
4907 #line 2940 "objc-parse.y"
4909 yyval
.ttype
= groktypename (yyvsp
[-1].ttype
);
4913 /* the action file gets copied in in place of this dollarsign */
4914 #line 487 "/usr/local/share/bison.simple"
4925 short *ssp1
= yyss
- 1;
4926 fprintf (stderr
, "state stack now");
4927 while (ssp1
!= yyssp
)
4928 fprintf (stderr
, " %d", *++ssp1
);
4929 fprintf (stderr
, "\n");
4939 yylsp
->first_line
= yylloc
.first_line
;
4940 yylsp
->first_column
= yylloc
.first_column
;
4941 yylsp
->last_line
= (yylsp
-1)->last_line
;
4942 yylsp
->last_column
= (yylsp
-1)->last_column
;
4947 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
4948 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
4952 /* Now "shift" the result of the reduction.
4953 Determine what state that goes to,
4954 based on the state we popped back to
4955 and the rule number reduced by. */
4959 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
4960 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
4961 yystate
= yytable
[yystate
];
4963 yystate
= yydefgoto
[yyn
- YYNTBASE
];
4967 yyerrlab
: /* here on detecting error */
4970 /* If not already recovering from an error, report this error. */
4974 #ifdef YYERROR_VERBOSE
4975 yyn
= yypact
[yystate
];
4977 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
4984 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
4985 for (x
= (yyn
< 0 ? -yyn
: 0);
4986 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
4987 if (yycheck
[x
+ yyn
] == x
)
4988 size
+= strlen(yytname
[x
]) + 15, count
++;
4989 msg
= (char *) malloc(size
+ 15);
4992 strcpy(msg
, "parse error");
4997 for (x
= (yyn
< 0 ? -yyn
: 0);
4998 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
4999 if (yycheck
[x
+ yyn
] == x
)
5001 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
5002 strcat(msg
, yytname
[x
]);
5011 yyerror ("parse error; also virtual memory exceeded");
5014 #endif /* YYERROR_VERBOSE */
5015 yyerror("parse error");
5019 yyerrlab1
: /* here on error raised explicitly by an action */
5021 if (yyerrstatus
== 3)
5023 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5025 /* return failure if at end of input */
5026 if (yychar
== YYEOF
)
5031 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
5037 /* Else will try to reuse lookahead token
5038 after shifting the error token. */
5040 yyerrstatus
= 3; /* Each real token shifted decrements this */
5044 yyerrdefault
: /* current state does not do anything special for the error token. */
5047 /* This is wrong; only states that explicitly want error tokens
5048 should shift them. */
5049 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5050 if (yyn
) goto yydefault
;
5053 yyerrpop
: /* pop the current state because it cannot handle the error token */
5055 if (yyssp
== yyss
) YYABORT
;
5065 short *ssp1
= yyss
- 1;
5066 fprintf (stderr
, "Error: state stack now");
5067 while (ssp1
!= yyssp
)
5068 fprintf (stderr
, " %d", *++ssp1
);
5069 fprintf (stderr
, "\n");
5075 yyn
= yypact
[yystate
];
5080 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
5099 fprintf(stderr
, "Shifting error token, ");
5110 #line 2945 "objc-parse.y"