2 /* A Bison parser, made from objc-parse.y
3 by GNU Bison version 1.28 */
5 #define YYBISON 1 /* Identify Bison output. */
31 #define ASM_KEYWORD 281
42 #define PTR_EXTENT 292
43 #define END_OF_LINE 293
48 #define ARITHCOMPARE 298
53 #define MINUSMINUS 303
54 #define HYPERUNARY 304
57 #define IMPLEMENTATION 307
67 #define OBJECTNAME 317
70 #define OBJC_STRING 320
72 #line 34 "objc-parse.y"
86 #ifdef MULTIBYTE_CHARS
92 /* Since parsers are distinct for each language, put the language string
94 const char * const language_string
= "GNU Obj-C";
96 /* Like YYERROR but do call yyerror. */
97 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
99 /* Cause the `yydebug' variable to be defined. */
102 #line 66 "objc-parse.y"
103 typedef union {long itype
; tree ttype
; enum tree_code code
;
104 const char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
105 #line 198 "objc-parse.y"
107 /* Number of statements (loosely speaking) and compound statements
109 static int stmt_count
;
110 static int compstmt_count
;
112 /* Input file and line number of the end of the body of last simple_if;
113 used by the stmt-rule immediately after simple_if returns. */
114 static const char *if_stmt_file
;
115 static int if_stmt_line
;
117 /* List of types and structure classes of the current declaration. */
118 static tree current_declspecs
= NULL_TREE
;
119 static tree prefix_attributes
= NULL_TREE
;
121 /* Stack of saved values of current_declspecs and prefix_attributes. */
122 static tree declspec_stack
;
124 /* For __extension__, save/restore the warning flags which are
125 controlled by __extension__. */
126 #define SAVE_WARN_FLAGS() \
127 size_int (pedantic | (warn_pointer_arith << 1))
128 #define RESTORE_WARN_FLAGS(tval) \
130 int val = tree_low_cst (tval, 0); \
131 pedantic = val & 1; \
132 warn_pointer_arith = (val >> 1) & 1; \
135 /* Objective-C specific information */
137 tree objc_interface_context
;
138 tree objc_implementation_context
;
139 tree objc_method_context
;
140 tree objc_ivar_chain
;
141 tree objc_ivar_context
;
142 enum tree_code objc_inherit_code
;
143 int objc_receiver_context
;
144 int objc_public_flag
;
147 /* Tell yyparse how to print a token's value, if yydebug is set. */
149 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
150 extern void yyprint
PARAMS ((FILE *, int, YYSTYPE
));
152 /* Add GC roots for variables local to this file. */
156 ggc_add_tree_root (&declspec_stack
, 1);
157 ggc_add_tree_root (¤t_declspecs
, 1);
158 ggc_add_tree_root (&prefix_attributes
, 1);
159 ggc_add_tree_root (&objc_interface_context
, 1);
160 ggc_add_tree_root (&objc_implementation_context
, 1);
161 ggc_add_tree_root (&objc_method_context
, 1);
162 ggc_add_tree_root (&objc_ivar_chain
, 1);
163 ggc_add_tree_root (&objc_ivar_context
, 1);
177 #define YYFLAG -32768
180 #define YYTRANSLATE(x) ((unsigned)(x) <= 320 ? yytranslate[x] : 317)
182 static const char yytranslate
[] = { 0,
183 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
184 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
185 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
186 2, 2, 85, 2, 2, 2, 57, 48, 2, 64,
187 81, 55, 53, 86, 54, 63, 56, 2, 2, 2,
188 2, 2, 2, 2, 2, 2, 2, 43, 82, 2,
189 41, 2, 42, 2, 2, 2, 2, 2, 2, 2,
190 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
191 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
192 65, 2, 88, 47, 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, 87, 46, 83, 84, 2, 2, 2, 2,
196 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
197 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
198 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
199 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
201 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
202 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
203 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
205 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
206 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
207 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
208 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
209 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
210 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
211 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
212 37, 38, 39, 40, 44, 45, 49, 50, 51, 52,
213 58, 59, 60, 61, 62, 66, 67, 68, 69, 70,
214 71, 72, 73, 74, 75, 76, 77, 78, 79, 80
218 static const short yyprhs
[] = { 0,
219 0, 1, 3, 4, 7, 8, 12, 14, 16, 18,
220 24, 27, 31, 36, 41, 44, 47, 50, 53, 55,
221 56, 57, 65, 70, 71, 72, 80, 85, 86, 87,
222 94, 98, 100, 102, 104, 106, 108, 110, 112, 114,
223 116, 118, 120, 122, 123, 125, 127, 131, 133, 136,
224 139, 142, 145, 148, 153, 156, 161, 164, 167, 174,
225 176, 178, 180, 185, 186, 194, 196, 200, 204, 208,
226 212, 216, 220, 224, 228, 232, 236, 240, 244, 245,
227 250, 251, 256, 257, 258, 266, 267, 273, 277, 281,
228 283, 285, 287, 291, 295, 299, 303, 308, 313, 317,
229 321, 324, 327, 329, 331, 333, 335, 337, 339, 342,
230 344, 347, 348, 350, 353, 357, 359, 361, 364, 367,
231 372, 377, 380, 383, 387, 389, 391, 394, 397, 398,
232 399, 404, 409, 413, 417, 420, 423, 426, 429, 433,
233 434, 437, 440, 443, 446, 450, 451, 454, 457, 459,
234 461, 464, 467, 469, 471, 474, 477, 480, 484, 485,
235 488, 490, 492, 494, 497, 500, 502, 507, 512, 514,
236 516, 518, 520, 524, 526, 530, 531, 536, 537, 544,
237 548, 549, 556, 560, 561, 563, 565, 568, 575, 577,
238 581, 582, 584, 589, 596, 601, 603, 605, 607, 609,
239 611, 612, 617, 619, 620, 623, 625, 629, 633, 636,
240 637, 642, 644, 645, 650, 652, 654, 656, 659, 662,
241 663, 664, 670, 671, 672, 678, 680, 682, 686, 690,
242 695, 699, 703, 707, 709, 711, 715, 720, 724, 728,
243 732, 734, 738, 742, 746, 751, 755, 759, 761, 763,
244 766, 768, 771, 773, 776, 777, 785, 791, 794, 795,
245 803, 809, 812, 813, 822, 823, 831, 834, 835, 837,
246 838, 840, 842, 845, 846, 850, 853, 858, 862, 868,
247 872, 874, 876, 879, 881, 885, 890, 897, 903, 905,
248 909, 911, 913, 917, 920, 923, 924, 926, 928, 931,
249 932, 935, 939, 943, 946, 950, 955, 959, 962, 966,
250 969, 973, 975, 977, 980, 983, 984, 986, 989, 990,
251 991, 993, 995, 998, 1002, 1004, 1007, 1009, 1011, 1017,
252 1022, 1027, 1030, 1033, 1036, 1039, 1044, 1045, 1050, 1051,
253 1052, 1056, 1061, 1065, 1067, 1069, 1071, 1073, 1076, 1077,
254 1082, 1084, 1088, 1089, 1090, 1098, 1104, 1107, 1108, 1109,
255 1110, 1123, 1124, 1131, 1134, 1137, 1140, 1144, 1151, 1160,
256 1171, 1184, 1188, 1193, 1195, 1197, 1198, 1205, 1209, 1215,
257 1218, 1222, 1223, 1225, 1226, 1228, 1229, 1231, 1233, 1237,
258 1242, 1244, 1248, 1249, 1252, 1255, 1256, 1261, 1264, 1265,
259 1267, 1269, 1273, 1275, 1279, 1284, 1289, 1294, 1299, 1304,
260 1305, 1308, 1310, 1313, 1315, 1319, 1321, 1325, 1327, 1329,
261 1331, 1333, 1335, 1337, 1339, 1341, 1345, 1349, 1354, 1355,
262 1356, 1367, 1368, 1375, 1376, 1377, 1390, 1391, 1400, 1401,
263 1408, 1411, 1412, 1421, 1426, 1427, 1437, 1443, 1444, 1451,
264 1452, 1454, 1458, 1462, 1464, 1466, 1468, 1470, 1471, 1475,
265 1478, 1482, 1486, 1488, 1489, 1491, 1495, 1497, 1501, 1504,
266 1505, 1506, 1507, 1515, 1516, 1517, 1518, 1526, 1527, 1528,
267 1531, 1533, 1535, 1538, 1539, 1543, 1545, 1547, 1548, 1549,
268 1555, 1556, 1557, 1563, 1568, 1570, 1576, 1579, 1580, 1583,
269 1584, 1586, 1588, 1590, 1593, 1596, 1601, 1604, 1607, 1609,
270 1613, 1616, 1619, 1622, 1623, 1626, 1627, 1631, 1633, 1635,
271 1638, 1640, 1642, 1644, 1646, 1648, 1650, 1652, 1654, 1656,
272 1658, 1660, 1662, 1664, 1666, 1668, 1670, 1672, 1674, 1676,
273 1678, 1680, 1682, 1684, 1686, 1688, 1695, 1699, 1705, 1708,
274 1710, 1712, 1714, 1717, 1719, 1723, 1726, 1728, 1730, 1731,
275 1732, 1739, 1741, 1743, 1745, 1748, 1751, 1753, 1758, 1763
278 static const short yyrhs
[] = { -1,
279 90, 0, 0, 91, 93, 0, 0, 90, 92, 93,
280 0, 95, 0, 94, 0, 248, 0, 27, 64, 104,
281 81, 82, 0, 247, 93, 0, 127, 141, 82, 0,
282 134, 127, 141, 82, 0, 130, 127, 140, 82, 0,
283 134, 82, 0, 130, 82, 0, 1, 82, 0, 1,
284 83, 0, 82, 0, 0, 0, 130, 127, 169, 96,
285 121, 97, 203, 0, 130, 127, 169, 1, 0, 0,
286 0, 134, 127, 172, 98, 121, 99, 203, 0, 134,
287 127, 172, 1, 0, 0, 0, 127, 172, 100, 121,
288 101, 203, 0, 127, 172, 1, 0, 3, 0, 4,
289 0, 77, 0, 72, 0, 48, 0, 54, 0, 53,
290 0, 59, 0, 60, 0, 84, 0, 85, 0, 106,
291 0, 0, 106, 0, 112, 0, 106, 86, 112, 0,
292 118, 0, 55, 110, 0, 247, 110, 0, 103, 110,
293 0, 45, 102, 0, 108, 107, 0, 108, 64, 190,
294 81, 0, 109, 107, 0, 109, 64, 190, 81, 0,
295 33, 110, 0, 34, 110, 0, 35, 64, 112, 86,
296 190, 81, 0, 11, 0, 29, 0, 107, 0, 64,
297 190, 81, 110, 0, 0, 64, 190, 81, 87, 111,
298 155, 83, 0, 110, 0, 112, 53, 112, 0, 112,
299 54, 112, 0, 112, 55, 112, 0, 112, 56, 112,
300 0, 112, 57, 112, 0, 112, 51, 112, 0, 112,
301 52, 112, 0, 112, 50, 112, 0, 112, 49, 112,
302 0, 112, 48, 112, 0, 112, 46, 112, 0, 112,
303 47, 112, 0, 0, 112, 45, 113, 112, 0, 0,
304 112, 44, 114, 112, 0, 0, 0, 112, 42, 115,
305 104, 43, 116, 112, 0, 0, 112, 42, 117, 43,
306 112, 0, 112, 41, 112, 0, 112, 40, 112, 0,
307 3, 0, 8, 0, 119, 0, 64, 104, 81, 0,
308 64, 1, 81, 0, 206, 205, 81, 0, 206, 1,
309 81, 0, 118, 64, 105, 81, 0, 118, 65, 104,
310 88, 0, 118, 63, 102, 0, 118, 62, 102, 0,
311 118, 59, 0, 118, 60, 0, 308, 0, 314, 0,
312 315, 0, 316, 0, 120, 0, 9, 0, 119, 9,
313 0, 80, 0, 120, 80, 0, 0, 123, 0, 123,
314 10, 0, 212, 213, 124, 0, 122, 0, 198, 0,
315 123, 122, 0, 122, 198, 0, 132, 127, 140, 82,
316 0, 135, 127, 141, 82, 0, 132, 82, 0, 135,
317 82, 0, 212, 213, 129, 0, 125, 0, 198, 0,
318 126, 125, 0, 125, 198, 0, 0, 0, 130, 127,
319 140, 82, 0, 134, 127, 141, 82, 0, 130, 127,
320 163, 0, 134, 127, 166, 0, 130, 82, 0, 134,
321 82, 0, 247, 129, 0, 138, 131, 0, 134, 138,
322 131, 0, 0, 131, 139, 0, 131, 5, 0, 131,
323 148, 0, 138, 133, 0, 135, 138, 133, 0, 0,
324 133, 139, 0, 133, 5, 0, 135, 0, 148, 0,
325 134, 135, 0, 134, 148, 0, 7, 0, 5, 0,
326 135, 7, 0, 135, 5, 0, 138, 137, 0, 192,
327 138, 137, 0, 0, 137, 139, 0, 6, 0, 176,
328 0, 4, 0, 72, 264, 0, 77, 264, 0, 265,
329 0, 28, 64, 104, 81, 0, 28, 64, 190, 81,
330 0, 6, 0, 7, 0, 176, 0, 143, 0, 140,
331 86, 143, 0, 145, 0, 141, 86, 143, 0, 0,
332 27, 64, 119, 81, 0, 0, 169, 142, 147, 41,
333 144, 153, 0, 169, 142, 147, 0, 0, 172, 142,
334 147, 41, 146, 153, 0, 172, 142, 147, 0, 0,
335 148, 0, 149, 0, 148, 149, 0, 30, 64, 64,
336 150, 81, 81, 0, 151, 0, 150, 86, 151, 0,
337 0, 152, 0, 152, 64, 3, 81, 0, 152, 64,
338 3, 86, 106, 81, 0, 152, 64, 105, 81, 0,
339 102, 0, 5, 0, 6, 0, 7, 0, 112, 0,
340 0, 87, 154, 155, 83, 0, 1, 0, 0, 156,
341 181, 0, 157, 0, 156, 86, 157, 0, 161, 41,
342 159, 0, 162, 159, 0, 0, 102, 43, 158, 159,
343 0, 159, 0, 0, 87, 160, 155, 83, 0, 112,
344 0, 1, 0, 162, 0, 161, 162, 0, 63, 102,
345 0, 0, 0, 169, 164, 121, 165, 207, 0, 0,
346 0, 172, 167, 121, 168, 207, 0, 170, 0, 172,
347 0, 64, 170, 81, 0, 170, 64, 242, 0, 170,
348 65, 104, 88, 0, 170, 65, 88, 0, 55, 193,
349 170, 0, 148, 128, 170, 0, 4, 0, 77, 0,
350 171, 64, 242, 0, 171, 65, 104, 88, 0, 171,
351 65, 88, 0, 55, 193, 171, 0, 148, 128, 171,
352 0, 4, 0, 172, 64, 242, 0, 64, 172, 81,
353 0, 55, 193, 172, 0, 172, 65, 104, 88, 0,
354 172, 65, 88, 0, 148, 128, 172, 0, 3, 0,
355 13, 0, 13, 148, 0, 14, 0, 14, 148, 0,
356 12, 0, 12, 148, 0, 0, 173, 102, 87, 177,
357 183, 83, 147, 0, 173, 87, 183, 83, 147, 0,
358 173, 102, 0, 0, 174, 102, 87, 178, 183, 83,
359 147, 0, 174, 87, 183, 83, 147, 0, 174, 102,
360 0, 0, 175, 102, 87, 179, 188, 182, 83, 147,
361 0, 0, 175, 87, 180, 188, 182, 83, 147, 0,
362 175, 102, 0, 0, 86, 0, 0, 86, 0, 184,
363 0, 184, 185, 0, 0, 184, 185, 82, 0, 184,
364 82, 0, 70, 64, 72, 81, 0, 136, 127, 186,
365 0, 136, 127, 212, 213, 147, 0, 192, 127, 186,
366 0, 192, 0, 1, 0, 247, 185, 0, 187, 0,
367 186, 86, 187, 0, 212, 213, 169, 147, 0, 212,
368 213, 169, 43, 112, 147, 0, 212, 213, 43, 112,
369 147, 0, 189, 0, 188, 86, 189, 0, 1, 0,
370 102, 0, 102, 41, 112, 0, 136, 191, 0, 192,
371 191, 0, 0, 194, 0, 7, 0, 192, 7, 0,
372 0, 193, 7, 0, 64, 194, 81, 0, 55, 193,
373 194, 0, 55, 193, 0, 194, 64, 235, 0, 194,
374 65, 104, 88, 0, 194, 65, 88, 0, 64, 235,
375 0, 65, 104, 88, 0, 65, 88, 0, 148, 128,
376 194, 0, 196, 0, 215, 0, 196, 215, 0, 196,
377 198, 0, 0, 195, 0, 1, 82, 0, 0, 0,
378 201, 0, 202, 0, 201, 202, 0, 32, 246, 82,
379 0, 207, 0, 1, 207, 0, 87, 0, 83, 0,
380 199, 200, 126, 197, 83, 0, 199, 200, 1, 83,
381 0, 199, 200, 195, 83, 0, 64, 87, 0, 204,
382 205, 0, 209, 214, 0, 209, 1, 0, 15, 64,
383 104, 81, 0, 0, 18, 211, 214, 17, 0, 0,
384 0, 212, 213, 217, 0, 212, 213, 228, 214, 0,
385 212, 213, 216, 0, 217, 0, 228, 0, 207, 0,
386 225, 0, 104, 82, 0, 0, 208, 16, 218, 214,
387 0, 208, 0, 208, 16, 1, 0, 0, 0, 17,
388 219, 64, 104, 81, 220, 214, 0, 210, 64, 104,
389 81, 82, 0, 210, 1, 0, 0, 0, 0, 19,
390 64, 230, 82, 221, 230, 82, 222, 230, 81, 223,
391 214, 0, 0, 20, 64, 104, 81, 224, 214, 0,
392 23, 82, 0, 24, 82, 0, 25, 82, 0, 25,
393 104, 82, 0, 27, 229, 64, 104, 81, 82, 0,
394 27, 229, 64, 104, 43, 231, 81, 82, 0, 27,
395 229, 64, 104, 43, 231, 43, 231, 81, 82, 0,
396 27, 229, 64, 104, 43, 231, 43, 231, 43, 234,
397 81, 82, 0, 26, 102, 82, 0, 26, 55, 104,
398 82, 0, 82, 0, 226, 0, 0, 19, 64, 118,
399 81, 227, 214, 0, 21, 112, 43, 0, 21, 112,
400 10, 112, 43, 0, 22, 43, 0, 102, 43, 147,
401 0, 0, 7, 0, 0, 104, 0, 0, 232, 0,
402 233, 0, 232, 86, 233, 0, 9, 64, 104, 81,
403 0, 119, 0, 234, 86, 119, 0, 0, 236, 237,
404 0, 239, 81, 0, 0, 240, 82, 238, 237, 0,
405 1, 81, 0, 0, 10, 0, 240, 0, 240, 86,
406 10, 0, 241, 0, 240, 86, 241, 0, 130, 127,
407 171, 147, 0, 130, 127, 172, 147, 0, 130, 127,
408 191, 147, 0, 134, 127, 172, 147, 0, 134, 127,
409 191, 147, 0, 0, 243, 244, 0, 237, 0, 245,
410 81, 0, 3, 0, 245, 86, 3, 0, 102, 0,
411 246, 86, 102, 0, 31, 0, 252, 0, 250, 0,
412 251, 0, 262, 0, 272, 0, 68, 0, 102, 0,
413 249, 86, 102, 0, 78, 249, 82, 0, 79, 102,
414 102, 82, 0, 0, 0, 66, 102, 264, 87, 253,
415 266, 83, 254, 279, 68, 0, 0, 66, 102, 264,
416 255, 279, 68, 0, 0, 0, 66, 102, 43, 102,
417 264, 87, 256, 266, 83, 257, 279, 68, 0, 0,
418 66, 102, 43, 102, 264, 258, 279, 68, 0, 0,
419 67, 102, 87, 259, 266, 83, 0, 67, 102, 0,
420 0, 67, 102, 43, 102, 87, 260, 266, 83, 0,
421 67, 102, 43, 102, 0, 0, 66, 102, 64, 102,
422 81, 264, 261, 279, 68, 0, 67, 102, 64, 102,
423 81, 0, 0, 76, 102, 264, 263, 279, 68, 0,
424 0, 265, 0, 50, 249, 50, 0, 266, 267, 268,
425 0, 268, 0, 74, 0, 75, 0, 73, 0, 0,
426 268, 269, 82, 0, 268, 82, 0, 136, 127, 270,
427 0, 192, 127, 270, 0, 1, 0, 0, 271, 0,
428 270, 86, 271, 0, 169, 0, 169, 43, 112, 0,
429 43, 112, 0, 0, 0, 0, 53, 273, 289, 274,
430 290, 275, 203, 0, 0, 0, 0, 54, 276, 289,
431 277, 290, 278, 203, 0, 0, 0, 280, 281, 0,
432 284, 0, 94, 0, 281, 284, 0, 0, 281, 282,
433 94, 0, 82, 0, 1, 0, 0, 0, 53, 285,
434 289, 286, 283, 0, 0, 0, 54, 287, 289, 288,
435 283, 0, 64, 190, 81, 298, 0, 298, 0, 64,
436 190, 81, 299, 296, 0, 299, 296, 0, 0, 82,
437 291, 0, 0, 292, 0, 293, 0, 198, 0, 292,
438 293, 0, 293, 198, 0, 130, 127, 294, 82, 0,
439 130, 82, 0, 134, 82, 0, 295, 0, 294, 86,
440 295, 0, 171, 147, 0, 172, 147, 0, 191, 147,
441 0, 0, 86, 10, 0, 0, 86, 297, 239, 0,
442 300, 0, 302, 0, 299, 302, 0, 3, 0, 4,
443 0, 77, 0, 301, 0, 12, 0, 13, 0, 14,
444 0, 15, 0, 16, 0, 17, 0, 18, 0, 19,
445 0, 20, 0, 21, 0, 22, 0, 23, 0, 24,
446 0, 25, 0, 26, 0, 27, 0, 11, 0, 28,
447 0, 29, 0, 6, 0, 7, 0, 300, 43, 64,
448 190, 81, 102, 0, 300, 43, 102, 0, 43, 64,
449 190, 81, 102, 0, 43, 102, 0, 300, 0, 304,
450 0, 306, 0, 304, 306, 0, 106, 0, 300, 43,
451 305, 0, 43, 305, 0, 104, 0, 72, 0, 0,
452 0, 65, 309, 307, 310, 303, 88, 0, 300, 0,
453 312, 0, 313, 0, 312, 313, 0, 300, 43, 0,
454 43, 0, 69, 64, 311, 81, 0, 76, 64, 102,
455 81, 0, 71, 64, 190, 81, 0
461 static const short yyrline
[] = { 0,
462 261, 266, 280, 282, 282, 283, 285, 287, 288, 289,
463 297, 301, 311, 315, 319, 321, 323, 324, 325, 330,
464 337, 339, 343, 347, 353, 355, 359, 363, 369, 371,
465 375, 381, 383, 384, 385, 388, 390, 392, 394, 396,
466 398, 400, 404, 408, 411, 414, 417, 421, 423, 426,
467 429, 433, 461, 467, 470, 473, 476, 478, 480, 484,
468 488, 492, 494, 497, 501, 528, 530, 532, 534, 536,
469 538, 540, 542, 544, 546, 548, 550, 552, 554, 558,
470 560, 564, 566, 569, 573, 575, 582, 585, 593, 604,
471 611, 612, 614, 620, 622, 645, 654, 656, 658, 670,
472 684, 686, 688, 690, 692, 694, 696, 701, 703, 710,
473 712, 716, 718, 719, 729, 734, 736, 737, 738, 745,
474 750, 754, 757, 765, 770, 772, 773, 774, 781, 791,
475 795, 800, 804, 808, 812, 814, 816, 825, 828, 832,
476 834, 836, 841, 845, 848, 852, 855, 857, 869, 872,
477 874, 876, 880, 884, 886, 889, 902, 905, 909, 911,
478 919, 920, 921, 925, 927, 932, 934, 936, 942, 943,
479 944, 947, 949, 952, 954, 957, 960, 966, 973, 975,
480 982, 989, 992, 999, 1002, 1006, 1009, 1013, 1018, 1021,
481 1025, 1028, 1030, 1032, 1034, 1041, 1043, 1044, 1045, 1050,
482 1052, 1054, 1056, 1061, 1065, 1068, 1070, 1075, 1077, 1078,
483 1081, 1081, 1084, 1087, 1089, 1091, 1094, 1096, 1099, 1107,
484 1121, 1129, 1133, 1147, 1155, 1162, 1164, 1169, 1172, 1177,
485 1179, 1181, 1188, 1190, 1191, 1199, 1205, 1207, 1209, 1216,
486 1218, 1224, 1230, 1232, 1234, 1236, 1243, 1245, 1248, 1251,
487 1255, 1258, 1262, 1265, 1269, 1274, 1276, 1280, 1282, 1284,
488 1286, 1290, 1292, 1294, 1297, 1299, 1302, 1306, 1308, 1311,
489 1313, 1318, 1321, 1326, 1328, 1330, 1334, 1358, 1364, 1377,
490 1382, 1387, 1389, 1394, 1396, 1400, 1404, 1408, 1418, 1420,
491 1425, 1430, 1433, 1437, 1440, 1444, 1447, 1450, 1453, 1457,
492 1460, 1464, 1468, 1470, 1472, 1474, 1476, 1478, 1480, 1482,
493 1486, 1494, 1502, 1504, 1506, 1510, 1512, 1515, 1518, 1530,
494 1532, 1537, 1539, 1542, 1556, 1559, 1562, 1564, 1566, 1570,
495 1574, 1580, 1598, 1603, 1608, 1611, 1625, 1634, 1638, 1642,
496 1646, 1652, 1656, 1661, 1664, 1669, 1672, 1673, 1689, 1694,
497 1697, 1709, 1711, 1721, 1731, 1732, 1739, 1741, 1753, 1757,
498 1771, 1777, 1783, 1784, 1788, 1792, 1796, 1800, 1811, 1818,
499 1825, 1832, 1843, 1849, 1852, 1857, 1880, 1910, 1916, 1922,
500 1928, 1942, 1946, 1950, 1953, 1958, 1960, 1963, 1965, 1969,
501 1974, 1977, 1983, 1988, 1993, 1995, 2004, 2005, 2011, 2013,
502 2023, 2025, 2029, 2032, 2038, 2047, 2055, 2063, 2072, 2085,
503 2090, 2095, 2097, 2106, 2109, 2114, 2117, 2121, 2130, 2132,
504 2133, 2134, 2135, 2136, 2150, 2153, 2157, 2163, 2169, 2176,
505 2181, 2187, 2194, 2200, 2206, 2211, 2217, 2224, 2230, 2236,
506 2242, 2250, 2256, 2262, 2270, 2277, 2283, 2292, 2299, 2307,
507 2312, 2315, 2325, 2327, 2330, 2332, 2333, 2336, 2341, 2342,
508 2359, 2365, 2370, 2374, 2377, 2378, 2381, 2389, 2395, 2404,
509 2414, 2421, 2425, 2430, 2439, 2446, 2450, 2460, 2462, 2463,
510 2465, 2467, 2468, 2469, 2470, 2472, 2474, 2477, 2485, 2492,
511 2492, 2499, 2505, 2507, 2513, 2518, 2523, 2532, 2534, 2540,
512 2542, 2545, 2547, 2548, 2549, 2552, 2557, 2559, 2563, 2566,
513 2573, 2579, 2584, 2591, 2596, 2601, 2606, 2613, 2617, 2620,
514 2626, 2628, 2629, 2630, 2633, 2635, 2636, 2637, 2638, 2639,
515 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649,
516 2650, 2651, 2652, 2653, 2653, 2656, 2662, 2667, 2672, 2678,
517 2680, 2683, 2685, 2692, 2704, 2709, 2715, 2717, 2723, 2727,
518 2728, 2734, 2736, 2739, 2741, 2747, 2752, 2758, 2765, 2774
523 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
525 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
526 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
527 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
528 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
529 "EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG","PTR_VALUE","PTR_BASE","PTR_EXTENT",
530 "END_OF_LINE","ASSIGN","'='","'?'","':'","OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE",
531 "ARITHCOMPARE","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS",
532 "MINUSMINUS","HYPERUNARY","POINTSAT","'.'","'('","'['","INTERFACE","IMPLEMENTATION",
533 "END","SELECTOR","DEFS","ENCODE","CLASSNAME","PUBLIC","PRIVATE","PROTECTED",
534 "PROTOCOL","OBJECTNAME","CLASS","ALIAS","OBJC_STRING","')'","';'","'}'","'~'",
535 "'!'","','","'{'","']'","program","extdefs","@1","@2","extdef","datadef","fndef",
536 "@3","@4","@5","@6","@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist",
537 "unary_expr","sizeof","alignof","cast_expr","@9","expr_no_commas","@10","@11",
538 "@12","@13","@14","primary","string","objc_string","old_style_parm_decls","lineno_datadecl",
539 "datadecls","datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
540 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
541 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
542 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
543 "initdcl","@15","notype_initdcl","@16","maybe_attribute","attributes","attribute",
544 "attribute_list","attrib","any_word","init","@17","initlist_maybe_comma","initlist1",
545 "initelt","@18","initval","@19","designator_list","designator","nested_function",
546 "@20","@21","notype_nested_function","@22","@23","declarator","after_type_declarator",
547 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
548 "structsp","@24","@25","@26","@27","maybecomma","maybecomma_warn","component_decl_list",
549 "component_decl_list2","component_decl","components","component_declarator",
550 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
551 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
552 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt_nostart",
553 "compstmt_primary_start","compstmt","simple_if","if_prefix","do_stmt_start",
554 "@28","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
555 "stmt_or_label","stmt","@29","@30","@31","@32","@33","@34","@35","all_iter_stmt",
556 "all_iter_stmt_simple","@36","label","maybe_type_qual","xexpr","asm_operands",
557 "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@37","parmlist_1",
558 "@38","parmlist_2","parms","parm","parmlist_or_identifiers","@39","parmlist_or_identifiers_1",
559 "identifiers","identifiers_or_typenames","extension","objcdef","identifier_list",
560 "classdecl","aliasdecl","classdef","@40","@41","@42","@43","@44","@45","@46",
561 "@47","@48","protocoldef","@49","protocolrefs","non_empty_protocolrefs","ivar_decl_list",
562 "visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator","methoddef",
563 "@50","@51","@52","@53","@54","@55","methodprotolist","@56","methodprotolist2",
564 "@57","semi_or_error","methodproto","@58","@59","@60","@61","methoddecl","optarglist",
565 "myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@62","unaryselector",
566 "keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist",
567 "keywordexpr","keywordarg","receiver","objcmessageexpr","@63","@64","selectorarg",
568 "keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr","objcencodeexpr", NULL
572 static const short yyr1
[] = { 0,
573 89, 89, 91, 90, 92, 90, 93, 93, 93, 93,
574 93, 94, 94, 94, 94, 94, 94, 94, 94, 96,
575 97, 95, 95, 98, 99, 95, 95, 100, 101, 95,
576 95, 102, 102, 102, 102, 103, 103, 103, 103, 103,
577 103, 103, 104, 105, 105, 106, 106, 107, 107, 107,
578 107, 107, 107, 107, 107, 107, 107, 107, 107, 108,
579 109, 110, 110, 111, 110, 112, 112, 112, 112, 112,
580 112, 112, 112, 112, 112, 112, 112, 112, 113, 112,
581 114, 112, 115, 116, 112, 117, 112, 112, 112, 118,
582 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
583 118, 118, 118, 118, 118, 118, 118, 119, 119, 120,
584 120, 121, 121, 121, 122, 123, 123, 123, 123, 124,
585 124, 124, 124, 125, 126, 126, 126, 126, 127, 128,
586 129, 129, 129, 129, 129, 129, 129, 130, 130, 131,
587 131, 131, 131, 132, 132, 133, 133, 133, 134, 134,
588 134, 134, 135, 135, 135, 135, 136, 136, 137, 137,
589 138, 138, 138, 138, 138, 138, 138, 138, 139, 139,
590 139, 140, 140, 141, 141, 142, 142, 144, 143, 143,
591 146, 145, 145, 147, 147, 148, 148, 149, 150, 150,
592 151, 151, 151, 151, 151, 152, 152, 152, 152, 153,
593 154, 153, 153, 155, 155, 156, 156, 157, 157, 158,
594 157, 157, 160, 159, 159, 159, 161, 161, 162, 164,
595 165, 163, 167, 168, 166, 169, 169, 170, 170, 170,
596 170, 170, 170, 170, 170, 171, 171, 171, 171, 171,
597 171, 172, 172, 172, 172, 172, 172, 172, 173, 173,
598 174, 174, 175, 175, 177, 176, 176, 176, 178, 176,
599 176, 176, 179, 176, 180, 176, 176, 181, 181, 182,
600 182, 183, 183, 184, 184, 184, 184, 185, 185, 185,
601 185, 185, 185, 186, 186, 187, 187, 187, 188, 188,
602 188, 189, 189, 190, 190, 191, 191, 192, 192, 193,
603 193, 194, 194, 194, 194, 194, 194, 194, 194, 194,
604 194, 195, 196, 196, 196, 197, 197, 198, 199, 200,
605 200, 201, 201, 202, 203, 203, 204, 205, 205, 205,
606 205, 206, 207, 208, 208, 209, 211, 210, 212, 213,
607 214, 214, 215, 216, 216, 217, 217, 217, 218, 217,
608 217, 217, 219, 220, 217, 217, 217, 221, 222, 223,
609 217, 224, 217, 217, 217, 217, 217, 217, 217, 217,
610 217, 217, 217, 217, 225, 227, 226, 228, 228, 228,
611 228, 229, 229, 230, 230, 231, 231, 232, 232, 233,
612 234, 234, 236, 235, 237, 238, 237, 237, 239, 239,
613 239, 239, 240, 240, 241, 241, 241, 241, 241, 243,
614 242, 244, 244, 245, 245, 246, 246, 247, 248, 248,
615 248, 248, 248, 248, 249, 249, 250, 251, 253, 254,
616 252, 255, 252, 256, 257, 252, 258, 252, 259, 252,
617 252, 260, 252, 252, 261, 252, 252, 263, 262, 264,
618 264, 265, 266, 266, 267, 267, 267, 268, 268, 268,
619 269, 269, 269, 270, 270, 270, 271, 271, 271, 273,
620 274, 275, 272, 276, 277, 278, 272, 279, 280, 279,
621 281, 281, 281, 282, 281, 283, 283, 285, 286, 284,
622 287, 288, 284, 289, 289, 289, 289, 290, 290, 291,
623 291, 292, 292, 292, 292, 293, 293, 293, 294, 294,
624 295, 295, 295, 296, 296, 297, 296, 298, 299, 299,
625 300, 300, 300, 300, 301, 301, 301, 301, 301, 301,
626 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
627 301, 301, 301, 301, 301, 302, 302, 302, 302, 303,
628 303, 304, 304, 305, 306, 306, 307, 307, 309, 310,
629 308, 311, 311, 312, 312, 313, 313, 314, 315, 316
632 static const short yyr2
[] = { 0,
633 0, 1, 0, 2, 0, 3, 1, 1, 1, 5,
634 2, 3, 4, 4, 2, 2, 2, 2, 1, 0,
635 0, 7, 4, 0, 0, 7, 4, 0, 0, 6,
636 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
637 1, 1, 1, 0, 1, 1, 3, 1, 2, 2,
638 2, 2, 2, 4, 2, 4, 2, 2, 6, 1,
639 1, 1, 4, 0, 7, 1, 3, 3, 3, 3,
640 3, 3, 3, 3, 3, 3, 3, 3, 0, 4,
641 0, 4, 0, 0, 7, 0, 5, 3, 3, 1,
642 1, 1, 3, 3, 3, 3, 4, 4, 3, 3,
643 2, 2, 1, 1, 1, 1, 1, 1, 2, 1,
644 2, 0, 1, 2, 3, 1, 1, 2, 2, 4,
645 4, 2, 2, 3, 1, 1, 2, 2, 0, 0,
646 4, 4, 3, 3, 2, 2, 2, 2, 3, 0,
647 2, 2, 2, 2, 3, 0, 2, 2, 1, 1,
648 2, 2, 1, 1, 2, 2, 2, 3, 0, 2,
649 1, 1, 1, 2, 2, 1, 4, 4, 1, 1,
650 1, 1, 3, 1, 3, 0, 4, 0, 6, 3,
651 0, 6, 3, 0, 1, 1, 2, 6, 1, 3,
652 0, 1, 4, 6, 4, 1, 1, 1, 1, 1,
653 0, 4, 1, 0, 2, 1, 3, 3, 2, 0,
654 4, 1, 0, 4, 1, 1, 1, 2, 2, 0,
655 0, 5, 0, 0, 5, 1, 1, 3, 3, 4,
656 3, 3, 3, 1, 1, 3, 4, 3, 3, 3,
657 1, 3, 3, 3, 4, 3, 3, 1, 1, 2,
658 1, 2, 1, 2, 0, 7, 5, 2, 0, 7,
659 5, 2, 0, 8, 0, 7, 2, 0, 1, 0,
660 1, 1, 2, 0, 3, 2, 4, 3, 5, 3,
661 1, 1, 2, 1, 3, 4, 6, 5, 1, 3,
662 1, 1, 3, 2, 2, 0, 1, 1, 2, 0,
663 2, 3, 3, 2, 3, 4, 3, 2, 3, 2,
664 3, 1, 1, 2, 2, 0, 1, 2, 0, 0,
665 1, 1, 2, 3, 1, 2, 1, 1, 5, 4,
666 4, 2, 2, 2, 2, 4, 0, 4, 0, 0,
667 3, 4, 3, 1, 1, 1, 1, 2, 0, 4,
668 1, 3, 0, 0, 7, 5, 2, 0, 0, 0,
669 12, 0, 6, 2, 2, 2, 3, 6, 8, 10,
670 12, 3, 4, 1, 1, 0, 6, 3, 5, 2,
671 3, 0, 1, 0, 1, 0, 1, 1, 3, 4,
672 1, 3, 0, 2, 2, 0, 4, 2, 0, 1,
673 1, 3, 1, 3, 4, 4, 4, 4, 4, 0,
674 2, 1, 2, 1, 3, 1, 3, 1, 1, 1,
675 1, 1, 1, 1, 1, 3, 3, 4, 0, 0,
676 10, 0, 6, 0, 0, 12, 0, 8, 0, 6,
677 2, 0, 8, 4, 0, 9, 5, 0, 6, 0,
678 1, 3, 3, 1, 1, 1, 1, 0, 3, 2,
679 3, 3, 1, 0, 1, 3, 1, 3, 2, 0,
680 0, 0, 7, 0, 0, 0, 7, 0, 0, 2,
681 1, 1, 2, 0, 3, 1, 1, 0, 0, 5,
682 0, 0, 5, 4, 1, 5, 2, 0, 2, 0,
683 1, 1, 1, 2, 2, 4, 2, 2, 1, 3,
684 2, 2, 2, 0, 2, 0, 3, 1, 1, 2,
685 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
686 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
687 1, 1, 1, 1, 1, 6, 3, 5, 2, 1,
688 1, 1, 2, 1, 3, 2, 1, 1, 0, 0,
689 6, 1, 1, 1, 2, 2, 1, 4, 4, 4
692 static const short yydefact
[] = { 3,
693 5, 0, 0, 0, 163, 154, 161, 153, 253, 249,
694 251, 0, 0, 0, 418, 0, 470, 474, 0, 0,
695 424, 450, 0, 450, 0, 0, 19, 4, 8, 7,
696 0, 129, 129, 149, 140, 150, 186, 0, 0, 0,
697 162, 0, 9, 420, 421, 419, 422, 166, 423, 6,
698 17, 18, 254, 250, 252, 0, 0, 0, 32, 33,
699 35, 34, 425, 0, 0, 0, 450, 441, 164, 451,
700 450, 165, 0, 0, 248, 300, 0, 0, 174, 130,
701 0, 16, 0, 15, 0, 151, 140, 152, 156, 155,
702 138, 187, 274, 258, 274, 262, 265, 267, 11, 90,
703 91, 108, 60, 61, 0, 0, 0, 0, 36, 38,
704 37, 0, 39, 40, 0, 559, 0, 0, 0, 110,
705 41, 42, 0, 0, 43, 62, 0, 0, 66, 46,
706 48, 92, 107, 0, 0, 103, 104, 105, 106, 298,
707 0, 296, 159, 0, 296, 191, 452, 0, 521, 522,
708 544, 545, 541, 525, 526, 527, 528, 529, 530, 531,
709 532, 533, 534, 535, 536, 537, 538, 539, 540, 542,
710 543, 0, 0, 523, 471, 495, 514, 518, 524, 519,
711 475, 0, 0, 432, 0, 0, 439, 448, 427, 0,
712 0, 0, 12, 0, 0, 31, 0, 410, 0, 0,
713 184, 234, 300, 0, 235, 0, 172, 130, 0, 226,
714 227, 0, 0, 139, 142, 169, 170, 141, 143, 171,
715 0, 0, 0, 255, 0, 259, 0, 263, 57, 58,
716 0, 52, 49, 0, 332, 0, 0, 0, 0, 0,
717 0, 51, 0, 0, 0, 53, 0, 55, 0, 0,
718 83, 81, 79, 0, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 101, 102, 0, 0, 44,
720 0, 109, 111, 0, 328, 320, 0, 50, 167, 300,
721 393, 0, 130, 294, 297, 157, 168, 299, 159, 295,
722 197, 198, 199, 196, 0, 189, 192, 426, 0, 549,
723 0, 498, 516, 497, 0, 520, 0, 498, 450, 0,
724 429, 479, 444, 0, 458, 479, 428, 301, 244, 243,
725 175, 176, 247, 0, 242, 0, 246, 0, 0, 29,
726 0, 339, 117, 340, 183, 185, 0, 0, 14, 0,
727 0, 23, 0, 184, 410, 0, 13, 27, 0, 0,
728 184, 282, 276, 129, 273, 129, 0, 274, 184, 274,
729 291, 292, 270, 289, 0, 0, 94, 93, 0, 558,
730 557, 560, 567, 562, 0, 563, 564, 0, 0, 10,
731 47, 0, 0, 89, 88, 0, 0, 0, 0, 77,
732 78, 76, 75, 74, 72, 73, 67, 68, 69, 70,
733 71, 100, 99, 0, 45, 0, 96, 0, 0, 321,
734 322, 95, 304, 0, 308, 0, 310, 0, 0, 393,
735 0, 160, 158, 0, 191, 44, 0, 0, 0, 472,
736 515, 399, 0, 547, 476, 437, 450, 458, 0, 0,
737 442, 447, 0, 0, 0, 0, 0, 414, 400, 129,
738 129, 412, 0, 401, 403, 411, 0, 245, 318, 0,
739 119, 114, 118, 0, 181, 232, 228, 173, 233, 21,
740 180, 229, 231, 0, 25, 0, 257, 339, 275, 339,
741 283, 0, 261, 0, 0, 271, 0, 270, 0, 64,
742 63, 0, 566, 568, 0, 565, 570, 569, 54, 56,
743 0, 0, 82, 80, 97, 98, 416, 0, 0, 0,
744 339, 0, 0, 126, 340, 313, 323, 303, 302, 394,
745 309, 311, 305, 307, 0, 188, 190, 90, 0, 0,
746 494, 514, 129, 0, 503, 499, 501, 0, 0, 517,
747 401, 0, 0, 434, 479, 445, 0, 433, 488, 491,
748 482, 0, 129, 129, 484, 481, 458, 457, 455, 456,
749 440, 458, 463, 460, 129, 129, 0, 449, 177, 398,
750 296, 296, 395, 396, 0, 413, 0, 0, 327, 30,
751 319, 325, 115, 129, 129, 146, 0, 0, 178, 230,
752 0, 277, 278, 284, 340, 280, 340, 184, 184, 293,
753 290, 184, 0, 0, 0, 0, 550, 0, 551, 552,
754 84, 87, 324, 0, 330, 128, 127, 317, 0, 331,
755 315, 340, 314, 0, 306, 193, 0, 195, 548, 496,
756 507, 296, 508, 504, 505, 473, 0, 477, 458, 0,
757 479, 430, 0, 0, 176, 0, 0, 0, 483, 0,
758 0, 464, 464, 459, 241, 300, 393, 130, 184, 184,
759 184, 300, 130, 184, 184, 0, 402, 404, 415, 326,
760 333, 122, 0, 123, 0, 146, 144, 203, 201, 200,
761 182, 22, 0, 26, 339, 184, 0, 256, 260, 266,
762 184, 59, 216, 90, 0, 213, 0, 215, 0, 268,
763 206, 212, 0, 0, 554, 556, 0, 561, 0, 553,
764 0, 417, 329, 0, 163, 0, 353, 337, 0, 0,
765 0, 0, 0, 0, 0, 0, 382, 450, 450, 374,
766 0, 0, 124, 129, 129, 346, 351, 0, 0, 343,
767 344, 347, 375, 345, 0, 0, 184, 184, 184, 0,
768 509, 546, 0, 438, 0, 479, 489, 492, 485, 443,
769 0, 467, 461, 465, 462, 304, 0, 410, 0, 405,
770 406, 407, 304, 0, 408, 409, 397, 0, 0, 145,
771 148, 147, 0, 179, 285, 0, 279, 130, 184, 264,
772 219, 0, 210, 65, 0, 205, 0, 218, 209, 555,
773 85, 0, 0, 339, 384, 0, 0, 380, 364, 365,
774 366, 0, 0, 0, 383, 0, 184, 348, 135, 0,
775 136, 0, 0, 335, 340, 334, 357, 0, 137, 194,
776 511, 512, 513, 506, 296, 435, 446, 0, 0, 0,
777 469, 0, 0, 239, 240, 236, 238, 0, 120, 121,
778 0, 184, 0, 286, 0, 0, 207, 208, 0, 0,
779 0, 385, 48, 0, 0, 0, 378, 367, 0, 372,
780 0, 381, 0, 133, 220, 0, 134, 223, 352, 339,
781 0, 0, 510, 479, 431, 487, 486, 490, 493, 468,
782 466, 237, 202, 288, 184, 214, 211, 336, 0, 338,
783 376, 358, 362, 0, 373, 0, 131, 0, 132, 0,
784 350, 341, 339, 0, 0, 287, 354, 339, 384, 339,
785 379, 386, 0, 221, 224, 342, 356, 436, 339, 377,
786 0, 363, 0, 0, 387, 388, 368, 0, 0, 355,
787 359, 0, 386, 0, 0, 222, 225, 384, 0, 0,
788 369, 389, 0, 390, 0, 0, 360, 391, 0, 370,
789 339, 0, 0, 361, 371, 392, 0, 0, 0
792 static const short yydefgoto
[] = { 967,
793 1, 2, 3, 28, 29, 30, 343, 588, 349, 591,
794 200, 460, 697, 123, 236, 404, 125, 126, 127, 128,
795 129, 605, 130, 389, 388, 386, 711, 387, 131, 132,
796 133, 330, 331, 332, 583, 510, 511, 31, 341, 733,
797 450, 91, 584, 677, 451, 34, 142, 286, 35, 218,
798 206, 78, 201, 207, 683, 79, 587, 335, 336, 37,
799 295, 296, 297, 681, 783, 699, 700, 701, 856, 702,
800 792, 703, 704, 874, 908, 938, 877, 910, 939, 322,
801 210, 747, 211, 38, 39, 40, 41, 358, 360, 365,
802 227, 796, 487, 222, 223, 355, 593, 594, 363, 364,
803 144, 749, 145, 191, 285, 512, 513, 619, 333, 276,
804 409, 410, 411, 580, 581, 277, 134, 582, 737, 738,
805 739, 804, 825, 464, 826, 516, 740, 741, 880, 803,
806 929, 919, 948, 961, 920, 742, 743, 918, 744, 816,
807 864, 934, 935, 936, 959, 415, 416, 452, 666, 453,
808 454, 455, 325, 326, 456, 457, 508, 135, 43, 64,
809 44, 45, 46, 438, 756, 312, 639, 884, 545, 315,
810 557, 641, 47, 316, 69, 48, 443, 562, 444, 567,
811 763, 764, 49, 65, 302, 539, 66, 308, 543, 439,
812 440, 555, 648, 888, 556, 643, 839, 644, 840, 175,
813 430, 536, 537, 538, 750, 751, 304, 432, 176, 177,
814 178, 179, 180, 608, 609, 706, 610, 372, 136, 238,
815 492, 375, 376, 377, 137, 138, 139
818 static const short yypact
[] = { 102,
819 124, 3399, 3399, 214,-32768,-32768,-32768,-32768, 70, 70,
820 70, 114, 145, 206,-32768, 152,-32768,-32768, 152, 152,
821 -32768, 94, 152, 94, 152, 152,-32768,-32768,-32768,-32768,
822 189, 197, 1269, 271,-32768, 70,-32768, 135, 230, 306,
823 -32768, 3399,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
824 -32768,-32768, 70, 70, 70, 3083, 2906, 223,-32768,-32768,
825 -32768,-32768,-32768, 61, 3667, 3667, 131, 50,-32768,-32768,
826 94,-32768, 252, 152,-32768,-32768, 189, 293,-32768, 70,
827 2040,-32768, 479,-32768, 189, 271,-32768, 70,-32768,-32768,
828 910,-32768, 224, 219, 224, 229,-32768, 242,-32768,-32768,
829 -32768,-32768,-32768,-32768, 3083, 3083, 313, 152,-32768,-32768,
830 -32768, 3083,-32768,-32768, 1620,-32768, 322, 332, 346,-32768,
831 -32768,-32768, 3083, 254, 330,-32768, 3142, 3201,-32768, 3961,
832 523, 335, 347, 985, 3083,-32768,-32768,-32768,-32768,-32768,
833 349, 434,-32768, 360, 3794, 343,-32768, 152,-32768,-32768,
834 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
835 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
836 -32768, 368, 3874,-32768,-32768,-32768, 2795, 415,-32768,-32768,
837 -32768, 152, 152, 362, 152, 152,-32768,-32768,-32768, 386,
838 503, 292,-32768, 479, 189,-32768, 402,-32768, 2224, 255,
839 70,-32768,-32768, 479,-32768, 337,-32768, 70, 2143, 406,
840 475, 418, 2059, 910,-32768,-32768,-32768,-32768, 70,-32768,
841 416, 408, 1966,-32768, 420,-32768, 119,-32768,-32768,-32768,
842 3083,-32768,-32768, 424,-32768, 451, 472, 2965, 3700, 3874,
843 152,-32768, 477, 3083, 1620,-32768, 1620,-32768, 3083, 3083,
844 514,-32768,-32768, 3083, 3083, 3083, 3083, 3083, 3083, 3083,
845 3083, 3083, 3083, 3083, 3083,-32768,-32768, 152, 152, 3083,
846 3083,-32768,-32768, 483,-32768, 539, 496,-32768,-32768,-32768,
847 434, 2288, 70,-32768, 486, 666,-32768,-32768,-32768,-32768,
848 -32768,-32768,-32768,-32768, 222,-32768, 525,-32768, 3874,-32768,
849 513, 519, 593,-32768, 415,-32768, 443, 519, 94, 527,
850 -32768, 543, 537, 544,-32768, 543,-32768,-32768, 475,-32768,
851 -32768, 600, 475, 626,-32768, 103,-32768, 573, 603,-32768,
852 793, 80,-32768,-32768, 646, 70, 384, 325,-32768, 479,
853 479,-32768, 255, 70,-32768, 2352,-32768,-32768, 255, 617,
854 70,-32768,-32768,-32768, 611, 354, 3600, 224, 70, 224,
855 -32768, 662, 620,-32768, 119, 1283,-32768,-32768, 2710,-32768,
856 -32768,-32768,-32768, 664, 630, 3700,-32768, 633, 654,-32768,
857 3961, 655, 657, 3961, 3961, 3083, 665, 3083, 3083, 1588,
858 1391, 672, 1068, 1257, 688, 688, 627, 627,-32768,-32768,
859 -32768,-32768,-32768, 667, 330, 663,-32768, 152, 1185, 539,
860 -32768,-32768, 388, 448,-32768, 3553,-32768, 670, 434,-32768,
861 2416,-32768, 666, 671, 343, 3260, 673, 3735, 2162,-32768,
862 -32768, 3371, 3874,-32768,-32768, 668, 94,-32768, 685, 3479,
863 -32768,-32768, 487, 3342, 691, 79, 680,-32768,-32768,-32768,
864 3824,-32768, 682, 436,-32768,-32768, 273,-32768,-32768, 77,
865 -32768,-32768,-32768, 3863,-32768, 406,-32768,-32768, 406,-32768,
866 723,-32768,-32768, 677,-32768, 686,-32768,-32768,-32768,-32768,
867 -32768, 683,-32768, 690, 3083, 152, 694, 620, 3874,-32768,
868 -32768, 3768,-32768,-32768, 664,-32768,-32768,-32768,-32768,-32768,
869 735, 3083, 1125, 1238,-32768,-32768,-32768, 437, 509, 1082,
870 697, 699, 1341,-32768,-32768,-32768,-32768, 486,-32768,-32768,
871 -32768, 486,-32768,-32768, 696,-32768,-32768, 283, 705, 152,
872 -32768, 2795, 706, 2174,-32768,-32768, 3824, 2193, 77,-32768,
873 701, 709, 77,-32768, 543,-32768, 555,-32768,-32768,-32768,
874 -32768, 189, 197, 1269, 258,-32768,-32768,-32768,-32768,-32768,
875 -32768,-32768,-32768,-32768,-32768, 3891, 710,-32768,-32768,-32768,
876 227, 298,-32768,-32768, 3813,-32768, 790, 708,-32768,-32768,
877 713,-32768,-32768, 730, 3583,-32768, 873, 77,-32768,-32768,
878 77,-32768, 733,-32768,-32768, 733,-32768, 70, 70, 3961,
879 -32768, 70, 737, 741, 1705, 3083, 773, 740, 3768,-32768,
880 -32768, 1673,-32768, 152,-32768,-32768,-32768,-32768, 746,-32768,
881 -32768,-32768,-32768, 2566,-32768,-32768, 3083,-32768,-32768,-32768,
882 -32768, 227,-32768,-32768,-32768,-32768, 152,-32768,-32768, 755,
883 543,-32768, 3667, 3667, 98, 479, 189, 3498,-32768, 577,
884 3359, 447, 447,-32768,-32768,-32768, 298, 70, 259, 370,
885 70,-32768, 70, 370, 70, 3553,-32768,-32768,-32768,-32768,
886 -32768,-32768, 479,-32768, 189,-32768, 1143,-32768,-32768, 3961,
887 -32768,-32768, 873,-32768,-32768, 471, 471,-32768,-32768,-32768,
888 70,-32768,-32768, 788, 152,-32768, 791, 3961, 752, 750,
889 -32768,-32768, 87, 1875, 330,-32768, 3083,-32768, 773,-32768,
890 3083,-32768,-32768, 2651, 795, 775,-32768,-32768, 777, 778,
891 3083, 801, 765, 780, 3024, 243, 861, 76, 200,-32768,
892 826, 789,-32768, 796, 3572,-32768, 856, 1450, 95,-32768,
893 -32768,-32768,-32768,-32768, 2823, 336, 259, 370, 70, 490,
894 -32768,-32768, 581,-32768, 805, 543,-32768,-32768,-32768,-32768,
895 3083, 832, 797,-32768, 797, 602, 227,-32768, 2480,-32768,
896 -32768,-32768, 640, 298,-32768,-32768,-32768, 536, 554, 1143,
897 -32768,-32768, 1705,-32768,-32768, 3083,-32768, 122, 75,-32768,
898 -32768, 1705,-32768,-32768, 1790,-32768, 1955,-32768,-32768,-32768,
899 1673, 3083, 813,-32768, 3083, 3083, 921,-32768,-32768,-32768,
900 -32768, 803, 3083, 806,-32768, 825, 70,-32768,-32768, 479,
901 -32768, 189, 1535,-32768,-32768,-32768,-32768, 3083,-32768,-32768,
902 -32768,-32768,-32768,-32768, 227,-32768,-32768, 822, 83, 83,
903 3961, 3083, 447, 610, 610,-32768,-32768, 807,-32768,-32768,
904 808, 3925, 3083,-32768, 810, 1955,-32768,-32768, 816, 3083,
905 877,-32768, 482, 817, 819, 3083,-32768,-32768, 821,-32768,
906 3083,-32768, 560,-32768, 236, 562,-32768, 744,-32768,-32768,
907 2651, 820,-32768, 543,-32768,-32768,-32768,-32768,-32768, 3961,
908 -32768,-32768,-32768,-32768, 3925,-32768,-32768,-32768, 824,-32768,
909 -32768,-32768,-32768, 3943,-32768, 160,-32768, 255,-32768, 255,
910 -32768,-32768,-32768, 827, 830,-32768,-32768,-32768, 3083,-32768,
911 -32768, 901, 829,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
912 831,-32768, 848, 168, 828,-32768,-32768, 708, 708,-32768,
913 -32768, 3083, 901, 837, 901,-32768,-32768, 3083, 839, 171,
914 -32768,-32768, 849,-32768, 626, 847,-32768, 335, 373,-32768,
915 -32768, 852, 626,-32768,-32768, 335, 935, 939,-32768
918 static const short yypgoto
[] = {-32768,
919 -32768,-32768,-32768, 100, -375,-32768,-32768,-32768,-32768,-32768,
920 -32768,-32768, -14,-32768, -56, 515, -226, 280,-32768,-32768,
921 -74,-32768, 596,-32768,-32768,-32768,-32768,-32768, 140, -310,
922 -32768, -313, 614,-32768,-32768, 439,-32768, 248, -46, 202,
923 15, 864,-32768, 272, 38, -26, -172, 698, 492, -244,
924 -602, -82, -181, -120,-32768,-32768,-32768, -262, 44, -32,
925 -32768, 529,-32768, 269,-32768, -638,-32768, 164,-32768, -631,
926 -32768,-32768, 276,-32768,-32768,-32768,-32768,-32768,-32768, -73,
927 -109, -502, 2,-32768,-32768,-32768, -78,-32768,-32768,-32768,
928 -32768,-32768, 467, -27,-32768, 623, 521, 310, 656, 538,
929 -24, -75, -159, -168, -236, 511,-32768,-32768, -239,-32768,
930 -32768,-32768, 613, -22,-32768, 444,-32768, -526,-32768,-32768,
931 -32768,-32768, -192, -449, -719, 516,-32768, 146,-32768,-32768,
932 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 147,-32768,
933 -818, 88,-32768, 89,-32768, 612,-32768, -353,-32768, 604,
934 605, 466, -306,-32768,-32768,-32768,-32768, 17,-32768, 1017,
935 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
936 -32768,-32768,-32768,-32768, -9, 5, -355,-32768, 481,-32768,
937 394, 205,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -300,
938 -32768,-32768,-32768, 211, 497,-32768,-32768,-32768,-32768, -23,
939 745,-32768,-32768, 518,-32768, 225, 531,-32768, 631, 636,
940 -140,-32768, -127,-32768,-32768, 359, 462,-32768,-32768,-32768,
941 -32768,-32768,-32768, 700,-32768,-32768,-32768
948 static const short yytable
[] = { 124,
949 141, 63, 212, 92, 67, 68, 86, 334, 71, 209,
950 63, 74, 220, 446, 72, 445, 32, 32, 42, 42,
951 92, 92, 92, 94, 96, 98, 70, 344, 70, 470,
952 229, 230, 81, 195, 337, 475, 305, 233, 472, 33,
953 33, 422, 181, 405, 414, 36, 36, 92, 242, 306,
954 354, 670, 53, 54, 55, 92, 32, 184, 42, 190,
955 278, 188, 520, 356, 551, 624, 284, 225, 659, 290,
956 778, 70, 799, 321, 80, 70, 88, 578, 192, 33,
957 -113, 471, 547, 886, 861, 36, 213, 272, 477, 462,
958 237, 461, 185, 232, 338, 827, 483, 736, 374, 14,
959 931, -1, 50, 447, 14, 448, 5, 6, 7, 8,
960 147, 413, 449, 186, 9, 10, 11, 853, -35, 361,
961 80, 59, 60, -2, 197, 16, 208, 797, 80, 953,
962 13, 294, 14, 298, 219, 220, 187, 59, 60, 334,
963 344, 99, 328, 16, 851, 686, 148, 687, 301, 695,
964 334, 14, 16, 855, 59, 60, 334, 300, 828, 569,
965 911, 198, 199, 579, 887, 858, -113, 309, 310, 514,
966 313, 314, 714, 182, 22, 92, 518, 56, 422, 24,
967 16, 371, 522, -399, 354, 283, 92, 736, 283, 535,
968 61, 75, 319, 926, 183, 62, 323, 356, 930, 405,
969 932, 650, 922, -185, -185, 192, 61, 220, 57, 940,
970 943, 62, 362, 955, 406, 378, 515, 873, 14, 468,
971 382, 93, 383, 61, 897, 418, 379, 466, 62, 75,
972 655, 469, 59, 60, 80, 495, 419, 208, 80, 357,
973 923, 964, -34, 76, 640, 59, 60, 208, 944, 16,
974 92, 956, 77, 402, 403, 329, 14, 219, -339, -339,
975 -339, -339, 197, 844, 845, -176, -339, -339, -339, 58,
976 616, 565, 759, 621, 427, 89, -176, 90, 82, 83,
977 85, 656, -339, 753, 566, 595, 146, 597, 14, 474,
978 657, 282, 434, 221, 491, 51, 52, 813, 635, 436,
979 75, 61, 424, 92, -339, 224, 62, 425, 59, 60,
980 549, 550, 777, 70, 61, 226, 95, -176, 515, 62,
981 622, -176, 768, 769, 283, -480, -339, 14, 228, 501,
982 482, -339, 484, 189, 243, 688, 689, 148, 319, 690,
983 755, -112, 323, 272, 220, 59, 60, 291, 292, 293,
984 362, 607, 662, 576, 736, 198, 199, 5, 577, 7,
985 288, 657, 282, 626, 525, 9, 10, 11, 627, 36,
986 59, 60, 320, 357, 193, 881, 231, 61, 194, 705,
987 208, 13, 62, 208, 208, 239, 75, 202, 345, 346,
988 318, 305, 97, 507, 318, 240, 770, 771, 772, 14,
989 746, 775, 776, 16, 306, 467, 246, 248, 542, 241,
990 294, 946, 947, 14, 61, 244, 830, 14, 339, 62,
991 414, 244, 340, 787, 86, 22, 273, 546, 790, 279,
992 24, 299, 782, 198, 199, -281, -281, 585, 203, 61,
993 287, 70, 280, 533, 62, 59, 60, 204, 311, 75,
994 202, 281, 282, 962, 553, 838, 283, 307, 963, 36,
995 205, 846, 283, 14, 604, 324, 534, 317, 709, 345,
996 346, 362, 36, 75, 202, 36, 14, 554, 565, 350,
997 705, 75, 202, 36, 831, 832, 833, 766, 280, 761,
998 351, 566, 597, 773, 88, 661, 665, 281, 282, 347,
999 14, 203, 359, 194, 367, 75, 433, 86, 14, 318,
1000 204, 420, 421, 786, 61, 629, 636, 574, 613, 62,
1001 638, 575, 614, 205, 87, 203, 854, 86, 519, 518,
1002 522, 368, 14, 203, 204, 782, 518, 522, 198, 199,
1003 266, 267, 204, 268, 269, 270, 271, 205, 143, 420,
1004 421, 533, 369, 645, 872, 205, -86, 76, 380, 558,
1005 559, 560, 901, 407, 212, 682, 77, 732, 684, 561,
1006 408, 834, 660, 664, 534, 835, 412, 88, 762, 762,
1007 36, 266, 267, 915, 268, 269, 270, 271, 426, 894,
1008 459, 615, 779, 428, 924, 80, 925, 88, 220, 712,
1009 429, 478, 431, 480, 75, 655, 143, 437, 318, 731,
1010 -478, 767, 789, 789, 658, 663, 774, 849, 36, 757,
1011 758, 340, 752, 441, 442, 92, 197, 558, 559, 560,
1012 92, 14, 916, 748, 102, 850, 289, 642, 734, 194,
1013 745, 907, 75, 909, 958, 340, 318, 194, 645, 558,
1014 559, 560, 966, 558, 559, 560, 656, 732, 192, 760,
1015 458, 735, 553, 836, 143, 657, 282, 36, 812, 14,
1016 278, 216, 217, 768, 769, 658, 645, 9, 10, 11,
1017 791, 263, 264, 265, 459, 554, 465, 552, 476, 208,
1018 80, 36, 479, 344, 662, 208, 208, 571, 572, 731,
1019 663, 220, 485, 657, 282, 486, 493, 502, 86, 36,
1020 494, 814, 848, 497, 143, 334, 208, 334, 80, 72,
1021 257, 258, 259, 260, 261, 262, 263, 264, 265, 788,
1022 208, 143, 70, 70, 498, 499, 143, 500, 143, 876,
1023 261, 262, 263, 264, 265, 859, 875, 505, 862, 865,
1024 506, 526, 548, 530, 544, 92, 869, 521, 568, 734,
1025 570, 745, 573, 589, 590, 598, 592, 319, 323, 762,
1026 197, 882, 599, -176, 319, 323, 602, 611, 88, -316,
1027 632, 620, 735, 625, -176, 628, 575, 631, 36, 637,
1028 143, 654, 669, 329, 579, 275, -116, -116, -116, -116,
1029 646, 647, -116, 899, -116, -116, -116, 198, 199, 658,
1030 658, 672, 652, 653, 906, 707, 663, 663, 685, 691,
1031 -116, 692, 754, 878, 732, -176, 366, 708, 713, -176,
1032 -32, 673, 675, 793, 794, 795, 748, -33, 802, 381,
1033 805, 806, -116, 808, 384, 385, 809, 289, 143, 390,
1034 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
1035 401, 810, 862, 208, -116, 80, 731, 815, 817, -116,
1036 818, 823, 837, 678, 842, 100, 860, 819, 658, -116,
1037 101, 102, 843, 103, 868, 949, 208, 870, 871, 885,
1038 893, 862, 896, 900, 892, 552, 898, 928, 902, 903,
1039 914, 104, 905, 15, 917, 105, 106, 107, 927, 933,
1040 937, 942, 941, 945, 215, 216, 217, 108, 951, 954,
1041 109, 9, 10, 11, 143, 110, 111, 112, 960, 957,
1042 866, 113, 114, 965, 968, 143, 115, 116, 969, 14,
1043 529, 117, 87, 118, 863, 463, 829, 780, 119, 617,
1044 214, 784, 120, 527, 603, 586, 121, 122, 857, 679,
1045 249, 250, 251, 867, 252, 253, 254, 255, 256, 257,
1046 258, 259, 260, 261, 262, 263, 264, 265, 798, 481,
1047 143, 820, 822, 503, 504, 274, 423, -319, -319, -319,
1048 -319, -319, -319, -319, 785, -319, -319, -319, -319, -319,
1049 596, -319, -319, -319, -319, -319, -319, -319, -319, -319,
1050 -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
1051 488, 618, 517, 601, 671, 87, 912, 913, 623, -319,
1052 950, 523, -319, 952, -319, 540, 541, -319, -319, -319,
1053 668, 73, 651, -319, -319, 87, 765, 891, -319, -319,
1054 889, 649, 435, -319, 634, -319, -319, 289, 531, 883,
1055 -319, -319, 630, 532, -319, 800, -319, 275, -319, -319,
1056 710, -319, 0, 0, 0, 496, 676, 0, 0, 0,
1057 600, 0, 329, 0, -125, -125, -125, -125, -125, -125,
1058 -125, 0, -125, -125, -125, -125, -125, 612, -125, -125,
1059 -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
1060 -125, -125, -125, 0, -125, -125, -125, 258, 259, 260,
1061 261, 262, 263, 264, 265, 0, -125, 0, 0, -125,
1062 0, -125, 0, 0, -125, -125, -125, 0, 0, 0,
1063 -125, -125, 143, 0, 0, -125, -125, 781, 216, 217,
1064 -125, 0, -125, -125, 9, 10, 11, -125, -125, 0,
1065 0, -125, 0, -125, -125, -125, -125, 0, -125, 253,
1066 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
1067 264, 265, 680, 0, 0, 509, 0, -339, -339, -339,
1068 -339, -339, -339, -339, 0, -339, -339, -339, -339, -339,
1069 698, -339, -339, -339, -339, -339, -339, -339, -339, -339,
1070 -339, -339, -339, -339, -339, -339, 0, -339, -339, -339,
1071 0, 0, 0, 0, 0, 0, 87, 0, 0, -339,
1072 0, 0, -339, 0, -339, 0, 0, -339, -339, -339,
1073 0, 0, 0, -339, -339, 0, 0, 0, -339, -339,
1074 0, 0, 0, -339, 0, -339, -339, 0, 0, 0,
1075 -339, -339, 0, 0, -339, 0, -339, 0, -339, -339,
1076 0, -339, 5, 6, 7, 8, 0, 0, 680, 0,
1077 9, 10, 11, 254, 255, 256, 257, 258, 259, 260,
1078 261, 262, 263, 264, 265, 0, 13, 0, 14, 698,
1079 0, 0, 0, 0, 0, 0, 801, 259, 260, 261,
1080 262, 263, 264, 265, 0, 0, 807, 0, 16, 0,
1081 0, 0, 249, 250, 251, 0, 252, 253, 254, 255,
1082 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1083 22, 329, 0, -339, -339, 24, 0, 0, -339, -339,
1084 84, -339, 0, 0, 0, -339, 841, -339, -339, -339,
1085 -339, -339, -339, -339, -339, -339, -339, -339, 489, -339,
1086 0, -339, 0, -339, -339, -339, 0, 0, 698, 0,
1087 0, 852, 0, 0, 0, -339, 0, 698, -339, 0,
1088 698, 0, 698, -339, -339, -339, 0, 0, 0, -339,
1089 -339, 0, 0, 0, -339, -339, 0, 0, 0, -339,
1090 0, -339, -339, 0, 0, 0, -339, -339, 0, 0,
1091 -339, 0, -339, -312, -339, -339, 0, -339, 0, 0,
1092 0, 0, 0, 0, 0, 0, 0, 890, 256, 257,
1093 258, 259, 260, 261, 262, 263, 264, 265, 895, 0,
1094 824, 698, -339, -339, 0, 0, 0, -339, -339, 0,
1095 -339, 904, 0, 0, -339, 0, -339, -339, -339, -339,
1096 -339, -339, -339, -339, -339, -339, -339, 0, -339, 0,
1097 -339, 0, -339, -339, -339, 0, 0, 0, 0, 0,
1098 0, 0, 0, 0, -339, 0, 0, -339, 0, 0,
1099 0, 0, -339, -339, -339, 0, 0, 0, -339, -339,
1100 0, 0, 0, -339, -339, 0, 0, 0, -339, 0,
1101 -339, -339, 0, 0, 0, -339, -339, 0, 0, -339,
1102 0, -339, 0, -339, -339, 879, -339, -349, -349, 0,
1103 0, 0, -349, -349, 0, -349, 0, 0, 0, -349,
1104 0, -349, -349, -349, -349, -349, -349, -349, -349, -349,
1105 -349, -349, 0, -349, 0, -349, 0, -349, -349, -349,
1106 0, 0, 0, 0, 0, 0, 0, 0, 0, -349,
1107 0, 0, -349, 0, 0, 0, 0, -349, -349, -349,
1108 0, 0, 0, -349, -349, 0, 0, 0, -349, -349,
1109 0, 0, 0, -349, 0, -349, -349, 0, 0, 0,
1110 -349, -349, 0, 0, -349, 0, -349, 0, -349, -349,
1111 234, -349, 100, 5, 0, 7, 140, 101, 102, 0,
1112 103, 9, 10, 11, 255, 256, 257, 258, 259, 260,
1113 261, 262, 263, 264, 265, 0, 0, 13, 104, 0,
1114 15, 0, 105, 106, 107, 0, 0, 0, 0, 0,
1115 0, 0, 0, 0, 108, 0, 0, 109, 0, 16,
1116 0, 0, 110, 111, 112, 0, 0, 0, 113, 114,
1117 0, 0, 0, 115, 116, 0, 0, 0, 117, 0,
1118 118, 22, 0, 0, 0, 119, 24, 0, 0, 120,
1119 0, 0, 0, 121, 122, 693, 235, 694, 60, 0,
1120 0, 0, 101, 102, 251, 103, 252, 253, 254, 255,
1121 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1122 0, 0, 0, 104, 0, 15, 0, 105, 106, 107,
1123 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
1124 0, 0, 109, 0, 0, 0, 0, 110, 111, 112,
1125 0, 0, 0, 113, 114, 0, 0, 695, 115, 116,
1126 0, 0, 0, 117, 0, 118, 61, 0, 0, 0,
1127 119, 62, 0, 0, 120, 0, 0, -204, 121, 122,
1128 693, 696, 694, 60, 0, 0, 0, 101, 102, 0,
1129 103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1130 0, 0, 0, 0, 0, 0, 0, 0, 104, 0,
1131 15, 0, 105, 106, 107, 0, 0, 0, 0, 0,
1132 0, 0, 0, 0, 108, 0, 0, 109, 0, 0,
1133 0, 0, 110, 111, 112, 0, 0, 0, 113, 114,
1134 0, 0, 695, 115, 116, 0, 0, 0, 117, 0,
1135 118, 61, 0, 0, 0, 119, 62, 0, 0, 120,
1136 0, 0, -269, 121, 122, 693, 696, 100, 0, 0,
1137 0, 0, 101, 102, 0, 103, 0, 0, 0, 0,
1138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1139 0, 0, 0, 104, 0, 15, 0, 105, 106, 107,
1140 0, 0, 0, 0, 0, -217, 0, 0, 0, 108,
1141 0, 0, 109, 0, 0, 0, 0, 110, 111, 112,
1142 0, 0, 0, 113, 114, 0, 0, -217, 115, 116,
1143 0, 0, 0, 117, 0, 118, 0, 0, 0, 0,
1144 119, 0, 0, 0, 120, 693, 0, 100, 121, 122,
1145 0, 696, 101, 102, 0, 103, 352, 0, 0, 5,
1146 0, 7, 140, 0, 0, 0, 0, 9, 10, 11,
1147 0, 0, 0, 104, 0, 15, 0, 105, 106, 107,
1148 0, 0, 0, 13, 0, 0, 15, 0, 0, 108,
1149 0, 0, 109, 0, 0, 0, 0, 110, 111, 112,
1150 0, 0, 0, 113, 114, 16, 0, 0, 115, 116,
1151 0, 0, 0, 117, 0, 118, 0, 0, 0, 0,
1152 119, 0, 0, 0, 120, 0, 0, 22, 121, 122,
1153 196, 696, 24, -28, -28, -28, -28, 353, -272, 0,
1154 0, -28, -28, -28, 0, 0, 0, 0, 0, 348,
1155 0, 0, -24, -24, -24, -24, 197, -28, 0, -176,
1156 -24, -24, -24, 0, 0, 0, 0, 0, 0, 0,
1157 -176, 0, 0, 0, 0, 197, -24, 0, -176, -28,
1158 0, 0, 0, 0, 0, 0, 0, 0, 0, -176,
1159 0, 0, 0, 198, 199, 0, 0, 0, -24, 0,
1160 0, -28, 0, 0, 0, 0, -28, 0, 0, 0,
1161 0, -176, 198, 199, 0, -176, -28, 0, 0, 0,
1162 -24, 0, 0, 0, 0, -24, 0, 0, 0, 0,
1163 -176, 0, 0, 342, -176, -24, -20, -20, -20, -20,
1164 0, 0, 0, 0, -20, -20, -20, 0, 0, 0,
1165 0, 0, 329, 0, 0, 5, 6, 7, 8, 197,
1166 -20, 0, -176, 9, 10, 11, 0, 5, 6, 7,
1167 8, 0, 0, -176, 0, 9, 10, 11, 0, 13,
1168 0, 14, -20, 329, 0, 0, -502, -502, -502, -502,
1169 0, 13, 0, 14, -502, -502, -502, 0, 0, 0,
1170 0, 16, 0, 0, -20, 0, 0, 0, 0, -20,
1171 -502, 0, -502, 16, -176, 0, 100, 0, -176, -20,
1172 0, 101, 102, 22, 103, 0, 0, 0, 24, 0,
1173 0, 0, -502, 0, 0, 22, 0, 0, -500, 0,
1174 24, 0, 104, 0, 15, 633, 105, 106, 107, 0,
1175 0, 0, 0, 0, -502, 0, 0, 0, 108, -502,
1176 0, 109, 0, 0, 0, 0, 110, 111, 112, -502,
1177 0, 0, 113, 114, 0, 0, 0, 115, 116, 0,
1178 100, 0, 117, 0, 118, 101, 102, 0, 103, 119,
1179 0, 0, 0, 120, 0, 0, 0, 121, 122, 0,
1180 0, 327, 0, 0, 0, 0, 104, 0, 15, 0,
1181 105, 106, 107, 0, 0, 0, 0, 0, 0, 0,
1182 0, 0, 108, 0, 0, 109, 0, 0, 0, 0,
1183 110, 111, 112, 0, 0, 0, 113, 114, 0, 0,
1184 0, 115, 116, 0, 100, 0, 117, 0, 118, 101,
1185 102, 0, 103, 119, 0, 0, 0, 120, 0, 0,
1186 0, 121, 122, 0, 0, 417, 0, 0, 0, 0,
1187 104, 0, 15, 0, 105, 106, 107, 0, 0, 0,
1188 0, 0, 0, 0, 0, 0, 108, 0, 0, 109,
1189 0, 0, 0, 0, 110, 111, 112, 0, 0, 0,
1190 113, 114, 0, 0, 0, 115, 116, 0, 100, 0,
1191 117, 0, 118, 101, 102, 0, 103, 119, 0, 0,
1192 0, 120, 0, 0, 0, 121, 122, 0, 0, 473,
1193 0, 0, 0, 0, 104, 0, 15, 0, 105, 106,
1194 107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1195 108, 0, 0, 109, 0, 0, 0, 0, 110, 111,
1196 112, 0, 0, 0, 113, 114, 0, 0, 0, 115,
1197 116, 0, 100, 0, 117, 0, 118, 101, 102, 0,
1198 103, 119, 0, 0, 0, 120, 0, 0, 0, 121,
1199 122, 0, 0, 524, 0, 0, 0, 0, 104, 0,
1200 15, 0, 105, 106, 107, 0, 0, 0, 0, 0,
1201 0, 0, 0, 0, 108, 0, 0, 109, 0, 0,
1202 0, 0, 110, 111, 112, 0, 0, 0, 113, 114,
1203 0, 0, 0, 115, 116, 0, 0, 0, 117, 0,
1204 118, 0, 0, 0, 0, 119, 0, 0, 0, 120,
1205 0, 0, 0, 121, 122, 0, 0, 847, 694, 715,
1206 6, 7, 8, 101, 102, 0, 103, 9, 10, 11,
1207 716, 0, 717, 718, 719, 720, 721, 722, 723, 724,
1208 725, 726, 727, 13, 104, 14, 15, 0, 105, 106,
1209 107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1210 108, 0, 0, 109, 0, 16, 0, 0, 110, 111,
1211 112, 0, 0, 0, 113, 114, 0, 0, 0, 115,
1212 116, 0, 0, 0, 117, 0, 118, 728, 0, 0,
1213 0, 119, 729, 0, 0, 120, 0, 730, 0, 121,
1214 122, 0, 579, 694, 60, 0, 0, 0, 101, 102,
1215 0, 103, 0, 0, 0, 716, 0, 717, 718, 719,
1216 720, 721, 722, 723, 724, 725, 726, 727, 0, 104,
1217 0, 15, 0, 105, 106, 107, 0, 0, 0, 0,
1218 0, 0, 0, 0, 0, 108, 0, 0, 109, 0,
1219 0, 0, 0, 110, 111, 112, 0, 0, 0, 113,
1220 114, 0, 100, 0, 115, 116, 0, 101, 102, 117,
1221 103, 118, 61, 0, 0, 0, 119, 62, 0, 0,
1222 120, 0, 730, 0, 121, 122, 0, 579, 104, 0,
1223 15, 0, 105, 106, 107, 0, 0, 0, 0, 0,
1224 0, 0, 0, 0, 108, 0, 0, 109, 0, 0,
1225 0, 0, 110, 111, 112, 0, 0, 0, 113, 114,
1226 0, 0, 0, 115, 116, 0, 0, 0, 117, 0,
1227 118, 0, 0, 0, 0, 119, 0, 0, 0, 120,
1228 0, 0, 0, 121, 122, 0, 490, 149, 150, 0,
1229 151, 152, 0, 0, 0, 153, 154, 155, 156, 157,
1230 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
1231 168, 169, 170, 171, 0, 100, 5, 6, 7, 8,
1232 101, 102, 0, 103, 9, 10, 11, 172, 0, 0,
1233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1234 13, 104, 14, 15, 0, 105, 106, 107, 0, 0,
1235 0, 0, 0, 0, 0, 0, 0, 108, 0, 0,
1236 109, 174, 16, 0, 0, 110, 111, 112, 0, 0,
1237 303, 113, 114, 0, 0, 0, 115, 116, 0, 0,
1238 0, 117, 0, 118, 22, 0, 0, 0, 119, 24,
1239 0, 0, 120, 0, 0, 0, 121, 122, 100, 5,
1240 0, 7, 140, 101, 102, 0, 103, 9, 10, 11,
1241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1242 0, 0, 0, 13, 104, 0, 15, 0, 105, 106,
1243 107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1244 108, 0, 0, 109, 0, 16, 0, 0, 110, 111,
1245 112, 0, 0, 0, 113, 114, 0, 100, 0, 115,
1246 116, 0, 101, 102, 117, 103, 118, 22, 0, 0,
1247 0, 119, 24, 0, 0, 120, 0, 0, 0, 121,
1248 122, 0, 0, 104, 0, 15, 0, 105, 106, 107,
1249 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
1250 0, 0, 109, 0, 0, 0, 0, 110, 111, 112,
1251 0, 0, 0, 113, 114, 0, 100, 0, 115, 116,
1252 0, 101, 102, 117, 103, 118, 370, 0, 0, 0,
1253 119, 0, 0, 0, 120, 0, 0, 0, 121, 122,
1254 0, 0, 104, 0, 15, 0, 105, 106, 107, 0,
1255 0, 0, 0, 0, 0, 0, 0, 0, 108, 0,
1256 0, 109, 0, 0, 0, 0, 110, 111, 112, 0,
1257 0, 0, 113, 114, 0, 100, 0, 115, 116, 0,
1258 101, 102, 117, 103, 118, 0, 0, 0, 0, 119,
1259 0, 0, 0, 120, 0, 811, 0, 121, 122, 0,
1260 0, 104, 0, 15, 0, 105, 106, 107, 0, 0,
1261 0, 0, 0, 0, 0, 0, 0, 108, 0, 0,
1262 109, 0, 0, 0, 0, 110, 111, 112, 0, 0,
1263 0, 113, 114, 0, 100, 0, 115, 116, 0, 101,
1264 102, 117, 103, 118, 0, 0, 0, 0, 119, 0,
1265 0, 0, 120, 0, 0, 0, 121, 122, 0, 0,
1266 104, 0, 15, 0, 105, 106, 107, 0, 0, 0,
1267 0, 0, 0, 0, 0, 0, 108, 0, 0, 109,
1268 0, 0, 0, 0, 110, 111, 112, 0, 0, 0,
1269 113, 114, 0, 100, 0, 245, 116, 0, 101, 102,
1270 117, 103, 118, 0, 0, 0, 0, 119, 0, 0,
1271 0, 120, 0, 0, 0, 121, 122, 0, 0, 104,
1272 0, 15, 0, 105, 106, 107, 0, 0, 0, 0,
1273 0, 0, 0, 0, 0, 108, 0, 0, 109, 0,
1274 0, 0, 0, 110, 111, 112, 0, 0, 0, 113,
1275 114, 0, 528, 0, 247, 116, 0, 101, 102, 117,
1276 103, 118, 0, 0, 0, 0, 119, 0, 0, 0,
1277 120, 0, 0, 0, 121, 122, 0, 0, 104, 0,
1278 15, 0, 105, 106, 107, 0, 0, 0, 0, 0,
1279 0, 0, 0, 0, 108, 0, 0, 109, 0, 0,
1280 0, 0, 110, 111, 112, 0, 0, 0, 113, 114,
1281 0, 0, 0, 115, 116, 0, 0, 0, 117, 0,
1282 118, 0, 0, 0, 0, 119, 0, 0, 0, 120,
1283 0, 0, 563, 121, 122, 5, 0, 7, 140, 0,
1284 0, 0, 0, 9, 10, 11, 0, 0, 0, 563,
1285 0, 0, 5, 0, 7, 140, 0, 0, 0, 13,
1286 9, 10, 11, 0, 5, 6, 7, 8, 0, 0,
1287 449, 0, 9, 10, 11, 0, 13, 0, 0, 0,
1288 0, 16, 0, 0, 0, 0, 0, 0, 13, 4,
1289 14, -129, 5, 6, 7, 8, 0, 0, 16, 0,
1290 9, 10, 11, 22, -454, -454, -454, 0, 24, 0,
1291 16, 0, 0, 564, -454, 12, 13, 0, 14, 15,
1292 22, -453, -453, -453, 0, 24, 0, 0, 0, 0,
1293 564, -453, 22, 0, 0, 0, 0, 24, 16, 0,
1294 0, 17, 18, -129, 0, 0, 0, 0, 0, 0,
1295 0, 0, -129, 0, 19, 20, 21, 0, 0, 0,
1296 22, 0, 0, 0, 23, 24, 25, 26, 0, 4,
1297 27, -129, 5, 6, 7, 8, 0, 0, 0, 0,
1298 9, 10, 11, 0, 0, 0, 0, 0, 4, 0,
1299 -129, 5, 6, 7, 8, 0, 13, 0, 14, 9,
1300 10, 11, 0, 0, 0, 0, 0, 0, 0, 0,
1301 0, 0, 0, 0, 0, 13, 0, 14, 16, 0,
1302 0, 549, 550, -129, 0, 0, 0, 0, 0, 0,
1303 0, 0, -129, 0, 0, 0, 0, 16, 0, 0,
1304 22, 0, -129, 447, 0, 24, 5, 6, 7, 8,
1305 27, -129, 449, 0, 9, 10, 11, 0, 0, 22,
1306 0, 0, 0, 0, 24, 5, 6, 7, 8, 27,
1307 13, 0, 14, 9, 10, 11, 5, 89, 7, 90,
1308 0, 0, 0, 0, 9, 10, 11, 0, 0, 13,
1309 352, 14, 16, 5, 0, 7, 140, 0, 0, 0,
1310 13, 9, 10, 11, 0, 0, 0, 0, 0, 0,
1311 0, 16, 0, 0, 22, 0, 0, 13, 0, 24,
1312 15, 0, 16, -399, 0, 0, 0, 0, 0, 0,
1313 0, 0, 0, 22, 0, 0, 0, 0, 24, 16,
1314 0, 0, 0, 821, 22, 0, 0, 0, 0, 24,
1315 0, 0, 0, 0, 674, 0, 0, 0, 0, 149,
1316 150, 22, 151, 152, 0, 0, 24, 153, 154, 155,
1317 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1318 166, 167, 168, 169, 170, 171, 0, 0, 0, 0,
1319 0, 0, 149, 150, 0, 151, 152, 0, 0, 172,
1320 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
1321 163, 164, 165, 166, 167, 168, 169, 170, 171, 0,
1322 173, 0, 0, 0, 0, 0, 0, 149, 150, 0,
1323 151, 152, 373, 174, 0, 153, 154, 155, 156, 157,
1324 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
1325 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
1326 149, 150, 0, 151, 152, 0, 174, 172, 153, 154,
1327 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1328 165, 166, 167, 168, 169, 170, 171, 5, 0, 7,
1329 288, 0, 0, 0, 0, 9, 10, 11, 0, 0,
1330 606, 174, 0, 0, 0, 0, 5, 6, 7, 8,
1331 0, 13, 667, 14, 9, 10, 11, 5, 6, 7,
1332 8, 0, 0, 0, 0, 9, 10, 11, 0, 0,
1333 13, 0, 14, 16, 174, 0, 0, 0, 280, 0,
1334 0, 13, 0, 14, 0, 0, 0, 281, 282, 0,
1335 0, 0, 16, 0, 0, 22, 5, 6, 7, 8,
1336 24, 0, 0, 16, 9, 10, 11, 5, 0, 7,
1337 140, 0, 0, 0, 22, 9, 10, 11, 0, 24,
1338 13, 0, 0, 0, 5, 22, 7, 288, 0, 0,
1339 24, 13, 9, 10, 11, 0, 0, 0, 0, 0,
1340 0, 0, 16, 0, 0, 0, 0, 0, 13, 0,
1341 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
1342 0, 0, 0, 0, 22, 0, 0, 0, 0, 24,
1343 16, 0, 0, 0, 0, 22, 0, 0, 0, 0,
1344 24, 0, 0, 0, 14, 0, 0, 0, 0, 0,
1345 0, 0, 22, 0, 249, 250, 251, 24, 252, 253,
1346 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
1347 264, 265, 249, 250, 251, 921, 252, 253, 254, 255,
1348 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1349 249, 250, 251, 0, 252, 253, 254, 255, 256, 257,
1350 258, 259, 260, 261, 262, 263, 264, 265
1353 static const short yycheck
[] = { 56,
1354 57, 16, 85, 36, 19, 20, 33, 200, 23, 83,
1355 25, 26, 91, 324, 24, 316, 2, 3, 2, 3,
1356 53, 54, 55, 38, 39, 40, 22, 209, 24, 343,
1357 105, 106, 31, 80, 203, 349, 177, 112, 345, 2,
1358 3, 286, 66, 270, 281, 2, 3, 80, 123, 177,
1359 223, 578, 9, 10, 11, 88, 42, 67, 42, 74,
1360 135, 71, 416, 223, 440, 515, 142, 95, 571, 145,
1361 673, 67, 704, 194, 31, 71, 33, 1, 77, 42,
1362 1, 344, 438, 1, 804, 42, 85, 9, 351, 10,
1363 115, 331, 43, 108, 204, 1, 359, 624, 239, 30,
1364 919, 0, 3, 1, 30, 3, 4, 5, 6, 7,
1365 50, 280, 10, 64, 12, 13, 14, 43, 43, 1,
1366 77, 3, 4, 0, 27, 50, 83, 41, 85, 948,
1367 28, 146, 30, 148, 91, 214, 87, 3, 4, 332,
1368 322, 42, 199, 50, 783, 595, 86, 597, 173, 63,
1369 343, 30, 50, 792, 3, 4, 349, 172, 64, 81,
1370 880, 64, 65, 87, 82, 797, 87, 182, 183, 409,
1371 185, 186, 622, 43, 72, 208, 413, 64, 423, 77,
1372 50, 238, 419, 81, 357, 142, 219, 714, 145, 429,
1373 72, 3, 191, 913, 64, 77, 195, 357, 918, 426,
1374 920, 557, 43, 82, 83, 204, 72, 286, 64, 929,
1375 43, 77, 227, 43, 271, 240, 409, 820, 30, 340,
1376 245, 87, 247, 72, 856, 282, 241, 337, 77, 3,
1377 4, 341, 3, 4, 191, 376, 283, 194, 195, 223,
1378 81, 961, 43, 55, 545, 3, 4, 204, 81, 50,
1379 283, 81, 64, 268, 269, 1, 30, 214, 4, 5,
1380 6, 7, 27, 766, 767, 30, 12, 13, 14, 64,
1381 510, 444, 648, 513, 299, 5, 41, 7, 82, 32,
1382 33, 55, 28, 639, 444, 478, 64, 480, 30, 346,
1383 64, 65, 307, 70, 369, 82, 83, 55, 538, 309,
1384 3, 72, 81, 336, 50, 87, 77, 86, 3, 4,
1385 53, 54, 666, 309, 72, 87, 87, 82, 511, 77,
1386 513, 86, 64, 65, 281, 68, 72, 30, 87, 386,
1387 358, 77, 360, 82, 81, 598, 599, 86, 337, 602,
1388 641, 87, 341, 9, 423, 3, 4, 5, 6, 7,
1389 365, 492, 55, 81, 881, 64, 65, 4, 86, 6,
1390 7, 64, 65, 81, 421, 12, 13, 14, 86, 326,
1391 3, 4, 81, 357, 82, 825, 64, 72, 86, 606,
1392 337, 28, 77, 340, 341, 64, 3, 4, 64, 65,
1393 7, 532, 87, 408, 7, 64, 659, 660, 661, 30,
1394 627, 664, 665, 50, 532, 81, 127, 128, 433, 64,
1395 425, 938, 939, 30, 72, 86, 81, 30, 82, 77,
1396 657, 86, 86, 686, 451, 72, 80, 437, 691, 81,
1397 77, 64, 677, 64, 65, 82, 83, 464, 55, 72,
1398 81, 437, 55, 429, 77, 3, 4, 64, 87, 3,
1399 4, 64, 65, 81, 440, 756, 413, 43, 86, 416,
1400 77, 768, 419, 30, 489, 64, 429, 82, 609, 64,
1401 65, 486, 429, 3, 4, 432, 30, 440, 651, 64,
1402 707, 3, 4, 440, 747, 748, 749, 656, 55, 43,
1403 83, 651, 685, 662, 451, 571, 572, 64, 65, 82,
1404 30, 55, 83, 86, 81, 3, 64, 534, 30, 7,
1405 64, 64, 65, 43, 72, 530, 539, 82, 82, 77,
1406 543, 86, 86, 77, 33, 55, 789, 554, 81, 766,
1407 767, 81, 30, 55, 64, 780, 773, 774, 64, 65,
1408 59, 60, 64, 62, 63, 64, 65, 77, 57, 64,
1409 65, 537, 81, 552, 817, 77, 43, 55, 82, 73,
1410 74, 75, 81, 81, 647, 588, 64, 624, 591, 83,
1411 32, 82, 571, 572, 537, 86, 81, 534, 652, 653,
1412 537, 59, 60, 884, 62, 63, 64, 65, 64, 852,
1413 82, 83, 675, 81, 908, 552, 910, 554, 677, 614,
1414 82, 354, 10, 356, 3, 4, 115, 81, 7, 624,
1415 68, 658, 686, 687, 571, 572, 663, 82, 575, 643,
1416 644, 86, 637, 87, 81, 658, 27, 73, 74, 75,
1417 663, 30, 895, 632, 9, 82, 145, 83, 624, 86,
1418 624, 82, 3, 82, 955, 86, 7, 86, 647, 73,
1419 74, 75, 963, 73, 74, 75, 55, 714, 657, 83,
1420 88, 624, 648, 83, 173, 64, 65, 624, 725, 30,
1421 745, 6, 7, 64, 65, 632, 675, 12, 13, 14,
1422 695, 55, 56, 57, 82, 648, 41, 440, 72, 646,
1423 647, 648, 82, 875, 55, 652, 653, 450, 451, 714,
1424 657, 780, 41, 64, 65, 86, 43, 43, 735, 666,
1425 81, 726, 769, 81, 223, 908, 673, 910, 675, 729,
1426 49, 50, 51, 52, 53, 54, 55, 56, 57, 686,
1427 687, 240, 728, 729, 81, 81, 245, 81, 247, 822,
1428 53, 54, 55, 56, 57, 802, 820, 81, 805, 806,
1429 88, 81, 68, 81, 87, 788, 813, 88, 68, 745,
1430 81, 745, 81, 41, 88, 83, 81, 766, 767, 843,
1431 27, 828, 83, 30, 773, 774, 83, 43, 735, 83,
1432 533, 83, 745, 88, 41, 81, 86, 82, 745, 81,
1433 299, 82, 3, 1, 87, 83, 4, 5, 6, 7,
1434 553, 554, 10, 860, 12, 13, 14, 64, 65, 766,
1435 767, 82, 565, 566, 871, 43, 773, 774, 86, 83,
1436 28, 81, 68, 822, 881, 82, 231, 88, 83, 86,
1437 43, 584, 585, 43, 83, 86, 835, 43, 64, 244,
1438 64, 64, 50, 43, 249, 250, 82, 356, 357, 254,
1439 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1440 265, 82, 919, 820, 72, 822, 881, 7, 43, 77,
1441 82, 16, 68, 1, 43, 3, 64, 82, 835, 87,
1442 8, 9, 86, 11, 82, 942, 843, 82, 64, 68,
1443 83, 948, 83, 17, 88, 648, 81, 68, 82, 81,
1444 81, 29, 82, 31, 81, 33, 34, 35, 82, 9,
1445 82, 64, 82, 86, 5, 6, 7, 45, 82, 81,
1446 48, 12, 13, 14, 433, 53, 54, 55, 82, 81,
1447 10, 59, 60, 82, 0, 444, 64, 65, 0, 30,
1448 426, 69, 451, 71, 805, 332, 745, 676, 76, 511,
1449 87, 683, 80, 425, 488, 464, 84, 85, 795, 87,
1450 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1451 50, 51, 52, 53, 54, 55, 56, 57, 703, 357,
1452 489, 734, 735, 388, 389, 1, 289, 3, 4, 5,
1453 6, 7, 8, 9, 685, 11, 12, 13, 14, 15,
1454 480, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1455 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1456 365, 511, 410, 486, 581, 534, 881, 881, 513, 45,
1457 943, 420, 48, 945, 50, 432, 432, 53, 54, 55,
1458 575, 25, 562, 59, 60, 554, 653, 843, 64, 65,
1459 840, 555, 308, 69, 537, 71, 72, 566, 428, 835,
1460 76, 77, 532, 428, 80, 707, 82, 83, 84, 85,
1461 609, 87, -1, -1, -1, 376, 585, -1, -1, -1,
1462 485, -1, 1, -1, 3, 4, 5, 6, 7, 8,
1463 9, -1, 11, 12, 13, 14, 15, 502, 17, 18,
1464 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1465 29, 30, 31, -1, 33, 34, 35, 50, 51, 52,
1466 53, 54, 55, 56, 57, -1, 45, -1, -1, 48,
1467 -1, 50, -1, -1, 53, 54, 55, -1, -1, -1,
1468 59, 60, 651, -1, -1, 64, 65, 5, 6, 7,
1469 69, -1, 71, 72, 12, 13, 14, 76, 77, -1,
1470 -1, 80, -1, 82, 83, 84, 85, -1, 87, 45,
1471 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1472 56, 57, 587, -1, -1, 1, -1, 3, 4, 5,
1473 6, 7, 8, 9, -1, 11, 12, 13, 14, 15,
1474 605, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1475 26, 27, 28, 29, 30, 31, -1, 33, 34, 35,
1476 -1, -1, -1, -1, -1, -1, 735, -1, -1, 45,
1477 -1, -1, 48, -1, 50, -1, -1, 53, 54, 55,
1478 -1, -1, -1, 59, 60, -1, -1, -1, 64, 65,
1479 -1, -1, -1, 69, -1, 71, 72, -1, -1, -1,
1480 76, 77, -1, -1, 80, -1, 82, -1, 84, 85,
1481 -1, 87, 4, 5, 6, 7, -1, -1, 683, -1,
1482 12, 13, 14, 46, 47, 48, 49, 50, 51, 52,
1483 53, 54, 55, 56, 57, -1, 28, -1, 30, 704,
1484 -1, -1, -1, -1, -1, -1, 711, 51, 52, 53,
1485 54, 55, 56, 57, -1, -1, 721, -1, 50, -1,
1486 -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
1487 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1488 72, 1, -1, 3, 4, 77, -1, -1, 8, 9,
1489 82, 11, -1, -1, -1, 15, 761, 17, 18, 19,
1490 20, 21, 22, 23, 24, 25, 26, 27, 86, 29,
1491 -1, 31, -1, 33, 34, 35, -1, -1, 783, -1,
1492 -1, 786, -1, -1, -1, 45, -1, 792, 48, -1,
1493 795, -1, 797, 53, 54, 55, -1, -1, -1, 59,
1494 60, -1, -1, -1, 64, 65, -1, -1, -1, 69,
1495 -1, 71, 72, -1, -1, -1, 76, 77, -1, -1,
1496 80, -1, 82, 83, 84, 85, -1, 87, -1, -1,
1497 -1, -1, -1, -1, -1, -1, -1, 842, 48, 49,
1498 50, 51, 52, 53, 54, 55, 56, 57, 853, -1,
1499 1, 856, 3, 4, -1, -1, -1, 8, 9, -1,
1500 11, 866, -1, -1, 15, -1, 17, 18, 19, 20,
1501 21, 22, 23, 24, 25, 26, 27, -1, 29, -1,
1502 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1503 -1, -1, -1, -1, 45, -1, -1, 48, -1, -1,
1504 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1505 -1, -1, -1, 64, 65, -1, -1, -1, 69, -1,
1506 71, 72, -1, -1, -1, 76, 77, -1, -1, 80,
1507 -1, 82, -1, 84, 85, 1, 87, 3, 4, -1,
1508 -1, -1, 8, 9, -1, 11, -1, -1, -1, 15,
1509 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1510 26, 27, -1, 29, -1, 31, -1, 33, 34, 35,
1511 -1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
1512 -1, -1, 48, -1, -1, -1, -1, 53, 54, 55,
1513 -1, -1, -1, 59, 60, -1, -1, -1, 64, 65,
1514 -1, -1, -1, 69, -1, 71, 72, -1, -1, -1,
1515 76, 77, -1, -1, 80, -1, 82, -1, 84, 85,
1516 1, 87, 3, 4, -1, 6, 7, 8, 9, -1,
1517 11, 12, 13, 14, 47, 48, 49, 50, 51, 52,
1518 53, 54, 55, 56, 57, -1, -1, 28, 29, -1,
1519 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1520 -1, -1, -1, -1, 45, -1, -1, 48, -1, 50,
1521 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1522 -1, -1, -1, 64, 65, -1, -1, -1, 69, -1,
1523 71, 72, -1, -1, -1, 76, 77, -1, -1, 80,
1524 -1, -1, -1, 84, 85, 1, 87, 3, 4, -1,
1525 -1, -1, 8, 9, 42, 11, 44, 45, 46, 47,
1526 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1527 -1, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1528 -1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
1529 -1, -1, 48, -1, -1, -1, -1, 53, 54, 55,
1530 -1, -1, -1, 59, 60, -1, -1, 63, 64, 65,
1531 -1, -1, -1, 69, -1, 71, 72, -1, -1, -1,
1532 76, 77, -1, -1, 80, -1, -1, 83, 84, 85,
1533 1, 87, 3, 4, -1, -1, -1, 8, 9, -1,
1534 11, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1535 -1, -1, -1, -1, -1, -1, -1, -1, 29, -1,
1536 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1537 -1, -1, -1, -1, 45, -1, -1, 48, -1, -1,
1538 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1539 -1, -1, 63, 64, 65, -1, -1, -1, 69, -1,
1540 71, 72, -1, -1, -1, 76, 77, -1, -1, 80,
1541 -1, -1, 83, 84, 85, 1, 87, 3, -1, -1,
1542 -1, -1, 8, 9, -1, 11, -1, -1, -1, -1,
1543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1544 -1, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1545 -1, -1, -1, -1, -1, 41, -1, -1, -1, 45,
1546 -1, -1, 48, -1, -1, -1, -1, 53, 54, 55,
1547 -1, -1, -1, 59, 60, -1, -1, 63, 64, 65,
1548 -1, -1, -1, 69, -1, 71, -1, -1, -1, -1,
1549 76, -1, -1, -1, 80, 1, -1, 3, 84, 85,
1550 -1, 87, 8, 9, -1, 11, 1, -1, -1, 4,
1551 -1, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1552 -1, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1553 -1, -1, -1, 28, -1, -1, 31, -1, -1, 45,
1554 -1, -1, 48, -1, -1, -1, -1, 53, 54, 55,
1555 -1, -1, -1, 59, 60, 50, -1, -1, 64, 65,
1556 -1, -1, -1, 69, -1, 71, -1, -1, -1, -1,
1557 76, -1, -1, -1, 80, -1, -1, 72, 84, 85,
1558 1, 87, 77, 4, 5, 6, 7, 82, 83, -1,
1559 -1, 12, 13, 14, -1, -1, -1, -1, -1, 1,
1560 -1, -1, 4, 5, 6, 7, 27, 28, -1, 30,
1561 12, 13, 14, -1, -1, -1, -1, -1, -1, -1,
1562 41, -1, -1, -1, -1, 27, 28, -1, 30, 50,
1563 -1, -1, -1, -1, -1, -1, -1, -1, -1, 41,
1564 -1, -1, -1, 64, 65, -1, -1, -1, 50, -1,
1565 -1, 72, -1, -1, -1, -1, 77, -1, -1, -1,
1566 -1, 82, 64, 65, -1, 86, 87, -1, -1, -1,
1567 72, -1, -1, -1, -1, 77, -1, -1, -1, -1,
1568 82, -1, -1, 1, 86, 87, 4, 5, 6, 7,
1569 -1, -1, -1, -1, 12, 13, 14, -1, -1, -1,
1570 -1, -1, 1, -1, -1, 4, 5, 6, 7, 27,
1571 28, -1, 30, 12, 13, 14, -1, 4, 5, 6,
1572 7, -1, -1, 41, -1, 12, 13, 14, -1, 28,
1573 -1, 30, 50, 1, -1, -1, 4, 5, 6, 7,
1574 -1, 28, -1, 30, 12, 13, 14, -1, -1, -1,
1575 -1, 50, -1, -1, 72, -1, -1, -1, -1, 77,
1576 28, -1, 30, 50, 82, -1, 3, -1, 86, 87,
1577 -1, 8, 9, 72, 11, -1, -1, -1, 77, -1,
1578 -1, -1, 50, -1, -1, 72, -1, -1, 87, -1,
1579 77, -1, 29, -1, 31, 82, 33, 34, 35, -1,
1580 -1, -1, -1, -1, 72, -1, -1, -1, 45, 77,
1581 -1, 48, -1, -1, -1, -1, 53, 54, 55, 87,
1582 -1, -1, 59, 60, -1, -1, -1, 64, 65, -1,
1583 3, -1, 69, -1, 71, 8, 9, -1, 11, 76,
1584 -1, -1, -1, 80, -1, -1, -1, 84, 85, -1,
1585 -1, 88, -1, -1, -1, -1, 29, -1, 31, -1,
1586 33, 34, 35, -1, -1, -1, -1, -1, -1, -1,
1587 -1, -1, 45, -1, -1, 48, -1, -1, -1, -1,
1588 53, 54, 55, -1, -1, -1, 59, 60, -1, -1,
1589 -1, 64, 65, -1, 3, -1, 69, -1, 71, 8,
1590 9, -1, 11, 76, -1, -1, -1, 80, -1, -1,
1591 -1, 84, 85, -1, -1, 88, -1, -1, -1, -1,
1592 29, -1, 31, -1, 33, 34, 35, -1, -1, -1,
1593 -1, -1, -1, -1, -1, -1, 45, -1, -1, 48,
1594 -1, -1, -1, -1, 53, 54, 55, -1, -1, -1,
1595 59, 60, -1, -1, -1, 64, 65, -1, 3, -1,
1596 69, -1, 71, 8, 9, -1, 11, 76, -1, -1,
1597 -1, 80, -1, -1, -1, 84, 85, -1, -1, 88,
1598 -1, -1, -1, -1, 29, -1, 31, -1, 33, 34,
1599 35, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1600 45, -1, -1, 48, -1, -1, -1, -1, 53, 54,
1601 55, -1, -1, -1, 59, 60, -1, -1, -1, 64,
1602 65, -1, 3, -1, 69, -1, 71, 8, 9, -1,
1603 11, 76, -1, -1, -1, 80, -1, -1, -1, 84,
1604 85, -1, -1, 88, -1, -1, -1, -1, 29, -1,
1605 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1606 -1, -1, -1, -1, 45, -1, -1, 48, -1, -1,
1607 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1608 -1, -1, -1, 64, 65, -1, -1, -1, 69, -1,
1609 71, -1, -1, -1, -1, 76, -1, -1, -1, 80,
1610 -1, -1, -1, 84, 85, -1, -1, 88, 3, 4,
1611 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
1612 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1613 25, 26, 27, 28, 29, 30, 31, -1, 33, 34,
1614 35, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1615 45, -1, -1, 48, -1, 50, -1, -1, 53, 54,
1616 55, -1, -1, -1, 59, 60, -1, -1, -1, 64,
1617 65, -1, -1, -1, 69, -1, 71, 72, -1, -1,
1618 -1, 76, 77, -1, -1, 80, -1, 82, -1, 84,
1619 85, -1, 87, 3, 4, -1, -1, -1, 8, 9,
1620 -1, 11, -1, -1, -1, 15, -1, 17, 18, 19,
1621 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
1622 -1, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1623 -1, -1, -1, -1, -1, 45, -1, -1, 48, -1,
1624 -1, -1, -1, 53, 54, 55, -1, -1, -1, 59,
1625 60, -1, 3, -1, 64, 65, -1, 8, 9, 69,
1626 11, 71, 72, -1, -1, -1, 76, 77, -1, -1,
1627 80, -1, 82, -1, 84, 85, -1, 87, 29, -1,
1628 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1629 -1, -1, -1, -1, 45, -1, -1, 48, -1, -1,
1630 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1631 -1, -1, -1, 64, 65, -1, -1, -1, 69, -1,
1632 71, -1, -1, -1, -1, 76, -1, -1, -1, 80,
1633 -1, -1, -1, 84, 85, -1, 87, 3, 4, -1,
1634 6, 7, -1, -1, -1, 11, 12, 13, 14, 15,
1635 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1636 26, 27, 28, 29, -1, 3, 4, 5, 6, 7,
1637 8, 9, -1, 11, 12, 13, 14, 43, -1, -1,
1638 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1639 28, 29, 30, 31, -1, 33, 34, 35, -1, -1,
1640 -1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
1641 48, 77, 50, -1, -1, 53, 54, 55, -1, -1,
1642 86, 59, 60, -1, -1, -1, 64, 65, -1, -1,
1643 -1, 69, -1, 71, 72, -1, -1, -1, 76, 77,
1644 -1, -1, 80, -1, -1, -1, 84, 85, 3, 4,
1645 -1, 6, 7, 8, 9, -1, 11, 12, 13, 14,
1646 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1647 -1, -1, -1, 28, 29, -1, 31, -1, 33, 34,
1648 35, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1649 45, -1, -1, 48, -1, 50, -1, -1, 53, 54,
1650 55, -1, -1, -1, 59, 60, -1, 3, -1, 64,
1651 65, -1, 8, 9, 69, 11, 71, 72, -1, -1,
1652 -1, 76, 77, -1, -1, 80, -1, -1, -1, 84,
1653 85, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1654 -1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
1655 -1, -1, 48, -1, -1, -1, -1, 53, 54, 55,
1656 -1, -1, -1, 59, 60, -1, 3, -1, 64, 65,
1657 -1, 8, 9, 69, 11, 71, 72, -1, -1, -1,
1658 76, -1, -1, -1, 80, -1, -1, -1, 84, 85,
1659 -1, -1, 29, -1, 31, -1, 33, 34, 35, -1,
1660 -1, -1, -1, -1, -1, -1, -1, -1, 45, -1,
1661 -1, 48, -1, -1, -1, -1, 53, 54, 55, -1,
1662 -1, -1, 59, 60, -1, 3, -1, 64, 65, -1,
1663 8, 9, 69, 11, 71, -1, -1, -1, -1, 76,
1664 -1, -1, -1, 80, -1, 82, -1, 84, 85, -1,
1665 -1, 29, -1, 31, -1, 33, 34, 35, -1, -1,
1666 -1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
1667 48, -1, -1, -1, -1, 53, 54, 55, -1, -1,
1668 -1, 59, 60, -1, 3, -1, 64, 65, -1, 8,
1669 9, 69, 11, 71, -1, -1, -1, -1, 76, -1,
1670 -1, -1, 80, -1, -1, -1, 84, 85, -1, -1,
1671 29, -1, 31, -1, 33, 34, 35, -1, -1, -1,
1672 -1, -1, -1, -1, -1, -1, 45, -1, -1, 48,
1673 -1, -1, -1, -1, 53, 54, 55, -1, -1, -1,
1674 59, 60, -1, 3, -1, 64, 65, -1, 8, 9,
1675 69, 11, 71, -1, -1, -1, -1, 76, -1, -1,
1676 -1, 80, -1, -1, -1, 84, 85, -1, -1, 29,
1677 -1, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1678 -1, -1, -1, -1, -1, 45, -1, -1, 48, -1,
1679 -1, -1, -1, 53, 54, 55, -1, -1, -1, 59,
1680 60, -1, 3, -1, 64, 65, -1, 8, 9, 69,
1681 11, 71, -1, -1, -1, -1, 76, -1, -1, -1,
1682 80, -1, -1, -1, 84, 85, -1, -1, 29, -1,
1683 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1684 -1, -1, -1, -1, 45, -1, -1, 48, -1, -1,
1685 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1686 -1, -1, -1, 64, 65, -1, -1, -1, 69, -1,
1687 71, -1, -1, -1, -1, 76, -1, -1, -1, 80,
1688 -1, -1, 1, 84, 85, 4, -1, 6, 7, -1,
1689 -1, -1, -1, 12, 13, 14, -1, -1, -1, 1,
1690 -1, -1, 4, -1, 6, 7, -1, -1, -1, 28,
1691 12, 13, 14, -1, 4, 5, 6, 7, -1, -1,
1692 10, -1, 12, 13, 14, -1, 28, -1, -1, -1,
1693 -1, 50, -1, -1, -1, -1, -1, -1, 28, 1,
1694 30, 3, 4, 5, 6, 7, -1, -1, 50, -1,
1695 12, 13, 14, 72, 73, 74, 75, -1, 77, -1,
1696 50, -1, -1, 82, 83, 27, 28, -1, 30, 31,
1697 72, 73, 74, 75, -1, 77, -1, -1, -1, -1,
1698 82, 83, 72, -1, -1, -1, -1, 77, 50, -1,
1699 -1, 53, 54, 55, -1, -1, -1, -1, -1, -1,
1700 -1, -1, 64, -1, 66, 67, 68, -1, -1, -1,
1701 72, -1, -1, -1, 76, 77, 78, 79, -1, 1,
1702 82, 3, 4, 5, 6, 7, -1, -1, -1, -1,
1703 12, 13, 14, -1, -1, -1, -1, -1, 1, -1,
1704 3, 4, 5, 6, 7, -1, 28, -1, 30, 12,
1705 13, 14, -1, -1, -1, -1, -1, -1, -1, -1,
1706 -1, -1, -1, -1, -1, 28, -1, 30, 50, -1,
1707 -1, 53, 54, 55, -1, -1, -1, -1, -1, -1,
1708 -1, -1, 64, -1, -1, -1, -1, 50, -1, -1,
1709 72, -1, 55, 1, -1, 77, 4, 5, 6, 7,
1710 82, 64, 10, -1, 12, 13, 14, -1, -1, 72,
1711 -1, -1, -1, -1, 77, 4, 5, 6, 7, 82,
1712 28, -1, 30, 12, 13, 14, 4, 5, 6, 7,
1713 -1, -1, -1, -1, 12, 13, 14, -1, -1, 28,
1714 1, 30, 50, 4, -1, 6, 7, -1, -1, -1,
1715 28, 12, 13, 14, -1, -1, -1, -1, -1, -1,
1716 -1, 50, -1, -1, 72, -1, -1, 28, -1, 77,
1717 31, -1, 50, 81, -1, -1, -1, -1, -1, -1,
1718 -1, -1, -1, 72, -1, -1, -1, -1, 77, 50,
1719 -1, -1, -1, 82, 72, -1, -1, -1, -1, 77,
1720 -1, -1, -1, -1, 82, -1, -1, -1, -1, 3,
1721 4, 72, 6, 7, -1, -1, 77, 11, 12, 13,
1722 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1723 24, 25, 26, 27, 28, 29, -1, -1, -1, -1,
1724 -1, -1, 3, 4, -1, 6, 7, -1, -1, 43,
1725 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1726 21, 22, 23, 24, 25, 26, 27, 28, 29, -1,
1727 64, -1, -1, -1, -1, -1, -1, 3, 4, -1,
1728 6, 7, 43, 77, -1, 11, 12, 13, 14, 15,
1729 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1730 26, 27, 28, 29, -1, -1, -1, -1, -1, -1,
1731 3, 4, -1, 6, 7, -1, 77, 43, 11, 12,
1732 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1733 23, 24, 25, 26, 27, 28, 29, 4, -1, 6,
1734 7, -1, -1, -1, -1, 12, 13, 14, -1, -1,
1735 43, 77, -1, -1, -1, -1, 4, 5, 6, 7,
1736 -1, 28, 10, 30, 12, 13, 14, 4, 5, 6,
1737 7, -1, -1, -1, -1, 12, 13, 14, -1, -1,
1738 28, -1, 30, 50, 77, -1, -1, -1, 55, -1,
1739 -1, 28, -1, 30, -1, -1, -1, 64, 65, -1,
1740 -1, -1, 50, -1, -1, 72, 4, 5, 6, 7,
1741 77, -1, -1, 50, 12, 13, 14, 4, -1, 6,
1742 7, -1, -1, -1, 72, 12, 13, 14, -1, 77,
1743 28, -1, -1, -1, 4, 72, 6, 7, -1, -1,
1744 77, 28, 12, 13, 14, -1, -1, -1, -1, -1,
1745 -1, -1, 50, -1, -1, -1, -1, -1, 28, -1,
1746 -1, -1, -1, 50, -1, -1, -1, -1, -1, -1,
1747 -1, -1, -1, -1, 72, -1, -1, -1, -1, 77,
1748 50, -1, -1, -1, -1, 72, -1, -1, -1, -1,
1749 77, -1, -1, -1, 30, -1, -1, -1, -1, -1,
1750 -1, -1, 72, -1, 40, 41, 42, 77, 44, 45,
1751 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1752 56, 57, 40, 41, 42, 43, 44, 45, 46, 47,
1753 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1754 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
1755 50, 51, 52, 53, 54, 55, 56, 57
1757 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1758 #line 3 "/usr/share/misc/bison.simple"
1759 /* This file comes from bison-1.28. */
1761 /* Skeleton output parser for bison,
1762 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1764 This program is free software; you can redistribute it and/or modify
1765 it under the terms of the GNU General Public License as published by
1766 the Free Software Foundation; either version 2, or (at your option)
1769 This program is distributed in the hope that it will be useful,
1770 but WITHOUT ANY WARRANTY; without even the implied warranty of
1771 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1772 GNU General Public License for more details.
1774 You should have received a copy of the GNU General Public License
1775 along with this program; if not, write to the Free Software
1776 Foundation, Inc., 59 Temple Place - Suite 330,
1777 Boston, MA 02111-1307, USA. */
1779 /* As a special exception, when this file is copied by Bison into a
1780 Bison output file, you may use that output file without restriction.
1781 This special exception was added by the Free Software Foundation
1782 in version 1.24 of Bison. */
1784 /* This is the parser code that is written into each bison parser
1785 when the %semantic_parser declaration is not specified in the grammar.
1786 It was written by Richard Stallman by simplifying the hairy parser
1787 used when %semantic_parser is specified. */
1789 #ifndef YYSTACK_USE_ALLOCA
1791 #define YYSTACK_USE_ALLOCA
1792 #else /* alloca not defined */
1794 #define YYSTACK_USE_ALLOCA
1795 #define alloca __builtin_alloca
1796 #else /* not GNU C. */
1797 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
1798 #define YYSTACK_USE_ALLOCA
1800 #else /* not sparc */
1801 /* We think this test detects Watcom and Microsoft C. */
1802 /* This used to test MSDOS, but that is a bad idea
1803 since that symbol is in the user namespace. */
1804 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
1805 #if 0 /* No need for malloc.h, which pollutes the namespace;
1806 instead, just don't use alloca. */
1809 #else /* not MSDOS, or __TURBOC__ */
1811 /* I don't know what this was needed for, but it pollutes the namespace.
1812 So I turned it off. rms, 2 May 1997. */
1813 /* #include <malloc.h> */
1815 #define YYSTACK_USE_ALLOCA
1816 #else /* not MSDOS, or __TURBOC__, or _AIX */
1818 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
1819 and on HPUX 10. Eventually we can turn this on. */
1820 #define YYSTACK_USE_ALLOCA
1821 #define alloca __builtin_alloca
1824 #endif /* not _AIX */
1825 #endif /* not MSDOS, or __TURBOC__ */
1826 #endif /* not sparc */
1827 #endif /* not GNU C */
1828 #endif /* alloca not defined */
1829 #endif /* YYSTACK_USE_ALLOCA not defined */
1831 #ifdef YYSTACK_USE_ALLOCA
1832 #define YYSTACK_ALLOC alloca
1834 #define YYSTACK_ALLOC malloc
1837 /* Note: there must be only one dollar sign in this file.
1838 It is replaced by the list of actions, each action
1839 as one case of the switch. */
1841 #define yyerrok (yyerrstatus = 0)
1842 #define yyclearin (yychar = YYEMPTY)
1845 #define YYACCEPT goto yyacceptlab
1846 #define YYABORT goto yyabortlab
1847 #define YYERROR goto yyerrlab1
1848 /* Like YYERROR except do call yyerror.
1849 This remains here temporarily to ease the
1850 transition to the new meaning of YYERROR, for GCC.
1851 Once GCC version 2 has supplanted version 1, this can go. */
1852 #define YYFAIL goto yyerrlab
1853 #define YYRECOVERING() (!!yyerrstatus)
1854 #define YYBACKUP(token, value) \
1856 if (yychar == YYEMPTY && yylen == 1) \
1857 { yychar = (token), yylval = (value); \
1858 yychar1 = YYTRANSLATE (yychar); \
1863 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1867 #define YYERRCODE 256
1870 #define YYLEX yylex()
1876 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1878 #define YYLEX yylex(&yylval, &yylloc)
1880 #else /* not YYLSP_NEEDED */
1882 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1884 #define YYLEX yylex(&yylval)
1886 #endif /* not YYLSP_NEEDED */
1889 /* If nonreentrant, generate the variables here */
1893 int yychar
; /* the lookahead symbol */
1894 YYSTYPE yylval
; /* the semantic value of the */
1895 /* lookahead symbol */
1898 YYLTYPE yylloc
; /* location data for the lookahead */
1902 int yynerrs
; /* number of parse errors so far */
1903 #endif /* not YYPURE */
1906 int yydebug
; /* nonzero means print parse trace */
1907 /* Since this is uninitialized, it does not stop multiple parsers
1911 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1914 #define YYINITDEPTH 200
1917 /* YYMAXDEPTH is the maximum size the stacks can grow to
1918 (effective only if the built-in stack extension method is used). */
1925 #define YYMAXDEPTH 10000
1928 /* Define __yy_memcpy. Note that the size argument
1929 should be passed with type unsigned int, because that is what the non-GCC
1930 definitions require. With GCC, __builtin_memcpy takes an arg
1931 of type size_t, but it can handle unsigned int. */
1933 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1934 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1935 #else /* not GNU C or C++ */
1938 /* This is the most reliable way to avoid incompatibilities
1939 in available built-in functions on various systems. */
1941 __yy_memcpy (to
, from
, count
)
1946 register char *f
= from
;
1947 register char *t
= to
;
1948 register int i
= count
;
1954 #else /* __cplusplus */
1956 /* This is the most reliable way to avoid incompatibilities
1957 in available built-in functions on various systems. */
1959 __yy_memcpy (char *to
, char *from
, unsigned int count
)
1961 register char *t
= to
;
1962 register char *f
= from
;
1963 register int i
= count
;
1972 #line 217 "/usr/share/misc/bison.simple"
1974 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1975 into yyparse. The argument should have type void *.
1976 It should actually point to an object.
1977 Grammar actions can access the variable by casting it
1978 to the proper pointer type. */
1980 #ifdef YYPARSE_PARAM
1982 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1983 #define YYPARSE_PARAM_DECL
1984 #else /* not __cplusplus */
1985 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1986 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1987 #endif /* not __cplusplus */
1988 #else /* not YYPARSE_PARAM */
1989 #define YYPARSE_PARAM_ARG
1990 #define YYPARSE_PARAM_DECL
1991 #endif /* not YYPARSE_PARAM */
1993 /* Prevent warning if -Wstrict-prototypes. */
1995 #ifdef YYPARSE_PARAM
1996 int yyparse (void *);
2003 yyparse(YYPARSE_PARAM_ARG
)
2006 register int yystate
;
2008 register short *yyssp
;
2009 register YYSTYPE
*yyvsp
;
2010 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
2011 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
2013 short yyssa
[YYINITDEPTH
]; /* the state stack */
2014 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
2016 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
2017 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
2020 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
2021 YYLTYPE
*yyls
= yylsa
;
2024 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2026 #define YYPOPSTACK (yyvsp--, yyssp--)
2029 int yystacksize
= YYINITDEPTH
;
2030 int yyfree_stacks
= 0;
2041 YYSTYPE yyval
; /* the variable used to return */
2042 /* semantic values from the action */
2049 fprintf(stderr
, "Starting parse\n");
2055 yychar
= YYEMPTY
; /* Cause a token to be read. */
2057 /* Initialize stack pointers.
2058 Waste one element of value and location stack
2059 so that they stay on the same level as the state stack.
2060 The wasted elements are never initialized. */
2068 /* Push a new state, which is found in yystate . */
2069 /* In all cases, when you get here, the value and location stacks
2070 have just been pushed. so pushing a state here evens the stacks. */
2075 if (yyssp
>= yyss
+ yystacksize
- 1)
2077 /* Give user a chance to reallocate the stack */
2078 /* Use copies of these so that the &'s don't force the real ones into memory. */
2079 YYSTYPE
*yyvs1
= yyvs
;
2080 short *yyss1
= yyss
;
2082 YYLTYPE
*yyls1
= yyls
;
2085 /* Get the current used size of the three stacks, in elements. */
2086 int size
= yyssp
- yyss
+ 1;
2089 /* Each stack pointer address is followed by the size of
2090 the data in use in that stack, in bytes. */
2092 /* This used to be a conditional around just the two extra args,
2093 but that might be undefined if yyoverflow is a macro. */
2094 yyoverflow("parser stack overflow",
2095 &yyss1
, size
* sizeof (*yyssp
),
2096 &yyvs1
, size
* sizeof (*yyvsp
),
2097 &yyls1
, size
* sizeof (*yylsp
),
2100 yyoverflow("parser stack overflow",
2101 &yyss1
, size
* sizeof (*yyssp
),
2102 &yyvs1
, size
* sizeof (*yyvsp
),
2106 yyss
= yyss1
; yyvs
= yyvs1
;
2110 #else /* no yyoverflow */
2111 /* Extend the stack our own way. */
2112 if (yystacksize
>= YYMAXDEPTH
)
2114 yyerror("parser stack overflow");
2126 if (yystacksize
> YYMAXDEPTH
)
2127 yystacksize
= YYMAXDEPTH
;
2128 #ifndef YYSTACK_USE_ALLOCA
2131 yyss
= (short *) YYSTACK_ALLOC (yystacksize
* sizeof (*yyssp
));
2132 __yy_memcpy ((char *)yyss
, (char *)yyss1
,
2133 size
* (unsigned int) sizeof (*yyssp
));
2134 yyvs
= (YYSTYPE
*) YYSTACK_ALLOC (yystacksize
* sizeof (*yyvsp
));
2135 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
,
2136 size
* (unsigned int) sizeof (*yyvsp
));
2138 yyls
= (YYLTYPE
*) YYSTACK_ALLOC (yystacksize
* sizeof (*yylsp
));
2139 __yy_memcpy ((char *)yyls
, (char *)yyls1
,
2140 size
* (unsigned int) sizeof (*yylsp
));
2142 #endif /* no yyoverflow */
2144 yyssp
= yyss
+ size
- 1;
2145 yyvsp
= yyvs
+ size
- 1;
2147 yylsp
= yyls
+ size
- 1;
2152 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
2155 if (yyssp
>= yyss
+ yystacksize
- 1)
2161 fprintf(stderr
, "Entering state %d\n", yystate
);
2167 /* Do appropriate processing given the current state. */
2168 /* Read a lookahead token if we need one and don't already have one. */
2171 /* First try to decide what to do without reference to lookahead token. */
2173 yyn
= yypact
[yystate
];
2177 /* Not known => get a lookahead token if don't already have one. */
2179 /* yychar is either YYEMPTY or YYEOF
2180 or a valid token in external form. */
2182 if (yychar
== YYEMPTY
)
2186 fprintf(stderr
, "Reading a token: ");
2191 /* Convert token to internal form (in yychar1) for indexing tables with */
2193 if (yychar
<= 0) /* This means end of input. */
2196 yychar
= YYEOF
; /* Don't call YYLEX any more */
2200 fprintf(stderr
, "Now at end of input.\n");
2205 yychar1
= YYTRANSLATE(yychar
);
2210 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
2211 /* Give the individual parser a way to print the precise meaning
2212 of a token, for further debugging info. */
2214 YYPRINT (stderr
, yychar
, yylval
);
2216 fprintf (stderr
, ")\n");
2222 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
2227 /* yyn is what to do for this token type in this state.
2228 Negative => reduce, -yyn is rule number.
2229 Positive => shift, yyn is new state.
2230 New state is final state => don't bother to shift,
2231 just return success.
2232 0, or most negative number => error. */
2247 /* Shift the lookahead token. */
2251 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
2254 /* Discard the token being shifted unless it is eof. */
2255 if (yychar
!= YYEOF
)
2263 /* count tokens shifted since error; after three, turn off error status. */
2264 if (yyerrstatus
) yyerrstatus
--;
2269 /* Do the default action for the current state. */
2272 yyn
= yydefact
[yystate
];
2276 /* Do a reduction. yyn is the number of a rule to reduce with. */
2280 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
2287 fprintf (stderr
, "Reducing via rule %d (line %d), ",
2290 /* Print the symbols being reduced, and their result. */
2291 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
2292 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
2293 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
2301 #line 262 "objc-parse.y"
2303 pedwarn ("ANSI C forbids an empty source file");
2308 #line 267 "objc-parse.y"
2310 /* In case there were missing closebraces,
2311 get us back to the global binding level. */
2312 while (! global_bindings_p ())
2318 #line 281 "objc-parse.y"
2319 {yyval
.ttype
= NULL_TREE
; ;
2322 #line 282 "objc-parse.y"
2323 {yyval
.ttype
= NULL_TREE
; ;
2326 #line 290 "objc-parse.y"
2327 { STRIP_NOPS (yyvsp
[-2].ttype
);
2328 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
2329 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
2330 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
2331 assemble_asm (yyvsp
[-2].ttype
);
2333 error ("argument of `asm' is not a constant string"); ;
2336 #line 298 "objc-parse.y"
2337 { RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
2340 #line 303 "objc-parse.y"
2342 error ("ANSI C forbids data definition with no type or storage class");
2343 else if (!flag_traditional
)
2344 warning ("data definition has no type or storage class");
2346 current_declspecs
= TREE_VALUE (declspec_stack
);
2347 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2348 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2351 #line 312 "objc-parse.y"
2352 { current_declspecs
= TREE_VALUE (declspec_stack
);
2353 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2354 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2357 #line 316 "objc-parse.y"
2358 { current_declspecs
= TREE_VALUE (declspec_stack
);
2359 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2360 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2363 #line 320 "objc-parse.y"
2364 { pedwarn ("empty declaration"); ;
2367 #line 322 "objc-parse.y"
2368 { shadow_tag (yyvsp
[-1].ttype
); ;
2371 #line 326 "objc-parse.y"
2373 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
2376 #line 332 "objc-parse.y"
2377 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2378 prefix_attributes
, NULL_TREE
))
2380 reinit_parse_for_function (); ;
2383 #line 337 "objc-parse.y"
2384 { store_parm_decls (); ;
2387 #line 339 "objc-parse.y"
2388 { finish_function (0);
2389 current_declspecs
= TREE_VALUE (declspec_stack
);
2390 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2391 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2394 #line 344 "objc-parse.y"
2395 { current_declspecs
= TREE_VALUE (declspec_stack
);
2396 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2397 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2400 #line 348 "objc-parse.y"
2401 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2402 prefix_attributes
, NULL_TREE
))
2404 reinit_parse_for_function (); ;
2407 #line 353 "objc-parse.y"
2408 { store_parm_decls (); ;
2411 #line 355 "objc-parse.y"
2412 { finish_function (0);
2413 current_declspecs
= TREE_VALUE (declspec_stack
);
2414 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2415 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2418 #line 360 "objc-parse.y"
2419 { current_declspecs
= TREE_VALUE (declspec_stack
);
2420 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2421 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2424 #line 364 "objc-parse.y"
2425 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
2426 prefix_attributes
, NULL_TREE
))
2428 reinit_parse_for_function (); ;
2431 #line 369 "objc-parse.y"
2432 { store_parm_decls (); ;
2435 #line 371 "objc-parse.y"
2436 { finish_function (0);
2437 current_declspecs
= TREE_VALUE (declspec_stack
);
2438 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2439 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2442 #line 376 "objc-parse.y"
2443 { current_declspecs
= TREE_VALUE (declspec_stack
);
2444 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2445 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2448 #line 389 "objc-parse.y"
2449 { yyval
.code
= ADDR_EXPR
; ;
2452 #line 391 "objc-parse.y"
2453 { yyval
.code
= NEGATE_EXPR
; ;
2456 #line 393 "objc-parse.y"
2457 { yyval
.code
= CONVERT_EXPR
; ;
2460 #line 395 "objc-parse.y"
2461 { yyval
.code
= PREINCREMENT_EXPR
; ;
2464 #line 397 "objc-parse.y"
2465 { yyval
.code
= PREDECREMENT_EXPR
; ;
2468 #line 399 "objc-parse.y"
2469 { yyval
.code
= BIT_NOT_EXPR
; ;
2472 #line 401 "objc-parse.y"
2473 { yyval
.code
= TRUTH_NOT_EXPR
; ;
2476 #line 405 "objc-parse.y"
2477 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
2480 #line 410 "objc-parse.y"
2481 { yyval
.ttype
= NULL_TREE
; ;
2484 #line 416 "objc-parse.y"
2485 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
2488 #line 418 "objc-parse.y"
2489 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
2492 #line 424 "objc-parse.y"
2493 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
2496 #line 427 "objc-parse.y"
2497 { yyval
.ttype
= yyvsp
[0].ttype
;
2498 RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
2501 #line 430 "objc-parse.y"
2502 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
2503 overflow_warning (yyval
.ttype
); ;
2506 #line 434 "objc-parse.y"
2507 { tree label
= lookup_label (yyvsp
[0].ttype
);
2509 pedwarn ("ANSI C forbids `&&'");
2511 yyval
.ttype
= null_pointer_node
;
2514 TREE_USED (label
) = 1;
2515 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
2516 TREE_CONSTANT (yyval
.ttype
) = 1;
2521 #line 462 "objc-parse.y"
2522 { skip_evaluation
--;
2523 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
2524 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
2525 error ("`sizeof' applied to a bit-field");
2526 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
2529 #line 468 "objc-parse.y"
2530 { skip_evaluation
--;
2531 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
2534 #line 471 "objc-parse.y"
2535 { skip_evaluation
--;
2536 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
2539 #line 474 "objc-parse.y"
2540 { skip_evaluation
--;
2541 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
2544 #line 477 "objc-parse.y"
2545 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2548 #line 479 "objc-parse.y"
2549 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2552 #line 481 "objc-parse.y"
2553 { yyval
.ttype
= build_va_arg (yyvsp
[-3].ttype
, groktypename (yyvsp
[-1].ttype
)); ;
2556 #line 485 "objc-parse.y"
2557 { skip_evaluation
++; ;
2560 #line 489 "objc-parse.y"
2561 { skip_evaluation
++; ;
2564 #line 495 "objc-parse.y"
2565 { tree type
= groktypename (yyvsp
[-2].ttype
);
2566 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
2569 #line 498 "objc-parse.y"
2570 { start_init (NULL_TREE
, NULL
, 0);
2571 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
2572 really_start_incremental_init (yyvsp
[-2].ttype
); ;
2575 #line 502 "objc-parse.y"
2577 tree result
= pop_init_level (0);
2578 tree type
= yyvsp
[-5].ttype
;
2581 if (pedantic
&& ! flag_isoc99
)
2582 pedwarn ("ANSI C forbids constructor expressions");
2583 if (TYPE_NAME (type
) != 0)
2585 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
2586 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
2588 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
2592 yyval
.ttype
= result
;
2593 if (TREE_CODE (type
) == ARRAY_TYPE
&& !COMPLETE_TYPE_P (type
))
2595 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
2602 #line 531 "objc-parse.y"
2603 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2606 #line 533 "objc-parse.y"
2607 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2610 #line 535 "objc-parse.y"
2611 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2614 #line 537 "objc-parse.y"
2615 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2618 #line 539 "objc-parse.y"
2619 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2622 #line 541 "objc-parse.y"
2623 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2626 #line 543 "objc-parse.y"
2627 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2630 #line 545 "objc-parse.y"
2631 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2634 #line 547 "objc-parse.y"
2635 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2638 #line 549 "objc-parse.y"
2639 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2642 #line 551 "objc-parse.y"
2643 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2646 #line 553 "objc-parse.y"
2647 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2650 #line 555 "objc-parse.y"
2651 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2652 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2655 #line 558 "objc-parse.y"
2656 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2657 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2660 #line 561 "objc-parse.y"
2661 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2662 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2665 #line 564 "objc-parse.y"
2666 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2667 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2670 #line 567 "objc-parse.y"
2671 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2672 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2675 #line 570 "objc-parse.y"
2676 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2677 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2680 #line 573 "objc-parse.y"
2681 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2682 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2685 #line 576 "objc-parse.y"
2687 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2688 /* Make sure first operand is calculated only once. */
2689 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2690 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2691 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2694 #line 583 "objc-parse.y"
2695 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2696 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2699 #line 586 "objc-parse.y"
2701 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2702 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2703 if (class == 'e' || class == '1'
2704 || class == '2' || class == '<')
2705 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
);
2709 #line 594 "objc-parse.y"
2711 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2712 /* This inhibits warnings in truthvalue_conversion. */
2713 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2714 if (class == 'e' || class == '1'
2715 || class == '2' || class == '<')
2716 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
);
2720 #line 606 "objc-parse.y"
2722 if (yychar
== YYEMPTY
)
2724 yyval
.ttype
= build_external_ref (yyvsp
[0].ttype
, yychar
== '(');
2728 #line 613 "objc-parse.y"
2729 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2732 #line 615 "objc-parse.y"
2733 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2734 if (class == 'e' || class == '1'
2735 || class == '2' || class == '<')
2736 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2737 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2740 #line 621 "objc-parse.y"
2741 { yyval
.ttype
= error_mark_node
; ;
2744 #line 623 "objc-parse.y"
2747 pedwarn ("ANSI C forbids braced-groups within expressions");
2748 pop_iterator_stack ();
2750 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2751 /* The statements have side effects, so the group does. */
2752 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2754 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2756 /* Make a BIND_EXPR for the BLOCK already made. */
2757 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2758 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2759 /* Remove the block from the tree at this point.
2760 It gets put back at the proper place
2761 when the BIND_EXPR is expanded. */
2762 delete_block (yyvsp
[-1].ttype
);
2765 yyval
.ttype
= yyvsp
[-1].ttype
;
2769 #line 646 "objc-parse.y"
2771 /* Make sure we call expand_end_stmt_expr. Otherwise
2772 we are likely to lose sequences and crash later. */
2773 pop_iterator_stack ();
2775 expand_end_stmt_expr (yyvsp
[-2].ttype
);
2776 yyval
.ttype
= error_mark_node
;
2780 #line 655 "objc-parse.y"
2781 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2784 #line 657 "objc-parse.y"
2785 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2788 #line 659 "objc-parse.y"
2790 if (doing_objc_thang
)
2792 if (is_public (yyvsp
[-2].ttype
, yyvsp
[0].ttype
))
2793 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2795 yyval
.ttype
= error_mark_node
;
2798 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2802 #line 671 "objc-parse.y"
2804 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2806 if (doing_objc_thang
)
2808 if (is_public (expr
, yyvsp
[0].ttype
))
2809 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2811 yyval
.ttype
= error_mark_node
;
2814 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2818 #line 685 "objc-parse.y"
2819 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2822 #line 687 "objc-parse.y"
2823 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2826 #line 689 "objc-parse.y"
2827 { yyval
.ttype
= build_message_expr (yyvsp
[0].ttype
); ;
2830 #line 691 "objc-parse.y"
2831 { yyval
.ttype
= build_selector_expr (yyvsp
[0].ttype
); ;
2834 #line 693 "objc-parse.y"
2835 { yyval
.ttype
= build_protocol_expr (yyvsp
[0].ttype
); ;
2838 #line 695 "objc-parse.y"
2839 { yyval
.ttype
= build_encode_expr (yyvsp
[0].ttype
); ;
2842 #line 697 "objc-parse.y"
2843 { yyval
.ttype
= build_objc_string_object (yyvsp
[0].ttype
); ;
2846 #line 704 "objc-parse.y"
2847 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
2851 #line 713 "objc-parse.y"
2852 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2855 #line 721 "objc-parse.y"
2856 { c_mark_varargs ();
2858 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2861 #line 731 "objc-parse.y"
2865 #line 747 "objc-parse.y"
2866 { current_declspecs
= TREE_VALUE (declspec_stack
);
2867 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2868 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2871 #line 751 "objc-parse.y"
2872 { current_declspecs
= TREE_VALUE (declspec_stack
);
2873 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2874 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2877 #line 755 "objc-parse.y"
2878 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2879 pedwarn ("empty declaration"); ;
2882 #line 758 "objc-parse.y"
2883 { pedwarn ("empty declaration"); ;
2886 #line 767 "objc-parse.y"
2890 #line 782 "objc-parse.y"
2891 { pending_xref_error ();
2892 declspec_stack
= tree_cons (prefix_attributes
,
2895 split_specs_attrs (yyvsp
[0].ttype
,
2896 ¤t_declspecs
, &prefix_attributes
); ;
2899 #line 792 "objc-parse.y"
2900 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2903 #line 797 "objc-parse.y"
2904 { current_declspecs
= TREE_VALUE (declspec_stack
);
2905 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2906 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2909 #line 801 "objc-parse.y"
2910 { current_declspecs
= TREE_VALUE (declspec_stack
);
2911 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2912 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2915 #line 805 "objc-parse.y"
2916 { current_declspecs
= TREE_VALUE (declspec_stack
);
2917 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2918 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2921 #line 809 "objc-parse.y"
2922 { current_declspecs
= TREE_VALUE (declspec_stack
);
2923 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2924 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2927 #line 813 "objc-parse.y"
2928 { shadow_tag (yyvsp
[-1].ttype
); ;
2931 #line 815 "objc-parse.y"
2932 { pedwarn ("empty declaration"); ;
2935 #line 817 "objc-parse.y"
2936 { RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
2939 #line 827 "objc-parse.y"
2940 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2943 #line 829 "objc-parse.y"
2944 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2947 #line 833 "objc-parse.y"
2948 { yyval
.ttype
= NULL_TREE
; ;
2951 #line 835 "objc-parse.y"
2952 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2955 #line 837 "objc-parse.y"
2956 { if (extra_warnings
)
2957 warning ("`%s' is not at beginning of declaration",
2958 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2959 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2962 #line 842 "objc-parse.y"
2963 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2966 #line 847 "objc-parse.y"
2967 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2970 #line 849 "objc-parse.y"
2971 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2974 #line 854 "objc-parse.y"
2975 { yyval
.ttype
= NULL_TREE
; ;
2978 #line 856 "objc-parse.y"
2979 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2982 #line 858 "objc-parse.y"
2983 { if (extra_warnings
)
2984 warning ("`%s' is not at beginning of declaration",
2985 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2986 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2989 #line 871 "objc-parse.y"
2990 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2993 #line 873 "objc-parse.y"
2994 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
2997 #line 875 "objc-parse.y"
2998 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3001 #line 877 "objc-parse.y"
3002 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3005 #line 882 "objc-parse.y"
3006 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
3007 TREE_STATIC (yyval
.ttype
) = 1; ;
3010 #line 885 "objc-parse.y"
3011 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3014 #line 887 "objc-parse.y"
3015 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3016 TREE_STATIC (yyval
.ttype
) = 1; ;
3019 #line 890 "objc-parse.y"
3020 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
3021 warning ("`%s' is not at beginning of declaration",
3022 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
3023 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3024 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
3027 #line 904 "objc-parse.y"
3028 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3031 #line 906 "objc-parse.y"
3032 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
3035 #line 910 "objc-parse.y"
3036 { yyval
.ttype
= NULL_TREE
; ;
3039 #line 912 "objc-parse.y"
3040 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3043 #line 922 "objc-parse.y"
3044 { /* For a typedef name, record the meaning, not the name.
3045 In case of `foo foo, bar;'. */
3046 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
3049 #line 926 "objc-parse.y"
3050 { yyval
.ttype
= get_static_reference (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3053 #line 928 "objc-parse.y"
3054 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3057 #line 933 "objc-parse.y"
3058 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3061 #line 935 "objc-parse.y"
3062 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
3065 #line 937 "objc-parse.y"
3066 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
3069 #line 959 "objc-parse.y"
3070 { yyval
.ttype
= NULL_TREE
; ;
3073 #line 961 "objc-parse.y"
3074 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
3075 yyval
.ttype
= yyvsp
[-1].ttype
;
3079 #line 968 "objc-parse.y"
3080 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3081 yyvsp
[-1].ttype
, prefix_attributes
);
3082 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3085 #line 973 "objc-parse.y"
3087 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3090 #line 976 "objc-parse.y"
3091 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3092 yyvsp
[0].ttype
, prefix_attributes
);
3093 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
3097 #line 984 "objc-parse.y"
3098 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3099 yyvsp
[-1].ttype
, prefix_attributes
);
3100 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3103 #line 989 "objc-parse.y"
3105 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
3106 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3109 #line 993 "objc-parse.y"
3110 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3111 yyvsp
[0].ttype
, prefix_attributes
);
3112 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3115 #line 1001 "objc-parse.y"
3116 { yyval
.ttype
= NULL_TREE
; ;
3119 #line 1003 "objc-parse.y"
3120 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3123 #line 1008 "objc-parse.y"
3124 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3127 #line 1010 "objc-parse.y"
3128 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3131 #line 1015 "objc-parse.y"
3132 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
3135 #line 1020 "objc-parse.y"
3136 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3139 #line 1022 "objc-parse.y"
3140 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3143 #line 1027 "objc-parse.y"
3144 { yyval
.ttype
= NULL_TREE
; ;
3147 #line 1029 "objc-parse.y"
3148 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
3151 #line 1031 "objc-parse.y"
3152 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
3155 #line 1033 "objc-parse.y"
3156 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
3159 #line 1035 "objc-parse.y"
3160 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3163 #line 1053 "objc-parse.y"
3164 { really_start_incremental_init (NULL_TREE
); ;
3167 #line 1055 "objc-parse.y"
3168 { yyval
.ttype
= pop_init_level (0); ;
3171 #line 1057 "objc-parse.y"
3172 { yyval
.ttype
= error_mark_node
; ;
3175 #line 1063 "objc-parse.y"
3177 pedwarn ("ANSI C forbids empty initializer braces"); ;
3180 #line 1079 "objc-parse.y"
3181 { set_init_label (yyvsp
[-1].ttype
); ;
3184 #line 1086 "objc-parse.y"
3185 { push_init_level (0); ;
3188 #line 1088 "objc-parse.y"
3189 { process_init_element (pop_init_level (0)); ;
3192 #line 1090 "objc-parse.y"
3193 { process_init_element (yyvsp
[0].ttype
); ;
3196 #line 1101 "objc-parse.y"
3197 { set_init_label (yyvsp
[0].ttype
); ;
3200 #line 1109 "objc-parse.y"
3202 pedwarn ("ANSI C forbids nested functions");
3204 push_function_context ();
3205 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3206 prefix_attributes
, NULL_TREE
))
3208 pop_function_context ();
3211 reinit_parse_for_function (); ;
3214 #line 1121 "objc-parse.y"
3215 { store_parm_decls (); ;
3218 #line 1129 "objc-parse.y"
3219 { finish_function (1);
3220 pop_function_context (); ;
3223 #line 1135 "objc-parse.y"
3225 pedwarn ("ANSI C forbids nested functions");
3227 push_function_context ();
3228 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3229 prefix_attributes
, NULL_TREE
))
3231 pop_function_context ();
3234 reinit_parse_for_function (); ;
3237 #line 1147 "objc-parse.y"
3238 { store_parm_decls (); ;
3241 #line 1155 "objc-parse.y"
3242 { finish_function (1);
3243 pop_function_context (); ;
3246 #line 1171 "objc-parse.y"
3247 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3250 #line 1173 "objc-parse.y"
3251 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3254 #line 1178 "objc-parse.y"
3255 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3258 #line 1180 "objc-parse.y"
3259 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3262 #line 1182 "objc-parse.y"
3263 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3266 #line 1189 "objc-parse.y"
3267 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3270 #line 1201 "objc-parse.y"
3271 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3274 #line 1206 "objc-parse.y"
3275 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3278 #line 1208 "objc-parse.y"
3279 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3282 #line 1210 "objc-parse.y"
3283 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3286 #line 1217 "objc-parse.y"
3287 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3290 #line 1226 "objc-parse.y"
3291 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3294 #line 1231 "objc-parse.y"
3295 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3298 #line 1233 "objc-parse.y"
3299 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3302 #line 1235 "objc-parse.y"
3303 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3306 #line 1237 "objc-parse.y"
3307 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3310 #line 1244 "objc-parse.y"
3311 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3314 #line 1250 "objc-parse.y"
3315 { yyval
.ttype
= NULL_TREE
; ;
3318 #line 1252 "objc-parse.y"
3319 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3322 #line 1257 "objc-parse.y"
3323 { yyval
.ttype
= NULL_TREE
; ;
3326 #line 1259 "objc-parse.y"
3327 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3330 #line 1264 "objc-parse.y"
3331 { yyval
.ttype
= NULL_TREE
; ;
3334 #line 1266 "objc-parse.y"
3335 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3338 #line 1271 "objc-parse.y"
3339 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
3340 /* Start scope of tag before parsing components. */
3344 #line 1275 "objc-parse.y"
3345 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
3348 #line 1277 "objc-parse.y"
3349 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
3350 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
3354 #line 1281 "objc-parse.y"
3355 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
3358 #line 1283 "objc-parse.y"
3359 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
3362 #line 1285 "objc-parse.y"
3363 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
3366 #line 1287 "objc-parse.y"
3367 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
3368 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
3372 #line 1291 "objc-parse.y"
3373 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
3376 #line 1293 "objc-parse.y"
3377 { yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
3380 #line 1295 "objc-parse.y"
3381 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
),
3382 chainon (yyvsp
[-7].ttype
, yyvsp
[0].ttype
)); ;
3385 #line 1298 "objc-parse.y"
3386 { yyval
.ttype
= start_enum (NULL_TREE
); ;
3389 #line 1300 "objc-parse.y"
3390 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
),
3391 chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
3394 #line 1303 "objc-parse.y"
3395 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
3398 #line 1314 "objc-parse.y"
3399 { if (pedantic
&& ! flag_isoc99
)
3400 pedwarn ("comma at end of enumerator list"); ;
3403 #line 1320 "objc-parse.y"
3404 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3407 #line 1322 "objc-parse.y"
3408 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
3409 pedwarn ("no semicolon at end of struct or union"); ;
3412 #line 1327 "objc-parse.y"
3413 { yyval
.ttype
= NULL_TREE
; ;
3416 #line 1329 "objc-parse.y"
3417 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
3420 #line 1331 "objc-parse.y"
3422 pedwarn ("extra semicolon in struct or union specified"); ;
3425 #line 1335 "objc-parse.y"
3427 tree interface
= lookup_interface (yyvsp
[-1].ttype
);
3430 yyval
.ttype
= get_class_ivars (interface
);
3433 error ("Cannot find interface declaration for `%s'",
3434 IDENTIFIER_POINTER (yyvsp
[-1].ttype
));
3435 yyval
.ttype
= NULL_TREE
;
3440 #line 1360 "objc-parse.y"
3441 { yyval
.ttype
= yyvsp
[0].ttype
;
3442 current_declspecs
= TREE_VALUE (declspec_stack
);
3443 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3444 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3447 #line 1365 "objc-parse.y"
3449 /* Support for unnamed structs or unions as members of
3450 structs or unions (which is [a] useful and [b] supports
3453 pedwarn ("ANSI C doesn't support unnamed structs/unions");
3455 yyval
.ttype
= grokfield(yyvsp
[-2].filename
, yyvsp
[-1].lineno
, NULL
, current_declspecs
, NULL_TREE
);
3456 current_declspecs
= TREE_VALUE (declspec_stack
);
3457 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3458 declspec_stack
= TREE_CHAIN (declspec_stack
);
3462 #line 1378 "objc-parse.y"
3463 { yyval
.ttype
= yyvsp
[0].ttype
;
3464 current_declspecs
= TREE_VALUE (declspec_stack
);
3465 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3466 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3469 #line 1383 "objc-parse.y"
3471 pedwarn ("ANSI C forbids member declarations with no members");
3472 shadow_tag(yyvsp
[0].ttype
);
3473 yyval
.ttype
= NULL_TREE
; ;
3476 #line 1388 "objc-parse.y"
3477 { yyval
.ttype
= NULL_TREE
; ;
3480 #line 1390 "objc-parse.y"
3481 { yyval
.ttype
= yyvsp
[0].ttype
;
3482 RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
3485 #line 1397 "objc-parse.y"
3486 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3489 #line 1402 "objc-parse.y"
3490 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
3491 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3494 #line 1406 "objc-parse.y"
3495 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
3496 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3499 #line 1409 "objc-parse.y"
3500 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
3501 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3504 #line 1421 "objc-parse.y"
3505 { if (yyvsp
[-2].ttype
== error_mark_node
)
3506 yyval
.ttype
= yyvsp
[-2].ttype
;
3508 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
3511 #line 1426 "objc-parse.y"
3512 { yyval
.ttype
= error_mark_node
; ;
3515 #line 1432 "objc-parse.y"
3516 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
3519 #line 1434 "objc-parse.y"
3520 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3523 #line 1439 "objc-parse.y"
3524 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3527 #line 1441 "objc-parse.y"
3528 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3531 #line 1446 "objc-parse.y"
3532 { yyval
.ttype
= NULL_TREE
; ;
3535 #line 1452 "objc-parse.y"
3536 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3539 #line 1454 "objc-parse.y"
3540 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3543 #line 1459 "objc-parse.y"
3544 { yyval
.ttype
= NULL_TREE
; ;
3547 #line 1461 "objc-parse.y"
3548 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3551 #line 1466 "objc-parse.y"
3552 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3555 #line 1469 "objc-parse.y"
3556 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3559 #line 1471 "objc-parse.y"
3560 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3563 #line 1473 "objc-parse.y"
3564 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3567 #line 1475 "objc-parse.y"
3568 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3571 #line 1477 "objc-parse.y"
3572 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3575 #line 1479 "objc-parse.y"
3576 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3579 #line 1481 "objc-parse.y"
3580 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3583 #line 1483 "objc-parse.y"
3584 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3587 #line 1487 "objc-parse.y"
3588 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3591 #line 1496 "objc-parse.y"
3593 if (pedantic
&& yyvsp
[0].ends_in_label
)
3594 pedwarn ("ANSI C forbids label at end of compound statement");
3598 #line 1505 "objc-parse.y"
3599 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3602 #line 1507 "objc-parse.y"
3603 { yyval
.ends_in_label
= 0; ;
3606 #line 1519 "objc-parse.y"
3607 { emit_line_note (input_filename
, lineno
);
3610 expand_start_bindings (0);
3611 if (objc_method_context
)
3616 #line 1533 "objc-parse.y"
3618 pedwarn ("ANSI C forbids label declarations"); ;
3621 #line 1544 "objc-parse.y"
3623 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3625 tree label
= shadow_label (TREE_VALUE (link
));
3626 C_DECLARED_LABEL_FLAG (label
) = 1;
3627 declare_nonlocal_label (label
);
3632 #line 1558 "objc-parse.y"
3636 #line 1562 "objc-parse.y"
3637 { compstmt_count
++; ;
3640 #line 1565 "objc-parse.y"
3641 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3644 #line 1567 "objc-parse.y"
3645 { emit_line_note (input_filename
, lineno
);
3646 expand_end_bindings (getdecls (), 1, 0);
3647 yyval
.ttype
= poplevel (1, 1, 0); ;
3650 #line 1571 "objc-parse.y"
3651 { emit_line_note (input_filename
, lineno
);
3652 expand_end_bindings (getdecls (), kept_level_p (), 0);
3653 yyval
.ttype
= poplevel (kept_level_p (), 0, 0); ;
3656 #line 1575 "objc-parse.y"
3657 { emit_line_note (input_filename
, lineno
);
3658 expand_end_bindings (getdecls (), kept_level_p (), 0);
3659 yyval
.ttype
= poplevel (kept_level_p (), 0, 0); ;
3662 #line 1582 "objc-parse.y"
3663 { if (current_function_decl
== 0)
3665 error ("braced-group within expression allowed only inside a function");
3668 /* We must force a BLOCK for this level
3669 so that, if it is not expanded later,
3670 there is a way to turn off the entire subtree of blocks
3671 that are contained in it. */
3673 push_iterator_stack ();
3674 push_label_level ();
3675 yyval
.ttype
= expand_start_stmt_expr ();
3680 #line 1599 "objc-parse.y"
3681 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3684 #line 1613 "objc-parse.y"
3685 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3686 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3688 yyval
.itype
= stmt_count
;
3689 if_stmt_file
= yyvsp
[-5].filename
;
3690 if_stmt_line
= yyvsp
[-4].lineno
;
3691 position_after_white_space (); ;
3694 #line 1627 "objc-parse.y"
3697 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3698 /* See comment in `while' alternative, above. */
3700 expand_start_loop_continue_elsewhere (1);
3701 position_after_white_space (); ;
3704 #line 1635 "objc-parse.y"
3705 { expand_loop_continue_here (); ;
3708 #line 1639 "objc-parse.y"
3709 { yyval
.filename
= input_filename
; ;
3712 #line 1643 "objc-parse.y"
3713 { yyval
.lineno
= lineno
; ;
3716 #line 1648 "objc-parse.y"
3720 #line 1653 "objc-parse.y"
3724 #line 1658 "objc-parse.y"
3725 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3728 #line 1663 "objc-parse.y"
3729 { yyval
.ends_in_label
= 0; ;
3732 #line 1665 "objc-parse.y"
3733 { yyval
.ends_in_label
= 1; ;
3736 #line 1671 "objc-parse.y"
3740 #line 1674 "objc-parse.y"
3742 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3743 /* It appears that this should not be done--that a non-lvalue array
3744 shouldn't get an error if the value isn't used.
3745 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3746 if it appears as a top-level expression,
3747 but says nothing about non-lvalue arrays. */
3749 /* Call default_conversion to get an error
3750 on referring to a register array if pedantic. */
3751 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3752 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3753 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3755 iterator_expand (yyvsp
[-1].ttype
); ;
3758 #line 1690 "objc-parse.y"
3759 { c_expand_start_else ();
3760 yyvsp
[-1].itype
= stmt_count
;
3761 position_after_white_space (); ;
3764 #line 1694 "objc-parse.y"
3765 { c_expand_end_cond ();
3766 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3767 warning ("empty body in an else-statement"); ;
3770 #line 1698 "objc-parse.y"
3771 { c_expand_end_cond ();
3772 /* This warning is here instead of in simple_if, because we
3773 do not want a warning if an empty if is followed by an
3774 else statement. Increment stmt_count so we don't
3775 give a second error if this is a nested `if'. */
3776 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3777 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3778 "empty body in an if-statement"); ;
3781 #line 1710 "objc-parse.y"
3782 { c_expand_end_cond (); ;
3785 #line 1712 "objc-parse.y"
3787 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3788 /* The emit_nop used to come before emit_line_note,
3789 but that made the nop seem like part of the preceding line.
3790 And that was confusing when the preceding line was
3791 inside of an if statement and was not really executed.
3792 I think it ought to work to put the nop after the line number.
3793 We will see. --rms, July 15, 1991. */
3797 #line 1722 "objc-parse.y"
3798 { /* Don't start the loop till we have succeeded
3799 in parsing the end test. This is to make sure
3800 that we end every loop we start. */
3801 expand_start_loop (1);
3802 emit_line_note (input_filename
, lineno
);
3803 expand_exit_loop_if_false (NULL_PTR
,
3804 truthvalue_conversion (yyvsp
[-1].ttype
));
3805 position_after_white_space (); ;
3808 #line 1731 "objc-parse.y"
3809 { expand_end_loop (); ;
3812 #line 1734 "objc-parse.y"
3813 { emit_line_note (input_filename
, lineno
);
3814 expand_exit_loop_if_false (NULL_PTR
,
3815 truthvalue_conversion (yyvsp
[-2].ttype
));
3816 expand_end_loop (); ;
3819 #line 1740 "objc-parse.y"
3820 { expand_end_loop (); ;
3823 #line 1743 "objc-parse.y"
3825 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3826 /* See comment in `while' alternative, above. */
3828 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3829 /* Next step is to call expand_start_loop_continue_elsewhere,
3830 but wait till after we parse the entire for (...).
3831 Otherwise, invalid input might cause us to call that
3832 fn without calling expand_end_loop. */
3836 #line 1755 "objc-parse.y"
3837 { yyvsp
[0].lineno
= lineno
;
3838 yyval
.filename
= input_filename
; ;
3841 #line 1758 "objc-parse.y"
3843 /* Start the loop. Doing this after parsing
3844 all the expressions ensures we will end the loop. */
3845 expand_start_loop_continue_elsewhere (1);
3846 /* Emit the end-test, with a line number. */
3847 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3848 if (yyvsp
[-4].ttype
)
3849 expand_exit_loop_if_false (NULL_PTR
,
3850 truthvalue_conversion (yyvsp
[-4].ttype
));
3851 yyvsp
[-3].lineno
= lineno
;
3852 yyvsp
[-2].filename
= input_filename
;
3853 position_after_white_space (); ;
3856 #line 1771 "objc-parse.y"
3857 { /* Emit the increment expression, with a line number. */
3858 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3859 expand_loop_continue_here ();
3860 if (yyvsp
[-3].ttype
)
3861 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3862 expand_end_loop (); ;
3865 #line 1778 "objc-parse.y"
3867 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3868 c_expand_start_case (yyvsp
[-1].ttype
);
3869 position_after_white_space (); ;
3872 #line 1783 "objc-parse.y"
3873 { expand_end_case (yyvsp
[-3].ttype
); ;
3876 #line 1785 "objc-parse.y"
3877 { tree break_stmt
= build_break_stmt ();
3879 genrtl_break_stmt (); ;
3882 #line 1789 "objc-parse.y"
3883 { tree continue_stmt
= build_continue_stmt ();
3885 genrtl_continue_stmt (); ;
3888 #line 1793 "objc-parse.y"
3889 { tree return_stmt
= build_return_stmt (NULL_TREE
);
3891 genrtl_return_stmt (RETURN_EXPR(return_stmt
)); ;
3894 #line 1797 "objc-parse.y"
3895 { tree return_stmt
= build_return_stmt (yyvsp
[-1].ttype
);
3897 genrtl_return_stmt (RETURN_EXPR(return_stmt
)); ;
3900 #line 1801 "objc-parse.y"
3902 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3903 STRIP_NOPS (yyvsp
[-2].ttype
);
3904 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3905 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3906 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3907 expand_asm (yyvsp
[-2].ttype
);
3909 error ("argument of `asm' is not a constant string"); ;
3912 #line 1812 "objc-parse.y"
3914 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3915 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3916 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3917 input_filename
, lineno
); ;
3920 #line 1819 "objc-parse.y"
3922 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3923 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3924 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3925 input_filename
, lineno
); ;
3928 #line 1827 "objc-parse.y"
3930 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3931 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3932 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3933 input_filename
, lineno
); ;
3936 #line 1833 "objc-parse.y"
3939 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3940 decl
= lookup_label (yyvsp
[-1].ttype
);
3943 TREE_USED (decl
) = 1;
3949 #line 1844 "objc-parse.y"
3951 pedwarn ("ANSI C forbids `goto *expr;'");
3953 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3954 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3957 #line 1859 "objc-parse.y"
3959 /* The value returned by this action is */
3960 /* 1 if everything is OK */
3961 /* 0 in case of error or already bound iterator */
3964 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3965 error ("invalid `for (ITERATOR)' syntax");
3966 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3967 error ("`%s' is not an iterator",
3968 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3969 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3970 error ("`for (%s)' inside expansion of same iterator",
3971 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3975 iterator_for_loop_start (yyvsp
[-1].ttype
);
3980 #line 1880 "objc-parse.y"
3982 if (yyvsp
[-1].itype
)
3983 iterator_for_loop_end (yyvsp
[-3].ttype
);
3987 #line 1911 "objc-parse.y"
3988 { tree case_label_tree
= build_case_label (yyvsp
[-1].ttype
, NULL_TREE
);
3990 genrtl_case_label(CASE_LOW(case_label_tree
), CASE_HIGH(case_label_tree
));
3991 position_after_white_space ();
3995 #line 1917 "objc-parse.y"
3996 { tree case_label_tree
= build_case_label (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
);
3998 genrtl_case_label(CASE_LOW(case_label_tree
), CASE_HIGH(case_label_tree
));
3999 position_after_white_space ();
4003 #line 1923 "objc-parse.y"
4004 { tree case_label_tree
= build_case_label (NULL_TREE
, NULL_TREE
);
4006 genrtl_case_label(CASE_LOW(case_label_tree
), CASE_HIGH(case_label_tree
));
4007 position_after_white_space ();
4011 #line 1929 "objc-parse.y"
4012 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-2].ttype
);
4017 expand_label (label
);
4018 decl_attributes (label
, yyvsp
[0].ttype
, NULL_TREE
);
4020 position_after_white_space (); ;
4023 #line 1944 "objc-parse.y"
4024 { emit_line_note (input_filename
, lineno
);
4025 yyval
.ttype
= NULL_TREE
; ;
4028 #line 1947 "objc-parse.y"
4029 { emit_line_note (input_filename
, lineno
); ;
4032 #line 1952 "objc-parse.y"
4033 { yyval
.ttype
= NULL_TREE
; ;
4036 #line 1959 "objc-parse.y"
4037 { yyval
.ttype
= NULL_TREE
; ;
4040 #line 1966 "objc-parse.y"
4041 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
4044 #line 1971 "objc-parse.y"
4045 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
4048 #line 1976 "objc-parse.y"
4049 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
4052 #line 1978 "objc-parse.y"
4053 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
4056 #line 1984 "objc-parse.y"
4058 clear_parm_order ();
4059 declare_parm_level (0); ;
4062 #line 1988 "objc-parse.y"
4063 { yyval
.ttype
= yyvsp
[0].ttype
;
4064 parmlist_tags_warning ();
4065 poplevel (0, 0, 0); ;
4068 #line 1996 "objc-parse.y"
4071 pedwarn ("ANSI C forbids forward parameter declarations");
4072 /* Mark the forward decls as such. */
4073 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
4074 TREE_ASM_WRITTEN (parm
) = 1;
4075 clear_parm_order (); ;
4078 #line 2004 "objc-parse.y"
4079 { yyval
.ttype
= yyvsp
[0].ttype
; ;
4082 #line 2006 "objc-parse.y"
4083 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
4086 #line 2012 "objc-parse.y"
4087 { yyval
.ttype
= get_parm_info (0); ;
4090 #line 2014 "objc-parse.y"
4091 { yyval
.ttype
= get_parm_info (0);
4092 /* Gcc used to allow this as an extension. However, it does
4093 not work for all targets, and thus has been disabled.
4094 Also, since func (...) and func () are indistinguishable,
4095 it caused problems with the code in expand_builtin which
4096 tries to verify that BUILT_IN_NEXT_ARG is being used
4098 error ("ANSI C requires a named argument before `...'");
4102 #line 2024 "objc-parse.y"
4103 { yyval
.ttype
= get_parm_info (1); ;
4106 #line 2026 "objc-parse.y"
4107 { yyval
.ttype
= get_parm_info (0); ;
4110 #line 2031 "objc-parse.y"
4111 { push_parm_decl (yyvsp
[0].ttype
); ;
4114 #line 2033 "objc-parse.y"
4115 { push_parm_decl (yyvsp
[0].ttype
); ;
4118 #line 2040 "objc-parse.y"
4119 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4121 build_tree_list (prefix_attributes
,
4123 current_declspecs
= TREE_VALUE (declspec_stack
);
4124 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4125 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4128 #line 2048 "objc-parse.y"
4129 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4131 build_tree_list (prefix_attributes
,
4133 current_declspecs
= TREE_VALUE (declspec_stack
);
4134 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4135 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4138 #line 2056 "objc-parse.y"
4139 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4141 build_tree_list (prefix_attributes
,
4143 current_declspecs
= TREE_VALUE (declspec_stack
);
4144 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4145 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4148 #line 2064 "objc-parse.y"
4149 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4151 build_tree_list (prefix_attributes
,
4153 current_declspecs
= TREE_VALUE (declspec_stack
);
4154 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4155 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4158 #line 2073 "objc-parse.y"
4159 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4161 build_tree_list (prefix_attributes
,
4163 current_declspecs
= TREE_VALUE (declspec_stack
);
4164 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4165 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4168 #line 2086 "objc-parse.y"
4170 clear_parm_order ();
4171 declare_parm_level (1); ;
4174 #line 2090 "objc-parse.y"
4175 { yyval
.ttype
= yyvsp
[0].ttype
;
4176 parmlist_tags_warning ();
4177 poplevel (0, 0, 0); ;
4180 #line 2098 "objc-parse.y"
4182 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
4183 if (TREE_VALUE (t
) == NULL_TREE
)
4184 error ("`...' in old-style identifier list");
4185 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
4188 #line 2108 "objc-parse.y"
4189 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4192 #line 2110 "objc-parse.y"
4193 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4196 #line 2116 "objc-parse.y"
4197 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4200 #line 2118 "objc-parse.y"
4201 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4204 #line 2123 "objc-parse.y"
4205 { yyval
.ttype
= SAVE_WARN_FLAGS();
4207 warn_pointer_arith
= 0; ;
4210 #line 2137 "objc-parse.y"
4212 if (objc_implementation_context
)
4214 finish_class (objc_implementation_context
);
4215 objc_ivar_chain
= NULL_TREE
;
4216 objc_implementation_context
= NULL_TREE
;
4219 warning ("`@end' must appear in an implementation context");
4223 #line 2152 "objc-parse.y"
4224 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4227 #line 2154 "objc-parse.y"
4228 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4231 #line 2159 "objc-parse.y"
4233 objc_declare_class (yyvsp
[-1].ttype
);
4237 #line 2165 "objc-parse.y"
4239 objc_declare_alias (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4243 #line 2171 "objc-parse.y"
4245 objc_interface_context
= objc_ivar_context
4246 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[-1].ttype
);
4247 objc_public_flag
= 0;
4251 #line 2177 "objc-parse.y"
4253 continue_class (objc_interface_context
);
4257 #line 2182 "objc-parse.y"
4259 finish_class (objc_interface_context
);
4260 objc_interface_context
= NULL_TREE
;
4264 #line 2188 "objc-parse.y"
4266 objc_interface_context
4267 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
4268 continue_class (objc_interface_context
);
4272 #line 2195 "objc-parse.y"
4274 finish_class (objc_interface_context
);
4275 objc_interface_context
= NULL_TREE
;
4279 #line 2201 "objc-parse.y"
4281 objc_interface_context
= objc_ivar_context
4282 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4283 objc_public_flag
= 0;
4287 #line 2207 "objc-parse.y"
4289 continue_class (objc_interface_context
);
4293 #line 2212 "objc-parse.y"
4295 finish_class (objc_interface_context
);
4296 objc_interface_context
= NULL_TREE
;
4300 #line 2218 "objc-parse.y"
4302 objc_interface_context
4303 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4304 continue_class (objc_interface_context
);
4308 #line 2225 "objc-parse.y"
4310 finish_class (objc_interface_context
);
4311 objc_interface_context
= NULL_TREE
;
4315 #line 2231 "objc-parse.y"
4317 objc_implementation_context
= objc_ivar_context
4318 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, NULL_TREE
);
4319 objc_public_flag
= 0;
4323 #line 2237 "objc-parse.y"
4326 = continue_class (objc_implementation_context
);
4330 #line 2243 "objc-parse.y"
4332 objc_implementation_context
4333 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
);
4335 = continue_class (objc_implementation_context
);
4339 #line 2251 "objc-parse.y"
4341 objc_implementation_context
= objc_ivar_context
4342 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4343 objc_public_flag
= 0;
4347 #line 2257 "objc-parse.y"
4350 = continue_class (objc_implementation_context
);
4354 #line 2263 "objc-parse.y"
4356 objc_implementation_context
4357 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4359 = continue_class (objc_implementation_context
);
4363 #line 2271 "objc-parse.y"
4365 objc_interface_context
4366 = start_class (CATEGORY_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4367 continue_class (objc_interface_context
);
4371 #line 2278 "objc-parse.y"
4373 finish_class (objc_interface_context
);
4374 objc_interface_context
= NULL_TREE
;
4378 #line 2284 "objc-parse.y"
4380 objc_implementation_context
4381 = start_class (CATEGORY_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4383 = continue_class (objc_implementation_context
);
4387 #line 2294 "objc-parse.y"
4389 remember_protocol_qualifiers ();
4390 objc_interface_context
4391 = start_protocol(PROTOCOL_INTERFACE_TYPE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4395 #line 2300 "objc-parse.y"
4397 forget_protocol_qualifiers();
4398 finish_protocol(objc_interface_context
);
4399 objc_interface_context
= NULL_TREE
;
4403 #line 2309 "objc-parse.y"
4405 yyval
.ttype
= NULL_TREE
;
4409 #line 2317 "objc-parse.y"
4411 if (yyvsp
[-2].code
== LT_EXPR
&& yyvsp
[0].code
== GT_EXPR
)
4412 yyval
.ttype
= yyvsp
[-1].ttype
;
4418 #line 2331 "objc-parse.y"
4419 { objc_public_flag
= 2; ;
4422 #line 2332 "objc-parse.y"
4423 { objc_public_flag
= 0; ;
4426 #line 2333 "objc-parse.y"
4427 { objc_public_flag
= 1; ;
4430 #line 2338 "objc-parse.y"
4432 yyval
.ttype
= NULL_TREE
;
4436 #line 2343 "objc-parse.y"
4439 pedwarn ("extra semicolon in struct or union specified");
4443 #line 2361 "objc-parse.y"
4444 { yyval
.ttype
= yyvsp
[0].ttype
;
4445 current_declspecs
= TREE_VALUE (declspec_stack
);
4446 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4447 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4450 #line 2366 "objc-parse.y"
4451 { yyval
.ttype
= yyvsp
[0].ttype
;
4452 current_declspecs
= TREE_VALUE (declspec_stack
);
4453 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4454 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4457 #line 2371 "objc-parse.y"
4458 { yyval
.ttype
= NULL_TREE
; ;
4461 #line 2376 "objc-parse.y"
4462 { yyval
.ttype
= NULL_TREE
; ;
4465 #line 2383 "objc-parse.y"
4467 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4469 yyvsp
[0].ttype
, current_declspecs
,
4474 #line 2390 "objc-parse.y"
4476 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4478 yyvsp
[-2].ttype
, current_declspecs
, yyvsp
[0].ttype
);
4482 #line 2396 "objc-parse.y"
4484 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4487 current_declspecs
, yyvsp
[0].ttype
);
4491 #line 2406 "objc-parse.y"
4493 remember_protocol_qualifiers ();
4494 if (objc_implementation_context
)
4495 objc_inherit_code
= CLASS_METHOD_DECL
;
4497 fatal ("method definition not in class context");
4501 #line 2414 "objc-parse.y"
4503 forget_protocol_qualifiers ();
4504 add_class_method (objc_implementation_context
, yyvsp
[0].ttype
);
4505 start_method_def (yyvsp
[0].ttype
);
4506 objc_method_context
= yyvsp
[0].ttype
;
4510 #line 2421 "objc-parse.y"
4512 continue_method_def ();
4516 #line 2425 "objc-parse.y"
4518 finish_method_def ();
4519 objc_method_context
= NULL_TREE
;
4523 #line 2431 "objc-parse.y"
4525 remember_protocol_qualifiers ();
4526 if (objc_implementation_context
)
4527 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4529 fatal ("method definition not in class context");
4533 #line 2439 "objc-parse.y"
4535 forget_protocol_qualifiers ();
4536 add_instance_method (objc_implementation_context
, yyvsp
[0].ttype
);
4537 start_method_def (yyvsp
[0].ttype
);
4538 objc_method_context
= yyvsp
[0].ttype
;
4542 #line 2446 "objc-parse.y"
4544 continue_method_def ();
4548 #line 2450 "objc-parse.y"
4550 finish_method_def ();
4551 objc_method_context
= NULL_TREE
;
4555 #line 2462 "objc-parse.y"
4556 {yyval
.ttype
= NULL_TREE
; ;
4559 #line 2469 "objc-parse.y"
4560 {yyval
.ttype
= NULL_TREE
; ;
4563 #line 2479 "objc-parse.y"
4565 /* Remember protocol qualifiers in prototypes. */
4566 remember_protocol_qualifiers ();
4567 objc_inherit_code
= CLASS_METHOD_DECL
;
4571 #line 2485 "objc-parse.y"
4573 /* Forget protocol qualifiers here. */
4574 forget_protocol_qualifiers ();
4575 add_class_method (objc_interface_context
, yyvsp
[0].ttype
);
4579 #line 2493 "objc-parse.y"
4581 /* Remember protocol qualifiers in prototypes. */
4582 remember_protocol_qualifiers ();
4583 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4587 #line 2499 "objc-parse.y"
4589 /* Forget protocol qualifiers here. */
4590 forget_protocol_qualifiers ();
4591 add_instance_method (objc_interface_context
, yyvsp
[0].ttype
);
4595 #line 2509 "objc-parse.y"
4597 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4601 #line 2514 "objc-parse.y"
4603 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
4607 #line 2519 "objc-parse.y"
4609 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4613 #line 2524 "objc-parse.y"
4615 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4619 #line 2554 "objc-parse.y"
4620 { current_declspecs
= TREE_VALUE (declspec_stack
);
4621 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4622 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4625 #line 2558 "objc-parse.y"
4626 { shadow_tag (yyvsp
[-1].ttype
); ;
4629 #line 2560 "objc-parse.y"
4630 { pedwarn ("empty declaration"); ;
4633 #line 2565 "objc-parse.y"
4634 { push_parm_decl (yyvsp
[0].ttype
); ;
4637 #line 2567 "objc-parse.y"
4638 { push_parm_decl (yyvsp
[0].ttype
); ;
4641 #line 2575 "objc-parse.y"
4642 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4644 build_tree_list (prefix_attributes
,
4648 #line 2580 "objc-parse.y"
4649 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4651 build_tree_list (prefix_attributes
,
4655 #line 2585 "objc-parse.y"
4656 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4658 build_tree_list (prefix_attributes
,
4662 #line 2593 "objc-parse.y"
4664 yyval
.ttype
= NULL_TREE
;
4668 #line 2597 "objc-parse.y"
4670 /* oh what a kludge! */
4671 yyval
.ttype
= objc_ellipsis_node
;
4675 #line 2602 "objc-parse.y"
4681 #line 2606 "objc-parse.y"
4683 /* returns a tree list node generated by get_parm_info */
4684 yyval
.ttype
= yyvsp
[0].ttype
;
4689 #line 2621 "objc-parse.y"
4691 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4695 #line 2634 "objc-parse.y"
4696 { yyval
.ttype
= get_identifier (token_buffer
); ;
4699 #line 2635 "objc-parse.y"
4700 { yyval
.ttype
= get_identifier (token_buffer
); ;
4703 #line 2636 "objc-parse.y"
4704 { yyval
.ttype
= get_identifier (token_buffer
); ;
4707 #line 2637 "objc-parse.y"
4708 { yyval
.ttype
= get_identifier (token_buffer
); ;
4711 #line 2638 "objc-parse.y"
4712 { yyval
.ttype
= get_identifier (token_buffer
); ;
4715 #line 2639 "objc-parse.y"
4716 { yyval
.ttype
= get_identifier (token_buffer
); ;
4719 #line 2640 "objc-parse.y"
4720 { yyval
.ttype
= get_identifier (token_buffer
); ;
4723 #line 2641 "objc-parse.y"
4724 { yyval
.ttype
= get_identifier (token_buffer
); ;
4727 #line 2642 "objc-parse.y"
4728 { yyval
.ttype
= get_identifier (token_buffer
); ;
4731 #line 2643 "objc-parse.y"
4732 { yyval
.ttype
= get_identifier (token_buffer
); ;
4735 #line 2644 "objc-parse.y"
4736 { yyval
.ttype
= get_identifier (token_buffer
); ;
4739 #line 2645 "objc-parse.y"
4740 { yyval
.ttype
= get_identifier (token_buffer
); ;
4743 #line 2646 "objc-parse.y"
4744 { yyval
.ttype
= get_identifier (token_buffer
); ;
4747 #line 2647 "objc-parse.y"
4748 { yyval
.ttype
= get_identifier (token_buffer
); ;
4751 #line 2648 "objc-parse.y"
4752 { yyval
.ttype
= get_identifier (token_buffer
); ;
4755 #line 2649 "objc-parse.y"
4756 { yyval
.ttype
= get_identifier (token_buffer
); ;
4759 #line 2650 "objc-parse.y"
4760 { yyval
.ttype
= get_identifier (token_buffer
); ;
4763 #line 2651 "objc-parse.y"
4764 { yyval
.ttype
= get_identifier (token_buffer
); ;
4767 #line 2652 "objc-parse.y"
4768 { yyval
.ttype
= get_identifier (token_buffer
); ;
4771 #line 2658 "objc-parse.y"
4773 yyval
.ttype
= build_keyword_decl (yyvsp
[-5].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4777 #line 2663 "objc-parse.y"
4779 yyval
.ttype
= build_keyword_decl (yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
4783 #line 2668 "objc-parse.y"
4785 yyval
.ttype
= build_keyword_decl (NULL_TREE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4789 #line 2673 "objc-parse.y"
4791 yyval
.ttype
= build_keyword_decl (NULL_TREE
, NULL_TREE
, yyvsp
[0].ttype
);
4795 #line 2686 "objc-parse.y"
4797 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4801 #line 2694 "objc-parse.y"
4803 if (TREE_CHAIN (yyvsp
[0].ttype
) == NULL_TREE
)
4804 /* just return the expr., remove a level of indirection */
4805 yyval
.ttype
= TREE_VALUE (yyvsp
[0].ttype
);
4807 /* we have a comma expr., we will collapse later */
4808 yyval
.ttype
= yyvsp
[0].ttype
;
4812 #line 2706 "objc-parse.y"
4814 yyval
.ttype
= build_tree_list (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4818 #line 2710 "objc-parse.y"
4820 yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
);
4824 #line 2718 "objc-parse.y"
4826 yyval
.ttype
= get_class_reference (yyvsp
[0].ttype
);
4830 #line 2725 "objc-parse.y"
4831 { objc_receiver_context
= 1; ;
4834 #line 2727 "objc-parse.y"
4835 { objc_receiver_context
= 0; ;
4838 #line 2729 "objc-parse.y"
4840 yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
);
4844 #line 2742 "objc-parse.y"
4846 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4850 #line 2749 "objc-parse.y"
4852 yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, NULL_TREE
);
4856 #line 2753 "objc-parse.y"
4858 yyval
.ttype
= build_tree_list (NULL_TREE
, NULL_TREE
);
4862 #line 2760 "objc-parse.y"
4864 yyval
.ttype
= yyvsp
[-1].ttype
;
4868 #line 2767 "objc-parse.y"
4870 yyval
.ttype
= yyvsp
[-1].ttype
;
4874 #line 2776 "objc-parse.y"
4876 yyval
.ttype
= groktypename (yyvsp
[-1].ttype
);
4880 /* the action file gets copied in in place of this dollarsign */
4881 #line 543 "/usr/share/misc/bison.simple"
4892 short *ssp1
= yyss
- 1;
4893 fprintf (stderr
, "state stack now");
4894 while (ssp1
!= yyssp
)
4895 fprintf (stderr
, " %d", *++ssp1
);
4896 fprintf (stderr
, "\n");
4906 yylsp
->first_line
= yylloc
.first_line
;
4907 yylsp
->first_column
= yylloc
.first_column
;
4908 yylsp
->last_line
= (yylsp
-1)->last_line
;
4909 yylsp
->last_column
= (yylsp
-1)->last_column
;
4914 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
4915 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
4919 /* Now "shift" the result of the reduction.
4920 Determine what state that goes to,
4921 based on the state we popped back to
4922 and the rule number reduced by. */
4926 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
4927 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
4928 yystate
= yytable
[yystate
];
4930 yystate
= yydefgoto
[yyn
- YYNTBASE
];
4934 yyerrlab
: /* here on detecting error */
4937 /* If not already recovering from an error, report this error. */
4941 #ifdef YYERROR_VERBOSE
4942 yyn
= yypact
[yystate
];
4944 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
4951 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
4952 for (x
= (yyn
< 0 ? -yyn
: 0);
4953 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
4954 if (yycheck
[x
+ yyn
] == x
)
4955 size
+= strlen(yytname
[x
]) + 15, count
++;
4956 msg
= (char *) malloc(size
+ 15);
4959 strcpy(msg
, "parse error");
4964 for (x
= (yyn
< 0 ? -yyn
: 0);
4965 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
4966 if (yycheck
[x
+ yyn
] == x
)
4968 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
4969 strcat(msg
, yytname
[x
]);
4978 yyerror ("parse error; also virtual memory exceeded");
4981 #endif /* YYERROR_VERBOSE */
4982 yyerror("parse error");
4986 yyerrlab1
: /* here on error raised explicitly by an action */
4988 if (yyerrstatus
== 3)
4990 /* if just tried and failed to reuse lookahead token after an error, discard it. */
4992 /* return failure if at end of input */
4993 if (yychar
== YYEOF
)
4998 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
5004 /* Else will try to reuse lookahead token
5005 after shifting the error token. */
5007 yyerrstatus
= 3; /* Each real token shifted decrements this */
5011 yyerrdefault
: /* current state does not do anything special for the error token. */
5014 /* This is wrong; only states that explicitly want error tokens
5015 should shift them. */
5016 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5017 if (yyn
) goto yydefault
;
5020 yyerrpop
: /* pop the current state because it cannot handle the error token */
5022 if (yyssp
== yyss
) YYABORT
;
5032 short *ssp1
= yyss
- 1;
5033 fprintf (stderr
, "Error: state stack now");
5034 while (ssp1
!= yyssp
)
5035 fprintf (stderr
, " %d", *++ssp1
);
5036 fprintf (stderr
, "\n");
5042 yyn
= yypact
[yystate
];
5047 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
5066 fprintf(stderr
, "Shifting error token, ");
5078 /* YYACCEPT comes here. */
5090 /* YYABORT comes here. */
5101 #line 2781 "objc-parse.y"