2 /* A Bison parser, made from objc-parse.y
3 by GNU Bison version 1.25
6 #define YYBISON 1 /* Identify Bison output. */
32 #define ASM_KEYWORD 282
44 #define ARITHCOMPARE 294
49 #define MINUSMINUS 299
50 #define HYPERUNARY 300
53 #define IMPLEMENTATION 303
63 #define OBJECTNAME 313
66 #define OBJC_STRING 316
68 #line 33 "objc-parse.y"
82 #ifdef MULTIBYTE_CHARS
88 /* Since parsers are distinct for each language, put the language string
90 char *language_string
= "GNU Obj-C";
92 /* Like YYERROR but do call yyerror. */
93 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
95 /* Cause the `yydebug' variable to be defined. */
98 #line 65 "objc-parse.y"
99 typedef union {long itype
; tree ttype
; enum tree_code code
;
100 char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
101 #line 193 "objc-parse.y"
103 /* Number of statements (loosely speaking) and compound statements
105 static int stmt_count
;
106 static int compstmt_count
;
108 /* Input file and line number of the end of the body of last simple_if;
109 used by the stmt-rule immediately after simple_if returns. */
110 static char *if_stmt_file
;
111 static int if_stmt_line
;
113 /* List of types and structure classes of the current declaration. */
114 static tree current_declspecs
= NULL_TREE
;
115 static tree prefix_attributes
= NULL_TREE
;
117 /* Stack of saved values of current_declspecs and prefix_attributes. */
118 static tree declspec_stack
;
120 /* 1 if we explained undeclared var errors. */
121 static int undeclared_variable_notice
;
123 /* Objective-C specific information */
125 tree objc_interface_context
;
126 tree objc_implementation_context
;
127 tree objc_method_context
;
128 tree objc_ivar_chain
;
129 tree objc_ivar_context
;
130 enum tree_code objc_inherit_code
;
131 int objc_receiver_context
;
132 int objc_public_flag
;
135 /* Tell yyparse how to print a token's value, if yydebug is set. */
137 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
138 extern void yyprint
PROTO ((FILE *, int, YYSTYPE
));
150 #define YYFLAG -32768
153 #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 311)
155 static const char yytranslate
[] = { 0,
156 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
159 2, 2, 80, 2, 2, 2, 52, 43, 2, 59,
160 76, 50, 48, 81, 49, 58, 51, 2, 2, 2,
161 2, 2, 2, 2, 2, 2, 2, 38, 77, 2,
162 36, 2, 37, 2, 2, 2, 2, 2, 2, 2,
163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
165 60, 2, 83, 42, 2, 2, 2, 2, 2, 2,
166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
168 2, 2, 82, 41, 78, 79, 2, 2, 2, 2,
169 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
170 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
171 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
172 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
173 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
175 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
178 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
180 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
181 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
182 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
183 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
184 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
185 39, 40, 44, 45, 46, 47, 53, 54, 55, 56,
186 57, 61, 62, 63, 64, 65, 66, 67, 68, 69,
187 70, 71, 72, 73, 74, 75
191 static const short yyprhs
[] = { 0,
192 0, 1, 3, 4, 7, 8, 12, 14, 16, 18,
193 24, 27, 31, 36, 41, 44, 47, 50, 53, 55,
194 56, 57, 65, 70, 71, 72, 80, 85, 86, 87,
195 94, 98, 100, 102, 104, 106, 108, 110, 112, 114,
196 116, 118, 120, 122, 123, 125, 127, 131, 133, 136,
197 139, 142, 145, 148, 153, 156, 161, 164, 167, 169,
198 171, 173, 178, 179, 187, 189, 193, 197, 201, 205,
199 209, 213, 217, 221, 225, 229, 233, 237, 238, 243,
200 244, 249, 250, 251, 259, 260, 266, 270, 274, 276,
201 278, 280, 284, 288, 289, 294, 299, 304, 308, 312,
202 315, 318, 320, 322, 324, 326, 328, 330, 333, 335,
203 338, 339, 341, 344, 348, 350, 352, 355, 358, 363,
204 368, 371, 374, 378, 380, 382, 385, 388, 389, 390,
205 395, 400, 404, 408, 411, 414, 417, 420, 424, 425,
206 428, 431, 434, 437, 441, 442, 445, 448, 450, 452,
207 455, 458, 460, 462, 465, 468, 471, 475, 476, 479,
208 481, 483, 485, 488, 491, 493, 498, 503, 505, 507,
209 509, 511, 515, 517, 521, 522, 527, 528, 535, 539,
210 540, 547, 551, 552, 554, 556, 559, 566, 568, 572,
211 573, 575, 580, 587, 592, 594, 596, 598, 600, 602,
212 603, 608, 610, 611, 614, 616, 620, 624, 627, 628,
213 633, 635, 636, 641, 643, 645, 647, 650, 653, 654,
214 655, 661, 662, 663, 669, 671, 673, 677, 681, 686,
215 690, 694, 698, 700, 702, 706, 711, 715, 719, 723,
216 725, 729, 733, 737, 742, 746, 750, 752, 754, 757,
217 759, 762, 764, 767, 768, 776, 782, 785, 786, 794,
218 800, 803, 804, 813, 814, 822, 825, 826, 828, 829,
219 831, 833, 836, 837, 841, 844, 849, 853, 855, 859,
220 861, 863, 866, 868, 872, 877, 884, 890, 892, 896,
221 898, 900, 904, 907, 910, 911, 913, 915, 918, 919,
222 922, 926, 930, 933, 937, 942, 946, 949, 953, 956,
223 958, 960, 963, 966, 967, 969, 972, 973, 974, 976,
224 978, 981, 985, 987, 990, 992, 995, 1002, 1008, 1014,
225 1017, 1020, 1025, 1026, 1031, 1032, 1033, 1037, 1042, 1046,
226 1048, 1050, 1052, 1054, 1057, 1058, 1063, 1065, 1069, 1070,
227 1071, 1079, 1085, 1088, 1089, 1090, 1091, 1104, 1105, 1112,
228 1115, 1118, 1121, 1125, 1132, 1141, 1152, 1165, 1169, 1174,
229 1176, 1178, 1179, 1186, 1190, 1196, 1199, 1203, 1204, 1206,
230 1207, 1209, 1210, 1212, 1214, 1218, 1223, 1225, 1229, 1230,
231 1233, 1236, 1237, 1242, 1245, 1246, 1248, 1250, 1254, 1256,
232 1260, 1265, 1270, 1275, 1280, 1285, 1286, 1289, 1291, 1294,
233 1296, 1300, 1302, 1306, 1308, 1310, 1312, 1314, 1316, 1318,
234 1320, 1322, 1326, 1330, 1335, 1336, 1337, 1348, 1349, 1356,
235 1357, 1358, 1371, 1372, 1381, 1382, 1389, 1392, 1393, 1402,
236 1407, 1408, 1418, 1424, 1425, 1432, 1433, 1435, 1439, 1443,
237 1445, 1447, 1449, 1451, 1452, 1456, 1459, 1463, 1467, 1469,
238 1470, 1472, 1476, 1478, 1482, 1485, 1486, 1487, 1488, 1496,
239 1497, 1498, 1499, 1507, 1508, 1509, 1512, 1514, 1516, 1519,
240 1520, 1524, 1526, 1528, 1529, 1530, 1536, 1537, 1538, 1544,
241 1549, 1551, 1557, 1560, 1561, 1564, 1565, 1567, 1569, 1571,
242 1574, 1577, 1582, 1585, 1588, 1590, 1594, 1597, 1600, 1603,
243 1604, 1607, 1608, 1612, 1614, 1616, 1619, 1621, 1623, 1625,
244 1627, 1629, 1631, 1633, 1635, 1637, 1639, 1641, 1643, 1645,
245 1647, 1649, 1651, 1653, 1655, 1657, 1659, 1661, 1663, 1665,
246 1667, 1669, 1676, 1680, 1686, 1689, 1691, 1693, 1695, 1698,
247 1700, 1704, 1707, 1709, 1711, 1712, 1713, 1720, 1722, 1724,
248 1726, 1729, 1732, 1734, 1739, 1744
251 static const short yyrhs
[] = { -1,
252 85, 0, 0, 86, 88, 0, 0, 85, 87, 88,
253 0, 90, 0, 89, 0, 242, 0, 27, 59, 99,
254 76, 77, 0, 241, 88, 0, 123, 137, 77, 0,
255 130, 123, 137, 77, 0, 126, 123, 136, 77, 0,
256 130, 77, 0, 126, 77, 0, 1, 77, 0, 1,
257 78, 0, 77, 0, 0, 0, 126, 123, 165, 91,
258 117, 92, 199, 0, 126, 123, 165, 1, 0, 0,
259 0, 130, 123, 168, 93, 117, 94, 199, 0, 130,
260 123, 168, 1, 0, 0, 0, 123, 168, 95, 117,
261 96, 199, 0, 123, 168, 1, 0, 3, 0, 4,
262 0, 72, 0, 67, 0, 43, 0, 49, 0, 48,
263 0, 54, 0, 55, 0, 79, 0, 80, 0, 101,
264 0, 0, 101, 0, 107, 0, 101, 81, 107, 0,
265 113, 0, 50, 105, 0, 241, 105, 0, 98, 105,
266 0, 40, 97, 0, 103, 102, 0, 103, 59, 186,
267 76, 0, 104, 102, 0, 104, 59, 186, 76, 0,
268 33, 105, 0, 34, 105, 0, 11, 0, 29, 0,
269 102, 0, 59, 186, 76, 105, 0, 0, 59, 186,
270 76, 82, 106, 151, 78, 0, 105, 0, 107, 48,
271 107, 0, 107, 49, 107, 0, 107, 50, 107, 0,
272 107, 51, 107, 0, 107, 52, 107, 0, 107, 46,
273 107, 0, 107, 47, 107, 0, 107, 45, 107, 0,
274 107, 44, 107, 0, 107, 43, 107, 0, 107, 41,
275 107, 0, 107, 42, 107, 0, 0, 107, 40, 108,
276 107, 0, 0, 107, 39, 109, 107, 0, 0, 0,
277 107, 37, 110, 99, 38, 111, 107, 0, 0, 107,
278 37, 112, 38, 107, 0, 107, 36, 107, 0, 107,
279 35, 107, 0, 3, 0, 8, 0, 115, 0, 59,
280 99, 76, 0, 59, 1, 76, 0, 0, 59, 114,
281 201, 76, 0, 113, 59, 100, 76, 0, 113, 60,
282 99, 83, 0, 113, 58, 97, 0, 113, 57, 97,
283 0, 113, 54, 0, 113, 55, 0, 302, 0, 308,
284 0, 309, 0, 310, 0, 116, 0, 9, 0, 115,
285 9, 0, 75, 0, 116, 75, 0, 0, 119, 0,
286 119, 10, 0, 206, 207, 120, 0, 118, 0, 194,
287 0, 119, 118, 0, 118, 194, 0, 128, 123, 136,
288 77, 0, 131, 123, 137, 77, 0, 128, 77, 0,
289 131, 77, 0, 206, 207, 125, 0, 121, 0, 194,
290 0, 122, 121, 0, 121, 194, 0, 0, 0, 126,
291 123, 136, 77, 0, 130, 123, 137, 77, 0, 126,
292 123, 159, 0, 130, 123, 162, 0, 126, 77, 0,
293 130, 77, 0, 241, 125, 0, 134, 127, 0, 130,
294 134, 127, 0, 0, 127, 135, 0, 127, 5, 0,
295 127, 144, 0, 134, 129, 0, 131, 134, 129, 0,
296 0, 129, 135, 0, 129, 5, 0, 131, 0, 144,
297 0, 130, 131, 0, 130, 144, 0, 7, 0, 5,
298 0, 131, 7, 0, 131, 5, 0, 134, 133, 0,
299 188, 134, 133, 0, 0, 133, 135, 0, 6, 0,
300 172, 0, 4, 0, 67, 258, 0, 72, 258, 0,
301 259, 0, 28, 59, 99, 76, 0, 28, 59, 186,
302 76, 0, 6, 0, 7, 0, 172, 0, 139, 0,
303 136, 81, 139, 0, 141, 0, 137, 81, 139, 0,
304 0, 27, 59, 115, 76, 0, 0, 165, 138, 143,
305 36, 140, 149, 0, 165, 138, 143, 0, 0, 168,
306 138, 143, 36, 142, 149, 0, 168, 138, 143, 0,
307 0, 144, 0, 145, 0, 144, 145, 0, 30, 59,
308 59, 146, 76, 76, 0, 147, 0, 146, 81, 147,
309 0, 0, 148, 0, 148, 59, 3, 76, 0, 148,
310 59, 3, 81, 101, 76, 0, 148, 59, 100, 76,
311 0, 97, 0, 5, 0, 6, 0, 7, 0, 107,
312 0, 0, 82, 150, 151, 78, 0, 1, 0, 0,
313 152, 177, 0, 153, 0, 152, 81, 153, 0, 157,
314 36, 155, 0, 158, 155, 0, 0, 97, 38, 154,
315 155, 0, 155, 0, 0, 82, 156, 151, 78, 0,
316 107, 0, 1, 0, 158, 0, 157, 158, 0, 58,
317 97, 0, 0, 0, 165, 160, 117, 161, 201, 0,
318 0, 0, 168, 163, 117, 164, 201, 0, 166, 0,
319 168, 0, 59, 166, 76, 0, 166, 59, 236, 0,
320 166, 60, 99, 83, 0, 166, 60, 83, 0, 50,
321 189, 166, 0, 144, 124, 166, 0, 4, 0, 72,
322 0, 167, 59, 236, 0, 167, 60, 99, 83, 0,
323 167, 60, 83, 0, 50, 189, 167, 0, 144, 124,
324 167, 0, 4, 0, 168, 59, 236, 0, 59, 168,
325 76, 0, 50, 189, 168, 0, 168, 60, 99, 83,
326 0, 168, 60, 83, 0, 144, 124, 168, 0, 3,
327 0, 13, 0, 13, 144, 0, 14, 0, 14, 144,
328 0, 12, 0, 12, 144, 0, 0, 169, 97, 82,
329 173, 179, 78, 143, 0, 169, 82, 179, 78, 143,
330 0, 169, 97, 0, 0, 170, 97, 82, 174, 179,
331 78, 143, 0, 170, 82, 179, 78, 143, 0, 170,
332 97, 0, 0, 171, 97, 82, 175, 184, 178, 78,
333 143, 0, 0, 171, 82, 176, 184, 178, 78, 143,
334 0, 171, 97, 0, 0, 81, 0, 0, 81, 0,
335 180, 0, 180, 181, 0, 0, 180, 181, 77, 0,
336 180, 77, 0, 65, 59, 67, 76, 0, 132, 123,
337 182, 0, 132, 0, 188, 123, 182, 0, 188, 0,
338 1, 0, 241, 181, 0, 183, 0, 182, 81, 183,
339 0, 206, 207, 165, 143, 0, 206, 207, 165, 38,
340 107, 143, 0, 206, 207, 38, 107, 143, 0, 185,
341 0, 184, 81, 185, 0, 1, 0, 97, 0, 97,
342 36, 107, 0, 132, 187, 0, 188, 187, 0, 0,
343 190, 0, 7, 0, 188, 7, 0, 0, 189, 7,
344 0, 59, 190, 76, 0, 50, 189, 190, 0, 50,
345 189, 0, 190, 59, 229, 0, 190, 60, 99, 83,
346 0, 190, 60, 83, 0, 59, 229, 0, 60, 99,
347 83, 0, 60, 83, 0, 192, 0, 209, 0, 192,
348 209, 0, 192, 194, 0, 0, 191, 0, 1, 77,
349 0, 0, 0, 197, 0, 198, 0, 197, 198, 0,
350 32, 240, 77, 0, 201, 0, 1, 201, 0, 82,
351 0, 200, 78, 0, 200, 195, 196, 122, 193, 78,
352 0, 200, 195, 196, 1, 78, 0, 200, 195, 196,
353 191, 78, 0, 203, 208, 0, 203, 1, 0, 15,
354 59, 99, 76, 0, 0, 18, 205, 208, 17, 0,
355 0, 0, 206, 207, 211, 0, 206, 207, 222, 208,
356 0, 206, 207, 210, 0, 211, 0, 222, 0, 201,
357 0, 219, 0, 99, 77, 0, 0, 202, 16, 212,
358 208, 0, 202, 0, 202, 16, 1, 0, 0, 0,
359 17, 213, 59, 99, 76, 214, 208, 0, 204, 59,
360 99, 76, 77, 0, 204, 1, 0, 0, 0, 0,
361 19, 59, 224, 77, 215, 224, 77, 216, 224, 76,
362 217, 208, 0, 0, 20, 59, 99, 76, 218, 208,
363 0, 23, 77, 0, 24, 77, 0, 25, 77, 0,
364 25, 99, 77, 0, 27, 223, 59, 99, 76, 77,
365 0, 27, 223, 59, 99, 38, 225, 76, 77, 0,
366 27, 223, 59, 99, 38, 225, 38, 225, 76, 77,
367 0, 27, 223, 59, 99, 38, 225, 38, 225, 38,
368 228, 76, 77, 0, 26, 97, 77, 0, 26, 50,
369 99, 77, 0, 77, 0, 220, 0, 0, 19, 59,
370 113, 76, 221, 208, 0, 21, 107, 38, 0, 21,
371 107, 10, 107, 38, 0, 22, 38, 0, 97, 38,
372 143, 0, 0, 7, 0, 0, 99, 0, 0, 226,
373 0, 227, 0, 226, 81, 227, 0, 9, 59, 99,
374 76, 0, 115, 0, 228, 81, 115, 0, 0, 230,
375 231, 0, 233, 76, 0, 0, 234, 77, 232, 231,
376 0, 1, 76, 0, 0, 10, 0, 234, 0, 234,
377 81, 10, 0, 235, 0, 234, 81, 235, 0, 126,
378 123, 167, 143, 0, 126, 123, 168, 143, 0, 126,
379 123, 187, 143, 0, 130, 123, 168, 143, 0, 130,
380 123, 187, 143, 0, 0, 237, 238, 0, 231, 0,
381 239, 76, 0, 3, 0, 239, 81, 3, 0, 97,
382 0, 240, 81, 97, 0, 31, 0, 246, 0, 244,
383 0, 245, 0, 256, 0, 266, 0, 63, 0, 97,
384 0, 243, 81, 97, 0, 73, 243, 77, 0, 74,
385 97, 97, 77, 0, 0, 0, 61, 97, 258, 82,
386 247, 260, 78, 248, 273, 63, 0, 0, 61, 97,
387 258, 249, 273, 63, 0, 0, 0, 61, 97, 38,
388 97, 258, 82, 250, 260, 78, 251, 273, 63, 0,
389 0, 61, 97, 38, 97, 258, 252, 273, 63, 0,
390 0, 62, 97, 82, 253, 260, 78, 0, 62, 97,
391 0, 0, 62, 97, 38, 97, 82, 254, 260, 78,
392 0, 62, 97, 38, 97, 0, 0, 61, 97, 59,
393 97, 76, 258, 255, 273, 63, 0, 62, 97, 59,
394 97, 76, 0, 0, 71, 97, 258, 257, 273, 63,
395 0, 0, 259, 0, 45, 243, 45, 0, 260, 261,
396 262, 0, 262, 0, 69, 0, 70, 0, 68, 0,
397 0, 262, 263, 77, 0, 262, 77, 0, 132, 123,
398 264, 0, 188, 123, 264, 0, 1, 0, 0, 265,
399 0, 264, 81, 265, 0, 165, 0, 165, 38, 107,
400 0, 38, 107, 0, 0, 0, 0, 48, 267, 283,
401 268, 284, 269, 199, 0, 0, 0, 0, 49, 270,
402 283, 271, 284, 272, 199, 0, 0, 0, 274, 275,
403 0, 278, 0, 89, 0, 275, 278, 0, 0, 275,
404 276, 89, 0, 77, 0, 1, 0, 0, 0, 48,
405 279, 283, 280, 277, 0, 0, 0, 49, 281, 283,
406 282, 277, 0, 59, 186, 76, 292, 0, 292, 0,
407 59, 186, 76, 293, 290, 0, 293, 290, 0, 0,
408 77, 285, 0, 0, 286, 0, 287, 0, 194, 0,
409 286, 287, 0, 287, 194, 0, 126, 123, 288, 77,
410 0, 126, 77, 0, 130, 77, 0, 289, 0, 288,
411 81, 289, 0, 167, 143, 0, 168, 143, 0, 187,
412 143, 0, 0, 81, 10, 0, 0, 81, 291, 233,
413 0, 294, 0, 296, 0, 293, 296, 0, 3, 0,
414 4, 0, 72, 0, 295, 0, 12, 0, 13, 0,
415 14, 0, 15, 0, 16, 0, 17, 0, 18, 0,
416 19, 0, 20, 0, 21, 0, 22, 0, 23, 0,
417 24, 0, 25, 0, 26, 0, 27, 0, 11, 0,
418 28, 0, 29, 0, 6, 0, 7, 0, 294, 38,
419 59, 186, 76, 97, 0, 294, 38, 97, 0, 38,
420 59, 186, 76, 97, 0, 38, 97, 0, 294, 0,
421 298, 0, 300, 0, 298, 300, 0, 101, 0, 294,
422 38, 299, 0, 38, 299, 0, 99, 0, 67, 0,
423 0, 0, 60, 303, 301, 304, 297, 83, 0, 294,
424 0, 306, 0, 307, 0, 306, 307, 0, 294, 38,
425 0, 38, 0, 64, 59, 305, 76, 0, 71, 59,
426 97, 76, 0, 66, 59, 186, 76, 0
432 static const short yyrline
[] = { 0,
433 233, 238, 252, 254, 254, 255, 257, 259, 260, 261,
434 269, 273, 284, 289, 294, 296, 298, 299, 300, 305,
435 312, 314, 319, 324, 330, 332, 337, 342, 348, 350,
436 355, 362, 364, 365, 366, 369, 371, 373, 375, 377,
437 379, 381, 385, 389, 392, 395, 398, 402, 404, 407,
438 410, 414, 442, 448, 451, 454, 457, 459, 463, 467,
439 471, 473, 476, 480, 507, 509, 511, 513, 515, 517,
440 519, 521, 523, 525, 527, 529, 531, 533, 537, 539,
441 543, 545, 548, 552, 554, 561, 564, 567, 573, 733,
442 734, 736, 742, 744, 758, 781, 783, 785, 797, 811,
443 813, 815, 817, 819, 821, 823, 828, 830, 836, 838,
444 842, 844, 845, 855, 860, 862, 863, 864, 871, 877,
445 882, 885, 893, 898, 900, 901, 902, 909, 920, 924,
446 930, 935, 940, 945, 947, 949, 958, 961, 965, 967,
447 969, 974, 978, 981, 985, 988, 990, 1002, 1005, 1007,
448 1009, 1013, 1017, 1019, 1022, 1035, 1038, 1042, 1044, 1052,
449 1053, 1054, 1058, 1060, 1065, 1067, 1069, 1075, 1076, 1077,
450 1080, 1082, 1085, 1087, 1090, 1093, 1099, 1106, 1108, 1115,
451 1122, 1125, 1132, 1135, 1139, 1142, 1146, 1151, 1154, 1158,
452 1161, 1163, 1165, 1167, 1174, 1176, 1177, 1178, 1183, 1185,
453 1190, 1198, 1203, 1207, 1210, 1212, 1217, 1219, 1220, 1223,
454 1223, 1226, 1229, 1231, 1233, 1236, 1238, 1241, 1249, 1260,
455 1268, 1272, 1283, 1291, 1298, 1300, 1305, 1308, 1313, 1315,
456 1317, 1324, 1326, 1327, 1335, 1341, 1343, 1345, 1352, 1354,
457 1360, 1366, 1368, 1370, 1372, 1379, 1381, 1384, 1387, 1391,
458 1394, 1398, 1401, 1405, 1410, 1412, 1416, 1418, 1420, 1422,
459 1426, 1428, 1431, 1434, 1437, 1440, 1444, 1446, 1449, 1451,
460 1456, 1459, 1464, 1466, 1468, 1472, 1496, 1503, 1508, 1514,
461 1519, 1521, 1526, 1528, 1532, 1536, 1540, 1550, 1552, 1557,
462 1562, 1565, 1569, 1572, 1576, 1579, 1582, 1585, 1589, 1592,
463 1596, 1600, 1602, 1604, 1606, 1608, 1610, 1612, 1614, 1624,
464 1632, 1634, 1636, 1640, 1642, 1645, 1648, 1661, 1663, 1668,
465 1670, 1673, 1687, 1690, 1693, 1695, 1697, 1705, 1713, 1724,
466 1729, 1732, 1746, 1755, 1759, 1763, 1767, 1773, 1777, 1782,
467 1785, 1790, 1793, 1794, 1811, 1816, 1819, 1831, 1833, 1843,
468 1853, 1854, 1862, 1865, 1877, 1881, 1898, 1908, 1917, 1922,
469 1927, 1932, 1936, 1940, 1951, 1958, 1965, 1972, 1983, 1989,
470 1992, 1997, 2020, 2054, 2085, 2116, 2131, 2145, 2149, 2153,
471 2156, 2161, 2163, 2166, 2168, 2172, 2177, 2180, 2186, 2191,
472 2196, 2198, 2207, 2208, 2214, 2216, 2226, 2228, 2232, 2235,
473 2241, 2251, 2260, 2269, 2279, 2293, 2298, 2303, 2305, 2314,
474 2317, 2322, 2325, 2329, 2337, 2339, 2340, 2341, 2342, 2343,
475 2357, 2360, 2364, 2370, 2376, 2383, 2388, 2394, 2401, 2407,
476 2413, 2418, 2424, 2431, 2437, 2443, 2449, 2457, 2463, 2469,
477 2477, 2484, 2490, 2499, 2506, 2514, 2519, 2522, 2532, 2534,
478 2537, 2539, 2540, 2543, 2548, 2549, 2566, 2573, 2579, 2583,
479 2586, 2587, 2590, 2598, 2604, 2613, 2623, 2630, 2634, 2639,
480 2648, 2655, 2659, 2669, 2671, 2672, 2674, 2676, 2677, 2678,
481 2679, 2681, 2683, 2686, 2694, 2701, 2701, 2708, 2714, 2716,
482 2722, 2727, 2732, 2741, 2743, 2749, 2751, 2754, 2756, 2757,
483 2758, 2761, 2767, 2769, 2773, 2776, 2783, 2789, 2794, 2801,
484 2806, 2811, 2816, 2823, 2827, 2830, 2836, 2838, 2839, 2840,
485 2843, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853,
486 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863,
487 2863, 2866, 2872, 2877, 2882, 2888, 2890, 2893, 2895, 2902,
488 2914, 2919, 2925, 2927, 2933, 2937, 2938, 2944, 2946, 2949,
489 2951, 2957, 2962, 2968, 2975, 2984
494 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
496 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
497 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
498 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
499 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
500 "EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
501 "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
502 "'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
503 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
504 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
505 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
506 "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
507 "unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
508 "cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
509 "string","objc_string","old_style_parm_decls","lineno_datadecl","datadecls",
510 "datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
511 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
512 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
513 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
514 "initdcl","@16","notype_initdcl","@17","maybe_attribute","attributes","attribute",
515 "attribute_list","attrib","any_word","init","@18","initlist_maybe_comma","initlist1",
516 "initelt","@19","initval","@20","designator_list","designator","nested_function",
517 "@21","@22","notype_nested_function","@23","@24","declarator","after_type_declarator",
518 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
519 "structsp","@25","@26","@27","@28","maybecomma","maybecomma_warn","component_decl_list",
520 "component_decl_list2","component_decl","components","component_declarator",
521 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
522 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
523 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
524 "if_prefix","do_stmt_start","@29","save_filename","save_lineno","lineno_labeled_stmt",
525 "lineno_stmt_or_label","stmt_or_label","stmt","@30","@31","@32","@33","@34",
526 "@35","@36","all_iter_stmt","all_iter_stmt_simple","@37","label","maybe_type_qual",
527 "xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
528 "@38","parmlist_1","@39","parmlist_2","parms","parm","parmlist_or_identifiers",
529 "@40","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension",
530 "objcdef","identifier_list","classdecl","aliasdecl","classdef","@41","@42","@43",
531 "@44","@45","@46","@47","@48","@49","protocoldef","@50","protocolrefs","non_empty_protocolrefs",
532 "ivar_decl_list","visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator",
533 "methoddef","@51","@52","@53","@54","@55","@56","methodprotolist","@57","methodprotolist2",
534 "@58","semi_or_error","methodproto","@59","@60","@61","@62","methoddecl","optarglist",
535 "myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@63","unaryselector",
536 "keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist",
537 "keywordexpr","keywordarg","receiver","objcmessageexpr","@64","@65","selectorarg",
538 "keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr","objcencodeexpr", NULL
542 static const short yyr1
[] = { 0,
543 84, 84, 86, 85, 87, 85, 88, 88, 88, 88,
544 88, 89, 89, 89, 89, 89, 89, 89, 89, 91,
545 92, 90, 90, 93, 94, 90, 90, 95, 96, 90,
546 90, 97, 97, 97, 97, 98, 98, 98, 98, 98,
547 98, 98, 99, 100, 100, 101, 101, 102, 102, 102,
548 102, 102, 102, 102, 102, 102, 102, 102, 103, 104,
549 105, 105, 106, 105, 107, 107, 107, 107, 107, 107,
550 107, 107, 107, 107, 107, 107, 107, 108, 107, 109,
551 107, 110, 111, 107, 112, 107, 107, 107, 113, 113,
552 113, 113, 113, 114, 113, 113, 113, 113, 113, 113,
553 113, 113, 113, 113, 113, 113, 115, 115, 116, 116,
554 117, 117, 117, 118, 119, 119, 119, 119, 120, 120,
555 120, 120, 121, 122, 122, 122, 122, 123, 124, 125,
556 125, 125, 125, 125, 125, 125, 126, 126, 127, 127,
557 127, 127, 128, 128, 129, 129, 129, 130, 130, 130,
558 130, 131, 131, 131, 131, 132, 132, 133, 133, 134,
559 134, 134, 134, 134, 134, 134, 134, 135, 135, 135,
560 136, 136, 137, 137, 138, 138, 140, 139, 139, 142,
561 141, 141, 143, 143, 144, 144, 145, 146, 146, 147,
562 147, 147, 147, 147, 148, 148, 148, 148, 149, 150,
563 149, 149, 151, 151, 152, 152, 153, 153, 154, 153,
564 153, 156, 155, 155, 155, 157, 157, 158, 160, 161,
565 159, 163, 164, 162, 165, 165, 166, 166, 166, 166,
566 166, 166, 166, 166, 167, 167, 167, 167, 167, 167,
567 168, 168, 168, 168, 168, 168, 168, 169, 169, 170,
568 170, 171, 171, 173, 172, 172, 172, 174, 172, 172,
569 172, 175, 172, 176, 172, 172, 177, 177, 178, 178,
570 179, 179, 180, 180, 180, 180, 181, 181, 181, 181,
571 181, 181, 182, 182, 183, 183, 183, 184, 184, 184,
572 185, 185, 186, 186, 187, 187, 188, 188, 189, 189,
573 190, 190, 190, 190, 190, 190, 190, 190, 190, 191,
574 192, 192, 192, 193, 193, 194, 195, 196, 196, 197,
575 197, 198, 199, 199, 200, 201, 201, 201, 201, 202,
576 202, 203, 205, 204, 206, 207, 208, 208, 209, 210,
577 210, 211, 211, 211, 212, 211, 211, 211, 213, 214,
578 211, 211, 211, 215, 216, 217, 211, 218, 211, 211,
579 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
580 219, 221, 220, 222, 222, 222, 222, 223, 223, 224,
581 224, 225, 225, 226, 226, 227, 228, 228, 230, 229,
582 231, 232, 231, 231, 233, 233, 233, 233, 234, 234,
583 235, 235, 235, 235, 235, 237, 236, 238, 238, 239,
584 239, 240, 240, 241, 242, 242, 242, 242, 242, 242,
585 243, 243, 244, 245, 247, 248, 246, 249, 246, 250,
586 251, 246, 252, 246, 253, 246, 246, 254, 246, 246,
587 255, 246, 246, 257, 256, 258, 258, 259, 260, 260,
588 261, 261, 261, 262, 262, 262, 263, 263, 263, 264,
589 264, 264, 265, 265, 265, 267, 268, 269, 266, 270,
590 271, 272, 266, 273, 274, 273, 275, 275, 275, 276,
591 275, 277, 277, 279, 280, 278, 281, 282, 278, 283,
592 283, 283, 283, 284, 284, 285, 285, 286, 286, 286,
593 286, 287, 287, 287, 288, 288, 289, 289, 289, 290,
594 290, 291, 290, 292, 293, 293, 294, 294, 294, 294,
595 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,
596 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,
597 295, 296, 296, 296, 296, 297, 297, 298, 298, 299,
598 300, 300, 301, 301, 303, 304, 302, 305, 305, 306,
599 306, 307, 307, 308, 309, 310
602 static const short yyr2
[] = { 0,
603 0, 1, 0, 2, 0, 3, 1, 1, 1, 5,
604 2, 3, 4, 4, 2, 2, 2, 2, 1, 0,
605 0, 7, 4, 0, 0, 7, 4, 0, 0, 6,
606 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
607 1, 1, 1, 0, 1, 1, 3, 1, 2, 2,
608 2, 2, 2, 4, 2, 4, 2, 2, 1, 1,
609 1, 4, 0, 7, 1, 3, 3, 3, 3, 3,
610 3, 3, 3, 3, 3, 3, 3, 0, 4, 0,
611 4, 0, 0, 7, 0, 5, 3, 3, 1, 1,
612 1, 3, 3, 0, 4, 4, 4, 3, 3, 2,
613 2, 1, 1, 1, 1, 1, 1, 2, 1, 2,
614 0, 1, 2, 3, 1, 1, 2, 2, 4, 4,
615 2, 2, 3, 1, 1, 2, 2, 0, 0, 4,
616 4, 3, 3, 2, 2, 2, 2, 3, 0, 2,
617 2, 2, 2, 3, 0, 2, 2, 1, 1, 2,
618 2, 1, 1, 2, 2, 2, 3, 0, 2, 1,
619 1, 1, 2, 2, 1, 4, 4, 1, 1, 1,
620 1, 3, 1, 3, 0, 4, 0, 6, 3, 0,
621 6, 3, 0, 1, 1, 2, 6, 1, 3, 0,
622 1, 4, 6, 4, 1, 1, 1, 1, 1, 0,
623 4, 1, 0, 2, 1, 3, 3, 2, 0, 4,
624 1, 0, 4, 1, 1, 1, 2, 2, 0, 0,
625 5, 0, 0, 5, 1, 1, 3, 3, 4, 3,
626 3, 3, 1, 1, 3, 4, 3, 3, 3, 1,
627 3, 3, 3, 4, 3, 3, 1, 1, 2, 1,
628 2, 1, 2, 0, 7, 5, 2, 0, 7, 5,
629 2, 0, 8, 0, 7, 2, 0, 1, 0, 1,
630 1, 2, 0, 3, 2, 4, 3, 1, 3, 1,
631 1, 2, 1, 3, 4, 6, 5, 1, 3, 1,
632 1, 3, 2, 2, 0, 1, 1, 2, 0, 2,
633 3, 3, 2, 3, 4, 3, 2, 3, 2, 1,
634 1, 2, 2, 0, 1, 2, 0, 0, 1, 1,
635 2, 3, 1, 2, 1, 2, 6, 5, 5, 2,
636 2, 4, 0, 4, 0, 0, 3, 4, 3, 1,
637 1, 1, 1, 2, 0, 4, 1, 3, 0, 0,
638 7, 5, 2, 0, 0, 0, 12, 0, 6, 2,
639 2, 2, 3, 6, 8, 10, 12, 3, 4, 1,
640 1, 0, 6, 3, 5, 2, 3, 0, 1, 0,
641 1, 0, 1, 1, 3, 4, 1, 3, 0, 2,
642 2, 0, 4, 2, 0, 1, 1, 3, 1, 3,
643 4, 4, 4, 4, 4, 0, 2, 1, 2, 1,
644 3, 1, 3, 1, 1, 1, 1, 1, 1, 1,
645 1, 3, 3, 4, 0, 0, 10, 0, 6, 0,
646 0, 12, 0, 8, 0, 6, 2, 0, 8, 4,
647 0, 9, 5, 0, 6, 0, 1, 3, 3, 1,
648 1, 1, 1, 0, 3, 2, 3, 3, 1, 0,
649 1, 3, 1, 3, 2, 0, 0, 0, 7, 0,
650 0, 0, 7, 0, 0, 2, 1, 1, 2, 0,
651 3, 1, 1, 0, 0, 5, 0, 0, 5, 4,
652 1, 5, 2, 0, 2, 0, 1, 1, 1, 2,
653 2, 4, 2, 2, 1, 3, 2, 2, 2, 0,
654 2, 0, 3, 1, 1, 2, 1, 1, 1, 1,
655 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
656 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
657 1, 6, 3, 5, 2, 1, 1, 1, 2, 1,
658 3, 2, 1, 1, 0, 0, 6, 1, 1, 1,
662 static const short yydefact
[] = { 3,
663 5, 0, 0, 0, 162, 153, 160, 152, 252, 248,
664 250, 0, 0, 0, 414, 0, 466, 470, 0, 0,
665 420, 446, 0, 446, 0, 0, 19, 4, 8, 7,
666 0, 128, 128, 148, 139, 149, 185, 0, 0, 0,
667 161, 0, 9, 416, 417, 415, 418, 165, 419, 6,
668 17, 18, 253, 249, 251, 0, 0, 0, 32, 33,
669 35, 34, 421, 0, 0, 0, 446, 437, 163, 447,
670 446, 164, 0, 0, 247, 299, 0, 0, 173, 129,
671 0, 16, 0, 15, 0, 150, 139, 151, 155, 154,
672 137, 186, 273, 257, 273, 261, 264, 266, 11, 89,
673 90, 107, 59, 60, 0, 0, 0, 36, 38, 37,
674 0, 39, 40, 0, 555, 0, 0, 0, 109, 41,
675 42, 0, 0, 43, 61, 0, 0, 65, 46, 48,
676 91, 106, 0, 102, 103, 104, 105, 297, 0, 295,
677 158, 0, 295, 190, 448, 0, 517, 518, 540, 541,
678 537, 521, 522, 523, 524, 525, 526, 527, 528, 529,
679 530, 531, 532, 533, 534, 535, 536, 538, 539, 0,
680 0, 519, 467, 491, 510, 514, 520, 515, 471, 0,
681 0, 428, 0, 0, 435, 444, 423, 0, 0, 0,
682 12, 0, 0, 31, 0, 406, 0, 0, 183, 233,
683 299, 0, 234, 0, 171, 129, 0, 225, 226, 0,
684 0, 138, 141, 168, 169, 140, 142, 170, 0, 0,
685 0, 254, 0, 258, 0, 262, 57, 58, 52, 49,
686 0, 0, 0, 0, 0, 0, 0, 0, 51, 0,
687 0, 0, 53, 0, 55, 0, 0, 82, 80, 78,
688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
689 0, 0, 100, 101, 0, 0, 44, 0, 108, 110,
690 50, 166, 299, 389, 0, 293, 296, 156, 167, 298,
691 158, 294, 196, 197, 198, 195, 0, 188, 191, 422,
692 0, 545, 0, 494, 512, 493, 0, 516, 0, 494,
693 446, 0, 425, 475, 440, 0, 454, 475, 424, 300,
694 243, 242, 174, 175, 246, 0, 241, 0, 245, 0,
695 0, 29, 0, 335, 116, 336, 182, 184, 0, 0,
696 14, 0, 0, 23, 0, 183, 406, 0, 13, 27,
697 0, 0, 183, 281, 275, 128, 272, 128, 0, 273,
698 183, 273, 290, 291, 269, 288, 0, 93, 92, 325,
699 317, 0, 0, 554, 553, 556, 563, 558, 0, 559,
700 560, 0, 0, 10, 47, 0, 0, 88, 87, 0,
701 0, 0, 0, 76, 77, 75, 74, 73, 71, 72,
702 66, 67, 68, 69, 70, 99, 98, 0, 45, 0,
703 303, 0, 307, 0, 309, 0, 389, 0, 159, 157,
704 0, 190, 44, 0, 0, 0, 468, 511, 395, 0,
705 543, 472, 433, 446, 454, 0, 0, 438, 443, 0,
706 0, 0, 0, 0, 410, 396, 128, 128, 408, 0,
707 397, 399, 407, 0, 244, 316, 0, 118, 113, 117,
708 0, 180, 231, 227, 172, 232, 21, 179, 228, 230,
709 0, 25, 0, 256, 335, 274, 335, 282, 0, 260,
710 0, 0, 270, 0, 269, 326, 318, 95, 63, 62,
711 0, 562, 564, 0, 561, 566, 565, 54, 56, 0,
712 0, 81, 79, 96, 97, 302, 301, 390, 308, 304,
713 306, 0, 187, 189, 89, 0, 0, 490, 510, 128,
714 0, 499, 495, 497, 0, 0, 513, 397, 0, 0,
715 430, 475, 441, 0, 429, 484, 487, 478, 0, 128,
716 128, 480, 477, 454, 453, 451, 452, 436, 454, 459,
717 456, 128, 128, 0, 445, 176, 394, 295, 295, 391,
718 392, 0, 409, 0, 0, 30, 323, 114, 128, 128,
719 145, 0, 0, 177, 229, 0, 276, 277, 283, 336,
720 279, 183, 183, 292, 289, 183, 0, 0, 0, 319,
721 320, 0, 0, 546, 0, 547, 548, 83, 86, 305,
722 192, 0, 194, 544, 492, 503, 295, 504, 500, 501,
723 469, 0, 473, 454, 0, 475, 426, 0, 0, 175,
724 0, 0, 0, 479, 0, 0, 460, 460, 455, 240,
725 299, 389, 129, 183, 183, 183, 299, 183, 183, 0,
726 398, 400, 411, 324, 121, 0, 122, 0, 145, 143,
727 202, 200, 199, 181, 22, 0, 26, 335, 0, 255,
728 259, 265, 183, 412, 0, 0, 0, 335, 0, 0,
729 125, 336, 311, 321, 215, 89, 0, 212, 0, 214,
730 0, 267, 205, 211, 0, 0, 550, 552, 0, 557,
731 0, 549, 0, 0, 183, 183, 183, 0, 505, 542,
732 0, 434, 0, 475, 485, 488, 481, 439, 0, 463,
733 457, 461, 458, 303, 0, 406, 0, 401, 402, 403,
734 303, 404, 405, 393, 0, 0, 144, 147, 146, 0,
735 178, 284, 0, 183, 263, 322, 0, 328, 127, 126,
736 315, 0, 329, 313, 336, 312, 0, 218, 0, 209,
737 64, 0, 204, 0, 217, 208, 551, 84, 193, 507,
738 508, 509, 502, 295, 431, 442, 0, 0, 0, 465,
739 0, 0, 238, 299, 239, 235, 237, 0, 119, 120,
740 0, 183, 0, 285, 413, 327, 0, 162, 0, 349,
741 333, 0, 0, 0, 0, 0, 0, 0, 0, 378,
742 446, 446, 370, 0, 0, 123, 128, 128, 342, 347,
743 0, 0, 339, 340, 343, 371, 341, 0, 0, 0,
744 206, 207, 506, 475, 427, 483, 482, 486, 489, 464,
745 462, 0, 236, 201, 287, 183, 0, 0, 335, 380,
746 0, 0, 376, 360, 361, 362, 0, 0, 0, 379,
747 0, 183, 344, 134, 0, 135, 0, 0, 331, 336,
748 330, 353, 0, 136, 213, 210, 0, 286, 0, 0,
749 0, 381, 48, 0, 0, 0, 374, 363, 0, 368,
750 0, 377, 0, 132, 219, 0, 133, 222, 348, 335,
751 0, 0, 432, 332, 0, 334, 372, 354, 358, 0,
752 369, 0, 130, 0, 131, 0, 346, 337, 335, 0,
753 350, 335, 380, 335, 375, 382, 0, 220, 223, 338,
754 352, 335, 373, 0, 359, 0, 0, 383, 384, 364,
755 0, 0, 351, 355, 0, 382, 0, 0, 221, 224,
756 380, 0, 0, 365, 385, 0, 386, 0, 0, 356,
757 387, 0, 366, 335, 0, 0, 357, 367, 388, 0,
761 static const short yydefgoto
[] = { 950,
762 1, 2, 3, 28, 29, 30, 335, 563, 341, 566,
763 198, 447, 669, 122, 232, 398, 124, 125, 126, 127,
764 128, 582, 129, 383, 382, 380, 683, 381, 130, 233,
765 131, 132, 322, 323, 324, 558, 657, 658, 31, 193,
766 796, 437, 91, 559, 640, 438, 34, 140, 278, 35,
767 216, 204, 78, 199, 205, 646, 79, 562, 327, 328,
768 37, 287, 288, 289, 644, 720, 671, 672, 673, 810,
769 674, 739, 675, 676, 874, 894, 921, 877, 896, 922,
770 314, 208, 685, 209, 38, 39, 40, 41, 350, 352,
771 357, 225, 743, 474, 220, 221, 347, 568, 569, 355,
772 356, 142, 687, 143, 189, 277, 659, 660, 732, 325,
773 477, 579, 580, 581, 556, 361, 557, 800, 801, 802,
774 829, 850, 451, 851, 663, 803, 804, 880, 828, 912,
775 903, 931, 944, 904, 805, 806, 902, 807, 841, 864,
776 917, 918, 919, 942, 403, 404, 439, 630, 440, 441,
777 442, 317, 318, 443, 444, 655, 133, 43, 64, 44,
778 45, 46, 425, 694, 304, 604, 814, 522, 307, 534,
779 606, 47, 308, 69, 48, 430, 539, 431, 544, 701,
780 702, 49, 65, 294, 516, 66, 300, 520, 426, 427,
781 532, 613, 818, 533, 608, 758, 609, 759, 173, 417,
782 513, 514, 515, 688, 689, 296, 419, 174, 175, 176,
783 177, 178, 585, 586, 678, 587, 366, 134, 235, 481,
784 369, 370, 371, 135, 136, 137
787 static const short yypact
[] = { 171,
788 186, 3077, 3077, 193,-32768,-32768,-32768,-32768, 172, 172,
789 172, 145, 174, 199,-32768, 85,-32768,-32768, 85, 85,
790 -32768, 249, 85, 249, 85, 85,-32768,-32768,-32768,-32768,
791 363, 242, 2557, 237,-32768, 172,-32768, 94, 117, 256,
792 -32768, 3077,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
793 -32768,-32768, 172, 172, 172, 2786, 2624, 266,-32768,-32768,
794 -32768,-32768,-32768, 143, 3367, 3367, 72, 54,-32768,-32768,
795 249,-32768, 42, 85,-32768,-32768, 363, 48,-32768, 172,
796 1802,-32768, 283,-32768, 363, 237,-32768, 172,-32768,-32768,
797 859,-32768, 243, 265, 243, 279,-32768, 289,-32768,-32768,
798 -32768,-32768,-32768,-32768, 2786, 2786, 85,-32768,-32768,-32768,
799 2786,-32768,-32768, 1407,-32768, 268, 315, 337,-32768,-32768,
800 -32768, 2786, 326, 323,-32768, 2840, 2894,-32768, 3634, 1152,
801 412, 364, 2786,-32768,-32768,-32768,-32768,-32768, 365, 445,
802 -32768, 368, 635, 139,-32768, 85,-32768,-32768,-32768,-32768,
803 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
804 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 434,
805 716,-32768,-32768,-32768, 2518, 409,-32768,-32768,-32768, 85,
806 85, 386, 85, 85,-32768,-32768,-32768, 375, 286, 149,
807 -32768, 283, 363,-32768, 414,-32768, 1987, 1947, 172,-32768,
808 -32768, 283,-32768, 115,-32768, 172, 1900, 224, 370, 159,
809 1821, 859,-32768,-32768,-32768,-32768, 172,-32768, 425, 408,
810 1733,-32768, 411,-32768, 123,-32768,-32768,-32768,-32768,-32768,
811 418, 421, 417, 469, 2678, 3395, 716, 85,-32768, 433,
812 2786, 1407,-32768, 1407,-32768, 2786, 2786, 482,-32768,-32768,
813 2786, 2786, 2786, 2786, 2786, 2786, 2786, 2786, 2786, 2786,
814 2786, 2786,-32768,-32768, 85, 85, 2786, 2786,-32768,-32768,
815 -32768,-32768,-32768, 445, 2046,-32768, 419, 898,-32768,-32768,
816 -32768,-32768,-32768,-32768,-32768,-32768, 147,-32768, 489,-32768,
817 716,-32768, 479, 484, 556,-32768, 409,-32768, 477, 484,
818 249, 492,-32768, 514, 497, 508,-32768, 514,-32768,-32768,
819 370,-32768,-32768, 561, 370, 581,-32768, 878,-32768, 509,
820 523,-32768, 378, 101,-32768,-32768, 568, 172, 262, 239,
821 -32768, 283, 283,-32768, 1947, 172,-32768, 2105,-32768,-32768,
822 1947, 541, 172,-32768,-32768, 535, 529, 463, 3305, 243,
823 172, 243,-32768, 579, 537,-32768, 123,-32768,-32768,-32768,
824 544, 558, 2438,-32768,-32768,-32768,-32768, 594, 564, 3395,
825 -32768, 569, 574,-32768, 3634, 588, 592, 3634, 3634, 2786,
826 617, 2786, 2786, 1617, 1959, 2595, 1794, 1891, 522, 522,
827 602, 602,-32768,-32768,-32768,-32768,-32768, 593, 323, 554,
828 272, 299,-32768, 3208,-32768, 589,-32768, 2164,-32768, 898,
829 603, 139, 2948, 610, 3431, 670,-32768,-32768, 3488, 716,
830 -32768,-32768, 596, 249,-32768, 624, 3152,-32768,-32768, 525,
831 3025, 634, 74, 627,-32768,-32768,-32768, 3534,-32768, 628,
832 258,-32768,-32768, 197,-32768,-32768, 86,-32768,-32768,-32768,
833 3530,-32768, 224,-32768,-32768, 224,-32768, 663,-32768,-32768,
834 622,-32768, 638,-32768,-32768,-32768,-32768,-32768, 632,-32768,
835 633, 2786, 85, 646, 537,-32768, 693,-32768,-32768,-32768,
836 3459,-32768,-32768, 594,-32768,-32768,-32768,-32768,-32768, 689,
837 2786, 1382, 1538,-32768,-32768, 419,-32768,-32768,-32768,-32768,
838 -32768, 648,-32768,-32768, 225, 657, 85,-32768, 2518, 666,
839 3228,-32768,-32768, 3534, 1919, 86,-32768, 654, 664, 86,
840 -32768, 514,-32768, 623,-32768,-32768,-32768,-32768, 363, 242,
841 2557, 362,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
842 -32768,-32768, 3564, 672,-32768,-32768,-32768, 539, 551,-32768,
843 -32768, 3500,-32768, 747, 417,-32768,-32768,-32768, 676, 3285,
844 -32768, 1647, 86,-32768,-32768, 86,-32768, 675,-32768,-32768,
845 675, 172, 172, 3634,-32768, 172, 687, 85, 1083, 693,
846 -32768, 1487, 2786, 731, 694, 3459,-32768,-32768, 1460,-32768,
847 -32768, 2786,-32768,-32768,-32768,-32768, 539,-32768,-32768,-32768,
848 -32768, 85,-32768,-32768, 709, 514,-32768, 3367, 3367, 327,
849 283, 363, 3180,-32768, 690, 3043, 213, 213,-32768,-32768,
850 -32768, 551, 172, 290, 340, 172,-32768, 340, 172, 3208,
851 -32768,-32768,-32768,-32768,-32768, 283,-32768, 363,-32768, 402,
852 -32768,-32768, 3634,-32768,-32768, 1647,-32768,-32768, 452,-32768,
853 -32768,-32768, 172,-32768, 296, 550, 1003, 695, 698, 913,
854 -32768,-32768,-32768,-32768,-32768, 741, 85,-32768, 746, 3634,
855 707, 705,-32768,-32768, 70, 1240, 323,-32768, 2786,-32768,
856 731,-32768, 2786, 275, 290, 340, 172, 406,-32768,-32768,
857 825,-32768, 726, 514,-32768,-32768,-32768,-32768, 2786, 753,
858 714,-32768, 714, 658, 245,-32768, 2223,-32768,-32768,-32768,
859 231,-32768,-32768,-32768, 435, 444, 402,-32768,-32768, 1487,
860 -32768,-32768, 2786, 78,-32768,-32768, 85,-32768,-32768,-32768,
861 -32768, 722,-32768,-32768,-32768,-32768, 2304,-32768, 1487,-32768,
862 -32768, 1567,-32768, 1722,-32768,-32768,-32768, 1460,-32768,-32768,
863 -32768,-32768,-32768, 539,-32768,-32768, 736, 100, 100, 3634,
864 2786, 213, 599,-32768, 599,-32768,-32768, 720,-32768,-32768,
865 727, 3598, 2786,-32768,-32768,-32768, 2384, 770, 752,-32768,
866 -32768, 758, 761, 2786, 783, 745, 750, 2732, 293, 817,
867 69, 113,-32768, 793, 771,-32768, 773, 3257,-32768, 835,
868 1165, 89,-32768,-32768,-32768,-32768,-32768, 2546, 774, 1722,
869 -32768,-32768,-32768, 514,-32768,-32768,-32768,-32768,-32768, 3634,
870 -32768, 760,-32768,-32768,-32768, 3598, 2786, 795,-32768, 2786,
871 2786, 3575,-32768,-32768,-32768,-32768, 781, 2786, 786,-32768,
872 808, 172,-32768,-32768, 283,-32768, 363, 1327,-32768,-32768,
873 -32768,-32768, 2786,-32768,-32768,-32768, 805,-32768, 798, 2786,
874 860,-32768, 802, 799, 804, 2786,-32768,-32768, 809,-32768,
875 2786,-32768, 446,-32768, 436, 451,-32768, 721,-32768,-32768,
876 2384, 811,-32768,-32768, 820,-32768,-32768,-32768,-32768, 3616,
877 -32768, 77,-32768, 1947,-32768, 1947,-32768,-32768,-32768, 823,
878 -32768,-32768, 2786,-32768,-32768, 900, 830,-32768,-32768,-32768,
879 -32768,-32768,-32768, 836,-32768, 856, 84, 837,-32768,-32768,
880 417, 417,-32768,-32768, 2786, 900, 842, 900,-32768,-32768,
881 2786, 844, 109,-32768,-32768, 849,-32768, 581, 850,-32768,
882 412, 313,-32768,-32768, 852, 581,-32768,-32768, 412, 941,
886 static const short yypgoto
[] = {-32768,
887 -32768,-32768,-32768, 97, -345,-32768,-32768,-32768,-32768,-32768,
888 -32768,-32768, -11,-32768, -56, 536, -220, 540,-32768,-32768,
889 -54,-32768, 582,-32768,-32768,-32768,-32768,-32768, 118,-32768,
890 -303,-32768, -263, 631,-32768,-32768, 294,-32768, 16, -166,
891 158, 1, 864,-32768, 318, 4, -2, -184, 688, 20,
892 -243, -571, -60, -205, -125,-32768,-32768,-32768, 273, 8,
893 50,-32768, 559,-32768, 324,-32768, -602,-32768, 232,-32768,
894 -595,-32768,-32768, 300,-32768,-32768,-32768,-32768,-32768,-32768,
895 -53, -107, -474, -15,-32768,-32768,-32768, -57,-32768,-32768,
896 -32768,-32768,-32768, 501, -50,-32768, 629, 515, 333, 626,
897 513, -39, -84, -155, -179, -219, 329,-32768,-32768, -262,
898 -32768,-32768,-32768, 416, -13,-32768, -175,-32768,-32768,-32768,
899 -32768, -160, -506, -667, 334,-32768, 108,-32768,-32768,-32768,
900 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 119,-32768, -791,
901 73,-32768, 75,-32768, 591,-32768, -350,-32768, 583, 586,
902 449, -301,-32768,-32768,-32768,-32768, 18,-32768, 988,-32768,
903 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
904 -32768,-32768,-32768, 9, 2, -354,-32768, 480,-32768, 420,
905 277,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -276,-32768,
906 -32768,-32768, 276, 510,-32768,-32768,-32768,-32768, -22, 740,
907 -32768,-32768, 527,-32768, 295, 538,-32768, 640, 641, -152,
908 -32768, -133,-32768,-32768, 371, 458,-32768,-32768,-32768,-32768,
909 -32768,-32768, 691,-32768,-32768,-32768
916 static const short yytable
[] = { 123,
917 139, 336, 32, 32, 63, 33, 33, 67, 68, 36,
918 36, 71, 433, 63, 74, 81, 53, 54, 55, 42,
919 42, 329, 297, 70, 210, 70, 94, 96, 98, 207,
920 86, 432, 72, 218, 409, 459, 346, 326, 80, 333,
921 88, 298, 32, 179, 223, 33, 399, 83, 85, 36,
922 227, 228, 87, 498, 402, 276, 230, 362, 282, 42,
923 448, 190, 188, 649, 715, 348, 313, 239, 70, 211,
924 524, 457, 70, 624, 234, 182, 141, 462, 271, 186,
925 746, 528, 269, 368, 80, 92, 555, 59, 60, 852,
926 206, 183, 80, 401, 330, 229, 59, 60, 217, 50,
927 816, -112, 92, 92, 92, 744, -35, 14, 336, 180,
928 449, 914, 184, 16, 906, 773, 16, 771, 187, 59,
929 60, 926, 146, 353, 191, 59, 60, 667, 192, 92,
930 181, 293, 286, 141, 290, 185, 809, 92, 99, 936,
931 320, 59, 60, 283, 284, 285, 938, 853, 812, 546,
932 -34, 61, 907, 512, 218, 737, 62, 16, 292, 927,
933 61, 861, 281, 326, 346, 62, 409, 360, 301, 302,
934 -1, 305, 306, 311, 326, 93, 817, 315, 365, 615,
935 326, 496, -112, 61, 939, -2, 190, 145, 62, 61,
936 141, 331, 399, 348, 62, 332, 80, 372, 95, 206,
937 80, 14, 376, 56, 377, 61, 455, 196, 197, 206,
938 62, 400, 897, 354, 856, 75, 200, 484, 406, 217,
939 218, 453, 411, 146, 312, 456, 373, 412, 777, 763,
940 765, 910, 57, 75, 913, 339, 915, 310, 349, 192,
941 141, 89, 14, 90, 923, 605, 542, 75, 620, 691,
942 699, 414, 600, 396, 397, 92, 141, 58, 59, 60,
943 14, 141, 201, 141, 75, 200, 92, 697, 310, 51,
944 52, 202, 553, 873, 14, 543, 947, 554, 310, 714,
945 627, 461, 337, 338, 203, 75, 200, 421, 75, 622,
946 275, 14, 310, 16, 764, 59, 60, 337, 338, 469,
947 591, 471, 70, 77, 570, 592, 570, 219, 480, 423,
948 141, 201, 14, 311, 454, 14, 661, 315, 82, 14,
949 202, 273, 61, 490, 144, 36, 236, 62, 584, 693,
950 274, 275, 201, 203, 551, 76, 206, 97, 552, 206,
951 206, 202, 838, 881, 77, 354, 222, 763, 706, 707,
952 749, 502, 218, 195, 203, 241, 297, 407, 408, 61,
953 224, 465, 677, 467, 62, 75, 349, 281, 141, 14,
954 226, 684, 726, 237, 497, 298, 727, 92, 321, 634,
955 519, -115, -115, -115, -115, 196, 197, -115, 945, -115,
956 -115, -115, 14, 946, 729, 238, 719, 734, 196, 197,
957 286, 240, 402, 241, 766, -115, 718, 214, 215, 526,
958 527, 36, 76, 9, 10, 11, 510, 757, 662, 511,
959 269, 77, -115, 36, -476, 70, 36, 530, 196, 197,
960 531, 542, 523, 681, 36, 86, 59, 60, 270, 141,
961 272, 704, 529, 279, -115, 88, 299, 711, 560, -115,
962 141, 309, 548, 549, 75, 200, 705, 87, 677, -115,
963 543, 354, 195, 626, 629, -175, 5, 303, 7, 280,
964 561, -175, 316, 719, 9, 10, 11, 407, 408, 59,
965 60, 14, 753, 342, 496, 343, 754, 570, 351, 723,
966 13, 496, 291, 358, 273, 594, 359, 662, 360, 735,
967 61, 201, 601, 274, 275, 62, 603, 16, 86, 374,
968 202, 769, -175, 610, 510, 332, -175, 511, 88, -85,
969 770, 36, 893, 203, 192, 597, 332, 895, 86, 22,
970 87, 192, 625, 628, 24, 420, 80, 857, 88, -280,
971 -280, 75, 620, 61, 363, 611, 612, 413, 62, 645,
972 87, 210, 647, 75, 415, 623, 80, 617, 618, 36,
973 416, 799, 281, 700, 700, 418, 654, 424, 14, 258,
974 259, 260, 261, 262, 636, 638, -474, 716, 428, 639,
975 14, 686, 218, 429, 822, 695, 696, 195, 621, 102,
976 690, 445, 535, 536, 537, 724, 610, 622, 275, 446,
977 627, 799, 538, 452, 623, 466, 190, 463, 458, 622,
978 275, -278, -278, 530, 472, 464, 531, 473, 206, 80,
979 36, 476, 610, 470, 206, 206, 446, 728, 529, 80,
980 908, 482, 909, 478, 941, 141, 495, 36, 5, 483,
981 7, 280, 949, 206, 486, 80, 9, 10, 11, 487,
982 768, 260, 261, 262, 491, 738, 206, 706, 707, 218,
983 75, 620, 13, 488, 310, 243, 245, 489, 494, 336,
984 321, 499, 92, 5, 6, 7, 8, 521, 503, 16,
985 795, 9, 10, 11, 273, 507, 525, 14, 311, 315,
986 535, 536, 537, 274, 275, 311, 545, 13, 564, 14,
987 607, 22, 547, 550, 565, 799, 24, 621, 700, 572,
988 573, 623, 623, 567, 16, 775, 622, 275, 80, 5,
989 795, 7, 138, 576, 578, 794, 588, 9, 10, 11,
990 590, 837, 593, 326, 552, 326, 22, 797, 686, 602,
991 798, 24, 596, 13, 36, 929, 930, 195, 619, 633,
992 -175, -496, 635, 271, 808, 648, -175, 535, 536, 537,
993 16, 623, 75, 620, 653, 794, 310, 698, 679, 206,
994 859, 692, -314, 862, 865, 733, 680, 839, -32, 196,
995 197, 869, 22, 740, 741, 742, 876, 24, 756, 14,
996 761, 875, 70, 70, 762, 86, 882, -175, 815, 776,
997 72, -175, 823, 885, 824, 88, 311, -33, 797, 764,
998 827, 798, 845, 847, 892, 36, 830, 87, 77, 831,
999 833, 834, 375, 840, 795, 808, 835, 378, 379, 623,
1000 842, 878, 384, 385, 386, 387, 388, 389, 390, 391,
1001 392, 393, 394, 395, 650, 651, 862, 843, 652, 844,
1002 848, 855, 206, 860, 80, 263, 264, 868, 265, 266,
1003 267, 268, 870, 213, 214, 215, 871, 883, 932, 794,
1004 9, 10, 11, 884, 862, 888, 886, 887, 434, 889,
1005 435, 5, 6, 7, 8, 891, 900, 436, 14, 9,
1006 10, 11, 535, 536, 537, 901, 708, 709, 710, 911,
1007 712, 713, 755, 214, 215, 13, 920, 14, 916, 9,
1008 10, 11, 924, 321, 925, -335, -335, 928, 934, 937,
1009 -335, -335, 16, -335, 940, 725, 943, -335, 948, -335,
1010 -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
1011 951, -335, 952, -335, 22, -335, -335, 863, 506, 24,
1012 212, 730, -335, -395, 450, -335, 717, 750, 751, 752,
1013 -335, -335, -335, 492, 493, 854, -335, -335, 410, 721,
1014 504, -335, -335, 811, 745, 577, -335, 468, -335, -335,
1015 722, 571, 475, -335, -335, 575, 731, -335, 898, -335,
1016 -310, -335, -335, 736, -335, 664, 774, 500, 933, 899,
1017 632, 517, 935, 321, 518, -124, -124, -124, -124, -124,
1018 -124, -124, 73, -124, -124, -124, -124, -124, 616, -124,
1019 -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
1020 -124, -124, -124, -124, 819, -124, -124, 703, 821, 422,
1021 599, 614, -124, 682, 825, -124, 595, -124, 813, 747,
1022 -124, -124, -124, 574, 508, 509, -124, -124, 0, 0,
1023 485, -124, -124, 0, 0, 0, -124, 0, -124, -124,
1024 0, 0, 589, -124, -124, 0, 0, -124, 0, -124,
1025 -124, -124, -124, 656, -124, -335, -335, -335, -335, -335,
1026 -335, -335, 0, -335, -335, -335, -335, -335, 858, -335,
1027 -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
1028 -335, -335, -335, -335, 872, -335, -335, 0, 0, 0,
1029 0, 0, -335, 0, 0, -335, 0, -335, 0, 0,
1030 -335, -335, -335, 0, 0, 0, -335, -335, 0, 0,
1031 0, -335, -335, 643, 0, 0, -335, 0, -335, -335,
1032 0, 0, 0, -335, -335, 0, 0, -335, 0, -335,
1033 0, -335, -335, 670, -335, 849, 0, -335, -335, 0,
1034 0, 0, -335, -335, 0, -335, 0, 0, 0, -335,
1035 0, -335, -335, -335, -335, -335, -335, -335, -335, -335,
1036 -335, -335, 0, -335, 0, -335, 0, -335, -335, 0,
1037 0, 0, 0, 0, -335, 263, 264, -335, 265, 266,
1038 267, 268, -335, -335, -335, 0, 0, 0, -335, -335,
1039 0, 0, 0, -335, -335, 0, 0, 643, -335, 0,
1040 -335, -335, 0, 0, 0, -335, -335, 0, 0, -335,
1041 665, -335, 100, -335, -335, 0, -335, 101, 102, 0,
1042 103, 0, 0, 0, 0, 0, 0, 670, 0, 0,
1043 0, 0, 0, 0, 748, 0, 0, 0, 104, 0,
1044 15, 0, 105, 106, 0, -216, 0, 0, 0, 107,
1045 760, 0, 108, 0, 0, 0, 0, 109, 110, 111,
1046 0, 0, 0, 112, 113, 0, 0, -216, 114, 115,
1047 0, 670, 0, 116, 772, 117, 0, 0, 0, 0,
1048 118, 0, 0, 0, 119, 0, 0, 0, 120, 121,
1049 670, 668, 0, 670, 0, 670, 0, 879, 0, -345,
1050 -345, 0, 0, 0, -345, -345, 0, -345, 0, 0,
1051 0, -345, 820, -345, -345, -345, -345, -345, -345, -345,
1052 -345, -345, -345, -345, 826, -345, 0, -345, 0, -345,
1053 -345, 0, 0, 0, 0, 832, -345, 0, 0, -345,
1054 0, 0, 0, 0, -345, -345, -345, 0, 0, 0,
1055 -345, -345, 0, 0, 0, -345, -345, 0, 0, 0,
1056 -345, 670, -345, -345, 0, 0, 0, -345, -345, 0,
1057 0, -345, 0, -345, 0, -345, -345, 231, -345, 100,
1058 5, 0, 7, 138, 101, 102, 0, 103, 9, 10,
1059 11, 250, 251, 252, 253, 254, 255, 256, 257, 258,
1060 259, 260, 261, 262, 13, 104, 0, 15, 0, 105,
1061 106, 0, 0, 0, 0, 0, 107, 890, 0, 108,
1062 0, 16, 0, 0, 109, 110, 111, 0, 0, 0,
1063 112, 113, 0, 0, 0, 114, 115, 0, 0, 0,
1064 116, 0, 117, 22, 0, 0, 0, 118, 24, 0,
1065 0, 119, 0, 0, 0, 120, 121, 665, -94, 666,
1066 60, 0, 0, 0, 101, 102, 248, 103, 249, 250,
1067 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
1068 261, 262, 0, 0, 0, 104, 0, 15, 0, 105,
1069 106, 0, 0, 0, 0, 0, 107, 0, 0, 108,
1070 0, 0, 0, 0, 109, 110, 111, 0, 0, 0,
1071 112, 113, 0, 0, 667, 114, 115, 0, 0, 0,
1072 116, 0, 117, 61, 0, 0, 0, 118, 62, 0,
1073 0, 119, 0, 0, -203, 120, 121, 665, 668, 666,
1074 60, 0, 0, 0, 101, 102, 0, 103, 251, 252,
1075 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
1076 0, 0, 0, 0, 0, 104, 0, 15, 0, 105,
1077 106, 0, 0, 0, 0, 0, 107, 0, 0, 108,
1078 0, 0, 0, 0, 109, 110, 111, 0, 0, 0,
1079 112, 113, 0, 0, 667, 114, 115, 0, 0, 0,
1080 116, 0, 117, 61, 0, 0, 0, 118, 62, 0,
1081 0, 119, 0, 0, -268, 120, 121, 641, 668, 100,
1082 0, 0, 0, 0, 101, 102, 0, 103, 252, 253,
1083 254, 255, 256, 257, 258, 259, 260, 261, 262, 0,
1084 0, 0, 0, 0, 0, 104, 0, 15, 0, 105,
1085 106, 0, 0, 0, 0, 0, 107, 0, 0, 108,
1086 0, 0, 0, 0, 109, 110, 111, 0, 0, 0,
1087 112, 113, 0, 0, 0, 114, 115, 0, 0, 0,
1088 116, 0, 117, 0, 0, 0, 0, 118, 0, 0,
1089 0, 119, 665, 0, 100, 120, 121, 0, 642, 101,
1090 102, 0, 103, 344, 0, 0, 5, 0, 7, 138,
1091 0, 0, 0, 0, 9, 10, 11, 0, 0, 0,
1092 104, 0, 15, 0, 105, 106, 0, 0, 0, 0,
1093 13, 107, 0, 15, 108, 0, 0, 0, 0, 109,
1094 110, 111, 0, 0, 0, 112, 113, 16, 0, 0,
1095 114, 115, 0, 0, 0, 116, 0, 117, 0, 0,
1096 0, 0, 118, 0, 0, 0, 119, 0, 0, 22,
1097 120, 121, 194, 668, 24, -28, -28, -28, -28, 345,
1098 -271, 0, 0, -28, -28, -28, 0, 0, 0, 0,
1099 0, 340, 0, 0, -24, -24, -24, -24, 195, -28,
1100 0, -175, -24, -24, -24, 0, 0, -175, 255, 256,
1101 257, 258, 259, 260, 261, 262, -28, 195, -24, 0,
1102 -175, 0, 0, 0, 0, 0, -175, 0, 0, 0,
1103 196, 197, 0, 0, 0, -24, 0, 0, -28, 0,
1104 0, 0, 0, -28, 0, 0, 0, 0, -175, 196,
1105 197, 0, -175, -28, 0, 0, 0, -24, 0, 0,
1106 0, 0, -24, 0, 0, 0, 0, -175, 0, 0,
1107 334, -175, -24, -20, -20, -20, -20, 0, 0, 0,
1108 0, -20, -20, -20, 0, 0, 0, 0, 0, 321,
1109 0, 0, -498, -498, -498, -498, 195, -20, 0, -175,
1110 -498, -498, -498, 0, 0, -175, 256, 257, 258, 259,
1111 260, 261, 262, 0, -20, 0, -498, 321, -498, 0,
1112 -335, -335, -335, -335, 0, 0, 0, 0, -335, -335,
1113 -335, 0, 0, -498, 0, 0, -20, 0, 0, 0,
1114 0, -20, 0, 0, -335, 0, -175, 0, 0, 0,
1115 -175, -20, 0, 0, 0, -498, 0, 0, 0, 100,
1116 -498, -335, 0, 0, 101, 102, 0, 103, 0, 0,
1117 -498, 253, 254, 255, 256, 257, 258, 259, 260, 261,
1118 262, 0, 0, -335, 0, 104, 0, 15, -335, 105,
1119 106, 0, 0, 0, 0, 0, 107, 0, -111, 108,
1120 0, 0, 0, 0, 109, 110, 111, 0, 0, 0,
1121 112, 113, 0, 0, 0, 114, 115, 0, 100, 0,
1122 116, 0, 117, 101, 102, 0, 103, 118, 0, 0,
1123 0, 119, 0, 0, 0, 120, 121, 0, 0, 319,
1124 0, 0, 0, 0, 104, 0, 15, 0, 105, 106,
1125 0, 0, 0, 0, 0, 107, 0, 0, 108, 0,
1126 0, 0, 0, 109, 110, 111, 0, 0, 0, 112,
1127 113, 0, 0, 0, 114, 115, 0, 100, 0, 116,
1128 0, 117, 101, 102, 0, 103, 118, 0, 0, 0,
1129 119, 0, 0, 0, 120, 121, 0, 0, 405, 0,
1130 0, 0, 0, 104, 0, 15, 0, 105, 106, 0,
1131 0, 0, 0, 0, 107, 0, 0, 108, 0, 0,
1132 0, 0, 109, 110, 111, 0, 0, 0, 112, 113,
1133 0, 0, 0, 114, 115, 0, 100, 0, 116, 0,
1134 117, 101, 102, 0, 103, 118, 0, 0, 0, 119,
1135 0, 0, 0, 120, 121, 0, 0, 460, 0, 0,
1136 0, 0, 104, 0, 15, 0, 105, 106, 0, 0,
1137 0, 0, 0, 107, 0, 0, 108, 0, 0, 0,
1138 0, 109, 110, 111, 0, 0, 0, 112, 113, 0,
1139 0, 0, 114, 115, 0, 100, 0, 116, 0, 117,
1140 101, 102, 0, 103, 118, 0, 0, 0, 119, 0,
1141 0, 0, 120, 121, 0, 0, 501, 0, 0, 0,
1142 0, 104, 0, 15, 0, 105, 106, 0, 0, 0,
1143 0, 0, 107, 0, 0, 108, 0, 0, 0, 0,
1144 109, 110, 111, 0, 0, 0, 112, 113, 0, 0,
1145 0, 114, 115, 0, 0, 0, 116, 0, 117, 0,
1146 0, 0, 0, 118, 0, 0, 0, 119, 0, 0,
1147 0, 120, 121, 0, 0, 767, 666, 778, 6, 7,
1148 8, 101, 102, 0, 103, 9, 10, 11, 779, 0,
1149 780, 781, 782, 783, 784, 785, 786, 787, 788, 789,
1150 790, 13, 104, 14, 15, 0, 105, 106, 0, 0,
1151 0, 0, 0, 107, 0, 0, 108, 0, 16, 0,
1152 0, 109, 110, 111, 0, 0, 0, 112, 113, 0,
1153 0, 0, 114, 115, 0, 0, 0, 116, 0, 117,
1154 791, 0, 0, 0, 118, 792, 0, 0, 119, 0,
1155 793, 0, 120, 121, 0, 360, 666, 60, 0, 0,
1156 0, 101, 102, 0, 103, 0, 0, 0, 779, 0,
1157 780, 781, 782, 783, 784, 785, 786, 787, 788, 789,
1158 790, 0, 104, 0, 15, 0, 105, 106, 0, 0,
1159 0, 0, 0, 107, 0, 0, 108, 0, 0, 0,
1160 0, 109, 110, 111, 0, 0, 0, 112, 113, 0,
1161 100, 0, 114, 115, 0, 101, 102, 116, 103, 117,
1162 61, 0, 0, 0, 118, 62, 0, 0, 119, 0,
1163 793, 0, 120, 121, 0, 360, 104, 0, 15, 0,
1164 105, 106, 0, 0, 0, 0, 0, 107, 0, 0,
1165 108, 0, 0, 0, 0, 109, 110, 111, 0, 0,
1166 0, 112, 113, 0, 0, 0, 114, 115, 0, 0,
1167 0, 116, 0, 117, 0, 0, 0, 0, 118, 0,
1168 0, 0, 119, 0, 0, 0, 120, 121, 0, 479,
1169 147, 148, 0, 149, 150, 0, 0, 0, 151, 152,
1170 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
1171 163, 164, 165, 166, 167, 168, 169, 0, 100, 5,
1172 6, 7, 8, 101, 102, 170, 103, 9, 10, 11,
1173 5, 6, 7, 8, 0, 0, 0, 0, 9, 10,
1174 11, 0, 0, 13, 104, 14, 15, 0, 105, 106,
1175 0, 0, 0, 0, 13, 107, 14, 0, 108, 172,
1176 16, 0, 0, 109, 110, 111, 0, 0, 295, 112,
1177 113, 16, 0, 0, 114, 115, 0, 0, 0, 116,
1178 0, 117, 22, 0, 0, 0, 118, 24, 0, 0,
1179 119, 0, 0, 22, 120, 121, 100, 5, 24, 7,
1180 138, 101, 102, 84, 103, 9, 10, 11, 254, 255,
1181 256, 257, 258, 259, 260, 261, 262, 0, 0, 0,
1182 0, 13, 104, 0, 15, 0, 105, 106, 0, 0,
1183 0, 0, 0, 107, 0, 0, 108, 0, 16, 0,
1184 0, 109, 110, 111, 0, 0, 0, 112, 113, 0,
1185 100, 0, 114, 115, 0, 101, 102, 116, 103, 117,
1186 22, 0, 0, 0, 118, 24, 0, 0, 119, 0,
1187 0, 0, 120, 121, 0, 0, 104, 0, 15, 0,
1188 105, 106, 0, 0, 0, 0, 0, 107, 0, 0,
1189 108, 0, 0, 0, 0, 109, 110, 111, 0, 0,
1190 0, 112, 113, 0, 100, 0, 114, 115, 0, 101,
1191 102, 116, 103, 117, 364, 0, 0, 0, 118, 0,
1192 0, 0, 119, 0, 0, 0, 120, 121, 0, 0,
1193 104, 0, 15, 0, 105, 106, 0, 0, 0, 0,
1194 0, 107, 0, 0, 108, 0, 0, 0, 0, 109,
1195 110, 111, 0, 0, 0, 112, 113, 0, 100, 0,
1196 114, 115, 0, 101, 102, 116, 103, 117, 0, 0,
1197 0, 0, 118, 0, 0, 0, 119, 0, 836, 0,
1198 120, 121, 0, 0, 104, 0, 15, 0, 105, 106,
1199 0, 0, 0, 0, 0, 107, 0, 0, 108, 0,
1200 0, 0, 0, 109, 110, 111, 0, 0, 0, 112,
1201 113, 0, 100, 0, 114, 115, 0, 101, 102, 116,
1202 103, 117, 0, 0, 0, 0, 118, 0, 0, 0,
1203 119, 0, 0, 0, 120, 121, 0, 0, 104, 0,
1204 15, 0, 105, 106, 0, 0, 0, 0, 0, 107,
1205 0, 0, 108, 0, 0, 0, 0, 109, 110, 111,
1206 0, 0, 0, 112, 113, 0, 100, 0, 242, 115,
1207 0, 101, 102, 116, 103, 117, 0, 0, 0, 0,
1208 118, 0, 0, 0, 119, 0, 0, 0, 120, 121,
1209 0, 0, 104, 0, 15, 0, 105, 106, 0, 0,
1210 0, 0, 0, 107, 0, 0, 108, 0, 0, 0,
1211 0, 109, 110, 111, 0, 0, 0, 112, 113, 0,
1212 505, 0, 244, 115, 0, 101, 102, 116, 103, 117,
1213 0, 0, 0, 0, 118, 0, 0, 0, 119, 0,
1214 0, 0, 120, 121, 0, 0, 104, 0, 15, 0,
1215 105, 106, 0, 0, 0, 0, 0, 107, 0, 0,
1216 108, 0, 0, 0, 0, 109, 110, 111, 0, 0,
1217 0, 112, 113, 0, 0, 0, 114, 115, 0, 0,
1218 0, 116, 0, 117, 0, 0, 0, 0, 118, 0,
1219 0, 0, 119, 0, 0, 540, 120, 121, 5, 0,
1220 7, 138, 0, 0, 0, 0, 9, 10, 11, 0,
1221 0, 0, 0, 540, 0, 0, 5, 0, 7, 138,
1222 0, 0, 13, 0, 9, 10, 11, 0, 0, 0,
1223 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
1224 13, 0, 0, 0, 0, 0, 0, 4, 0, -128,
1225 5, 6, 7, 8, 0, 0, 0, 16, 9, 10,
1226 11, 22, -450, -450, -450, 0, 24, 0, 0, 0,
1227 0, 541, -450, 12, 13, 0, 14, 15, 0, 22,
1228 -449, -449, -449, 0, 24, 0, 0, 0, 0, 541,
1229 -449, 16, 0, 0, 17, 18, -128, 0, 0, 0,
1230 0, 0, 0, 0, 0, -128, 0, 19, 20, 21,
1231 0, 0, 0, 22, 0, 0, 0, 23, 24, 25,
1232 26, 0, 4, 27, -128, 5, 6, 7, 8, 0,
1233 0, 0, 0, 9, 10, 11, 0, 0, 0, 0,
1234 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
1235 4, 14, -128, 5, 6, 7, 8, 0, 0, 0,
1236 0, 9, 10, 11, 0, 0, 16, 0, 0, 526,
1237 527, -128, 0, 0, 0, 0, 0, 13, 434, 14,
1238 -128, 5, 6, 7, 8, 0, 0, 436, 22, 9,
1239 10, 11, 0, 24, 16, 0, 0, 0, 27, -128,
1240 0, 5, 6, 7, 8, 13, 0, 14, -128, 9,
1241 10, 11, 0, 0, 0, 0, 22, 0, 0, 0,
1242 0, 24, 16, 0, 0, 13, 27, 14, 0, 0,
1243 5, 6, 7, 8, 0, 0, 0, 0, 9, 10,
1244 11, 0, 16, 0, 22, 0, 0, 0, 0, 24,
1245 0, 0, 0, -395, 13, 0, 14, 0, 5, 89,
1246 7, 90, 0, 0, 22, 0, 9, 10, 11, 24,
1247 0, 16, 0, 0, 598, 344, 0, 0, 5, 0,
1248 7, 138, 13, 0, 0, 0, 9, 10, 11, 0,
1249 0, 0, 0, 22, 0, 0, 0, 0, 24, 16,
1250 0, 0, 13, 846, 0, 15, 0, 0, 0, 0,
1251 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
1252 0, 22, 0, 0, 0, 0, 24, 0, 0, 0,
1253 0, 637, 0, 0, 0, 0, 0, 0, 0, 147,
1254 148, 22, 149, 150, 0, 0, 24, 151, 152, 153,
1255 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
1256 164, 165, 166, 167, 168, 169, 0, 147, 148, 0,
1257 149, 150, 0, 0, 170, 151, 152, 153, 154, 155,
1258 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1259 166, 167, 168, 169, 0, 171, 0, 0, 0, 0,
1260 0, 0, 367, 147, 148, 0, 149, 150, 172, 0,
1261 0, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1262 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
1263 0, 147, 148, 0, 149, 150, 172, 0, 170, 151,
1264 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1265 162, 163, 164, 165, 166, 167, 168, 169, 0, 0,
1266 0, 5, 6, 7, 8, 0, 583, 436, 0, 9,
1267 10, 11, 172, 5, 6, 7, 8, 0, 0, 631,
1268 0, 9, 10, 11, 0, 13, 0, 14, 0, 0,
1269 0, 0, 0, 0, 0, 0, 0, 13, 0, 14,
1270 172, 0, 16, 5, 6, 7, 8, 5, 6, 7,
1271 8, 9, 10, 11, 16, 9, 10, 11, 0, 0,
1272 0, 0, 0, 0, 22, 0, 0, 13, 0, 24,
1273 0, 13, 0, 14, 0, 0, 22, 5, 0, 7,
1274 280, 24, 0, 0, 16, 9, 10, 11, 16, 0,
1275 0, 0, 0, 0, 866, 0, 0, 0, 0, 0,
1276 0, 13, 0, 0, 0, 0, 22, 0, 0, 0,
1277 22, 24, 0, 0, 0, 24, 0, 0, 16, 246,
1278 247, 248, 867, 249, 250, 251, 252, 253, 254, 255,
1279 256, 257, 258, 259, 260, 261, 262, 14, 0, 0,
1280 22, 0, 246, 247, 248, 24, 249, 250, 251, 252,
1281 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
1282 246, 247, 248, 905, 249, 250, 251, 252, 253, 254,
1283 255, 256, 257, 258, 259, 260, 261, 262, 246, 247,
1284 248, 0, 249, 250, 251, 252, 253, 254, 255, 256,
1285 257, 258, 259, 260, 261, 262
1288 static const short yycheck
[] = { 56,
1289 57, 207, 2, 3, 16, 2, 3, 19, 20, 2,
1290 3, 23, 316, 25, 26, 31, 9, 10, 11, 2,
1291 3, 201, 175, 22, 85, 24, 38, 39, 40, 83,
1292 33, 308, 24, 91, 278, 337, 221, 198, 31, 206,
1293 33, 175, 42, 66, 95, 42, 267, 32, 33, 42,
1294 105, 106, 33, 404, 274, 140, 111, 233, 143, 42,
1295 323, 77, 74, 570, 636, 221, 192, 122, 67, 85,
1296 425, 335, 71, 548, 114, 67, 57, 341, 133, 71,
1297 676, 427, 9, 236, 77, 36, 1, 3, 4, 1,
1298 83, 38, 85, 273, 202, 107, 3, 4, 91, 3,
1299 1, 1, 53, 54, 55, 36, 38, 30, 314, 38,
1300 10, 903, 59, 45, 38, 38, 45, 720, 77, 3,
1301 4, 38, 81, 1, 77, 3, 4, 58, 81, 80,
1302 59, 171, 144, 114, 146, 82, 739, 88, 42, 931,
1303 197, 3, 4, 5, 6, 7, 38, 59, 744, 76,
1304 38, 67, 76, 416, 212, 662, 72, 45, 170, 76,
1305 67, 829, 143, 324, 349, 72, 410, 82, 180, 181,
1306 0, 183, 184, 189, 335, 82, 77, 193, 235, 534,
1307 341, 401, 82, 67, 76, 0, 202, 45, 72, 67,
1308 171, 77, 413, 349, 72, 81, 189, 237, 82, 192,
1309 193, 30, 242, 59, 244, 67, 332, 59, 60, 202,
1310 72, 268, 880, 225, 810, 3, 4, 370, 275, 212,
1311 278, 329, 76, 81, 76, 333, 238, 81, 735, 704,
1312 705, 899, 59, 3, 902, 77, 904, 7, 221, 81,
1313 221, 5, 30, 7, 912, 522, 431, 3, 4, 604,
1314 38, 291, 515, 265, 266, 206, 237, 59, 3, 4,
1315 30, 242, 50, 244, 3, 4, 217, 613, 7, 77,
1316 78, 59, 76, 845, 30, 431, 944, 81, 7, 630,
1317 50, 338, 59, 60, 72, 3, 4, 299, 3, 59,
1318 60, 30, 7, 45, 50, 3, 4, 59, 60, 350,
1319 76, 352, 301, 59, 465, 81, 467, 65, 363, 301,
1320 291, 50, 30, 329, 76, 30, 579, 333, 77, 30,
1321 59, 50, 67, 380, 59, 318, 59, 72, 481, 606,
1322 59, 60, 50, 72, 77, 50, 329, 82, 81, 332,
1323 333, 59, 50, 850, 59, 357, 82, 822, 59, 60,
1324 76, 408, 410, 27, 72, 81, 509, 59, 60, 67,
1325 82, 346, 583, 348, 72, 3, 349, 348, 349, 30,
1326 82, 592, 77, 59, 76, 509, 81, 328, 1, 555,
1327 420, 4, 5, 6, 7, 59, 60, 10, 76, 12,
1328 13, 14, 30, 81, 657, 59, 640, 660, 59, 60,
1329 412, 76, 622, 81, 706, 28, 5, 6, 7, 48,
1330 49, 404, 50, 12, 13, 14, 416, 694, 579, 416,
1331 9, 59, 45, 416, 63, 424, 419, 427, 59, 60,
1332 427, 616, 424, 586, 427, 438, 3, 4, 75, 420,
1333 76, 621, 427, 76, 67, 438, 38, 627, 451, 72,
1334 431, 77, 437, 438, 3, 4, 623, 438, 679, 82,
1335 616, 473, 27, 548, 549, 30, 4, 82, 6, 7,
1336 451, 36, 59, 717, 12, 13, 14, 59, 60, 3,
1337 4, 30, 77, 59, 704, 78, 81, 648, 78, 38,
1338 28, 711, 59, 76, 50, 507, 76, 658, 82, 660,
1339 67, 50, 516, 59, 60, 72, 520, 45, 511, 77,
1340 59, 77, 77, 529, 514, 81, 81, 514, 511, 38,
1341 77, 514, 77, 72, 81, 510, 81, 77, 531, 67,
1342 511, 81, 548, 549, 72, 59, 529, 814, 531, 77,
1343 78, 3, 4, 67, 76, 530, 531, 59, 72, 563,
1344 531, 612, 566, 3, 76, 548, 549, 542, 543, 552,
1345 77, 737, 543, 617, 618, 10, 578, 76, 30, 48,
1346 49, 50, 51, 52, 559, 560, 63, 638, 82, 560,
1347 30, 597, 640, 76, 764, 608, 609, 27, 50, 9,
1348 602, 83, 68, 69, 70, 649, 612, 59, 60, 77,
1349 50, 777, 78, 36, 597, 77, 622, 67, 336, 59,
1350 60, 77, 78, 613, 36, 343, 613, 81, 611, 612,
1351 613, 78, 638, 351, 617, 618, 77, 78, 613, 622,
1352 894, 38, 896, 76, 938, 616, 83, 630, 4, 76,
1353 6, 7, 946, 636, 76, 638, 12, 13, 14, 76,
1354 707, 50, 51, 52, 38, 667, 649, 59, 60, 717,
1355 3, 4, 28, 76, 7, 126, 127, 76, 76, 875,
1356 1, 83, 623, 4, 5, 6, 7, 82, 76, 45,
1357 737, 12, 13, 14, 50, 76, 63, 30, 704, 705,
1358 68, 69, 70, 59, 60, 711, 63, 28, 36, 30,
1359 78, 67, 76, 76, 83, 881, 72, 50, 762, 78,
1360 78, 704, 705, 76, 45, 727, 59, 60, 711, 4,
1361 777, 6, 7, 78, 32, 737, 38, 12, 13, 14,
1362 83, 788, 76, 894, 81, 896, 67, 737, 754, 76,
1363 737, 72, 77, 28, 737, 921, 922, 27, 77, 3,
1364 30, 82, 77, 808, 737, 81, 36, 68, 69, 70,
1365 45, 754, 3, 4, 78, 777, 7, 78, 38, 762,
1366 827, 63, 78, 830, 831, 78, 83, 789, 38, 59,
1367 60, 838, 67, 38, 78, 81, 847, 72, 63, 30,
1368 38, 845, 791, 792, 81, 798, 853, 77, 63, 78,
1369 792, 81, 83, 860, 78, 798, 822, 38, 808, 50,
1370 59, 808, 797, 798, 871, 808, 59, 798, 59, 59,
1371 38, 77, 241, 7, 881, 808, 77, 246, 247, 822,
1372 38, 847, 251, 252, 253, 254, 255, 256, 257, 258,
1373 259, 260, 261, 262, 572, 573, 903, 77, 576, 77,
1374 16, 78, 845, 59, 847, 54, 55, 77, 57, 58,
1375 59, 60, 77, 5, 6, 7, 59, 63, 925, 881,
1376 12, 13, 14, 76, 931, 77, 17, 76, 1, 76,
1377 3, 4, 5, 6, 7, 77, 76, 10, 30, 12,
1378 13, 14, 68, 69, 70, 76, 624, 625, 626, 77,
1379 628, 629, 78, 6, 7, 28, 77, 30, 9, 12,
1380 13, 14, 77, 1, 59, 3, 4, 81, 77, 76,
1381 8, 9, 45, 11, 76, 653, 77, 15, 77, 17,
1382 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1383 0, 29, 0, 31, 67, 33, 34, 830, 413, 72,
1384 87, 658, 40, 76, 324, 43, 639, 685, 686, 687,
1385 48, 49, 50, 382, 383, 808, 54, 55, 281, 646,
1386 412, 59, 60, 742, 675, 475, 64, 349, 66, 67,
1387 648, 467, 357, 71, 72, 473, 658, 75, 881, 77,
1388 78, 79, 80, 660, 82, 580, 724, 407, 926, 881,
1389 552, 419, 928, 1, 419, 3, 4, 5, 6, 7,
1390 8, 9, 25, 11, 12, 13, 14, 15, 539, 17,
1391 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1392 28, 29, 30, 31, 759, 33, 34, 618, 762, 300,
1393 514, 532, 40, 586, 772, 43, 509, 45, 754, 679,
1394 48, 49, 50, 472, 415, 415, 54, 55, -1, -1,
1395 370, 59, 60, -1, -1, -1, 64, -1, 66, 67,
1396 -1, -1, 491, 71, 72, -1, -1, 75, -1, 77,
1397 78, 79, 80, 1, 82, 3, 4, 5, 6, 7,
1398 8, 9, -1, 11, 12, 13, 14, 15, 826, 17,
1399 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1400 28, 29, 30, 31, 842, 33, 34, -1, -1, -1,
1401 -1, -1, 40, -1, -1, 43, -1, 45, -1, -1,
1402 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1403 -1, 59, 60, 562, -1, -1, 64, -1, 66, 67,
1404 -1, -1, -1, 71, 72, -1, -1, 75, -1, 77,
1405 -1, 79, 80, 582, 82, 1, -1, 3, 4, -1,
1406 -1, -1, 8, 9, -1, 11, -1, -1, -1, 15,
1407 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1408 26, 27, -1, 29, -1, 31, -1, 33, 34, -1,
1409 -1, -1, -1, -1, 40, 54, 55, 43, 57, 58,
1410 59, 60, 48, 49, 50, -1, -1, -1, 54, 55,
1411 -1, -1, -1, 59, 60, -1, -1, 646, 64, -1,
1412 66, 67, -1, -1, -1, 71, 72, -1, -1, 75,
1413 1, 77, 3, 79, 80, -1, 82, 8, 9, -1,
1414 11, -1, -1, -1, -1, -1, -1, 676, -1, -1,
1415 -1, -1, -1, -1, 683, -1, -1, -1, 29, -1,
1416 31, -1, 33, 34, -1, 36, -1, -1, -1, 40,
1417 699, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1418 -1, -1, -1, 54, 55, -1, -1, 58, 59, 60,
1419 -1, 720, -1, 64, 723, 66, -1, -1, -1, -1,
1420 71, -1, -1, -1, 75, -1, -1, -1, 79, 80,
1421 739, 82, -1, 742, -1, 744, -1, 1, -1, 3,
1422 4, -1, -1, -1, 8, 9, -1, 11, -1, -1,
1423 -1, 15, 761, 17, 18, 19, 20, 21, 22, 23,
1424 24, 25, 26, 27, 773, 29, -1, 31, -1, 33,
1425 34, -1, -1, -1, -1, 784, 40, -1, -1, 43,
1426 -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
1427 54, 55, -1, -1, -1, 59, 60, -1, -1, -1,
1428 64, 810, 66, 67, -1, -1, -1, 71, 72, -1,
1429 -1, 75, -1, 77, -1, 79, 80, 1, 82, 3,
1430 4, -1, 6, 7, 8, 9, -1, 11, 12, 13,
1431 14, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1432 49, 50, 51, 52, 28, 29, -1, 31, -1, 33,
1433 34, -1, -1, -1, -1, -1, 40, 866, -1, 43,
1434 -1, 45, -1, -1, 48, 49, 50, -1, -1, -1,
1435 54, 55, -1, -1, -1, 59, 60, -1, -1, -1,
1436 64, -1, 66, 67, -1, -1, -1, 71, 72, -1,
1437 -1, 75, -1, -1, -1, 79, 80, 1, 82, 3,
1438 4, -1, -1, -1, 8, 9, 37, 11, 39, 40,
1439 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1440 51, 52, -1, -1, -1, 29, -1, 31, -1, 33,
1441 34, -1, -1, -1, -1, -1, 40, -1, -1, 43,
1442 -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
1443 54, 55, -1, -1, 58, 59, 60, -1, -1, -1,
1444 64, -1, 66, 67, -1, -1, -1, 71, 72, -1,
1445 -1, 75, -1, -1, 78, 79, 80, 1, 82, 3,
1446 4, -1, -1, -1, 8, 9, -1, 11, 41, 42,
1447 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1448 -1, -1, -1, -1, -1, 29, -1, 31, -1, 33,
1449 34, -1, -1, -1, -1, -1, 40, -1, -1, 43,
1450 -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
1451 54, 55, -1, -1, 58, 59, 60, -1, -1, -1,
1452 64, -1, 66, 67, -1, -1, -1, 71, 72, -1,
1453 -1, 75, -1, -1, 78, 79, 80, 1, 82, 3,
1454 -1, -1, -1, -1, 8, 9, -1, 11, 42, 43,
1455 44, 45, 46, 47, 48, 49, 50, 51, 52, -1,
1456 -1, -1, -1, -1, -1, 29, -1, 31, -1, 33,
1457 34, -1, -1, -1, -1, -1, 40, -1, -1, 43,
1458 -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
1459 54, 55, -1, -1, -1, 59, 60, -1, -1, -1,
1460 64, -1, 66, -1, -1, -1, -1, 71, -1, -1,
1461 -1, 75, 1, -1, 3, 79, 80, -1, 82, 8,
1462 9, -1, 11, 1, -1, -1, 4, -1, 6, 7,
1463 -1, -1, -1, -1, 12, 13, 14, -1, -1, -1,
1464 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1465 28, 40, -1, 31, 43, -1, -1, -1, -1, 48,
1466 49, 50, -1, -1, -1, 54, 55, 45, -1, -1,
1467 59, 60, -1, -1, -1, 64, -1, 66, -1, -1,
1468 -1, -1, 71, -1, -1, -1, 75, -1, -1, 67,
1469 79, 80, 1, 82, 72, 4, 5, 6, 7, 77,
1470 78, -1, -1, 12, 13, 14, -1, -1, -1, -1,
1471 -1, 1, -1, -1, 4, 5, 6, 7, 27, 28,
1472 -1, 30, 12, 13, 14, -1, -1, 36, 45, 46,
1473 47, 48, 49, 50, 51, 52, 45, 27, 28, -1,
1474 30, -1, -1, -1, -1, -1, 36, -1, -1, -1,
1475 59, 60, -1, -1, -1, 45, -1, -1, 67, -1,
1476 -1, -1, -1, 72, -1, -1, -1, -1, 77, 59,
1477 60, -1, 81, 82, -1, -1, -1, 67, -1, -1,
1478 -1, -1, 72, -1, -1, -1, -1, 77, -1, -1,
1479 1, 81, 82, 4, 5, 6, 7, -1, -1, -1,
1480 -1, 12, 13, 14, -1, -1, -1, -1, -1, 1,
1481 -1, -1, 4, 5, 6, 7, 27, 28, -1, 30,
1482 12, 13, 14, -1, -1, 36, 46, 47, 48, 49,
1483 50, 51, 52, -1, 45, -1, 28, 1, 30, -1,
1484 4, 5, 6, 7, -1, -1, -1, -1, 12, 13,
1485 14, -1, -1, 45, -1, -1, 67, -1, -1, -1,
1486 -1, 72, -1, -1, 28, -1, 77, -1, -1, -1,
1487 81, 82, -1, -1, -1, 67, -1, -1, -1, 3,
1488 72, 45, -1, -1, 8, 9, -1, 11, -1, -1,
1489 82, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1490 52, -1, -1, 67, -1, 29, -1, 31, 72, 33,
1491 34, -1, -1, -1, -1, -1, 40, -1, 82, 43,
1492 -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
1493 54, 55, -1, -1, -1, 59, 60, -1, 3, -1,
1494 64, -1, 66, 8, 9, -1, 11, 71, -1, -1,
1495 -1, 75, -1, -1, -1, 79, 80, -1, -1, 83,
1496 -1, -1, -1, -1, 29, -1, 31, -1, 33, 34,
1497 -1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
1498 -1, -1, -1, 48, 49, 50, -1, -1, -1, 54,
1499 55, -1, -1, -1, 59, 60, -1, 3, -1, 64,
1500 -1, 66, 8, 9, -1, 11, 71, -1, -1, -1,
1501 75, -1, -1, -1, 79, 80, -1, -1, 83, -1,
1502 -1, -1, -1, 29, -1, 31, -1, 33, 34, -1,
1503 -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
1504 -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1505 -1, -1, -1, 59, 60, -1, 3, -1, 64, -1,
1506 66, 8, 9, -1, 11, 71, -1, -1, -1, 75,
1507 -1, -1, -1, 79, 80, -1, -1, 83, -1, -1,
1508 -1, -1, 29, -1, 31, -1, 33, 34, -1, -1,
1509 -1, -1, -1, 40, -1, -1, 43, -1, -1, -1,
1510 -1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1511 -1, -1, 59, 60, -1, 3, -1, 64, -1, 66,
1512 8, 9, -1, 11, 71, -1, -1, -1, 75, -1,
1513 -1, -1, 79, 80, -1, -1, 83, -1, -1, -1,
1514 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1515 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1516 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1517 -1, 59, 60, -1, -1, -1, 64, -1, 66, -1,
1518 -1, -1, -1, 71, -1, -1, -1, 75, -1, -1,
1519 -1, 79, 80, -1, -1, 83, 3, 4, 5, 6,
1520 7, 8, 9, -1, 11, 12, 13, 14, 15, -1,
1521 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1522 27, 28, 29, 30, 31, -1, 33, 34, -1, -1,
1523 -1, -1, -1, 40, -1, -1, 43, -1, 45, -1,
1524 -1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1525 -1, -1, 59, 60, -1, -1, -1, 64, -1, 66,
1526 67, -1, -1, -1, 71, 72, -1, -1, 75, -1,
1527 77, -1, 79, 80, -1, 82, 3, 4, -1, -1,
1528 -1, 8, 9, -1, 11, -1, -1, -1, 15, -1,
1529 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1530 27, -1, 29, -1, 31, -1, 33, 34, -1, -1,
1531 -1, -1, -1, 40, -1, -1, 43, -1, -1, -1,
1532 -1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1533 3, -1, 59, 60, -1, 8, 9, 64, 11, 66,
1534 67, -1, -1, -1, 71, 72, -1, -1, 75, -1,
1535 77, -1, 79, 80, -1, 82, 29, -1, 31, -1,
1536 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1537 43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
1538 -1, 54, 55, -1, -1, -1, 59, 60, -1, -1,
1539 -1, 64, -1, 66, -1, -1, -1, -1, 71, -1,
1540 -1, -1, 75, -1, -1, -1, 79, 80, -1, 82,
1541 3, 4, -1, 6, 7, -1, -1, -1, 11, 12,
1542 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1543 23, 24, 25, 26, 27, 28, 29, -1, 3, 4,
1544 5, 6, 7, 8, 9, 38, 11, 12, 13, 14,
1545 4, 5, 6, 7, -1, -1, -1, -1, 12, 13,
1546 14, -1, -1, 28, 29, 30, 31, -1, 33, 34,
1547 -1, -1, -1, -1, 28, 40, 30, -1, 43, 72,
1548 45, -1, -1, 48, 49, 50, -1, -1, 81, 54,
1549 55, 45, -1, -1, 59, 60, -1, -1, -1, 64,
1550 -1, 66, 67, -1, -1, -1, 71, 72, -1, -1,
1551 75, -1, -1, 67, 79, 80, 3, 4, 72, 6,
1552 7, 8, 9, 77, 11, 12, 13, 14, 44, 45,
1553 46, 47, 48, 49, 50, 51, 52, -1, -1, -1,
1554 -1, 28, 29, -1, 31, -1, 33, 34, -1, -1,
1555 -1, -1, -1, 40, -1, -1, 43, -1, 45, -1,
1556 -1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1557 3, -1, 59, 60, -1, 8, 9, 64, 11, 66,
1558 67, -1, -1, -1, 71, 72, -1, -1, 75, -1,
1559 -1, -1, 79, 80, -1, -1, 29, -1, 31, -1,
1560 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1561 43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
1562 -1, 54, 55, -1, 3, -1, 59, 60, -1, 8,
1563 9, 64, 11, 66, 67, -1, -1, -1, 71, -1,
1564 -1, -1, 75, -1, -1, -1, 79, 80, -1, -1,
1565 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1566 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1567 49, 50, -1, -1, -1, 54, 55, -1, 3, -1,
1568 59, 60, -1, 8, 9, 64, 11, 66, -1, -1,
1569 -1, -1, 71, -1, -1, -1, 75, -1, 77, -1,
1570 79, 80, -1, -1, 29, -1, 31, -1, 33, 34,
1571 -1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
1572 -1, -1, -1, 48, 49, 50, -1, -1, -1, 54,
1573 55, -1, 3, -1, 59, 60, -1, 8, 9, 64,
1574 11, 66, -1, -1, -1, -1, 71, -1, -1, -1,
1575 75, -1, -1, -1, 79, 80, -1, -1, 29, -1,
1576 31, -1, 33, 34, -1, -1, -1, -1, -1, 40,
1577 -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1578 -1, -1, -1, 54, 55, -1, 3, -1, 59, 60,
1579 -1, 8, 9, 64, 11, 66, -1, -1, -1, -1,
1580 71, -1, -1, -1, 75, -1, -1, -1, 79, 80,
1581 -1, -1, 29, -1, 31, -1, 33, 34, -1, -1,
1582 -1, -1, -1, 40, -1, -1, 43, -1, -1, -1,
1583 -1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1584 3, -1, 59, 60, -1, 8, 9, 64, 11, 66,
1585 -1, -1, -1, -1, 71, -1, -1, -1, 75, -1,
1586 -1, -1, 79, 80, -1, -1, 29, -1, 31, -1,
1587 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1588 43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
1589 -1, 54, 55, -1, -1, -1, 59, 60, -1, -1,
1590 -1, 64, -1, 66, -1, -1, -1, -1, 71, -1,
1591 -1, -1, 75, -1, -1, 1, 79, 80, 4, -1,
1592 6, 7, -1, -1, -1, -1, 12, 13, 14, -1,
1593 -1, -1, -1, 1, -1, -1, 4, -1, 6, 7,
1594 -1, -1, 28, -1, 12, 13, 14, -1, -1, -1,
1595 -1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
1596 28, -1, -1, -1, -1, -1, -1, 1, -1, 3,
1597 4, 5, 6, 7, -1, -1, -1, 45, 12, 13,
1598 14, 67, 68, 69, 70, -1, 72, -1, -1, -1,
1599 -1, 77, 78, 27, 28, -1, 30, 31, -1, 67,
1600 68, 69, 70, -1, 72, -1, -1, -1, -1, 77,
1601 78, 45, -1, -1, 48, 49, 50, -1, -1, -1,
1602 -1, -1, -1, -1, -1, 59, -1, 61, 62, 63,
1603 -1, -1, -1, 67, -1, -1, -1, 71, 72, 73,
1604 74, -1, 1, 77, 3, 4, 5, 6, 7, -1,
1605 -1, -1, -1, 12, 13, 14, -1, -1, -1, -1,
1606 -1, -1, -1, -1, -1, -1, -1, -1, -1, 28,
1607 1, 30, 3, 4, 5, 6, 7, -1, -1, -1,
1608 -1, 12, 13, 14, -1, -1, 45, -1, -1, 48,
1609 49, 50, -1, -1, -1, -1, -1, 28, 1, 30,
1610 59, 4, 5, 6, 7, -1, -1, 10, 67, 12,
1611 13, 14, -1, 72, 45, -1, -1, -1, 77, 50,
1612 -1, 4, 5, 6, 7, 28, -1, 30, 59, 12,
1613 13, 14, -1, -1, -1, -1, 67, -1, -1, -1,
1614 -1, 72, 45, -1, -1, 28, 77, 30, -1, -1,
1615 4, 5, 6, 7, -1, -1, -1, -1, 12, 13,
1616 14, -1, 45, -1, 67, -1, -1, -1, -1, 72,
1617 -1, -1, -1, 76, 28, -1, 30, -1, 4, 5,
1618 6, 7, -1, -1, 67, -1, 12, 13, 14, 72,
1619 -1, 45, -1, -1, 77, 1, -1, -1, 4, -1,
1620 6, 7, 28, -1, -1, -1, 12, 13, 14, -1,
1621 -1, -1, -1, 67, -1, -1, -1, -1, 72, 45,
1622 -1, -1, 28, 77, -1, 31, -1, -1, -1, -1,
1623 -1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
1624 -1, 67, -1, -1, -1, -1, 72, -1, -1, -1,
1625 -1, 77, -1, -1, -1, -1, -1, -1, -1, 3,
1626 4, 67, 6, 7, -1, -1, 72, 11, 12, 13,
1627 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1628 24, 25, 26, 27, 28, 29, -1, 3, 4, -1,
1629 6, 7, -1, -1, 38, 11, 12, 13, 14, 15,
1630 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1631 26, 27, 28, 29, -1, 59, -1, -1, -1, -1,
1632 -1, -1, 38, 3, 4, -1, 6, 7, 72, -1,
1633 -1, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1634 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1635 -1, 3, 4, -1, 6, 7, 72, -1, 38, 11,
1636 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1637 22, 23, 24, 25, 26, 27, 28, 29, -1, -1,
1638 -1, 4, 5, 6, 7, -1, 38, 10, -1, 12,
1639 13, 14, 72, 4, 5, 6, 7, -1, -1, 10,
1640 -1, 12, 13, 14, -1, 28, -1, 30, -1, -1,
1641 -1, -1, -1, -1, -1, -1, -1, 28, -1, 30,
1642 72, -1, 45, 4, 5, 6, 7, 4, 5, 6,
1643 7, 12, 13, 14, 45, 12, 13, 14, -1, -1,
1644 -1, -1, -1, -1, 67, -1, -1, 28, -1, 72,
1645 -1, 28, -1, 30, -1, -1, 67, 4, -1, 6,
1646 7, 72, -1, -1, 45, 12, 13, 14, 45, -1,
1647 -1, -1, -1, -1, 10, -1, -1, -1, -1, -1,
1648 -1, 28, -1, -1, -1, -1, 67, -1, -1, -1,
1649 67, 72, -1, -1, -1, 72, -1, -1, 45, 35,
1650 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1651 46, 47, 48, 49, 50, 51, 52, 30, -1, -1,
1652 67, -1, 35, 36, 37, 72, 39, 40, 41, 42,
1653 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1654 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1655 45, 46, 47, 48, 49, 50, 51, 52, 35, 36,
1656 37, -1, 39, 40, 41, 42, 43, 44, 45, 46,
1657 47, 48, 49, 50, 51, 52
1659 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1660 #line 3 "/usr/local/gnu/share/bison.simple"
1662 /* Skeleton output parser for bison,
1663 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1665 This program is free software; you can redistribute it and/or modify
1666 it under the terms of the GNU General Public License as published by
1667 the Free Software Foundation; either version 2, or (at your option)
1670 This program is distributed in the hope that it will be useful,
1671 but WITHOUT ANY WARRANTY; without even the implied warranty of
1672 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1673 GNU General Public License for more details.
1675 You should have received a copy of the GNU General Public License
1676 along with this program; if not, write to the Free Software
1677 Foundation, 59 Temple Place - Suite 330,
1678 Boston, MA 02111-1307, USA. */
1680 /* As a special exception, when this file is copied by Bison into a
1681 Bison output file, you may use that output file without restriction.
1682 This special exception was added by the Free Software Foundation
1683 in version 1.24 of Bison. */
1687 #define alloca __builtin_alloca
1688 #else /* not GNU C. */
1689 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1691 #else /* not sparc */
1692 #if defined (MSDOS) && !defined (__TURBOC__)
1694 #else /* not MSDOS, or __TURBOC__ */
1698 #else /* not MSDOS, __TURBOC__, or _AIX */
1702 void *alloca (unsigned int);
1704 #else /* not __cplusplus */
1706 #endif /* not __cplusplus */
1708 #endif /* not _AIX */
1709 #endif /* not MSDOS, or __TURBOC__ */
1710 #endif /* not sparc. */
1711 #endif /* not GNU C. */
1712 #endif /* alloca not defined. */
1714 /* This is the parser code that is written into each bison parser
1715 when the %semantic_parser declaration is not specified in the grammar.
1716 It was written by Richard Stallman by simplifying the hairy parser
1717 used when %semantic_parser is specified. */
1719 /* Note: there must be only one dollar sign in this file.
1720 It is replaced by the list of actions, each action
1721 as one case of the switch. */
1723 #define yyerrok (yyerrstatus = 0)
1724 #define yyclearin (yychar = YYEMPTY)
1727 #define YYACCEPT return(0)
1728 #define YYABORT return(1)
1729 #define YYERROR goto yyerrlab1
1730 /* Like YYERROR except do call yyerror.
1731 This remains here temporarily to ease the
1732 transition to the new meaning of YYERROR, for GCC.
1733 Once GCC version 2 has supplanted version 1, this can go. */
1734 #define YYFAIL goto yyerrlab
1735 #define YYRECOVERING() (!!yyerrstatus)
1736 #define YYBACKUP(token, value) \
1738 if (yychar == YYEMPTY && yylen == 1) \
1739 { yychar = (token), yylval = (value); \
1740 yychar1 = YYTRANSLATE (yychar); \
1745 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1749 #define YYERRCODE 256
1752 #define YYLEX yylex()
1758 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1760 #define YYLEX yylex(&yylval, &yylloc)
1762 #else /* not YYLSP_NEEDED */
1764 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1766 #define YYLEX yylex(&yylval)
1768 #endif /* not YYLSP_NEEDED */
1771 /* If nonreentrant, generate the variables here */
1775 int yychar
; /* the lookahead symbol */
1776 YYSTYPE yylval
; /* the semantic value of the */
1777 /* lookahead symbol */
1780 YYLTYPE yylloc
; /* location data for the lookahead */
1784 int yynerrs
; /* number of parse errors so far */
1785 #endif /* not YYPURE */
1788 int yydebug
; /* nonzero means print parse trace */
1789 /* Since this is uninitialized, it does not stop multiple parsers
1793 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1796 #define YYINITDEPTH 200
1799 /* YYMAXDEPTH is the maximum size the stacks can grow to
1800 (effective only if the built-in stack extension method is used). */
1807 #define YYMAXDEPTH 10000
1810 /* Prevent warning if -Wstrict-prototypes. */
1815 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1816 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1817 #else /* not GNU C or C++ */
1820 /* This is the most reliable way to avoid incompatibilities
1821 in available built-in functions on various systems. */
1823 __yy_memcpy (to
, from
, count
)
1828 register char *f
= from
;
1829 register char *t
= to
;
1830 register int i
= count
;
1836 #else /* __cplusplus */
1838 /* This is the most reliable way to avoid incompatibilities
1839 in available built-in functions on various systems. */
1841 __yy_memcpy (char *to
, char *from
, int count
)
1843 register char *f
= from
;
1844 register char *t
= to
;
1845 register int i
= count
;
1854 #line 196 "/usr/local/gnu/share/bison.simple"
1856 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1857 into yyparse. The argument should have type void *.
1858 It should actually point to an object.
1859 Grammar actions can access the variable by casting it
1860 to the proper pointer type. */
1862 #ifdef YYPARSE_PARAM
1864 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1865 #define YYPARSE_PARAM_DECL
1866 #else /* not __cplusplus */
1867 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1868 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1869 #endif /* not __cplusplus */
1870 #else /* not YYPARSE_PARAM */
1871 #define YYPARSE_PARAM_ARG
1872 #define YYPARSE_PARAM_DECL
1873 #endif /* not YYPARSE_PARAM */
1876 yyparse(YYPARSE_PARAM_ARG
)
1879 register int yystate
;
1881 register short *yyssp
;
1882 register YYSTYPE
*yyvsp
;
1883 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1884 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1886 short yyssa
[YYINITDEPTH
]; /* the state stack */
1887 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1889 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1890 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1893 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1894 YYLTYPE
*yyls
= yylsa
;
1897 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1899 #define YYPOPSTACK (yyvsp--, yyssp--)
1902 int yystacksize
= YYINITDEPTH
;
1913 YYSTYPE yyval
; /* the variable used to return */
1914 /* semantic values from the action */
1921 fprintf(stderr
, "Starting parse\n");
1927 yychar
= YYEMPTY
; /* Cause a token to be read. */
1929 /* Initialize stack pointers.
1930 Waste one element of value and location stack
1931 so that they stay on the same level as the state stack.
1932 The wasted elements are never initialized. */
1940 /* Push a new state, which is found in yystate . */
1941 /* In all cases, when you get here, the value and location stacks
1942 have just been pushed. so pushing a state here evens the stacks. */
1947 if (yyssp
>= yyss
+ yystacksize
- 1)
1949 /* Give user a chance to reallocate the stack */
1950 /* Use copies of these so that the &'s don't force the real ones into memory. */
1951 YYSTYPE
*yyvs1
= yyvs
;
1952 short *yyss1
= yyss
;
1954 YYLTYPE
*yyls1
= yyls
;
1957 /* Get the current used size of the three stacks, in elements. */
1958 int size
= yyssp
- yyss
+ 1;
1961 /* Each stack pointer address is followed by the size of
1962 the data in use in that stack, in bytes. */
1964 /* This used to be a conditional around just the two extra args,
1965 but that might be undefined if yyoverflow is a macro. */
1966 yyoverflow("parser stack overflow",
1967 &yyss1
, size
* sizeof (*yyssp
),
1968 &yyvs1
, size
* sizeof (*yyvsp
),
1969 &yyls1
, size
* sizeof (*yylsp
),
1972 yyoverflow("parser stack overflow",
1973 &yyss1
, size
* sizeof (*yyssp
),
1974 &yyvs1
, size
* sizeof (*yyvsp
),
1978 yyss
= yyss1
; yyvs
= yyvs1
;
1982 #else /* no yyoverflow */
1983 /* Extend the stack our own way. */
1984 if (yystacksize
>= YYMAXDEPTH
)
1986 yyerror("parser stack overflow");
1990 if (yystacksize
> YYMAXDEPTH
)
1991 yystacksize
= YYMAXDEPTH
;
1992 yyss
= (short *) alloca (yystacksize
* sizeof (*yyssp
));
1993 __yy_memcpy ((char *)yyss
, (char *)yyss1
, size
* sizeof (*yyssp
));
1994 yyvs
= (YYSTYPE
*) alloca (yystacksize
* sizeof (*yyvsp
));
1995 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
, size
* sizeof (*yyvsp
));
1997 yyls
= (YYLTYPE
*) alloca (yystacksize
* sizeof (*yylsp
));
1998 __yy_memcpy ((char *)yyls
, (char *)yyls1
, size
* sizeof (*yylsp
));
2000 #endif /* no yyoverflow */
2002 yyssp
= yyss
+ size
- 1;
2003 yyvsp
= yyvs
+ size
- 1;
2005 yylsp
= yyls
+ size
- 1;
2010 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
2013 if (yyssp
>= yyss
+ yystacksize
- 1)
2019 fprintf(stderr
, "Entering state %d\n", yystate
);
2025 /* Do appropriate processing given the current state. */
2026 /* Read a lookahead token if we need one and don't already have one. */
2029 /* First try to decide what to do without reference to lookahead token. */
2031 yyn
= yypact
[yystate
];
2035 /* Not known => get a lookahead token if don't already have one. */
2037 /* yychar is either YYEMPTY or YYEOF
2038 or a valid token in external form. */
2040 if (yychar
== YYEMPTY
)
2044 fprintf(stderr
, "Reading a token: ");
2049 /* Convert token to internal form (in yychar1) for indexing tables with */
2051 if (yychar
<= 0) /* This means end of input. */
2054 yychar
= YYEOF
; /* Don't call YYLEX any more */
2058 fprintf(stderr
, "Now at end of input.\n");
2063 yychar1
= YYTRANSLATE(yychar
);
2068 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
2069 /* Give the individual parser a way to print the precise meaning
2070 of a token, for further debugging info. */
2072 YYPRINT (stderr
, yychar
, yylval
);
2074 fprintf (stderr
, ")\n");
2080 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
2085 /* yyn is what to do for this token type in this state.
2086 Negative => reduce, -yyn is rule number.
2087 Positive => shift, yyn is new state.
2088 New state is final state => don't bother to shift,
2089 just return success.
2090 0, or most negative number => error. */
2105 /* Shift the lookahead token. */
2109 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
2112 /* Discard the token being shifted unless it is eof. */
2113 if (yychar
!= YYEOF
)
2121 /* count tokens shifted since error; after three, turn off error status. */
2122 if (yyerrstatus
) yyerrstatus
--;
2127 /* Do the default action for the current state. */
2130 yyn
= yydefact
[yystate
];
2134 /* Do a reduction. yyn is the number of a rule to reduce with. */
2138 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
2145 fprintf (stderr
, "Reducing via rule %d (line %d), ",
2148 /* Print the symbols being reduced, and their result. */
2149 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
2150 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
2151 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
2159 #line 234 "objc-parse.y"
2161 pedwarn ("ANSI C forbids an empty source file");
2166 #line 239 "objc-parse.y"
2168 /* In case there were missing closebraces,
2169 get us back to the global binding level. */
2170 while (! global_bindings_p ())
2176 #line 253 "objc-parse.y"
2177 {yyval
.ttype
= NULL_TREE
; ;
2180 #line 254 "objc-parse.y"
2181 {yyval
.ttype
= NULL_TREE
; ;
2184 #line 262 "objc-parse.y"
2185 { STRIP_NOPS (yyvsp
[-2].ttype
);
2186 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
2187 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
2188 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
2189 assemble_asm (yyvsp
[-2].ttype
);
2191 error ("argument of `asm' is not a constant string"); ;
2194 #line 270 "objc-parse.y"
2195 { pedantic
= yyvsp
[-1].itype
; ;
2198 #line 275 "objc-parse.y"
2200 error ("ANSI C forbids data definition with no type or storage class");
2201 else if (!flag_traditional
)
2202 warning ("data definition has no type or storage class");
2204 current_declspecs
= TREE_VALUE (declspec_stack
);
2205 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2206 declspec_stack
= TREE_CHAIN (declspec_stack
);
2207 resume_momentary (yyvsp
[-2].itype
); ;
2210 #line 285 "objc-parse.y"
2211 { current_declspecs
= TREE_VALUE (declspec_stack
);
2212 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2213 declspec_stack
= TREE_CHAIN (declspec_stack
);
2214 resume_momentary (yyvsp
[-2].itype
); ;
2217 #line 290 "objc-parse.y"
2218 { current_declspecs
= TREE_VALUE (declspec_stack
);
2219 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2220 declspec_stack
= TREE_CHAIN (declspec_stack
);
2221 resume_momentary (yyvsp
[-2].itype
); ;
2224 #line 295 "objc-parse.y"
2225 { pedwarn ("empty declaration"); ;
2228 #line 297 "objc-parse.y"
2229 { shadow_tag (yyvsp
[-1].ttype
); ;
2232 #line 301 "objc-parse.y"
2234 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
2237 #line 307 "objc-parse.y"
2238 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2239 prefix_attributes
, NULL_TREE
, 0))
2241 reinit_parse_for_function (); ;
2244 #line 312 "objc-parse.y"
2245 { store_parm_decls (); ;
2248 #line 314 "objc-parse.y"
2249 { finish_function (0);
2250 current_declspecs
= TREE_VALUE (declspec_stack
);
2251 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2252 declspec_stack
= TREE_CHAIN (declspec_stack
);
2253 resume_momentary (yyvsp
[-5].itype
); ;
2256 #line 320 "objc-parse.y"
2257 { current_declspecs
= TREE_VALUE (declspec_stack
);
2258 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2259 declspec_stack
= TREE_CHAIN (declspec_stack
);
2260 resume_momentary (yyvsp
[-2].itype
); ;
2263 #line 325 "objc-parse.y"
2264 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2265 prefix_attributes
, NULL_TREE
, 0))
2267 reinit_parse_for_function (); ;
2270 #line 330 "objc-parse.y"
2271 { store_parm_decls (); ;
2274 #line 332 "objc-parse.y"
2275 { finish_function (0);
2276 current_declspecs
= TREE_VALUE (declspec_stack
);
2277 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2278 declspec_stack
= TREE_CHAIN (declspec_stack
);
2279 resume_momentary (yyvsp
[-5].itype
); ;
2282 #line 338 "objc-parse.y"
2283 { current_declspecs
= TREE_VALUE (declspec_stack
);
2284 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2285 declspec_stack
= TREE_CHAIN (declspec_stack
);
2286 resume_momentary (yyvsp
[-2].itype
); ;
2289 #line 343 "objc-parse.y"
2290 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
2291 prefix_attributes
, NULL_TREE
, 0))
2293 reinit_parse_for_function (); ;
2296 #line 348 "objc-parse.y"
2297 { store_parm_decls (); ;
2300 #line 350 "objc-parse.y"
2301 { finish_function (0);
2302 current_declspecs
= TREE_VALUE (declspec_stack
);
2303 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2304 declspec_stack
= TREE_CHAIN (declspec_stack
);
2305 resume_momentary (yyvsp
[-5].itype
); ;
2308 #line 356 "objc-parse.y"
2309 { current_declspecs
= TREE_VALUE (declspec_stack
);
2310 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2311 declspec_stack
= TREE_CHAIN (declspec_stack
);
2312 resume_momentary (yyvsp
[-2].itype
); ;
2315 #line 370 "objc-parse.y"
2316 { yyval
.code
= ADDR_EXPR
; ;
2319 #line 372 "objc-parse.y"
2320 { yyval
.code
= NEGATE_EXPR
; ;
2323 #line 374 "objc-parse.y"
2324 { yyval
.code
= CONVERT_EXPR
; ;
2327 #line 376 "objc-parse.y"
2328 { yyval
.code
= PREINCREMENT_EXPR
; ;
2331 #line 378 "objc-parse.y"
2332 { yyval
.code
= PREDECREMENT_EXPR
; ;
2335 #line 380 "objc-parse.y"
2336 { yyval
.code
= BIT_NOT_EXPR
; ;
2339 #line 382 "objc-parse.y"
2340 { yyval
.code
= TRUTH_NOT_EXPR
; ;
2343 #line 386 "objc-parse.y"
2344 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
2347 #line 391 "objc-parse.y"
2348 { yyval
.ttype
= NULL_TREE
; ;
2351 #line 397 "objc-parse.y"
2352 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
2355 #line 399 "objc-parse.y"
2356 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
2359 #line 405 "objc-parse.y"
2360 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
2363 #line 408 "objc-parse.y"
2364 { yyval
.ttype
= yyvsp
[0].ttype
;
2365 pedantic
= yyvsp
[-1].itype
; ;
2368 #line 411 "objc-parse.y"
2369 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
2370 overflow_warning (yyval
.ttype
); ;
2373 #line 415 "objc-parse.y"
2374 { tree label
= lookup_label (yyvsp
[0].ttype
);
2376 pedwarn ("ANSI C forbids `&&'");
2378 yyval
.ttype
= null_pointer_node
;
2381 TREE_USED (label
) = 1;
2382 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
2383 TREE_CONSTANT (yyval
.ttype
) = 1;
2388 #line 443 "objc-parse.y"
2389 { skip_evaluation
--;
2390 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
2391 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
2392 error ("`sizeof' applied to a bit-field");
2393 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
2396 #line 449 "objc-parse.y"
2397 { skip_evaluation
--;
2398 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
2401 #line 452 "objc-parse.y"
2402 { skip_evaluation
--;
2403 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
2406 #line 455 "objc-parse.y"
2407 { skip_evaluation
--;
2408 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
2411 #line 458 "objc-parse.y"
2412 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2415 #line 460 "objc-parse.y"
2416 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2419 #line 464 "objc-parse.y"
2420 { skip_evaluation
++; ;
2423 #line 468 "objc-parse.y"
2424 { skip_evaluation
++; ;
2427 #line 474 "objc-parse.y"
2428 { tree type
= groktypename (yyvsp
[-2].ttype
);
2429 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
2432 #line 477 "objc-parse.y"
2433 { start_init (NULL_TREE
, NULL
, 0);
2434 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
2435 really_start_incremental_init (yyvsp
[-2].ttype
); ;
2438 #line 481 "objc-parse.y"
2440 tree result
= pop_init_level (0);
2441 tree type
= yyvsp
[-5].ttype
;
2444 if (pedantic
&& ! flag_isoc9x
)
2445 pedwarn ("ANSI C forbids constructor expressions");
2446 if (TYPE_NAME (type
) != 0)
2448 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
2449 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
2451 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
2455 yyval
.ttype
= result
;
2456 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
2458 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
2465 #line 510 "objc-parse.y"
2466 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2469 #line 512 "objc-parse.y"
2470 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2473 #line 514 "objc-parse.y"
2474 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2477 #line 516 "objc-parse.y"
2478 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2481 #line 518 "objc-parse.y"
2482 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2485 #line 520 "objc-parse.y"
2486 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2489 #line 522 "objc-parse.y"
2490 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2493 #line 524 "objc-parse.y"
2494 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2497 #line 526 "objc-parse.y"
2498 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2501 #line 528 "objc-parse.y"
2502 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2505 #line 530 "objc-parse.y"
2506 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2509 #line 532 "objc-parse.y"
2510 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2513 #line 534 "objc-parse.y"
2514 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2515 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2518 #line 537 "objc-parse.y"
2519 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2520 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2523 #line 540 "objc-parse.y"
2524 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2525 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2528 #line 543 "objc-parse.y"
2529 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2530 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2533 #line 546 "objc-parse.y"
2534 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2535 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2538 #line 549 "objc-parse.y"
2539 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2540 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2543 #line 552 "objc-parse.y"
2544 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2545 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2548 #line 555 "objc-parse.y"
2550 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2551 /* Make sure first operand is calculated only once. */
2552 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2553 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2554 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2557 #line 562 "objc-parse.y"
2558 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2559 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2562 #line 565 "objc-parse.y"
2563 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2564 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
); ;
2567 #line 568 "objc-parse.y"
2568 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2569 /* This inhibits warnings in truthvalue_conversion. */
2570 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
); ;
2573 #line 575 "objc-parse.y"
2575 yyval
.ttype
= lastiddecl
;
2576 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2578 if (yychar
== YYEMPTY
)
2584 if (objc_receiver_context
2585 && ! (objc_receiver_context
2586 && strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super")))
2587 /* we have a message to super */
2588 yyval
.ttype
= get_super_receiver ();
2589 else if (objc_method_context
2590 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2592 if (is_private (decl
))
2593 yyval
.ttype
= error_mark_node
;
2595 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2599 /* Ordinary implicit function declaration. */
2600 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2601 assemble_external (yyval
.ttype
);
2602 TREE_USED (yyval
.ttype
) = 1;
2605 else if (current_function_decl
== 0)
2607 error ("`%s' undeclared here (not in a function)",
2608 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2609 yyval
.ttype
= error_mark_node
;
2615 if (objc_receiver_context
2616 && ! strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super"))
2617 /* we have a message to super */
2618 yyval
.ttype
= get_super_receiver ();
2619 else if (objc_method_context
2620 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2622 if (is_private (decl
))
2623 yyval
.ttype
= error_mark_node
;
2625 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2629 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2630 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2632 error ("`%s' undeclared (first use in this function)",
2633 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2635 if (! undeclared_variable_notice
)
2637 error ("(Each undeclared identifier is reported only once");
2638 error ("for each function it appears in.)");
2639 undeclared_variable_notice
= 1;
2642 yyval
.ttype
= error_mark_node
;
2643 /* Prevent repeated error messages. */
2644 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2645 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2649 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2650 yyval
.ttype
= error_mark_node
;
2651 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2653 /* The first time we see a build-in function used,
2654 if it has not been declared. */
2655 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2656 if (yychar
== YYEMPTY
)
2660 /* Omit the implicit declaration we
2661 would ordinarily do, so we don't lose
2662 the actual built in type.
2663 But print a diagnostic for the mismatch. */
2664 if (objc_method_context
2665 && is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
))
2666 error ("Instance variable `%s' implicitly declared as function",
2667 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2669 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2670 error ("`%s' implicitly declared as function",
2671 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2672 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2673 != TYPE_MODE (integer_type_node
))
2674 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2676 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2677 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2678 /* If it really returns void, change that to int. */
2679 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2680 TREE_TYPE (yyval
.ttype
)
2681 = build_function_type (integer_type_node
,
2682 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2685 pedwarn ("built-in function `%s' used without declaration",
2686 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2688 /* Do what we would ordinarily do when a fn is used. */
2689 assemble_external (yyval
.ttype
);
2690 TREE_USED (yyval
.ttype
) = 1;
2694 assemble_external (yyval
.ttype
);
2695 TREE_USED (yyval
.ttype
) = 1;
2696 /* we have a definition - still check if iVariable */
2698 if (!objc_receiver_context
2699 || (objc_receiver_context
2700 && strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super")))
2704 if (objc_method_context
2705 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2707 if (IDENTIFIER_LOCAL_VALUE (yyvsp
[0].ttype
))
2708 warning ("local declaration of `%s' hides instance variable",
2709 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2712 if (is_private (decl
))
2713 yyval
.ttype
= error_mark_node
;
2715 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2719 else /* we have a message to super */
2720 yyval
.ttype
= get_super_receiver ();
2723 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2725 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2726 /* This is to prevent an enum whose value is 0
2727 from being considered a null pointer constant. */
2728 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2729 TREE_CONSTANT (yyval
.ttype
) = 1;
2734 #line 735 "objc-parse.y"
2735 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2738 #line 737 "objc-parse.y"
2739 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2740 if (class == 'e' || class == '1'
2741 || class == '2' || class == '<')
2742 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2743 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2746 #line 743 "objc-parse.y"
2747 { yyval
.ttype
= error_mark_node
; ;
2750 #line 745 "objc-parse.y"
2751 { if (current_function_decl
== 0)
2753 error ("braced-group within expression allowed only inside a function");
2756 /* We must force a BLOCK for this level
2757 so that, if it is not expanded later,
2758 there is a way to turn off the entire subtree of blocks
2759 that are contained in it. */
2761 push_iterator_stack ();
2762 push_label_level ();
2763 yyval
.ttype
= expand_start_stmt_expr (); ;
2766 #line 759 "objc-parse.y"
2769 pedwarn ("ANSI C forbids braced-groups within expressions");
2770 pop_iterator_stack ();
2772 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2773 /* The statements have side effects, so the group does. */
2774 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2776 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2778 /* Make a BIND_EXPR for the BLOCK already made. */
2779 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2780 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2781 /* Remove the block from the tree at this point.
2782 It gets put back at the proper place
2783 when the BIND_EXPR is expanded. */
2784 delete_block (yyvsp
[-1].ttype
);
2787 yyval
.ttype
= yyvsp
[-1].ttype
;
2791 #line 782 "objc-parse.y"
2792 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2795 #line 784 "objc-parse.y"
2796 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2799 #line 786 "objc-parse.y"
2801 if (doing_objc_thang
)
2803 if (is_public (yyvsp
[-2].ttype
, yyvsp
[0].ttype
))
2804 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2806 yyval
.ttype
= error_mark_node
;
2809 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2813 #line 798 "objc-parse.y"
2815 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2817 if (doing_objc_thang
)
2819 if (is_public (expr
, yyvsp
[0].ttype
))
2820 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2822 yyval
.ttype
= error_mark_node
;
2825 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2829 #line 812 "objc-parse.y"
2830 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2833 #line 814 "objc-parse.y"
2834 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2837 #line 816 "objc-parse.y"
2838 { yyval
.ttype
= build_message_expr (yyvsp
[0].ttype
); ;
2841 #line 818 "objc-parse.y"
2842 { yyval
.ttype
= build_selector_expr (yyvsp
[0].ttype
); ;
2845 #line 820 "objc-parse.y"
2846 { yyval
.ttype
= build_protocol_expr (yyvsp
[0].ttype
); ;
2849 #line 822 "objc-parse.y"
2850 { yyval
.ttype
= build_encode_expr (yyvsp
[0].ttype
); ;
2853 #line 824 "objc-parse.y"
2854 { yyval
.ttype
= build_objc_string_object (yyvsp
[0].ttype
); ;
2857 #line 831 "objc-parse.y"
2858 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2861 #line 839 "objc-parse.y"
2862 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2865 #line 847 "objc-parse.y"
2866 { c_mark_varargs ();
2868 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2871 #line 857 "objc-parse.y"
2875 #line 873 "objc-parse.y"
2876 { current_declspecs
= TREE_VALUE (declspec_stack
);
2877 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2878 declspec_stack
= TREE_CHAIN (declspec_stack
);
2879 resume_momentary (yyvsp
[-2].itype
); ;
2882 #line 878 "objc-parse.y"
2883 { current_declspecs
= TREE_VALUE (declspec_stack
);
2884 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2885 declspec_stack
= TREE_CHAIN (declspec_stack
);
2886 resume_momentary (yyvsp
[-2].itype
); ;
2889 #line 883 "objc-parse.y"
2890 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2891 pedwarn ("empty declaration"); ;
2894 #line 886 "objc-parse.y"
2895 { pedwarn ("empty declaration"); ;
2898 #line 895 "objc-parse.y"
2902 #line 910 "objc-parse.y"
2903 { yyval
.itype
= suspend_momentary ();
2904 pending_xref_error ();
2905 declspec_stack
= tree_cons (prefix_attributes
,
2908 split_specs_attrs (yyvsp
[0].ttype
,
2909 ¤t_declspecs
, &prefix_attributes
); ;
2912 #line 921 "objc-parse.y"
2913 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2916 #line 926 "objc-parse.y"
2917 { current_declspecs
= TREE_VALUE (declspec_stack
);
2918 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2919 declspec_stack
= TREE_CHAIN (declspec_stack
);
2920 resume_momentary (yyvsp
[-2].itype
); ;
2923 #line 931 "objc-parse.y"
2924 { current_declspecs
= TREE_VALUE (declspec_stack
);
2925 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2926 declspec_stack
= TREE_CHAIN (declspec_stack
);
2927 resume_momentary (yyvsp
[-2].itype
); ;
2930 #line 936 "objc-parse.y"
2931 { current_declspecs
= TREE_VALUE (declspec_stack
);
2932 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2933 declspec_stack
= TREE_CHAIN (declspec_stack
);
2934 resume_momentary (yyvsp
[-1].itype
); ;
2937 #line 941 "objc-parse.y"
2938 { current_declspecs
= TREE_VALUE (declspec_stack
);
2939 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2940 declspec_stack
= TREE_CHAIN (declspec_stack
);
2941 resume_momentary (yyvsp
[-1].itype
); ;
2944 #line 946 "objc-parse.y"
2945 { shadow_tag (yyvsp
[-1].ttype
); ;
2948 #line 948 "objc-parse.y"
2949 { pedwarn ("empty declaration"); ;
2952 #line 950 "objc-parse.y"
2953 { pedantic
= yyvsp
[-1].itype
; ;
2956 #line 960 "objc-parse.y"
2957 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2960 #line 962 "objc-parse.y"
2961 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2964 #line 966 "objc-parse.y"
2965 { yyval
.ttype
= NULL_TREE
; ;
2968 #line 968 "objc-parse.y"
2969 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2972 #line 970 "objc-parse.y"
2973 { if (extra_warnings
)
2974 warning ("`%s' is not at beginning of declaration",
2975 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2976 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2979 #line 975 "objc-parse.y"
2980 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2983 #line 980 "objc-parse.y"
2984 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2987 #line 982 "objc-parse.y"
2988 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2991 #line 987 "objc-parse.y"
2992 { yyval
.ttype
= NULL_TREE
; ;
2995 #line 989 "objc-parse.y"
2996 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2999 #line 991 "objc-parse.y"
3000 { if (extra_warnings
)
3001 warning ("`%s' is not at beginning of declaration",
3002 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
3003 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3006 #line 1004 "objc-parse.y"
3007 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3010 #line 1006 "objc-parse.y"
3011 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
3014 #line 1008 "objc-parse.y"
3015 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3018 #line 1010 "objc-parse.y"
3019 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3022 #line 1015 "objc-parse.y"
3023 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
3024 TREE_STATIC (yyval
.ttype
) = 1; ;
3027 #line 1018 "objc-parse.y"
3028 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3031 #line 1020 "objc-parse.y"
3032 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3033 TREE_STATIC (yyval
.ttype
) = 1; ;
3036 #line 1023 "objc-parse.y"
3037 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
3038 warning ("`%s' is not at beginning of declaration",
3039 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
3040 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3041 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
3044 #line 1037 "objc-parse.y"
3045 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3048 #line 1039 "objc-parse.y"
3049 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
3052 #line 1043 "objc-parse.y"
3053 { yyval
.ttype
= NULL_TREE
; ;
3056 #line 1045 "objc-parse.y"
3057 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3060 #line 1055 "objc-parse.y"
3061 { /* For a typedef name, record the meaning, not the name.
3062 In case of `foo foo, bar;'. */
3063 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
3066 #line 1059 "objc-parse.y"
3067 { yyval
.ttype
= get_static_reference (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3070 #line 1061 "objc-parse.y"
3071 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3074 #line 1066 "objc-parse.y"
3075 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3078 #line 1068 "objc-parse.y"
3079 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
3082 #line 1070 "objc-parse.y"
3083 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
3086 #line 1092 "objc-parse.y"
3087 { yyval
.ttype
= NULL_TREE
; ;
3090 #line 1094 "objc-parse.y"
3091 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
3092 yyval
.ttype
= yyvsp
[-1].ttype
;
3096 #line 1101 "objc-parse.y"
3097 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3098 yyvsp
[-1].ttype
, prefix_attributes
);
3099 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3102 #line 1106 "objc-parse.y"
3104 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3107 #line 1109 "objc-parse.y"
3108 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3109 yyvsp
[0].ttype
, prefix_attributes
);
3110 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
3114 #line 1117 "objc-parse.y"
3115 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3116 yyvsp
[-1].ttype
, prefix_attributes
);
3117 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3120 #line 1122 "objc-parse.y"
3122 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
3123 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3126 #line 1126 "objc-parse.y"
3127 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3128 yyvsp
[0].ttype
, prefix_attributes
);
3129 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3132 #line 1134 "objc-parse.y"
3133 { yyval
.ttype
= NULL_TREE
; ;
3136 #line 1136 "objc-parse.y"
3137 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3140 #line 1141 "objc-parse.y"
3141 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3144 #line 1143 "objc-parse.y"
3145 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3148 #line 1148 "objc-parse.y"
3149 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
3152 #line 1153 "objc-parse.y"
3153 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3156 #line 1155 "objc-parse.y"
3157 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3160 #line 1160 "objc-parse.y"
3161 { yyval
.ttype
= NULL_TREE
; ;
3164 #line 1162 "objc-parse.y"
3165 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
3168 #line 1164 "objc-parse.y"
3169 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
3172 #line 1166 "objc-parse.y"
3173 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
3176 #line 1168 "objc-parse.y"
3177 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3180 #line 1186 "objc-parse.y"
3181 { really_start_incremental_init (NULL_TREE
);
3182 /* Note that the call to clear_momentary
3183 is in process_init_element. */
3184 push_momentary (); ;
3187 #line 1191 "objc-parse.y"
3188 { yyval
.ttype
= pop_init_level (0);
3189 if (yyval
.ttype
== error_mark_node
3190 && ! (yychar
== STRING
|| yychar
== CONSTANT
))
3193 pop_momentary_nofree (); ;
3196 #line 1199 "objc-parse.y"
3197 { yyval
.ttype
= error_mark_node
; ;
3200 #line 1205 "objc-parse.y"
3202 pedwarn ("ANSI C forbids empty initializer braces"); ;
3205 #line 1221 "objc-parse.y"
3206 { set_init_label (yyvsp
[-1].ttype
); ;
3209 #line 1228 "objc-parse.y"
3210 { push_init_level (0); ;
3213 #line 1230 "objc-parse.y"
3214 { process_init_element (pop_init_level (0)); ;
3217 #line 1232 "objc-parse.y"
3218 { process_init_element (yyvsp
[0].ttype
); ;
3221 #line 1243 "objc-parse.y"
3222 { set_init_label (yyvsp
[0].ttype
); ;
3225 #line 1251 "objc-parse.y"
3226 { push_c_function_context ();
3227 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3228 prefix_attributes
, NULL_TREE
, 1))
3230 pop_c_function_context ();
3233 reinit_parse_for_function (); ;
3236 #line 1260 "objc-parse.y"
3237 { store_parm_decls (); ;
3240 #line 1268 "objc-parse.y"
3241 { finish_function (1);
3242 pop_c_function_context (); ;
3245 #line 1274 "objc-parse.y"
3246 { push_c_function_context ();
3247 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3248 prefix_attributes
, NULL_TREE
, 1))
3250 pop_c_function_context ();
3253 reinit_parse_for_function (); ;
3256 #line 1283 "objc-parse.y"
3257 { store_parm_decls (); ;
3260 #line 1291 "objc-parse.y"
3261 { finish_function (1);
3262 pop_c_function_context (); ;
3265 #line 1307 "objc-parse.y"
3266 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3269 #line 1309 "objc-parse.y"
3270 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3273 #line 1314 "objc-parse.y"
3274 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3277 #line 1316 "objc-parse.y"
3278 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3281 #line 1318 "objc-parse.y"
3282 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3285 #line 1325 "objc-parse.y"
3286 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3289 #line 1337 "objc-parse.y"
3290 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3293 #line 1342 "objc-parse.y"
3294 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3297 #line 1344 "objc-parse.y"
3298 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3301 #line 1346 "objc-parse.y"
3302 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3305 #line 1353 "objc-parse.y"
3306 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3309 #line 1362 "objc-parse.y"
3310 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3313 #line 1367 "objc-parse.y"
3314 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3317 #line 1369 "objc-parse.y"
3318 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3321 #line 1371 "objc-parse.y"
3322 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3325 #line 1373 "objc-parse.y"
3326 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3329 #line 1380 "objc-parse.y"
3330 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3333 #line 1386 "objc-parse.y"
3334 { yyval
.ttype
= NULL_TREE
; ;
3337 #line 1388 "objc-parse.y"
3338 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3341 #line 1393 "objc-parse.y"
3342 { yyval
.ttype
= NULL_TREE
; ;
3345 #line 1395 "objc-parse.y"
3346 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3349 #line 1400 "objc-parse.y"
3350 { yyval
.ttype
= NULL_TREE
; ;
3353 #line 1402 "objc-parse.y"
3354 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3357 #line 1407 "objc-parse.y"
3358 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
3359 /* Start scope of tag before parsing components. */
3363 #line 1411 "objc-parse.y"
3364 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
3367 #line 1413 "objc-parse.y"
3368 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
3369 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
3373 #line 1417 "objc-parse.y"
3374 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
3377 #line 1419 "objc-parse.y"
3378 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
3381 #line 1421 "objc-parse.y"
3382 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
3385 #line 1423 "objc-parse.y"
3386 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
3387 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
3391 #line 1427 "objc-parse.y"
3392 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
3395 #line 1429 "objc-parse.y"
3396 { yyvsp
[0].itype
= suspend_momentary ();
3397 yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
3400 #line 1432 "objc-parse.y"
3401 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-7].ttype
, yyvsp
[0].ttype
));
3402 resume_momentary (yyvsp
[-5].itype
); ;
3405 #line 1435 "objc-parse.y"
3406 { yyvsp
[0].itype
= suspend_momentary ();
3407 yyval
.ttype
= start_enum (NULL_TREE
); ;
3410 #line 1438 "objc-parse.y"
3411 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
));
3412 resume_momentary (yyvsp
[-5].itype
); ;
3415 #line 1441 "objc-parse.y"
3416 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
3419 #line 1452 "objc-parse.y"
3420 { if (pedantic
&& ! flag_isoc9x
)
3421 pedwarn ("comma at end of enumerator list"); ;
3424 #line 1458 "objc-parse.y"
3425 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3428 #line 1460 "objc-parse.y"
3429 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
3430 pedwarn ("no semicolon at end of struct or union"); ;
3433 #line 1465 "objc-parse.y"
3434 { yyval
.ttype
= NULL_TREE
; ;
3437 #line 1467 "objc-parse.y"
3438 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
3441 #line 1469 "objc-parse.y"
3443 pedwarn ("extra semicolon in struct or union specified"); ;
3446 #line 1473 "objc-parse.y"
3448 tree interface
= lookup_interface (yyvsp
[-1].ttype
);
3451 yyval
.ttype
= get_class_ivars (interface
);
3454 error ("Cannot find interface declaration for `%s'",
3455 IDENTIFIER_POINTER (yyvsp
[-1].ttype
));
3456 yyval
.ttype
= NULL_TREE
;
3461 #line 1498 "objc-parse.y"
3462 { yyval
.ttype
= yyvsp
[0].ttype
;
3463 current_declspecs
= TREE_VALUE (declspec_stack
);
3464 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3465 declspec_stack
= TREE_CHAIN (declspec_stack
);
3466 resume_momentary (yyvsp
[-1].itype
); ;
3469 #line 1504 "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 1509 "objc-parse.y"
3477 { yyval
.ttype
= yyvsp
[0].ttype
;
3478 current_declspecs
= TREE_VALUE (declspec_stack
);
3479 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3480 declspec_stack
= TREE_CHAIN (declspec_stack
);
3481 resume_momentary (yyvsp
[-1].itype
); ;
3484 #line 1515 "objc-parse.y"
3486 pedwarn ("ANSI C forbids member declarations with no members");
3487 shadow_tag(yyvsp
[0].ttype
);
3488 yyval
.ttype
= NULL_TREE
; ;
3491 #line 1520 "objc-parse.y"
3492 { yyval
.ttype
= NULL_TREE
; ;
3495 #line 1522 "objc-parse.y"
3496 { yyval
.ttype
= yyvsp
[0].ttype
;
3497 pedantic
= yyvsp
[-1].itype
; ;
3500 #line 1529 "objc-parse.y"
3501 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3504 #line 1534 "objc-parse.y"
3505 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
3506 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3509 #line 1538 "objc-parse.y"
3510 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
3511 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3514 #line 1541 "objc-parse.y"
3515 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
3516 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3519 #line 1553 "objc-parse.y"
3520 { if (yyvsp
[-2].ttype
== error_mark_node
)
3521 yyval
.ttype
= yyvsp
[-2].ttype
;
3523 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
3526 #line 1558 "objc-parse.y"
3527 { yyval
.ttype
= error_mark_node
; ;
3530 #line 1564 "objc-parse.y"
3531 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
3534 #line 1566 "objc-parse.y"
3535 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3538 #line 1571 "objc-parse.y"
3539 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3542 #line 1573 "objc-parse.y"
3543 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3546 #line 1578 "objc-parse.y"
3547 { yyval
.ttype
= NULL_TREE
; ;
3550 #line 1584 "objc-parse.y"
3551 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3554 #line 1586 "objc-parse.y"
3555 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3558 #line 1591 "objc-parse.y"
3559 { yyval
.ttype
= NULL_TREE
; ;
3562 #line 1593 "objc-parse.y"
3563 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3566 #line 1598 "objc-parse.y"
3567 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3570 #line 1601 "objc-parse.y"
3571 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3574 #line 1603 "objc-parse.y"
3575 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3578 #line 1605 "objc-parse.y"
3579 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3582 #line 1607 "objc-parse.y"
3583 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3586 #line 1609 "objc-parse.y"
3587 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3590 #line 1611 "objc-parse.y"
3591 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3594 #line 1613 "objc-parse.y"
3595 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3598 #line 1615 "objc-parse.y"
3599 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3602 #line 1626 "objc-parse.y"
3604 if (pedantic
&& yyvsp
[0].ends_in_label
)
3605 pedwarn ("ANSI C forbids label at end of compound statement");
3609 #line 1635 "objc-parse.y"
3610 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3613 #line 1637 "objc-parse.y"
3614 { yyval
.ends_in_label
= 0; ;
3617 #line 1649 "objc-parse.y"
3618 { emit_line_note (input_filename
, lineno
);
3622 expand_start_bindings (0);
3623 if (objc_method_context
)
3628 #line 1664 "objc-parse.y"
3630 pedwarn ("ANSI C forbids label declarations"); ;
3633 #line 1675 "objc-parse.y"
3635 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3637 tree label
= shadow_label (TREE_VALUE (link
));
3638 C_DECLARED_LABEL_FLAG (label
) = 1;
3639 declare_nonlocal_label (label
);
3644 #line 1689 "objc-parse.y"
3648 #line 1693 "objc-parse.y"
3649 { compstmt_count
++; ;
3652 #line 1696 "objc-parse.y"
3653 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3656 #line 1698 "objc-parse.y"
3657 { emit_line_note (input_filename
, lineno
);
3658 expand_end_bindings (getdecls (), 1, 0);
3659 yyval
.ttype
= poplevel (1, 1, 0);
3660 if (yychar
== CONSTANT
|| yychar
== STRING
)
3661 pop_momentary_nofree ();
3666 #line 1706 "objc-parse.y"
3667 { emit_line_note (input_filename
, lineno
);
3668 expand_end_bindings (getdecls (), kept_level_p (), 0);
3669 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3670 if (yychar
== CONSTANT
|| yychar
== STRING
)
3671 pop_momentary_nofree ();
3676 #line 1714 "objc-parse.y"
3677 { emit_line_note (input_filename
, lineno
);
3678 expand_end_bindings (getdecls (), kept_level_p (), 0);
3679 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3680 if (yychar
== CONSTANT
|| yychar
== STRING
)
3681 pop_momentary_nofree ();
3686 #line 1734 "objc-parse.y"
3687 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3688 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3690 yyval
.itype
= stmt_count
;
3691 if_stmt_file
= yyvsp
[-5].filename
;
3692 if_stmt_line
= yyvsp
[-4].lineno
;
3693 position_after_white_space (); ;
3696 #line 1748 "objc-parse.y"
3699 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3700 /* See comment in `while' alternative, above. */
3702 expand_start_loop_continue_elsewhere (1);
3703 position_after_white_space (); ;
3706 #line 1756 "objc-parse.y"
3707 { expand_loop_continue_here (); ;
3710 #line 1760 "objc-parse.y"
3711 { yyval
.filename
= input_filename
; ;
3714 #line 1764 "objc-parse.y"
3715 { yyval
.lineno
= lineno
; ;
3718 #line 1769 "objc-parse.y"
3722 #line 1774 "objc-parse.y"
3726 #line 1779 "objc-parse.y"
3727 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3730 #line 1784 "objc-parse.y"
3731 { yyval
.ends_in_label
= 0; ;
3734 #line 1786 "objc-parse.y"
3735 { yyval
.ends_in_label
= 1; ;
3738 #line 1792 "objc-parse.y"
3742 #line 1795 "objc-parse.y"
3744 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3745 /* It appears that this should not be done--that a non-lvalue array
3746 shouldn't get an error if the value isn't used.
3747 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3748 if it appears as a top-level expression,
3749 but says nothing about non-lvalue arrays. */
3751 /* Call default_conversion to get an error
3752 on referring to a register array if pedantic. */
3753 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3754 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3755 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3757 iterator_expand (yyvsp
[-1].ttype
);
3758 clear_momentary (); ;
3761 #line 1812 "objc-parse.y"
3762 { c_expand_start_else ();
3763 yyvsp
[-1].itype
= stmt_count
;
3764 position_after_white_space (); ;
3767 #line 1816 "objc-parse.y"
3768 { c_expand_end_cond ();
3769 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3770 warning ("empty body in an else-statement"); ;
3773 #line 1820 "objc-parse.y"
3774 { c_expand_end_cond ();
3775 /* This warning is here instead of in simple_if, because we
3776 do not want a warning if an empty if is followed by an
3777 else statement. Increment stmt_count so we don't
3778 give a second error if this is a nested `if'. */
3779 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3780 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3781 "empty body in an if-statement"); ;
3784 #line 1832 "objc-parse.y"
3785 { c_expand_end_cond (); ;
3788 #line 1834 "objc-parse.y"
3790 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3791 /* The emit_nop used to come before emit_line_note,
3792 but that made the nop seem like part of the preceding line.
3793 And that was confusing when the preceding line was
3794 inside of an if statement and was not really executed.
3795 I think it ought to work to put the nop after the line number.
3796 We will see. --rms, July 15, 1991. */
3800 #line 1844 "objc-parse.y"
3801 { /* Don't start the loop till we have succeeded
3802 in parsing the end test. This is to make sure
3803 that we end every loop we start. */
3804 expand_start_loop (1);
3805 emit_line_note (input_filename
, lineno
);
3806 expand_exit_loop_if_false (NULL_PTR
,
3807 truthvalue_conversion (yyvsp
[-1].ttype
));
3808 position_after_white_space (); ;
3811 #line 1853 "objc-parse.y"
3812 { expand_end_loop (); ;
3815 #line 1856 "objc-parse.y"
3816 { emit_line_note (input_filename
, lineno
);
3817 expand_exit_loop_if_false (NULL_PTR
,
3818 truthvalue_conversion (yyvsp
[-2].ttype
));
3820 clear_momentary (); ;
3823 #line 1863 "objc-parse.y"
3824 { expand_end_loop ();
3825 clear_momentary (); ;
3828 #line 1867 "objc-parse.y"
3830 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3831 /* See comment in `while' alternative, above. */
3833 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3834 /* Next step is to call expand_start_loop_continue_elsewhere,
3835 but wait till after we parse the entire for (...).
3836 Otherwise, invalid input might cause us to call that
3837 fn without calling expand_end_loop. */
3841 #line 1879 "objc-parse.y"
3842 { yyvsp
[0].lineno
= lineno
;
3843 yyval
.filename
= input_filename
; ;
3846 #line 1882 "objc-parse.y"
3848 /* Start the loop. Doing this after parsing
3849 all the expressions ensures we will end the loop. */
3850 expand_start_loop_continue_elsewhere (1);
3851 /* Emit the end-test, with a line number. */
3852 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3853 if (yyvsp
[-4].ttype
)
3854 expand_exit_loop_if_false (NULL_PTR
,
3855 truthvalue_conversion (yyvsp
[-4].ttype
));
3856 /* Don't let the tree nodes for $9 be discarded by
3857 clear_momentary during the parsing of the next stmt. */
3859 yyvsp
[-3].lineno
= lineno
;
3860 yyvsp
[-2].filename
= input_filename
;
3861 position_after_white_space (); ;
3864 #line 1898 "objc-parse.y"
3865 { /* Emit the increment expression, with a line number. */
3866 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3867 expand_loop_continue_here ();
3868 if (yyvsp
[-3].ttype
)
3869 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3870 if (yychar
== CONSTANT
|| yychar
== STRING
)
3871 pop_momentary_nofree ();
3874 expand_end_loop (); ;
3877 #line 1909 "objc-parse.y"
3879 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3880 c_expand_start_case (yyvsp
[-1].ttype
);
3881 /* Don't let the tree nodes for $3 be discarded by
3882 clear_momentary during the parsing of the next stmt. */
3884 position_after_white_space (); ;
3887 #line 1917 "objc-parse.y"
3888 { expand_end_case (yyvsp
[-3].ttype
);
3889 if (yychar
== CONSTANT
|| yychar
== STRING
)
3890 pop_momentary_nofree ();
3895 #line 1923 "objc-parse.y"
3897 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3898 if ( ! expand_exit_something ())
3899 error ("break statement not within loop or switch"); ;
3902 #line 1928 "objc-parse.y"
3904 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3905 if (! expand_continue_loop (NULL_PTR
))
3906 error ("continue statement not within a loop"); ;
3909 #line 1933 "objc-parse.y"
3911 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3912 c_expand_return (NULL_TREE
); ;
3915 #line 1937 "objc-parse.y"
3917 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3918 c_expand_return (yyvsp
[-1].ttype
); ;
3921 #line 1941 "objc-parse.y"
3923 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3924 STRIP_NOPS (yyvsp
[-2].ttype
);
3925 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3926 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3927 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3928 expand_asm (yyvsp
[-2].ttype
);
3930 error ("argument of `asm' is not a constant string"); ;
3933 #line 1952 "objc-parse.y"
3935 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3936 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3937 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3938 input_filename
, lineno
); ;
3941 #line 1959 "objc-parse.y"
3943 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3944 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3945 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3946 input_filename
, lineno
); ;
3949 #line 1967 "objc-parse.y"
3951 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3952 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3953 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3954 input_filename
, lineno
); ;
3957 #line 1973 "objc-parse.y"
3960 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3961 decl
= lookup_label (yyvsp
[-1].ttype
);
3964 TREE_USED (decl
) = 1;
3970 #line 1984 "objc-parse.y"
3972 pedwarn ("ANSI C forbids `goto *expr;'");
3974 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3975 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3978 #line 1999 "objc-parse.y"
3980 /* The value returned by this action is */
3981 /* 1 if everything is OK */
3982 /* 0 in case of error or already bound iterator */
3985 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3986 error ("invalid `for (ITERATOR)' syntax");
3987 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3988 error ("`%s' is not an iterator",
3989 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3990 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3991 error ("`for (%s)' inside expansion of same iterator",
3992 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3996 iterator_for_loop_start (yyvsp
[-1].ttype
);
4001 #line 2020 "objc-parse.y"
4003 if (yyvsp
[-1].itype
)
4004 iterator_for_loop_end (yyvsp
[-3].ttype
);
4008 #line 2055 "objc-parse.y"
4009 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
4011 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4015 if (value
!= error_mark_node
)
4020 if (pedantic
&& ! INTEGRAL_TYPE_P (TREE_TYPE (value
)))
4021 pedwarn ("label must have integral type in ANSI C");
4023 success
= pushcase (value
, convert_and_check
,
4027 error ("case label not within a switch statement");
4028 else if (success
== 2)
4030 error ("duplicate case value");
4031 error_with_decl (duplicate
, "this is the first entry for that value");
4033 else if (success
== 3)
4034 warning ("case value out of range");
4035 else if (success
== 5)
4036 error ("case label within scope of cleanup or variable array");
4038 position_after_white_space (); ;
4041 #line 2086 "objc-parse.y"
4042 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
4043 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
4045 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4048 pedwarn ("ANSI C forbids case ranges");
4051 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
4054 int success
= pushcase_range (value1
, value2
,
4055 convert_and_check
, label
,
4058 error ("case label not within a switch statement");
4059 else if (success
== 2)
4061 error ("duplicate case value");
4062 error_with_decl (duplicate
, "this is the first entry for that value");
4064 else if (success
== 3)
4065 warning ("case value out of range");
4066 else if (success
== 4)
4067 warning ("empty case range");
4068 else if (success
== 5)
4069 error ("case label within scope of cleanup or variable array");
4071 position_after_white_space (); ;
4074 #line 2117 "objc-parse.y"
4078 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4079 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
4082 error ("default label not within a switch statement");
4083 else if (success
== 2)
4085 error ("multiple default labels in one switch");
4086 error_with_decl (duplicate
, "this is the first default label");
4088 position_after_white_space (); ;
4091 #line 2132 "objc-parse.y"
4092 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-2].ttype
);
4097 expand_label (label
);
4098 decl_attributes (label
, yyvsp
[0].ttype
, NULL_TREE
);
4100 position_after_white_space (); ;
4103 #line 2147 "objc-parse.y"
4104 { emit_line_note (input_filename
, lineno
);
4105 yyval
.ttype
= NULL_TREE
; ;
4108 #line 2150 "objc-parse.y"
4109 { emit_line_note (input_filename
, lineno
); ;
4112 #line 2155 "objc-parse.y"
4113 { yyval
.ttype
= NULL_TREE
; ;
4116 #line 2162 "objc-parse.y"
4117 { yyval
.ttype
= NULL_TREE
; ;
4120 #line 2169 "objc-parse.y"
4121 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
4124 #line 2174 "objc-parse.y"
4125 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
4128 #line 2179 "objc-parse.y"
4129 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
4132 #line 2181 "objc-parse.y"
4133 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
4136 #line 2187 "objc-parse.y"
4138 clear_parm_order ();
4139 declare_parm_level (0); ;
4142 #line 2191 "objc-parse.y"
4143 { yyval
.ttype
= yyvsp
[0].ttype
;
4144 parmlist_tags_warning ();
4145 poplevel (0, 0, 0); ;
4148 #line 2199 "objc-parse.y"
4151 pedwarn ("ANSI C forbids forward parameter declarations");
4152 /* Mark the forward decls as such. */
4153 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
4154 TREE_ASM_WRITTEN (parm
) = 1;
4155 clear_parm_order (); ;
4158 #line 2207 "objc-parse.y"
4159 { yyval
.ttype
= yyvsp
[0].ttype
; ;
4162 #line 2209 "objc-parse.y"
4163 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
4166 #line 2215 "objc-parse.y"
4167 { yyval
.ttype
= get_parm_info (0); ;
4170 #line 2217 "objc-parse.y"
4171 { yyval
.ttype
= get_parm_info (0);
4172 /* Gcc used to allow this as an extension. However, it does
4173 not work for all targets, and thus has been disabled.
4174 Also, since func (...) and func () are indistinguishable,
4175 it caused problems with the code in expand_builtin which
4176 tries to verify that BUILT_IN_NEXT_ARG is being used
4178 error ("ANSI C requires a named argument before `...'");
4182 #line 2227 "objc-parse.y"
4183 { yyval
.ttype
= get_parm_info (1); ;
4186 #line 2229 "objc-parse.y"
4187 { yyval
.ttype
= get_parm_info (0); ;
4190 #line 2234 "objc-parse.y"
4191 { push_parm_decl (yyvsp
[0].ttype
); ;
4194 #line 2236 "objc-parse.y"
4195 { push_parm_decl (yyvsp
[0].ttype
); ;
4198 #line 2243 "objc-parse.y"
4199 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4201 build_tree_list (prefix_attributes
,
4203 current_declspecs
= TREE_VALUE (declspec_stack
);
4204 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4205 declspec_stack
= TREE_CHAIN (declspec_stack
);
4206 resume_momentary (yyvsp
[-2].itype
); ;
4209 #line 2252 "objc-parse.y"
4210 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4212 build_tree_list (prefix_attributes
,
4214 current_declspecs
= TREE_VALUE (declspec_stack
);
4215 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4216 declspec_stack
= TREE_CHAIN (declspec_stack
);
4217 resume_momentary (yyvsp
[-2].itype
); ;
4220 #line 2261 "objc-parse.y"
4221 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4223 build_tree_list (prefix_attributes
,
4225 current_declspecs
= TREE_VALUE (declspec_stack
);
4226 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4227 declspec_stack
= TREE_CHAIN (declspec_stack
);
4228 resume_momentary (yyvsp
[-2].itype
); ;
4231 #line 2270 "objc-parse.y"
4232 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4234 build_tree_list (prefix_attributes
,
4236 current_declspecs
= TREE_VALUE (declspec_stack
);
4237 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4238 declspec_stack
= TREE_CHAIN (declspec_stack
);
4239 resume_momentary (yyvsp
[-2].itype
); ;
4242 #line 2280 "objc-parse.y"
4243 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4245 build_tree_list (prefix_attributes
,
4247 current_declspecs
= TREE_VALUE (declspec_stack
);
4248 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4249 declspec_stack
= TREE_CHAIN (declspec_stack
);
4250 resume_momentary (yyvsp
[-2].itype
); ;
4253 #line 2294 "objc-parse.y"
4255 clear_parm_order ();
4256 declare_parm_level (1); ;
4259 #line 2298 "objc-parse.y"
4260 { yyval
.ttype
= yyvsp
[0].ttype
;
4261 parmlist_tags_warning ();
4262 poplevel (0, 0, 0); ;
4265 #line 2306 "objc-parse.y"
4267 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
4268 if (TREE_VALUE (t
) == NULL_TREE
)
4269 error ("`...' in old-style identifier list");
4270 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
4273 #line 2316 "objc-parse.y"
4274 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4277 #line 2318 "objc-parse.y"
4278 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4281 #line 2324 "objc-parse.y"
4282 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4285 #line 2326 "objc-parse.y"
4286 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4289 #line 2331 "objc-parse.y"
4290 { yyval
.itype
= pedantic
;
4294 #line 2344 "objc-parse.y"
4296 if (objc_implementation_context
)
4298 finish_class (objc_implementation_context
);
4299 objc_ivar_chain
= NULL_TREE
;
4300 objc_implementation_context
= NULL_TREE
;
4303 warning ("`@end' must appear in an implementation context");
4307 #line 2359 "objc-parse.y"
4308 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4311 #line 2361 "objc-parse.y"
4312 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4315 #line 2366 "objc-parse.y"
4317 objc_declare_class (yyvsp
[-1].ttype
);
4321 #line 2372 "objc-parse.y"
4323 objc_declare_alias (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4327 #line 2378 "objc-parse.y"
4329 objc_interface_context
= objc_ivar_context
4330 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[-1].ttype
);
4331 objc_public_flag
= 0;
4335 #line 2384 "objc-parse.y"
4337 continue_class (objc_interface_context
);
4341 #line 2389 "objc-parse.y"
4343 finish_class (objc_interface_context
);
4344 objc_interface_context
= NULL_TREE
;
4348 #line 2395 "objc-parse.y"
4350 objc_interface_context
4351 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
4352 continue_class (objc_interface_context
);
4356 #line 2402 "objc-parse.y"
4358 finish_class (objc_interface_context
);
4359 objc_interface_context
= NULL_TREE
;
4363 #line 2408 "objc-parse.y"
4365 objc_interface_context
= objc_ivar_context
4366 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4367 objc_public_flag
= 0;
4371 #line 2414 "objc-parse.y"
4373 continue_class (objc_interface_context
);
4377 #line 2419 "objc-parse.y"
4379 finish_class (objc_interface_context
);
4380 objc_interface_context
= NULL_TREE
;
4384 #line 2425 "objc-parse.y"
4386 objc_interface_context
4387 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4388 continue_class (objc_interface_context
);
4392 #line 2432 "objc-parse.y"
4394 finish_class (objc_interface_context
);
4395 objc_interface_context
= NULL_TREE
;
4399 #line 2438 "objc-parse.y"
4401 objc_implementation_context
= objc_ivar_context
4402 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, NULL_TREE
);
4403 objc_public_flag
= 0;
4407 #line 2444 "objc-parse.y"
4410 = continue_class (objc_implementation_context
);
4414 #line 2450 "objc-parse.y"
4416 objc_implementation_context
4417 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
);
4419 = continue_class (objc_implementation_context
);
4423 #line 2458 "objc-parse.y"
4425 objc_implementation_context
= objc_ivar_context
4426 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4427 objc_public_flag
= 0;
4431 #line 2464 "objc-parse.y"
4434 = continue_class (objc_implementation_context
);
4438 #line 2470 "objc-parse.y"
4440 objc_implementation_context
4441 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4443 = continue_class (objc_implementation_context
);
4447 #line 2478 "objc-parse.y"
4449 objc_interface_context
4450 = start_class (CATEGORY_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4451 continue_class (objc_interface_context
);
4455 #line 2485 "objc-parse.y"
4457 finish_class (objc_interface_context
);
4458 objc_interface_context
= NULL_TREE
;
4462 #line 2491 "objc-parse.y"
4464 objc_implementation_context
4465 = start_class (CATEGORY_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4467 = continue_class (objc_implementation_context
);
4471 #line 2501 "objc-parse.y"
4473 remember_protocol_qualifiers ();
4474 objc_interface_context
4475 = start_protocol(PROTOCOL_INTERFACE_TYPE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4479 #line 2507 "objc-parse.y"
4481 forget_protocol_qualifiers();
4482 finish_protocol(objc_interface_context
);
4483 objc_interface_context
= NULL_TREE
;
4487 #line 2516 "objc-parse.y"
4489 yyval
.ttype
= NULL_TREE
;
4493 #line 2524 "objc-parse.y"
4495 if (yyvsp
[-2].code
== LT_EXPR
&& yyvsp
[0].code
== GT_EXPR
)
4496 yyval
.ttype
= yyvsp
[-1].ttype
;
4502 #line 2538 "objc-parse.y"
4503 { objc_public_flag
= 2; ;
4506 #line 2539 "objc-parse.y"
4507 { objc_public_flag
= 0; ;
4510 #line 2540 "objc-parse.y"
4511 { objc_public_flag
= 1; ;
4514 #line 2545 "objc-parse.y"
4516 yyval
.ttype
= NULL_TREE
;
4520 #line 2550 "objc-parse.y"
4523 pedwarn ("extra semicolon in struct or union specified");
4527 #line 2568 "objc-parse.y"
4528 { yyval
.ttype
= yyvsp
[0].ttype
;
4529 current_declspecs
= TREE_VALUE (declspec_stack
);
4530 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4531 declspec_stack
= TREE_CHAIN (declspec_stack
);
4532 resume_momentary (yyvsp
[-1].itype
); ;
4535 #line 2574 "objc-parse.y"
4536 { yyval
.ttype
= yyvsp
[0].ttype
;
4537 current_declspecs
= TREE_VALUE (declspec_stack
);
4538 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4539 declspec_stack
= TREE_CHAIN (declspec_stack
);
4540 resume_momentary (yyvsp
[-1].itype
); ;
4543 #line 2580 "objc-parse.y"
4544 { yyval
.ttype
= NULL_TREE
; ;
4547 #line 2585 "objc-parse.y"
4548 { yyval
.ttype
= NULL_TREE
; ;
4551 #line 2592 "objc-parse.y"
4553 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4555 yyvsp
[0].ttype
, current_declspecs
,
4560 #line 2599 "objc-parse.y"
4562 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4564 yyvsp
[-2].ttype
, current_declspecs
, yyvsp
[0].ttype
);
4568 #line 2605 "objc-parse.y"
4570 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4573 current_declspecs
, yyvsp
[0].ttype
);
4577 #line 2615 "objc-parse.y"
4579 remember_protocol_qualifiers ();
4580 if (objc_implementation_context
)
4581 objc_inherit_code
= CLASS_METHOD_DECL
;
4583 fatal ("method definition not in class context");
4587 #line 2623 "objc-parse.y"
4589 forget_protocol_qualifiers ();
4590 add_class_method (objc_implementation_context
, yyvsp
[0].ttype
);
4591 start_method_def (yyvsp
[0].ttype
);
4592 objc_method_context
= yyvsp
[0].ttype
;
4596 #line 2630 "objc-parse.y"
4598 continue_method_def ();
4602 #line 2634 "objc-parse.y"
4604 finish_method_def ();
4605 objc_method_context
= NULL_TREE
;
4609 #line 2640 "objc-parse.y"
4611 remember_protocol_qualifiers ();
4612 if (objc_implementation_context
)
4613 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4615 fatal ("method definition not in class context");
4619 #line 2648 "objc-parse.y"
4621 forget_protocol_qualifiers ();
4622 add_instance_method (objc_implementation_context
, yyvsp
[0].ttype
);
4623 start_method_def (yyvsp
[0].ttype
);
4624 objc_method_context
= yyvsp
[0].ttype
;
4628 #line 2655 "objc-parse.y"
4630 continue_method_def ();
4634 #line 2659 "objc-parse.y"
4636 finish_method_def ();
4637 objc_method_context
= NULL_TREE
;
4641 #line 2671 "objc-parse.y"
4642 {yyval
.ttype
= NULL_TREE
; ;
4645 #line 2678 "objc-parse.y"
4646 {yyval
.ttype
= NULL_TREE
; ;
4649 #line 2688 "objc-parse.y"
4651 /* Remember protocol qualifiers in prototypes. */
4652 remember_protocol_qualifiers ();
4653 objc_inherit_code
= CLASS_METHOD_DECL
;
4657 #line 2694 "objc-parse.y"
4659 /* Forget protocol qualifiers here. */
4660 forget_protocol_qualifiers ();
4661 add_class_method (objc_interface_context
, yyvsp
[0].ttype
);
4665 #line 2702 "objc-parse.y"
4667 /* Remember protocol qualifiers in prototypes. */
4668 remember_protocol_qualifiers ();
4669 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4673 #line 2708 "objc-parse.y"
4675 /* Forget protocol qualifiers here. */
4676 forget_protocol_qualifiers ();
4677 add_instance_method (objc_interface_context
, yyvsp
[0].ttype
);
4681 #line 2718 "objc-parse.y"
4683 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4687 #line 2723 "objc-parse.y"
4689 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
4693 #line 2728 "objc-parse.y"
4695 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4699 #line 2733 "objc-parse.y"
4701 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4705 #line 2763 "objc-parse.y"
4706 { current_declspecs
= TREE_VALUE (declspec_stack
);
4707 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4708 declspec_stack
= TREE_CHAIN (declspec_stack
);
4709 resume_momentary (yyvsp
[-2].itype
); ;
4712 #line 2768 "objc-parse.y"
4713 { shadow_tag (yyvsp
[-1].ttype
); ;
4716 #line 2770 "objc-parse.y"
4717 { pedwarn ("empty declaration"); ;
4720 #line 2775 "objc-parse.y"
4721 { push_parm_decl (yyvsp
[0].ttype
); ;
4724 #line 2777 "objc-parse.y"
4725 { push_parm_decl (yyvsp
[0].ttype
); ;
4728 #line 2785 "objc-parse.y"
4729 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4731 build_tree_list (prefix_attributes
,
4735 #line 2790 "objc-parse.y"
4736 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4738 build_tree_list (prefix_attributes
,
4742 #line 2795 "objc-parse.y"
4743 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4745 build_tree_list (prefix_attributes
,
4749 #line 2803 "objc-parse.y"
4751 yyval
.ttype
= NULL_TREE
;
4755 #line 2807 "objc-parse.y"
4757 /* oh what a kludge! */
4758 yyval
.ttype
= (tree
)1;
4762 #line 2812 "objc-parse.y"
4768 #line 2816 "objc-parse.y"
4770 /* returns a tree list node generated by get_parm_info */
4771 yyval
.ttype
= yyvsp
[0].ttype
;
4776 #line 2831 "objc-parse.y"
4778 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4782 #line 2844 "objc-parse.y"
4783 { yyval
.ttype
= get_identifier (token_buffer
); ;
4786 #line 2845 "objc-parse.y"
4787 { yyval
.ttype
= get_identifier (token_buffer
); ;
4790 #line 2846 "objc-parse.y"
4791 { yyval
.ttype
= get_identifier (token_buffer
); ;
4794 #line 2847 "objc-parse.y"
4795 { yyval
.ttype
= get_identifier (token_buffer
); ;
4798 #line 2848 "objc-parse.y"
4799 { yyval
.ttype
= get_identifier (token_buffer
); ;
4802 #line 2849 "objc-parse.y"
4803 { yyval
.ttype
= get_identifier (token_buffer
); ;
4806 #line 2850 "objc-parse.y"
4807 { yyval
.ttype
= get_identifier (token_buffer
); ;
4810 #line 2851 "objc-parse.y"
4811 { yyval
.ttype
= get_identifier (token_buffer
); ;
4814 #line 2852 "objc-parse.y"
4815 { yyval
.ttype
= get_identifier (token_buffer
); ;
4818 #line 2853 "objc-parse.y"
4819 { yyval
.ttype
= get_identifier (token_buffer
); ;
4822 #line 2854 "objc-parse.y"
4823 { yyval
.ttype
= get_identifier (token_buffer
); ;
4826 #line 2855 "objc-parse.y"
4827 { yyval
.ttype
= get_identifier (token_buffer
); ;
4830 #line 2856 "objc-parse.y"
4831 { yyval
.ttype
= get_identifier (token_buffer
); ;
4834 #line 2857 "objc-parse.y"
4835 { yyval
.ttype
= get_identifier (token_buffer
); ;
4838 #line 2858 "objc-parse.y"
4839 { yyval
.ttype
= get_identifier (token_buffer
); ;
4842 #line 2859 "objc-parse.y"
4843 { yyval
.ttype
= get_identifier (token_buffer
); ;
4846 #line 2860 "objc-parse.y"
4847 { yyval
.ttype
= get_identifier (token_buffer
); ;
4850 #line 2861 "objc-parse.y"
4851 { yyval
.ttype
= get_identifier (token_buffer
); ;
4854 #line 2862 "objc-parse.y"
4855 { yyval
.ttype
= get_identifier (token_buffer
); ;
4858 #line 2868 "objc-parse.y"
4860 yyval
.ttype
= build_keyword_decl (yyvsp
[-5].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4864 #line 2873 "objc-parse.y"
4866 yyval
.ttype
= build_keyword_decl (yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
4870 #line 2878 "objc-parse.y"
4872 yyval
.ttype
= build_keyword_decl (NULL_TREE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4876 #line 2883 "objc-parse.y"
4878 yyval
.ttype
= build_keyword_decl (NULL_TREE
, NULL_TREE
, yyvsp
[0].ttype
);
4882 #line 2896 "objc-parse.y"
4884 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4888 #line 2904 "objc-parse.y"
4890 if (TREE_CHAIN (yyvsp
[0].ttype
) == NULL_TREE
)
4891 /* just return the expr., remove a level of indirection */
4892 yyval
.ttype
= TREE_VALUE (yyvsp
[0].ttype
);
4894 /* we have a comma expr., we will collapse later */
4895 yyval
.ttype
= yyvsp
[0].ttype
;
4899 #line 2916 "objc-parse.y"
4901 yyval
.ttype
= build_tree_list (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4905 #line 2920 "objc-parse.y"
4907 yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
);
4911 #line 2928 "objc-parse.y"
4913 yyval
.ttype
= get_class_reference (yyvsp
[0].ttype
);
4917 #line 2935 "objc-parse.y"
4918 { objc_receiver_context
= 1; ;
4921 #line 2937 "objc-parse.y"
4922 { objc_receiver_context
= 0; ;
4925 #line 2939 "objc-parse.y"
4927 yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
);
4931 #line 2952 "objc-parse.y"
4933 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4937 #line 2959 "objc-parse.y"
4939 yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, NULL_TREE
);
4943 #line 2963 "objc-parse.y"
4945 yyval
.ttype
= build_tree_list (NULL_TREE
, NULL_TREE
);
4949 #line 2970 "objc-parse.y"
4951 yyval
.ttype
= yyvsp
[-1].ttype
;
4955 #line 2977 "objc-parse.y"
4957 yyval
.ttype
= yyvsp
[-1].ttype
;
4961 #line 2986 "objc-parse.y"
4963 yyval
.ttype
= groktypename (yyvsp
[-1].ttype
);
4967 /* the action file gets copied in in place of this dollarsign */
4968 #line 498 "/usr/local/gnu/share/bison.simple"
4979 short *ssp1
= yyss
- 1;
4980 fprintf (stderr
, "state stack now");
4981 while (ssp1
!= yyssp
)
4982 fprintf (stderr
, " %d", *++ssp1
);
4983 fprintf (stderr
, "\n");
4993 yylsp
->first_line
= yylloc
.first_line
;
4994 yylsp
->first_column
= yylloc
.first_column
;
4995 yylsp
->last_line
= (yylsp
-1)->last_line
;
4996 yylsp
->last_column
= (yylsp
-1)->last_column
;
5001 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
5002 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
5006 /* Now "shift" the result of the reduction.
5007 Determine what state that goes to,
5008 based on the state we popped back to
5009 and the rule number reduced by. */
5013 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
5014 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5015 yystate
= yytable
[yystate
];
5017 yystate
= yydefgoto
[yyn
- YYNTBASE
];
5021 yyerrlab
: /* here on detecting error */
5024 /* If not already recovering from an error, report this error. */
5028 #ifdef YYERROR_VERBOSE
5029 yyn
= yypact
[yystate
];
5031 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
5038 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5039 for (x
= (yyn
< 0 ? -yyn
: 0);
5040 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
5041 if (yycheck
[x
+ yyn
] == x
)
5042 size
+= strlen(yytname
[x
]) + 15, count
++;
5043 msg
= (char *) malloc(size
+ 15);
5046 strcpy(msg
, "parse error");
5051 for (x
= (yyn
< 0 ? -yyn
: 0);
5052 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
5053 if (yycheck
[x
+ yyn
] == x
)
5055 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
5056 strcat(msg
, yytname
[x
]);
5065 yyerror ("parse error; also virtual memory exceeded");
5068 #endif /* YYERROR_VERBOSE */
5069 yyerror("parse error");
5073 yyerrlab1
: /* here on error raised explicitly by an action */
5075 if (yyerrstatus
== 3)
5077 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5079 /* return failure if at end of input */
5080 if (yychar
== YYEOF
)
5085 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
5091 /* Else will try to reuse lookahead token
5092 after shifting the error token. */
5094 yyerrstatus
= 3; /* Each real token shifted decrements this */
5098 yyerrdefault
: /* current state does not do anything special for the error token. */
5101 /* This is wrong; only states that explicitly want error tokens
5102 should shift them. */
5103 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5104 if (yyn
) goto yydefault
;
5107 yyerrpop
: /* pop the current state because it cannot handle the error token */
5109 if (yyssp
== yyss
) YYABORT
;
5119 short *ssp1
= yyss
- 1;
5120 fprintf (stderr
, "Error: state stack now");
5121 while (ssp1
!= yyssp
)
5122 fprintf (stderr
, " %d", *++ssp1
);
5123 fprintf (stderr
, "\n");
5129 yyn
= yypact
[yystate
];
5134 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
5153 fprintf(stderr
, "Shifting error token, ");
5164 #line 2991 "objc-parse.y"