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
41 #define END_OF_LINE 291
46 #define ARITHCOMPARE 296
51 #define MINUSMINUS 301
52 #define HYPERUNARY 302
55 #define IMPLEMENTATION 305
65 #define OBJECTNAME 315
68 #define OBJC_STRING 318
70 #line 33 "objc-parse.y"
84 #ifdef MULTIBYTE_CHARS
90 /* Since parsers are distinct for each language, put the language string
92 const char * const language_string
= "GNU Obj-C";
94 /* Like YYERROR but do call yyerror. */
95 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
97 /* Cause the `yydebug' variable to be defined. */
100 #line 65 "objc-parse.y"
101 typedef union {long itype
; tree ttype
; enum tree_code code
;
102 char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
103 #line 198 "objc-parse.y"
105 /* Number of statements (loosely speaking) and compound statements
107 static int stmt_count
;
108 static int compstmt_count
;
110 /* Input file and line number of the end of the body of last simple_if;
111 used by the stmt-rule immediately after simple_if returns. */
112 static char *if_stmt_file
;
113 static int if_stmt_line
;
115 /* List of types and structure classes of the current declaration. */
116 static tree current_declspecs
= NULL_TREE
;
117 static tree prefix_attributes
= NULL_TREE
;
119 /* Stack of saved values of current_declspecs and prefix_attributes. */
120 static tree declspec_stack
;
122 /* 1 if we explained undeclared var errors. */
123 static int undeclared_variable_notice
;
125 /* For __extension__, save/restore the warning flags which are
126 controlled by __extension__. */
127 #define SAVE_WARN_FLAGS() (pedantic | (warn_pointer_arith << 1))
128 #define RESTORE_WARN_FLAGS(val) \
130 pedantic = val & 1; \
131 warn_pointer_arith = (val >> 1) & 1; \
134 /* Objective-C specific information */
136 tree objc_interface_context
;
137 tree objc_implementation_context
;
138 tree objc_method_context
;
139 tree objc_ivar_chain
;
140 tree objc_ivar_context
;
141 enum tree_code objc_inherit_code
;
142 int objc_receiver_context
;
143 int objc_public_flag
;
146 /* Tell yyparse how to print a token's value, if yydebug is set. */
148 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
149 extern void yyprint
PROTO ((FILE *, int, YYSTYPE
));
151 /* Add GC roots for variables local to this file. */
155 ggc_add_tree_root (&declspec_stack
, 1);
156 ggc_add_tree_root (¤t_declspecs
, 1);
157 ggc_add_tree_root (&prefix_attributes
, 1);
171 #define YYFLAG -32768
174 #define YYTRANSLATE(x) ((unsigned)(x) <= 318 ? yytranslate[x] : 314)
176 static const char yytranslate
[] = { 0,
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, 82, 2, 2, 2, 54, 45, 2, 61,
181 78, 52, 50, 83, 51, 60, 53, 2, 2, 2,
182 2, 2, 2, 2, 2, 2, 2, 40, 79, 2,
183 38, 2, 39, 2, 2, 2, 2, 2, 2, 2,
184 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
185 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
186 62, 2, 85, 44, 2, 2, 2, 2, 2, 2,
187 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
188 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
189 2, 2, 84, 43, 80, 81, 2, 2, 2, 2,
190 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
191 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
192 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
193 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
194 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
195 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
196 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
197 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
198 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
199 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
201 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
202 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
203 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
204 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
205 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
206 36, 37, 41, 42, 46, 47, 48, 49, 55, 56,
207 57, 58, 59, 63, 64, 65, 66, 67, 68, 69,
208 70, 71, 72, 73, 74, 75, 76, 77
212 static const short yyprhs
[] = { 0,
213 0, 1, 3, 4, 7, 8, 12, 14, 16, 18,
214 24, 27, 31, 36, 41, 44, 47, 50, 53, 55,
215 56, 57, 65, 70, 71, 72, 80, 85, 86, 87,
216 94, 98, 100, 102, 104, 106, 108, 110, 112, 114,
217 116, 118, 120, 122, 123, 125, 127, 131, 133, 136,
218 139, 142, 145, 148, 153, 156, 161, 164, 167, 174,
219 176, 178, 180, 185, 186, 194, 196, 200, 204, 208,
220 212, 216, 220, 224, 228, 232, 236, 240, 244, 245,
221 250, 251, 256, 257, 258, 266, 267, 273, 277, 281,
222 283, 285, 287, 291, 295, 299, 303, 308, 313, 317,
223 321, 324, 327, 329, 331, 333, 335, 337, 339, 342,
224 344, 347, 348, 350, 353, 357, 359, 361, 364, 367,
225 372, 377, 380, 383, 387, 389, 391, 394, 397, 398,
226 399, 404, 409, 413, 417, 420, 423, 426, 429, 433,
227 434, 437, 440, 443, 446, 450, 451, 454, 457, 459,
228 461, 464, 467, 469, 471, 474, 477, 480, 484, 485,
229 488, 490, 492, 494, 497, 500, 502, 507, 512, 514,
230 516, 518, 520, 524, 526, 530, 531, 536, 537, 544,
231 548, 549, 556, 560, 561, 563, 565, 568, 575, 577,
232 581, 582, 584, 589, 596, 601, 603, 605, 607, 609,
233 611, 612, 617, 619, 620, 623, 625, 629, 633, 636,
234 637, 642, 644, 645, 650, 652, 654, 656, 659, 662,
235 663, 664, 670, 671, 672, 678, 680, 682, 686, 690,
236 695, 699, 703, 707, 709, 711, 715, 720, 724, 728,
237 732, 734, 738, 742, 746, 751, 755, 759, 761, 763,
238 766, 768, 771, 773, 776, 777, 785, 791, 794, 795,
239 803, 809, 812, 813, 822, 823, 831, 834, 835, 837,
240 838, 840, 842, 845, 846, 850, 853, 858, 862, 868,
241 872, 874, 876, 879, 881, 885, 890, 897, 903, 905,
242 909, 911, 913, 917, 920, 923, 924, 926, 928, 931,
243 932, 935, 939, 943, 946, 950, 955, 959, 962, 966,
244 969, 973, 975, 977, 980, 983, 984, 986, 989, 990,
245 991, 993, 995, 998, 1002, 1004, 1007, 1009, 1011, 1017,
246 1022, 1027, 1030, 1033, 1036, 1039, 1044, 1045, 1050, 1051,
247 1052, 1056, 1061, 1065, 1067, 1069, 1071, 1073, 1076, 1077,
248 1082, 1084, 1088, 1089, 1090, 1098, 1104, 1107, 1108, 1109,
249 1110, 1123, 1124, 1131, 1134, 1137, 1140, 1144, 1151, 1160,
250 1171, 1184, 1188, 1193, 1195, 1197, 1198, 1205, 1209, 1215,
251 1218, 1222, 1223, 1225, 1226, 1228, 1229, 1231, 1233, 1237,
252 1242, 1244, 1248, 1249, 1252, 1255, 1256, 1261, 1264, 1265,
253 1267, 1269, 1273, 1275, 1279, 1284, 1289, 1294, 1299, 1304,
254 1305, 1308, 1310, 1313, 1315, 1319, 1321, 1325, 1327, 1329,
255 1331, 1333, 1335, 1337, 1339, 1341, 1345, 1349, 1354, 1355,
256 1356, 1367, 1368, 1375, 1376, 1377, 1390, 1391, 1400, 1401,
257 1408, 1411, 1412, 1421, 1426, 1427, 1437, 1443, 1444, 1451,
258 1452, 1454, 1458, 1462, 1464, 1466, 1468, 1470, 1471, 1475,
259 1478, 1482, 1486, 1488, 1489, 1491, 1495, 1497, 1501, 1504,
260 1505, 1506, 1507, 1515, 1516, 1517, 1518, 1526, 1527, 1528,
261 1531, 1533, 1535, 1538, 1539, 1543, 1545, 1547, 1548, 1549,
262 1555, 1556, 1557, 1563, 1568, 1570, 1576, 1579, 1580, 1583,
263 1584, 1586, 1588, 1590, 1593, 1596, 1601, 1604, 1607, 1609,
264 1613, 1616, 1619, 1622, 1623, 1626, 1627, 1631, 1633, 1635,
265 1638, 1640, 1642, 1644, 1646, 1648, 1650, 1652, 1654, 1656,
266 1658, 1660, 1662, 1664, 1666, 1668, 1670, 1672, 1674, 1676,
267 1678, 1680, 1682, 1684, 1686, 1688, 1695, 1699, 1705, 1708,
268 1710, 1712, 1714, 1717, 1719, 1723, 1726, 1728, 1730, 1731,
269 1732, 1739, 1741, 1743, 1745, 1748, 1751, 1753, 1758, 1763
272 static const short yyrhs
[] = { -1,
273 87, 0, 0, 88, 90, 0, 0, 87, 89, 90,
274 0, 92, 0, 91, 0, 245, 0, 27, 61, 101,
275 78, 79, 0, 244, 90, 0, 124, 138, 79, 0,
276 131, 124, 138, 79, 0, 127, 124, 137, 79, 0,
277 131, 79, 0, 127, 79, 0, 1, 79, 0, 1,
278 80, 0, 79, 0, 0, 0, 127, 124, 166, 93,
279 118, 94, 200, 0, 127, 124, 166, 1, 0, 0,
280 0, 131, 124, 169, 95, 118, 96, 200, 0, 131,
281 124, 169, 1, 0, 0, 0, 124, 169, 97, 118,
282 98, 200, 0, 124, 169, 1, 0, 3, 0, 4,
283 0, 74, 0, 69, 0, 45, 0, 51, 0, 50,
284 0, 56, 0, 57, 0, 81, 0, 82, 0, 103,
285 0, 0, 103, 0, 109, 0, 103, 83, 109, 0,
286 115, 0, 52, 107, 0, 244, 107, 0, 100, 107,
287 0, 42, 99, 0, 105, 104, 0, 105, 61, 187,
288 78, 0, 106, 104, 0, 106, 61, 187, 78, 0,
289 33, 107, 0, 34, 107, 0, 35, 61, 109, 83,
290 187, 78, 0, 11, 0, 29, 0, 104, 0, 61,
291 187, 78, 107, 0, 0, 61, 187, 78, 84, 108,
292 152, 80, 0, 107, 0, 109, 50, 109, 0, 109,
293 51, 109, 0, 109, 52, 109, 0, 109, 53, 109,
294 0, 109, 54, 109, 0, 109, 48, 109, 0, 109,
295 49, 109, 0, 109, 47, 109, 0, 109, 46, 109,
296 0, 109, 45, 109, 0, 109, 43, 109, 0, 109,
297 44, 109, 0, 0, 109, 42, 110, 109, 0, 0,
298 109, 41, 111, 109, 0, 0, 0, 109, 39, 112,
299 101, 40, 113, 109, 0, 0, 109, 39, 114, 40,
300 109, 0, 109, 38, 109, 0, 109, 37, 109, 0,
301 3, 0, 8, 0, 116, 0, 61, 101, 78, 0,
302 61, 1, 78, 0, 203, 202, 78, 0, 203, 1,
303 78, 0, 115, 61, 102, 78, 0, 115, 62, 101,
304 85, 0, 115, 60, 99, 0, 115, 59, 99, 0,
305 115, 56, 0, 115, 57, 0, 305, 0, 311, 0,
306 312, 0, 313, 0, 117, 0, 9, 0, 116, 9,
307 0, 77, 0, 117, 77, 0, 0, 120, 0, 120,
308 10, 0, 209, 210, 121, 0, 119, 0, 195, 0,
309 120, 119, 0, 119, 195, 0, 129, 124, 137, 79,
310 0, 132, 124, 138, 79, 0, 129, 79, 0, 132,
311 79, 0, 209, 210, 126, 0, 122, 0, 195, 0,
312 123, 122, 0, 122, 195, 0, 0, 0, 127, 124,
313 137, 79, 0, 131, 124, 138, 79, 0, 127, 124,
314 160, 0, 131, 124, 163, 0, 127, 79, 0, 131,
315 79, 0, 244, 126, 0, 135, 128, 0, 131, 135,
316 128, 0, 0, 128, 136, 0, 128, 5, 0, 128,
317 145, 0, 135, 130, 0, 132, 135, 130, 0, 0,
318 130, 136, 0, 130, 5, 0, 132, 0, 145, 0,
319 131, 132, 0, 131, 145, 0, 7, 0, 5, 0,
320 132, 7, 0, 132, 5, 0, 135, 134, 0, 189,
321 135, 134, 0, 0, 134, 136, 0, 6, 0, 173,
322 0, 4, 0, 69, 261, 0, 74, 261, 0, 262,
323 0, 28, 61, 101, 78, 0, 28, 61, 187, 78,
324 0, 6, 0, 7, 0, 173, 0, 140, 0, 137,
325 83, 140, 0, 142, 0, 138, 83, 140, 0, 0,
326 27, 61, 116, 78, 0, 0, 166, 139, 144, 38,
327 141, 150, 0, 166, 139, 144, 0, 0, 169, 139,
328 144, 38, 143, 150, 0, 169, 139, 144, 0, 0,
329 145, 0, 146, 0, 145, 146, 0, 30, 61, 61,
330 147, 78, 78, 0, 148, 0, 147, 83, 148, 0,
331 0, 149, 0, 149, 61, 3, 78, 0, 149, 61,
332 3, 83, 103, 78, 0, 149, 61, 102, 78, 0,
333 99, 0, 5, 0, 6, 0, 7, 0, 109, 0,
334 0, 84, 151, 152, 80, 0, 1, 0, 0, 153,
335 178, 0, 154, 0, 153, 83, 154, 0, 158, 38,
336 156, 0, 159, 156, 0, 0, 99, 40, 155, 156,
337 0, 156, 0, 0, 84, 157, 152, 80, 0, 109,
338 0, 1, 0, 159, 0, 158, 159, 0, 60, 99,
339 0, 0, 0, 166, 161, 118, 162, 204, 0, 0,
340 0, 169, 164, 118, 165, 204, 0, 167, 0, 169,
341 0, 61, 167, 78, 0, 167, 61, 239, 0, 167,
342 62, 101, 85, 0, 167, 62, 85, 0, 52, 190,
343 167, 0, 145, 125, 167, 0, 4, 0, 74, 0,
344 168, 61, 239, 0, 168, 62, 101, 85, 0, 168,
345 62, 85, 0, 52, 190, 168, 0, 145, 125, 168,
346 0, 4, 0, 169, 61, 239, 0, 61, 169, 78,
347 0, 52, 190, 169, 0, 169, 62, 101, 85, 0,
348 169, 62, 85, 0, 145, 125, 169, 0, 3, 0,
349 13, 0, 13, 145, 0, 14, 0, 14, 145, 0,
350 12, 0, 12, 145, 0, 0, 170, 99, 84, 174,
351 180, 80, 144, 0, 170, 84, 180, 80, 144, 0,
352 170, 99, 0, 0, 171, 99, 84, 175, 180, 80,
353 144, 0, 171, 84, 180, 80, 144, 0, 171, 99,
354 0, 0, 172, 99, 84, 176, 185, 179, 80, 144,
355 0, 0, 172, 84, 177, 185, 179, 80, 144, 0,
356 172, 99, 0, 0, 83, 0, 0, 83, 0, 181,
357 0, 181, 182, 0, 0, 181, 182, 79, 0, 181,
358 79, 0, 67, 61, 69, 78, 0, 133, 124, 183,
359 0, 133, 124, 209, 210, 144, 0, 189, 124, 183,
360 0, 189, 0, 1, 0, 244, 182, 0, 184, 0,
361 183, 83, 184, 0, 209, 210, 166, 144, 0, 209,
362 210, 166, 40, 109, 144, 0, 209, 210, 40, 109,
363 144, 0, 186, 0, 185, 83, 186, 0, 1, 0,
364 99, 0, 99, 38, 109, 0, 133, 188, 0, 189,
365 188, 0, 0, 191, 0, 7, 0, 189, 7, 0,
366 0, 190, 7, 0, 61, 191, 78, 0, 52, 190,
367 191, 0, 52, 190, 0, 191, 61, 232, 0, 191,
368 62, 101, 85, 0, 191, 62, 85, 0, 61, 232,
369 0, 62, 101, 85, 0, 62, 85, 0, 145, 125,
370 191, 0, 193, 0, 212, 0, 193, 212, 0, 193,
371 195, 0, 0, 192, 0, 1, 79, 0, 0, 0,
372 198, 0, 199, 0, 198, 199, 0, 32, 243, 79,
373 0, 204, 0, 1, 204, 0, 84, 0, 80, 0,
374 196, 197, 123, 194, 80, 0, 196, 197, 1, 80,
375 0, 196, 197, 192, 80, 0, 61, 84, 0, 201,
376 202, 0, 206, 211, 0, 206, 1, 0, 15, 61,
377 101, 78, 0, 0, 18, 208, 211, 17, 0, 0,
378 0, 209, 210, 214, 0, 209, 210, 225, 211, 0,
379 209, 210, 213, 0, 214, 0, 225, 0, 204, 0,
380 222, 0, 101, 79, 0, 0, 205, 16, 215, 211,
381 0, 205, 0, 205, 16, 1, 0, 0, 0, 17,
382 216, 61, 101, 78, 217, 211, 0, 207, 61, 101,
383 78, 79, 0, 207, 1, 0, 0, 0, 0, 19,
384 61, 227, 79, 218, 227, 79, 219, 227, 78, 220,
385 211, 0, 0, 20, 61, 101, 78, 221, 211, 0,
386 23, 79, 0, 24, 79, 0, 25, 79, 0, 25,
387 101, 79, 0, 27, 226, 61, 101, 78, 79, 0,
388 27, 226, 61, 101, 40, 228, 78, 79, 0, 27,
389 226, 61, 101, 40, 228, 40, 228, 78, 79, 0,
390 27, 226, 61, 101, 40, 228, 40, 228, 40, 231,
391 78, 79, 0, 26, 99, 79, 0, 26, 52, 101,
392 79, 0, 79, 0, 223, 0, 0, 19, 61, 115,
393 78, 224, 211, 0, 21, 109, 40, 0, 21, 109,
394 10, 109, 40, 0, 22, 40, 0, 99, 40, 144,
395 0, 0, 7, 0, 0, 101, 0, 0, 229, 0,
396 230, 0, 229, 83, 230, 0, 9, 61, 101, 78,
397 0, 116, 0, 231, 83, 116, 0, 0, 233, 234,
398 0, 236, 78, 0, 0, 237, 79, 235, 234, 0,
399 1, 78, 0, 0, 10, 0, 237, 0, 237, 83,
400 10, 0, 238, 0, 237, 83, 238, 0, 127, 124,
401 168, 144, 0, 127, 124, 169, 144, 0, 127, 124,
402 188, 144, 0, 131, 124, 169, 144, 0, 131, 124,
403 188, 144, 0, 0, 240, 241, 0, 234, 0, 242,
404 78, 0, 3, 0, 242, 83, 3, 0, 99, 0,
405 243, 83, 99, 0, 31, 0, 249, 0, 247, 0,
406 248, 0, 259, 0, 269, 0, 65, 0, 99, 0,
407 246, 83, 99, 0, 75, 246, 79, 0, 76, 99,
408 99, 79, 0, 0, 0, 63, 99, 261, 84, 250,
409 263, 80, 251, 276, 65, 0, 0, 63, 99, 261,
410 252, 276, 65, 0, 0, 0, 63, 99, 40, 99,
411 261, 84, 253, 263, 80, 254, 276, 65, 0, 0,
412 63, 99, 40, 99, 261, 255, 276, 65, 0, 0,
413 64, 99, 84, 256, 263, 80, 0, 64, 99, 0,
414 0, 64, 99, 40, 99, 84, 257, 263, 80, 0,
415 64, 99, 40, 99, 0, 0, 63, 99, 61, 99,
416 78, 261, 258, 276, 65, 0, 64, 99, 61, 99,
417 78, 0, 0, 73, 99, 261, 260, 276, 65, 0,
418 0, 262, 0, 47, 246, 47, 0, 263, 264, 265,
419 0, 265, 0, 71, 0, 72, 0, 70, 0, 0,
420 265, 266, 79, 0, 265, 79, 0, 133, 124, 267,
421 0, 189, 124, 267, 0, 1, 0, 0, 268, 0,
422 267, 83, 268, 0, 166, 0, 166, 40, 109, 0,
423 40, 109, 0, 0, 0, 0, 50, 270, 286, 271,
424 287, 272, 200, 0, 0, 0, 0, 51, 273, 286,
425 274, 287, 275, 200, 0, 0, 0, 277, 278, 0,
426 281, 0, 91, 0, 278, 281, 0, 0, 278, 279,
427 91, 0, 79, 0, 1, 0, 0, 0, 50, 282,
428 286, 283, 280, 0, 0, 0, 51, 284, 286, 285,
429 280, 0, 61, 187, 78, 295, 0, 295, 0, 61,
430 187, 78, 296, 293, 0, 296, 293, 0, 0, 79,
431 288, 0, 0, 289, 0, 290, 0, 195, 0, 289,
432 290, 0, 290, 195, 0, 127, 124, 291, 79, 0,
433 127, 79, 0, 131, 79, 0, 292, 0, 291, 83,
434 292, 0, 168, 144, 0, 169, 144, 0, 188, 144,
435 0, 0, 83, 10, 0, 0, 83, 294, 236, 0,
436 297, 0, 299, 0, 296, 299, 0, 3, 0, 4,
437 0, 74, 0, 298, 0, 12, 0, 13, 0, 14,
438 0, 15, 0, 16, 0, 17, 0, 18, 0, 19,
439 0, 20, 0, 21, 0, 22, 0, 23, 0, 24,
440 0, 25, 0, 26, 0, 27, 0, 11, 0, 28,
441 0, 29, 0, 6, 0, 7, 0, 297, 40, 61,
442 187, 78, 99, 0, 297, 40, 99, 0, 40, 61,
443 187, 78, 99, 0, 40, 99, 0, 297, 0, 301,
444 0, 303, 0, 301, 303, 0, 103, 0, 297, 40,
445 302, 0, 40, 302, 0, 101, 0, 69, 0, 0,
446 0, 62, 306, 304, 307, 300, 85, 0, 297, 0,
447 309, 0, 310, 0, 309, 310, 0, 297, 40, 0,
448 40, 0, 66, 61, 308, 78, 0, 73, 61, 99,
449 78, 0, 68, 61, 187, 78, 0
455 static const short yyrline
[] = { 0,
456 257, 262, 276, 278, 278, 279, 281, 283, 284, 285,
457 293, 297, 308, 313, 318, 320, 322, 323, 324, 329,
458 336, 338, 343, 348, 354, 356, 361, 366, 372, 374,
459 379, 386, 388, 389, 390, 393, 395, 397, 399, 401,
460 403, 405, 409, 413, 416, 419, 422, 426, 428, 431,
461 434, 438, 466, 472, 475, 478, 481, 483, 485, 489,
462 493, 497, 499, 502, 506, 533, 535, 537, 539, 541,
463 543, 545, 547, 549, 551, 553, 555, 557, 559, 563,
464 565, 569, 571, 574, 578, 580, 587, 590, 598, 609,
465 769, 770, 772, 778, 780, 803, 812, 814, 816, 828,
466 842, 844, 846, 848, 850, 852, 854, 859, 861, 868,
467 870, 874, 876, 877, 887, 892, 894, 895, 896, 903,
468 909, 914, 917, 925, 930, 932, 933, 934, 941, 952,
469 956, 962, 967, 972, 977, 979, 981, 990, 993, 997,
470 999, 1001, 1006, 1010, 1013, 1017, 1020, 1022, 1034, 1037,
471 1039, 1041, 1045, 1049, 1051, 1054, 1067, 1070, 1074, 1076,
472 1084, 1085, 1086, 1090, 1092, 1097, 1099, 1101, 1107, 1108,
473 1109, 1112, 1114, 1117, 1119, 1122, 1125, 1131, 1138, 1140,
474 1147, 1154, 1157, 1164, 1167, 1171, 1174, 1178, 1183, 1186,
475 1190, 1193, 1195, 1197, 1199, 1206, 1208, 1209, 1210, 1215,
476 1217, 1222, 1230, 1235, 1239, 1242, 1244, 1249, 1251, 1252,
477 1255, 1255, 1258, 1261, 1263, 1265, 1268, 1270, 1273, 1281,
478 1295, 1303, 1307, 1321, 1329, 1336, 1338, 1343, 1346, 1351,
479 1353, 1355, 1362, 1364, 1365, 1373, 1379, 1381, 1383, 1390,
480 1392, 1398, 1404, 1406, 1408, 1410, 1417, 1419, 1422, 1425,
481 1429, 1432, 1436, 1439, 1443, 1448, 1450, 1454, 1456, 1458,
482 1460, 1464, 1466, 1469, 1472, 1475, 1478, 1482, 1484, 1487,
483 1489, 1494, 1497, 1502, 1504, 1506, 1510, 1534, 1541, 1555,
484 1561, 1566, 1568, 1573, 1575, 1579, 1583, 1587, 1597, 1599,
485 1604, 1609, 1612, 1616, 1619, 1623, 1626, 1629, 1632, 1636,
486 1639, 1643, 1647, 1649, 1651, 1653, 1655, 1657, 1659, 1661,
487 1665, 1673, 1681, 1683, 1685, 1689, 1691, 1694, 1697, 1710,
488 1712, 1717, 1719, 1722, 1736, 1739, 1742, 1744, 1746, 1754,
489 1762, 1772, 1790, 1795, 1800, 1803, 1817, 1826, 1830, 1834,
490 1838, 1844, 1848, 1853, 1856, 1861, 1864, 1865, 1882, 1887,
491 1890, 1902, 1904, 1914, 1924, 1925, 1933, 1936, 1948, 1952,
492 1969, 1979, 1988, 1993, 1998, 2003, 2007, 2011, 2022, 2029,
493 2036, 2043, 2054, 2060, 2063, 2068, 2091, 2125, 2156, 2187,
494 2202, 2216, 2220, 2224, 2227, 2232, 2234, 2237, 2239, 2243,
495 2248, 2251, 2257, 2262, 2267, 2269, 2278, 2279, 2285, 2287,
496 2297, 2299, 2303, 2306, 2312, 2322, 2331, 2340, 2350, 2364,
497 2369, 2374, 2376, 2385, 2388, 2393, 2396, 2400, 2409, 2411,
498 2412, 2413, 2414, 2415, 2429, 2432, 2436, 2442, 2448, 2455,
499 2460, 2466, 2473, 2479, 2485, 2490, 2496, 2503, 2509, 2515,
500 2521, 2529, 2535, 2541, 2549, 2556, 2562, 2571, 2578, 2586,
501 2591, 2594, 2604, 2606, 2609, 2611, 2612, 2615, 2620, 2621,
502 2638, 2645, 2651, 2655, 2658, 2659, 2662, 2670, 2676, 2685,
503 2695, 2702, 2706, 2711, 2720, 2727, 2731, 2741, 2743, 2744,
504 2746, 2748, 2749, 2750, 2751, 2753, 2755, 2758, 2766, 2773,
505 2773, 2780, 2786, 2788, 2794, 2799, 2804, 2813, 2815, 2821,
506 2823, 2826, 2828, 2829, 2830, 2833, 2839, 2841, 2845, 2848,
507 2855, 2861, 2866, 2873, 2878, 2883, 2888, 2895, 2899, 2902,
508 2908, 2910, 2911, 2912, 2915, 2917, 2918, 2919, 2920, 2921,
509 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931,
510 2932, 2933, 2934, 2935, 2935, 2938, 2944, 2949, 2954, 2960,
511 2962, 2965, 2967, 2974, 2986, 2991, 2997, 2999, 3005, 3009,
512 3010, 3016, 3018, 3021, 3023, 3029, 3034, 3040, 3047, 3056
517 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
519 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
520 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
521 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
522 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
523 "EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG","END_OF_LINE","ASSIGN","'='",
524 "'?'","':'","OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT",
525 "RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY",
526 "POINTSAT","'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS",
527 "ENCODE","CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME",
528 "CLASS","ALIAS","OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'",
529 "program","extdefs","@1","@2","extdef","datadef","fndef","@3","@4","@5","@6",
530 "@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist","unary_expr",
531 "sizeof","alignof","cast_expr","@9","expr_no_commas","@10","@11","@12","@13",
532 "@14","primary","string","objc_string","old_style_parm_decls","lineno_datadecl",
533 "datadecls","datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
534 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
535 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
536 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
537 "initdcl","@15","notype_initdcl","@16","maybe_attribute","attributes","attribute",
538 "attribute_list","attrib","any_word","init","@17","initlist_maybe_comma","initlist1",
539 "initelt","@18","initval","@19","designator_list","designator","nested_function",
540 "@20","@21","notype_nested_function","@22","@23","declarator","after_type_declarator",
541 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
542 "structsp","@24","@25","@26","@27","maybecomma","maybecomma_warn","component_decl_list",
543 "component_decl_list2","component_decl","components","component_declarator",
544 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
545 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
546 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt_nostart",
547 "compstmt_primary_start","compstmt","simple_if","if_prefix","do_stmt_start",
548 "@28","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
549 "stmt_or_label","stmt","@29","@30","@31","@32","@33","@34","@35","all_iter_stmt",
550 "all_iter_stmt_simple","@36","label","maybe_type_qual","xexpr","asm_operands",
551 "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@37","parmlist_1",
552 "@38","parmlist_2","parms","parm","parmlist_or_identifiers","@39","parmlist_or_identifiers_1",
553 "identifiers","identifiers_or_typenames","extension","objcdef","identifier_list",
554 "classdecl","aliasdecl","classdef","@40","@41","@42","@43","@44","@45","@46",
555 "@47","@48","protocoldef","@49","protocolrefs","non_empty_protocolrefs","ivar_decl_list",
556 "visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator","methoddef",
557 "@50","@51","@52","@53","@54","@55","methodprotolist","@56","methodprotolist2",
558 "@57","semi_or_error","methodproto","@58","@59","@60","@61","methoddecl","optarglist",
559 "myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@62","unaryselector",
560 "keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist",
561 "keywordexpr","keywordarg","receiver","objcmessageexpr","@63","@64","selectorarg",
562 "keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr","objcencodeexpr", NULL
566 static const short yyr1
[] = { 0,
567 86, 86, 88, 87, 89, 87, 90, 90, 90, 90,
568 90, 91, 91, 91, 91, 91, 91, 91, 91, 93,
569 94, 92, 92, 95, 96, 92, 92, 97, 98, 92,
570 92, 99, 99, 99, 99, 100, 100, 100, 100, 100,
571 100, 100, 101, 102, 102, 103, 103, 104, 104, 104,
572 104, 104, 104, 104, 104, 104, 104, 104, 104, 105,
573 106, 107, 107, 108, 107, 109, 109, 109, 109, 109,
574 109, 109, 109, 109, 109, 109, 109, 109, 110, 109,
575 111, 109, 112, 113, 109, 114, 109, 109, 109, 115,
576 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
577 115, 115, 115, 115, 115, 115, 115, 116, 116, 117,
578 117, 118, 118, 118, 119, 120, 120, 120, 120, 121,
579 121, 121, 121, 122, 123, 123, 123, 123, 124, 125,
580 126, 126, 126, 126, 126, 126, 126, 127, 127, 128,
581 128, 128, 128, 129, 129, 130, 130, 130, 131, 131,
582 131, 131, 132, 132, 132, 132, 133, 133, 134, 134,
583 135, 135, 135, 135, 135, 135, 135, 135, 136, 136,
584 136, 137, 137, 138, 138, 139, 139, 141, 140, 140,
585 143, 142, 142, 144, 144, 145, 145, 146, 147, 147,
586 148, 148, 148, 148, 148, 149, 149, 149, 149, 150,
587 151, 150, 150, 152, 152, 153, 153, 154, 154, 155,
588 154, 154, 157, 156, 156, 156, 158, 158, 159, 161,
589 162, 160, 164, 165, 163, 166, 166, 167, 167, 167,
590 167, 167, 167, 167, 167, 168, 168, 168, 168, 168,
591 168, 169, 169, 169, 169, 169, 169, 169, 170, 170,
592 171, 171, 172, 172, 174, 173, 173, 173, 175, 173,
593 173, 173, 176, 173, 177, 173, 173, 178, 178, 179,
594 179, 180, 180, 181, 181, 181, 181, 182, 182, 182,
595 182, 182, 182, 183, 183, 184, 184, 184, 185, 185,
596 185, 186, 186, 187, 187, 188, 188, 189, 189, 190,
597 190, 191, 191, 191, 191, 191, 191, 191, 191, 191,
598 191, 192, 193, 193, 193, 194, 194, 195, 196, 197,
599 197, 198, 198, 199, 200, 200, 201, 202, 202, 202,
600 202, 203, 204, 205, 205, 206, 208, 207, 209, 210,
601 211, 211, 212, 213, 213, 214, 214, 214, 215, 214,
602 214, 214, 216, 217, 214, 214, 214, 218, 219, 220,
603 214, 221, 214, 214, 214, 214, 214, 214, 214, 214,
604 214, 214, 214, 214, 222, 224, 223, 225, 225, 225,
605 225, 226, 226, 227, 227, 228, 228, 229, 229, 230,
606 231, 231, 233, 232, 234, 235, 234, 234, 236, 236,
607 236, 236, 237, 237, 238, 238, 238, 238, 238, 240,
608 239, 241, 241, 242, 242, 243, 243, 244, 245, 245,
609 245, 245, 245, 245, 246, 246, 247, 248, 250, 251,
610 249, 252, 249, 253, 254, 249, 255, 249, 256, 249,
611 249, 257, 249, 249, 258, 249, 249, 260, 259, 261,
612 261, 262, 263, 263, 264, 264, 264, 265, 265, 265,
613 266, 266, 266, 267, 267, 267, 268, 268, 268, 270,
614 271, 272, 269, 273, 274, 275, 269, 276, 277, 276,
615 278, 278, 278, 279, 278, 280, 280, 282, 283, 281,
616 284, 285, 281, 286, 286, 286, 286, 287, 287, 288,
617 288, 289, 289, 289, 289, 290, 290, 290, 291, 291,
618 292, 292, 292, 293, 293, 294, 293, 295, 296, 296,
619 297, 297, 297, 297, 298, 298, 298, 298, 298, 298,
620 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
621 298, 298, 298, 298, 298, 299, 299, 299, 299, 300,
622 300, 301, 301, 302, 303, 303, 304, 304, 306, 307,
623 305, 308, 308, 309, 309, 310, 310, 311, 312, 313
626 static const short yyr2
[] = { 0,
627 0, 1, 0, 2, 0, 3, 1, 1, 1, 5,
628 2, 3, 4, 4, 2, 2, 2, 2, 1, 0,
629 0, 7, 4, 0, 0, 7, 4, 0, 0, 6,
630 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
631 1, 1, 1, 0, 1, 1, 3, 1, 2, 2,
632 2, 2, 2, 4, 2, 4, 2, 2, 6, 1,
633 1, 1, 4, 0, 7, 1, 3, 3, 3, 3,
634 3, 3, 3, 3, 3, 3, 3, 3, 0, 4,
635 0, 4, 0, 0, 7, 0, 5, 3, 3, 1,
636 1, 1, 3, 3, 3, 3, 4, 4, 3, 3,
637 2, 2, 1, 1, 1, 1, 1, 1, 2, 1,
638 2, 0, 1, 2, 3, 1, 1, 2, 2, 4,
639 4, 2, 2, 3, 1, 1, 2, 2, 0, 0,
640 4, 4, 3, 3, 2, 2, 2, 2, 3, 0,
641 2, 2, 2, 2, 3, 0, 2, 2, 1, 1,
642 2, 2, 1, 1, 2, 2, 2, 3, 0, 2,
643 1, 1, 1, 2, 2, 1, 4, 4, 1, 1,
644 1, 1, 3, 1, 3, 0, 4, 0, 6, 3,
645 0, 6, 3, 0, 1, 1, 2, 6, 1, 3,
646 0, 1, 4, 6, 4, 1, 1, 1, 1, 1,
647 0, 4, 1, 0, 2, 1, 3, 3, 2, 0,
648 4, 1, 0, 4, 1, 1, 1, 2, 2, 0,
649 0, 5, 0, 0, 5, 1, 1, 3, 3, 4,
650 3, 3, 3, 1, 1, 3, 4, 3, 3, 3,
651 1, 3, 3, 3, 4, 3, 3, 1, 1, 2,
652 1, 2, 1, 2, 0, 7, 5, 2, 0, 7,
653 5, 2, 0, 8, 0, 7, 2, 0, 1, 0,
654 1, 1, 2, 0, 3, 2, 4, 3, 5, 3,
655 1, 1, 2, 1, 3, 4, 6, 5, 1, 3,
656 1, 1, 3, 2, 2, 0, 1, 1, 2, 0,
657 2, 3, 3, 2, 3, 4, 3, 2, 3, 2,
658 3, 1, 1, 2, 2, 0, 1, 2, 0, 0,
659 1, 1, 2, 3, 1, 2, 1, 1, 5, 4,
660 4, 2, 2, 2, 2, 4, 0, 4, 0, 0,
661 3, 4, 3, 1, 1, 1, 1, 2, 0, 4,
662 1, 3, 0, 0, 7, 5, 2, 0, 0, 0,
663 12, 0, 6, 2, 2, 2, 3, 6, 8, 10,
664 12, 3, 4, 1, 1, 0, 6, 3, 5, 2,
665 3, 0, 1, 0, 1, 0, 1, 1, 3, 4,
666 1, 3, 0, 2, 2, 0, 4, 2, 0, 1,
667 1, 3, 1, 3, 4, 4, 4, 4, 4, 0,
668 2, 1, 2, 1, 3, 1, 3, 1, 1, 1,
669 1, 1, 1, 1, 1, 3, 3, 4, 0, 0,
670 10, 0, 6, 0, 0, 12, 0, 8, 0, 6,
671 2, 0, 8, 4, 0, 9, 5, 0, 6, 0,
672 1, 3, 3, 1, 1, 1, 1, 0, 3, 2,
673 3, 3, 1, 0, 1, 3, 1, 3, 2, 0,
674 0, 0, 7, 0, 0, 0, 7, 0, 0, 2,
675 1, 1, 2, 0, 3, 1, 1, 0, 0, 5,
676 0, 0, 5, 4, 1, 5, 2, 0, 2, 0,
677 1, 1, 1, 2, 2, 4, 2, 2, 1, 3,
678 2, 2, 2, 0, 2, 0, 3, 1, 1, 2,
679 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
680 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
681 1, 1, 1, 1, 1, 6, 3, 5, 2, 1,
682 1, 1, 2, 1, 3, 2, 1, 1, 0, 0,
683 6, 1, 1, 1, 2, 2, 1, 4, 4, 4
686 static const short yydefact
[] = { 3,
687 5, 0, 0, 0, 163, 154, 161, 153, 253, 249,
688 251, 0, 0, 0, 418, 0, 470, 474, 0, 0,
689 424, 450, 0, 450, 0, 0, 19, 4, 8, 7,
690 0, 129, 129, 149, 140, 150, 186, 0, 0, 0,
691 162, 0, 9, 420, 421, 419, 422, 166, 423, 6,
692 17, 18, 254, 250, 252, 0, 0, 0, 32, 33,
693 35, 34, 425, 0, 0, 0, 450, 441, 164, 451,
694 450, 165, 0, 0, 248, 300, 0, 0, 174, 130,
695 0, 16, 0, 15, 0, 151, 140, 152, 156, 155,
696 138, 187, 274, 258, 274, 262, 265, 267, 11, 90,
697 91, 108, 60, 61, 0, 0, 0, 0, 36, 38,
698 37, 0, 39, 40, 0, 559, 0, 0, 0, 110,
699 41, 42, 0, 0, 43, 62, 0, 0, 66, 46,
700 48, 92, 107, 0, 0, 103, 104, 105, 106, 298,
701 0, 296, 159, 0, 296, 191, 452, 0, 521, 522,
702 544, 545, 541, 525, 526, 527, 528, 529, 530, 531,
703 532, 533, 534, 535, 536, 537, 538, 539, 540, 542,
704 543, 0, 0, 523, 471, 495, 514, 518, 524, 519,
705 475, 0, 0, 432, 0, 0, 439, 448, 427, 0,
706 0, 0, 12, 0, 0, 31, 0, 410, 0, 0,
707 184, 234, 300, 0, 235, 0, 172, 130, 0, 226,
708 227, 0, 0, 139, 142, 169, 170, 141, 143, 171,
709 0, 0, 0, 255, 0, 259, 0, 263, 57, 58,
710 0, 52, 49, 0, 332, 0, 0, 0, 0, 0,
711 0, 51, 0, 0, 0, 53, 0, 55, 0, 0,
712 83, 81, 79, 0, 0, 0, 0, 0, 0, 0,
713 0, 0, 0, 0, 0, 101, 102, 0, 0, 44,
714 0, 109, 111, 0, 328, 320, 0, 50, 167, 300,
715 393, 0, 130, 294, 297, 157, 168, 299, 159, 295,
716 197, 198, 199, 196, 0, 189, 192, 426, 0, 549,
717 0, 498, 516, 497, 0, 520, 0, 498, 450, 0,
718 429, 479, 444, 0, 458, 479, 428, 301, 244, 243,
719 175, 176, 247, 0, 242, 0, 246, 0, 0, 29,
720 0, 339, 117, 340, 183, 185, 0, 0, 14, 0,
721 0, 23, 0, 184, 410, 0, 13, 27, 0, 0,
722 184, 282, 276, 129, 273, 129, 0, 274, 184, 274,
723 291, 292, 270, 289, 0, 0, 94, 93, 0, 558,
724 557, 560, 567, 562, 0, 563, 564, 0, 0, 10,
725 47, 0, 0, 89, 88, 0, 0, 0, 0, 77,
726 78, 76, 75, 74, 72, 73, 67, 68, 69, 70,
727 71, 100, 99, 0, 45, 0, 96, 0, 0, 321,
728 322, 95, 304, 0, 308, 0, 310, 0, 0, 393,
729 0, 160, 158, 0, 191, 44, 0, 0, 0, 472,
730 515, 399, 0, 547, 476, 437, 450, 458, 0, 0,
731 442, 447, 0, 0, 0, 0, 0, 414, 400, 129,
732 129, 412, 0, 401, 403, 411, 0, 245, 318, 0,
733 119, 114, 118, 0, 181, 232, 228, 173, 233, 21,
734 180, 229, 231, 0, 25, 0, 257, 339, 275, 339,
735 283, 0, 261, 0, 0, 271, 0, 270, 0, 64,
736 63, 0, 566, 568, 0, 565, 570, 569, 54, 56,
737 0, 0, 82, 80, 97, 98, 416, 0, 0, 0,
738 339, 0, 0, 126, 340, 313, 323, 303, 302, 394,
739 309, 311, 305, 307, 0, 188, 190, 90, 0, 0,
740 494, 514, 129, 0, 503, 499, 501, 0, 0, 517,
741 401, 0, 0, 434, 479, 445, 0, 433, 488, 491,
742 482, 0, 129, 129, 484, 481, 458, 457, 455, 456,
743 440, 458, 463, 460, 129, 129, 0, 449, 177, 398,
744 296, 296, 395, 396, 0, 413, 0, 0, 327, 30,
745 319, 325, 115, 129, 129, 146, 0, 0, 178, 230,
746 0, 277, 278, 284, 340, 280, 340, 184, 184, 293,
747 290, 184, 0, 0, 0, 0, 550, 0, 551, 552,
748 84, 87, 324, 0, 330, 128, 127, 317, 0, 331,
749 315, 340, 314, 0, 306, 193, 0, 195, 548, 496,
750 507, 296, 508, 504, 505, 473, 0, 477, 458, 0,
751 479, 430, 0, 0, 176, 0, 0, 0, 483, 0,
752 0, 464, 464, 459, 241, 300, 393, 130, 184, 184,
753 184, 300, 130, 184, 184, 0, 402, 404, 415, 326,
754 333, 122, 0, 123, 0, 146, 144, 203, 201, 200,
755 182, 22, 0, 26, 339, 184, 0, 256, 260, 266,
756 184, 59, 216, 90, 0, 213, 0, 215, 0, 268,
757 206, 212, 0, 0, 554, 556, 0, 561, 0, 553,
758 0, 417, 329, 0, 163, 0, 353, 337, 0, 0,
759 0, 0, 0, 0, 0, 0, 382, 450, 450, 374,
760 0, 0, 124, 129, 129, 346, 351, 0, 0, 343,
761 344, 347, 375, 345, 0, 0, 184, 184, 184, 0,
762 509, 546, 0, 438, 0, 479, 489, 492, 485, 443,
763 0, 467, 461, 465, 462, 304, 0, 410, 0, 405,
764 406, 407, 304, 0, 408, 409, 397, 0, 0, 145,
765 148, 147, 0, 179, 285, 0, 279, 130, 184, 264,
766 219, 0, 210, 65, 0, 205, 0, 218, 209, 555,
767 85, 0, 0, 339, 384, 0, 0, 380, 364, 365,
768 366, 0, 0, 0, 383, 0, 184, 348, 135, 0,
769 136, 0, 0, 335, 340, 334, 357, 0, 137, 194,
770 511, 512, 513, 506, 296, 435, 446, 0, 0, 0,
771 469, 0, 0, 239, 240, 236, 238, 0, 120, 121,
772 0, 184, 0, 286, 0, 0, 207, 208, 0, 0,
773 0, 385, 48, 0, 0, 0, 378, 367, 0, 372,
774 0, 381, 0, 133, 220, 0, 134, 223, 352, 339,
775 0, 0, 510, 479, 431, 487, 486, 490, 493, 468,
776 466, 237, 202, 288, 184, 214, 211, 336, 0, 338,
777 376, 358, 362, 0, 373, 0, 131, 0, 132, 0,
778 350, 341, 339, 0, 0, 287, 354, 339, 384, 339,
779 379, 386, 0, 221, 224, 342, 356, 436, 339, 377,
780 0, 363, 0, 0, 387, 388, 368, 0, 0, 355,
781 359, 0, 386, 0, 0, 222, 225, 384, 0, 0,
782 369, 389, 0, 390, 0, 0, 360, 391, 0, 370,
783 339, 0, 0, 361, 371, 392, 0, 0, 0
786 static const short yydefgoto
[] = { 967,
787 1, 2, 3, 28, 29, 30, 343, 588, 349, 591,
788 200, 460, 697, 123, 236, 404, 125, 126, 127, 128,
789 129, 605, 130, 389, 388, 386, 711, 387, 131, 132,
790 133, 330, 331, 332, 583, 510, 511, 31, 341, 733,
791 450, 91, 584, 677, 451, 34, 142, 286, 35, 218,
792 206, 78, 201, 207, 683, 79, 587, 335, 336, 37,
793 295, 296, 297, 681, 783, 699, 700, 701, 856, 702,
794 792, 703, 704, 874, 908, 938, 877, 910, 939, 322,
795 210, 747, 211, 38, 39, 40, 41, 358, 360, 365,
796 227, 796, 487, 222, 223, 355, 593, 594, 363, 364,
797 144, 749, 145, 191, 285, 512, 513, 619, 333, 276,
798 409, 410, 411, 580, 581, 277, 134, 582, 737, 738,
799 739, 804, 825, 464, 826, 516, 740, 741, 880, 803,
800 929, 919, 948, 961, 920, 742, 743, 918, 744, 816,
801 864, 934, 935, 936, 959, 415, 416, 452, 666, 453,
802 454, 455, 325, 326, 456, 457, 508, 135, 43, 64,
803 44, 45, 46, 438, 756, 312, 639, 884, 545, 315,
804 557, 641, 47, 316, 69, 48, 443, 562, 444, 567,
805 763, 764, 49, 65, 302, 539, 66, 308, 543, 439,
806 440, 555, 648, 888, 556, 643, 839, 644, 840, 175,
807 430, 536, 537, 538, 750, 751, 304, 432, 176, 177,
808 178, 179, 180, 608, 609, 706, 610, 372, 136, 238,
809 492, 375, 376, 377, 137, 138, 139
812 static const short yypact
[] = { 118,
813 137, 3350, 3350, 190,-32768,-32768,-32768,-32768, 204, 204,
814 204, 104, 161, 189,-32768, 294,-32768,-32768, 294, 294,
815 -32768, 236, 294, 236, 294, 294,-32768,-32768,-32768,-32768,
816 226, 174, 2782, 382,-32768, 204,-32768, 135, 192, 208,
817 -32768, 3350,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
818 -32768,-32768, 204, 204, 204, 3019, 2851, 241,-32768,-32768,
819 -32768,-32768,-32768, 158, 3627, 3627, 346, 123,-32768,-32768,
820 236,-32768, 237, 294,-32768,-32768, 226, 249,-32768, 204,
821 870,-32768, 416,-32768, 226, 382,-32768, 204,-32768,-32768,
822 793,-32768, 238, 242, 238, 258,-32768, 266,-32768,-32768,
823 -32768,-32768,-32768,-32768, 3019, 3019, 300, 294,-32768,-32768,
824 -32768, 3019,-32768,-32768, 1277,-32768, 354, 357, 362,-32768,
825 -32768,-32768, 3019, 330, 371,-32768, 3075, 3131,-32768, 3955,
826 1125, 457, 403, 986, 3019,-32768,-32768,-32768,-32768,-32768,
827 411, 297,-32768, 413, 3751, 303,-32768, 294,-32768,-32768,
828 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
829 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
830 -32768, 188, 2179,-32768,-32768,-32768, 2741, 458,-32768,-32768,
831 -32768, 294, 294, 423, 294, 294,-32768,-32768,-32768, 421,
832 98, 52,-32768, 416, 226,-32768, 452,-32768, 2194, 498,
833 204,-32768,-32768, 416,-32768, 327,-32768, 204, 2082, 317,
834 329, 347, 2054, 793,-32768,-32768,-32768,-32768, 204,-32768,
835 454, 442, 3270,-32768, 444,-32768, 106,-32768,-32768,-32768,
836 3019,-32768,-32768, 464,-32768, 465, 466, 2907, 3657, 2179,
837 294,-32768, 455, 3019, 1277,-32768, 1277,-32768, 3019, 3019,
838 510,-32768,-32768, 3019, 3019, 3019, 3019, 3019, 3019, 3019,
839 3019, 3019, 3019, 3019, 3019,-32768,-32768, 294, 294, 3019,
840 3019,-32768,-32768, 473,-32768, 531, 486,-32768,-32768,-32768,
841 297, 2255, 204,-32768, 379, 907,-32768,-32768,-32768,-32768,
842 -32768,-32768,-32768,-32768, 41,-32768, 515,-32768, 2179,-32768,
843 493, 504, 567,-32768, 458,-32768, 353, 504, 236, 513,
844 -32768, 527, 519, 516,-32768, 527,-32768,-32768, 329,-32768,
845 -32768, 579, 329, 599,-32768, 3455,-32768, 524, 532,-32768,
846 1371, 80,-32768,-32768, 589, 204, 308, 182,-32768, 416,
847 416,-32768, 498, 204,-32768, 2316,-32768,-32768, 498, 560,
848 204,-32768,-32768,-32768, 551, 3296, 3563, 238, 204, 238,
849 -32768, 594, 552,-32768, 106, 3876,-32768,-32768, 2659,-32768,
850 -32768,-32768,-32768, 598, 558, 3657,-32768, 562, 568,-32768,
851 3955, 569, 570, 3955, 3955, 3019, 610, 3019, 3019, 1863,
852 912, 675, 1126, 1034, 535, 535, 63, 63,-32768,-32768,
853 -32768,-32768,-32768, 576, 371, 571,-32768, 294, 1191, 531,
854 -32768,-32768, 409, 185,-32768, 3485,-32768, 575, 297,-32768,
855 2377,-32768, 907, 577, 303, 3187, 583, 3692, 2140,-32768,
856 -32768, 3763, 2179,-32768,-32768, 573, 236,-32768, 601, 3427,
857 -32768,-32768, 449, 898, 602, 84, 586,-32768,-32768,-32768,
858 3829,-32768, 592, 364,-32768,-32768, 211,-32768,-32768, 83,
859 -32768,-32768,-32768, 2093,-32768, 317,-32768,-32768, 317,-32768,
860 634,-32768,-32768, 590,-32768, 600,-32768,-32768,-32768,-32768,
861 -32768, 604,-32768, 605, 3019, 294, 607, 552, 2179,-32768,
862 -32768, 3722,-32768,-32768, 598,-32768,-32768,-32768,-32768,-32768,
863 639, 3019, 1706, 1787,-32768,-32768,-32768, 435, 372, 1088,
864 609, 613, 1408,-32768,-32768,-32768,-32768, 379,-32768,-32768,
865 -32768, 379,-32768,-32768, 595,-32768,-32768, 246, 617, 294,
866 -32768, 2741, 624, 3513,-32768,-32768, 3829, 2168, 83,-32768,
867 591, 626, 83,-32768, 527,-32768, 476,-32768,-32768,-32768,
868 -32768, 226, 174, 2782, 399,-32768,-32768,-32768,-32768,-32768,
869 -32768,-32768,-32768,-32768,-32768, 3842, 627,-32768,-32768,-32768,
870 471, 93,-32768,-32768, 3817,-32768, 702, 623,-32768,-32768,
871 628,-32768,-32768, 632, 3314,-32768, 1895, 83,-32768,-32768,
872 83,-32768, 631,-32768,-32768, 631,-32768, 204, 204, 3955,
873 -32768, 204, 655, 658, 1654, 3019, 701, 659, 3722,-32768,
874 -32768, 1625,-32768, 294,-32768,-32768,-32768,-32768, 663,-32768,
875 -32768,-32768,-32768, 2521,-32768,-32768, 3019,-32768,-32768,-32768,
876 -32768, 471,-32768,-32768,-32768,-32768, 294,-32768,-32768, 680,
877 527,-32768, 3627, 3627, 206, 416, 226, 1983,-32768, 489,
878 3266, 314, 314,-32768,-32768,-32768, 93, 204, 261, 273,
879 204,-32768, 204, 273, 204, 3485,-32768,-32768,-32768,-32768,
880 -32768,-32768, 416,-32768, 226,-32768, 829,-32768,-32768, 3955,
881 -32768,-32768, 1895,-32768,-32768, 343, 343,-32768,-32768,-32768,
882 204,-32768,-32768, 708, 294,-32768, 711, 3955, 672, 670,
883 -32768,-32768, 143, 1818, 371,-32768, 3019,-32768, 701,-32768,
884 3019,-32768,-32768, 2603, 714, 694,-32768,-32768, 697, 698,
885 3019, 721, 684, 685, 2963, 227, 759, 212, 324,-32768,
886 727, 692,-32768, 695, 3543,-32768, 757, 1490, 99,-32768,
887 -32768,-32768,-32768,-32768, 2771, 270, 261, 273, 204, 456,
888 -32768,-32768, 572,-32768, 712, 527,-32768,-32768,-32768,-32768,
889 3019, 738, 699,-32768, 699, 621, 471,-32768, 2438,-32768,
890 -32768,-32768, 735, 93,-32768,-32768,-32768, 474, 487, 829,
891 -32768,-32768, 1654,-32768,-32768, 3019,-32768, 73, 184,-32768,
892 -32768, 1654,-32768,-32768, 1736,-32768, 1972,-32768,-32768,-32768,
893 1625, 3019, 719,-32768, 3019, 3019, 3894,-32768,-32768,-32768,
894 -32768, 705, 3019, 706,-32768, 725, 204,-32768,-32768, 416,
895 -32768, 226, 1572,-32768,-32768,-32768,-32768, 3019,-32768,-32768,
896 -32768,-32768,-32768,-32768, 471,-32768,-32768, 723, 77, 77,
897 3955, 3019, 314, 397, 397,-32768,-32768, 707,-32768,-32768,
898 710, 3919, 3019,-32768, 713, 1972,-32768,-32768, 716, 3019,
899 778,-32768, 375, 724, 730, 3019,-32768,-32768, 733,-32768,
900 3019,-32768, 522,-32768, 95, 539,-32768, 479,-32768,-32768,
901 2603, 731,-32768, 527,-32768,-32768,-32768,-32768,-32768, 3955,
902 -32768,-32768,-32768,-32768, 3919,-32768,-32768,-32768, 741,-32768,
903 -32768,-32768,-32768, 3937,-32768, 48,-32768, 498,-32768, 498,
904 -32768,-32768,-32768, 737, 755,-32768,-32768,-32768, 3019,-32768,
905 -32768, 812, 743,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
906 747,-32768, 767, 64, 746,-32768,-32768, 623, 623,-32768,
907 -32768, 3019, 812, 751, 812,-32768,-32768, 3019, 753, 66,
908 -32768,-32768, 760,-32768, 599, 765,-32768, 457, 284,-32768,
909 -32768, 768, 599,-32768,-32768, 457, 839, 862,-32768
912 static const short yypgoto
[] = {-32768,
913 -32768,-32768,-32768, 105, -375,-32768,-32768,-32768,-32768,-32768,
914 -32768,-32768, -14,-32768, -56, 439, -226, 355,-32768,-32768,
915 -74,-32768, 596,-32768,-32768,-32768,-32768,-32768, 65, -310,
916 -32768, -313, 536,-32768,-32768, 358,-32768, 248, -46, 127,
917 15, 786,-32768, 202, 38, -26, -172, 606, 492, -244,
918 -602, -82, -181, -120,-32768,-32768,-32768, -262, 44, -32,
919 -32768, 460,-32768, 197,-32768, -672,-32768, 86,-32768, -631,
920 -32768,-32768, 186,-32768,-32768,-32768,-32768,-32768,-32768, -73,
921 -109, -502, 2,-32768,-32768,-32768, -78,-32768,-32768,-32768,
922 -32768,-32768, 400, -27,-32768, 533, 414, 216, 526, 407,
923 -24, -75, -159, -168, -236, 392,-32768,-32768, -239,-32768,
924 -32768,-32768, 496, -143,-32768, 326,-32768, -526,-32768,-32768,
925 -32768,-32768, -192, -449, -719, 396,-32768, 34,-32768,-32768,
926 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 35,-32768,
927 -817, -25,-32768, -22,-32768, 502,-32768, -353,-32768, 495,
928 497, 349, -306,-32768,-32768,-32768,-32768, 17,-32768, 903,
929 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
930 -32768,-32768,-32768,-32768, -9, 5, -355,-32768, 368,-32768,
931 280, 91,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -300,
932 -32768,-32768,-32768, 97, 380,-32768,-32768,-32768,-32768, -23,
933 630,-32768,-32768, 404,-32768, 107, 408,-32768, 518, 520,
934 -140,-32768, -127,-32768,-32768, 240, 341,-32768,-32768,-32768,
935 -32768,-32768,-32768, 597,-32768,-32768,-32768
942 static const short yytable
[] = { 124,
943 141, 63, 212, 92, 67, 68, 86, 334, 71, 209,
944 63, 74, 220, 446, 72, 445, 32, 32, 42, 42,
945 92, 92, 92, 94, 96, 98, 70, 344, 70, 470,
946 229, 230, 81, 195, 337, 475, 305, 233, 472, 33,
947 33, 422, 181, 405, 414, 36, 36, 92, 242, 306,
948 354, 670, 53, 54, 55, 92, 32, 184, 42, 190,
949 278, 188, 520, 356, 551, 624, 284, 225, 659, 290,
950 778, 70, 799, 321, 80, 70, 88, 886, 192, 33,
951 -113, 471, 547, 578, 861, 36, 213, 922, 477, 462,
952 237, 461, 272, 232, 338, 75, 483, 736, 374, 827,
953 75, 931, 14, 943, 318, 955, 361, 50, 59, 60,
954 851, 413, 198, 199, 263, 264, 265, -1, 424, 855,
955 80, 197, 14, 425, -176, 923, 208, 14, 80, 320,
956 953, 294, -176, 298, 219, 220, -2, 59, 60, 334,
957 344, 944, 328, 956, 662, 686, 99, 687, 301, 76,
958 334, -185, -185, 657, 282, 887, 334, 300, 77, 828,
959 911, 569, 185, -113, 56, 858, 579, 309, 310, 514,
960 313, 314, 714, -176, 61, 92, 518, -176, 422, 62,
961 797, 371, 522, 186, 354, 283, 92, 736, 283, 535,
962 59, 60, 319, 926, 59, 60, 323, 356, 930, 405,
963 932, 650, 695, 61, 147, 192, 187, 220, 62, 940,
964 59, 60, 362, 14, 406, 378, 515, 873, 93, 468,
965 382, 57, 383, 853, 897, 418, 379, 466, 75, 59,
966 60, 469, 197, 14, 80, 495, 419, 208, 80, 357,
967 148, 964, 345, 346, 640, 420, 421, 208, 299, 58,
968 92, -35, 82, 402, 403, 14, 61, 219, 16, 467,
969 61, 62, 519, 844, 845, 62, 198, 199, 51, 52,
970 616, 565, 759, 621, 427, 95, 61, 76, 813, 83,
971 85, 62, 16, 753, 566, 595, 77, 597, 576, 474,
972 14, 97, 434, 577, 491, 61, 59, 60, 635, 436,
973 62, 146, 14, 92, 221, 59, 60, 291, 292, 293,
974 75, 202, 777, 70, 318, 189, 75, 202, 515, 148,
975 622, 768, 769, 626, 283, 224, 14, 193, 627, 501,
976 482, 194, 484, 198, 199, 688, 689, 14, 319, 690,
977 755, 226, 323, 14, 220, 75, 202, 830, 280, 228,
978 362, 607, 244, 761, 736, 59, 60, 281, 282, 203,
979 231, 962, 61, -34, 525, 203, 963, 62, 204, 36,
980 16, 61, 14, 357, 204, 881, 62, 345, 346, 705,
981 208, 205, 786, 208, 208, 182, 89, 205, 90, 198,
982 199, 305, 16, 507, 203, 636, 770, 771, 772, 638,
983 746, 775, 776, 204, 306, 339, 183, 243, 542, 340,
984 294, 946, 947, 433, 239, 318, 205, 240, 75, 202,
985 414, 61, 241, 787, 86, 347, 62, 546, 790, 194,
986 266, 267, 782, 268, 269, 270, 271, 585, 14, 420,
987 421, 70, 574, 533, 682, 14, 575, 684, 549, 550,
988 459, 615, 901, 244, 553, 838, 283, 768, 769, 36,
989 280, 846, 283, -480, 604, 272, 534, 203, 709, 281,
990 282, 362, 36, 75, 655, 36, 204, 554, 565, 273,
991 705, 246, 248, 36, 831, 832, 833, 766, 279, 205,
992 287, 566, 597, 773, 88, 661, 665, 307, 329, 317,
993 14, -339, -339, -339, -339, 197, 311, 86, -176, -339,
994 -339, -339, 324, 613, 350, 629, -176, 614, 558, 559,
995 560, 351, 656, 359, 87, -339, 854, 86, 561, 518,
996 522, 657, 282, 380, 834, 782, 518, 522, 835, 198,
997 199, 367, 368, 369, -339, 558, 559, 560, 143, -86,
998 407, 533, 849, 645, 872, 642, 340, -176, 558, 559,
999 560, -176, 408, 412, 212, 850, -339, 732, 760, 194,
1000 428, -339, 660, 664, 534, 426, 431, 88, 762, 762,
1001 36, -112, 429, 915, 261, 262, 263, 264, 265, 894,
1002 437, -478, 779, 442, 924, 80, 925, 88, 220, 712,
1003 907, 478, 441, 480, 340, 197, 143, 102, 458, 731,
1004 459, 767, 789, 789, 658, 663, 774, 909, 36, 757,
1005 758, 194, 752, 75, 655, 92, 465, 318, 476, 479,
1006 92, 485, 916, 748, 486, 494, 289, 493, 734, 497,
1007 745, 558, 559, 560, 958, 498, 499, 500, 645, 502,
1008 14, 836, 966, 505, 526, 506, 544, 732, 192, 521,
1009 530, 735, 553, 570, 143, 548, 568, 36, 812, 573,
1010 278, 589, 656, 575, 590, 658, 645, 592, 611, 625,
1011 791, 657, 282, 598, 599, 554, 602, 552, -316, 208,
1012 80, 36, 620, 344, 628, 208, 208, 571, 572, 731,
1013 663, 220, 631, 637, 669, 654, 579, 275, 86, 36,
1014 672, 814, 848, 685, 143, 334, 208, 334, 80, 72,
1015 257, 258, 259, 260, 261, 262, 263, 264, 265, 788,
1016 208, 143, 70, 70, 691, 692, 143, 75, 143, 876,
1017 707, 318, 713, 708, 754, 859, 875, -32, 862, 865,
1018 793, 794, 795, -33, 802, 92, 869, 805, 806, 734,
1019 808, 745, 809, 810, 14, 815, 817, 319, 323, 762,
1020 818, 882, 823, 819, 319, 323, 837, 842, 88, 860,
1021 632, 843, 735, 868, 870, 871, 662, 885, 36, 893,
1022 143, 892, 896, 898, 900, 657, 282, 215, 216, 217,
1023 646, 647, 902, 899, 9, 10, 11, 903, 914, 658,
1024 658, 905, 652, 653, 906, 927, 663, 663, 917, 928,
1025 933, 937, 14, 878, 732, 941, 366, 942, 945, 951,
1026 954, 673, 675, 781, 216, 217, 748, 957, 968, 381,
1027 9, 10, 11, 960, 384, 385, 965, 289, 143, 390,
1028 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
1029 401, 969, 862, 208, 529, 80, 731, 463, 617, 863,
1030 196, 829, 214, -28, -28, -28, -28, 780, 658, 784,
1031 857, -28, -28, -28, 527, 949, 208, 603, 798, 481,
1032 488, 862, 601, 596, 423, 552, 197, -28, 563, -176,
1033 785, 5, 618, 7, 140, 517, 671, -176, 623, 9,
1034 10, 11, 216, 217, 912, 913, -28, 950, 9, 10,
1035 11, 523, 952, 668, 143, 13, 540, 73, 541, 651,
1036 198, 199, 765, 891, 649, 143, 889, 435, -28, 630,
1037 634, 883, 87, -28, 16, 531, 800, 532, -176, 710,
1038 0, 0, -176, -28, 0, 586, 256, 257, 258, 259,
1039 260, 261, 262, 263, 264, 265, 22, -454, -454, -454,
1040 0, 24, 496, 0, 0, 0, 564, -454, 0, 0,
1041 143, 820, 822, 503, 504, 0, 274, 0, -319, -319,
1042 -319, -319, -319, -319, -319, 0, -319, -319, -319, -319,
1043 -319, 0, -319, -319, -319, -319, -319, -319, -319, -319,
1044 -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
1045 -319, 0, 0, 0, 0, 87, 0, -319, 0, 0,
1046 -319, 0, -319, 0, 0, -319, -319, -319, 0, 0,
1047 0, -319, -319, 0, 0, 87, -319, -319, 0, 0,
1048 0, -319, 0, -319, -319, 0, 0, 289, -319, -319,
1049 0, 0, -319, 0, -319, 275, -319, -319, 0, -319,
1050 0, 0, 0, 0, 0, 0, 676, 0, 0, 0,
1051 600, 259, 260, 261, 262, 263, 264, 265, 329, 0,
1052 -125, -125, -125, -125, -125, -125, -125, 612, -125, -125,
1053 -125, -125, -125, 0, -125, -125, -125, -125, -125, -125,
1054 -125, -125, -125, -125, -125, -125, -125, -125, -125, 0,
1055 -125, -125, -125, 0, 0, 0, 0, 0, 0, -125,
1056 0, 0, -125, 0, -125, 0, 0, -125, -125, -125,
1057 0, 0, 143, -125, -125, 0, 0, 0, -125, -125,
1058 0, 0, 0, -125, 0, -125, -125, 0, 0, 0,
1059 -125, -125, 0, 0, -125, 0, -125, -125, -125, -125,
1060 0, -125, 258, 259, 260, 261, 262, 263, 264, 265,
1061 266, 267, 680, 268, 269, 270, 271, 0, 0, 0,
1062 0, 509, 0, -339, -339, -339, -339, -339, -339, -339,
1063 698, -339, -339, -339, -339, -339, 0, -339, -339, -339,
1064 -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
1065 -339, -339, 0, -339, -339, -339, 87, 0, 0, 0,
1066 0, 0, -339, 0, 0, -339, 0, -339, 0, 0,
1067 -339, -339, -339, 0, 0, 0, -339, -339, 0, 0,
1068 0, -339, -339, 0, 0, 0, -339, 0, -339, -339,
1069 0, 0, 0, -339, -339, 0, 0, -339, 0, -339,
1070 0, -339, -339, 0, -339, 0, 0, 234, 680, 100,
1071 5, 0, 7, 140, 101, 102, 0, 103, 9, 10,
1072 11, 0, 0, 0, 0, 0, 0, 0, 0, 698,
1073 0, 0, 0, 0, 13, 104, 801, 15, 0, 105,
1074 106, 107, 0, 0, 0, 0, 807, 0, 108, 0,
1075 0, 109, 0, 16, 0, 0, 110, 111, 112, 0,
1076 0, 0, 113, 114, 0, 0, 0, 115, 116, 0,
1077 0, 0, 117, 0, 118, 22, 0, 0, 0, 119,
1078 24, 0, 0, 120, 0, 0, 841, 121, 122, 0,
1079 235, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1080 0, 329, 0, 0, -116, -116, -116, -116, 698, 0,
1081 -116, 852, -116, -116, -116, 0, 0, 698, 0, 0,
1082 698, 0, 698, 0, 0, 0, 0, 0, -116, 0,
1083 0, 0, 0, 0, 0, 0, 0, 0, 329, 0,
1084 -339, -339, 0, 0, 0, -339, -339, -116, -339, 0,
1085 0, 0, -339, 0, -339, -339, -339, -339, -339, -339,
1086 -339, -339, -339, -339, -339, 0, -339, 890, -339, -116,
1087 -339, -339, -339, 0, -116, 0, 0, 0, 895, -339,
1088 0, 698, -339, 0, -116, 0, 0, -339, -339, -339,
1089 0, 904, 0, -339, -339, 0, 0, 0, -339, -339,
1090 0, 0, 0, -339, 0, -339, -339, 0, 0, 0,
1091 -339, -339, 0, 0, -339, 0, -339, -312, -339, -339,
1092 824, -339, -339, -339, 0, 0, 0, -339, -339, 0,
1093 -339, 0, 0, 0, -339, 0, -339, -339, -339, -339,
1094 -339, -339, -339, -339, -339, -339, -339, 0, -339, 0,
1095 -339, 0, -339, -339, -339, 0, 0, 0, 0, 0,
1096 0, -339, 0, 0, -339, 0, 0, 0, 0, -339,
1097 -339, -339, 0, 0, 0, -339, -339, 0, 0, 0,
1098 -339, -339, 0, 0, 0, -339, 0, -339, -339, 0,
1099 0, 0, -339, -339, 0, 0, -339, 0, -339, 0,
1100 -339, -339, 879, -339, -349, -349, 0, 0, 0, -349,
1101 -349, 0, -349, 0, 0, 0, -349, 0, -349, -349,
1102 -349, -349, -349, -349, -349, -349, -349, -349, -349, 0,
1103 -349, 0, -349, 0, -349, -349, -349, 0, 0, 0,
1104 0, 0, 0, -349, 0, 0, -349, 0, 0, 0,
1105 0, -349, -349, -349, 0, 0, 0, -349, -349, 0,
1106 0, 0, -349, -349, 0, 0, 0, -349, 0, -349,
1107 -349, 0, 0, 0, -349, -349, 0, 0, -349, 0,
1108 -349, 0, -349, -349, 693, -349, 694, 60, 0, 0,
1109 0, 101, 102, 251, 103, 252, 253, 254, 255, 256,
1110 257, 258, 259, 260, 261, 262, 263, 264, 265, 0,
1111 0, 0, 104, 0, 15, 0, 105, 106, 107, 0,
1112 0, 0, 0, 0, 0, 108, 0, 0, 109, 0,
1113 0, 0, 0, 110, 111, 112, 0, 0, 0, 113,
1114 114, 0, 0, 695, 115, 116, 0, 0, 0, 117,
1115 0, 118, 61, 0, 0, 0, 119, 62, 0, 0,
1116 120, 0, 0, -204, 121, 122, 693, 696, 694, 60,
1117 0, 0, 0, 101, 102, 0, 103, 253, 254, 255,
1118 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1119 0, 0, 0, 0, 104, 0, 15, 0, 105, 106,
1120 107, 0, 0, 0, 0, 0, 0, 108, 0, 0,
1121 109, 0, 0, 0, 0, 110, 111, 112, 0, 0,
1122 0, 113, 114, 0, 0, 695, 115, 116, 0, 0,
1123 0, 117, 0, 118, 61, 0, 0, 0, 119, 62,
1124 0, 0, 120, 0, 0, -269, 121, 122, 693, 696,
1125 100, 0, 0, 0, 0, 101, 102, 0, 103, 254,
1126 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1127 265, 0, 0, 0, 0, 0, 104, 0, 15, 0,
1128 105, 106, 107, 0, 0, -217, 0, 0, 0, 108,
1129 0, 0, 109, 0, 0, 0, 0, 110, 111, 112,
1130 0, 0, 0, 113, 114, 0, 0, -217, 115, 116,
1131 0, 0, 0, 117, 0, 118, 0, 0, 0, 0,
1132 119, 0, 0, 0, 120, 678, 0, 100, 121, 122,
1133 0, 696, 101, 102, 0, 103, 255, 256, 257, 258,
1134 259, 260, 261, 262, 263, 264, 265, 0, 0, 0,
1135 0, 0, 0, 104, 0, 15, 0, 105, 106, 107,
1136 0, 0, 0, 0, 0, 0, 108, 0, 0, 109,
1137 0, 0, 0, 0, 110, 111, 112, 0, 0, 0,
1138 113, 114, 0, 0, 0, 115, 116, 0, 0, 0,
1139 117, 0, 118, 0, 0, 0, 0, 119, 0, 0,
1140 0, 120, 693, 0, 100, 121, 122, 0, 679, 101,
1141 102, 0, 103, 4, 0, -129, 5, 6, 7, 8,
1142 0, 0, 0, 0, 9, 10, 11, 0, 0, 0,
1143 104, 0, 15, 0, 105, 106, 107, 0, 0, 0,
1144 13, 0, 14, 108, 0, 0, 109, 0, 0, 0,
1145 0, 110, 111, 112, 0, 0, 0, 113, 114, 16,
1146 0, 0, 115, 116, -129, 0, 0, 117, 0, 118,
1147 0, 0, 0, -129, 119, 0, 0, 0, 120, 0,
1148 0, 22, 121, 122, 348, 696, 24, -24, -24, -24,
1149 -24, 27, 0, 0, 0, -24, -24, -24, 0, 0,
1150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1151 197, -24, 342, -176, 0, -20, -20, -20, -20, 0,
1152 0, -176, 0, -20, -20, -20, 5, 6, 7, 8,
1153 -24, 0, 0, 0, 9, 10, 11, 0, 197, -20,
1154 0, -176, 0, 0, 198, 199, 0, 0, 0, -176,
1155 13, 0, -24, 0, 0, 0, 0, -24, -20, 0,
1156 0, 0, -176, 0, 0, 0, -176, -24, 0, 16,
1157 329, 0, 0, 5, 6, 7, 8, 0, 0, 0,
1158 -20, 9, 10, 11, 0, -20, 0, 0, 0, 0,
1159 -176, 22, 0, 0, -176, -20, 24, 13, 329, 14,
1160 0, -502, -502, -502, -502, 0, 0, 0, 0, -502,
1161 -502, -502, 5, 0, 7, 140, 16, 0, 0, 0,
1162 9, 10, 11, 0, 0, -502, 100, -502, 0, 0,
1163 0, 101, 102, 0, 103, 0, 13, 0, 22, 0,
1164 0, 0, 0, 24, -502, 0, 0, 0, 0, 0,
1165 0, 0, 104, -500, 15, 16, 105, 106, 107, 0,
1166 0, 0, 0, 0, 0, 108, -502, 0, 109, 0,
1167 0, -502, 0, 110, 111, 112, 0, 22, 0, 113,
1168 114, -502, 24, 0, 115, 116, 0, 100, 0, 117,
1169 0, 118, 101, 102, 0, 103, 119, 0, 0, 0,
1170 120, 0, 0, 0, 121, 122, 0, 0, 327, 0,
1171 0, 0, 0, 104, 0, 15, 0, 105, 106, 107,
1172 0, 0, 0, 0, 0, 0, 108, 0, 0, 109,
1173 0, 0, 0, 0, 110, 111, 112, 0, 0, 0,
1174 113, 114, 0, 0, 0, 115, 116, 0, 100, 0,
1175 117, 0, 118, 101, 102, 0, 103, 119, 0, 0,
1176 0, 120, 0, 0, 0, 121, 122, 0, 0, 417,
1177 0, 0, 0, 0, 104, 0, 15, 0, 105, 106,
1178 107, 0, 0, 0, 0, 0, 0, 108, 0, 0,
1179 109, 0, 0, 0, 0, 110, 111, 112, 0, 0,
1180 0, 113, 114, 0, 0, 0, 115, 116, 0, 100,
1181 0, 117, 0, 118, 101, 102, 0, 103, 119, 0,
1182 0, 0, 120, 0, 0, 0, 121, 122, 0, 0,
1183 473, 0, 0, 0, 0, 104, 0, 15, 0, 105,
1184 106, 107, 0, 0, 0, 0, 0, 0, 108, 0,
1185 0, 109, 0, 0, 0, 0, 110, 111, 112, 0,
1186 0, 0, 113, 114, 0, 0, 0, 115, 116, 0,
1187 100, 0, 117, 0, 118, 101, 102, 0, 103, 119,
1188 0, 0, 0, 120, 0, 0, 0, 121, 122, 0,
1189 0, 524, 0, 0, 0, 0, 104, 0, 15, 0,
1190 105, 106, 107, 0, 0, 0, 0, 0, 0, 108,
1191 0, 0, 109, 0, 0, 0, 0, 110, 111, 112,
1192 0, 0, 0, 113, 114, 0, 0, 0, 115, 116,
1193 0, 0, 0, 117, 0, 118, 0, 0, 0, 0,
1194 119, 0, 0, 0, 120, 0, 0, 0, 121, 122,
1195 0, 0, 847, 694, 715, 6, 7, 8, 101, 102,
1196 0, 103, 9, 10, 11, 716, 0, 717, 718, 719,
1197 720, 721, 722, 723, 724, 725, 726, 727, 13, 104,
1198 14, 15, 0, 105, 106, 107, 0, 0, 0, 0,
1199 0, 0, 108, 0, 0, 109, 0, 16, 0, 0,
1200 110, 111, 112, 0, 0, 0, 113, 114, 0, 0,
1201 0, 115, 116, 0, 0, 0, 117, 0, 118, 728,
1202 0, 0, 0, 119, 729, 0, 0, 120, 0, 730,
1203 0, 121, 122, 0, 579, 694, 60, 0, 0, 0,
1204 101, 102, 0, 103, 0, 0, 0, 716, 0, 717,
1205 718, 719, 720, 721, 722, 723, 724, 725, 726, 727,
1206 0, 104, 0, 15, 0, 105, 106, 107, 0, 0,
1207 0, 0, 0, 0, 108, 0, 0, 109, 0, 0,
1208 0, 0, 110, 111, 112, 0, 0, 0, 113, 114,
1209 0, 100, 0, 115, 116, 0, 101, 102, 117, 103,
1210 118, 61, 0, 0, 0, 119, 62, 0, 0, 120,
1211 0, 730, 0, 121, 122, 0, 579, 104, 0, 15,
1212 0, 105, 106, 107, 0, 0, 0, 0, 0, 0,
1213 108, 0, 0, 109, 0, 0, 0, 0, 110, 111,
1214 112, 0, 0, 0, 113, 114, 0, 0, 0, 115,
1215 116, 0, 0, 0, 117, 0, 118, 0, 0, 0,
1216 0, 119, 0, 0, 0, 120, 0, 0, 0, 121,
1217 122, 0, 490, 149, 150, 0, 151, 152, 0, 0,
1218 0, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1219 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1220 0, 0, 0, 100, 5, 6, 7, 8, 101, 102,
1221 172, 103, 9, 10, 11, 5, 6, 7, 8, 0,
1222 0, 0, 0, 9, 10, 11, 0, 0, 13, 104,
1223 14, 15, 0, 105, 106, 107, 0, 0, 0, 13,
1224 0, 14, 108, 0, 174, 109, 0, 16, 0, 0,
1225 110, 111, 112, 303, 0, 0, 113, 114, 16, 0,
1226 0, 115, 116, 0, 0, 0, 117, 0, 118, 22,
1227 0, 0, 0, 119, 24, 0, 0, 120, 0, 0,
1228 22, 121, 122, 100, 5, 24, 7, 140, 101, 102,
1229 84, 103, 9, 10, 11, 0, 0, 0, 0, 0,
1230 0, 0, 0, 0, 0, 0, 0, 0, 13, 104,
1231 0, 15, 0, 105, 106, 107, 0, 0, 0, 0,
1232 0, 0, 108, 0, 0, 109, 0, 16, 0, 0,
1233 110, 111, 112, 0, 0, 0, 113, 114, 0, 100,
1234 0, 115, 116, 0, 101, 102, 117, 103, 118, 22,
1235 0, 0, 0, 119, 24, 0, 0, 120, 0, 0,
1236 0, 121, 122, 0, 0, 104, 0, 15, 0, 105,
1237 106, 107, 0, 0, 0, 0, 0, 0, 108, 0,
1238 0, 109, 0, 0, 0, 0, 110, 111, 112, 0,
1239 0, 0, 113, 114, 0, 100, 0, 115, 116, 0,
1240 101, 102, 117, 103, 118, 370, 0, 0, 0, 119,
1241 0, 0, 0, 120, 0, 0, 0, 121, 122, 0,
1242 0, 104, 0, 15, 0, 105, 106, 107, 0, 0,
1243 0, 0, 0, 0, 108, 0, 0, 109, 0, 0,
1244 0, 0, 110, 111, 112, 0, 0, 0, 113, 114,
1245 0, 100, 0, 115, 116, 0, 101, 102, 117, 103,
1246 118, 0, 0, 0, 0, 119, 0, 0, 0, 120,
1247 0, 811, 0, 121, 122, 0, 0, 104, 0, 15,
1248 0, 105, 106, 107, 0, 0, 0, 0, 0, 0,
1249 108, 0, 0, 109, 0, 0, 0, 0, 110, 111,
1250 112, 0, 0, 0, 113, 114, 0, 100, 0, 115,
1251 116, 0, 101, 102, 117, 103, 118, 0, 0, 0,
1252 0, 119, 0, 0, 0, 120, 0, 0, 0, 121,
1253 122, 0, 0, 104, 0, 15, 0, 105, 106, 107,
1254 0, 0, 0, 0, 0, 0, 108, 0, 0, 109,
1255 0, 0, 0, 0, 110, 111, 112, 0, 0, 0,
1256 113, 114, 0, 100, 0, 245, 116, 0, 101, 102,
1257 117, 103, 118, 0, 0, 0, 0, 119, 0, 0,
1258 0, 120, 0, 0, 0, 121, 122, 0, 0, 104,
1259 0, 15, 0, 105, 106, 107, 0, 0, 0, 0,
1260 0, 0, 108, 0, 0, 109, 0, 0, 0, 0,
1261 110, 111, 112, 0, 0, 0, 113, 114, 0, 528,
1262 0, 247, 116, 0, 101, 102, 117, 103, 118, 0,
1263 0, 0, 0, 119, 0, 0, 0, 120, 0, 0,
1264 0, 121, 122, 0, 0, 104, 0, 15, 0, 105,
1265 106, 107, 0, 0, 0, 0, 0, 0, 108, 0,
1266 0, 109, 0, 0, 0, 0, 110, 111, 112, 0,
1267 0, 0, 113, 114, 0, 0, 0, 115, 116, 0,
1268 0, 0, 117, 0, 118, 0, 0, 0, 0, 119,
1269 0, 0, 0, 120, 0, 0, 563, 121, 122, 5,
1270 352, 7, 140, 5, 0, 7, 140, 9, 10, 11,
1271 0, 9, 10, 11, 0, 0, 0, 0, 0, 0,
1272 0, 0, 0, 13, 0, 0, 0, 13, 0, 5,
1273 15, 7, 288, 0, 0, 0, 0, 9, 10, 11,
1274 0, 0, 16, 0, 0, 0, 16, 5, 89, 7,
1275 90, 0, 0, 13, 0, 9, 10, 11, 0, 0,
1276 0, 0, 0, 0, 22, -453, -453, -453, 22, 24,
1277 0, 13, 16, 24, 564, -453, 0, 0, 353, -272,
1278 4, 0, -129, 5, 6, 7, 8, 0, 0, 0,
1279 16, 9, 10, 11, 22, 0, 0, 0, 0, 24,
1280 0, 0, 0, 0, -281, -281, 12, 13, 0, 14,
1281 15, 0, 22, 0, 0, 0, 0, 24, 0, 0,
1282 0, 0, 674, 0, 0, 0, 16, 0, 0, 17,
1283 18, -129, 0, 0, 0, 0, 0, 0, 0, 0,
1284 -129, 0, 19, 20, 21, 0, 0, 0, 22, 0,
1285 0, 0, 23, 24, 25, 26, 0, 4, 27, -129,
1286 5, 6, 7, 8, 0, 0, 0, 0, 9, 10,
1287 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1288 0, 0, 0, 0, 13, 447, 14, 448, 5, 6,
1289 7, 8, 0, 0, 449, 0, 9, 10, 11, 0,
1290 0, 0, 0, 16, 0, 0, 549, 550, -129, 0,
1291 0, 0, 13, 0, 14, 447, 0, -129, 5, 6,
1292 7, 8, 0, 0, 449, 22, 9, 10, 11, 0,
1293 24, 16, 0, 0, 0, 27, 0, 0, 0, 0,
1294 0, 0, 13, 0, 14, 0, 5, 6, 7, 8,
1295 0, 0, 0, 22, 9, 10, 11, 0, 24, 0,
1296 0, 16, -399, 0, 0, 0, 0, 0, 0, 0,
1297 13, 0, 14, 0, 0, 0, 5, 6, 7, 8,
1298 0, 0, 0, 22, 9, 10, 11, 0, 24, 16,
1299 0, 0, -399, 352, 0, 0, 5, 0, 7, 140,
1300 13, 0, 14, 0, 9, 10, 11, 0, 0, 0,
1301 0, 22, 0, 0, 0, 0, 24, 0, 0, 16,
1302 13, 633, 0, 15, 0, 0, 0, 0, 0, 0,
1303 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
1304 0, 22, 0, 0, 0, 0, 24, 0, 0, 0,
1305 0, 821, 0, 0, 0, 0, 0, 0, 0, 149,
1306 150, 22, 151, 152, 0, 0, 24, 153, 154, 155,
1307 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1308 166, 167, 168, 169, 170, 171, 0, 0, 0, 149,
1309 150, 0, 151, 152, 0, 0, 172, 153, 154, 155,
1310 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1311 166, 167, 168, 169, 170, 171, 0, 173, 0, 0,
1312 0, 0, 0, 0, 149, 150, 373, 151, 152, 0,
1313 174, 0, 153, 154, 155, 156, 157, 158, 159, 160,
1314 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
1315 171, 0, 0, 0, 149, 150, 0, 151, 152, 0,
1316 174, 172, 153, 154, 155, 156, 157, 158, 159, 160,
1317 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
1318 171, 0, 0, 0, 5, 0, 7, 288, 0, 0,
1319 0, 606, 9, 10, 11, 174, 5, 6, 7, 8,
1320 0, 0, 449, 0, 9, 10, 11, 0, 13, 0,
1321 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1322 13, 0, 14, 0, 0, 174, 0, 16, 0, 0,
1323 0, 0, 280, 0, 0, 0, 0, 0, 0, 16,
1324 0, 281, 282, 0, 0, 0, 0, 0, 0, 22,
1325 5, 6, 7, 8, 24, 0, 667, 0, 9, 10,
1326 11, 22, 5, 6, 7, 8, 24, 0, 0, 0,
1327 9, 10, 11, 0, 13, 5, 14, 7, 288, 0,
1328 0, 0, 0, 9, 10, 11, 13, 0, 14, 0,
1329 0, 0, 0, 16, 0, 0, 0, 0, 0, 13,
1330 0, 0, 0, 0, 0, 16, 0, 0, 0, 0,
1331 0, 0, 0, 0, 0, 22, 0, 0, 16, 0,
1332 24, 0, 0, 0, 0, 0, 0, 22, 0, 0,
1333 0, 0, 24, 866, 0, 0, 0, 0, 0, 0,
1334 22, 0, 249, 250, 251, 24, 252, 253, 254, 255,
1335 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1336 249, 250, 251, 867, 252, 253, 254, 255, 256, 257,
1337 258, 259, 260, 261, 262, 263, 264, 265, 14, 0,
1338 0, 0, 0, 0, 0, 249, 250, 251, 489, 252,
1339 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
1340 263, 264, 265, 249, 250, 251, 921, 252, 253, 254,
1341 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1342 265, 249, 250, 251, 0, 252, 253, 254, 255, 256,
1343 257, 258, 259, 260, 261, 262, 263, 264, 265
1346 static const short yycheck
[] = { 56,
1347 57, 16, 85, 36, 19, 20, 33, 200, 23, 83,
1348 25, 26, 91, 324, 24, 316, 2, 3, 2, 3,
1349 53, 54, 55, 38, 39, 40, 22, 209, 24, 343,
1350 105, 106, 31, 80, 203, 349, 177, 112, 345, 2,
1351 3, 286, 66, 270, 281, 2, 3, 80, 123, 177,
1352 223, 578, 9, 10, 11, 88, 42, 67, 42, 74,
1353 135, 71, 416, 223, 440, 515, 142, 95, 571, 145,
1354 673, 67, 704, 194, 31, 71, 33, 1, 77, 42,
1355 1, 344, 438, 1, 804, 42, 85, 40, 351, 10,
1356 115, 331, 9, 108, 204, 3, 359, 624, 239, 1,
1357 3, 919, 30, 40, 7, 40, 1, 3, 3, 4,
1358 783, 280, 61, 62, 52, 53, 54, 0, 78, 792,
1359 77, 27, 30, 83, 30, 78, 83, 30, 85, 78,
1360 948, 146, 38, 148, 91, 214, 0, 3, 4, 332,
1361 322, 78, 199, 78, 52, 595, 42, 597, 173, 52,
1362 343, 79, 80, 61, 62, 79, 349, 172, 61, 61,
1363 880, 78, 40, 84, 61, 797, 84, 182, 183, 409,
1364 185, 186, 622, 79, 69, 208, 413, 83, 423, 74,
1365 38, 238, 419, 61, 357, 142, 219, 714, 145, 429,
1366 3, 4, 191, 913, 3, 4, 195, 357, 918, 426,
1367 920, 557, 60, 69, 47, 204, 84, 286, 74, 929,
1368 3, 4, 227, 30, 271, 240, 409, 820, 84, 340,
1369 245, 61, 247, 40, 856, 282, 241, 337, 3, 3,
1370 4, 341, 27, 30, 191, 376, 283, 194, 195, 223,
1371 83, 961, 61, 62, 545, 61, 62, 204, 61, 61,
1372 283, 40, 79, 268, 269, 30, 69, 214, 47, 78,
1373 69, 74, 78, 766, 767, 74, 61, 62, 79, 80,
1374 510, 444, 648, 513, 299, 84, 69, 52, 52, 32,
1375 33, 74, 47, 639, 444, 478, 61, 480, 78, 346,
1376 30, 84, 307, 83, 369, 69, 3, 4, 538, 309,
1377 74, 61, 30, 336, 67, 3, 4, 5, 6, 7,
1378 3, 4, 666, 309, 7, 79, 3, 4, 511, 83,
1379 513, 61, 62, 78, 281, 84, 30, 79, 83, 386,
1380 358, 83, 360, 61, 62, 598, 599, 30, 337, 602,
1381 641, 84, 341, 30, 423, 3, 4, 78, 52, 84,
1382 365, 492, 83, 40, 881, 3, 4, 61, 62, 52,
1383 61, 78, 69, 40, 421, 52, 83, 74, 61, 326,
1384 47, 69, 30, 357, 61, 825, 74, 61, 62, 606,
1385 337, 74, 40, 340, 341, 40, 5, 74, 7, 61,
1386 62, 532, 47, 408, 52, 539, 659, 660, 661, 543,
1387 627, 664, 665, 61, 532, 79, 61, 78, 433, 83,
1388 425, 938, 939, 61, 61, 7, 74, 61, 3, 4,
1389 657, 69, 61, 686, 451, 79, 74, 437, 691, 83,
1390 56, 57, 677, 59, 60, 61, 62, 464, 30, 61,
1391 62, 437, 79, 429, 588, 30, 83, 591, 50, 51,
1392 79, 80, 78, 83, 440, 756, 413, 61, 62, 416,
1393 52, 768, 419, 65, 489, 9, 429, 52, 609, 61,
1394 62, 486, 429, 3, 4, 432, 61, 440, 651, 77,
1395 707, 127, 128, 440, 747, 748, 749, 656, 78, 74,
1396 78, 651, 685, 662, 451, 571, 572, 40, 1, 79,
1397 30, 4, 5, 6, 7, 27, 84, 534, 30, 12,
1398 13, 14, 61, 79, 61, 530, 38, 83, 70, 71,
1399 72, 80, 52, 80, 33, 28, 789, 554, 80, 766,
1400 767, 61, 62, 79, 79, 780, 773, 774, 83, 61,
1401 62, 78, 78, 78, 47, 70, 71, 72, 57, 40,
1402 78, 537, 79, 552, 817, 80, 83, 79, 70, 71,
1403 72, 83, 32, 78, 647, 79, 69, 624, 80, 83,
1404 78, 74, 571, 572, 537, 61, 10, 534, 652, 653,
1405 537, 84, 79, 884, 50, 51, 52, 53, 54, 852,
1406 78, 65, 675, 78, 908, 552, 910, 554, 677, 614,
1407 79, 354, 84, 356, 83, 27, 115, 9, 85, 624,
1408 79, 658, 686, 687, 571, 572, 663, 79, 575, 643,
1409 644, 83, 637, 3, 4, 658, 38, 7, 69, 79,
1410 663, 38, 895, 632, 83, 78, 145, 40, 624, 78,
1411 624, 70, 71, 72, 955, 78, 78, 78, 647, 40,
1412 30, 80, 963, 78, 78, 85, 84, 714, 657, 85,
1413 78, 624, 648, 78, 173, 65, 65, 624, 725, 78,
1414 745, 38, 52, 83, 85, 632, 675, 78, 40, 85,
1415 695, 61, 62, 80, 80, 648, 80, 440, 80, 646,
1416 647, 648, 80, 875, 78, 652, 653, 450, 451, 714,
1417 657, 780, 79, 78, 3, 79, 84, 80, 735, 666,
1418 79, 726, 769, 83, 223, 908, 673, 910, 675, 729,
1419 46, 47, 48, 49, 50, 51, 52, 53, 54, 686,
1420 687, 240, 728, 729, 80, 78, 245, 3, 247, 822,
1421 40, 7, 80, 85, 65, 802, 820, 40, 805, 806,
1422 40, 80, 83, 40, 61, 788, 813, 61, 61, 745,
1423 40, 745, 79, 79, 30, 7, 40, 766, 767, 843,
1424 79, 828, 16, 79, 773, 774, 65, 40, 735, 61,
1425 533, 83, 745, 79, 79, 61, 52, 65, 745, 80,
1426 299, 85, 80, 78, 17, 61, 62, 5, 6, 7,
1427 553, 554, 79, 860, 12, 13, 14, 78, 78, 766,
1428 767, 79, 565, 566, 871, 79, 773, 774, 78, 65,
1429 9, 79, 30, 822, 881, 79, 231, 61, 83, 79,
1430 78, 584, 585, 5, 6, 7, 835, 78, 0, 244,
1431 12, 13, 14, 79, 249, 250, 79, 356, 357, 254,
1432 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1433 265, 0, 919, 820, 426, 822, 881, 332, 511, 805,
1434 1, 745, 87, 4, 5, 6, 7, 676, 835, 683,
1435 795, 12, 13, 14, 425, 942, 843, 488, 703, 357,
1436 365, 948, 486, 480, 289, 648, 27, 28, 1, 30,
1437 685, 4, 511, 6, 7, 410, 581, 38, 513, 12,
1438 13, 14, 6, 7, 881, 881, 47, 943, 12, 13,
1439 14, 420, 945, 575, 433, 28, 432, 25, 432, 562,
1440 61, 62, 653, 843, 555, 444, 840, 308, 69, 532,
1441 537, 835, 451, 74, 47, 428, 707, 428, 79, 609,
1442 -1, -1, 83, 84, -1, 464, 45, 46, 47, 48,
1443 49, 50, 51, 52, 53, 54, 69, 70, 71, 72,
1444 -1, 74, 376, -1, -1, -1, 79, 80, -1, -1,
1445 489, 734, 735, 388, 389, -1, 1, -1, 3, 4,
1446 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
1447 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1448 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1449 35, -1, -1, -1, -1, 534, -1, 42, -1, -1,
1450 45, -1, 47, -1, -1, 50, 51, 52, -1, -1,
1451 -1, 56, 57, -1, -1, 554, 61, 62, -1, -1,
1452 -1, 66, -1, 68, 69, -1, -1, 566, 73, 74,
1453 -1, -1, 77, -1, 79, 80, 81, 82, -1, 84,
1454 -1, -1, -1, -1, -1, -1, 585, -1, -1, -1,
1455 485, 48, 49, 50, 51, 52, 53, 54, 1, -1,
1456 3, 4, 5, 6, 7, 8, 9, 502, 11, 12,
1457 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
1458 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1459 33, 34, 35, -1, -1, -1, -1, -1, -1, 42,
1460 -1, -1, 45, -1, 47, -1, -1, 50, 51, 52,
1461 -1, -1, 651, 56, 57, -1, -1, -1, 61, 62,
1462 -1, -1, -1, 66, -1, 68, 69, -1, -1, -1,
1463 73, 74, -1, -1, 77, -1, 79, 80, 81, 82,
1464 -1, 84, 47, 48, 49, 50, 51, 52, 53, 54,
1465 56, 57, 587, 59, 60, 61, 62, -1, -1, -1,
1466 -1, 1, -1, 3, 4, 5, 6, 7, 8, 9,
1467 605, 11, 12, 13, 14, 15, -1, 17, 18, 19,
1468 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1469 30, 31, -1, 33, 34, 35, 735, -1, -1, -1,
1470 -1, -1, 42, -1, -1, 45, -1, 47, -1, -1,
1471 50, 51, 52, -1, -1, -1, 56, 57, -1, -1,
1472 -1, 61, 62, -1, -1, -1, 66, -1, 68, 69,
1473 -1, -1, -1, 73, 74, -1, -1, 77, -1, 79,
1474 -1, 81, 82, -1, 84, -1, -1, 1, 683, 3,
1475 4, -1, 6, 7, 8, 9, -1, 11, 12, 13,
1476 14, -1, -1, -1, -1, -1, -1, -1, -1, 704,
1477 -1, -1, -1, -1, 28, 29, 711, 31, -1, 33,
1478 34, 35, -1, -1, -1, -1, 721, -1, 42, -1,
1479 -1, 45, -1, 47, -1, -1, 50, 51, 52, -1,
1480 -1, -1, 56, 57, -1, -1, -1, 61, 62, -1,
1481 -1, -1, 66, -1, 68, 69, -1, -1, -1, 73,
1482 74, -1, -1, 77, -1, -1, 761, 81, 82, -1,
1483 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1484 -1, 1, -1, -1, 4, 5, 6, 7, 783, -1,
1485 10, 786, 12, 13, 14, -1, -1, 792, -1, -1,
1486 795, -1, 797, -1, -1, -1, -1, -1, 28, -1,
1487 -1, -1, -1, -1, -1, -1, -1, -1, 1, -1,
1488 3, 4, -1, -1, -1, 8, 9, 47, 11, -1,
1489 -1, -1, 15, -1, 17, 18, 19, 20, 21, 22,
1490 23, 24, 25, 26, 27, -1, 29, 842, 31, 69,
1491 33, 34, 35, -1, 74, -1, -1, -1, 853, 42,
1492 -1, 856, 45, -1, 84, -1, -1, 50, 51, 52,
1493 -1, 866, -1, 56, 57, -1, -1, -1, 61, 62,
1494 -1, -1, -1, 66, -1, 68, 69, -1, -1, -1,
1495 73, 74, -1, -1, 77, -1, 79, 80, 81, 82,
1496 1, 84, 3, 4, -1, -1, -1, 8, 9, -1,
1497 11, -1, -1, -1, 15, -1, 17, 18, 19, 20,
1498 21, 22, 23, 24, 25, 26, 27, -1, 29, -1,
1499 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1500 -1, 42, -1, -1, 45, -1, -1, -1, -1, 50,
1501 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1502 61, 62, -1, -1, -1, 66, -1, 68, 69, -1,
1503 -1, -1, 73, 74, -1, -1, 77, -1, 79, -1,
1504 81, 82, 1, 84, 3, 4, -1, -1, -1, 8,
1505 9, -1, 11, -1, -1, -1, 15, -1, 17, 18,
1506 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
1507 29, -1, 31, -1, 33, 34, 35, -1, -1, -1,
1508 -1, -1, -1, 42, -1, -1, 45, -1, -1, -1,
1509 -1, 50, 51, 52, -1, -1, -1, 56, 57, -1,
1510 -1, -1, 61, 62, -1, -1, -1, 66, -1, 68,
1511 69, -1, -1, -1, 73, 74, -1, -1, 77, -1,
1512 79, -1, 81, 82, 1, 84, 3, 4, -1, -1,
1513 -1, 8, 9, 39, 11, 41, 42, 43, 44, 45,
1514 46, 47, 48, 49, 50, 51, 52, 53, 54, -1,
1515 -1, -1, 29, -1, 31, -1, 33, 34, 35, -1,
1516 -1, -1, -1, -1, -1, 42, -1, -1, 45, -1,
1517 -1, -1, -1, 50, 51, 52, -1, -1, -1, 56,
1518 57, -1, -1, 60, 61, 62, -1, -1, -1, 66,
1519 -1, 68, 69, -1, -1, -1, 73, 74, -1, -1,
1520 77, -1, -1, 80, 81, 82, 1, 84, 3, 4,
1521 -1, -1, -1, 8, 9, -1, 11, 42, 43, 44,
1522 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1523 -1, -1, -1, -1, 29, -1, 31, -1, 33, 34,
1524 35, -1, -1, -1, -1, -1, -1, 42, -1, -1,
1525 45, -1, -1, -1, -1, 50, 51, 52, -1, -1,
1526 -1, 56, 57, -1, -1, 60, 61, 62, -1, -1,
1527 -1, 66, -1, 68, 69, -1, -1, -1, 73, 74,
1528 -1, -1, 77, -1, -1, 80, 81, 82, 1, 84,
1529 3, -1, -1, -1, -1, 8, 9, -1, 11, 43,
1530 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1531 54, -1, -1, -1, -1, -1, 29, -1, 31, -1,
1532 33, 34, 35, -1, -1, 38, -1, -1, -1, 42,
1533 -1, -1, 45, -1, -1, -1, -1, 50, 51, 52,
1534 -1, -1, -1, 56, 57, -1, -1, 60, 61, 62,
1535 -1, -1, -1, 66, -1, 68, -1, -1, -1, -1,
1536 73, -1, -1, -1, 77, 1, -1, 3, 81, 82,
1537 -1, 84, 8, 9, -1, 11, 44, 45, 46, 47,
1538 48, 49, 50, 51, 52, 53, 54, -1, -1, -1,
1539 -1, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1540 -1, -1, -1, -1, -1, -1, 42, -1, -1, 45,
1541 -1, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1542 56, 57, -1, -1, -1, 61, 62, -1, -1, -1,
1543 66, -1, 68, -1, -1, -1, -1, 73, -1, -1,
1544 -1, 77, 1, -1, 3, 81, 82, -1, 84, 8,
1545 9, -1, 11, 1, -1, 3, 4, 5, 6, 7,
1546 -1, -1, -1, -1, 12, 13, 14, -1, -1, -1,
1547 29, -1, 31, -1, 33, 34, 35, -1, -1, -1,
1548 28, -1, 30, 42, -1, -1, 45, -1, -1, -1,
1549 -1, 50, 51, 52, -1, -1, -1, 56, 57, 47,
1550 -1, -1, 61, 62, 52, -1, -1, 66, -1, 68,
1551 -1, -1, -1, 61, 73, -1, -1, -1, 77, -1,
1552 -1, 69, 81, 82, 1, 84, 74, 4, 5, 6,
1553 7, 79, -1, -1, -1, 12, 13, 14, -1, -1,
1554 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1555 27, 28, 1, 30, -1, 4, 5, 6, 7, -1,
1556 -1, 38, -1, 12, 13, 14, 4, 5, 6, 7,
1557 47, -1, -1, -1, 12, 13, 14, -1, 27, 28,
1558 -1, 30, -1, -1, 61, 62, -1, -1, -1, 38,
1559 28, -1, 69, -1, -1, -1, -1, 74, 47, -1,
1560 -1, -1, 79, -1, -1, -1, 83, 84, -1, 47,
1561 1, -1, -1, 4, 5, 6, 7, -1, -1, -1,
1562 69, 12, 13, 14, -1, 74, -1, -1, -1, -1,
1563 79, 69, -1, -1, 83, 84, 74, 28, 1, 30,
1564 -1, 4, 5, 6, 7, -1, -1, -1, -1, 12,
1565 13, 14, 4, -1, 6, 7, 47, -1, -1, -1,
1566 12, 13, 14, -1, -1, 28, 3, 30, -1, -1,
1567 -1, 8, 9, -1, 11, -1, 28, -1, 69, -1,
1568 -1, -1, -1, 74, 47, -1, -1, -1, -1, -1,
1569 -1, -1, 29, 84, 31, 47, 33, 34, 35, -1,
1570 -1, -1, -1, -1, -1, 42, 69, -1, 45, -1,
1571 -1, 74, -1, 50, 51, 52, -1, 69, -1, 56,
1572 57, 84, 74, -1, 61, 62, -1, 3, -1, 66,
1573 -1, 68, 8, 9, -1, 11, 73, -1, -1, -1,
1574 77, -1, -1, -1, 81, 82, -1, -1, 85, -1,
1575 -1, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1576 -1, -1, -1, -1, -1, -1, 42, -1, -1, 45,
1577 -1, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1578 56, 57, -1, -1, -1, 61, 62, -1, 3, -1,
1579 66, -1, 68, 8, 9, -1, 11, 73, -1, -1,
1580 -1, 77, -1, -1, -1, 81, 82, -1, -1, 85,
1581 -1, -1, -1, -1, 29, -1, 31, -1, 33, 34,
1582 35, -1, -1, -1, -1, -1, -1, 42, -1, -1,
1583 45, -1, -1, -1, -1, 50, 51, 52, -1, -1,
1584 -1, 56, 57, -1, -1, -1, 61, 62, -1, 3,
1585 -1, 66, -1, 68, 8, 9, -1, 11, 73, -1,
1586 -1, -1, 77, -1, -1, -1, 81, 82, -1, -1,
1587 85, -1, -1, -1, -1, 29, -1, 31, -1, 33,
1588 34, 35, -1, -1, -1, -1, -1, -1, 42, -1,
1589 -1, 45, -1, -1, -1, -1, 50, 51, 52, -1,
1590 -1, -1, 56, 57, -1, -1, -1, 61, 62, -1,
1591 3, -1, 66, -1, 68, 8, 9, -1, 11, 73,
1592 -1, -1, -1, 77, -1, -1, -1, 81, 82, -1,
1593 -1, 85, -1, -1, -1, -1, 29, -1, 31, -1,
1594 33, 34, 35, -1, -1, -1, -1, -1, -1, 42,
1595 -1, -1, 45, -1, -1, -1, -1, 50, 51, 52,
1596 -1, -1, -1, 56, 57, -1, -1, -1, 61, 62,
1597 -1, -1, -1, 66, -1, 68, -1, -1, -1, -1,
1598 73, -1, -1, -1, 77, -1, -1, -1, 81, 82,
1599 -1, -1, 85, 3, 4, 5, 6, 7, 8, 9,
1600 -1, 11, 12, 13, 14, 15, -1, 17, 18, 19,
1601 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1602 30, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1603 -1, -1, 42, -1, -1, 45, -1, 47, -1, -1,
1604 50, 51, 52, -1, -1, -1, 56, 57, -1, -1,
1605 -1, 61, 62, -1, -1, -1, 66, -1, 68, 69,
1606 -1, -1, -1, 73, 74, -1, -1, 77, -1, 79,
1607 -1, 81, 82, -1, 84, 3, 4, -1, -1, -1,
1608 8, 9, -1, 11, -1, -1, -1, 15, -1, 17,
1609 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1610 -1, 29, -1, 31, -1, 33, 34, 35, -1, -1,
1611 -1, -1, -1, -1, 42, -1, -1, 45, -1, -1,
1612 -1, -1, 50, 51, 52, -1, -1, -1, 56, 57,
1613 -1, 3, -1, 61, 62, -1, 8, 9, 66, 11,
1614 68, 69, -1, -1, -1, 73, 74, -1, -1, 77,
1615 -1, 79, -1, 81, 82, -1, 84, 29, -1, 31,
1616 -1, 33, 34, 35, -1, -1, -1, -1, -1, -1,
1617 42, -1, -1, 45, -1, -1, -1, -1, 50, 51,
1618 52, -1, -1, -1, 56, 57, -1, -1, -1, 61,
1619 62, -1, -1, -1, 66, -1, 68, -1, -1, -1,
1620 -1, 73, -1, -1, -1, 77, -1, -1, -1, 81,
1621 82, -1, 84, 3, 4, -1, 6, 7, -1, -1,
1622 -1, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1623 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1624 -1, -1, -1, 3, 4, 5, 6, 7, 8, 9,
1625 40, 11, 12, 13, 14, 4, 5, 6, 7, -1,
1626 -1, -1, -1, 12, 13, 14, -1, -1, 28, 29,
1627 30, 31, -1, 33, 34, 35, -1, -1, -1, 28,
1628 -1, 30, 42, -1, 74, 45, -1, 47, -1, -1,
1629 50, 51, 52, 83, -1, -1, 56, 57, 47, -1,
1630 -1, 61, 62, -1, -1, -1, 66, -1, 68, 69,
1631 -1, -1, -1, 73, 74, -1, -1, 77, -1, -1,
1632 69, 81, 82, 3, 4, 74, 6, 7, 8, 9,
1633 79, 11, 12, 13, 14, -1, -1, -1, -1, -1,
1634 -1, -1, -1, -1, -1, -1, -1, -1, 28, 29,
1635 -1, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1636 -1, -1, 42, -1, -1, 45, -1, 47, -1, -1,
1637 50, 51, 52, -1, -1, -1, 56, 57, -1, 3,
1638 -1, 61, 62, -1, 8, 9, 66, 11, 68, 69,
1639 -1, -1, -1, 73, 74, -1, -1, 77, -1, -1,
1640 -1, 81, 82, -1, -1, 29, -1, 31, -1, 33,
1641 34, 35, -1, -1, -1, -1, -1, -1, 42, -1,
1642 -1, 45, -1, -1, -1, -1, 50, 51, 52, -1,
1643 -1, -1, 56, 57, -1, 3, -1, 61, 62, -1,
1644 8, 9, 66, 11, 68, 69, -1, -1, -1, 73,
1645 -1, -1, -1, 77, -1, -1, -1, 81, 82, -1,
1646 -1, 29, -1, 31, -1, 33, 34, 35, -1, -1,
1647 -1, -1, -1, -1, 42, -1, -1, 45, -1, -1,
1648 -1, -1, 50, 51, 52, -1, -1, -1, 56, 57,
1649 -1, 3, -1, 61, 62, -1, 8, 9, 66, 11,
1650 68, -1, -1, -1, -1, 73, -1, -1, -1, 77,
1651 -1, 79, -1, 81, 82, -1, -1, 29, -1, 31,
1652 -1, 33, 34, 35, -1, -1, -1, -1, -1, -1,
1653 42, -1, -1, 45, -1, -1, -1, -1, 50, 51,
1654 52, -1, -1, -1, 56, 57, -1, 3, -1, 61,
1655 62, -1, 8, 9, 66, 11, 68, -1, -1, -1,
1656 -1, 73, -1, -1, -1, 77, -1, -1, -1, 81,
1657 82, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1658 -1, -1, -1, -1, -1, -1, 42, -1, -1, 45,
1659 -1, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1660 56, 57, -1, 3, -1, 61, 62, -1, 8, 9,
1661 66, 11, 68, -1, -1, -1, -1, 73, -1, -1,
1662 -1, 77, -1, -1, -1, 81, 82, -1, -1, 29,
1663 -1, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1664 -1, -1, 42, -1, -1, 45, -1, -1, -1, -1,
1665 50, 51, 52, -1, -1, -1, 56, 57, -1, 3,
1666 -1, 61, 62, -1, 8, 9, 66, 11, 68, -1,
1667 -1, -1, -1, 73, -1, -1, -1, 77, -1, -1,
1668 -1, 81, 82, -1, -1, 29, -1, 31, -1, 33,
1669 34, 35, -1, -1, -1, -1, -1, -1, 42, -1,
1670 -1, 45, -1, -1, -1, -1, 50, 51, 52, -1,
1671 -1, -1, 56, 57, -1, -1, -1, 61, 62, -1,
1672 -1, -1, 66, -1, 68, -1, -1, -1, -1, 73,
1673 -1, -1, -1, 77, -1, -1, 1, 81, 82, 4,
1674 1, 6, 7, 4, -1, 6, 7, 12, 13, 14,
1675 -1, 12, 13, 14, -1, -1, -1, -1, -1, -1,
1676 -1, -1, -1, 28, -1, -1, -1, 28, -1, 4,
1677 31, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1678 -1, -1, 47, -1, -1, -1, 47, 4, 5, 6,
1679 7, -1, -1, 28, -1, 12, 13, 14, -1, -1,
1680 -1, -1, -1, -1, 69, 70, 71, 72, 69, 74,
1681 -1, 28, 47, 74, 79, 80, -1, -1, 79, 80,
1682 1, -1, 3, 4, 5, 6, 7, -1, -1, -1,
1683 47, 12, 13, 14, 69, -1, -1, -1, -1, 74,
1684 -1, -1, -1, -1, 79, 80, 27, 28, -1, 30,
1685 31, -1, 69, -1, -1, -1, -1, 74, -1, -1,
1686 -1, -1, 79, -1, -1, -1, 47, -1, -1, 50,
1687 51, 52, -1, -1, -1, -1, -1, -1, -1, -1,
1688 61, -1, 63, 64, 65, -1, -1, -1, 69, -1,
1689 -1, -1, 73, 74, 75, 76, -1, 1, 79, 3,
1690 4, 5, 6, 7, -1, -1, -1, -1, 12, 13,
1691 14, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1692 -1, -1, -1, -1, 28, 1, 30, 3, 4, 5,
1693 6, 7, -1, -1, 10, -1, 12, 13, 14, -1,
1694 -1, -1, -1, 47, -1, -1, 50, 51, 52, -1,
1695 -1, -1, 28, -1, 30, 1, -1, 61, 4, 5,
1696 6, 7, -1, -1, 10, 69, 12, 13, 14, -1,
1697 74, 47, -1, -1, -1, 79, -1, -1, -1, -1,
1698 -1, -1, 28, -1, 30, -1, 4, 5, 6, 7,
1699 -1, -1, -1, 69, 12, 13, 14, -1, 74, -1,
1700 -1, 47, 78, -1, -1, -1, -1, -1, -1, -1,
1701 28, -1, 30, -1, -1, -1, 4, 5, 6, 7,
1702 -1, -1, -1, 69, 12, 13, 14, -1, 74, 47,
1703 -1, -1, 78, 1, -1, -1, 4, -1, 6, 7,
1704 28, -1, 30, -1, 12, 13, 14, -1, -1, -1,
1705 -1, 69, -1, -1, -1, -1, 74, -1, -1, 47,
1706 28, 79, -1, 31, -1, -1, -1, -1, -1, -1,
1707 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1708 -1, 69, -1, -1, -1, -1, 74, -1, -1, -1,
1709 -1, 79, -1, -1, -1, -1, -1, -1, -1, 3,
1710 4, 69, 6, 7, -1, -1, 74, 11, 12, 13,
1711 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1712 24, 25, 26, 27, 28, 29, -1, -1, -1, 3,
1713 4, -1, 6, 7, -1, -1, 40, 11, 12, 13,
1714 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1715 24, 25, 26, 27, 28, 29, -1, 61, -1, -1,
1716 -1, -1, -1, -1, 3, 4, 40, 6, 7, -1,
1717 74, -1, 11, 12, 13, 14, 15, 16, 17, 18,
1718 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1719 29, -1, -1, -1, 3, 4, -1, 6, 7, -1,
1720 74, 40, 11, 12, 13, 14, 15, 16, 17, 18,
1721 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1722 29, -1, -1, -1, 4, -1, 6, 7, -1, -1,
1723 -1, 40, 12, 13, 14, 74, 4, 5, 6, 7,
1724 -1, -1, 10, -1, 12, 13, 14, -1, 28, -1,
1725 30, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1726 28, -1, 30, -1, -1, 74, -1, 47, -1, -1,
1727 -1, -1, 52, -1, -1, -1, -1, -1, -1, 47,
1728 -1, 61, 62, -1, -1, -1, -1, -1, -1, 69,
1729 4, 5, 6, 7, 74, -1, 10, -1, 12, 13,
1730 14, 69, 4, 5, 6, 7, 74, -1, -1, -1,
1731 12, 13, 14, -1, 28, 4, 30, 6, 7, -1,
1732 -1, -1, -1, 12, 13, 14, 28, -1, 30, -1,
1733 -1, -1, -1, 47, -1, -1, -1, -1, -1, 28,
1734 -1, -1, -1, -1, -1, 47, -1, -1, -1, -1,
1735 -1, -1, -1, -1, -1, 69, -1, -1, 47, -1,
1736 74, -1, -1, -1, -1, -1, -1, 69, -1, -1,
1737 -1, -1, 74, 10, -1, -1, -1, -1, -1, -1,
1738 69, -1, 37, 38, 39, 74, 41, 42, 43, 44,
1739 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1740 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1741 47, 48, 49, 50, 51, 52, 53, 54, 30, -1,
1742 -1, -1, -1, -1, -1, 37, 38, 39, 83, 41,
1743 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1744 52, 53, 54, 37, 38, 39, 40, 41, 42, 43,
1745 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1746 54, 37, 38, 39, -1, 41, 42, 43, 44, 45,
1747 46, 47, 48, 49, 50, 51, 52, 53, 54
1749 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1750 #line 3 "/usr/freeware/share/bison.simple"
1752 /* Skeleton output parser for bison,
1753 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1755 This program is free software; you can redistribute it and/or modify
1756 it under the terms of the GNU General Public License as published by
1757 the Free Software Foundation; either version 2, or (at your option)
1760 This program is distributed in the hope that it will be useful,
1761 but WITHOUT ANY WARRANTY; without even the implied warranty of
1762 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1763 GNU General Public License for more details.
1765 You should have received a copy of the GNU General Public License
1766 along with this program; if not, write to the Free Software
1767 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1769 /* As a special exception, when this file is copied by Bison into a
1770 Bison output file, you may use that output file without restriction.
1771 This special exception was added by the Free Software Foundation
1772 in version 1.24 of Bison. */
1776 #define alloca __builtin_alloca
1777 #else /* not GNU C. */
1778 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1780 #else /* not sparc */
1781 #if defined (MSDOS) && !defined (__TURBOC__)
1783 #else /* not MSDOS, or __TURBOC__ */
1787 #else /* not MSDOS, __TURBOC__, or _AIX */
1791 void *alloca (unsigned int);
1793 #else /* not __cplusplus */
1795 #endif /* not __cplusplus */
1797 #endif /* not _AIX */
1798 #endif /* not MSDOS, or __TURBOC__ */
1799 #endif /* not sparc. */
1800 #endif /* not GNU C. */
1801 #endif /* alloca not defined. */
1803 /* This is the parser code that is written into each bison parser
1804 when the %semantic_parser declaration is not specified in the grammar.
1805 It was written by Richard Stallman by simplifying the hairy parser
1806 used when %semantic_parser is specified. */
1808 /* Note: there must be only one dollar sign in this file.
1809 It is replaced by the list of actions, each action
1810 as one case of the switch. */
1812 #define yyerrok (yyerrstatus = 0)
1813 #define yyclearin (yychar = YYEMPTY)
1816 #define YYACCEPT return(0)
1817 #define YYABORT return(1)
1818 #define YYERROR goto yyerrlab1
1819 /* Like YYERROR except do call yyerror.
1820 This remains here temporarily to ease the
1821 transition to the new meaning of YYERROR, for GCC.
1822 Once GCC version 2 has supplanted version 1, this can go. */
1823 #define YYFAIL goto yyerrlab
1824 #define YYRECOVERING() (!!yyerrstatus)
1825 #define YYBACKUP(token, value) \
1827 if (yychar == YYEMPTY && yylen == 1) \
1828 { yychar = (token), yylval = (value); \
1829 yychar1 = YYTRANSLATE (yychar); \
1834 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1838 #define YYERRCODE 256
1841 #define YYLEX yylex()
1847 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1849 #define YYLEX yylex(&yylval, &yylloc)
1851 #else /* not YYLSP_NEEDED */
1853 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1855 #define YYLEX yylex(&yylval)
1857 #endif /* not YYLSP_NEEDED */
1860 /* If nonreentrant, generate the variables here */
1864 int yychar
; /* the lookahead symbol */
1865 YYSTYPE yylval
; /* the semantic value of the */
1866 /* lookahead symbol */
1869 YYLTYPE yylloc
; /* location data for the lookahead */
1873 int yynerrs
; /* number of parse errors so far */
1874 #endif /* not YYPURE */
1877 int yydebug
; /* nonzero means print parse trace */
1878 /* Since this is uninitialized, it does not stop multiple parsers
1882 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1885 #define YYINITDEPTH 200
1888 /* YYMAXDEPTH is the maximum size the stacks can grow to
1889 (effective only if the built-in stack extension method is used). */
1896 #define YYMAXDEPTH 10000
1899 /* Prevent warning if -Wstrict-prototypes. */
1904 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1905 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1906 #else /* not GNU C or C++ */
1909 /* This is the most reliable way to avoid incompatibilities
1910 in available built-in functions on various systems. */
1912 __yy_memcpy (to
, from
, count
)
1917 register char *f
= from
;
1918 register char *t
= to
;
1919 register int i
= count
;
1925 #else /* __cplusplus */
1927 /* This is the most reliable way to avoid incompatibilities
1928 in available built-in functions on various systems. */
1930 __yy_memcpy (char *to
, char *from
, int count
)
1932 register char *f
= from
;
1933 register char *t
= to
;
1934 register int i
= count
;
1943 #line 196 "/usr/freeware/share/bison.simple"
1945 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1946 into yyparse. The argument should have type void *.
1947 It should actually point to an object.
1948 Grammar actions can access the variable by casting it
1949 to the proper pointer type. */
1951 #ifdef YYPARSE_PARAM
1953 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1954 #define YYPARSE_PARAM_DECL
1955 #else /* not __cplusplus */
1956 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1957 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1958 #endif /* not __cplusplus */
1959 #else /* not YYPARSE_PARAM */
1960 #define YYPARSE_PARAM_ARG
1961 #define YYPARSE_PARAM_DECL
1962 #endif /* not YYPARSE_PARAM */
1965 yyparse(YYPARSE_PARAM_ARG
)
1968 register int yystate
;
1970 register short *yyssp
;
1971 register YYSTYPE
*yyvsp
;
1972 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1973 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1975 short yyssa
[YYINITDEPTH
]; /* the state stack */
1976 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1978 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1979 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1982 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1983 YYLTYPE
*yyls
= yylsa
;
1986 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1988 #define YYPOPSTACK (yyvsp--, yyssp--)
1991 int yystacksize
= YYINITDEPTH
;
2002 YYSTYPE yyval
; /* the variable used to return */
2003 /* semantic values from the action */
2010 fprintf(stderr
, "Starting parse\n");
2016 yychar
= YYEMPTY
; /* Cause a token to be read. */
2018 /* Initialize stack pointers.
2019 Waste one element of value and location stack
2020 so that they stay on the same level as the state stack.
2021 The wasted elements are never initialized. */
2029 /* Push a new state, which is found in yystate . */
2030 /* In all cases, when you get here, the value and location stacks
2031 have just been pushed. so pushing a state here evens the stacks. */
2036 if (yyssp
>= yyss
+ yystacksize
- 1)
2038 /* Give user a chance to reallocate the stack */
2039 /* Use copies of these so that the &'s don't force the real ones into memory. */
2040 YYSTYPE
*yyvs1
= yyvs
;
2041 short *yyss1
= yyss
;
2043 YYLTYPE
*yyls1
= yyls
;
2046 /* Get the current used size of the three stacks, in elements. */
2047 int size
= yyssp
- yyss
+ 1;
2050 /* Each stack pointer address is followed by the size of
2051 the data in use in that stack, in bytes. */
2053 /* This used to be a conditional around just the two extra args,
2054 but that might be undefined if yyoverflow is a macro. */
2055 yyoverflow("parser stack overflow",
2056 &yyss1
, size
* sizeof (*yyssp
),
2057 &yyvs1
, size
* sizeof (*yyvsp
),
2058 &yyls1
, size
* sizeof (*yylsp
),
2061 yyoverflow("parser stack overflow",
2062 &yyss1
, size
* sizeof (*yyssp
),
2063 &yyvs1
, size
* sizeof (*yyvsp
),
2067 yyss
= yyss1
; yyvs
= yyvs1
;
2071 #else /* no yyoverflow */
2072 /* Extend the stack our own way. */
2073 if (yystacksize
>= YYMAXDEPTH
)
2075 yyerror("parser stack overflow");
2079 if (yystacksize
> YYMAXDEPTH
)
2080 yystacksize
= YYMAXDEPTH
;
2081 yyss
= (short *) alloca (yystacksize
* sizeof (*yyssp
));
2082 __yy_memcpy ((char *)yyss
, (char *)yyss1
, size
* sizeof (*yyssp
));
2083 yyvs
= (YYSTYPE
*) alloca (yystacksize
* sizeof (*yyvsp
));
2084 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
, size
* sizeof (*yyvsp
));
2086 yyls
= (YYLTYPE
*) alloca (yystacksize
* sizeof (*yylsp
));
2087 __yy_memcpy ((char *)yyls
, (char *)yyls1
, size
* sizeof (*yylsp
));
2089 #endif /* no yyoverflow */
2091 yyssp
= yyss
+ size
- 1;
2092 yyvsp
= yyvs
+ size
- 1;
2094 yylsp
= yyls
+ size
- 1;
2099 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
2102 if (yyssp
>= yyss
+ yystacksize
- 1)
2108 fprintf(stderr
, "Entering state %d\n", yystate
);
2114 /* Do appropriate processing given the current state. */
2115 /* Read a lookahead token if we need one and don't already have one. */
2118 /* First try to decide what to do without reference to lookahead token. */
2120 yyn
= yypact
[yystate
];
2124 /* Not known => get a lookahead token if don't already have one. */
2126 /* yychar is either YYEMPTY or YYEOF
2127 or a valid token in external form. */
2129 if (yychar
== YYEMPTY
)
2133 fprintf(stderr
, "Reading a token: ");
2138 /* Convert token to internal form (in yychar1) for indexing tables with */
2140 if (yychar
<= 0) /* This means end of input. */
2143 yychar
= YYEOF
; /* Don't call YYLEX any more */
2147 fprintf(stderr
, "Now at end of input.\n");
2152 yychar1
= YYTRANSLATE(yychar
);
2157 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
2158 /* Give the individual parser a way to print the precise meaning
2159 of a token, for further debugging info. */
2161 YYPRINT (stderr
, yychar
, yylval
);
2163 fprintf (stderr
, ")\n");
2169 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
2174 /* yyn is what to do for this token type in this state.
2175 Negative => reduce, -yyn is rule number.
2176 Positive => shift, yyn is new state.
2177 New state is final state => don't bother to shift,
2178 just return success.
2179 0, or most negative number => error. */
2194 /* Shift the lookahead token. */
2198 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
2201 /* Discard the token being shifted unless it is eof. */
2202 if (yychar
!= YYEOF
)
2210 /* count tokens shifted since error; after three, turn off error status. */
2211 if (yyerrstatus
) yyerrstatus
--;
2216 /* Do the default action for the current state. */
2219 yyn
= yydefact
[yystate
];
2223 /* Do a reduction. yyn is the number of a rule to reduce with. */
2227 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
2234 fprintf (stderr
, "Reducing via rule %d (line %d), ",
2237 /* Print the symbols being reduced, and their result. */
2238 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
2239 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
2240 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
2248 #line 258 "objc-parse.y"
2250 pedwarn ("ANSI C forbids an empty source file");
2255 #line 263 "objc-parse.y"
2257 /* In case there were missing closebraces,
2258 get us back to the global binding level. */
2259 while (! global_bindings_p ())
2265 #line 277 "objc-parse.y"
2266 {yyval
.ttype
= NULL_TREE
; ;
2269 #line 278 "objc-parse.y"
2270 {yyval
.ttype
= NULL_TREE
; ;
2273 #line 286 "objc-parse.y"
2274 { STRIP_NOPS (yyvsp
[-2].ttype
);
2275 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
2276 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
2277 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
2278 assemble_asm (yyvsp
[-2].ttype
);
2280 error ("argument of `asm' is not a constant string"); ;
2283 #line 294 "objc-parse.y"
2284 { RESTORE_WARN_FLAGS (yyvsp
[-1].itype
); ;
2287 #line 299 "objc-parse.y"
2289 error ("ANSI C forbids data definition with no type or storage class");
2290 else if (!flag_traditional
)
2291 warning ("data definition has no type or storage class");
2293 current_declspecs
= TREE_VALUE (declspec_stack
);
2294 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2295 declspec_stack
= TREE_CHAIN (declspec_stack
);
2296 resume_momentary (yyvsp
[-2].itype
); ;
2299 #line 309 "objc-parse.y"
2300 { current_declspecs
= TREE_VALUE (declspec_stack
);
2301 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2302 declspec_stack
= TREE_CHAIN (declspec_stack
);
2303 resume_momentary (yyvsp
[-2].itype
); ;
2306 #line 314 "objc-parse.y"
2307 { current_declspecs
= TREE_VALUE (declspec_stack
);
2308 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2309 declspec_stack
= TREE_CHAIN (declspec_stack
);
2310 resume_momentary (yyvsp
[-2].itype
); ;
2313 #line 319 "objc-parse.y"
2314 { pedwarn ("empty declaration"); ;
2317 #line 321 "objc-parse.y"
2318 { shadow_tag (yyvsp
[-1].ttype
); ;
2321 #line 325 "objc-parse.y"
2323 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
2326 #line 331 "objc-parse.y"
2327 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2328 prefix_attributes
, NULL_TREE
, 0))
2330 reinit_parse_for_function (); ;
2333 #line 336 "objc-parse.y"
2334 { store_parm_decls (); ;
2337 #line 338 "objc-parse.y"
2338 { finish_function (0);
2339 current_declspecs
= TREE_VALUE (declspec_stack
);
2340 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2341 declspec_stack
= TREE_CHAIN (declspec_stack
);
2342 resume_momentary (yyvsp
[-5].itype
); ;
2345 #line 344 "objc-parse.y"
2346 { current_declspecs
= TREE_VALUE (declspec_stack
);
2347 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2348 declspec_stack
= TREE_CHAIN (declspec_stack
);
2349 resume_momentary (yyvsp
[-2].itype
); ;
2352 #line 349 "objc-parse.y"
2353 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2354 prefix_attributes
, NULL_TREE
, 0))
2356 reinit_parse_for_function (); ;
2359 #line 354 "objc-parse.y"
2360 { store_parm_decls (); ;
2363 #line 356 "objc-parse.y"
2364 { finish_function (0);
2365 current_declspecs
= TREE_VALUE (declspec_stack
);
2366 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2367 declspec_stack
= TREE_CHAIN (declspec_stack
);
2368 resume_momentary (yyvsp
[-5].itype
); ;
2371 #line 362 "objc-parse.y"
2372 { current_declspecs
= TREE_VALUE (declspec_stack
);
2373 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2374 declspec_stack
= TREE_CHAIN (declspec_stack
);
2375 resume_momentary (yyvsp
[-2].itype
); ;
2378 #line 367 "objc-parse.y"
2379 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
2380 prefix_attributes
, NULL_TREE
, 0))
2382 reinit_parse_for_function (); ;
2385 #line 372 "objc-parse.y"
2386 { store_parm_decls (); ;
2389 #line 374 "objc-parse.y"
2390 { finish_function (0);
2391 current_declspecs
= TREE_VALUE (declspec_stack
);
2392 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2393 declspec_stack
= TREE_CHAIN (declspec_stack
);
2394 resume_momentary (yyvsp
[-5].itype
); ;
2397 #line 380 "objc-parse.y"
2398 { current_declspecs
= TREE_VALUE (declspec_stack
);
2399 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2400 declspec_stack
= TREE_CHAIN (declspec_stack
);
2401 resume_momentary (yyvsp
[-2].itype
); ;
2404 #line 394 "objc-parse.y"
2405 { yyval
.code
= ADDR_EXPR
; ;
2408 #line 396 "objc-parse.y"
2409 { yyval
.code
= NEGATE_EXPR
; ;
2412 #line 398 "objc-parse.y"
2413 { yyval
.code
= CONVERT_EXPR
; ;
2416 #line 400 "objc-parse.y"
2417 { yyval
.code
= PREINCREMENT_EXPR
; ;
2420 #line 402 "objc-parse.y"
2421 { yyval
.code
= PREDECREMENT_EXPR
; ;
2424 #line 404 "objc-parse.y"
2425 { yyval
.code
= BIT_NOT_EXPR
; ;
2428 #line 406 "objc-parse.y"
2429 { yyval
.code
= TRUTH_NOT_EXPR
; ;
2432 #line 410 "objc-parse.y"
2433 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
2436 #line 415 "objc-parse.y"
2437 { yyval
.ttype
= NULL_TREE
; ;
2440 #line 421 "objc-parse.y"
2441 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
2444 #line 423 "objc-parse.y"
2445 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
2448 #line 429 "objc-parse.y"
2449 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
2452 #line 432 "objc-parse.y"
2453 { yyval
.ttype
= yyvsp
[0].ttype
;
2454 RESTORE_WARN_FLAGS (yyvsp
[-1].itype
); ;
2457 #line 435 "objc-parse.y"
2458 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
2459 overflow_warning (yyval
.ttype
); ;
2462 #line 439 "objc-parse.y"
2463 { tree label
= lookup_label (yyvsp
[0].ttype
);
2465 pedwarn ("ANSI C forbids `&&'");
2467 yyval
.ttype
= null_pointer_node
;
2470 TREE_USED (label
) = 1;
2471 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
2472 TREE_CONSTANT (yyval
.ttype
) = 1;
2477 #line 467 "objc-parse.y"
2478 { skip_evaluation
--;
2479 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
2480 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
2481 error ("`sizeof' applied to a bit-field");
2482 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
2485 #line 473 "objc-parse.y"
2486 { skip_evaluation
--;
2487 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
2490 #line 476 "objc-parse.y"
2491 { skip_evaluation
--;
2492 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
2495 #line 479 "objc-parse.y"
2496 { skip_evaluation
--;
2497 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
2500 #line 482 "objc-parse.y"
2501 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2504 #line 484 "objc-parse.y"
2505 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2508 #line 486 "objc-parse.y"
2509 { yyval
.ttype
= build_va_arg (yyvsp
[-3].ttype
, groktypename (yyvsp
[-1].ttype
)); ;
2512 #line 490 "objc-parse.y"
2513 { skip_evaluation
++; ;
2516 #line 494 "objc-parse.y"
2517 { skip_evaluation
++; ;
2520 #line 500 "objc-parse.y"
2521 { tree type
= groktypename (yyvsp
[-2].ttype
);
2522 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
2525 #line 503 "objc-parse.y"
2526 { start_init (NULL_TREE
, NULL
, 0);
2527 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
2528 really_start_incremental_init (yyvsp
[-2].ttype
); ;
2531 #line 507 "objc-parse.y"
2533 tree result
= pop_init_level (0);
2534 tree type
= yyvsp
[-5].ttype
;
2537 if (pedantic
&& ! flag_isoc9x
)
2538 pedwarn ("ANSI C forbids constructor expressions");
2539 if (TYPE_NAME (type
) != 0)
2541 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
2542 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
2544 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
2548 yyval
.ttype
= result
;
2549 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
2551 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
2558 #line 536 "objc-parse.y"
2559 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2562 #line 538 "objc-parse.y"
2563 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2566 #line 540 "objc-parse.y"
2567 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2570 #line 542 "objc-parse.y"
2571 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2574 #line 544 "objc-parse.y"
2575 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2578 #line 546 "objc-parse.y"
2579 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2582 #line 548 "objc-parse.y"
2583 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2586 #line 550 "objc-parse.y"
2587 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2590 #line 552 "objc-parse.y"
2591 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2594 #line 554 "objc-parse.y"
2595 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2598 #line 556 "objc-parse.y"
2599 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2602 #line 558 "objc-parse.y"
2603 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2606 #line 560 "objc-parse.y"
2607 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2608 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2611 #line 563 "objc-parse.y"
2612 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2613 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2616 #line 566 "objc-parse.y"
2617 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2618 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2621 #line 569 "objc-parse.y"
2622 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2623 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2626 #line 572 "objc-parse.y"
2627 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2628 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2631 #line 575 "objc-parse.y"
2632 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2633 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2636 #line 578 "objc-parse.y"
2637 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2638 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2641 #line 581 "objc-parse.y"
2643 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2644 /* Make sure first operand is calculated only once. */
2645 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2646 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2647 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2650 #line 588 "objc-parse.y"
2651 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2652 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2655 #line 591 "objc-parse.y"
2657 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2658 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2659 if (class == 'e' || class == '1'
2660 || class == '2' || class == '<')
2661 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
);
2665 #line 599 "objc-parse.y"
2667 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2668 /* This inhibits warnings in truthvalue_conversion. */
2669 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2670 if (class == 'e' || class == '1'
2671 || class == '2' || class == '<')
2672 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
);
2676 #line 611 "objc-parse.y"
2678 yyval
.ttype
= lastiddecl
;
2679 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2681 if (yychar
== YYEMPTY
)
2687 if (objc_receiver_context
2688 && ! (objc_receiver_context
2689 && strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super")))
2690 /* we have a message to super */
2691 yyval
.ttype
= get_super_receiver ();
2692 else if (objc_method_context
2693 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2695 if (is_private (decl
))
2696 yyval
.ttype
= error_mark_node
;
2698 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2702 /* Ordinary implicit function declaration. */
2703 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2704 assemble_external (yyval
.ttype
);
2705 TREE_USED (yyval
.ttype
) = 1;
2708 else if (current_function_decl
== 0)
2710 error ("`%s' undeclared here (not in a function)",
2711 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2712 yyval
.ttype
= error_mark_node
;
2718 if (objc_receiver_context
2719 && ! strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super"))
2720 /* we have a message to super */
2721 yyval
.ttype
= get_super_receiver ();
2722 else if (objc_method_context
2723 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2725 if (is_private (decl
))
2726 yyval
.ttype
= error_mark_node
;
2728 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2732 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2733 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2735 error ("`%s' undeclared (first use in this function)",
2736 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2738 if (! undeclared_variable_notice
)
2740 error ("(Each undeclared identifier is reported only once");
2741 error ("for each function it appears in.)");
2742 undeclared_variable_notice
= 1;
2745 yyval
.ttype
= error_mark_node
;
2746 /* Prevent repeated error messages. */
2747 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2748 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2752 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2753 yyval
.ttype
= error_mark_node
;
2754 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2756 /* The first time we see a build-in function used,
2757 if it has not been declared. */
2758 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2759 if (yychar
== YYEMPTY
)
2763 /* Omit the implicit declaration we
2764 would ordinarily do, so we don't lose
2765 the actual built in type.
2766 But print a diagnostic for the mismatch. */
2767 if (objc_method_context
2768 && is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
))
2769 error ("Instance variable `%s' implicitly declared as function",
2770 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2772 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2773 error ("`%s' implicitly declared as function",
2774 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2775 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2776 != TYPE_MODE (integer_type_node
))
2777 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2779 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2780 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2781 /* If it really returns void, change that to int. */
2782 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2783 TREE_TYPE (yyval
.ttype
)
2784 = build_function_type (integer_type_node
,
2785 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2788 pedwarn ("built-in function `%s' used without declaration",
2789 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2791 /* Do what we would ordinarily do when a fn is used. */
2792 assemble_external (yyval
.ttype
);
2793 TREE_USED (yyval
.ttype
) = 1;
2797 assemble_external (yyval
.ttype
);
2798 TREE_USED (yyval
.ttype
) = 1;
2799 /* we have a definition - still check if iVariable */
2801 if (!objc_receiver_context
2802 || (objc_receiver_context
2803 && strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super")))
2807 if (objc_method_context
2808 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2810 if (IDENTIFIER_LOCAL_VALUE (yyvsp
[0].ttype
))
2811 warning ("local declaration of `%s' hides instance variable",
2812 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2815 if (is_private (decl
))
2816 yyval
.ttype
= error_mark_node
;
2818 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2822 else /* we have a message to super */
2823 yyval
.ttype
= get_super_receiver ();
2826 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2828 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2829 /* This is to prevent an enum whose value is 0
2830 from being considered a null pointer constant. */
2831 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2832 TREE_CONSTANT (yyval
.ttype
) = 1;
2837 #line 771 "objc-parse.y"
2838 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2841 #line 773 "objc-parse.y"
2842 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2843 if (class == 'e' || class == '1'
2844 || class == '2' || class == '<')
2845 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2846 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2849 #line 779 "objc-parse.y"
2850 { yyval
.ttype
= error_mark_node
; ;
2853 #line 781 "objc-parse.y"
2856 pedwarn ("ANSI C forbids braced-groups within expressions");
2857 pop_iterator_stack ();
2859 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2860 /* The statements have side effects, so the group does. */
2861 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2863 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2865 /* Make a BIND_EXPR for the BLOCK already made. */
2866 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2867 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2868 /* Remove the block from the tree at this point.
2869 It gets put back at the proper place
2870 when the BIND_EXPR is expanded. */
2871 delete_block (yyvsp
[-1].ttype
);
2874 yyval
.ttype
= yyvsp
[-1].ttype
;
2878 #line 804 "objc-parse.y"
2880 /* Make sure we call expand_end_stmt_expr. Otherwise
2881 we are likely to lose sequences and crash later. */
2882 pop_iterator_stack ();
2884 expand_end_stmt_expr (yyvsp
[-2].ttype
);
2885 yyval
.ttype
= error_mark_node
;
2889 #line 813 "objc-parse.y"
2890 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2893 #line 815 "objc-parse.y"
2894 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2897 #line 817 "objc-parse.y"
2899 if (doing_objc_thang
)
2901 if (is_public (yyvsp
[-2].ttype
, yyvsp
[0].ttype
))
2902 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2904 yyval
.ttype
= error_mark_node
;
2907 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2911 #line 829 "objc-parse.y"
2913 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2915 if (doing_objc_thang
)
2917 if (is_public (expr
, yyvsp
[0].ttype
))
2918 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2920 yyval
.ttype
= error_mark_node
;
2923 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2927 #line 843 "objc-parse.y"
2928 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2931 #line 845 "objc-parse.y"
2932 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2935 #line 847 "objc-parse.y"
2936 { yyval
.ttype
= build_message_expr (yyvsp
[0].ttype
); ;
2939 #line 849 "objc-parse.y"
2940 { yyval
.ttype
= build_selector_expr (yyvsp
[0].ttype
); ;
2943 #line 851 "objc-parse.y"
2944 { yyval
.ttype
= build_protocol_expr (yyvsp
[0].ttype
); ;
2947 #line 853 "objc-parse.y"
2948 { yyval
.ttype
= build_encode_expr (yyvsp
[0].ttype
); ;
2951 #line 855 "objc-parse.y"
2952 { yyval
.ttype
= build_objc_string_object (yyvsp
[0].ttype
); ;
2955 #line 862 "objc-parse.y"
2956 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
2960 #line 871 "objc-parse.y"
2961 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2964 #line 879 "objc-parse.y"
2965 { c_mark_varargs ();
2967 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2970 #line 889 "objc-parse.y"
2974 #line 905 "objc-parse.y"
2975 { current_declspecs
= TREE_VALUE (declspec_stack
);
2976 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2977 declspec_stack
= TREE_CHAIN (declspec_stack
);
2978 resume_momentary (yyvsp
[-2].itype
); ;
2981 #line 910 "objc-parse.y"
2982 { current_declspecs
= TREE_VALUE (declspec_stack
);
2983 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2984 declspec_stack
= TREE_CHAIN (declspec_stack
);
2985 resume_momentary (yyvsp
[-2].itype
); ;
2988 #line 915 "objc-parse.y"
2989 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2990 pedwarn ("empty declaration"); ;
2993 #line 918 "objc-parse.y"
2994 { pedwarn ("empty declaration"); ;
2997 #line 927 "objc-parse.y"
3001 #line 942 "objc-parse.y"
3002 { yyval
.itype
= suspend_momentary ();
3003 pending_xref_error ();
3004 declspec_stack
= tree_cons (prefix_attributes
,
3007 split_specs_attrs (yyvsp
[0].ttype
,
3008 ¤t_declspecs
, &prefix_attributes
); ;
3011 #line 953 "objc-parse.y"
3012 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
3015 #line 958 "objc-parse.y"
3016 { current_declspecs
= TREE_VALUE (declspec_stack
);
3017 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3018 declspec_stack
= TREE_CHAIN (declspec_stack
);
3019 resume_momentary (yyvsp
[-2].itype
); ;
3022 #line 963 "objc-parse.y"
3023 { current_declspecs
= TREE_VALUE (declspec_stack
);
3024 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3025 declspec_stack
= TREE_CHAIN (declspec_stack
);
3026 resume_momentary (yyvsp
[-2].itype
); ;
3029 #line 968 "objc-parse.y"
3030 { current_declspecs
= TREE_VALUE (declspec_stack
);
3031 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3032 declspec_stack
= TREE_CHAIN (declspec_stack
);
3033 resume_momentary (yyvsp
[-1].itype
); ;
3036 #line 973 "objc-parse.y"
3037 { current_declspecs
= TREE_VALUE (declspec_stack
);
3038 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3039 declspec_stack
= TREE_CHAIN (declspec_stack
);
3040 resume_momentary (yyvsp
[-1].itype
); ;
3043 #line 978 "objc-parse.y"
3044 { shadow_tag (yyvsp
[-1].ttype
); ;
3047 #line 980 "objc-parse.y"
3048 { pedwarn ("empty declaration"); ;
3051 #line 982 "objc-parse.y"
3052 { RESTORE_WARN_FLAGS (yyvsp
[-1].itype
); ;
3055 #line 992 "objc-parse.y"
3056 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3059 #line 994 "objc-parse.y"
3060 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
3063 #line 998 "objc-parse.y"
3064 { yyval
.ttype
= NULL_TREE
; ;
3067 #line 1000 "objc-parse.y"
3068 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3071 #line 1002 "objc-parse.y"
3072 { if (extra_warnings
)
3073 warning ("`%s' is not at beginning of declaration",
3074 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
3075 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3078 #line 1007 "objc-parse.y"
3079 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3082 #line 1012 "objc-parse.y"
3083 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3086 #line 1014 "objc-parse.y"
3087 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
3090 #line 1019 "objc-parse.y"
3091 { yyval
.ttype
= NULL_TREE
; ;
3094 #line 1021 "objc-parse.y"
3095 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3098 #line 1023 "objc-parse.y"
3099 { if (extra_warnings
)
3100 warning ("`%s' is not at beginning of declaration",
3101 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
3102 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3105 #line 1036 "objc-parse.y"
3106 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3109 #line 1038 "objc-parse.y"
3110 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
3113 #line 1040 "objc-parse.y"
3114 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3117 #line 1042 "objc-parse.y"
3118 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3121 #line 1047 "objc-parse.y"
3122 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
3123 TREE_STATIC (yyval
.ttype
) = 1; ;
3126 #line 1050 "objc-parse.y"
3127 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3130 #line 1052 "objc-parse.y"
3131 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3132 TREE_STATIC (yyval
.ttype
) = 1; ;
3135 #line 1055 "objc-parse.y"
3136 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
3137 warning ("`%s' is not at beginning of declaration",
3138 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
3139 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3140 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
3143 #line 1069 "objc-parse.y"
3144 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3147 #line 1071 "objc-parse.y"
3148 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
3151 #line 1075 "objc-parse.y"
3152 { yyval
.ttype
= NULL_TREE
; ;
3155 #line 1077 "objc-parse.y"
3156 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3159 #line 1087 "objc-parse.y"
3160 { /* For a typedef name, record the meaning, not the name.
3161 In case of `foo foo, bar;'. */
3162 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
3165 #line 1091 "objc-parse.y"
3166 { yyval
.ttype
= get_static_reference (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3169 #line 1093 "objc-parse.y"
3170 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3173 #line 1098 "objc-parse.y"
3174 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3177 #line 1100 "objc-parse.y"
3178 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
3181 #line 1102 "objc-parse.y"
3182 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
3185 #line 1124 "objc-parse.y"
3186 { yyval
.ttype
= NULL_TREE
; ;
3189 #line 1126 "objc-parse.y"
3190 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
3191 yyval
.ttype
= yyvsp
[-1].ttype
;
3195 #line 1133 "objc-parse.y"
3196 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3197 yyvsp
[-1].ttype
, prefix_attributes
);
3198 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3201 #line 1138 "objc-parse.y"
3203 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3206 #line 1141 "objc-parse.y"
3207 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3208 yyvsp
[0].ttype
, prefix_attributes
);
3209 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
3213 #line 1149 "objc-parse.y"
3214 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3215 yyvsp
[-1].ttype
, prefix_attributes
);
3216 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3219 #line 1154 "objc-parse.y"
3221 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
3222 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3225 #line 1158 "objc-parse.y"
3226 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3227 yyvsp
[0].ttype
, prefix_attributes
);
3228 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3231 #line 1166 "objc-parse.y"
3232 { yyval
.ttype
= NULL_TREE
; ;
3235 #line 1168 "objc-parse.y"
3236 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3239 #line 1173 "objc-parse.y"
3240 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3243 #line 1175 "objc-parse.y"
3244 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3247 #line 1180 "objc-parse.y"
3248 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
3251 #line 1185 "objc-parse.y"
3252 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3255 #line 1187 "objc-parse.y"
3256 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3259 #line 1192 "objc-parse.y"
3260 { yyval
.ttype
= NULL_TREE
; ;
3263 #line 1194 "objc-parse.y"
3264 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
3267 #line 1196 "objc-parse.y"
3268 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
3271 #line 1198 "objc-parse.y"
3272 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
3275 #line 1200 "objc-parse.y"
3276 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3279 #line 1218 "objc-parse.y"
3280 { really_start_incremental_init (NULL_TREE
);
3281 /* Note that the call to clear_momentary
3282 is in process_init_element. */
3283 push_momentary (); ;
3286 #line 1223 "objc-parse.y"
3287 { yyval
.ttype
= pop_init_level (0);
3288 if (yyval
.ttype
== error_mark_node
3289 && ! (yychar
== STRING
|| yychar
== CONSTANT
))
3292 pop_momentary_nofree (); ;
3295 #line 1231 "objc-parse.y"
3296 { yyval
.ttype
= error_mark_node
; ;
3299 #line 1237 "objc-parse.y"
3301 pedwarn ("ANSI C forbids empty initializer braces"); ;
3304 #line 1253 "objc-parse.y"
3305 { set_init_label (yyvsp
[-1].ttype
); ;
3308 #line 1260 "objc-parse.y"
3309 { push_init_level (0); ;
3312 #line 1262 "objc-parse.y"
3313 { process_init_element (pop_init_level (0)); ;
3316 #line 1264 "objc-parse.y"
3317 { process_init_element (yyvsp
[0].ttype
); ;
3320 #line 1275 "objc-parse.y"
3321 { set_init_label (yyvsp
[0].ttype
); ;
3324 #line 1283 "objc-parse.y"
3326 pedwarn ("ANSI C forbids nested functions");
3328 push_function_context ();
3329 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3330 prefix_attributes
, NULL_TREE
, 1))
3332 pop_function_context ();
3335 reinit_parse_for_function (); ;
3338 #line 1295 "objc-parse.y"
3339 { store_parm_decls (); ;
3342 #line 1303 "objc-parse.y"
3343 { finish_function (1);
3344 pop_function_context (); ;
3347 #line 1309 "objc-parse.y"
3349 pedwarn ("ANSI C forbids nested functions");
3351 push_function_context ();
3352 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3353 prefix_attributes
, NULL_TREE
, 1))
3355 pop_function_context ();
3358 reinit_parse_for_function (); ;
3361 #line 1321 "objc-parse.y"
3362 { store_parm_decls (); ;
3365 #line 1329 "objc-parse.y"
3366 { finish_function (1);
3367 pop_function_context (); ;
3370 #line 1345 "objc-parse.y"
3371 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3374 #line 1347 "objc-parse.y"
3375 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3378 #line 1352 "objc-parse.y"
3379 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3382 #line 1354 "objc-parse.y"
3383 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3386 #line 1356 "objc-parse.y"
3387 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3390 #line 1363 "objc-parse.y"
3391 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3394 #line 1375 "objc-parse.y"
3395 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3398 #line 1380 "objc-parse.y"
3399 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3402 #line 1382 "objc-parse.y"
3403 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3406 #line 1384 "objc-parse.y"
3407 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3410 #line 1391 "objc-parse.y"
3411 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3414 #line 1400 "objc-parse.y"
3415 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3418 #line 1405 "objc-parse.y"
3419 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3422 #line 1407 "objc-parse.y"
3423 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3426 #line 1409 "objc-parse.y"
3427 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3430 #line 1411 "objc-parse.y"
3431 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3434 #line 1418 "objc-parse.y"
3435 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3438 #line 1424 "objc-parse.y"
3439 { yyval
.ttype
= NULL_TREE
; ;
3442 #line 1426 "objc-parse.y"
3443 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3446 #line 1431 "objc-parse.y"
3447 { yyval
.ttype
= NULL_TREE
; ;
3450 #line 1433 "objc-parse.y"
3451 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3454 #line 1438 "objc-parse.y"
3455 { yyval
.ttype
= NULL_TREE
; ;
3458 #line 1440 "objc-parse.y"
3459 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3462 #line 1445 "objc-parse.y"
3463 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
3464 /* Start scope of tag before parsing components. */
3468 #line 1449 "objc-parse.y"
3469 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
3472 #line 1451 "objc-parse.y"
3473 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
3474 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
3478 #line 1455 "objc-parse.y"
3479 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
3482 #line 1457 "objc-parse.y"
3483 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
3486 #line 1459 "objc-parse.y"
3487 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
3490 #line 1461 "objc-parse.y"
3491 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
3492 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
3496 #line 1465 "objc-parse.y"
3497 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
3500 #line 1467 "objc-parse.y"
3501 { yyvsp
[0].itype
= suspend_momentary ();
3502 yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
3505 #line 1470 "objc-parse.y"
3506 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-7].ttype
, yyvsp
[0].ttype
));
3507 resume_momentary (yyvsp
[-5].itype
); ;
3510 #line 1473 "objc-parse.y"
3511 { yyvsp
[0].itype
= suspend_momentary ();
3512 yyval
.ttype
= start_enum (NULL_TREE
); ;
3515 #line 1476 "objc-parse.y"
3516 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
));
3517 resume_momentary (yyvsp
[-5].itype
); ;
3520 #line 1479 "objc-parse.y"
3521 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
3524 #line 1490 "objc-parse.y"
3525 { if (pedantic
&& ! flag_isoc9x
)
3526 pedwarn ("comma at end of enumerator list"); ;
3529 #line 1496 "objc-parse.y"
3530 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3533 #line 1498 "objc-parse.y"
3534 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
3535 pedwarn ("no semicolon at end of struct or union"); ;
3538 #line 1503 "objc-parse.y"
3539 { yyval
.ttype
= NULL_TREE
; ;
3542 #line 1505 "objc-parse.y"
3543 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
3546 #line 1507 "objc-parse.y"
3548 pedwarn ("extra semicolon in struct or union specified"); ;
3551 #line 1511 "objc-parse.y"
3553 tree interface
= lookup_interface (yyvsp
[-1].ttype
);
3556 yyval
.ttype
= get_class_ivars (interface
);
3559 error ("Cannot find interface declaration for `%s'",
3560 IDENTIFIER_POINTER (yyvsp
[-1].ttype
));
3561 yyval
.ttype
= NULL_TREE
;
3566 #line 1536 "objc-parse.y"
3567 { yyval
.ttype
= yyvsp
[0].ttype
;
3568 current_declspecs
= TREE_VALUE (declspec_stack
);
3569 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3570 declspec_stack
= TREE_CHAIN (declspec_stack
);
3571 resume_momentary (yyvsp
[-1].itype
); ;
3574 #line 1542 "objc-parse.y"
3576 /* Support for unnamed structs or unions as members of
3577 structs or unions (which is [a] useful and [b] supports
3580 pedwarn ("ANSI C doesn't support unnamed structs/unions");
3582 yyval
.ttype
= grokfield(yyvsp
[-2].filename
, yyvsp
[-1].lineno
, NULL
, current_declspecs
, NULL_TREE
);
3583 current_declspecs
= TREE_VALUE (declspec_stack
);
3584 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3585 declspec_stack
= TREE_CHAIN (declspec_stack
);
3586 resume_momentary (yyvsp
[-3].itype
);
3590 #line 1556 "objc-parse.y"
3591 { yyval
.ttype
= yyvsp
[0].ttype
;
3592 current_declspecs
= TREE_VALUE (declspec_stack
);
3593 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3594 declspec_stack
= TREE_CHAIN (declspec_stack
);
3595 resume_momentary (yyvsp
[-1].itype
); ;
3598 #line 1562 "objc-parse.y"
3600 pedwarn ("ANSI C forbids member declarations with no members");
3601 shadow_tag(yyvsp
[0].ttype
);
3602 yyval
.ttype
= NULL_TREE
; ;
3605 #line 1567 "objc-parse.y"
3606 { yyval
.ttype
= NULL_TREE
; ;
3609 #line 1569 "objc-parse.y"
3610 { yyval
.ttype
= yyvsp
[0].ttype
;
3611 RESTORE_WARN_FLAGS (yyvsp
[-1].itype
); ;
3614 #line 1576 "objc-parse.y"
3615 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3618 #line 1581 "objc-parse.y"
3619 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
3620 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3623 #line 1585 "objc-parse.y"
3624 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
3625 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3628 #line 1588 "objc-parse.y"
3629 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
3630 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3633 #line 1600 "objc-parse.y"
3634 { if (yyvsp
[-2].ttype
== error_mark_node
)
3635 yyval
.ttype
= yyvsp
[-2].ttype
;
3637 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
3640 #line 1605 "objc-parse.y"
3641 { yyval
.ttype
= error_mark_node
; ;
3644 #line 1611 "objc-parse.y"
3645 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
3648 #line 1613 "objc-parse.y"
3649 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3652 #line 1618 "objc-parse.y"
3653 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3656 #line 1620 "objc-parse.y"
3657 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3660 #line 1625 "objc-parse.y"
3661 { yyval
.ttype
= NULL_TREE
; ;
3664 #line 1631 "objc-parse.y"
3665 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3668 #line 1633 "objc-parse.y"
3669 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3672 #line 1638 "objc-parse.y"
3673 { yyval
.ttype
= NULL_TREE
; ;
3676 #line 1640 "objc-parse.y"
3677 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3680 #line 1645 "objc-parse.y"
3681 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3684 #line 1648 "objc-parse.y"
3685 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3688 #line 1650 "objc-parse.y"
3689 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3692 #line 1652 "objc-parse.y"
3693 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3696 #line 1654 "objc-parse.y"
3697 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3700 #line 1656 "objc-parse.y"
3701 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3704 #line 1658 "objc-parse.y"
3705 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3708 #line 1660 "objc-parse.y"
3709 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3712 #line 1662 "objc-parse.y"
3713 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3716 #line 1666 "objc-parse.y"
3717 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3720 #line 1675 "objc-parse.y"
3722 if (pedantic
&& yyvsp
[0].ends_in_label
)
3723 pedwarn ("ANSI C forbids label at end of compound statement");
3727 #line 1684 "objc-parse.y"
3728 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3731 #line 1686 "objc-parse.y"
3732 { yyval
.ends_in_label
= 0; ;
3735 #line 1698 "objc-parse.y"
3736 { emit_line_note (input_filename
, lineno
);
3740 expand_start_bindings (0);
3741 if (objc_method_context
)
3746 #line 1713 "objc-parse.y"
3748 pedwarn ("ANSI C forbids label declarations"); ;
3751 #line 1724 "objc-parse.y"
3753 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3755 tree label
= shadow_label (TREE_VALUE (link
));
3756 C_DECLARED_LABEL_FLAG (label
) = 1;
3757 declare_nonlocal_label (label
);
3762 #line 1738 "objc-parse.y"
3766 #line 1742 "objc-parse.y"
3767 { compstmt_count
++; ;
3770 #line 1745 "objc-parse.y"
3771 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3774 #line 1747 "objc-parse.y"
3775 { emit_line_note (input_filename
, lineno
);
3776 expand_end_bindings (getdecls (), 1, 0);
3777 yyval
.ttype
= poplevel (1, 1, 0);
3778 if (yychar
== CONSTANT
|| yychar
== STRING
)
3779 pop_momentary_nofree ();
3784 #line 1755 "objc-parse.y"
3785 { emit_line_note (input_filename
, lineno
);
3786 expand_end_bindings (getdecls (), kept_level_p (), 0);
3787 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3788 if (yychar
== CONSTANT
|| yychar
== STRING
)
3789 pop_momentary_nofree ();
3794 #line 1763 "objc-parse.y"
3795 { emit_line_note (input_filename
, lineno
);
3796 expand_end_bindings (getdecls (), kept_level_p (), 0);
3797 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3798 if (yychar
== CONSTANT
|| yychar
== STRING
)
3799 pop_momentary_nofree ();
3804 #line 1774 "objc-parse.y"
3805 { if (current_function_decl
== 0)
3807 error ("braced-group within expression allowed only inside a function");
3810 /* We must force a BLOCK for this level
3811 so that, if it is not expanded later,
3812 there is a way to turn off the entire subtree of blocks
3813 that are contained in it. */
3815 push_iterator_stack ();
3816 push_label_level ();
3817 yyval
.ttype
= expand_start_stmt_expr ();
3822 #line 1791 "objc-parse.y"
3823 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3826 #line 1805 "objc-parse.y"
3827 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3828 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3830 yyval
.itype
= stmt_count
;
3831 if_stmt_file
= yyvsp
[-5].filename
;
3832 if_stmt_line
= yyvsp
[-4].lineno
;
3833 position_after_white_space (); ;
3836 #line 1819 "objc-parse.y"
3839 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3840 /* See comment in `while' alternative, above. */
3842 expand_start_loop_continue_elsewhere (1);
3843 position_after_white_space (); ;
3846 #line 1827 "objc-parse.y"
3847 { expand_loop_continue_here (); ;
3850 #line 1831 "objc-parse.y"
3851 { yyval
.filename
= input_filename
; ;
3854 #line 1835 "objc-parse.y"
3855 { yyval
.lineno
= lineno
; ;
3858 #line 1840 "objc-parse.y"
3862 #line 1845 "objc-parse.y"
3866 #line 1850 "objc-parse.y"
3867 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3870 #line 1855 "objc-parse.y"
3871 { yyval
.ends_in_label
= 0; ;
3874 #line 1857 "objc-parse.y"
3875 { yyval
.ends_in_label
= 1; ;
3878 #line 1863 "objc-parse.y"
3882 #line 1866 "objc-parse.y"
3884 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3885 /* It appears that this should not be done--that a non-lvalue array
3886 shouldn't get an error if the value isn't used.
3887 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3888 if it appears as a top-level expression,
3889 but says nothing about non-lvalue arrays. */
3891 /* Call default_conversion to get an error
3892 on referring to a register array if pedantic. */
3893 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3894 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3895 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3897 iterator_expand (yyvsp
[-1].ttype
);
3898 clear_momentary (); ;
3901 #line 1883 "objc-parse.y"
3902 { c_expand_start_else ();
3903 yyvsp
[-1].itype
= stmt_count
;
3904 position_after_white_space (); ;
3907 #line 1887 "objc-parse.y"
3908 { c_expand_end_cond ();
3909 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3910 warning ("empty body in an else-statement"); ;
3913 #line 1891 "objc-parse.y"
3914 { c_expand_end_cond ();
3915 /* This warning is here instead of in simple_if, because we
3916 do not want a warning if an empty if is followed by an
3917 else statement. Increment stmt_count so we don't
3918 give a second error if this is a nested `if'. */
3919 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3920 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3921 "empty body in an if-statement"); ;
3924 #line 1903 "objc-parse.y"
3925 { c_expand_end_cond (); ;
3928 #line 1905 "objc-parse.y"
3930 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3931 /* The emit_nop used to come before emit_line_note,
3932 but that made the nop seem like part of the preceding line.
3933 And that was confusing when the preceding line was
3934 inside of an if statement and was not really executed.
3935 I think it ought to work to put the nop after the line number.
3936 We will see. --rms, July 15, 1991. */
3940 #line 1915 "objc-parse.y"
3941 { /* Don't start the loop till we have succeeded
3942 in parsing the end test. This is to make sure
3943 that we end every loop we start. */
3944 expand_start_loop (1);
3945 emit_line_note (input_filename
, lineno
);
3946 expand_exit_loop_if_false (NULL_PTR
,
3947 truthvalue_conversion (yyvsp
[-1].ttype
));
3948 position_after_white_space (); ;
3951 #line 1924 "objc-parse.y"
3952 { expand_end_loop (); ;
3955 #line 1927 "objc-parse.y"
3956 { emit_line_note (input_filename
, lineno
);
3957 expand_exit_loop_if_false (NULL_PTR
,
3958 truthvalue_conversion (yyvsp
[-2].ttype
));
3960 clear_momentary (); ;
3963 #line 1934 "objc-parse.y"
3964 { expand_end_loop ();
3965 clear_momentary (); ;
3968 #line 1938 "objc-parse.y"
3970 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3971 /* See comment in `while' alternative, above. */
3973 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3974 /* Next step is to call expand_start_loop_continue_elsewhere,
3975 but wait till after we parse the entire for (...).
3976 Otherwise, invalid input might cause us to call that
3977 fn without calling expand_end_loop. */
3981 #line 1950 "objc-parse.y"
3982 { yyvsp
[0].lineno
= lineno
;
3983 yyval
.filename
= input_filename
; ;
3986 #line 1953 "objc-parse.y"
3988 /* Start the loop. Doing this after parsing
3989 all the expressions ensures we will end the loop. */
3990 expand_start_loop_continue_elsewhere (1);
3991 /* Emit the end-test, with a line number. */
3992 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3993 if (yyvsp
[-4].ttype
)
3994 expand_exit_loop_if_false (NULL_PTR
,
3995 truthvalue_conversion (yyvsp
[-4].ttype
));
3996 /* Don't let the tree nodes for $9 be discarded by
3997 clear_momentary during the parsing of the next stmt. */
3999 yyvsp
[-3].lineno
= lineno
;
4000 yyvsp
[-2].filename
= input_filename
;
4001 position_after_white_space (); ;
4004 #line 1969 "objc-parse.y"
4005 { /* Emit the increment expression, with a line number. */
4006 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
4007 expand_loop_continue_here ();
4008 if (yyvsp
[-3].ttype
)
4009 c_expand_expr_stmt (yyvsp
[-3].ttype
);
4010 if (yychar
== CONSTANT
|| yychar
== STRING
)
4011 pop_momentary_nofree ();
4014 expand_end_loop (); ;
4017 #line 1980 "objc-parse.y"
4019 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
4020 c_expand_start_case (yyvsp
[-1].ttype
);
4021 /* Don't let the tree nodes for $3 be discarded by
4022 clear_momentary during the parsing of the next stmt. */
4024 position_after_white_space (); ;
4027 #line 1988 "objc-parse.y"
4028 { expand_end_case (yyvsp
[-3].ttype
);
4029 if (yychar
== CONSTANT
|| yychar
== STRING
)
4030 pop_momentary_nofree ();
4035 #line 1994 "objc-parse.y"
4037 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
4038 if ( ! expand_exit_something ())
4039 error ("break statement not within loop or switch"); ;
4042 #line 1999 "objc-parse.y"
4044 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
4045 if (! expand_continue_loop (NULL_PTR
))
4046 error ("continue statement not within a loop"); ;
4049 #line 2004 "objc-parse.y"
4051 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
4052 c_expand_return (NULL_TREE
); ;
4055 #line 2008 "objc-parse.y"
4057 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
4058 c_expand_return (yyvsp
[-1].ttype
); ;
4061 #line 2012 "objc-parse.y"
4063 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
4064 STRIP_NOPS (yyvsp
[-2].ttype
);
4065 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
4066 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
4067 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
4068 expand_asm (yyvsp
[-2].ttype
);
4070 error ("argument of `asm' is not a constant string"); ;
4073 #line 2023 "objc-parse.y"
4075 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
4076 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
4077 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
4078 input_filename
, lineno
); ;
4081 #line 2030 "objc-parse.y"
4083 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
4084 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
4085 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
4086 input_filename
, lineno
); ;
4089 #line 2038 "objc-parse.y"
4091 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
4092 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
4093 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
4094 input_filename
, lineno
); ;
4097 #line 2044 "objc-parse.y"
4100 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
4101 decl
= lookup_label (yyvsp
[-1].ttype
);
4104 TREE_USED (decl
) = 1;
4110 #line 2055 "objc-parse.y"
4112 pedwarn ("ANSI C forbids `goto *expr;'");
4114 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
4115 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
4118 #line 2070 "objc-parse.y"
4120 /* The value returned by this action is */
4121 /* 1 if everything is OK */
4122 /* 0 in case of error or already bound iterator */
4125 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
4126 error ("invalid `for (ITERATOR)' syntax");
4127 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
4128 error ("`%s' is not an iterator",
4129 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
4130 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
4131 error ("`for (%s)' inside expansion of same iterator",
4132 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
4136 iterator_for_loop_start (yyvsp
[-1].ttype
);
4141 #line 2091 "objc-parse.y"
4143 if (yyvsp
[-1].itype
)
4144 iterator_for_loop_end (yyvsp
[-3].ttype
);
4148 #line 2126 "objc-parse.y"
4149 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
4151 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4155 if (value
!= error_mark_node
)
4160 if (pedantic
&& ! INTEGRAL_TYPE_P (TREE_TYPE (value
)))
4161 pedwarn ("label must have integral type in ANSI C");
4163 success
= pushcase (value
, convert_and_check
,
4167 error ("case label not within a switch statement");
4168 else if (success
== 2)
4170 error ("duplicate case value");
4171 error_with_decl (duplicate
, "this is the first entry for that value");
4173 else if (success
== 3)
4174 warning ("case value out of range");
4175 else if (success
== 5)
4176 error ("case label within scope of cleanup or variable array");
4178 position_after_white_space (); ;
4181 #line 2157 "objc-parse.y"
4182 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
4183 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
4185 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4188 pedwarn ("ANSI C forbids case ranges");
4191 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
4194 int success
= pushcase_range (value1
, value2
,
4195 convert_and_check
, label
,
4198 error ("case label not within a switch statement");
4199 else if (success
== 2)
4201 error ("duplicate case value");
4202 error_with_decl (duplicate
, "this is the first entry for that value");
4204 else if (success
== 3)
4205 warning ("case value out of range");
4206 else if (success
== 4)
4207 warning ("empty case range");
4208 else if (success
== 5)
4209 error ("case label within scope of cleanup or variable array");
4211 position_after_white_space (); ;
4214 #line 2188 "objc-parse.y"
4218 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4219 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
4222 error ("default label not within a switch statement");
4223 else if (success
== 2)
4225 error ("multiple default labels in one switch");
4226 error_with_decl (duplicate
, "this is the first default label");
4228 position_after_white_space (); ;
4231 #line 2203 "objc-parse.y"
4232 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-2].ttype
);
4237 expand_label (label
);
4238 decl_attributes (label
, yyvsp
[0].ttype
, NULL_TREE
);
4240 position_after_white_space (); ;
4243 #line 2218 "objc-parse.y"
4244 { emit_line_note (input_filename
, lineno
);
4245 yyval
.ttype
= NULL_TREE
; ;
4248 #line 2221 "objc-parse.y"
4249 { emit_line_note (input_filename
, lineno
); ;
4252 #line 2226 "objc-parse.y"
4253 { yyval
.ttype
= NULL_TREE
; ;
4256 #line 2233 "objc-parse.y"
4257 { yyval
.ttype
= NULL_TREE
; ;
4260 #line 2240 "objc-parse.y"
4261 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
4264 #line 2245 "objc-parse.y"
4265 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
4268 #line 2250 "objc-parse.y"
4269 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
4272 #line 2252 "objc-parse.y"
4273 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
4276 #line 2258 "objc-parse.y"
4278 clear_parm_order ();
4279 declare_parm_level (0); ;
4282 #line 2262 "objc-parse.y"
4283 { yyval
.ttype
= yyvsp
[0].ttype
;
4284 parmlist_tags_warning ();
4285 poplevel (0, 0, 0); ;
4288 #line 2270 "objc-parse.y"
4291 pedwarn ("ANSI C forbids forward parameter declarations");
4292 /* Mark the forward decls as such. */
4293 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
4294 TREE_ASM_WRITTEN (parm
) = 1;
4295 clear_parm_order (); ;
4298 #line 2278 "objc-parse.y"
4299 { yyval
.ttype
= yyvsp
[0].ttype
; ;
4302 #line 2280 "objc-parse.y"
4303 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
4306 #line 2286 "objc-parse.y"
4307 { yyval
.ttype
= get_parm_info (0); ;
4310 #line 2288 "objc-parse.y"
4311 { yyval
.ttype
= get_parm_info (0);
4312 /* Gcc used to allow this as an extension. However, it does
4313 not work for all targets, and thus has been disabled.
4314 Also, since func (...) and func () are indistinguishable,
4315 it caused problems with the code in expand_builtin which
4316 tries to verify that BUILT_IN_NEXT_ARG is being used
4318 error ("ANSI C requires a named argument before `...'");
4322 #line 2298 "objc-parse.y"
4323 { yyval
.ttype
= get_parm_info (1); ;
4326 #line 2300 "objc-parse.y"
4327 { yyval
.ttype
= get_parm_info (0); ;
4330 #line 2305 "objc-parse.y"
4331 { push_parm_decl (yyvsp
[0].ttype
); ;
4334 #line 2307 "objc-parse.y"
4335 { push_parm_decl (yyvsp
[0].ttype
); ;
4338 #line 2314 "objc-parse.y"
4339 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4341 build_tree_list (prefix_attributes
,
4343 current_declspecs
= TREE_VALUE (declspec_stack
);
4344 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4345 declspec_stack
= TREE_CHAIN (declspec_stack
);
4346 resume_momentary (yyvsp
[-2].itype
); ;
4349 #line 2323 "objc-parse.y"
4350 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4352 build_tree_list (prefix_attributes
,
4354 current_declspecs
= TREE_VALUE (declspec_stack
);
4355 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4356 declspec_stack
= TREE_CHAIN (declspec_stack
);
4357 resume_momentary (yyvsp
[-2].itype
); ;
4360 #line 2332 "objc-parse.y"
4361 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4363 build_tree_list (prefix_attributes
,
4365 current_declspecs
= TREE_VALUE (declspec_stack
);
4366 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4367 declspec_stack
= TREE_CHAIN (declspec_stack
);
4368 resume_momentary (yyvsp
[-2].itype
); ;
4371 #line 2341 "objc-parse.y"
4372 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4374 build_tree_list (prefix_attributes
,
4376 current_declspecs
= TREE_VALUE (declspec_stack
);
4377 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4378 declspec_stack
= TREE_CHAIN (declspec_stack
);
4379 resume_momentary (yyvsp
[-2].itype
); ;
4382 #line 2351 "objc-parse.y"
4383 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4385 build_tree_list (prefix_attributes
,
4387 current_declspecs
= TREE_VALUE (declspec_stack
);
4388 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4389 declspec_stack
= TREE_CHAIN (declspec_stack
);
4390 resume_momentary (yyvsp
[-2].itype
); ;
4393 #line 2365 "objc-parse.y"
4395 clear_parm_order ();
4396 declare_parm_level (1); ;
4399 #line 2369 "objc-parse.y"
4400 { yyval
.ttype
= yyvsp
[0].ttype
;
4401 parmlist_tags_warning ();
4402 poplevel (0, 0, 0); ;
4405 #line 2377 "objc-parse.y"
4407 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
4408 if (TREE_VALUE (t
) == NULL_TREE
)
4409 error ("`...' in old-style identifier list");
4410 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
4413 #line 2387 "objc-parse.y"
4414 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4417 #line 2389 "objc-parse.y"
4418 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4421 #line 2395 "objc-parse.y"
4422 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4425 #line 2397 "objc-parse.y"
4426 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4429 #line 2402 "objc-parse.y"
4430 { yyval
.itype
= SAVE_WARN_FLAGS();
4432 warn_pointer_arith
= 0; ;
4435 #line 2416 "objc-parse.y"
4437 if (objc_implementation_context
)
4439 finish_class (objc_implementation_context
);
4440 objc_ivar_chain
= NULL_TREE
;
4441 objc_implementation_context
= NULL_TREE
;
4444 warning ("`@end' must appear in an implementation context");
4448 #line 2431 "objc-parse.y"
4449 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4452 #line 2433 "objc-parse.y"
4453 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4456 #line 2438 "objc-parse.y"
4458 objc_declare_class (yyvsp
[-1].ttype
);
4462 #line 2444 "objc-parse.y"
4464 objc_declare_alias (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4468 #line 2450 "objc-parse.y"
4470 objc_interface_context
= objc_ivar_context
4471 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[-1].ttype
);
4472 objc_public_flag
= 0;
4476 #line 2456 "objc-parse.y"
4478 continue_class (objc_interface_context
);
4482 #line 2461 "objc-parse.y"
4484 finish_class (objc_interface_context
);
4485 objc_interface_context
= NULL_TREE
;
4489 #line 2467 "objc-parse.y"
4491 objc_interface_context
4492 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
4493 continue_class (objc_interface_context
);
4497 #line 2474 "objc-parse.y"
4499 finish_class (objc_interface_context
);
4500 objc_interface_context
= NULL_TREE
;
4504 #line 2480 "objc-parse.y"
4506 objc_interface_context
= objc_ivar_context
4507 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4508 objc_public_flag
= 0;
4512 #line 2486 "objc-parse.y"
4514 continue_class (objc_interface_context
);
4518 #line 2491 "objc-parse.y"
4520 finish_class (objc_interface_context
);
4521 objc_interface_context
= NULL_TREE
;
4525 #line 2497 "objc-parse.y"
4527 objc_interface_context
4528 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4529 continue_class (objc_interface_context
);
4533 #line 2504 "objc-parse.y"
4535 finish_class (objc_interface_context
);
4536 objc_interface_context
= NULL_TREE
;
4540 #line 2510 "objc-parse.y"
4542 objc_implementation_context
= objc_ivar_context
4543 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, NULL_TREE
);
4544 objc_public_flag
= 0;
4548 #line 2516 "objc-parse.y"
4551 = continue_class (objc_implementation_context
);
4555 #line 2522 "objc-parse.y"
4557 objc_implementation_context
4558 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
);
4560 = continue_class (objc_implementation_context
);
4564 #line 2530 "objc-parse.y"
4566 objc_implementation_context
= objc_ivar_context
4567 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4568 objc_public_flag
= 0;
4572 #line 2536 "objc-parse.y"
4575 = continue_class (objc_implementation_context
);
4579 #line 2542 "objc-parse.y"
4581 objc_implementation_context
4582 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4584 = continue_class (objc_implementation_context
);
4588 #line 2550 "objc-parse.y"
4590 objc_interface_context
4591 = start_class (CATEGORY_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4592 continue_class (objc_interface_context
);
4596 #line 2557 "objc-parse.y"
4598 finish_class (objc_interface_context
);
4599 objc_interface_context
= NULL_TREE
;
4603 #line 2563 "objc-parse.y"
4605 objc_implementation_context
4606 = start_class (CATEGORY_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4608 = continue_class (objc_implementation_context
);
4612 #line 2573 "objc-parse.y"
4614 remember_protocol_qualifiers ();
4615 objc_interface_context
4616 = start_protocol(PROTOCOL_INTERFACE_TYPE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4620 #line 2579 "objc-parse.y"
4622 forget_protocol_qualifiers();
4623 finish_protocol(objc_interface_context
);
4624 objc_interface_context
= NULL_TREE
;
4628 #line 2588 "objc-parse.y"
4630 yyval
.ttype
= NULL_TREE
;
4634 #line 2596 "objc-parse.y"
4636 if (yyvsp
[-2].code
== LT_EXPR
&& yyvsp
[0].code
== GT_EXPR
)
4637 yyval
.ttype
= yyvsp
[-1].ttype
;
4643 #line 2610 "objc-parse.y"
4644 { objc_public_flag
= 2; ;
4647 #line 2611 "objc-parse.y"
4648 { objc_public_flag
= 0; ;
4651 #line 2612 "objc-parse.y"
4652 { objc_public_flag
= 1; ;
4655 #line 2617 "objc-parse.y"
4657 yyval
.ttype
= NULL_TREE
;
4661 #line 2622 "objc-parse.y"
4664 pedwarn ("extra semicolon in struct or union specified");
4668 #line 2640 "objc-parse.y"
4669 { yyval
.ttype
= yyvsp
[0].ttype
;
4670 current_declspecs
= TREE_VALUE (declspec_stack
);
4671 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4672 declspec_stack
= TREE_CHAIN (declspec_stack
);
4673 resume_momentary (yyvsp
[-1].itype
); ;
4676 #line 2646 "objc-parse.y"
4677 { yyval
.ttype
= yyvsp
[0].ttype
;
4678 current_declspecs
= TREE_VALUE (declspec_stack
);
4679 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4680 declspec_stack
= TREE_CHAIN (declspec_stack
);
4681 resume_momentary (yyvsp
[-1].itype
); ;
4684 #line 2652 "objc-parse.y"
4685 { yyval
.ttype
= NULL_TREE
; ;
4688 #line 2657 "objc-parse.y"
4689 { yyval
.ttype
= NULL_TREE
; ;
4692 #line 2664 "objc-parse.y"
4694 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4696 yyvsp
[0].ttype
, current_declspecs
,
4701 #line 2671 "objc-parse.y"
4703 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4705 yyvsp
[-2].ttype
, current_declspecs
, yyvsp
[0].ttype
);
4709 #line 2677 "objc-parse.y"
4711 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4714 current_declspecs
, yyvsp
[0].ttype
);
4718 #line 2687 "objc-parse.y"
4720 remember_protocol_qualifiers ();
4721 if (objc_implementation_context
)
4722 objc_inherit_code
= CLASS_METHOD_DECL
;
4724 fatal ("method definition not in class context");
4728 #line 2695 "objc-parse.y"
4730 forget_protocol_qualifiers ();
4731 add_class_method (objc_implementation_context
, yyvsp
[0].ttype
);
4732 start_method_def (yyvsp
[0].ttype
);
4733 objc_method_context
= yyvsp
[0].ttype
;
4737 #line 2702 "objc-parse.y"
4739 continue_method_def ();
4743 #line 2706 "objc-parse.y"
4745 finish_method_def ();
4746 objc_method_context
= NULL_TREE
;
4750 #line 2712 "objc-parse.y"
4752 remember_protocol_qualifiers ();
4753 if (objc_implementation_context
)
4754 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4756 fatal ("method definition not in class context");
4760 #line 2720 "objc-parse.y"
4762 forget_protocol_qualifiers ();
4763 add_instance_method (objc_implementation_context
, yyvsp
[0].ttype
);
4764 start_method_def (yyvsp
[0].ttype
);
4765 objc_method_context
= yyvsp
[0].ttype
;
4769 #line 2727 "objc-parse.y"
4771 continue_method_def ();
4775 #line 2731 "objc-parse.y"
4777 finish_method_def ();
4778 objc_method_context
= NULL_TREE
;
4782 #line 2743 "objc-parse.y"
4783 {yyval
.ttype
= NULL_TREE
; ;
4786 #line 2750 "objc-parse.y"
4787 {yyval
.ttype
= NULL_TREE
; ;
4790 #line 2760 "objc-parse.y"
4792 /* Remember protocol qualifiers in prototypes. */
4793 remember_protocol_qualifiers ();
4794 objc_inherit_code
= CLASS_METHOD_DECL
;
4798 #line 2766 "objc-parse.y"
4800 /* Forget protocol qualifiers here. */
4801 forget_protocol_qualifiers ();
4802 add_class_method (objc_interface_context
, yyvsp
[0].ttype
);
4806 #line 2774 "objc-parse.y"
4808 /* Remember protocol qualifiers in prototypes. */
4809 remember_protocol_qualifiers ();
4810 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4814 #line 2780 "objc-parse.y"
4816 /* Forget protocol qualifiers here. */
4817 forget_protocol_qualifiers ();
4818 add_instance_method (objc_interface_context
, yyvsp
[0].ttype
);
4822 #line 2790 "objc-parse.y"
4824 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4828 #line 2795 "objc-parse.y"
4830 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
4834 #line 2800 "objc-parse.y"
4836 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4840 #line 2805 "objc-parse.y"
4842 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4846 #line 2835 "objc-parse.y"
4847 { current_declspecs
= TREE_VALUE (declspec_stack
);
4848 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4849 declspec_stack
= TREE_CHAIN (declspec_stack
);
4850 resume_momentary (yyvsp
[-2].itype
); ;
4853 #line 2840 "objc-parse.y"
4854 { shadow_tag (yyvsp
[-1].ttype
); ;
4857 #line 2842 "objc-parse.y"
4858 { pedwarn ("empty declaration"); ;
4861 #line 2847 "objc-parse.y"
4862 { push_parm_decl (yyvsp
[0].ttype
); ;
4865 #line 2849 "objc-parse.y"
4866 { push_parm_decl (yyvsp
[0].ttype
); ;
4869 #line 2857 "objc-parse.y"
4870 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4872 build_tree_list (prefix_attributes
,
4876 #line 2862 "objc-parse.y"
4877 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4879 build_tree_list (prefix_attributes
,
4883 #line 2867 "objc-parse.y"
4884 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4886 build_tree_list (prefix_attributes
,
4890 #line 2875 "objc-parse.y"
4892 yyval
.ttype
= NULL_TREE
;
4896 #line 2879 "objc-parse.y"
4898 /* oh what a kludge! */
4899 yyval
.ttype
= (tree
)1;
4903 #line 2884 "objc-parse.y"
4909 #line 2888 "objc-parse.y"
4911 /* returns a tree list node generated by get_parm_info */
4912 yyval
.ttype
= yyvsp
[0].ttype
;
4917 #line 2903 "objc-parse.y"
4919 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4923 #line 2916 "objc-parse.y"
4924 { yyval
.ttype
= get_identifier (token_buffer
); ;
4927 #line 2917 "objc-parse.y"
4928 { yyval
.ttype
= get_identifier (token_buffer
); ;
4931 #line 2918 "objc-parse.y"
4932 { yyval
.ttype
= get_identifier (token_buffer
); ;
4935 #line 2919 "objc-parse.y"
4936 { yyval
.ttype
= get_identifier (token_buffer
); ;
4939 #line 2920 "objc-parse.y"
4940 { yyval
.ttype
= get_identifier (token_buffer
); ;
4943 #line 2921 "objc-parse.y"
4944 { yyval
.ttype
= get_identifier (token_buffer
); ;
4947 #line 2922 "objc-parse.y"
4948 { yyval
.ttype
= get_identifier (token_buffer
); ;
4951 #line 2923 "objc-parse.y"
4952 { yyval
.ttype
= get_identifier (token_buffer
); ;
4955 #line 2924 "objc-parse.y"
4956 { yyval
.ttype
= get_identifier (token_buffer
); ;
4959 #line 2925 "objc-parse.y"
4960 { yyval
.ttype
= get_identifier (token_buffer
); ;
4963 #line 2926 "objc-parse.y"
4964 { yyval
.ttype
= get_identifier (token_buffer
); ;
4967 #line 2927 "objc-parse.y"
4968 { yyval
.ttype
= get_identifier (token_buffer
); ;
4971 #line 2928 "objc-parse.y"
4972 { yyval
.ttype
= get_identifier (token_buffer
); ;
4975 #line 2929 "objc-parse.y"
4976 { yyval
.ttype
= get_identifier (token_buffer
); ;
4979 #line 2930 "objc-parse.y"
4980 { yyval
.ttype
= get_identifier (token_buffer
); ;
4983 #line 2931 "objc-parse.y"
4984 { yyval
.ttype
= get_identifier (token_buffer
); ;
4987 #line 2932 "objc-parse.y"
4988 { yyval
.ttype
= get_identifier (token_buffer
); ;
4991 #line 2933 "objc-parse.y"
4992 { yyval
.ttype
= get_identifier (token_buffer
); ;
4995 #line 2934 "objc-parse.y"
4996 { yyval
.ttype
= get_identifier (token_buffer
); ;
4999 #line 2940 "objc-parse.y"
5001 yyval
.ttype
= build_keyword_decl (yyvsp
[-5].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
5005 #line 2945 "objc-parse.y"
5007 yyval
.ttype
= build_keyword_decl (yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
5011 #line 2950 "objc-parse.y"
5013 yyval
.ttype
= build_keyword_decl (NULL_TREE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
5017 #line 2955 "objc-parse.y"
5019 yyval
.ttype
= build_keyword_decl (NULL_TREE
, NULL_TREE
, yyvsp
[0].ttype
);
5023 #line 2968 "objc-parse.y"
5025 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
5029 #line 2976 "objc-parse.y"
5031 if (TREE_CHAIN (yyvsp
[0].ttype
) == NULL_TREE
)
5032 /* just return the expr., remove a level of indirection */
5033 yyval
.ttype
= TREE_VALUE (yyvsp
[0].ttype
);
5035 /* we have a comma expr., we will collapse later */
5036 yyval
.ttype
= yyvsp
[0].ttype
;
5040 #line 2988 "objc-parse.y"
5042 yyval
.ttype
= build_tree_list (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
5046 #line 2992 "objc-parse.y"
5048 yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
);
5052 #line 3000 "objc-parse.y"
5054 yyval
.ttype
= get_class_reference (yyvsp
[0].ttype
);
5058 #line 3007 "objc-parse.y"
5059 { objc_receiver_context
= 1; ;
5062 #line 3009 "objc-parse.y"
5063 { objc_receiver_context
= 0; ;
5066 #line 3011 "objc-parse.y"
5068 yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
);
5072 #line 3024 "objc-parse.y"
5074 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
5078 #line 3031 "objc-parse.y"
5080 yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, NULL_TREE
);
5084 #line 3035 "objc-parse.y"
5086 yyval
.ttype
= build_tree_list (NULL_TREE
, NULL_TREE
);
5090 #line 3042 "objc-parse.y"
5092 yyval
.ttype
= yyvsp
[-1].ttype
;
5096 #line 3049 "objc-parse.y"
5098 yyval
.ttype
= yyvsp
[-1].ttype
;
5102 #line 3058 "objc-parse.y"
5104 yyval
.ttype
= groktypename (yyvsp
[-1].ttype
);
5108 /* the action file gets copied in in place of this dollarsign */
5109 #line 498 "/usr/freeware/share/bison.simple"
5120 short *ssp1
= yyss
- 1;
5121 fprintf (stderr
, "state stack now");
5122 while (ssp1
!= yyssp
)
5123 fprintf (stderr
, " %d", *++ssp1
);
5124 fprintf (stderr
, "\n");
5134 yylsp
->first_line
= yylloc
.first_line
;
5135 yylsp
->first_column
= yylloc
.first_column
;
5136 yylsp
->last_line
= (yylsp
-1)->last_line
;
5137 yylsp
->last_column
= (yylsp
-1)->last_column
;
5142 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
5143 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
5147 /* Now "shift" the result of the reduction.
5148 Determine what state that goes to,
5149 based on the state we popped back to
5150 and the rule number reduced by. */
5154 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
5155 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5156 yystate
= yytable
[yystate
];
5158 yystate
= yydefgoto
[yyn
- YYNTBASE
];
5162 yyerrlab
: /* here on detecting error */
5165 /* If not already recovering from an error, report this error. */
5169 #ifdef YYERROR_VERBOSE
5170 yyn
= yypact
[yystate
];
5172 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
5179 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5180 for (x
= (yyn
< 0 ? -yyn
: 0);
5181 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
5182 if (yycheck
[x
+ yyn
] == x
)
5183 size
+= strlen(yytname
[x
]) + 15, count
++;
5184 msg
= (char *) malloc(size
+ 15);
5187 strcpy(msg
, "parse error");
5192 for (x
= (yyn
< 0 ? -yyn
: 0);
5193 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
5194 if (yycheck
[x
+ yyn
] == x
)
5196 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
5197 strcat(msg
, yytname
[x
]);
5206 yyerror ("parse error; also virtual memory exceeded");
5209 #endif /* YYERROR_VERBOSE */
5210 yyerror("parse error");
5214 yyerrlab1
: /* here on error raised explicitly by an action */
5216 if (yyerrstatus
== 3)
5218 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5220 /* return failure if at end of input */
5221 if (yychar
== YYEOF
)
5226 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
5232 /* Else will try to reuse lookahead token
5233 after shifting the error token. */
5235 yyerrstatus
= 3; /* Each real token shifted decrements this */
5239 yyerrdefault
: /* current state does not do anything special for the error token. */
5242 /* This is wrong; only states that explicitly want error tokens
5243 should shift them. */
5244 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5245 if (yyn
) goto yydefault
;
5248 yyerrpop
: /* pop the current state because it cannot handle the error token */
5250 if (yyssp
== yyss
) YYABORT
;
5260 short *ssp1
= yyss
- 1;
5261 fprintf (stderr
, "Error: state stack now");
5262 while (ssp1
!= yyssp
)
5263 fprintf (stderr
, " %d", *++ssp1
);
5264 fprintf (stderr
, "\n");
5270 yyn
= yypact
[yystate
];
5275 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
5294 fprintf(stderr
, "Shifting error token, ");
5305 #line 3063 "objc-parse.y"