]> gcc.gnu.org Git - gcc.git/blob - gcc/objc/objc-parse.c
c-parse.in (string): With -Wtraditional, warn if ANSI string concatenation is utilized.
[gcc.git] / gcc / objc / objc-parse.c
1
2 /* A Bison parser, made from objc-parse.y
3 by GNU Bison version 1.25
4 */
5
6 #define YYBISON 1 /* Identify Bison output. */
7
8 #define IDENTIFIER 258
9 #define TYPENAME 259
10 #define SCSPEC 260
11 #define TYPESPEC 261
12 #define TYPE_QUAL 262
13 #define CONSTANT 263
14 #define STRING 264
15 #define ELLIPSIS 265
16 #define SIZEOF 266
17 #define ENUM 267
18 #define STRUCT 268
19 #define UNION 269
20 #define IF 270
21 #define ELSE 271
22 #define WHILE 272
23 #define DO 273
24 #define FOR 274
25 #define SWITCH 275
26 #define CASE 276
27 #define DEFAULT 277
28 #define BREAK 278
29 #define CONTINUE 279
30 #define RETURN 280
31 #define GOTO 281
32 #define ASM_KEYWORD 282
33 #define TYPEOF 283
34 #define ALIGNOF 284
35 #define ATTRIBUTE 285
36 #define EXTENSION 286
37 #define LABEL 287
38 #define REALPART 288
39 #define IMAGPART 289
40 #define VA_ARG 290
41 #define END_OF_LINE 291
42 #define ASSIGN 292
43 #define OROR 293
44 #define ANDAND 294
45 #define EQCOMPARE 295
46 #define ARITHCOMPARE 296
47 #define LSHIFT 297
48 #define RSHIFT 298
49 #define UNARY 299
50 #define PLUSPLUS 300
51 #define MINUSMINUS 301
52 #define HYPERUNARY 302
53 #define POINTSAT 303
54 #define INTERFACE 304
55 #define IMPLEMENTATION 305
56 #define END 306
57 #define SELECTOR 307
58 #define DEFS 308
59 #define ENCODE 309
60 #define CLASSNAME 310
61 #define PUBLIC 311
62 #define PRIVATE 312
63 #define PROTECTED 313
64 #define PROTOCOL 314
65 #define OBJECTNAME 315
66 #define CLASS 316
67 #define ALIAS 317
68 #define OBJC_STRING 318
69
70 #line 33 "objc-parse.y"
71
72 #include "config.h"
73 #include "system.h"
74 #include <setjmp.h>
75 #include "tree.h"
76 #include "input.h"
77 #include "c-lex.h"
78 #include "c-tree.h"
79 #include "flags.h"
80 #include "output.h"
81 #include "toplev.h"
82 #include "ggc.h"
83
84 #ifdef MULTIBYTE_CHARS
85 #include <locale.h>
86 #endif
87
88 #include "objc-act.h"
89
90 /* Since parsers are distinct for each language, put the language string
91 definition here. */
92 const char * const language_string = "GNU Obj-C";
93
94 /* Like YYERROR but do call yyerror. */
95 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
96
97 /* Cause the `yydebug' variable to be defined. */
98 #define YYDEBUG 1
99
100 #line 65 "objc-parse.y"
101 typedef union {long itype; tree ttype; enum tree_code code;
102 char *filename; int lineno; int ends_in_label; } YYSTYPE;
103 #line 198 "objc-parse.y"
104
105 /* Number of statements (loosely speaking) and compound statements
106 seen so far. */
107 static int stmt_count;
108 static int compstmt_count;
109
110 /* Input file and line number of the end of the body of last simple_if;
111 used by the stmt-rule immediately after simple_if returns. */
112 static char *if_stmt_file;
113 static int if_stmt_line;
114
115 /* List of types and structure classes of the current declaration. */
116 static tree current_declspecs = NULL_TREE;
117 static tree prefix_attributes = NULL_TREE;
118
119 /* Stack of saved values of current_declspecs and prefix_attributes. */
120 static tree declspec_stack;
121
122 /* 1 if we explained undeclared var errors. */
123 static int undeclared_variable_notice;
124
125 /* For __extension__, save/restore the warning flags which are
126 controlled by __extension__. */
127 #define SAVE_WARN_FLAGS() (pedantic | (warn_pointer_arith << 1))
128 #define RESTORE_WARN_FLAGS(val) \
129 do { \
130 pedantic = val & 1; \
131 warn_pointer_arith = (val >> 1) & 1; \
132 } while (0)
133
134 /* Objective-C specific information */
135
136 tree objc_interface_context;
137 tree objc_implementation_context;
138 tree objc_method_context;
139 tree objc_ivar_chain;
140 tree objc_ivar_context;
141 enum tree_code objc_inherit_code;
142 int objc_receiver_context;
143 int objc_public_flag;
144
145
146 /* Tell yyparse how to print a token's value, if yydebug is set. */
147
148 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
149 extern void yyprint PROTO ((FILE *, int, YYSTYPE));
150
151 /* Add GC roots for variables local to this file. */
152 void
153 c_parse_init ()
154 {
155 ggc_add_tree_root (&declspec_stack, 1);
156 ggc_add_tree_root (&current_declspecs, 1);
157 ggc_add_tree_root (&prefix_attributes, 1);
158 }
159
160 #include <stdio.h>
161
162 #ifndef __cplusplus
163 #ifndef __STDC__
164 #define const
165 #endif
166 #endif
167
168
169
170 #define YYFINAL 969
171 #define YYFLAG -32768
172 #define YYNTBASE 86
173
174 #define YYTRANSLATE(x) ((unsigned)(x) <= 318 ? yytranslate[x] : 314)
175
176 static const char yytranslate[] = { 0,
177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
178 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
180 2, 2, 82, 2, 2, 2, 54, 45, 2, 61,
181 78, 52, 50, 83, 51, 60, 53, 2, 2, 2,
182 2, 2, 2, 2, 2, 2, 2, 40, 79, 2,
183 38, 2, 39, 2, 2, 2, 2, 2, 2, 2,
184 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
185 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
186 62, 2, 85, 44, 2, 2, 2, 2, 2, 2,
187 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
188 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
189 2, 2, 84, 43, 80, 81, 2, 2, 2, 2,
190 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
191 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
192 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
193 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
194 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
195 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
196 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
197 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
198 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
199 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
201 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
202 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
203 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
204 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
205 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
206 36, 37, 41, 42, 46, 47, 48, 49, 55, 56,
207 57, 58, 59, 63, 64, 65, 66, 67, 68, 69,
208 70, 71, 72, 73, 74, 75, 76, 77
209 };
210
211 #if YYDEBUG != 0
212 static const short yyprhs[] = { 0,
213 0, 1, 3, 4, 7, 8, 12, 14, 16, 18,
214 24, 27, 31, 36, 41, 44, 47, 50, 53, 55,
215 56, 57, 65, 70, 71, 72, 80, 85, 86, 87,
216 94, 98, 100, 102, 104, 106, 108, 110, 112, 114,
217 116, 118, 120, 122, 123, 125, 127, 131, 133, 136,
218 139, 142, 145, 148, 153, 156, 161, 164, 167, 174,
219 176, 178, 180, 185, 186, 194, 196, 200, 204, 208,
220 212, 216, 220, 224, 228, 232, 236, 240, 244, 245,
221 250, 251, 256, 257, 258, 266, 267, 273, 277, 281,
222 283, 285, 287, 291, 295, 299, 303, 308, 313, 317,
223 321, 324, 327, 329, 331, 333, 335, 337, 339, 342,
224 344, 347, 348, 350, 353, 357, 359, 361, 364, 367,
225 372, 377, 380, 383, 387, 389, 391, 394, 397, 398,
226 399, 404, 409, 413, 417, 420, 423, 426, 429, 433,
227 434, 437, 440, 443, 446, 450, 451, 454, 457, 459,
228 461, 464, 467, 469, 471, 474, 477, 480, 484, 485,
229 488, 490, 492, 494, 497, 500, 502, 507, 512, 514,
230 516, 518, 520, 524, 526, 530, 531, 536, 537, 544,
231 548, 549, 556, 560, 561, 563, 565, 568, 575, 577,
232 581, 582, 584, 589, 596, 601, 603, 605, 607, 609,
233 611, 612, 617, 619, 620, 623, 625, 629, 633, 636,
234 637, 642, 644, 645, 650, 652, 654, 656, 659, 662,
235 663, 664, 670, 671, 672, 678, 680, 682, 686, 690,
236 695, 699, 703, 707, 709, 711, 715, 720, 724, 728,
237 732, 734, 738, 742, 746, 751, 755, 759, 761, 763,
238 766, 768, 771, 773, 776, 777, 785, 791, 794, 795,
239 803, 809, 812, 813, 822, 823, 831, 834, 835, 837,
240 838, 840, 842, 845, 846, 850, 853, 858, 862, 868,
241 872, 874, 876, 879, 881, 885, 890, 897, 903, 905,
242 909, 911, 913, 917, 920, 923, 924, 926, 928, 931,
243 932, 935, 939, 943, 946, 950, 955, 959, 962, 966,
244 969, 973, 975, 977, 980, 983, 984, 986, 989, 990,
245 991, 993, 995, 998, 1002, 1004, 1007, 1009, 1011, 1017,
246 1022, 1027, 1030, 1033, 1036, 1039, 1044, 1045, 1050, 1051,
247 1052, 1056, 1061, 1065, 1067, 1069, 1071, 1073, 1076, 1077,
248 1082, 1084, 1088, 1089, 1090, 1098, 1104, 1107, 1108, 1109,
249 1110, 1123, 1124, 1131, 1134, 1137, 1140, 1144, 1151, 1160,
250 1171, 1184, 1188, 1193, 1195, 1197, 1198, 1205, 1209, 1215,
251 1218, 1222, 1223, 1225, 1226, 1228, 1229, 1231, 1233, 1237,
252 1242, 1244, 1248, 1249, 1252, 1255, 1256, 1261, 1264, 1265,
253 1267, 1269, 1273, 1275, 1279, 1284, 1289, 1294, 1299, 1304,
254 1305, 1308, 1310, 1313, 1315, 1319, 1321, 1325, 1327, 1329,
255 1331, 1333, 1335, 1337, 1339, 1341, 1345, 1349, 1354, 1355,
256 1356, 1367, 1368, 1375, 1376, 1377, 1390, 1391, 1400, 1401,
257 1408, 1411, 1412, 1421, 1426, 1427, 1437, 1443, 1444, 1451,
258 1452, 1454, 1458, 1462, 1464, 1466, 1468, 1470, 1471, 1475,
259 1478, 1482, 1486, 1488, 1489, 1491, 1495, 1497, 1501, 1504,
260 1505, 1506, 1507, 1515, 1516, 1517, 1518, 1526, 1527, 1528,
261 1531, 1533, 1535, 1538, 1539, 1543, 1545, 1547, 1548, 1549,
262 1555, 1556, 1557, 1563, 1568, 1570, 1576, 1579, 1580, 1583,
263 1584, 1586, 1588, 1590, 1593, 1596, 1601, 1604, 1607, 1609,
264 1613, 1616, 1619, 1622, 1623, 1626, 1627, 1631, 1633, 1635,
265 1638, 1640, 1642, 1644, 1646, 1648, 1650, 1652, 1654, 1656,
266 1658, 1660, 1662, 1664, 1666, 1668, 1670, 1672, 1674, 1676,
267 1678, 1680, 1682, 1684, 1686, 1688, 1695, 1699, 1705, 1708,
268 1710, 1712, 1714, 1717, 1719, 1723, 1726, 1728, 1730, 1731,
269 1732, 1739, 1741, 1743, 1745, 1748, 1751, 1753, 1758, 1763
270 };
271
272 static const short yyrhs[] = { -1,
273 87, 0, 0, 88, 90, 0, 0, 87, 89, 90,
274 0, 92, 0, 91, 0, 245, 0, 27, 61, 101,
275 78, 79, 0, 244, 90, 0, 124, 138, 79, 0,
276 131, 124, 138, 79, 0, 127, 124, 137, 79, 0,
277 131, 79, 0, 127, 79, 0, 1, 79, 0, 1,
278 80, 0, 79, 0, 0, 0, 127, 124, 166, 93,
279 118, 94, 200, 0, 127, 124, 166, 1, 0, 0,
280 0, 131, 124, 169, 95, 118, 96, 200, 0, 131,
281 124, 169, 1, 0, 0, 0, 124, 169, 97, 118,
282 98, 200, 0, 124, 169, 1, 0, 3, 0, 4,
283 0, 74, 0, 69, 0, 45, 0, 51, 0, 50,
284 0, 56, 0, 57, 0, 81, 0, 82, 0, 103,
285 0, 0, 103, 0, 109, 0, 103, 83, 109, 0,
286 115, 0, 52, 107, 0, 244, 107, 0, 100, 107,
287 0, 42, 99, 0, 105, 104, 0, 105, 61, 187,
288 78, 0, 106, 104, 0, 106, 61, 187, 78, 0,
289 33, 107, 0, 34, 107, 0, 35, 61, 109, 83,
290 187, 78, 0, 11, 0, 29, 0, 104, 0, 61,
291 187, 78, 107, 0, 0, 61, 187, 78, 84, 108,
292 152, 80, 0, 107, 0, 109, 50, 109, 0, 109,
293 51, 109, 0, 109, 52, 109, 0, 109, 53, 109,
294 0, 109, 54, 109, 0, 109, 48, 109, 0, 109,
295 49, 109, 0, 109, 47, 109, 0, 109, 46, 109,
296 0, 109, 45, 109, 0, 109, 43, 109, 0, 109,
297 44, 109, 0, 0, 109, 42, 110, 109, 0, 0,
298 109, 41, 111, 109, 0, 0, 0, 109, 39, 112,
299 101, 40, 113, 109, 0, 0, 109, 39, 114, 40,
300 109, 0, 109, 38, 109, 0, 109, 37, 109, 0,
301 3, 0, 8, 0, 116, 0, 61, 101, 78, 0,
302 61, 1, 78, 0, 203, 202, 78, 0, 203, 1,
303 78, 0, 115, 61, 102, 78, 0, 115, 62, 101,
304 85, 0, 115, 60, 99, 0, 115, 59, 99, 0,
305 115, 56, 0, 115, 57, 0, 305, 0, 311, 0,
306 312, 0, 313, 0, 117, 0, 9, 0, 116, 9,
307 0, 77, 0, 117, 77, 0, 0, 120, 0, 120,
308 10, 0, 209, 210, 121, 0, 119, 0, 195, 0,
309 120, 119, 0, 119, 195, 0, 129, 124, 137, 79,
310 0, 132, 124, 138, 79, 0, 129, 79, 0, 132,
311 79, 0, 209, 210, 126, 0, 122, 0, 195, 0,
312 123, 122, 0, 122, 195, 0, 0, 0, 127, 124,
313 137, 79, 0, 131, 124, 138, 79, 0, 127, 124,
314 160, 0, 131, 124, 163, 0, 127, 79, 0, 131,
315 79, 0, 244, 126, 0, 135, 128, 0, 131, 135,
316 128, 0, 0, 128, 136, 0, 128, 5, 0, 128,
317 145, 0, 135, 130, 0, 132, 135, 130, 0, 0,
318 130, 136, 0, 130, 5, 0, 132, 0, 145, 0,
319 131, 132, 0, 131, 145, 0, 7, 0, 5, 0,
320 132, 7, 0, 132, 5, 0, 135, 134, 0, 189,
321 135, 134, 0, 0, 134, 136, 0, 6, 0, 173,
322 0, 4, 0, 69, 261, 0, 74, 261, 0, 262,
323 0, 28, 61, 101, 78, 0, 28, 61, 187, 78,
324 0, 6, 0, 7, 0, 173, 0, 140, 0, 137,
325 83, 140, 0, 142, 0, 138, 83, 140, 0, 0,
326 27, 61, 116, 78, 0, 0, 166, 139, 144, 38,
327 141, 150, 0, 166, 139, 144, 0, 0, 169, 139,
328 144, 38, 143, 150, 0, 169, 139, 144, 0, 0,
329 145, 0, 146, 0, 145, 146, 0, 30, 61, 61,
330 147, 78, 78, 0, 148, 0, 147, 83, 148, 0,
331 0, 149, 0, 149, 61, 3, 78, 0, 149, 61,
332 3, 83, 103, 78, 0, 149, 61, 102, 78, 0,
333 99, 0, 5, 0, 6, 0, 7, 0, 109, 0,
334 0, 84, 151, 152, 80, 0, 1, 0, 0, 153,
335 178, 0, 154, 0, 153, 83, 154, 0, 158, 38,
336 156, 0, 159, 156, 0, 0, 99, 40, 155, 156,
337 0, 156, 0, 0, 84, 157, 152, 80, 0, 109,
338 0, 1, 0, 159, 0, 158, 159, 0, 60, 99,
339 0, 0, 0, 166, 161, 118, 162, 204, 0, 0,
340 0, 169, 164, 118, 165, 204, 0, 167, 0, 169,
341 0, 61, 167, 78, 0, 167, 61, 239, 0, 167,
342 62, 101, 85, 0, 167, 62, 85, 0, 52, 190,
343 167, 0, 145, 125, 167, 0, 4, 0, 74, 0,
344 168, 61, 239, 0, 168, 62, 101, 85, 0, 168,
345 62, 85, 0, 52, 190, 168, 0, 145, 125, 168,
346 0, 4, 0, 169, 61, 239, 0, 61, 169, 78,
347 0, 52, 190, 169, 0, 169, 62, 101, 85, 0,
348 169, 62, 85, 0, 145, 125, 169, 0, 3, 0,
349 13, 0, 13, 145, 0, 14, 0, 14, 145, 0,
350 12, 0, 12, 145, 0, 0, 170, 99, 84, 174,
351 180, 80, 144, 0, 170, 84, 180, 80, 144, 0,
352 170, 99, 0, 0, 171, 99, 84, 175, 180, 80,
353 144, 0, 171, 84, 180, 80, 144, 0, 171, 99,
354 0, 0, 172, 99, 84, 176, 185, 179, 80, 144,
355 0, 0, 172, 84, 177, 185, 179, 80, 144, 0,
356 172, 99, 0, 0, 83, 0, 0, 83, 0, 181,
357 0, 181, 182, 0, 0, 181, 182, 79, 0, 181,
358 79, 0, 67, 61, 69, 78, 0, 133, 124, 183,
359 0, 133, 124, 209, 210, 144, 0, 189, 124, 183,
360 0, 189, 0, 1, 0, 244, 182, 0, 184, 0,
361 183, 83, 184, 0, 209, 210, 166, 144, 0, 209,
362 210, 166, 40, 109, 144, 0, 209, 210, 40, 109,
363 144, 0, 186, 0, 185, 83, 186, 0, 1, 0,
364 99, 0, 99, 38, 109, 0, 133, 188, 0, 189,
365 188, 0, 0, 191, 0, 7, 0, 189, 7, 0,
366 0, 190, 7, 0, 61, 191, 78, 0, 52, 190,
367 191, 0, 52, 190, 0, 191, 61, 232, 0, 191,
368 62, 101, 85, 0, 191, 62, 85, 0, 61, 232,
369 0, 62, 101, 85, 0, 62, 85, 0, 145, 125,
370 191, 0, 193, 0, 212, 0, 193, 212, 0, 193,
371 195, 0, 0, 192, 0, 1, 79, 0, 0, 0,
372 198, 0, 199, 0, 198, 199, 0, 32, 243, 79,
373 0, 204, 0, 1, 204, 0, 84, 0, 80, 0,
374 196, 197, 123, 194, 80, 0, 196, 197, 1, 80,
375 0, 196, 197, 192, 80, 0, 61, 84, 0, 201,
376 202, 0, 206, 211, 0, 206, 1, 0, 15, 61,
377 101, 78, 0, 0, 18, 208, 211, 17, 0, 0,
378 0, 209, 210, 214, 0, 209, 210, 225, 211, 0,
379 209, 210, 213, 0, 214, 0, 225, 0, 204, 0,
380 222, 0, 101, 79, 0, 0, 205, 16, 215, 211,
381 0, 205, 0, 205, 16, 1, 0, 0, 0, 17,
382 216, 61, 101, 78, 217, 211, 0, 207, 61, 101,
383 78, 79, 0, 207, 1, 0, 0, 0, 0, 19,
384 61, 227, 79, 218, 227, 79, 219, 227, 78, 220,
385 211, 0, 0, 20, 61, 101, 78, 221, 211, 0,
386 23, 79, 0, 24, 79, 0, 25, 79, 0, 25,
387 101, 79, 0, 27, 226, 61, 101, 78, 79, 0,
388 27, 226, 61, 101, 40, 228, 78, 79, 0, 27,
389 226, 61, 101, 40, 228, 40, 228, 78, 79, 0,
390 27, 226, 61, 101, 40, 228, 40, 228, 40, 231,
391 78, 79, 0, 26, 99, 79, 0, 26, 52, 101,
392 79, 0, 79, 0, 223, 0, 0, 19, 61, 115,
393 78, 224, 211, 0, 21, 109, 40, 0, 21, 109,
394 10, 109, 40, 0, 22, 40, 0, 99, 40, 144,
395 0, 0, 7, 0, 0, 101, 0, 0, 229, 0,
396 230, 0, 229, 83, 230, 0, 9, 61, 101, 78,
397 0, 116, 0, 231, 83, 116, 0, 0, 233, 234,
398 0, 236, 78, 0, 0, 237, 79, 235, 234, 0,
399 1, 78, 0, 0, 10, 0, 237, 0, 237, 83,
400 10, 0, 238, 0, 237, 83, 238, 0, 127, 124,
401 168, 144, 0, 127, 124, 169, 144, 0, 127, 124,
402 188, 144, 0, 131, 124, 169, 144, 0, 131, 124,
403 188, 144, 0, 0, 240, 241, 0, 234, 0, 242,
404 78, 0, 3, 0, 242, 83, 3, 0, 99, 0,
405 243, 83, 99, 0, 31, 0, 249, 0, 247, 0,
406 248, 0, 259, 0, 269, 0, 65, 0, 99, 0,
407 246, 83, 99, 0, 75, 246, 79, 0, 76, 99,
408 99, 79, 0, 0, 0, 63, 99, 261, 84, 250,
409 263, 80, 251, 276, 65, 0, 0, 63, 99, 261,
410 252, 276, 65, 0, 0, 0, 63, 99, 40, 99,
411 261, 84, 253, 263, 80, 254, 276, 65, 0, 0,
412 63, 99, 40, 99, 261, 255, 276, 65, 0, 0,
413 64, 99, 84, 256, 263, 80, 0, 64, 99, 0,
414 0, 64, 99, 40, 99, 84, 257, 263, 80, 0,
415 64, 99, 40, 99, 0, 0, 63, 99, 61, 99,
416 78, 261, 258, 276, 65, 0, 64, 99, 61, 99,
417 78, 0, 0, 73, 99, 261, 260, 276, 65, 0,
418 0, 262, 0, 47, 246, 47, 0, 263, 264, 265,
419 0, 265, 0, 71, 0, 72, 0, 70, 0, 0,
420 265, 266, 79, 0, 265, 79, 0, 133, 124, 267,
421 0, 189, 124, 267, 0, 1, 0, 0, 268, 0,
422 267, 83, 268, 0, 166, 0, 166, 40, 109, 0,
423 40, 109, 0, 0, 0, 0, 50, 270, 286, 271,
424 287, 272, 200, 0, 0, 0, 0, 51, 273, 286,
425 274, 287, 275, 200, 0, 0, 0, 277, 278, 0,
426 281, 0, 91, 0, 278, 281, 0, 0, 278, 279,
427 91, 0, 79, 0, 1, 0, 0, 0, 50, 282,
428 286, 283, 280, 0, 0, 0, 51, 284, 286, 285,
429 280, 0, 61, 187, 78, 295, 0, 295, 0, 61,
430 187, 78, 296, 293, 0, 296, 293, 0, 0, 79,
431 288, 0, 0, 289, 0, 290, 0, 195, 0, 289,
432 290, 0, 290, 195, 0, 127, 124, 291, 79, 0,
433 127, 79, 0, 131, 79, 0, 292, 0, 291, 83,
434 292, 0, 168, 144, 0, 169, 144, 0, 188, 144,
435 0, 0, 83, 10, 0, 0, 83, 294, 236, 0,
436 297, 0, 299, 0, 296, 299, 0, 3, 0, 4,
437 0, 74, 0, 298, 0, 12, 0, 13, 0, 14,
438 0, 15, 0, 16, 0, 17, 0, 18, 0, 19,
439 0, 20, 0, 21, 0, 22, 0, 23, 0, 24,
440 0, 25, 0, 26, 0, 27, 0, 11, 0, 28,
441 0, 29, 0, 6, 0, 7, 0, 297, 40, 61,
442 187, 78, 99, 0, 297, 40, 99, 0, 40, 61,
443 187, 78, 99, 0, 40, 99, 0, 297, 0, 301,
444 0, 303, 0, 301, 303, 0, 103, 0, 297, 40,
445 302, 0, 40, 302, 0, 101, 0, 69, 0, 0,
446 0, 62, 306, 304, 307, 300, 85, 0, 297, 0,
447 309, 0, 310, 0, 309, 310, 0, 297, 40, 0,
448 40, 0, 66, 61, 308, 78, 0, 73, 61, 99,
449 78, 0, 68, 61, 187, 78, 0
450 };
451
452 #endif
453
454 #if YYDEBUG != 0
455 static const short yyrline[] = { 0,
456 257, 262, 276, 278, 278, 279, 281, 283, 284, 285,
457 293, 297, 308, 313, 318, 320, 322, 323, 324, 329,
458 336, 338, 343, 348, 354, 356, 361, 366, 372, 374,
459 379, 386, 388, 389, 390, 393, 395, 397, 399, 401,
460 403, 405, 409, 413, 416, 419, 422, 426, 428, 431,
461 434, 438, 466, 472, 475, 478, 481, 483, 485, 489,
462 493, 497, 499, 502, 506, 533, 535, 537, 539, 541,
463 543, 545, 547, 549, 551, 553, 555, 557, 559, 563,
464 565, 569, 571, 574, 578, 580, 587, 590, 598, 609,
465 769, 770, 772, 778, 780, 803, 812, 814, 816, 828,
466 842, 844, 846, 848, 850, 852, 854, 859, 861, 868,
467 870, 874, 876, 877, 887, 892, 894, 895, 896, 903,
468 909, 914, 917, 925, 930, 932, 933, 934, 941, 952,
469 956, 962, 967, 972, 977, 979, 981, 990, 993, 997,
470 999, 1001, 1006, 1010, 1013, 1017, 1020, 1022, 1034, 1037,
471 1039, 1041, 1045, 1049, 1051, 1054, 1067, 1070, 1074, 1076,
472 1084, 1085, 1086, 1090, 1092, 1097, 1099, 1101, 1107, 1108,
473 1109, 1112, 1114, 1117, 1119, 1122, 1125, 1131, 1138, 1140,
474 1147, 1154, 1157, 1164, 1167, 1171, 1174, 1178, 1183, 1186,
475 1190, 1193, 1195, 1197, 1199, 1206, 1208, 1209, 1210, 1215,
476 1217, 1222, 1230, 1235, 1239, 1242, 1244, 1249, 1251, 1252,
477 1255, 1255, 1258, 1261, 1263, 1265, 1268, 1270, 1273, 1281,
478 1295, 1303, 1307, 1321, 1329, 1336, 1338, 1343, 1346, 1351,
479 1353, 1355, 1362, 1364, 1365, 1373, 1379, 1381, 1383, 1390,
480 1392, 1398, 1404, 1406, 1408, 1410, 1417, 1419, 1422, 1425,
481 1429, 1432, 1436, 1439, 1443, 1448, 1450, 1454, 1456, 1458,
482 1460, 1464, 1466, 1469, 1472, 1475, 1478, 1482, 1484, 1487,
483 1489, 1494, 1497, 1502, 1504, 1506, 1510, 1534, 1541, 1555,
484 1561, 1566, 1568, 1573, 1575, 1579, 1583, 1587, 1597, 1599,
485 1604, 1609, 1612, 1616, 1619, 1623, 1626, 1629, 1632, 1636,
486 1639, 1643, 1647, 1649, 1651, 1653, 1655, 1657, 1659, 1661,
487 1665, 1673, 1681, 1683, 1685, 1689, 1691, 1694, 1697, 1710,
488 1712, 1717, 1719, 1722, 1736, 1739, 1742, 1744, 1746, 1754,
489 1762, 1772, 1790, 1795, 1800, 1803, 1817, 1826, 1830, 1834,
490 1838, 1844, 1848, 1853, 1856, 1861, 1864, 1865, 1882, 1887,
491 1890, 1902, 1904, 1914, 1924, 1925, 1933, 1936, 1948, 1952,
492 1969, 1979, 1988, 1993, 1998, 2003, 2007, 2011, 2022, 2029,
493 2036, 2043, 2054, 2060, 2063, 2068, 2091, 2125, 2156, 2187,
494 2202, 2216, 2220, 2224, 2227, 2232, 2234, 2237, 2239, 2243,
495 2248, 2251, 2257, 2262, 2267, 2269, 2278, 2279, 2285, 2287,
496 2297, 2299, 2303, 2306, 2312, 2322, 2331, 2340, 2350, 2364,
497 2369, 2374, 2376, 2385, 2388, 2393, 2396, 2400, 2409, 2411,
498 2412, 2413, 2414, 2415, 2429, 2432, 2436, 2442, 2448, 2455,
499 2460, 2466, 2473, 2479, 2485, 2490, 2496, 2503, 2509, 2515,
500 2521, 2529, 2535, 2541, 2549, 2556, 2562, 2571, 2578, 2586,
501 2591, 2594, 2604, 2606, 2609, 2611, 2612, 2615, 2620, 2621,
502 2638, 2645, 2651, 2655, 2658, 2659, 2662, 2670, 2676, 2685,
503 2695, 2702, 2706, 2711, 2720, 2727, 2731, 2741, 2743, 2744,
504 2746, 2748, 2749, 2750, 2751, 2753, 2755, 2758, 2766, 2773,
505 2773, 2780, 2786, 2788, 2794, 2799, 2804, 2813, 2815, 2821,
506 2823, 2826, 2828, 2829, 2830, 2833, 2839, 2841, 2845, 2848,
507 2855, 2861, 2866, 2873, 2878, 2883, 2888, 2895, 2899, 2902,
508 2908, 2910, 2911, 2912, 2915, 2917, 2918, 2919, 2920, 2921,
509 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931,
510 2932, 2933, 2934, 2935, 2935, 2938, 2944, 2949, 2954, 2960,
511 2962, 2965, 2967, 2974, 2986, 2991, 2997, 2999, 3005, 3009,
512 3010, 3016, 3018, 3021, 3023, 3029, 3034, 3040, 3047, 3056
513 };
514 #endif
515
516
517 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
518
519 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
520 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
521 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
522 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
523 "EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG","END_OF_LINE","ASSIGN","'='",
524 "'?'","':'","OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT",
525 "RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY",
526 "POINTSAT","'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS",
527 "ENCODE","CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME",
528 "CLASS","ALIAS","OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'",
529 "program","extdefs","@1","@2","extdef","datadef","fndef","@3","@4","@5","@6",
530 "@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist","unary_expr",
531 "sizeof","alignof","cast_expr","@9","expr_no_commas","@10","@11","@12","@13",
532 "@14","primary","string","objc_string","old_style_parm_decls","lineno_datadecl",
533 "datadecls","datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
534 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
535 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
536 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
537 "initdcl","@15","notype_initdcl","@16","maybe_attribute","attributes","attribute",
538 "attribute_list","attrib","any_word","init","@17","initlist_maybe_comma","initlist1",
539 "initelt","@18","initval","@19","designator_list","designator","nested_function",
540 "@20","@21","notype_nested_function","@22","@23","declarator","after_type_declarator",
541 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
542 "structsp","@24","@25","@26","@27","maybecomma","maybecomma_warn","component_decl_list",
543 "component_decl_list2","component_decl","components","component_declarator",
544 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
545 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
546 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt_nostart",
547 "compstmt_primary_start","compstmt","simple_if","if_prefix","do_stmt_start",
548 "@28","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
549 "stmt_or_label","stmt","@29","@30","@31","@32","@33","@34","@35","all_iter_stmt",
550 "all_iter_stmt_simple","@36","label","maybe_type_qual","xexpr","asm_operands",
551 "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@37","parmlist_1",
552 "@38","parmlist_2","parms","parm","parmlist_or_identifiers","@39","parmlist_or_identifiers_1",
553 "identifiers","identifiers_or_typenames","extension","objcdef","identifier_list",
554 "classdecl","aliasdecl","classdef","@40","@41","@42","@43","@44","@45","@46",
555 "@47","@48","protocoldef","@49","protocolrefs","non_empty_protocolrefs","ivar_decl_list",
556 "visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator","methoddef",
557 "@50","@51","@52","@53","@54","@55","methodprotolist","@56","methodprotolist2",
558 "@57","semi_or_error","methodproto","@58","@59","@60","@61","methoddecl","optarglist",
559 "myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@62","unaryselector",
560 "keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist",
561 "keywordexpr","keywordarg","receiver","objcmessageexpr","@63","@64","selectorarg",
562 "keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr","objcencodeexpr", NULL
563 };
564 #endif
565
566 static const short yyr1[] = { 0,
567 86, 86, 88, 87, 89, 87, 90, 90, 90, 90,
568 90, 91, 91, 91, 91, 91, 91, 91, 91, 93,
569 94, 92, 92, 95, 96, 92, 92, 97, 98, 92,
570 92, 99, 99, 99, 99, 100, 100, 100, 100, 100,
571 100, 100, 101, 102, 102, 103, 103, 104, 104, 104,
572 104, 104, 104, 104, 104, 104, 104, 104, 104, 105,
573 106, 107, 107, 108, 107, 109, 109, 109, 109, 109,
574 109, 109, 109, 109, 109, 109, 109, 109, 110, 109,
575 111, 109, 112, 113, 109, 114, 109, 109, 109, 115,
576 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
577 115, 115, 115, 115, 115, 115, 115, 116, 116, 117,
578 117, 118, 118, 118, 119, 120, 120, 120, 120, 121,
579 121, 121, 121, 122, 123, 123, 123, 123, 124, 125,
580 126, 126, 126, 126, 126, 126, 126, 127, 127, 128,
581 128, 128, 128, 129, 129, 130, 130, 130, 131, 131,
582 131, 131, 132, 132, 132, 132, 133, 133, 134, 134,
583 135, 135, 135, 135, 135, 135, 135, 135, 136, 136,
584 136, 137, 137, 138, 138, 139, 139, 141, 140, 140,
585 143, 142, 142, 144, 144, 145, 145, 146, 147, 147,
586 148, 148, 148, 148, 148, 149, 149, 149, 149, 150,
587 151, 150, 150, 152, 152, 153, 153, 154, 154, 155,
588 154, 154, 157, 156, 156, 156, 158, 158, 159, 161,
589 162, 160, 164, 165, 163, 166, 166, 167, 167, 167,
590 167, 167, 167, 167, 167, 168, 168, 168, 168, 168,
591 168, 169, 169, 169, 169, 169, 169, 169, 170, 170,
592 171, 171, 172, 172, 174, 173, 173, 173, 175, 173,
593 173, 173, 176, 173, 177, 173, 173, 178, 178, 179,
594 179, 180, 180, 181, 181, 181, 181, 182, 182, 182,
595 182, 182, 182, 183, 183, 184, 184, 184, 185, 185,
596 185, 186, 186, 187, 187, 188, 188, 189, 189, 190,
597 190, 191, 191, 191, 191, 191, 191, 191, 191, 191,
598 191, 192, 193, 193, 193, 194, 194, 195, 196, 197,
599 197, 198, 198, 199, 200, 200, 201, 202, 202, 202,
600 202, 203, 204, 205, 205, 206, 208, 207, 209, 210,
601 211, 211, 212, 213, 213, 214, 214, 214, 215, 214,
602 214, 214, 216, 217, 214, 214, 214, 218, 219, 220,
603 214, 221, 214, 214, 214, 214, 214, 214, 214, 214,
604 214, 214, 214, 214, 222, 224, 223, 225, 225, 225,
605 225, 226, 226, 227, 227, 228, 228, 229, 229, 230,
606 231, 231, 233, 232, 234, 235, 234, 234, 236, 236,
607 236, 236, 237, 237, 238, 238, 238, 238, 238, 240,
608 239, 241, 241, 242, 242, 243, 243, 244, 245, 245,
609 245, 245, 245, 245, 246, 246, 247, 248, 250, 251,
610 249, 252, 249, 253, 254, 249, 255, 249, 256, 249,
611 249, 257, 249, 249, 258, 249, 249, 260, 259, 261,
612 261, 262, 263, 263, 264, 264, 264, 265, 265, 265,
613 266, 266, 266, 267, 267, 267, 268, 268, 268, 270,
614 271, 272, 269, 273, 274, 275, 269, 276, 277, 276,
615 278, 278, 278, 279, 278, 280, 280, 282, 283, 281,
616 284, 285, 281, 286, 286, 286, 286, 287, 287, 288,
617 288, 289, 289, 289, 289, 290, 290, 290, 291, 291,
618 292, 292, 292, 293, 293, 294, 293, 295, 296, 296,
619 297, 297, 297, 297, 298, 298, 298, 298, 298, 298,
620 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
621 298, 298, 298, 298, 298, 299, 299, 299, 299, 300,
622 300, 301, 301, 302, 303, 303, 304, 304, 306, 307,
623 305, 308, 308, 309, 309, 310, 310, 311, 312, 313
624 };
625
626 static const short yyr2[] = { 0,
627 0, 1, 0, 2, 0, 3, 1, 1, 1, 5,
628 2, 3, 4, 4, 2, 2, 2, 2, 1, 0,
629 0, 7, 4, 0, 0, 7, 4, 0, 0, 6,
630 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
631 1, 1, 1, 0, 1, 1, 3, 1, 2, 2,
632 2, 2, 2, 4, 2, 4, 2, 2, 6, 1,
633 1, 1, 4, 0, 7, 1, 3, 3, 3, 3,
634 3, 3, 3, 3, 3, 3, 3, 3, 0, 4,
635 0, 4, 0, 0, 7, 0, 5, 3, 3, 1,
636 1, 1, 3, 3, 3, 3, 4, 4, 3, 3,
637 2, 2, 1, 1, 1, 1, 1, 1, 2, 1,
638 2, 0, 1, 2, 3, 1, 1, 2, 2, 4,
639 4, 2, 2, 3, 1, 1, 2, 2, 0, 0,
640 4, 4, 3, 3, 2, 2, 2, 2, 3, 0,
641 2, 2, 2, 2, 3, 0, 2, 2, 1, 1,
642 2, 2, 1, 1, 2, 2, 2, 3, 0, 2,
643 1, 1, 1, 2, 2, 1, 4, 4, 1, 1,
644 1, 1, 3, 1, 3, 0, 4, 0, 6, 3,
645 0, 6, 3, 0, 1, 1, 2, 6, 1, 3,
646 0, 1, 4, 6, 4, 1, 1, 1, 1, 1,
647 0, 4, 1, 0, 2, 1, 3, 3, 2, 0,
648 4, 1, 0, 4, 1, 1, 1, 2, 2, 0,
649 0, 5, 0, 0, 5, 1, 1, 3, 3, 4,
650 3, 3, 3, 1, 1, 3, 4, 3, 3, 3,
651 1, 3, 3, 3, 4, 3, 3, 1, 1, 2,
652 1, 2, 1, 2, 0, 7, 5, 2, 0, 7,
653 5, 2, 0, 8, 0, 7, 2, 0, 1, 0,
654 1, 1, 2, 0, 3, 2, 4, 3, 5, 3,
655 1, 1, 2, 1, 3, 4, 6, 5, 1, 3,
656 1, 1, 3, 2, 2, 0, 1, 1, 2, 0,
657 2, 3, 3, 2, 3, 4, 3, 2, 3, 2,
658 3, 1, 1, 2, 2, 0, 1, 2, 0, 0,
659 1, 1, 2, 3, 1, 2, 1, 1, 5, 4,
660 4, 2, 2, 2, 2, 4, 0, 4, 0, 0,
661 3, 4, 3, 1, 1, 1, 1, 2, 0, 4,
662 1, 3, 0, 0, 7, 5, 2, 0, 0, 0,
663 12, 0, 6, 2, 2, 2, 3, 6, 8, 10,
664 12, 3, 4, 1, 1, 0, 6, 3, 5, 2,
665 3, 0, 1, 0, 1, 0, 1, 1, 3, 4,
666 1, 3, 0, 2, 2, 0, 4, 2, 0, 1,
667 1, 3, 1, 3, 4, 4, 4, 4, 4, 0,
668 2, 1, 2, 1, 3, 1, 3, 1, 1, 1,
669 1, 1, 1, 1, 1, 3, 3, 4, 0, 0,
670 10, 0, 6, 0, 0, 12, 0, 8, 0, 6,
671 2, 0, 8, 4, 0, 9, 5, 0, 6, 0,
672 1, 3, 3, 1, 1, 1, 1, 0, 3, 2,
673 3, 3, 1, 0, 1, 3, 1, 3, 2, 0,
674 0, 0, 7, 0, 0, 0, 7, 0, 0, 2,
675 1, 1, 2, 0, 3, 1, 1, 0, 0, 5,
676 0, 0, 5, 4, 1, 5, 2, 0, 2, 0,
677 1, 1, 1, 2, 2, 4, 2, 2, 1, 3,
678 2, 2, 2, 0, 2, 0, 3, 1, 1, 2,
679 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
680 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
681 1, 1, 1, 1, 1, 6, 3, 5, 2, 1,
682 1, 1, 2, 1, 3, 2, 1, 1, 0, 0,
683 6, 1, 1, 1, 2, 2, 1, 4, 4, 4
684 };
685
686 static const short yydefact[] = { 3,
687 5, 0, 0, 0, 163, 154, 161, 153, 253, 249,
688 251, 0, 0, 0, 418, 0, 470, 474, 0, 0,
689 424, 450, 0, 450, 0, 0, 19, 4, 8, 7,
690 0, 129, 129, 149, 140, 150, 186, 0, 0, 0,
691 162, 0, 9, 420, 421, 419, 422, 166, 423, 6,
692 17, 18, 254, 250, 252, 0, 0, 0, 32, 33,
693 35, 34, 425, 0, 0, 0, 450, 441, 164, 451,
694 450, 165, 0, 0, 248, 300, 0, 0, 174, 130,
695 0, 16, 0, 15, 0, 151, 140, 152, 156, 155,
696 138, 187, 274, 258, 274, 262, 265, 267, 11, 90,
697 91, 108, 60, 61, 0, 0, 0, 0, 36, 38,
698 37, 0, 39, 40, 0, 559, 0, 0, 0, 110,
699 41, 42, 0, 0, 43, 62, 0, 0, 66, 46,
700 48, 92, 107, 0, 0, 103, 104, 105, 106, 298,
701 0, 296, 159, 0, 296, 191, 452, 0, 521, 522,
702 544, 545, 541, 525, 526, 527, 528, 529, 530, 531,
703 532, 533, 534, 535, 536, 537, 538, 539, 540, 542,
704 543, 0, 0, 523, 471, 495, 514, 518, 524, 519,
705 475, 0, 0, 432, 0, 0, 439, 448, 427, 0,
706 0, 0, 12, 0, 0, 31, 0, 410, 0, 0,
707 184, 234, 300, 0, 235, 0, 172, 130, 0, 226,
708 227, 0, 0, 139, 142, 169, 170, 141, 143, 171,
709 0, 0, 0, 255, 0, 259, 0, 263, 57, 58,
710 0, 52, 49, 0, 332, 0, 0, 0, 0, 0,
711 0, 51, 0, 0, 0, 53, 0, 55, 0, 0,
712 83, 81, 79, 0, 0, 0, 0, 0, 0, 0,
713 0, 0, 0, 0, 0, 101, 102, 0, 0, 44,
714 0, 109, 111, 0, 328, 320, 0, 50, 167, 300,
715 393, 0, 130, 294, 297, 157, 168, 299, 159, 295,
716 197, 198, 199, 196, 0, 189, 192, 426, 0, 549,
717 0, 498, 516, 497, 0, 520, 0, 498, 450, 0,
718 429, 479, 444, 0, 458, 479, 428, 301, 244, 243,
719 175, 176, 247, 0, 242, 0, 246, 0, 0, 29,
720 0, 339, 117, 340, 183, 185, 0, 0, 14, 0,
721 0, 23, 0, 184, 410, 0, 13, 27, 0, 0,
722 184, 282, 276, 129, 273, 129, 0, 274, 184, 274,
723 291, 292, 270, 289, 0, 0, 94, 93, 0, 558,
724 557, 560, 567, 562, 0, 563, 564, 0, 0, 10,
725 47, 0, 0, 89, 88, 0, 0, 0, 0, 77,
726 78, 76, 75, 74, 72, 73, 67, 68, 69, 70,
727 71, 100, 99, 0, 45, 0, 96, 0, 0, 321,
728 322, 95, 304, 0, 308, 0, 310, 0, 0, 393,
729 0, 160, 158, 0, 191, 44, 0, 0, 0, 472,
730 515, 399, 0, 547, 476, 437, 450, 458, 0, 0,
731 442, 447, 0, 0, 0, 0, 0, 414, 400, 129,
732 129, 412, 0, 401, 403, 411, 0, 245, 318, 0,
733 119, 114, 118, 0, 181, 232, 228, 173, 233, 21,
734 180, 229, 231, 0, 25, 0, 257, 339, 275, 339,
735 283, 0, 261, 0, 0, 271, 0, 270, 0, 64,
736 63, 0, 566, 568, 0, 565, 570, 569, 54, 56,
737 0, 0, 82, 80, 97, 98, 416, 0, 0, 0,
738 339, 0, 0, 126, 340, 313, 323, 303, 302, 394,
739 309, 311, 305, 307, 0, 188, 190, 90, 0, 0,
740 494, 514, 129, 0, 503, 499, 501, 0, 0, 517,
741 401, 0, 0, 434, 479, 445, 0, 433, 488, 491,
742 482, 0, 129, 129, 484, 481, 458, 457, 455, 456,
743 440, 458, 463, 460, 129, 129, 0, 449, 177, 398,
744 296, 296, 395, 396, 0, 413, 0, 0, 327, 30,
745 319, 325, 115, 129, 129, 146, 0, 0, 178, 230,
746 0, 277, 278, 284, 340, 280, 340, 184, 184, 293,
747 290, 184, 0, 0, 0, 0, 550, 0, 551, 552,
748 84, 87, 324, 0, 330, 128, 127, 317, 0, 331,
749 315, 340, 314, 0, 306, 193, 0, 195, 548, 496,
750 507, 296, 508, 504, 505, 473, 0, 477, 458, 0,
751 479, 430, 0, 0, 176, 0, 0, 0, 483, 0,
752 0, 464, 464, 459, 241, 300, 393, 130, 184, 184,
753 184, 300, 130, 184, 184, 0, 402, 404, 415, 326,
754 333, 122, 0, 123, 0, 146, 144, 203, 201, 200,
755 182, 22, 0, 26, 339, 184, 0, 256, 260, 266,
756 184, 59, 216, 90, 0, 213, 0, 215, 0, 268,
757 206, 212, 0, 0, 554, 556, 0, 561, 0, 553,
758 0, 417, 329, 0, 163, 0, 353, 337, 0, 0,
759 0, 0, 0, 0, 0, 0, 382, 450, 450, 374,
760 0, 0, 124, 129, 129, 346, 351, 0, 0, 343,
761 344, 347, 375, 345, 0, 0, 184, 184, 184, 0,
762 509, 546, 0, 438, 0, 479, 489, 492, 485, 443,
763 0, 467, 461, 465, 462, 304, 0, 410, 0, 405,
764 406, 407, 304, 0, 408, 409, 397, 0, 0, 145,
765 148, 147, 0, 179, 285, 0, 279, 130, 184, 264,
766 219, 0, 210, 65, 0, 205, 0, 218, 209, 555,
767 85, 0, 0, 339, 384, 0, 0, 380, 364, 365,
768 366, 0, 0, 0, 383, 0, 184, 348, 135, 0,
769 136, 0, 0, 335, 340, 334, 357, 0, 137, 194,
770 511, 512, 513, 506, 296, 435, 446, 0, 0, 0,
771 469, 0, 0, 239, 240, 236, 238, 0, 120, 121,
772 0, 184, 0, 286, 0, 0, 207, 208, 0, 0,
773 0, 385, 48, 0, 0, 0, 378, 367, 0, 372,
774 0, 381, 0, 133, 220, 0, 134, 223, 352, 339,
775 0, 0, 510, 479, 431, 487, 486, 490, 493, 468,
776 466, 237, 202, 288, 184, 214, 211, 336, 0, 338,
777 376, 358, 362, 0, 373, 0, 131, 0, 132, 0,
778 350, 341, 339, 0, 0, 287, 354, 339, 384, 339,
779 379, 386, 0, 221, 224, 342, 356, 436, 339, 377,
780 0, 363, 0, 0, 387, 388, 368, 0, 0, 355,
781 359, 0, 386, 0, 0, 222, 225, 384, 0, 0,
782 369, 389, 0, 390, 0, 0, 360, 391, 0, 370,
783 339, 0, 0, 361, 371, 392, 0, 0, 0
784 };
785
786 static const short yydefgoto[] = { 967,
787 1, 2, 3, 28, 29, 30, 343, 588, 349, 591,
788 200, 460, 697, 123, 236, 404, 125, 126, 127, 128,
789 129, 605, 130, 389, 388, 386, 711, 387, 131, 132,
790 133, 330, 331, 332, 583, 510, 511, 31, 341, 733,
791 450, 91, 584, 677, 451, 34, 142, 286, 35, 218,
792 206, 78, 201, 207, 683, 79, 587, 335, 336, 37,
793 295, 296, 297, 681, 783, 699, 700, 701, 856, 702,
794 792, 703, 704, 874, 908, 938, 877, 910, 939, 322,
795 210, 747, 211, 38, 39, 40, 41, 358, 360, 365,
796 227, 796, 487, 222, 223, 355, 593, 594, 363, 364,
797 144, 749, 145, 191, 285, 512, 513, 619, 333, 276,
798 409, 410, 411, 580, 581, 277, 134, 582, 737, 738,
799 739, 804, 825, 464, 826, 516, 740, 741, 880, 803,
800 929, 919, 948, 961, 920, 742, 743, 918, 744, 816,
801 864, 934, 935, 936, 959, 415, 416, 452, 666, 453,
802 454, 455, 325, 326, 456, 457, 508, 135, 43, 64,
803 44, 45, 46, 438, 756, 312, 639, 884, 545, 315,
804 557, 641, 47, 316, 69, 48, 443, 562, 444, 567,
805 763, 764, 49, 65, 302, 539, 66, 308, 543, 439,
806 440, 555, 648, 888, 556, 643, 839, 644, 840, 175,
807 430, 536, 537, 538, 750, 751, 304, 432, 176, 177,
808 178, 179, 180, 608, 609, 706, 610, 372, 136, 238,
809 492, 375, 376, 377, 137, 138, 139
810 };
811
812 static const short yypact[] = { 118,
813 137, 3350, 3350, 190,-32768,-32768,-32768,-32768, 204, 204,
814 204, 104, 161, 189,-32768, 294,-32768,-32768, 294, 294,
815 -32768, 236, 294, 236, 294, 294,-32768,-32768,-32768,-32768,
816 226, 174, 2782, 382,-32768, 204,-32768, 135, 192, 208,
817 -32768, 3350,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
818 -32768,-32768, 204, 204, 204, 3019, 2851, 241,-32768,-32768,
819 -32768,-32768,-32768, 158, 3627, 3627, 346, 123,-32768,-32768,
820 236,-32768, 237, 294,-32768,-32768, 226, 249,-32768, 204,
821 870,-32768, 416,-32768, 226, 382,-32768, 204,-32768,-32768,
822 793,-32768, 238, 242, 238, 258,-32768, 266,-32768,-32768,
823 -32768,-32768,-32768,-32768, 3019, 3019, 300, 294,-32768,-32768,
824 -32768, 3019,-32768,-32768, 1277,-32768, 354, 357, 362,-32768,
825 -32768,-32768, 3019, 330, 371,-32768, 3075, 3131,-32768, 3955,
826 1125, 457, 403, 986, 3019,-32768,-32768,-32768,-32768,-32768,
827 411, 297,-32768, 413, 3751, 303,-32768, 294,-32768,-32768,
828 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
829 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
830 -32768, 188, 2179,-32768,-32768,-32768, 2741, 458,-32768,-32768,
831 -32768, 294, 294, 423, 294, 294,-32768,-32768,-32768, 421,
832 98, 52,-32768, 416, 226,-32768, 452,-32768, 2194, 498,
833 204,-32768,-32768, 416,-32768, 327,-32768, 204, 2082, 317,
834 329, 347, 2054, 793,-32768,-32768,-32768,-32768, 204,-32768,
835 454, 442, 3270,-32768, 444,-32768, 106,-32768,-32768,-32768,
836 3019,-32768,-32768, 464,-32768, 465, 466, 2907, 3657, 2179,
837 294,-32768, 455, 3019, 1277,-32768, 1277,-32768, 3019, 3019,
838 510,-32768,-32768, 3019, 3019, 3019, 3019, 3019, 3019, 3019,
839 3019, 3019, 3019, 3019, 3019,-32768,-32768, 294, 294, 3019,
840 3019,-32768,-32768, 473,-32768, 531, 486,-32768,-32768,-32768,
841 297, 2255, 204,-32768, 379, 907,-32768,-32768,-32768,-32768,
842 -32768,-32768,-32768,-32768, 41,-32768, 515,-32768, 2179,-32768,
843 493, 504, 567,-32768, 458,-32768, 353, 504, 236, 513,
844 -32768, 527, 519, 516,-32768, 527,-32768,-32768, 329,-32768,
845 -32768, 579, 329, 599,-32768, 3455,-32768, 524, 532,-32768,
846 1371, 80,-32768,-32768, 589, 204, 308, 182,-32768, 416,
847 416,-32768, 498, 204,-32768, 2316,-32768,-32768, 498, 560,
848 204,-32768,-32768,-32768, 551, 3296, 3563, 238, 204, 238,
849 -32768, 594, 552,-32768, 106, 3876,-32768,-32768, 2659,-32768,
850 -32768,-32768,-32768, 598, 558, 3657,-32768, 562, 568,-32768,
851 3955, 569, 570, 3955, 3955, 3019, 610, 3019, 3019, 1863,
852 912, 675, 1126, 1034, 535, 535, 63, 63,-32768,-32768,
853 -32768,-32768,-32768, 576, 371, 571,-32768, 294, 1191, 531,
854 -32768,-32768, 409, 185,-32768, 3485,-32768, 575, 297,-32768,
855 2377,-32768, 907, 577, 303, 3187, 583, 3692, 2140,-32768,
856 -32768, 3763, 2179,-32768,-32768, 573, 236,-32768, 601, 3427,
857 -32768,-32768, 449, 898, 602, 84, 586,-32768,-32768,-32768,
858 3829,-32768, 592, 364,-32768,-32768, 211,-32768,-32768, 83,
859 -32768,-32768,-32768, 2093,-32768, 317,-32768,-32768, 317,-32768,
860 634,-32768,-32768, 590,-32768, 600,-32768,-32768,-32768,-32768,
861 -32768, 604,-32768, 605, 3019, 294, 607, 552, 2179,-32768,
862 -32768, 3722,-32768,-32768, 598,-32768,-32768,-32768,-32768,-32768,
863 639, 3019, 1706, 1787,-32768,-32768,-32768, 435, 372, 1088,
864 609, 613, 1408,-32768,-32768,-32768,-32768, 379,-32768,-32768,
865 -32768, 379,-32768,-32768, 595,-32768,-32768, 246, 617, 294,
866 -32768, 2741, 624, 3513,-32768,-32768, 3829, 2168, 83,-32768,
867 591, 626, 83,-32768, 527,-32768, 476,-32768,-32768,-32768,
868 -32768, 226, 174, 2782, 399,-32768,-32768,-32768,-32768,-32768,
869 -32768,-32768,-32768,-32768,-32768, 3842, 627,-32768,-32768,-32768,
870 471, 93,-32768,-32768, 3817,-32768, 702, 623,-32768,-32768,
871 628,-32768,-32768, 632, 3314,-32768, 1895, 83,-32768,-32768,
872 83,-32768, 631,-32768,-32768, 631,-32768, 204, 204, 3955,
873 -32768, 204, 655, 658, 1654, 3019, 701, 659, 3722,-32768,
874 -32768, 1625,-32768, 294,-32768,-32768,-32768,-32768, 663,-32768,
875 -32768,-32768,-32768, 2521,-32768,-32768, 3019,-32768,-32768,-32768,
876 -32768, 471,-32768,-32768,-32768,-32768, 294,-32768,-32768, 680,
877 527,-32768, 3627, 3627, 206, 416, 226, 1983,-32768, 489,
878 3266, 314, 314,-32768,-32768,-32768, 93, 204, 261, 273,
879 204,-32768, 204, 273, 204, 3485,-32768,-32768,-32768,-32768,
880 -32768,-32768, 416,-32768, 226,-32768, 829,-32768,-32768, 3955,
881 -32768,-32768, 1895,-32768,-32768, 343, 343,-32768,-32768,-32768,
882 204,-32768,-32768, 708, 294,-32768, 711, 3955, 672, 670,
883 -32768,-32768, 143, 1818, 371,-32768, 3019,-32768, 701,-32768,
884 3019,-32768,-32768, 2603, 714, 694,-32768,-32768, 697, 698,
885 3019, 721, 684, 685, 2963, 227, 759, 212, 324,-32768,
886 727, 692,-32768, 695, 3543,-32768, 757, 1490, 99,-32768,
887 -32768,-32768,-32768,-32768, 2771, 270, 261, 273, 204, 456,
888 -32768,-32768, 572,-32768, 712, 527,-32768,-32768,-32768,-32768,
889 3019, 738, 699,-32768, 699, 621, 471,-32768, 2438,-32768,
890 -32768,-32768, 735, 93,-32768,-32768,-32768, 474, 487, 829,
891 -32768,-32768, 1654,-32768,-32768, 3019,-32768, 73, 184,-32768,
892 -32768, 1654,-32768,-32768, 1736,-32768, 1972,-32768,-32768,-32768,
893 1625, 3019, 719,-32768, 3019, 3019, 3894,-32768,-32768,-32768,
894 -32768, 705, 3019, 706,-32768, 725, 204,-32768,-32768, 416,
895 -32768, 226, 1572,-32768,-32768,-32768,-32768, 3019,-32768,-32768,
896 -32768,-32768,-32768,-32768, 471,-32768,-32768, 723, 77, 77,
897 3955, 3019, 314, 397, 397,-32768,-32768, 707,-32768,-32768,
898 710, 3919, 3019,-32768, 713, 1972,-32768,-32768, 716, 3019,
899 778,-32768, 375, 724, 730, 3019,-32768,-32768, 733,-32768,
900 3019,-32768, 522,-32768, 95, 539,-32768, 479,-32768,-32768,
901 2603, 731,-32768, 527,-32768,-32768,-32768,-32768,-32768, 3955,
902 -32768,-32768,-32768,-32768, 3919,-32768,-32768,-32768, 741,-32768,
903 -32768,-32768,-32768, 3937,-32768, 48,-32768, 498,-32768, 498,
904 -32768,-32768,-32768, 737, 755,-32768,-32768,-32768, 3019,-32768,
905 -32768, 812, 743,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
906 747,-32768, 767, 64, 746,-32768,-32768, 623, 623,-32768,
907 -32768, 3019, 812, 751, 812,-32768,-32768, 3019, 753, 66,
908 -32768,-32768, 760,-32768, 599, 765,-32768, 457, 284,-32768,
909 -32768, 768, 599,-32768,-32768, 457, 839, 862,-32768
910 };
911
912 static const short yypgoto[] = {-32768,
913 -32768,-32768,-32768, 105, -375,-32768,-32768,-32768,-32768,-32768,
914 -32768,-32768, -14,-32768, -56, 439, -226, 355,-32768,-32768,
915 -74,-32768, 596,-32768,-32768,-32768,-32768,-32768, 65, -310,
916 -32768, -313, 536,-32768,-32768, 358,-32768, 248, -46, 127,
917 15, 786,-32768, 202, 38, -26, -172, 606, 492, -244,
918 -602, -82, -181, -120,-32768,-32768,-32768, -262, 44, -32,
919 -32768, 460,-32768, 197,-32768, -672,-32768, 86,-32768, -631,
920 -32768,-32768, 186,-32768,-32768,-32768,-32768,-32768,-32768, -73,
921 -109, -502, 2,-32768,-32768,-32768, -78,-32768,-32768,-32768,
922 -32768,-32768, 400, -27,-32768, 533, 414, 216, 526, 407,
923 -24, -75, -159, -168, -236, 392,-32768,-32768, -239,-32768,
924 -32768,-32768, 496, -143,-32768, 326,-32768, -526,-32768,-32768,
925 -32768,-32768, -192, -449, -719, 396,-32768, 34,-32768,-32768,
926 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 35,-32768,
927 -817, -25,-32768, -22,-32768, 502,-32768, -353,-32768, 495,
928 497, 349, -306,-32768,-32768,-32768,-32768, 17,-32768, 903,
929 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
930 -32768,-32768,-32768,-32768, -9, 5, -355,-32768, 368,-32768,
931 280, 91,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -300,
932 -32768,-32768,-32768, 97, 380,-32768,-32768,-32768,-32768, -23,
933 630,-32768,-32768, 404,-32768, 107, 408,-32768, 518, 520,
934 -140,-32768, -127,-32768,-32768, 240, 341,-32768,-32768,-32768,
935 -32768,-32768,-32768, 597,-32768,-32768,-32768
936 };
937
938
939 #define YYLAST 4009
940
941
942 static const short yytable[] = { 124,
943 141, 63, 212, 92, 67, 68, 86, 334, 71, 209,
944 63, 74, 220, 446, 72, 445, 32, 32, 42, 42,
945 92, 92, 92, 94, 96, 98, 70, 344, 70, 470,
946 229, 230, 81, 195, 337, 475, 305, 233, 472, 33,
947 33, 422, 181, 405, 414, 36, 36, 92, 242, 306,
948 354, 670, 53, 54, 55, 92, 32, 184, 42, 190,
949 278, 188, 520, 356, 551, 624, 284, 225, 659, 290,
950 778, 70, 799, 321, 80, 70, 88, 886, 192, 33,
951 -113, 471, 547, 578, 861, 36, 213, 922, 477, 462,
952 237, 461, 272, 232, 338, 75, 483, 736, 374, 827,
953 75, 931, 14, 943, 318, 955, 361, 50, 59, 60,
954 851, 413, 198, 199, 263, 264, 265, -1, 424, 855,
955 80, 197, 14, 425, -176, 923, 208, 14, 80, 320,
956 953, 294, -176, 298, 219, 220, -2, 59, 60, 334,
957 344, 944, 328, 956, 662, 686, 99, 687, 301, 76,
958 334, -185, -185, 657, 282, 887, 334, 300, 77, 828,
959 911, 569, 185, -113, 56, 858, 579, 309, 310, 514,
960 313, 314, 714, -176, 61, 92, 518, -176, 422, 62,
961 797, 371, 522, 186, 354, 283, 92, 736, 283, 535,
962 59, 60, 319, 926, 59, 60, 323, 356, 930, 405,
963 932, 650, 695, 61, 147, 192, 187, 220, 62, 940,
964 59, 60, 362, 14, 406, 378, 515, 873, 93, 468,
965 382, 57, 383, 853, 897, 418, 379, 466, 75, 59,
966 60, 469, 197, 14, 80, 495, 419, 208, 80, 357,
967 148, 964, 345, 346, 640, 420, 421, 208, 299, 58,
968 92, -35, 82, 402, 403, 14, 61, 219, 16, 467,
969 61, 62, 519, 844, 845, 62, 198, 199, 51, 52,
970 616, 565, 759, 621, 427, 95, 61, 76, 813, 83,
971 85, 62, 16, 753, 566, 595, 77, 597, 576, 474,
972 14, 97, 434, 577, 491, 61, 59, 60, 635, 436,
973 62, 146, 14, 92, 221, 59, 60, 291, 292, 293,
974 75, 202, 777, 70, 318, 189, 75, 202, 515, 148,
975 622, 768, 769, 626, 283, 224, 14, 193, 627, 501,
976 482, 194, 484, 198, 199, 688, 689, 14, 319, 690,
977 755, 226, 323, 14, 220, 75, 202, 830, 280, 228,
978 362, 607, 244, 761, 736, 59, 60, 281, 282, 203,
979 231, 962, 61, -34, 525, 203, 963, 62, 204, 36,
980 16, 61, 14, 357, 204, 881, 62, 345, 346, 705,
981 208, 205, 786, 208, 208, 182, 89, 205, 90, 198,
982 199, 305, 16, 507, 203, 636, 770, 771, 772, 638,
983 746, 775, 776, 204, 306, 339, 183, 243, 542, 340,
984 294, 946, 947, 433, 239, 318, 205, 240, 75, 202,
985 414, 61, 241, 787, 86, 347, 62, 546, 790, 194,
986 266, 267, 782, 268, 269, 270, 271, 585, 14, 420,
987 421, 70, 574, 533, 682, 14, 575, 684, 549, 550,
988 459, 615, 901, 244, 553, 838, 283, 768, 769, 36,
989 280, 846, 283, -480, 604, 272, 534, 203, 709, 281,
990 282, 362, 36, 75, 655, 36, 204, 554, 565, 273,
991 705, 246, 248, 36, 831, 832, 833, 766, 279, 205,
992 287, 566, 597, 773, 88, 661, 665, 307, 329, 317,
993 14, -339, -339, -339, -339, 197, 311, 86, -176, -339,
994 -339, -339, 324, 613, 350, 629, -176, 614, 558, 559,
995 560, 351, 656, 359, 87, -339, 854, 86, 561, 518,
996 522, 657, 282, 380, 834, 782, 518, 522, 835, 198,
997 199, 367, 368, 369, -339, 558, 559, 560, 143, -86,
998 407, 533, 849, 645, 872, 642, 340, -176, 558, 559,
999 560, -176, 408, 412, 212, 850, -339, 732, 760, 194,
1000 428, -339, 660, 664, 534, 426, 431, 88, 762, 762,
1001 36, -112, 429, 915, 261, 262, 263, 264, 265, 894,
1002 437, -478, 779, 442, 924, 80, 925, 88, 220, 712,
1003 907, 478, 441, 480, 340, 197, 143, 102, 458, 731,
1004 459, 767, 789, 789, 658, 663, 774, 909, 36, 757,
1005 758, 194, 752, 75, 655, 92, 465, 318, 476, 479,
1006 92, 485, 916, 748, 486, 494, 289, 493, 734, 497,
1007 745, 558, 559, 560, 958, 498, 499, 500, 645, 502,
1008 14, 836, 966, 505, 526, 506, 544, 732, 192, 521,
1009 530, 735, 553, 570, 143, 548, 568, 36, 812, 573,
1010 278, 589, 656, 575, 590, 658, 645, 592, 611, 625,
1011 791, 657, 282, 598, 599, 554, 602, 552, -316, 208,
1012 80, 36, 620, 344, 628, 208, 208, 571, 572, 731,
1013 663, 220, 631, 637, 669, 654, 579, 275, 86, 36,
1014 672, 814, 848, 685, 143, 334, 208, 334, 80, 72,
1015 257, 258, 259, 260, 261, 262, 263, 264, 265, 788,
1016 208, 143, 70, 70, 691, 692, 143, 75, 143, 876,
1017 707, 318, 713, 708, 754, 859, 875, -32, 862, 865,
1018 793, 794, 795, -33, 802, 92, 869, 805, 806, 734,
1019 808, 745, 809, 810, 14, 815, 817, 319, 323, 762,
1020 818, 882, 823, 819, 319, 323, 837, 842, 88, 860,
1021 632, 843, 735, 868, 870, 871, 662, 885, 36, 893,
1022 143, 892, 896, 898, 900, 657, 282, 215, 216, 217,
1023 646, 647, 902, 899, 9, 10, 11, 903, 914, 658,
1024 658, 905, 652, 653, 906, 927, 663, 663, 917, 928,
1025 933, 937, 14, 878, 732, 941, 366, 942, 945, 951,
1026 954, 673, 675, 781, 216, 217, 748, 957, 968, 381,
1027 9, 10, 11, 960, 384, 385, 965, 289, 143, 390,
1028 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
1029 401, 969, 862, 208, 529, 80, 731, 463, 617, 863,
1030 196, 829, 214, -28, -28, -28, -28, 780, 658, 784,
1031 857, -28, -28, -28, 527, 949, 208, 603, 798, 481,
1032 488, 862, 601, 596, 423, 552, 197, -28, 563, -176,
1033 785, 5, 618, 7, 140, 517, 671, -176, 623, 9,
1034 10, 11, 216, 217, 912, 913, -28, 950, 9, 10,
1035 11, 523, 952, 668, 143, 13, 540, 73, 541, 651,
1036 198, 199, 765, 891, 649, 143, 889, 435, -28, 630,
1037 634, 883, 87, -28, 16, 531, 800, 532, -176, 710,
1038 0, 0, -176, -28, 0, 586, 256, 257, 258, 259,
1039 260, 261, 262, 263, 264, 265, 22, -454, -454, -454,
1040 0, 24, 496, 0, 0, 0, 564, -454, 0, 0,
1041 143, 820, 822, 503, 504, 0, 274, 0, -319, -319,
1042 -319, -319, -319, -319, -319, 0, -319, -319, -319, -319,
1043 -319, 0, -319, -319, -319, -319, -319, -319, -319, -319,
1044 -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
1045 -319, 0, 0, 0, 0, 87, 0, -319, 0, 0,
1046 -319, 0, -319, 0, 0, -319, -319, -319, 0, 0,
1047 0, -319, -319, 0, 0, 87, -319, -319, 0, 0,
1048 0, -319, 0, -319, -319, 0, 0, 289, -319, -319,
1049 0, 0, -319, 0, -319, 275, -319, -319, 0, -319,
1050 0, 0, 0, 0, 0, 0, 676, 0, 0, 0,
1051 600, 259, 260, 261, 262, 263, 264, 265, 329, 0,
1052 -125, -125, -125, -125, -125, -125, -125, 612, -125, -125,
1053 -125, -125, -125, 0, -125, -125, -125, -125, -125, -125,
1054 -125, -125, -125, -125, -125, -125, -125, -125, -125, 0,
1055 -125, -125, -125, 0, 0, 0, 0, 0, 0, -125,
1056 0, 0, -125, 0, -125, 0, 0, -125, -125, -125,
1057 0, 0, 143, -125, -125, 0, 0, 0, -125, -125,
1058 0, 0, 0, -125, 0, -125, -125, 0, 0, 0,
1059 -125, -125, 0, 0, -125, 0, -125, -125, -125, -125,
1060 0, -125, 258, 259, 260, 261, 262, 263, 264, 265,
1061 266, 267, 680, 268, 269, 270, 271, 0, 0, 0,
1062 0, 509, 0, -339, -339, -339, -339, -339, -339, -339,
1063 698, -339, -339, -339, -339, -339, 0, -339, -339, -339,
1064 -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
1065 -339, -339, 0, -339, -339, -339, 87, 0, 0, 0,
1066 0, 0, -339, 0, 0, -339, 0, -339, 0, 0,
1067 -339, -339, -339, 0, 0, 0, -339, -339, 0, 0,
1068 0, -339, -339, 0, 0, 0, -339, 0, -339, -339,
1069 0, 0, 0, -339, -339, 0, 0, -339, 0, -339,
1070 0, -339, -339, 0, -339, 0, 0, 234, 680, 100,
1071 5, 0, 7, 140, 101, 102, 0, 103, 9, 10,
1072 11, 0, 0, 0, 0, 0, 0, 0, 0, 698,
1073 0, 0, 0, 0, 13, 104, 801, 15, 0, 105,
1074 106, 107, 0, 0, 0, 0, 807, 0, 108, 0,
1075 0, 109, 0, 16, 0, 0, 110, 111, 112, 0,
1076 0, 0, 113, 114, 0, 0, 0, 115, 116, 0,
1077 0, 0, 117, 0, 118, 22, 0, 0, 0, 119,
1078 24, 0, 0, 120, 0, 0, 841, 121, 122, 0,
1079 235, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1080 0, 329, 0, 0, -116, -116, -116, -116, 698, 0,
1081 -116, 852, -116, -116, -116, 0, 0, 698, 0, 0,
1082 698, 0, 698, 0, 0, 0, 0, 0, -116, 0,
1083 0, 0, 0, 0, 0, 0, 0, 0, 329, 0,
1084 -339, -339, 0, 0, 0, -339, -339, -116, -339, 0,
1085 0, 0, -339, 0, -339, -339, -339, -339, -339, -339,
1086 -339, -339, -339, -339, -339, 0, -339, 890, -339, -116,
1087 -339, -339, -339, 0, -116, 0, 0, 0, 895, -339,
1088 0, 698, -339, 0, -116, 0, 0, -339, -339, -339,
1089 0, 904, 0, -339, -339, 0, 0, 0, -339, -339,
1090 0, 0, 0, -339, 0, -339, -339, 0, 0, 0,
1091 -339, -339, 0, 0, -339, 0, -339, -312, -339, -339,
1092 824, -339, -339, -339, 0, 0, 0, -339, -339, 0,
1093 -339, 0, 0, 0, -339, 0, -339, -339, -339, -339,
1094 -339, -339, -339, -339, -339, -339, -339, 0, -339, 0,
1095 -339, 0, -339, -339, -339, 0, 0, 0, 0, 0,
1096 0, -339, 0, 0, -339, 0, 0, 0, 0, -339,
1097 -339, -339, 0, 0, 0, -339, -339, 0, 0, 0,
1098 -339, -339, 0, 0, 0, -339, 0, -339, -339, 0,
1099 0, 0, -339, -339, 0, 0, -339, 0, -339, 0,
1100 -339, -339, 879, -339, -349, -349, 0, 0, 0, -349,
1101 -349, 0, -349, 0, 0, 0, -349, 0, -349, -349,
1102 -349, -349, -349, -349, -349, -349, -349, -349, -349, 0,
1103 -349, 0, -349, 0, -349, -349, -349, 0, 0, 0,
1104 0, 0, 0, -349, 0, 0, -349, 0, 0, 0,
1105 0, -349, -349, -349, 0, 0, 0, -349, -349, 0,
1106 0, 0, -349, -349, 0, 0, 0, -349, 0, -349,
1107 -349, 0, 0, 0, -349, -349, 0, 0, -349, 0,
1108 -349, 0, -349, -349, 693, -349, 694, 60, 0, 0,
1109 0, 101, 102, 251, 103, 252, 253, 254, 255, 256,
1110 257, 258, 259, 260, 261, 262, 263, 264, 265, 0,
1111 0, 0, 104, 0, 15, 0, 105, 106, 107, 0,
1112 0, 0, 0, 0, 0, 108, 0, 0, 109, 0,
1113 0, 0, 0, 110, 111, 112, 0, 0, 0, 113,
1114 114, 0, 0, 695, 115, 116, 0, 0, 0, 117,
1115 0, 118, 61, 0, 0, 0, 119, 62, 0, 0,
1116 120, 0, 0, -204, 121, 122, 693, 696, 694, 60,
1117 0, 0, 0, 101, 102, 0, 103, 253, 254, 255,
1118 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1119 0, 0, 0, 0, 104, 0, 15, 0, 105, 106,
1120 107, 0, 0, 0, 0, 0, 0, 108, 0, 0,
1121 109, 0, 0, 0, 0, 110, 111, 112, 0, 0,
1122 0, 113, 114, 0, 0, 695, 115, 116, 0, 0,
1123 0, 117, 0, 118, 61, 0, 0, 0, 119, 62,
1124 0, 0, 120, 0, 0, -269, 121, 122, 693, 696,
1125 100, 0, 0, 0, 0, 101, 102, 0, 103, 254,
1126 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1127 265, 0, 0, 0, 0, 0, 104, 0, 15, 0,
1128 105, 106, 107, 0, 0, -217, 0, 0, 0, 108,
1129 0, 0, 109, 0, 0, 0, 0, 110, 111, 112,
1130 0, 0, 0, 113, 114, 0, 0, -217, 115, 116,
1131 0, 0, 0, 117, 0, 118, 0, 0, 0, 0,
1132 119, 0, 0, 0, 120, 678, 0, 100, 121, 122,
1133 0, 696, 101, 102, 0, 103, 255, 256, 257, 258,
1134 259, 260, 261, 262, 263, 264, 265, 0, 0, 0,
1135 0, 0, 0, 104, 0, 15, 0, 105, 106, 107,
1136 0, 0, 0, 0, 0, 0, 108, 0, 0, 109,
1137 0, 0, 0, 0, 110, 111, 112, 0, 0, 0,
1138 113, 114, 0, 0, 0, 115, 116, 0, 0, 0,
1139 117, 0, 118, 0, 0, 0, 0, 119, 0, 0,
1140 0, 120, 693, 0, 100, 121, 122, 0, 679, 101,
1141 102, 0, 103, 4, 0, -129, 5, 6, 7, 8,
1142 0, 0, 0, 0, 9, 10, 11, 0, 0, 0,
1143 104, 0, 15, 0, 105, 106, 107, 0, 0, 0,
1144 13, 0, 14, 108, 0, 0, 109, 0, 0, 0,
1145 0, 110, 111, 112, 0, 0, 0, 113, 114, 16,
1146 0, 0, 115, 116, -129, 0, 0, 117, 0, 118,
1147 0, 0, 0, -129, 119, 0, 0, 0, 120, 0,
1148 0, 22, 121, 122, 348, 696, 24, -24, -24, -24,
1149 -24, 27, 0, 0, 0, -24, -24, -24, 0, 0,
1150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1151 197, -24, 342, -176, 0, -20, -20, -20, -20, 0,
1152 0, -176, 0, -20, -20, -20, 5, 6, 7, 8,
1153 -24, 0, 0, 0, 9, 10, 11, 0, 197, -20,
1154 0, -176, 0, 0, 198, 199, 0, 0, 0, -176,
1155 13, 0, -24, 0, 0, 0, 0, -24, -20, 0,
1156 0, 0, -176, 0, 0, 0, -176, -24, 0, 16,
1157 329, 0, 0, 5, 6, 7, 8, 0, 0, 0,
1158 -20, 9, 10, 11, 0, -20, 0, 0, 0, 0,
1159 -176, 22, 0, 0, -176, -20, 24, 13, 329, 14,
1160 0, -502, -502, -502, -502, 0, 0, 0, 0, -502,
1161 -502, -502, 5, 0, 7, 140, 16, 0, 0, 0,
1162 9, 10, 11, 0, 0, -502, 100, -502, 0, 0,
1163 0, 101, 102, 0, 103, 0, 13, 0, 22, 0,
1164 0, 0, 0, 24, -502, 0, 0, 0, 0, 0,
1165 0, 0, 104, -500, 15, 16, 105, 106, 107, 0,
1166 0, 0, 0, 0, 0, 108, -502, 0, 109, 0,
1167 0, -502, 0, 110, 111, 112, 0, 22, 0, 113,
1168 114, -502, 24, 0, 115, 116, 0, 100, 0, 117,
1169 0, 118, 101, 102, 0, 103, 119, 0, 0, 0,
1170 120, 0, 0, 0, 121, 122, 0, 0, 327, 0,
1171 0, 0, 0, 104, 0, 15, 0, 105, 106, 107,
1172 0, 0, 0, 0, 0, 0, 108, 0, 0, 109,
1173 0, 0, 0, 0, 110, 111, 112, 0, 0, 0,
1174 113, 114, 0, 0, 0, 115, 116, 0, 100, 0,
1175 117, 0, 118, 101, 102, 0, 103, 119, 0, 0,
1176 0, 120, 0, 0, 0, 121, 122, 0, 0, 417,
1177 0, 0, 0, 0, 104, 0, 15, 0, 105, 106,
1178 107, 0, 0, 0, 0, 0, 0, 108, 0, 0,
1179 109, 0, 0, 0, 0, 110, 111, 112, 0, 0,
1180 0, 113, 114, 0, 0, 0, 115, 116, 0, 100,
1181 0, 117, 0, 118, 101, 102, 0, 103, 119, 0,
1182 0, 0, 120, 0, 0, 0, 121, 122, 0, 0,
1183 473, 0, 0, 0, 0, 104, 0, 15, 0, 105,
1184 106, 107, 0, 0, 0, 0, 0, 0, 108, 0,
1185 0, 109, 0, 0, 0, 0, 110, 111, 112, 0,
1186 0, 0, 113, 114, 0, 0, 0, 115, 116, 0,
1187 100, 0, 117, 0, 118, 101, 102, 0, 103, 119,
1188 0, 0, 0, 120, 0, 0, 0, 121, 122, 0,
1189 0, 524, 0, 0, 0, 0, 104, 0, 15, 0,
1190 105, 106, 107, 0, 0, 0, 0, 0, 0, 108,
1191 0, 0, 109, 0, 0, 0, 0, 110, 111, 112,
1192 0, 0, 0, 113, 114, 0, 0, 0, 115, 116,
1193 0, 0, 0, 117, 0, 118, 0, 0, 0, 0,
1194 119, 0, 0, 0, 120, 0, 0, 0, 121, 122,
1195 0, 0, 847, 694, 715, 6, 7, 8, 101, 102,
1196 0, 103, 9, 10, 11, 716, 0, 717, 718, 719,
1197 720, 721, 722, 723, 724, 725, 726, 727, 13, 104,
1198 14, 15, 0, 105, 106, 107, 0, 0, 0, 0,
1199 0, 0, 108, 0, 0, 109, 0, 16, 0, 0,
1200 110, 111, 112, 0, 0, 0, 113, 114, 0, 0,
1201 0, 115, 116, 0, 0, 0, 117, 0, 118, 728,
1202 0, 0, 0, 119, 729, 0, 0, 120, 0, 730,
1203 0, 121, 122, 0, 579, 694, 60, 0, 0, 0,
1204 101, 102, 0, 103, 0, 0, 0, 716, 0, 717,
1205 718, 719, 720, 721, 722, 723, 724, 725, 726, 727,
1206 0, 104, 0, 15, 0, 105, 106, 107, 0, 0,
1207 0, 0, 0, 0, 108, 0, 0, 109, 0, 0,
1208 0, 0, 110, 111, 112, 0, 0, 0, 113, 114,
1209 0, 100, 0, 115, 116, 0, 101, 102, 117, 103,
1210 118, 61, 0, 0, 0, 119, 62, 0, 0, 120,
1211 0, 730, 0, 121, 122, 0, 579, 104, 0, 15,
1212 0, 105, 106, 107, 0, 0, 0, 0, 0, 0,
1213 108, 0, 0, 109, 0, 0, 0, 0, 110, 111,
1214 112, 0, 0, 0, 113, 114, 0, 0, 0, 115,
1215 116, 0, 0, 0, 117, 0, 118, 0, 0, 0,
1216 0, 119, 0, 0, 0, 120, 0, 0, 0, 121,
1217 122, 0, 490, 149, 150, 0, 151, 152, 0, 0,
1218 0, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1219 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1220 0, 0, 0, 100, 5, 6, 7, 8, 101, 102,
1221 172, 103, 9, 10, 11, 5, 6, 7, 8, 0,
1222 0, 0, 0, 9, 10, 11, 0, 0, 13, 104,
1223 14, 15, 0, 105, 106, 107, 0, 0, 0, 13,
1224 0, 14, 108, 0, 174, 109, 0, 16, 0, 0,
1225 110, 111, 112, 303, 0, 0, 113, 114, 16, 0,
1226 0, 115, 116, 0, 0, 0, 117, 0, 118, 22,
1227 0, 0, 0, 119, 24, 0, 0, 120, 0, 0,
1228 22, 121, 122, 100, 5, 24, 7, 140, 101, 102,
1229 84, 103, 9, 10, 11, 0, 0, 0, 0, 0,
1230 0, 0, 0, 0, 0, 0, 0, 0, 13, 104,
1231 0, 15, 0, 105, 106, 107, 0, 0, 0, 0,
1232 0, 0, 108, 0, 0, 109, 0, 16, 0, 0,
1233 110, 111, 112, 0, 0, 0, 113, 114, 0, 100,
1234 0, 115, 116, 0, 101, 102, 117, 103, 118, 22,
1235 0, 0, 0, 119, 24, 0, 0, 120, 0, 0,
1236 0, 121, 122, 0, 0, 104, 0, 15, 0, 105,
1237 106, 107, 0, 0, 0, 0, 0, 0, 108, 0,
1238 0, 109, 0, 0, 0, 0, 110, 111, 112, 0,
1239 0, 0, 113, 114, 0, 100, 0, 115, 116, 0,
1240 101, 102, 117, 103, 118, 370, 0, 0, 0, 119,
1241 0, 0, 0, 120, 0, 0, 0, 121, 122, 0,
1242 0, 104, 0, 15, 0, 105, 106, 107, 0, 0,
1243 0, 0, 0, 0, 108, 0, 0, 109, 0, 0,
1244 0, 0, 110, 111, 112, 0, 0, 0, 113, 114,
1245 0, 100, 0, 115, 116, 0, 101, 102, 117, 103,
1246 118, 0, 0, 0, 0, 119, 0, 0, 0, 120,
1247 0, 811, 0, 121, 122, 0, 0, 104, 0, 15,
1248 0, 105, 106, 107, 0, 0, 0, 0, 0, 0,
1249 108, 0, 0, 109, 0, 0, 0, 0, 110, 111,
1250 112, 0, 0, 0, 113, 114, 0, 100, 0, 115,
1251 116, 0, 101, 102, 117, 103, 118, 0, 0, 0,
1252 0, 119, 0, 0, 0, 120, 0, 0, 0, 121,
1253 122, 0, 0, 104, 0, 15, 0, 105, 106, 107,
1254 0, 0, 0, 0, 0, 0, 108, 0, 0, 109,
1255 0, 0, 0, 0, 110, 111, 112, 0, 0, 0,
1256 113, 114, 0, 100, 0, 245, 116, 0, 101, 102,
1257 117, 103, 118, 0, 0, 0, 0, 119, 0, 0,
1258 0, 120, 0, 0, 0, 121, 122, 0, 0, 104,
1259 0, 15, 0, 105, 106, 107, 0, 0, 0, 0,
1260 0, 0, 108, 0, 0, 109, 0, 0, 0, 0,
1261 110, 111, 112, 0, 0, 0, 113, 114, 0, 528,
1262 0, 247, 116, 0, 101, 102, 117, 103, 118, 0,
1263 0, 0, 0, 119, 0, 0, 0, 120, 0, 0,
1264 0, 121, 122, 0, 0, 104, 0, 15, 0, 105,
1265 106, 107, 0, 0, 0, 0, 0, 0, 108, 0,
1266 0, 109, 0, 0, 0, 0, 110, 111, 112, 0,
1267 0, 0, 113, 114, 0, 0, 0, 115, 116, 0,
1268 0, 0, 117, 0, 118, 0, 0, 0, 0, 119,
1269 0, 0, 0, 120, 0, 0, 563, 121, 122, 5,
1270 352, 7, 140, 5, 0, 7, 140, 9, 10, 11,
1271 0, 9, 10, 11, 0, 0, 0, 0, 0, 0,
1272 0, 0, 0, 13, 0, 0, 0, 13, 0, 5,
1273 15, 7, 288, 0, 0, 0, 0, 9, 10, 11,
1274 0, 0, 16, 0, 0, 0, 16, 5, 89, 7,
1275 90, 0, 0, 13, 0, 9, 10, 11, 0, 0,
1276 0, 0, 0, 0, 22, -453, -453, -453, 22, 24,
1277 0, 13, 16, 24, 564, -453, 0, 0, 353, -272,
1278 4, 0, -129, 5, 6, 7, 8, 0, 0, 0,
1279 16, 9, 10, 11, 22, 0, 0, 0, 0, 24,
1280 0, 0, 0, 0, -281, -281, 12, 13, 0, 14,
1281 15, 0, 22, 0, 0, 0, 0, 24, 0, 0,
1282 0, 0, 674, 0, 0, 0, 16, 0, 0, 17,
1283 18, -129, 0, 0, 0, 0, 0, 0, 0, 0,
1284 -129, 0, 19, 20, 21, 0, 0, 0, 22, 0,
1285 0, 0, 23, 24, 25, 26, 0, 4, 27, -129,
1286 5, 6, 7, 8, 0, 0, 0, 0, 9, 10,
1287 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1288 0, 0, 0, 0, 13, 447, 14, 448, 5, 6,
1289 7, 8, 0, 0, 449, 0, 9, 10, 11, 0,
1290 0, 0, 0, 16, 0, 0, 549, 550, -129, 0,
1291 0, 0, 13, 0, 14, 447, 0, -129, 5, 6,
1292 7, 8, 0, 0, 449, 22, 9, 10, 11, 0,
1293 24, 16, 0, 0, 0, 27, 0, 0, 0, 0,
1294 0, 0, 13, 0, 14, 0, 5, 6, 7, 8,
1295 0, 0, 0, 22, 9, 10, 11, 0, 24, 0,
1296 0, 16, -399, 0, 0, 0, 0, 0, 0, 0,
1297 13, 0, 14, 0, 0, 0, 5, 6, 7, 8,
1298 0, 0, 0, 22, 9, 10, 11, 0, 24, 16,
1299 0, 0, -399, 352, 0, 0, 5, 0, 7, 140,
1300 13, 0, 14, 0, 9, 10, 11, 0, 0, 0,
1301 0, 22, 0, 0, 0, 0, 24, 0, 0, 16,
1302 13, 633, 0, 15, 0, 0, 0, 0, 0, 0,
1303 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
1304 0, 22, 0, 0, 0, 0, 24, 0, 0, 0,
1305 0, 821, 0, 0, 0, 0, 0, 0, 0, 149,
1306 150, 22, 151, 152, 0, 0, 24, 153, 154, 155,
1307 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1308 166, 167, 168, 169, 170, 171, 0, 0, 0, 149,
1309 150, 0, 151, 152, 0, 0, 172, 153, 154, 155,
1310 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1311 166, 167, 168, 169, 170, 171, 0, 173, 0, 0,
1312 0, 0, 0, 0, 149, 150, 373, 151, 152, 0,
1313 174, 0, 153, 154, 155, 156, 157, 158, 159, 160,
1314 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
1315 171, 0, 0, 0, 149, 150, 0, 151, 152, 0,
1316 174, 172, 153, 154, 155, 156, 157, 158, 159, 160,
1317 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
1318 171, 0, 0, 0, 5, 0, 7, 288, 0, 0,
1319 0, 606, 9, 10, 11, 174, 5, 6, 7, 8,
1320 0, 0, 449, 0, 9, 10, 11, 0, 13, 0,
1321 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1322 13, 0, 14, 0, 0, 174, 0, 16, 0, 0,
1323 0, 0, 280, 0, 0, 0, 0, 0, 0, 16,
1324 0, 281, 282, 0, 0, 0, 0, 0, 0, 22,
1325 5, 6, 7, 8, 24, 0, 667, 0, 9, 10,
1326 11, 22, 5, 6, 7, 8, 24, 0, 0, 0,
1327 9, 10, 11, 0, 13, 5, 14, 7, 288, 0,
1328 0, 0, 0, 9, 10, 11, 13, 0, 14, 0,
1329 0, 0, 0, 16, 0, 0, 0, 0, 0, 13,
1330 0, 0, 0, 0, 0, 16, 0, 0, 0, 0,
1331 0, 0, 0, 0, 0, 22, 0, 0, 16, 0,
1332 24, 0, 0, 0, 0, 0, 0, 22, 0, 0,
1333 0, 0, 24, 866, 0, 0, 0, 0, 0, 0,
1334 22, 0, 249, 250, 251, 24, 252, 253, 254, 255,
1335 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1336 249, 250, 251, 867, 252, 253, 254, 255, 256, 257,
1337 258, 259, 260, 261, 262, 263, 264, 265, 14, 0,
1338 0, 0, 0, 0, 0, 249, 250, 251, 489, 252,
1339 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
1340 263, 264, 265, 249, 250, 251, 921, 252, 253, 254,
1341 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1342 265, 249, 250, 251, 0, 252, 253, 254, 255, 256,
1343 257, 258, 259, 260, 261, 262, 263, 264, 265
1344 };
1345
1346 static const short yycheck[] = { 56,
1347 57, 16, 85, 36, 19, 20, 33, 200, 23, 83,
1348 25, 26, 91, 324, 24, 316, 2, 3, 2, 3,
1349 53, 54, 55, 38, 39, 40, 22, 209, 24, 343,
1350 105, 106, 31, 80, 203, 349, 177, 112, 345, 2,
1351 3, 286, 66, 270, 281, 2, 3, 80, 123, 177,
1352 223, 578, 9, 10, 11, 88, 42, 67, 42, 74,
1353 135, 71, 416, 223, 440, 515, 142, 95, 571, 145,
1354 673, 67, 704, 194, 31, 71, 33, 1, 77, 42,
1355 1, 344, 438, 1, 804, 42, 85, 40, 351, 10,
1356 115, 331, 9, 108, 204, 3, 359, 624, 239, 1,
1357 3, 919, 30, 40, 7, 40, 1, 3, 3, 4,
1358 783, 280, 61, 62, 52, 53, 54, 0, 78, 792,
1359 77, 27, 30, 83, 30, 78, 83, 30, 85, 78,
1360 948, 146, 38, 148, 91, 214, 0, 3, 4, 332,
1361 322, 78, 199, 78, 52, 595, 42, 597, 173, 52,
1362 343, 79, 80, 61, 62, 79, 349, 172, 61, 61,
1363 880, 78, 40, 84, 61, 797, 84, 182, 183, 409,
1364 185, 186, 622, 79, 69, 208, 413, 83, 423, 74,
1365 38, 238, 419, 61, 357, 142, 219, 714, 145, 429,
1366 3, 4, 191, 913, 3, 4, 195, 357, 918, 426,
1367 920, 557, 60, 69, 47, 204, 84, 286, 74, 929,
1368 3, 4, 227, 30, 271, 240, 409, 820, 84, 340,
1369 245, 61, 247, 40, 856, 282, 241, 337, 3, 3,
1370 4, 341, 27, 30, 191, 376, 283, 194, 195, 223,
1371 83, 961, 61, 62, 545, 61, 62, 204, 61, 61,
1372 283, 40, 79, 268, 269, 30, 69, 214, 47, 78,
1373 69, 74, 78, 766, 767, 74, 61, 62, 79, 80,
1374 510, 444, 648, 513, 299, 84, 69, 52, 52, 32,
1375 33, 74, 47, 639, 444, 478, 61, 480, 78, 346,
1376 30, 84, 307, 83, 369, 69, 3, 4, 538, 309,
1377 74, 61, 30, 336, 67, 3, 4, 5, 6, 7,
1378 3, 4, 666, 309, 7, 79, 3, 4, 511, 83,
1379 513, 61, 62, 78, 281, 84, 30, 79, 83, 386,
1380 358, 83, 360, 61, 62, 598, 599, 30, 337, 602,
1381 641, 84, 341, 30, 423, 3, 4, 78, 52, 84,
1382 365, 492, 83, 40, 881, 3, 4, 61, 62, 52,
1383 61, 78, 69, 40, 421, 52, 83, 74, 61, 326,
1384 47, 69, 30, 357, 61, 825, 74, 61, 62, 606,
1385 337, 74, 40, 340, 341, 40, 5, 74, 7, 61,
1386 62, 532, 47, 408, 52, 539, 659, 660, 661, 543,
1387 627, 664, 665, 61, 532, 79, 61, 78, 433, 83,
1388 425, 938, 939, 61, 61, 7, 74, 61, 3, 4,
1389 657, 69, 61, 686, 451, 79, 74, 437, 691, 83,
1390 56, 57, 677, 59, 60, 61, 62, 464, 30, 61,
1391 62, 437, 79, 429, 588, 30, 83, 591, 50, 51,
1392 79, 80, 78, 83, 440, 756, 413, 61, 62, 416,
1393 52, 768, 419, 65, 489, 9, 429, 52, 609, 61,
1394 62, 486, 429, 3, 4, 432, 61, 440, 651, 77,
1395 707, 127, 128, 440, 747, 748, 749, 656, 78, 74,
1396 78, 651, 685, 662, 451, 571, 572, 40, 1, 79,
1397 30, 4, 5, 6, 7, 27, 84, 534, 30, 12,
1398 13, 14, 61, 79, 61, 530, 38, 83, 70, 71,
1399 72, 80, 52, 80, 33, 28, 789, 554, 80, 766,
1400 767, 61, 62, 79, 79, 780, 773, 774, 83, 61,
1401 62, 78, 78, 78, 47, 70, 71, 72, 57, 40,
1402 78, 537, 79, 552, 817, 80, 83, 79, 70, 71,
1403 72, 83, 32, 78, 647, 79, 69, 624, 80, 83,
1404 78, 74, 571, 572, 537, 61, 10, 534, 652, 653,
1405 537, 84, 79, 884, 50, 51, 52, 53, 54, 852,
1406 78, 65, 675, 78, 908, 552, 910, 554, 677, 614,
1407 79, 354, 84, 356, 83, 27, 115, 9, 85, 624,
1408 79, 658, 686, 687, 571, 572, 663, 79, 575, 643,
1409 644, 83, 637, 3, 4, 658, 38, 7, 69, 79,
1410 663, 38, 895, 632, 83, 78, 145, 40, 624, 78,
1411 624, 70, 71, 72, 955, 78, 78, 78, 647, 40,
1412 30, 80, 963, 78, 78, 85, 84, 714, 657, 85,
1413 78, 624, 648, 78, 173, 65, 65, 624, 725, 78,
1414 745, 38, 52, 83, 85, 632, 675, 78, 40, 85,
1415 695, 61, 62, 80, 80, 648, 80, 440, 80, 646,
1416 647, 648, 80, 875, 78, 652, 653, 450, 451, 714,
1417 657, 780, 79, 78, 3, 79, 84, 80, 735, 666,
1418 79, 726, 769, 83, 223, 908, 673, 910, 675, 729,
1419 46, 47, 48, 49, 50, 51, 52, 53, 54, 686,
1420 687, 240, 728, 729, 80, 78, 245, 3, 247, 822,
1421 40, 7, 80, 85, 65, 802, 820, 40, 805, 806,
1422 40, 80, 83, 40, 61, 788, 813, 61, 61, 745,
1423 40, 745, 79, 79, 30, 7, 40, 766, 767, 843,
1424 79, 828, 16, 79, 773, 774, 65, 40, 735, 61,
1425 533, 83, 745, 79, 79, 61, 52, 65, 745, 80,
1426 299, 85, 80, 78, 17, 61, 62, 5, 6, 7,
1427 553, 554, 79, 860, 12, 13, 14, 78, 78, 766,
1428 767, 79, 565, 566, 871, 79, 773, 774, 78, 65,
1429 9, 79, 30, 822, 881, 79, 231, 61, 83, 79,
1430 78, 584, 585, 5, 6, 7, 835, 78, 0, 244,
1431 12, 13, 14, 79, 249, 250, 79, 356, 357, 254,
1432 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1433 265, 0, 919, 820, 426, 822, 881, 332, 511, 805,
1434 1, 745, 87, 4, 5, 6, 7, 676, 835, 683,
1435 795, 12, 13, 14, 425, 942, 843, 488, 703, 357,
1436 365, 948, 486, 480, 289, 648, 27, 28, 1, 30,
1437 685, 4, 511, 6, 7, 410, 581, 38, 513, 12,
1438 13, 14, 6, 7, 881, 881, 47, 943, 12, 13,
1439 14, 420, 945, 575, 433, 28, 432, 25, 432, 562,
1440 61, 62, 653, 843, 555, 444, 840, 308, 69, 532,
1441 537, 835, 451, 74, 47, 428, 707, 428, 79, 609,
1442 -1, -1, 83, 84, -1, 464, 45, 46, 47, 48,
1443 49, 50, 51, 52, 53, 54, 69, 70, 71, 72,
1444 -1, 74, 376, -1, -1, -1, 79, 80, -1, -1,
1445 489, 734, 735, 388, 389, -1, 1, -1, 3, 4,
1446 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
1447 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1448 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1449 35, -1, -1, -1, -1, 534, -1, 42, -1, -1,
1450 45, -1, 47, -1, -1, 50, 51, 52, -1, -1,
1451 -1, 56, 57, -1, -1, 554, 61, 62, -1, -1,
1452 -1, 66, -1, 68, 69, -1, -1, 566, 73, 74,
1453 -1, -1, 77, -1, 79, 80, 81, 82, -1, 84,
1454 -1, -1, -1, -1, -1, -1, 585, -1, -1, -1,
1455 485, 48, 49, 50, 51, 52, 53, 54, 1, -1,
1456 3, 4, 5, 6, 7, 8, 9, 502, 11, 12,
1457 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
1458 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1459 33, 34, 35, -1, -1, -1, -1, -1, -1, 42,
1460 -1, -1, 45, -1, 47, -1, -1, 50, 51, 52,
1461 -1, -1, 651, 56, 57, -1, -1, -1, 61, 62,
1462 -1, -1, -1, 66, -1, 68, 69, -1, -1, -1,
1463 73, 74, -1, -1, 77, -1, 79, 80, 81, 82,
1464 -1, 84, 47, 48, 49, 50, 51, 52, 53, 54,
1465 56, 57, 587, 59, 60, 61, 62, -1, -1, -1,
1466 -1, 1, -1, 3, 4, 5, 6, 7, 8, 9,
1467 605, 11, 12, 13, 14, 15, -1, 17, 18, 19,
1468 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1469 30, 31, -1, 33, 34, 35, 735, -1, -1, -1,
1470 -1, -1, 42, -1, -1, 45, -1, 47, -1, -1,
1471 50, 51, 52, -1, -1, -1, 56, 57, -1, -1,
1472 -1, 61, 62, -1, -1, -1, 66, -1, 68, 69,
1473 -1, -1, -1, 73, 74, -1, -1, 77, -1, 79,
1474 -1, 81, 82, -1, 84, -1, -1, 1, 683, 3,
1475 4, -1, 6, 7, 8, 9, -1, 11, 12, 13,
1476 14, -1, -1, -1, -1, -1, -1, -1, -1, 704,
1477 -1, -1, -1, -1, 28, 29, 711, 31, -1, 33,
1478 34, 35, -1, -1, -1, -1, 721, -1, 42, -1,
1479 -1, 45, -1, 47, -1, -1, 50, 51, 52, -1,
1480 -1, -1, 56, 57, -1, -1, -1, 61, 62, -1,
1481 -1, -1, 66, -1, 68, 69, -1, -1, -1, 73,
1482 74, -1, -1, 77, -1, -1, 761, 81, 82, -1,
1483 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1484 -1, 1, -1, -1, 4, 5, 6, 7, 783, -1,
1485 10, 786, 12, 13, 14, -1, -1, 792, -1, -1,
1486 795, -1, 797, -1, -1, -1, -1, -1, 28, -1,
1487 -1, -1, -1, -1, -1, -1, -1, -1, 1, -1,
1488 3, 4, -1, -1, -1, 8, 9, 47, 11, -1,
1489 -1, -1, 15, -1, 17, 18, 19, 20, 21, 22,
1490 23, 24, 25, 26, 27, -1, 29, 842, 31, 69,
1491 33, 34, 35, -1, 74, -1, -1, -1, 853, 42,
1492 -1, 856, 45, -1, 84, -1, -1, 50, 51, 52,
1493 -1, 866, -1, 56, 57, -1, -1, -1, 61, 62,
1494 -1, -1, -1, 66, -1, 68, 69, -1, -1, -1,
1495 73, 74, -1, -1, 77, -1, 79, 80, 81, 82,
1496 1, 84, 3, 4, -1, -1, -1, 8, 9, -1,
1497 11, -1, -1, -1, 15, -1, 17, 18, 19, 20,
1498 21, 22, 23, 24, 25, 26, 27, -1, 29, -1,
1499 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1500 -1, 42, -1, -1, 45, -1, -1, -1, -1, 50,
1501 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1502 61, 62, -1, -1, -1, 66, -1, 68, 69, -1,
1503 -1, -1, 73, 74, -1, -1, 77, -1, 79, -1,
1504 81, 82, 1, 84, 3, 4, -1, -1, -1, 8,
1505 9, -1, 11, -1, -1, -1, 15, -1, 17, 18,
1506 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
1507 29, -1, 31, -1, 33, 34, 35, -1, -1, -1,
1508 -1, -1, -1, 42, -1, -1, 45, -1, -1, -1,
1509 -1, 50, 51, 52, -1, -1, -1, 56, 57, -1,
1510 -1, -1, 61, 62, -1, -1, -1, 66, -1, 68,
1511 69, -1, -1, -1, 73, 74, -1, -1, 77, -1,
1512 79, -1, 81, 82, 1, 84, 3, 4, -1, -1,
1513 -1, 8, 9, 39, 11, 41, 42, 43, 44, 45,
1514 46, 47, 48, 49, 50, 51, 52, 53, 54, -1,
1515 -1, -1, 29, -1, 31, -1, 33, 34, 35, -1,
1516 -1, -1, -1, -1, -1, 42, -1, -1, 45, -1,
1517 -1, -1, -1, 50, 51, 52, -1, -1, -1, 56,
1518 57, -1, -1, 60, 61, 62, -1, -1, -1, 66,
1519 -1, 68, 69, -1, -1, -1, 73, 74, -1, -1,
1520 77, -1, -1, 80, 81, 82, 1, 84, 3, 4,
1521 -1, -1, -1, 8, 9, -1, 11, 42, 43, 44,
1522 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1523 -1, -1, -1, -1, 29, -1, 31, -1, 33, 34,
1524 35, -1, -1, -1, -1, -1, -1, 42, -1, -1,
1525 45, -1, -1, -1, -1, 50, 51, 52, -1, -1,
1526 -1, 56, 57, -1, -1, 60, 61, 62, -1, -1,
1527 -1, 66, -1, 68, 69, -1, -1, -1, 73, 74,
1528 -1, -1, 77, -1, -1, 80, 81, 82, 1, 84,
1529 3, -1, -1, -1, -1, 8, 9, -1, 11, 43,
1530 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1531 54, -1, -1, -1, -1, -1, 29, -1, 31, -1,
1532 33, 34, 35, -1, -1, 38, -1, -1, -1, 42,
1533 -1, -1, 45, -1, -1, -1, -1, 50, 51, 52,
1534 -1, -1, -1, 56, 57, -1, -1, 60, 61, 62,
1535 -1, -1, -1, 66, -1, 68, -1, -1, -1, -1,
1536 73, -1, -1, -1, 77, 1, -1, 3, 81, 82,
1537 -1, 84, 8, 9, -1, 11, 44, 45, 46, 47,
1538 48, 49, 50, 51, 52, 53, 54, -1, -1, -1,
1539 -1, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1540 -1, -1, -1, -1, -1, -1, 42, -1, -1, 45,
1541 -1, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1542 56, 57, -1, -1, -1, 61, 62, -1, -1, -1,
1543 66, -1, 68, -1, -1, -1, -1, 73, -1, -1,
1544 -1, 77, 1, -1, 3, 81, 82, -1, 84, 8,
1545 9, -1, 11, 1, -1, 3, 4, 5, 6, 7,
1546 -1, -1, -1, -1, 12, 13, 14, -1, -1, -1,
1547 29, -1, 31, -1, 33, 34, 35, -1, -1, -1,
1548 28, -1, 30, 42, -1, -1, 45, -1, -1, -1,
1549 -1, 50, 51, 52, -1, -1, -1, 56, 57, 47,
1550 -1, -1, 61, 62, 52, -1, -1, 66, -1, 68,
1551 -1, -1, -1, 61, 73, -1, -1, -1, 77, -1,
1552 -1, 69, 81, 82, 1, 84, 74, 4, 5, 6,
1553 7, 79, -1, -1, -1, 12, 13, 14, -1, -1,
1554 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1555 27, 28, 1, 30, -1, 4, 5, 6, 7, -1,
1556 -1, 38, -1, 12, 13, 14, 4, 5, 6, 7,
1557 47, -1, -1, -1, 12, 13, 14, -1, 27, 28,
1558 -1, 30, -1, -1, 61, 62, -1, -1, -1, 38,
1559 28, -1, 69, -1, -1, -1, -1, 74, 47, -1,
1560 -1, -1, 79, -1, -1, -1, 83, 84, -1, 47,
1561 1, -1, -1, 4, 5, 6, 7, -1, -1, -1,
1562 69, 12, 13, 14, -1, 74, -1, -1, -1, -1,
1563 79, 69, -1, -1, 83, 84, 74, 28, 1, 30,
1564 -1, 4, 5, 6, 7, -1, -1, -1, -1, 12,
1565 13, 14, 4, -1, 6, 7, 47, -1, -1, -1,
1566 12, 13, 14, -1, -1, 28, 3, 30, -1, -1,
1567 -1, 8, 9, -1, 11, -1, 28, -1, 69, -1,
1568 -1, -1, -1, 74, 47, -1, -1, -1, -1, -1,
1569 -1, -1, 29, 84, 31, 47, 33, 34, 35, -1,
1570 -1, -1, -1, -1, -1, 42, 69, -1, 45, -1,
1571 -1, 74, -1, 50, 51, 52, -1, 69, -1, 56,
1572 57, 84, 74, -1, 61, 62, -1, 3, -1, 66,
1573 -1, 68, 8, 9, -1, 11, 73, -1, -1, -1,
1574 77, -1, -1, -1, 81, 82, -1, -1, 85, -1,
1575 -1, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1576 -1, -1, -1, -1, -1, -1, 42, -1, -1, 45,
1577 -1, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1578 56, 57, -1, -1, -1, 61, 62, -1, 3, -1,
1579 66, -1, 68, 8, 9, -1, 11, 73, -1, -1,
1580 -1, 77, -1, -1, -1, 81, 82, -1, -1, 85,
1581 -1, -1, -1, -1, 29, -1, 31, -1, 33, 34,
1582 35, -1, -1, -1, -1, -1, -1, 42, -1, -1,
1583 45, -1, -1, -1, -1, 50, 51, 52, -1, -1,
1584 -1, 56, 57, -1, -1, -1, 61, 62, -1, 3,
1585 -1, 66, -1, 68, 8, 9, -1, 11, 73, -1,
1586 -1, -1, 77, -1, -1, -1, 81, 82, -1, -1,
1587 85, -1, -1, -1, -1, 29, -1, 31, -1, 33,
1588 34, 35, -1, -1, -1, -1, -1, -1, 42, -1,
1589 -1, 45, -1, -1, -1, -1, 50, 51, 52, -1,
1590 -1, -1, 56, 57, -1, -1, -1, 61, 62, -1,
1591 3, -1, 66, -1, 68, 8, 9, -1, 11, 73,
1592 -1, -1, -1, 77, -1, -1, -1, 81, 82, -1,
1593 -1, 85, -1, -1, -1, -1, 29, -1, 31, -1,
1594 33, 34, 35, -1, -1, -1, -1, -1, -1, 42,
1595 -1, -1, 45, -1, -1, -1, -1, 50, 51, 52,
1596 -1, -1, -1, 56, 57, -1, -1, -1, 61, 62,
1597 -1, -1, -1, 66, -1, 68, -1, -1, -1, -1,
1598 73, -1, -1, -1, 77, -1, -1, -1, 81, 82,
1599 -1, -1, 85, 3, 4, 5, 6, 7, 8, 9,
1600 -1, 11, 12, 13, 14, 15, -1, 17, 18, 19,
1601 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1602 30, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1603 -1, -1, 42, -1, -1, 45, -1, 47, -1, -1,
1604 50, 51, 52, -1, -1, -1, 56, 57, -1, -1,
1605 -1, 61, 62, -1, -1, -1, 66, -1, 68, 69,
1606 -1, -1, -1, 73, 74, -1, -1, 77, -1, 79,
1607 -1, 81, 82, -1, 84, 3, 4, -1, -1, -1,
1608 8, 9, -1, 11, -1, -1, -1, 15, -1, 17,
1609 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1610 -1, 29, -1, 31, -1, 33, 34, 35, -1, -1,
1611 -1, -1, -1, -1, 42, -1, -1, 45, -1, -1,
1612 -1, -1, 50, 51, 52, -1, -1, -1, 56, 57,
1613 -1, 3, -1, 61, 62, -1, 8, 9, 66, 11,
1614 68, 69, -1, -1, -1, 73, 74, -1, -1, 77,
1615 -1, 79, -1, 81, 82, -1, 84, 29, -1, 31,
1616 -1, 33, 34, 35, -1, -1, -1, -1, -1, -1,
1617 42, -1, -1, 45, -1, -1, -1, -1, 50, 51,
1618 52, -1, -1, -1, 56, 57, -1, -1, -1, 61,
1619 62, -1, -1, -1, 66, -1, 68, -1, -1, -1,
1620 -1, 73, -1, -1, -1, 77, -1, -1, -1, 81,
1621 82, -1, 84, 3, 4, -1, 6, 7, -1, -1,
1622 -1, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1623 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1624 -1, -1, -1, 3, 4, 5, 6, 7, 8, 9,
1625 40, 11, 12, 13, 14, 4, 5, 6, 7, -1,
1626 -1, -1, -1, 12, 13, 14, -1, -1, 28, 29,
1627 30, 31, -1, 33, 34, 35, -1, -1, -1, 28,
1628 -1, 30, 42, -1, 74, 45, -1, 47, -1, -1,
1629 50, 51, 52, 83, -1, -1, 56, 57, 47, -1,
1630 -1, 61, 62, -1, -1, -1, 66, -1, 68, 69,
1631 -1, -1, -1, 73, 74, -1, -1, 77, -1, -1,
1632 69, 81, 82, 3, 4, 74, 6, 7, 8, 9,
1633 79, 11, 12, 13, 14, -1, -1, -1, -1, -1,
1634 -1, -1, -1, -1, -1, -1, -1, -1, 28, 29,
1635 -1, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1636 -1, -1, 42, -1, -1, 45, -1, 47, -1, -1,
1637 50, 51, 52, -1, -1, -1, 56, 57, -1, 3,
1638 -1, 61, 62, -1, 8, 9, 66, 11, 68, 69,
1639 -1, -1, -1, 73, 74, -1, -1, 77, -1, -1,
1640 -1, 81, 82, -1, -1, 29, -1, 31, -1, 33,
1641 34, 35, -1, -1, -1, -1, -1, -1, 42, -1,
1642 -1, 45, -1, -1, -1, -1, 50, 51, 52, -1,
1643 -1, -1, 56, 57, -1, 3, -1, 61, 62, -1,
1644 8, 9, 66, 11, 68, 69, -1, -1, -1, 73,
1645 -1, -1, -1, 77, -1, -1, -1, 81, 82, -1,
1646 -1, 29, -1, 31, -1, 33, 34, 35, -1, -1,
1647 -1, -1, -1, -1, 42, -1, -1, 45, -1, -1,
1648 -1, -1, 50, 51, 52, -1, -1, -1, 56, 57,
1649 -1, 3, -1, 61, 62, -1, 8, 9, 66, 11,
1650 68, -1, -1, -1, -1, 73, -1, -1, -1, 77,
1651 -1, 79, -1, 81, 82, -1, -1, 29, -1, 31,
1652 -1, 33, 34, 35, -1, -1, -1, -1, -1, -1,
1653 42, -1, -1, 45, -1, -1, -1, -1, 50, 51,
1654 52, -1, -1, -1, 56, 57, -1, 3, -1, 61,
1655 62, -1, 8, 9, 66, 11, 68, -1, -1, -1,
1656 -1, 73, -1, -1, -1, 77, -1, -1, -1, 81,
1657 82, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1658 -1, -1, -1, -1, -1, -1, 42, -1, -1, 45,
1659 -1, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1660 56, 57, -1, 3, -1, 61, 62, -1, 8, 9,
1661 66, 11, 68, -1, -1, -1, -1, 73, -1, -1,
1662 -1, 77, -1, -1, -1, 81, 82, -1, -1, 29,
1663 -1, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1664 -1, -1, 42, -1, -1, 45, -1, -1, -1, -1,
1665 50, 51, 52, -1, -1, -1, 56, 57, -1, 3,
1666 -1, 61, 62, -1, 8, 9, 66, 11, 68, -1,
1667 -1, -1, -1, 73, -1, -1, -1, 77, -1, -1,
1668 -1, 81, 82, -1, -1, 29, -1, 31, -1, 33,
1669 34, 35, -1, -1, -1, -1, -1, -1, 42, -1,
1670 -1, 45, -1, -1, -1, -1, 50, 51, 52, -1,
1671 -1, -1, 56, 57, -1, -1, -1, 61, 62, -1,
1672 -1, -1, 66, -1, 68, -1, -1, -1, -1, 73,
1673 -1, -1, -1, 77, -1, -1, 1, 81, 82, 4,
1674 1, 6, 7, 4, -1, 6, 7, 12, 13, 14,
1675 -1, 12, 13, 14, -1, -1, -1, -1, -1, -1,
1676 -1, -1, -1, 28, -1, -1, -1, 28, -1, 4,
1677 31, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1678 -1, -1, 47, -1, -1, -1, 47, 4, 5, 6,
1679 7, -1, -1, 28, -1, 12, 13, 14, -1, -1,
1680 -1, -1, -1, -1, 69, 70, 71, 72, 69, 74,
1681 -1, 28, 47, 74, 79, 80, -1, -1, 79, 80,
1682 1, -1, 3, 4, 5, 6, 7, -1, -1, -1,
1683 47, 12, 13, 14, 69, -1, -1, -1, -1, 74,
1684 -1, -1, -1, -1, 79, 80, 27, 28, -1, 30,
1685 31, -1, 69, -1, -1, -1, -1, 74, -1, -1,
1686 -1, -1, 79, -1, -1, -1, 47, -1, -1, 50,
1687 51, 52, -1, -1, -1, -1, -1, -1, -1, -1,
1688 61, -1, 63, 64, 65, -1, -1, -1, 69, -1,
1689 -1, -1, 73, 74, 75, 76, -1, 1, 79, 3,
1690 4, 5, 6, 7, -1, -1, -1, -1, 12, 13,
1691 14, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1692 -1, -1, -1, -1, 28, 1, 30, 3, 4, 5,
1693 6, 7, -1, -1, 10, -1, 12, 13, 14, -1,
1694 -1, -1, -1, 47, -1, -1, 50, 51, 52, -1,
1695 -1, -1, 28, -1, 30, 1, -1, 61, 4, 5,
1696 6, 7, -1, -1, 10, 69, 12, 13, 14, -1,
1697 74, 47, -1, -1, -1, 79, -1, -1, -1, -1,
1698 -1, -1, 28, -1, 30, -1, 4, 5, 6, 7,
1699 -1, -1, -1, 69, 12, 13, 14, -1, 74, -1,
1700 -1, 47, 78, -1, -1, -1, -1, -1, -1, -1,
1701 28, -1, 30, -1, -1, -1, 4, 5, 6, 7,
1702 -1, -1, -1, 69, 12, 13, 14, -1, 74, 47,
1703 -1, -1, 78, 1, -1, -1, 4, -1, 6, 7,
1704 28, -1, 30, -1, 12, 13, 14, -1, -1, -1,
1705 -1, 69, -1, -1, -1, -1, 74, -1, -1, 47,
1706 28, 79, -1, 31, -1, -1, -1, -1, -1, -1,
1707 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1708 -1, 69, -1, -1, -1, -1, 74, -1, -1, -1,
1709 -1, 79, -1, -1, -1, -1, -1, -1, -1, 3,
1710 4, 69, 6, 7, -1, -1, 74, 11, 12, 13,
1711 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1712 24, 25, 26, 27, 28, 29, -1, -1, -1, 3,
1713 4, -1, 6, 7, -1, -1, 40, 11, 12, 13,
1714 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1715 24, 25, 26, 27, 28, 29, -1, 61, -1, -1,
1716 -1, -1, -1, -1, 3, 4, 40, 6, 7, -1,
1717 74, -1, 11, 12, 13, 14, 15, 16, 17, 18,
1718 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1719 29, -1, -1, -1, 3, 4, -1, 6, 7, -1,
1720 74, 40, 11, 12, 13, 14, 15, 16, 17, 18,
1721 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1722 29, -1, -1, -1, 4, -1, 6, 7, -1, -1,
1723 -1, 40, 12, 13, 14, 74, 4, 5, 6, 7,
1724 -1, -1, 10, -1, 12, 13, 14, -1, 28, -1,
1725 30, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1726 28, -1, 30, -1, -1, 74, -1, 47, -1, -1,
1727 -1, -1, 52, -1, -1, -1, -1, -1, -1, 47,
1728 -1, 61, 62, -1, -1, -1, -1, -1, -1, 69,
1729 4, 5, 6, 7, 74, -1, 10, -1, 12, 13,
1730 14, 69, 4, 5, 6, 7, 74, -1, -1, -1,
1731 12, 13, 14, -1, 28, 4, 30, 6, 7, -1,
1732 -1, -1, -1, 12, 13, 14, 28, -1, 30, -1,
1733 -1, -1, -1, 47, -1, -1, -1, -1, -1, 28,
1734 -1, -1, -1, -1, -1, 47, -1, -1, -1, -1,
1735 -1, -1, -1, -1, -1, 69, -1, -1, 47, -1,
1736 74, -1, -1, -1, -1, -1, -1, 69, -1, -1,
1737 -1, -1, 74, 10, -1, -1, -1, -1, -1, -1,
1738 69, -1, 37, 38, 39, 74, 41, 42, 43, 44,
1739 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1740 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1741 47, 48, 49, 50, 51, 52, 53, 54, 30, -1,
1742 -1, -1, -1, -1, -1, 37, 38, 39, 83, 41,
1743 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1744 52, 53, 54, 37, 38, 39, 40, 41, 42, 43,
1745 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1746 54, 37, 38, 39, -1, 41, 42, 43, 44, 45,
1747 46, 47, 48, 49, 50, 51, 52, 53, 54
1748 };
1749 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1750 #line 3 "/usr/freeware/share/bison.simple"
1751
1752 /* Skeleton output parser for bison,
1753 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1754
1755 This program is free software; you can redistribute it and/or modify
1756 it under the terms of the GNU General Public License as published by
1757 the Free Software Foundation; either version 2, or (at your option)
1758 any later version.
1759
1760 This program is distributed in the hope that it will be useful,
1761 but WITHOUT ANY WARRANTY; without even the implied warranty of
1762 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1763 GNU General Public License for more details.
1764
1765 You should have received a copy of the GNU General Public License
1766 along with this program; if not, write to the Free Software
1767 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1768
1769 /* As a special exception, when this file is copied by Bison into a
1770 Bison output file, you may use that output file without restriction.
1771 This special exception was added by the Free Software Foundation
1772 in version 1.24 of Bison. */
1773
1774 #ifndef alloca
1775 #ifdef __GNUC__
1776 #define alloca __builtin_alloca
1777 #else /* not GNU C. */
1778 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1779 #include <alloca.h>
1780 #else /* not sparc */
1781 #if defined (MSDOS) && !defined (__TURBOC__)
1782 #include <malloc.h>
1783 #else /* not MSDOS, or __TURBOC__ */
1784 #if defined(_AIX)
1785 #include <malloc.h>
1786 #pragma alloca
1787 #else /* not MSDOS, __TURBOC__, or _AIX */
1788 #ifdef __hpux
1789 #ifdef __cplusplus
1790 extern "C" {
1791 void *alloca (unsigned int);
1792 };
1793 #else /* not __cplusplus */
1794 void *alloca ();
1795 #endif /* not __cplusplus */
1796 #endif /* __hpux */
1797 #endif /* not _AIX */
1798 #endif /* not MSDOS, or __TURBOC__ */
1799 #endif /* not sparc. */
1800 #endif /* not GNU C. */
1801 #endif /* alloca not defined. */
1802
1803 /* This is the parser code that is written into each bison parser
1804 when the %semantic_parser declaration is not specified in the grammar.
1805 It was written by Richard Stallman by simplifying the hairy parser
1806 used when %semantic_parser is specified. */
1807
1808 /* Note: there must be only one dollar sign in this file.
1809 It is replaced by the list of actions, each action
1810 as one case of the switch. */
1811
1812 #define yyerrok (yyerrstatus = 0)
1813 #define yyclearin (yychar = YYEMPTY)
1814 #define YYEMPTY -2
1815 #define YYEOF 0
1816 #define YYACCEPT return(0)
1817 #define YYABORT return(1)
1818 #define YYERROR goto yyerrlab1
1819 /* Like YYERROR except do call yyerror.
1820 This remains here temporarily to ease the
1821 transition to the new meaning of YYERROR, for GCC.
1822 Once GCC version 2 has supplanted version 1, this can go. */
1823 #define YYFAIL goto yyerrlab
1824 #define YYRECOVERING() (!!yyerrstatus)
1825 #define YYBACKUP(token, value) \
1826 do \
1827 if (yychar == YYEMPTY && yylen == 1) \
1828 { yychar = (token), yylval = (value); \
1829 yychar1 = YYTRANSLATE (yychar); \
1830 YYPOPSTACK; \
1831 goto yybackup; \
1832 } \
1833 else \
1834 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1835 while (0)
1836
1837 #define YYTERROR 1
1838 #define YYERRCODE 256
1839
1840 #ifndef YYPURE
1841 #define YYLEX yylex()
1842 #endif
1843
1844 #ifdef YYPURE
1845 #ifdef YYLSP_NEEDED
1846 #ifdef YYLEX_PARAM
1847 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1848 #else
1849 #define YYLEX yylex(&yylval, &yylloc)
1850 #endif
1851 #else /* not YYLSP_NEEDED */
1852 #ifdef YYLEX_PARAM
1853 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1854 #else
1855 #define YYLEX yylex(&yylval)
1856 #endif
1857 #endif /* not YYLSP_NEEDED */
1858 #endif
1859
1860 /* If nonreentrant, generate the variables here */
1861
1862 #ifndef YYPURE
1863
1864 int yychar; /* the lookahead symbol */
1865 YYSTYPE yylval; /* the semantic value of the */
1866 /* lookahead symbol */
1867
1868 #ifdef YYLSP_NEEDED
1869 YYLTYPE yylloc; /* location data for the lookahead */
1870 /* symbol */
1871 #endif
1872
1873 int yynerrs; /* number of parse errors so far */
1874 #endif /* not YYPURE */
1875
1876 #if YYDEBUG != 0
1877 int yydebug; /* nonzero means print parse trace */
1878 /* Since this is uninitialized, it does not stop multiple parsers
1879 from coexisting. */
1880 #endif
1881
1882 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1883
1884 #ifndef YYINITDEPTH
1885 #define YYINITDEPTH 200
1886 #endif
1887
1888 /* YYMAXDEPTH is the maximum size the stacks can grow to
1889 (effective only if the built-in stack extension method is used). */
1890
1891 #if YYMAXDEPTH == 0
1892 #undef YYMAXDEPTH
1893 #endif
1894
1895 #ifndef YYMAXDEPTH
1896 #define YYMAXDEPTH 10000
1897 #endif
1898
1899 /* Prevent warning if -Wstrict-prototypes. */
1900 #ifdef __GNUC__
1901 int yyparse (void);
1902 #endif
1903 \f
1904 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1905 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1906 #else /* not GNU C or C++ */
1907 #ifndef __cplusplus
1908
1909 /* This is the most reliable way to avoid incompatibilities
1910 in available built-in functions on various systems. */
1911 static void
1912 __yy_memcpy (to, from, count)
1913 char *to;
1914 char *from;
1915 int count;
1916 {
1917 register char *f = from;
1918 register char *t = to;
1919 register int i = count;
1920
1921 while (i-- > 0)
1922 *t++ = *f++;
1923 }
1924
1925 #else /* __cplusplus */
1926
1927 /* This is the most reliable way to avoid incompatibilities
1928 in available built-in functions on various systems. */
1929 static void
1930 __yy_memcpy (char *to, char *from, int count)
1931 {
1932 register char *f = from;
1933 register char *t = to;
1934 register int i = count;
1935
1936 while (i-- > 0)
1937 *t++ = *f++;
1938 }
1939
1940 #endif
1941 #endif
1942 \f
1943 #line 196 "/usr/freeware/share/bison.simple"
1944
1945 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1946 into yyparse. The argument should have type void *.
1947 It should actually point to an object.
1948 Grammar actions can access the variable by casting it
1949 to the proper pointer type. */
1950
1951 #ifdef YYPARSE_PARAM
1952 #ifdef __cplusplus
1953 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1954 #define YYPARSE_PARAM_DECL
1955 #else /* not __cplusplus */
1956 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1957 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1958 #endif /* not __cplusplus */
1959 #else /* not YYPARSE_PARAM */
1960 #define YYPARSE_PARAM_ARG
1961 #define YYPARSE_PARAM_DECL
1962 #endif /* not YYPARSE_PARAM */
1963
1964 int
1965 yyparse(YYPARSE_PARAM_ARG)
1966 YYPARSE_PARAM_DECL
1967 {
1968 register int yystate;
1969 register int yyn;
1970 register short *yyssp;
1971 register YYSTYPE *yyvsp;
1972 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1973 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1974
1975 short yyssa[YYINITDEPTH]; /* the state stack */
1976 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1977
1978 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1979 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1980
1981 #ifdef YYLSP_NEEDED
1982 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1983 YYLTYPE *yyls = yylsa;
1984 YYLTYPE *yylsp;
1985
1986 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1987 #else
1988 #define YYPOPSTACK (yyvsp--, yyssp--)
1989 #endif
1990
1991 int yystacksize = YYINITDEPTH;
1992
1993 #ifdef YYPURE
1994 int yychar;
1995 YYSTYPE yylval;
1996 int yynerrs;
1997 #ifdef YYLSP_NEEDED
1998 YYLTYPE yylloc;
1999 #endif
2000 #endif
2001
2002 YYSTYPE yyval; /* the variable used to return */
2003 /* semantic values from the action */
2004 /* routines */
2005
2006 int yylen;
2007
2008 #if YYDEBUG != 0
2009 if (yydebug)
2010 fprintf(stderr, "Starting parse\n");
2011 #endif
2012
2013 yystate = 0;
2014 yyerrstatus = 0;
2015 yynerrs = 0;
2016 yychar = YYEMPTY; /* Cause a token to be read. */
2017
2018 /* Initialize stack pointers.
2019 Waste one element of value and location stack
2020 so that they stay on the same level as the state stack.
2021 The wasted elements are never initialized. */
2022
2023 yyssp = yyss - 1;
2024 yyvsp = yyvs;
2025 #ifdef YYLSP_NEEDED
2026 yylsp = yyls;
2027 #endif
2028
2029 /* Push a new state, which is found in yystate . */
2030 /* In all cases, when you get here, the value and location stacks
2031 have just been pushed. so pushing a state here evens the stacks. */
2032 yynewstate:
2033
2034 *++yyssp = yystate;
2035
2036 if (yyssp >= yyss + yystacksize - 1)
2037 {
2038 /* Give user a chance to reallocate the stack */
2039 /* Use copies of these so that the &'s don't force the real ones into memory. */
2040 YYSTYPE *yyvs1 = yyvs;
2041 short *yyss1 = yyss;
2042 #ifdef YYLSP_NEEDED
2043 YYLTYPE *yyls1 = yyls;
2044 #endif
2045
2046 /* Get the current used size of the three stacks, in elements. */
2047 int size = yyssp - yyss + 1;
2048
2049 #ifdef yyoverflow
2050 /* Each stack pointer address is followed by the size of
2051 the data in use in that stack, in bytes. */
2052 #ifdef YYLSP_NEEDED
2053 /* This used to be a conditional around just the two extra args,
2054 but that might be undefined if yyoverflow is a macro. */
2055 yyoverflow("parser stack overflow",
2056 &yyss1, size * sizeof (*yyssp),
2057 &yyvs1, size * sizeof (*yyvsp),
2058 &yyls1, size * sizeof (*yylsp),
2059 &yystacksize);
2060 #else
2061 yyoverflow("parser stack overflow",
2062 &yyss1, size * sizeof (*yyssp),
2063 &yyvs1, size * sizeof (*yyvsp),
2064 &yystacksize);
2065 #endif
2066
2067 yyss = yyss1; yyvs = yyvs1;
2068 #ifdef YYLSP_NEEDED
2069 yyls = yyls1;
2070 #endif
2071 #else /* no yyoverflow */
2072 /* Extend the stack our own way. */
2073 if (yystacksize >= YYMAXDEPTH)
2074 {
2075 yyerror("parser stack overflow");
2076 return 2;
2077 }
2078 yystacksize *= 2;
2079 if (yystacksize > YYMAXDEPTH)
2080 yystacksize = YYMAXDEPTH;
2081 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
2082 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
2083 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
2084 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
2085 #ifdef YYLSP_NEEDED
2086 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
2087 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
2088 #endif
2089 #endif /* no yyoverflow */
2090
2091 yyssp = yyss + size - 1;
2092 yyvsp = yyvs + size - 1;
2093 #ifdef YYLSP_NEEDED
2094 yylsp = yyls + size - 1;
2095 #endif
2096
2097 #if YYDEBUG != 0
2098 if (yydebug)
2099 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2100 #endif
2101
2102 if (yyssp >= yyss + yystacksize - 1)
2103 YYABORT;
2104 }
2105
2106 #if YYDEBUG != 0
2107 if (yydebug)
2108 fprintf(stderr, "Entering state %d\n", yystate);
2109 #endif
2110
2111 goto yybackup;
2112 yybackup:
2113
2114 /* Do appropriate processing given the current state. */
2115 /* Read a lookahead token if we need one and don't already have one. */
2116 /* yyresume: */
2117
2118 /* First try to decide what to do without reference to lookahead token. */
2119
2120 yyn = yypact[yystate];
2121 if (yyn == YYFLAG)
2122 goto yydefault;
2123
2124 /* Not known => get a lookahead token if don't already have one. */
2125
2126 /* yychar is either YYEMPTY or YYEOF
2127 or a valid token in external form. */
2128
2129 if (yychar == YYEMPTY)
2130 {
2131 #if YYDEBUG != 0
2132 if (yydebug)
2133 fprintf(stderr, "Reading a token: ");
2134 #endif
2135 yychar = YYLEX;
2136 }
2137
2138 /* Convert token to internal form (in yychar1) for indexing tables with */
2139
2140 if (yychar <= 0) /* This means end of input. */
2141 {
2142 yychar1 = 0;
2143 yychar = YYEOF; /* Don't call YYLEX any more */
2144
2145 #if YYDEBUG != 0
2146 if (yydebug)
2147 fprintf(stderr, "Now at end of input.\n");
2148 #endif
2149 }
2150 else
2151 {
2152 yychar1 = YYTRANSLATE(yychar);
2153
2154 #if YYDEBUG != 0
2155 if (yydebug)
2156 {
2157 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2158 /* Give the individual parser a way to print the precise meaning
2159 of a token, for further debugging info. */
2160 #ifdef YYPRINT
2161 YYPRINT (stderr, yychar, yylval);
2162 #endif
2163 fprintf (stderr, ")\n");
2164 }
2165 #endif
2166 }
2167
2168 yyn += yychar1;
2169 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2170 goto yydefault;
2171
2172 yyn = yytable[yyn];
2173
2174 /* yyn is what to do for this token type in this state.
2175 Negative => reduce, -yyn is rule number.
2176 Positive => shift, yyn is new state.
2177 New state is final state => don't bother to shift,
2178 just return success.
2179 0, or most negative number => error. */
2180
2181 if (yyn < 0)
2182 {
2183 if (yyn == YYFLAG)
2184 goto yyerrlab;
2185 yyn = -yyn;
2186 goto yyreduce;
2187 }
2188 else if (yyn == 0)
2189 goto yyerrlab;
2190
2191 if (yyn == YYFINAL)
2192 YYACCEPT;
2193
2194 /* Shift the lookahead token. */
2195
2196 #if YYDEBUG != 0
2197 if (yydebug)
2198 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2199 #endif
2200
2201 /* Discard the token being shifted unless it is eof. */
2202 if (yychar != YYEOF)
2203 yychar = YYEMPTY;
2204
2205 *++yyvsp = yylval;
2206 #ifdef YYLSP_NEEDED
2207 *++yylsp = yylloc;
2208 #endif
2209
2210 /* count tokens shifted since error; after three, turn off error status. */
2211 if (yyerrstatus) yyerrstatus--;
2212
2213 yystate = yyn;
2214 goto yynewstate;
2215
2216 /* Do the default action for the current state. */
2217 yydefault:
2218
2219 yyn = yydefact[yystate];
2220 if (yyn == 0)
2221 goto yyerrlab;
2222
2223 /* Do a reduction. yyn is the number of a rule to reduce with. */
2224 yyreduce:
2225 yylen = yyr2[yyn];
2226 if (yylen > 0)
2227 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2228
2229 #if YYDEBUG != 0
2230 if (yydebug)
2231 {
2232 int i;
2233
2234 fprintf (stderr, "Reducing via rule %d (line %d), ",
2235 yyn, yyrline[yyn]);
2236
2237 /* Print the symbols being reduced, and their result. */
2238 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2239 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2240 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2241 }
2242 #endif
2243
2244
2245 switch (yyn) {
2246
2247 case 1:
2248 #line 258 "objc-parse.y"
2249 { if (pedantic)
2250 pedwarn ("ANSI C forbids an empty source file");
2251 finish_file ();
2252 ;
2253 break;}
2254 case 2:
2255 #line 263 "objc-parse.y"
2256 {
2257 /* In case there were missing closebraces,
2258 get us back to the global binding level. */
2259 while (! global_bindings_p ())
2260 poplevel (0, 0, 0);
2261 finish_file ();
2262 ;
2263 break;}
2264 case 3:
2265 #line 277 "objc-parse.y"
2266 {yyval.ttype = NULL_TREE; ;
2267 break;}
2268 case 5:
2269 #line 278 "objc-parse.y"
2270 {yyval.ttype = NULL_TREE; ;
2271 break;}
2272 case 10:
2273 #line 286 "objc-parse.y"
2274 { STRIP_NOPS (yyvsp[-2].ttype);
2275 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
2276 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
2277 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
2278 assemble_asm (yyvsp[-2].ttype);
2279 else
2280 error ("argument of `asm' is not a constant string"); ;
2281 break;}
2282 case 11:
2283 #line 294 "objc-parse.y"
2284 { RESTORE_WARN_FLAGS (yyvsp[-1].itype); ;
2285 break;}
2286 case 12:
2287 #line 299 "objc-parse.y"
2288 { if (pedantic)
2289 error ("ANSI C forbids data definition with no type or storage class");
2290 else if (!flag_traditional)
2291 warning ("data definition has no type or storage class");
2292
2293 current_declspecs = TREE_VALUE (declspec_stack);
2294 prefix_attributes = TREE_PURPOSE (declspec_stack);
2295 declspec_stack = TREE_CHAIN (declspec_stack);
2296 resume_momentary (yyvsp[-2].itype); ;
2297 break;}
2298 case 13:
2299 #line 309 "objc-parse.y"
2300 { current_declspecs = TREE_VALUE (declspec_stack);
2301 prefix_attributes = TREE_PURPOSE (declspec_stack);
2302 declspec_stack = TREE_CHAIN (declspec_stack);
2303 resume_momentary (yyvsp[-2].itype); ;
2304 break;}
2305 case 14:
2306 #line 314 "objc-parse.y"
2307 { current_declspecs = TREE_VALUE (declspec_stack);
2308 prefix_attributes = TREE_PURPOSE (declspec_stack);
2309 declspec_stack = TREE_CHAIN (declspec_stack);
2310 resume_momentary (yyvsp[-2].itype); ;
2311 break;}
2312 case 15:
2313 #line 319 "objc-parse.y"
2314 { pedwarn ("empty declaration"); ;
2315 break;}
2316 case 16:
2317 #line 321 "objc-parse.y"
2318 { shadow_tag (yyvsp[-1].ttype); ;
2319 break;}
2320 case 19:
2321 #line 325 "objc-parse.y"
2322 { if (pedantic)
2323 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
2324 break;}
2325 case 20:
2326 #line 331 "objc-parse.y"
2327 { if (! start_function (current_declspecs, yyvsp[0].ttype,
2328 prefix_attributes, NULL_TREE, 0))
2329 YYERROR1;
2330 reinit_parse_for_function (); ;
2331 break;}
2332 case 21:
2333 #line 336 "objc-parse.y"
2334 { store_parm_decls (); ;
2335 break;}
2336 case 22:
2337 #line 338 "objc-parse.y"
2338 { finish_function (0);
2339 current_declspecs = TREE_VALUE (declspec_stack);
2340 prefix_attributes = TREE_PURPOSE (declspec_stack);
2341 declspec_stack = TREE_CHAIN (declspec_stack);
2342 resume_momentary (yyvsp[-5].itype); ;
2343 break;}
2344 case 23:
2345 #line 344 "objc-parse.y"
2346 { current_declspecs = TREE_VALUE (declspec_stack);
2347 prefix_attributes = TREE_PURPOSE (declspec_stack);
2348 declspec_stack = TREE_CHAIN (declspec_stack);
2349 resume_momentary (yyvsp[-2].itype); ;
2350 break;}
2351 case 24:
2352 #line 349 "objc-parse.y"
2353 { if (! start_function (current_declspecs, yyvsp[0].ttype,
2354 prefix_attributes, NULL_TREE, 0))
2355 YYERROR1;
2356 reinit_parse_for_function (); ;
2357 break;}
2358 case 25:
2359 #line 354 "objc-parse.y"
2360 { store_parm_decls (); ;
2361 break;}
2362 case 26:
2363 #line 356 "objc-parse.y"
2364 { finish_function (0);
2365 current_declspecs = TREE_VALUE (declspec_stack);
2366 prefix_attributes = TREE_PURPOSE (declspec_stack);
2367 declspec_stack = TREE_CHAIN (declspec_stack);
2368 resume_momentary (yyvsp[-5].itype); ;
2369 break;}
2370 case 27:
2371 #line 362 "objc-parse.y"
2372 { current_declspecs = TREE_VALUE (declspec_stack);
2373 prefix_attributes = TREE_PURPOSE (declspec_stack);
2374 declspec_stack = TREE_CHAIN (declspec_stack);
2375 resume_momentary (yyvsp[-2].itype); ;
2376 break;}
2377 case 28:
2378 #line 367 "objc-parse.y"
2379 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
2380 prefix_attributes, NULL_TREE, 0))
2381 YYERROR1;
2382 reinit_parse_for_function (); ;
2383 break;}
2384 case 29:
2385 #line 372 "objc-parse.y"
2386 { store_parm_decls (); ;
2387 break;}
2388 case 30:
2389 #line 374 "objc-parse.y"
2390 { finish_function (0);
2391 current_declspecs = TREE_VALUE (declspec_stack);
2392 prefix_attributes = TREE_PURPOSE (declspec_stack);
2393 declspec_stack = TREE_CHAIN (declspec_stack);
2394 resume_momentary (yyvsp[-5].itype); ;
2395 break;}
2396 case 31:
2397 #line 380 "objc-parse.y"
2398 { current_declspecs = TREE_VALUE (declspec_stack);
2399 prefix_attributes = TREE_PURPOSE (declspec_stack);
2400 declspec_stack = TREE_CHAIN (declspec_stack);
2401 resume_momentary (yyvsp[-2].itype); ;
2402 break;}
2403 case 36:
2404 #line 394 "objc-parse.y"
2405 { yyval.code = ADDR_EXPR; ;
2406 break;}
2407 case 37:
2408 #line 396 "objc-parse.y"
2409 { yyval.code = NEGATE_EXPR; ;
2410 break;}
2411 case 38:
2412 #line 398 "objc-parse.y"
2413 { yyval.code = CONVERT_EXPR; ;
2414 break;}
2415 case 39:
2416 #line 400 "objc-parse.y"
2417 { yyval.code = PREINCREMENT_EXPR; ;
2418 break;}
2419 case 40:
2420 #line 402 "objc-parse.y"
2421 { yyval.code = PREDECREMENT_EXPR; ;
2422 break;}
2423 case 41:
2424 #line 404 "objc-parse.y"
2425 { yyval.code = BIT_NOT_EXPR; ;
2426 break;}
2427 case 42:
2428 #line 406 "objc-parse.y"
2429 { yyval.code = TRUTH_NOT_EXPR; ;
2430 break;}
2431 case 43:
2432 #line 410 "objc-parse.y"
2433 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
2434 break;}
2435 case 44:
2436 #line 415 "objc-parse.y"
2437 { yyval.ttype = NULL_TREE; ;
2438 break;}
2439 case 46:
2440 #line 421 "objc-parse.y"
2441 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
2442 break;}
2443 case 47:
2444 #line 423 "objc-parse.y"
2445 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
2446 break;}
2447 case 49:
2448 #line 429 "objc-parse.y"
2449 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
2450 break;}
2451 case 50:
2452 #line 432 "objc-parse.y"
2453 { yyval.ttype = yyvsp[0].ttype;
2454 RESTORE_WARN_FLAGS (yyvsp[-1].itype); ;
2455 break;}
2456 case 51:
2457 #line 435 "objc-parse.y"
2458 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
2459 overflow_warning (yyval.ttype); ;
2460 break;}
2461 case 52:
2462 #line 439 "objc-parse.y"
2463 { tree label = lookup_label (yyvsp[0].ttype);
2464 if (pedantic)
2465 pedwarn ("ANSI C forbids `&&'");
2466 if (label == 0)
2467 yyval.ttype = null_pointer_node;
2468 else
2469 {
2470 TREE_USED (label) = 1;
2471 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
2472 TREE_CONSTANT (yyval.ttype) = 1;
2473 }
2474 ;
2475 break;}
2476 case 53:
2477 #line 467 "objc-parse.y"
2478 { skip_evaluation--;
2479 if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
2480 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
2481 error ("`sizeof' applied to a bit-field");
2482 yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
2483 break;}
2484 case 54:
2485 #line 473 "objc-parse.y"
2486 { skip_evaluation--;
2487 yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
2488 break;}
2489 case 55:
2490 #line 476 "objc-parse.y"
2491 { skip_evaluation--;
2492 yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
2493 break;}
2494 case 56:
2495 #line 479 "objc-parse.y"
2496 { skip_evaluation--;
2497 yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
2498 break;}
2499 case 57:
2500 #line 482 "objc-parse.y"
2501 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
2502 break;}
2503 case 58:
2504 #line 484 "objc-parse.y"
2505 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
2506 break;}
2507 case 59:
2508 #line 486 "objc-parse.y"
2509 { yyval.ttype = build_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ttype)); ;
2510 break;}
2511 case 60:
2512 #line 490 "objc-parse.y"
2513 { skip_evaluation++; ;
2514 break;}
2515 case 61:
2516 #line 494 "objc-parse.y"
2517 { skip_evaluation++; ;
2518 break;}
2519 case 63:
2520 #line 500 "objc-parse.y"
2521 { tree type = groktypename (yyvsp[-2].ttype);
2522 yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
2523 break;}
2524 case 64:
2525 #line 503 "objc-parse.y"
2526 { start_init (NULL_TREE, NULL, 0);
2527 yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
2528 really_start_incremental_init (yyvsp[-2].ttype); ;
2529 break;}
2530 case 65:
2531 #line 507 "objc-parse.y"
2532 { const char *name;
2533 tree result = pop_init_level (0);
2534 tree type = yyvsp[-5].ttype;
2535 finish_init ();
2536
2537 if (pedantic && ! flag_isoc9x)
2538 pedwarn ("ANSI C forbids constructor expressions");
2539 if (TYPE_NAME (type) != 0)
2540 {
2541 if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
2542 name = IDENTIFIER_POINTER (TYPE_NAME (type));
2543 else
2544 name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
2545 }
2546 else
2547 name = "";
2548 yyval.ttype = result;
2549 if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
2550 {
2551 int failure = complete_array_type (type, yyval.ttype, 1);
2552 if (failure)
2553 abort ();
2554 }
2555 ;
2556 break;}
2557 case 67:
2558 #line 536 "objc-parse.y"
2559 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2560 break;}
2561 case 68:
2562 #line 538 "objc-parse.y"
2563 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2564 break;}
2565 case 69:
2566 #line 540 "objc-parse.y"
2567 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2568 break;}
2569 case 70:
2570 #line 542 "objc-parse.y"
2571 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2572 break;}
2573 case 71:
2574 #line 544 "objc-parse.y"
2575 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2576 break;}
2577 case 72:
2578 #line 546 "objc-parse.y"
2579 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2580 break;}
2581 case 73:
2582 #line 548 "objc-parse.y"
2583 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2584 break;}
2585 case 74:
2586 #line 550 "objc-parse.y"
2587 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2588 break;}
2589 case 75:
2590 #line 552 "objc-parse.y"
2591 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2592 break;}
2593 case 76:
2594 #line 554 "objc-parse.y"
2595 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2596 break;}
2597 case 77:
2598 #line 556 "objc-parse.y"
2599 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2600 break;}
2601 case 78:
2602 #line 558 "objc-parse.y"
2603 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2604 break;}
2605 case 79:
2606 #line 560 "objc-parse.y"
2607 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2608 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2609 break;}
2610 case 80:
2611 #line 563 "objc-parse.y"
2612 { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
2613 yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2614 break;}
2615 case 81:
2616 #line 566 "objc-parse.y"
2617 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2618 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2619 break;}
2620 case 82:
2621 #line 569 "objc-parse.y"
2622 { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
2623 yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2624 break;}
2625 case 83:
2626 #line 572 "objc-parse.y"
2627 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2628 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2629 break;}
2630 case 84:
2631 #line 575 "objc-parse.y"
2632 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
2633 - (yyvsp[-4].ttype == boolean_false_node)); ;
2634 break;}
2635 case 85:
2636 #line 578 "objc-parse.y"
2637 { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
2638 yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2639 break;}
2640 case 86:
2641 #line 581 "objc-parse.y"
2642 { if (pedantic)
2643 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2644 /* Make sure first operand is calculated only once. */
2645 yyvsp[0].ttype = save_expr (yyvsp[-1].ttype);
2646 yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
2647 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2648 break;}
2649 case 87:
2650 #line 588 "objc-parse.y"
2651 { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
2652 yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2653 break;}
2654 case 88:
2655 #line 591 "objc-parse.y"
2656 { char class;
2657 yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
2658 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
2659 if (class == 'e' || class == '1'
2660 || class == '2' || class == '<')
2661 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR);
2662 ;
2663 break;}
2664 case 89:
2665 #line 599 "objc-parse.y"
2666 { char class;
2667 yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
2668 /* This inhibits warnings in truthvalue_conversion. */
2669 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
2670 if (class == 'e' || class == '1'
2671 || class == '2' || class == '<')
2672 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK);
2673 ;
2674 break;}
2675 case 90:
2676 #line 611 "objc-parse.y"
2677 {
2678 yyval.ttype = lastiddecl;
2679 if (!yyval.ttype || yyval.ttype == error_mark_node)
2680 {
2681 if (yychar == YYEMPTY)
2682 yychar = YYLEX;
2683 if (yychar == '(')
2684 {
2685 tree decl;
2686
2687 if (objc_receiver_context
2688 && ! (objc_receiver_context
2689 && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super")))
2690 /* we have a message to super */
2691 yyval.ttype = get_super_receiver ();
2692 else if (objc_method_context
2693 && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
2694 {
2695 if (is_private (decl))
2696 yyval.ttype = error_mark_node;
2697 else
2698 yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
2699 }
2700 else
2701 {
2702 /* Ordinary implicit function declaration. */
2703 yyval.ttype = implicitly_declare (yyvsp[0].ttype);
2704 assemble_external (yyval.ttype);
2705 TREE_USED (yyval.ttype) = 1;
2706 }
2707 }
2708 else if (current_function_decl == 0)
2709 {
2710 error ("`%s' undeclared here (not in a function)",
2711 IDENTIFIER_POINTER (yyvsp[0].ttype));
2712 yyval.ttype = error_mark_node;
2713 }
2714 else
2715 {
2716 tree decl;
2717
2718 if (objc_receiver_context
2719 && ! strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super"))
2720 /* we have a message to super */
2721 yyval.ttype = get_super_receiver ();
2722 else if (objc_method_context
2723 && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
2724 {
2725 if (is_private (decl))
2726 yyval.ttype = error_mark_node;
2727 else
2728 yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
2729 }
2730 else
2731 {
2732 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
2733 || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
2734 {
2735 error ("`%s' undeclared (first use in this function)",
2736 IDENTIFIER_POINTER (yyvsp[0].ttype));
2737
2738 if (! undeclared_variable_notice)
2739 {
2740 error ("(Each undeclared identifier is reported only once");
2741 error ("for each function it appears in.)");
2742 undeclared_variable_notice = 1;
2743 }
2744 }
2745 yyval.ttype = error_mark_node;
2746 /* Prevent repeated error messages. */
2747 IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
2748 IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
2749 }
2750 }
2751 }
2752 else if (TREE_TYPE (yyval.ttype) == error_mark_node)
2753 yyval.ttype = error_mark_node;
2754 else if (C_DECL_ANTICIPATED (yyval.ttype))
2755 {
2756 /* The first time we see a build-in function used,
2757 if it has not been declared. */
2758 C_DECL_ANTICIPATED (yyval.ttype) = 0;
2759 if (yychar == YYEMPTY)
2760 yychar = YYLEX;
2761 if (yychar == '(')
2762 {
2763 /* Omit the implicit declaration we
2764 would ordinarily do, so we don't lose
2765 the actual built in type.
2766 But print a diagnostic for the mismatch. */
2767 if (objc_method_context
2768 && is_ivar (objc_ivar_chain, yyvsp[0].ttype))
2769 error ("Instance variable `%s' implicitly declared as function",
2770 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2771 else
2772 if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
2773 error ("`%s' implicitly declared as function",
2774 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2775 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
2776 != TYPE_MODE (integer_type_node))
2777 && (TREE_TYPE (TREE_TYPE (yyval.ttype))
2778 != void_type_node))
2779 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2780 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2781 /* If it really returns void, change that to int. */
2782 if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
2783 TREE_TYPE (yyval.ttype)
2784 = build_function_type (integer_type_node,
2785 TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
2786 }
2787 else
2788 pedwarn ("built-in function `%s' used without declaration",
2789 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2790
2791 /* Do what we would ordinarily do when a fn is used. */
2792 assemble_external (yyval.ttype);
2793 TREE_USED (yyval.ttype) = 1;
2794 }
2795 else
2796 {
2797 assemble_external (yyval.ttype);
2798 TREE_USED (yyval.ttype) = 1;
2799 /* we have a definition - still check if iVariable */
2800
2801 if (!objc_receiver_context
2802 || (objc_receiver_context
2803 && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super")))
2804 {
2805 tree decl;
2806
2807 if (objc_method_context
2808 && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
2809 {
2810 if (IDENTIFIER_LOCAL_VALUE (yyvsp[0].ttype))
2811 warning ("local declaration of `%s' hides instance variable",
2812 IDENTIFIER_POINTER (yyvsp[0].ttype));
2813 else
2814 {
2815 if (is_private (decl))
2816 yyval.ttype = error_mark_node;
2817 else
2818 yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
2819 }
2820 }
2821 }
2822 else /* we have a message to super */
2823 yyval.ttype = get_super_receiver ();
2824 }
2825
2826 if (TREE_CODE (yyval.ttype) == CONST_DECL)
2827 {
2828 yyval.ttype = DECL_INITIAL (yyval.ttype);
2829 /* This is to prevent an enum whose value is 0
2830 from being considered a null pointer constant. */
2831 yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
2832 TREE_CONSTANT (yyval.ttype) = 1;
2833 }
2834 ;
2835 break;}
2836 case 92:
2837 #line 771 "objc-parse.y"
2838 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
2839 break;}
2840 case 93:
2841 #line 773 "objc-parse.y"
2842 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
2843 if (class == 'e' || class == '1'
2844 || class == '2' || class == '<')
2845 C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
2846 yyval.ttype = yyvsp[-1].ttype; ;
2847 break;}
2848 case 94:
2849 #line 779 "objc-parse.y"
2850 { yyval.ttype = error_mark_node; ;
2851 break;}
2852 case 95:
2853 #line 781 "objc-parse.y"
2854 { tree rtl_exp;
2855 if (pedantic)
2856 pedwarn ("ANSI C forbids braced-groups within expressions");
2857 pop_iterator_stack ();
2858 pop_label_level ();
2859 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
2860 /* The statements have side effects, so the group does. */
2861 TREE_SIDE_EFFECTS (rtl_exp) = 1;
2862
2863 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
2864 {
2865 /* Make a BIND_EXPR for the BLOCK already made. */
2866 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
2867 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
2868 /* Remove the block from the tree at this point.
2869 It gets put back at the proper place
2870 when the BIND_EXPR is expanded. */
2871 delete_block (yyvsp[-1].ttype);
2872 }
2873 else
2874 yyval.ttype = yyvsp[-1].ttype;
2875 ;
2876 break;}
2877 case 96:
2878 #line 804 "objc-parse.y"
2879 {
2880 /* Make sure we call expand_end_stmt_expr. Otherwise
2881 we are likely to lose sequences and crash later. */
2882 pop_iterator_stack ();
2883 pop_label_level ();
2884 expand_end_stmt_expr (yyvsp[-2].ttype);
2885 yyval.ttype = error_mark_node;
2886 ;
2887 break;}
2888 case 97:
2889 #line 813 "objc-parse.y"
2890 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2891 break;}
2892 case 98:
2893 #line 815 "objc-parse.y"
2894 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2895 break;}
2896 case 99:
2897 #line 817 "objc-parse.y"
2898 {
2899 if (doing_objc_thang)
2900 {
2901 if (is_public (yyvsp[-2].ttype, yyvsp[0].ttype))
2902 yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2903 else
2904 yyval.ttype = error_mark_node;
2905 }
2906 else
2907 yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2908 ;
2909 break;}
2910 case 100:
2911 #line 829 "objc-parse.y"
2912 {
2913 tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
2914
2915 if (doing_objc_thang)
2916 {
2917 if (is_public (expr, yyvsp[0].ttype))
2918 yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
2919 else
2920 yyval.ttype = error_mark_node;
2921 }
2922 else
2923 yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
2924 ;
2925 break;}
2926 case 101:
2927 #line 843 "objc-parse.y"
2928 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2929 break;}
2930 case 102:
2931 #line 845 "objc-parse.y"
2932 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2933 break;}
2934 case 103:
2935 #line 847 "objc-parse.y"
2936 { yyval.ttype = build_message_expr (yyvsp[0].ttype); ;
2937 break;}
2938 case 104:
2939 #line 849 "objc-parse.y"
2940 { yyval.ttype = build_selector_expr (yyvsp[0].ttype); ;
2941 break;}
2942 case 105:
2943 #line 851 "objc-parse.y"
2944 { yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ;
2945 break;}
2946 case 106:
2947 #line 853 "objc-parse.y"
2948 { yyval.ttype = build_encode_expr (yyvsp[0].ttype); ;
2949 break;}
2950 case 107:
2951 #line 855 "objc-parse.y"
2952 { yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ;
2953 break;}
2954 case 109:
2955 #line 862 "objc-parse.y"
2956 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
2957 ;
2958 break;}
2959 case 111:
2960 #line 871 "objc-parse.y"
2961 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2962 break;}
2963 case 114:
2964 #line 879 "objc-parse.y"
2965 { c_mark_varargs ();
2966 if (pedantic)
2967 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2968 break;}
2969 case 115:
2970 #line 889 "objc-parse.y"
2971 { ;
2972 break;}
2973 case 120:
2974 #line 905 "objc-parse.y"
2975 { current_declspecs = TREE_VALUE (declspec_stack);
2976 prefix_attributes = TREE_PURPOSE (declspec_stack);
2977 declspec_stack = TREE_CHAIN (declspec_stack);
2978 resume_momentary (yyvsp[-2].itype); ;
2979 break;}
2980 case 121:
2981 #line 910 "objc-parse.y"
2982 { current_declspecs = TREE_VALUE (declspec_stack);
2983 prefix_attributes = TREE_PURPOSE (declspec_stack);
2984 declspec_stack = TREE_CHAIN (declspec_stack);
2985 resume_momentary (yyvsp[-2].itype); ;
2986 break;}
2987 case 122:
2988 #line 915 "objc-parse.y"
2989 { shadow_tag_warned (yyvsp[-1].ttype, 1);
2990 pedwarn ("empty declaration"); ;
2991 break;}
2992 case 123:
2993 #line 918 "objc-parse.y"
2994 { pedwarn ("empty declaration"); ;
2995 break;}
2996 case 124:
2997 #line 927 "objc-parse.y"
2998 { ;
2999 break;}
3000 case 129:
3001 #line 942 "objc-parse.y"
3002 { yyval.itype = suspend_momentary ();
3003 pending_xref_error ();
3004 declspec_stack = tree_cons (prefix_attributes,
3005 current_declspecs,
3006 declspec_stack);
3007 split_specs_attrs (yyvsp[0].ttype,
3008 &current_declspecs, &prefix_attributes); ;
3009 break;}
3010 case 130:
3011 #line 953 "objc-parse.y"
3012 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
3013 break;}
3014 case 131:
3015 #line 958 "objc-parse.y"
3016 { current_declspecs = TREE_VALUE (declspec_stack);
3017 prefix_attributes = TREE_PURPOSE (declspec_stack);
3018 declspec_stack = TREE_CHAIN (declspec_stack);
3019 resume_momentary (yyvsp[-2].itype); ;
3020 break;}
3021 case 132:
3022 #line 963 "objc-parse.y"
3023 { current_declspecs = TREE_VALUE (declspec_stack);
3024 prefix_attributes = TREE_PURPOSE (declspec_stack);
3025 declspec_stack = TREE_CHAIN (declspec_stack);
3026 resume_momentary (yyvsp[-2].itype); ;
3027 break;}
3028 case 133:
3029 #line 968 "objc-parse.y"
3030 { current_declspecs = TREE_VALUE (declspec_stack);
3031 prefix_attributes = TREE_PURPOSE (declspec_stack);
3032 declspec_stack = TREE_CHAIN (declspec_stack);
3033 resume_momentary (yyvsp[-1].itype); ;
3034 break;}
3035 case 134:
3036 #line 973 "objc-parse.y"
3037 { current_declspecs = TREE_VALUE (declspec_stack);
3038 prefix_attributes = TREE_PURPOSE (declspec_stack);
3039 declspec_stack = TREE_CHAIN (declspec_stack);
3040 resume_momentary (yyvsp[-1].itype); ;
3041 break;}
3042 case 135:
3043 #line 978 "objc-parse.y"
3044 { shadow_tag (yyvsp[-1].ttype); ;
3045 break;}
3046 case 136:
3047 #line 980 "objc-parse.y"
3048 { pedwarn ("empty declaration"); ;
3049 break;}
3050 case 137:
3051 #line 982 "objc-parse.y"
3052 { RESTORE_WARN_FLAGS (yyvsp[-1].itype); ;
3053 break;}
3054 case 138:
3055 #line 992 "objc-parse.y"
3056 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
3057 break;}
3058 case 139:
3059 #line 994 "objc-parse.y"
3060 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
3061 break;}
3062 case 140:
3063 #line 998 "objc-parse.y"
3064 { yyval.ttype = NULL_TREE; ;
3065 break;}
3066 case 141:
3067 #line 1000 "objc-parse.y"
3068 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3069 break;}
3070 case 142:
3071 #line 1002 "objc-parse.y"
3072 { if (extra_warnings)
3073 warning ("`%s' is not at beginning of declaration",
3074 IDENTIFIER_POINTER (yyvsp[0].ttype));
3075 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3076 break;}
3077 case 143:
3078 #line 1007 "objc-parse.y"
3079 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
3080 break;}
3081 case 144:
3082 #line 1012 "objc-parse.y"
3083 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
3084 break;}
3085 case 145:
3086 #line 1014 "objc-parse.y"
3087 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
3088 break;}
3089 case 146:
3090 #line 1019 "objc-parse.y"
3091 { yyval.ttype = NULL_TREE; ;
3092 break;}
3093 case 147:
3094 #line 1021 "objc-parse.y"
3095 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3096 break;}
3097 case 148:
3098 #line 1023 "objc-parse.y"
3099 { if (extra_warnings)
3100 warning ("`%s' is not at beginning of declaration",
3101 IDENTIFIER_POINTER (yyvsp[0].ttype));
3102 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3103 break;}
3104 case 149:
3105 #line 1036 "objc-parse.y"
3106 { yyval.ttype = yyvsp[0].ttype; ;
3107 break;}
3108 case 150:
3109 #line 1038 "objc-parse.y"
3110 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
3111 break;}
3112 case 151:
3113 #line 1040 "objc-parse.y"
3114 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
3115 break;}
3116 case 152:
3117 #line 1042 "objc-parse.y"
3118 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
3119 break;}
3120 case 153:
3121 #line 1047 "objc-parse.y"
3122 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
3123 TREE_STATIC (yyval.ttype) = 1; ;
3124 break;}
3125 case 154:
3126 #line 1050 "objc-parse.y"
3127 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3128 break;}
3129 case 155:
3130 #line 1052 "objc-parse.y"
3131 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
3132 TREE_STATIC (yyval.ttype) = 1; ;
3133 break;}
3134 case 156:
3135 #line 1055 "objc-parse.y"
3136 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
3137 warning ("`%s' is not at beginning of declaration",
3138 IDENTIFIER_POINTER (yyvsp[0].ttype));
3139 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
3140 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
3141 break;}
3142 case 157:
3143 #line 1069 "objc-parse.y"
3144 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
3145 break;}
3146 case 158:
3147 #line 1071 "objc-parse.y"
3148 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
3149 break;}
3150 case 159:
3151 #line 1075 "objc-parse.y"
3152 { yyval.ttype = NULL_TREE; ;
3153 break;}
3154 case 160:
3155 #line 1077 "objc-parse.y"
3156 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3157 break;}
3158 case 163:
3159 #line 1087 "objc-parse.y"
3160 { /* For a typedef name, record the meaning, not the name.
3161 In case of `foo foo, bar;'. */
3162 yyval.ttype = lookup_name (yyvsp[0].ttype); ;
3163 break;}
3164 case 164:
3165 #line 1091 "objc-parse.y"
3166 { yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3167 break;}
3168 case 165:
3169 #line 1093 "objc-parse.y"
3170 { yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
3171 break;}
3172 case 166:
3173 #line 1098 "objc-parse.y"
3174 { yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
3175 break;}
3176 case 167:
3177 #line 1100 "objc-parse.y"
3178 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
3179 break;}
3180 case 168:
3181 #line 1102 "objc-parse.y"
3182 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
3183 break;}
3184 case 176:
3185 #line 1124 "objc-parse.y"
3186 { yyval.ttype = NULL_TREE; ;
3187 break;}
3188 case 177:
3189 #line 1126 "objc-parse.y"
3190 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
3191 yyval.ttype = yyvsp[-1].ttype;
3192 ;
3193 break;}
3194 case 178:
3195 #line 1133 "objc-parse.y"
3196 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
3197 yyvsp[-1].ttype, prefix_attributes);
3198 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
3199 break;}
3200 case 179:
3201 #line 1138 "objc-parse.y"
3202 { finish_init ();
3203 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
3204 break;}
3205 case 180:
3206 #line 1141 "objc-parse.y"
3207 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
3208 yyvsp[0].ttype, prefix_attributes);
3209 finish_decl (d, NULL_TREE, yyvsp[-1].ttype);
3210 ;
3211 break;}
3212 case 181:
3213 #line 1149 "objc-parse.y"
3214 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
3215 yyvsp[-1].ttype, prefix_attributes);
3216 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
3217 break;}
3218 case 182:
3219 #line 1154 "objc-parse.y"
3220 { finish_init ();
3221 decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
3222 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
3223 break;}
3224 case 183:
3225 #line 1158 "objc-parse.y"
3226 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
3227 yyvsp[0].ttype, prefix_attributes);
3228 finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
3229 break;}
3230 case 184:
3231 #line 1166 "objc-parse.y"
3232 { yyval.ttype = NULL_TREE; ;
3233 break;}
3234 case 185:
3235 #line 1168 "objc-parse.y"
3236 { yyval.ttype = yyvsp[0].ttype; ;
3237 break;}
3238 case 186:
3239 #line 1173 "objc-parse.y"
3240 { yyval.ttype = yyvsp[0].ttype; ;
3241 break;}
3242 case 187:
3243 #line 1175 "objc-parse.y"
3244 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3245 break;}
3246 case 188:
3247 #line 1180 "objc-parse.y"
3248 { yyval.ttype = yyvsp[-2].ttype; ;
3249 break;}
3250 case 189:
3251 #line 1185 "objc-parse.y"
3252 { yyval.ttype = yyvsp[0].ttype; ;
3253 break;}
3254 case 190:
3255 #line 1187 "objc-parse.y"
3256 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3257 break;}
3258 case 191:
3259 #line 1192 "objc-parse.y"
3260 { yyval.ttype = NULL_TREE; ;
3261 break;}
3262 case 192:
3263 #line 1194 "objc-parse.y"
3264 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
3265 break;}
3266 case 193:
3267 #line 1196 "objc-parse.y"
3268 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
3269 break;}
3270 case 194:
3271 #line 1198 "objc-parse.y"
3272 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
3273 break;}
3274 case 195:
3275 #line 1200 "objc-parse.y"
3276 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3277 break;}
3278 case 201:
3279 #line 1218 "objc-parse.y"
3280 { really_start_incremental_init (NULL_TREE);
3281 /* Note that the call to clear_momentary
3282 is in process_init_element. */
3283 push_momentary (); ;
3284 break;}
3285 case 202:
3286 #line 1223 "objc-parse.y"
3287 { yyval.ttype = pop_init_level (0);
3288 if (yyval.ttype == error_mark_node
3289 && ! (yychar == STRING || yychar == CONSTANT))
3290 pop_momentary ();
3291 else
3292 pop_momentary_nofree (); ;
3293 break;}
3294 case 203:
3295 #line 1231 "objc-parse.y"
3296 { yyval.ttype = error_mark_node; ;
3297 break;}
3298 case 204:
3299 #line 1237 "objc-parse.y"
3300 { if (pedantic)
3301 pedwarn ("ANSI C forbids empty initializer braces"); ;
3302 break;}
3303 case 210:
3304 #line 1253 "objc-parse.y"
3305 { set_init_label (yyvsp[-1].ttype); ;
3306 break;}
3307 case 213:
3308 #line 1260 "objc-parse.y"
3309 { push_init_level (0); ;
3310 break;}
3311 case 214:
3312 #line 1262 "objc-parse.y"
3313 { process_init_element (pop_init_level (0)); ;
3314 break;}
3315 case 215:
3316 #line 1264 "objc-parse.y"
3317 { process_init_element (yyvsp[0].ttype); ;
3318 break;}
3319 case 219:
3320 #line 1275 "objc-parse.y"
3321 { set_init_label (yyvsp[0].ttype); ;
3322 break;}
3323 case 220:
3324 #line 1283 "objc-parse.y"
3325 { if (pedantic)
3326 pedwarn ("ANSI C forbids nested functions");
3327
3328 push_function_context ();
3329 if (! start_function (current_declspecs, yyvsp[0].ttype,
3330 prefix_attributes, NULL_TREE, 1))
3331 {
3332 pop_function_context ();
3333 YYERROR1;
3334 }
3335 reinit_parse_for_function (); ;
3336 break;}
3337 case 221:
3338 #line 1295 "objc-parse.y"
3339 { store_parm_decls (); ;
3340 break;}
3341 case 222:
3342 #line 1303 "objc-parse.y"
3343 { finish_function (1);
3344 pop_function_context (); ;
3345 break;}
3346 case 223:
3347 #line 1309 "objc-parse.y"
3348 { if (pedantic)
3349 pedwarn ("ANSI C forbids nested functions");
3350
3351 push_function_context ();
3352 if (! start_function (current_declspecs, yyvsp[0].ttype,
3353 prefix_attributes, NULL_TREE, 1))
3354 {
3355 pop_function_context ();
3356 YYERROR1;
3357 }
3358 reinit_parse_for_function (); ;
3359 break;}
3360 case 224:
3361 #line 1321 "objc-parse.y"
3362 { store_parm_decls (); ;
3363 break;}
3364 case 225:
3365 #line 1329 "objc-parse.y"
3366 { finish_function (1);
3367 pop_function_context (); ;
3368 break;}
3369 case 228:
3370 #line 1345 "objc-parse.y"
3371 { yyval.ttype = yyvsp[-1].ttype; ;
3372 break;}
3373 case 229:
3374 #line 1347 "objc-parse.y"
3375 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3376 break;}
3377 case 230:
3378 #line 1352 "objc-parse.y"
3379 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3380 break;}
3381 case 231:
3382 #line 1354 "objc-parse.y"
3383 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3384 break;}
3385 case 232:
3386 #line 1356 "objc-parse.y"
3387 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3388 break;}
3389 case 233:
3390 #line 1363 "objc-parse.y"
3391 { yyval.ttype = yyvsp[0].ttype; ;
3392 break;}
3393 case 236:
3394 #line 1375 "objc-parse.y"
3395 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3396 break;}
3397 case 237:
3398 #line 1380 "objc-parse.y"
3399 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3400 break;}
3401 case 238:
3402 #line 1382 "objc-parse.y"
3403 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3404 break;}
3405 case 239:
3406 #line 1384 "objc-parse.y"
3407 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3408 break;}
3409 case 240:
3410 #line 1391 "objc-parse.y"
3411 { yyval.ttype = yyvsp[0].ttype; ;
3412 break;}
3413 case 242:
3414 #line 1400 "objc-parse.y"
3415 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3416 break;}
3417 case 243:
3418 #line 1405 "objc-parse.y"
3419 { yyval.ttype = yyvsp[-1].ttype; ;
3420 break;}
3421 case 244:
3422 #line 1407 "objc-parse.y"
3423 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3424 break;}
3425 case 245:
3426 #line 1409 "objc-parse.y"
3427 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3428 break;}
3429 case 246:
3430 #line 1411 "objc-parse.y"
3431 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3432 break;}
3433 case 247:
3434 #line 1418 "objc-parse.y"
3435 { yyval.ttype = yyvsp[0].ttype; ;
3436 break;}
3437 case 249:
3438 #line 1424 "objc-parse.y"
3439 { yyval.ttype = NULL_TREE; ;
3440 break;}
3441 case 250:
3442 #line 1426 "objc-parse.y"
3443 { yyval.ttype = yyvsp[0].ttype; ;
3444 break;}
3445 case 251:
3446 #line 1431 "objc-parse.y"
3447 { yyval.ttype = NULL_TREE; ;
3448 break;}
3449 case 252:
3450 #line 1433 "objc-parse.y"
3451 { yyval.ttype = yyvsp[0].ttype; ;
3452 break;}
3453 case 253:
3454 #line 1438 "objc-parse.y"
3455 { yyval.ttype = NULL_TREE; ;
3456 break;}
3457 case 254:
3458 #line 1440 "objc-parse.y"
3459 { yyval.ttype = yyvsp[0].ttype; ;
3460 break;}
3461 case 255:
3462 #line 1445 "objc-parse.y"
3463 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
3464 /* Start scope of tag before parsing components. */
3465 ;
3466 break;}
3467 case 256:
3468 #line 1449 "objc-parse.y"
3469 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
3470 break;}
3471 case 257:
3472 #line 1451 "objc-parse.y"
3473 { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
3474 yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
3475 ;
3476 break;}
3477 case 258:
3478 #line 1455 "objc-parse.y"
3479 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
3480 break;}
3481 case 259:
3482 #line 1457 "objc-parse.y"
3483 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
3484 break;}
3485 case 260:
3486 #line 1459 "objc-parse.y"
3487 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
3488 break;}
3489 case 261:
3490 #line 1461 "objc-parse.y"
3491 { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
3492 yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
3493 ;
3494 break;}
3495 case 262:
3496 #line 1465 "objc-parse.y"
3497 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
3498 break;}
3499 case 263:
3500 #line 1467 "objc-parse.y"
3501 { yyvsp[0].itype = suspend_momentary ();
3502 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
3503 break;}
3504 case 264:
3505 #line 1470 "objc-parse.y"
3506 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype));
3507 resume_momentary (yyvsp[-5].itype); ;
3508 break;}
3509 case 265:
3510 #line 1473 "objc-parse.y"
3511 { yyvsp[0].itype = suspend_momentary ();
3512 yyval.ttype = start_enum (NULL_TREE); ;
3513 break;}
3514 case 266:
3515 #line 1476 "objc-parse.y"
3516 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype));
3517 resume_momentary (yyvsp[-5].itype); ;
3518 break;}
3519 case 267:
3520 #line 1479 "objc-parse.y"
3521 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
3522 break;}
3523 case 271:
3524 #line 1490 "objc-parse.y"
3525 { if (pedantic && ! flag_isoc9x)
3526 pedwarn ("comma at end of enumerator list"); ;
3527 break;}
3528 case 272:
3529 #line 1496 "objc-parse.y"
3530 { yyval.ttype = yyvsp[0].ttype; ;
3531 break;}
3532 case 273:
3533 #line 1498 "objc-parse.y"
3534 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
3535 pedwarn ("no semicolon at end of struct or union"); ;
3536 break;}
3537 case 274:
3538 #line 1503 "objc-parse.y"
3539 { yyval.ttype = NULL_TREE; ;
3540 break;}
3541 case 275:
3542 #line 1505 "objc-parse.y"
3543 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
3544 break;}
3545 case 276:
3546 #line 1507 "objc-parse.y"
3547 { if (pedantic)
3548 pedwarn ("extra semicolon in struct or union specified"); ;
3549 break;}
3550 case 277:
3551 #line 1511 "objc-parse.y"
3552 {
3553 tree interface = lookup_interface (yyvsp[-1].ttype);
3554
3555 if (interface)
3556 yyval.ttype = get_class_ivars (interface);
3557 else
3558 {
3559 error ("Cannot find interface declaration for `%s'",
3560 IDENTIFIER_POINTER (yyvsp[-1].ttype));
3561 yyval.ttype = NULL_TREE;
3562 }
3563 ;
3564 break;}
3565 case 278:
3566 #line 1536 "objc-parse.y"
3567 { yyval.ttype = yyvsp[0].ttype;
3568 current_declspecs = TREE_VALUE (declspec_stack);
3569 prefix_attributes = TREE_PURPOSE (declspec_stack);
3570 declspec_stack = TREE_CHAIN (declspec_stack);
3571 resume_momentary (yyvsp[-1].itype); ;
3572 break;}
3573 case 279:
3574 #line 1542 "objc-parse.y"
3575 {
3576 /* Support for unnamed structs or unions as members of
3577 structs or unions (which is [a] useful and [b] supports
3578 MS P-SDK). */
3579 if (pedantic)
3580 pedwarn ("ANSI C doesn't support unnamed structs/unions");
3581
3582 yyval.ttype = grokfield(yyvsp[-2].filename, yyvsp[-1].lineno, NULL, current_declspecs, NULL_TREE);
3583 current_declspecs = TREE_VALUE (declspec_stack);
3584 prefix_attributes = TREE_PURPOSE (declspec_stack);
3585 declspec_stack = TREE_CHAIN (declspec_stack);
3586 resume_momentary (yyvsp[-3].itype);
3587 ;
3588 break;}
3589 case 280:
3590 #line 1556 "objc-parse.y"
3591 { yyval.ttype = yyvsp[0].ttype;
3592 current_declspecs = TREE_VALUE (declspec_stack);
3593 prefix_attributes = TREE_PURPOSE (declspec_stack);
3594 declspec_stack = TREE_CHAIN (declspec_stack);
3595 resume_momentary (yyvsp[-1].itype); ;
3596 break;}
3597 case 281:
3598 #line 1562 "objc-parse.y"
3599 { if (pedantic)
3600 pedwarn ("ANSI C forbids member declarations with no members");
3601 shadow_tag(yyvsp[0].ttype);
3602 yyval.ttype = NULL_TREE; ;
3603 break;}
3604 case 282:
3605 #line 1567 "objc-parse.y"
3606 { yyval.ttype = NULL_TREE; ;
3607 break;}
3608 case 283:
3609 #line 1569 "objc-parse.y"
3610 { yyval.ttype = yyvsp[0].ttype;
3611 RESTORE_WARN_FLAGS (yyvsp[-1].itype); ;
3612 break;}
3613 case 285:
3614 #line 1576 "objc-parse.y"
3615 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3616 break;}
3617 case 286:
3618 #line 1581 "objc-parse.y"
3619 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
3620 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
3621 break;}
3622 case 287:
3623 #line 1585 "objc-parse.y"
3624 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
3625 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
3626 break;}
3627 case 288:
3628 #line 1588 "objc-parse.y"
3629 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
3630 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
3631 break;}
3632 case 290:
3633 #line 1600 "objc-parse.y"
3634 { if (yyvsp[-2].ttype == error_mark_node)
3635 yyval.ttype = yyvsp[-2].ttype;
3636 else
3637 yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
3638 break;}
3639 case 291:
3640 #line 1605 "objc-parse.y"
3641 { yyval.ttype = error_mark_node; ;
3642 break;}
3643 case 292:
3644 #line 1611 "objc-parse.y"
3645 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
3646 break;}
3647 case 293:
3648 #line 1613 "objc-parse.y"
3649 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3650 break;}
3651 case 294:
3652 #line 1618 "objc-parse.y"
3653 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3654 break;}
3655 case 295:
3656 #line 1620 "objc-parse.y"
3657 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3658 break;}
3659 case 296:
3660 #line 1625 "objc-parse.y"
3661 { yyval.ttype = NULL_TREE; ;
3662 break;}
3663 case 298:
3664 #line 1631 "objc-parse.y"
3665 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3666 break;}
3667 case 299:
3668 #line 1633 "objc-parse.y"
3669 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3670 break;}
3671 case 300:
3672 #line 1638 "objc-parse.y"
3673 { yyval.ttype = NULL_TREE; ;
3674 break;}
3675 case 301:
3676 #line 1640 "objc-parse.y"
3677 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3678 break;}
3679 case 302:
3680 #line 1645 "objc-parse.y"
3681 { yyval.ttype = yyvsp[-1].ttype; ;
3682 break;}
3683 case 303:
3684 #line 1648 "objc-parse.y"
3685 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3686 break;}
3687 case 304:
3688 #line 1650 "objc-parse.y"
3689 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
3690 break;}
3691 case 305:
3692 #line 1652 "objc-parse.y"
3693 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3694 break;}
3695 case 306:
3696 #line 1654 "objc-parse.y"
3697 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3698 break;}
3699 case 307:
3700 #line 1656 "objc-parse.y"
3701 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3702 break;}
3703 case 308:
3704 #line 1658 "objc-parse.y"
3705 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3706 break;}
3707 case 309:
3708 #line 1660 "objc-parse.y"
3709 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
3710 break;}
3711 case 310:
3712 #line 1662 "objc-parse.y"
3713 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
3714 break;}
3715 case 311:
3716 #line 1666 "objc-parse.y"
3717 { yyval.ttype = yyvsp[0].ttype; ;
3718 break;}
3719 case 312:
3720 #line 1675 "objc-parse.y"
3721 {
3722 if (pedantic && yyvsp[0].ends_in_label)
3723 pedwarn ("ANSI C forbids label at end of compound statement");
3724 ;
3725 break;}
3726 case 314:
3727 #line 1684 "objc-parse.y"
3728 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3729 break;}
3730 case 315:
3731 #line 1686 "objc-parse.y"
3732 { yyval.ends_in_label = 0; ;
3733 break;}
3734 case 319:
3735 #line 1698 "objc-parse.y"
3736 { emit_line_note (input_filename, lineno);
3737 pushlevel (0);
3738 clear_last_expr ();
3739 push_momentary ();
3740 expand_start_bindings (0);
3741 if (objc_method_context)
3742 add_objc_decls ();
3743 ;
3744 break;}
3745 case 321:
3746 #line 1713 "objc-parse.y"
3747 { if (pedantic)
3748 pedwarn ("ANSI C forbids label declarations"); ;
3749 break;}
3750 case 324:
3751 #line 1724 "objc-parse.y"
3752 { tree link;
3753 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
3754 {
3755 tree label = shadow_label (TREE_VALUE (link));
3756 C_DECLARED_LABEL_FLAG (label) = 1;
3757 declare_nonlocal_label (label);
3758 }
3759 ;
3760 break;}
3761 case 325:
3762 #line 1738 "objc-parse.y"
3763 {;
3764 break;}
3765 case 327:
3766 #line 1742 "objc-parse.y"
3767 { compstmt_count++; ;
3768 break;}
3769 case 328:
3770 #line 1745 "objc-parse.y"
3771 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
3772 break;}
3773 case 329:
3774 #line 1747 "objc-parse.y"
3775 { emit_line_note (input_filename, lineno);
3776 expand_end_bindings (getdecls (), 1, 0);
3777 yyval.ttype = poplevel (1, 1, 0);
3778 if (yychar == CONSTANT || yychar == STRING)
3779 pop_momentary_nofree ();
3780 else
3781 pop_momentary (); ;
3782 break;}
3783 case 330:
3784 #line 1755 "objc-parse.y"
3785 { emit_line_note (input_filename, lineno);
3786 expand_end_bindings (getdecls (), kept_level_p (), 0);
3787 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3788 if (yychar == CONSTANT || yychar == STRING)
3789 pop_momentary_nofree ();
3790 else
3791 pop_momentary (); ;
3792 break;}
3793 case 331:
3794 #line 1763 "objc-parse.y"
3795 { emit_line_note (input_filename, lineno);
3796 expand_end_bindings (getdecls (), kept_level_p (), 0);
3797 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3798 if (yychar == CONSTANT || yychar == STRING)
3799 pop_momentary_nofree ();
3800 else
3801 pop_momentary (); ;
3802 break;}
3803 case 332:
3804 #line 1774 "objc-parse.y"
3805 { if (current_function_decl == 0)
3806 {
3807 error ("braced-group within expression allowed only inside a function");
3808 YYERROR;
3809 }
3810 /* We must force a BLOCK for this level
3811 so that, if it is not expanded later,
3812 there is a way to turn off the entire subtree of blocks
3813 that are contained in it. */
3814 keep_next_level ();
3815 push_iterator_stack ();
3816 push_label_level ();
3817 yyval.ttype = expand_start_stmt_expr ();
3818 compstmt_count++;
3819 ;
3820 break;}
3821 case 333:
3822 #line 1791 "objc-parse.y"
3823 { yyval.ttype = yyvsp[0].ttype; ;
3824 break;}
3825 case 336:
3826 #line 1805 "objc-parse.y"
3827 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3828 c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0,
3829 compstmt_count);
3830 yyval.itype = stmt_count;
3831 if_stmt_file = yyvsp[-5].filename;
3832 if_stmt_line = yyvsp[-4].lineno;
3833 position_after_white_space (); ;
3834 break;}
3835 case 337:
3836 #line 1819 "objc-parse.y"
3837 { stmt_count++;
3838 compstmt_count++;
3839 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3840 /* See comment in `while' alternative, above. */
3841 emit_nop ();
3842 expand_start_loop_continue_elsewhere (1);
3843 position_after_white_space (); ;
3844 break;}
3845 case 338:
3846 #line 1827 "objc-parse.y"
3847 { expand_loop_continue_here (); ;
3848 break;}
3849 case 339:
3850 #line 1831 "objc-parse.y"
3851 { yyval.filename = input_filename; ;
3852 break;}
3853 case 340:
3854 #line 1835 "objc-parse.y"
3855 { yyval.lineno = lineno; ;
3856 break;}
3857 case 341:
3858 #line 1840 "objc-parse.y"
3859 { ;
3860 break;}
3861 case 342:
3862 #line 1845 "objc-parse.y"
3863 { ;
3864 break;}
3865 case 343:
3866 #line 1850 "objc-parse.y"
3867 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3868 break;}
3869 case 344:
3870 #line 1855 "objc-parse.y"
3871 { yyval.ends_in_label = 0; ;
3872 break;}
3873 case 345:
3874 #line 1857 "objc-parse.y"
3875 { yyval.ends_in_label = 1; ;
3876 break;}
3877 case 346:
3878 #line 1863 "objc-parse.y"
3879 { stmt_count++; ;
3880 break;}
3881 case 348:
3882 #line 1866 "objc-parse.y"
3883 { stmt_count++;
3884 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3885 /* It appears that this should not be done--that a non-lvalue array
3886 shouldn't get an error if the value isn't used.
3887 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3888 if it appears as a top-level expression,
3889 but says nothing about non-lvalue arrays. */
3890 #if 0
3891 /* Call default_conversion to get an error
3892 on referring to a register array if pedantic. */
3893 if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
3894 || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
3895 yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
3896 #endif
3897 iterator_expand (yyvsp[-1].ttype);
3898 clear_momentary (); ;
3899 break;}
3900 case 349:
3901 #line 1883 "objc-parse.y"
3902 { c_expand_start_else ();
3903 yyvsp[-1].itype = stmt_count;
3904 position_after_white_space (); ;
3905 break;}
3906 case 350:
3907 #line 1887 "objc-parse.y"
3908 { c_expand_end_cond ();
3909 if (extra_warnings && stmt_count == yyvsp[-3].itype)
3910 warning ("empty body in an else-statement"); ;
3911 break;}
3912 case 351:
3913 #line 1891 "objc-parse.y"
3914 { c_expand_end_cond ();
3915 /* This warning is here instead of in simple_if, because we
3916 do not want a warning if an empty if is followed by an
3917 else statement. Increment stmt_count so we don't
3918 give a second error if this is a nested `if'. */
3919 if (extra_warnings && stmt_count++ == yyvsp[0].itype)
3920 warning_with_file_and_line (if_stmt_file, if_stmt_line,
3921 "empty body in an if-statement"); ;
3922 break;}
3923 case 352:
3924 #line 1903 "objc-parse.y"
3925 { c_expand_end_cond (); ;
3926 break;}
3927 case 353:
3928 #line 1905 "objc-parse.y"
3929 { stmt_count++;
3930 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3931 /* The emit_nop used to come before emit_line_note,
3932 but that made the nop seem like part of the preceding line.
3933 And that was confusing when the preceding line was
3934 inside of an if statement and was not really executed.
3935 I think it ought to work to put the nop after the line number.
3936 We will see. --rms, July 15, 1991. */
3937 emit_nop (); ;
3938 break;}
3939 case 354:
3940 #line 1915 "objc-parse.y"
3941 { /* Don't start the loop till we have succeeded
3942 in parsing the end test. This is to make sure
3943 that we end every loop we start. */
3944 expand_start_loop (1);
3945 emit_line_note (input_filename, lineno);
3946 expand_exit_loop_if_false (NULL_PTR,
3947 truthvalue_conversion (yyvsp[-1].ttype));
3948 position_after_white_space (); ;
3949 break;}
3950 case 355:
3951 #line 1924 "objc-parse.y"
3952 { expand_end_loop (); ;
3953 break;}
3954 case 356:
3955 #line 1927 "objc-parse.y"
3956 { emit_line_note (input_filename, lineno);
3957 expand_exit_loop_if_false (NULL_PTR,
3958 truthvalue_conversion (yyvsp[-2].ttype));
3959 expand_end_loop ();
3960 clear_momentary (); ;
3961 break;}
3962 case 357:
3963 #line 1934 "objc-parse.y"
3964 { expand_end_loop ();
3965 clear_momentary (); ;
3966 break;}
3967 case 358:
3968 #line 1938 "objc-parse.y"
3969 { stmt_count++;
3970 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3971 /* See comment in `while' alternative, above. */
3972 emit_nop ();
3973 if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
3974 /* Next step is to call expand_start_loop_continue_elsewhere,
3975 but wait till after we parse the entire for (...).
3976 Otherwise, invalid input might cause us to call that
3977 fn without calling expand_end_loop. */
3978 ;
3979 break;}
3980 case 359:
3981 #line 1950 "objc-parse.y"
3982 { yyvsp[0].lineno = lineno;
3983 yyval.filename = input_filename; ;
3984 break;}
3985 case 360:
3986 #line 1953 "objc-parse.y"
3987 {
3988 /* Start the loop. Doing this after parsing
3989 all the expressions ensures we will end the loop. */
3990 expand_start_loop_continue_elsewhere (1);
3991 /* Emit the end-test, with a line number. */
3992 emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
3993 if (yyvsp[-4].ttype)
3994 expand_exit_loop_if_false (NULL_PTR,
3995 truthvalue_conversion (yyvsp[-4].ttype));
3996 /* Don't let the tree nodes for $9 be discarded by
3997 clear_momentary during the parsing of the next stmt. */
3998 push_momentary ();
3999 yyvsp[-3].lineno = lineno;
4000 yyvsp[-2].filename = input_filename;
4001 position_after_white_space (); ;
4002 break;}
4003 case 361:
4004 #line 1969 "objc-parse.y"
4005 { /* Emit the increment expression, with a line number. */
4006 emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
4007 expand_loop_continue_here ();
4008 if (yyvsp[-3].ttype)
4009 c_expand_expr_stmt (yyvsp[-3].ttype);
4010 if (yychar == CONSTANT || yychar == STRING)
4011 pop_momentary_nofree ();
4012 else
4013 pop_momentary ();
4014 expand_end_loop (); ;
4015 break;}
4016 case 362:
4017 #line 1980 "objc-parse.y"
4018 { stmt_count++;
4019 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
4020 c_expand_start_case (yyvsp[-1].ttype);
4021 /* Don't let the tree nodes for $3 be discarded by
4022 clear_momentary during the parsing of the next stmt. */
4023 push_momentary ();
4024 position_after_white_space (); ;
4025 break;}
4026 case 363:
4027 #line 1988 "objc-parse.y"
4028 { expand_end_case (yyvsp[-3].ttype);
4029 if (yychar == CONSTANT || yychar == STRING)
4030 pop_momentary_nofree ();
4031 else
4032 pop_momentary (); ;
4033 break;}
4034 case 364:
4035 #line 1994 "objc-parse.y"
4036 { stmt_count++;
4037 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
4038 if ( ! expand_exit_something ())
4039 error ("break statement not within loop or switch"); ;
4040 break;}
4041 case 365:
4042 #line 1999 "objc-parse.y"
4043 { stmt_count++;
4044 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
4045 if (! expand_continue_loop (NULL_PTR))
4046 error ("continue statement not within a loop"); ;
4047 break;}
4048 case 366:
4049 #line 2004 "objc-parse.y"
4050 { stmt_count++;
4051 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
4052 c_expand_return (NULL_TREE); ;
4053 break;}
4054 case 367:
4055 #line 2008 "objc-parse.y"
4056 { stmt_count++;
4057 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
4058 c_expand_return (yyvsp[-1].ttype); ;
4059 break;}
4060 case 368:
4061 #line 2012 "objc-parse.y"
4062 { stmt_count++;
4063 emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
4064 STRIP_NOPS (yyvsp[-2].ttype);
4065 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
4066 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
4067 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
4068 expand_asm (yyvsp[-2].ttype);
4069 else
4070 error ("argument of `asm' is not a constant string"); ;
4071 break;}
4072 case 369:
4073 #line 2023 "objc-parse.y"
4074 { stmt_count++;
4075 emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
4076 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
4077 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
4078 input_filename, lineno); ;
4079 break;}
4080 case 370:
4081 #line 2030 "objc-parse.y"
4082 { stmt_count++;
4083 emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
4084 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
4085 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
4086 input_filename, lineno); ;
4087 break;}
4088 case 371:
4089 #line 2038 "objc-parse.y"
4090 { stmt_count++;
4091 emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
4092 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
4093 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
4094 input_filename, lineno); ;
4095 break;}
4096 case 372:
4097 #line 2044 "objc-parse.y"
4098 { tree decl;
4099 stmt_count++;
4100 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
4101 decl = lookup_label (yyvsp[-1].ttype);
4102 if (decl != 0)
4103 {
4104 TREE_USED (decl) = 1;
4105 expand_goto (decl);
4106 }
4107 ;
4108 break;}
4109 case 373:
4110 #line 2055 "objc-parse.y"
4111 { if (pedantic)
4112 pedwarn ("ANSI C forbids `goto *expr;'");
4113 stmt_count++;
4114 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
4115 expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
4116 break;}
4117 case 376:
4118 #line 2070 "objc-parse.y"
4119 {
4120 /* The value returned by this action is */
4121 /* 1 if everything is OK */
4122 /* 0 in case of error or already bound iterator */
4123
4124 yyval.itype = 0;
4125 if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
4126 error ("invalid `for (ITERATOR)' syntax");
4127 else if (! ITERATOR_P (yyvsp[-1].ttype))
4128 error ("`%s' is not an iterator",
4129 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
4130 else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
4131 error ("`for (%s)' inside expansion of same iterator",
4132 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
4133 else
4134 {
4135 yyval.itype = 1;
4136 iterator_for_loop_start (yyvsp[-1].ttype);
4137 }
4138 ;
4139 break;}
4140 case 377:
4141 #line 2091 "objc-parse.y"
4142 {
4143 if (yyvsp[-1].itype)
4144 iterator_for_loop_end (yyvsp[-3].ttype);
4145 ;
4146 break;}
4147 case 378:
4148 #line 2126 "objc-parse.y"
4149 { register tree value = check_case_value (yyvsp[-1].ttype);
4150 register tree label
4151 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
4152
4153 stmt_count++;
4154
4155 if (value != error_mark_node)
4156 {
4157 tree duplicate;
4158 int success;
4159
4160 if (pedantic && ! INTEGRAL_TYPE_P (TREE_TYPE (value)))
4161 pedwarn ("label must have integral type in ANSI C");
4162
4163 success = pushcase (value, convert_and_check,
4164 label, &duplicate);
4165
4166 if (success == 1)
4167 error ("case label not within a switch statement");
4168 else if (success == 2)
4169 {
4170 error ("duplicate case value");
4171 error_with_decl (duplicate, "this is the first entry for that value");
4172 }
4173 else if (success == 3)
4174 warning ("case value out of range");
4175 else if (success == 5)
4176 error ("case label within scope of cleanup or variable array");
4177 }
4178 position_after_white_space (); ;
4179 break;}
4180 case 379:
4181 #line 2157 "objc-parse.y"
4182 { register tree value1 = check_case_value (yyvsp[-3].ttype);
4183 register tree value2 = check_case_value (yyvsp[-1].ttype);
4184 register tree label
4185 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
4186
4187 if (pedantic)
4188 pedwarn ("ANSI C forbids case ranges");
4189 stmt_count++;
4190
4191 if (value1 != error_mark_node && value2 != error_mark_node)
4192 {
4193 tree duplicate;
4194 int success = pushcase_range (value1, value2,
4195 convert_and_check, label,
4196 &duplicate);
4197 if (success == 1)
4198 error ("case label not within a switch statement");
4199 else if (success == 2)
4200 {
4201 error ("duplicate case value");
4202 error_with_decl (duplicate, "this is the first entry for that value");
4203 }
4204 else if (success == 3)
4205 warning ("case value out of range");
4206 else if (success == 4)
4207 warning ("empty case range");
4208 else if (success == 5)
4209 error ("case label within scope of cleanup or variable array");
4210 }
4211 position_after_white_space (); ;
4212 break;}
4213 case 380:
4214 #line 2188 "objc-parse.y"
4215 {
4216 tree duplicate;
4217 register tree label
4218 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
4219 int success = pushcase (NULL_TREE, 0, label, &duplicate);
4220 stmt_count++;
4221 if (success == 1)
4222 error ("default label not within a switch statement");
4223 else if (success == 2)
4224 {
4225 error ("multiple default labels in one switch");
4226 error_with_decl (duplicate, "this is the first default label");
4227 }
4228 position_after_white_space (); ;
4229 break;}
4230 case 381:
4231 #line 2203 "objc-parse.y"
4232 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
4233 stmt_count++;
4234 emit_nop ();
4235 if (label)
4236 {
4237 expand_label (label);
4238 decl_attributes (label, yyvsp[0].ttype, NULL_TREE);
4239 }
4240 position_after_white_space (); ;
4241 break;}
4242 case 382:
4243 #line 2218 "objc-parse.y"
4244 { emit_line_note (input_filename, lineno);
4245 yyval.ttype = NULL_TREE; ;
4246 break;}
4247 case 383:
4248 #line 2221 "objc-parse.y"
4249 { emit_line_note (input_filename, lineno); ;
4250 break;}
4251 case 384:
4252 #line 2226 "objc-parse.y"
4253 { yyval.ttype = NULL_TREE; ;
4254 break;}
4255 case 386:
4256 #line 2233 "objc-parse.y"
4257 { yyval.ttype = NULL_TREE; ;
4258 break;}
4259 case 389:
4260 #line 2240 "objc-parse.y"
4261 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4262 break;}
4263 case 390:
4264 #line 2245 "objc-parse.y"
4265 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4266 break;}
4267 case 391:
4268 #line 2250 "objc-parse.y"
4269 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
4270 break;}
4271 case 392:
4272 #line 2252 "objc-parse.y"
4273 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
4274 break;}
4275 case 393:
4276 #line 2258 "objc-parse.y"
4277 { pushlevel (0);
4278 clear_parm_order ();
4279 declare_parm_level (0); ;
4280 break;}
4281 case 394:
4282 #line 2262 "objc-parse.y"
4283 { yyval.ttype = yyvsp[0].ttype;
4284 parmlist_tags_warning ();
4285 poplevel (0, 0, 0); ;
4286 break;}
4287 case 396:
4288 #line 2270 "objc-parse.y"
4289 { tree parm;
4290 if (pedantic)
4291 pedwarn ("ANSI C forbids forward parameter declarations");
4292 /* Mark the forward decls as such. */
4293 for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
4294 TREE_ASM_WRITTEN (parm) = 1;
4295 clear_parm_order (); ;
4296 break;}
4297 case 397:
4298 #line 2278 "objc-parse.y"
4299 { yyval.ttype = yyvsp[0].ttype; ;
4300 break;}
4301 case 398:
4302 #line 2280 "objc-parse.y"
4303 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
4304 break;}
4305 case 399:
4306 #line 2286 "objc-parse.y"
4307 { yyval.ttype = get_parm_info (0); ;
4308 break;}
4309 case 400:
4310 #line 2288 "objc-parse.y"
4311 { yyval.ttype = get_parm_info (0);
4312 /* Gcc used to allow this as an extension. However, it does
4313 not work for all targets, and thus has been disabled.
4314 Also, since func (...) and func () are indistinguishable,
4315 it caused problems with the code in expand_builtin which
4316 tries to verify that BUILT_IN_NEXT_ARG is being used
4317 correctly. */
4318 error ("ANSI C requires a named argument before `...'");
4319 ;
4320 break;}
4321 case 401:
4322 #line 2298 "objc-parse.y"
4323 { yyval.ttype = get_parm_info (1); ;
4324 break;}
4325 case 402:
4326 #line 2300 "objc-parse.y"
4327 { yyval.ttype = get_parm_info (0); ;
4328 break;}
4329 case 403:
4330 #line 2305 "objc-parse.y"
4331 { push_parm_decl (yyvsp[0].ttype); ;
4332 break;}
4333 case 404:
4334 #line 2307 "objc-parse.y"
4335 { push_parm_decl (yyvsp[0].ttype); ;
4336 break;}
4337 case 405:
4338 #line 2314 "objc-parse.y"
4339 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4340 yyvsp[-1].ttype),
4341 build_tree_list (prefix_attributes,
4342 yyvsp[0].ttype));
4343 current_declspecs = TREE_VALUE (declspec_stack);
4344 prefix_attributes = TREE_PURPOSE (declspec_stack);
4345 declspec_stack = TREE_CHAIN (declspec_stack);
4346 resume_momentary (yyvsp[-2].itype); ;
4347 break;}
4348 case 406:
4349 #line 2323 "objc-parse.y"
4350 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4351 yyvsp[-1].ttype),
4352 build_tree_list (prefix_attributes,
4353 yyvsp[0].ttype));
4354 current_declspecs = TREE_VALUE (declspec_stack);
4355 prefix_attributes = TREE_PURPOSE (declspec_stack);
4356 declspec_stack = TREE_CHAIN (declspec_stack);
4357 resume_momentary (yyvsp[-2].itype); ;
4358 break;}
4359 case 407:
4360 #line 2332 "objc-parse.y"
4361 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4362 yyvsp[-1].ttype),
4363 build_tree_list (prefix_attributes,
4364 yyvsp[0].ttype));
4365 current_declspecs = TREE_VALUE (declspec_stack);
4366 prefix_attributes = TREE_PURPOSE (declspec_stack);
4367 declspec_stack = TREE_CHAIN (declspec_stack);
4368 resume_momentary (yyvsp[-2].itype); ;
4369 break;}
4370 case 408:
4371 #line 2341 "objc-parse.y"
4372 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4373 yyvsp[-1].ttype),
4374 build_tree_list (prefix_attributes,
4375 yyvsp[0].ttype));
4376 current_declspecs = TREE_VALUE (declspec_stack);
4377 prefix_attributes = TREE_PURPOSE (declspec_stack);
4378 declspec_stack = TREE_CHAIN (declspec_stack);
4379 resume_momentary (yyvsp[-2].itype); ;
4380 break;}
4381 case 409:
4382 #line 2351 "objc-parse.y"
4383 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4384 yyvsp[-1].ttype),
4385 build_tree_list (prefix_attributes,
4386 yyvsp[0].ttype));
4387 current_declspecs = TREE_VALUE (declspec_stack);
4388 prefix_attributes = TREE_PURPOSE (declspec_stack);
4389 declspec_stack = TREE_CHAIN (declspec_stack);
4390 resume_momentary (yyvsp[-2].itype); ;
4391 break;}
4392 case 410:
4393 #line 2365 "objc-parse.y"
4394 { pushlevel (0);
4395 clear_parm_order ();
4396 declare_parm_level (1); ;
4397 break;}
4398 case 411:
4399 #line 2369 "objc-parse.y"
4400 { yyval.ttype = yyvsp[0].ttype;
4401 parmlist_tags_warning ();
4402 poplevel (0, 0, 0); ;
4403 break;}
4404 case 413:
4405 #line 2377 "objc-parse.y"
4406 { tree t;
4407 for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
4408 if (TREE_VALUE (t) == NULL_TREE)
4409 error ("`...' in old-style identifier list");
4410 yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
4411 break;}
4412 case 414:
4413 #line 2387 "objc-parse.y"
4414 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4415 break;}
4416 case 415:
4417 #line 2389 "objc-parse.y"
4418 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4419 break;}
4420 case 416:
4421 #line 2395 "objc-parse.y"
4422 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4423 break;}
4424 case 417:
4425 #line 2397 "objc-parse.y"
4426 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4427 break;}
4428 case 418:
4429 #line 2402 "objc-parse.y"
4430 { yyval.itype = SAVE_WARN_FLAGS();
4431 pedantic = 0;
4432 warn_pointer_arith = 0; ;
4433 break;}
4434 case 424:
4435 #line 2416 "objc-parse.y"
4436 {
4437 if (objc_implementation_context)
4438 {
4439 finish_class (objc_implementation_context);
4440 objc_ivar_chain = NULL_TREE;
4441 objc_implementation_context = NULL_TREE;
4442 }
4443 else
4444 warning ("`@end' must appear in an implementation context");
4445 ;
4446 break;}
4447 case 425:
4448 #line 2431 "objc-parse.y"
4449 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4450 break;}
4451 case 426:
4452 #line 2433 "objc-parse.y"
4453 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4454 break;}
4455 case 427:
4456 #line 2438 "objc-parse.y"
4457 {
4458 objc_declare_class (yyvsp[-1].ttype);
4459 ;
4460 break;}
4461 case 428:
4462 #line 2444 "objc-parse.y"
4463 {
4464 objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype);
4465 ;
4466 break;}
4467 case 429:
4468 #line 2450 "objc-parse.y"
4469 {
4470 objc_interface_context = objc_ivar_context
4471 = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
4472 objc_public_flag = 0;
4473 ;
4474 break;}
4475 case 430:
4476 #line 2456 "objc-parse.y"
4477 {
4478 continue_class (objc_interface_context);
4479 ;
4480 break;}
4481 case 431:
4482 #line 2461 "objc-parse.y"
4483 {
4484 finish_class (objc_interface_context);
4485 objc_interface_context = NULL_TREE;
4486 ;
4487 break;}
4488 case 432:
4489 #line 2467 "objc-parse.y"
4490 {
4491 objc_interface_context
4492 = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype);
4493 continue_class (objc_interface_context);
4494 ;
4495 break;}
4496 case 433:
4497 #line 2474 "objc-parse.y"
4498 {
4499 finish_class (objc_interface_context);
4500 objc_interface_context = NULL_TREE;
4501 ;
4502 break;}
4503 case 434:
4504 #line 2480 "objc-parse.y"
4505 {
4506 objc_interface_context = objc_ivar_context
4507 = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype);
4508 objc_public_flag = 0;
4509 ;
4510 break;}
4511 case 435:
4512 #line 2486 "objc-parse.y"
4513 {
4514 continue_class (objc_interface_context);
4515 ;
4516 break;}
4517 case 436:
4518 #line 2491 "objc-parse.y"
4519 {
4520 finish_class (objc_interface_context);
4521 objc_interface_context = NULL_TREE;
4522 ;
4523 break;}
4524 case 437:
4525 #line 2497 "objc-parse.y"
4526 {
4527 objc_interface_context
4528 = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
4529 continue_class (objc_interface_context);
4530 ;
4531 break;}
4532 case 438:
4533 #line 2504 "objc-parse.y"
4534 {
4535 finish_class (objc_interface_context);
4536 objc_interface_context = NULL_TREE;
4537 ;
4538 break;}
4539 case 439:
4540 #line 2510 "objc-parse.y"
4541 {
4542 objc_implementation_context = objc_ivar_context
4543 = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4544 objc_public_flag = 0;
4545 ;
4546 break;}
4547 case 440:
4548 #line 2516 "objc-parse.y"
4549 {
4550 objc_ivar_chain
4551 = continue_class (objc_implementation_context);
4552 ;
4553 break;}
4554 case 441:
4555 #line 2522 "objc-parse.y"
4556 {
4557 objc_implementation_context
4558 = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
4559 objc_ivar_chain
4560 = continue_class (objc_implementation_context);
4561 ;
4562 break;}
4563 case 442:
4564 #line 2530 "objc-parse.y"
4565 {
4566 objc_implementation_context = objc_ivar_context
4567 = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
4568 objc_public_flag = 0;
4569 ;
4570 break;}
4571 case 443:
4572 #line 2536 "objc-parse.y"
4573 {
4574 objc_ivar_chain
4575 = continue_class (objc_implementation_context);
4576 ;
4577 break;}
4578 case 444:
4579 #line 2542 "objc-parse.y"
4580 {
4581 objc_implementation_context
4582 = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
4583 objc_ivar_chain
4584 = continue_class (objc_implementation_context);
4585 ;
4586 break;}
4587 case 445:
4588 #line 2550 "objc-parse.y"
4589 {
4590 objc_interface_context
4591 = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
4592 continue_class (objc_interface_context);
4593 ;
4594 break;}
4595 case 446:
4596 #line 2557 "objc-parse.y"
4597 {
4598 finish_class (objc_interface_context);
4599 objc_interface_context = NULL_TREE;
4600 ;
4601 break;}
4602 case 447:
4603 #line 2563 "objc-parse.y"
4604 {
4605 objc_implementation_context
4606 = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
4607 objc_ivar_chain
4608 = continue_class (objc_implementation_context);
4609 ;
4610 break;}
4611 case 448:
4612 #line 2573 "objc-parse.y"
4613 {
4614 remember_protocol_qualifiers ();
4615 objc_interface_context
4616 = start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[-1].ttype, yyvsp[0].ttype);
4617 ;
4618 break;}
4619 case 449:
4620 #line 2579 "objc-parse.y"
4621 {
4622 forget_protocol_qualifiers();
4623 finish_protocol(objc_interface_context);
4624 objc_interface_context = NULL_TREE;
4625 ;
4626 break;}
4627 case 450:
4628 #line 2588 "objc-parse.y"
4629 {
4630 yyval.ttype = NULL_TREE;
4631 ;
4632 break;}
4633 case 452:
4634 #line 2596 "objc-parse.y"
4635 {
4636 if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR)
4637 yyval.ttype = yyvsp[-1].ttype;
4638 else
4639 YYERROR1;
4640 ;
4641 break;}
4642 case 455:
4643 #line 2610 "objc-parse.y"
4644 { objc_public_flag = 2; ;
4645 break;}
4646 case 456:
4647 #line 2611 "objc-parse.y"
4648 { objc_public_flag = 0; ;
4649 break;}
4650 case 457:
4651 #line 2612 "objc-parse.y"
4652 { objc_public_flag = 1; ;
4653 break;}
4654 case 458:
4655 #line 2617 "objc-parse.y"
4656 {
4657 yyval.ttype = NULL_TREE;
4658 ;
4659 break;}
4660 case 460:
4661 #line 2622 "objc-parse.y"
4662 {
4663 if (pedantic)
4664 pedwarn ("extra semicolon in struct or union specified");
4665 ;
4666 break;}
4667 case 461:
4668 #line 2640 "objc-parse.y"
4669 { yyval.ttype = yyvsp[0].ttype;
4670 current_declspecs = TREE_VALUE (declspec_stack);
4671 prefix_attributes = TREE_PURPOSE (declspec_stack);
4672 declspec_stack = TREE_CHAIN (declspec_stack);
4673 resume_momentary (yyvsp[-1].itype); ;
4674 break;}
4675 case 462:
4676 #line 2646 "objc-parse.y"
4677 { yyval.ttype = yyvsp[0].ttype;
4678 current_declspecs = TREE_VALUE (declspec_stack);
4679 prefix_attributes = TREE_PURPOSE (declspec_stack);
4680 declspec_stack = TREE_CHAIN (declspec_stack);
4681 resume_momentary (yyvsp[-1].itype); ;
4682 break;}
4683 case 463:
4684 #line 2652 "objc-parse.y"
4685 { yyval.ttype = NULL_TREE; ;
4686 break;}
4687 case 464:
4688 #line 2657 "objc-parse.y"
4689 { yyval.ttype = NULL_TREE; ;
4690 break;}
4691 case 467:
4692 #line 2664 "objc-parse.y"
4693 {
4694 yyval.ttype = add_instance_variable (objc_ivar_context,
4695 objc_public_flag,
4696 yyvsp[0].ttype, current_declspecs,
4697 NULL_TREE);
4698 ;
4699 break;}
4700 case 468:
4701 #line 2671 "objc-parse.y"
4702 {
4703 yyval.ttype = add_instance_variable (objc_ivar_context,
4704 objc_public_flag,
4705 yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype);
4706 ;
4707 break;}
4708 case 469:
4709 #line 2677 "objc-parse.y"
4710 {
4711 yyval.ttype = add_instance_variable (objc_ivar_context,
4712 objc_public_flag,
4713 NULL_TREE,
4714 current_declspecs, yyvsp[0].ttype);
4715 ;
4716 break;}
4717 case 470:
4718 #line 2687 "objc-parse.y"
4719 {
4720 remember_protocol_qualifiers ();
4721 if (objc_implementation_context)
4722 objc_inherit_code = CLASS_METHOD_DECL;
4723 else
4724 fatal ("method definition not in class context");
4725 ;
4726 break;}
4727 case 471:
4728 #line 2695 "objc-parse.y"
4729 {
4730 forget_protocol_qualifiers ();
4731 add_class_method (objc_implementation_context, yyvsp[0].ttype);
4732 start_method_def (yyvsp[0].ttype);
4733 objc_method_context = yyvsp[0].ttype;
4734 ;
4735 break;}
4736 case 472:
4737 #line 2702 "objc-parse.y"
4738 {
4739 continue_method_def ();
4740 ;
4741 break;}
4742 case 473:
4743 #line 2706 "objc-parse.y"
4744 {
4745 finish_method_def ();
4746 objc_method_context = NULL_TREE;
4747 ;
4748 break;}
4749 case 474:
4750 #line 2712 "objc-parse.y"
4751 {
4752 remember_protocol_qualifiers ();
4753 if (objc_implementation_context)
4754 objc_inherit_code = INSTANCE_METHOD_DECL;
4755 else
4756 fatal ("method definition not in class context");
4757 ;
4758 break;}
4759 case 475:
4760 #line 2720 "objc-parse.y"
4761 {
4762 forget_protocol_qualifiers ();
4763 add_instance_method (objc_implementation_context, yyvsp[0].ttype);
4764 start_method_def (yyvsp[0].ttype);
4765 objc_method_context = yyvsp[0].ttype;
4766 ;
4767 break;}
4768 case 476:
4769 #line 2727 "objc-parse.y"
4770 {
4771 continue_method_def ();
4772 ;
4773 break;}
4774 case 477:
4775 #line 2731 "objc-parse.y"
4776 {
4777 finish_method_def ();
4778 objc_method_context = NULL_TREE;
4779 ;
4780 break;}
4781 case 479:
4782 #line 2743 "objc-parse.y"
4783 {yyval.ttype = NULL_TREE; ;
4784 break;}
4785 case 484:
4786 #line 2750 "objc-parse.y"
4787 {yyval.ttype = NULL_TREE; ;
4788 break;}
4789 case 488:
4790 #line 2760 "objc-parse.y"
4791 {
4792 /* Remember protocol qualifiers in prototypes. */
4793 remember_protocol_qualifiers ();
4794 objc_inherit_code = CLASS_METHOD_DECL;
4795 ;
4796 break;}
4797 case 489:
4798 #line 2766 "objc-parse.y"
4799 {
4800 /* Forget protocol qualifiers here. */
4801 forget_protocol_qualifiers ();
4802 add_class_method (objc_interface_context, yyvsp[0].ttype);
4803 ;
4804 break;}
4805 case 491:
4806 #line 2774 "objc-parse.y"
4807 {
4808 /* Remember protocol qualifiers in prototypes. */
4809 remember_protocol_qualifiers ();
4810 objc_inherit_code = INSTANCE_METHOD_DECL;
4811 ;
4812 break;}
4813 case 492:
4814 #line 2780 "objc-parse.y"
4815 {
4816 /* Forget protocol qualifiers here. */
4817 forget_protocol_qualifiers ();
4818 add_instance_method (objc_interface_context, yyvsp[0].ttype);
4819 ;
4820 break;}
4821 case 494:
4822 #line 2790 "objc-parse.y"
4823 {
4824 yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
4825 ;
4826 break;}
4827 case 495:
4828 #line 2795 "objc-parse.y"
4829 {
4830 yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE);
4831 ;
4832 break;}
4833 case 496:
4834 #line 2800 "objc-parse.y"
4835 {
4836 yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
4837 ;
4838 break;}
4839 case 497:
4840 #line 2805 "objc-parse.y"
4841 {
4842 yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
4843 ;
4844 break;}
4845 case 506:
4846 #line 2835 "objc-parse.y"
4847 { current_declspecs = TREE_VALUE (declspec_stack);
4848 prefix_attributes = TREE_PURPOSE (declspec_stack);
4849 declspec_stack = TREE_CHAIN (declspec_stack);
4850 resume_momentary (yyvsp[-2].itype); ;
4851 break;}
4852 case 507:
4853 #line 2840 "objc-parse.y"
4854 { shadow_tag (yyvsp[-1].ttype); ;
4855 break;}
4856 case 508:
4857 #line 2842 "objc-parse.y"
4858 { pedwarn ("empty declaration"); ;
4859 break;}
4860 case 509:
4861 #line 2847 "objc-parse.y"
4862 { push_parm_decl (yyvsp[0].ttype); ;
4863 break;}
4864 case 510:
4865 #line 2849 "objc-parse.y"
4866 { push_parm_decl (yyvsp[0].ttype); ;
4867 break;}
4868 case 511:
4869 #line 2857 "objc-parse.y"
4870 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4871 yyvsp[-1].ttype),
4872 build_tree_list (prefix_attributes,
4873 yyvsp[0].ttype)); ;
4874 break;}
4875 case 512:
4876 #line 2862 "objc-parse.y"
4877 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4878 yyvsp[-1].ttype),
4879 build_tree_list (prefix_attributes,
4880 yyvsp[0].ttype)); ;
4881 break;}
4882 case 513:
4883 #line 2867 "objc-parse.y"
4884 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4885 yyvsp[-1].ttype),
4886 build_tree_list (prefix_attributes,
4887 yyvsp[0].ttype)); ;
4888 break;}
4889 case 514:
4890 #line 2875 "objc-parse.y"
4891 {
4892 yyval.ttype = NULL_TREE;
4893 ;
4894 break;}
4895 case 515:
4896 #line 2879 "objc-parse.y"
4897 {
4898 /* oh what a kludge! */
4899 yyval.ttype = (tree)1;
4900 ;
4901 break;}
4902 case 516:
4903 #line 2884 "objc-parse.y"
4904 {
4905 pushlevel (0);
4906 ;
4907 break;}
4908 case 517:
4909 #line 2888 "objc-parse.y"
4910 {
4911 /* returns a tree list node generated by get_parm_info */
4912 yyval.ttype = yyvsp[0].ttype;
4913 poplevel (0, 0, 0);
4914 ;
4915 break;}
4916 case 520:
4917 #line 2903 "objc-parse.y"
4918 {
4919 yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
4920 ;
4921 break;}
4922 case 525:
4923 #line 2916 "objc-parse.y"
4924 { yyval.ttype = get_identifier (token_buffer); ;
4925 break;}
4926 case 526:
4927 #line 2917 "objc-parse.y"
4928 { yyval.ttype = get_identifier (token_buffer); ;
4929 break;}
4930 case 527:
4931 #line 2918 "objc-parse.y"
4932 { yyval.ttype = get_identifier (token_buffer); ;
4933 break;}
4934 case 528:
4935 #line 2919 "objc-parse.y"
4936 { yyval.ttype = get_identifier (token_buffer); ;
4937 break;}
4938 case 529:
4939 #line 2920 "objc-parse.y"
4940 { yyval.ttype = get_identifier (token_buffer); ;
4941 break;}
4942 case 530:
4943 #line 2921 "objc-parse.y"
4944 { yyval.ttype = get_identifier (token_buffer); ;
4945 break;}
4946 case 531:
4947 #line 2922 "objc-parse.y"
4948 { yyval.ttype = get_identifier (token_buffer); ;
4949 break;}
4950 case 532:
4951 #line 2923 "objc-parse.y"
4952 { yyval.ttype = get_identifier (token_buffer); ;
4953 break;}
4954 case 533:
4955 #line 2924 "objc-parse.y"
4956 { yyval.ttype = get_identifier (token_buffer); ;
4957 break;}
4958 case 534:
4959 #line 2925 "objc-parse.y"
4960 { yyval.ttype = get_identifier (token_buffer); ;
4961 break;}
4962 case 535:
4963 #line 2926 "objc-parse.y"
4964 { yyval.ttype = get_identifier (token_buffer); ;
4965 break;}
4966 case 536:
4967 #line 2927 "objc-parse.y"
4968 { yyval.ttype = get_identifier (token_buffer); ;
4969 break;}
4970 case 537:
4971 #line 2928 "objc-parse.y"
4972 { yyval.ttype = get_identifier (token_buffer); ;
4973 break;}
4974 case 538:
4975 #line 2929 "objc-parse.y"
4976 { yyval.ttype = get_identifier (token_buffer); ;
4977 break;}
4978 case 539:
4979 #line 2930 "objc-parse.y"
4980 { yyval.ttype = get_identifier (token_buffer); ;
4981 break;}
4982 case 540:
4983 #line 2931 "objc-parse.y"
4984 { yyval.ttype = get_identifier (token_buffer); ;
4985 break;}
4986 case 541:
4987 #line 2932 "objc-parse.y"
4988 { yyval.ttype = get_identifier (token_buffer); ;
4989 break;}
4990 case 542:
4991 #line 2933 "objc-parse.y"
4992 { yyval.ttype = get_identifier (token_buffer); ;
4993 break;}
4994 case 543:
4995 #line 2934 "objc-parse.y"
4996 { yyval.ttype = get_identifier (token_buffer); ;
4997 break;}
4998 case 546:
4999 #line 2940 "objc-parse.y"
5000 {
5001 yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
5002 ;
5003 break;}
5004 case 547:
5005 #line 2945 "objc-parse.y"
5006 {
5007 yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
5008 ;
5009 break;}
5010 case 548:
5011 #line 2950 "objc-parse.y"
5012 {
5013 yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype);
5014 ;
5015 break;}
5016 case 549:
5017 #line 2955 "objc-parse.y"
5018 {
5019 yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
5020 ;
5021 break;}
5022 case 553:
5023 #line 2968 "objc-parse.y"
5024 {
5025 yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
5026 ;
5027 break;}
5028 case 554:
5029 #line 2976 "objc-parse.y"
5030 {
5031 if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE)
5032 /* just return the expr., remove a level of indirection */
5033 yyval.ttype = TREE_VALUE (yyvsp[0].ttype);
5034 else
5035 /* we have a comma expr., we will collapse later */
5036 yyval.ttype = yyvsp[0].ttype;
5037 ;
5038 break;}
5039 case 555:
5040 #line 2988 "objc-parse.y"
5041 {
5042 yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
5043 ;
5044 break;}
5045 case 556:
5046 #line 2992 "objc-parse.y"
5047 {
5048 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
5049 ;
5050 break;}
5051 case 558:
5052 #line 3000 "objc-parse.y"
5053 {
5054 yyval.ttype = get_class_reference (yyvsp[0].ttype);
5055 ;
5056 break;}
5057 case 559:
5058 #line 3007 "objc-parse.y"
5059 { objc_receiver_context = 1; ;
5060 break;}
5061 case 560:
5062 #line 3009 "objc-parse.y"
5063 { objc_receiver_context = 0; ;
5064 break;}
5065 case 561:
5066 #line 3011 "objc-parse.y"
5067 {
5068 yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype);
5069 ;
5070 break;}
5071 case 565:
5072 #line 3024 "objc-parse.y"
5073 {
5074 yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
5075 ;
5076 break;}
5077 case 566:
5078 #line 3031 "objc-parse.y"
5079 {
5080 yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
5081 ;
5082 break;}
5083 case 567:
5084 #line 3035 "objc-parse.y"
5085 {
5086 yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE);
5087 ;
5088 break;}
5089 case 568:
5090 #line 3042 "objc-parse.y"
5091 {
5092 yyval.ttype = yyvsp[-1].ttype;
5093 ;
5094 break;}
5095 case 569:
5096 #line 3049 "objc-parse.y"
5097 {
5098 yyval.ttype = yyvsp[-1].ttype;
5099 ;
5100 break;}
5101 case 570:
5102 #line 3058 "objc-parse.y"
5103 {
5104 yyval.ttype = groktypename (yyvsp[-1].ttype);
5105 ;
5106 break;}
5107 }
5108 /* the action file gets copied in in place of this dollarsign */
5109 #line 498 "/usr/freeware/share/bison.simple"
5110 \f
5111 yyvsp -= yylen;
5112 yyssp -= yylen;
5113 #ifdef YYLSP_NEEDED
5114 yylsp -= yylen;
5115 #endif
5116
5117 #if YYDEBUG != 0
5118 if (yydebug)
5119 {
5120 short *ssp1 = yyss - 1;
5121 fprintf (stderr, "state stack now");
5122 while (ssp1 != yyssp)
5123 fprintf (stderr, " %d", *++ssp1);
5124 fprintf (stderr, "\n");
5125 }
5126 #endif
5127
5128 *++yyvsp = yyval;
5129
5130 #ifdef YYLSP_NEEDED
5131 yylsp++;
5132 if (yylen == 0)
5133 {
5134 yylsp->first_line = yylloc.first_line;
5135 yylsp->first_column = yylloc.first_column;
5136 yylsp->last_line = (yylsp-1)->last_line;
5137 yylsp->last_column = (yylsp-1)->last_column;
5138 yylsp->text = 0;
5139 }
5140 else
5141 {
5142 yylsp->last_line = (yylsp+yylen-1)->last_line;
5143 yylsp->last_column = (yylsp+yylen-1)->last_column;
5144 }
5145 #endif
5146
5147 /* Now "shift" the result of the reduction.
5148 Determine what state that goes to,
5149 based on the state we popped back to
5150 and the rule number reduced by. */
5151
5152 yyn = yyr1[yyn];
5153
5154 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5155 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5156 yystate = yytable[yystate];
5157 else
5158 yystate = yydefgoto[yyn - YYNTBASE];
5159
5160 goto yynewstate;
5161
5162 yyerrlab: /* here on detecting error */
5163
5164 if (! yyerrstatus)
5165 /* If not already recovering from an error, report this error. */
5166 {
5167 ++yynerrs;
5168
5169 #ifdef YYERROR_VERBOSE
5170 yyn = yypact[yystate];
5171
5172 if (yyn > YYFLAG && yyn < YYLAST)
5173 {
5174 int size = 0;
5175 char *msg;
5176 int x, count;
5177
5178 count = 0;
5179 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5180 for (x = (yyn < 0 ? -yyn : 0);
5181 x < (sizeof(yytname) / sizeof(char *)); x++)
5182 if (yycheck[x + yyn] == x)
5183 size += strlen(yytname[x]) + 15, count++;
5184 msg = (char *) malloc(size + 15);
5185 if (msg != 0)
5186 {
5187 strcpy(msg, "parse error");
5188
5189 if (count < 5)
5190 {
5191 count = 0;
5192 for (x = (yyn < 0 ? -yyn : 0);
5193 x < (sizeof(yytname) / sizeof(char *)); x++)
5194 if (yycheck[x + yyn] == x)
5195 {
5196 strcat(msg, count == 0 ? ", expecting `" : " or `");
5197 strcat(msg, yytname[x]);
5198 strcat(msg, "'");
5199 count++;
5200 }
5201 }
5202 yyerror(msg);
5203 free(msg);
5204 }
5205 else
5206 yyerror ("parse error; also virtual memory exceeded");
5207 }
5208 else
5209 #endif /* YYERROR_VERBOSE */
5210 yyerror("parse error");
5211 }
5212
5213 goto yyerrlab1;
5214 yyerrlab1: /* here on error raised explicitly by an action */
5215
5216 if (yyerrstatus == 3)
5217 {
5218 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5219
5220 /* return failure if at end of input */
5221 if (yychar == YYEOF)
5222 YYABORT;
5223
5224 #if YYDEBUG != 0
5225 if (yydebug)
5226 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5227 #endif
5228
5229 yychar = YYEMPTY;
5230 }
5231
5232 /* Else will try to reuse lookahead token
5233 after shifting the error token. */
5234
5235 yyerrstatus = 3; /* Each real token shifted decrements this */
5236
5237 goto yyerrhandle;
5238
5239 yyerrdefault: /* current state does not do anything special for the error token. */
5240
5241 #if 0
5242 /* This is wrong; only states that explicitly want error tokens
5243 should shift them. */
5244 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5245 if (yyn) goto yydefault;
5246 #endif
5247
5248 yyerrpop: /* pop the current state because it cannot handle the error token */
5249
5250 if (yyssp == yyss) YYABORT;
5251 yyvsp--;
5252 yystate = *--yyssp;
5253 #ifdef YYLSP_NEEDED
5254 yylsp--;
5255 #endif
5256
5257 #if YYDEBUG != 0
5258 if (yydebug)
5259 {
5260 short *ssp1 = yyss - 1;
5261 fprintf (stderr, "Error: state stack now");
5262 while (ssp1 != yyssp)
5263 fprintf (stderr, " %d", *++ssp1);
5264 fprintf (stderr, "\n");
5265 }
5266 #endif
5267
5268 yyerrhandle:
5269
5270 yyn = yypact[yystate];
5271 if (yyn == YYFLAG)
5272 goto yyerrdefault;
5273
5274 yyn += YYTERROR;
5275 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5276 goto yyerrdefault;
5277
5278 yyn = yytable[yyn];
5279 if (yyn < 0)
5280 {
5281 if (yyn == YYFLAG)
5282 goto yyerrpop;
5283 yyn = -yyn;
5284 goto yyreduce;
5285 }
5286 else if (yyn == 0)
5287 goto yyerrpop;
5288
5289 if (yyn == YYFINAL)
5290 YYACCEPT;
5291
5292 #if YYDEBUG != 0
5293 if (yydebug)
5294 fprintf(stderr, "Shifting error token, ");
5295 #endif
5296
5297 *++yyvsp = yylval;
5298 #ifdef YYLSP_NEEDED
5299 *++yylsp = yylloc;
5300 #endif
5301
5302 yystate = yyn;
5303 goto yynewstate;
5304 }
5305 #line 3063 "objc-parse.y"
5306
This page took 0.402598 seconds and 6 git commands to generate.