2 /* A Bison parser, made from objc-parse.y
3 by GNU Bison version 1.25
6 #define YYBISON 1 /* Identify Bison output. */
32 #define ASM_KEYWORD 282
44 #define ARITHCOMPARE 294
49 #define MINUSMINUS 299
50 #define HYPERUNARY 300
53 #define IMPLEMENTATION 303
63 #define OBJECTNAME 313
66 #define OBJC_STRING 316
68 #line 33 "objc-parse.y"
82 #ifdef MULTIBYTE_CHARS
89 /* Since parsers are distinct for each language, put the language string
91 char *language_string
= "GNU Obj-C";
99 /* Like YYERROR but do call yyerror. */
100 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
102 /* Cause the `yydebug' variable to be defined. */
105 #line 72 "objc-parse.y"
106 typedef union {long itype
; tree ttype
; enum tree_code code
;
107 char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
108 #line 199 "objc-parse.y"
110 /* Number of statements (loosely speaking) and compound statements
112 static int stmt_count
;
113 static int compstmt_count
;
115 /* Input file and line number of the end of the body of last simple_if;
116 used by the stmt-rule immediately after simple_if returns. */
117 static char *if_stmt_file
;
118 static int if_stmt_line
;
120 /* List of types and structure classes of the current declaration. */
121 static tree current_declspecs
= NULL_TREE
;
122 static tree prefix_attributes
= NULL_TREE
;
124 /* Stack of saved values of current_declspecs and prefix_attributes. */
125 static tree declspec_stack
;
127 /* 1 if we explained undeclared var errors. */
128 static int undeclared_variable_notice
;
130 /* Objective-C specific information */
132 tree objc_interface_context
;
133 tree objc_implementation_context
;
134 tree objc_method_context
;
135 tree objc_ivar_chain
;
136 tree objc_ivar_context
;
137 enum tree_code objc_inherit_code
;
138 int objc_receiver_context
;
139 int objc_public_flag
;
142 /* Tell yyparse how to print a token's value, if yydebug is set. */
144 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
145 extern void yyprint ();
157 #define YYFLAG -32768
160 #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 306)
162 static const char yytranslate
[] = { 0,
163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
166 2, 2, 80, 2, 2, 2, 52, 43, 2, 59,
167 76, 50, 48, 81, 49, 58, 51, 2, 2, 2,
168 2, 2, 2, 2, 2, 2, 2, 38, 77, 2,
169 36, 2, 37, 2, 2, 2, 2, 2, 2, 2,
170 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
171 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
172 60, 2, 83, 42, 2, 2, 2, 2, 2, 2,
173 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
175 2, 2, 82, 41, 78, 79, 2, 2, 2, 2,
176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
178 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
180 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
181 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
182 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
183 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
184 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
185 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
186 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
187 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
188 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
189 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
190 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
191 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
192 39, 40, 44, 45, 46, 47, 53, 54, 55, 56,
193 57, 61, 62, 63, 64, 65, 66, 67, 68, 69,
194 70, 71, 72, 73, 74, 75
198 static const short yyprhs
[] = { 0,
199 0, 1, 3, 4, 7, 8, 12, 14, 16, 18,
200 24, 27, 31, 36, 41, 44, 47, 50, 53, 55,
201 56, 57, 65, 70, 71, 72, 80, 85, 86, 87,
202 94, 98, 100, 102, 104, 106, 108, 110, 112, 114,
203 116, 118, 120, 122, 123, 125, 127, 131, 133, 136,
204 139, 142, 145, 148, 153, 156, 161, 164, 167, 169,
205 171, 173, 178, 179, 187, 189, 193, 197, 201, 205,
206 209, 213, 217, 221, 225, 229, 233, 237, 238, 243,
207 244, 249, 250, 251, 259, 260, 266, 270, 274, 276,
208 278, 280, 284, 288, 289, 294, 299, 304, 308, 312,
209 315, 318, 320, 322, 324, 326, 328, 330, 333, 335,
210 338, 339, 341, 344, 348, 350, 352, 355, 358, 363,
211 368, 371, 374, 378, 380, 382, 385, 388, 389, 390,
212 395, 400, 404, 408, 411, 414, 417, 420, 424, 425,
213 428, 431, 434, 437, 441, 442, 445, 448, 450, 452,
214 455, 458, 460, 462, 465, 468, 471, 475, 476, 479,
215 481, 483, 485, 488, 491, 493, 498, 503, 505, 507,
216 509, 511, 515, 517, 521, 522, 527, 528, 535, 539,
217 540, 547, 551, 552, 554, 556, 559, 566, 568, 572,
218 573, 575, 580, 587, 592, 594, 596, 598, 600, 602,
219 603, 608, 610, 611, 614, 616, 620, 622, 623, 628,
220 630, 631, 636, 637, 643, 644, 645, 651, 652, 653,
221 659, 661, 663, 667, 671, 676, 680, 684, 688, 690,
222 692, 696, 701, 705, 709, 713, 715, 719, 723, 727,
223 732, 736, 740, 742, 743, 751, 757, 760, 761, 769,
224 775, 778, 779, 788, 789, 797, 800, 801, 803, 804,
225 806, 808, 811, 812, 816, 819, 824, 828, 830, 834,
226 836, 838, 841, 843, 847, 852, 859, 865, 867, 871,
227 873, 875, 879, 882, 885, 886, 888, 890, 893, 894,
228 897, 901, 905, 908, 912, 917, 921, 924, 928, 931,
229 933, 935, 938, 941, 942, 944, 947, 948, 949, 951,
230 953, 956, 960, 962, 965, 967, 970, 977, 983, 989,
231 992, 995, 1000, 1001, 1006, 1007, 1008, 1012, 1017, 1021,
232 1023, 1025, 1027, 1029, 1032, 1033, 1038, 1040, 1044, 1045,
233 1046, 1054, 1060, 1063, 1064, 1065, 1066, 1079, 1080, 1087,
234 1090, 1093, 1096, 1100, 1107, 1116, 1127, 1140, 1144, 1149,
235 1151, 1153, 1154, 1161, 1165, 1171, 1174, 1177, 1178, 1180,
236 1181, 1183, 1184, 1186, 1188, 1192, 1197, 1199, 1203, 1204,
237 1207, 1210, 1211, 1216, 1219, 1220, 1222, 1224, 1228, 1230,
238 1234, 1239, 1244, 1249, 1254, 1259, 1260, 1263, 1265, 1268,
239 1270, 1274, 1276, 1280, 1282, 1284, 1286, 1288, 1290, 1292,
240 1294, 1296, 1300, 1304, 1309, 1310, 1311, 1322, 1323, 1330,
241 1331, 1332, 1345, 1346, 1355, 1356, 1363, 1366, 1367, 1376,
242 1381, 1382, 1392, 1398, 1399, 1406, 1407, 1409, 1413, 1417,
243 1419, 1421, 1423, 1425, 1426, 1430, 1433, 1437, 1441, 1443,
244 1444, 1446, 1450, 1452, 1456, 1459, 1460, 1461, 1462, 1470,
245 1471, 1472, 1473, 1481, 1482, 1483, 1486, 1488, 1490, 1493,
246 1494, 1498, 1500, 1502, 1503, 1504, 1510, 1511, 1512, 1518,
247 1523, 1525, 1531, 1534, 1535, 1538, 1539, 1541, 1543, 1545,
248 1548, 1551, 1556, 1559, 1562, 1564, 1568, 1571, 1574, 1577,
249 1578, 1581, 1582, 1586, 1588, 1590, 1593, 1595, 1597, 1599,
250 1601, 1603, 1605, 1607, 1609, 1611, 1613, 1615, 1617, 1619,
251 1621, 1623, 1625, 1627, 1629, 1631, 1633, 1635, 1637, 1639,
252 1641, 1643, 1650, 1654, 1660, 1663, 1665, 1667, 1669, 1672,
253 1674, 1678, 1681, 1683, 1685, 1686, 1687, 1694, 1696, 1698,
254 1700, 1703, 1706, 1708, 1713, 1718
257 static const short yyrhs
[] = { -1,
258 85, 0, 0, 86, 88, 0, 0, 85, 87, 88,
259 0, 90, 0, 89, 0, 237, 0, 27, 59, 99,
260 76, 77, 0, 236, 88, 0, 123, 137, 77, 0,
261 130, 123, 137, 77, 0, 126, 123, 136, 77, 0,
262 130, 77, 0, 126, 77, 0, 1, 77, 0, 1,
263 78, 0, 77, 0, 0, 0, 126, 123, 163, 91,
264 117, 92, 194, 0, 126, 123, 163, 1, 0, 0,
265 0, 130, 123, 166, 93, 117, 94, 194, 0, 130,
266 123, 166, 1, 0, 0, 0, 123, 166, 95, 117,
267 96, 194, 0, 123, 166, 1, 0, 3, 0, 4,
268 0, 72, 0, 67, 0, 43, 0, 49, 0, 48,
269 0, 54, 0, 55, 0, 79, 0, 80, 0, 101,
270 0, 0, 101, 0, 107, 0, 101, 81, 107, 0,
271 113, 0, 50, 105, 0, 236, 105, 0, 98, 105,
272 0, 40, 97, 0, 103, 102, 0, 103, 59, 181,
273 76, 0, 104, 102, 0, 104, 59, 181, 76, 0,
274 33, 105, 0, 34, 105, 0, 11, 0, 29, 0,
275 102, 0, 59, 181, 76, 105, 0, 0, 59, 181,
276 76, 82, 106, 151, 78, 0, 105, 0, 107, 48,
277 107, 0, 107, 49, 107, 0, 107, 50, 107, 0,
278 107, 51, 107, 0, 107, 52, 107, 0, 107, 46,
279 107, 0, 107, 47, 107, 0, 107, 45, 107, 0,
280 107, 44, 107, 0, 107, 43, 107, 0, 107, 41,
281 107, 0, 107, 42, 107, 0, 0, 107, 40, 108,
282 107, 0, 0, 107, 39, 109, 107, 0, 0, 0,
283 107, 37, 110, 99, 38, 111, 107, 0, 0, 107,
284 37, 112, 38, 107, 0, 107, 36, 107, 0, 107,
285 35, 107, 0, 3, 0, 8, 0, 115, 0, 59,
286 99, 76, 0, 59, 1, 76, 0, 0, 59, 114,
287 196, 76, 0, 113, 59, 100, 76, 0, 113, 60,
288 99, 83, 0, 113, 58, 97, 0, 113, 57, 97,
289 0, 113, 54, 0, 113, 55, 0, 297, 0, 303,
290 0, 304, 0, 305, 0, 116, 0, 9, 0, 115,
291 9, 0, 75, 0, 116, 75, 0, 0, 119, 0,
292 119, 10, 0, 201, 202, 120, 0, 118, 0, 189,
293 0, 119, 118, 0, 118, 189, 0, 128, 123, 136,
294 77, 0, 131, 123, 137, 77, 0, 128, 77, 0,
295 131, 77, 0, 201, 202, 125, 0, 121, 0, 189,
296 0, 122, 121, 0, 121, 189, 0, 0, 0, 126,
297 123, 136, 77, 0, 130, 123, 137, 77, 0, 126,
298 123, 157, 0, 130, 123, 160, 0, 126, 77, 0,
299 130, 77, 0, 236, 125, 0, 134, 127, 0, 130,
300 134, 127, 0, 0, 127, 135, 0, 127, 5, 0,
301 127, 144, 0, 134, 129, 0, 131, 134, 129, 0,
302 0, 129, 135, 0, 129, 5, 0, 131, 0, 144,
303 0, 130, 131, 0, 130, 144, 0, 7, 0, 5,
304 0, 131, 7, 0, 131, 5, 0, 134, 133, 0,
305 183, 134, 133, 0, 0, 133, 135, 0, 6, 0,
306 167, 0, 4, 0, 67, 253, 0, 72, 253, 0,
307 254, 0, 28, 59, 99, 76, 0, 28, 59, 181,
308 76, 0, 6, 0, 7, 0, 167, 0, 139, 0,
309 136, 81, 139, 0, 141, 0, 137, 81, 139, 0,
310 0, 27, 59, 115, 76, 0, 0, 163, 138, 143,
311 36, 140, 149, 0, 163, 138, 143, 0, 0, 166,
312 138, 143, 36, 142, 149, 0, 166, 138, 143, 0,
313 0, 144, 0, 145, 0, 144, 145, 0, 30, 59,
314 59, 146, 76, 76, 0, 147, 0, 146, 81, 147,
315 0, 0, 148, 0, 148, 59, 3, 76, 0, 148,
316 59, 3, 81, 101, 76, 0, 148, 59, 100, 76,
317 0, 97, 0, 5, 0, 6, 0, 7, 0, 107,
318 0, 0, 82, 150, 151, 78, 0, 1, 0, 0,
319 152, 172, 0, 153, 0, 152, 81, 153, 0, 107,
320 0, 0, 82, 154, 151, 78, 0, 1, 0, 0,
321 97, 38, 155, 153, 0, 0, 58, 97, 36, 156,
322 153, 0, 0, 0, 163, 158, 117, 159, 196, 0,
323 0, 0, 166, 161, 117, 162, 196, 0, 164, 0,
324 166, 0, 59, 164, 76, 0, 164, 59, 231, 0,
325 164, 60, 99, 83, 0, 164, 60, 83, 0, 50,
326 184, 164, 0, 144, 124, 164, 0, 4, 0, 72,
327 0, 165, 59, 231, 0, 165, 60, 99, 83, 0,
328 165, 60, 83, 0, 50, 184, 165, 0, 144, 124,
329 165, 0, 4, 0, 166, 59, 231, 0, 59, 166,
330 76, 0, 50, 184, 166, 0, 166, 60, 99, 83,
331 0, 166, 60, 83, 0, 144, 124, 166, 0, 3,
332 0, 0, 13, 97, 82, 168, 174, 78, 143, 0,
333 13, 82, 174, 78, 143, 0, 13, 97, 0, 0,
334 14, 97, 82, 169, 174, 78, 143, 0, 14, 82,
335 174, 78, 143, 0, 14, 97, 0, 0, 12, 97,
336 82, 170, 179, 173, 78, 143, 0, 0, 12, 82,
337 171, 179, 173, 78, 143, 0, 12, 97, 0, 0,
338 81, 0, 0, 81, 0, 175, 0, 175, 176, 0,
339 0, 175, 176, 77, 0, 175, 77, 0, 65, 59,
340 67, 76, 0, 132, 123, 177, 0, 132, 0, 183,
341 123, 177, 0, 183, 0, 1, 0, 236, 176, 0,
342 178, 0, 177, 81, 178, 0, 201, 202, 163, 143,
343 0, 201, 202, 163, 38, 107, 143, 0, 201, 202,
344 38, 107, 143, 0, 180, 0, 179, 81, 180, 0,
345 1, 0, 97, 0, 97, 36, 107, 0, 132, 182,
346 0, 183, 182, 0, 0, 185, 0, 7, 0, 183,
347 7, 0, 0, 184, 7, 0, 59, 185, 76, 0,
348 50, 184, 185, 0, 50, 184, 0, 185, 59, 224,
349 0, 185, 60, 99, 83, 0, 185, 60, 83, 0,
350 59, 224, 0, 60, 99, 83, 0, 60, 83, 0,
351 187, 0, 204, 0, 187, 204, 0, 187, 189, 0,
352 0, 186, 0, 1, 77, 0, 0, 0, 192, 0,
353 193, 0, 192, 193, 0, 32, 235, 77, 0, 196,
354 0, 1, 196, 0, 82, 0, 195, 78, 0, 195,
355 190, 191, 122, 188, 78, 0, 195, 190, 191, 1,
356 78, 0, 195, 190, 191, 186, 78, 0, 198, 203,
357 0, 198, 1, 0, 15, 59, 99, 76, 0, 0,
358 18, 200, 203, 17, 0, 0, 0, 201, 202, 206,
359 0, 201, 202, 217, 203, 0, 201, 202, 205, 0,
360 206, 0, 217, 0, 196, 0, 214, 0, 99, 77,
361 0, 0, 197, 16, 207, 203, 0, 197, 0, 197,
362 16, 1, 0, 0, 0, 17, 208, 59, 99, 76,
363 209, 203, 0, 199, 59, 99, 76, 77, 0, 199,
364 1, 0, 0, 0, 0, 19, 59, 219, 77, 210,
365 219, 77, 211, 219, 76, 212, 203, 0, 0, 20,
366 59, 99, 76, 213, 203, 0, 23, 77, 0, 24,
367 77, 0, 25, 77, 0, 25, 99, 77, 0, 27,
368 218, 59, 99, 76, 77, 0, 27, 218, 59, 99,
369 38, 220, 76, 77, 0, 27, 218, 59, 99, 38,
370 220, 38, 220, 76, 77, 0, 27, 218, 59, 99,
371 38, 220, 38, 220, 38, 223, 76, 77, 0, 26,
372 97, 77, 0, 26, 50, 99, 77, 0, 77, 0,
373 215, 0, 0, 19, 59, 113, 76, 216, 203, 0,
374 21, 107, 38, 0, 21, 107, 10, 107, 38, 0,
375 22, 38, 0, 97, 38, 0, 0, 7, 0, 0,
376 99, 0, 0, 221, 0, 222, 0, 221, 81, 222,
377 0, 9, 59, 99, 76, 0, 115, 0, 223, 81,
378 115, 0, 0, 225, 226, 0, 228, 76, 0, 0,
379 229, 77, 227, 226, 0, 1, 76, 0, 0, 10,
380 0, 229, 0, 229, 81, 10, 0, 230, 0, 229,
381 81, 230, 0, 126, 123, 165, 143, 0, 126, 123,
382 166, 143, 0, 126, 123, 182, 143, 0, 130, 123,
383 166, 143, 0, 130, 123, 182, 143, 0, 0, 232,
384 233, 0, 226, 0, 234, 76, 0, 3, 0, 234,
385 81, 3, 0, 97, 0, 235, 81, 97, 0, 31,
386 0, 241, 0, 239, 0, 240, 0, 251, 0, 261,
387 0, 63, 0, 97, 0, 238, 81, 97, 0, 73,
388 238, 77, 0, 74, 97, 97, 77, 0, 0, 0,
389 61, 97, 253, 82, 242, 255, 78, 243, 268, 63,
390 0, 0, 61, 97, 253, 244, 268, 63, 0, 0,
391 0, 61, 97, 38, 97, 253, 82, 245, 255, 78,
392 246, 268, 63, 0, 0, 61, 97, 38, 97, 253,
393 247, 268, 63, 0, 0, 62, 97, 82, 248, 255,
394 78, 0, 62, 97, 0, 0, 62, 97, 38, 97,
395 82, 249, 255, 78, 0, 62, 97, 38, 97, 0,
396 0, 61, 97, 59, 97, 76, 253, 250, 268, 63,
397 0, 62, 97, 59, 97, 76, 0, 0, 71, 97,
398 253, 252, 268, 63, 0, 0, 254, 0, 45, 238,
399 45, 0, 255, 256, 257, 0, 257, 0, 69, 0,
400 70, 0, 68, 0, 0, 257, 258, 77, 0, 257,
401 77, 0, 132, 123, 259, 0, 183, 123, 259, 0,
402 1, 0, 0, 260, 0, 259, 81, 260, 0, 163,
403 0, 163, 38, 107, 0, 38, 107, 0, 0, 0,
404 0, 48, 262, 278, 263, 279, 264, 194, 0, 0,
405 0, 0, 49, 265, 278, 266, 279, 267, 194, 0,
406 0, 0, 269, 270, 0, 273, 0, 89, 0, 270,
407 273, 0, 0, 270, 271, 89, 0, 77, 0, 1,
408 0, 0, 0, 48, 274, 278, 275, 272, 0, 0,
409 0, 49, 276, 278, 277, 272, 0, 59, 181, 76,
410 287, 0, 287, 0, 59, 181, 76, 288, 285, 0,
411 288, 285, 0, 0, 77, 280, 0, 0, 281, 0,
412 282, 0, 189, 0, 281, 282, 0, 282, 189, 0,
413 126, 123, 283, 77, 0, 126, 77, 0, 130, 77,
414 0, 284, 0, 283, 81, 284, 0, 165, 143, 0,
415 166, 143, 0, 182, 143, 0, 0, 81, 10, 0,
416 0, 81, 286, 228, 0, 289, 0, 291, 0, 288,
417 291, 0, 3, 0, 4, 0, 72, 0, 290, 0,
418 12, 0, 13, 0, 14, 0, 15, 0, 16, 0,
419 17, 0, 18, 0, 19, 0, 20, 0, 21, 0,
420 22, 0, 23, 0, 24, 0, 25, 0, 26, 0,
421 27, 0, 11, 0, 28, 0, 29, 0, 6, 0,
422 7, 0, 289, 38, 59, 181, 76, 97, 0, 289,
423 38, 97, 0, 38, 59, 181, 76, 97, 0, 38,
424 97, 0, 289, 0, 293, 0, 295, 0, 293, 295,
425 0, 101, 0, 289, 38, 294, 0, 38, 294, 0,
426 99, 0, 67, 0, 0, 0, 60, 298, 296, 299,
427 292, 83, 0, 289, 0, 301, 0, 302, 0, 301,
428 302, 0, 289, 38, 0, 38, 0, 64, 59, 300,
429 76, 0, 71, 59, 97, 76, 0, 66, 59, 181,
436 static const short yyrline
[] = { 0,
437 239, 244, 258, 260, 260, 261, 263, 265, 266, 267,
438 275, 279, 290, 295, 300, 302, 304, 305, 306, 311,
439 318, 320, 325, 330, 336, 338, 343, 348, 354, 356,
440 361, 368, 370, 371, 372, 375, 377, 379, 381, 383,
441 385, 387, 391, 395, 398, 401, 404, 408, 410, 413,
442 416, 420, 448, 454, 457, 460, 463, 465, 469, 473,
443 477, 479, 482, 486, 513, 515, 517, 519, 521, 523,
444 525, 527, 529, 531, 533, 535, 537, 539, 543, 545,
445 549, 551, 554, 558, 560, 567, 570, 573, 579, 739,
446 740, 742, 748, 750, 764, 787, 789, 791, 803, 817,
447 819, 821, 823, 825, 827, 829, 834, 836, 842, 844,
448 848, 850, 851, 861, 866, 868, 869, 870, 877, 883,
449 888, 891, 899, 904, 906, 907, 908, 915, 926, 930,
450 936, 941, 946, 951, 953, 955, 964, 967, 971, 973,
451 975, 980, 984, 987, 991, 994, 996, 1008, 1011, 1013,
452 1015, 1019, 1023, 1025, 1028, 1041, 1044, 1048, 1050, 1058,
453 1059, 1060, 1064, 1066, 1071, 1073, 1075, 1081, 1082, 1083,
454 1086, 1088, 1091, 1093, 1096, 1099, 1105, 1112, 1114, 1121,
455 1128, 1131, 1138, 1141, 1145, 1148, 1152, 1157, 1160, 1164,
456 1167, 1169, 1171, 1173, 1180, 1182, 1183, 1184, 1189, 1191,
457 1196, 1204, 1209, 1213, 1216, 1218, 1223, 1226, 1228, 1230,
458 1234, 1237, 1237, 1240, 1242, 1253, 1261, 1265, 1276, 1284,
459 1291, 1293, 1298, 1301, 1306, 1308, 1310, 1317, 1319, 1320,
460 1328, 1334, 1336, 1338, 1345, 1347, 1353, 1359, 1361, 1363,
461 1365, 1372, 1374, 1377, 1382, 1384, 1388, 1390, 1392, 1394,
462 1398, 1400, 1403, 1406, 1409, 1412, 1416, 1418, 1421, 1423,
463 1427, 1430, 1435, 1437, 1439, 1443, 1467, 1474, 1479, 1485,
464 1490, 1492, 1497, 1499, 1503, 1507, 1511, 1521, 1523, 1528,
465 1533, 1536, 1540, 1543, 1547, 1550, 1553, 1556, 1560, 1563,
466 1567, 1571, 1573, 1575, 1577, 1579, 1581, 1583, 1585, 1595,
467 1603, 1605, 1607, 1611, 1613, 1616, 1619, 1632, 1634, 1639,
468 1641, 1644, 1658, 1661, 1664, 1666, 1668, 1676, 1684, 1695,
469 1700, 1703, 1717, 1726, 1730, 1734, 1738, 1744, 1748, 1753,
470 1756, 1761, 1764, 1765, 1782, 1787, 1790, 1802, 1804, 1814,
471 1824, 1825, 1833, 1836, 1848, 1852, 1869, 1879, 1888, 1893,
472 1898, 1903, 1907, 1911, 1922, 1929, 1936, 1943, 1954, 1960,
473 1963, 1968, 1991, 2025, 2050, 2081, 2096, 2107, 2111, 2115,
474 2118, 2123, 2125, 2128, 2130, 2134, 2139, 2142, 2148, 2153,
475 2158, 2160, 2169, 2170, 2176, 2178, 2188, 2190, 2194, 2197,
476 2203, 2213, 2222, 2231, 2241, 2255, 2260, 2265, 2267, 2276,
477 2279, 2284, 2287, 2291, 2299, 2301, 2302, 2303, 2304, 2305,
478 2319, 2322, 2326, 2332, 2338, 2345, 2350, 2356, 2363, 2369,
479 2375, 2380, 2386, 2393, 2399, 2405, 2411, 2419, 2425, 2431,
480 2439, 2446, 2452, 2461, 2468, 2476, 2481, 2484, 2494, 2496,
481 2499, 2501, 2502, 2505, 2510, 2511, 2528, 2535, 2541, 2545,
482 2548, 2549, 2552, 2560, 2566, 2575, 2585, 2592, 2596, 2601,
483 2610, 2617, 2621, 2631, 2633, 2634, 2636, 2638, 2639, 2640,
484 2641, 2643, 2645, 2648, 2654, 2659, 2659, 2664, 2668, 2670,
485 2676, 2681, 2686, 2695, 2697, 2703, 2705, 2708, 2710, 2711,
486 2712, 2715, 2721, 2723, 2727, 2730, 2737, 2743, 2748, 2755,
487 2760, 2765, 2770, 2777, 2781, 2784, 2790, 2792, 2793, 2794,
488 2797, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807,
489 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817,
490 2817, 2820, 2826, 2831, 2836, 2842, 2844, 2847, 2849, 2856,
491 2868, 2873, 2879, 2881, 2887, 2891, 2892, 2898, 2900, 2903,
492 2905, 2911, 2916, 2922, 2929, 2938
497 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
499 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
500 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
501 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
502 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
503 "EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
504 "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
505 "'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
506 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
507 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
508 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
509 "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
510 "unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
511 "cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
512 "string","objc_string","old_style_parm_decls","lineno_datadecl","datadecls",
513 "datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
514 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
515 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
516 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
517 "initdcl","@16","notype_initdcl","@17","maybe_attribute","attributes","attribute",
518 "attribute_list","attrib","any_word","init","@18","initlist_maybe_comma","initlist1",
519 "initelt","@19","@20","@21","nested_function","@22","@23","notype_nested_function",
520 "@24","@25","declarator","after_type_declarator","parm_declarator","notype_declarator",
521 "structsp","@26","@27","@28","@29","maybecomma","maybecomma_warn","component_decl_list",
522 "component_decl_list2","component_decl","components","component_declarator",
523 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
524 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
525 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
526 "if_prefix","do_stmt_start","@30","save_filename","save_lineno","lineno_labeled_stmt",
527 "lineno_stmt_or_label","stmt_or_label","stmt","@31","@32","@33","@34","@35",
528 "@36","@37","all_iter_stmt","all_iter_stmt_simple","@38","label","maybe_type_qual",
529 "xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
530 "@39","parmlist_1","@40","parmlist_2","parms","parm","parmlist_or_identifiers",
531 "@41","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension",
532 "objcdef","identifier_list","classdecl","aliasdecl","classdef","@42","@43","@44",
533 "@45","@46","@47","@48","@49","@50","protocoldef","@51","protocolrefs","non_empty_protocolrefs",
534 "ivar_decl_list","visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator",
535 "methoddef","@52","@53","@54","@55","@56","@57","methodprotolist","@58","methodprotolist2",
536 "@59","semi_or_error","methodproto","@60","@61","@62","@63","methoddecl","optarglist",
537 "myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@64","unaryselector",
538 "keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist",
539 "keywordexpr","keywordarg","receiver","objcmessageexpr","@65","@66","selectorarg",
540 "keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr","objcencodeexpr", NULL
544 static const short yyr1
[] = { 0,
545 84, 84, 86, 85, 87, 85, 88, 88, 88, 88,
546 88, 89, 89, 89, 89, 89, 89, 89, 89, 91,
547 92, 90, 90, 93, 94, 90, 90, 95, 96, 90,
548 90, 97, 97, 97, 97, 98, 98, 98, 98, 98,
549 98, 98, 99, 100, 100, 101, 101, 102, 102, 102,
550 102, 102, 102, 102, 102, 102, 102, 102, 103, 104,
551 105, 105, 106, 105, 107, 107, 107, 107, 107, 107,
552 107, 107, 107, 107, 107, 107, 107, 108, 107, 109,
553 107, 110, 111, 107, 112, 107, 107, 107, 113, 113,
554 113, 113, 113, 114, 113, 113, 113, 113, 113, 113,
555 113, 113, 113, 113, 113, 113, 115, 115, 116, 116,
556 117, 117, 117, 118, 119, 119, 119, 119, 120, 120,
557 120, 120, 121, 122, 122, 122, 122, 123, 124, 125,
558 125, 125, 125, 125, 125, 125, 126, 126, 127, 127,
559 127, 127, 128, 128, 129, 129, 129, 130, 130, 130,
560 130, 131, 131, 131, 131, 132, 132, 133, 133, 134,
561 134, 134, 134, 134, 134, 134, 134, 135, 135, 135,
562 136, 136, 137, 137, 138, 138, 140, 139, 139, 142,
563 141, 141, 143, 143, 144, 144, 145, 146, 146, 147,
564 147, 147, 147, 147, 148, 148, 148, 148, 149, 150,
565 149, 149, 151, 151, 152, 152, 153, 154, 153, 153,
566 155, 153, 156, 153, 158, 159, 157, 161, 162, 160,
567 163, 163, 164, 164, 164, 164, 164, 164, 164, 164,
568 165, 165, 165, 165, 165, 165, 166, 166, 166, 166,
569 166, 166, 166, 168, 167, 167, 167, 169, 167, 167,
570 167, 170, 167, 171, 167, 167, 172, 172, 173, 173,
571 174, 174, 175, 175, 175, 175, 176, 176, 176, 176,
572 176, 176, 177, 177, 178, 178, 178, 179, 179, 179,
573 180, 180, 181, 181, 182, 182, 183, 183, 184, 184,
574 185, 185, 185, 185, 185, 185, 185, 185, 185, 186,
575 187, 187, 187, 188, 188, 189, 190, 191, 191, 192,
576 192, 193, 194, 194, 195, 196, 196, 196, 196, 197,
577 197, 198, 200, 199, 201, 202, 203, 203, 204, 205,
578 205, 206, 206, 206, 207, 206, 206, 206, 208, 209,
579 206, 206, 206, 210, 211, 212, 206, 213, 206, 206,
580 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
581 214, 216, 215, 217, 217, 217, 217, 218, 218, 219,
582 219, 220, 220, 221, 221, 222, 223, 223, 225, 224,
583 226, 227, 226, 226, 228, 228, 228, 228, 229, 229,
584 230, 230, 230, 230, 230, 232, 231, 233, 233, 234,
585 234, 235, 235, 236, 237, 237, 237, 237, 237, 237,
586 238, 238, 239, 240, 242, 243, 241, 244, 241, 245,
587 246, 241, 247, 241, 248, 241, 241, 249, 241, 241,
588 250, 241, 241, 252, 251, 253, 253, 254, 255, 255,
589 256, 256, 256, 257, 257, 257, 258, 258, 258, 259,
590 259, 259, 260, 260, 260, 262, 263, 264, 261, 265,
591 266, 267, 261, 268, 269, 268, 270, 270, 270, 271,
592 270, 272, 272, 274, 275, 273, 276, 277, 273, 278,
593 278, 278, 278, 279, 279, 280, 280, 281, 281, 281,
594 281, 282, 282, 282, 283, 283, 284, 284, 284, 285,
595 285, 286, 285, 287, 288, 288, 289, 289, 289, 289,
596 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
597 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
598 290, 291, 291, 291, 291, 292, 292, 293, 293, 294,
599 295, 295, 296, 296, 298, 299, 297, 300, 300, 301,
600 301, 302, 302, 303, 304, 305
603 static const short yyr2
[] = { 0,
604 0, 1, 0, 2, 0, 3, 1, 1, 1, 5,
605 2, 3, 4, 4, 2, 2, 2, 2, 1, 0,
606 0, 7, 4, 0, 0, 7, 4, 0, 0, 6,
607 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
608 1, 1, 1, 0, 1, 1, 3, 1, 2, 2,
609 2, 2, 2, 4, 2, 4, 2, 2, 1, 1,
610 1, 4, 0, 7, 1, 3, 3, 3, 3, 3,
611 3, 3, 3, 3, 3, 3, 3, 0, 4, 0,
612 4, 0, 0, 7, 0, 5, 3, 3, 1, 1,
613 1, 3, 3, 0, 4, 4, 4, 3, 3, 2,
614 2, 1, 1, 1, 1, 1, 1, 2, 1, 2,
615 0, 1, 2, 3, 1, 1, 2, 2, 4, 4,
616 2, 2, 3, 1, 1, 2, 2, 0, 0, 4,
617 4, 3, 3, 2, 2, 2, 2, 3, 0, 2,
618 2, 2, 2, 3, 0, 2, 2, 1, 1, 2,
619 2, 1, 1, 2, 2, 2, 3, 0, 2, 1,
620 1, 1, 2, 2, 1, 4, 4, 1, 1, 1,
621 1, 3, 1, 3, 0, 4, 0, 6, 3, 0,
622 6, 3, 0, 1, 1, 2, 6, 1, 3, 0,
623 1, 4, 6, 4, 1, 1, 1, 1, 1, 0,
624 4, 1, 0, 2, 1, 3, 1, 0, 4, 1,
625 0, 4, 0, 5, 0, 0, 5, 0, 0, 5,
626 1, 1, 3, 3, 4, 3, 3, 3, 1, 1,
627 3, 4, 3, 3, 3, 1, 3, 3, 3, 4,
628 3, 3, 1, 0, 7, 5, 2, 0, 7, 5,
629 2, 0, 8, 0, 7, 2, 0, 1, 0, 1,
630 1, 2, 0, 3, 2, 4, 3, 1, 3, 1,
631 1, 2, 1, 3, 4, 6, 5, 1, 3, 1,
632 1, 3, 2, 2, 0, 1, 1, 2, 0, 2,
633 3, 3, 2, 3, 4, 3, 2, 3, 2, 1,
634 1, 2, 2, 0, 1, 2, 0, 0, 1, 1,
635 2, 3, 1, 2, 1, 2, 6, 5, 5, 2,
636 2, 4, 0, 4, 0, 0, 3, 4, 3, 1,
637 1, 1, 1, 2, 0, 4, 1, 3, 0, 0,
638 7, 5, 2, 0, 0, 0, 12, 0, 6, 2,
639 2, 2, 3, 6, 8, 10, 12, 3, 4, 1,
640 1, 0, 6, 3, 5, 2, 2, 0, 1, 0,
641 1, 0, 1, 1, 3, 4, 1, 3, 0, 2,
642 2, 0, 4, 2, 0, 1, 1, 3, 1, 3,
643 4, 4, 4, 4, 4, 0, 2, 1, 2, 1,
644 3, 1, 3, 1, 1, 1, 1, 1, 1, 1,
645 1, 3, 3, 4, 0, 0, 10, 0, 6, 0,
646 0, 12, 0, 8, 0, 6, 2, 0, 8, 4,
647 0, 9, 5, 0, 6, 0, 1, 3, 3, 1,
648 1, 1, 1, 0, 3, 2, 3, 3, 1, 0,
649 1, 3, 1, 3, 2, 0, 0, 0, 7, 0,
650 0, 0, 7, 0, 0, 2, 1, 1, 2, 0,
651 3, 1, 1, 0, 0, 5, 0, 0, 5, 4,
652 1, 5, 2, 0, 2, 0, 1, 1, 1, 2,
653 2, 4, 2, 2, 1, 3, 2, 2, 2, 0,
654 2, 0, 3, 1, 1, 2, 1, 1, 1, 1,
655 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
656 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
657 1, 6, 3, 5, 2, 1, 1, 1, 2, 1,
658 3, 2, 1, 1, 0, 0, 6, 1, 1, 1,
662 static const short yydefact
[] = { 3,
663 5, 0, 0, 0, 162, 153, 160, 152, 0, 0,
664 0, 0, 0, 0, 404, 0, 456, 460, 0, 0,
665 410, 436, 0, 436, 0, 0, 19, 4, 8, 7,
666 0, 128, 128, 148, 139, 149, 185, 161, 0, 9,
667 406, 407, 405, 408, 165, 409, 6, 17, 18, 32,
668 33, 35, 34, 254, 256, 263, 247, 263, 251, 0,
669 0, 0, 411, 0, 0, 0, 436, 427, 163, 437,
670 436, 164, 0, 0, 243, 289, 0, 0, 173, 129,
671 0, 16, 0, 15, 0, 150, 139, 151, 155, 154,
672 137, 186, 11, 0, 252, 0, 0, 0, 244, 0,
673 248, 89, 90, 107, 59, 60, 0, 0, 0, 36,
674 38, 37, 0, 39, 40, 0, 545, 0, 0, 0,
675 109, 41, 42, 0, 0, 43, 61, 0, 0, 65,
676 46, 48, 91, 106, 0, 102, 103, 104, 105, 287,
677 0, 285, 158, 0, 285, 190, 438, 0, 507, 508,
678 530, 531, 527, 511, 512, 513, 514, 515, 516, 517,
679 518, 519, 520, 521, 522, 523, 524, 525, 526, 528,
680 529, 0, 0, 509, 457, 481, 500, 504, 510, 505,
681 461, 0, 0, 418, 0, 0, 425, 434, 413, 0,
682 0, 0, 12, 0, 0, 31, 0, 396, 0, 0,
683 183, 229, 289, 0, 230, 0, 171, 129, 0, 221,
684 222, 0, 0, 138, 141, 168, 169, 140, 142, 170,
685 280, 281, 259, 278, 0, 0, 183, 271, 265, 128,
686 262, 128, 0, 263, 183, 263, 57, 58, 52, 49,
687 0, 0, 0, 0, 0, 0, 0, 0, 51, 0,
688 0, 0, 53, 0, 55, 0, 0, 82, 80, 78,
689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
690 0, 0, 100, 101, 0, 0, 44, 0, 108, 110,
691 50, 166, 289, 379, 0, 283, 286, 156, 167, 288,
692 158, 284, 196, 197, 198, 195, 0, 188, 191, 412,
693 0, 535, 0, 484, 502, 483, 0, 506, 0, 484,
694 436, 0, 415, 465, 430, 0, 444, 465, 414, 290,
695 239, 238, 174, 175, 242, 0, 237, 0, 241, 0,
696 0, 29, 0, 325, 116, 326, 182, 184, 0, 0,
697 14, 0, 0, 23, 0, 183, 396, 0, 13, 27,
698 0, 0, 260, 0, 259, 0, 246, 325, 264, 325,
699 272, 0, 250, 0, 93, 92, 315, 307, 0, 0,
700 544, 543, 546, 553, 548, 0, 549, 550, 0, 0,
701 10, 47, 0, 0, 88, 87, 0, 0, 0, 0,
702 76, 77, 75, 74, 73, 71, 72, 66, 67, 68,
703 69, 70, 99, 98, 0, 45, 0, 293, 0, 297,
704 0, 299, 0, 379, 0, 159, 157, 0, 190, 44,
705 0, 0, 0, 458, 501, 385, 0, 533, 462, 423,
706 436, 444, 0, 0, 428, 433, 0, 0, 0, 0,
707 0, 400, 386, 128, 128, 398, 0, 387, 389, 397,
708 0, 240, 306, 0, 118, 113, 117, 0, 180, 227,
709 223, 172, 228, 21, 179, 224, 226, 0, 25, 282,
710 279, 183, 0, 266, 267, 273, 326, 269, 183, 183,
711 316, 308, 95, 63, 62, 0, 552, 554, 0, 551,
712 556, 555, 54, 56, 0, 0, 81, 79, 96, 97,
713 292, 291, 380, 298, 294, 296, 0, 187, 189, 89,
714 0, 0, 480, 500, 128, 0, 489, 485, 487, 0,
715 0, 503, 387, 0, 0, 420, 465, 431, 0, 419,
716 474, 477, 468, 0, 128, 128, 470, 467, 444, 443,
717 441, 442, 426, 444, 449, 446, 128, 128, 0, 435,
718 176, 384, 285, 285, 381, 382, 0, 399, 0, 0,
719 30, 313, 114, 128, 128, 145, 0, 0, 177, 225,
720 0, 255, 183, 325, 0, 245, 249, 0, 0, 309,
721 310, 0, 0, 536, 0, 537, 538, 83, 86, 295,
722 192, 0, 194, 534, 482, 493, 285, 494, 490, 491,
723 459, 0, 463, 444, 0, 465, 416, 0, 0, 175,
724 0, 0, 0, 469, 0, 0, 450, 450, 445, 236,
725 289, 379, 129, 183, 183, 183, 289, 183, 183, 0,
726 388, 390, 401, 314, 121, 0, 122, 0, 145, 143,
727 202, 200, 199, 181, 22, 0, 26, 253, 274, 0,
728 183, 402, 0, 0, 0, 325, 0, 0, 125, 326,
729 301, 311, 210, 89, 0, 208, 0, 207, 0, 257,
730 205, 540, 542, 0, 547, 0, 539, 0, 0, 183,
731 183, 183, 0, 495, 532, 0, 424, 0, 465, 475,
732 478, 471, 429, 0, 453, 447, 451, 448, 293, 0,
733 396, 0, 391, 392, 393, 293, 394, 395, 383, 0,
734 0, 144, 147, 146, 0, 178, 183, 0, 275, 312,
735 0, 318, 127, 126, 305, 0, 319, 303, 326, 302,
736 0, 0, 0, 211, 64, 0, 204, 541, 84, 193,
737 497, 498, 499, 492, 285, 421, 432, 0, 0, 0,
738 455, 0, 0, 234, 289, 235, 231, 233, 0, 119,
739 120, 0, 277, 183, 403, 317, 0, 162, 0, 339,
740 323, 0, 0, 0, 0, 0, 0, 0, 0, 368,
741 436, 436, 360, 0, 0, 123, 128, 128, 332, 337,
742 0, 0, 329, 330, 333, 361, 331, 0, 213, 0,
743 0, 206, 496, 465, 417, 473, 472, 476, 479, 454,
744 452, 0, 232, 201, 276, 0, 0, 325, 370, 0,
745 0, 366, 350, 351, 352, 0, 0, 0, 369, 0,
746 367, 334, 134, 0, 135, 0, 0, 321, 326, 320,
747 343, 0, 136, 0, 209, 212, 0, 0, 0, 0,
748 371, 48, 0, 0, 0, 364, 353, 0, 358, 0,
749 0, 132, 215, 0, 133, 218, 338, 325, 0, 0,
750 214, 422, 322, 0, 324, 362, 344, 348, 0, 359,
751 0, 130, 0, 131, 0, 336, 327, 325, 0, 340,
752 325, 370, 325, 365, 372, 0, 216, 219, 328, 342,
753 325, 363, 0, 349, 0, 0, 373, 374, 354, 0,
754 0, 341, 345, 0, 372, 0, 0, 217, 220, 370,
755 0, 0, 355, 375, 0, 376, 0, 0, 346, 377,
756 0, 356, 325, 0, 0, 347, 357, 378, 0, 0,
760 static const short yydefgoto
[] = { 939,
761 1, 2, 3, 28, 29, 30, 345, 568, 351, 571,
762 200, 454, 667, 124, 242, 405, 126, 127, 128, 129,
763 130, 582, 131, 390, 389, 387, 678, 388, 132, 243,
764 133, 134, 332, 333, 334, 563, 655, 656, 31, 195,
765 786, 444, 91, 564, 640, 445, 34, 142, 288, 35,
766 218, 206, 78, 201, 207, 646, 79, 567, 337, 338,
767 37, 297, 298, 299, 644, 715, 669, 670, 671, 733,
768 801, 844, 862, 883, 910, 865, 885, 911, 324, 210,
769 680, 211, 38, 234, 236, 225, 94, 737, 354, 97,
770 98, 231, 475, 476, 223, 224, 144, 682, 145, 191,
771 287, 657, 658, 726, 335, 482, 579, 580, 581, 561,
772 368, 562, 790, 791, 792, 818, 839, 458, 840, 661,
773 793, 794, 868, 817, 901, 892, 920, 933, 893, 795,
774 796, 891, 797, 830, 853, 906, 907, 908, 931, 410,
775 411, 446, 630, 447, 448, 449, 327, 328, 450, 451,
776 653, 135, 40, 64, 41, 42, 43, 432, 689, 314,
777 604, 804, 527, 317, 539, 606, 44, 318, 69, 45,
778 437, 544, 438, 549, 696, 697, 46, 65, 304, 521,
779 66, 310, 525, 433, 434, 537, 613, 808, 538, 608,
780 749, 609, 750, 175, 424, 518, 519, 520, 683, 684,
781 306, 426, 176, 177, 178, 179, 180, 585, 586, 673,
782 587, 373, 136, 245, 486, 376, 377, 378, 137, 138,
786 static const short yypact
[] = { 120,
787 131, 2895, 2895, 468,-32768,-32768,-32768,-32768, 98, 118,
788 257, 110, 122, 132,-32768, 266,-32768,-32768, 266, 266,
789 -32768, 158, 266, 158, 266, 266,-32768,-32768,-32768,-32768,
790 234, 153, 2375, 497,-32768, 218,-32768,-32768, 2895,-32768,
791 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
792 -32768,-32768,-32768,-32768, 172, 210, 203, 210, 221, 2604,
793 2442, 254,-32768, 61, 3182, 3182, 81, 133,-32768,-32768,
794 158,-32768, 151, 266,-32768,-32768, 234, 253,-32768, 218,
795 1662,-32768, 540,-32768, 234, 497,-32768, 218,-32768,-32768,
796 879,-32768,-32768, 94,-32768, 263, 289, 1593,-32768, 298,
797 -32768,-32768,-32768,-32768,-32768,-32768, 2604, 2604, 266,-32768,
798 -32768,-32768, 2604,-32768,-32768, 933,-32768, 278, 323, 326,
799 -32768,-32768,-32768, 2604, 331, 361,-32768, 2658, 2712,-32768,
800 3553, 1169, 403, 370, 2604,-32768,-32768,-32768,-32768,-32768,
801 396, 267,-32768, 402, 3336, 302,-32768, 266,-32768,-32768,
802 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
803 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
804 -32768, 129, 3459,-32768,-32768,-32768, 2336, 457,-32768,-32768,
805 -32768, 266, 266, 449, 266, 266,-32768,-32768,-32768, 461,
806 642, 54,-32768, 540, 234,-32768, 474,-32768, 1805, 683,
807 218,-32768,-32768, 540,-32768, 259,-32768, 218, 1760, 526,
808 529, 318, 1681, 879,-32768,-32768,-32768,-32768, 218,-32768,
809 -32768, 505, 470,-32768, 94, 491, 218,-32768,-32768, 525,
810 486, 3078, 374, 210, 218, 210,-32768,-32768,-32768,-32768,
811 490, 499, 495, 503, 2496, 3244, 3459, 266,-32768, 517,
812 2604, 933,-32768, 933,-32768, 2604, 2604, 558,-32768,-32768,
813 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
814 2604, 2604,-32768,-32768, 266, 266, 2604, 2604,-32768,-32768,
815 -32768,-32768,-32768, 267, 1864,-32768, 547, 711,-32768,-32768,
816 -32768,-32768,-32768,-32768,-32768,-32768, 29,-32768, 539,-32768,
817 3459,-32768, 537, 542, 618,-32768, 457,-32768, 147, 542,
818 158, 559,-32768, 574, 573, 585,-32768, 574,-32768,-32768,
819 529,-32768,-32768, 635, 529, 654,-32768, 3048,-32768, 582,
820 589,-32768, 276, 82,-32768,-32768, 631, 218, 269, 219,
821 -32768, 540, 540,-32768, 683, 218,-32768, 1923,-32768,-32768,
822 683, 2604, 266, 591, 470, 595,-32768,-32768,-32768,-32768,
823 -32768, 592,-32768, 596,-32768,-32768,-32768, 599, 597, 2256,
824 -32768,-32768,-32768,-32768, 640, 606, 3244,-32768, 607, 610,
825 -32768, 3553, 615, 617, 3553, 3553, 2604, 656, 2604, 2604,
826 2834, 2942, 880, 784, 1653, 900, 900, 478, 478,-32768,
827 -32768,-32768,-32768,-32768, 622, 361, 616, 456, 242,-32768,
828 3067,-32768, 621,-32768, 1982,-32768, 711, 624, 302, 2766,
829 632, 3272, 851,-32768,-32768, 3347, 3459,-32768,-32768, 628,
830 158,-32768, 658, 2970,-32768,-32768, 347, 2843, 666, 84,
831 643,-32768,-32768,-32768, 3422,-32768, 659, 327,-32768,-32768,
832 176,-32768,-32768, 86,-32768,-32768,-32768, 3441,-32768, 526,
833 -32768,-32768, 526,-32768, 701,-32768,-32768, 660,-32768, 3553,
834 -32768, 218, 663,-32768, 661,-32768,-32768, 661, 218, 218,
835 -32768, 713,-32768,-32768,-32768, 3308,-32768,-32768, 640,-32768,
836 -32768,-32768,-32768,-32768, 708, 2604, 2417, 1396,-32768,-32768,
837 547,-32768,-32768,-32768,-32768,-32768, 668,-32768,-32768, 211,
838 681, 266,-32768, 2336, 676, 3097,-32768,-32768, 3422, 1779,
839 86,-32768, 679, 700, 86,-32768, 574,-32768, 352,-32768,
840 -32768,-32768,-32768, 234, 153, 2375, 262,-32768,-32768,-32768,
841 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 3478, 705,-32768,
842 -32768,-32768, 464, 93,-32768,-32768, 3411,-32768, 780, 495,
843 -32768,-32768,-32768, 707, 726,-32768, 840, 86,-32768,-32768,
844 86,-32768, 218,-32768, 368,-32768,-32768, 266, 1102, 713,
845 -32768, 1422, 2604, 750, 706, 3308,-32768,-32768, 1475,-32768,
846 -32768, 2604,-32768,-32768,-32768,-32768, 464,-32768,-32768,-32768,
847 -32768, 266,-32768,-32768, 729, 574,-32768, 3182, 3182, 76,
848 540, 234, 2998,-32768, 430, 2861, 1377, 1377,-32768,-32768,
849 -32768, 93, 218, 238, 330, 218,-32768, 330, 218, 3067,
850 -32768,-32768,-32768,-32768,-32768, 540,-32768, 234,-32768, 767,
851 -32768,-32768, 3553,-32768,-32768, 840,-32768,-32768,-32768, 2604,
852 212,-32768, 377, 545, 1022, 716, 717, 1182,-32768,-32768,
853 -32768,-32768,-32768, 758, 266,-32768, 762, 3553, 735, 737,
854 -32768, 361,-32768, 2604,-32768, 750,-32768, 2604, 273, 238,
855 330, 218, 383,-32768,-32768, 442,-32768, 760, 574,-32768,
856 -32768,-32768,-32768, 2604, 789, 757,-32768, 757, 588, 677,
857 -32768, 2041,-32768,-32768,-32768, 594,-32768,-32768,-32768, 389,
858 416, 767,-32768,-32768, 1422,-32768, 3186, 2604,-32768,-32768,
859 266,-32768,-32768,-32768,-32768, 764,-32768,-32768,-32768,-32768,
860 2122, 808, 1422,-32768,-32768, 1502,-32768,-32768, 1475,-32768,
861 -32768,-32768,-32768,-32768, 464,-32768,-32768, 782, 72, 72,
862 3553, 2604, 1377, 583,-32768, 583,-32768,-32768, 763,-32768,
863 -32768, 775,-32768, 3186,-32768,-32768, 2202, 816, 800,-32768,
864 -32768, 802, 813, 2604, 829, 798, 805, 2550, 429, 890,
865 79, 141,-32768, 849, 824,-32768, 825, 3147,-32768, 887,
866 1262, 103,-32768,-32768,-32768,-32768,-32768, 2364,-32768, 827,
867 1582,-32768,-32768, 574,-32768,-32768,-32768,-32768,-32768, 3553,
868 -32768, 601,-32768,-32768,-32768, 2604, 848,-32768, 2604, 2604,
869 3517,-32768,-32768,-32768,-32768, 831, 2604, 833,-32768, 853,
870 -32768,-32768,-32768, 540,-32768, 234, 1342,-32768,-32768,-32768,
871 -32768, 2604,-32768, 1582,-32768,-32768, 854, 845, 2604, 899,
872 -32768, 752, 866, 878, 2604,-32768,-32768, 881,-32768, 2604,
873 432,-32768, 320, 440,-32768, 332,-32768,-32768, 2202, 883,
874 -32768,-32768,-32768, 889,-32768,-32768,-32768,-32768, 3535,-32768,
875 52,-32768, 683,-32768, 683,-32768,-32768,-32768, 886,-32768,
876 -32768, 2604,-32768,-32768, 946, 891,-32768,-32768,-32768,-32768,
877 -32768,-32768, 892,-32768, 898, 69, 893,-32768,-32768, 495,
878 495,-32768,-32768, 2604, 946, 894, 946,-32768,-32768, 2604,
879 901, 145,-32768,-32768, 903,-32768, 654, 907,-32768, 403,
880 303,-32768,-32768, 908, 654,-32768,-32768, 403, 970, 975,
884 static const short yypgoto
[] = {-32768,
885 -32768,-32768,-32768, 192, -367,-32768,-32768,-32768,-32768,-32768,
886 -32768,-32768, -9,-32768, -52, 560, -231, 530,-32768,-32768,
887 -54,-32768, 220,-32768,-32768,-32768,-32768,-32768, 167,-32768,
888 -295,-32768, -312, 655,-32768,-32768, 334,-32768, 17, -195,
889 193, 16, 909,-32768, 356, 21, -11, -61, 710, 11,
890 -276, -575, -58, -206, -118,-32768,-32768,-32768, 196, 3,
891 -6,-32768, 579,-32768, 357,-32768, -604,-32768, -657,-32768,
892 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -68, -135,
893 -489, 14, -66,-32768,-32768,-32768,-32768,-32768, 647, 19,
894 -32768, 773, 649, 433, 785, 664, -27, -79, -55, -168,
895 -226, 355,-32768,-32768, -285,-32768,-32768,-32768, 434, -413,
896 -32768, -205,-32768,-32768,-32768,-32768, -122, -415, -734, 358,
897 -32768, 149,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
898 -32768,-32768, 150,-32768, -658, 105,-32768, 107,-32768, 608,
899 -32768, -359,-32768, 612, 633, 475, -307,-32768,-32768,-32768,
900 -32768, 18,-32768, 1029,-32768,-32768,-32768,-32768,-32768,-32768,
901 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -20, 4,
902 -364,-32768, 513,-32768, 443, 305,-32768,-32768,-32768,-32768,
903 -32768,-32768,-32768, -286,-32768,-32768,-32768, 310, 531,-32768,
904 -32768,-32768,-32768, -25, 753,-32768,-32768, 550,-32768, 321,
905 564,-32768, 651, 652, -121,-32768, -148,-32768,-32768, 405,
906 494,-32768,-32768,-32768,-32768,-32768,-32768, 714,-32768,-32768,
914 static const short yytable
[] = { 55,
915 57, 59, 346, 72, 36, 36, 63, 125, 141, 67,
916 68, 416, 343, 71, 209, 63, 74, 32, 32, 39,
917 39, 86, 33, 33, 220, 70, 212, 70, 308, 92,
918 440, 439, 464, 80, 339, 88, 230, 369, 469, 466,
919 181, 36, 232, 87, 81, 406, 184, 455, 83, 85,
920 188, 503, 237, 238, 32, 307, 39, 409, 240, 33,
921 710, 575, 286, 624, 190, 292, 533, 529, 340, 249,
922 70, 143, 806, 92, 70, 323, 100, 336, 802, 80,
923 281, 92, -112, 850, 222, 208, 560, 80, 244, 895,
924 192, 456, 279, 219, 221, 75, 50, 51, 213, 239,
925 50, 51, 197, 841, 418, 147, 915, 601, 143, 419,
926 762, 603, 198, 199, 408, 233, -35, 346, 182, -1,
927 50, 51, 14, 16, 375, 16, 143, 896, 800, 322,
928 -2, 50, 51, 886, 198, 199, 296, 517, 300, 183,
929 416, 148, 627, 846, 916, 303, 330, 220, 807, 50,
930 51, 622, 285, 899, 645, 291, 902, 647, 904, 551,
931 52, 842, 302, -112, 52, 53, 912, 367, 60, 53,
932 185, 230, 311, 312, 615, 315, 316, 232, -34, 54,
933 61, 501, 927, 143, 52, 16, 871, 301, 406, 53,
934 62, 186, 372, 80, 47, 52, 208, 80, 936, 56,
935 53, 92, 16, 460, 321, 427, 208, 463, 325, 754,
936 756, 336, 92, 52, 187, 222, 219, 192, 53, 379,
937 928, 220, 336, 462, 383, 407, 384, 189, 336, 82,
938 93, 148, 413, 903, 600, 477, 75, 477, 380, 686,
939 605, 14, 291, 143, 731, 692, 358, 14, 360, 718,
940 233, 558, 362, 95, 364, 489, 559, 143, 861, 50,
941 51, 925, 143, 14, 143, 403, 404, 14, 50, 51,
942 709, 75, 202, 421, 96, 320, 331, 347, 348, -115,
943 -115, -115, -115, 76, 99, -115, 591, -115, -115, -115,
944 430, 592, 77, 659, 461, 468, 701, 702, 14, 428,
945 414, 415, 101, -115, 50, 51, 293, 294, 295, 531,
946 532, 143, 146, 767, 70, 485, 283, 502, 203, 688,
947 -115, 226, 754, 52, -466, 284, 285, 204, 53, 193,
948 36, 92, 52, 194, 495, 341, 246, 53, 58, 342,
949 205, 208, -115, 222, 208, 208, 197, -115, 740, -175,
950 220, 672, 321, 251, 634, -175, 325, -115, 197, 14,
951 679, -175, 507, 714, 584, 308, 227, -175, 52, 723,
952 75, 202, 728, 53, 228, 235, 547, 5, 934, 7,
953 140, 247, 548, 935, 248, 9, 10, 11, 198, 199,
954 198, 199, 307, 757, 349, 409, -175, 14, 194, 524,
955 -175, 13, 748, 556, 15, 650, 250, 557, -175, 296,
956 528, 279, -175, 36, 540, 541, 542, 203, 16, 540,
957 541, 542, 357, 869, 543, 36, 204, 700, 36, 607,
958 363, 50, 51, 86, 70, 714, 36, 143, 515, 205,
959 22, 251, 672, 516, 280, 24, 565, 88, 143, 535,
960 534, 477, 699, 720, 536, 87, 660, 721, 706, 744,
961 553, 554, 320, 745, 676, 760, 75, 620, 566, 342,
962 382, 282, 501, 626, 629, 385, 386, 289, 827, 501,
963 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
964 401, 402, 761, 14, 309, 52, 194, 540, 541, 542,
965 53, 89, 594, 90, 86, 283, 651, 693, 882, 540,
966 541, 542, 342, 621, 284, 285, 884, 847, 88, 746,
967 194, 36, 622, 285, 86, 789, 87, 270, 271, 272,
968 313, 597, 326, 660, 515, 729, 80, 319, 88, 516,
969 352, 465, 75, 202, 48, 49, 87, 610, 695, 695,
970 353, 611, 612, 212, 547, 623, 80, 356, 291, 36,
971 548, 789, 359, 617, 618, 365, 625, 628, 652, 14,
972 897, 470, 898, 220, 366, 639, 367, 208, 370, 711,
973 636, 638, 690, 691, 347, 348, 812, 198, 199, 203,
974 75, 620, 685, 381, 320, -85, 75, 420, 204, 623,
975 320, -268, -268, 75, 620, 414, 415, 320, 497, 498,
976 681, 205, 422, 208, 80, 36, 92, 14, 423, 208,
977 208, 453, 722, 14, 80, 610, 143, 425, 535, 534,
978 14, 930, 36, 536, 431, 192, -464, 621, 208, 938,
979 80, 701, 702, 627, 75, 220, 622, 285, 320, 759,
980 755, 610, 622, 285, 435, 732, 346, 253, 255, 77,
981 436, 197, 104, 789, 452, 453, 459, 572, 472, 479,
982 474, 14, 483, 480, 576, 577, 481, 487, 785, 75,
983 620, 488, 491, 331, 695, 492, -325, -325, -325, -325,
984 493, 76, 494, 496, -325, -325, -325, 499, 500, 508,
985 77, 623, 623, 504, 918, 919, 14, 512, 80, 526,
986 -325, 765, 321, 325, 785, 589, 216, 217, 552, 321,
987 530, 784, 9, 10, 11, 826, 755, -325, 550, 5,
988 89, 7, 90, 36, 555, 77, 569, 9, 10, 11,
989 573, 574, 570, 281, 578, 588, 787, 623, 798, -325,
990 590, 788, 596, 13, -325, 208, 593, 784, 681, 557,
991 336, 72, 336, 848, -111, 863, 851, 854, 648, 828,
992 16, 713, 216, 217, 858, 602, 86, 864, 9, 10,
993 11, 619, 633, 635, 70, 70, 643, 674, 675, 870,
994 88, 687, 22, -304, 727, -32, 874, 24, 87, 734,
995 36, 668, 637, 834, 836, 273, 274, 881, 275, 276,
996 277, 278, 735, 787, 623, 798, 785, 736, 788, 703,
997 704, 705, 747, 707, 708, 321, 752, 876, 265, 266,
998 267, 268, 269, 270, 271, 272, 208, 753, 80, 851,
999 641, 766, 102, 799, 805, 813, 719, 103, 104, 866,
1000 105, 331, 814, -33, 5, 6, 7, 8, 816, 784,
1001 819, 921, 9, 10, 11, 643, 822, 851, 106, 717,
1002 15, 820, 107, 108, 823, 741, 742, 743, 13, 109,
1003 14, 824, 110, 215, 216, 217, 831, 111, 112, 113,
1004 9, 10, 11, 114, 115, 16, 829, 739, 116, 117,
1005 832, 833, 837, 118, 845, 119, 849, 857, 14, 859,
1006 120, 860, 763, 751, 121, 875, 872, 22, 122, 123,
1007 873, 642, 24, 264, 265, 266, 267, 268, 269, 270,
1008 271, 272, -486, 241, 668, 102, 5, 764, 7, 140,
1009 103, 104, 877, 105, 9, 10, 11, 268, 269, 270,
1010 271, 272, 668, 878, 905, 668, 914, 880, 889, 815,
1011 13, 106, 900, 15, 890, 107, 108, 909, 913, 940,
1012 923, 810, 109, 917, 941, 110, 926, 16, 929, 511,
1013 111, 112, 113, 932, 937, 852, 114, 115, 457, 724,
1014 843, 116, 117, 821, 712, 214, 118, 509, 119, 22,
1015 417, 473, 716, 120, 24, 361, 649, 121, 478, 355,
1016 725, 122, 123, 662, -94, 730, 471, 887, 888, 922,
1017 668, 505, 331, 924, -124, -124, -124, -124, -124, -124,
1018 -124, 632, -124, -124, -124, -124, -124, 522, -124, -124,
1019 -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
1020 -124, -124, -124, 73, -124, -124, 616, 811, 523, 809,
1021 698, -124, 429, 668, -124, 803, -124, 614, 599, -124,
1022 -124, -124, 513, 514, 879, -124, -124, 595, 738, 677,
1023 -124, -124, 0, 0, 0, -124, 0, -124, -124, 0,
1024 490, 0, -124, -124, 0, 0, -124, 0, -124, -124,
1025 -124, -124, 654, -124, -325, -325, -325, -325, -325, -325,
1026 -325, 0, -325, -325, -325, -325, -325, 0, -325, -325,
1027 -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
1028 -325, -325, -325, 0, -325, -325, 0, 0, 0, 0,
1029 0, -325, 0, 0, -325, 0, -325, 0, 0, -325,
1030 -325, -325, 0, 0, 0, -325, -325, 0, 0, 0,
1031 -325, -325, 0, 0, 0, -325, 0, -325, -325, 0,
1032 0, 0, -325, -325, 0, 0, -325, 0, -325, 0,
1033 -325, -325, 331, -325, -325, -325, 0, 0, 0, -325,
1034 -325, 0, -325, 0, 0, 0, -325, 0, -325, -325,
1035 -325, -325, -325, -325, -325, -325, -325, -325, -325, 0,
1036 -325, 0, -325, 0, -325, -325, 0, 0, 0, 0,
1037 0, -325, 273, 274, -325, 275, 276, 277, 278, -325,
1038 -325, -325, 0, 0, 0, -325, -325, 0, 0, 0,
1039 -325, -325, 0, 0, 0, -325, 0, -325, -325, 0,
1040 0, 0, -325, -325, 0, 0, -325, 0, -325, -300,
1041 -325, -325, 838, -325, -325, -325, 0, 0, 0, -325,
1042 -325, 0, -325, 0, 0, 0, -325, 0, -325, -325,
1043 -325, -325, -325, -325, -325, -325, -325, -325, -325, 0,
1044 -325, 0, -325, 0, -325, -325, 0, 0, 0, 0,
1045 0, -325, 0, 0, -325, 0, 0, 0, 0, -325,
1046 -325, -325, 0, 0, 0, -325, -325, 0, 0, 0,
1047 -325, -325, 0, 0, 0, -325, 0, -325, -325, 0,
1048 0, 0, -325, -325, 0, 0, -325, 0, -325, 0,
1049 -325, -325, 867, -325, -335, -335, 0, 0, 0, -335,
1050 -335, 0, -335, 0, 0, 0, -335, 0, -335, -335,
1051 -335, -335, -335, -335, -335, -335, -335, -335, -335, 0,
1052 -335, 0, -335, 0, -335, -335, 0, 0, 0, 75,
1053 202, -335, 0, 0, -335, 0, 0, 0, 0, -335,
1054 -335, -335, 0, 0, 0, -335, -335, 0, 0, 0,
1055 -335, -335, 0, 0, 0, -335, 14, -335, -335, 0,
1056 0, 0, -335, -335, 694, 0, -335, 0, -335, 0,
1057 -335, -335, 663, -335, 664, 51, 203, 0, 0, 103,
1058 104, 0, 105, 0, 0, 204, 261, 262, 263, 264,
1059 265, 266, 267, 268, 269, 270, 271, 272, 205, 0,
1060 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1061 0, 109, 0, 0, 110, 0, 0, 0, 0, 111,
1062 112, 113, 0, 0, 0, 114, 115, 0, 0, 665,
1063 116, 117, 0, 0, 0, 118, 0, 119, 52, 0,
1064 0, 0, 120, 53, 0, 0, 121, 0, 0, -203,
1065 122, 123, 663, 666, 664, 51, 0, 0, 0, 103,
1066 104, 258, 105, 259, 260, 261, 262, 263, 264, 265,
1067 266, 267, 268, 269, 270, 271, 272, 0, 0, 0,
1068 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1069 0, 109, 0, 0, 110, 0, 0, 0, 0, 111,
1070 112, 113, 0, 0, 0, 114, 115, 0, 0, 665,
1071 116, 117, 0, 0, 0, 118, 0, 119, 52, 0,
1072 0, 0, 120, 53, 0, 0, 121, 0, 0, -258,
1073 122, 123, 663, 666, 664, 51, 0, 0, 0, 103,
1074 104, 0, 105, 228, 0, 0, 5, 0, 7, 140,
1075 0, 0, 0, 0, 9, 10, 11, 0, 0, 0,
1076 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1077 13, 109, 0, 15, 110, 0, 0, 0, 0, 111,
1078 112, 113, 0, 0, 0, 114, 115, 16, 0, 665,
1079 116, 117, 0, 0, 0, 118, 0, 119, 52, 0,
1080 0, 0, 120, 53, 0, 0, 121, 0, 0, 22,
1081 122, 123, 196, 666, 24, -28, -28, -28, -28, 229,
1082 -261, 0, 0, -28, -28, -28, 0, 0, 0, 0,
1083 0, 350, 0, 0, -24, -24, -24, -24, 197, -28,
1084 0, -175, -24, -24, -24, 0, 0, -175, 266, 267,
1085 268, 269, 270, 271, 272, 0, -28, 197, -24, 0,
1086 -175, 0, 0, 0, 0, 0, -175, 0, 0, 0,
1087 198, 199, 0, 0, 0, -24, 0, 0, -28, 0,
1088 0, 0, 0, -28, 0, 0, 0, 0, -175, 198,
1089 199, 0, -175, -28, 0, 0, 0, -24, 0, 0,
1090 0, 0, -24, 0, 0, 0, 0, -175, 0, 0,
1091 344, -175, -24, -20, -20, -20, -20, 0, 0, 0,
1092 0, -20, -20, -20, 0, 0, 0, 0, 0, 331,
1093 0, 0, -488, -488, -488, -488, 197, -20, 0, -175,
1094 -488, -488, -488, 0, 0, -175, 0, 0, 0, 0,
1095 0, 0, 0, 0, -20, 0, -488, 102, -488, 0,
1096 0, 0, 103, 104, 0, 105, 0, 0, 0, 0,
1097 0, 0, 0, -488, 0, 0, -20, 0, 0, 0,
1098 0, -20, 0, 106, 0, 15, -175, 107, 108, 0,
1099 -175, -20, 0, 0, 109, -488, 0, 110, 0, 0,
1100 -488, 0, 111, 112, 113, 0, 0, 0, 114, 115,
1101 -488, 0, 0, 116, 117, 0, 102, 0, 118, 0,
1102 119, 103, 104, 0, 105, 120, 0, 0, 0, 121,
1103 0, 0, 0, 122, 123, 0, 0, 329, 0, 0,
1104 0, 0, 106, 0, 15, 0, 107, 108, 0, 0,
1105 0, 0, 0, 109, 0, 0, 110, 0, 0, 0,
1106 0, 111, 112, 113, 0, 0, 0, 114, 115, 0,
1107 0, 0, 116, 117, 0, 102, 0, 118, 0, 119,
1108 103, 104, 0, 105, 120, 0, 0, 0, 121, 0,
1109 0, 0, 122, 123, 0, 0, 412, 0, 0, 0,
1110 0, 106, 0, 15, 0, 107, 108, 0, 0, 0,
1111 0, 0, 109, 0, 0, 110, 0, 0, 0, 0,
1112 111, 112, 113, 0, 0, 0, 114, 115, 0, 0,
1113 0, 116, 117, 0, 102, 0, 118, 0, 119, 103,
1114 104, 0, 105, 120, 0, 0, 0, 121, 0, 0,
1115 0, 122, 123, 0, 0, 467, 0, 0, 0, 0,
1116 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1117 0, 109, 0, 0, 110, 0, 0, 0, 0, 111,
1118 112, 113, 0, 0, 0, 114, 115, 0, 0, 0,
1119 116, 117, 0, 102, 0, 118, 0, 119, 103, 104,
1120 0, 105, 120, 0, 0, 0, 121, 0, 0, 0,
1121 122, 123, 0, 0, 506, 0, 0, 0, 0, 106,
1122 0, 15, 0, 107, 108, 0, 0, 0, 0, 0,
1123 109, 0, 0, 110, 0, 0, 0, 0, 111, 112,
1124 113, 0, 0, 0, 114, 115, 0, 0, 0, 116,
1125 117, 0, 0, 0, 118, 0, 119, 0, 0, 0,
1126 0, 120, 0, 0, 0, 121, 0, 0, 0, 122,
1127 123, 0, 0, 758, 664, 768, 6, 7, 8, 103,
1128 104, 0, 105, 9, 10, 11, 769, 0, 770, 771,
1129 772, 773, 774, 775, 776, 777, 778, 779, 780, 13,
1130 106, 14, 15, 0, 107, 108, 0, 0, 0, 0,
1131 0, 109, 0, 0, 110, 0, 16, 0, 0, 111,
1132 112, 113, 0, 0, 0, 114, 115, 0, 0, 0,
1133 116, 117, 0, 0, 0, 118, 0, 119, 781, 0,
1134 0, 0, 120, 782, 0, 0, 121, 0, 783, 0,
1135 122, 123, 0, 367, 664, 51, 0, 0, 0, 103,
1136 104, 0, 105, 0, 0, 0, 769, 0, 770, 771,
1137 772, 773, 774, 775, 776, 777, 778, 779, 780, 0,
1138 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1139 0, 109, 0, 0, 110, 0, 0, 0, 0, 111,
1140 112, 113, 0, 0, 0, 114, 115, 0, 102, 0,
1141 116, 117, 0, 103, 104, 118, 105, 119, 52, 0,
1142 0, 0, 120, 53, 0, 0, 121, 0, 783, 0,
1143 122, 123, 0, 367, 106, 0, 15, 0, 107, 108,
1144 0, 0, 0, 0, 0, 109, 0, 0, 110, 0,
1145 0, 0, 0, 111, 112, 113, 0, 0, 0, 114,
1146 115, 0, 0, 0, 116, 117, 0, 0, 0, 118,
1147 0, 119, 0, 0, 0, 0, 120, 0, 0, 0,
1148 121, 0, 0, 0, 122, 123, 0, 484, 149, 150,
1149 0, 151, 152, 0, 0, 0, 153, 154, 155, 156,
1150 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
1151 167, 168, 169, 170, 171, 0, 102, 5, 6, 7,
1152 8, 103, 104, 172, 105, 9, 10, 11, 5, 6,
1153 7, 8, 0, 0, 0, 0, 9, 10, 11, 0,
1154 0, 13, 106, 14, 15, 0, 107, 108, 0, 0,
1155 0, 0, 13, 109, 14, 0, 110, 174, 16, 0,
1156 0, 111, 112, 113, 0, 0, 305, 114, 115, 16,
1157 0, 0, 116, 117, 0, 0, 0, 118, 0, 119,
1158 22, 0, 0, 0, 120, 24, 0, 0, 121, 0,
1159 0, 22, 122, 123, 102, 5, 24, 7, 140, 103,
1160 104, 84, 105, 9, 10, 11, 260, 261, 262, 263,
1161 264, 265, 266, 267, 268, 269, 270, 271, 272, 13,
1162 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1163 0, 109, 0, 0, 110, 0, 16, 0, 0, 111,
1164 112, 113, 0, 0, 0, 114, 115, 0, 102, 0,
1165 116, 117, 0, 103, 104, 118, 105, 119, 22, 0,
1166 0, 0, 120, 24, 0, 0, 121, 0, 0, 0,
1167 122, 123, 0, 0, 106, 0, 15, 0, 107, 108,
1168 0, 0, 0, 0, 0, 109, 0, 0, 110, 0,
1169 0, 0, 0, 111, 112, 113, 0, 0, 0, 114,
1170 115, 0, 102, 0, 116, 117, 0, 103, 104, 118,
1171 105, 119, 371, 0, 0, 0, 120, 0, 0, 0,
1172 121, 0, 0, 0, 122, 123, 0, 0, 106, 0,
1173 15, 0, 107, 108, 0, 0, 0, 0, 0, 109,
1174 0, 0, 110, 0, 0, 0, 0, 111, 112, 113,
1175 0, 0, 0, 114, 115, 0, 102, 0, 116, 117,
1176 0, 103, 104, 118, 105, 119, 0, 0, 0, 0,
1177 120, 0, 0, 0, 121, 0, 825, 0, 122, 123,
1178 0, 0, 106, 0, 15, 0, 107, 108, 0, 0,
1179 0, 0, 0, 109, 0, 0, 110, 0, 0, 0,
1180 0, 111, 112, 113, 0, 0, 0, 114, 115, 0,
1181 102, 0, 116, 117, 0, 103, 104, 118, 105, 119,
1182 0, 0, 0, 0, 120, 0, 0, 0, 121, 0,
1183 0, 0, 122, 123, 0, 0, 106, 0, 15, 0,
1184 107, 108, 0, 0, 0, 0, 0, 109, 0, 0,
1185 110, 0, 0, 0, 0, 111, 112, 113, 0, 0,
1186 0, 114, 115, 0, 102, 0, 252, 117, 0, 103,
1187 104, 118, 105, 119, 0, 0, 0, 0, 120, 0,
1188 0, 0, 121, 0, 0, 0, 122, 123, 0, 0,
1189 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1190 0, 109, 0, 0, 110, 0, 0, 0, 0, 111,
1191 112, 113, 0, 0, 0, 114, 115, 0, 510, 0,
1192 254, 117, 0, 103, 104, 118, 105, 119, 0, 0,
1193 0, 0, 120, 0, 0, 0, 121, 0, 0, 0,
1194 122, 123, 0, 0, 106, 0, 15, 0, 107, 108,
1195 0, 0, 0, 0, 0, 109, 0, 0, 110, 0,
1196 0, 0, 0, 111, 112, 113, 0, 0, 0, 114,
1197 115, 0, 0, 0, 116, 117, 0, 0, 0, 118,
1198 0, 119, 0, 0, 0, 0, 120, 0, 0, 0,
1199 121, 0, 0, 545, 122, 123, 5, 0, 7, 140,
1200 0, 0, 0, 0, 9, 10, 11, 0, 0, 0,
1201 0, 545, 0, 0, 5, 0, 7, 140, 0, 0,
1202 13, 0, 9, 10, 11, 262, 263, 264, 265, 266,
1203 267, 268, 269, 270, 271, 272, 0, 16, 13, 0,
1204 0, 0, 0, 0, 0, 4, 0, -128, 5, 6,
1205 7, 8, 0, 0, 0, 16, 9, 10, 11, 22,
1206 -440, -440, -440, 0, 24, 0, 0, 0, 0, 546,
1207 -440, 12, 13, 0, 14, 15, 0, 22, -439, -439,
1208 -439, 0, 24, 0, 0, 0, 0, 546, -439, 16,
1209 0, 0, 17, 18, -128, 0, 0, 0, 0, 0,
1210 0, 0, 0, -128, 0, 19, 20, 21, 0, 0,
1211 0, 22, 0, 0, 0, 23, 24, 25, 26, 0,
1212 4, 27, -128, 5, 6, 7, 8, 0, 0, 0,
1213 0, 9, 10, 11, 263, 264, 265, 266, 267, 268,
1214 269, 270, 271, 272, 0, 0, 0, 13, 4, 14,
1215 -128, 5, 6, 7, 8, 0, 0, 0, 0, 9,
1216 10, 11, 0, 0, 16, 0, 0, 531, 532, -128,
1217 0, 0, 0, 0, 0, 13, 0, 14, -128, 0,
1218 0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
1219 0, 24, 16, 0, 0, 0, 27, -128, 441, 0,
1220 442, 5, 6, 7, 8, 0, -128, 443, 0, 9,
1221 10, 11, 0, 0, 22, 0, 0, 441, 0, 24,
1222 5, 6, 7, 8, 27, 13, 443, 14, 9, 10,
1223 11, 5, 0, 7, 290, 0, 0, 0, 0, 9,
1224 10, 11, 16, 0, 13, 0, 14, 0, 0, 0,
1225 5, 6, 7, 8, 0, 13, 0, 0, 9, 10,
1226 11, 16, 0, 0, 22, 0, 0, 0, 0, 24,
1227 0, 0, 16, -385, 13, 0, 14, 0, 0, 0,
1228 0, 0, 0, 22, 0, 0, 0, 0, 24, 0,
1229 0, 16, -385, 0, 22, 0, 0, 0, 0, 24,
1230 5, 6, 7, 8, -270, -270, 0, 0, 9, 10,
1231 11, 0, 0, 22, 0, 0, 0, 0, 24, 0,
1232 0, 0, 0, 598, 13, 0, 14, 0, 0, 0,
1233 0, 0, 0, 0, 149, 150, 0, 151, 152, 0,
1234 0, 16, 153, 154, 155, 156, 157, 158, 159, 160,
1235 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
1236 171, 0, 0, 22, 0, 14, 0, 0, 24, 172,
1237 256, 257, 258, 835, 259, 260, 261, 262, 263, 264,
1238 265, 266, 267, 268, 269, 270, 271, 272, 0, 0,
1239 173, 0, 0, 0, 0, 0, 149, 150, 0, 151,
1240 152, 0, 0, 174, 153, 154, 155, 156, 157, 158,
1241 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
1242 169, 170, 171, 0, 149, 150, 0, 151, 152, 0,
1243 0, 374, 153, 154, 155, 156, 157, 158, 159, 160,
1244 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
1245 171, 0, 0, 0, 0, 0, 0, 0, 0, 172,
1246 149, 150, 0, 151, 152, 174, 0, 0, 153, 154,
1247 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1248 165, 166, 167, 168, 169, 170, 171, 0, 0, 5,
1249 0, 7, 290, 174, 0, 583, 0, 9, 10, 11,
1250 5, 6, 7, 8, 0, 0, 443, 0, 9, 10,
1251 11, 0, 0, 13, 0, 0, 0, 0, 0, 0,
1252 0, 0, 0, 0, 13, 0, 14, 0, 0, 174,
1253 16, 0, 0, 0, 0, 283, 0, 0, 0, 0,
1254 0, 16, 0, 0, 284, 285, 0, 0, 0, 0,
1255 0, 0, 22, 0, 0, 0, 0, 24, 0, 0,
1256 0, 0, 0, 22, 5, 6, 7, 8, 24, 0,
1257 631, 0, 9, 10, 11, 5, 6, 7, 8, 0,
1258 0, 0, 0, 9, 10, 11, 0, 0, 13, 0,
1259 14, 0, 0, 0, 5, 6, 7, 8, 0, 13,
1260 0, 14, 9, 10, 11, 16, 0, 0, 0, 0,
1261 0, 0, 5, 0, 7, 140, 16, 0, 13, 0,
1262 9, 10, 11, 0, 0, 0, 0, 22, 0, 0,
1263 0, 5, 24, 7, 290, 16, 13, 0, 22, 9,
1264 10, 11, 0, 24, 0, 0, 0, 0, 0, 0,
1265 0, 0, 0, 16, 0, 13, 0, 22, 0, 0,
1266 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
1267 0, 0, 16, 0, 0, 22, 855, 0, 0, 0,
1268 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1269 0, 0, 0, 0, 22, 0, 0, 0, 0, 24,
1270 0, 256, 257, 258, 856, 259, 260, 261, 262, 263,
1271 264, 265, 266, 267, 268, 269, 270, 271, 272, 256,
1272 257, 258, 894, 259, 260, 261, 262, 263, 264, 265,
1273 266, 267, 268, 269, 270, 271, 272, 256, 257, 258,
1274 0, 259, 260, 261, 262, 263, 264, 265, 266, 267,
1275 268, 269, 270, 271, 272
1278 static const short yycheck
[] = { 9,
1279 10, 11, 209, 24, 2, 3, 16, 60, 61, 19,
1280 20, 288, 208, 23, 83, 25, 26, 2, 3, 2,
1281 3, 33, 2, 3, 91, 22, 85, 24, 177, 36,
1282 326, 318, 345, 31, 203, 33, 98, 243, 351, 347,
1283 66, 39, 98, 33, 31, 277, 67, 333, 32, 33,
1284 71, 411, 107, 108, 39, 177, 39, 284, 113, 39,
1285 636, 477, 142, 553, 74, 145, 434, 432, 204, 124,
1286 67, 61, 1, 80, 71, 194, 58, 200, 736, 77,
1287 135, 88, 1, 818, 94, 83, 1, 85, 116, 38,
1288 77, 10, 9, 91, 1, 3, 3, 4, 85, 109,
1289 3, 4, 27, 1, 76, 45, 38, 521, 98, 81,
1290 715, 525, 59, 60, 283, 98, 38, 324, 38, 0,
1291 3, 4, 30, 45, 246, 45, 116, 76, 733, 76,
1292 0, 3, 4, 868, 59, 60, 146, 423, 148, 59,
1293 417, 81, 50, 801, 76, 173, 199, 214, 77, 3,
1294 4, 59, 60, 888, 568, 145, 891, 571, 893, 76,
1295 67, 59, 172, 82, 67, 72, 901, 82, 59, 72,
1296 38, 233, 182, 183, 539, 185, 186, 233, 38, 82,
1297 59, 408, 38, 173, 67, 45, 844, 59, 420, 72,
1298 59, 59, 245, 191, 3, 67, 194, 195, 933, 82,
1299 72, 208, 45, 339, 191, 59, 204, 343, 195, 699,
1300 700, 334, 219, 67, 82, 225, 214, 204, 72, 247,
1301 76, 288, 345, 342, 252, 278, 254, 77, 351, 77,
1302 39, 81, 285, 892, 520, 358, 3, 360, 248, 604,
1303 527, 30, 232, 233, 660, 613, 230, 30, 232, 38,
1304 233, 76, 234, 82, 236, 377, 81, 247, 834, 3,
1305 4, 920, 252, 30, 254, 275, 276, 30, 3, 4,
1306 630, 3, 4, 301, 65, 7, 1, 59, 60, 4,
1307 5, 6, 7, 50, 82, 10, 76, 12, 13, 14,
1308 311, 81, 59, 579, 76, 348, 59, 60, 30, 309,
1309 59, 60, 82, 28, 3, 4, 5, 6, 7, 48,
1310 49, 301, 59, 729, 311, 370, 50, 76, 50, 606,
1311 45, 59, 812, 67, 63, 59, 60, 59, 72, 77,
1312 328, 338, 67, 81, 387, 77, 59, 72, 82, 81,
1313 72, 339, 67, 353, 342, 343, 27, 72, 76, 30,
1314 417, 583, 339, 81, 560, 36, 343, 82, 27, 30,
1315 592, 30, 415, 640, 486, 514, 78, 36, 67, 655,
1316 3, 4, 658, 72, 1, 78, 438, 4, 76, 6,
1317 7, 59, 438, 81, 59, 12, 13, 14, 59, 60,
1318 59, 60, 514, 701, 77, 622, 77, 30, 81, 427,
1319 81, 28, 689, 77, 31, 38, 76, 81, 77, 419,
1320 431, 9, 81, 411, 68, 69, 70, 50, 45, 68,
1321 69, 70, 227, 839, 78, 423, 59, 623, 426, 78,
1322 235, 3, 4, 445, 431, 712, 434, 427, 423, 72,
1323 67, 81, 674, 423, 75, 72, 458, 445, 438, 434,
1324 434, 574, 621, 77, 434, 445, 579, 81, 627, 77,
1325 444, 445, 7, 81, 586, 77, 3, 4, 458, 81,
1326 251, 76, 699, 553, 554, 256, 257, 76, 50, 706,
1327 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
1328 271, 272, 77, 30, 38, 67, 81, 68, 69, 70,
1329 72, 5, 512, 7, 516, 50, 575, 78, 77, 68,
1330 69, 70, 81, 50, 59, 60, 77, 804, 516, 78,
1331 81, 519, 59, 60, 536, 731, 516, 50, 51, 52,
1332 82, 515, 59, 656, 519, 658, 534, 77, 536, 519,
1333 36, 346, 3, 4, 77, 78, 536, 534, 617, 618,
1334 81, 535, 536, 612, 616, 553, 554, 67, 548, 557,
1335 616, 767, 77, 547, 548, 76, 553, 554, 578, 30,
1336 883, 352, 885, 640, 76, 565, 82, 575, 76, 638,
1337 564, 565, 608, 609, 59, 60, 755, 59, 60, 50,
1338 3, 4, 602, 77, 7, 38, 3, 59, 59, 597,
1339 7, 77, 78, 3, 4, 59, 60, 7, 389, 390,
1340 597, 72, 76, 611, 612, 613, 623, 30, 77, 617,
1341 618, 77, 78, 30, 622, 612, 616, 10, 613, 613,
1342 30, 927, 630, 613, 76, 622, 63, 50, 636, 935,
1343 638, 59, 60, 50, 3, 712, 59, 60, 7, 702,
1344 50, 638, 59, 60, 82, 665, 863, 128, 129, 59,
1345 76, 27, 9, 869, 83, 77, 36, 472, 78, 78,
1346 76, 30, 76, 78, 479, 480, 78, 38, 731, 3,
1347 4, 76, 76, 1, 753, 76, 4, 5, 6, 7,
1348 76, 50, 76, 38, 12, 13, 14, 76, 83, 76,
1349 59, 699, 700, 83, 910, 911, 30, 76, 706, 82,
1350 28, 721, 699, 700, 767, 496, 6, 7, 76, 706,
1351 63, 731, 12, 13, 14, 778, 50, 45, 63, 4,
1352 5, 6, 7, 731, 76, 59, 36, 12, 13, 14,
1353 78, 81, 83, 798, 32, 38, 731, 745, 731, 67,
1354 83, 731, 77, 28, 72, 753, 76, 767, 745, 81,
1355 883, 782, 885, 816, 82, 834, 819, 820, 573, 779,
1356 45, 5, 6, 7, 827, 76, 788, 836, 12, 13,
1357 14, 77, 3, 77, 781, 782, 567, 38, 83, 842,
1358 788, 63, 67, 78, 78, 38, 849, 72, 788, 38,
1359 798, 582, 77, 787, 788, 54, 55, 860, 57, 58,
1360 59, 60, 78, 798, 812, 798, 869, 81, 798, 624,
1361 625, 626, 63, 628, 629, 812, 38, 76, 45, 46,
1362 47, 48, 49, 50, 51, 52, 834, 81, 836, 892,
1363 1, 78, 3, 36, 63, 83, 651, 8, 9, 836,
1364 11, 1, 78, 38, 4, 5, 6, 7, 59, 869,
1365 59, 914, 12, 13, 14, 646, 38, 920, 29, 650,
1366 31, 59, 33, 34, 77, 680, 681, 682, 28, 40,
1367 30, 77, 43, 5, 6, 7, 38, 48, 49, 50,
1368 12, 13, 14, 54, 55, 45, 7, 678, 59, 60,
1369 77, 77, 16, 64, 78, 66, 59, 77, 30, 77,
1370 71, 59, 717, 694, 75, 17, 63, 67, 79, 80,
1371 76, 82, 72, 44, 45, 46, 47, 48, 49, 50,
1372 51, 52, 82, 1, 715, 3, 4, 718, 6, 7,
1373 8, 9, 77, 11, 12, 13, 14, 48, 49, 50,
1374 51, 52, 733, 76, 9, 736, 59, 77, 76, 764,
1375 28, 29, 77, 31, 76, 33, 34, 77, 77, 0,
1376 77, 752, 40, 81, 0, 43, 76, 45, 76, 420,
1377 48, 49, 50, 77, 77, 819, 54, 55, 334, 656,
1378 798, 59, 60, 774, 639, 87, 64, 419, 66, 67,
1379 291, 355, 646, 71, 72, 233, 574, 75, 360, 225,
1380 656, 79, 80, 580, 82, 658, 353, 869, 869, 915,
1381 801, 414, 1, 917, 3, 4, 5, 6, 7, 8,
1382 9, 557, 11, 12, 13, 14, 15, 426, 17, 18,
1383 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1384 29, 30, 31, 25, 33, 34, 544, 753, 426, 750,
1385 618, 40, 310, 844, 43, 745, 45, 537, 519, 48,
1386 49, 50, 422, 422, 855, 54, 55, 514, 674, 586,
1387 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1388 377, -1, 71, 72, -1, -1, 75, -1, 77, 78,
1389 79, 80, 1, 82, 3, 4, 5, 6, 7, 8,
1390 9, -1, 11, 12, 13, 14, 15, -1, 17, 18,
1391 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1392 29, 30, 31, -1, 33, 34, -1, -1, -1, -1,
1393 -1, 40, -1, -1, 43, -1, 45, -1, -1, 48,
1394 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1395 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1396 -1, -1, 71, 72, -1, -1, 75, -1, 77, -1,
1397 79, 80, 1, 82, 3, 4, -1, -1, -1, 8,
1398 9, -1, 11, -1, -1, -1, 15, -1, 17, 18,
1399 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
1400 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1401 -1, 40, 54, 55, 43, 57, 58, 59, 60, 48,
1402 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1403 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1404 -1, -1, 71, 72, -1, -1, 75, -1, 77, 78,
1405 79, 80, 1, 82, 3, 4, -1, -1, -1, 8,
1406 9, -1, 11, -1, -1, -1, 15, -1, 17, 18,
1407 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
1408 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1409 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1410 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1411 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1412 -1, -1, 71, 72, -1, -1, 75, -1, 77, -1,
1413 79, 80, 1, 82, 3, 4, -1, -1, -1, 8,
1414 9, -1, 11, -1, -1, -1, 15, -1, 17, 18,
1415 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
1416 29, -1, 31, -1, 33, 34, -1, -1, -1, 3,
1417 4, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1418 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1419 59, 60, -1, -1, -1, 64, 30, 66, 67, -1,
1420 -1, -1, 71, 72, 38, -1, 75, -1, 77, -1,
1421 79, 80, 1, 82, 3, 4, 50, -1, -1, 8,
1422 9, -1, 11, -1, -1, 59, 41, 42, 43, 44,
1423 45, 46, 47, 48, 49, 50, 51, 52, 72, -1,
1424 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1425 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1426 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1427 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1428 -1, -1, 71, 72, -1, -1, 75, -1, -1, 78,
1429 79, 80, 1, 82, 3, 4, -1, -1, -1, 8,
1430 9, 37, 11, 39, 40, 41, 42, 43, 44, 45,
1431 46, 47, 48, 49, 50, 51, 52, -1, -1, -1,
1432 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1433 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1434 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1435 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1436 -1, -1, 71, 72, -1, -1, 75, -1, -1, 78,
1437 79, 80, 1, 82, 3, 4, -1, -1, -1, 8,
1438 9, -1, 11, 1, -1, -1, 4, -1, 6, 7,
1439 -1, -1, -1, -1, 12, 13, 14, -1, -1, -1,
1440 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1441 28, 40, -1, 31, 43, -1, -1, -1, -1, 48,
1442 49, 50, -1, -1, -1, 54, 55, 45, -1, 58,
1443 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1444 -1, -1, 71, 72, -1, -1, 75, -1, -1, 67,
1445 79, 80, 1, 82, 72, 4, 5, 6, 7, 77,
1446 78, -1, -1, 12, 13, 14, -1, -1, -1, -1,
1447 -1, 1, -1, -1, 4, 5, 6, 7, 27, 28,
1448 -1, 30, 12, 13, 14, -1, -1, 36, 46, 47,
1449 48, 49, 50, 51, 52, -1, 45, 27, 28, -1,
1450 30, -1, -1, -1, -1, -1, 36, -1, -1, -1,
1451 59, 60, -1, -1, -1, 45, -1, -1, 67, -1,
1452 -1, -1, -1, 72, -1, -1, -1, -1, 77, 59,
1453 60, -1, 81, 82, -1, -1, -1, 67, -1, -1,
1454 -1, -1, 72, -1, -1, -1, -1, 77, -1, -1,
1455 1, 81, 82, 4, 5, 6, 7, -1, -1, -1,
1456 -1, 12, 13, 14, -1, -1, -1, -1, -1, 1,
1457 -1, -1, 4, 5, 6, 7, 27, 28, -1, 30,
1458 12, 13, 14, -1, -1, 36, -1, -1, -1, -1,
1459 -1, -1, -1, -1, 45, -1, 28, 3, 30, -1,
1460 -1, -1, 8, 9, -1, 11, -1, -1, -1, -1,
1461 -1, -1, -1, 45, -1, -1, 67, -1, -1, -1,
1462 -1, 72, -1, 29, -1, 31, 77, 33, 34, -1,
1463 81, 82, -1, -1, 40, 67, -1, 43, -1, -1,
1464 72, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1465 82, -1, -1, 59, 60, -1, 3, -1, 64, -1,
1466 66, 8, 9, -1, 11, 71, -1, -1, -1, 75,
1467 -1, -1, -1, 79, 80, -1, -1, 83, -1, -1,
1468 -1, -1, 29, -1, 31, -1, 33, 34, -1, -1,
1469 -1, -1, -1, 40, -1, -1, 43, -1, -1, -1,
1470 -1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1471 -1, -1, 59, 60, -1, 3, -1, 64, -1, 66,
1472 8, 9, -1, 11, 71, -1, -1, -1, 75, -1,
1473 -1, -1, 79, 80, -1, -1, 83, -1, -1, -1,
1474 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1475 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1476 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1477 -1, 59, 60, -1, 3, -1, 64, -1, 66, 8,
1478 9, -1, 11, 71, -1, -1, -1, 75, -1, -1,
1479 -1, 79, 80, -1, -1, 83, -1, -1, -1, -1,
1480 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1481 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1482 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1483 59, 60, -1, 3, -1, 64, -1, 66, 8, 9,
1484 -1, 11, 71, -1, -1, -1, 75, -1, -1, -1,
1485 79, 80, -1, -1, 83, -1, -1, -1, -1, 29,
1486 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1487 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1488 50, -1, -1, -1, 54, 55, -1, -1, -1, 59,
1489 60, -1, -1, -1, 64, -1, 66, -1, -1, -1,
1490 -1, 71, -1, -1, -1, 75, -1, -1, -1, 79,
1491 80, -1, -1, 83, 3, 4, 5, 6, 7, 8,
1492 9, -1, 11, 12, 13, 14, 15, -1, 17, 18,
1493 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1494 29, 30, 31, -1, 33, 34, -1, -1, -1, -1,
1495 -1, 40, -1, -1, 43, -1, 45, -1, -1, 48,
1496 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1497 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1498 -1, -1, 71, 72, -1, -1, 75, -1, 77, -1,
1499 79, 80, -1, 82, 3, 4, -1, -1, -1, 8,
1500 9, -1, 11, -1, -1, -1, 15, -1, 17, 18,
1501 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
1502 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1503 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1504 49, 50, -1, -1, -1, 54, 55, -1, 3, -1,
1505 59, 60, -1, 8, 9, 64, 11, 66, 67, -1,
1506 -1, -1, 71, 72, -1, -1, 75, -1, 77, -1,
1507 79, 80, -1, 82, 29, -1, 31, -1, 33, 34,
1508 -1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
1509 -1, -1, -1, 48, 49, 50, -1, -1, -1, 54,
1510 55, -1, -1, -1, 59, 60, -1, -1, -1, 64,
1511 -1, 66, -1, -1, -1, -1, 71, -1, -1, -1,
1512 75, -1, -1, -1, 79, 80, -1, 82, 3, 4,
1513 -1, 6, 7, -1, -1, -1, 11, 12, 13, 14,
1514 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1515 25, 26, 27, 28, 29, -1, 3, 4, 5, 6,
1516 7, 8, 9, 38, 11, 12, 13, 14, 4, 5,
1517 6, 7, -1, -1, -1, -1, 12, 13, 14, -1,
1518 -1, 28, 29, 30, 31, -1, 33, 34, -1, -1,
1519 -1, -1, 28, 40, 30, -1, 43, 72, 45, -1,
1520 -1, 48, 49, 50, -1, -1, 81, 54, 55, 45,
1521 -1, -1, 59, 60, -1, -1, -1, 64, -1, 66,
1522 67, -1, -1, -1, 71, 72, -1, -1, 75, -1,
1523 -1, 67, 79, 80, 3, 4, 72, 6, 7, 8,
1524 9, 77, 11, 12, 13, 14, 40, 41, 42, 43,
1525 44, 45, 46, 47, 48, 49, 50, 51, 52, 28,
1526 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1527 -1, 40, -1, -1, 43, -1, 45, -1, -1, 48,
1528 49, 50, -1, -1, -1, 54, 55, -1, 3, -1,
1529 59, 60, -1, 8, 9, 64, 11, 66, 67, -1,
1530 -1, -1, 71, 72, -1, -1, 75, -1, -1, -1,
1531 79, 80, -1, -1, 29, -1, 31, -1, 33, 34,
1532 -1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
1533 -1, -1, -1, 48, 49, 50, -1, -1, -1, 54,
1534 55, -1, 3, -1, 59, 60, -1, 8, 9, 64,
1535 11, 66, 67, -1, -1, -1, 71, -1, -1, -1,
1536 75, -1, -1, -1, 79, 80, -1, -1, 29, -1,
1537 31, -1, 33, 34, -1, -1, -1, -1, -1, 40,
1538 -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1539 -1, -1, -1, 54, 55, -1, 3, -1, 59, 60,
1540 -1, 8, 9, 64, 11, 66, -1, -1, -1, -1,
1541 71, -1, -1, -1, 75, -1, 77, -1, 79, 80,
1542 -1, -1, 29, -1, 31, -1, 33, 34, -1, -1,
1543 -1, -1, -1, 40, -1, -1, 43, -1, -1, -1,
1544 -1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1545 3, -1, 59, 60, -1, 8, 9, 64, 11, 66,
1546 -1, -1, -1, -1, 71, -1, -1, -1, 75, -1,
1547 -1, -1, 79, 80, -1, -1, 29, -1, 31, -1,
1548 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1549 43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
1550 -1, 54, 55, -1, 3, -1, 59, 60, -1, 8,
1551 9, 64, 11, 66, -1, -1, -1, -1, 71, -1,
1552 -1, -1, 75, -1, -1, -1, 79, 80, -1, -1,
1553 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1554 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1555 49, 50, -1, -1, -1, 54, 55, -1, 3, -1,
1556 59, 60, -1, 8, 9, 64, 11, 66, -1, -1,
1557 -1, -1, 71, -1, -1, -1, 75, -1, -1, -1,
1558 79, 80, -1, -1, 29, -1, 31, -1, 33, 34,
1559 -1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
1560 -1, -1, -1, 48, 49, 50, -1, -1, -1, 54,
1561 55, -1, -1, -1, 59, 60, -1, -1, -1, 64,
1562 -1, 66, -1, -1, -1, -1, 71, -1, -1, -1,
1563 75, -1, -1, 1, 79, 80, 4, -1, 6, 7,
1564 -1, -1, -1, -1, 12, 13, 14, -1, -1, -1,
1565 -1, 1, -1, -1, 4, -1, 6, 7, -1, -1,
1566 28, -1, 12, 13, 14, 42, 43, 44, 45, 46,
1567 47, 48, 49, 50, 51, 52, -1, 45, 28, -1,
1568 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
1569 6, 7, -1, -1, -1, 45, 12, 13, 14, 67,
1570 68, 69, 70, -1, 72, -1, -1, -1, -1, 77,
1571 78, 27, 28, -1, 30, 31, -1, 67, 68, 69,
1572 70, -1, 72, -1, -1, -1, -1, 77, 78, 45,
1573 -1, -1, 48, 49, 50, -1, -1, -1, -1, -1,
1574 -1, -1, -1, 59, -1, 61, 62, 63, -1, -1,
1575 -1, 67, -1, -1, -1, 71, 72, 73, 74, -1,
1576 1, 77, 3, 4, 5, 6, 7, -1, -1, -1,
1577 -1, 12, 13, 14, 43, 44, 45, 46, 47, 48,
1578 49, 50, 51, 52, -1, -1, -1, 28, 1, 30,
1579 3, 4, 5, 6, 7, -1, -1, -1, -1, 12,
1580 13, 14, -1, -1, 45, -1, -1, 48, 49, 50,
1581 -1, -1, -1, -1, -1, 28, -1, 30, 59, -1,
1582 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1,
1583 -1, 72, 45, -1, -1, -1, 77, 50, 1, -1,
1584 3, 4, 5, 6, 7, -1, 59, 10, -1, 12,
1585 13, 14, -1, -1, 67, -1, -1, 1, -1, 72,
1586 4, 5, 6, 7, 77, 28, 10, 30, 12, 13,
1587 14, 4, -1, 6, 7, -1, -1, -1, -1, 12,
1588 13, 14, 45, -1, 28, -1, 30, -1, -1, -1,
1589 4, 5, 6, 7, -1, 28, -1, -1, 12, 13,
1590 14, 45, -1, -1, 67, -1, -1, -1, -1, 72,
1591 -1, -1, 45, 76, 28, -1, 30, -1, -1, -1,
1592 -1, -1, -1, 67, -1, -1, -1, -1, 72, -1,
1593 -1, 45, 76, -1, 67, -1, -1, -1, -1, 72,
1594 4, 5, 6, 7, 77, 78, -1, -1, 12, 13,
1595 14, -1, -1, 67, -1, -1, -1, -1, 72, -1,
1596 -1, -1, -1, 77, 28, -1, 30, -1, -1, -1,
1597 -1, -1, -1, -1, 3, 4, -1, 6, 7, -1,
1598 -1, 45, 11, 12, 13, 14, 15, 16, 17, 18,
1599 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1600 29, -1, -1, 67, -1, 30, -1, -1, 72, 38,
1601 35, 36, 37, 77, 39, 40, 41, 42, 43, 44,
1602 45, 46, 47, 48, 49, 50, 51, 52, -1, -1,
1603 59, -1, -1, -1, -1, -1, 3, 4, -1, 6,
1604 7, -1, -1, 72, 11, 12, 13, 14, 15, 16,
1605 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1606 27, 28, 29, -1, 3, 4, -1, 6, 7, -1,
1607 -1, 38, 11, 12, 13, 14, 15, 16, 17, 18,
1608 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1609 29, -1, -1, -1, -1, -1, -1, -1, -1, 38,
1610 3, 4, -1, 6, 7, 72, -1, -1, 11, 12,
1611 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1612 23, 24, 25, 26, 27, 28, 29, -1, -1, 4,
1613 -1, 6, 7, 72, -1, 38, -1, 12, 13, 14,
1614 4, 5, 6, 7, -1, -1, 10, -1, 12, 13,
1615 14, -1, -1, 28, -1, -1, -1, -1, -1, -1,
1616 -1, -1, -1, -1, 28, -1, 30, -1, -1, 72,
1617 45, -1, -1, -1, -1, 50, -1, -1, -1, -1,
1618 -1, 45, -1, -1, 59, 60, -1, -1, -1, -1,
1619 -1, -1, 67, -1, -1, -1, -1, 72, -1, -1,
1620 -1, -1, -1, 67, 4, 5, 6, 7, 72, -1,
1621 10, -1, 12, 13, 14, 4, 5, 6, 7, -1,
1622 -1, -1, -1, 12, 13, 14, -1, -1, 28, -1,
1623 30, -1, -1, -1, 4, 5, 6, 7, -1, 28,
1624 -1, 30, 12, 13, 14, 45, -1, -1, -1, -1,
1625 -1, -1, 4, -1, 6, 7, 45, -1, 28, -1,
1626 12, 13, 14, -1, -1, -1, -1, 67, -1, -1,
1627 -1, 4, 72, 6, 7, 45, 28, -1, 67, 12,
1628 13, 14, -1, 72, -1, -1, -1, -1, -1, -1,
1629 -1, -1, -1, 45, -1, 28, -1, 67, -1, -1,
1630 -1, -1, 72, -1, -1, -1, -1, -1, -1, -1,
1631 -1, -1, 45, -1, -1, 67, 10, -1, -1, -1,
1632 72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1633 -1, -1, -1, -1, 67, -1, -1, -1, -1, 72,
1634 -1, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1635 44, 45, 46, 47, 48, 49, 50, 51, 52, 35,
1636 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1637 46, 47, 48, 49, 50, 51, 52, 35, 36, 37,
1638 -1, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1641 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1642 #line 3 "/usr/cygnus/latest-940103/share/bison.simple"
1644 /* Skeleton output parser for bison,
1645 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1647 This program is free software; you can redistribute it and/or modify
1648 it under the terms of the GNU General Public License as published by
1649 the Free Software Foundation; either version 2, or (at your option)
1652 This program is distributed in the hope that it will be useful,
1653 but WITHOUT ANY WARRANTY; without even the implied warranty of
1654 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1655 GNU General Public License for more details.
1657 You should have received a copy of the GNU General Public License
1658 along with this program; if not, write to the Free Software
1659 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1661 /* As a special exception, when this file is copied by Bison into a
1662 Bison output file, you may use that output file without restriction.
1663 This special exception was added by the Free Software Foundation
1664 in version 1.24 of Bison. */
1668 #define alloca __builtin_alloca
1669 #else /* not GNU C. */
1670 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1672 #else /* not sparc */
1673 #if defined (MSDOS) && !defined (__TURBOC__)
1675 #else /* not MSDOS, or __TURBOC__ */
1679 #else /* not MSDOS, __TURBOC__, or _AIX */
1683 void *alloca (unsigned int);
1685 #else /* not __cplusplus */
1687 #endif /* not __cplusplus */
1689 #endif /* not _AIX */
1690 #endif /* not MSDOS, or __TURBOC__ */
1691 #endif /* not sparc. */
1692 #endif /* not GNU C. */
1693 #endif /* alloca not defined. */
1695 /* This is the parser code that is written into each bison parser
1696 when the %semantic_parser declaration is not specified in the grammar.
1697 It was written by Richard Stallman by simplifying the hairy parser
1698 used when %semantic_parser is specified. */
1700 /* Note: there must be only one dollar sign in this file.
1701 It is replaced by the list of actions, each action
1702 as one case of the switch. */
1704 #define yyerrok (yyerrstatus = 0)
1705 #define yyclearin (yychar = YYEMPTY)
1708 #define YYACCEPT return(0)
1709 #define YYABORT return(1)
1710 #define YYERROR goto yyerrlab1
1711 /* Like YYERROR except do call yyerror.
1712 This remains here temporarily to ease the
1713 transition to the new meaning of YYERROR, for GCC.
1714 Once GCC version 2 has supplanted version 1, this can go. */
1715 #define YYFAIL goto yyerrlab
1716 #define YYRECOVERING() (!!yyerrstatus)
1717 #define YYBACKUP(token, value) \
1719 if (yychar == YYEMPTY && yylen == 1) \
1720 { yychar = (token), yylval = (value); \
1721 yychar1 = YYTRANSLATE (yychar); \
1726 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1730 #define YYERRCODE 256
1733 #define YYLEX yylex()
1739 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1741 #define YYLEX yylex(&yylval, &yylloc)
1743 #else /* not YYLSP_NEEDED */
1745 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1747 #define YYLEX yylex(&yylval)
1749 #endif /* not YYLSP_NEEDED */
1752 /* If nonreentrant, generate the variables here */
1756 int yychar
; /* the lookahead symbol */
1757 YYSTYPE yylval
; /* the semantic value of the */
1758 /* lookahead symbol */
1761 YYLTYPE yylloc
; /* location data for the lookahead */
1765 int yynerrs
; /* number of parse errors so far */
1766 #endif /* not YYPURE */
1769 int yydebug
; /* nonzero means print parse trace */
1770 /* Since this is uninitialized, it does not stop multiple parsers
1774 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1777 #define YYINITDEPTH 200
1780 /* YYMAXDEPTH is the maximum size the stacks can grow to
1781 (effective only if the built-in stack extension method is used). */
1788 #define YYMAXDEPTH 10000
1791 /* Prevent warning if -Wstrict-prototypes. */
1796 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1797 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1798 #else /* not GNU C or C++ */
1801 /* This is the most reliable way to avoid incompatibilities
1802 in available built-in functions on various systems. */
1804 __yy_memcpy (to
, from
, count
)
1809 register char *f
= from
;
1810 register char *t
= to
;
1811 register int i
= count
;
1817 #else /* __cplusplus */
1819 /* This is the most reliable way to avoid incompatibilities
1820 in available built-in functions on various systems. */
1822 __yy_memcpy (char *to
, char *from
, int count
)
1824 register char *f
= from
;
1825 register char *t
= to
;
1826 register int i
= count
;
1835 #line 196 "/usr/cygnus/latest-940103/share/bison.simple"
1837 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1838 into yyparse. The argument should have type void *.
1839 It should actually point to an object.
1840 Grammar actions can access the variable by casting it
1841 to the proper pointer type. */
1843 #ifdef YYPARSE_PARAM
1845 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1846 #define YYPARSE_PARAM_DECL
1847 #else /* not __cplusplus */
1848 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1849 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1850 #endif /* not __cplusplus */
1851 #else /* not YYPARSE_PARAM */
1852 #define YYPARSE_PARAM_ARG
1853 #define YYPARSE_PARAM_DECL
1854 #endif /* not YYPARSE_PARAM */
1857 yyparse(YYPARSE_PARAM_ARG
)
1860 register int yystate
;
1862 register short *yyssp
;
1863 register YYSTYPE
*yyvsp
;
1864 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1865 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1867 short yyssa
[YYINITDEPTH
]; /* the state stack */
1868 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1870 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1871 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1874 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1875 YYLTYPE
*yyls
= yylsa
;
1878 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1880 #define YYPOPSTACK (yyvsp--, yyssp--)
1883 int yystacksize
= YYINITDEPTH
;
1894 YYSTYPE yyval
; /* the variable used to return */
1895 /* semantic values from the action */
1902 fprintf(stderr
, "Starting parse\n");
1908 yychar
= YYEMPTY
; /* Cause a token to be read. */
1910 /* Initialize stack pointers.
1911 Waste one element of value and location stack
1912 so that they stay on the same level as the state stack.
1913 The wasted elements are never initialized. */
1921 /* Push a new state, which is found in yystate . */
1922 /* In all cases, when you get here, the value and location stacks
1923 have just been pushed. so pushing a state here evens the stacks. */
1928 if (yyssp
>= yyss
+ yystacksize
- 1)
1930 /* Give user a chance to reallocate the stack */
1931 /* Use copies of these so that the &'s don't force the real ones into memory. */
1932 YYSTYPE
*yyvs1
= yyvs
;
1933 short *yyss1
= yyss
;
1935 YYLTYPE
*yyls1
= yyls
;
1938 /* Get the current used size of the three stacks, in elements. */
1939 int size
= yyssp
- yyss
+ 1;
1942 /* Each stack pointer address is followed by the size of
1943 the data in use in that stack, in bytes. */
1945 /* This used to be a conditional around just the two extra args,
1946 but that might be undefined if yyoverflow is a macro. */
1947 yyoverflow("parser stack overflow",
1948 &yyss1
, size
* sizeof (*yyssp
),
1949 &yyvs1
, size
* sizeof (*yyvsp
),
1950 &yyls1
, size
* sizeof (*yylsp
),
1953 yyoverflow("parser stack overflow",
1954 &yyss1
, size
* sizeof (*yyssp
),
1955 &yyvs1
, size
* sizeof (*yyvsp
),
1959 yyss
= yyss1
; yyvs
= yyvs1
;
1963 #else /* no yyoverflow */
1964 /* Extend the stack our own way. */
1965 if (yystacksize
>= YYMAXDEPTH
)
1967 yyerror("parser stack overflow");
1971 if (yystacksize
> YYMAXDEPTH
)
1972 yystacksize
= YYMAXDEPTH
;
1973 yyss
= (short *) alloca (yystacksize
* sizeof (*yyssp
));
1974 __yy_memcpy ((char *)yyss
, (char *)yyss1
, size
* sizeof (*yyssp
));
1975 yyvs
= (YYSTYPE
*) alloca (yystacksize
* sizeof (*yyvsp
));
1976 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
, size
* sizeof (*yyvsp
));
1978 yyls
= (YYLTYPE
*) alloca (yystacksize
* sizeof (*yylsp
));
1979 __yy_memcpy ((char *)yyls
, (char *)yyls1
, size
* sizeof (*yylsp
));
1981 #endif /* no yyoverflow */
1983 yyssp
= yyss
+ size
- 1;
1984 yyvsp
= yyvs
+ size
- 1;
1986 yylsp
= yyls
+ size
- 1;
1991 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
1994 if (yyssp
>= yyss
+ yystacksize
- 1)
2000 fprintf(stderr
, "Entering state %d\n", yystate
);
2006 /* Do appropriate processing given the current state. */
2007 /* Read a lookahead token if we need one and don't already have one. */
2010 /* First try to decide what to do without reference to lookahead token. */
2012 yyn
= yypact
[yystate
];
2016 /* Not known => get a lookahead token if don't already have one. */
2018 /* yychar is either YYEMPTY or YYEOF
2019 or a valid token in external form. */
2021 if (yychar
== YYEMPTY
)
2025 fprintf(stderr
, "Reading a token: ");
2030 /* Convert token to internal form (in yychar1) for indexing tables with */
2032 if (yychar
<= 0) /* This means end of input. */
2035 yychar
= YYEOF
; /* Don't call YYLEX any more */
2039 fprintf(stderr
, "Now at end of input.\n");
2044 yychar1
= YYTRANSLATE(yychar
);
2049 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
2050 /* Give the individual parser a way to print the precise meaning
2051 of a token, for further debugging info. */
2053 YYPRINT (stderr
, yychar
, yylval
);
2055 fprintf (stderr
, ")\n");
2061 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
2066 /* yyn is what to do for this token type in this state.
2067 Negative => reduce, -yyn is rule number.
2068 Positive => shift, yyn is new state.
2069 New state is final state => don't bother to shift,
2070 just return success.
2071 0, or most negative number => error. */
2086 /* Shift the lookahead token. */
2090 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
2093 /* Discard the token being shifted unless it is eof. */
2094 if (yychar
!= YYEOF
)
2102 /* count tokens shifted since error; after three, turn off error status. */
2103 if (yyerrstatus
) yyerrstatus
--;
2108 /* Do the default action for the current state. */
2111 yyn
= yydefact
[yystate
];
2115 /* Do a reduction. yyn is the number of a rule to reduce with. */
2119 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
2126 fprintf (stderr
, "Reducing via rule %d (line %d), ",
2129 /* Print the symbols being reduced, and their result. */
2130 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
2131 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
2132 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
2140 #line 240 "objc-parse.y"
2142 pedwarn ("ANSI C forbids an empty source file");
2147 #line 245 "objc-parse.y"
2149 /* In case there were missing closebraces,
2150 get us back to the global binding level. */
2151 while (! global_bindings_p ())
2157 #line 259 "objc-parse.y"
2158 {yyval
.ttype
= NULL_TREE
; ;
2161 #line 260 "objc-parse.y"
2162 {yyval
.ttype
= NULL_TREE
; ;
2165 #line 268 "objc-parse.y"
2166 { STRIP_NOPS (yyvsp
[-2].ttype
);
2167 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
2168 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
2169 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
2170 assemble_asm (yyvsp
[-2].ttype
);
2172 error ("argument of `asm' is not a constant string"); ;
2175 #line 276 "objc-parse.y"
2176 { pedantic
= yyvsp
[-1].itype
; ;
2179 #line 281 "objc-parse.y"
2181 error ("ANSI C forbids data definition with no type or storage class");
2182 else if (!flag_traditional
)
2183 warning ("data definition has no type or storage class");
2185 current_declspecs
= TREE_VALUE (declspec_stack
);
2186 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2187 declspec_stack
= TREE_CHAIN (declspec_stack
);
2188 resume_momentary (yyvsp
[-2].itype
); ;
2191 #line 291 "objc-parse.y"
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 296 "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 301 "objc-parse.y"
2206 { pedwarn ("empty declaration"); ;
2209 #line 303 "objc-parse.y"
2210 { shadow_tag (yyvsp
[-1].ttype
); ;
2213 #line 307 "objc-parse.y"
2215 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
2218 #line 313 "objc-parse.y"
2219 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2220 prefix_attributes
, NULL_TREE
, 0))
2222 reinit_parse_for_function (); ;
2225 #line 318 "objc-parse.y"
2226 { store_parm_decls (); ;
2229 #line 320 "objc-parse.y"
2230 { finish_function (0);
2231 current_declspecs
= TREE_VALUE (declspec_stack
);
2232 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2233 declspec_stack
= TREE_CHAIN (declspec_stack
);
2234 resume_momentary (yyvsp
[-5].itype
); ;
2237 #line 326 "objc-parse.y"
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
[-2].itype
); ;
2244 #line 331 "objc-parse.y"
2245 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2246 prefix_attributes
, NULL_TREE
, 0))
2248 reinit_parse_for_function (); ;
2251 #line 336 "objc-parse.y"
2252 { store_parm_decls (); ;
2255 #line 338 "objc-parse.y"
2256 { finish_function (0);
2257 current_declspecs
= TREE_VALUE (declspec_stack
);
2258 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2259 declspec_stack
= TREE_CHAIN (declspec_stack
);
2260 resume_momentary (yyvsp
[-5].itype
); ;
2263 #line 344 "objc-parse.y"
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
[-2].itype
); ;
2270 #line 349 "objc-parse.y"
2271 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
2272 prefix_attributes
, NULL_TREE
, 0))
2274 reinit_parse_for_function (); ;
2277 #line 354 "objc-parse.y"
2278 { store_parm_decls (); ;
2281 #line 356 "objc-parse.y"
2282 { finish_function (0);
2283 current_declspecs
= TREE_VALUE (declspec_stack
);
2284 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2285 declspec_stack
= TREE_CHAIN (declspec_stack
);
2286 resume_momentary (yyvsp
[-5].itype
); ;
2289 #line 362 "objc-parse.y"
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
[-2].itype
); ;
2296 #line 376 "objc-parse.y"
2297 { yyval
.code
= ADDR_EXPR
; ;
2300 #line 378 "objc-parse.y"
2301 { yyval
.code
= NEGATE_EXPR
; ;
2304 #line 380 "objc-parse.y"
2305 { yyval
.code
= CONVERT_EXPR
; ;
2308 #line 382 "objc-parse.y"
2309 { yyval
.code
= PREINCREMENT_EXPR
; ;
2312 #line 384 "objc-parse.y"
2313 { yyval
.code
= PREDECREMENT_EXPR
; ;
2316 #line 386 "objc-parse.y"
2317 { yyval
.code
= BIT_NOT_EXPR
; ;
2320 #line 388 "objc-parse.y"
2321 { yyval
.code
= TRUTH_NOT_EXPR
; ;
2324 #line 392 "objc-parse.y"
2325 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
2328 #line 397 "objc-parse.y"
2329 { yyval
.ttype
= NULL_TREE
; ;
2332 #line 403 "objc-parse.y"
2333 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
2336 #line 405 "objc-parse.y"
2337 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
2340 #line 411 "objc-parse.y"
2341 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
2344 #line 414 "objc-parse.y"
2345 { yyval
.ttype
= yyvsp
[0].ttype
;
2346 pedantic
= yyvsp
[-1].itype
; ;
2349 #line 417 "objc-parse.y"
2350 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
2351 overflow_warning (yyval
.ttype
); ;
2354 #line 421 "objc-parse.y"
2355 { tree label
= lookup_label (yyvsp
[0].ttype
);
2357 pedwarn ("ANSI C forbids `&&'");
2359 yyval
.ttype
= null_pointer_node
;
2362 TREE_USED (label
) = 1;
2363 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
2364 TREE_CONSTANT (yyval
.ttype
) = 1;
2369 #line 449 "objc-parse.y"
2370 { skip_evaluation
--;
2371 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
2372 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
2373 error ("`sizeof' applied to a bit-field");
2374 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
2377 #line 455 "objc-parse.y"
2378 { skip_evaluation
--;
2379 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
2382 #line 458 "objc-parse.y"
2383 { skip_evaluation
--;
2384 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
2387 #line 461 "objc-parse.y"
2388 { skip_evaluation
--;
2389 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
2392 #line 464 "objc-parse.y"
2393 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2396 #line 466 "objc-parse.y"
2397 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2400 #line 470 "objc-parse.y"
2401 { skip_evaluation
++; ;
2404 #line 474 "objc-parse.y"
2405 { skip_evaluation
++; ;
2408 #line 480 "objc-parse.y"
2409 { tree type
= groktypename (yyvsp
[-2].ttype
);
2410 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
2413 #line 483 "objc-parse.y"
2414 { start_init (NULL_TREE
, NULL
, 0);
2415 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
2416 really_start_incremental_init (yyvsp
[-2].ttype
); ;
2419 #line 487 "objc-parse.y"
2421 tree result
= pop_init_level (0);
2422 tree type
= yyvsp
[-5].ttype
;
2426 pedwarn ("ANSI C forbids constructor expressions");
2427 if (TYPE_NAME (type
) != 0)
2429 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
2430 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
2432 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
2436 yyval
.ttype
= result
;
2437 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
2439 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
2446 #line 516 "objc-parse.y"
2447 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2450 #line 518 "objc-parse.y"
2451 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2454 #line 520 "objc-parse.y"
2455 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2458 #line 522 "objc-parse.y"
2459 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2462 #line 524 "objc-parse.y"
2463 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2466 #line 526 "objc-parse.y"
2467 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2470 #line 528 "objc-parse.y"
2471 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2474 #line 530 "objc-parse.y"
2475 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2478 #line 532 "objc-parse.y"
2479 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2482 #line 534 "objc-parse.y"
2483 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2486 #line 536 "objc-parse.y"
2487 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2490 #line 538 "objc-parse.y"
2491 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2494 #line 540 "objc-parse.y"
2495 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2496 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2499 #line 543 "objc-parse.y"
2500 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2501 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2504 #line 546 "objc-parse.y"
2505 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2506 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2509 #line 549 "objc-parse.y"
2510 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2511 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2514 #line 552 "objc-parse.y"
2515 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2516 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2519 #line 555 "objc-parse.y"
2520 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2521 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2524 #line 558 "objc-parse.y"
2525 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2526 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2529 #line 561 "objc-parse.y"
2531 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2532 /* Make sure first operand is calculated only once. */
2533 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2534 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2535 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2538 #line 568 "objc-parse.y"
2539 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2540 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2543 #line 571 "objc-parse.y"
2544 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2545 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
); ;
2548 #line 574 "objc-parse.y"
2549 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2550 /* This inhibits warnings in truthvalue_conversion. */
2551 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
); ;
2554 #line 581 "objc-parse.y"
2556 yyval
.ttype
= lastiddecl
;
2557 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2559 if (yychar
== YYEMPTY
)
2565 if (objc_receiver_context
2566 && ! (objc_receiver_context
2567 && strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super")))
2568 /* we have a message to super */
2569 yyval
.ttype
= get_super_receiver ();
2570 else if (objc_method_context
2571 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2573 if (is_private (decl
))
2574 yyval
.ttype
= error_mark_node
;
2576 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2580 /* Ordinary implicit function declaration. */
2581 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2582 assemble_external (yyval
.ttype
);
2583 TREE_USED (yyval
.ttype
) = 1;
2586 else if (current_function_decl
== 0)
2588 error ("`%s' undeclared here (not in a function)",
2589 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2590 yyval
.ttype
= error_mark_node
;
2596 if (objc_receiver_context
2597 && ! strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super"))
2598 /* we have a message to super */
2599 yyval
.ttype
= get_super_receiver ();
2600 else if (objc_method_context
2601 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2603 if (is_private (decl
))
2604 yyval
.ttype
= error_mark_node
;
2606 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2610 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2611 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2613 error ("`%s' undeclared (first use this function)",
2614 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2616 if (! undeclared_variable_notice
)
2618 error ("(Each undeclared identifier is reported only once");
2619 error ("for each function it appears in.)");
2620 undeclared_variable_notice
= 1;
2623 yyval
.ttype
= error_mark_node
;
2624 /* Prevent repeated error messages. */
2625 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2626 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2630 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2631 yyval
.ttype
= error_mark_node
;
2632 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2634 /* The first time we see a build-in function used,
2635 if it has not been declared. */
2636 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2637 if (yychar
== YYEMPTY
)
2641 /* Omit the implicit declaration we
2642 would ordinarily do, so we don't lose
2643 the actual built in type.
2644 But print a diagnostic for the mismatch. */
2645 if (objc_method_context
2646 && is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
))
2647 error ("Instance variable `%s' implicitly declared as function",
2648 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2650 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2651 error ("`%s' implicitly declared as function",
2652 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2653 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2654 != TYPE_MODE (integer_type_node
))
2655 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2657 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2658 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2659 /* If it really returns void, change that to int. */
2660 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2661 TREE_TYPE (yyval
.ttype
)
2662 = build_function_type (integer_type_node
,
2663 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2666 pedwarn ("built-in function `%s' used without declaration",
2667 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2669 /* Do what we would ordinarily do when a fn is used. */
2670 assemble_external (yyval
.ttype
);
2671 TREE_USED (yyval
.ttype
) = 1;
2675 assemble_external (yyval
.ttype
);
2676 TREE_USED (yyval
.ttype
) = 1;
2677 /* we have a definition - still check if iVariable */
2679 if (!objc_receiver_context
2680 || (objc_receiver_context
2681 && strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super")))
2685 if (objc_method_context
2686 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2688 if (IDENTIFIER_LOCAL_VALUE (yyvsp
[0].ttype
))
2689 warning ("local declaration of `%s' hides instance variable",
2690 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2693 if (is_private (decl
))
2694 yyval
.ttype
= error_mark_node
;
2696 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2700 else /* we have a message to super */
2701 yyval
.ttype
= get_super_receiver ();
2704 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2706 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2707 /* This is to prevent an enum whose value is 0
2708 from being considered a null pointer constant. */
2709 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2710 TREE_CONSTANT (yyval
.ttype
) = 1;
2715 #line 741 "objc-parse.y"
2716 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2719 #line 743 "objc-parse.y"
2720 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2721 if (class == 'e' || class == '1'
2722 || class == '2' || class == '<')
2723 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2724 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2727 #line 749 "objc-parse.y"
2728 { yyval
.ttype
= error_mark_node
; ;
2731 #line 751 "objc-parse.y"
2732 { if (current_function_decl
== 0)
2734 error ("braced-group within expression allowed only inside a function");
2737 /* We must force a BLOCK for this level
2738 so that, if it is not expanded later,
2739 there is a way to turn off the entire subtree of blocks
2740 that are contained in it. */
2742 push_iterator_stack ();
2743 push_label_level ();
2744 yyval
.ttype
= expand_start_stmt_expr (); ;
2747 #line 765 "objc-parse.y"
2750 pedwarn ("ANSI C forbids braced-groups within expressions");
2751 pop_iterator_stack ();
2753 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2754 /* The statements have side effects, so the group does. */
2755 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2757 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2759 /* Make a BIND_EXPR for the BLOCK already made. */
2760 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2761 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2762 /* Remove the block from the tree at this point.
2763 It gets put back at the proper place
2764 when the BIND_EXPR is expanded. */
2765 delete_block (yyvsp
[-1].ttype
);
2768 yyval
.ttype
= yyvsp
[-1].ttype
;
2772 #line 788 "objc-parse.y"
2773 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2776 #line 790 "objc-parse.y"
2777 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2780 #line 792 "objc-parse.y"
2782 if (doing_objc_thang
)
2784 if (is_public (yyvsp
[-2].ttype
, yyvsp
[0].ttype
))
2785 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2787 yyval
.ttype
= error_mark_node
;
2790 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2794 #line 804 "objc-parse.y"
2796 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2798 if (doing_objc_thang
)
2800 if (is_public (expr
, yyvsp
[0].ttype
))
2801 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2803 yyval
.ttype
= error_mark_node
;
2806 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2810 #line 818 "objc-parse.y"
2811 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2814 #line 820 "objc-parse.y"
2815 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2818 #line 822 "objc-parse.y"
2819 { yyval
.ttype
= build_message_expr (yyvsp
[0].ttype
); ;
2822 #line 824 "objc-parse.y"
2823 { yyval
.ttype
= build_selector_expr (yyvsp
[0].ttype
); ;
2826 #line 826 "objc-parse.y"
2827 { yyval
.ttype
= build_protocol_expr (yyvsp
[0].ttype
); ;
2830 #line 828 "objc-parse.y"
2831 { yyval
.ttype
= build_encode_expr (yyvsp
[0].ttype
); ;
2834 #line 830 "objc-parse.y"
2835 { yyval
.ttype
= build_objc_string_object (yyvsp
[0].ttype
); ;
2838 #line 837 "objc-parse.y"
2839 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2842 #line 845 "objc-parse.y"
2843 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2846 #line 853 "objc-parse.y"
2847 { c_mark_varargs ();
2849 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2852 #line 863 "objc-parse.y"
2856 #line 879 "objc-parse.y"
2857 { current_declspecs
= TREE_VALUE (declspec_stack
);
2858 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2859 declspec_stack
= TREE_CHAIN (declspec_stack
);
2860 resume_momentary (yyvsp
[-2].itype
); ;
2863 #line 884 "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 889 "objc-parse.y"
2871 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2872 pedwarn ("empty declaration"); ;
2875 #line 892 "objc-parse.y"
2876 { pedwarn ("empty declaration"); ;
2879 #line 901 "objc-parse.y"
2883 #line 916 "objc-parse.y"
2884 { yyval
.itype
= suspend_momentary ();
2885 pending_xref_error ();
2886 declspec_stack
= tree_cons (prefix_attributes
,
2889 split_specs_attrs (yyvsp
[0].ttype
,
2890 ¤t_declspecs
, &prefix_attributes
); ;
2893 #line 927 "objc-parse.y"
2894 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2897 #line 932 "objc-parse.y"
2898 { current_declspecs
= TREE_VALUE (declspec_stack
);
2899 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2900 declspec_stack
= TREE_CHAIN (declspec_stack
);
2901 resume_momentary (yyvsp
[-2].itype
); ;
2904 #line 937 "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 942 "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
[-1].itype
); ;
2918 #line 947 "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 952 "objc-parse.y"
2926 { shadow_tag (yyvsp
[-1].ttype
); ;
2929 #line 954 "objc-parse.y"
2930 { pedwarn ("empty declaration"); ;
2933 #line 956 "objc-parse.y"
2934 { pedantic
= yyvsp
[-1].itype
; ;
2937 #line 966 "objc-parse.y"
2938 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2941 #line 968 "objc-parse.y"
2942 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2945 #line 972 "objc-parse.y"
2946 { yyval
.ttype
= NULL_TREE
; ;
2949 #line 974 "objc-parse.y"
2950 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2953 #line 976 "objc-parse.y"
2954 { if (extra_warnings
)
2955 warning ("`%s' is not at beginning of declaration",
2956 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2957 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2960 #line 981 "objc-parse.y"
2961 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2964 #line 986 "objc-parse.y"
2965 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2968 #line 988 "objc-parse.y"
2969 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2972 #line 993 "objc-parse.y"
2973 { yyval
.ttype
= NULL_TREE
; ;
2976 #line 995 "objc-parse.y"
2977 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2980 #line 997 "objc-parse.y"
2981 { if (extra_warnings
)
2982 warning ("`%s' is not at beginning of declaration",
2983 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2984 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2987 #line 1010 "objc-parse.y"
2988 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2991 #line 1012 "objc-parse.y"
2992 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
2995 #line 1014 "objc-parse.y"
2996 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2999 #line 1016 "objc-parse.y"
3000 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3003 #line 1021 "objc-parse.y"
3004 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
3005 TREE_STATIC (yyval
.ttype
) = 1; ;
3008 #line 1024 "objc-parse.y"
3009 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3012 #line 1026 "objc-parse.y"
3013 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3014 TREE_STATIC (yyval
.ttype
) = 1; ;
3017 #line 1029 "objc-parse.y"
3018 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
3019 warning ("`%s' is not at beginning of declaration",
3020 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
3021 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3022 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
3025 #line 1043 "objc-parse.y"
3026 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3029 #line 1045 "objc-parse.y"
3030 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
3033 #line 1049 "objc-parse.y"
3034 { yyval
.ttype
= NULL_TREE
; ;
3037 #line 1051 "objc-parse.y"
3038 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3041 #line 1061 "objc-parse.y"
3042 { /* For a typedef name, record the meaning, not the name.
3043 In case of `foo foo, bar;'. */
3044 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
3047 #line 1065 "objc-parse.y"
3048 { yyval
.ttype
= get_static_reference (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3051 #line 1067 "objc-parse.y"
3052 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3055 #line 1072 "objc-parse.y"
3056 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3059 #line 1074 "objc-parse.y"
3060 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
3063 #line 1076 "objc-parse.y"
3064 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
3067 #line 1098 "objc-parse.y"
3068 { yyval
.ttype
= NULL_TREE
; ;
3071 #line 1100 "objc-parse.y"
3072 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
3073 yyval
.ttype
= yyvsp
[-1].ttype
;
3077 #line 1107 "objc-parse.y"
3078 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3079 yyvsp
[-1].ttype
, prefix_attributes
);
3080 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3083 #line 1112 "objc-parse.y"
3085 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3088 #line 1115 "objc-parse.y"
3089 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3090 yyvsp
[0].ttype
, prefix_attributes
);
3091 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
3095 #line 1123 "objc-parse.y"
3096 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3097 yyvsp
[-1].ttype
, prefix_attributes
);
3098 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3101 #line 1128 "objc-parse.y"
3103 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
3104 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3107 #line 1132 "objc-parse.y"
3108 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3109 yyvsp
[0].ttype
, prefix_attributes
);
3110 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3113 #line 1140 "objc-parse.y"
3114 { yyval
.ttype
= NULL_TREE
; ;
3117 #line 1142 "objc-parse.y"
3118 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3121 #line 1147 "objc-parse.y"
3122 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3125 #line 1149 "objc-parse.y"
3126 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3129 #line 1154 "objc-parse.y"
3130 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
3133 #line 1159 "objc-parse.y"
3134 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3137 #line 1161 "objc-parse.y"
3138 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3141 #line 1166 "objc-parse.y"
3142 { yyval
.ttype
= NULL_TREE
; ;
3145 #line 1168 "objc-parse.y"
3146 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
3149 #line 1170 "objc-parse.y"
3150 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
3153 #line 1172 "objc-parse.y"
3154 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
3157 #line 1174 "objc-parse.y"
3158 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3161 #line 1192 "objc-parse.y"
3162 { really_start_incremental_init (NULL_TREE
);
3163 /* Note that the call to clear_momentary
3164 is in process_init_element. */
3165 push_momentary (); ;
3168 #line 1197 "objc-parse.y"
3169 { yyval
.ttype
= pop_init_level (0);
3170 if (yyval
.ttype
== error_mark_node
3171 && ! (yychar
== STRING
|| yychar
== CONSTANT
))
3174 pop_momentary_nofree (); ;
3177 #line 1205 "objc-parse.y"
3178 { yyval
.ttype
= error_mark_node
; ;
3181 #line 1211 "objc-parse.y"
3183 pedwarn ("ANSI C forbids empty initializer braces"); ;
3186 #line 1225 "objc-parse.y"
3187 { process_init_element (yyvsp
[0].ttype
); ;
3190 #line 1227 "objc-parse.y"
3191 { push_init_level (0); ;
3194 #line 1229 "objc-parse.y"
3195 { process_init_element (pop_init_level (0)); ;
3198 #line 1235 "objc-parse.y"
3199 { set_init_label (yyvsp
[-1].ttype
); ;
3202 #line 1238 "objc-parse.y"
3203 { set_init_label (yyvsp
[-1].ttype
); ;
3206 #line 1244 "objc-parse.y"
3207 { push_c_function_context ();
3208 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3209 prefix_attributes
, NULL_TREE
, 1))
3211 pop_c_function_context ();
3214 reinit_parse_for_function (); ;
3217 #line 1253 "objc-parse.y"
3218 { store_parm_decls (); ;
3221 #line 1261 "objc-parse.y"
3222 { finish_function (1);
3223 pop_c_function_context (); ;
3226 #line 1267 "objc-parse.y"
3227 { push_c_function_context ();
3228 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3229 prefix_attributes
, NULL_TREE
, 1))
3231 pop_c_function_context ();
3234 reinit_parse_for_function (); ;
3237 #line 1276 "objc-parse.y"
3238 { store_parm_decls (); ;
3241 #line 1284 "objc-parse.y"
3242 { finish_function (1);
3243 pop_c_function_context (); ;
3246 #line 1300 "objc-parse.y"
3247 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3250 #line 1302 "objc-parse.y"
3251 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3254 #line 1307 "objc-parse.y"
3255 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3258 #line 1309 "objc-parse.y"
3259 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3262 #line 1311 "objc-parse.y"
3263 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3266 #line 1318 "objc-parse.y"
3267 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3270 #line 1330 "objc-parse.y"
3271 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3274 #line 1335 "objc-parse.y"
3275 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3278 #line 1337 "objc-parse.y"
3279 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3282 #line 1339 "objc-parse.y"
3283 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3286 #line 1346 "objc-parse.y"
3287 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3290 #line 1355 "objc-parse.y"
3291 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3294 #line 1360 "objc-parse.y"
3295 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3298 #line 1362 "objc-parse.y"
3299 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3302 #line 1364 "objc-parse.y"
3303 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3306 #line 1366 "objc-parse.y"
3307 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3310 #line 1373 "objc-parse.y"
3311 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3314 #line 1379 "objc-parse.y"
3315 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
3316 /* Start scope of tag before parsing components. */
3320 #line 1383 "objc-parse.y"
3321 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3324 #line 1385 "objc-parse.y"
3325 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
3326 yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
3330 #line 1389 "objc-parse.y"
3331 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
3334 #line 1391 "objc-parse.y"
3335 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
3338 #line 1393 "objc-parse.y"
3339 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3342 #line 1395 "objc-parse.y"
3343 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
3344 yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
3348 #line 1399 "objc-parse.y"
3349 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
3352 #line 1401 "objc-parse.y"
3353 { yyvsp
[0].itype
= suspend_momentary ();
3354 yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
3357 #line 1404 "objc-parse.y"
3358 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), yyvsp
[0].ttype
);
3359 resume_momentary (yyvsp
[-5].itype
); ;
3362 #line 1407 "objc-parse.y"
3363 { yyvsp
[0].itype
= suspend_momentary ();
3364 yyval
.ttype
= start_enum (NULL_TREE
); ;
3367 #line 1410 "objc-parse.y"
3368 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), yyvsp
[0].ttype
);
3369 resume_momentary (yyvsp
[-5].itype
); ;
3372 #line 1413 "objc-parse.y"
3373 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
3376 #line 1424 "objc-parse.y"
3377 { if (pedantic
) pedwarn ("comma at end of enumerator list"); ;
3380 #line 1429 "objc-parse.y"
3381 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3384 #line 1431 "objc-parse.y"
3385 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
3386 pedwarn ("no semicolon at end of struct or union"); ;
3389 #line 1436 "objc-parse.y"
3390 { yyval
.ttype
= NULL_TREE
; ;
3393 #line 1438 "objc-parse.y"
3394 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
3397 #line 1440 "objc-parse.y"
3399 pedwarn ("extra semicolon in struct or union specified"); ;
3402 #line 1444 "objc-parse.y"
3404 tree interface
= lookup_interface (yyvsp
[-1].ttype
);
3407 yyval
.ttype
= get_class_ivars (interface
);
3410 error ("Cannot find interface declaration for `%s'",
3411 IDENTIFIER_POINTER (yyvsp
[-1].ttype
));
3412 yyval
.ttype
= NULL_TREE
;
3417 #line 1469 "objc-parse.y"
3418 { yyval
.ttype
= yyvsp
[0].ttype
;
3419 current_declspecs
= TREE_VALUE (declspec_stack
);
3420 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3421 declspec_stack
= TREE_CHAIN (declspec_stack
);
3422 resume_momentary (yyvsp
[-1].itype
); ;
3425 #line 1475 "objc-parse.y"
3427 pedwarn ("ANSI C forbids member declarations with no members");
3428 shadow_tag(yyvsp
[0].ttype
);
3429 yyval
.ttype
= NULL_TREE
; ;
3432 #line 1480 "objc-parse.y"
3433 { yyval
.ttype
= yyvsp
[0].ttype
;
3434 current_declspecs
= TREE_VALUE (declspec_stack
);
3435 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3436 declspec_stack
= TREE_CHAIN (declspec_stack
);
3437 resume_momentary (yyvsp
[-1].itype
); ;
3440 #line 1486 "objc-parse.y"
3442 pedwarn ("ANSI C forbids member declarations with no members");
3443 shadow_tag(yyvsp
[0].ttype
);
3444 yyval
.ttype
= NULL_TREE
; ;
3447 #line 1491 "objc-parse.y"
3448 { yyval
.ttype
= NULL_TREE
; ;
3451 #line 1493 "objc-parse.y"
3452 { yyval
.ttype
= yyvsp
[0].ttype
;
3453 pedantic
= yyvsp
[-1].itype
; ;
3456 #line 1500 "objc-parse.y"
3457 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3460 #line 1505 "objc-parse.y"
3461 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
3462 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3465 #line 1509 "objc-parse.y"
3466 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
3467 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3470 #line 1512 "objc-parse.y"
3471 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
3472 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3475 #line 1524 "objc-parse.y"
3476 { if (yyvsp
[-2].ttype
== error_mark_node
)
3477 yyval
.ttype
= yyvsp
[-2].ttype
;
3479 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
3482 #line 1529 "objc-parse.y"
3483 { yyval
.ttype
= error_mark_node
; ;
3486 #line 1535 "objc-parse.y"
3487 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
3490 #line 1537 "objc-parse.y"
3491 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3494 #line 1542 "objc-parse.y"
3495 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3498 #line 1544 "objc-parse.y"
3499 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3502 #line 1549 "objc-parse.y"
3503 { yyval
.ttype
= NULL_TREE
; ;
3506 #line 1555 "objc-parse.y"
3507 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3510 #line 1557 "objc-parse.y"
3511 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3514 #line 1562 "objc-parse.y"
3515 { yyval
.ttype
= NULL_TREE
; ;
3518 #line 1564 "objc-parse.y"
3519 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3522 #line 1569 "objc-parse.y"
3523 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3526 #line 1572 "objc-parse.y"
3527 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3530 #line 1574 "objc-parse.y"
3531 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3534 #line 1576 "objc-parse.y"
3535 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3538 #line 1578 "objc-parse.y"
3539 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3542 #line 1580 "objc-parse.y"
3543 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3546 #line 1582 "objc-parse.y"
3547 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3550 #line 1584 "objc-parse.y"
3551 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3554 #line 1586 "objc-parse.y"
3555 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3558 #line 1597 "objc-parse.y"
3560 if (pedantic
&& yyvsp
[0].ends_in_label
)
3561 pedwarn ("ANSI C forbids label at end of compound statement");
3565 #line 1606 "objc-parse.y"
3566 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3569 #line 1608 "objc-parse.y"
3570 { yyval
.ends_in_label
= 0; ;
3573 #line 1620 "objc-parse.y"
3574 { emit_line_note (input_filename
, lineno
);
3578 expand_start_bindings (0);
3579 if (objc_method_context
)
3584 #line 1635 "objc-parse.y"
3586 pedwarn ("ANSI C forbids label declarations"); ;
3589 #line 1646 "objc-parse.y"
3591 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3593 tree label
= shadow_label (TREE_VALUE (link
));
3594 C_DECLARED_LABEL_FLAG (label
) = 1;
3595 declare_nonlocal_label (label
);
3600 #line 1660 "objc-parse.y"
3604 #line 1664 "objc-parse.y"
3605 { compstmt_count
++; ;
3608 #line 1667 "objc-parse.y"
3609 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3612 #line 1669 "objc-parse.y"
3613 { emit_line_note (input_filename
, lineno
);
3614 expand_end_bindings (getdecls (), 1, 0);
3615 yyval
.ttype
= poplevel (1, 1, 0);
3616 if (yychar
== CONSTANT
|| yychar
== STRING
)
3617 pop_momentary_nofree ();
3622 #line 1677 "objc-parse.y"
3623 { emit_line_note (input_filename
, lineno
);
3624 expand_end_bindings (getdecls (), kept_level_p (), 0);
3625 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3626 if (yychar
== CONSTANT
|| yychar
== STRING
)
3627 pop_momentary_nofree ();
3632 #line 1685 "objc-parse.y"
3633 { emit_line_note (input_filename
, lineno
);
3634 expand_end_bindings (getdecls (), kept_level_p (), 0);
3635 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3636 if (yychar
== CONSTANT
|| yychar
== STRING
)
3637 pop_momentary_nofree ();
3642 #line 1705 "objc-parse.y"
3643 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3644 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3646 yyval
.itype
= stmt_count
;
3647 if_stmt_file
= yyvsp
[-5].filename
;
3648 if_stmt_line
= yyvsp
[-4].lineno
;
3649 position_after_white_space (); ;
3652 #line 1719 "objc-parse.y"
3655 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3656 /* See comment in `while' alternative, above. */
3658 expand_start_loop_continue_elsewhere (1);
3659 position_after_white_space (); ;
3662 #line 1727 "objc-parse.y"
3663 { expand_loop_continue_here (); ;
3666 #line 1731 "objc-parse.y"
3667 { yyval
.filename
= input_filename
; ;
3670 #line 1735 "objc-parse.y"
3671 { yyval
.lineno
= lineno
; ;
3674 #line 1740 "objc-parse.y"
3678 #line 1745 "objc-parse.y"
3682 #line 1750 "objc-parse.y"
3683 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3686 #line 1755 "objc-parse.y"
3687 { yyval
.ends_in_label
= 0; ;
3690 #line 1757 "objc-parse.y"
3691 { yyval
.ends_in_label
= 1; ;
3694 #line 1763 "objc-parse.y"
3698 #line 1766 "objc-parse.y"
3700 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3701 /* It appears that this should not be done--that a non-lvalue array
3702 shouldn't get an error if the value isn't used.
3703 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3704 if it appears as a top-level expression,
3705 but says nothing about non-lvalue arrays. */
3707 /* Call default_conversion to get an error
3708 on referring to a register array if pedantic. */
3709 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3710 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3711 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3713 iterator_expand (yyvsp
[-1].ttype
);
3714 clear_momentary (); ;
3717 #line 1783 "objc-parse.y"
3718 { c_expand_start_else ();
3719 yyvsp
[-1].itype
= stmt_count
;
3720 position_after_white_space (); ;
3723 #line 1787 "objc-parse.y"
3724 { c_expand_end_cond ();
3725 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3726 warning ("empty body in an else-statement"); ;
3729 #line 1791 "objc-parse.y"
3730 { c_expand_end_cond ();
3731 /* This warning is here instead of in simple_if, because we
3732 do not want a warning if an empty if is followed by an
3733 else statement. Increment stmt_count so we don't
3734 give a second error if this is a nested `if'. */
3735 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3736 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3737 "empty body in an if-statement"); ;
3740 #line 1803 "objc-parse.y"
3741 { c_expand_end_cond (); ;
3744 #line 1805 "objc-parse.y"
3746 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3747 /* The emit_nop used to come before emit_line_note,
3748 but that made the nop seem like part of the preceding line.
3749 And that was confusing when the preceding line was
3750 inside of an if statement and was not really executed.
3751 I think it ought to work to put the nop after the line number.
3752 We will see. --rms, July 15, 1991. */
3756 #line 1815 "objc-parse.y"
3757 { /* Don't start the loop till we have succeeded
3758 in parsing the end test. This is to make sure
3759 that we end every loop we start. */
3760 expand_start_loop (1);
3761 emit_line_note (input_filename
, lineno
);
3762 expand_exit_loop_if_false (NULL_PTR
,
3763 truthvalue_conversion (yyvsp
[-1].ttype
));
3764 position_after_white_space (); ;
3767 #line 1824 "objc-parse.y"
3768 { expand_end_loop (); ;
3771 #line 1827 "objc-parse.y"
3772 { emit_line_note (input_filename
, lineno
);
3773 expand_exit_loop_if_false (NULL_PTR
,
3774 truthvalue_conversion (yyvsp
[-2].ttype
));
3776 clear_momentary (); ;
3779 #line 1834 "objc-parse.y"
3780 { expand_end_loop ();
3781 clear_momentary (); ;
3784 #line 1838 "objc-parse.y"
3786 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3787 /* See comment in `while' alternative, above. */
3789 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3790 /* Next step is to call expand_start_loop_continue_elsewhere,
3791 but wait till after we parse the entire for (...).
3792 Otherwise, invalid input might cause us to call that
3793 fn without calling expand_end_loop. */
3797 #line 1850 "objc-parse.y"
3798 { yyvsp
[0].lineno
= lineno
;
3799 yyval
.filename
= input_filename
; ;
3802 #line 1853 "objc-parse.y"
3804 /* Start the loop. Doing this after parsing
3805 all the expressions ensures we will end the loop. */
3806 expand_start_loop_continue_elsewhere (1);
3807 /* Emit the end-test, with a line number. */
3808 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3809 if (yyvsp
[-4].ttype
)
3810 expand_exit_loop_if_false (NULL_PTR
,
3811 truthvalue_conversion (yyvsp
[-4].ttype
));
3812 /* Don't let the tree nodes for $9 be discarded by
3813 clear_momentary during the parsing of the next stmt. */
3815 yyvsp
[-3].lineno
= lineno
;
3816 yyvsp
[-2].filename
= input_filename
;
3817 position_after_white_space (); ;
3820 #line 1869 "objc-parse.y"
3821 { /* Emit the increment expression, with a line number. */
3822 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3823 expand_loop_continue_here ();
3824 if (yyvsp
[-3].ttype
)
3825 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3826 if (yychar
== CONSTANT
|| yychar
== STRING
)
3827 pop_momentary_nofree ();
3830 expand_end_loop (); ;
3833 #line 1880 "objc-parse.y"
3835 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3836 c_expand_start_case (yyvsp
[-1].ttype
);
3837 /* Don't let the tree nodes for $3 be discarded by
3838 clear_momentary during the parsing of the next stmt. */
3840 position_after_white_space (); ;
3843 #line 1888 "objc-parse.y"
3844 { expand_end_case (yyvsp
[-3].ttype
);
3845 if (yychar
== CONSTANT
|| yychar
== STRING
)
3846 pop_momentary_nofree ();
3851 #line 1894 "objc-parse.y"
3853 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3854 if ( ! expand_exit_something ())
3855 error ("break statement not within loop or switch"); ;
3858 #line 1899 "objc-parse.y"
3860 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3861 if (! expand_continue_loop (NULL_PTR
))
3862 error ("continue statement not within a loop"); ;
3865 #line 1904 "objc-parse.y"
3867 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3868 c_expand_return (NULL_TREE
); ;
3871 #line 1908 "objc-parse.y"
3873 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3874 c_expand_return (yyvsp
[-1].ttype
); ;
3877 #line 1912 "objc-parse.y"
3879 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3880 STRIP_NOPS (yyvsp
[-2].ttype
);
3881 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3882 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3883 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3884 expand_asm (yyvsp
[-2].ttype
);
3886 error ("argument of `asm' is not a constant string"); ;
3889 #line 1923 "objc-parse.y"
3891 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3892 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3893 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3894 input_filename
, lineno
); ;
3897 #line 1930 "objc-parse.y"
3899 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3900 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3901 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3902 input_filename
, lineno
); ;
3905 #line 1938 "objc-parse.y"
3907 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3908 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3909 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3910 input_filename
, lineno
); ;
3913 #line 1944 "objc-parse.y"
3916 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3917 decl
= lookup_label (yyvsp
[-1].ttype
);
3920 TREE_USED (decl
) = 1;
3926 #line 1955 "objc-parse.y"
3928 pedwarn ("ANSI C forbids `goto *expr;'");
3930 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3931 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3934 #line 1970 "objc-parse.y"
3936 /* The value returned by this action is */
3937 /* 1 if everything is OK */
3938 /* 0 in case of error or already bound iterator */
3941 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3942 error ("invalid `for (ITERATOR)' syntax");
3943 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3944 error ("`%s' is not an iterator",
3945 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3946 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3947 error ("`for (%s)' inside expansion of same iterator",
3948 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3952 iterator_for_loop_start (yyvsp
[-1].ttype
);
3957 #line 1991 "objc-parse.y"
3959 if (yyvsp
[-1].itype
)
3960 iterator_for_loop_end (yyvsp
[-3].ttype
);
3964 #line 2026 "objc-parse.y"
3965 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
3967 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3971 if (value
!= error_mark_node
)
3974 int success
= pushcase (value
, convert_and_check
,
3977 error ("case label not within a switch statement");
3978 else if (success
== 2)
3980 error ("duplicate case value");
3981 error_with_decl (duplicate
, "this is the first entry for that value");
3983 else if (success
== 3)
3984 warning ("case value out of range");
3985 else if (success
== 5)
3986 error ("case label within scope of cleanup or variable array");
3988 position_after_white_space (); ;
3991 #line 2051 "objc-parse.y"
3992 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
3993 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
3995 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3998 pedwarn ("ANSI C forbids case ranges");
4001 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
4004 int success
= pushcase_range (value1
, value2
,
4005 convert_and_check
, label
,
4008 error ("case label not within a switch statement");
4009 else if (success
== 2)
4011 error ("duplicate case value");
4012 error_with_decl (duplicate
, "this is the first entry for that value");
4014 else if (success
== 3)
4015 warning ("case value out of range");
4016 else if (success
== 4)
4017 warning ("empty case range");
4018 else if (success
== 5)
4019 error ("case label within scope of cleanup or variable array");
4021 position_after_white_space (); ;
4024 #line 2082 "objc-parse.y"
4028 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4029 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
4032 error ("default label not within a switch statement");
4033 else if (success
== 2)
4035 error ("multiple default labels in one switch");
4036 error_with_decl (duplicate
, "this is the first default label");
4038 position_after_white_space (); ;
4041 #line 2097 "objc-parse.y"
4042 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-1].ttype
);
4046 expand_label (label
);
4047 position_after_white_space (); ;
4050 #line 2109 "objc-parse.y"
4051 { emit_line_note (input_filename
, lineno
);
4052 yyval
.ttype
= NULL_TREE
; ;
4055 #line 2112 "objc-parse.y"
4056 { emit_line_note (input_filename
, lineno
); ;
4059 #line 2117 "objc-parse.y"
4060 { yyval
.ttype
= NULL_TREE
; ;
4063 #line 2124 "objc-parse.y"
4064 { yyval
.ttype
= NULL_TREE
; ;
4067 #line 2131 "objc-parse.y"
4068 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
4071 #line 2136 "objc-parse.y"
4072 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
4075 #line 2141 "objc-parse.y"
4076 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
4079 #line 2143 "objc-parse.y"
4080 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
4083 #line 2149 "objc-parse.y"
4085 clear_parm_order ();
4086 declare_parm_level (0); ;
4089 #line 2153 "objc-parse.y"
4090 { yyval
.ttype
= yyvsp
[0].ttype
;
4091 parmlist_tags_warning ();
4092 poplevel (0, 0, 0); ;
4095 #line 2161 "objc-parse.y"
4098 pedwarn ("ANSI C forbids forward parameter declarations");
4099 /* Mark the forward decls as such. */
4100 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
4101 TREE_ASM_WRITTEN (parm
) = 1;
4102 clear_parm_order (); ;
4105 #line 2169 "objc-parse.y"
4106 { yyval
.ttype
= yyvsp
[0].ttype
; ;
4109 #line 2171 "objc-parse.y"
4110 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
4113 #line 2177 "objc-parse.y"
4114 { yyval
.ttype
= get_parm_info (0); ;
4117 #line 2179 "objc-parse.y"
4118 { yyval
.ttype
= get_parm_info (0);
4119 /* Gcc used to allow this as an extension. However, it does
4120 not work for all targets, and thus has been disabled.
4121 Also, since func (...) and func () are indistinguishable,
4122 it caused problems with the code in expand_builtin which
4123 tries to verify that BUILT_IN_NEXT_ARG is being used
4125 error ("ANSI C requires a named argument before `...'");
4129 #line 2189 "objc-parse.y"
4130 { yyval
.ttype
= get_parm_info (1); ;
4133 #line 2191 "objc-parse.y"
4134 { yyval
.ttype
= get_parm_info (0); ;
4137 #line 2196 "objc-parse.y"
4138 { push_parm_decl (yyvsp
[0].ttype
); ;
4141 #line 2198 "objc-parse.y"
4142 { push_parm_decl (yyvsp
[0].ttype
); ;
4145 #line 2205 "objc-parse.y"
4146 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4148 build_tree_list (prefix_attributes
,
4150 current_declspecs
= TREE_VALUE (declspec_stack
);
4151 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4152 declspec_stack
= TREE_CHAIN (declspec_stack
);
4153 resume_momentary (yyvsp
[-2].itype
); ;
4156 #line 2214 "objc-parse.y"
4157 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4159 build_tree_list (prefix_attributes
,
4161 current_declspecs
= TREE_VALUE (declspec_stack
);
4162 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4163 declspec_stack
= TREE_CHAIN (declspec_stack
);
4164 resume_momentary (yyvsp
[-2].itype
); ;
4167 #line 2223 "objc-parse.y"
4168 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4170 build_tree_list (prefix_attributes
,
4172 current_declspecs
= TREE_VALUE (declspec_stack
);
4173 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4174 declspec_stack
= TREE_CHAIN (declspec_stack
);
4175 resume_momentary (yyvsp
[-2].itype
); ;
4178 #line 2232 "objc-parse.y"
4179 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4181 build_tree_list (prefix_attributes
,
4183 current_declspecs
= TREE_VALUE (declspec_stack
);
4184 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4185 declspec_stack
= TREE_CHAIN (declspec_stack
);
4186 resume_momentary (yyvsp
[-2].itype
); ;
4189 #line 2242 "objc-parse.y"
4190 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4192 build_tree_list (prefix_attributes
,
4194 current_declspecs
= TREE_VALUE (declspec_stack
);
4195 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4196 declspec_stack
= TREE_CHAIN (declspec_stack
);
4197 resume_momentary (yyvsp
[-2].itype
); ;
4200 #line 2256 "objc-parse.y"
4202 clear_parm_order ();
4203 declare_parm_level (1); ;
4206 #line 2260 "objc-parse.y"
4207 { yyval
.ttype
= yyvsp
[0].ttype
;
4208 parmlist_tags_warning ();
4209 poplevel (0, 0, 0); ;
4212 #line 2268 "objc-parse.y"
4214 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
4215 if (TREE_VALUE (t
) == NULL_TREE
)
4216 error ("`...' in old-style identifier list");
4217 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
4220 #line 2278 "objc-parse.y"
4221 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4224 #line 2280 "objc-parse.y"
4225 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4228 #line 2286 "objc-parse.y"
4229 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4232 #line 2288 "objc-parse.y"
4233 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4236 #line 2293 "objc-parse.y"
4237 { yyval
.itype
= pedantic
;
4241 #line 2306 "objc-parse.y"
4243 if (objc_implementation_context
)
4245 finish_class (objc_implementation_context
);
4246 objc_ivar_chain
= NULL_TREE
;
4247 objc_implementation_context
= NULL_TREE
;
4250 warning ("`@end' must appear in an implementation context");
4254 #line 2321 "objc-parse.y"
4255 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4258 #line 2323 "objc-parse.y"
4259 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4262 #line 2328 "objc-parse.y"
4264 objc_declare_class (yyvsp
[-1].ttype
);
4268 #line 2334 "objc-parse.y"
4270 objc_declare_alias (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4274 #line 2340 "objc-parse.y"
4276 objc_interface_context
= objc_ivar_context
4277 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[-1].ttype
);
4278 objc_public_flag
= 0;
4282 #line 2346 "objc-parse.y"
4284 continue_class (objc_interface_context
);
4288 #line 2351 "objc-parse.y"
4290 finish_class (objc_interface_context
);
4291 objc_interface_context
= NULL_TREE
;
4295 #line 2357 "objc-parse.y"
4297 objc_interface_context
4298 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
4299 continue_class (objc_interface_context
);
4303 #line 2364 "objc-parse.y"
4305 finish_class (objc_interface_context
);
4306 objc_interface_context
= NULL_TREE
;
4310 #line 2370 "objc-parse.y"
4312 objc_interface_context
= objc_ivar_context
4313 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4314 objc_public_flag
= 0;
4318 #line 2376 "objc-parse.y"
4320 continue_class (objc_interface_context
);
4324 #line 2381 "objc-parse.y"
4326 finish_class (objc_interface_context
);
4327 objc_interface_context
= NULL_TREE
;
4331 #line 2387 "objc-parse.y"
4333 objc_interface_context
4334 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4335 continue_class (objc_interface_context
);
4339 #line 2394 "objc-parse.y"
4341 finish_class (objc_interface_context
);
4342 objc_interface_context
= NULL_TREE
;
4346 #line 2400 "objc-parse.y"
4348 objc_implementation_context
= objc_ivar_context
4349 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, NULL_TREE
);
4350 objc_public_flag
= 0;
4354 #line 2406 "objc-parse.y"
4357 = continue_class (objc_implementation_context
);
4361 #line 2412 "objc-parse.y"
4363 objc_implementation_context
4364 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
);
4366 = continue_class (objc_implementation_context
);
4370 #line 2420 "objc-parse.y"
4372 objc_implementation_context
= objc_ivar_context
4373 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4374 objc_public_flag
= 0;
4378 #line 2426 "objc-parse.y"
4381 = continue_class (objc_implementation_context
);
4385 #line 2432 "objc-parse.y"
4387 objc_implementation_context
4388 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4390 = continue_class (objc_implementation_context
);
4394 #line 2440 "objc-parse.y"
4396 objc_interface_context
4397 = start_class (CATEGORY_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4398 continue_class (objc_interface_context
);
4402 #line 2447 "objc-parse.y"
4404 finish_class (objc_interface_context
);
4405 objc_interface_context
= NULL_TREE
;
4409 #line 2453 "objc-parse.y"
4411 objc_implementation_context
4412 = start_class (CATEGORY_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4414 = continue_class (objc_implementation_context
);
4418 #line 2463 "objc-parse.y"
4420 remember_protocol_qualifiers ();
4421 objc_interface_context
4422 = start_protocol(PROTOCOL_INTERFACE_TYPE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4426 #line 2469 "objc-parse.y"
4428 forget_protocol_qualifiers();
4429 finish_protocol(objc_interface_context
);
4430 objc_interface_context
= NULL_TREE
;
4434 #line 2478 "objc-parse.y"
4436 yyval
.ttype
= NULL_TREE
;
4440 #line 2486 "objc-parse.y"
4442 if (yyvsp
[-2].code
== LT_EXPR
&& yyvsp
[0].code
== GT_EXPR
)
4443 yyval
.ttype
= yyvsp
[-1].ttype
;
4449 #line 2500 "objc-parse.y"
4450 { objc_public_flag
= 2; ;
4453 #line 2501 "objc-parse.y"
4454 { objc_public_flag
= 0; ;
4457 #line 2502 "objc-parse.y"
4458 { objc_public_flag
= 1; ;
4461 #line 2507 "objc-parse.y"
4463 yyval
.ttype
= NULL_TREE
;
4467 #line 2512 "objc-parse.y"
4470 pedwarn ("extra semicolon in struct or union specified");
4474 #line 2530 "objc-parse.y"
4475 { yyval
.ttype
= yyvsp
[0].ttype
;
4476 current_declspecs
= TREE_VALUE (declspec_stack
);
4477 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4478 declspec_stack
= TREE_CHAIN (declspec_stack
);
4479 resume_momentary (yyvsp
[-1].itype
); ;
4482 #line 2536 "objc-parse.y"
4483 { yyval
.ttype
= yyvsp
[0].ttype
;
4484 current_declspecs
= TREE_VALUE (declspec_stack
);
4485 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4486 declspec_stack
= TREE_CHAIN (declspec_stack
);
4487 resume_momentary (yyvsp
[-1].itype
); ;
4490 #line 2542 "objc-parse.y"
4491 { yyval
.ttype
= NULL_TREE
; ;
4494 #line 2547 "objc-parse.y"
4495 { yyval
.ttype
= NULL_TREE
; ;
4498 #line 2554 "objc-parse.y"
4500 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4502 yyvsp
[0].ttype
, current_declspecs
,
4507 #line 2561 "objc-parse.y"
4509 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4511 yyvsp
[-2].ttype
, current_declspecs
, yyvsp
[0].ttype
);
4515 #line 2567 "objc-parse.y"
4517 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4520 current_declspecs
, yyvsp
[0].ttype
);
4524 #line 2577 "objc-parse.y"
4526 remember_protocol_qualifiers ();
4527 if (objc_implementation_context
)
4528 objc_inherit_code
= CLASS_METHOD_DECL
;
4530 fatal ("method definition not in class context");
4534 #line 2585 "objc-parse.y"
4536 forget_protocol_qualifiers ();
4537 add_class_method (objc_implementation_context
, yyvsp
[0].ttype
);
4538 start_method_def (yyvsp
[0].ttype
);
4539 objc_method_context
= yyvsp
[0].ttype
;
4543 #line 2592 "objc-parse.y"
4545 continue_method_def ();
4549 #line 2596 "objc-parse.y"
4551 finish_method_def ();
4552 objc_method_context
= NULL_TREE
;
4556 #line 2602 "objc-parse.y"
4558 remember_protocol_qualifiers ();
4559 if (objc_implementation_context
)
4560 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4562 fatal ("method definition not in class context");
4566 #line 2610 "objc-parse.y"
4568 forget_protocol_qualifiers ();
4569 add_instance_method (objc_implementation_context
, yyvsp
[0].ttype
);
4570 start_method_def (yyvsp
[0].ttype
);
4571 objc_method_context
= yyvsp
[0].ttype
;
4575 #line 2617 "objc-parse.y"
4577 continue_method_def ();
4581 #line 2621 "objc-parse.y"
4583 finish_method_def ();
4584 objc_method_context
= NULL_TREE
;
4588 #line 2633 "objc-parse.y"
4589 {yyval
.ttype
= NULL_TREE
; ;
4592 #line 2640 "objc-parse.y"
4593 {yyval
.ttype
= NULL_TREE
; ;
4596 #line 2650 "objc-parse.y"
4598 objc_inherit_code
= CLASS_METHOD_DECL
;
4602 #line 2654 "objc-parse.y"
4604 add_class_method (objc_interface_context
, yyvsp
[0].ttype
);
4608 #line 2660 "objc-parse.y"
4610 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4614 #line 2664 "objc-parse.y"
4616 add_instance_method (objc_interface_context
, yyvsp
[0].ttype
);
4620 #line 2672 "objc-parse.y"
4622 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4626 #line 2677 "objc-parse.y"
4628 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
4632 #line 2682 "objc-parse.y"
4634 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4638 #line 2687 "objc-parse.y"
4640 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4644 #line 2717 "objc-parse.y"
4645 { current_declspecs
= TREE_VALUE (declspec_stack
);
4646 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4647 declspec_stack
= TREE_CHAIN (declspec_stack
);
4648 resume_momentary (yyvsp
[-2].itype
); ;
4651 #line 2722 "objc-parse.y"
4652 { shadow_tag (yyvsp
[-1].ttype
); ;
4655 #line 2724 "objc-parse.y"
4656 { pedwarn ("empty declaration"); ;
4659 #line 2729 "objc-parse.y"
4660 { push_parm_decl (yyvsp
[0].ttype
); ;
4663 #line 2731 "objc-parse.y"
4664 { push_parm_decl (yyvsp
[0].ttype
); ;
4667 #line 2739 "objc-parse.y"
4668 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4670 build_tree_list (prefix_attributes
,
4674 #line 2744 "objc-parse.y"
4675 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4677 build_tree_list (prefix_attributes
,
4681 #line 2749 "objc-parse.y"
4682 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4684 build_tree_list (prefix_attributes
,
4688 #line 2757 "objc-parse.y"
4690 yyval
.ttype
= NULL_TREE
;
4694 #line 2761 "objc-parse.y"
4696 /* oh what a kludge! */
4697 yyval
.ttype
= (tree
)1;
4701 #line 2766 "objc-parse.y"
4707 #line 2770 "objc-parse.y"
4709 /* returns a tree list node generated by get_parm_info */
4710 yyval
.ttype
= yyvsp
[0].ttype
;
4715 #line 2785 "objc-parse.y"
4717 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4721 #line 2798 "objc-parse.y"
4722 { yyval
.ttype
= get_identifier (token_buffer
); ;
4725 #line 2799 "objc-parse.y"
4726 { yyval
.ttype
= get_identifier (token_buffer
); ;
4729 #line 2800 "objc-parse.y"
4730 { yyval
.ttype
= get_identifier (token_buffer
); ;
4733 #line 2801 "objc-parse.y"
4734 { yyval
.ttype
= get_identifier (token_buffer
); ;
4737 #line 2802 "objc-parse.y"
4738 { yyval
.ttype
= get_identifier (token_buffer
); ;
4741 #line 2803 "objc-parse.y"
4742 { yyval
.ttype
= get_identifier (token_buffer
); ;
4745 #line 2804 "objc-parse.y"
4746 { yyval
.ttype
= get_identifier (token_buffer
); ;
4749 #line 2805 "objc-parse.y"
4750 { yyval
.ttype
= get_identifier (token_buffer
); ;
4753 #line 2806 "objc-parse.y"
4754 { yyval
.ttype
= get_identifier (token_buffer
); ;
4757 #line 2807 "objc-parse.y"
4758 { yyval
.ttype
= get_identifier (token_buffer
); ;
4761 #line 2808 "objc-parse.y"
4762 { yyval
.ttype
= get_identifier (token_buffer
); ;
4765 #line 2809 "objc-parse.y"
4766 { yyval
.ttype
= get_identifier (token_buffer
); ;
4769 #line 2810 "objc-parse.y"
4770 { yyval
.ttype
= get_identifier (token_buffer
); ;
4773 #line 2811 "objc-parse.y"
4774 { yyval
.ttype
= get_identifier (token_buffer
); ;
4777 #line 2812 "objc-parse.y"
4778 { yyval
.ttype
= get_identifier (token_buffer
); ;
4781 #line 2813 "objc-parse.y"
4782 { yyval
.ttype
= get_identifier (token_buffer
); ;
4785 #line 2814 "objc-parse.y"
4786 { yyval
.ttype
= get_identifier (token_buffer
); ;
4789 #line 2815 "objc-parse.y"
4790 { yyval
.ttype
= get_identifier (token_buffer
); ;
4793 #line 2816 "objc-parse.y"
4794 { yyval
.ttype
= get_identifier (token_buffer
); ;
4797 #line 2822 "objc-parse.y"
4799 yyval
.ttype
= build_keyword_decl (yyvsp
[-5].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4803 #line 2827 "objc-parse.y"
4805 yyval
.ttype
= build_keyword_decl (yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
4809 #line 2832 "objc-parse.y"
4811 yyval
.ttype
= build_keyword_decl (NULL_TREE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4815 #line 2837 "objc-parse.y"
4817 yyval
.ttype
= build_keyword_decl (NULL_TREE
, NULL_TREE
, yyvsp
[0].ttype
);
4821 #line 2850 "objc-parse.y"
4823 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4827 #line 2858 "objc-parse.y"
4829 if (TREE_CHAIN (yyvsp
[0].ttype
) == NULL_TREE
)
4830 /* just return the expr., remove a level of indirection */
4831 yyval
.ttype
= TREE_VALUE (yyvsp
[0].ttype
);
4833 /* we have a comma expr., we will collapse later */
4834 yyval
.ttype
= yyvsp
[0].ttype
;
4838 #line 2870 "objc-parse.y"
4840 yyval
.ttype
= build_tree_list (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4844 #line 2874 "objc-parse.y"
4846 yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
);
4850 #line 2882 "objc-parse.y"
4852 yyval
.ttype
= get_class_reference (yyvsp
[0].ttype
);
4856 #line 2889 "objc-parse.y"
4857 { objc_receiver_context
= 1; ;
4860 #line 2891 "objc-parse.y"
4861 { objc_receiver_context
= 0; ;
4864 #line 2893 "objc-parse.y"
4866 yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
);
4870 #line 2906 "objc-parse.y"
4872 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4876 #line 2913 "objc-parse.y"
4878 yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, NULL_TREE
);
4882 #line 2917 "objc-parse.y"
4884 yyval
.ttype
= build_tree_list (NULL_TREE
, NULL_TREE
);
4888 #line 2924 "objc-parse.y"
4890 yyval
.ttype
= yyvsp
[-1].ttype
;
4894 #line 2931 "objc-parse.y"
4896 yyval
.ttype
= yyvsp
[-1].ttype
;
4900 #line 2940 "objc-parse.y"
4902 yyval
.ttype
= groktypename (yyvsp
[-1].ttype
);
4906 /* the action file gets copied in in place of this dollarsign */
4907 #line 498 "/usr/cygnus/latest-940103/share/bison.simple"
4918 short *ssp1
= yyss
- 1;
4919 fprintf (stderr
, "state stack now");
4920 while (ssp1
!= yyssp
)
4921 fprintf (stderr
, " %d", *++ssp1
);
4922 fprintf (stderr
, "\n");
4932 yylsp
->first_line
= yylloc
.first_line
;
4933 yylsp
->first_column
= yylloc
.first_column
;
4934 yylsp
->last_line
= (yylsp
-1)->last_line
;
4935 yylsp
->last_column
= (yylsp
-1)->last_column
;
4940 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
4941 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
4945 /* Now "shift" the result of the reduction.
4946 Determine what state that goes to,
4947 based on the state we popped back to
4948 and the rule number reduced by. */
4952 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
4953 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
4954 yystate
= yytable
[yystate
];
4956 yystate
= yydefgoto
[yyn
- YYNTBASE
];
4960 yyerrlab
: /* here on detecting error */
4963 /* If not already recovering from an error, report this error. */
4967 #ifdef YYERROR_VERBOSE
4968 yyn
= yypact
[yystate
];
4970 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
4977 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
4978 for (x
= (yyn
< 0 ? -yyn
: 0);
4979 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
4980 if (yycheck
[x
+ yyn
] == x
)
4981 size
+= strlen(yytname
[x
]) + 15, count
++;
4982 msg
= (char *) malloc(size
+ 15);
4985 strcpy(msg
, "parse error");
4990 for (x
= (yyn
< 0 ? -yyn
: 0);
4991 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
4992 if (yycheck
[x
+ yyn
] == x
)
4994 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
4995 strcat(msg
, yytname
[x
]);
5004 yyerror ("parse error; also virtual memory exceeded");
5007 #endif /* YYERROR_VERBOSE */
5008 yyerror("parse error");
5012 yyerrlab1
: /* here on error raised explicitly by an action */
5014 if (yyerrstatus
== 3)
5016 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5018 /* return failure if at end of input */
5019 if (yychar
== YYEOF
)
5024 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
5030 /* Else will try to reuse lookahead token
5031 after shifting the error token. */
5033 yyerrstatus
= 3; /* Each real token shifted decrements this */
5037 yyerrdefault
: /* current state does not do anything special for the error token. */
5040 /* This is wrong; only states that explicitly want error tokens
5041 should shift them. */
5042 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5043 if (yyn
) goto yydefault
;
5046 yyerrpop
: /* pop the current state because it cannot handle the error token */
5048 if (yyssp
== yyss
) YYABORT
;
5058 short *ssp1
= yyss
- 1;
5059 fprintf (stderr
, "Error: state stack now");
5060 while (ssp1
!= yyssp
)
5061 fprintf (stderr
, " %d", *++ssp1
);
5062 fprintf (stderr
, "\n");
5068 yyn
= yypact
[yystate
];
5073 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
5092 fprintf(stderr
, "Shifting error token, ");
5103 #line 2945 "objc-parse.y"