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"
81 #ifdef MULTIBYTE_CHARS
87 /* Since parsers are distinct for each language, put the language string
89 char *language_string
= "GNU Obj-C";
91 /* Like YYERROR but do call yyerror. */
92 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
94 /* Cause the `yydebug' variable to be defined. */
97 #line 71 "objc-parse.y"
98 typedef union {long itype
; tree ttype
; enum tree_code code
;
99 char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
100 #line 198 "objc-parse.y"
102 /* Number of statements (loosely speaking) and compound statements
104 static int stmt_count
;
105 static int compstmt_count
;
107 /* Input file and line number of the end of the body of last simple_if;
108 used by the stmt-rule immediately after simple_if returns. */
109 static char *if_stmt_file
;
110 static int if_stmt_line
;
112 /* List of types and structure classes of the current declaration. */
113 static tree current_declspecs
= NULL_TREE
;
114 static tree prefix_attributes
= NULL_TREE
;
116 /* Stack of saved values of current_declspecs and prefix_attributes. */
117 static tree declspec_stack
;
119 /* 1 if we explained undeclared var errors. */
120 static int undeclared_variable_notice
;
122 /* Objective-C specific information */
124 tree objc_interface_context
;
125 tree objc_implementation_context
;
126 tree objc_method_context
;
127 tree objc_ivar_chain
;
128 tree objc_ivar_context
;
129 enum tree_code objc_inherit_code
;
130 int objc_receiver_context
;
131 int objc_public_flag
;
134 /* Tell yyparse how to print a token's value, if yydebug is set. */
136 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
137 extern void yyprint
PROTO ((FILE *, int, YYSTYPE
));
149 #define YYFLAG -32768
152 #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 306)
154 static const char yytranslate
[] = { 0,
155 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
156 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
158 2, 2, 80, 2, 2, 2, 52, 43, 2, 59,
159 76, 50, 48, 81, 49, 58, 51, 2, 2, 2,
160 2, 2, 2, 2, 2, 2, 2, 38, 77, 2,
161 36, 2, 37, 2, 2, 2, 2, 2, 2, 2,
162 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
164 60, 2, 83, 42, 2, 2, 2, 2, 2, 2,
165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
167 2, 2, 82, 41, 78, 79, 2, 2, 2, 2,
168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
169 2, 2, 2, 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 2, 2, 2, 2, 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, 2, 2, 2, 2, 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, 1, 2, 3, 4, 5,
181 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
182 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
183 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
184 39, 40, 44, 45, 46, 47, 53, 54, 55, 56,
185 57, 61, 62, 63, 64, 65, 66, 67, 68, 69,
186 70, 71, 72, 73, 74, 75
190 static const short yyprhs
[] = { 0,
191 0, 1, 3, 4, 7, 8, 12, 14, 16, 18,
192 24, 27, 31, 36, 41, 44, 47, 50, 53, 55,
193 56, 57, 65, 70, 71, 72, 80, 85, 86, 87,
194 94, 98, 100, 102, 104, 106, 108, 110, 112, 114,
195 116, 118, 120, 122, 123, 125, 127, 131, 133, 136,
196 139, 142, 145, 148, 153, 156, 161, 164, 167, 169,
197 171, 173, 178, 179, 187, 189, 193, 197, 201, 205,
198 209, 213, 217, 221, 225, 229, 233, 237, 238, 243,
199 244, 249, 250, 251, 259, 260, 266, 270, 274, 276,
200 278, 280, 284, 288, 289, 294, 299, 304, 308, 312,
201 315, 318, 320, 322, 324, 326, 328, 330, 333, 335,
202 338, 339, 341, 344, 348, 350, 352, 355, 358, 363,
203 368, 371, 374, 378, 380, 382, 385, 388, 389, 390,
204 395, 400, 404, 408, 411, 414, 417, 420, 424, 425,
205 428, 431, 434, 437, 441, 442, 445, 448, 450, 452,
206 455, 458, 460, 462, 465, 468, 471, 475, 476, 479,
207 481, 483, 485, 488, 491, 493, 498, 503, 505, 507,
208 509, 511, 515, 517, 521, 522, 527, 528, 535, 539,
209 540, 547, 551, 552, 554, 556, 559, 566, 568, 572,
210 573, 575, 580, 587, 592, 594, 596, 598, 600, 602,
211 603, 608, 610, 611, 614, 616, 620, 622, 623, 628,
212 630, 631, 636, 637, 643, 644, 645, 651, 652, 653,
213 659, 661, 663, 667, 671, 676, 680, 684, 688, 690,
214 692, 696, 701, 705, 709, 713, 715, 719, 723, 727,
215 732, 736, 740, 742, 743, 751, 757, 760, 761, 769,
216 775, 778, 779, 788, 789, 797, 800, 801, 803, 804,
217 806, 808, 811, 812, 816, 819, 824, 828, 830, 834,
218 836, 838, 841, 843, 847, 852, 859, 865, 867, 871,
219 873, 875, 879, 882, 885, 886, 888, 890, 893, 894,
220 897, 901, 905, 908, 912, 917, 921, 924, 928, 931,
221 933, 935, 938, 941, 942, 944, 947, 948, 949, 951,
222 953, 956, 960, 962, 965, 967, 970, 977, 983, 989,
223 992, 995, 1000, 1001, 1006, 1007, 1008, 1012, 1017, 1021,
224 1023, 1025, 1027, 1029, 1032, 1033, 1038, 1040, 1044, 1045,
225 1046, 1054, 1060, 1063, 1064, 1065, 1066, 1079, 1080, 1087,
226 1090, 1093, 1096, 1100, 1107, 1116, 1127, 1140, 1144, 1149,
227 1151, 1153, 1154, 1161, 1165, 1171, 1174, 1177, 1178, 1180,
228 1181, 1183, 1184, 1186, 1188, 1192, 1197, 1199, 1203, 1204,
229 1207, 1210, 1211, 1216, 1219, 1220, 1222, 1224, 1228, 1230,
230 1234, 1239, 1244, 1249, 1254, 1259, 1260, 1263, 1265, 1268,
231 1270, 1274, 1276, 1280, 1282, 1284, 1286, 1288, 1290, 1292,
232 1294, 1296, 1300, 1304, 1309, 1310, 1311, 1322, 1323, 1330,
233 1331, 1332, 1345, 1346, 1355, 1356, 1363, 1366, 1367, 1376,
234 1381, 1382, 1392, 1398, 1399, 1406, 1407, 1409, 1413, 1417,
235 1419, 1421, 1423, 1425, 1426, 1430, 1433, 1437, 1441, 1443,
236 1444, 1446, 1450, 1452, 1456, 1459, 1460, 1461, 1462, 1470,
237 1471, 1472, 1473, 1481, 1482, 1483, 1486, 1488, 1490, 1493,
238 1494, 1498, 1500, 1502, 1503, 1504, 1510, 1511, 1512, 1518,
239 1523, 1525, 1531, 1534, 1535, 1538, 1539, 1541, 1543, 1545,
240 1548, 1551, 1556, 1559, 1562, 1564, 1568, 1571, 1574, 1577,
241 1578, 1581, 1582, 1586, 1588, 1590, 1593, 1595, 1597, 1599,
242 1601, 1603, 1605, 1607, 1609, 1611, 1613, 1615, 1617, 1619,
243 1621, 1623, 1625, 1627, 1629, 1631, 1633, 1635, 1637, 1639,
244 1641, 1643, 1650, 1654, 1660, 1663, 1665, 1667, 1669, 1672,
245 1674, 1678, 1681, 1683, 1685, 1686, 1687, 1694, 1696, 1698,
246 1700, 1703, 1706, 1708, 1713, 1718
249 static const short yyrhs
[] = { -1,
250 85, 0, 0, 86, 88, 0, 0, 85, 87, 88,
251 0, 90, 0, 89, 0, 237, 0, 27, 59, 99,
252 76, 77, 0, 236, 88, 0, 123, 137, 77, 0,
253 130, 123, 137, 77, 0, 126, 123, 136, 77, 0,
254 130, 77, 0, 126, 77, 0, 1, 77, 0, 1,
255 78, 0, 77, 0, 0, 0, 126, 123, 163, 91,
256 117, 92, 194, 0, 126, 123, 163, 1, 0, 0,
257 0, 130, 123, 166, 93, 117, 94, 194, 0, 130,
258 123, 166, 1, 0, 0, 0, 123, 166, 95, 117,
259 96, 194, 0, 123, 166, 1, 0, 3, 0, 4,
260 0, 72, 0, 67, 0, 43, 0, 49, 0, 48,
261 0, 54, 0, 55, 0, 79, 0, 80, 0, 101,
262 0, 0, 101, 0, 107, 0, 101, 81, 107, 0,
263 113, 0, 50, 105, 0, 236, 105, 0, 98, 105,
264 0, 40, 97, 0, 103, 102, 0, 103, 59, 181,
265 76, 0, 104, 102, 0, 104, 59, 181, 76, 0,
266 33, 105, 0, 34, 105, 0, 11, 0, 29, 0,
267 102, 0, 59, 181, 76, 105, 0, 0, 59, 181,
268 76, 82, 106, 151, 78, 0, 105, 0, 107, 48,
269 107, 0, 107, 49, 107, 0, 107, 50, 107, 0,
270 107, 51, 107, 0, 107, 52, 107, 0, 107, 46,
271 107, 0, 107, 47, 107, 0, 107, 45, 107, 0,
272 107, 44, 107, 0, 107, 43, 107, 0, 107, 41,
273 107, 0, 107, 42, 107, 0, 0, 107, 40, 108,
274 107, 0, 0, 107, 39, 109, 107, 0, 0, 0,
275 107, 37, 110, 99, 38, 111, 107, 0, 0, 107,
276 37, 112, 38, 107, 0, 107, 36, 107, 0, 107,
277 35, 107, 0, 3, 0, 8, 0, 115, 0, 59,
278 99, 76, 0, 59, 1, 76, 0, 0, 59, 114,
279 196, 76, 0, 113, 59, 100, 76, 0, 113, 60,
280 99, 83, 0, 113, 58, 97, 0, 113, 57, 97,
281 0, 113, 54, 0, 113, 55, 0, 297, 0, 303,
282 0, 304, 0, 305, 0, 116, 0, 9, 0, 115,
283 9, 0, 75, 0, 116, 75, 0, 0, 119, 0,
284 119, 10, 0, 201, 202, 120, 0, 118, 0, 189,
285 0, 119, 118, 0, 118, 189, 0, 128, 123, 136,
286 77, 0, 131, 123, 137, 77, 0, 128, 77, 0,
287 131, 77, 0, 201, 202, 125, 0, 121, 0, 189,
288 0, 122, 121, 0, 121, 189, 0, 0, 0, 126,
289 123, 136, 77, 0, 130, 123, 137, 77, 0, 126,
290 123, 157, 0, 130, 123, 160, 0, 126, 77, 0,
291 130, 77, 0, 236, 125, 0, 134, 127, 0, 130,
292 134, 127, 0, 0, 127, 135, 0, 127, 5, 0,
293 127, 144, 0, 134, 129, 0, 131, 134, 129, 0,
294 0, 129, 135, 0, 129, 5, 0, 131, 0, 144,
295 0, 130, 131, 0, 130, 144, 0, 7, 0, 5,
296 0, 131, 7, 0, 131, 5, 0, 134, 133, 0,
297 183, 134, 133, 0, 0, 133, 135, 0, 6, 0,
298 167, 0, 4, 0, 67, 253, 0, 72, 253, 0,
299 254, 0, 28, 59, 99, 76, 0, 28, 59, 181,
300 76, 0, 6, 0, 7, 0, 167, 0, 139, 0,
301 136, 81, 139, 0, 141, 0, 137, 81, 139, 0,
302 0, 27, 59, 115, 76, 0, 0, 163, 138, 143,
303 36, 140, 149, 0, 163, 138, 143, 0, 0, 166,
304 138, 143, 36, 142, 149, 0, 166, 138, 143, 0,
305 0, 144, 0, 145, 0, 144, 145, 0, 30, 59,
306 59, 146, 76, 76, 0, 147, 0, 146, 81, 147,
307 0, 0, 148, 0, 148, 59, 3, 76, 0, 148,
308 59, 3, 81, 101, 76, 0, 148, 59, 100, 76,
309 0, 97, 0, 5, 0, 6, 0, 7, 0, 107,
310 0, 0, 82, 150, 151, 78, 0, 1, 0, 0,
311 152, 172, 0, 153, 0, 152, 81, 153, 0, 107,
312 0, 0, 82, 154, 151, 78, 0, 1, 0, 0,
313 97, 38, 155, 153, 0, 0, 58, 97, 36, 156,
314 153, 0, 0, 0, 163, 158, 117, 159, 196, 0,
315 0, 0, 166, 161, 117, 162, 196, 0, 164, 0,
316 166, 0, 59, 164, 76, 0, 164, 59, 231, 0,
317 164, 60, 99, 83, 0, 164, 60, 83, 0, 50,
318 184, 164, 0, 144, 124, 164, 0, 4, 0, 72,
319 0, 165, 59, 231, 0, 165, 60, 99, 83, 0,
320 165, 60, 83, 0, 50, 184, 165, 0, 144, 124,
321 165, 0, 4, 0, 166, 59, 231, 0, 59, 166,
322 76, 0, 50, 184, 166, 0, 166, 60, 99, 83,
323 0, 166, 60, 83, 0, 144, 124, 166, 0, 3,
324 0, 0, 13, 97, 82, 168, 174, 78, 143, 0,
325 13, 82, 174, 78, 143, 0, 13, 97, 0, 0,
326 14, 97, 82, 169, 174, 78, 143, 0, 14, 82,
327 174, 78, 143, 0, 14, 97, 0, 0, 12, 97,
328 82, 170, 179, 173, 78, 143, 0, 0, 12, 82,
329 171, 179, 173, 78, 143, 0, 12, 97, 0, 0,
330 81, 0, 0, 81, 0, 175, 0, 175, 176, 0,
331 0, 175, 176, 77, 0, 175, 77, 0, 65, 59,
332 67, 76, 0, 132, 123, 177, 0, 132, 0, 183,
333 123, 177, 0, 183, 0, 1, 0, 236, 176, 0,
334 178, 0, 177, 81, 178, 0, 201, 202, 163, 143,
335 0, 201, 202, 163, 38, 107, 143, 0, 201, 202,
336 38, 107, 143, 0, 180, 0, 179, 81, 180, 0,
337 1, 0, 97, 0, 97, 36, 107, 0, 132, 182,
338 0, 183, 182, 0, 0, 185, 0, 7, 0, 183,
339 7, 0, 0, 184, 7, 0, 59, 185, 76, 0,
340 50, 184, 185, 0, 50, 184, 0, 185, 59, 224,
341 0, 185, 60, 99, 83, 0, 185, 60, 83, 0,
342 59, 224, 0, 60, 99, 83, 0, 60, 83, 0,
343 187, 0, 204, 0, 187, 204, 0, 187, 189, 0,
344 0, 186, 0, 1, 77, 0, 0, 0, 192, 0,
345 193, 0, 192, 193, 0, 32, 235, 77, 0, 196,
346 0, 1, 196, 0, 82, 0, 195, 78, 0, 195,
347 190, 191, 122, 188, 78, 0, 195, 190, 191, 1,
348 78, 0, 195, 190, 191, 186, 78, 0, 198, 203,
349 0, 198, 1, 0, 15, 59, 99, 76, 0, 0,
350 18, 200, 203, 17, 0, 0, 0, 201, 202, 206,
351 0, 201, 202, 217, 203, 0, 201, 202, 205, 0,
352 206, 0, 217, 0, 196, 0, 214, 0, 99, 77,
353 0, 0, 197, 16, 207, 203, 0, 197, 0, 197,
354 16, 1, 0, 0, 0, 17, 208, 59, 99, 76,
355 209, 203, 0, 199, 59, 99, 76, 77, 0, 199,
356 1, 0, 0, 0, 0, 19, 59, 219, 77, 210,
357 219, 77, 211, 219, 76, 212, 203, 0, 0, 20,
358 59, 99, 76, 213, 203, 0, 23, 77, 0, 24,
359 77, 0, 25, 77, 0, 25, 99, 77, 0, 27,
360 218, 59, 99, 76, 77, 0, 27, 218, 59, 99,
361 38, 220, 76, 77, 0, 27, 218, 59, 99, 38,
362 220, 38, 220, 76, 77, 0, 27, 218, 59, 99,
363 38, 220, 38, 220, 38, 223, 76, 77, 0, 26,
364 97, 77, 0, 26, 50, 99, 77, 0, 77, 0,
365 215, 0, 0, 19, 59, 113, 76, 216, 203, 0,
366 21, 107, 38, 0, 21, 107, 10, 107, 38, 0,
367 22, 38, 0, 97, 38, 0, 0, 7, 0, 0,
368 99, 0, 0, 221, 0, 222, 0, 221, 81, 222,
369 0, 9, 59, 99, 76, 0, 115, 0, 223, 81,
370 115, 0, 0, 225, 226, 0, 228, 76, 0, 0,
371 229, 77, 227, 226, 0, 1, 76, 0, 0, 10,
372 0, 229, 0, 229, 81, 10, 0, 230, 0, 229,
373 81, 230, 0, 126, 123, 165, 143, 0, 126, 123,
374 166, 143, 0, 126, 123, 182, 143, 0, 130, 123,
375 166, 143, 0, 130, 123, 182, 143, 0, 0, 232,
376 233, 0, 226, 0, 234, 76, 0, 3, 0, 234,
377 81, 3, 0, 97, 0, 235, 81, 97, 0, 31,
378 0, 241, 0, 239, 0, 240, 0, 251, 0, 261,
379 0, 63, 0, 97, 0, 238, 81, 97, 0, 73,
380 238, 77, 0, 74, 97, 97, 77, 0, 0, 0,
381 61, 97, 253, 82, 242, 255, 78, 243, 268, 63,
382 0, 0, 61, 97, 253, 244, 268, 63, 0, 0,
383 0, 61, 97, 38, 97, 253, 82, 245, 255, 78,
384 246, 268, 63, 0, 0, 61, 97, 38, 97, 253,
385 247, 268, 63, 0, 0, 62, 97, 82, 248, 255,
386 78, 0, 62, 97, 0, 0, 62, 97, 38, 97,
387 82, 249, 255, 78, 0, 62, 97, 38, 97, 0,
388 0, 61, 97, 59, 97, 76, 253, 250, 268, 63,
389 0, 62, 97, 59, 97, 76, 0, 0, 71, 97,
390 253, 252, 268, 63, 0, 0, 254, 0, 45, 238,
391 45, 0, 255, 256, 257, 0, 257, 0, 69, 0,
392 70, 0, 68, 0, 0, 257, 258, 77, 0, 257,
393 77, 0, 132, 123, 259, 0, 183, 123, 259, 0,
394 1, 0, 0, 260, 0, 259, 81, 260, 0, 163,
395 0, 163, 38, 107, 0, 38, 107, 0, 0, 0,
396 0, 48, 262, 278, 263, 279, 264, 194, 0, 0,
397 0, 0, 49, 265, 278, 266, 279, 267, 194, 0,
398 0, 0, 269, 270, 0, 273, 0, 89, 0, 270,
399 273, 0, 0, 270, 271, 89, 0, 77, 0, 1,
400 0, 0, 0, 48, 274, 278, 275, 272, 0, 0,
401 0, 49, 276, 278, 277, 272, 0, 59, 181, 76,
402 287, 0, 287, 0, 59, 181, 76, 288, 285, 0,
403 288, 285, 0, 0, 77, 280, 0, 0, 281, 0,
404 282, 0, 189, 0, 281, 282, 0, 282, 189, 0,
405 126, 123, 283, 77, 0, 126, 77, 0, 130, 77,
406 0, 284, 0, 283, 81, 284, 0, 165, 143, 0,
407 166, 143, 0, 182, 143, 0, 0, 81, 10, 0,
408 0, 81, 286, 228, 0, 289, 0, 291, 0, 288,
409 291, 0, 3, 0, 4, 0, 72, 0, 290, 0,
410 12, 0, 13, 0, 14, 0, 15, 0, 16, 0,
411 17, 0, 18, 0, 19, 0, 20, 0, 21, 0,
412 22, 0, 23, 0, 24, 0, 25, 0, 26, 0,
413 27, 0, 11, 0, 28, 0, 29, 0, 6, 0,
414 7, 0, 289, 38, 59, 181, 76, 97, 0, 289,
415 38, 97, 0, 38, 59, 181, 76, 97, 0, 38,
416 97, 0, 289, 0, 293, 0, 295, 0, 293, 295,
417 0, 101, 0, 289, 38, 294, 0, 38, 294, 0,
418 99, 0, 67, 0, 0, 0, 60, 298, 296, 299,
419 292, 83, 0, 289, 0, 301, 0, 302, 0, 301,
420 302, 0, 289, 38, 0, 38, 0, 64, 59, 300,
421 76, 0, 71, 59, 97, 76, 0, 66, 59, 181,
428 static const short yyrline
[] = { 0,
429 238, 243, 257, 259, 259, 260, 262, 264, 265, 266,
430 274, 278, 289, 294, 299, 301, 303, 304, 305, 310,
431 317, 319, 324, 329, 335, 337, 342, 347, 353, 355,
432 360, 367, 369, 370, 371, 374, 376, 378, 380, 382,
433 384, 386, 390, 394, 397, 400, 403, 407, 409, 412,
434 415, 419, 447, 453, 456, 459, 462, 464, 468, 472,
435 476, 478, 481, 485, 512, 514, 516, 518, 520, 522,
436 524, 526, 528, 530, 532, 534, 536, 538, 542, 544,
437 548, 550, 553, 557, 559, 566, 569, 572, 578, 738,
438 739, 741, 747, 749, 763, 786, 788, 790, 802, 816,
439 818, 820, 822, 824, 826, 828, 833, 835, 841, 843,
440 847, 849, 850, 860, 865, 867, 868, 869, 876, 882,
441 887, 890, 898, 903, 905, 906, 907, 914, 925, 929,
442 935, 940, 945, 950, 952, 954, 963, 966, 970, 972,
443 974, 979, 983, 986, 990, 993, 995, 1007, 1010, 1012,
444 1014, 1018, 1022, 1024, 1027, 1040, 1043, 1047, 1049, 1057,
445 1058, 1059, 1063, 1065, 1070, 1072, 1074, 1080, 1081, 1082,
446 1085, 1087, 1090, 1092, 1095, 1098, 1104, 1111, 1113, 1120,
447 1127, 1130, 1137, 1140, 1144, 1147, 1151, 1156, 1159, 1163,
448 1166, 1168, 1170, 1172, 1179, 1181, 1182, 1183, 1188, 1190,
449 1195, 1203, 1208, 1212, 1215, 1217, 1222, 1225, 1227, 1229,
450 1233, 1236, 1236, 1239, 1241, 1252, 1260, 1264, 1275, 1283,
451 1290, 1292, 1297, 1300, 1305, 1307, 1309, 1316, 1318, 1319,
452 1327, 1333, 1335, 1337, 1344, 1346, 1352, 1358, 1360, 1362,
453 1364, 1371, 1373, 1376, 1381, 1383, 1387, 1389, 1391, 1393,
454 1397, 1399, 1402, 1405, 1408, 1411, 1415, 1417, 1420, 1422,
455 1426, 1429, 1434, 1436, 1438, 1442, 1466, 1473, 1478, 1484,
456 1489, 1491, 1496, 1498, 1502, 1506, 1510, 1520, 1522, 1527,
457 1532, 1535, 1539, 1542, 1546, 1549, 1552, 1555, 1559, 1562,
458 1566, 1570, 1572, 1574, 1576, 1578, 1580, 1582, 1584, 1594,
459 1602, 1604, 1606, 1610, 1612, 1615, 1618, 1631, 1633, 1638,
460 1640, 1643, 1657, 1660, 1663, 1665, 1667, 1675, 1683, 1694,
461 1699, 1702, 1716, 1725, 1729, 1733, 1737, 1743, 1747, 1752,
462 1755, 1760, 1763, 1764, 1781, 1786, 1789, 1801, 1803, 1813,
463 1823, 1824, 1832, 1835, 1847, 1851, 1868, 1878, 1887, 1892,
464 1897, 1902, 1906, 1910, 1921, 1928, 1935, 1942, 1953, 1959,
465 1962, 1967, 1990, 2024, 2049, 2080, 2095, 2106, 2110, 2114,
466 2117, 2122, 2124, 2127, 2129, 2133, 2138, 2141, 2147, 2152,
467 2157, 2159, 2168, 2169, 2175, 2177, 2187, 2189, 2193, 2196,
468 2202, 2212, 2221, 2230, 2240, 2254, 2259, 2264, 2266, 2275,
469 2278, 2283, 2286, 2290, 2298, 2300, 2301, 2302, 2303, 2304,
470 2318, 2321, 2325, 2331, 2337, 2344, 2349, 2355, 2362, 2368,
471 2374, 2379, 2385, 2392, 2398, 2404, 2410, 2418, 2424, 2430,
472 2438, 2445, 2451, 2460, 2467, 2475, 2480, 2483, 2493, 2495,
473 2498, 2500, 2501, 2504, 2509, 2510, 2527, 2534, 2540, 2544,
474 2547, 2548, 2551, 2559, 2565, 2574, 2584, 2591, 2595, 2600,
475 2609, 2616, 2620, 2630, 2632, 2633, 2635, 2637, 2638, 2639,
476 2640, 2642, 2644, 2647, 2655, 2662, 2662, 2669, 2675, 2677,
477 2683, 2688, 2693, 2702, 2704, 2710, 2712, 2715, 2717, 2718,
478 2719, 2722, 2728, 2730, 2734, 2737, 2744, 2750, 2755, 2762,
479 2767, 2772, 2777, 2784, 2788, 2791, 2797, 2799, 2800, 2801,
480 2804, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814,
481 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824,
482 2824, 2827, 2833, 2838, 2843, 2849, 2851, 2854, 2856, 2863,
483 2875, 2880, 2886, 2888, 2894, 2898, 2899, 2905, 2907, 2910,
484 2912, 2918, 2923, 2929, 2936, 2945
489 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
491 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
492 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
493 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
494 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
495 "EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
496 "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
497 "'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
498 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
499 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
500 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
501 "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
502 "unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
503 "cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
504 "string","objc_string","old_style_parm_decls","lineno_datadecl","datadecls",
505 "datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
506 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
507 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
508 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
509 "initdcl","@16","notype_initdcl","@17","maybe_attribute","attributes","attribute",
510 "attribute_list","attrib","any_word","init","@18","initlist_maybe_comma","initlist1",
511 "initelt","@19","@20","@21","nested_function","@22","@23","notype_nested_function",
512 "@24","@25","declarator","after_type_declarator","parm_declarator","notype_declarator",
513 "structsp","@26","@27","@28","@29","maybecomma","maybecomma_warn","component_decl_list",
514 "component_decl_list2","component_decl","components","component_declarator",
515 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
516 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
517 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
518 "if_prefix","do_stmt_start","@30","save_filename","save_lineno","lineno_labeled_stmt",
519 "lineno_stmt_or_label","stmt_or_label","stmt","@31","@32","@33","@34","@35",
520 "@36","@37","all_iter_stmt","all_iter_stmt_simple","@38","label","maybe_type_qual",
521 "xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
522 "@39","parmlist_1","@40","parmlist_2","parms","parm","parmlist_or_identifiers",
523 "@41","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension",
524 "objcdef","identifier_list","classdecl","aliasdecl","classdef","@42","@43","@44",
525 "@45","@46","@47","@48","@49","@50","protocoldef","@51","protocolrefs","non_empty_protocolrefs",
526 "ivar_decl_list","visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator",
527 "methoddef","@52","@53","@54","@55","@56","@57","methodprotolist","@58","methodprotolist2",
528 "@59","semi_or_error","methodproto","@60","@61","@62","@63","methoddecl","optarglist",
529 "myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@64","unaryselector",
530 "keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist",
531 "keywordexpr","keywordarg","receiver","objcmessageexpr","@65","@66","selectorarg",
532 "keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr","objcencodeexpr", NULL
536 static const short yyr1
[] = { 0,
537 84, 84, 86, 85, 87, 85, 88, 88, 88, 88,
538 88, 89, 89, 89, 89, 89, 89, 89, 89, 91,
539 92, 90, 90, 93, 94, 90, 90, 95, 96, 90,
540 90, 97, 97, 97, 97, 98, 98, 98, 98, 98,
541 98, 98, 99, 100, 100, 101, 101, 102, 102, 102,
542 102, 102, 102, 102, 102, 102, 102, 102, 103, 104,
543 105, 105, 106, 105, 107, 107, 107, 107, 107, 107,
544 107, 107, 107, 107, 107, 107, 107, 108, 107, 109,
545 107, 110, 111, 107, 112, 107, 107, 107, 113, 113,
546 113, 113, 113, 114, 113, 113, 113, 113, 113, 113,
547 113, 113, 113, 113, 113, 113, 115, 115, 116, 116,
548 117, 117, 117, 118, 119, 119, 119, 119, 120, 120,
549 120, 120, 121, 122, 122, 122, 122, 123, 124, 125,
550 125, 125, 125, 125, 125, 125, 126, 126, 127, 127,
551 127, 127, 128, 128, 129, 129, 129, 130, 130, 130,
552 130, 131, 131, 131, 131, 132, 132, 133, 133, 134,
553 134, 134, 134, 134, 134, 134, 134, 135, 135, 135,
554 136, 136, 137, 137, 138, 138, 140, 139, 139, 142,
555 141, 141, 143, 143, 144, 144, 145, 146, 146, 147,
556 147, 147, 147, 147, 148, 148, 148, 148, 149, 150,
557 149, 149, 151, 151, 152, 152, 153, 154, 153, 153,
558 155, 153, 156, 153, 158, 159, 157, 161, 162, 160,
559 163, 163, 164, 164, 164, 164, 164, 164, 164, 164,
560 165, 165, 165, 165, 165, 165, 166, 166, 166, 166,
561 166, 166, 166, 168, 167, 167, 167, 169, 167, 167,
562 167, 170, 167, 171, 167, 167, 172, 172, 173, 173,
563 174, 174, 175, 175, 175, 175, 176, 176, 176, 176,
564 176, 176, 177, 177, 178, 178, 178, 179, 179, 179,
565 180, 180, 181, 181, 182, 182, 183, 183, 184, 184,
566 185, 185, 185, 185, 185, 185, 185, 185, 185, 186,
567 187, 187, 187, 188, 188, 189, 190, 191, 191, 192,
568 192, 193, 194, 194, 195, 196, 196, 196, 196, 197,
569 197, 198, 200, 199, 201, 202, 203, 203, 204, 205,
570 205, 206, 206, 206, 207, 206, 206, 206, 208, 209,
571 206, 206, 206, 210, 211, 212, 206, 213, 206, 206,
572 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
573 214, 216, 215, 217, 217, 217, 217, 218, 218, 219,
574 219, 220, 220, 221, 221, 222, 223, 223, 225, 224,
575 226, 227, 226, 226, 228, 228, 228, 228, 229, 229,
576 230, 230, 230, 230, 230, 232, 231, 233, 233, 234,
577 234, 235, 235, 236, 237, 237, 237, 237, 237, 237,
578 238, 238, 239, 240, 242, 243, 241, 244, 241, 245,
579 246, 241, 247, 241, 248, 241, 241, 249, 241, 241,
580 250, 241, 241, 252, 251, 253, 253, 254, 255, 255,
581 256, 256, 256, 257, 257, 257, 258, 258, 258, 259,
582 259, 259, 260, 260, 260, 262, 263, 264, 261, 265,
583 266, 267, 261, 268, 269, 268, 270, 270, 270, 271,
584 270, 272, 272, 274, 275, 273, 276, 277, 273, 278,
585 278, 278, 278, 279, 279, 280, 280, 281, 281, 281,
586 281, 282, 282, 282, 283, 283, 284, 284, 284, 285,
587 285, 286, 285, 287, 288, 288, 289, 289, 289, 289,
588 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
589 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
590 290, 291, 291, 291, 291, 292, 292, 293, 293, 294,
591 295, 295, 296, 296, 298, 299, 297, 300, 300, 301,
592 301, 302, 302, 303, 304, 305
595 static const short yyr2
[] = { 0,
596 0, 1, 0, 2, 0, 3, 1, 1, 1, 5,
597 2, 3, 4, 4, 2, 2, 2, 2, 1, 0,
598 0, 7, 4, 0, 0, 7, 4, 0, 0, 6,
599 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
600 1, 1, 1, 0, 1, 1, 3, 1, 2, 2,
601 2, 2, 2, 4, 2, 4, 2, 2, 1, 1,
602 1, 4, 0, 7, 1, 3, 3, 3, 3, 3,
603 3, 3, 3, 3, 3, 3, 3, 0, 4, 0,
604 4, 0, 0, 7, 0, 5, 3, 3, 1, 1,
605 1, 3, 3, 0, 4, 4, 4, 3, 3, 2,
606 2, 1, 1, 1, 1, 1, 1, 2, 1, 2,
607 0, 1, 2, 3, 1, 1, 2, 2, 4, 4,
608 2, 2, 3, 1, 1, 2, 2, 0, 0, 4,
609 4, 3, 3, 2, 2, 2, 2, 3, 0, 2,
610 2, 2, 2, 3, 0, 2, 2, 1, 1, 2,
611 2, 1, 1, 2, 2, 2, 3, 0, 2, 1,
612 1, 1, 2, 2, 1, 4, 4, 1, 1, 1,
613 1, 3, 1, 3, 0, 4, 0, 6, 3, 0,
614 6, 3, 0, 1, 1, 2, 6, 1, 3, 0,
615 1, 4, 6, 4, 1, 1, 1, 1, 1, 0,
616 4, 1, 0, 2, 1, 3, 1, 0, 4, 1,
617 0, 4, 0, 5, 0, 0, 5, 0, 0, 5,
618 1, 1, 3, 3, 4, 3, 3, 3, 1, 1,
619 3, 4, 3, 3, 3, 1, 3, 3, 3, 4,
620 3, 3, 1, 0, 7, 5, 2, 0, 7, 5,
621 2, 0, 8, 0, 7, 2, 0, 1, 0, 1,
622 1, 2, 0, 3, 2, 4, 3, 1, 3, 1,
623 1, 2, 1, 3, 4, 6, 5, 1, 3, 1,
624 1, 3, 2, 2, 0, 1, 1, 2, 0, 2,
625 3, 3, 2, 3, 4, 3, 2, 3, 2, 1,
626 1, 2, 2, 0, 1, 2, 0, 0, 1, 1,
627 2, 3, 1, 2, 1, 2, 6, 5, 5, 2,
628 2, 4, 0, 4, 0, 0, 3, 4, 3, 1,
629 1, 1, 1, 2, 0, 4, 1, 3, 0, 0,
630 7, 5, 2, 0, 0, 0, 12, 0, 6, 2,
631 2, 2, 3, 6, 8, 10, 12, 3, 4, 1,
632 1, 0, 6, 3, 5, 2, 2, 0, 1, 0,
633 1, 0, 1, 1, 3, 4, 1, 3, 0, 2,
634 2, 0, 4, 2, 0, 1, 1, 3, 1, 3,
635 4, 4, 4, 4, 4, 0, 2, 1, 2, 1,
636 3, 1, 3, 1, 1, 1, 1, 1, 1, 1,
637 1, 3, 3, 4, 0, 0, 10, 0, 6, 0,
638 0, 12, 0, 8, 0, 6, 2, 0, 8, 4,
639 0, 9, 5, 0, 6, 0, 1, 3, 3, 1,
640 1, 1, 1, 0, 3, 2, 3, 3, 1, 0,
641 1, 3, 1, 3, 2, 0, 0, 0, 7, 0,
642 0, 0, 7, 0, 0, 2, 1, 1, 2, 0,
643 3, 1, 1, 0, 0, 5, 0, 0, 5, 4,
644 1, 5, 2, 0, 2, 0, 1, 1, 1, 2,
645 2, 4, 2, 2, 1, 3, 2, 2, 2, 0,
646 2, 0, 3, 1, 1, 2, 1, 1, 1, 1,
647 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
648 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
649 1, 6, 3, 5, 2, 1, 1, 1, 2, 1,
650 3, 2, 1, 1, 0, 0, 6, 1, 1, 1,
654 static const short yydefact
[] = { 3,
655 5, 0, 0, 0, 162, 153, 160, 152, 0, 0,
656 0, 0, 0, 0, 404, 0, 456, 460, 0, 0,
657 410, 436, 0, 436, 0, 0, 19, 4, 8, 7,
658 0, 128, 128, 148, 139, 149, 185, 161, 0, 9,
659 406, 407, 405, 408, 165, 409, 6, 17, 18, 32,
660 33, 35, 34, 254, 256, 263, 247, 263, 251, 0,
661 0, 0, 411, 0, 0, 0, 436, 427, 163, 437,
662 436, 164, 0, 0, 243, 289, 0, 0, 173, 129,
663 0, 16, 0, 15, 0, 150, 139, 151, 155, 154,
664 137, 186, 11, 0, 252, 0, 0, 0, 244, 0,
665 248, 89, 90, 107, 59, 60, 0, 0, 0, 36,
666 38, 37, 0, 39, 40, 0, 545, 0, 0, 0,
667 109, 41, 42, 0, 0, 43, 61, 0, 0, 65,
668 46, 48, 91, 106, 0, 102, 103, 104, 105, 287,
669 0, 285, 158, 0, 285, 190, 438, 0, 507, 508,
670 530, 531, 527, 511, 512, 513, 514, 515, 516, 517,
671 518, 519, 520, 521, 522, 523, 524, 525, 526, 528,
672 529, 0, 0, 509, 457, 481, 500, 504, 510, 505,
673 461, 0, 0, 418, 0, 0, 425, 434, 413, 0,
674 0, 0, 12, 0, 0, 31, 0, 396, 0, 0,
675 183, 229, 289, 0, 230, 0, 171, 129, 0, 221,
676 222, 0, 0, 138, 141, 168, 169, 140, 142, 170,
677 280, 281, 259, 278, 0, 0, 183, 271, 265, 128,
678 262, 128, 0, 263, 183, 263, 57, 58, 52, 49,
679 0, 0, 0, 0, 0, 0, 0, 0, 51, 0,
680 0, 0, 53, 0, 55, 0, 0, 82, 80, 78,
681 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
682 0, 0, 100, 101, 0, 0, 44, 0, 108, 110,
683 50, 166, 289, 379, 0, 283, 286, 156, 167, 288,
684 158, 284, 196, 197, 198, 195, 0, 188, 191, 412,
685 0, 535, 0, 484, 502, 483, 0, 506, 0, 484,
686 436, 0, 415, 465, 430, 0, 444, 465, 414, 290,
687 239, 238, 174, 175, 242, 0, 237, 0, 241, 0,
688 0, 29, 0, 325, 116, 326, 182, 184, 0, 0,
689 14, 0, 0, 23, 0, 183, 396, 0, 13, 27,
690 0, 0, 260, 0, 259, 0, 246, 325, 264, 325,
691 272, 0, 250, 0, 93, 92, 315, 307, 0, 0,
692 544, 543, 546, 553, 548, 0, 549, 550, 0, 0,
693 10, 47, 0, 0, 88, 87, 0, 0, 0, 0,
694 76, 77, 75, 74, 73, 71, 72, 66, 67, 68,
695 69, 70, 99, 98, 0, 45, 0, 293, 0, 297,
696 0, 299, 0, 379, 0, 159, 157, 0, 190, 44,
697 0, 0, 0, 458, 501, 385, 0, 533, 462, 423,
698 436, 444, 0, 0, 428, 433, 0, 0, 0, 0,
699 0, 400, 386, 128, 128, 398, 0, 387, 389, 397,
700 0, 240, 306, 0, 118, 113, 117, 0, 180, 227,
701 223, 172, 228, 21, 179, 224, 226, 0, 25, 282,
702 279, 183, 0, 266, 267, 273, 326, 269, 183, 183,
703 316, 308, 95, 63, 62, 0, 552, 554, 0, 551,
704 556, 555, 54, 56, 0, 0, 81, 79, 96, 97,
705 292, 291, 380, 298, 294, 296, 0, 187, 189, 89,
706 0, 0, 480, 500, 128, 0, 489, 485, 487, 0,
707 0, 503, 387, 0, 0, 420, 465, 431, 0, 419,
708 474, 477, 468, 0, 128, 128, 470, 467, 444, 443,
709 441, 442, 426, 444, 449, 446, 128, 128, 0, 435,
710 176, 384, 285, 285, 381, 382, 0, 399, 0, 0,
711 30, 313, 114, 128, 128, 145, 0, 0, 177, 225,
712 0, 255, 183, 325, 0, 245, 249, 0, 0, 309,
713 310, 0, 0, 536, 0, 537, 538, 83, 86, 295,
714 192, 0, 194, 534, 482, 493, 285, 494, 490, 491,
715 459, 0, 463, 444, 0, 465, 416, 0, 0, 175,
716 0, 0, 0, 469, 0, 0, 450, 450, 445, 236,
717 289, 379, 129, 183, 183, 183, 289, 183, 183, 0,
718 388, 390, 401, 314, 121, 0, 122, 0, 145, 143,
719 202, 200, 199, 181, 22, 0, 26, 253, 274, 0,
720 183, 402, 0, 0, 0, 325, 0, 0, 125, 326,
721 301, 311, 210, 89, 0, 208, 0, 207, 0, 257,
722 205, 540, 542, 0, 547, 0, 539, 0, 0, 183,
723 183, 183, 0, 495, 532, 0, 424, 0, 465, 475,
724 478, 471, 429, 0, 453, 447, 451, 448, 293, 0,
725 396, 0, 391, 392, 393, 293, 394, 395, 383, 0,
726 0, 144, 147, 146, 0, 178, 183, 0, 275, 312,
727 0, 318, 127, 126, 305, 0, 319, 303, 326, 302,
728 0, 0, 0, 211, 64, 0, 204, 541, 84, 193,
729 497, 498, 499, 492, 285, 421, 432, 0, 0, 0,
730 455, 0, 0, 234, 289, 235, 231, 233, 0, 119,
731 120, 0, 277, 183, 403, 317, 0, 162, 0, 339,
732 323, 0, 0, 0, 0, 0, 0, 0, 0, 368,
733 436, 436, 360, 0, 0, 123, 128, 128, 332, 337,
734 0, 0, 329, 330, 333, 361, 331, 0, 213, 0,
735 0, 206, 496, 465, 417, 473, 472, 476, 479, 454,
736 452, 0, 232, 201, 276, 0, 0, 325, 370, 0,
737 0, 366, 350, 351, 352, 0, 0, 0, 369, 0,
738 367, 334, 134, 0, 135, 0, 0, 321, 326, 320,
739 343, 0, 136, 0, 209, 212, 0, 0, 0, 0,
740 371, 48, 0, 0, 0, 364, 353, 0, 358, 0,
741 0, 132, 215, 0, 133, 218, 338, 325, 0, 0,
742 214, 422, 322, 0, 324, 362, 344, 348, 0, 359,
743 0, 130, 0, 131, 0, 336, 327, 325, 0, 340,
744 325, 370, 325, 365, 372, 0, 216, 219, 328, 342,
745 325, 363, 0, 349, 0, 0, 373, 374, 354, 0,
746 0, 341, 345, 0, 372, 0, 0, 217, 220, 370,
747 0, 0, 355, 375, 0, 376, 0, 0, 346, 377,
748 0, 356, 325, 0, 0, 347, 357, 378, 0, 0,
752 static const short yydefgoto
[] = { 939,
753 1, 2, 3, 28, 29, 30, 345, 568, 351, 571,
754 200, 454, 667, 124, 242, 405, 126, 127, 128, 129,
755 130, 582, 131, 390, 389, 387, 678, 388, 132, 243,
756 133, 134, 332, 333, 334, 563, 655, 656, 31, 195,
757 786, 444, 91, 564, 640, 445, 34, 142, 288, 35,
758 218, 206, 78, 201, 207, 646, 79, 567, 337, 338,
759 37, 297, 298, 299, 644, 715, 669, 670, 671, 733,
760 801, 844, 862, 883, 910, 865, 885, 911, 324, 210,
761 680, 211, 38, 234, 236, 225, 94, 737, 354, 97,
762 98, 231, 475, 476, 223, 224, 144, 682, 145, 191,
763 287, 657, 658, 726, 335, 482, 579, 580, 581, 561,
764 368, 562, 790, 791, 792, 818, 839, 458, 840, 661,
765 793, 794, 868, 817, 901, 892, 920, 933, 893, 795,
766 796, 891, 797, 830, 853, 906, 907, 908, 931, 410,
767 411, 446, 630, 447, 448, 449, 327, 328, 450, 451,
768 653, 135, 40, 64, 41, 42, 43, 432, 689, 314,
769 604, 804, 527, 317, 539, 606, 44, 318, 69, 45,
770 437, 544, 438, 549, 696, 697, 46, 65, 304, 521,
771 66, 310, 525, 433, 434, 537, 613, 808, 538, 608,
772 749, 609, 750, 175, 424, 518, 519, 520, 683, 684,
773 306, 426, 176, 177, 178, 179, 180, 585, 586, 673,
774 587, 373, 136, 245, 486, 376, 377, 378, 137, 138,
778 static const short yypact
[] = { 120,
779 131, 2895, 2895, 468,-32768,-32768,-32768,-32768, 98, 118,
780 257, 110, 122, 132,-32768, 266,-32768,-32768, 266, 266,
781 -32768, 158, 266, 158, 266, 266,-32768,-32768,-32768,-32768,
782 234, 153, 2375, 497,-32768, 218,-32768,-32768, 2895,-32768,
783 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
784 -32768,-32768,-32768,-32768, 172, 210, 203, 210, 221, 2604,
785 2442, 254,-32768, 61, 3182, 3182, 81, 133,-32768,-32768,
786 158,-32768, 151, 266,-32768,-32768, 234, 253,-32768, 218,
787 1662,-32768, 540,-32768, 234, 497,-32768, 218,-32768,-32768,
788 879,-32768,-32768, 94,-32768, 263, 289, 1593,-32768, 298,
789 -32768,-32768,-32768,-32768,-32768,-32768, 2604, 2604, 266,-32768,
790 -32768,-32768, 2604,-32768,-32768, 933,-32768, 278, 323, 326,
791 -32768,-32768,-32768, 2604, 331, 361,-32768, 2658, 2712,-32768,
792 3553, 1169, 403, 370, 2604,-32768,-32768,-32768,-32768,-32768,
793 396, 267,-32768, 402, 3336, 302,-32768, 266,-32768,-32768,
794 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
795 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
796 -32768, 129, 3459,-32768,-32768,-32768, 2336, 457,-32768,-32768,
797 -32768, 266, 266, 449, 266, 266,-32768,-32768,-32768, 461,
798 642, 54,-32768, 540, 234,-32768, 474,-32768, 1805, 683,
799 218,-32768,-32768, 540,-32768, 259,-32768, 218, 1760, 526,
800 529, 318, 1681, 879,-32768,-32768,-32768,-32768, 218,-32768,
801 -32768, 505, 470,-32768, 94, 491, 218,-32768,-32768, 525,
802 486, 3078, 374, 210, 218, 210,-32768,-32768,-32768,-32768,
803 490, 499, 495, 503, 2496, 3244, 3459, 266,-32768, 517,
804 2604, 933,-32768, 933,-32768, 2604, 2604, 558,-32768,-32768,
805 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
806 2604, 2604,-32768,-32768, 266, 266, 2604, 2604,-32768,-32768,
807 -32768,-32768,-32768, 267, 1864,-32768, 547, 711,-32768,-32768,
808 -32768,-32768,-32768,-32768,-32768,-32768, 29,-32768, 539,-32768,
809 3459,-32768, 537, 542, 618,-32768, 457,-32768, 147, 542,
810 158, 559,-32768, 574, 573, 585,-32768, 574,-32768,-32768,
811 529,-32768,-32768, 635, 529, 654,-32768, 3048,-32768, 582,
812 589,-32768, 276, 82,-32768,-32768, 631, 218, 269, 219,
813 -32768, 540, 540,-32768, 683, 218,-32768, 1923,-32768,-32768,
814 683, 2604, 266, 591, 470, 595,-32768,-32768,-32768,-32768,
815 -32768, 592,-32768, 596,-32768,-32768,-32768, 599, 597, 2256,
816 -32768,-32768,-32768,-32768, 640, 606, 3244,-32768, 607, 610,
817 -32768, 3553, 615, 617, 3553, 3553, 2604, 656, 2604, 2604,
818 2834, 2942, 880, 784, 1653, 900, 900, 478, 478,-32768,
819 -32768,-32768,-32768,-32768, 622, 361, 616, 456, 242,-32768,
820 3067,-32768, 621,-32768, 1982,-32768, 711, 624, 302, 2766,
821 632, 3272, 851,-32768,-32768, 3347, 3459,-32768,-32768, 628,
822 158,-32768, 658, 2970,-32768,-32768, 347, 2843, 666, 84,
823 643,-32768,-32768,-32768, 3422,-32768, 659, 327,-32768,-32768,
824 176,-32768,-32768, 86,-32768,-32768,-32768, 3441,-32768, 526,
825 -32768,-32768, 526,-32768, 701,-32768,-32768, 660,-32768, 3553,
826 -32768, 218, 663,-32768, 661,-32768,-32768, 661, 218, 218,
827 -32768, 713,-32768,-32768,-32768, 3308,-32768,-32768, 640,-32768,
828 -32768,-32768,-32768,-32768, 708, 2604, 2417, 1396,-32768,-32768,
829 547,-32768,-32768,-32768,-32768,-32768, 668,-32768,-32768, 211,
830 681, 266,-32768, 2336, 676, 3097,-32768,-32768, 3422, 1779,
831 86,-32768, 679, 700, 86,-32768, 574,-32768, 352,-32768,
832 -32768,-32768,-32768, 234, 153, 2375, 262,-32768,-32768,-32768,
833 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 3478, 705,-32768,
834 -32768,-32768, 464, 93,-32768,-32768, 3411,-32768, 780, 495,
835 -32768,-32768,-32768, 707, 726,-32768, 840, 86,-32768,-32768,
836 86,-32768, 218,-32768, 368,-32768,-32768, 266, 1102, 713,
837 -32768, 1422, 2604, 750, 706, 3308,-32768,-32768, 1475,-32768,
838 -32768, 2604,-32768,-32768,-32768,-32768, 464,-32768,-32768,-32768,
839 -32768, 266,-32768,-32768, 729, 574,-32768, 3182, 3182, 76,
840 540, 234, 2998,-32768, 430, 2861, 1377, 1377,-32768,-32768,
841 -32768, 93, 218, 238, 330, 218,-32768, 330, 218, 3067,
842 -32768,-32768,-32768,-32768,-32768, 540,-32768, 234,-32768, 767,
843 -32768,-32768, 3553,-32768,-32768, 840,-32768,-32768,-32768, 2604,
844 212,-32768, 377, 545, 1022, 716, 717, 1182,-32768,-32768,
845 -32768,-32768,-32768, 758, 266,-32768, 762, 3553, 735, 737,
846 -32768, 361,-32768, 2604,-32768, 750,-32768, 2604, 273, 238,
847 330, 218, 383,-32768,-32768, 442,-32768, 760, 574,-32768,
848 -32768,-32768,-32768, 2604, 789, 757,-32768, 757, 588, 677,
849 -32768, 2041,-32768,-32768,-32768, 594,-32768,-32768,-32768, 389,
850 416, 767,-32768,-32768, 1422,-32768, 3186, 2604,-32768,-32768,
851 266,-32768,-32768,-32768,-32768, 764,-32768,-32768,-32768,-32768,
852 2122, 808, 1422,-32768,-32768, 1502,-32768,-32768, 1475,-32768,
853 -32768,-32768,-32768,-32768, 464,-32768,-32768, 782, 72, 72,
854 3553, 2604, 1377, 583,-32768, 583,-32768,-32768, 763,-32768,
855 -32768, 775,-32768, 3186,-32768,-32768, 2202, 816, 800,-32768,
856 -32768, 802, 813, 2604, 829, 798, 805, 2550, 429, 890,
857 79, 141,-32768, 849, 824,-32768, 825, 3147,-32768, 887,
858 1262, 103,-32768,-32768,-32768,-32768,-32768, 2364,-32768, 827,
859 1582,-32768,-32768, 574,-32768,-32768,-32768,-32768,-32768, 3553,
860 -32768, 601,-32768,-32768,-32768, 2604, 848,-32768, 2604, 2604,
861 3517,-32768,-32768,-32768,-32768, 831, 2604, 833,-32768, 853,
862 -32768,-32768,-32768, 540,-32768, 234, 1342,-32768,-32768,-32768,
863 -32768, 2604,-32768, 1582,-32768,-32768, 854, 845, 2604, 899,
864 -32768, 752, 866, 878, 2604,-32768,-32768, 881,-32768, 2604,
865 432,-32768, 320, 440,-32768, 332,-32768,-32768, 2202, 883,
866 -32768,-32768,-32768, 889,-32768,-32768,-32768,-32768, 3535,-32768,
867 52,-32768, 683,-32768, 683,-32768,-32768,-32768, 886,-32768,
868 -32768, 2604,-32768,-32768, 946, 891,-32768,-32768,-32768,-32768,
869 -32768,-32768, 892,-32768, 898, 69, 893,-32768,-32768, 495,
870 495,-32768,-32768, 2604, 946, 894, 946,-32768,-32768, 2604,
871 901, 145,-32768,-32768, 903,-32768, 654, 907,-32768, 403,
872 303,-32768,-32768, 908, 654,-32768,-32768, 403, 970, 975,
876 static const short yypgoto
[] = {-32768,
877 -32768,-32768,-32768, 192, -367,-32768,-32768,-32768,-32768,-32768,
878 -32768,-32768, -9,-32768, -52, 560, -231, 530,-32768,-32768,
879 -54,-32768, 220,-32768,-32768,-32768,-32768,-32768, 167,-32768,
880 -295,-32768, -312, 655,-32768,-32768, 334,-32768, 17, -195,
881 193, 16, 909,-32768, 356, 21, -11, -61, 710, 11,
882 -276, -575, -58, -206, -118,-32768,-32768,-32768, 196, 3,
883 -6,-32768, 579,-32768, 357,-32768, -604,-32768, -657,-32768,
884 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -68, -135,
885 -489, 14, -66,-32768,-32768,-32768,-32768,-32768, 647, 19,
886 -32768, 773, 649, 433, 785, 664, -27, -79, -55, -168,
887 -226, 355,-32768,-32768, -285,-32768,-32768,-32768, 434, -413,
888 -32768, -205,-32768,-32768,-32768,-32768, -122, -415, -734, 358,
889 -32768, 149,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
890 -32768,-32768, 150,-32768, -658, 105,-32768, 107,-32768, 608,
891 -32768, -359,-32768, 612, 633, 475, -307,-32768,-32768,-32768,
892 -32768, 18,-32768, 1029,-32768,-32768,-32768,-32768,-32768,-32768,
893 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -20, 4,
894 -364,-32768, 513,-32768, 443, 305,-32768,-32768,-32768,-32768,
895 -32768,-32768,-32768, -286,-32768,-32768,-32768, 310, 531,-32768,
896 -32768,-32768,-32768, -25, 753,-32768,-32768, 550,-32768, 321,
897 564,-32768, 651, 652, -121,-32768, -148,-32768,-32768, 405,
898 494,-32768,-32768,-32768,-32768,-32768,-32768, 714,-32768,-32768,
906 static const short yytable
[] = { 55,
907 57, 59, 346, 72, 36, 36, 63, 125, 141, 67,
908 68, 416, 343, 71, 209, 63, 74, 32, 32, 39,
909 39, 86, 33, 33, 220, 70, 212, 70, 308, 92,
910 440, 439, 464, 80, 339, 88, 230, 369, 469, 466,
911 181, 36, 232, 87, 81, 406, 184, 455, 83, 85,
912 188, 503, 237, 238, 32, 307, 39, 409, 240, 33,
913 710, 575, 286, 624, 190, 292, 533, 529, 340, 249,
914 70, 143, 806, 92, 70, 323, 100, 336, 802, 80,
915 281, 92, -112, 850, 222, 208, 560, 80, 244, 895,
916 192, 456, 279, 219, 221, 75, 50, 51, 213, 239,
917 50, 51, 197, 841, 418, 147, 915, 601, 143, 419,
918 762, 603, 198, 199, 408, 233, -35, 346, 182, -1,
919 50, 51, 14, 16, 375, 16, 143, 896, 800, 322,
920 -2, 50, 51, 886, 198, 199, 296, 517, 300, 183,
921 416, 148, 627, 846, 916, 303, 330, 220, 807, 50,
922 51, 622, 285, 899, 645, 291, 902, 647, 904, 551,
923 52, 842, 302, -112, 52, 53, 912, 367, 60, 53,
924 185, 230, 311, 312, 615, 315, 316, 232, -34, 54,
925 61, 501, 927, 143, 52, 16, 871, 301, 406, 53,
926 62, 186, 372, 80, 47, 52, 208, 80, 936, 56,
927 53, 92, 16, 460, 321, 427, 208, 463, 325, 754,
928 756, 336, 92, 52, 187, 222, 219, 192, 53, 379,
929 928, 220, 336, 462, 383, 407, 384, 189, 336, 82,
930 93, 148, 413, 903, 600, 477, 75, 477, 380, 686,
931 605, 14, 291, 143, 731, 692, 358, 14, 360, 718,
932 233, 558, 362, 95, 364, 489, 559, 143, 861, 50,
933 51, 925, 143, 14, 143, 403, 404, 14, 50, 51,
934 709, 75, 202, 421, 96, 320, 331, 347, 348, -115,
935 -115, -115, -115, 76, 99, -115, 591, -115, -115, -115,
936 430, 592, 77, 659, 461, 468, 701, 702, 14, 428,
937 414, 415, 101, -115, 50, 51, 293, 294, 295, 531,
938 532, 143, 146, 767, 70, 485, 283, 502, 203, 688,
939 -115, 226, 754, 52, -466, 284, 285, 204, 53, 193,
940 36, 92, 52, 194, 495, 341, 246, 53, 58, 342,
941 205, 208, -115, 222, 208, 208, 197, -115, 740, -175,
942 220, 672, 321, 251, 634, -175, 325, -115, 197, 14,
943 679, -175, 507, 714, 584, 308, 227, -175, 52, 723,
944 75, 202, 728, 53, 228, 235, 547, 5, 934, 7,
945 140, 247, 548, 935, 248, 9, 10, 11, 198, 199,
946 198, 199, 307, 757, 349, 409, -175, 14, 194, 524,
947 -175, 13, 748, 556, 15, 650, 250, 557, -175, 296,
948 528, 279, -175, 36, 540, 541, 542, 203, 16, 540,
949 541, 542, 357, 869, 543, 36, 204, 700, 36, 607,
950 363, 50, 51, 86, 70, 714, 36, 143, 515, 205,
951 22, 251, 672, 516, 280, 24, 565, 88, 143, 535,
952 534, 477, 699, 720, 536, 87, 660, 721, 706, 744,
953 553, 554, 320, 745, 676, 760, 75, 620, 566, 342,
954 382, 282, 501, 626, 629, 385, 386, 289, 827, 501,
955 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
956 401, 402, 761, 14, 309, 52, 194, 540, 541, 542,
957 53, 89, 594, 90, 86, 283, 651, 693, 882, 540,
958 541, 542, 342, 621, 284, 285, 884, 847, 88, 746,
959 194, 36, 622, 285, 86, 789, 87, 270, 271, 272,
960 313, 597, 326, 660, 515, 729, 80, 319, 88, 516,
961 352, 465, 75, 202, 48, 49, 87, 610, 695, 695,
962 353, 611, 612, 212, 547, 623, 80, 356, 291, 36,
963 548, 789, 359, 617, 618, 365, 625, 628, 652, 14,
964 897, 470, 898, 220, 366, 639, 367, 208, 370, 711,
965 636, 638, 690, 691, 347, 348, 812, 198, 199, 203,
966 75, 620, 685, 381, 320, -85, 75, 420, 204, 623,
967 320, -268, -268, 75, 620, 414, 415, 320, 497, 498,
968 681, 205, 422, 208, 80, 36, 92, 14, 423, 208,
969 208, 453, 722, 14, 80, 610, 143, 425, 535, 534,
970 14, 930, 36, 536, 431, 192, -464, 621, 208, 938,
971 80, 701, 702, 627, 75, 220, 622, 285, 320, 759,
972 755, 610, 622, 285, 435, 732, 346, 253, 255, 77,
973 436, 197, 104, 789, 452, 453, 459, 572, 472, 479,
974 474, 14, 483, 480, 576, 577, 481, 487, 785, 75,
975 620, 488, 491, 331, 695, 492, -325, -325, -325, -325,
976 493, 76, 494, 496, -325, -325, -325, 499, 500, 508,
977 77, 623, 623, 504, 918, 919, 14, 512, 80, 526,
978 -325, 765, 321, 325, 785, 589, 216, 217, 552, 321,
979 530, 784, 9, 10, 11, 826, 755, -325, 550, 5,
980 89, 7, 90, 36, 555, 77, 569, 9, 10, 11,
981 573, 574, 570, 281, 578, 588, 787, 623, 798, -325,
982 590, 788, 596, 13, -325, 208, 593, 784, 681, 557,
983 336, 72, 336, 848, -111, 863, 851, 854, 648, 828,
984 16, 713, 216, 217, 858, 602, 86, 864, 9, 10,
985 11, 619, 633, 635, 70, 70, 643, 674, 675, 870,
986 88, 687, 22, -304, 727, -32, 874, 24, 87, 734,
987 36, 668, 637, 834, 836, 273, 274, 881, 275, 276,
988 277, 278, 735, 787, 623, 798, 785, 736, 788, 703,
989 704, 705, 747, 707, 708, 321, 752, 876, 265, 266,
990 267, 268, 269, 270, 271, 272, 208, 753, 80, 851,
991 641, 766, 102, 799, 805, 813, 719, 103, 104, 866,
992 105, 331, 814, -33, 5, 6, 7, 8, 816, 784,
993 819, 921, 9, 10, 11, 643, 822, 851, 106, 717,
994 15, 820, 107, 108, 823, 741, 742, 743, 13, 109,
995 14, 824, 110, 215, 216, 217, 831, 111, 112, 113,
996 9, 10, 11, 114, 115, 16, 829, 739, 116, 117,
997 832, 833, 837, 118, 845, 119, 849, 857, 14, 859,
998 120, 860, 763, 751, 121, 875, 872, 22, 122, 123,
999 873, 642, 24, 264, 265, 266, 267, 268, 269, 270,
1000 271, 272, -486, 241, 668, 102, 5, 764, 7, 140,
1001 103, 104, 877, 105, 9, 10, 11, 268, 269, 270,
1002 271, 272, 668, 878, 905, 668, 914, 880, 889, 815,
1003 13, 106, 900, 15, 890, 107, 108, 909, 913, 940,
1004 923, 810, 109, 917, 941, 110, 926, 16, 929, 511,
1005 111, 112, 113, 932, 937, 852, 114, 115, 457, 724,
1006 843, 116, 117, 821, 712, 214, 118, 509, 119, 22,
1007 417, 473, 716, 120, 24, 361, 649, 121, 478, 355,
1008 725, 122, 123, 662, -94, 730, 471, 887, 888, 922,
1009 668, 505, 331, 924, -124, -124, -124, -124, -124, -124,
1010 -124, 632, -124, -124, -124, -124, -124, 522, -124, -124,
1011 -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
1012 -124, -124, -124, 73, -124, -124, 616, 811, 523, 809,
1013 698, -124, 429, 668, -124, 803, -124, 614, 599, -124,
1014 -124, -124, 513, 514, 879, -124, -124, 595, 738, 677,
1015 -124, -124, 0, 0, 0, -124, 0, -124, -124, 0,
1016 490, 0, -124, -124, 0, 0, -124, 0, -124, -124,
1017 -124, -124, 654, -124, -325, -325, -325, -325, -325, -325,
1018 -325, 0, -325, -325, -325, -325, -325, 0, -325, -325,
1019 -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
1020 -325, -325, -325, 0, -325, -325, 0, 0, 0, 0,
1021 0, -325, 0, 0, -325, 0, -325, 0, 0, -325,
1022 -325, -325, 0, 0, 0, -325, -325, 0, 0, 0,
1023 -325, -325, 0, 0, 0, -325, 0, -325, -325, 0,
1024 0, 0, -325, -325, 0, 0, -325, 0, -325, 0,
1025 -325, -325, 331, -325, -325, -325, 0, 0, 0, -325,
1026 -325, 0, -325, 0, 0, 0, -325, 0, -325, -325,
1027 -325, -325, -325, -325, -325, -325, -325, -325, -325, 0,
1028 -325, 0, -325, 0, -325, -325, 0, 0, 0, 0,
1029 0, -325, 273, 274, -325, 275, 276, 277, 278, -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, -300,
1033 -325, -325, 838, -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, 0, 0, -325, 0, 0, 0, 0, -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, 0,
1041 -325, -325, 867, -325, -335, -335, 0, 0, 0, -335,
1042 -335, 0, -335, 0, 0, 0, -335, 0, -335, -335,
1043 -335, -335, -335, -335, -335, -335, -335, -335, -335, 0,
1044 -335, 0, -335, 0, -335, -335, 0, 0, 0, 75,
1045 202, -335, 0, 0, -335, 0, 0, 0, 0, -335,
1046 -335, -335, 0, 0, 0, -335, -335, 0, 0, 0,
1047 -335, -335, 0, 0, 0, -335, 14, -335, -335, 0,
1048 0, 0, -335, -335, 694, 0, -335, 0, -335, 0,
1049 -335, -335, 663, -335, 664, 51, 203, 0, 0, 103,
1050 104, 0, 105, 0, 0, 204, 261, 262, 263, 264,
1051 265, 266, 267, 268, 269, 270, 271, 272, 205, 0,
1052 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1053 0, 109, 0, 0, 110, 0, 0, 0, 0, 111,
1054 112, 113, 0, 0, 0, 114, 115, 0, 0, 665,
1055 116, 117, 0, 0, 0, 118, 0, 119, 52, 0,
1056 0, 0, 120, 53, 0, 0, 121, 0, 0, -203,
1057 122, 123, 663, 666, 664, 51, 0, 0, 0, 103,
1058 104, 258, 105, 259, 260, 261, 262, 263, 264, 265,
1059 266, 267, 268, 269, 270, 271, 272, 0, 0, 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, -258,
1065 122, 123, 663, 666, 664, 51, 0, 0, 0, 103,
1066 104, 0, 105, 228, 0, 0, 5, 0, 7, 140,
1067 0, 0, 0, 0, 9, 10, 11, 0, 0, 0,
1068 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1069 13, 109, 0, 15, 110, 0, 0, 0, 0, 111,
1070 112, 113, 0, 0, 0, 114, 115, 16, 0, 665,
1071 116, 117, 0, 0, 0, 118, 0, 119, 52, 0,
1072 0, 0, 120, 53, 0, 0, 121, 0, 0, 22,
1073 122, 123, 196, 666, 24, -28, -28, -28, -28, 229,
1074 -261, 0, 0, -28, -28, -28, 0, 0, 0, 0,
1075 0, 350, 0, 0, -24, -24, -24, -24, 197, -28,
1076 0, -175, -24, -24, -24, 0, 0, -175, 266, 267,
1077 268, 269, 270, 271, 272, 0, -28, 197, -24, 0,
1078 -175, 0, 0, 0, 0, 0, -175, 0, 0, 0,
1079 198, 199, 0, 0, 0, -24, 0, 0, -28, 0,
1080 0, 0, 0, -28, 0, 0, 0, 0, -175, 198,
1081 199, 0, -175, -28, 0, 0, 0, -24, 0, 0,
1082 0, 0, -24, 0, 0, 0, 0, -175, 0, 0,
1083 344, -175, -24, -20, -20, -20, -20, 0, 0, 0,
1084 0, -20, -20, -20, 0, 0, 0, 0, 0, 331,
1085 0, 0, -488, -488, -488, -488, 197, -20, 0, -175,
1086 -488, -488, -488, 0, 0, -175, 0, 0, 0, 0,
1087 0, 0, 0, 0, -20, 0, -488, 102, -488, 0,
1088 0, 0, 103, 104, 0, 105, 0, 0, 0, 0,
1089 0, 0, 0, -488, 0, 0, -20, 0, 0, 0,
1090 0, -20, 0, 106, 0, 15, -175, 107, 108, 0,
1091 -175, -20, 0, 0, 109, -488, 0, 110, 0, 0,
1092 -488, 0, 111, 112, 113, 0, 0, 0, 114, 115,
1093 -488, 0, 0, 116, 117, 0, 102, 0, 118, 0,
1094 119, 103, 104, 0, 105, 120, 0, 0, 0, 121,
1095 0, 0, 0, 122, 123, 0, 0, 329, 0, 0,
1096 0, 0, 106, 0, 15, 0, 107, 108, 0, 0,
1097 0, 0, 0, 109, 0, 0, 110, 0, 0, 0,
1098 0, 111, 112, 113, 0, 0, 0, 114, 115, 0,
1099 0, 0, 116, 117, 0, 102, 0, 118, 0, 119,
1100 103, 104, 0, 105, 120, 0, 0, 0, 121, 0,
1101 0, 0, 122, 123, 0, 0, 412, 0, 0, 0,
1102 0, 106, 0, 15, 0, 107, 108, 0, 0, 0,
1103 0, 0, 109, 0, 0, 110, 0, 0, 0, 0,
1104 111, 112, 113, 0, 0, 0, 114, 115, 0, 0,
1105 0, 116, 117, 0, 102, 0, 118, 0, 119, 103,
1106 104, 0, 105, 120, 0, 0, 0, 121, 0, 0,
1107 0, 122, 123, 0, 0, 467, 0, 0, 0, 0,
1108 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1109 0, 109, 0, 0, 110, 0, 0, 0, 0, 111,
1110 112, 113, 0, 0, 0, 114, 115, 0, 0, 0,
1111 116, 117, 0, 102, 0, 118, 0, 119, 103, 104,
1112 0, 105, 120, 0, 0, 0, 121, 0, 0, 0,
1113 122, 123, 0, 0, 506, 0, 0, 0, 0, 106,
1114 0, 15, 0, 107, 108, 0, 0, 0, 0, 0,
1115 109, 0, 0, 110, 0, 0, 0, 0, 111, 112,
1116 113, 0, 0, 0, 114, 115, 0, 0, 0, 116,
1117 117, 0, 0, 0, 118, 0, 119, 0, 0, 0,
1118 0, 120, 0, 0, 0, 121, 0, 0, 0, 122,
1119 123, 0, 0, 758, 664, 768, 6, 7, 8, 103,
1120 104, 0, 105, 9, 10, 11, 769, 0, 770, 771,
1121 772, 773, 774, 775, 776, 777, 778, 779, 780, 13,
1122 106, 14, 15, 0, 107, 108, 0, 0, 0, 0,
1123 0, 109, 0, 0, 110, 0, 16, 0, 0, 111,
1124 112, 113, 0, 0, 0, 114, 115, 0, 0, 0,
1125 116, 117, 0, 0, 0, 118, 0, 119, 781, 0,
1126 0, 0, 120, 782, 0, 0, 121, 0, 783, 0,
1127 122, 123, 0, 367, 664, 51, 0, 0, 0, 103,
1128 104, 0, 105, 0, 0, 0, 769, 0, 770, 771,
1129 772, 773, 774, 775, 776, 777, 778, 779, 780, 0,
1130 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1131 0, 109, 0, 0, 110, 0, 0, 0, 0, 111,
1132 112, 113, 0, 0, 0, 114, 115, 0, 102, 0,
1133 116, 117, 0, 103, 104, 118, 105, 119, 52, 0,
1134 0, 0, 120, 53, 0, 0, 121, 0, 783, 0,
1135 122, 123, 0, 367, 106, 0, 15, 0, 107, 108,
1136 0, 0, 0, 0, 0, 109, 0, 0, 110, 0,
1137 0, 0, 0, 111, 112, 113, 0, 0, 0, 114,
1138 115, 0, 0, 0, 116, 117, 0, 0, 0, 118,
1139 0, 119, 0, 0, 0, 0, 120, 0, 0, 0,
1140 121, 0, 0, 0, 122, 123, 0, 484, 149, 150,
1141 0, 151, 152, 0, 0, 0, 153, 154, 155, 156,
1142 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
1143 167, 168, 169, 170, 171, 0, 102, 5, 6, 7,
1144 8, 103, 104, 172, 105, 9, 10, 11, 5, 6,
1145 7, 8, 0, 0, 0, 0, 9, 10, 11, 0,
1146 0, 13, 106, 14, 15, 0, 107, 108, 0, 0,
1147 0, 0, 13, 109, 14, 0, 110, 174, 16, 0,
1148 0, 111, 112, 113, 0, 0, 305, 114, 115, 16,
1149 0, 0, 116, 117, 0, 0, 0, 118, 0, 119,
1150 22, 0, 0, 0, 120, 24, 0, 0, 121, 0,
1151 0, 22, 122, 123, 102, 5, 24, 7, 140, 103,
1152 104, 84, 105, 9, 10, 11, 260, 261, 262, 263,
1153 264, 265, 266, 267, 268, 269, 270, 271, 272, 13,
1154 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1155 0, 109, 0, 0, 110, 0, 16, 0, 0, 111,
1156 112, 113, 0, 0, 0, 114, 115, 0, 102, 0,
1157 116, 117, 0, 103, 104, 118, 105, 119, 22, 0,
1158 0, 0, 120, 24, 0, 0, 121, 0, 0, 0,
1159 122, 123, 0, 0, 106, 0, 15, 0, 107, 108,
1160 0, 0, 0, 0, 0, 109, 0, 0, 110, 0,
1161 0, 0, 0, 111, 112, 113, 0, 0, 0, 114,
1162 115, 0, 102, 0, 116, 117, 0, 103, 104, 118,
1163 105, 119, 371, 0, 0, 0, 120, 0, 0, 0,
1164 121, 0, 0, 0, 122, 123, 0, 0, 106, 0,
1165 15, 0, 107, 108, 0, 0, 0, 0, 0, 109,
1166 0, 0, 110, 0, 0, 0, 0, 111, 112, 113,
1167 0, 0, 0, 114, 115, 0, 102, 0, 116, 117,
1168 0, 103, 104, 118, 105, 119, 0, 0, 0, 0,
1169 120, 0, 0, 0, 121, 0, 825, 0, 122, 123,
1170 0, 0, 106, 0, 15, 0, 107, 108, 0, 0,
1171 0, 0, 0, 109, 0, 0, 110, 0, 0, 0,
1172 0, 111, 112, 113, 0, 0, 0, 114, 115, 0,
1173 102, 0, 116, 117, 0, 103, 104, 118, 105, 119,
1174 0, 0, 0, 0, 120, 0, 0, 0, 121, 0,
1175 0, 0, 122, 123, 0, 0, 106, 0, 15, 0,
1176 107, 108, 0, 0, 0, 0, 0, 109, 0, 0,
1177 110, 0, 0, 0, 0, 111, 112, 113, 0, 0,
1178 0, 114, 115, 0, 102, 0, 252, 117, 0, 103,
1179 104, 118, 105, 119, 0, 0, 0, 0, 120, 0,
1180 0, 0, 121, 0, 0, 0, 122, 123, 0, 0,
1181 106, 0, 15, 0, 107, 108, 0, 0, 0, 0,
1182 0, 109, 0, 0, 110, 0, 0, 0, 0, 111,
1183 112, 113, 0, 0, 0, 114, 115, 0, 510, 0,
1184 254, 117, 0, 103, 104, 118, 105, 119, 0, 0,
1185 0, 0, 120, 0, 0, 0, 121, 0, 0, 0,
1186 122, 123, 0, 0, 106, 0, 15, 0, 107, 108,
1187 0, 0, 0, 0, 0, 109, 0, 0, 110, 0,
1188 0, 0, 0, 111, 112, 113, 0, 0, 0, 114,
1189 115, 0, 0, 0, 116, 117, 0, 0, 0, 118,
1190 0, 119, 0, 0, 0, 0, 120, 0, 0, 0,
1191 121, 0, 0, 545, 122, 123, 5, 0, 7, 140,
1192 0, 0, 0, 0, 9, 10, 11, 0, 0, 0,
1193 0, 545, 0, 0, 5, 0, 7, 140, 0, 0,
1194 13, 0, 9, 10, 11, 262, 263, 264, 265, 266,
1195 267, 268, 269, 270, 271, 272, 0, 16, 13, 0,
1196 0, 0, 0, 0, 0, 4, 0, -128, 5, 6,
1197 7, 8, 0, 0, 0, 16, 9, 10, 11, 22,
1198 -440, -440, -440, 0, 24, 0, 0, 0, 0, 546,
1199 -440, 12, 13, 0, 14, 15, 0, 22, -439, -439,
1200 -439, 0, 24, 0, 0, 0, 0, 546, -439, 16,
1201 0, 0, 17, 18, -128, 0, 0, 0, 0, 0,
1202 0, 0, 0, -128, 0, 19, 20, 21, 0, 0,
1203 0, 22, 0, 0, 0, 23, 24, 25, 26, 0,
1204 4, 27, -128, 5, 6, 7, 8, 0, 0, 0,
1205 0, 9, 10, 11, 263, 264, 265, 266, 267, 268,
1206 269, 270, 271, 272, 0, 0, 0, 13, 4, 14,
1207 -128, 5, 6, 7, 8, 0, 0, 0, 0, 9,
1208 10, 11, 0, 0, 16, 0, 0, 531, 532, -128,
1209 0, 0, 0, 0, 0, 13, 0, 14, -128, 0,
1210 0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
1211 0, 24, 16, 0, 0, 0, 27, -128, 441, 0,
1212 442, 5, 6, 7, 8, 0, -128, 443, 0, 9,
1213 10, 11, 0, 0, 22, 0, 0, 441, 0, 24,
1214 5, 6, 7, 8, 27, 13, 443, 14, 9, 10,
1215 11, 5, 0, 7, 290, 0, 0, 0, 0, 9,
1216 10, 11, 16, 0, 13, 0, 14, 0, 0, 0,
1217 5, 6, 7, 8, 0, 13, 0, 0, 9, 10,
1218 11, 16, 0, 0, 22, 0, 0, 0, 0, 24,
1219 0, 0, 16, -385, 13, 0, 14, 0, 0, 0,
1220 0, 0, 0, 22, 0, 0, 0, 0, 24, 0,
1221 0, 16, -385, 0, 22, 0, 0, 0, 0, 24,
1222 5, 6, 7, 8, -270, -270, 0, 0, 9, 10,
1223 11, 0, 0, 22, 0, 0, 0, 0, 24, 0,
1224 0, 0, 0, 598, 13, 0, 14, 0, 0, 0,
1225 0, 0, 0, 0, 149, 150, 0, 151, 152, 0,
1226 0, 16, 153, 154, 155, 156, 157, 158, 159, 160,
1227 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
1228 171, 0, 0, 22, 0, 14, 0, 0, 24, 172,
1229 256, 257, 258, 835, 259, 260, 261, 262, 263, 264,
1230 265, 266, 267, 268, 269, 270, 271, 272, 0, 0,
1231 173, 0, 0, 0, 0, 0, 149, 150, 0, 151,
1232 152, 0, 0, 174, 153, 154, 155, 156, 157, 158,
1233 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
1234 169, 170, 171, 0, 149, 150, 0, 151, 152, 0,
1235 0, 374, 153, 154, 155, 156, 157, 158, 159, 160,
1236 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
1237 171, 0, 0, 0, 0, 0, 0, 0, 0, 172,
1238 149, 150, 0, 151, 152, 174, 0, 0, 153, 154,
1239 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1240 165, 166, 167, 168, 169, 170, 171, 0, 0, 5,
1241 0, 7, 290, 174, 0, 583, 0, 9, 10, 11,
1242 5, 6, 7, 8, 0, 0, 443, 0, 9, 10,
1243 11, 0, 0, 13, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 13, 0, 14, 0, 0, 174,
1245 16, 0, 0, 0, 0, 283, 0, 0, 0, 0,
1246 0, 16, 0, 0, 284, 285, 0, 0, 0, 0,
1247 0, 0, 22, 0, 0, 0, 0, 24, 0, 0,
1248 0, 0, 0, 22, 5, 6, 7, 8, 24, 0,
1249 631, 0, 9, 10, 11, 5, 6, 7, 8, 0,
1250 0, 0, 0, 9, 10, 11, 0, 0, 13, 0,
1251 14, 0, 0, 0, 5, 6, 7, 8, 0, 13,
1252 0, 14, 9, 10, 11, 16, 0, 0, 0, 0,
1253 0, 0, 5, 0, 7, 140, 16, 0, 13, 0,
1254 9, 10, 11, 0, 0, 0, 0, 22, 0, 0,
1255 0, 5, 24, 7, 290, 16, 13, 0, 22, 9,
1256 10, 11, 0, 24, 0, 0, 0, 0, 0, 0,
1257 0, 0, 0, 16, 0, 13, 0, 22, 0, 0,
1258 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
1259 0, 0, 16, 0, 0, 22, 855, 0, 0, 0,
1260 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1261 0, 0, 0, 0, 22, 0, 0, 0, 0, 24,
1262 0, 256, 257, 258, 856, 259, 260, 261, 262, 263,
1263 264, 265, 266, 267, 268, 269, 270, 271, 272, 256,
1264 257, 258, 894, 259, 260, 261, 262, 263, 264, 265,
1265 266, 267, 268, 269, 270, 271, 272, 256, 257, 258,
1266 0, 259, 260, 261, 262, 263, 264, 265, 266, 267,
1267 268, 269, 270, 271, 272
1270 static const short yycheck
[] = { 9,
1271 10, 11, 209, 24, 2, 3, 16, 60, 61, 19,
1272 20, 288, 208, 23, 83, 25, 26, 2, 3, 2,
1273 3, 33, 2, 3, 91, 22, 85, 24, 177, 36,
1274 326, 318, 345, 31, 203, 33, 98, 243, 351, 347,
1275 66, 39, 98, 33, 31, 277, 67, 333, 32, 33,
1276 71, 411, 107, 108, 39, 177, 39, 284, 113, 39,
1277 636, 477, 142, 553, 74, 145, 434, 432, 204, 124,
1278 67, 61, 1, 80, 71, 194, 58, 200, 736, 77,
1279 135, 88, 1, 818, 94, 83, 1, 85, 116, 38,
1280 77, 10, 9, 91, 1, 3, 3, 4, 85, 109,
1281 3, 4, 27, 1, 76, 45, 38, 521, 98, 81,
1282 715, 525, 59, 60, 283, 98, 38, 324, 38, 0,
1283 3, 4, 30, 45, 246, 45, 116, 76, 733, 76,
1284 0, 3, 4, 868, 59, 60, 146, 423, 148, 59,
1285 417, 81, 50, 801, 76, 173, 199, 214, 77, 3,
1286 4, 59, 60, 888, 568, 145, 891, 571, 893, 76,
1287 67, 59, 172, 82, 67, 72, 901, 82, 59, 72,
1288 38, 233, 182, 183, 539, 185, 186, 233, 38, 82,
1289 59, 408, 38, 173, 67, 45, 844, 59, 420, 72,
1290 59, 59, 245, 191, 3, 67, 194, 195, 933, 82,
1291 72, 208, 45, 339, 191, 59, 204, 343, 195, 699,
1292 700, 334, 219, 67, 82, 225, 214, 204, 72, 247,
1293 76, 288, 345, 342, 252, 278, 254, 77, 351, 77,
1294 39, 81, 285, 892, 520, 358, 3, 360, 248, 604,
1295 527, 30, 232, 233, 660, 613, 230, 30, 232, 38,
1296 233, 76, 234, 82, 236, 377, 81, 247, 834, 3,
1297 4, 920, 252, 30, 254, 275, 276, 30, 3, 4,
1298 630, 3, 4, 301, 65, 7, 1, 59, 60, 4,
1299 5, 6, 7, 50, 82, 10, 76, 12, 13, 14,
1300 311, 81, 59, 579, 76, 348, 59, 60, 30, 309,
1301 59, 60, 82, 28, 3, 4, 5, 6, 7, 48,
1302 49, 301, 59, 729, 311, 370, 50, 76, 50, 606,
1303 45, 59, 812, 67, 63, 59, 60, 59, 72, 77,
1304 328, 338, 67, 81, 387, 77, 59, 72, 82, 81,
1305 72, 339, 67, 353, 342, 343, 27, 72, 76, 30,
1306 417, 583, 339, 81, 560, 36, 343, 82, 27, 30,
1307 592, 30, 415, 640, 486, 514, 78, 36, 67, 655,
1308 3, 4, 658, 72, 1, 78, 438, 4, 76, 6,
1309 7, 59, 438, 81, 59, 12, 13, 14, 59, 60,
1310 59, 60, 514, 701, 77, 622, 77, 30, 81, 427,
1311 81, 28, 689, 77, 31, 38, 76, 81, 77, 419,
1312 431, 9, 81, 411, 68, 69, 70, 50, 45, 68,
1313 69, 70, 227, 839, 78, 423, 59, 623, 426, 78,
1314 235, 3, 4, 445, 431, 712, 434, 427, 423, 72,
1315 67, 81, 674, 423, 75, 72, 458, 445, 438, 434,
1316 434, 574, 621, 77, 434, 445, 579, 81, 627, 77,
1317 444, 445, 7, 81, 586, 77, 3, 4, 458, 81,
1318 251, 76, 699, 553, 554, 256, 257, 76, 50, 706,
1319 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
1320 271, 272, 77, 30, 38, 67, 81, 68, 69, 70,
1321 72, 5, 512, 7, 516, 50, 575, 78, 77, 68,
1322 69, 70, 81, 50, 59, 60, 77, 804, 516, 78,
1323 81, 519, 59, 60, 536, 731, 516, 50, 51, 52,
1324 82, 515, 59, 656, 519, 658, 534, 77, 536, 519,
1325 36, 346, 3, 4, 77, 78, 536, 534, 617, 618,
1326 81, 535, 536, 612, 616, 553, 554, 67, 548, 557,
1327 616, 767, 77, 547, 548, 76, 553, 554, 578, 30,
1328 883, 352, 885, 640, 76, 565, 82, 575, 76, 638,
1329 564, 565, 608, 609, 59, 60, 755, 59, 60, 50,
1330 3, 4, 602, 77, 7, 38, 3, 59, 59, 597,
1331 7, 77, 78, 3, 4, 59, 60, 7, 389, 390,
1332 597, 72, 76, 611, 612, 613, 623, 30, 77, 617,
1333 618, 77, 78, 30, 622, 612, 616, 10, 613, 613,
1334 30, 927, 630, 613, 76, 622, 63, 50, 636, 935,
1335 638, 59, 60, 50, 3, 712, 59, 60, 7, 702,
1336 50, 638, 59, 60, 82, 665, 863, 128, 129, 59,
1337 76, 27, 9, 869, 83, 77, 36, 472, 78, 78,
1338 76, 30, 76, 78, 479, 480, 78, 38, 731, 3,
1339 4, 76, 76, 1, 753, 76, 4, 5, 6, 7,
1340 76, 50, 76, 38, 12, 13, 14, 76, 83, 76,
1341 59, 699, 700, 83, 910, 911, 30, 76, 706, 82,
1342 28, 721, 699, 700, 767, 496, 6, 7, 76, 706,
1343 63, 731, 12, 13, 14, 778, 50, 45, 63, 4,
1344 5, 6, 7, 731, 76, 59, 36, 12, 13, 14,
1345 78, 81, 83, 798, 32, 38, 731, 745, 731, 67,
1346 83, 731, 77, 28, 72, 753, 76, 767, 745, 81,
1347 883, 782, 885, 816, 82, 834, 819, 820, 573, 779,
1348 45, 5, 6, 7, 827, 76, 788, 836, 12, 13,
1349 14, 77, 3, 77, 781, 782, 567, 38, 83, 842,
1350 788, 63, 67, 78, 78, 38, 849, 72, 788, 38,
1351 798, 582, 77, 787, 788, 54, 55, 860, 57, 58,
1352 59, 60, 78, 798, 812, 798, 869, 81, 798, 624,
1353 625, 626, 63, 628, 629, 812, 38, 76, 45, 46,
1354 47, 48, 49, 50, 51, 52, 834, 81, 836, 892,
1355 1, 78, 3, 36, 63, 83, 651, 8, 9, 836,
1356 11, 1, 78, 38, 4, 5, 6, 7, 59, 869,
1357 59, 914, 12, 13, 14, 646, 38, 920, 29, 650,
1358 31, 59, 33, 34, 77, 680, 681, 682, 28, 40,
1359 30, 77, 43, 5, 6, 7, 38, 48, 49, 50,
1360 12, 13, 14, 54, 55, 45, 7, 678, 59, 60,
1361 77, 77, 16, 64, 78, 66, 59, 77, 30, 77,
1362 71, 59, 717, 694, 75, 17, 63, 67, 79, 80,
1363 76, 82, 72, 44, 45, 46, 47, 48, 49, 50,
1364 51, 52, 82, 1, 715, 3, 4, 718, 6, 7,
1365 8, 9, 77, 11, 12, 13, 14, 48, 49, 50,
1366 51, 52, 733, 76, 9, 736, 59, 77, 76, 764,
1367 28, 29, 77, 31, 76, 33, 34, 77, 77, 0,
1368 77, 752, 40, 81, 0, 43, 76, 45, 76, 420,
1369 48, 49, 50, 77, 77, 819, 54, 55, 334, 656,
1370 798, 59, 60, 774, 639, 87, 64, 419, 66, 67,
1371 291, 355, 646, 71, 72, 233, 574, 75, 360, 225,
1372 656, 79, 80, 580, 82, 658, 353, 869, 869, 915,
1373 801, 414, 1, 917, 3, 4, 5, 6, 7, 8,
1374 9, 557, 11, 12, 13, 14, 15, 426, 17, 18,
1375 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1376 29, 30, 31, 25, 33, 34, 544, 753, 426, 750,
1377 618, 40, 310, 844, 43, 745, 45, 537, 519, 48,
1378 49, 50, 422, 422, 855, 54, 55, 514, 674, 586,
1379 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1380 377, -1, 71, 72, -1, -1, 75, -1, 77, 78,
1381 79, 80, 1, 82, 3, 4, 5, 6, 7, 8,
1382 9, -1, 11, 12, 13, 14, 15, -1, 17, 18,
1383 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1384 29, 30, 31, -1, 33, 34, -1, -1, -1, -1,
1385 -1, 40, -1, -1, 43, -1, 45, -1, -1, 48,
1386 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1387 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1388 -1, -1, 71, 72, -1, -1, 75, -1, 77, -1,
1389 79, 80, 1, 82, 3, 4, -1, -1, -1, 8,
1390 9, -1, 11, -1, -1, -1, 15, -1, 17, 18,
1391 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
1392 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1393 -1, 40, 54, 55, 43, 57, 58, 59, 60, 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, 78,
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, -1, -1, 43, -1, -1, -1, -1, 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, -1,
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, 3,
1409 4, 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, 30, 66, 67, -1,
1412 -1, -1, 71, 72, 38, -1, 75, -1, 77, -1,
1413 79, 80, 1, 82, 3, 4, 50, -1, -1, 8,
1414 9, -1, 11, -1, -1, 59, 41, 42, 43, 44,
1415 45, 46, 47, 48, 49, 50, 51, 52, 72, -1,
1416 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1417 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1418 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1419 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1420 -1, -1, 71, 72, -1, -1, 75, -1, -1, 78,
1421 79, 80, 1, 82, 3, 4, -1, -1, -1, 8,
1422 9, 37, 11, 39, 40, 41, 42, 43, 44, 45,
1423 46, 47, 48, 49, 50, 51, 52, -1, -1, -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, -1, 11, 1, -1, -1, 4, -1, 6, 7,
1431 -1, -1, -1, -1, 12, 13, 14, -1, -1, -1,
1432 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1433 28, 40, -1, 31, 43, -1, -1, -1, -1, 48,
1434 49, 50, -1, -1, -1, 54, 55, 45, -1, 58,
1435 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1436 -1, -1, 71, 72, -1, -1, 75, -1, -1, 67,
1437 79, 80, 1, 82, 72, 4, 5, 6, 7, 77,
1438 78, -1, -1, 12, 13, 14, -1, -1, -1, -1,
1439 -1, 1, -1, -1, 4, 5, 6, 7, 27, 28,
1440 -1, 30, 12, 13, 14, -1, -1, 36, 46, 47,
1441 48, 49, 50, 51, 52, -1, 45, 27, 28, -1,
1442 30, -1, -1, -1, -1, -1, 36, -1, -1, -1,
1443 59, 60, -1, -1, -1, 45, -1, -1, 67, -1,
1444 -1, -1, -1, 72, -1, -1, -1, -1, 77, 59,
1445 60, -1, 81, 82, -1, -1, -1, 67, -1, -1,
1446 -1, -1, 72, -1, -1, -1, -1, 77, -1, -1,
1447 1, 81, 82, 4, 5, 6, 7, -1, -1, -1,
1448 -1, 12, 13, 14, -1, -1, -1, -1, -1, 1,
1449 -1, -1, 4, 5, 6, 7, 27, 28, -1, 30,
1450 12, 13, 14, -1, -1, 36, -1, -1, -1, -1,
1451 -1, -1, -1, -1, 45, -1, 28, 3, 30, -1,
1452 -1, -1, 8, 9, -1, 11, -1, -1, -1, -1,
1453 -1, -1, -1, 45, -1, -1, 67, -1, -1, -1,
1454 -1, 72, -1, 29, -1, 31, 77, 33, 34, -1,
1455 81, 82, -1, -1, 40, 67, -1, 43, -1, -1,
1456 72, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1457 82, -1, -1, 59, 60, -1, 3, -1, 64, -1,
1458 66, 8, 9, -1, 11, 71, -1, -1, -1, 75,
1459 -1, -1, -1, 79, 80, -1, -1, 83, -1, -1,
1460 -1, -1, 29, -1, 31, -1, 33, 34, -1, -1,
1461 -1, -1, -1, 40, -1, -1, 43, -1, -1, -1,
1462 -1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1463 -1, -1, 59, 60, -1, 3, -1, 64, -1, 66,
1464 8, 9, -1, 11, 71, -1, -1, -1, 75, -1,
1465 -1, -1, 79, 80, -1, -1, 83, -1, -1, -1,
1466 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1467 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1468 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1469 -1, 59, 60, -1, 3, -1, 64, -1, 66, 8,
1470 9, -1, 11, 71, -1, -1, -1, 75, -1, -1,
1471 -1, 79, 80, -1, -1, 83, -1, -1, -1, -1,
1472 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1473 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1474 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1475 59, 60, -1, 3, -1, 64, -1, 66, 8, 9,
1476 -1, 11, 71, -1, -1, -1, 75, -1, -1, -1,
1477 79, 80, -1, -1, 83, -1, -1, -1, -1, 29,
1478 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1479 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1480 50, -1, -1, -1, 54, 55, -1, -1, -1, 59,
1481 60, -1, -1, -1, 64, -1, 66, -1, -1, -1,
1482 -1, 71, -1, -1, -1, 75, -1, -1, -1, 79,
1483 80, -1, -1, 83, 3, 4, 5, 6, 7, 8,
1484 9, -1, 11, 12, 13, 14, 15, -1, 17, 18,
1485 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1486 29, 30, 31, -1, 33, 34, -1, -1, -1, -1,
1487 -1, 40, -1, -1, 43, -1, 45, -1, -1, 48,
1488 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1489 59, 60, -1, -1, -1, 64, -1, 66, 67, -1,
1490 -1, -1, 71, 72, -1, -1, 75, -1, 77, -1,
1491 79, 80, -1, 82, 3, 4, -1, -1, -1, 8,
1492 9, -1, 11, -1, -1, -1, 15, -1, 17, 18,
1493 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
1494 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1495 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1496 49, 50, -1, -1, -1, 54, 55, -1, 3, -1,
1497 59, 60, -1, 8, 9, 64, 11, 66, 67, -1,
1498 -1, -1, 71, 72, -1, -1, 75, -1, 77, -1,
1499 79, 80, -1, 82, 29, -1, 31, -1, 33, 34,
1500 -1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
1501 -1, -1, -1, 48, 49, 50, -1, -1, -1, 54,
1502 55, -1, -1, -1, 59, 60, -1, -1, -1, 64,
1503 -1, 66, -1, -1, -1, -1, 71, -1, -1, -1,
1504 75, -1, -1, -1, 79, 80, -1, 82, 3, 4,
1505 -1, 6, 7, -1, -1, -1, 11, 12, 13, 14,
1506 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1507 25, 26, 27, 28, 29, -1, 3, 4, 5, 6,
1508 7, 8, 9, 38, 11, 12, 13, 14, 4, 5,
1509 6, 7, -1, -1, -1, -1, 12, 13, 14, -1,
1510 -1, 28, 29, 30, 31, -1, 33, 34, -1, -1,
1511 -1, -1, 28, 40, 30, -1, 43, 72, 45, -1,
1512 -1, 48, 49, 50, -1, -1, 81, 54, 55, 45,
1513 -1, -1, 59, 60, -1, -1, -1, 64, -1, 66,
1514 67, -1, -1, -1, 71, 72, -1, -1, 75, -1,
1515 -1, 67, 79, 80, 3, 4, 72, 6, 7, 8,
1516 9, 77, 11, 12, 13, 14, 40, 41, 42, 43,
1517 44, 45, 46, 47, 48, 49, 50, 51, 52, 28,
1518 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1519 -1, 40, -1, -1, 43, -1, 45, -1, -1, 48,
1520 49, 50, -1, -1, -1, 54, 55, -1, 3, -1,
1521 59, 60, -1, 8, 9, 64, 11, 66, 67, -1,
1522 -1, -1, 71, 72, -1, -1, 75, -1, -1, -1,
1523 79, 80, -1, -1, 29, -1, 31, -1, 33, 34,
1524 -1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
1525 -1, -1, -1, 48, 49, 50, -1, -1, -1, 54,
1526 55, -1, 3, -1, 59, 60, -1, 8, 9, 64,
1527 11, 66, 67, -1, -1, -1, 71, -1, -1, -1,
1528 75, -1, -1, -1, 79, 80, -1, -1, 29, -1,
1529 31, -1, 33, 34, -1, -1, -1, -1, -1, 40,
1530 -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1531 -1, -1, -1, 54, 55, -1, 3, -1, 59, 60,
1532 -1, 8, 9, 64, 11, 66, -1, -1, -1, -1,
1533 71, -1, -1, -1, 75, -1, 77, -1, 79, 80,
1534 -1, -1, 29, -1, 31, -1, 33, 34, -1, -1,
1535 -1, -1, -1, 40, -1, -1, 43, -1, -1, -1,
1536 -1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1537 3, -1, 59, 60, -1, 8, 9, 64, 11, 66,
1538 -1, -1, -1, -1, 71, -1, -1, -1, 75, -1,
1539 -1, -1, 79, 80, -1, -1, 29, -1, 31, -1,
1540 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1541 43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
1542 -1, 54, 55, -1, 3, -1, 59, 60, -1, 8,
1543 9, 64, 11, 66, -1, -1, -1, -1, 71, -1,
1544 -1, -1, 75, -1, -1, -1, 79, 80, -1, -1,
1545 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1546 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1547 49, 50, -1, -1, -1, 54, 55, -1, 3, -1,
1548 59, 60, -1, 8, 9, 64, 11, 66, -1, -1,
1549 -1, -1, 71, -1, -1, -1, 75, -1, -1, -1,
1550 79, 80, -1, -1, 29, -1, 31, -1, 33, 34,
1551 -1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
1552 -1, -1, -1, 48, 49, 50, -1, -1, -1, 54,
1553 55, -1, -1, -1, 59, 60, -1, -1, -1, 64,
1554 -1, 66, -1, -1, -1, -1, 71, -1, -1, -1,
1555 75, -1, -1, 1, 79, 80, 4, -1, 6, 7,
1556 -1, -1, -1, -1, 12, 13, 14, -1, -1, -1,
1557 -1, 1, -1, -1, 4, -1, 6, 7, -1, -1,
1558 28, -1, 12, 13, 14, 42, 43, 44, 45, 46,
1559 47, 48, 49, 50, 51, 52, -1, 45, 28, -1,
1560 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
1561 6, 7, -1, -1, -1, 45, 12, 13, 14, 67,
1562 68, 69, 70, -1, 72, -1, -1, -1, -1, 77,
1563 78, 27, 28, -1, 30, 31, -1, 67, 68, 69,
1564 70, -1, 72, -1, -1, -1, -1, 77, 78, 45,
1565 -1, -1, 48, 49, 50, -1, -1, -1, -1, -1,
1566 -1, -1, -1, 59, -1, 61, 62, 63, -1, -1,
1567 -1, 67, -1, -1, -1, 71, 72, 73, 74, -1,
1568 1, 77, 3, 4, 5, 6, 7, -1, -1, -1,
1569 -1, 12, 13, 14, 43, 44, 45, 46, 47, 48,
1570 49, 50, 51, 52, -1, -1, -1, 28, 1, 30,
1571 3, 4, 5, 6, 7, -1, -1, -1, -1, 12,
1572 13, 14, -1, -1, 45, -1, -1, 48, 49, 50,
1573 -1, -1, -1, -1, -1, 28, -1, 30, 59, -1,
1574 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1,
1575 -1, 72, 45, -1, -1, -1, 77, 50, 1, -1,
1576 3, 4, 5, 6, 7, -1, 59, 10, -1, 12,
1577 13, 14, -1, -1, 67, -1, -1, 1, -1, 72,
1578 4, 5, 6, 7, 77, 28, 10, 30, 12, 13,
1579 14, 4, -1, 6, 7, -1, -1, -1, -1, 12,
1580 13, 14, 45, -1, 28, -1, 30, -1, -1, -1,
1581 4, 5, 6, 7, -1, 28, -1, -1, 12, 13,
1582 14, 45, -1, -1, 67, -1, -1, -1, -1, 72,
1583 -1, -1, 45, 76, 28, -1, 30, -1, -1, -1,
1584 -1, -1, -1, 67, -1, -1, -1, -1, 72, -1,
1585 -1, 45, 76, -1, 67, -1, -1, -1, -1, 72,
1586 4, 5, 6, 7, 77, 78, -1, -1, 12, 13,
1587 14, -1, -1, 67, -1, -1, -1, -1, 72, -1,
1588 -1, -1, -1, 77, 28, -1, 30, -1, -1, -1,
1589 -1, -1, -1, -1, 3, 4, -1, 6, 7, -1,
1590 -1, 45, 11, 12, 13, 14, 15, 16, 17, 18,
1591 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1592 29, -1, -1, 67, -1, 30, -1, -1, 72, 38,
1593 35, 36, 37, 77, 39, 40, 41, 42, 43, 44,
1594 45, 46, 47, 48, 49, 50, 51, 52, -1, -1,
1595 59, -1, -1, -1, -1, -1, 3, 4, -1, 6,
1596 7, -1, -1, 72, 11, 12, 13, 14, 15, 16,
1597 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1598 27, 28, 29, -1, 3, 4, -1, 6, 7, -1,
1599 -1, 38, 11, 12, 13, 14, 15, 16, 17, 18,
1600 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1601 29, -1, -1, -1, -1, -1, -1, -1, -1, 38,
1602 3, 4, -1, 6, 7, 72, -1, -1, 11, 12,
1603 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1604 23, 24, 25, 26, 27, 28, 29, -1, -1, 4,
1605 -1, 6, 7, 72, -1, 38, -1, 12, 13, 14,
1606 4, 5, 6, 7, -1, -1, 10, -1, 12, 13,
1607 14, -1, -1, 28, -1, -1, -1, -1, -1, -1,
1608 -1, -1, -1, -1, 28, -1, 30, -1, -1, 72,
1609 45, -1, -1, -1, -1, 50, -1, -1, -1, -1,
1610 -1, 45, -1, -1, 59, 60, -1, -1, -1, -1,
1611 -1, -1, 67, -1, -1, -1, -1, 72, -1, -1,
1612 -1, -1, -1, 67, 4, 5, 6, 7, 72, -1,
1613 10, -1, 12, 13, 14, 4, 5, 6, 7, -1,
1614 -1, -1, -1, 12, 13, 14, -1, -1, 28, -1,
1615 30, -1, -1, -1, 4, 5, 6, 7, -1, 28,
1616 -1, 30, 12, 13, 14, 45, -1, -1, -1, -1,
1617 -1, -1, 4, -1, 6, 7, 45, -1, 28, -1,
1618 12, 13, 14, -1, -1, -1, -1, 67, -1, -1,
1619 -1, 4, 72, 6, 7, 45, 28, -1, 67, 12,
1620 13, 14, -1, 72, -1, -1, -1, -1, -1, -1,
1621 -1, -1, -1, 45, -1, 28, -1, 67, -1, -1,
1622 -1, -1, 72, -1, -1, -1, -1, -1, -1, -1,
1623 -1, -1, 45, -1, -1, 67, 10, -1, -1, -1,
1624 72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1625 -1, -1, -1, -1, 67, -1, -1, -1, -1, 72,
1626 -1, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1627 44, 45, 46, 47, 48, 49, 50, 51, 52, 35,
1628 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1629 46, 47, 48, 49, 50, 51, 52, 35, 36, 37,
1630 -1, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1633 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1634 #line 3 "/usr/cygnus/progressive-97r2/share/bison.simple"
1636 /* Skeleton output parser for bison,
1637 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1639 This program is free software; you can redistribute it and/or modify
1640 it under the terms of the GNU General Public License as published by
1641 the Free Software Foundation; either version 2, or (at your option)
1644 This program is distributed in the hope that it will be useful,
1645 but WITHOUT ANY WARRANTY; without even the implied warranty of
1646 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1647 GNU General Public License for more details.
1649 You should have received a copy of the GNU General Public License
1650 along with this program; if not, write to the Free Software
1651 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1653 /* As a special exception, when this file is copied by Bison into a
1654 Bison output file, you may use that output file without restriction.
1655 This special exception was added by the Free Software Foundation
1656 in version 1.24 of Bison. */
1660 #define alloca __builtin_alloca
1661 #else /* not GNU C. */
1662 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1664 #else /* not sparc */
1665 #if defined (MSDOS) && !defined (__TURBOC__)
1667 #else /* not MSDOS, or __TURBOC__ */
1671 #else /* not MSDOS, __TURBOC__, or _AIX */
1675 void *alloca (unsigned int);
1677 #else /* not __cplusplus */
1679 #endif /* not __cplusplus */
1681 #endif /* not _AIX */
1682 #endif /* not MSDOS, or __TURBOC__ */
1683 #endif /* not sparc. */
1684 #endif /* not GNU C. */
1685 #endif /* alloca not defined. */
1687 /* This is the parser code that is written into each bison parser
1688 when the %semantic_parser declaration is not specified in the grammar.
1689 It was written by Richard Stallman by simplifying the hairy parser
1690 used when %semantic_parser is specified. */
1692 /* Note: there must be only one dollar sign in this file.
1693 It is replaced by the list of actions, each action
1694 as one case of the switch. */
1696 #define yyerrok (yyerrstatus = 0)
1697 #define yyclearin (yychar = YYEMPTY)
1700 #define YYACCEPT return(0)
1701 #define YYABORT return(1)
1702 #define YYERROR goto yyerrlab1
1703 /* Like YYERROR except do call yyerror.
1704 This remains here temporarily to ease the
1705 transition to the new meaning of YYERROR, for GCC.
1706 Once GCC version 2 has supplanted version 1, this can go. */
1707 #define YYFAIL goto yyerrlab
1708 #define YYRECOVERING() (!!yyerrstatus)
1709 #define YYBACKUP(token, value) \
1711 if (yychar == YYEMPTY && yylen == 1) \
1712 { yychar = (token), yylval = (value); \
1713 yychar1 = YYTRANSLATE (yychar); \
1718 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1722 #define YYERRCODE 256
1725 #define YYLEX yylex()
1731 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1733 #define YYLEX yylex(&yylval, &yylloc)
1735 #else /* not YYLSP_NEEDED */
1737 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1739 #define YYLEX yylex(&yylval)
1741 #endif /* not YYLSP_NEEDED */
1744 /* If nonreentrant, generate the variables here */
1748 int yychar
; /* the lookahead symbol */
1749 YYSTYPE yylval
; /* the semantic value of the */
1750 /* lookahead symbol */
1753 YYLTYPE yylloc
; /* location data for the lookahead */
1757 int yynerrs
; /* number of parse errors so far */
1758 #endif /* not YYPURE */
1761 int yydebug
; /* nonzero means print parse trace */
1762 /* Since this is uninitialized, it does not stop multiple parsers
1766 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1769 #define YYINITDEPTH 200
1772 /* YYMAXDEPTH is the maximum size the stacks can grow to
1773 (effective only if the built-in stack extension method is used). */
1780 #define YYMAXDEPTH 10000
1783 /* Prevent warning if -Wstrict-prototypes. */
1788 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1789 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1790 #else /* not GNU C or C++ */
1793 /* This is the most reliable way to avoid incompatibilities
1794 in available built-in functions on various systems. */
1796 __yy_memcpy (to
, from
, count
)
1801 register char *f
= from
;
1802 register char *t
= to
;
1803 register int i
= count
;
1809 #else /* __cplusplus */
1811 /* This is the most reliable way to avoid incompatibilities
1812 in available built-in functions on various systems. */
1814 __yy_memcpy (char *to
, char *from
, int count
)
1816 register char *f
= from
;
1817 register char *t
= to
;
1818 register int i
= count
;
1827 #line 196 "/usr/cygnus/progressive-97r2/share/bison.simple"
1829 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1830 into yyparse. The argument should have type void *.
1831 It should actually point to an object.
1832 Grammar actions can access the variable by casting it
1833 to the proper pointer type. */
1835 #ifdef YYPARSE_PARAM
1837 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1838 #define YYPARSE_PARAM_DECL
1839 #else /* not __cplusplus */
1840 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1841 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1842 #endif /* not __cplusplus */
1843 #else /* not YYPARSE_PARAM */
1844 #define YYPARSE_PARAM_ARG
1845 #define YYPARSE_PARAM_DECL
1846 #endif /* not YYPARSE_PARAM */
1849 yyparse(YYPARSE_PARAM_ARG
)
1852 register int yystate
;
1854 register short *yyssp
;
1855 register YYSTYPE
*yyvsp
;
1856 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1857 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1859 short yyssa
[YYINITDEPTH
]; /* the state stack */
1860 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1862 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1863 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1866 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1867 YYLTYPE
*yyls
= yylsa
;
1870 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1872 #define YYPOPSTACK (yyvsp--, yyssp--)
1875 int yystacksize
= YYINITDEPTH
;
1886 YYSTYPE yyval
; /* the variable used to return */
1887 /* semantic values from the action */
1894 fprintf(stderr
, "Starting parse\n");
1900 yychar
= YYEMPTY
; /* Cause a token to be read. */
1902 /* Initialize stack pointers.
1903 Waste one element of value and location stack
1904 so that they stay on the same level as the state stack.
1905 The wasted elements are never initialized. */
1913 /* Push a new state, which is found in yystate . */
1914 /* In all cases, when you get here, the value and location stacks
1915 have just been pushed. so pushing a state here evens the stacks. */
1920 if (yyssp
>= yyss
+ yystacksize
- 1)
1922 /* Give user a chance to reallocate the stack */
1923 /* Use copies of these so that the &'s don't force the real ones into memory. */
1924 YYSTYPE
*yyvs1
= yyvs
;
1925 short *yyss1
= yyss
;
1927 YYLTYPE
*yyls1
= yyls
;
1930 /* Get the current used size of the three stacks, in elements. */
1931 int size
= yyssp
- yyss
+ 1;
1934 /* Each stack pointer address is followed by the size of
1935 the data in use in that stack, in bytes. */
1937 /* This used to be a conditional around just the two extra args,
1938 but that might be undefined if yyoverflow is a macro. */
1939 yyoverflow("parser stack overflow",
1940 &yyss1
, size
* sizeof (*yyssp
),
1941 &yyvs1
, size
* sizeof (*yyvsp
),
1942 &yyls1
, size
* sizeof (*yylsp
),
1945 yyoverflow("parser stack overflow",
1946 &yyss1
, size
* sizeof (*yyssp
),
1947 &yyvs1
, size
* sizeof (*yyvsp
),
1951 yyss
= yyss1
; yyvs
= yyvs1
;
1955 #else /* no yyoverflow */
1956 /* Extend the stack our own way. */
1957 if (yystacksize
>= YYMAXDEPTH
)
1959 yyerror("parser stack overflow");
1963 if (yystacksize
> YYMAXDEPTH
)
1964 yystacksize
= YYMAXDEPTH
;
1965 yyss
= (short *) alloca (yystacksize
* sizeof (*yyssp
));
1966 __yy_memcpy ((char *)yyss
, (char *)yyss1
, size
* sizeof (*yyssp
));
1967 yyvs
= (YYSTYPE
*) alloca (yystacksize
* sizeof (*yyvsp
));
1968 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
, size
* sizeof (*yyvsp
));
1970 yyls
= (YYLTYPE
*) alloca (yystacksize
* sizeof (*yylsp
));
1971 __yy_memcpy ((char *)yyls
, (char *)yyls1
, size
* sizeof (*yylsp
));
1973 #endif /* no yyoverflow */
1975 yyssp
= yyss
+ size
- 1;
1976 yyvsp
= yyvs
+ size
- 1;
1978 yylsp
= yyls
+ size
- 1;
1983 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
1986 if (yyssp
>= yyss
+ yystacksize
- 1)
1992 fprintf(stderr
, "Entering state %d\n", yystate
);
1998 /* Do appropriate processing given the current state. */
1999 /* Read a lookahead token if we need one and don't already have one. */
2002 /* First try to decide what to do without reference to lookahead token. */
2004 yyn
= yypact
[yystate
];
2008 /* Not known => get a lookahead token if don't already have one. */
2010 /* yychar is either YYEMPTY or YYEOF
2011 or a valid token in external form. */
2013 if (yychar
== YYEMPTY
)
2017 fprintf(stderr
, "Reading a token: ");
2022 /* Convert token to internal form (in yychar1) for indexing tables with */
2024 if (yychar
<= 0) /* This means end of input. */
2027 yychar
= YYEOF
; /* Don't call YYLEX any more */
2031 fprintf(stderr
, "Now at end of input.\n");
2036 yychar1
= YYTRANSLATE(yychar
);
2041 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
2042 /* Give the individual parser a way to print the precise meaning
2043 of a token, for further debugging info. */
2045 YYPRINT (stderr
, yychar
, yylval
);
2047 fprintf (stderr
, ")\n");
2053 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
2058 /* yyn is what to do for this token type in this state.
2059 Negative => reduce, -yyn is rule number.
2060 Positive => shift, yyn is new state.
2061 New state is final state => don't bother to shift,
2062 just return success.
2063 0, or most negative number => error. */
2078 /* Shift the lookahead token. */
2082 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
2085 /* Discard the token being shifted unless it is eof. */
2086 if (yychar
!= YYEOF
)
2094 /* count tokens shifted since error; after three, turn off error status. */
2095 if (yyerrstatus
) yyerrstatus
--;
2100 /* Do the default action for the current state. */
2103 yyn
= yydefact
[yystate
];
2107 /* Do a reduction. yyn is the number of a rule to reduce with. */
2111 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
2118 fprintf (stderr
, "Reducing via rule %d (line %d), ",
2121 /* Print the symbols being reduced, and their result. */
2122 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
2123 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
2124 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
2132 #line 239 "objc-parse.y"
2134 pedwarn ("ANSI C forbids an empty source file");
2139 #line 244 "objc-parse.y"
2141 /* In case there were missing closebraces,
2142 get us back to the global binding level. */
2143 while (! global_bindings_p ())
2149 #line 258 "objc-parse.y"
2150 {yyval
.ttype
= NULL_TREE
; ;
2153 #line 259 "objc-parse.y"
2154 {yyval
.ttype
= NULL_TREE
; ;
2157 #line 267 "objc-parse.y"
2158 { STRIP_NOPS (yyvsp
[-2].ttype
);
2159 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
2160 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
2161 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
2162 assemble_asm (yyvsp
[-2].ttype
);
2164 error ("argument of `asm' is not a constant string"); ;
2167 #line 275 "objc-parse.y"
2168 { pedantic
= yyvsp
[-1].itype
; ;
2171 #line 280 "objc-parse.y"
2173 error ("ANSI C forbids data definition with no type or storage class");
2174 else if (!flag_traditional
)
2175 warning ("data definition has no type or storage class");
2177 current_declspecs
= TREE_VALUE (declspec_stack
);
2178 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2179 declspec_stack
= TREE_CHAIN (declspec_stack
);
2180 resume_momentary (yyvsp
[-2].itype
); ;
2183 #line 290 "objc-parse.y"
2184 { current_declspecs
= TREE_VALUE (declspec_stack
);
2185 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2186 declspec_stack
= TREE_CHAIN (declspec_stack
);
2187 resume_momentary (yyvsp
[-2].itype
); ;
2190 #line 295 "objc-parse.y"
2191 { current_declspecs
= TREE_VALUE (declspec_stack
);
2192 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2193 declspec_stack
= TREE_CHAIN (declspec_stack
);
2194 resume_momentary (yyvsp
[-2].itype
); ;
2197 #line 300 "objc-parse.y"
2198 { pedwarn ("empty declaration"); ;
2201 #line 302 "objc-parse.y"
2202 { shadow_tag (yyvsp
[-1].ttype
); ;
2205 #line 306 "objc-parse.y"
2207 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
2210 #line 312 "objc-parse.y"
2211 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2212 prefix_attributes
, NULL_TREE
, 0))
2214 reinit_parse_for_function (); ;
2217 #line 317 "objc-parse.y"
2218 { store_parm_decls (); ;
2221 #line 319 "objc-parse.y"
2222 { finish_function (0);
2223 current_declspecs
= TREE_VALUE (declspec_stack
);
2224 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2225 declspec_stack
= TREE_CHAIN (declspec_stack
);
2226 resume_momentary (yyvsp
[-5].itype
); ;
2229 #line 325 "objc-parse.y"
2230 { current_declspecs
= TREE_VALUE (declspec_stack
);
2231 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2232 declspec_stack
= TREE_CHAIN (declspec_stack
);
2233 resume_momentary (yyvsp
[-2].itype
); ;
2236 #line 330 "objc-parse.y"
2237 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2238 prefix_attributes
, NULL_TREE
, 0))
2240 reinit_parse_for_function (); ;
2243 #line 335 "objc-parse.y"
2244 { store_parm_decls (); ;
2247 #line 337 "objc-parse.y"
2248 { finish_function (0);
2249 current_declspecs
= TREE_VALUE (declspec_stack
);
2250 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2251 declspec_stack
= TREE_CHAIN (declspec_stack
);
2252 resume_momentary (yyvsp
[-5].itype
); ;
2255 #line 343 "objc-parse.y"
2256 { current_declspecs
= TREE_VALUE (declspec_stack
);
2257 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2258 declspec_stack
= TREE_CHAIN (declspec_stack
);
2259 resume_momentary (yyvsp
[-2].itype
); ;
2262 #line 348 "objc-parse.y"
2263 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
2264 prefix_attributes
, NULL_TREE
, 0))
2266 reinit_parse_for_function (); ;
2269 #line 353 "objc-parse.y"
2270 { store_parm_decls (); ;
2273 #line 355 "objc-parse.y"
2274 { finish_function (0);
2275 current_declspecs
= TREE_VALUE (declspec_stack
);
2276 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2277 declspec_stack
= TREE_CHAIN (declspec_stack
);
2278 resume_momentary (yyvsp
[-5].itype
); ;
2281 #line 361 "objc-parse.y"
2282 { current_declspecs
= TREE_VALUE (declspec_stack
);
2283 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2284 declspec_stack
= TREE_CHAIN (declspec_stack
);
2285 resume_momentary (yyvsp
[-2].itype
); ;
2288 #line 375 "objc-parse.y"
2289 { yyval
.code
= ADDR_EXPR
; ;
2292 #line 377 "objc-parse.y"
2293 { yyval
.code
= NEGATE_EXPR
; ;
2296 #line 379 "objc-parse.y"
2297 { yyval
.code
= CONVERT_EXPR
; ;
2300 #line 381 "objc-parse.y"
2301 { yyval
.code
= PREINCREMENT_EXPR
; ;
2304 #line 383 "objc-parse.y"
2305 { yyval
.code
= PREDECREMENT_EXPR
; ;
2308 #line 385 "objc-parse.y"
2309 { yyval
.code
= BIT_NOT_EXPR
; ;
2312 #line 387 "objc-parse.y"
2313 { yyval
.code
= TRUTH_NOT_EXPR
; ;
2316 #line 391 "objc-parse.y"
2317 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
2320 #line 396 "objc-parse.y"
2321 { yyval
.ttype
= NULL_TREE
; ;
2324 #line 402 "objc-parse.y"
2325 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
2328 #line 404 "objc-parse.y"
2329 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
2332 #line 410 "objc-parse.y"
2333 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
2336 #line 413 "objc-parse.y"
2337 { yyval
.ttype
= yyvsp
[0].ttype
;
2338 pedantic
= yyvsp
[-1].itype
; ;
2341 #line 416 "objc-parse.y"
2342 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
2343 overflow_warning (yyval
.ttype
); ;
2346 #line 420 "objc-parse.y"
2347 { tree label
= lookup_label (yyvsp
[0].ttype
);
2349 pedwarn ("ANSI C forbids `&&'");
2351 yyval
.ttype
= null_pointer_node
;
2354 TREE_USED (label
) = 1;
2355 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
2356 TREE_CONSTANT (yyval
.ttype
) = 1;
2361 #line 448 "objc-parse.y"
2362 { skip_evaluation
--;
2363 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
2364 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
2365 error ("`sizeof' applied to a bit-field");
2366 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
2369 #line 454 "objc-parse.y"
2370 { skip_evaluation
--;
2371 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
2374 #line 457 "objc-parse.y"
2375 { skip_evaluation
--;
2376 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
2379 #line 460 "objc-parse.y"
2380 { skip_evaluation
--;
2381 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
2384 #line 463 "objc-parse.y"
2385 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2388 #line 465 "objc-parse.y"
2389 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2392 #line 469 "objc-parse.y"
2393 { skip_evaluation
++; ;
2396 #line 473 "objc-parse.y"
2397 { skip_evaluation
++; ;
2400 #line 479 "objc-parse.y"
2401 { tree type
= groktypename (yyvsp
[-2].ttype
);
2402 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
2405 #line 482 "objc-parse.y"
2406 { start_init (NULL_TREE
, NULL
, 0);
2407 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
2408 really_start_incremental_init (yyvsp
[-2].ttype
); ;
2411 #line 486 "objc-parse.y"
2413 tree result
= pop_init_level (0);
2414 tree type
= yyvsp
[-5].ttype
;
2418 pedwarn ("ANSI C forbids constructor expressions");
2419 if (TYPE_NAME (type
) != 0)
2421 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
2422 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
2424 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
2428 yyval
.ttype
= result
;
2429 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
2431 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
2438 #line 515 "objc-parse.y"
2439 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2442 #line 517 "objc-parse.y"
2443 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2446 #line 519 "objc-parse.y"
2447 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2450 #line 521 "objc-parse.y"
2451 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2454 #line 523 "objc-parse.y"
2455 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2458 #line 525 "objc-parse.y"
2459 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2462 #line 527 "objc-parse.y"
2463 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2466 #line 529 "objc-parse.y"
2467 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2470 #line 531 "objc-parse.y"
2471 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2474 #line 533 "objc-parse.y"
2475 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2478 #line 535 "objc-parse.y"
2479 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2482 #line 537 "objc-parse.y"
2483 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2486 #line 539 "objc-parse.y"
2487 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2488 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2491 #line 542 "objc-parse.y"
2492 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2493 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2496 #line 545 "objc-parse.y"
2497 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2498 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2501 #line 548 "objc-parse.y"
2502 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2503 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2506 #line 551 "objc-parse.y"
2507 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2508 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2511 #line 554 "objc-parse.y"
2512 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2513 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2516 #line 557 "objc-parse.y"
2517 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2518 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2521 #line 560 "objc-parse.y"
2523 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2524 /* Make sure first operand is calculated only once. */
2525 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2526 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2527 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2530 #line 567 "objc-parse.y"
2531 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2532 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2535 #line 570 "objc-parse.y"
2536 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2537 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
); ;
2540 #line 573 "objc-parse.y"
2541 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2542 /* This inhibits warnings in truthvalue_conversion. */
2543 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
); ;
2546 #line 580 "objc-parse.y"
2548 yyval
.ttype
= lastiddecl
;
2549 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2551 if (yychar
== YYEMPTY
)
2557 if (objc_receiver_context
2558 && ! (objc_receiver_context
2559 && strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super")))
2560 /* we have a message to super */
2561 yyval
.ttype
= get_super_receiver ();
2562 else if (objc_method_context
2563 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2565 if (is_private (decl
))
2566 yyval
.ttype
= error_mark_node
;
2568 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2572 /* Ordinary implicit function declaration. */
2573 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2574 assemble_external (yyval
.ttype
);
2575 TREE_USED (yyval
.ttype
) = 1;
2578 else if (current_function_decl
== 0)
2580 error ("`%s' undeclared here (not in a function)",
2581 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2582 yyval
.ttype
= error_mark_node
;
2588 if (objc_receiver_context
2589 && ! strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super"))
2590 /* we have a message to super */
2591 yyval
.ttype
= get_super_receiver ();
2592 else if (objc_method_context
2593 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2595 if (is_private (decl
))
2596 yyval
.ttype
= error_mark_node
;
2598 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2602 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2603 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2605 error ("`%s' undeclared (first use in this function)",
2606 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2608 if (! undeclared_variable_notice
)
2610 error ("(Each undeclared identifier is reported only once");
2611 error ("for each function it appears in.)");
2612 undeclared_variable_notice
= 1;
2615 yyval
.ttype
= error_mark_node
;
2616 /* Prevent repeated error messages. */
2617 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2618 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2622 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2623 yyval
.ttype
= error_mark_node
;
2624 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2626 /* The first time we see a build-in function used,
2627 if it has not been declared. */
2628 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2629 if (yychar
== YYEMPTY
)
2633 /* Omit the implicit declaration we
2634 would ordinarily do, so we don't lose
2635 the actual built in type.
2636 But print a diagnostic for the mismatch. */
2637 if (objc_method_context
2638 && is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
))
2639 error ("Instance variable `%s' implicitly declared as function",
2640 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2642 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2643 error ("`%s' implicitly declared as function",
2644 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2645 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2646 != TYPE_MODE (integer_type_node
))
2647 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2649 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2650 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2651 /* If it really returns void, change that to int. */
2652 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2653 TREE_TYPE (yyval
.ttype
)
2654 = build_function_type (integer_type_node
,
2655 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2658 pedwarn ("built-in function `%s' used without declaration",
2659 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2661 /* Do what we would ordinarily do when a fn is used. */
2662 assemble_external (yyval
.ttype
);
2663 TREE_USED (yyval
.ttype
) = 1;
2667 assemble_external (yyval
.ttype
);
2668 TREE_USED (yyval
.ttype
) = 1;
2669 /* we have a definition - still check if iVariable */
2671 if (!objc_receiver_context
2672 || (objc_receiver_context
2673 && strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super")))
2677 if (objc_method_context
2678 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2680 if (IDENTIFIER_LOCAL_VALUE (yyvsp
[0].ttype
))
2681 warning ("local declaration of `%s' hides instance variable",
2682 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2685 if (is_private (decl
))
2686 yyval
.ttype
= error_mark_node
;
2688 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2692 else /* we have a message to super */
2693 yyval
.ttype
= get_super_receiver ();
2696 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2698 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2699 /* This is to prevent an enum whose value is 0
2700 from being considered a null pointer constant. */
2701 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2702 TREE_CONSTANT (yyval
.ttype
) = 1;
2707 #line 740 "objc-parse.y"
2708 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2711 #line 742 "objc-parse.y"
2712 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2713 if (class == 'e' || class == '1'
2714 || class == '2' || class == '<')
2715 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2716 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2719 #line 748 "objc-parse.y"
2720 { yyval
.ttype
= error_mark_node
; ;
2723 #line 750 "objc-parse.y"
2724 { if (current_function_decl
== 0)
2726 error ("braced-group within expression allowed only inside a function");
2729 /* We must force a BLOCK for this level
2730 so that, if it is not expanded later,
2731 there is a way to turn off the entire subtree of blocks
2732 that are contained in it. */
2734 push_iterator_stack ();
2735 push_label_level ();
2736 yyval
.ttype
= expand_start_stmt_expr (); ;
2739 #line 764 "objc-parse.y"
2742 pedwarn ("ANSI C forbids braced-groups within expressions");
2743 pop_iterator_stack ();
2745 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2746 /* The statements have side effects, so the group does. */
2747 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2749 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2751 /* Make a BIND_EXPR for the BLOCK already made. */
2752 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2753 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2754 /* Remove the block from the tree at this point.
2755 It gets put back at the proper place
2756 when the BIND_EXPR is expanded. */
2757 delete_block (yyvsp
[-1].ttype
);
2760 yyval
.ttype
= yyvsp
[-1].ttype
;
2764 #line 787 "objc-parse.y"
2765 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2768 #line 789 "objc-parse.y"
2769 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2772 #line 791 "objc-parse.y"
2774 if (doing_objc_thang
)
2776 if (is_public (yyvsp
[-2].ttype
, yyvsp
[0].ttype
))
2777 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2779 yyval
.ttype
= error_mark_node
;
2782 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2786 #line 803 "objc-parse.y"
2788 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2790 if (doing_objc_thang
)
2792 if (is_public (expr
, yyvsp
[0].ttype
))
2793 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2795 yyval
.ttype
= error_mark_node
;
2798 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2802 #line 817 "objc-parse.y"
2803 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2806 #line 819 "objc-parse.y"
2807 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2810 #line 821 "objc-parse.y"
2811 { yyval
.ttype
= build_message_expr (yyvsp
[0].ttype
); ;
2814 #line 823 "objc-parse.y"
2815 { yyval
.ttype
= build_selector_expr (yyvsp
[0].ttype
); ;
2818 #line 825 "objc-parse.y"
2819 { yyval
.ttype
= build_protocol_expr (yyvsp
[0].ttype
); ;
2822 #line 827 "objc-parse.y"
2823 { yyval
.ttype
= build_encode_expr (yyvsp
[0].ttype
); ;
2826 #line 829 "objc-parse.y"
2827 { yyval
.ttype
= build_objc_string_object (yyvsp
[0].ttype
); ;
2830 #line 836 "objc-parse.y"
2831 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2834 #line 844 "objc-parse.y"
2835 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2838 #line 852 "objc-parse.y"
2839 { c_mark_varargs ();
2841 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2844 #line 862 "objc-parse.y"
2848 #line 878 "objc-parse.y"
2849 { current_declspecs
= TREE_VALUE (declspec_stack
);
2850 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2851 declspec_stack
= TREE_CHAIN (declspec_stack
);
2852 resume_momentary (yyvsp
[-2].itype
); ;
2855 #line 883 "objc-parse.y"
2856 { current_declspecs
= TREE_VALUE (declspec_stack
);
2857 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2858 declspec_stack
= TREE_CHAIN (declspec_stack
);
2859 resume_momentary (yyvsp
[-2].itype
); ;
2862 #line 888 "objc-parse.y"
2863 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2864 pedwarn ("empty declaration"); ;
2867 #line 891 "objc-parse.y"
2868 { pedwarn ("empty declaration"); ;
2871 #line 900 "objc-parse.y"
2875 #line 915 "objc-parse.y"
2876 { yyval
.itype
= suspend_momentary ();
2877 pending_xref_error ();
2878 declspec_stack
= tree_cons (prefix_attributes
,
2881 split_specs_attrs (yyvsp
[0].ttype
,
2882 ¤t_declspecs
, &prefix_attributes
); ;
2885 #line 926 "objc-parse.y"
2886 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2889 #line 931 "objc-parse.y"
2890 { current_declspecs
= TREE_VALUE (declspec_stack
);
2891 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2892 declspec_stack
= TREE_CHAIN (declspec_stack
);
2893 resume_momentary (yyvsp
[-2].itype
); ;
2896 #line 936 "objc-parse.y"
2897 { current_declspecs
= TREE_VALUE (declspec_stack
);
2898 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2899 declspec_stack
= TREE_CHAIN (declspec_stack
);
2900 resume_momentary (yyvsp
[-2].itype
); ;
2903 #line 941 "objc-parse.y"
2904 { current_declspecs
= TREE_VALUE (declspec_stack
);
2905 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2906 declspec_stack
= TREE_CHAIN (declspec_stack
);
2907 resume_momentary (yyvsp
[-1].itype
); ;
2910 #line 946 "objc-parse.y"
2911 { current_declspecs
= TREE_VALUE (declspec_stack
);
2912 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2913 declspec_stack
= TREE_CHAIN (declspec_stack
);
2914 resume_momentary (yyvsp
[-1].itype
); ;
2917 #line 951 "objc-parse.y"
2918 { shadow_tag (yyvsp
[-1].ttype
); ;
2921 #line 953 "objc-parse.y"
2922 { pedwarn ("empty declaration"); ;
2925 #line 955 "objc-parse.y"
2926 { pedantic
= yyvsp
[-1].itype
; ;
2929 #line 965 "objc-parse.y"
2930 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2933 #line 967 "objc-parse.y"
2934 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2937 #line 971 "objc-parse.y"
2938 { yyval
.ttype
= NULL_TREE
; ;
2941 #line 973 "objc-parse.y"
2942 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2945 #line 975 "objc-parse.y"
2946 { if (extra_warnings
)
2947 warning ("`%s' is not at beginning of declaration",
2948 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2949 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2952 #line 980 "objc-parse.y"
2953 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2956 #line 985 "objc-parse.y"
2957 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2960 #line 987 "objc-parse.y"
2961 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2964 #line 992 "objc-parse.y"
2965 { yyval
.ttype
= NULL_TREE
; ;
2968 #line 994 "objc-parse.y"
2969 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2972 #line 996 "objc-parse.y"
2973 { if (extra_warnings
)
2974 warning ("`%s' is not at beginning of declaration",
2975 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2976 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2979 #line 1009 "objc-parse.y"
2980 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2983 #line 1011 "objc-parse.y"
2984 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
2987 #line 1013 "objc-parse.y"
2988 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2991 #line 1015 "objc-parse.y"
2992 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2995 #line 1020 "objc-parse.y"
2996 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
2997 TREE_STATIC (yyval
.ttype
) = 1; ;
3000 #line 1023 "objc-parse.y"
3001 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3004 #line 1025 "objc-parse.y"
3005 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3006 TREE_STATIC (yyval
.ttype
) = 1; ;
3009 #line 1028 "objc-parse.y"
3010 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
3011 warning ("`%s' is not at beginning of declaration",
3012 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
3013 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3014 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
3017 #line 1042 "objc-parse.y"
3018 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3021 #line 1044 "objc-parse.y"
3022 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
3025 #line 1048 "objc-parse.y"
3026 { yyval
.ttype
= NULL_TREE
; ;
3029 #line 1050 "objc-parse.y"
3030 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3033 #line 1060 "objc-parse.y"
3034 { /* For a typedef name, record the meaning, not the name.
3035 In case of `foo foo, bar;'. */
3036 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
3039 #line 1064 "objc-parse.y"
3040 { yyval
.ttype
= get_static_reference (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3043 #line 1066 "objc-parse.y"
3044 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3047 #line 1071 "objc-parse.y"
3048 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3051 #line 1073 "objc-parse.y"
3052 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
3055 #line 1075 "objc-parse.y"
3056 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
3059 #line 1097 "objc-parse.y"
3060 { yyval
.ttype
= NULL_TREE
; ;
3063 #line 1099 "objc-parse.y"
3064 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
3065 yyval
.ttype
= yyvsp
[-1].ttype
;
3069 #line 1106 "objc-parse.y"
3070 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3071 yyvsp
[-1].ttype
, prefix_attributes
);
3072 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3075 #line 1111 "objc-parse.y"
3077 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3080 #line 1114 "objc-parse.y"
3081 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3082 yyvsp
[0].ttype
, prefix_attributes
);
3083 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
3087 #line 1122 "objc-parse.y"
3088 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3089 yyvsp
[-1].ttype
, prefix_attributes
);
3090 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3093 #line 1127 "objc-parse.y"
3095 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
3096 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3099 #line 1131 "objc-parse.y"
3100 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3101 yyvsp
[0].ttype
, prefix_attributes
);
3102 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3105 #line 1139 "objc-parse.y"
3106 { yyval
.ttype
= NULL_TREE
; ;
3109 #line 1141 "objc-parse.y"
3110 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3113 #line 1146 "objc-parse.y"
3114 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3117 #line 1148 "objc-parse.y"
3118 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3121 #line 1153 "objc-parse.y"
3122 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
3125 #line 1158 "objc-parse.y"
3126 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3129 #line 1160 "objc-parse.y"
3130 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3133 #line 1165 "objc-parse.y"
3134 { yyval
.ttype
= NULL_TREE
; ;
3137 #line 1167 "objc-parse.y"
3138 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
3141 #line 1169 "objc-parse.y"
3142 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
3145 #line 1171 "objc-parse.y"
3146 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
3149 #line 1173 "objc-parse.y"
3150 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3153 #line 1191 "objc-parse.y"
3154 { really_start_incremental_init (NULL_TREE
);
3155 /* Note that the call to clear_momentary
3156 is in process_init_element. */
3157 push_momentary (); ;
3160 #line 1196 "objc-parse.y"
3161 { yyval
.ttype
= pop_init_level (0);
3162 if (yyval
.ttype
== error_mark_node
3163 && ! (yychar
== STRING
|| yychar
== CONSTANT
))
3166 pop_momentary_nofree (); ;
3169 #line 1204 "objc-parse.y"
3170 { yyval
.ttype
= error_mark_node
; ;
3173 #line 1210 "objc-parse.y"
3175 pedwarn ("ANSI C forbids empty initializer braces"); ;
3178 #line 1224 "objc-parse.y"
3179 { process_init_element (yyvsp
[0].ttype
); ;
3182 #line 1226 "objc-parse.y"
3183 { push_init_level (0); ;
3186 #line 1228 "objc-parse.y"
3187 { process_init_element (pop_init_level (0)); ;
3190 #line 1234 "objc-parse.y"
3191 { set_init_label (yyvsp
[-1].ttype
); ;
3194 #line 1237 "objc-parse.y"
3195 { set_init_label (yyvsp
[-1].ttype
); ;
3198 #line 1243 "objc-parse.y"
3199 { push_c_function_context ();
3200 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3201 prefix_attributes
, NULL_TREE
, 1))
3203 pop_c_function_context ();
3206 reinit_parse_for_function (); ;
3209 #line 1252 "objc-parse.y"
3210 { store_parm_decls (); ;
3213 #line 1260 "objc-parse.y"
3214 { finish_function (1);
3215 pop_c_function_context (); ;
3218 #line 1266 "objc-parse.y"
3219 { push_c_function_context ();
3220 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3221 prefix_attributes
, NULL_TREE
, 1))
3223 pop_c_function_context ();
3226 reinit_parse_for_function (); ;
3229 #line 1275 "objc-parse.y"
3230 { store_parm_decls (); ;
3233 #line 1283 "objc-parse.y"
3234 { finish_function (1);
3235 pop_c_function_context (); ;
3238 #line 1299 "objc-parse.y"
3239 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3242 #line 1301 "objc-parse.y"
3243 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3246 #line 1306 "objc-parse.y"
3247 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3250 #line 1308 "objc-parse.y"
3251 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3254 #line 1310 "objc-parse.y"
3255 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3258 #line 1317 "objc-parse.y"
3259 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3262 #line 1329 "objc-parse.y"
3263 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3266 #line 1334 "objc-parse.y"
3267 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3270 #line 1336 "objc-parse.y"
3271 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3274 #line 1338 "objc-parse.y"
3275 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3278 #line 1345 "objc-parse.y"
3279 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3282 #line 1354 "objc-parse.y"
3283 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3286 #line 1359 "objc-parse.y"
3287 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3290 #line 1361 "objc-parse.y"
3291 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3294 #line 1363 "objc-parse.y"
3295 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3298 #line 1365 "objc-parse.y"
3299 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3302 #line 1372 "objc-parse.y"
3303 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3306 #line 1378 "objc-parse.y"
3307 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
3308 /* Start scope of tag before parsing components. */
3312 #line 1382 "objc-parse.y"
3313 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3316 #line 1384 "objc-parse.y"
3317 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
3318 yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
3322 #line 1388 "objc-parse.y"
3323 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
3326 #line 1390 "objc-parse.y"
3327 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
3330 #line 1392 "objc-parse.y"
3331 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3334 #line 1394 "objc-parse.y"
3335 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
3336 yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
3340 #line 1398 "objc-parse.y"
3341 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
3344 #line 1400 "objc-parse.y"
3345 { yyvsp
[0].itype
= suspend_momentary ();
3346 yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
3349 #line 1403 "objc-parse.y"
3350 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), yyvsp
[0].ttype
);
3351 resume_momentary (yyvsp
[-5].itype
); ;
3354 #line 1406 "objc-parse.y"
3355 { yyvsp
[0].itype
= suspend_momentary ();
3356 yyval
.ttype
= start_enum (NULL_TREE
); ;
3359 #line 1409 "objc-parse.y"
3360 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), yyvsp
[0].ttype
);
3361 resume_momentary (yyvsp
[-5].itype
); ;
3364 #line 1412 "objc-parse.y"
3365 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
3368 #line 1423 "objc-parse.y"
3369 { if (pedantic
) pedwarn ("comma at end of enumerator list"); ;
3372 #line 1428 "objc-parse.y"
3373 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3376 #line 1430 "objc-parse.y"
3377 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
3378 pedwarn ("no semicolon at end of struct or union"); ;
3381 #line 1435 "objc-parse.y"
3382 { yyval
.ttype
= NULL_TREE
; ;
3385 #line 1437 "objc-parse.y"
3386 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
3389 #line 1439 "objc-parse.y"
3391 pedwarn ("extra semicolon in struct or union specified"); ;
3394 #line 1443 "objc-parse.y"
3396 tree interface
= lookup_interface (yyvsp
[-1].ttype
);
3399 yyval
.ttype
= get_class_ivars (interface
);
3402 error ("Cannot find interface declaration for `%s'",
3403 IDENTIFIER_POINTER (yyvsp
[-1].ttype
));
3404 yyval
.ttype
= NULL_TREE
;
3409 #line 1468 "objc-parse.y"
3410 { yyval
.ttype
= yyvsp
[0].ttype
;
3411 current_declspecs
= TREE_VALUE (declspec_stack
);
3412 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3413 declspec_stack
= TREE_CHAIN (declspec_stack
);
3414 resume_momentary (yyvsp
[-1].itype
); ;
3417 #line 1474 "objc-parse.y"
3419 pedwarn ("ANSI C forbids member declarations with no members");
3420 shadow_tag(yyvsp
[0].ttype
);
3421 yyval
.ttype
= NULL_TREE
; ;
3424 #line 1479 "objc-parse.y"
3425 { yyval
.ttype
= yyvsp
[0].ttype
;
3426 current_declspecs
= TREE_VALUE (declspec_stack
);
3427 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3428 declspec_stack
= TREE_CHAIN (declspec_stack
);
3429 resume_momentary (yyvsp
[-1].itype
); ;
3432 #line 1485 "objc-parse.y"
3434 pedwarn ("ANSI C forbids member declarations with no members");
3435 shadow_tag(yyvsp
[0].ttype
);
3436 yyval
.ttype
= NULL_TREE
; ;
3439 #line 1490 "objc-parse.y"
3440 { yyval
.ttype
= NULL_TREE
; ;
3443 #line 1492 "objc-parse.y"
3444 { yyval
.ttype
= yyvsp
[0].ttype
;
3445 pedantic
= yyvsp
[-1].itype
; ;
3448 #line 1499 "objc-parse.y"
3449 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3452 #line 1504 "objc-parse.y"
3453 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
3454 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3457 #line 1508 "objc-parse.y"
3458 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
3459 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3462 #line 1511 "objc-parse.y"
3463 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
3464 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3467 #line 1523 "objc-parse.y"
3468 { if (yyvsp
[-2].ttype
== error_mark_node
)
3469 yyval
.ttype
= yyvsp
[-2].ttype
;
3471 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
3474 #line 1528 "objc-parse.y"
3475 { yyval
.ttype
= error_mark_node
; ;
3478 #line 1534 "objc-parse.y"
3479 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
3482 #line 1536 "objc-parse.y"
3483 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3486 #line 1541 "objc-parse.y"
3487 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3490 #line 1543 "objc-parse.y"
3491 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3494 #line 1548 "objc-parse.y"
3495 { yyval
.ttype
= NULL_TREE
; ;
3498 #line 1554 "objc-parse.y"
3499 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3502 #line 1556 "objc-parse.y"
3503 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3506 #line 1561 "objc-parse.y"
3507 { yyval
.ttype
= NULL_TREE
; ;
3510 #line 1563 "objc-parse.y"
3511 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3514 #line 1568 "objc-parse.y"
3515 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3518 #line 1571 "objc-parse.y"
3519 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3522 #line 1573 "objc-parse.y"
3523 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3526 #line 1575 "objc-parse.y"
3527 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3530 #line 1577 "objc-parse.y"
3531 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3534 #line 1579 "objc-parse.y"
3535 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3538 #line 1581 "objc-parse.y"
3539 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3542 #line 1583 "objc-parse.y"
3543 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3546 #line 1585 "objc-parse.y"
3547 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3550 #line 1596 "objc-parse.y"
3552 if (pedantic
&& yyvsp
[0].ends_in_label
)
3553 pedwarn ("ANSI C forbids label at end of compound statement");
3557 #line 1605 "objc-parse.y"
3558 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3561 #line 1607 "objc-parse.y"
3562 { yyval
.ends_in_label
= 0; ;
3565 #line 1619 "objc-parse.y"
3566 { emit_line_note (input_filename
, lineno
);
3570 expand_start_bindings (0);
3571 if (objc_method_context
)
3576 #line 1634 "objc-parse.y"
3578 pedwarn ("ANSI C forbids label declarations"); ;
3581 #line 1645 "objc-parse.y"
3583 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3585 tree label
= shadow_label (TREE_VALUE (link
));
3586 C_DECLARED_LABEL_FLAG (label
) = 1;
3587 declare_nonlocal_label (label
);
3592 #line 1659 "objc-parse.y"
3596 #line 1663 "objc-parse.y"
3597 { compstmt_count
++; ;
3600 #line 1666 "objc-parse.y"
3601 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3604 #line 1668 "objc-parse.y"
3605 { emit_line_note (input_filename
, lineno
);
3606 expand_end_bindings (getdecls (), 1, 0);
3607 yyval
.ttype
= poplevel (1, 1, 0);
3608 if (yychar
== CONSTANT
|| yychar
== STRING
)
3609 pop_momentary_nofree ();
3614 #line 1676 "objc-parse.y"
3615 { emit_line_note (input_filename
, lineno
);
3616 expand_end_bindings (getdecls (), kept_level_p (), 0);
3617 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3618 if (yychar
== CONSTANT
|| yychar
== STRING
)
3619 pop_momentary_nofree ();
3624 #line 1684 "objc-parse.y"
3625 { emit_line_note (input_filename
, lineno
);
3626 expand_end_bindings (getdecls (), kept_level_p (), 0);
3627 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3628 if (yychar
== CONSTANT
|| yychar
== STRING
)
3629 pop_momentary_nofree ();
3634 #line 1704 "objc-parse.y"
3635 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3636 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3638 yyval
.itype
= stmt_count
;
3639 if_stmt_file
= yyvsp
[-5].filename
;
3640 if_stmt_line
= yyvsp
[-4].lineno
;
3641 position_after_white_space (); ;
3644 #line 1718 "objc-parse.y"
3647 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3648 /* See comment in `while' alternative, above. */
3650 expand_start_loop_continue_elsewhere (1);
3651 position_after_white_space (); ;
3654 #line 1726 "objc-parse.y"
3655 { expand_loop_continue_here (); ;
3658 #line 1730 "objc-parse.y"
3659 { yyval
.filename
= input_filename
; ;
3662 #line 1734 "objc-parse.y"
3663 { yyval
.lineno
= lineno
; ;
3666 #line 1739 "objc-parse.y"
3670 #line 1744 "objc-parse.y"
3674 #line 1749 "objc-parse.y"
3675 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3678 #line 1754 "objc-parse.y"
3679 { yyval
.ends_in_label
= 0; ;
3682 #line 1756 "objc-parse.y"
3683 { yyval
.ends_in_label
= 1; ;
3686 #line 1762 "objc-parse.y"
3690 #line 1765 "objc-parse.y"
3692 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3693 /* It appears that this should not be done--that a non-lvalue array
3694 shouldn't get an error if the value isn't used.
3695 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3696 if it appears as a top-level expression,
3697 but says nothing about non-lvalue arrays. */
3699 /* Call default_conversion to get an error
3700 on referring to a register array if pedantic. */
3701 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3702 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3703 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3705 iterator_expand (yyvsp
[-1].ttype
);
3706 clear_momentary (); ;
3709 #line 1782 "objc-parse.y"
3710 { c_expand_start_else ();
3711 yyvsp
[-1].itype
= stmt_count
;
3712 position_after_white_space (); ;
3715 #line 1786 "objc-parse.y"
3716 { c_expand_end_cond ();
3717 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3718 warning ("empty body in an else-statement"); ;
3721 #line 1790 "objc-parse.y"
3722 { c_expand_end_cond ();
3723 /* This warning is here instead of in simple_if, because we
3724 do not want a warning if an empty if is followed by an
3725 else statement. Increment stmt_count so we don't
3726 give a second error if this is a nested `if'. */
3727 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3728 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3729 "empty body in an if-statement"); ;
3732 #line 1802 "objc-parse.y"
3733 { c_expand_end_cond (); ;
3736 #line 1804 "objc-parse.y"
3738 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3739 /* The emit_nop used to come before emit_line_note,
3740 but that made the nop seem like part of the preceding line.
3741 And that was confusing when the preceding line was
3742 inside of an if statement and was not really executed.
3743 I think it ought to work to put the nop after the line number.
3744 We will see. --rms, July 15, 1991. */
3748 #line 1814 "objc-parse.y"
3749 { /* Don't start the loop till we have succeeded
3750 in parsing the end test. This is to make sure
3751 that we end every loop we start. */
3752 expand_start_loop (1);
3753 emit_line_note (input_filename
, lineno
);
3754 expand_exit_loop_if_false (NULL_PTR
,
3755 truthvalue_conversion (yyvsp
[-1].ttype
));
3756 position_after_white_space (); ;
3759 #line 1823 "objc-parse.y"
3760 { expand_end_loop (); ;
3763 #line 1826 "objc-parse.y"
3764 { emit_line_note (input_filename
, lineno
);
3765 expand_exit_loop_if_false (NULL_PTR
,
3766 truthvalue_conversion (yyvsp
[-2].ttype
));
3768 clear_momentary (); ;
3771 #line 1833 "objc-parse.y"
3772 { expand_end_loop ();
3773 clear_momentary (); ;
3776 #line 1837 "objc-parse.y"
3778 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3779 /* See comment in `while' alternative, above. */
3781 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3782 /* Next step is to call expand_start_loop_continue_elsewhere,
3783 but wait till after we parse the entire for (...).
3784 Otherwise, invalid input might cause us to call that
3785 fn without calling expand_end_loop. */
3789 #line 1849 "objc-parse.y"
3790 { yyvsp
[0].lineno
= lineno
;
3791 yyval
.filename
= input_filename
; ;
3794 #line 1852 "objc-parse.y"
3796 /* Start the loop. Doing this after parsing
3797 all the expressions ensures we will end the loop. */
3798 expand_start_loop_continue_elsewhere (1);
3799 /* Emit the end-test, with a line number. */
3800 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3801 if (yyvsp
[-4].ttype
)
3802 expand_exit_loop_if_false (NULL_PTR
,
3803 truthvalue_conversion (yyvsp
[-4].ttype
));
3804 /* Don't let the tree nodes for $9 be discarded by
3805 clear_momentary during the parsing of the next stmt. */
3807 yyvsp
[-3].lineno
= lineno
;
3808 yyvsp
[-2].filename
= input_filename
;
3809 position_after_white_space (); ;
3812 #line 1868 "objc-parse.y"
3813 { /* Emit the increment expression, with a line number. */
3814 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3815 expand_loop_continue_here ();
3816 if (yyvsp
[-3].ttype
)
3817 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3818 if (yychar
== CONSTANT
|| yychar
== STRING
)
3819 pop_momentary_nofree ();
3822 expand_end_loop (); ;
3825 #line 1879 "objc-parse.y"
3827 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3828 c_expand_start_case (yyvsp
[-1].ttype
);
3829 /* Don't let the tree nodes for $3 be discarded by
3830 clear_momentary during the parsing of the next stmt. */
3832 position_after_white_space (); ;
3835 #line 1887 "objc-parse.y"
3836 { expand_end_case (yyvsp
[-3].ttype
);
3837 if (yychar
== CONSTANT
|| yychar
== STRING
)
3838 pop_momentary_nofree ();
3843 #line 1893 "objc-parse.y"
3845 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3846 if ( ! expand_exit_something ())
3847 error ("break statement not within loop or switch"); ;
3850 #line 1898 "objc-parse.y"
3852 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3853 if (! expand_continue_loop (NULL_PTR
))
3854 error ("continue statement not within a loop"); ;
3857 #line 1903 "objc-parse.y"
3859 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3860 c_expand_return (NULL_TREE
); ;
3863 #line 1907 "objc-parse.y"
3865 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3866 c_expand_return (yyvsp
[-1].ttype
); ;
3869 #line 1911 "objc-parse.y"
3871 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3872 STRIP_NOPS (yyvsp
[-2].ttype
);
3873 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3874 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3875 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3876 expand_asm (yyvsp
[-2].ttype
);
3878 error ("argument of `asm' is not a constant string"); ;
3881 #line 1922 "objc-parse.y"
3883 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3884 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3885 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3886 input_filename
, lineno
); ;
3889 #line 1929 "objc-parse.y"
3891 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3892 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3893 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3894 input_filename
, lineno
); ;
3897 #line 1937 "objc-parse.y"
3899 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3900 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3901 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3902 input_filename
, lineno
); ;
3905 #line 1943 "objc-parse.y"
3908 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3909 decl
= lookup_label (yyvsp
[-1].ttype
);
3912 TREE_USED (decl
) = 1;
3918 #line 1954 "objc-parse.y"
3920 pedwarn ("ANSI C forbids `goto *expr;'");
3922 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3923 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3926 #line 1969 "objc-parse.y"
3928 /* The value returned by this action is */
3929 /* 1 if everything is OK */
3930 /* 0 in case of error or already bound iterator */
3933 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3934 error ("invalid `for (ITERATOR)' syntax");
3935 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3936 error ("`%s' is not an iterator",
3937 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3938 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3939 error ("`for (%s)' inside expansion of same iterator",
3940 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3944 iterator_for_loop_start (yyvsp
[-1].ttype
);
3949 #line 1990 "objc-parse.y"
3951 if (yyvsp
[-1].itype
)
3952 iterator_for_loop_end (yyvsp
[-3].ttype
);
3956 #line 2025 "objc-parse.y"
3957 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
3959 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3963 if (value
!= error_mark_node
)
3966 int success
= pushcase (value
, convert_and_check
,
3969 error ("case label not within a switch statement");
3970 else if (success
== 2)
3972 error ("duplicate case value");
3973 error_with_decl (duplicate
, "this is the first entry for that value");
3975 else if (success
== 3)
3976 warning ("case value out of range");
3977 else if (success
== 5)
3978 error ("case label within scope of cleanup or variable array");
3980 position_after_white_space (); ;
3983 #line 2050 "objc-parse.y"
3984 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
3985 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
3987 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3990 pedwarn ("ANSI C forbids case ranges");
3993 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
3996 int success
= pushcase_range (value1
, value2
,
3997 convert_and_check
, label
,
4000 error ("case label not within a switch statement");
4001 else if (success
== 2)
4003 error ("duplicate case value");
4004 error_with_decl (duplicate
, "this is the first entry for that value");
4006 else if (success
== 3)
4007 warning ("case value out of range");
4008 else if (success
== 4)
4009 warning ("empty case range");
4010 else if (success
== 5)
4011 error ("case label within scope of cleanup or variable array");
4013 position_after_white_space (); ;
4016 #line 2081 "objc-parse.y"
4020 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4021 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
4024 error ("default label not within a switch statement");
4025 else if (success
== 2)
4027 error ("multiple default labels in one switch");
4028 error_with_decl (duplicate
, "this is the first default label");
4030 position_after_white_space (); ;
4033 #line 2096 "objc-parse.y"
4034 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-1].ttype
);
4038 expand_label (label
);
4039 position_after_white_space (); ;
4042 #line 2108 "objc-parse.y"
4043 { emit_line_note (input_filename
, lineno
);
4044 yyval
.ttype
= NULL_TREE
; ;
4047 #line 2111 "objc-parse.y"
4048 { emit_line_note (input_filename
, lineno
); ;
4051 #line 2116 "objc-parse.y"
4052 { yyval
.ttype
= NULL_TREE
; ;
4055 #line 2123 "objc-parse.y"
4056 { yyval
.ttype
= NULL_TREE
; ;
4059 #line 2130 "objc-parse.y"
4060 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
4063 #line 2135 "objc-parse.y"
4064 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
4067 #line 2140 "objc-parse.y"
4068 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
4071 #line 2142 "objc-parse.y"
4072 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
4075 #line 2148 "objc-parse.y"
4077 clear_parm_order ();
4078 declare_parm_level (0); ;
4081 #line 2152 "objc-parse.y"
4082 { yyval
.ttype
= yyvsp
[0].ttype
;
4083 parmlist_tags_warning ();
4084 poplevel (0, 0, 0); ;
4087 #line 2160 "objc-parse.y"
4090 pedwarn ("ANSI C forbids forward parameter declarations");
4091 /* Mark the forward decls as such. */
4092 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
4093 TREE_ASM_WRITTEN (parm
) = 1;
4094 clear_parm_order (); ;
4097 #line 2168 "objc-parse.y"
4098 { yyval
.ttype
= yyvsp
[0].ttype
; ;
4101 #line 2170 "objc-parse.y"
4102 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
4105 #line 2176 "objc-parse.y"
4106 { yyval
.ttype
= get_parm_info (0); ;
4109 #line 2178 "objc-parse.y"
4110 { yyval
.ttype
= get_parm_info (0);
4111 /* Gcc used to allow this as an extension. However, it does
4112 not work for all targets, and thus has been disabled.
4113 Also, since func (...) and func () are indistinguishable,
4114 it caused problems with the code in expand_builtin which
4115 tries to verify that BUILT_IN_NEXT_ARG is being used
4117 error ("ANSI C requires a named argument before `...'");
4121 #line 2188 "objc-parse.y"
4122 { yyval
.ttype
= get_parm_info (1); ;
4125 #line 2190 "objc-parse.y"
4126 { yyval
.ttype
= get_parm_info (0); ;
4129 #line 2195 "objc-parse.y"
4130 { push_parm_decl (yyvsp
[0].ttype
); ;
4133 #line 2197 "objc-parse.y"
4134 { push_parm_decl (yyvsp
[0].ttype
); ;
4137 #line 2204 "objc-parse.y"
4138 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4140 build_tree_list (prefix_attributes
,
4142 current_declspecs
= TREE_VALUE (declspec_stack
);
4143 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4144 declspec_stack
= TREE_CHAIN (declspec_stack
);
4145 resume_momentary (yyvsp
[-2].itype
); ;
4148 #line 2213 "objc-parse.y"
4149 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4151 build_tree_list (prefix_attributes
,
4153 current_declspecs
= TREE_VALUE (declspec_stack
);
4154 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4155 declspec_stack
= TREE_CHAIN (declspec_stack
);
4156 resume_momentary (yyvsp
[-2].itype
); ;
4159 #line 2222 "objc-parse.y"
4160 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4162 build_tree_list (prefix_attributes
,
4164 current_declspecs
= TREE_VALUE (declspec_stack
);
4165 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4166 declspec_stack
= TREE_CHAIN (declspec_stack
);
4167 resume_momentary (yyvsp
[-2].itype
); ;
4170 #line 2231 "objc-parse.y"
4171 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4173 build_tree_list (prefix_attributes
,
4175 current_declspecs
= TREE_VALUE (declspec_stack
);
4176 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4177 declspec_stack
= TREE_CHAIN (declspec_stack
);
4178 resume_momentary (yyvsp
[-2].itype
); ;
4181 #line 2241 "objc-parse.y"
4182 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4184 build_tree_list (prefix_attributes
,
4186 current_declspecs
= TREE_VALUE (declspec_stack
);
4187 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4188 declspec_stack
= TREE_CHAIN (declspec_stack
);
4189 resume_momentary (yyvsp
[-2].itype
); ;
4192 #line 2255 "objc-parse.y"
4194 clear_parm_order ();
4195 declare_parm_level (1); ;
4198 #line 2259 "objc-parse.y"
4199 { yyval
.ttype
= yyvsp
[0].ttype
;
4200 parmlist_tags_warning ();
4201 poplevel (0, 0, 0); ;
4204 #line 2267 "objc-parse.y"
4206 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
4207 if (TREE_VALUE (t
) == NULL_TREE
)
4208 error ("`...' in old-style identifier list");
4209 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
4212 #line 2277 "objc-parse.y"
4213 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4216 #line 2279 "objc-parse.y"
4217 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4220 #line 2285 "objc-parse.y"
4221 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4224 #line 2287 "objc-parse.y"
4225 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4228 #line 2292 "objc-parse.y"
4229 { yyval
.itype
= pedantic
;
4233 #line 2305 "objc-parse.y"
4235 if (objc_implementation_context
)
4237 finish_class (objc_implementation_context
);
4238 objc_ivar_chain
= NULL_TREE
;
4239 objc_implementation_context
= NULL_TREE
;
4242 warning ("`@end' must appear in an implementation context");
4246 #line 2320 "objc-parse.y"
4247 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4250 #line 2322 "objc-parse.y"
4251 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4254 #line 2327 "objc-parse.y"
4256 objc_declare_class (yyvsp
[-1].ttype
);
4260 #line 2333 "objc-parse.y"
4262 objc_declare_alias (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4266 #line 2339 "objc-parse.y"
4268 objc_interface_context
= objc_ivar_context
4269 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[-1].ttype
);
4270 objc_public_flag
= 0;
4274 #line 2345 "objc-parse.y"
4276 continue_class (objc_interface_context
);
4280 #line 2350 "objc-parse.y"
4282 finish_class (objc_interface_context
);
4283 objc_interface_context
= NULL_TREE
;
4287 #line 2356 "objc-parse.y"
4289 objc_interface_context
4290 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
4291 continue_class (objc_interface_context
);
4295 #line 2363 "objc-parse.y"
4297 finish_class (objc_interface_context
);
4298 objc_interface_context
= NULL_TREE
;
4302 #line 2369 "objc-parse.y"
4304 objc_interface_context
= objc_ivar_context
4305 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4306 objc_public_flag
= 0;
4310 #line 2375 "objc-parse.y"
4312 continue_class (objc_interface_context
);
4316 #line 2380 "objc-parse.y"
4318 finish_class (objc_interface_context
);
4319 objc_interface_context
= NULL_TREE
;
4323 #line 2386 "objc-parse.y"
4325 objc_interface_context
4326 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4327 continue_class (objc_interface_context
);
4331 #line 2393 "objc-parse.y"
4333 finish_class (objc_interface_context
);
4334 objc_interface_context
= NULL_TREE
;
4338 #line 2399 "objc-parse.y"
4340 objc_implementation_context
= objc_ivar_context
4341 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, NULL_TREE
);
4342 objc_public_flag
= 0;
4346 #line 2405 "objc-parse.y"
4349 = continue_class (objc_implementation_context
);
4353 #line 2411 "objc-parse.y"
4355 objc_implementation_context
4356 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
);
4358 = continue_class (objc_implementation_context
);
4362 #line 2419 "objc-parse.y"
4364 objc_implementation_context
= objc_ivar_context
4365 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4366 objc_public_flag
= 0;
4370 #line 2425 "objc-parse.y"
4373 = continue_class (objc_implementation_context
);
4377 #line 2431 "objc-parse.y"
4379 objc_implementation_context
4380 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4382 = continue_class (objc_implementation_context
);
4386 #line 2439 "objc-parse.y"
4388 objc_interface_context
4389 = start_class (CATEGORY_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4390 continue_class (objc_interface_context
);
4394 #line 2446 "objc-parse.y"
4396 finish_class (objc_interface_context
);
4397 objc_interface_context
= NULL_TREE
;
4401 #line 2452 "objc-parse.y"
4403 objc_implementation_context
4404 = start_class (CATEGORY_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4406 = continue_class (objc_implementation_context
);
4410 #line 2462 "objc-parse.y"
4412 remember_protocol_qualifiers ();
4413 objc_interface_context
4414 = start_protocol(PROTOCOL_INTERFACE_TYPE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4418 #line 2468 "objc-parse.y"
4420 forget_protocol_qualifiers();
4421 finish_protocol(objc_interface_context
);
4422 objc_interface_context
= NULL_TREE
;
4426 #line 2477 "objc-parse.y"
4428 yyval
.ttype
= NULL_TREE
;
4432 #line 2485 "objc-parse.y"
4434 if (yyvsp
[-2].code
== LT_EXPR
&& yyvsp
[0].code
== GT_EXPR
)
4435 yyval
.ttype
= yyvsp
[-1].ttype
;
4441 #line 2499 "objc-parse.y"
4442 { objc_public_flag
= 2; ;
4445 #line 2500 "objc-parse.y"
4446 { objc_public_flag
= 0; ;
4449 #line 2501 "objc-parse.y"
4450 { objc_public_flag
= 1; ;
4453 #line 2506 "objc-parse.y"
4455 yyval
.ttype
= NULL_TREE
;
4459 #line 2511 "objc-parse.y"
4462 pedwarn ("extra semicolon in struct or union specified");
4466 #line 2529 "objc-parse.y"
4467 { yyval
.ttype
= yyvsp
[0].ttype
;
4468 current_declspecs
= TREE_VALUE (declspec_stack
);
4469 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4470 declspec_stack
= TREE_CHAIN (declspec_stack
);
4471 resume_momentary (yyvsp
[-1].itype
); ;
4474 #line 2535 "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 2541 "objc-parse.y"
4483 { yyval
.ttype
= NULL_TREE
; ;
4486 #line 2546 "objc-parse.y"
4487 { yyval
.ttype
= NULL_TREE
; ;
4490 #line 2553 "objc-parse.y"
4492 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4494 yyvsp
[0].ttype
, current_declspecs
,
4499 #line 2560 "objc-parse.y"
4501 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4503 yyvsp
[-2].ttype
, current_declspecs
, yyvsp
[0].ttype
);
4507 #line 2566 "objc-parse.y"
4509 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4512 current_declspecs
, yyvsp
[0].ttype
);
4516 #line 2576 "objc-parse.y"
4518 remember_protocol_qualifiers ();
4519 if (objc_implementation_context
)
4520 objc_inherit_code
= CLASS_METHOD_DECL
;
4522 fatal ("method definition not in class context");
4526 #line 2584 "objc-parse.y"
4528 forget_protocol_qualifiers ();
4529 add_class_method (objc_implementation_context
, yyvsp
[0].ttype
);
4530 start_method_def (yyvsp
[0].ttype
);
4531 objc_method_context
= yyvsp
[0].ttype
;
4535 #line 2591 "objc-parse.y"
4537 continue_method_def ();
4541 #line 2595 "objc-parse.y"
4543 finish_method_def ();
4544 objc_method_context
= NULL_TREE
;
4548 #line 2601 "objc-parse.y"
4550 remember_protocol_qualifiers ();
4551 if (objc_implementation_context
)
4552 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4554 fatal ("method definition not in class context");
4558 #line 2609 "objc-parse.y"
4560 forget_protocol_qualifiers ();
4561 add_instance_method (objc_implementation_context
, yyvsp
[0].ttype
);
4562 start_method_def (yyvsp
[0].ttype
);
4563 objc_method_context
= yyvsp
[0].ttype
;
4567 #line 2616 "objc-parse.y"
4569 continue_method_def ();
4573 #line 2620 "objc-parse.y"
4575 finish_method_def ();
4576 objc_method_context
= NULL_TREE
;
4580 #line 2632 "objc-parse.y"
4581 {yyval
.ttype
= NULL_TREE
; ;
4584 #line 2639 "objc-parse.y"
4585 {yyval
.ttype
= NULL_TREE
; ;
4588 #line 2649 "objc-parse.y"
4590 /* Remember protocol qualifiers in prototypes. */
4591 remember_protocol_qualifiers ();
4592 objc_inherit_code
= CLASS_METHOD_DECL
;
4596 #line 2655 "objc-parse.y"
4598 /* Forget protocol qualifiers here. */
4599 forget_protocol_qualifiers ();
4600 add_class_method (objc_interface_context
, yyvsp
[0].ttype
);
4604 #line 2663 "objc-parse.y"
4606 /* Remember protocol qualifiers in prototypes. */
4607 remember_protocol_qualifiers ();
4608 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4612 #line 2669 "objc-parse.y"
4614 /* Forget protocol qualifiers here. */
4615 forget_protocol_qualifiers ();
4616 add_instance_method (objc_interface_context
, yyvsp
[0].ttype
);
4620 #line 2679 "objc-parse.y"
4622 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4626 #line 2684 "objc-parse.y"
4628 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
4632 #line 2689 "objc-parse.y"
4634 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4638 #line 2694 "objc-parse.y"
4640 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4644 #line 2724 "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 2729 "objc-parse.y"
4652 { shadow_tag (yyvsp
[-1].ttype
); ;
4655 #line 2731 "objc-parse.y"
4656 { pedwarn ("empty declaration"); ;
4659 #line 2736 "objc-parse.y"
4660 { push_parm_decl (yyvsp
[0].ttype
); ;
4663 #line 2738 "objc-parse.y"
4664 { push_parm_decl (yyvsp
[0].ttype
); ;
4667 #line 2746 "objc-parse.y"
4668 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4670 build_tree_list (prefix_attributes
,
4674 #line 2751 "objc-parse.y"
4675 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4677 build_tree_list (prefix_attributes
,
4681 #line 2756 "objc-parse.y"
4682 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4684 build_tree_list (prefix_attributes
,
4688 #line 2764 "objc-parse.y"
4690 yyval
.ttype
= NULL_TREE
;
4694 #line 2768 "objc-parse.y"
4696 /* oh what a kludge! */
4697 yyval
.ttype
= (tree
)1;
4701 #line 2773 "objc-parse.y"
4707 #line 2777 "objc-parse.y"
4709 /* returns a tree list node generated by get_parm_info */
4710 yyval
.ttype
= yyvsp
[0].ttype
;
4715 #line 2792 "objc-parse.y"
4717 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4721 #line 2805 "objc-parse.y"
4722 { yyval
.ttype
= get_identifier (token_buffer
); ;
4725 #line 2806 "objc-parse.y"
4726 { yyval
.ttype
= get_identifier (token_buffer
); ;
4729 #line 2807 "objc-parse.y"
4730 { yyval
.ttype
= get_identifier (token_buffer
); ;
4733 #line 2808 "objc-parse.y"
4734 { yyval
.ttype
= get_identifier (token_buffer
); ;
4737 #line 2809 "objc-parse.y"
4738 { yyval
.ttype
= get_identifier (token_buffer
); ;
4741 #line 2810 "objc-parse.y"
4742 { yyval
.ttype
= get_identifier (token_buffer
); ;
4745 #line 2811 "objc-parse.y"
4746 { yyval
.ttype
= get_identifier (token_buffer
); ;
4749 #line 2812 "objc-parse.y"
4750 { yyval
.ttype
= get_identifier (token_buffer
); ;
4753 #line 2813 "objc-parse.y"
4754 { yyval
.ttype
= get_identifier (token_buffer
); ;
4757 #line 2814 "objc-parse.y"
4758 { yyval
.ttype
= get_identifier (token_buffer
); ;
4761 #line 2815 "objc-parse.y"
4762 { yyval
.ttype
= get_identifier (token_buffer
); ;
4765 #line 2816 "objc-parse.y"
4766 { yyval
.ttype
= get_identifier (token_buffer
); ;
4769 #line 2817 "objc-parse.y"
4770 { yyval
.ttype
= get_identifier (token_buffer
); ;
4773 #line 2818 "objc-parse.y"
4774 { yyval
.ttype
= get_identifier (token_buffer
); ;
4777 #line 2819 "objc-parse.y"
4778 { yyval
.ttype
= get_identifier (token_buffer
); ;
4781 #line 2820 "objc-parse.y"
4782 { yyval
.ttype
= get_identifier (token_buffer
); ;
4785 #line 2821 "objc-parse.y"
4786 { yyval
.ttype
= get_identifier (token_buffer
); ;
4789 #line 2822 "objc-parse.y"
4790 { yyval
.ttype
= get_identifier (token_buffer
); ;
4793 #line 2823 "objc-parse.y"
4794 { yyval
.ttype
= get_identifier (token_buffer
); ;
4797 #line 2829 "objc-parse.y"
4799 yyval
.ttype
= build_keyword_decl (yyvsp
[-5].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4803 #line 2834 "objc-parse.y"
4805 yyval
.ttype
= build_keyword_decl (yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
4809 #line 2839 "objc-parse.y"
4811 yyval
.ttype
= build_keyword_decl (NULL_TREE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4815 #line 2844 "objc-parse.y"
4817 yyval
.ttype
= build_keyword_decl (NULL_TREE
, NULL_TREE
, yyvsp
[0].ttype
);
4821 #line 2857 "objc-parse.y"
4823 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4827 #line 2865 "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 2877 "objc-parse.y"
4840 yyval
.ttype
= build_tree_list (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4844 #line 2881 "objc-parse.y"
4846 yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
);
4850 #line 2889 "objc-parse.y"
4852 yyval
.ttype
= get_class_reference (yyvsp
[0].ttype
);
4856 #line 2896 "objc-parse.y"
4857 { objc_receiver_context
= 1; ;
4860 #line 2898 "objc-parse.y"
4861 { objc_receiver_context
= 0; ;
4864 #line 2900 "objc-parse.y"
4866 yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
);
4870 #line 2913 "objc-parse.y"
4872 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4876 #line 2920 "objc-parse.y"
4878 yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, NULL_TREE
);
4882 #line 2924 "objc-parse.y"
4884 yyval
.ttype
= build_tree_list (NULL_TREE
, NULL_TREE
);
4888 #line 2931 "objc-parse.y"
4890 yyval
.ttype
= yyvsp
[-1].ttype
;
4894 #line 2938 "objc-parse.y"
4896 yyval
.ttype
= yyvsp
[-1].ttype
;
4900 #line 2947 "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/progressive-97r2/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 2952 "objc-parse.y"