Added g++ script so g++ compiles .c files as c++ code
[unix-history] / gnu / usr.bin / cc / cc1plus / cp-parse.c
CommitLineData
9bf86ebb
PR
1
2/* A Bison parser, made from cp-parse.y */
3
4#define YYBISON 1 /* Identify Bison output. */
5
6#define IDENTIFIER 258
7#define TYPENAME 259
8#define SCOPED_TYPENAME 260
9#define SCSPEC 261
10#define TYPESPEC 262
11#define TYPE_QUAL 263
12#define CONSTANT 264
13#define STRING 265
14#define ELLIPSIS 266
15#define SIZEOF 267
16#define ENUM 268
17#define IF 269
18#define ELSE 270
19#define WHILE 271
20#define DO 272
21#define FOR 273
22#define SWITCH 274
23#define CASE 275
24#define DEFAULT 276
25#define BREAK 277
26#define CONTINUE 278
27#define RETURN 279
28#define GOTO 280
29#define ASM_KEYWORD 281
30#define GCC_ASM_KEYWORD 282
31#define TYPEOF 283
32#define ALIGNOF 284
33#define HEADOF 285
34#define CLASSOF 286
35#define ATTRIBUTE 287
36#define EXTENSION 288
37#define LABEL 289
38#define AGGR 290
39#define VISSPEC 291
40#define DELETE 292
41#define NEW 293
42#define OVERLOAD 294
43#define THIS 295
44#define OPERATOR 296
45#define DYNAMIC 297
46#define POINTSAT_LEFT_RIGHT 298
47#define LEFT_RIGHT 299
48#define TEMPLATE 300
49#define SCOPE 301
50#define START_DECLARATOR 302
51#define EMPTY 303
52#define TYPENAME_COLON 304
53#define ASSIGN 305
54#define RANGE 306
55#define OROR 307
56#define ANDAND 308
57#define MIN_MAX 309
58#define EQCOMPARE 310
59#define ARITHCOMPARE 311
60#define LSHIFT 312
61#define RSHIFT 313
62#define UNARY 314
63#define PLUSPLUS 315
64#define MINUSMINUS 316
65#define HYPERUNARY 317
66#define PAREN_STAR_PAREN 318
67#define POINTSAT 319
68#define POINTSAT_STAR 320
69#define DOT_STAR 321
70#define RAISE 322
71#define RAISES 323
72#define RERAISE 324
73#define TRY 325
74#define EXCEPT 326
75#define CATCH 327
76#define THROW 328
77#define ANSI_TRY 329
78#define ANSI_THROW 330
79#define TYPENAME_ELLIPSIS 331
80#define PTYPENAME 332
81#define PRE_PARSED_FUNCTION_DECL 333
82#define EXTERN_LANG_STRING 334
83#define ALL 335
84#define PRE_PARSED_CLASS_DECL 336
85#define TYPENAME_DEFN 337
86#define IDENTIFIER_DEFN 338
87#define PTYPENAME_DEFN 339
88#define END_OF_SAVED_INPUT 340
89
90#line 42 "cp-parse.y"
91
92#if defined(GATHER_STATISTICS) || defined(SPEW_DEBUG)
93#undef YYDEBUG
94#define YYDEBUG 1
95#endif
96
97#include "config.h"
98
99#include <stdio.h>
100#include <errno.h>
101
102#include "tree.h"
103#include "input.h"
104#include "flags.h"
105#include "cp-lex.h"
106#include "cp-tree.h"
107
108/* Since parsers are distinct for each language, put the language string
109 definition here. (fnf) */
110char *language_string = "GNU C++";
111
112extern tree void_list_node;
113extern struct obstack permanent_obstack;
114
115#ifndef errno
116extern int errno;
117#endif
118
119extern int end_of_file;
120
121void yyerror ();
122
123/* Like YYERROR but do call yyerror. */
124#define YYERROR1 { yyerror ("syntax error"); YYERROR; }
125
126static void position_after_white_space ();
127
128/* Contains the statement keyword (if/while/do) to include in an
129 error message if the user supplies an empty conditional expression. */
130static char *cond_stmt_keyword;
131
132/* Nonzero if we have an `extern "C"' acting as an extern specifier. */
133int have_extern_spec;
134int used_extern_spec;
135
136void yyhook ();
137
138/* Cons up an empty parameter list. */
139#ifdef __GNUC__
140__inline
141#endif
142static tree
143empty_parms ()
144{
145 tree parms;
146
147 if (strict_prototype)
148 parms = void_list_node;
149 else
150 parms = NULL_TREE;
151 return parms;
152}
153
154#line 108 "cp-parse.y"
155typedef union {long itype; tree ttype; char *strtype; enum tree_code code; } YYSTYPE;
156#line 267 "cp-parse.y"
157
158/* List of types and structure classes of the current declaration. */
159static tree current_declspecs;
160
161/* When defining an aggregate, this is the most recent one being defined. */
162static tree current_aggr;
163
164/* Tell yyparse how to print a token's value, if yydebug is set. */
165
166#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
167extern void yyprint ();
168extern tree combine_strings PROTO((tree));
169extern tree truthvalue_conversion PROTO((tree));
170
171#ifndef YYLTYPE
172typedef
173 struct yyltype
174 {
175 int timestamp;
176 int first_line;
177 int first_column;
178 int last_line;
179 int last_column;
180 char *text;
181 }
182 yyltype;
183
184#define YYLTYPE yyltype
185#endif
186
187#include <stdio.h>
188
189#ifndef __STDC__
190#define const
191#endif
192
193
194
195#define YYFINAL 1276
196#define YYFLAG -32768
197#define YYNTBASE 110
198
199#define YYTRANSLATE(x) ((unsigned)(x) <= 340 ? yytranslate[x] : 304)
200
201static const char yytranslate[] = { 0,
202 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
203 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
205 2, 2, 108, 2, 2, 2, 73, 61, 2, 83,
206 104, 71, 69, 51, 70, 81, 72, 2, 2, 2,
207 2, 2, 2, 2, 2, 2, 2, 55, 105, 65,
208 53, 66, 54, 2, 2, 2, 2, 2, 2, 2,
209 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
210 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
211 84, 2, 109, 60, 2, 2, 2, 2, 2, 2,
212 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
213 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
214 2, 2, 50, 59, 106, 107, 2, 2, 2, 2,
215 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
216 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
217 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
218 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
219 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
220 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
221 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
222 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
223 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
224 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
225 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
226 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
227 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
228 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
229 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
230 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
231 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
232 46, 47, 48, 49, 52, 56, 57, 58, 62, 63,
233 64, 67, 68, 74, 75, 76, 77, 78, 79, 80,
234 82, 85, 86, 87, 88, 89, 90, 91, 92, 93,
235 94, 95, 96, 97, 98, 99, 100, 101, 102, 103
236};
237
238static const short yyprhs[] = { 0,
239 0, 1, 3, 4, 7, 10, 11, 12, 14, 16,
240 18, 20, 22, 24, 30, 35, 39, 44, 49, 51,
241 52, 58, 60, 64, 67, 72, 76, 78, 82, 84,
242 88, 89, 95, 96, 102, 103, 109, 110, 116, 120,
243 124, 131, 139, 144, 148, 152, 154, 156, 158, 160,
244 162, 165, 169, 173, 177, 181, 184, 187, 190, 193,
245 195, 199, 204, 208, 214, 219, 223, 227, 230, 234,
246 238, 241, 248, 255, 260, 265, 267, 274, 279, 283,
247 290, 295, 299, 302, 305, 307, 311, 316, 319, 323,
248 324, 325, 327, 331, 334, 338, 340, 345, 348, 353,
249 356, 361, 364, 370, 374, 376, 378, 380, 382, 384,
250 386, 388, 390, 392, 395, 397, 401, 406, 411, 413,
251 415, 416, 417, 419, 423, 425, 427, 428, 435, 436,
252 438, 439, 442, 444, 446, 448, 450, 452, 454, 456,
253 458, 462, 464, 468, 472, 474, 475, 479, 482, 485,
254 488, 491, 494, 497, 502, 505, 510, 514, 521, 528,
255 538, 543, 551, 557, 566, 576, 586, 593, 603, 610,
256 620, 624, 631, 634, 639, 645, 647, 652, 660, 665,
257 670, 675, 677, 681, 685, 689, 693, 697, 701, 705,
258 709, 713, 717, 721, 725, 729, 733, 737, 741, 745,
259 751, 755, 759, 763, 766, 768, 770, 772, 774, 778,
260 782, 783, 788, 789, 796, 799, 804, 807, 811, 814,
261 817, 819, 824, 829, 832, 838, 842, 845, 848, 851,
262 857, 861, 867, 871, 878, 883, 885, 890, 893, 899,
263 900, 902, 904, 907, 909, 912, 913, 916, 919, 922,
264 926, 930, 934, 938, 941, 944, 946, 948, 951, 954,
265 956, 959, 962, 966, 968, 970, 973, 976, 978, 980,
266 983, 986, 988, 991, 994, 998, 1000, 1003, 1005, 1007,
267 1009, 1011, 1016, 1021, 1023, 1025, 1027, 1029, 1031, 1035,
268 1037, 1041, 1042, 1047, 1048, 1056, 1061, 1062, 1070, 1075,
269 1076, 1084, 1089, 1090, 1097, 1099, 1103, 1105, 1110, 1119,
270 1121, 1125, 1127, 1130, 1134, 1139, 1141, 1143, 1147, 1152,
271 1159, 1163, 1169, 1170, 1178, 1183, 1184, 1191, 1195, 1198,
272 1203, 1205, 1206, 1208, 1209, 1211, 1213, 1216, 1222, 1225,
273 1228, 1231, 1234, 1237, 1240, 1243, 1247, 1251, 1254, 1255,
274 1259, 1260, 1264, 1267, 1269, 1271, 1272, 1274, 1277, 1279,
275 1283, 1285, 1287, 1290, 1293, 1296, 1300, 1302, 1304, 1306,
276 1309, 1312, 1314, 1315, 1317, 1322, 1326, 1328, 1331, 1334,
277 1338, 1344, 1350, 1354, 1358, 1362, 1366, 1370, 1376, 1382,
278 1386, 1390, 1394, 1398, 1400, 1403, 1406, 1410, 1414, 1415,
279 1417, 1421, 1426, 1433, 1438, 1442, 1445, 1450, 1457, 1462,
280 1466, 1469, 1471, 1475, 1477, 1481, 1484, 1487, 1488, 1490,
281 1493, 1495, 1498, 1499, 1502, 1503, 1506, 1512, 1518, 1522,
282 1528, 1533, 1537, 1541, 1547, 1549, 1551, 1557, 1561, 1565,
283 1567, 1573, 1579, 1583, 1589, 1594, 1598, 1602, 1604, 1606,
284 1610, 1614, 1620, 1626, 1630, 1636, 1640, 1644, 1648, 1653,
285 1657, 1659, 1661, 1664, 1667, 1670, 1674, 1678, 1686, 1694,
286 1700, 1708, 1712, 1720, 1728, 1734, 1742, 1746, 1748, 1751,
287 1754, 1756, 1759, 1763, 1767, 1770, 1772, 1776, 1780, 1783,
288 1789, 1793, 1798, 1802, 1807, 1810, 1814, 1817, 1821, 1826,
289 1830, 1835, 1841, 1847, 1849, 1851, 1854, 1857, 1860, 1861,
290 1862, 1864, 1866, 1869, 1873, 1875, 1878, 1881, 1887, 1893,
291 1894, 1895, 1901, 1903, 1906, 1908, 1910, 1912, 1915, 1916,
292 1921, 1923, 1924, 1925, 1931, 1932, 1933, 1941, 1942, 1943,
293 1944, 1954, 1955, 1956, 1957, 1967, 1968, 1975, 1976, 1982,
294 1983, 1991, 1992, 1997, 2000, 2003, 2006, 2010, 2017, 2026,
295 2037, 2050, 2055, 2059, 2062, 2065, 2067, 2070, 2074, 2081,
296 2086, 2093, 2098, 2102, 2103, 2111, 2114, 2115, 2121, 2125,
297 2127, 2130, 2134, 2138, 2141, 2144, 2146, 2147, 2152, 2155,
298 2159, 2163, 2164, 2165, 2170, 2171, 2172, 2177, 2178, 2183,
299 2184, 2186, 2187, 2188, 2197, 2201, 2206, 2211, 2215, 2220,
300 2227, 2234, 2235, 2237, 2238, 2240, 2242, 2243, 2245, 2247,
301 2251, 2256, 2258, 2262, 2263, 2265, 2269, 2272, 2274, 2276,
302 2279, 2282, 2284, 2288, 2292, 2298, 2302, 2308, 2312, 2316,
303 2318, 2320, 2323, 2325, 2326, 2328, 2329, 2332, 2337, 2339,
304 2341, 2343, 2346, 2349, 2352, 2354, 2356, 2358, 2362, 2364,
305 2368, 2371, 2374, 2377, 2380, 2383, 2386, 2389, 2392, 2395,
306 2398, 2401, 2404, 2407, 2410, 2413, 2416, 2419, 2422, 2425,
307 2428, 2431, 2434, 2437, 2441, 2444, 2447, 2450, 2454, 2457,
308 2461, 2464, 2467, 2471
309};
310
311static const short yyrhs[] = { -1,
312 111, 0, 0, 112, 116, 0, 111, 116, 0, 0,
313 0, 26, 0, 27, 0, 131, 0, 130, 0, 124,
314 0, 122, 0, 115, 83, 167, 104, 105, 0, 117,
315 50, 111, 106, 0, 117, 50, 106, 0, 117, 113,
316 131, 114, 0, 117, 113, 130, 114, 0, 97, 0,
317 0, 45, 65, 119, 120, 66, 0, 121, 0, 120,
318 51, 121, 0, 200, 140, 0, 200, 141, 55, 212,
319 0, 200, 49, 212, 0, 293, 0, 39, 123, 105,
320 0, 3, 0, 123, 51, 3, 0, 0, 118, 201,
321 50, 125, 105, 0, 0, 118, 202, 50, 126, 105,
322 0, 0, 118, 201, 55, 127, 105, 0, 0, 118,
323 202, 55, 128, 105, 0, 118, 201, 105, 0, 118,
324 202, 105, 0, 118, 231, 298, 182, 189, 129, 0,
325 118, 173, 172, 298, 182, 189, 129, 0, 118, 175,
326 172, 129, 0, 118, 1, 106, 0, 118, 1, 105,
327 0, 50, 0, 55, 0, 105, 0, 53, 0, 24,
328 0, 181, 105, 0, 175, 181, 105, 0, 175, 172,
329 105, 0, 173, 180, 105, 0, 173, 172, 105, 0,
330 175, 105, 0, 173, 105, 0, 1, 105, 0, 1,
331 106, 0, 105, 0, 132, 136, 244, 0, 132, 135,
332 136, 244, 0, 132, 168, 244, 0, 132, 135, 105,
333 168, 244, 0, 132, 135, 168, 244, 0, 173, 172,
334 1, 0, 175, 231, 1, 0, 231, 1, 0, 173,
335 172, 298, 0, 175, 231, 298, 0, 231, 298, 0,
336 4, 83, 291, 104, 226, 298, 0, 234, 83, 291,
337 104, 226, 298, 0, 4, 44, 226, 298, 0, 234,
338 44, 226, 298, 0, 96, 0, 173, 83, 291, 104,
339 226, 298, 0, 173, 44, 226, 298, 0, 173, 172,
340 298, 0, 175, 83, 291, 104, 226, 298, 0, 175,
341 44, 226, 298, 0, 175, 172, 298, 0, 231, 298,
342 0, 24, 3, 0, 134, 0, 134, 53, 193, 0,
343 134, 83, 156, 104, 0, 134, 44, 0, 55, 137,
344 138, 0, 0, 0, 139, 0, 138, 51, 139, 0,
345 138, 1, 0, 83, 156, 104, 0, 44, 0, 140,
346 83, 156, 104, 0, 140, 44, 0, 144, 83, 156,
347 104, 0, 144, 44, 0, 234, 83, 156, 104, 0,
348 234, 44, 0, 232, 140, 83, 156, 104, 0, 232,
349 140, 44, 0, 3, 0, 4, 0, 95, 0, 101,
350 0, 100, 0, 102, 0, 3, 0, 4, 0, 95,
351 0, 107, 140, 0, 303, 0, 144, 145, 151, 0,
352 95, 65, 147, 66, 0, 4, 65, 147, 66, 0,
353 50, 0, 55, 0, 0, 0, 148, 0, 147, 51,
354 148, 0, 223, 0, 160, 0, 0, 99, 208, 150,
355 214, 215, 106, 0, 0, 149, 0, 0, 149, 152,
356 0, 70, 0, 69, 0, 75, 0, 76, 0, 108,
357 0, 156, 0, 160, 0, 44, 0, 83, 154, 104,
358 0, 160, 0, 156, 51, 160, 0, 156, 51, 1,
359 0, 161, 0, 0, 33, 158, 159, 0, 71, 159,
360 0, 61, 159, 0, 107, 159, 0, 153, 159, 0,
361 58, 140, 0, 12, 157, 0, 12, 83, 223, 104,
362 0, 29, 157, 0, 29, 83, 223, 104, 0, 165,
363 164, 223, 0, 165, 164, 83, 156, 104, 223, 0,
364 165, 164, 178, 83, 156, 104, 0, 165, 164, 83,
365 156, 104, 178, 83, 156, 104, 0, 165, 164, 178,
366 44, 0, 165, 164, 83, 156, 104, 178, 44, 0,
367 165, 164, 223, 53, 193, 0, 165, 164, 83, 156,
368 104, 223, 53, 193, 0, 165, 164, 83, 176, 224,
369 104, 84, 227, 109, 0, 165, 164, 83, 225, 224,
370 104, 84, 227, 109, 0, 165, 164, 83, 176, 224,
371 104, 0, 165, 164, 83, 156, 104, 83, 176, 224,
372 104, 0, 165, 164, 83, 225, 224, 104, 0, 165,
373 164, 83, 156, 104, 83, 225, 224, 104, 0, 165,
374 164, 49, 0, 165, 164, 83, 156, 104, 49, 0,
375 166, 159, 0, 166, 84, 109, 159, 0, 166, 84,
376 154, 109, 159, 0, 157, 0, 83, 223, 104, 160,
377 0, 83, 223, 104, 50, 194, 198, 106, 0, 30,
378 83, 154, 104, 0, 31, 83, 154, 104, 0, 31,
379 83, 4, 104, 0, 159, 0, 160, 69, 160, 0,
380 160, 70, 160, 0, 160, 71, 160, 0, 160, 72,
381 160, 0, 160, 73, 160, 0, 160, 67, 160, 0,
382 160, 68, 160, 0, 160, 64, 160, 0, 160, 65,
383 160, 0, 160, 66, 160, 0, 160, 63, 160, 0,
384 160, 62, 160, 0, 160, 61, 160, 0, 160, 59,
385 160, 0, 160, 60, 160, 0, 160, 58, 160, 0,
386 160, 57, 160, 0, 160, 54, 286, 55, 160, 0,
387 160, 53, 160, 0, 160, 52, 160, 0, 161, 82,
388 160, 0, 170, 160, 0, 3, 0, 303, 0, 9,
389 0, 167, 0, 83, 154, 104, 0, 83, 1, 104,
390 0, 0, 83, 162, 245, 104, 0, 0, 161, 83,
391 156, 104, 163, 152, 0, 161, 44, 0, 161, 84,
392 154, 109, 0, 169, 142, 0, 169, 232, 142, 0,
393 161, 75, 0, 161, 76, 0, 40, 0, 8, 83,
394 156, 104, 0, 178, 83, 156, 104, 0, 178, 44,
395 0, 46, 178, 83, 156, 104, 0, 46, 178, 44,
396 0, 46, 3, 0, 46, 303, 0, 232, 142, 0,
397 232, 142, 83, 156, 104, 0, 232, 142, 44, 0,
398 169, 142, 83, 156, 104, 0, 169, 142, 44, 0,
399 169, 232, 142, 83, 156, 104, 0, 169, 232, 142,
400 44, 0, 38, 0, 38, 50, 156, 106, 0, 38,
401 42, 0, 38, 42, 83, 167, 104, 0, 0, 46,
402 0, 37, 0, 46, 166, 0, 10, 0, 167, 10,
403 0, 0, 161, 81, 0, 161, 79, 0, 161, 80,
404 0, 173, 180, 105, 0, 173, 172, 105, 0, 175,
405 181, 105, 0, 175, 172, 105, 0, 173, 105, 0,
406 175, 105, 0, 229, 0, 231, 0, 47, 229, 0,
407 47, 231, 0, 178, 0, 175, 178, 0, 178, 174,
408 0, 175, 178, 174, 0, 179, 0, 6, 0, 174,
409 179, 0, 174, 6, 0, 8, 0, 6, 0, 175,
410 8, 0, 175, 6, 0, 178, 0, 225, 178, 0,
411 178, 177, 0, 225, 178, 177, 0, 179, 0, 177,
412 179, 0, 195, 0, 7, 0, 4, 0, 234, 0,
413 28, 83, 154, 104, 0, 28, 83, 223, 104, 0,
414 143, 0, 7, 0, 8, 0, 195, 0, 183, 0,
415 180, 51, 185, 0, 187, 0, 181, 51, 185, 0,
416 0, 115, 83, 167, 104, 0, 0, 172, 298, 182,
417 189, 53, 184, 193, 0, 172, 298, 182, 189, 0,
418 0, 172, 298, 182, 189, 53, 186, 193, 0, 172,
419 298, 182, 189, 0, 0, 231, 298, 182, 189, 53,
420 188, 193, 0, 231, 298, 182, 189, 0, 0, 32,
421 83, 83, 190, 104, 104, 0, 191, 0, 190, 51,
422 191, 0, 3, 0, 3, 83, 9, 104, 0, 3,
423 83, 3, 51, 9, 51, 9, 104, 0, 140, 0,
424 192, 51, 140, 0, 160, 0, 50, 106, 0, 50,
425 194, 106, 0, 50, 194, 51, 106, 0, 1, 0,
426 193, 0, 194, 51, 193, 0, 84, 160, 109, 193,
427 0, 194, 51, 20, 160, 55, 193, 0, 140, 55,
428 193, 0, 194, 51, 140, 55, 193, 0, 0, 13,
429 140, 50, 196, 221, 199, 106, 0, 13, 140, 50,
430 106, 0, 0, 13, 50, 197, 221, 199, 106, 0,
431 13, 50, 106, 0, 13, 140, 0, 207, 214, 215,
432 106, 0, 207, 0, 0, 51, 0, 0, 51, 0,
433 35, 0, 42, 35, 0, 42, 83, 167, 104, 35,
434 0, 200, 6, 0, 200, 7, 0, 200, 8, 0,
435 200, 35, 0, 200, 140, 0, 200, 144, 0, 200,
436 49, 0, 200, 144, 50, 0, 200, 144, 55, 0,
437 200, 141, 0, 0, 201, 204, 208, 0, 0, 202,
438 205, 208, 0, 200, 50, 0, 206, 0, 203, 0,
439 0, 55, 0, 55, 209, 0, 210, 0, 209, 51,
440 210, 0, 212, 0, 211, 0, 213, 212, 0, 213,
441 211, 0, 212, 5, 0, 144, 146, 151, 0, 140,
442 0, 36, 0, 6, 0, 213, 36, 0, 213, 6,
443 0, 50, 0, 0, 216, 0, 215, 36, 55, 216,
444 0, 215, 36, 55, 0, 217, 0, 216, 217, 0,
445 216, 105, 0, 173, 218, 105, 0, 173, 83, 291,
446 104, 105, 0, 173, 83, 291, 104, 106, 0, 173,
447 44, 105, 0, 173, 44, 106, 0, 175, 218, 105,
448 0, 175, 172, 105, 0, 175, 218, 106, 0, 175,
449 83, 291, 104, 105, 0, 175, 83, 291, 104, 106,
450 0, 175, 44, 105, 0, 175, 44, 106, 0, 55,
451 160, 105, 0, 55, 160, 106, 0, 1, 0, 133,
452 55, 0, 133, 50, 0, 231, 298, 105, 0, 231,
453 298, 106, 0, 0, 219, 0, 218, 51, 220, 0,
454 172, 298, 182, 189, 0, 172, 298, 182, 189, 53,
455 193, 0, 3, 55, 160, 189, 0, 49, 160, 189,
456 0, 55, 160, 0, 172, 298, 182, 189, 0, 172,
457 298, 182, 189, 53, 193, 0, 3, 55, 160, 189,
458 0, 49, 160, 189, 0, 55, 160, 0, 222, 0,
459 221, 51, 222, 0, 140, 0, 140, 53, 160, 0,
460 176, 224, 0, 225, 224, 0, 0, 235, 0, 47,
461 235, 0, 8, 0, 225, 8, 0, 0, 226, 8,
462 0, 0, 228, 154, 0, 229, 83, 156, 104, 226,
463 0, 229, 83, 291, 104, 226, 0, 229, 44, 226,
464 0, 229, 83, 1, 104, 226, 0, 229, 84, 227,
465 109, 0, 229, 84, 109, 0, 83, 230, 104, 0,
466 83, 71, 226, 229, 104, 0, 78, 0, 237, 0,
467 83, 61, 226, 229, 104, 0, 71, 226, 229, 0,
468 61, 226, 229, 0, 4, 0, 230, 83, 156, 104,
469 226, 0, 230, 83, 291, 104, 226, 0, 230, 44,
470 226, 0, 230, 83, 1, 104, 226, 0, 230, 84,
471 227, 109, 0, 230, 84, 109, 0, 83, 230, 104,
472 0, 78, 0, 237, 0, 71, 226, 229, 0, 61,
473 226, 229, 0, 231, 83, 156, 104, 226, 0, 231,
474 83, 291, 104, 226, 0, 231, 44, 226, 0, 231,
475 83, 1, 104, 226, 0, 83, 231, 104, 0, 71,
476 226, 231, 0, 61, 226, 231, 0, 231, 84, 227,
477 109, 0, 231, 84, 109, 0, 3, 0, 303, 0,
478 107, 4, 0, 107, 3, 0, 107, 95, 0, 232,
479 295, 231, 0, 232, 295, 4, 0, 232, 295, 4,
480 83, 156, 104, 226, 0, 232, 295, 4, 83, 291,
481 104, 226, 0, 232, 295, 4, 44, 226, 0, 232,
482 295, 4, 83, 1, 104, 226, 0, 232, 295, 95,
483 0, 232, 295, 95, 83, 156, 104, 226, 0, 232,
484 295, 95, 83, 291, 104, 226, 0, 232, 295, 95,
485 44, 226, 0, 232, 295, 95, 83, 1, 104, 226,
486 0, 46, 295, 231, 0, 233, 0, 143, 46, 0,
487 4, 46, 0, 5, 0, 143, 5, 0, 83, 235,
488 104, 0, 71, 226, 235, 0, 71, 226, 0, 78,
489 0, 83, 236, 104, 0, 61, 226, 235, 0, 61,
490 226, 0, 235, 83, 291, 104, 226, 0, 235, 44,
491 226, 0, 235, 84, 227, 109, 0, 235, 84, 109,
492 0, 83, 291, 104, 226, 0, 44, 226, 0, 84,
493 227, 109, 0, 84, 109, 0, 232, 71, 226, 0,
494 232, 71, 226, 235, 0, 232, 61, 226, 0, 232,
495 61, 226, 235, 0, 232, 295, 71, 226, 229, 0,
496 232, 295, 61, 226, 229, 0, 250, 0, 239, 0,
497 238, 250, 0, 238, 239, 0, 1, 105, 0, 0,
498 0, 242, 0, 243, 0, 242, 243, 0, 34, 192,
499 105, 0, 245, 0, 1, 245, 0, 50, 106, 0,
500 50, 240, 241, 238, 106, 0, 50, 240, 241, 1,
501 106, 0, 0, 0, 14, 247, 155, 248, 249, 0,
502 245, 0, 240, 251, 0, 245, 0, 251, 0, 171,
503 0, 154, 105, 0, 0, 246, 15, 252, 249, 0,
504 246, 0, 0, 0, 16, 253, 155, 254, 249, 0,
505 0, 0, 17, 255, 249, 16, 256, 155, 105, 0,
506 0, 0, 0, 283, 257, 286, 105, 258, 286, 104,
507 259, 249, 0, 0, 0, 0, 284, 260, 286, 105,
508 261, 286, 104, 262, 249, 0, 0, 19, 83, 154,
509 104, 263, 249, 0, 0, 20, 154, 55, 264, 250,
510 0, 0, 20, 154, 56, 154, 55, 265, 250, 0,
511 0, 21, 55, 266, 250, 0, 22, 105, 0, 23,
512 105, 0, 24, 105, 0, 24, 154, 105, 0, 115,
513 285, 83, 167, 104, 105, 0, 115, 285, 83, 167,
514 55, 287, 104, 105, 0, 115, 285, 83, 167, 55,
515 287, 55, 287, 104, 105, 0, 115, 285, 83, 167,
516 55, 287, 55, 287, 55, 290, 104, 105, 0, 25,
517 71, 154, 105, 0, 25, 140, 105, 0, 270, 250,
518 0, 270, 106, 0, 105, 0, 93, 105, 0, 93,
519 154, 105, 0, 91, 299, 83, 156, 104, 105, 0,
520 91, 299, 44, 105, 0, 85, 299, 83, 156, 104,
521 105, 0, 85, 299, 44, 105, 0, 85, 140, 105,
522 0, 0, 269, 89, 140, 50, 267, 277, 106, 0,
523 269, 1, 0, 0, 273, 274, 274, 268, 281, 0,
524 269, 87, 301, 0, 269, 0, 271, 106, 0, 271,
525 238, 106, 0, 271, 1, 106, 0, 3, 55, 0,
526 95, 55, 0, 49, 0, 0, 88, 50, 272, 240,
527 0, 275, 106, 0, 275, 238, 106, 0, 275, 1,
528 106, 0, 0, 0, 92, 50, 276, 240, 0, 0,
529 0, 277, 299, 278, 245, 0, 0, 277, 21, 279,
530 245, 0, 0, 140, 0, 0, 0, 281, 90, 83,
531 223, 280, 104, 282, 245, 0, 18, 83, 105, 0,
532 18, 83, 154, 105, 0, 18, 83, 50, 106, 0,
533 18, 83, 171, 0, 18, 83, 1, 105, 0, 18,
534 83, 50, 240, 238, 106, 0, 18, 83, 50, 240,
535 1, 106, 0, 0, 8, 0, 0, 154, 0, 1,
536 0, 0, 288, 0, 289, 0, 288, 51, 289, 0,
537 10, 83, 154, 104, 0, 10, 0, 290, 51, 10,
538 0, 0, 292, 0, 292, 51, 11, 0, 292, 11,
539 0, 11, 0, 94, 0, 292, 94, 0, 292, 55,
540 0, 293, 0, 293, 53, 193, 0, 292, 51, 293,
541 0, 292, 51, 293, 53, 193, 0, 292, 51, 297,
542 0, 292, 51, 297, 53, 193, 0, 173, 296, 294,
543 0, 175, 296, 294, 0, 224, 0, 231, 0, 47,
544 231, 0, 226, 0, 0, 294, 0, 0, 86, 301,
545 0, 93, 83, 302, 104, 0, 98, 0, 3, 0,
546 4, 0, 46, 3, 0, 46, 4, 0, 232, 3,
547 0, 234, 0, 223, 0, 299, 0, 301, 51, 299,
548 0, 300, 0, 302, 51, 300, 0, 41, 71, 0,
549 41, 72, 0, 41, 73, 0, 41, 69, 0, 41,
550 70, 0, 41, 61, 0, 41, 59, 0, 41, 60,
551 0, 41, 107, 0, 41, 51, 0, 41, 64, 0,
552 41, 65, 0, 41, 66, 0, 41, 63, 0, 41,
553 52, 0, 41, 53, 0, 41, 67, 0, 41, 68,
554 0, 41, 75, 0, 41, 76, 0, 41, 58, 0,
555 41, 57, 0, 41, 108, 0, 41, 54, 55, 0,
556 41, 62, 0, 41, 79, 0, 41, 80, 0, 41,
557 43, 226, 0, 41, 44, 0, 41, 84, 109, 0,
558 41, 38, 0, 41, 37, 0, 41, 176, 224, 0,
559 41, 1, 0
560};
561
562#if YYDEBUG != 0
563static const short yyrline[] = { 0,
564 283, 284, 292, 294, 295, 299, 304, 308, 311, 314,
565 317, 319, 321, 322, 325, 327, 329, 332, 337, 342,
566 345, 349, 352, 356, 369, 376, 383, 386, 391, 393,
567 397, 403, 403, 406, 406, 409, 409, 422, 422, 427,
568 432, 447, 470, 479, 480, 483, 484, 485, 486, 487,
569 490, 496, 499, 504, 510, 517, 519, 537, 538, 539,
570 542, 556, 569, 572, 575, 578, 580, 582, 586, 592,
571 597, 602, 607, 612, 617, 622, 628, 638, 647, 654,
572 663, 672, 679, 688, 696, 698, 700, 702, 706, 715,
573 738, 741, 743, 744, 747, 754, 761, 765, 767, 769,
574 771, 773, 775, 779, 785, 787, 788, 791, 793, 794,
575 797, 799, 800, 804, 805, 808, 837, 840, 844, 848,
576 849, 853, 858, 861, 865, 868, 871, 903, 922, 925,
577 929, 932, 936, 938, 940, 942, 944, 948, 951, 954,
578 959, 963, 966, 968, 972, 979, 982, 985, 987, 989,
579 991, 997, 1002, 1022, 1024, 1057, 1060, 1062, 1064, 1066,
580 1068, 1070, 1072, 1074, 1082, 1092, 1095, 1097, 1099, 1101,
581 1104, 1106, 1109, 1137, 1156, 1181, 1183, 1186, 1201, 1203,
582 1205, 1216, 1218, 1220, 1222, 1224, 1226, 1228, 1230, 1232,
583 1234, 1236, 1238, 1240, 1242, 1244, 1246, 1248, 1250, 1252,
584 1254, 1256, 1263, 1266, 1281, 1284, 1299, 1300, 1302, 1304,
585 1306, 1314, 1329, 1334, 1341, 1351, 1401, 1403, 1419, 1421,
586 1425, 1448, 1492, 1494, 1496, 1498, 1500, 1539, 1546, 1548,
587 1550, 1552, 1555, 1558, 1560, 1602, 1604, 1609, 1611, 1615,
588 1618, 1622, 1624, 1632, 1634, 1638, 1647, 1662, 1668, 1671,
589 1678, 1686, 1689, 1696, 1701, 1708, 1710, 1711, 1713, 1721,
590 1724, 1726, 1728, 1732, 1736, 1741, 1743, 1754, 1758, 1760,
591 1763, 1778, 1781, 1783, 1785, 1789, 1792, 1800, 1801, 1802,
592 1803, 1804, 1808, 1812, 1817, 1818, 1819, 1822, 1824, 1827,
593 1829, 1832, 1835, 1839, 1847, 1849, 1858, 1864, 1865, 1871,
594 1879, 1881, 1892, 1895, 1900, 1902, 1907, 1912, 1923, 1938,
595 1941, 1945, 1947, 1952, 1955, 1958, 1964, 1967, 1970, 1972,
596 1974, 1976, 1980, 1984, 1988, 1991, 1994, 1998, 2001, 2005,
597 2060, 2075, 2077, 2080, 2082, 2087, 2088, 2090, 2092, 2095,
598 2098, 2101, 2106, 2109, 2111, 2113, 2119, 2123, 2128, 2133,
599 2140, 2145, 2154, 2159, 2159, 2161, 2164, 2166, 2170, 2172,
600 2176, 2181, 2185, 2189, 2195, 2204, 2218, 2221, 2223, 2227,
601 2253, 2262, 2288, 2291, 2293, 2295, 2298, 2301, 2304, 2309,
602 2374, 2376, 2380, 2382, 2386, 2389, 2392, 2396, 2398, 2402,
603 2404, 2408, 2410, 2414, 2419, 2421, 2423, 2425, 2431, 2434,
604 2435, 2446, 2451, 2455, 2459, 2463, 2468, 2472, 2475, 2478,
605 2481, 2489, 2491, 2495, 2498, 2502, 2505, 2509, 2512, 2513,
606 2517, 2520, 2524, 2527, 2535, 2537, 2541, 2544, 2546, 2548,
607 2550, 2552, 2554, 2556, 2558, 2560, 2561, 2563, 2565, 2567,
608 2570, 2573, 2575, 2577, 2579, 2581, 2583, 2585, 2587, 2588,
609 2590, 2597, 2600, 2602, 2604, 2606, 2608, 2610, 2612, 2614,
610 2616, 2620, 2623, 2629, 2631, 2633, 2642, 2644, 2646, 2648,
611 2650, 2653, 2655, 2657, 2659, 2661, 2663, 2667, 2675, 2692,
612 2695, 2696, 2717, 2722, 2724, 2726, 2728, 2730, 2732, 2734,
613 2736, 2738, 2740, 2742, 2744, 2746, 2748, 2752, 2760, 2767,
614 2774, 2783, 2791, 2804, 2806, 2807, 2808, 2811, 2818, 2828,
615 2830, 2835, 2837, 2840, 2854, 2857, 2860, 2862, 2867, 2874,
616 2878, 2881, 2883, 2886, 2893, 2896, 2899, 2902, 2915, 2918,
617 2920, 2923, 2929, 2931, 2933, 2937, 2940, 2946, 2951, 2954,
618 2959, 2965, 2969, 2972, 2978, 2993, 3000, 3003, 3053, 3053,
619 3132, 3132, 3148, 3148, 3152, 3156, 3159, 3164, 3171, 3180,
620 3189, 3198, 3201, 3207, 3209, 3213, 3217, 3218, 3219, 3222,
621 3225, 3228, 3231, 3234, 3246, 3275, 3285, 3298, 3326, 3357,
622 3369, 3377, 3382, 3389, 3397, 3399, 3406, 3408, 3408, 3416,
623 3421, 3428, 3429, 3431, 3431, 3434, 3455, 3471, 3490, 3508,
624 3511, 3513, 3516, 3533, 3551, 3554, 3556, 3560, 3563, 3565,
625 3567, 3573, 3576, 3580, 3583, 3584, 3590, 3592, 3595, 3597,
626 3601, 3606, 3609, 3618, 3625, 3630, 3635, 3639, 3646, 3650,
627 3654, 3668, 3671, 3673, 3675, 3677, 3679, 3687, 3703, 3708,
628 3709, 3710, 3714, 3718, 3736, 3744, 3747, 3749, 3753, 3756,
629 3758, 3760, 3762, 3764, 3766, 3769, 3774, 3776, 3783, 3785,
630 3792, 3795, 3797, 3799, 3801, 3803, 3805, 3807, 3809, 3811,
631 3813, 3815, 3817, 3819, 3821, 3823, 3832, 3834, 3836, 3838,
632 3840, 3842, 3844, 3846, 3848, 3850, 3862, 3874, 3905, 3917,
633 3929, 3942, 3958, 3960
634};
635
636static const char * const yytname[] = { "$","error","$illegal.","IDENTIFIER",
637"TYPENAME","SCOPED_TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING",
638"ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
639"BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","GCC_ASM_KEYWORD","TYPEOF",
640"ALIGNOF","HEADOF","CLASSOF","ATTRIBUTE","EXTENSION","LABEL","AGGR","VISSPEC",
641"DELETE","NEW","OVERLOAD","THIS","OPERATOR","DYNAMIC","POINTSAT_LEFT_RIGHT",
642"LEFT_RIGHT","TEMPLATE","SCOPE","START_DECLARATOR","EMPTY","TYPENAME_COLON",
643"'{'","','","ASSIGN","'='","'?'","':'","RANGE","OROR","ANDAND","'|'","'^'","'&'",
644"MIN_MAX","EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'",
645"'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","PAREN_STAR_PAREN",
646"POINTSAT","POINTSAT_STAR","'.'","DOT_STAR","'('","'['","RAISE","RAISES","RERAISE",
647"TRY","EXCEPT","CATCH","THROW","ANSI_TRY","ANSI_THROW","TYPENAME_ELLIPSIS","PTYPENAME",
648"PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
649"TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN","END_OF_SAVED_INPUT","')'",
650"';'","'}'","'~'","'!'","']'","program","extdefs","@1",".hush_warning",".warning_ok",
651"asm_keyword","extdef","extern_lang_string","template_header","@2","template_parm_list",
652"template_parm","overloaddef","ov_identifiers","template_def","@3","@4","@5",
653"@6","fn_tmpl_end","datadef","fndef","fn.def1","fn.def2","return_id","return_init",
654"base_init",".set_base_init","member_init_list","member_init","identifier","identifier_defn",
655"identifier_or_opname","template_type","template_type_name","tmpl.1","tmpl.2",
656"template_arg_list","template_arg","template_instantiate_once","@7","template_instantiation",
657"template_instantiate_some","unop","expr","paren_expr_or_null","nonnull_exprlist",
658"unary_expr","@8","cast_expr","expr_no_commas","primary","@9","@10","new",".scope",
659"delete","string","nodecls","object","object_star","decl","declarator","typed_declspecs",
660"reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
661"typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl0",
662"@11","initdcl","@12","notype_initdcl0","@13","maybe_attribute","attribute_list",
663"attrib","identifiers_or_typenames","init","initlist","structsp","@14","@15",
664"maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype","named_class_head_sans_basetype_defn",
665"named_class_head","@16","@17","unnamed_class_head","class_head","maybe_base_class_list",
666"base_class_list","base_class","scoped_base_class","base_class.1","base_class_visibility_list",
667"left_curly","opt.component_decl_list","component_decl_list","component_decl",
668"components","component_declarator0","component_declarator","enumlist","enumerator",
669"typename","absdcl","nonempty_type_quals","type_quals","nonmomentary_expr","@18",
670"after_type_declarator","after_type_declarator_no_typename","notype_declarator",
671"scoped_id","typename_scope","scoped_typename","absdcl1","abs_member_declarator",
672"after_type_member_declarator","stmts","errstmt",".pushlevel","maybe_label_decls",
673"label_decls","label_decl","compstmt_or_error","compstmt","simple_if","@19",
674"@20","implicitly_scoped_stmt","stmt","simple_stmt","@21","@22","@23","@24",
675"@25","@26","@27","@28","@29","@30","@31","@32","@33","@34","@35","@36","@37",
676"try","label_colon","try_head","@38","ansi_try","ansi_dummy","ansi_try_head",
677"@39","except_stmts","@40","@41","optional_identifier","ansi_except_stmts","@42",
678"forhead.1","forhead.2","maybe_type_qual","xexpr","asm_operands","nonnull_asm_operands",
679"asm_operand","asm_clobbers","parmlist","parms","parm","abs_or_notype_decl",
680"see_typename","dont_see_typename","bad_parm","maybe_raises","raise_identifier",
681"ansi_raise_identifier","raise_identifiers","ansi_raise_identifiers","operator_name",
682""
683};
684#endif
685
686static const short yyr1[] = { 0,
687 110, 110, 112, 111, 111, 113, 114, 115, 115, 116,
688 116, 116, 116, 116, 116, 116, 116, 116, 117, 119,
689 118, 120, 120, 121, 121, 121, 121, 122, 123, 123,
690 125, 124, 126, 124, 127, 124, 128, 124, 124, 124,
691 124, 124, 124, 124, 124, 129, 129, 129, 129, 129,
692 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
693 131, 131, 131, 131, 131, 131, 131, 131, 132, 132,
694 132, 132, 132, 132, 132, 132, 133, 133, 133, 133,
695 133, 133, 133, 134, 135, 135, 135, 135, 136, 137,
696 138, 138, 138, 138, 139, 139, 139, 139, 139, 139,
697 139, 139, 139, 139, 140, 140, 140, 141, 141, 141,
698 142, 142, 142, 142, 142, 143, 144, 144, 145, 145,
699 145, 146, 147, 147, 148, 148, 150, 149, 151, 151,
700 152, 152, 153, 153, 153, 153, 153, 154, 154, 155,
701 155, 156, 156, 156, 157, 158, 157, 157, 157, 157,
702 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
703 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
704 157, 157, 157, 157, 157, 159, 159, 159, 159, 159,
705 159, 160, 160, 160, 160, 160, 160, 160, 160, 160,
706 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
707 160, 160, 160, 160, 161, 161, 161, 161, 161, 161,
708 162, 161, 163, 161, 161, 161, 161, 161, 161, 161,
709 161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
710 161, 161, 161, 161, 161, 164, 164, 164, 164, 165,
711 165, 166, 166, 167, 167, 168, 169, 169, 170, 171,
712 171, 171, 171, 171, 171, 172, 172, 172, 172, 173,
713 173, 173, 173, 174, 174, 174, 174, 175, 175, 175,
714 175, 176, 176, 176, 176, 177, 177, 178, 178, 178,
715 178, 178, 178, 178, 179, 179, 179, 180, 180, 181,
716 181, 182, 182, 184, 183, 183, 186, 185, 185, 188,
717 187, 187, 189, 189, 190, 190, 191, 191, 191, 192,
718 192, 193, 193, 193, 193, 193, 194, 194, 194, 194,
719 194, 194, 196, 195, 195, 197, 195, 195, 195, 195,
720 195, 198, 198, 199, 199, 200, 200, 200, 200, 200,
721 200, 200, 201, 201, 201, 201, 201, 202, 204, 203,
722 205, 203, 206, 207, 207, 208, 208, 208, 209, 209,
723 210, 210, 210, 210, 211, 212, 212, 213, 213, 213,
724 213, 214, 215, 215, 215, 215, 216, 216, 216, 217,
725 217, 217, 217, 217, 217, 217, 217, 217, 217, 217,
726 217, 217, 217, 217, 217, 217, 217, 217, 218, 218,
727 218, 219, 219, 219, 219, 219, 220, 220, 220, 220,
728 220, 221, 221, 222, 222, 223, 223, 224, 224, 224,
729 225, 225, 226, 226, 228, 227, 229, 229, 229, 229,
730 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
731 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
732 230, 231, 231, 231, 231, 231, 231, 231, 231, 231,
733 231, 231, 231, 231, 231, 231, 231, 231, 231, 231,
734 231, 231, 231, 231, 231, 231, 231, 232, 232, 233,
735 234, 234, 235, 235, 235, 235, 235, 235, 235, 235,
736 235, 235, 235, 235, 235, 235, 235, 236, 236, 236,
737 236, 237, 237, 238, 238, 238, 238, 239, 240, 241,
738 241, 242, 242, 243, 244, 244, 245, 245, 245, 247,
739 248, 246, 249, 249, 250, 250, 251, 251, 252, 251,
740 251, 253, 254, 251, 255, 256, 251, 257, 258, 259,
741 251, 260, 261, 262, 251, 263, 251, 264, 251, 265,
742 251, 266, 251, 251, 251, 251, 251, 251, 251, 251,
743 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
744 251, 251, 251, 267, 251, 251, 268, 251, 251, 251,
745 269, 269, 269, 270, 270, 270, 272, 271, 273, 273,
746 273, 274, 276, 275, 277, 278, 277, 279, 277, 280,
747 280, 281, 282, 281, 283, 283, 283, 284, 284, 284,
748 284, 285, 285, 286, 286, 286, 287, 287, 288, 288,
749 289, 290, 290, 291, 291, 291, 291, 291, 291, 291,
750 291, 292, 292, 292, 292, 292, 292, 293, 293, 294,
751 294, 294, 295, 296, 297, 298, 298, 298, 299, 299,
752 299, 299, 299, 299, 299, 300, 301, 301, 302, 302,
753 303, 303, 303, 303, 303, 303, 303, 303, 303, 303,
754 303, 303, 303, 303, 303, 303, 303, 303, 303, 303,
755 303, 303, 303, 303, 303, 303, 303, 303, 303, 303,
756 303, 303, 303, 303
757};
758
759static const short yyr2[] = { 0,
760 0, 1, 0, 2, 2, 0, 0, 1, 1, 1,
761 1, 1, 1, 5, 4, 3, 4, 4, 1, 0,
762 5, 1, 3, 2, 4, 3, 1, 3, 1, 3,
763 0, 5, 0, 5, 0, 5, 0, 5, 3, 3,
764 6, 7, 4, 3, 3, 1, 1, 1, 1, 1,
765 2, 3, 3, 3, 3, 2, 2, 2, 2, 1,
766 3, 4, 3, 5, 4, 3, 3, 2, 3, 3,
767 2, 6, 6, 4, 4, 1, 6, 4, 3, 6,
768 4, 3, 2, 2, 1, 3, 4, 2, 3, 0,
769 0, 1, 3, 2, 3, 1, 4, 2, 4, 2,
770 4, 2, 5, 3, 1, 1, 1, 1, 1, 1,
771 1, 1, 1, 2, 1, 3, 4, 4, 1, 1,
772 0, 0, 1, 3, 1, 1, 0, 6, 0, 1,
773 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
774 3, 1, 3, 3, 1, 0, 3, 2, 2, 2,
775 2, 2, 2, 4, 2, 4, 3, 6, 6, 9,
776 4, 7, 5, 8, 9, 9, 6, 9, 6, 9,
777 3, 6, 2, 4, 5, 1, 4, 7, 4, 4,
778 4, 1, 3, 3, 3, 3, 3, 3, 3, 3,
779 3, 3, 3, 3, 3, 3, 3, 3, 3, 5,
780 3, 3, 3, 2, 1, 1, 1, 1, 3, 3,
781 0, 4, 0, 6, 2, 4, 2, 3, 2, 2,
782 1, 4, 4, 2, 5, 3, 2, 2, 2, 5,
783 3, 5, 3, 6, 4, 1, 4, 2, 5, 0,
784 1, 1, 2, 1, 2, 0, 2, 2, 2, 3,
785 3, 3, 3, 2, 2, 1, 1, 2, 2, 1,
786 2, 2, 3, 1, 1, 2, 2, 1, 1, 2,
787 2, 1, 2, 2, 3, 1, 2, 1, 1, 1,
788 1, 4, 4, 1, 1, 1, 1, 1, 3, 1,
789 3, 0, 4, 0, 7, 4, 0, 7, 4, 0,
790 7, 4, 0, 6, 1, 3, 1, 4, 8, 1,
791 3, 1, 2, 3, 4, 1, 1, 3, 4, 6,
792 3, 5, 0, 7, 4, 0, 6, 3, 2, 4,
793 1, 0, 1, 0, 1, 1, 2, 5, 2, 2,
794 2, 2, 2, 2, 2, 3, 3, 2, 0, 3,
795 0, 3, 2, 1, 1, 0, 1, 2, 1, 3,
796 1, 1, 2, 2, 2, 3, 1, 1, 1, 2,
797 2, 1, 0, 1, 4, 3, 1, 2, 2, 3,
798 5, 5, 3, 3, 3, 3, 3, 5, 5, 3,
799 3, 3, 3, 1, 2, 2, 3, 3, 0, 1,
800 3, 4, 6, 4, 3, 2, 4, 6, 4, 3,
801 2, 1, 3, 1, 3, 2, 2, 0, 1, 2,
802 1, 2, 0, 2, 0, 2, 5, 5, 3, 5,
803 4, 3, 3, 5, 1, 1, 5, 3, 3, 1,
804 5, 5, 3, 5, 4, 3, 3, 1, 1, 3,
805 3, 5, 5, 3, 5, 3, 3, 3, 4, 3,
806 1, 1, 2, 2, 2, 3, 3, 7, 7, 5,
807 7, 3, 7, 7, 5, 7, 3, 1, 2, 2,
808 1, 2, 3, 3, 2, 1, 3, 3, 2, 5,
809 3, 4, 3, 4, 2, 3, 2, 3, 4, 3,
810 4, 5, 5, 1, 1, 2, 2, 2, 0, 0,
811 1, 1, 2, 3, 1, 2, 2, 5, 5, 0,
812 0, 5, 1, 2, 1, 1, 1, 2, 0, 4,
813 1, 0, 0, 5, 0, 0, 7, 0, 0, 0,
814 9, 0, 0, 0, 9, 0, 6, 0, 5, 0,
815 7, 0, 4, 2, 2, 2, 3, 6, 8, 10,
816 12, 4, 3, 2, 2, 1, 2, 3, 6, 4,
817 6, 4, 3, 0, 7, 2, 0, 5, 3, 1,
818 2, 3, 3, 2, 2, 1, 0, 4, 2, 3,
819 3, 0, 0, 4, 0, 0, 4, 0, 4, 0,
820 1, 0, 0, 8, 3, 4, 4, 3, 4, 6,
821 6, 0, 1, 0, 1, 1, 0, 1, 1, 3,
822 4, 1, 3, 0, 1, 3, 2, 1, 1, 2,
823 2, 1, 3, 3, 5, 3, 5, 3, 3, 1,
824 1, 2, 1, 0, 1, 0, 2, 4, 1, 1,
825 1, 2, 2, 2, 1, 1, 1, 3, 1, 3,
826 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
827 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
828 2, 2, 2, 3, 2, 2, 2, 3, 2, 3,
829 2, 2, 3, 2
830};
831
832static const short yydefact[] = { 3,
833 0, 0, 0, 461, 280, 481, 269, 279, 268, 0,
834 8, 9, 0, 336, 0, 0, 0, 0, 423, 423,
835 423, 0, 0, 76, 19, 60, 0, 0, 5, 6,
836 0, 13, 12, 11, 10, 246, 284, 121, 0, 0,
837 260, 0, 290, 278, 0, 349, 351, 355, 354, 331,
838 0, 423, 478, 281, 462, 4, 58, 59, 423, 480,
839 240, 624, 105, 106, 326, 107, 329, 240, 29, 0,
840 694, 280, 421, 692, 691, 423, 689, 670, 675, 676,
841 0, 682, 681, 667, 668, 666, 685, 674, 671, 672,
842 673, 677, 678, 664, 665, 661, 662, 663, 679, 680,
843 686, 687, 0, 669, 683, 284, 418, 272, 0, 281,
844 337, 0, 20, 643, 0, 0, 0, 0, 0, 0,
845 240, 464, 463, 465, 0, 3, 0, 0, 280, 0,
846 0, 349, 351, 646, 0, 90, 85, 246, 0, 0,
847 482, 479, 119, 120, 129, 440, 0, 423, 423, 435,
848 0, 57, 0, 0, 288, 256, 257, 423, 436, 280,
849 271, 270, 56, 0, 261, 0, 0, 265, 285, 286,
850 262, 264, 287, 0, 51, 106, 339, 340, 341, 342,
851 345, 353, 107, 109, 108, 110, 343, 348, 344, 356,
852 356, 372, 0, 68, 423, 0, 425, 0, 0, 71,
853 0, 423, 624, 646, 205, 421, 207, 244, 240, 240,
854 0, 0, 146, 242, 221, 241, 0, 240, 134, 133,
855 240, 135, 136, 0, 240, 137, 0, 123, 240, 176,
856 182, 126, 145, 0, 240, 208, 0, 240, 418, 272,
857 125, 418, 0, 206, 628, 629, 644, 644, 0, 625,
858 632, 328, 0, 323, 0, 138, 139, 0, 0, 28,
859 688, 684, 690, 423, 0, 423, 423, 486, 624, 425,
860 693, 419, 274, 276, 422, 273, 0, 0, 424, 477,
861 458, 457, 456, 0, 0, 16, 0, 7, 7, 45,
862 44, 646, 0, 31, 35, 39, 33, 37, 40, 292,
863 84, 91, 88, 0, 240, 246, 0, 0, 0, 509,
864 61, 515, 63, 356, 130, 116, 258, 259, 0, 0,
865 423, 423, 448, 0, 0, 449, 66, 55, 69, 0,
866 54, 423, 0, 425, 0, 53, 263, 52, 67, 70,
867 267, 266, 646, 291, 346, 347, 357, 350, 352, 394,
868 240, 0, 399, 399, 0, 0, 377, 646, 454, 0,
869 268, 0, 142, 260, 0, 460, 0, 240, 650, 651,
870 0, 649, 0, 0, 655, 657, 647, 0, 0, 303,
871 467, 472, 466, 646, 0, 74, 240, 0, 0, 153,
872 145, 0, 0, 155, 240, 240, 240, 227, 0, 243,
873 0, 228, 152, 149, 148, 0, 0, 0, 0, 150,
874 240, 118, 151, 240, 240, 0, 240, 240, 240, 240,
875 240, 240, 240, 240, 240, 240, 240, 240, 240, 240,
876 240, 240, 240, 215, 219, 220, 248, 249, 247, 240,
877 240, 240, 236, 0, 240, 173, 245, 111, 112, 113,
878 0, 217, 0, 115, 204, 416, 224, 240, 417, 112,
879 113, 229, 418, 418, 423, 627, 418, 631, 630, 0,
880 414, 334, 412, 325, 0, 282, 0, 283, 30, 495,
881 420, 489, 485, 0, 0, 0, 0, 497, 0, 423,
882 624, 425, 277, 275, 0, 0, 22, 0, 27, 117,
883 0, 15, 18, 17, 292, 50, 46, 49, 47, 48,
884 43, 0, 0, 0, 0, 303, 106, 96, 240, 0,
885 92, 0, 121, 0, 0, 316, 0, 312, 86, 0,
886 0, 62, 65, 516, 517, 510, 127, 439, 438, 0,
887 0, 423, 423, 0, 423, 0, 425, 433, 303, 289,
888 429, 0, 0, 0, 432, 0, 423, 423, 292, 369,
889 368, 367, 122, 358, 359, 362, 361, 0, 0, 396,
890 395, 461, 423, 240, 240, 624, 646, 0, 400, 423,
891 624, 646, 0, 0, 330, 379, 378, 83, 423, 423,
892 423, 459, 426, 652, 653, 654, 0, 656, 659, 0,
893 0, 0, 302, 423, 0, 423, 0, 75, 423, 0,
894 0, 0, 0, 280, 0, 147, 226, 240, 210, 209,
895 0, 240, 124, 202, 201, 616, 615, 0, 199, 198,
896 196, 197, 195, 194, 193, 190, 191, 192, 188, 189,
897 183, 184, 185, 186, 187, 203, 0, 0, 238, 240,
898 171, 240, 272, 157, 240, 0, 114, 233, 240, 218,
899 0, 231, 240, 0, 423, 423, 624, 640, 641, 638,
900 639, 646, 626, 634, 645, 636, 633, 240, 335, 0,
901 334, 144, 143, 488, 484, 423, 423, 483, 487, 423,
902 496, 491, 0, 493, 0, 338, 0, 21, 345, 343,
903 348, 14, 303, 32, 36, 34, 38, 0, 0, 94,
904 0, 98, 240, 100, 240, 0, 102, 240, 205, 280,
905 240, 313, 0, 317, 0, 87, 64, 0, 0, 511,
906 512, 0, 0, 0, 0, 0, 447, 443, 0, 0,
907 0, 446, 0, 296, 423, 423, 423, 431, 0, 0,
908 303, 129, 0, 365, 371, 370, 364, 363, 392, 393,
909 240, 383, 384, 646, 303, 406, 0, 292, 0, 380,
910 390, 391, 646, 0, 386, 292, 385, 387, 0, 397,
911 398, 455, 452, 453, 658, 0, 648, 0, 0, 300,
912 470, 0, 0, 0, 475, 0, 0, 0, 646, 222,
913 154, 156, 179, 181, 180, 0, 212, 0, 177, 240,
914 213, 216, 0, 0, 0, 418, 418, 161, 240, 0,
915 174, 240, 0, 235, 240, 223, 0, 642, 489, 485,
916 423, 72, 0, 0, 415, 413, 327, 0, 500, 498,
917 494, 423, 492, 23, 26, 0, 0, 41, 95, 93,
918 0, 0, 104, 240, 0, 0, 0, 0, 314, 310,
919 0, 0, 205, 520, 532, 535, 0, 0, 240, 0,
920 0, 0, 240, 0, 586, 0, 0, 0, 0, 240,
921 0, 566, 612, 0, 527, 0, 0, 0, 505, 525,
922 531, 504, 526, 0, 240, 0, 592, 0, 538, 542,
923 513, 0, 437, 434, 451, 450, 423, 423, 423, 445,
924 294, 430, 427, 428, 503, 502, 299, 366, 360, 303,
925 78, 405, 423, 303, 461, 240, 240, 646, 401, 81,
926 423, 0, 660, 293, 0, 0, 423, 423, 423, 423,
927 423, 423, 73, 225, 332, 200, 131, 0, 237, 0,
928 0, 0, 0, 163, 175, 232, 0, 230, 635, 637,
929 324, 501, 499, 490, 25, 42, 97, 99, 0, 101,
930 0, 321, 240, 315, 0, 318, 0, 514, 508, 519,
931 584, 0, 0, 509, 0, 240, 0, 552, 554, 555,
932 556, 0, 240, 0, 650, 651, 0, 0, 587, 0,
933 593, 567, 0, 585, 613, 0, 528, 254, 646, 0,
934 255, 0, 0, 646, 0, 518, 507, 506, 529, 576,
935 0, 0, 565, 564, 0, 581, 0, 592, 0, 589,
936 0, 0, 0, 0, 444, 441, 442, 0, 297, 404,
937 381, 382, 646, 402, 240, 303, 411, 292, 388, 389,
938 646, 307, 0, 305, 301, 471, 468, 469, 476, 473,
939 474, 0, 0, 131, 214, 239, 172, 0, 272, 158,
940 167, 169, 159, 234, 103, 319, 0, 0, 311, 140,
941 240, 521, 533, 240, 523, 0, 0, 509, 605, 0,
942 608, 0, 548, 240, 240, 557, 0, 563, 573, 0,
943 240, 509, 0, 240, 509, 568, 0, 251, 292, 250,
944 253, 252, 292, 509, 579, 0, 583, 582, 577, 591,
945 590, 0, 0, 128, 295, 0, 77, 0, 303, 410,
946 303, 80, 0, 0, 0, 178, 132, 418, 418, 162,
947 240, 0, 425, 425, 0, 322, 0, 509, 509, 524,
948 536, 609, 607, 0, 606, 546, 240, 0, 553, 562,
949 572, 0, 588, 570, 0, 594, 0, 530, 574, 602,
950 539, 543, 298, 403, 409, 407, 0, 0, 306, 304,
951 0, 0, 0, 164, 0, 0, 320, 141, 522, 534,
952 0, 0, 0, 509, 549, 550, 0, 0, 617, 0,
953 595, 578, 0, 0, 0, 0, 308, 168, 170, 160,
954 165, 166, 0, 611, 610, 547, 240, 571, 569, 0,
955 0, 618, 619, 558, 0, 0, 0, 0, 408, 0,
956 537, 551, 240, 617, 0, 0, 598, 575, 596, 0,
957 540, 544, 0, 0, 0, 559, 620, 0, 0, 600,
958 509, 509, 0, 621, 0, 0, 599, 597, 601, 0,
959 541, 545, 309, 622, 0, 560, 603, 0, 0, 0,
960 623, 561, 604, 0, 0, 0
961};
962
963static const short yydefgoto[] = { 1274,
964 1, 2, 127, 503, 883, 29, 30, 31, 278, 496,
965 497, 32, 70, 33, 512, 514, 513, 515, 511, 34,
966 35, 36, 352, 137, 138, 139, 302, 520, 521, 562,
967 188, 452, 37, 38, 145, 752, 227, 228, 315, 732,
968 316, 1065, 229, 884, 1082, 256, 230, 397, 231, 257,
969 233, 408, 947, 444, 234, 235, 236, 140, 237, 238,
970 885, 343, 247, 171, 248, 239, 273, 392, 274, 154,
971 42, 380, 155, 1038, 344, 1126, 43, 936, 603, 1053,
972 1054, 861, 724, 725, 44, 475, 253, 1063, 680, 45,
973 46, 47, 48, 190, 191, 49, 50, 348, 564, 565,
974 566, 567, 568, 193, 355, 356, 357, 578, 579, 929,
975 472, 473, 241, 668, 242, 114, 367, 368, 156, 325,
976 157, 243, 53, 110, 272, 486, 159, 888, 889, 1084,
977 729, 730, 731, 311, 890, 891, 982, 1148, 1086, 892,
978 893, 1114, 983, 1149, 984, 1191, 1032, 1203, 1251, 1033,
979 1204, 1252, 1194, 1157, 1217, 1095, 1201, 1170, 894, 895,
980 896, 1102, 897, 1028, 898, 1105, 1225, 1249, 1248, 1260,
981 1202, 1270, 899, 900, 1006, 628, 1221, 1222, 1223, 1265,
982 487, 250, 251, 670, 201, 463, 676, 200, 376, 599,
983 377, 600, 244
984};
985
986static const short yypact[] = { 85,
987 1781, 1492, 152,-32768, 749,-32768,-32768,-32768,-32768, 321,
988-32768,-32768, 16,-32768, 116, 2019, 74, 82,-32768,-32768,
989-32768, 1140, 151,-32768,-32768,-32768, 84, 177,-32768, 285,
990 559,-32768,-32768,-32768,-32768, 62, 108, 182, 723, 839,
991 997, 92,-32768,-32768, 1078,-32768,-32768,-32768,-32768, 301,
992 1615,-32768,-32768, 39,-32768,-32768,-32768,-32768,-32768,-32768,
993 5696, 5379,-32768,-32768, 202,-32768, 310, 5696,-32768, 189,
994-32768, 312,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
995 325,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
996-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
997-32768,-32768, 316,-32768,-32768, 389, 1204, 1494, 1248,-32768,
998-32768, 427,-32768, 510, 1140, 500, 500, 51, 523, 49,
999 5696,-32768,-32768,-32768, 427, 450, 4946, 437, 51, 2378,
1000 1433, 60, 194, 651, 574,-32768, 536, 160, 411, 411,
1001-32768,-32768,-32768,-32768, 503, 51, 2063,-32768,-32768,-32768,
1002 3444,-32768, 1265, 212,-32768, 675, 677,-32768,-32768, 2129,
1003-32768,-32768,-32768, 508, 997, 238, 1746,-32768,-32768,-32768,
1004 1665,-32768,-32768, 2378,-32768, 312,-32768,-32768,-32768,-32768,
1005-32768,-32768, 151,-32768,-32768,-32768,-32768,-32768, 473, 566,
1006 566,-32768, 4861,-32768,-32768, 3380, 506, 103, 540, 494,
1007 2391,-32768, 5379, 240,-32768, 543,-32768,-32768, 5902, 5979,
1008 562, 600,-32768,-32768,-32768, 5413, 123, 5777,-32768,-32768,
1009 5777,-32768,-32768, 4331, 5777,-32768, 195,-32768, 5777,-32768,
1010-32768, 6505, 1349, 605, 5369, 683, 266, 5777, 1204, 546,
1011-32768, 6305, 272,-32768,-32768,-32768,-32768, 3429, 606, 303,
1012 660,-32768, 123, 611, 627, 653, 6439, 637, 742,-32768,
1013 510,-32768,-32768,-32768, 887,-32768,-32768,-32768, 6261, 641,
1014-32768, 695, 1494,-32768,-32768, 1494, 48, 3537,-32768,-32768,
1015 677, 677,-32768, 354, 64,-32768, 1886,-32768,-32768,-32768,
1016-32768, 341, 70,-32768,-32768,-32768,-32768,-32768,-32768, 591,
1017-32768, 179,-32768, 4412, 5777,-32768, 411, 411, 704, 681,
1018-32768,-32768,-32768, 566,-32768,-32768, 675, 677, 1539, 1539,
1019-32768,-32768,-32768, 3552, 318,-32768,-32768,-32768, 494, 2378,
1020-32768,-32768, 3488, 657, 3660,-32768, 1665,-32768,-32768, 494,
1021-32768,-32768, 341,-32768,-32768,-32768, 338,-32768,-32768,-32768,
1022 5777, 548, 1894, 6023, 42, 1648,-32768, 651, 510, 692,
1023 543, 175, 6483, 967, 708,-32768, 690, 5777,-32768, 51,
1024 644,-32768, 108, 805,-32768,-32768, 772, 2568, 748, 809,
1025 51, 151,-32768, 240, 735,-32768, 5777, 543, 4331,-32768,
1026 1530, 190, 4331,-32768, 5777, 5858, 5777,-32768, 54,-32768,
1027 409,-32768,-32768,-32768,-32768, 745, 747, 704, 759,-32768,
1028 5696,-32768,-32768, 5777, 5777, 4493, 5777, 5777, 5777, 5777,
1029 5777, 5777, 5777, 5777, 5777, 5777, 5777, 5777, 5777, 5777,
1030 5777, 5777, 5777,-32768,-32768,-32768,-32768,-32768,-32768, 5777,
1031 5777, 5777, 465, 1367, 4817,-32768,-32768,-32768, 51, 151,
1032 123, 541, 272,-32768,-32768,-32768,-32768, 5777,-32768,-32768,
1033-32768, 646, 702, 702,-32768,-32768, 6085,-32768,-32768, 4412,
1034 830, 843,-32768,-32768, 123,-32768, 4736,-32768,-32768, 510,
1035 695, 1298, 1298, 50, 355, 792, 799,-32768, 810,-32768,
1036 5379, 816,-32768, 1494, 874, 446,-32768, 1102,-32768,-32768,
1037 824,-32768,-32768,-32768, 591,-32768,-32768,-32768,-32768,-32768,
1038-32768, 834, 840, 842, 849, 809, 51,-32768, 5777, 448,
1039-32768, 679, 806, 123, 684,-32768, 3920, 6483,-32768, 178,
1040 411,-32768,-32768,-32768,-32768, 880,-32768, 675, 675, 1539,
1041 1539,-32768,-32768, 362,-32768, 3596, 855,-32768, 809,-32768,
1042 510, 868, 216, 872,-32768, 875,-32768,-32768, 591,-32768,
1043-32768,-32768,-32768, 926,-32768,-32768, 976, 383, 6366,-32768,
1044-32768, 931, 602, 5777, 5777, 6192, 341, 258,-32768, 619,
1045 6192, 731, -1, 932,-32768,-32768,-32768, 669,-32768,-32768,
1046-32768,-32768,-32768,-32768,-32768,-32768, 103,-32768,-32768, 314,
1047 427, 906, 939,-32768, 3704,-32768, 3812,-32768,-32768, 317,
1048 890, 891, 892, 33, 893,-32768,-32768, 5777,-32768,-32768,
1049 902, 5453,-32768, 6483, 6483,-32768,-32768, 952, 6541, 6556,
1050 3766, 3333, 3872, 1802, 1790, 1891, 1891, 1891, 1118, 1118,
1051 800, 800,-32768,-32768,-32768,-32768, 353, 907, 940, 5777,
1052-32768, 5696, 1089, 962, 5777, 913,-32768,-32768, 5777, 698,
1053 356,-32768, 5777, 2362,-32768,-32768, 6130,-32768, 677,-32768,
1054-32768, 240,-32768, 971,-32768, 972,-32768, 5777, 123, 921,
1055 843,-32768, 6483, 695, 695,-32768,-32768,-32768,-32768,-32768,
1056-32768, 510, 927,-32768, 924,-32768, 3537,-32768, 947, 468,
1057 980,-32768, 809,-32768,-32768,-32768,-32768, 70, 372,-32768,
1058 179,-32768, 5777,-32768, 5777, 709,-32768, 5777, 989, 814,
1059 5777,-32768, 993,-32768, 89,-32768,-32768, 123, 3164, 880,
1060-32768, 301, 492, 592, 1539, 1539,-32768, 510, 950, 375,
1061 956,-32768, 942, 1003,-32768,-32768,-32768,-32768, 1539, 1539,
1062 809, 503, 338,-32768,-32768,-32768,-32768, 976,-32768,-32768,
1063 5777,-32768,-32768, 240, 6416, 6483, 957, 807, 1122,-32768,
1064-32768,-32768, 240, 960,-32768, 964,-32768,-32768, 4930,-32768,
1065-32768, 510, 510, 510,-32768, 2568,-32768, 65, 982,-32768,
1066 510, 965, 418, 968, 510, 970, 431, 973, 240,-32768,
1067-32768,-32768,-32768,-32768,-32768, 478,-32768, 4247,-32768, 5777,
1068-32768,-32768, 427, 99, 482, 1204, 6305,-32768, 5777, 4412,
1069-32768, 5777, 487,-32768, 5777,-32768, 489, 677, 2208, 2208,
1070 50,-32768, 4412, 4412, 6483,-32768,-32768, 974, 1298, 1298,
1071 510,-32768,-32768,-32768,-32768, 252, 70,-32768,-32768,-32768,
1072 555, 560,-32768, 5777, 563, 6344, 4412, 4004,-32768,-32768,
1073 283, 697, 1011,-32768,-32768,-32768, 996, 1000, 5777, 1034,
1074 985, 986, 5534, 281,-32768, 300, 1043, 103, 1044, 5615,
1075 284,-32768, 1087, 994,-32768, 2397, 6236, 2516,-32768,-32768,
1076 1085,-32768,-32768, 2322, 5051, 2624,-32768, 2732,-32768,-32768,
1077-32768, 4861,-32768,-32768, 675, 675,-32768,-32768,-32768,-32768,
1078-32768, 510, 510, 510, 675, 675, 1054,-32768,-32768, 6416,
1079-32768,-32768, 787, 809, 1056, 5777, 5777, 341,-32768,-32768,
1080 822, 2195,-32768,-32768, 1111, 4412,-32768,-32768,-32768,-32768,
1081-32768,-32768,-32768,-32768, 1064, 6525, 503, 67,-32768, 3324,
1082 1015, 1018, 577,-32768,-32768,-32768, 580,-32768,-32768,-32768,
1083-32768, 695, 695, 510,-32768,-32768,-32768,-32768, 581,-32768,
1084 4412,-32768, 5777,-32768, 1075,-32768, 123,-32768,-32768,-32768,
1085-32768, 721, 721, 704, 4085, 5777, 856,-32768,-32768,-32768,
1086-32768, 1029, 5777, 1030, 1031, 24, 1033, 727,-32768, 744,
1087-32768,-32768, 1035,-32768,-32768, 1058,-32768,-32768, 782, 286,
1088-32768, 1042, 324, 388, 1045,-32768,-32768,-32768,-32768,-32768,
1089 103, 123,-32768,-32768, 827,-32768, 2840,-32768, 831,-32768,
1090 2948, 4574, 4574, 124, 510, 510, 510, 4412,-32768,-32768,
1091-32768,-32768, 240, 1095, 5777, 6416, 6483, 591,-32768,-32768,
1092 240, 1066, 588,-32768,-32768, 510, 510, 510, 510, 510,
1093 510, 4166, 1047, 503,-32768,-32768,-32768, 2568, 1407, 1101,
1094 1071, 1074,-32768,-32768,-32768,-32768, 6461, 4412,-32768,-32768,
1095 5777,-32768,-32768, 5263,-32768, 1143, 1059, 1055,-32768, 1060,
1096-32768, 1063,-32768, 5777, 5157,-32768, 1065,-32768,-32768, 1070,
1097 5777,-32768, 1079, 5777,-32768,-32768, 427,-32768, 591,-32768,
1098-32768,-32768, 591, 704, 772, 1126,-32768,-32768,-32768,-32768,
1099-32768, 1090, 1093,-32768,-32768, 4412,-32768, 4412, 6416,-32768,
1100 809,-32768, 502, 1111, 1103,-32768,-32768, 1204, 6305,-32768,
1101 5777, 4412,-32768,-32768, 4412,-32768, 1104, 704, 704,-32768,
1102-32768,-32768,-32768, 3272,-32768,-32768, 5157, 1139,-32768,-32768,
1103-32768, 590,-32768,-32768, 598,-32768, 47,-32768,-32768,-32768,
1104-32768,-32768,-32768,-32768,-32768, 1153, 1158, 1106,-32768,-32768,
1105 1110, 1112, 636,-32768, 1113, 1115,-32768,-32768,-32768,-32768,
1106 721, 846, 3056, 704,-32768,-32768, 1114, 1120, 1216, 1123,
1107-32768, 1137, 4655, 4655, 4412, 1221,-32768,-32768,-32768,-32768,
1108-32768,-32768, 1128,-32768,-32768,-32768, 5157,-32768,-32768, 1148,
1109 360, 1183,-32768,-32768, 527, 1154, 1132, 1138,-32768, 1198,
1110-32768,-32768, 5777, 1216, 1145, 1216,-32768,-32768,-32768, 2568,
1111-32768,-32768, 1249, 1156, 380,-32768,-32768, 704, 704, 123,
1112 704, 704, 1159,-32768, 1247, 1157,-32768,-32768,-32768, 1160,
1113-32768,-32768,-32768,-32768, 652,-32768,-32768, 1257, 1164, 704,
1114-32768,-32768,-32768, 1277, 1279,-32768
1115};
1116
1117static const short yypgoto[] = {-32768,
1118 1146,-32768,-32768, 991, 53, 1284,-32768,-32768,-32768,-32768,
1119 584,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -662, 1166,
1120 1169,-32768,-32768,-32768,-32768, 1161,-32768,-32768, 587, -10,
1121 802, -220, 535, -31,-32768,-32768, 1180, 894, -900,-32768,
1122 550, 243,-32768, 35, -955, -163, 752,-32768, -145, 908,
1123 -169,-32768,-32768,-32768,-32768, -177, -99, -93,-32768,-32768,
1124 323, 56, 28, 1144, 61, -15, 1037, 3, -9, 424,
1125 -29, -293,-32768,-32768, 981,-32768,-32768,-32768, -468,-32768,
1126 180,-32768, -160, 509, -26,-32768,-32768,-32768, 643, -261,
1127 1313, 1314,-32768,-32768,-32768,-32768,-32768, -140,-32768, 593,
1128 779, -496,-32768, 618, 451, 575, -340, 1001,-32768,-32768,
1129 881, 678, -66, -101, -6, 1574, -267,-32768, -78, 1036,
1130 1272, 171,-32768, 19, -151,-32768, -133, -854, -864, -283,
1131-32768,-32768, 631, -118, -131,-32768,-32768,-32768, -1013, -827,
1132 289,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1133-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1134-32768,-32768,-32768, 339,-32768,-32768,-32768,-32768,-32768,-32768,
1135-32768,-32768,-32768,-32768,-32768, -995, 134,-32768, 141,-32768,
1136 -37,-32768, -247, -336, 34, 1131,-32768, 27, -585, 604,
1137 363,-32768, 1361
1138};
1139
1140
1141#define YYLAST 6629
1142
1143
1144static const short yytable[] = { 67,
1145 107, 258, 489, 41, 41, 271, 516, 312, 312, 109,
1146 166, 785, 277, 189, 173, 587, 498, 326, 108, 54,
1147 54, 313, 462, 1017, 249, 285, 536, 1083, 39, 39,
1148 499, 172, 362, 41, 187, 549, 1122, 1123, 400, 391,
1149 391, 1027, 165, 1031, 308, 848, 1064, 708, 391, 769,
1150 349, 391, 115, 28, 28, 391, 447, 447, 130, 391,
1151 1018, 40, 40, 240, 41, 391, 556, 1024, 317, 60,
1152 240, 758, 404, 447, 447, 405, 447, 584, 60, 410,
1153 744, 173, 202, 413, -1, 135, 122, 123, 61, 446,
1154 214, 131, 195, 506, 153, 164, 60, 61, 68, 399,
1155 1168, 1199, 255, 777, 778, 369, 370, 6, 111, 294,
1156 686, 276, 141, 481, 295, 61, 136, 485, 69, 507,
1157 687, 203, 508, 240, 509, 63, 64, 671, -106, 41,
1158 675, 196, 197, 165, 1189, 1190, 804, 456, 173, 858,
1159 459, 530, 174, 529, 173, 54, 113, 585, 371, 477,
1160 1200, 495, 283, 142, 39, 172, 112, 409, 365, 584,
1161 300, 342, 1017, 1064, 296, 385, 1017, 501, 934, 553,
1162 1066, 52, 52, 537, 510, 312, 312, 534, 124, 329,
1163 1216, 63, 517, 6, 966, 292, 293, 40, 532, 533,
1164 326, 335, 52, 340, 859, 41, 175, 23, 364, 1018,
1165 372, 52, 845, 1018, 949, 41, 403, 1227, 1228, 158,
1166 158, 703, 531, 173, 136, 121, 375, 66, 401, 674,
1167 353, 400, 518, 610, 695, 477, 240, 391, 477, 1124,
1168 386, 143, 660, 457, 847, 1213, 144, 1261, 1262, 259,
1169 538, 539, 471, 297, 276, 411, 173, 279, 298, 173,
1170 165, 616, 379, 354, 63, 176, 57, 58, 407, 125,
1171 412, 519, 330, 493, 306, 751, 477, 1159, 448, 449,
1172 523, 41, 458, 183, 448, 460, 621, 647, 590, 743,
1173 41, 726, 917, 63, 64, 52, 52, 52, 174, 41,
1174 998, 522, 1000, 260, 661, 554, 922, 52, 299, 1193,
1175 158, 158, 995, 996, 6, 54, 16, 252, 769, 677,
1176 173, 598, 16, 466, 39, 563, 331, 158, 505, 746,
1177 525, 158, 611, 63, 64, 198, 612, 342, 1017, 1195,
1178 684, 685, 199, 977, 126, 364, 330, 173, 1004, 28,
1179 63, 176, 338, 560, 158, 371, 183, 40, 121, 965,
1180 192, 993, 379, 467, 172, 709, 165, 468, 41, 254,
1181 450, 545, 770, 52, 786, 1018, 461, 477, 374, 559,
1182 65, 52, 451, 561, 174, 66, 61, 654, 451, 262,
1183 108, 379, 740, 353, 588, 63, 176, 978, 755, 1232,
1184 1110, 240, 379, 141, 183, 240, 469, 372, 490, 312,
1185 546, 547, 593, 477, 411, 545, 477, 453, 577, 582,
1186 608, 309, 727, 240, 1234, 66, 354, 787, 756, 500,
1187 800, 548, 477, 407, 263, 477, 198, 407, 1112, 613,
1188 615, 195, 183, 199, 1255, 498, 208, 491, 492, 484,
1189 657, 793, 326, 797, 546, 547, 653, 326, 710, 499,
1190 627, 1040, 617, 693, 806, 1044, 811, 52, 688, 826,
1191 310, 733, 734, 1235, 471, 737, 189, 173, 477, 41,
1192 196, 197, 524, 198, 924, 849, 648, 183, 908, 656,
1193 199, 477, 924, 1256, 493, 391, 814, 700, 815, 158,
1194 158, 618, -257, 41, 158, 823, 697, -89, 711, 827,
1195 158, 788, 4, 118, 1177, 52, 649, 279, 741, 821,
1196 1178, 698, 481, 716, 650, 485, 723, 279, -24, 11,
1197 12, 938, 345, 158, 158, -292, 52, 346, 477, 369,
1198 370, 6, 477, -24, 941, 332, 563, 477, 767, 477,
1199 16, 290, 291, 774, -292, 19, -292, 1237, 364, 851,
1200 106, 852, 169, 170, 855, 286, 119, 379, 10, 128,
1201 20, 4, 129, 6, 7, 8, 9, 794, 142, 798,
1202 21, 10, 371, 119, 333, 334, 301, 1130, 41, 303,
1203 14, 944, 22, 41, 658, 950, 13, 17, 304, 457,
1204 956, 587, 958, 14, 23, 903, 106, 570, -292, 16,
1205 17, 314, 571, 768, 19, 477, 27, 364, 776, 364,
1206 477, 379, 336, 477, 366, 375, 11, 12, 305, 20,
1207 347, 23, 378, 659, 372, 387, 173, 477, 458, 21,
1208 477, 477, 1238, 52, 52, 332, 816, 52, 1134, 1239,
1209 477, 22, 443, 106, 395, 817, 594, 595, 477, 119,
1210 119, 119, 391, 23, 240, 953, 905, 906, 967, 954,
1211 1175, 957, 1176, 968, 119, 27, 970, 563, 471, 41,
1212 915, 916, 959, 960, 333, 334, 955, 684, 685, 523,
1213 1073, 119, 396, 1074, 1075, 119, 477, 962, 963, 662,
1214 969, 1135, 447, 1197, 195, 904, 972, 976, 832, 41,
1215 522, 1198, 1268, 477, 4, 118, 762, 763, 119, 465,
1216 158, 158, 470, 948, 951, 952, 474, 860, 332, 598,
1217 195, 563, 712, 771, 772, 4, 146, 717, 663, 525,
1218 476, 364, 373, 196, 197, 119, 198, 106, 490, 1210,
1219 478, 824, 16, 199, 479, 264, 158, 19, 664, 488,
1220 106, 158, 853, 310, 1131, 1269, 886, 333, 334, 196,
1221 197, 713, 665, 16, 1080, 555, 718, 374, 19, 147,
1222 1100, 119, 666, 780, 781, 1055, 106, 491, 492, 268,
1223 825, 41, 106, 148, 667, 270, 535, 1103, 108, 887,
1224 921, 854, 59, 149, 60, 589, 23, 723, 592, 930,
1225 150, 979, 980, 1081, 1154, 151, 353, 596, 27, 1101,
1226 1076, 591, 106, 61, 563, 549, 198, 23, 1163, 276,
1227 379, 1166, 597, 199, 928, 943, 1104, 152, 379, 27,
1228 601, 62, 11, 12, 52, 775, 373, 831, 609, 354,
1229 602, 4, 160, 6, 161, 8, 162, 975, 619, 714,
1230 620, 10, 1085, 119, 119, 143, -79, 1013, 119, 60,
1231 144, -79, 622, 994, 119, 997, 13, 198, -106, 119,
1232 431, 432, 433, 14, 199, 1185, 1186, 1125, 61, 16,
1233 17, 524, 678, 1070, 19, 147, 1108, 119, 715, 165,
1234 364, 1041, 1042, 679, 375, 689, 375, 364, 364, 148,
1235 364, 976, 690, 987, 41, 158, 158, 992, 696, 149,
1236 1093, 1094, 106, 728, 1003, 886, 150, 1146, 691, 158,
1237 158, 151, 886, 886, 694, 886, 1049, 1050, 702, 353,
1238 264, 979, 1117, 23, 41, 979, 1120, 1162, 704, 158,
1239 1165, 1009, 1012, 163, 705, 27, 706, 266, 887, 52,
1240 979, 1214, 1069, 707, 1048, 887, 887, 267, 887, 353,
1241 390, 394, 354, 742, 268, 1173, 1079, 1174, 232, 269,
1242 270, 745, 168, 169, 170, 747, 753, 1183, 106, 10,
1243 754, 1184, 1085, 748, 1187, 761, 779, 364, 789, 11,
1244 12, 790, 354, 801, 802, 803, 805, 119, 119, 52,
1245 52, 14, 168, 169, 170, 807, 810, 1167, 17, 10,
1246 457, 1116, 886, -82, 820, 812, 1085, 1085, -82, 1090,
1247 1092, 822, 813, 833, 834, 106, 837, 1097, 232, 364,
1248 842, 14, 843, 364, 846, 1109, 1181, 1182, 17, 375,
1249 1113, 183, 173, -105, 1229, 887, 374, 857, 374, 458,
1250 910, 975, 1138, 907, 886, 911, 158, 158, 886, 909,
1251 923, 1139, 1085, 931, 935, 981, 627, 627, 937, 1127,
1252 108, 939, 52, 940, 119, 119, 942, 1132, 985, 961,
1253 63, 176, 986, 177, 178, 179, 364, 887, 988, 989,
1254 990, 887, 999, 1001, 1005, 169, 170, 364, 1007, 1019,
1255 379, 10, 52, 363, 63, 176, 1039, 177, 178, 179,
1256 1045, 886, 180, 1052, 1062, 1147, 1257, 1258, 1071, 1085,
1257 1085, 1072, 886, 14, 925, 146, 181, 182, 1158, 1078,
1258 17, 373, 818, 1096, 1098, -105, 180, 1099, 1273, 1106,
1259 1107, 276, 4, 118, 887, 455, 1111, 1128, 1133, 979,
1260 699, 182, 1136, 1142, 1143, 887, 364, 1144, 1151, 364,
1261 1153, 379, 16, 1152, 1155, 379, 1156, 19, 147, 1160,
1262 926, 819, 183, 1250, 1161, 1169, 927, 184, 185, 186,
1263 16, 886, 148, 1164, 886, 19, 429, 430, 431, 432,
1264 433, 374, 149, 1196, 1171, 364, 183, 1172, 119, 150,
1265 20, 184, 185, 186, 151, 1205, 1180, 1188, 1206, 1207,
1266 21, 528, 363, 1208, 887, 1209, 23, 887, 1218, 364,
1267 886, 1211, 22, 1212, 1219, 1220, 1226, 1224, 27, 1230,
1268 1233, 106, 1231, 1236, 23, 1241, 1240, 627, 627, 1259,
1269 363, 1242, 108, 375, 886, 373, 27, 264, 1243, 1246,
1270 265, 72, 6, 887, 8, 275, 1264, 1253, 569, 1254,
1271 10, 1266, 1263, 1267, 266, 327, 1271, 1244, 1272, 119,
1272 119, 287, 51, 51, 267, 13, 1275, 887, 1276, 504,
1273 844, 268, 14, 119, 119, 56, 269, 270, -646, 17,
1274 -646, -646, 288, 120, 363, 289, -646, 850, 307, 701,
1275 284, 918, 134, 119, 623, 279, 1137, 1091, 337, 1010,
1276 550, 167, 494, 1179, -646, -646, 945, -646, 232, -646,
1277 106, 624, 625, 838, 629, 630, 631, 632, 633, 634,
1278 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
1279 645, 264, 23, 132, 133, 919, 757, 646, 363, 902,
1280 198, 106, 1034, 932, 583, 681, 836, 199, 266, 544,
1281 901, 55, 55, 119, 119, 363, 1119, 1245, 267, 328,
1282 72, 6, 1150, 8, 73, 268, 1247, 528, 464, 10,
1283 269, 270, 55, 1115, 683, 0, 280, 281, 282, 933,
1284 0, 55, 434, 0, 13, 374, 0, 0, 51, 55,
1285 55, 14, 0, 0, 0, 0, 0, 0, 17, 0,
1286 373, 0, 373, 169, 170, 651, 0, 0, 318, 10,
1287 119, 0, 120, 435, 436, 0, 363, 437, 438, 439,
1288 440, 441, 442, 0, 528, 4, 160, 6, 161, 8,
1289 162, 14, 0, 0, 0, 10, 0, 0, 17, 652,
1290 1140, 0, 0, 363, 0, 0, 0, 0, 0, 0,
1291 13, 23, 0, 0, 358, 0, 0, 14, 0, 0,
1292 0, 0, 383, 16, 17, 55, 55, 55, 19, 147,
1293 0, 765, 766, 0, 106, 0, 0, 55, 0, 1141,
1294 55, 55, 3, 148, 4, 5, 6, 7, 8, 9,
1295 169, 170, 0, 149, 10, 0, 10, 55, 0, 0,
1296 150, 55, 363, 0, 363, 151, 0, 11, 12, 13,
1297 0, 0, 0, 0, 0, 363, 14, 23, 14, 809,
1298 15, 0, 16, 17, 55, 17, 18, 19, 0, 27,
1299 0, 4, 146, 0, 0, 0, 279, 0, 0, 0,
1300 0, 0, 20, 55, 0, 373, 0, 363, 51, 363,
1301 0, 55, 21, 0, 0, 0, 363, 0, 0, 0,
1302 363, 0, 0, 434, 22, 0, 402, 0, 0, 16,
1303 0, 0, 0, 0, 19, 835, 23, 24, 25, 0,
1304 281, 282, 0, 116, 117, 120, 26, 454, 27, 148,
1305 0, 0, 106, 454, 435, 436, 383, 0, 437, 149,
1306 439, 0, 441, 442, 0, 194, 150, 0, 0, 0,
1307 363, 151, 363, 0, 0, 363, 0, 358, 856, 0,
1308 0, 0, 204, 23, 0, 0, 0, 0, -646, 0,
1309 -646, -646, 0, 0, 0, 27, -646, 55, 350, 261,
1310 4, 129, 6, 7, 8, 9, 0, 0, 195, 0,
1311 10, 0, 0, 0, -646, -646, 0, -646, 920, -646,
1312 341, 169, 170, 106, 0, 13, 0, 10, 0, 55,
1313 55, 0, 14, -374, 55, 0, 0, 0, 16, 17,
1314 55, 0, 0, 19, 0, 55, 0, 196, 197, 14,
1315 198, 0, 351, 0, 0, 0, 17, 199, 20, 0,
1316 0, 0, 0, 55, 55, 528, 55, 946, 21, -646,
1317 0, 319, 320, 0, 0, 0, 363, 528, 0, 0,
1318 22, 0, 363, 0, 669, 669, 0, 0, 669, 0,
1319 528, 528, 23, 0, 0, 0, 339, 0, 0, 0,
1320 0, 0, 586, -374, 27, 0, 0, 0, 0, 373,
1321 0, 363, 0, 0, 528, 528, 0, 0, 359, -646,
1322 0, -646, -646, 0, 106, 384, 0, -646, 0, 0,
1323 -2, 3, 0, 4, 5, 6, 7, 8, 9, 195,
1324 0, 0, 0, 10, 0, -646, -646, 0, -646, 0,
1325 -646, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1326 0, 281, 282, 454, 0, 14, 0, 0, 0, 15,
1327 0, 16, 17, 55, 55, 18, 19, 55, 196, 197,
1328 0, 198, 0, 1046, 1047, 0, 0, 480, 199, 482,
1329 483, 20, 0, 528, 0, 0, 0, 120, 0, 0,
1330 -257, 21, 120, 424, 425, 426, 427, 428, 429, 430,
1331 431, 432, 433, 22, 423, 424, 425, 426, 427, 428,
1332 429, 430, 431, 432, 433, 23, 24, 25, 528, 0,
1333 1077, 0, 0, 0, 0, 26, 3, 27, 4, 5,
1334 6, 7, 8, 9, 540, 541, 572, 146, 10, 0,
1335 55, 55, 0, 0, 0, 551, 0, 0, 0, 0,
1336 0, 11, 12, 13, 0, 0, 0, 0, 0, 0,
1337 14, 0, 0, 0, 15, 0, 16, 17, 0, 0,
1338 18, 19, 0, 0, 16, 828, 55, 573, 120, 19,
1339 147, 55, 574, 0, 0, 528, 20, 0, 575, 0,
1340 0, 0, 1129, 0, 148, 0, 21, 427, 428, 429,
1341 430, 431, 432, 433, 149, 0, 0, 0, 22, 528,
1342 0, 150, 0, 0, 0, 0, 576, 0, 0, 0,
1343 23, 24, 25, 0, 0, 528, 0, 0, 23, 0,
1344 26, 502, 27, 0, 0, 0, 0, 0, 0, 0,
1345 27, 0, 0, 0, 0, 0, 281, 282, 363, 0,
1346 0, 363, 0, 0, 0, 0, 0, 0, 0, 71,
1347 281, 282, 72, 6, 55, 8, 73, 55, 0, 0,
1348 0, 10, 0, 528, 0, 528, 0, 0, 672, 0,
1349 0, 0, 0, 0, 0, 0, 13, 0, 363, 528,
1350 358, 0, 528, 14, 0, 74, 75, 0, 0, 0,
1351 17, 76, 77, 692, 0, 4, 146, 0, 0, 78,
1352 79, 80, 81, 0, 0, 82, 83, 84, 85, 86,
1353 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1354 97, 98, 0, 99, 100, 55, 55, 101, 102, 0,
1355 281, 282, 103, 16, 0, 0, 0, 0, 19, 55,
1356 55, 0, 528, 23, 0, 735, 736, 0, 738, 0,
1357 0, 0, 0, 148, 0, 104, 105, 0, 0, 55,
1358 749, 750, 0, 149, 0, 0, 0, 0, 0, 55,
1359 150, 0, 0, 0, 0, 151, 764, 0, 0, 0,
1360 0, 0, -440, 773, -440, -440, 0, 23, 1014, 0,
1361 -440, 0, 782, 783, 784, 0, 0, 0, 0, 27,
1362 0, 0, 0, 358, 60, 0, 0, 791, -440, 795,
1363 0, -440, 799, 0, 0, 0, 0, 0, 0, 55,
1364 55, 0, 0, 61, 0, 350, 0, 4, 129, 6,
1365 7, 8, 9, 358, 0, 0, 0, 10, 0, 0,
1366 4, 118, -440, 0, -440, 279, 0, 0, 0, 0,
1367 0, -440, 13, 0, 0, 0, 0, 0, 0, 14,
1368 -375, 0, 0, 0, -440, 16, 17, 0, 829, 830,
1369 19, 0, 0, 0, 0, 0, 55, 55, 16, 351,
1370 0, 264, 0, 19, 0, 20, 0, 0, 0, 839,
1371 840, 0, 55, 841, 0, 21, 0, 0, 665, 0,
1372 0, 0, 0, 0, 0, 0, 0, 22, 666, 0,
1373 0, 0, 0, 0, 0, 268, 0, 0, 0, 23,
1374 667, 270, 55, 0, 0, 0, 0, 0, 0, 586,
1375 -375, 27, 23, 0, 0, 0, 0, 0, 0, 0,
1376 0, 0, 0, 0, 27, 0, 0, 0, 912, 913,
1377 914, 0, 1020, 0, -580, -580, -580, -580, -580, -580,
1378 -580, -580, 0, -580, -580, -580, -580, -580, -580, -580,
1379 -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
1380 -580, -580, -580, 0, -580, 0, -580, 0, -580, -580,
1381 0, -580, -580, -580, 4, 118, 0, -580, 0, 0,
1382 -580, -580, 0, 0, 0, 0, 0, 0, 0, -580,
1383 4, 146, -580, 0, 0, 0, 0, 0, 0, 0,
1384 -580, -580, -580, 4, 381, 0, -580, -580, 0, 4,
1385 146, 0, 16, 0, -580, 264, -580, 19, 1021, -580,
1386 1022, 0, -580, -580, -580, 964, -580, 0, 16, 0,
1387 0, 0, 665, 19, 147, 0, -580, -580, -580, -580,
1388 0, 16, 666, 0, 0, 0, 19, 16, 148, 268,
1389 0, 0, 19, 147, 667, 270, 0, 0, 149, 0,
1390 0, 20, 0, 0, 0, 150, 23, 148, 0, 0,
1391 151, 21, 0, 0, 0, 0, 0, 149, 27, 0,
1392 0, 0, 23, 22, 150, 0, 0, 0, 0, 151,
1393 1035, 1036, 1037, 0, 27, 382, 0, 0, 0, 0,
1394 0, 23, 0, 0, 0, 0, 1043, 27, 0, 0,
1395 0, 1008, 0, 27, 1051, 0, 0, 0, 0, 0,
1396 1056, 1057, 1058, 1059, 1060, 1061, 1015, 0, 863, 129,
1397 6, 7, 8, 361, 207, 208, 0, 209, 10, 864,
1398 0, 865, 866, 867, 868, 869, 870, 871, 872, 873,
1399 874, 11, 12, 13, 210, 211, 212, 0, 213, 0,
1400 14, 0, 214, -240, 0, 215, 16, 17, 0, 0,
1401 0, 216, 0, 0, 875, 310, 0, 0, 0, 0,
1402 0, 72, 6, 217, 8, 73, 218, 0, 0, 0,
1403 10, 0, 0, 0, 219, 220, 221, 0, 0, 0,
1404 222, 223, 0, 0, 0, 13, 0, 0, 224, 0,
1405 876, 0, 14, 877, 0, 0, 878, 879, 880, 17,
1406 881, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1407 882, 1016, 225, 226, 1025, 0, 863, 129, 6, 7,
1408 8, 361, 207, 208, 0, 209, 10, 864, 0, 865,
1409 866, 867, 868, 869, 870, 871, 872, 873, 874, 11,
1410 12, 13, 210, 211, 212, 0, 213, 0, 14, 0,
1411 214, -240, 23, 215, 16, 17, 0, 0, 0, 216,
1412 0, 0, 875, 310, 0, 0, 0, 0, 0, 0,
1413 0, 217, 0, 0, 218, 0, 0, 0, 0, 0,
1414 0, 0, 219, 220, 221, 0, 0, 0, 222, 223,
1415 0, 0, 0, 0, 0, 0, 224, 0, 876, 0,
1416 0, 877, 0, 0, 878, 879, 880, 0, 881, 0,
1417 0, 0, 0, 0, 0, 0, 0, 0, 882, 1026,
1418 225, 226, 1029, 0, 863, 129, 6, 7, 8, 361,
1419 207, 208, 0, 209, 10, 864, 0, 865, 866, 867,
1420 868, 869, 870, 871, 872, 873, 874, 11, 12, 13,
1421 210, 211, 212, 0, 213, 0, 14, 0, 214, -240,
1422 0, 215, 16, 17, 0, 0, 0, 216, 0, 0,
1423 875, 310, 0, 0, 0, 0, 0, 0, 0, 217,
1424 0, 0, 218, 0, 0, 0, 0, 0, 0, 0,
1425 219, 220, 221, 0, 0, 0, 222, 223, 0, 0,
1426 0, 0, 0, 0, 224, 0, 876, 0, 0, 877,
1427 0, 0, 878, 879, 880, 0, 881, 0, 0, 0,
1428 0, 0, 0, 0, 0, 0, 882, 1030, 225, 226,
1429 1015, 0, 863, 129, 6, 7, 8, 361, 207, 208,
1430 0, 209, 10, 864, 0, 865, 866, 867, 868, 869,
1431 870, 871, 872, 873, 874, 11, 12, 13, 210, 211,
1432 212, 0, 213, 0, 14, 0, 214, -240, 0, 215,
1433 16, 17, 0, 0, 0, 216, 0, 0, 875, 310,
1434 0, 0, 0, 0, 0, 0, 0, 217, 0, 0,
1435 218, 0, 0, 0, 0, 0, 0, 0, 219, 220,
1436 221, 0, 0, 0, 222, 223, 0, 0, 0, 0,
1437 0, 0, 224, 0, 876, 0, 0, 877, 0, 0,
1438 878, 879, 880, 0, 881, 0, 0, 0, 0, 0,
1439 0, 0, 0, 0, 882, 1118, 225, 226, 1015, 0,
1440 863, 129, 6, 7, 8, 361, 207, 208, 0, 209,
1441 10, 864, 0, 865, 866, 867, 868, 869, 870, 871,
1442 872, 873, 874, 11, 12, 13, 210, 211, 212, 0,
1443 213, 0, 14, 0, 214, -240, 0, 215, 16, 17,
1444 0, 0, 0, 216, 0, 0, 875, 310, 0, 0,
1445 0, 0, 0, 0, 0, 217, 0, 0, 218, 0,
1446 0, 0, 0, 0, 0, 0, 219, 220, 221, 0,
1447 0, 0, 222, 223, 0, 0, 0, 0, 0, 0,
1448 224, 0, 876, 0, 0, 877, 0, 0, 878, 879,
1449 880, 0, 881, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 882, 1121, 225, 226, 1015, 0, 863, 129,
1451 6, 7, 8, 361, 207, 208, 0, 209, 10, 864,
1452 0, 865, 866, 867, 868, 869, 870, 871, 872, 873,
1453 874, 11, 12, 13, 210, 211, 212, 0, 213, 0,
1454 14, 0, 214, -240, 0, 215, 16, 17, 0, 0,
1455 0, 216, 0, 0, 875, 310, 0, 0, 0, 0,
1456 0, 0, 0, 217, 0, 0, 218, 0, 0, 0,
1457 0, 0, 0, 0, 219, 220, 221, 0, 0, 0,
1458 222, 223, 0, 0, 0, 0, 0, 0, 224, 0,
1459 876, 0, 0, 877, 0, 0, 878, 879, 880, 0,
1460 881, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1461 882, 1215, 225, 226, 862, 0, 863, 129, 6, 7,
1462 8, 361, 207, 208, 0, 209, 10, 864, 0, 865,
1463 866, 867, 868, 869, 870, 871, 872, 873, 874, 11,
1464 12, 13, 210, 211, 212, 0, 213, 0, 14, 0,
1465 214, -240, 0, 215, 16, 17, 0, 0, 0, 216,
1466 0, 0, 875, 310, 0, 0, 0, 0, 0, 0,
1467 0, 217, 0, 0, 218, 0, 0, 0, 0, 0,
1468 0, 0, 219, 220, 221, 0, 0, 0, 222, 223,
1469 0, 0, 0, 0, 0, 0, 224, 0, 876, 0,
1470 0, 877, 0, 0, 878, 879, 880, 0, 881, 0,
1471 0, 0, 0, 0, 0, 0, 0, 0, 882, 0,
1472 225, 226, 1192, 0, 863, 129, 6, 7, 8, 361,
1473 207, 208, 0, 209, 10, 864, 0, 865, 866, 867,
1474 868, 869, 870, 871, 872, 873, 874, 11, 12, 13,
1475 210, 211, 212, 0, 213, 0, 14, 0, 214, -240,
1476 0, 215, 16, 17, 0, 0, 0, 216, 0, 0,
1477 875, 310, 0, 0, 0, 0, 0, 72, 6, 217,
1478 8, 73, 218, 0, 0, 0, 10, 0, 0, 0,
1479 219, 220, 221, 0, 0, 0, 222, 223, 0, 0,
1480 0, 13, 0, 0, 224, 0, 876, 0, 14, 877,
1481 0, 0, 878, 879, 880, 17, 881, 0, 0, 0,
1482 0, 0, 1067, 0, 0, 0, 882, 0, 225, 226,
1483 360, 0, 205, 129, 6, 7, 8, 361, 207, 208,
1484 245, 209, 10, 421, 422, 423, 424, 425, 426, 427,
1485 428, 429, 430, 431, 432, 433, 1068, 13, 210, 211,
1486 212, 0, 213, 0, 14, 0, 214, -240, 23, 215,
1487 16, 17, 0, 0, 0, 216, 0, 0, 0, 0,
1488 0, 0, 72, 6, 161, 8, 162, 217, 0, 0,
1489 218, 10, 0, 0, 0, 0, 4, 118, 219, 220,
1490 221, 0, 0, 0, 222, 223, 13, 0, 0, 0,
1491 0, 0, 224, 14, 0, 0, 0, 0, 0, 0,
1492 17, 0, 0, 246, 23, 0, 0, 0, 0, 0,
1493 0, 0, 0, -624, 16, 0, 225, 226, 552, 19,
1494 205, 129, 6, 7, 8, 361, 207, 208, 245, 209,
1495 10, 0, 0, 0, 321, 0, 0, 0, 0, 0,
1496 0, 0, 0, 0, 322, 13, 210, 211, 212, 0,
1497 213, 323, 14, 23, 214, -240, 324, 215, 16, 17,
1498 0, 0, 0, 216, 0, 0, 0, 0, 23, 0,
1499 72, 6, 7, 8, 9, 217, 0, 0, 218, 10,
1500 27, 0, 0, 0, 4, 118, 219, 220, 221, 0,
1501 0, 0, 222, 223, 13, 0, 0, 0, 0, 0,
1502 224, 14, 0, 0, 0, 0, 0, 0, 17, 0,
1503 0, 246, 23, 0, 0, 0, 0, 0, 0, 0,
1504 0, -624, 16, 0, 225, 226, 739, 19, 205, 129,
1505 6, 7, 8, 361, 207, 208, 245, 209, 10, 0,
1506 0, 0, 542, 0, 0, 0, 0, 0, 0, 0,
1507 0, 0, 543, 13, 210, 211, 212, 0, 213, 323,
1508 14, 23, 214, -240, 324, 215, 16, 17, 0, 0,
1509 0, 216, 0, 0, 0, 0, 23, 0, 0, 0,
1510 0, 0, 0, 217, 0, 0, 218, 0, 27, 0,
1511 0, 0, 4, 381, 219, 220, 221, 0, 0, 0,
1512 222, 223, 0, 0, 0, 0, 0, 0, 224, 0,
1513 0, 0, 0, 0, 0, 0, 0, 0, 0, 246,
1514 23, 0, 0, 0, 0, 0, 0, 0, 0, -624,
1515 16, 0, 225, 226, 792, 19, 205, 129, 6, 7,
1516 8, 361, 207, 208, 245, 209, 10, 0, 0, 0,
1517 557, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518 558, 13, 210, 211, 212, 0, 213, 0, 14, 0,
1519 214, -240, 22, 215, 16, 17, 0, 0, 0, 216,
1520 0, 0, 0, 0, 382, 0, 0, 0, 0, 0,
1521 0, 217, 0, 0, 218, 0, 27, 0, 0, 0,
1522 0, 0, 219, 220, 221, 0, 0, 0, 222, 223,
1523 0, 0, 0, 0, 0, 0, 224, 0, 0, 0,
1524 0, 0, 0, 0, 0, 0, 0, 246, 23, 0,
1525 0, 0, 0, 0, 0, 0, 0, -624, 0, 0,
1526 225, 226, 796, 0, 205, 129, 6, 7, 8, 361,
1527 207, 208, 245, 209, 10, 420, 421, 422, 423, 424,
1528 425, 426, 427, 428, 429, 430, 431, 432, 433, 13,
1529 210, 211, 212, 0, 213, 0, 14, 0, 214, -240,
1530 0, 215, 16, 17, 0, 0, 0, 216, 0, 0,
1531 0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
1532 0, 0, 218, 0, 0, 0, 0, 0, 0, 0,
1533 219, 220, 221, 0, 0, 0, 222, 223, 0, 0,
1534 0, 0, 0, 0, 224, 0, 0, 0, 0, 0,
1535 0, 0, 0, 0, 0, 246, 23, 0, 0, 0,
1536 0, 0, 0, 0, 0, -624, 0, 0, 225, 226,
1537 526, 0, 719, 720, 6, 0, 8, 388, 207, 208,
1538 0, 209, 10, 422, 423, 424, 425, 426, 427, 428,
1539 429, 430, 431, 432, 433, 0, 0, 13, 210, 211,
1540 212, 0, 213, 0, 14, 0, 214, -240, 0, 215,
1541 16, 17, 0, 0, 0, 216, 0, 0, 0, 527,
1542 0, 0, 0, 0, 0, 0, 0, 217, 0, 0,
1543 218, 0, 0, 0, 0, 0, 0, 0, 219, 220,
1544 221, 0, 0, 0, 222, 223, 0, 0, 0, 0,
1545 0, 0, 224, 721, 526, 0, 719, 720, 6, 0,
1546 8, 388, 207, 208, 183, 209, 10, 0, 0, 0,
1547 0, 0, 0, 973, 0, 722, 225, 226, 0, 0,
1548 0, 13, 210, 211, 212, 0, 213, 0, 14, 0,
1549 214, -240, 0, 215, 16, 17, 0, 0, 0, 216,
1550 0, 0, 0, 527, 0, 0, 0, 0, 0, 0,
1551 0, 217, 0, 0, 218, 0, 0, 0, 0, 0,
1552 0, 0, 219, 220, 221, 0, 0, 0, 222, 223,
1553 0, 0, 0, 0, 0, 1087, 224, 205, 129, 6,
1554 7, 8, 361, 207, 208, 0, 209, 10, 183, 0,
1555 0, 0, 0, 0, 0, 0, 0, 0, 0, 974,
1556 225, 226, 13, 210, 211, 212, 0, 213, 0, 14,
1557 0, 214, -240, 0, 215, 16, 17, 0, 0, 0,
1558 216, 0, 0, 0, 1088, 0, 0, 0, 0, 0,
1559 0, 0, 217, 0, 0, 218, 0, 0, 0, 0,
1560 0, 0, 0, 219, 220, 221, 0, 0, 0, 222,
1561 223, 0, 0, 0, 0, 0, 526, 224, 719, 720,
1562 6, 0, 8, 388, 207, 208, 0, 209, 10, 23,
1563 0, 0, 0, 0, 0, 973, 0, 0, 0, 1089,
1564 0, 225, 226, 13, 210, 211, 212, 0, 213, 0,
1565 14, 0, 214, -240, 0, 215, 16, 17, 0, 0,
1566 0, 216, 0, 0, 0, 527, 0, 0, 0, 0,
1567 0, 0, 0, 217, 0, 0, 218, 0, 0, 0,
1568 0, 0, 0, 0, 219, 220, 221, 0, 0, 0,
1569 222, 223, 0, 0, 0, 0, 0, 526, 224, 719,
1570 720, 6, 0, 8, 388, 207, 208, 0, 209, 10,
1571 183, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1572 0, -333, 225, 226, 13, 210, 211, 212, 0, 213,
1573 0, 14, 0, 214, -240, 0, 215, 16, 17, 0,
1574 0, 0, 216, 0, 0, 0, 527, 0, 0, 0,
1575 0, 0, 0, 0, 217, 0, 0, 218, 0, 0,
1576 0, 0, 0, 0, 0, 219, 220, 221, 0, 0,
1577 0, 222, 223, 0, 0, 0, 0, 0, 0, 224,
1578 721, 406, 0, 205, 129, 6, 0, 8, 206, 207,
1579 208, 183, 209, 10, 0, 0, 0, 0, 0, 0,
1580 0, 0, 0, 225, 226, 0, 0, 0, 13, 210,
1581 211, 212, 0, 213, 0, 14, 0, 214, -240, 0,
1582 215, 16, 17, 0, 0, 0, 216, 0, 0, 0,
1583 -211, 0, 0, 0, 0, 0, 0, 0, 217, 0,
1584 0, 218, 0, 0, 0, 0, 0, 0, 0, 219,
1585 220, 221, 0, 0, 0, 222, 223, 0, 0, 0,
1586 0, 0, 526, 224, 205, 129, 6, 0, 8, 388,
1587 207, 208, 0, 209, 10, 23, 0, 0, 0, 0,
1588 0, 0, 0, 0, 0, 0, 0, 225, 226, 13,
1589 210, 211, 212, 0, 213, 0, 14, 0, 214, -240,
1590 0, 215, 16, 17, 0, 0, 0, 216, 0, 0,
1591 0, 527, 0, 0, 0, 0, 0, 0, 0, 217,
1592 0, 0, 218, 0, 0, 0, 0, 0, 0, 0,
1593 219, 220, 221, 0, 0, 0, 222, 223, 0, 0,
1594 0, 0, 0, 626, 224, 205, 129, 6, 0, 8,
1595 388, 207, 208, 0, 209, 10, 23, 0, 0, 0,
1596 0, 0, 0, 0, 0, 0, 0, 0, 225, 226,
1597 13, 210, 211, 212, 0, 213, 0, 14, 0, 214,
1598 -240, 0, 215, 16, 17, 0, 0, 0, 216, 0,
1599 0, 0, 0, 0, 0, 0, 0, -614, 0, 0,
1600 217, 0, 0, 218, 0, 0, 0, 0, 0, 0,
1601 0, 219, 220, 221, 0, 0, 0, 222, 223, 0,
1602 0, 0, 0, 0, 626, 224, 205, 129, 6, 0,
1603 8, 388, 207, 208, 0, 209, 10, 23, 0, 0,
1604 0, 0, 0, 0, 0, 0, 0, 0, 0, 225,
1605 226, 13, 210, 211, 212, 0, 213, 0, 14, 0,
1606 214, -240, 0, 215, 16, 17, 0, 0, 0, 216,
1607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1608 0, 217, 0, 0, 218, 0, 0, 0, 0, 0,
1609 0, 0, 219, 220, 221, 0, 0, 0, 222, 223,
1610 0, 0, 0, 0, 0, 626, 224, 205, 129, 6,
1611 0, 8, 388, 207, 208, 0, 209, 10, 23, 0,
1612 0, 0, 0, 0, 0, 0, 0, 0, -614, 0,
1613 225, 226, 13, 210, 211, 212, 0, 213, 0, 14,
1614 0, 214, -240, 0, 215, 16, 17, 0, 0, 0,
1615 216, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1616 0, 0, 217, 0, 0, 218, 0, 0, 0, 0,
1617 0, 0, 0, 219, 220, 221, 0, 0, 0, 222,
1618 223, 0, 0, 0, 0, 0, 682, 224, 205, 129,
1619 6, 0, 8, 388, 207, 208, 0, 209, 10, 23,
1620 0, 0, 0, 0, 0, 0, 0, 0, -614, 0,
1621 0, 225, 226, 13, 210, 211, 212, 0, 213, 0,
1622 14, 0, 214, -240, 0, 215, 16, 17, 0, 0,
1623 0, 216, 0, 0, 0, 0, 0, 0, 0, 0,
1624 0, 0, 0, 217, 0, 0, 218, 0, 0, 0,
1625 0, 0, 0, 0, 219, 220, 221, 0, 0, 0,
1626 222, 223, 0, 0, 0, 0, 0, 0, 224, 205,
1627 129, 6, 0, 8, 388, 207, 208, 0, 209, 10,
1628 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1629 0, 0, 225, 226, 13, 210, 211, 212, 0, 213,
1630 0, 14, 0, 214, 0, 0, 215, 16, 17, 0,
1631 0, 350, 216, 4, 129, 6, 7, 8, 9, 0,
1632 0, 0, 0, 10, 217, 0, 0, 218, 0, 0,
1633 0, 0, 0, 0, 0, 219, 220, 221, 13, 0,
1634 0, 222, 223, 0, 0, 14, -373, 0, 0, 224,
1635 0, 16, 17, 0, 0, 0, 19, 0, 0, 0,
1636 0, 23, 0, 0, 0, 351, 0, 0, 0, 0,
1637 0, 20, 0, 225, 226, 655, 0, 0, 0, 0,
1638 350, 21, 4, 129, 6, 7, 8, 9, 0, 0,
1639 0, 0, 10, 22, 0, 0, 3, 0, 4, 5,
1640 6, 7, 8, 9, 0, 23, 0, 13, 10, 0,
1641 0, 0, 0, 0, 14, -376, -373, 27, 0, 0,
1642 16, 17, 0, 13, 0, 19, 0, 0, 0, 0,
1643 14, 0, 0, 0, 351, 0, 16, 17, 0, 0,
1644 20, 19, 0, 0, 0, 0, 0, 0, 0, 0,
1645 21, 0, 0, 0, 0, 0, 20, 0, 0, 0,
1646 0, 0, 22, 0, 0, 0, 21, 0, 0, 0,
1647 0, 0, 0, 0, 23, 0, 0, 0, 22, 0,
1648 0, 0, 0, 0, 0, -376, 27, 0, 0, 0,
1649 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1650 26, 0, 27, 863, 129, 6, 7, 8, 361, 207,
1651 208, 0, 209, 10, 864, 0, 865, 866, 867, 868,
1652 869, 870, 871, 872, 873, 874, 11, 12, 13, 210,
1653 211, 212, 0, 213, 0, 14, 0, 214, 0, 0,
1654 215, 16, 17, 0, 0, 0, 216, 0, 0, 875,
1655 310, 0, 0, 0, 0, 0, 0, 0, 217, 0,
1656 0, 218, 0, 0, 0, 0, 0, 0, 0, 219,
1657 220, 221, 0, 0, 0, 222, 223, 0, 0, 0,
1658 0, 0, 0, 224, 0, 876, 0, 0, 877, 0,
1659 0, 878, 879, 880, 0, 881, 0, 0, 0, 0,
1660 0, 0, 0, 0, 0, 882, 1023, 225, 226, 863,
1661 129, 6, 7, 8, 361, 207, 208, 0, 209, 10,
1662 864, 0, 865, 866, 867, 868, 869, 870, 871, 872,
1663 873, 874, 11, 12, 13, 210, 211, 212, 0, 213,
1664 0, 14, 0, 214, 0, 0, 215, 16, 17, 0,
1665 0, 0, 216, 0, 0, 875, 310, 0, 0, 0,
1666 0, 0, 0, 0, 217, 0, 0, 218, 0, 0,
1667 0, 0, 0, 0, 0, 219, 220, 221, 0, 0,
1668 0, 222, 223, 0, 0, 0, 0, 0, 0, 224,
1669 0, 876, 0, 0, 877, 0, 0, 878, 879, 880,
1670 0, 881, 0, 0, 0, 0, 0, 0, 0, 0,
1671 0, 882, 0, 225, 226, 863, 129, 6, 7, 8,
1672 361, 207, 208, 0, 209, 10, 864, 0, 865, 866,
1673 867, 868, 869, 870, 871, 872, 873, 874, 11, 12,
1674 13, 210, 211, 212, 0, 213, 0, 14, 0, 214,
1675 0, 0, 215, 16, 17, 0, 0, 0, 216, 0,
1676 0, 875, 0, 0, 0, 0, 0, 0, 0, 0,
1677 217, 0, 0, 218, 0, 0, 0, 0, 0, 0,
1678 0, 219, 220, 221, 0, 0, 0, 222, 223, 0,
1679 0, 0, 0, 0, 0, 224, 0, 876, 0, 0,
1680 877, 0, 0, 878, 879, 880, 0, 881, 0, 0,
1681 0, 0, 0, 0, 0, 0, 0, 882, 0, 225,
1682 226, 205, 129, 6, 0, 8, 388, 207, 208, 0,
1683 209, 10, 72, 6, 7, 8, 9, 0, 0, 245,
1684 0, 10, 0, 0, 0, 0, 13, 210, 211, 212,
1685 0, 213, 0, 14, 0, 214, 13, 0, 215, 16,
1686 17, 0, 0, 14, 216, 398, 72, 6, 0, 8,
1687 17, 0, 0, 0, 0, 10, 217, 0, 0, 218,
1688 0, 0, 0, 0, 0, 0, 0, 219, 220, 221,
1689 13, 0, 0, 222, 223, 0, 0, 14, 0, 214,
1690 0, 224, 445, 16, 17, 205, 129, 6, 399, 8,
1691 388, 207, 208, 23, 209, 10, 0, 0, 0, 0,
1692 0, 0, 246, 23, 0, 225, 226, 0, 0, 0,
1693 13, 210, 211, 212, 0, 213, 0, 14, 0, 214,
1694 0, 0, 215, 16, 17, 0, 0, 0, 216, 0,
1695 0, 0, 808, 0, 0, 0, 0, 23, 0, 0,
1696 217, 0, 0, 218, 0, 0, 0, 0, 0, 0,
1697 0, 219, 220, 221, 0, 0, 0, 222, 223, 0,
1698 0, 0, 0, 0, 0, 224, 205, 129, 6, 0,
1699 8, 388, 207, 208, 0, 209, 10, 23, 0, 0,
1700 0, 0, 0, 0, 0, 0, 0, 0, 0, 225,
1701 226, 13, 210, 211, 212, 0, 213, 0, 14, 0,
1702 214, 0, 0, 215, 16, 17, 0, 0, 0, 216,
1703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1704 0, 217, 0, 0, 218, 0, 0, 0, 0, 0,
1705 0, 0, 219, 220, 221, 0, 0, 0, 222, 223,
1706 0, 0, 0, 0, 0, 0, 224, 205, 129, 6,
1707 0, 8, 388, 207, 208, 0, 209, 10, 23, 0,
1708 0, 0, 0, 0, 0, 0, 0, 0, 991, 0,
1709 225, 226, 13, 210, 211, 212, 0, 213, 0, 14,
1710 0, 214, 0, 0, 215, 16, 17, 0, 0, 0,
1711 216, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1712 0, 0, 217, 0, 0, 218, 0, 0, 0, 0,
1713 0, 0, 0, 219, 220, 221, 0, 0, 0, 222,
1714 223, 0, 0, 0, 0, 0, 0, 224, 205, 129,
1715 6, 0, 8, 206, 207, 208, 0, 209, 10, 23,
1716 0, 0, 0, 0, 0, 0, 0, 0, 0, 1002,
1717 0, 225, 226, 13, 210, 211, 212, 0, 213, 0,
1718 14, 0, 214, 0, 0, 215, 16, 17, 0, 0,
1719 0, 216, 0, 0, 0, 0, 0, 0, 0, 0,
1720 0, 0, 0, 217, 0, 0, 218, 0, 0, 0,
1721 0, 0, 0, 0, 219, 220, 221, 0, 0, 0,
1722 222, 223, 0, 0, 0, 0, 0, 0, 224, 205,
1723 129, 6, 0, 8, 388, 207, 208, 0, 209, 10,
1724 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 0, 0, 225, 226, 13, 210, 211, 212, 0, 213,
1726 0, 14, 0, 214, 0, 0, 215, 16, 17, 0,
1727 0, 0, 216, 0, 0, 0, 0, 0, 0, 0,
1728 0, 0, 0, 0, 217, 0, 0, 218, 0, 0,
1729 0, 0, 0, 0, 0, 219, 220, 221, 0, 0,
1730 0, 222, 223, 0, 0, 0, 0, 0, 0, 224,
1731 205, 614, 6, 0, 8, 388, 207, 208, 0, 209,
1732 10, 23, 0, 0, 0, 0, 0, 0, 0, 0,
1733 0, 0, 0, 225, 226, 13, 210, 211, 212, 0,
1734 213, 0, 14, 0, 214, 0, 0, 215, 16, 17,
1735 0, 0, 0, 216, 205, 129, 6, 0, 8, 388,
1736 207, 208, 0, 209, 10, 217, 0, 0, 218, 0,
1737 0, 0, 0, 0, 0, 0, 219, 220, 221, 13,
1738 210, 0, 222, 223, 213, 0, 14, 0, 214, 0,
1739 224, 215, 16, 17, 0, 0, 0, 216, 0, 0,
1740 0, 0, 23, 0, 0, 0, 0, 0, 0, 217,
1741 0, 0, 218, 0, 225, 226, 0, 0, 0, 0,
1742 219, 220, 221, 0, 0, 0, 222, 223, 0, 0,
1743 0, 205, 129, 6, 389, 8, 388, 207, 208, 0,
1744 209, 10, 0, 0, 0, 0, 23, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 13, 210, 225, 226,
1746 0, 213, 0, 14, 0, 214, 0, 0, 215, 16,
1747 17, 0, 0, 0, 216, 572, 160, 6, 161, 8,
1748 162, 0, 0, 0, 0, 10, 217, 0, 0, 218,
1749 0, 0, 0, 0, 0, 0, 0, 219, 220, 221,
1750 13, 0, 0, 222, 223, 0, 0, 14, 0, 0,
1751 0, 393, 0, 16, 17, 0, 580, 0, 19, 147,
1752 0, 574, 0, 23, 0, 0, 0, 575, 0, 0,
1753 0, 0, 0, 148, 0, 225, 226, 4, 129, 6,
1754 7, 8, 9, 149, 0, 673, 0, 10, 0, 0,
1755 150, 0, 0, 0, 0, 581, 0, 0, 0, 0,
1756 0, 0, 13, 0, 0, 0, 0, 23, 0, 14,
1757 0, 0, 0, 0, 0, 16, 17, 0, 264, 27,
1758 19, 664, 4, 129, 6, 7, 8, 9, 0, 0,
1759 245, 0, 10, 0, 0, 665, 0, 0, 0, 0,
1760 0, 0, 0, 0, 0, 666, 0, 13, 0, 0,
1761 0, 0, 268, 0, 14, 0, 0, 667, 270, 0,
1762 16, 17, 0, 264, 0, 19, 0, 0, 0, 23,
1763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1764 665, 27, 0, 0, 4, 129, 6, 7, 8, 9,
1765 666, 0, 245, 0, 10, 0, 0, 268, 0, 0,
1766 0, 0, 667, 270, 0, 0, 0, 0, 0, 13,
1767 0, 0, 0, 246, 23, 0, 14, 0, 0, 0,
1768 0, 0, 16, 17, 0, 0, 27, 19, 4, 160,
1769 6, 161, 8, 162, 0, 0, 0, 0, 10, 0,
1770 0, 0, 321, 0, 0, 0, 0, 0, 0, 0,
1771 0, 0, 322, 13, 129, 6, 7, 8, 9, 323,
1772 14, 245, 0, 10, 324, 0, 16, 17, 0, 0,
1773 0, 19, 147, 0, 0, 246, 23, 0, 13, 0,
1774 0, 0, 0, 0, 0, 14, 148, 0, 27, 0,
1775 0, 0, 17, 0, 264, 0, 149, 0, 72, 6,
1776 0, 8, 275, 150, 0, 0, 0, 10, 151, 0,
1777 0, 266, 0, 0, 0, 0, 0, 0, 0, 0,
1778 23, 267, 13, 0, 0, 0, 0, 0, 268, 14,
1779 1011, 0, 27, 269, 270, 0, 17, 0, 264, 0,
1780 0, 265, 0, 0, 246, 23, 0, 0, 0, 0,
1781 0, 0, 0, 0, 0, 266, 0, 0, 0, 0,
1782 0, 0, 0, 0, 0, 267, 0, 0, 0, 0,
1783 0, 0, 268, 0, 0, 0, 0, 269, 270, 0,
1784 0, 0, 0, 0, 0, 414, 415, 416, 0, 23,
1785 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
1786 427, 428, 429, 430, 431, 432, 433, 414, 415, 416,
1787 0, 0, 417, 418, 419, 420, 421, 422, 423, 424,
1788 425, 426, 427, 428, 429, 430, 431, 432, 433, 0,
1789 0, 0, 0, 0, 0, 0, 0, 602, 0, 0,
1790 0, 0, 971, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 414, 415, 416,
1792 759, 760, 417, 418, 419, 420, 421, 422, 423, 424,
1793 425, 426, 427, 428, 429, 430, 431, 432, 433, -142,
1794 414, 415, 416, 0, 0, 417, 418, 419, 420, 421,
1795 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
1796 432, 433, 414, 415, 416, 1145, 0, 417, 418, 419,
1797 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
1798 430, 431, 432, 433, 414, 415, 416, 0, 0, 417,
1799 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
1800 428, 429, 430, 431, 432, 433, 414, 415, 416, 0,
1801 0, 417, 418, 419, 420, 421, 422, 423, 424, 425,
1802 0, 427, 428, 429, 430, 431, 432, 433, 416, 0,
1803 0, 417, 418, 419, 420, 421, 422, 423, 424, 425,
1804 426, 427, 428, 429, 430, 431, 432, 433, 418, 419,
1805 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
1806 430, 431, 432, 433, 419, 420, 421, 422, 423, 424,
1807 425, 426, 427, 428, 429, 430, 431, 432, 433
1808};
1809
1810static const short yycheck[] = { 10,
1811 16, 68, 270, 1, 2, 107, 300, 139, 140, 16,
1812 40, 597, 112, 45, 41, 356, 278, 151, 16, 1,
1813 2, 140, 243, 888, 62, 125, 310, 983, 1, 2,
1814 278, 41, 196, 31, 45, 329, 1032, 1033, 216, 209,
1815 210, 896, 40, 898, 138, 708, 947, 516, 218, 51,
1816 191, 221, 19, 1, 2, 225, 10, 10, 31, 229,
1817 888, 1, 2, 61, 62, 235, 334, 895, 147, 46,
1818 68, 568, 218, 10, 10, 221, 10, 36, 46, 225,
1819 549, 108, 44, 229, 0, 24, 3, 4, 65, 235,
1820 37, 31, 44, 24, 39, 40, 46, 65, 83, 46,
1821 1114, 55, 68, 105, 106, 3, 4, 5, 35, 50,
1822 61, 109, 5, 265, 55, 65, 55, 269, 3, 50,
1823 71, 83, 53, 121, 55, 3, 4, 464, 105, 127,
1824 467, 83, 84, 131, 1148, 1149, 104, 239, 165, 51,
1825 242, 305, 51, 304, 171, 127, 65, 106, 46, 51,
1826 104, 104, 104, 46, 127, 165, 83, 224, 196, 36,
1827 134, 171, 1027, 1064, 105, 203, 1031, 104, 104, 333,
1828 104, 1, 2, 314, 105, 307, 308, 309, 95, 153,
1829 1194, 3, 4, 5, 847, 130, 131, 127, 307, 308,
1830 324, 158, 22, 167, 106, 193, 105, 95, 196, 1027,
1831 98, 31, 699, 1031, 106, 203, 217, 1203, 1204, 39,
1832 40, 505, 306, 240, 55, 65, 198, 95, 216, 467,
1833 193, 399, 44, 387, 492, 51, 224, 397, 51, 106,
1834 204, 50, 453, 44, 703, 1191, 55, 1251, 1252, 51,
1835 319, 320, 253, 50, 242, 51, 273, 8, 55, 276,
1836 248, 397, 200, 193, 3, 4, 105, 106, 224, 83,
1837 66, 83, 51, 273, 105, 559, 51, 1095, 3, 4,
1838 302, 269, 83, 95, 3, 4, 408, 441, 104, 547,
1839 278, 104, 751, 3, 4, 115, 116, 117, 51, 287,
1840 876, 302, 878, 105, 458, 333, 765, 127, 105, 1154,
1841 130, 131, 3, 4, 5, 287, 41, 106, 51, 470,
1842 337, 378, 41, 11, 287, 347, 105, 147, 292, 104,
1843 302, 151, 389, 3, 4, 86, 393, 337, 1193, 1157,
1844 482, 483, 93, 51, 50, 333, 51, 364, 55, 287,
1845 3, 4, 105, 6, 174, 46, 95, 287, 65, 846,
1846 50, 71, 300, 51, 364, 519, 354, 55, 356, 50,
1847 95, 44, 105, 193, 51, 1193, 95, 51, 198, 343,
1848 50, 201, 107, 36, 51, 95, 65, 444, 107, 55,
1849 378, 329, 546, 356, 358, 3, 4, 105, 6, 1217,
1850 105, 389, 340, 5, 95, 393, 94, 98, 44, 531,
1851 83, 84, 368, 51, 51, 44, 51, 237, 353, 354,
1852 384, 1, 531, 411, 55, 95, 356, 104, 36, 66,
1853 104, 104, 51, 389, 109, 51, 86, 393, 105, 395,
1854 396, 44, 95, 93, 55, 697, 10, 83, 84, 269,
1855 451, 605, 576, 607, 83, 84, 444, 581, 1, 697,
1856 416, 920, 44, 491, 618, 924, 104, 287, 104, 104,
1857 50, 540, 541, 104, 475, 104, 498, 494, 51, 467,
1858 83, 84, 302, 86, 768, 104, 442, 95, 104, 445,
1859 93, 51, 776, 104, 494, 655, 650, 498, 652, 319,
1860 320, 83, 105, 491, 324, 659, 51, 50, 51, 663,
1861 330, 601, 3, 4, 3, 335, 42, 8, 546, 655,
1862 9, 66, 664, 524, 50, 667, 527, 8, 51, 26,
1863 27, 104, 50, 353, 354, 32, 356, 55, 51, 3,
1864 4, 5, 51, 66, 104, 44, 568, 51, 576, 51,
1865 41, 105, 106, 581, 51, 46, 53, 21, 546, 713,
1866 16, 715, 7, 8, 718, 106, 22, 505, 13, 1,
1867 61, 3, 4, 5, 6, 7, 8, 605, 46, 607,
1868 71, 13, 46, 39, 83, 84, 3, 1046, 576, 44,
1869 35, 104, 83, 581, 44, 104, 28, 42, 53, 44,
1870 104, 932, 104, 35, 95, 104, 62, 50, 105, 41,
1871 42, 99, 55, 577, 46, 51, 107, 605, 582, 607,
1872 51, 559, 105, 51, 109, 597, 26, 27, 83, 61,
1873 55, 95, 83, 83, 98, 83, 653, 51, 83, 71,
1874 51, 51, 106, 463, 464, 44, 652, 467, 51, 1225,
1875 51, 83, 38, 109, 83, 652, 3, 4, 51, 115,
1876 116, 117, 822, 95, 652, 819, 735, 736, 104, 820,
1877 1129, 825, 1131, 104, 130, 107, 104, 699, 679, 667,
1878 749, 750, 833, 834, 83, 84, 822, 829, 830, 711,
1879 104, 147, 83, 104, 104, 151, 51, 839, 840, 44,
1880 854, 104, 10, 104, 44, 104, 857, 858, 672, 697,
1881 711, 104, 51, 51, 3, 4, 105, 106, 174, 104,
1882 540, 541, 53, 813, 816, 817, 106, 728, 44, 786,
1883 44, 753, 44, 105, 106, 3, 4, 44, 83, 711,
1884 104, 729, 198, 83, 84, 201, 86, 203, 44, 104,
1885 104, 44, 41, 93, 3, 44, 576, 46, 47, 109,
1886 216, 581, 44, 50, 1048, 104, 729, 83, 84, 83,
1887 84, 83, 61, 41, 44, 109, 83, 597, 46, 47,
1888 44, 237, 71, 105, 106, 936, 242, 83, 84, 78,
1889 83, 779, 248, 61, 83, 84, 106, 44, 786, 729,
1890 764, 83, 44, 71, 46, 104, 95, 808, 109, 773,
1891 78, 105, 106, 83, 1088, 83, 779, 3, 107, 83,
1892 971, 104, 278, 65, 846, 1109, 86, 95, 1102, 817,
1893 768, 1105, 51, 93, 769, 799, 83, 105, 776, 107,
1894 83, 83, 26, 27, 664, 105, 302, 667, 104, 779,
1895 32, 3, 4, 5, 6, 7, 8, 858, 104, 44,
1896 104, 13, 984, 319, 320, 50, 50, 887, 324, 46,
1897 55, 55, 104, 874, 330, 876, 28, 86, 55, 335,
1898 71, 72, 73, 35, 93, 1143, 1144, 1038, 65, 41,
1899 42, 711, 53, 950, 46, 47, 105, 353, 83, 887,
1900 888, 105, 106, 51, 876, 104, 878, 895, 896, 61,
1901 898, 1062, 104, 869, 902, 735, 736, 873, 35, 71,
1902 55, 56, 378, 34, 880, 888, 78, 1078, 109, 749,
1903 750, 83, 895, 896, 109, 898, 105, 106, 105, 902,
1904 44, 105, 106, 95, 932, 105, 106, 1101, 105, 769,
1905 1104, 886, 887, 105, 105, 107, 105, 61, 888, 779,
1906 105, 106, 950, 105, 928, 895, 896, 71, 898, 932,
1907 209, 210, 902, 109, 78, 1126, 977, 1128, 61, 83,
1908 84, 104, 6, 7, 8, 104, 51, 1141, 444, 13,
1909 5, 1142, 1114, 109, 1145, 55, 55, 985, 83, 26,
1910 27, 53, 932, 104, 104, 104, 104, 463, 464, 829,
1911 830, 35, 6, 7, 8, 104, 55, 1107, 42, 13,
1912 44, 1022, 985, 50, 53, 109, 1148, 1149, 55, 985,
1913 986, 109, 83, 53, 53, 491, 106, 993, 121, 1027,
1914 104, 35, 109, 1031, 55, 1009, 1138, 1139, 42, 1021,
1915 1014, 95, 1069, 55, 1205, 985, 876, 55, 878, 83,
1916 109, 1062, 1068, 104, 1027, 53, 886, 887, 1031, 104,
1917 104, 1068, 1194, 104, 83, 55, 1032, 1033, 104, 1043,
1918 1068, 104, 902, 104, 540, 541, 104, 1051, 83, 106,
1919 3, 4, 83, 6, 7, 8, 1084, 1027, 55, 105,
1920 105, 1031, 50, 50, 8, 7, 8, 1095, 105, 15,
1921 1048, 13, 932, 196, 3, 4, 53, 6, 7, 8,
1922 55, 1084, 35, 3, 51, 1081, 1248, 1249, 104, 1251,
1923 1252, 104, 1095, 35, 3, 4, 49, 50, 1094, 55,
1924 42, 597, 44, 105, 105, 105, 35, 105, 1270, 105,
1925 83, 1139, 3, 4, 1084, 238, 105, 53, 83, 105,
1926 49, 50, 106, 53, 84, 1095, 1154, 84, 16, 1157,
1927 106, 1109, 41, 105, 105, 1113, 104, 46, 47, 105,
1928 49, 83, 95, 1240, 105, 50, 55, 100, 101, 102,
1929 41, 1154, 61, 105, 1157, 46, 69, 70, 71, 72,
1930 73, 1021, 71, 55, 105, 1193, 95, 105, 664, 78,
1931 61, 100, 101, 102, 83, 53, 104, 104, 51, 104,
1932 71, 304, 305, 104, 1154, 104, 95, 1157, 105, 1217,
1933 1193, 109, 83, 109, 105, 10, 90, 105, 107, 9,
1934 83, 697, 105, 51, 95, 104, 83, 1203, 1204, 1250,
1935 333, 104, 1240, 1225, 1217, 711, 107, 44, 51, 105,
1936 47, 4, 5, 1193, 7, 8, 10, 9, 351, 104,
1937 13, 105, 104, 104, 61, 1, 10, 1233, 105, 735,
1938 736, 126, 1, 2, 71, 28, 0, 1217, 0, 289,
1939 697, 78, 35, 749, 750, 2, 83, 84, 24, 42,
1940 26, 27, 127, 22, 387, 127, 32, 711, 138, 498,
1941 121, 752, 31, 769, 411, 8, 1064, 985, 165, 886,
1942 330, 40, 276, 1134, 50, 51, 808, 53, 411, 55,
1943 786, 414, 415, 681, 417, 418, 419, 420, 421, 422,
1944 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
1945 433, 44, 95, 31, 31, 753, 568, 440, 441, 732,
1946 86, 817, 902, 779, 354, 475, 679, 93, 61, 324,
1947 730, 1, 2, 829, 830, 458, 1028, 1234, 71, 105,
1948 4, 5, 1084, 7, 8, 78, 1236, 470, 248, 13,
1949 83, 84, 22, 1021, 477, -1, 115, 116, 117, 786,
1950 -1, 31, 44, -1, 28, 1225, -1, -1, 127, 39,
1951 40, 35, -1, -1, -1, -1, -1, -1, 42, -1,
1952 876, -1, 878, 7, 8, 49, -1, -1, 147, 13,
1953 886, -1, 151, 75, 76, -1, 519, 79, 80, 81,
1954 82, 83, 84, -1, 527, 3, 4, 5, 6, 7,
1955 8, 35, -1, -1, -1, 13, -1, -1, 42, 83,
1956 44, -1, -1, 546, -1, -1, -1, -1, -1, -1,
1957 28, 95, -1, -1, 193, -1, -1, 35, -1, -1,
1958 -1, -1, 201, 41, 42, 115, 116, 117, 46, 47,
1959 -1, 574, 575, -1, 950, -1, -1, 127, -1, 83,
1960 130, 131, 1, 61, 3, 4, 5, 6, 7, 8,
1961 7, 8, -1, 71, 13, -1, 13, 147, -1, -1,
1962 78, 151, 605, -1, 607, 83, -1, 26, 27, 28,
1963 -1, -1, -1, -1, -1, 618, 35, 95, 35, 622,
1964 39, -1, 41, 42, 174, 42, 45, 46, -1, 107,
1965 -1, 3, 4, -1, -1, -1, 8, -1, -1, -1,
1966 -1, -1, 61, 193, -1, 1021, -1, 650, 287, 652,
1967 -1, 201, 71, -1, -1, -1, 659, -1, -1, -1,
1968 663, -1, -1, 44, 83, -1, 216, -1, -1, 41,
1969 -1, -1, -1, -1, 46, 678, 95, 96, 97, -1,
1970 319, 320, -1, 20, 21, 324, 105, 237, 107, 61,
1971 -1, -1, 1068, 243, 75, 76, 335, -1, 79, 71,
1972 81, -1, 83, 84, -1, 1, 78, -1, -1, -1,
1973 713, 83, 715, -1, -1, 718, -1, 356, 721, -1,
1974 -1, -1, 59, 95, -1, -1, -1, -1, 24, -1,
1975 26, 27, -1, -1, -1, 107, 32, 287, 1, 76,
1976 3, 4, 5, 6, 7, 8, -1, -1, 44, -1,
1977 13, -1, -1, -1, 50, 51, -1, 53, 761, 55,
1978 6, 7, 8, 1139, -1, 28, -1, 13, -1, 319,
1979 320, -1, 35, 36, 324, -1, -1, -1, 41, 42,
1980 330, -1, -1, 46, -1, 335, -1, 83, 84, 35,
1981 86, -1, 55, -1, -1, -1, 42, 93, 61, -1,
1982 -1, -1, -1, 353, 354, 808, 356, 810, 71, 105,
1983 -1, 148, 149, -1, -1, -1, 819, 820, -1, -1,
1984 83, -1, 825, -1, 463, 464, -1, -1, 467, -1,
1985 833, 834, 95, -1, -1, -1, 1, -1, -1, -1,
1986 -1, -1, 105, 106, 107, -1, -1, -1, -1, 1225,
1987 -1, 854, -1, -1, 857, 858, -1, -1, 195, 24,
1988 -1, 26, 27, -1, 1240, 202, -1, 32, -1, -1,
1989 0, 1, -1, 3, 4, 5, 6, 7, 8, 44,
1990 -1, -1, -1, 13, -1, 50, 51, -1, 53, -1,
1991 55, -1, -1, -1, -1, -1, 26, 27, 28, -1,
1992 -1, 540, 541, 453, -1, 35, -1, -1, -1, 39,
1993 -1, 41, 42, 463, 464, 45, 46, 467, 83, 84,
1994 -1, 86, -1, 926, 927, -1, -1, 264, 93, 266,
1995 267, 61, -1, 936, -1, -1, -1, 576, -1, -1,
1996 105, 71, 581, 64, 65, 66, 67, 68, 69, 70,
1997 71, 72, 73, 83, 63, 64, 65, 66, 67, 68,
1998 69, 70, 71, 72, 73, 95, 96, 97, 971, -1,
1999 973, -1, -1, -1, -1, 105, 1, 107, 3, 4,
2000 5, 6, 7, 8, 321, 322, 3, 4, 13, -1,
2001 540, 541, -1, -1, -1, 332, -1, -1, -1, -1,
2002 -1, 26, 27, 28, -1, -1, -1, -1, -1, -1,
2003 35, -1, -1, -1, 39, -1, 41, 42, -1, -1,
2004 45, 46, -1, -1, 41, 664, 576, 44, 667, 46,
2005 47, 581, 49, -1, -1, 1038, 61, -1, 55, -1,
2006 -1, -1, 1045, -1, 61, -1, 71, 67, 68, 69,
2007 70, 71, 72, 73, 71, -1, -1, -1, 83, 1062,
2008 -1, 78, -1, -1, -1, -1, 83, -1, -1, -1,
2009 95, 96, 97, -1, -1, 1078, -1, -1, 95, -1,
2010 105, 106, 107, -1, -1, -1, -1, -1, -1, -1,
2011 107, -1, -1, -1, -1, -1, 735, 736, 1101, -1,
2012 -1, 1104, -1, -1, -1, -1, -1, -1, -1, 1,
2013 749, 750, 4, 5, 664, 7, 8, 667, -1, -1,
2014 -1, 13, -1, 1126, -1, 1128, -1, -1, 465, -1,
2015 -1, -1, -1, -1, -1, -1, 28, -1, 1141, 1142,
2016 779, -1, 1145, 35, -1, 37, 38, -1, -1, -1,
2017 42, 43, 44, 490, -1, 3, 4, -1, -1, 51,
2018 52, 53, 54, -1, -1, 57, 58, 59, 60, 61,
2019 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2020 72, 73, -1, 75, 76, 735, 736, 79, 80, -1,
2021 829, 830, 84, 41, -1, -1, -1, -1, 46, 749,
2022 750, -1, 1205, 95, -1, 542, 543, -1, 545, -1,
2023 -1, -1, -1, 61, -1, 107, 108, -1, -1, 769,
2024 557, 558, -1, 71, -1, -1, -1, -1, -1, 779,
2025 78, -1, -1, -1, -1, 83, 573, -1, -1, -1,
2026 -1, -1, 24, 580, 26, 27, -1, 95, 887, -1,
2027 32, -1, 589, 590, 591, -1, -1, -1, -1, 107,
2028 -1, -1, -1, 902, 46, -1, -1, 604, 50, 606,
2029 -1, 53, 609, -1, -1, -1, -1, -1, -1, 829,
2030 830, -1, -1, 65, -1, 1, -1, 3, 4, 5,
2031 6, 7, 8, 932, -1, -1, -1, 13, -1, -1,
2032 3, 4, 84, -1, 86, 8, -1, -1, -1, -1,
2033 -1, 93, 28, -1, -1, -1, -1, -1, -1, 35,
2034 36, -1, -1, -1, 106, 41, 42, -1, 665, 666,
2035 46, -1, -1, -1, -1, -1, 886, 887, 41, 55,
2036 -1, 44, -1, 46, -1, 61, -1, -1, -1, 686,
2037 687, -1, 902, 690, -1, 71, -1, -1, 61, -1,
2038 -1, -1, -1, -1, -1, -1, -1, 83, 71, -1,
2039 -1, -1, -1, -1, -1, 78, -1, -1, -1, 95,
2040 83, 84, 932, -1, -1, -1, -1, -1, -1, 105,
2041 106, 107, 95, -1, -1, -1, -1, -1, -1, -1,
2042 -1, -1, -1, -1, 107, -1, -1, -1, 745, 746,
2043 747, -1, 1, -1, 3, 4, 5, 6, 7, 8,
2044 9, 10, -1, 12, 13, 14, 15, 16, 17, 18,
2045 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2046 29, 30, 31, -1, 33, -1, 35, -1, 37, 38,
2047 -1, 40, 41, 42, 3, 4, -1, 46, -1, -1,
2048 49, 50, -1, -1, -1, -1, -1, -1, -1, 58,
2049 3, 4, 61, -1, -1, -1, -1, -1, -1, -1,
2050 69, 70, 71, 3, 4, -1, 75, 76, -1, 3,
2051 4, -1, 41, -1, 83, 44, 85, 46, 87, 88,
2052 89, -1, 91, 92, 93, 842, 95, -1, 41, -1,
2053 -1, -1, 61, 46, 47, -1, 105, 106, 107, 108,
2054 -1, 41, 71, -1, -1, -1, 46, 41, 61, 78,
2055 -1, -1, 46, 47, 83, 84, -1, -1, 71, -1,
2056 -1, 61, -1, -1, -1, 78, 95, 61, -1, -1,
2057 83, 71, -1, -1, -1, -1, -1, 71, 107, -1,
2058 -1, -1, 95, 83, 78, -1, -1, -1, -1, 83,
2059 907, 908, 909, -1, 107, 95, -1, -1, -1, -1,
2060 -1, 95, -1, -1, -1, -1, 923, 107, -1, -1,
2061 -1, 105, -1, 107, 931, -1, -1, -1, -1, -1,
2062 937, 938, 939, 940, 941, 942, 1, -1, 3, 4,
2063 5, 6, 7, 8, 9, 10, -1, 12, 13, 14,
2064 -1, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2065 25, 26, 27, 28, 29, 30, 31, -1, 33, -1,
2066 35, -1, 37, 38, -1, 40, 41, 42, -1, -1,
2067 -1, 46, -1, -1, 49, 50, -1, -1, -1, -1,
2068 -1, 4, 5, 58, 7, 8, 61, -1, -1, -1,
2069 13, -1, -1, -1, 69, 70, 71, -1, -1, -1,
2070 75, 76, -1, -1, -1, 28, -1, -1, 83, -1,
2071 85, -1, 35, 88, -1, -1, 91, 92, 93, 42,
2072 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2073 105, 106, 107, 108, 1, -1, 3, 4, 5, 6,
2074 7, 8, 9, 10, -1, 12, 13, 14, -1, 16,
2075 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2076 27, 28, 29, 30, 31, -1, 33, -1, 35, -1,
2077 37, 38, 95, 40, 41, 42, -1, -1, -1, 46,
2078 -1, -1, 49, 50, -1, -1, -1, -1, -1, -1,
2079 -1, 58, -1, -1, 61, -1, -1, -1, -1, -1,
2080 -1, -1, 69, 70, 71, -1, -1, -1, 75, 76,
2081 -1, -1, -1, -1, -1, -1, 83, -1, 85, -1,
2082 -1, 88, -1, -1, 91, 92, 93, -1, 95, -1,
2083 -1, -1, -1, -1, -1, -1, -1, -1, 105, 106,
2084 107, 108, 1, -1, 3, 4, 5, 6, 7, 8,
2085 9, 10, -1, 12, 13, 14, -1, 16, 17, 18,
2086 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2087 29, 30, 31, -1, 33, -1, 35, -1, 37, 38,
2088 -1, 40, 41, 42, -1, -1, -1, 46, -1, -1,
2089 49, 50, -1, -1, -1, -1, -1, -1, -1, 58,
2090 -1, -1, 61, -1, -1, -1, -1, -1, -1, -1,
2091 69, 70, 71, -1, -1, -1, 75, 76, -1, -1,
2092 -1, -1, -1, -1, 83, -1, 85, -1, -1, 88,
2093 -1, -1, 91, 92, 93, -1, 95, -1, -1, -1,
2094 -1, -1, -1, -1, -1, -1, 105, 106, 107, 108,
2095 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
2096 -1, 12, 13, 14, -1, 16, 17, 18, 19, 20,
2097 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2098 31, -1, 33, -1, 35, -1, 37, 38, -1, 40,
2099 41, 42, -1, -1, -1, 46, -1, -1, 49, 50,
2100 -1, -1, -1, -1, -1, -1, -1, 58, -1, -1,
2101 61, -1, -1, -1, -1, -1, -1, -1, 69, 70,
2102 71, -1, -1, -1, 75, 76, -1, -1, -1, -1,
2103 -1, -1, 83, -1, 85, -1, -1, 88, -1, -1,
2104 91, 92, 93, -1, 95, -1, -1, -1, -1, -1,
2105 -1, -1, -1, -1, 105, 106, 107, 108, 1, -1,
2106 3, 4, 5, 6, 7, 8, 9, 10, -1, 12,
2107 13, 14, -1, 16, 17, 18, 19, 20, 21, 22,
2108 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
2109 33, -1, 35, -1, 37, 38, -1, 40, 41, 42,
2110 -1, -1, -1, 46, -1, -1, 49, 50, -1, -1,
2111 -1, -1, -1, -1, -1, 58, -1, -1, 61, -1,
2112 -1, -1, -1, -1, -1, -1, 69, 70, 71, -1,
2113 -1, -1, 75, 76, -1, -1, -1, -1, -1, -1,
2114 83, -1, 85, -1, -1, 88, -1, -1, 91, 92,
2115 93, -1, 95, -1, -1, -1, -1, -1, -1, -1,
2116 -1, -1, 105, 106, 107, 108, 1, -1, 3, 4,
2117 5, 6, 7, 8, 9, 10, -1, 12, 13, 14,
2118 -1, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2119 25, 26, 27, 28, 29, 30, 31, -1, 33, -1,
2120 35, -1, 37, 38, -1, 40, 41, 42, -1, -1,
2121 -1, 46, -1, -1, 49, 50, -1, -1, -1, -1,
2122 -1, -1, -1, 58, -1, -1, 61, -1, -1, -1,
2123 -1, -1, -1, -1, 69, 70, 71, -1, -1, -1,
2124 75, 76, -1, -1, -1, -1, -1, -1, 83, -1,
2125 85, -1, -1, 88, -1, -1, 91, 92, 93, -1,
2126 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2127 105, 106, 107, 108, 1, -1, 3, 4, 5, 6,
2128 7, 8, 9, 10, -1, 12, 13, 14, -1, 16,
2129 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2130 27, 28, 29, 30, 31, -1, 33, -1, 35, -1,
2131 37, 38, -1, 40, 41, 42, -1, -1, -1, 46,
2132 -1, -1, 49, 50, -1, -1, -1, -1, -1, -1,
2133 -1, 58, -1, -1, 61, -1, -1, -1, -1, -1,
2134 -1, -1, 69, 70, 71, -1, -1, -1, 75, 76,
2135 -1, -1, -1, -1, -1, -1, 83, -1, 85, -1,
2136 -1, 88, -1, -1, 91, 92, 93, -1, 95, -1,
2137 -1, -1, -1, -1, -1, -1, -1, -1, 105, -1,
2138 107, 108, 1, -1, 3, 4, 5, 6, 7, 8,
2139 9, 10, -1, 12, 13, 14, -1, 16, 17, 18,
2140 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2141 29, 30, 31, -1, 33, -1, 35, -1, 37, 38,
2142 -1, 40, 41, 42, -1, -1, -1, 46, -1, -1,
2143 49, 50, -1, -1, -1, -1, -1, 4, 5, 58,
2144 7, 8, 61, -1, -1, -1, 13, -1, -1, -1,
2145 69, 70, 71, -1, -1, -1, 75, 76, -1, -1,
2146 -1, 28, -1, -1, 83, -1, 85, -1, 35, 88,
2147 -1, -1, 91, 92, 93, 42, 95, -1, -1, -1,
2148 -1, -1, 49, -1, -1, -1, 105, -1, 107, 108,
2149 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
2150 11, 12, 13, 61, 62, 63, 64, 65, 66, 67,
2151 68, 69, 70, 71, 72, 73, 83, 28, 29, 30,
2152 31, -1, 33, -1, 35, -1, 37, 38, 95, 40,
2153 41, 42, -1, -1, -1, 46, -1, -1, -1, -1,
2154 -1, -1, 4, 5, 6, 7, 8, 58, -1, -1,
2155 61, 13, -1, -1, -1, -1, 3, 4, 69, 70,
2156 71, -1, -1, -1, 75, 76, 28, -1, -1, -1,
2157 -1, -1, 83, 35, -1, -1, -1, -1, -1, -1,
2158 42, -1, -1, 94, 95, -1, -1, -1, -1, -1,
2159 -1, -1, -1, 104, 41, -1, 107, 108, 1, 46,
2160 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
2161 13, -1, -1, -1, 61, -1, -1, -1, -1, -1,
2162 -1, -1, -1, -1, 71, 28, 29, 30, 31, -1,
2163 33, 78, 35, 95, 37, 38, 83, 40, 41, 42,
2164 -1, -1, -1, 46, -1, -1, -1, -1, 95, -1,
2165 4, 5, 6, 7, 8, 58, -1, -1, 61, 13,
2166 107, -1, -1, -1, 3, 4, 69, 70, 71, -1,
2167 -1, -1, 75, 76, 28, -1, -1, -1, -1, -1,
2168 83, 35, -1, -1, -1, -1, -1, -1, 42, -1,
2169 -1, 94, 95, -1, -1, -1, -1, -1, -1, -1,
2170 -1, 104, 41, -1, 107, 108, 1, 46, 3, 4,
2171 5, 6, 7, 8, 9, 10, 11, 12, 13, -1,
2172 -1, -1, 61, -1, -1, -1, -1, -1, -1, -1,
2173 -1, -1, 71, 28, 29, 30, 31, -1, 33, 78,
2174 35, 95, 37, 38, 83, 40, 41, 42, -1, -1,
2175 -1, 46, -1, -1, -1, -1, 95, -1, -1, -1,
2176 -1, -1, -1, 58, -1, -1, 61, -1, 107, -1,
2177 -1, -1, 3, 4, 69, 70, 71, -1, -1, -1,
2178 75, 76, -1, -1, -1, -1, -1, -1, 83, -1,
2179 -1, -1, -1, -1, -1, -1, -1, -1, -1, 94,
2180 95, -1, -1, -1, -1, -1, -1, -1, -1, 104,
2181 41, -1, 107, 108, 1, 46, 3, 4, 5, 6,
2182 7, 8, 9, 10, 11, 12, 13, -1, -1, -1,
2183 61, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2184 71, 28, 29, 30, 31, -1, 33, -1, 35, -1,
2185 37, 38, 83, 40, 41, 42, -1, -1, -1, 46,
2186 -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
2187 -1, 58, -1, -1, 61, -1, 107, -1, -1, -1,
2188 -1, -1, 69, 70, 71, -1, -1, -1, 75, 76,
2189 -1, -1, -1, -1, -1, -1, 83, -1, -1, -1,
2190 -1, -1, -1, -1, -1, -1, -1, 94, 95, -1,
2191 -1, -1, -1, -1, -1, -1, -1, 104, -1, -1,
2192 107, 108, 1, -1, 3, 4, 5, 6, 7, 8,
2193 9, 10, 11, 12, 13, 60, 61, 62, 63, 64,
2194 65, 66, 67, 68, 69, 70, 71, 72, 73, 28,
2195 29, 30, 31, -1, 33, -1, 35, -1, 37, 38,
2196 -1, 40, 41, 42, -1, -1, -1, 46, -1, -1,
2197 -1, -1, -1, -1, -1, -1, -1, -1, -1, 58,
2198 -1, -1, 61, -1, -1, -1, -1, -1, -1, -1,
2199 69, 70, 71, -1, -1, -1, 75, 76, -1, -1,
2200 -1, -1, -1, -1, 83, -1, -1, -1, -1, -1,
2201 -1, -1, -1, -1, -1, 94, 95, -1, -1, -1,
2202 -1, -1, -1, -1, -1, 104, -1, -1, 107, 108,
2203 1, -1, 3, 4, 5, -1, 7, 8, 9, 10,
2204 -1, 12, 13, 62, 63, 64, 65, 66, 67, 68,
2205 69, 70, 71, 72, 73, -1, -1, 28, 29, 30,
2206 31, -1, 33, -1, 35, -1, 37, 38, -1, 40,
2207 41, 42, -1, -1, -1, 46, -1, -1, -1, 50,
2208 -1, -1, -1, -1, -1, -1, -1, 58, -1, -1,
2209 61, -1, -1, -1, -1, -1, -1, -1, 69, 70,
2210 71, -1, -1, -1, 75, 76, -1, -1, -1, -1,
2211 -1, -1, 83, 84, 1, -1, 3, 4, 5, -1,
2212 7, 8, 9, 10, 95, 12, 13, -1, -1, -1,
2213 -1, -1, -1, 20, -1, 106, 107, 108, -1, -1,
2214 -1, 28, 29, 30, 31, -1, 33, -1, 35, -1,
2215 37, 38, -1, 40, 41, 42, -1, -1, -1, 46,
2216 -1, -1, -1, 50, -1, -1, -1, -1, -1, -1,
2217 -1, 58, -1, -1, 61, -1, -1, -1, -1, -1,
2218 -1, -1, 69, 70, 71, -1, -1, -1, 75, 76,
2219 -1, -1, -1, -1, -1, 1, 83, 3, 4, 5,
2220 6, 7, 8, 9, 10, -1, 12, 13, 95, -1,
2221 -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
2222 107, 108, 28, 29, 30, 31, -1, 33, -1, 35,
2223 -1, 37, 38, -1, 40, 41, 42, -1, -1, -1,
2224 46, -1, -1, -1, 50, -1, -1, -1, -1, -1,
2225 -1, -1, 58, -1, -1, 61, -1, -1, -1, -1,
2226 -1, -1, -1, 69, 70, 71, -1, -1, -1, 75,
2227 76, -1, -1, -1, -1, -1, 1, 83, 3, 4,
2228 5, -1, 7, 8, 9, 10, -1, 12, 13, 95,
2229 -1, -1, -1, -1, -1, 20, -1, -1, -1, 105,
2230 -1, 107, 108, 28, 29, 30, 31, -1, 33, -1,
2231 35, -1, 37, 38, -1, 40, 41, 42, -1, -1,
2232 -1, 46, -1, -1, -1, 50, -1, -1, -1, -1,
2233 -1, -1, -1, 58, -1, -1, 61, -1, -1, -1,
2234 -1, -1, -1, -1, 69, 70, 71, -1, -1, -1,
2235 75, 76, -1, -1, -1, -1, -1, 1, 83, 3,
2236 4, 5, -1, 7, 8, 9, 10, -1, 12, 13,
2237 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2238 -1, 106, 107, 108, 28, 29, 30, 31, -1, 33,
2239 -1, 35, -1, 37, 38, -1, 40, 41, 42, -1,
2240 -1, -1, 46, -1, -1, -1, 50, -1, -1, -1,
2241 -1, -1, -1, -1, 58, -1, -1, 61, -1, -1,
2242 -1, -1, -1, -1, -1, 69, 70, 71, -1, -1,
2243 -1, 75, 76, -1, -1, -1, -1, -1, -1, 83,
2244 84, 1, -1, 3, 4, 5, -1, 7, 8, 9,
2245 10, 95, 12, 13, -1, -1, -1, -1, -1, -1,
2246 -1, -1, -1, 107, 108, -1, -1, -1, 28, 29,
2247 30, 31, -1, 33, -1, 35, -1, 37, 38, -1,
2248 40, 41, 42, -1, -1, -1, 46, -1, -1, -1,
2249 50, -1, -1, -1, -1, -1, -1, -1, 58, -1,
2250 -1, 61, -1, -1, -1, -1, -1, -1, -1, 69,
2251 70, 71, -1, -1, -1, 75, 76, -1, -1, -1,
2252 -1, -1, 1, 83, 3, 4, 5, -1, 7, 8,
2253 9, 10, -1, 12, 13, 95, -1, -1, -1, -1,
2254 -1, -1, -1, -1, -1, -1, -1, 107, 108, 28,
2255 29, 30, 31, -1, 33, -1, 35, -1, 37, 38,
2256 -1, 40, 41, 42, -1, -1, -1, 46, -1, -1,
2257 -1, 50, -1, -1, -1, -1, -1, -1, -1, 58,
2258 -1, -1, 61, -1, -1, -1, -1, -1, -1, -1,
2259 69, 70, 71, -1, -1, -1, 75, 76, -1, -1,
2260 -1, -1, -1, 1, 83, 3, 4, 5, -1, 7,
2261 8, 9, 10, -1, 12, 13, 95, -1, -1, -1,
2262 -1, -1, -1, -1, -1, -1, -1, -1, 107, 108,
2263 28, 29, 30, 31, -1, 33, -1, 35, -1, 37,
2264 38, -1, 40, 41, 42, -1, -1, -1, 46, -1,
2265 -1, -1, -1, -1, -1, -1, -1, 55, -1, -1,
2266 58, -1, -1, 61, -1, -1, -1, -1, -1, -1,
2267 -1, 69, 70, 71, -1, -1, -1, 75, 76, -1,
2268 -1, -1, -1, -1, 1, 83, 3, 4, 5, -1,
2269 7, 8, 9, 10, -1, 12, 13, 95, -1, -1,
2270 -1, -1, -1, -1, -1, -1, -1, -1, -1, 107,
2271 108, 28, 29, 30, 31, -1, 33, -1, 35, -1,
2272 37, 38, -1, 40, 41, 42, -1, -1, -1, 46,
2273 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2274 -1, 58, -1, -1, 61, -1, -1, -1, -1, -1,
2275 -1, -1, 69, 70, 71, -1, -1, -1, 75, 76,
2276 -1, -1, -1, -1, -1, 1, 83, 3, 4, 5,
2277 -1, 7, 8, 9, 10, -1, 12, 13, 95, -1,
2278 -1, -1, -1, -1, -1, -1, -1, -1, 105, -1,
2279 107, 108, 28, 29, 30, 31, -1, 33, -1, 35,
2280 -1, 37, 38, -1, 40, 41, 42, -1, -1, -1,
2281 46, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2282 -1, -1, 58, -1, -1, 61, -1, -1, -1, -1,
2283 -1, -1, -1, 69, 70, 71, -1, -1, -1, 75,
2284 76, -1, -1, -1, -1, -1, 1, 83, 3, 4,
2285 5, -1, 7, 8, 9, 10, -1, 12, 13, 95,
2286 -1, -1, -1, -1, -1, -1, -1, -1, 104, -1,
2287 -1, 107, 108, 28, 29, 30, 31, -1, 33, -1,
2288 35, -1, 37, 38, -1, 40, 41, 42, -1, -1,
2289 -1, 46, -1, -1, -1, -1, -1, -1, -1, -1,
2290 -1, -1, -1, 58, -1, -1, 61, -1, -1, -1,
2291 -1, -1, -1, -1, 69, 70, 71, -1, -1, -1,
2292 75, 76, -1, -1, -1, -1, -1, -1, 83, 3,
2293 4, 5, -1, 7, 8, 9, 10, -1, 12, 13,
2294 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2295 -1, -1, 107, 108, 28, 29, 30, 31, -1, 33,
2296 -1, 35, -1, 37, -1, -1, 40, 41, 42, -1,
2297 -1, 1, 46, 3, 4, 5, 6, 7, 8, -1,
2298 -1, -1, -1, 13, 58, -1, -1, 61, -1, -1,
2299 -1, -1, -1, -1, -1, 69, 70, 71, 28, -1,
2300 -1, 75, 76, -1, -1, 35, 36, -1, -1, 83,
2301 -1, 41, 42, -1, -1, -1, 46, -1, -1, -1,
2302 -1, 95, -1, -1, -1, 55, -1, -1, -1, -1,
2303 -1, 61, -1, 107, 108, 109, -1, -1, -1, -1,
2304 1, 71, 3, 4, 5, 6, 7, 8, -1, -1,
2305 -1, -1, 13, 83, -1, -1, 1, -1, 3, 4,
2306 5, 6, 7, 8, -1, 95, -1, 28, 13, -1,
2307 -1, -1, -1, -1, 35, 36, 106, 107, -1, -1,
2308 41, 42, -1, 28, -1, 46, -1, -1, -1, -1,
2309 35, -1, -1, -1, 55, -1, 41, 42, -1, -1,
2310 61, 46, -1, -1, -1, -1, -1, -1, -1, -1,
2311 71, -1, -1, -1, -1, -1, 61, -1, -1, -1,
2312 -1, -1, 83, -1, -1, -1, 71, -1, -1, -1,
2313 -1, -1, -1, -1, 95, -1, -1, -1, 83, -1,
2314 -1, -1, -1, -1, -1, 106, 107, -1, -1, -1,
2315 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
2316 105, -1, 107, 3, 4, 5, 6, 7, 8, 9,
2317 10, -1, 12, 13, 14, -1, 16, 17, 18, 19,
2318 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2319 30, 31, -1, 33, -1, 35, -1, 37, -1, -1,
2320 40, 41, 42, -1, -1, -1, 46, -1, -1, 49,
2321 50, -1, -1, -1, -1, -1, -1, -1, 58, -1,
2322 -1, 61, -1, -1, -1, -1, -1, -1, -1, 69,
2323 70, 71, -1, -1, -1, 75, 76, -1, -1, -1,
2324 -1, -1, -1, 83, -1, 85, -1, -1, 88, -1,
2325 -1, 91, 92, 93, -1, 95, -1, -1, -1, -1,
2326 -1, -1, -1, -1, -1, 105, 106, 107, 108, 3,
2327 4, 5, 6, 7, 8, 9, 10, -1, 12, 13,
2328 14, -1, 16, 17, 18, 19, 20, 21, 22, 23,
2329 24, 25, 26, 27, 28, 29, 30, 31, -1, 33,
2330 -1, 35, -1, 37, -1, -1, 40, 41, 42, -1,
2331 -1, -1, 46, -1, -1, 49, 50, -1, -1, -1,
2332 -1, -1, -1, -1, 58, -1, -1, 61, -1, -1,
2333 -1, -1, -1, -1, -1, 69, 70, 71, -1, -1,
2334 -1, 75, 76, -1, -1, -1, -1, -1, -1, 83,
2335 -1, 85, -1, -1, 88, -1, -1, 91, 92, 93,
2336 -1, 95, -1, -1, -1, -1, -1, -1, -1, -1,
2337 -1, 105, -1, 107, 108, 3, 4, 5, 6, 7,
2338 8, 9, 10, -1, 12, 13, 14, -1, 16, 17,
2339 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2340 28, 29, 30, 31, -1, 33, -1, 35, -1, 37,
2341 -1, -1, 40, 41, 42, -1, -1, -1, 46, -1,
2342 -1, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2343 58, -1, -1, 61, -1, -1, -1, -1, -1, -1,
2344 -1, 69, 70, 71, -1, -1, -1, 75, 76, -1,
2345 -1, -1, -1, -1, -1, 83, -1, 85, -1, -1,
2346 88, -1, -1, 91, 92, 93, -1, 95, -1, -1,
2347 -1, -1, -1, -1, -1, -1, -1, 105, -1, 107,
2348 108, 3, 4, 5, -1, 7, 8, 9, 10, -1,
2349 12, 13, 4, 5, 6, 7, 8, -1, -1, 11,
2350 -1, 13, -1, -1, -1, -1, 28, 29, 30, 31,
2351 -1, 33, -1, 35, -1, 37, 28, -1, 40, 41,
2352 42, -1, -1, 35, 46, 3, 4, 5, -1, 7,
2353 42, -1, -1, -1, -1, 13, 58, -1, -1, 61,
2354 -1, -1, -1, -1, -1, -1, -1, 69, 70, 71,
2355 28, -1, -1, 75, 76, -1, -1, 35, -1, 37,
2356 -1, 83, 84, 41, 42, 3, 4, 5, 46, 7,
2357 8, 9, 10, 95, 12, 13, -1, -1, -1, -1,
2358 -1, -1, 94, 95, -1, 107, 108, -1, -1, -1,
2359 28, 29, 30, 31, -1, 33, -1, 35, -1, 37,
2360 -1, -1, 40, 41, 42, -1, -1, -1, 46, -1,
2361 -1, -1, 50, -1, -1, -1, -1, 95, -1, -1,
2362 58, -1, -1, 61, -1, -1, -1, -1, -1, -1,
2363 -1, 69, 70, 71, -1, -1, -1, 75, 76, -1,
2364 -1, -1, -1, -1, -1, 83, 3, 4, 5, -1,
2365 7, 8, 9, 10, -1, 12, 13, 95, -1, -1,
2366 -1, -1, -1, -1, -1, -1, -1, -1, -1, 107,
2367 108, 28, 29, 30, 31, -1, 33, -1, 35, -1,
2368 37, -1, -1, 40, 41, 42, -1, -1, -1, 46,
2369 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2370 -1, 58, -1, -1, 61, -1, -1, -1, -1, -1,
2371 -1, -1, 69, 70, 71, -1, -1, -1, 75, 76,
2372 -1, -1, -1, -1, -1, -1, 83, 3, 4, 5,
2373 -1, 7, 8, 9, 10, -1, 12, 13, 95, -1,
2374 -1, -1, -1, -1, -1, -1, -1, -1, 105, -1,
2375 107, 108, 28, 29, 30, 31, -1, 33, -1, 35,
2376 -1, 37, -1, -1, 40, 41, 42, -1, -1, -1,
2377 46, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2378 -1, -1, 58, -1, -1, 61, -1, -1, -1, -1,
2379 -1, -1, -1, 69, 70, 71, -1, -1, -1, 75,
2380 76, -1, -1, -1, -1, -1, -1, 83, 3, 4,
2381 5, -1, 7, 8, 9, 10, -1, 12, 13, 95,
2382 -1, -1, -1, -1, -1, -1, -1, -1, -1, 105,
2383 -1, 107, 108, 28, 29, 30, 31, -1, 33, -1,
2384 35, -1, 37, -1, -1, 40, 41, 42, -1, -1,
2385 -1, 46, -1, -1, -1, -1, -1, -1, -1, -1,
2386 -1, -1, -1, 58, -1, -1, 61, -1, -1, -1,
2387 -1, -1, -1, -1, 69, 70, 71, -1, -1, -1,
2388 75, 76, -1, -1, -1, -1, -1, -1, 83, 3,
2389 4, 5, -1, 7, 8, 9, 10, -1, 12, 13,
2390 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2391 -1, -1, 107, 108, 28, 29, 30, 31, -1, 33,
2392 -1, 35, -1, 37, -1, -1, 40, 41, 42, -1,
2393 -1, -1, 46, -1, -1, -1, -1, -1, -1, -1,
2394 -1, -1, -1, -1, 58, -1, -1, 61, -1, -1,
2395 -1, -1, -1, -1, -1, 69, 70, 71, -1, -1,
2396 -1, 75, 76, -1, -1, -1, -1, -1, -1, 83,
2397 3, 4, 5, -1, 7, 8, 9, 10, -1, 12,
2398 13, 95, -1, -1, -1, -1, -1, -1, -1, -1,
2399 -1, -1, -1, 107, 108, 28, 29, 30, 31, -1,
2400 33, -1, 35, -1, 37, -1, -1, 40, 41, 42,
2401 -1, -1, -1, 46, 3, 4, 5, -1, 7, 8,
2402 9, 10, -1, 12, 13, 58, -1, -1, 61, -1,
2403 -1, -1, -1, -1, -1, -1, 69, 70, 71, 28,
2404 29, -1, 75, 76, 33, -1, 35, -1, 37, -1,
2405 83, 40, 41, 42, -1, -1, -1, 46, -1, -1,
2406 -1, -1, 95, -1, -1, -1, -1, -1, -1, 58,
2407 -1, -1, 61, -1, 107, 108, -1, -1, -1, -1,
2408 69, 70, 71, -1, -1, -1, 75, 76, -1, -1,
2409 -1, 3, 4, 5, 83, 7, 8, 9, 10, -1,
2410 12, 13, -1, -1, -1, -1, 95, -1, -1, -1,
2411 -1, -1, -1, -1, -1, -1, 28, 29, 107, 108,
2412 -1, 33, -1, 35, -1, 37, -1, -1, 40, 41,
2413 42, -1, -1, -1, 46, 3, 4, 5, 6, 7,
2414 8, -1, -1, -1, -1, 13, 58, -1, -1, 61,
2415 -1, -1, -1, -1, -1, -1, -1, 69, 70, 71,
2416 28, -1, -1, 75, 76, -1, -1, 35, -1, -1,
2417 -1, 83, -1, 41, 42, -1, 44, -1, 46, 47,
2418 -1, 49, -1, 95, -1, -1, -1, 55, -1, -1,
2419 -1, -1, -1, 61, -1, 107, 108, 3, 4, 5,
2420 6, 7, 8, 71, -1, 11, -1, 13, -1, -1,
2421 78, -1, -1, -1, -1, 83, -1, -1, -1, -1,
2422 -1, -1, 28, -1, -1, -1, -1, 95, -1, 35,
2423 -1, -1, -1, -1, -1, 41, 42, -1, 44, 107,
2424 46, 47, 3, 4, 5, 6, 7, 8, -1, -1,
2425 11, -1, 13, -1, -1, 61, -1, -1, -1, -1,
2426 -1, -1, -1, -1, -1, 71, -1, 28, -1, -1,
2427 -1, -1, 78, -1, 35, -1, -1, 83, 84, -1,
2428 41, 42, -1, 44, -1, 46, -1, -1, -1, 95,
2429 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2430 61, 107, -1, -1, 3, 4, 5, 6, 7, 8,
2431 71, -1, 11, -1, 13, -1, -1, 78, -1, -1,
2432 -1, -1, 83, 84, -1, -1, -1, -1, -1, 28,
2433 -1, -1, -1, 94, 95, -1, 35, -1, -1, -1,
2434 -1, -1, 41, 42, -1, -1, 107, 46, 3, 4,
2435 5, 6, 7, 8, -1, -1, -1, -1, 13, -1,
2436 -1, -1, 61, -1, -1, -1, -1, -1, -1, -1,
2437 -1, -1, 71, 28, 4, 5, 6, 7, 8, 78,
2438 35, 11, -1, 13, 83, -1, 41, 42, -1, -1,
2439 -1, 46, 47, -1, -1, 94, 95, -1, 28, -1,
2440 -1, -1, -1, -1, -1, 35, 61, -1, 107, -1,
2441 -1, -1, 42, -1, 44, -1, 71, -1, 4, 5,
2442 -1, 7, 8, 78, -1, -1, -1, 13, 83, -1,
2443 -1, 61, -1, -1, -1, -1, -1, -1, -1, -1,
2444 95, 71, 28, -1, -1, -1, -1, -1, 78, 35,
2445 105, -1, 107, 83, 84, -1, 42, -1, 44, -1,
2446 -1, 47, -1, -1, 94, 95, -1, -1, -1, -1,
2447 -1, -1, -1, -1, -1, 61, -1, -1, -1, -1,
2448 -1, -1, -1, -1, -1, 71, -1, -1, -1, -1,
2449 -1, -1, 78, -1, -1, -1, -1, 83, 84, -1,
2450 -1, -1, -1, -1, -1, 52, 53, 54, -1, 95,
2451 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
2452 67, 68, 69, 70, 71, 72, 73, 52, 53, 54,
2453 -1, -1, 57, 58, 59, 60, 61, 62, 63, 64,
2454 65, 66, 67, 68, 69, 70, 71, 72, 73, -1,
2455 -1, -1, -1, -1, -1, -1, -1, 32, -1, -1,
2456 -1, -1, 109, -1, -1, -1, -1, -1, -1, -1,
2457 -1, -1, -1, -1, -1, -1, -1, 52, 53, 54,
2458 105, 106, 57, 58, 59, 60, 61, 62, 63, 64,
2459 65, 66, 67, 68, 69, 70, 71, 72, 73, 51,
2460 52, 53, 54, -1, -1, 57, 58, 59, 60, 61,
2461 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2462 72, 73, 52, 53, 54, 55, -1, 57, 58, 59,
2463 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2464 70, 71, 72, 73, 52, 53, 54, -1, -1, 57,
2465 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2466 68, 69, 70, 71, 72, 73, 52, 53, 54, -1,
2467 -1, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2468 -1, 67, 68, 69, 70, 71, 72, 73, 54, -1,
2469 -1, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2470 66, 67, 68, 69, 70, 71, 72, 73, 58, 59,
2471 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2472 70, 71, 72, 73, 59, 60, 61, 62, 63, 64,
2473 65, 66, 67, 68, 69, 70, 71, 72, 73
2474};
2475/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2476#line 3 "bison.simple"
2477
2478/* Skeleton output parser for bison,
2479 Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
2480
2481 This program is free software; you can redistribute it and/or modify
2482 it under the terms of the GNU General Public License as published by
2483 the Free Software Foundation; either version 1, or (at your option)
2484 any later version.
2485
2486 This program is distributed in the hope that it will be useful,
2487 but WITHOUT ANY WARRANTY; without even the implied warranty of
2488 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2489 GNU General Public License for more details.
2490
2491 You should have received a copy of the GNU General Public License
2492 along with this program; if not, write to the Free Software
2493 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
2494
2495
2496#ifndef alloca
2497#ifdef __GNUC__
2498#define alloca __builtin_alloca
2499#else /* not GNU C. */
2500#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
2501#include <alloca.h>
2502#else /* not sparc */
2503#if defined (MSDOS) && !defined (__TURBOC__)
2504#include <malloc.h>
2505#else /* not MSDOS, or __TURBOC__ */
2506#if defined(_AIX)
2507#include <malloc.h>
2508 #pragma alloca
2509#endif /* not _AIX */
2510#endif /* not MSDOS, or __TURBOC__ */
2511#endif /* not sparc. */
2512#endif /* not GNU C. */
2513#endif /* alloca not defined. */
2514
2515/* This is the parser code that is written into each bison parser
2516 when the %semantic_parser declaration is not specified in the grammar.
2517 It was written by Richard Stallman by simplifying the hairy parser
2518 used when %semantic_parser is specified. */
2519
2520/* Note: there must be only one dollar sign in this file.
2521 It is replaced by the list of actions, each action
2522 as one case of the switch. */
2523
2524#define yyerrok (yyerrstatus = 0)
2525#define yyclearin (yychar = YYEMPTY)
2526#define YYEMPTY -2
2527#define YYEOF 0
2528#define YYACCEPT return(0)
2529#define YYABORT return(1)
2530#define YYERROR goto yyerrlab1
2531/* Like YYERROR except do call yyerror.
2532 This remains here temporarily to ease the
2533 transition to the new meaning of YYERROR, for GCC.
2534 Once GCC version 2 has supplanted version 1, this can go. */
2535#define YYFAIL goto yyerrlab
2536#define YYRECOVERING() (!!yyerrstatus)
2537#define YYBACKUP(token, value) \
2538do \
2539 if (yychar == YYEMPTY && yylen == 1) \
2540 { yychar = (token), yylval = (value); \
2541 yychar1 = YYTRANSLATE (yychar); \
2542 YYPOPSTACK; \
2543 goto yybackup; \
2544 } \
2545 else \
2546 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2547while (0)
2548
2549#define YYTERROR 1
2550#define YYERRCODE 256
2551
2552#ifndef YYPURE
2553#define YYLEX yylex()
2554#endif
2555
2556#ifdef YYPURE
2557#ifdef YYLSP_NEEDED
2558#define YYLEX yylex(&yylval, &yylloc)
2559#else
2560#define YYLEX yylex(&yylval)
2561#endif
2562#endif
2563
2564/* If nonreentrant, generate the variables here */
2565
2566#ifndef YYPURE
2567
2568int yychar; /* the lookahead symbol */
2569YYSTYPE yylval; /* the semantic value of the */
2570 /* lookahead symbol */
2571
2572#ifdef YYLSP_NEEDED
2573YYLTYPE yylloc; /* location data for the lookahead */
2574 /* symbol */
2575#endif
2576
2577int yynerrs; /* number of parse errors so far */
2578#endif /* not YYPURE */
2579
2580#if YYDEBUG != 0
2581int yydebug; /* nonzero means print parse trace */
2582/* Since this is uninitialized, it does not stop multiple parsers
2583 from coexisting. */
2584#endif
2585
2586/* YYINITDEPTH indicates the initial size of the parser's stacks */
2587
2588#ifndef YYINITDEPTH
2589#define YYINITDEPTH 200
2590#endif
2591
2592/* YYMAXDEPTH is the maximum size the stacks can grow to
2593 (effective only if the built-in stack extension method is used). */
2594
2595#if YYMAXDEPTH == 0
2596#undef YYMAXDEPTH
2597#endif
2598
2599#ifndef YYMAXDEPTH
2600#define YYMAXDEPTH 10000
2601#endif
2602\f
2603#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2604#define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2605#else /* not GNU C or C++ */
2606#ifndef __cplusplus
2607
2608/* This is the most reliable way to avoid incompatibilities
2609 in available built-in functions on various systems. */
2610static void
2611__yy_bcopy (from, to, count)
2612 char *from;
2613 char *to;
2614 int count;
2615{
2616 register char *f = from;
2617 register char *t = to;
2618 register int i = count;
2619
2620 while (i-- > 0)
2621 *t++ = *f++;
2622}
2623
2624#else /* __cplusplus */
2625
2626/* This is the most reliable way to avoid incompatibilities
2627 in available built-in functions on various systems. */
2628static void
2629__yy_bcopy (char *from, char *to, int count)
2630{
2631 register char *f = from;
2632 register char *t = to;
2633 register int i = count;
2634
2635 while (i-- > 0)
2636 *t++ = *f++;
2637}
2638
2639#endif
2640#endif
2641\f
2642#line 169 "bison.simple"
2643int
2644yyparse()
2645{
2646 register int yystate;
2647 register int yyn;
2648 register short *yyssp;
2649 register YYSTYPE *yyvsp;
2650 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2651 int yychar1; /* lookahead token as an internal (translated) token number */
2652
2653 short yyssa[YYINITDEPTH]; /* the state stack */
2654 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2655
2656 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2657 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2658
2659#ifdef YYLSP_NEEDED
2660 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2661 YYLTYPE *yyls = yylsa;
2662 YYLTYPE *yylsp;
2663
2664#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2665#else
2666#define YYPOPSTACK (yyvsp--, yyssp--)
2667#endif
2668
2669 int yystacksize = YYINITDEPTH;
2670
2671#ifdef YYPURE
2672 int yychar;
2673 YYSTYPE yylval;
2674 int yynerrs;
2675#ifdef YYLSP_NEEDED
2676 YYLTYPE yylloc;
2677#endif
2678#endif
2679
2680 YYSTYPE yyval; /* the variable used to return */
2681 /* semantic values from the action */
2682 /* routines */
2683
2684 int yylen;
2685
2686#if YYDEBUG != 0
2687 if (yydebug)
2688 fprintf(stderr, "Starting parse\n");
2689#endif
2690
2691 yystate = 0;
2692 yyerrstatus = 0;
2693 yynerrs = 0;
2694 yychar = YYEMPTY; /* Cause a token to be read. */
2695
2696 /* Initialize stack pointers.
2697 Waste one element of value and location stack
2698 so that they stay on the same level as the state stack. */
2699
2700 yyssp = yyss - 1;
2701 yyvsp = yyvs;
2702#ifdef YYLSP_NEEDED
2703 yylsp = yyls;
2704#endif
2705
2706/* Push a new state, which is found in yystate . */
2707/* In all cases, when you get here, the value and location stacks
2708 have just been pushed. so pushing a state here evens the stacks. */
2709yynewstate:
2710
2711 *++yyssp = yystate;
2712
2713 if (yyssp >= yyss + yystacksize - 1)
2714 {
2715 /* Give user a chance to reallocate the stack */
2716 /* Use copies of these so that the &'s don't force the real ones into memory. */
2717 YYSTYPE *yyvs1 = yyvs;
2718 short *yyss1 = yyss;
2719#ifdef YYLSP_NEEDED
2720 YYLTYPE *yyls1 = yyls;
2721#endif
2722
2723 /* Get the current used size of the three stacks, in elements. */
2724 int size = yyssp - yyss + 1;
2725
2726#ifdef yyoverflow
2727 /* Each stack pointer address is followed by the size of
2728 the data in use in that stack, in bytes. */
2729 yyoverflow("parser stack overflow",
2730 &yyss1, size * sizeof (*yyssp),
2731 &yyvs1, size * sizeof (*yyvsp),
2732#ifdef YYLSP_NEEDED
2733 &yyls1, size * sizeof (*yylsp),
2734#endif
2735 &yystacksize);
2736
2737 yyss = yyss1; yyvs = yyvs1;
2738#ifdef YYLSP_NEEDED
2739 yyls = yyls1;
2740#endif
2741#else /* no yyoverflow */
2742 /* Extend the stack our own way. */
2743 if (yystacksize >= YYMAXDEPTH)
2744 {
2745 yyerror("parser stack overflow");
2746 return 2;
2747 }
2748 yystacksize *= 2;
2749 if (yystacksize > YYMAXDEPTH)
2750 yystacksize = YYMAXDEPTH;
2751 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
2752 __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
2753 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
2754 __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
2755#ifdef YYLSP_NEEDED
2756 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
2757 __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
2758#endif
2759#endif /* no yyoverflow */
2760
2761 yyssp = yyss + size - 1;
2762 yyvsp = yyvs + size - 1;
2763#ifdef YYLSP_NEEDED
2764 yylsp = yyls + size - 1;
2765#endif
2766
2767#if YYDEBUG != 0
2768 if (yydebug)
2769 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2770#endif
2771
2772 if (yyssp >= yyss + yystacksize - 1)
2773 YYABORT;
2774 }
2775
2776#if YYDEBUG != 0
2777 if (yydebug)
2778 fprintf(stderr, "Entering state %d\n", yystate);
2779#endif
2780
2781 yybackup:
2782
2783/* Do appropriate processing given the current state. */
2784/* Read a lookahead token if we need one and don't already have one. */
2785/* yyresume: */
2786
2787 /* First try to decide what to do without reference to lookahead token. */
2788
2789 yyn = yypact[yystate];
2790 if (yyn == YYFLAG)
2791 goto yydefault;
2792
2793 /* Not known => get a lookahead token if don't already have one. */
2794
2795 /* yychar is either YYEMPTY or YYEOF
2796 or a valid token in external form. */
2797
2798 if (yychar == YYEMPTY)
2799 {
2800#if YYDEBUG != 0
2801 if (yydebug)
2802 fprintf(stderr, "Reading a token: ");
2803#endif
2804 yychar = YYLEX;
2805 }
2806
2807 /* Convert token to internal form (in yychar1) for indexing tables with */
2808
2809 if (yychar <= 0) /* This means end of input. */
2810 {
2811 yychar1 = 0;
2812 yychar = YYEOF; /* Don't call YYLEX any more */
2813
2814#if YYDEBUG != 0
2815 if (yydebug)
2816 fprintf(stderr, "Now at end of input.\n");
2817#endif
2818 }
2819 else
2820 {
2821 yychar1 = YYTRANSLATE(yychar);
2822
2823#if YYDEBUG != 0
2824 if (yydebug)
2825 {
2826 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2827 /* Give the individual parser a way to print the precise meaning
2828 of a token, for further debugging info. */
2829#ifdef YYPRINT
2830 YYPRINT (stderr, yychar, yylval);
2831#endif
2832 fprintf (stderr, ")\n");
2833 }
2834#endif
2835 }
2836
2837 yyn += yychar1;
2838 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2839 goto yydefault;
2840
2841 yyn = yytable[yyn];
2842
2843 /* yyn is what to do for this token type in this state.
2844 Negative => reduce, -yyn is rule number.
2845 Positive => shift, yyn is new state.
2846 New state is final state => don't bother to shift,
2847 just return success.
2848 0, or most negative number => error. */
2849
2850 if (yyn < 0)
2851 {
2852 if (yyn == YYFLAG)
2853 goto yyerrlab;
2854 yyn = -yyn;
2855 goto yyreduce;
2856 }
2857 else if (yyn == 0)
2858 goto yyerrlab;
2859
2860 if (yyn == YYFINAL)
2861 YYACCEPT;
2862
2863 /* Shift the lookahead token. */
2864
2865#if YYDEBUG != 0
2866 if (yydebug)
2867 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2868#endif
2869
2870 /* Discard the token being shifted unless it is eof. */
2871 if (yychar != YYEOF)
2872 yychar = YYEMPTY;
2873
2874 *++yyvsp = yylval;
2875#ifdef YYLSP_NEEDED
2876 *++yylsp = yylloc;
2877#endif
2878
2879 /* count tokens shifted since error; after three, turn off error status. */
2880 if (yyerrstatus) yyerrstatus--;
2881
2882 yystate = yyn;
2883 goto yynewstate;
2884
2885/* Do the default action for the current state. */
2886yydefault:
2887
2888 yyn = yydefact[yystate];
2889 if (yyn == 0)
2890 goto yyerrlab;
2891
2892/* Do a reduction. yyn is the number of a rule to reduce with. */
2893yyreduce:
2894 yylen = yyr2[yyn];
2895 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2896
2897#if YYDEBUG != 0
2898 if (yydebug)
2899 {
2900 int i;
2901
2902 fprintf (stderr, "Reducing via rule %d (line %d), ",
2903 yyn, yyrline[yyn]);
2904
2905 /* Print the symboles being reduced, and their result. */
2906 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2907 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2908 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2909 }
2910#endif
2911
2912
2913 switch (yyn) {
2914
2915case 2:
2916#line 285 "cp-parse.y"
2917{ finish_file (); ;
2918 break;}
2919case 3:
2920#line 293 "cp-parse.y"
2921{ yyval.ttype = NULL_TREE; ;
2922 break;}
2923case 4:
2924#line 294 "cp-parse.y"
2925{yyval.ttype = NULL_TREE; ;
2926 break;}
2927case 5:
2928#line 296 "cp-parse.y"
2929{yyval.ttype = NULL_TREE; ;
2930 break;}
2931case 6:
2932#line 300 "cp-parse.y"
2933{ have_extern_spec = 1;
2934 used_extern_spec = 0;
2935 yyval.ttype = NULL_TREE; ;
2936 break;}
2937case 7:
2938#line 305 "cp-parse.y"
2939{ have_extern_spec = 0; ;
2940 break;}
2941case 8:
2942#line 309 "cp-parse.y"
2943{ if (pedantic)
2944 pedwarn ("ANSI C++ forbids use of `asm' keyword"); ;
2945 break;}
2946case 10:
2947#line 316 "cp-parse.y"
2948{ if (pending_inlines) do_pending_inlines (); ;
2949 break;}
2950case 11:
2951#line 318 "cp-parse.y"
2952{ if (pending_inlines) do_pending_inlines (); ;
2953 break;}
2954case 12:
2955#line 320 "cp-parse.y"
2956{ if (pending_inlines) do_pending_inlines (); ;
2957 break;}
2958case 14:
2959#line 323 "cp-parse.y"
2960{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
2961 assemble_asm (yyvsp[-2].ttype); ;
2962 break;}
2963case 15:
2964#line 326 "cp-parse.y"
2965{ pop_lang_context (); ;
2966 break;}
2967case 16:
2968#line 328 "cp-parse.y"
2969{ pop_lang_context (); ;
2970 break;}
2971case 17:
2972#line 330 "cp-parse.y"
2973{ if (pending_inlines) do_pending_inlines ();
2974 pop_lang_context (); ;
2975 break;}
2976case 18:
2977#line 333 "cp-parse.y"
2978{ if (pending_inlines) do_pending_inlines ();
2979 pop_lang_context (); ;
2980 break;}
2981case 19:
2982#line 339 "cp-parse.y"
2983{ push_lang_context (yyvsp[0].ttype); ;
2984 break;}
2985case 20:
2986#line 344 "cp-parse.y"
2987{ begin_template_parm_list (); ;
2988 break;}
2989case 21:
2990#line 346 "cp-parse.y"
2991{ yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
2992 break;}
2993case 22:
2994#line 351 "cp-parse.y"
2995{ yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
2996 break;}
2997case 23:
2998#line 353 "cp-parse.y"
2999{ yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3000 break;}
3001case 24:
3002#line 364 "cp-parse.y"
3003{
3004 if (yyvsp[-1].ttype != class_type_node)
3005 error ("template type parameter must use keyword `class'");
3006 yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE);
3007 ;
3008 break;}
3009case 25:
3010#line 370 "cp-parse.y"
3011{
3012 if (yyvsp[-3].ttype != class_type_node)
3013 error ("template type parameter must use keyword `class'");
3014 warning ("restricted template type parameters not yet implemented");
3015 yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
3016 ;
3017 break;}
3018case 26:
3019#line 377 "cp-parse.y"
3020{
3021 if (yyvsp[-2].ttype != class_type_node)
3022 error ("template type parameter must use keyword `class'");
3023 warning ("restricted template type parameters not yet implemented");
3024 yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype);
3025 ;
3026 break;}
3027case 28:
3028#line 388 "cp-parse.y"
3029{ warning ("use of `overload' is an anachronism"); ;
3030 break;}
3031case 29:
3032#line 392 "cp-parse.y"
3033{ declare_overloaded (yyvsp[0].ttype); ;
3034 break;}
3035case 30:
3036#line 394 "cp-parse.y"
3037{ declare_overloaded (yyvsp[0].ttype); ;
3038 break;}
3039case 31:
3040#line 401 "cp-parse.y"
3041{ yychar = '{'; goto template1; ;
3042 break;}
3043case 33:
3044#line 404 "cp-parse.y"
3045{ yychar = '{'; goto template1; ;
3046 break;}
3047case 35:
3048#line 407 "cp-parse.y"
3049{ yychar = ':'; goto template1; ;
3050 break;}
3051case 37:
3052#line 410 "cp-parse.y"
3053{
3054 yychar = ':';
3055 template1:
3056 if (current_aggr == exception_type_node)
3057 error ("template type must define an aggregate or union");
3058 /* Maybe pedantic warning for union?
3059 How about an enum? :-) */
3060 end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
3061 reinit_parse_for_template (yychar, yyvsp[-2].ttype, yyvsp[-1].ttype);
3062 yychar = YYEMPTY;
3063 ;
3064 break;}
3065case 39:
3066#line 423 "cp-parse.y"
3067{
3068 end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
3069 /* declare $2 as template name with $1 parm list */
3070 ;
3071 break;}
3072case 40:
3073#line 428 "cp-parse.y"
3074{
3075 end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
3076 /* declare $2 as template name with $1 parm list */
3077 ;
3078 break;}
3079case 41:
3080#line 435 "cp-parse.y"
3081{
3082 tree d;
3083 int momentary;
3084 momentary = suspend_momentary ();
3085 d = start_decl (yyvsp[-4].ttype, /*current_declspecs*/NULL_TREE, 0, yyvsp[-3].ttype);
3086 cplus_decl_attributes (d, yyvsp[-1].ttype);
3087 finish_decl (d, NULL_TREE, yyvsp[-2].ttype, 0);
3088 end_template_decl (yyvsp[-5].ttype, d, 0);
3089 if (yyvsp[0].itype != ';')
3090 reinit_parse_for_template ((int) yyvsp[0].itype, yyvsp[-5].ttype, d);
3091 resume_momentary (momentary);
3092 ;
3093 break;}
3094case 42:
3095#line 450 "cp-parse.y"
3096{
3097 tree d;
3098 int momentary;
3099
3100 current_declspecs = yyvsp[-5].ttype;
3101 momentary = suspend_momentary ();
3102 d = start_decl (yyvsp[-4].ttype, current_declspecs,
3103 0, yyvsp[-3].ttype);
3104 cplus_decl_attributes (d, yyvsp[-1].ttype);
3105 finish_decl (d, NULL_TREE, yyvsp[-2].ttype, 0);
3106 end_exception_decls ();
3107 end_template_decl (yyvsp[-6].ttype, d, 0);
3108 if (yyvsp[0].itype != ';')
3109 {
3110 reinit_parse_for_template ((int) yyvsp[0].itype, yyvsp[-6].ttype, d);
3111 yychar = YYEMPTY;
3112 }
3113 note_list_got_semicolon (yyvsp[-5].ttype);
3114 resume_momentary (momentary);
3115 ;
3116 break;}
3117case 43:
3118#line 471 "cp-parse.y"
3119{
3120 tree d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
3121 finish_decl (d, NULL_TREE, NULL_TREE, 0);
3122 end_template_decl (yyvsp[-3].ttype, d, 0);
3123 if (yyvsp[0].itype != ';')
3124 reinit_parse_for_template ((int) yyvsp[0].itype, yyvsp[-3].ttype, d);
3125 ;
3126 break;}
3127case 44:
3128#line 479 "cp-parse.y"
3129{ end_template_decl (yyvsp[-2].ttype, 0, 0); ;
3130 break;}
3131case 45:
3132#line 480 "cp-parse.y"
3133{ end_template_decl (yyvsp[-2].ttype, 0, 0); ;
3134 break;}
3135case 46:
3136#line 483 "cp-parse.y"
3137{ yyval.itype = '{'; ;
3138 break;}
3139case 47:
3140#line 484 "cp-parse.y"
3141{ yyval.itype = ':'; ;
3142 break;}
3143case 48:
3144#line 485 "cp-parse.y"
3145{ yyval.itype = ';'; ;
3146 break;}
3147case 49:
3148#line 486 "cp-parse.y"
3149{ yyval.itype = '='; ;
3150 break;}
3151case 50:
3152#line 487 "cp-parse.y"
3153{ yyval.itype = RETURN; ;
3154 break;}
3155case 51:
3156#line 492 "cp-parse.y"
3157{ if (pedantic)
3158 pedwarn ("ANSI C++ forbids data definition with no type or storage class");
3159 else if (! flag_traditional && ! have_extern_spec)
3160 warning ("data definition has no type or storage class"); ;
3161 break;}
3162case 52:
3163#line 497 "cp-parse.y"
3164{;
3165 break;}
3166case 53:
3167#line 500 "cp-parse.y"
3168{ tree d;
3169 d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
3170 finish_decl (d, NULL_TREE, NULL_TREE, 0);
3171 ;
3172 break;}
3173case 54:
3174#line 505 "cp-parse.y"
3175{
3176 end_exception_decls ();
3177 note_list_got_semicolon (yyval.ttype);
3178 ;
3179 break;}
3180case 55:
3181#line 511 "cp-parse.y"
3182{ tree d;
3183 d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
3184 finish_decl (d, NULL_TREE, NULL_TREE, 0);
3185 end_exception_decls ();
3186 note_list_got_semicolon (yyval.ttype);
3187 ;
3188 break;}
3189case 56:
3190#line 518 "cp-parse.y"
3191{ pedwarn ("empty declaration"); ;
3192 break;}
3193case 57:
3194#line 520 "cp-parse.y"
3195{
3196 tree t = yyval.ttype;
3197 shadow_tag (t);
3198 if (TREE_CODE (t) == TREE_LIST
3199 && TREE_PURPOSE (t) == NULL_TREE)
3200 {
3201 t = TREE_VALUE (t);
3202 if (TREE_CODE (t) == RECORD_TYPE)
3203 {
3204 if (CLASSTYPE_USE_TEMPLATE (t) == 0)
3205 CLASSTYPE_USE_TEMPLATE (t) = 2;
3206 else if (CLASSTYPE_USE_TEMPLATE (t) == 1)
3207 error ("override declaration for already-expanded template");
3208 }
3209 }
3210 note_list_got_semicolon (yyval.ttype);
3211 ;
3212 break;}
3213case 61:
3214#line 544 "cp-parse.y"
3215{
3216 finish_function (lineno, 1);
3217 /* finish_function performs these three statements:
3218
3219 expand_end_bindings (getdecls (), 1, 0);
3220 poplevel (1, 1, 0);
3221
3222 expand_end_bindings (0, 0, 0);
3223 poplevel (0, 0, 1);
3224 */
3225 if (yyval.ttype) process_next_inline (yyval.ttype);
3226 ;
3227 break;}
3228case 62:
3229#line 557 "cp-parse.y"
3230{
3231 finish_function (lineno, 1);
3232 /* finish_function performs these three statements:
3233
3234 expand_end_bindings (getdecls (), 1, 0);
3235 poplevel (1, 1, 0);
3236
3237 expand_end_bindings (0, 0, 0);
3238 poplevel (0, 0, 1);
3239 */
3240 if (yyval.ttype) process_next_inline (yyval.ttype);
3241 ;
3242 break;}
3243case 63:
3244#line 570 "cp-parse.y"
3245{ finish_function (lineno, 0);
3246 if (yyval.ttype) process_next_inline (yyval.ttype); ;
3247 break;}
3248case 64:
3249#line 573 "cp-parse.y"
3250{ finish_function (lineno, 0);
3251 if (yyval.ttype) process_next_inline (yyval.ttype); ;
3252 break;}
3253case 65:
3254#line 576 "cp-parse.y"
3255{ finish_function (lineno, 0);
3256 if (yyval.ttype) process_next_inline (yyval.ttype); ;
3257 break;}
3258case 66:
3259#line 579 "cp-parse.y"
3260{;
3261 break;}
3262case 67:
3263#line 581 "cp-parse.y"
3264{;
3265 break;}
3266case 68:
3267#line 583 "cp-parse.y"
3268{;
3269 break;}
3270case 69:
3271#line 588 "cp-parse.y"
3272{ if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
3273 YYERROR1;
3274 reinit_parse_for_function ();
3275 yyval.ttype = NULL_TREE; ;
3276 break;}
3277case 70:
3278#line 593 "cp-parse.y"
3279{ if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
3280 YYERROR1;
3281 reinit_parse_for_function ();
3282 yyval.ttype = NULL_TREE; ;
3283 break;}
3284case 71:
3285#line 598 "cp-parse.y"
3286{ if (! start_function (NULL_TREE, yyval.ttype, yyvsp[0].ttype, 0))
3287 YYERROR1;
3288 reinit_parse_for_function ();
3289 yyval.ttype = NULL_TREE; ;
3290 break;}
3291case 72:
3292#line 603 "cp-parse.y"
3293{ if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
3294 YYERROR1;
3295 reinit_parse_for_function ();
3296 yyval.ttype = NULL_TREE; ;
3297 break;}
3298case 73:
3299#line 608 "cp-parse.y"
3300{ if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
3301 YYERROR1;
3302 reinit_parse_for_function ();
3303 yyval.ttype = NULL_TREE; ;
3304 break;}
3305case 74:
3306#line 613 "cp-parse.y"
3307{ if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
3308 YYERROR1;
3309 reinit_parse_for_function ();
3310 yyval.ttype = NULL_TREE; ;
3311 break;}
3312case 75:
3313#line 618 "cp-parse.y"
3314{ if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
3315 YYERROR1;
3316 reinit_parse_for_function ();
3317 yyval.ttype = NULL_TREE; ;
3318 break;}
3319case 76:
3320#line 623 "cp-parse.y"
3321{ start_function (NULL_TREE, TREE_VALUE (yyval.ttype), NULL_TREE, 1);
3322 reinit_parse_for_function (); ;
3323 break;}
3324case 77:
3325#line 630 "cp-parse.y"
3326{
3327 tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
3328 yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
3329 if (! yyval.ttype)
3330 YYERROR1;
3331 if (yychar == YYEMPTY)
3332 yychar = YYLEX;
3333 reinit_parse_for_method (yychar, yyval.ttype); ;
3334 break;}
3335case 78:
3336#line 639 "cp-parse.y"
3337{
3338 tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype);
3339 yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
3340 if (! yyval.ttype)
3341 YYERROR1;
3342 if (yychar == YYEMPTY)
3343 yychar = YYLEX;
3344 reinit_parse_for_method (yychar, yyval.ttype); ;
3345 break;}
3346case 79:
3347#line 648 "cp-parse.y"
3348{ yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
3349 if (! yyval.ttype)
3350 YYERROR1;
3351 if (yychar == YYEMPTY)
3352 yychar = YYLEX;
3353 reinit_parse_for_method (yychar, yyval.ttype); ;
3354 break;}
3355case 80:
3356#line 655 "cp-parse.y"
3357{
3358 tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
3359 yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
3360 if (! yyval.ttype)
3361 YYERROR1;
3362 if (yychar == YYEMPTY)
3363 yychar = YYLEX;
3364 reinit_parse_for_method (yychar, yyval.ttype); ;
3365 break;}
3366case 81:
3367#line 664 "cp-parse.y"
3368{
3369 tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype);
3370 yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
3371 if (! yyval.ttype)
3372 YYERROR1;
3373 if (yychar == YYEMPTY)
3374 yychar = YYLEX;
3375 reinit_parse_for_method (yychar, yyval.ttype); ;
3376 break;}
3377case 82:
3378#line 673 "cp-parse.y"
3379{ yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
3380 if (! yyval.ttype)
3381 YYERROR1;
3382 if (yychar == YYEMPTY)
3383 yychar = YYLEX;
3384 reinit_parse_for_method (yychar, yyval.ttype); ;
3385 break;}
3386case 83:
3387#line 680 "cp-parse.y"
3388{ yyval.ttype = start_method (NULL_TREE, yyval.ttype, yyvsp[0].ttype);
3389 if (! yyval.ttype)
3390 YYERROR1;
3391 if (yychar == YYEMPTY)
3392 yychar = YYLEX;
3393 reinit_parse_for_method (yychar, yyval.ttype); ;
3394 break;}
3395case 84:
3396#line 689 "cp-parse.y"
3397{
3398 if (! current_function_parms_stored)
3399 store_parm_decls ();
3400 yyval.ttype = yyvsp[0].ttype;
3401 ;
3402 break;}
3403case 85:
3404#line 697 "cp-parse.y"
3405{ store_return_init (yyval.ttype, NULL_TREE); ;
3406 break;}
3407case 86:
3408#line 699 "cp-parse.y"
3409{ store_return_init (yyval.ttype, yyvsp[0].ttype); ;
3410 break;}
3411case 87:
3412#line 701 "cp-parse.y"
3413{ store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
3414 break;}
3415case 88:
3416#line 703 "cp-parse.y"
3417{ store_return_init (yyval.ttype, NULL_TREE); ;
3418 break;}
3419case 89:
3420#line 708 "cp-parse.y"
3421{
3422 if (yyvsp[0].itype == 0)
3423 error ("no base initializers given following ':'");
3424 setup_vtbl_ptr ();
3425 ;
3426 break;}
3427case 90:
3428#line 717 "cp-parse.y"
3429{
3430 if (! current_function_parms_stored)
3431 store_parm_decls ();
3432
3433 /* Flag that we are processing base and member initializers. */
3434 current_vtable_decl = error_mark_node;
3435
3436 if (DECL_CONSTRUCTOR_P (current_function_decl))
3437 {
3438 /* Make a contour for the initializer list. */
3439 pushlevel (0);
3440 clear_last_expr ();
3441 expand_start_bindings (0);
3442 }
3443 else if (current_class_type == NULL_TREE)
3444 error ("base initializers not allowed for non-member functions");
3445 else if (! DECL_CONSTRUCTOR_P (current_function_decl))
3446 error ("only constructors take base initializers");
3447 ;
3448 break;}
3449case 91:
3450#line 740 "cp-parse.y"
3451{ yyval.itype = 0; ;
3452 break;}
3453case 92:
3454#line 742 "cp-parse.y"
3455{ yyval.itype = 1; ;
3456 break;}
3457case 95:
3458#line 748 "cp-parse.y"
3459{
3460 if (current_class_name && !flag_traditional)
3461 pedwarn ("ANSI C++ forbids old style base class initialization",
3462 IDENTIFIER_POINTER (current_class_name));
3463 expand_member_init (C_C_D, NULL_TREE, yyvsp[-1].ttype);
3464 ;
3465 break;}
3466case 96:
3467#line 755 "cp-parse.y"
3468{
3469 if (current_class_name && !flag_traditional)
3470 pedwarn ("ANSI C++ forbids old style base class initialization",
3471 IDENTIFIER_POINTER (current_class_name));
3472 expand_member_init (C_C_D, NULL_TREE, void_type_node);
3473 ;
3474 break;}
3475case 97:
3476#line 762 "cp-parse.y"
3477{
3478 expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype);
3479 ;
3480 break;}
3481case 98:
3482#line 766 "cp-parse.y"
3483{ expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
3484 break;}
3485case 99:
3486#line 768 "cp-parse.y"
3487{ expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype); ;
3488 break;}
3489case 100:
3490#line 770 "cp-parse.y"
3491{ expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
3492 break;}
3493case 101:
3494#line 772 "cp-parse.y"
3495{ expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype); ;
3496 break;}
3497case 102:
3498#line 774 "cp-parse.y"
3499{ expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
3500 break;}
3501case 103:
3502#line 776 "cp-parse.y"
3503{
3504 do_member_init (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype);
3505 ;
3506 break;}
3507case 104:
3508#line 780 "cp-parse.y"
3509{
3510 do_member_init (yyval.ttype, yyvsp[-1].ttype, void_type_node);
3511 ;
3512 break;}
3513case 114:
3514#line 804 "cp-parse.y"
3515{ yyval.ttype = build_parse_node (BIT_NOT_EXPR,yyvsp[0].ttype);;
3516 break;}
3517case 116:
3518#line 810 "cp-parse.y"
3519{
3520 extern tree template_type_seen_before_scope;
3521
3522 if (yyvsp[0].ttype)
3523 yyval.ttype = yyvsp[0].ttype;
3524 else if (yyval.ttype != error_mark_node)
3525 yyval.ttype = IDENTIFIER_TYPE_VALUE (yyval.ttype);
3526 /* This is a kludge: In order to detect nested types inside
3527 * template classes, we have to tell the lexer that it should
3528 * try to replace a following SCOPE token with the correct
3529 * SCOPED_TYPENAME for the nested type. This SCOPED_TYPENAME
3530 * token will be handled in the rule "scoped_typename".
3531 * - niklas@appli.se */
3532 if (yychar == SCOPE)
3533 {
3534 /* We set template_type_seen_before_scope to be
3535 an error_mark_node so we can avoid meaningless
3536 and unhelpful syntax errors later. */
3537 if (yyval.ttype != error_mark_node)
3538 template_type_seen_before_scope = TYPE_IDENTIFIER (yyval.ttype);
3539 else
3540 template_type_seen_before_scope = error_mark_node;
3541 yychar = YYLEX;
3542 }
3543 ;
3544 break;}
3545case 117:
3546#line 839 "cp-parse.y"
3547{ yyval.ttype = lookup_template_class (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
3548 break;}
3549case 118:
3550#line 841 "cp-parse.y"
3551{ yyval.ttype = lookup_template_class (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
3552 break;}
3553case 119:
3554#line 847 "cp-parse.y"
3555{ yyungetc ('{', 1); yyval.ttype = 0; ;
3556 break;}
3557case 120:
3558#line 848 "cp-parse.y"
3559{ yyungetc (':', 1); yyval.ttype = 0; ;
3560 break;}
3561case 121:
3562#line 850 "cp-parse.y"
3563{ yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ;
3564 break;}
3565case 122:
3566#line 855 "cp-parse.y"
3567{ yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ;
3568 break;}
3569case 123:
3570#line 860 "cp-parse.y"
3571{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
3572 break;}
3573case 124:
3574#line 862 "cp-parse.y"
3575{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3576 break;}
3577case 125:
3578#line 867 "cp-parse.y"
3579{ yyval.ttype = groktypename (yyval.ttype); ;
3580 break;}
3581case 127:
3582#line 873 "cp-parse.y"
3583{
3584 tree t, decl, id, tmpl;
3585
3586 id = TREE_VALUE (yyvsp[-1].ttype);
3587 tmpl = TREE_PURPOSE (IDENTIFIER_TEMPLATE (id));
3588 t = xref_tag (DECL_TEMPLATE_INFO (tmpl)->aggr, id, yyvsp[0].ttype);
3589 set_current_level_tags_transparency (1);
3590 my_friendly_assert (TREE_CODE (t) == RECORD_TYPE, 257);
3591 yyval.ttype = t;
3592
3593 /* Now, put a copy of the decl in global scope, to avoid
3594 recursive expansion. */
3595 decl = IDENTIFIER_LOCAL_VALUE (id);
3596 if (!decl)
3597 decl = IDENTIFIER_CLASS_VALUE (id);
3598 /* Now, put a copy of the decl in global scope, to avoid
3599 recursive expansion. */
3600 if (decl)
3601 {
3602 /* Need to copy it to clear the chain pointer,
3603 and need to get it into permanent storage. */
3604 my_friendly_assert (TREE_CODE (decl) == TYPE_DECL, 258);
3605 push_obstacks (&permanent_obstack, &permanent_obstack);
3606 decl = copy_node (decl);
3607 if (DECL_LANG_SPECIFIC (decl))
3608 copy_lang_decl (decl);
3609 pop_obstacks ();
3610 pushdecl_top_level (decl);
3611 }
3612 ;
3613 break;}
3614case 128:
3615#line 904 "cp-parse.y"
3616{
3617 int old_interface = interface_unknown;
3618
3619 interface_unknown = 1;
3620 yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-1].ttype, 0);
3621
3622 pop_obstacks ();
3623 end_template_instantiation (yyvsp[-5].ttype, yyvsp[-3].ttype);
3624
3625 /* Now go after the methods & class data. */
3626 old_interface = interface_unknown;
3627 interface_unknown = 1;
3628 instantiate_member_templates (yyvsp[-5].ttype);
3629 interface_unknown = old_interface;
3630 CLASSTYPE_GOT_SEMICOLON (yyval.ttype) = 1;
3631 ;
3632 break;}
3633case 129:
3634#line 924 "cp-parse.y"
3635{ yyval.ttype = NULL_TREE; ;
3636 break;}
3637case 130:
3638#line 926 "cp-parse.y"
3639{ yyval.ttype = yyvsp[0].ttype; ;
3640 break;}
3641case 131:
3642#line 931 "cp-parse.y"
3643{ yyval.ttype = NULL_TREE; /* never used from here... */;
3644 break;}
3645case 132:
3646#line 933 "cp-parse.y"
3647{ yyval.ttype = yyvsp[-1].ttype; /*???*/ ;
3648 break;}
3649case 133:
3650#line 937 "cp-parse.y"
3651{ yyval.code = NEGATE_EXPR; ;
3652 break;}
3653case 134:
3654#line 939 "cp-parse.y"
3655{ yyval.code = CONVERT_EXPR; ;
3656 break;}
3657case 135:
3658#line 941 "cp-parse.y"
3659{ yyval.code = PREINCREMENT_EXPR; ;
3660 break;}
3661case 136:
3662#line 943 "cp-parse.y"
3663{ yyval.code = PREDECREMENT_EXPR; ;
3664 break;}
3665case 137:
3666#line 945 "cp-parse.y"
3667{ yyval.code = TRUTH_NOT_EXPR; ;
3668 break;}
3669case 138:
3670#line 949 "cp-parse.y"
3671{ yyval.ttype = build_x_compound_expr (yyval.ttype); ;
3672 break;}
3673case 140:
3674#line 956 "cp-parse.y"
3675{ error ("ANSI C++ forbids an empty condition for `%s'",
3676 cond_stmt_keyword);
3677 yyval.ttype = integer_zero_node; ;
3678 break;}
3679case 141:
3680#line 960 "cp-parse.y"
3681{ yyval.ttype = yyvsp[-1].ttype; ;
3682 break;}
3683case 142:
3684#line 965 "cp-parse.y"
3685{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
3686 break;}
3687case 143:
3688#line 967 "cp-parse.y"
3689{ chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3690 break;}
3691case 144:
3692#line 969 "cp-parse.y"
3693{ chainon (yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ;
3694 break;}
3695case 145:
3696#line 974 "cp-parse.y"
3697{
3698 if (TREE_CODE (yyval.ttype) == TYPE_EXPR)
3699 yyval.ttype = build_component_type_expr (C_C_D, yyval.ttype, NULL_TREE, 1);
3700 ;
3701 break;}
3702case 146:
3703#line 980 "cp-parse.y"
3704{ yyvsp[0].itype = pedantic;
3705 pedantic = 0; ;
3706 break;}
3707case 147:
3708#line 983 "cp-parse.y"
3709{ yyval.ttype = yyvsp[0].ttype;
3710 pedantic = yyvsp[-2].itype; ;
3711 break;}
3712case 148:
3713#line 986 "cp-parse.y"
3714{ yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
3715 break;}
3716case 149:
3717#line 988 "cp-parse.y"
3718{ yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
3719 break;}
3720case 150:
3721#line 990 "cp-parse.y"
3722{ yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
3723 break;}
3724case 151:
3725#line 992 "cp-parse.y"
3726{ yyval.ttype = build_x_unary_op ((enum tree_code) yyval.ttype, yyvsp[0].ttype);
3727 if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
3728 TREE_NEGATED_INT (yyval.ttype) = 1;
3729 ;
3730 break;}
3731case 152:
3732#line 998 "cp-parse.y"
3733{ tree label = lookup_label (yyvsp[0].ttype);
3734 TREE_USED (label) = 1;
3735 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
3736 TREE_CONSTANT (yyval.ttype) = 1; ;
3737 break;}
3738case 153:
3739#line 1003 "cp-parse.y"
3740{ if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
3741 && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
3742 error ("sizeof applied to a bit-field");
3743 /* ANSI says arrays and functions are converted inside comma.
3744 But we can't really convert them in build_compound_expr
3745 because that would break commas in lvalues.
3746 So do the conversion here if operand was a comma. */
3747 if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
3748 && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
3749 || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
3750 yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
3751 else if (TREE_CODE (yyvsp[0].ttype) == TREE_LIST)
3752 {
3753 tree t = TREE_VALUE (yyvsp[0].ttype);
3754 if (t != NULL_TREE
3755 && TREE_CODE (TREE_TYPE (t)) == FUNCTION_TYPE)
3756 pedwarn ("ANSI C++ forbids using sizeof() on a function");
3757 }
3758 yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
3759 break;}
3760case 154:
3761#line 1023 "cp-parse.y"
3762{ yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
3763 break;}
3764case 155:
3765#line 1025 "cp-parse.y"
3766{ if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
3767 && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
3768 error ("`__alignof' applied to a bit-field");
3769 if (TREE_CODE (yyvsp[0].ttype) == INDIRECT_REF)
3770 {
3771 tree t = TREE_OPERAND (yyvsp[0].ttype, 0);
3772 tree best = t;
3773 int bestalign = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (t)));
3774 while (TREE_CODE (t) == NOP_EXPR
3775 && TREE_CODE (TREE_TYPE (TREE_OPERAND (t, 0))) == POINTER_TYPE)
3776 {
3777 int thisalign;
3778 t = TREE_OPERAND (t, 0);
3779 thisalign = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (t)));
3780 if (thisalign > bestalign)
3781 best = t, bestalign = thisalign;
3782 }
3783 yyval.ttype = c_alignof (TREE_TYPE (TREE_TYPE (best)));
3784 }
3785 else
3786 {
3787 /* ANSI says arrays and fns are converted inside comma.
3788 But we can't convert them in build_compound_expr
3789 because that would break commas in lvalues.
3790 So do the conversion here if operand was a comma. */
3791 if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
3792 && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
3793 || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
3794 yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
3795 yyval.ttype = c_alignof (TREE_TYPE (yyvsp[0].ttype));
3796 }
3797 ;
3798 break;}
3799case 156:
3800#line 1058 "cp-parse.y"
3801{ yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
3802 break;}
3803case 157:
3804#line 1061 "cp-parse.y"
3805{ yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
3806 break;}
3807case 158:
3808#line 1063 "cp-parse.y"
3809{ yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
3810 break;}
3811case 159:
3812#line 1065 "cp-parse.y"
3813{ yyval.ttype = build_new (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyval.ttype != NULL_TREE); ;
3814 break;}
3815case 160:
3816#line 1067 "cp-parse.y"
3817{ yyval.ttype = build_new (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyval.ttype != NULL_TREE); ;
3818 break;}
3819case 161:
3820#line 1069 "cp-parse.y"
3821{ yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
3822 break;}
3823case 162:
3824#line 1071 "cp-parse.y"
3825{ yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
3826 break;}
3827case 163:
3828#line 1073 "cp-parse.y"
3829{ yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype != NULL_TREE); ;
3830 break;}
3831case 164:
3832#line 1075 "cp-parse.y"
3833{ yyval.ttype = build_new (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype != NULL_TREE); ;
3834 break;}
3835case 165:
3836#line 1083 "cp-parse.y"
3837{
3838 tree absdcl, typename;
3839
3840 illegal_new_array:
3841 absdcl = build_parse_node (ARRAY_REF, yyvsp[-4].ttype, yyvsp[-1].ttype);
3842 typename = build_decl_list (yyvsp[-5].ttype, absdcl);
3843 pedwarn ("ANSI C++ forbids array dimensions with parenthesized type");
3844 yyval.ttype = build_new (yyvsp[-7].ttype, typename, NULL_TREE, yyval.ttype != NULL_TREE);
3845 ;
3846 break;}
3847case 166:
3848#line 1093 "cp-parse.y"
3849{ goto illegal_new_array; ;
3850 break;}
3851case 167:
3852#line 1096 "cp-parse.y"
3853{ yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
3854 break;}
3855case 168:
3856#line 1098 "cp-parse.y"
3857{ yyval.ttype = build_new (yyvsp[-5].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
3858 break;}
3859case 169:
3860#line 1100 "cp-parse.y"
3861{ yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
3862 break;}
3863case 170:
3864#line 1102 "cp-parse.y"
3865{ yyval.ttype = build_new (yyvsp[-5].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
3866 break;}
3867case 171:
3868#line 1105 "cp-parse.y"
3869{ yyungetc (':', 1); yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
3870 break;}
3871case 172:
3872#line 1107 "cp-parse.y"
3873{ yyungetc (':', 1); yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
3874 break;}
3875case 173:
3876#line 1110 "cp-parse.y"
3877{ tree expr = stabilize_reference (convert_from_reference (yyvsp[0].ttype));
3878 tree type = TREE_TYPE (expr);
3879
3880 if (TREE_CODE (type) != POINTER_TYPE)
3881 {
3882 error ("non-pointer type to `delete'");
3883 yyval.ttype = error_mark_node;
3884 break;
3885 }
3886 else if (integer_zerop (expr))
3887 {
3888 /* ANSI C++ June 5 1992 WP 5.3.4. Deleting a pointer
3889 with the value zero is legal and has no effect. */
3890 yyval.ttype = build1 (NOP_EXPR, void_type_node, expr);
3891 break;
3892 }
3893 else if (TREE_READONLY (TREE_TYPE (type)))
3894 {
3895 error ("`const *' cannot be deleted");
3896 yyval.ttype = error_mark_node;
3897 break;
3898 }
3899 yyval.ttype = build_delete (type, expr, integer_three_node,
3900 LOOKUP_NORMAL|LOOKUP_HAS_IN_CHARGE,
3901 TYPE_HAS_DESTRUCTOR (TREE_TYPE (type)),
3902 0);
3903 ;
3904 break;}
3905case 174:
3906#line 1138 "cp-parse.y"
3907{
3908 tree exp = stabilize_reference (convert_from_reference (yyvsp[0].ttype));
3909 tree type = TREE_TYPE (exp);
3910 tree elt_size = c_sizeof (type);
3911
3912 if (yychar == YYEMPTY)
3913 yychar = YYLEX;
3914
3915 if (TREE_CODE (type) == POINTER_TYPE
3916 && TREE_READONLY (TREE_TYPE (type)))
3917 {
3918 error ("`const *' cannot be deleted");
3919 yyval.ttype = error_mark_node;
3920 break;
3921 }
3922 yyval.ttype = build_vec_delete (exp, NULL_TREE, elt_size, NULL_TREE,
3923 integer_one_node, integer_two_node);
3924 ;
3925 break;}
3926case 175:
3927#line 1157 "cp-parse.y"
3928{
3929 tree maxindex = build_binary_op (MINUS_EXPR, yyvsp[-2].ttype,
3930 integer_one_node, 1);
3931 tree exp = stabilize_reference (convert_from_reference (yyvsp[0].ttype));
3932 tree type = TREE_TYPE (exp);
3933 tree elt_size = c_sizeof (type);
3934
3935 if (yychar == YYEMPTY)
3936 yychar = YYLEX;
3937
3938 if (! flag_traditional)
3939 pedwarn ("ANSI C++ forbids array size in vector delete");
3940 if (TREE_CODE (type) == POINTER_TYPE
3941 && TREE_READONLY (TREE_TYPE (type)))
3942 {
3943 error ("`const *' cannot be deleted");
3944 yyval.ttype = error_mark_node;
3945 break;
3946 }
3947 yyval.ttype = build_vec_delete (exp, maxindex, elt_size, NULL_TREE,
3948 integer_one_node, integer_two_node);
3949 ;
3950 break;}
3951case 177:
3952#line 1184 "cp-parse.y"
3953{ tree type = groktypename (yyvsp[-2].ttype);
3954 yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
3955 break;}
3956case 178:
3957#line 1187 "cp-parse.y"
3958{ tree type = groktypename (yyvsp[-5].ttype);
3959 tree init = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
3960 if (pedantic)
3961 pedwarn ("ANSI C++ forbids constructor-expressions");
3962 /* Indicate that this was a GNU C constructor expression. */
3963 TREE_HAS_CONSTRUCTOR (init) = 1;
3964 yyval.ttype = digest_init (type, init, (tree *) 0);
3965 if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
3966 {
3967 int failure = complete_array_type (type, yyval.ttype, 1);
3968 if (failure)
3969 my_friendly_abort (78);
3970 }
3971 ;
3972 break;}
3973case 179:
3974#line 1202 "cp-parse.y"
3975{ yyval.ttype = build_headof (yyvsp[-1].ttype); ;
3976 break;}
3977case 180:
3978#line 1204 "cp-parse.y"
3979{ yyval.ttype = build_classof (yyvsp[-1].ttype); ;
3980 break;}
3981case 181:
3982#line 1206 "cp-parse.y"
3983{ if (is_aggr_typedef (yyvsp[-1].ttype, 1))
3984 {
3985 tree type = IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype);
3986 yyval.ttype = CLASSTYPE_DOSSIER (type);
3987 }
3988 else
3989 yyval.ttype = error_mark_node;
3990 ;
3991 break;}
3992case 183:
3993#line 1219 "cp-parse.y"
3994{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
3995 break;}
3996case 184:
3997#line 1221 "cp-parse.y"
3998{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
3999 break;}
4000case 185:
4001#line 1223 "cp-parse.y"
4002{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4003 break;}
4004case 186:
4005#line 1225 "cp-parse.y"
4006{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4007 break;}
4008case 187:
4009#line 1227 "cp-parse.y"
4010{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4011 break;}
4012case 188:
4013#line 1229 "cp-parse.y"
4014{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4015 break;}
4016case 189:
4017#line 1231 "cp-parse.y"
4018{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4019 break;}
4020case 190:
4021#line 1233 "cp-parse.y"
4022{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4023 break;}
4024case 191:
4025#line 1235 "cp-parse.y"
4026{ yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4027 break;}
4028case 192:
4029#line 1237 "cp-parse.y"
4030{ yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4031 break;}
4032case 193:
4033#line 1239 "cp-parse.y"
4034{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4035 break;}
4036case 194:
4037#line 1241 "cp-parse.y"
4038{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4039 break;}
4040case 195:
4041#line 1243 "cp-parse.y"
4042{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4043 break;}
4044case 196:
4045#line 1245 "cp-parse.y"
4046{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4047 break;}
4048case 197:
4049#line 1247 "cp-parse.y"
4050{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4051 break;}
4052case 198:
4053#line 1249 "cp-parse.y"
4054{ yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4055 break;}
4056case 199:
4057#line 1251 "cp-parse.y"
4058{ yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4059 break;}
4060case 200:
4061#line 1253 "cp-parse.y"
4062{ yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
4063 break;}
4064case 201:
4065#line 1255 "cp-parse.y"
4066{ yyval.ttype = build_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); ;
4067 break;}
4068case 202:
4069#line 1257 "cp-parse.y"
4070{ register tree rval;
4071 if (rval = build_opfncall (MODIFY_EXPR, LOOKUP_NORMAL, yyval.ttype, yyvsp[0].ttype,
4072 make_node (yyvsp[-1].code)))
4073 yyval.ttype = rval;
4074 else
4075 yyval.ttype = build_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
4076 break;}
4077case 203:
4078#line 1264 "cp-parse.y"
4079{ yyval.ttype = build_m_component_ref (yyval.ttype, build_indirect_ref (yyvsp[0].ttype, 0)); ;
4080 break;}
4081case 204:
4082#line 1267 "cp-parse.y"
4083{ yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
4084 break;}
4085case 205:
4086#line 1283 "cp-parse.y"
4087{ yyval.ttype = do_identifier (yyval.ttype); ;
4088 break;}
4089case 206:
4090#line 1285 "cp-parse.y"
4091{
4092 tree op = yyval.ttype;
4093 if (TREE_CODE (op) != IDENTIFIER_NODE)
4094 yyval.ttype = op;
4095 else
4096 {
4097 yyval.ttype = lookup_name (op, 0);
4098 if (yyval.ttype == NULL_TREE)
4099 {
4100 error ("operator %s not defined", operator_name_string (op));
4101 yyval.ttype = error_mark_node;
4102 }
4103 }
4104 ;
4105 break;}
4106case 208:
4107#line 1301 "cp-parse.y"
4108{ yyval.ttype = combine_strings (yyval.ttype); ;
4109 break;}
4110case 209:
4111#line 1303 "cp-parse.y"
4112{ yyval.ttype = yyvsp[-1].ttype; ;
4113 break;}
4114case 210:
4115#line 1305 "cp-parse.y"
4116{ yyval.ttype = error_mark_node; ;
4117 break;}
4118case 211:
4119#line 1307 "cp-parse.y"
4120{ if (current_function_decl == 0)
4121 {
4122 error ("braced-group within expression allowed only inside a function");
4123 YYERROR;
4124 }
4125 keep_next_level ();
4126 yyval.ttype = expand_start_stmt_expr (); ;
4127 break;}
4128case 212:
4129#line 1315 "cp-parse.y"
4130{ tree rtl_exp;
4131 if (pedantic)
4132 pedwarn ("ANSI C++ forbids braced-groups within expressions");
4133 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
4134 /* The statements have side effects, so the group does. */
4135 TREE_SIDE_EFFECTS (rtl_exp) = 1;
4136 /* Make a BIND_EXPR for the BLOCK already made. */
4137 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
4138 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
4139 /* Remove the block from the tree at this point.
4140 It gets put back at the proper place
4141 when the BIND_EXPR is expanded. */
4142 delete_block (yyvsp[-1].ttype);
4143 ;
4144 break;}
4145case 213:
4146#line 1330 "cp-parse.y"
4147{ /* [eichin:19911016.1902EST] */
4148 yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_decl);
4149 /* here we instantiate_class_template as needed... */
4150 do_pending_templates ();
4151 ;
4152 break;}
4153case 214:
4154#line 1334 "cp-parse.y"
4155{
4156 if (TREE_CODE (yyvsp[-1].ttype) == CALL_EXPR
4157 && TREE_TYPE (yyvsp[-1].ttype) != void_type_node)
4158 yyval.ttype = require_complete_type (yyvsp[-1].ttype);
4159 else
4160 yyval.ttype = yyvsp[-1].ttype;
4161 ;
4162 break;}
4163case 215:
4164#line 1342 "cp-parse.y"
4165{
4166 if (yyval.ttype != error_mark_node)
4167 {
4168 yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_decl);
4169 if (TREE_CODE (yyval.ttype) == CALL_EXPR
4170 && TREE_TYPE (yyval.ttype) != void_type_node)
4171 yyval.ttype = require_complete_type (yyval.ttype);
4172 }
4173 ;
4174 break;}
4175case 216:
4176#line 1352 "cp-parse.y"
4177{
4178 do_array:
4179 {
4180 tree array_expr = yyval.ttype;
4181 tree index_exp = yyvsp[-1].ttype;
4182 tree type = TREE_TYPE (array_expr);
4183 if (type == error_mark_node || index_exp == error_mark_node)
4184 yyval.ttype = error_mark_node;
4185 else if (type == NULL_TREE)
4186 {
4187 /* Something has gone very wrong. Assume we
4188 are mistakenly reducing an expression
4189 instead of a declaration. */
4190 error ("parser may be lost: is there a '{' missing somewhere?");
4191 yyval.ttype = NULL_TREE;
4192 }
4193 else
4194 {
4195 if (TREE_CODE (type) == OFFSET_TYPE)
4196 type = TREE_TYPE (type);
4197 if (TREE_CODE (type) == REFERENCE_TYPE)
4198 type = TREE_TYPE (type);
4199
4200 if (TYPE_LANG_SPECIFIC (type)
4201 && TYPE_OVERLOADS_ARRAY_REF (type))
4202 yyval.ttype = build_opfncall (ARRAY_REF, LOOKUP_NORMAL, array_expr, index_exp, NULL_TREE);
4203 else if (TREE_CODE (type) == POINTER_TYPE
4204 || TREE_CODE (type) == ARRAY_TYPE)
4205 yyval.ttype = build_array_ref (array_expr, index_exp);
4206 else
4207 {
4208 type = TREE_TYPE (index_exp);
4209 if (TREE_CODE (type) == OFFSET_TYPE)
4210 type = TREE_TYPE (type);
4211 if (TREE_CODE (type) == REFERENCE_TYPE)
4212 type = TREE_TYPE (type);
4213
4214 if (TYPE_LANG_SPECIFIC (type)
4215 && TYPE_OVERLOADS_ARRAY_REF (type))
4216 error ("array expression backwards");
4217 else if (TREE_CODE (type) == POINTER_TYPE
4218 || TREE_CODE (type) == ARRAY_TYPE)
4219 yyval.ttype = build_array_ref (index_exp, array_expr);
4220 else
4221 error("[] applied to non-pointer type");
4222 }
4223 }
4224 }
4225 ;
4226 break;}
4227case 217:
4228#line 1402 "cp-parse.y"
4229{ yyval.ttype = build_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
4230 break;}
4231case 218:
4232#line 1404 "cp-parse.y"
4233{
4234 tree basetype = yyvsp[-1].ttype;
4235 if (is_aggr_typedef (basetype, 1))
4236 {
4237 basetype = IDENTIFIER_TYPE_VALUE (basetype);
4238
4239 if (yyval.ttype == error_mark_node)
4240 ;
4241 else if (binfo_or_else (basetype, TREE_TYPE (yyval.ttype)))
4242 yyval.ttype = build_component_ref (build_scoped_ref (yyval.ttype, yyvsp[-1].ttype), yyvsp[0].ttype, NULL_TREE, 1);
4243 else
4244 yyval.ttype = error_mark_node;
4245 }
4246 else yyval.ttype = error_mark_node;
4247 ;
4248 break;}
4249case 219:
4250#line 1420 "cp-parse.y"
4251{ yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
4252 break;}
4253case 220:
4254#line 1422 "cp-parse.y"
4255{ yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
4256 break;}
4257case 221:
4258#line 1426 "cp-parse.y"
4259{ if (current_class_decl)
4260 {
4261#ifdef WARNING_ABOUT_CCD
4262 TREE_USED (current_class_decl) = 1;
4263#endif
4264 yyval.ttype = current_class_decl;
4265 }
4266 else if (current_function_decl
4267 && DECL_STATIC_FUNCTION_P (current_function_decl))
4268 {
4269 error ("`this' is unavailable for static member functions");
4270 yyval.ttype = error_mark_node;
4271 }
4272 else
4273 {
4274 if (current_function_decl)
4275 error ("invalid use of `this' in non-member function");
4276 else
4277 error ("invalid use of `this' at top level");
4278 yyval.ttype = error_mark_node;
4279 }
4280 ;
4281 break;}
4282case 222:
4283#line 1449 "cp-parse.y"
4284{
4285 tree type;
4286 tree id = yyval.ttype;
4287
4288 /* This is a C cast in C++'s `functional' notation. */
4289 if (yyvsp[-1].ttype == error_mark_node)
4290 {
4291 yyval.ttype = error_mark_node;
4292 break;
4293 }
4294#if 0
4295 if (yyvsp[-1].ttype == NULL_TREE)
4296 {
4297 error ("cannot cast null list to type `%s'",
4298 IDENTIFIER_POINTER (TYPE_NAME (id)));
4299 yyval.ttype = error_mark_node;
4300 break;
4301 }
4302#endif
4303#if 0
4304 /* type is not set! (mrs) */
4305 if (type == error_mark_node)
4306 yyval.ttype = error_mark_node;
4307 else
4308#endif
4309 {
4310 if (id == ridpointers[(int) RID_CONST])
4311 type = build_type_variant (integer_type_node, 1, 0);
4312 else if (id == ridpointers[(int) RID_VOLATILE])
4313 type = build_type_variant (integer_type_node, 0, 1);
4314#if 0
4315 /* should not be able to get here (mrs) */
4316 else if (id == ridpointers[(int) RID_FRIEND])
4317 {
4318 error ("cannot cast expression to `friend' type");
4319 yyval.ttype = error_mark_node;
4320 break;
4321 }
4322#endif
4323 else my_friendly_abort (79);
4324 yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
4325 }
4326 ;
4327 break;}
4328case 223:
4329#line 1493 "cp-parse.y"
4330{ yyval.ttype = build_functional_cast (yyval.ttype, yyvsp[-1].ttype); ;
4331 break;}
4332case 224:
4333#line 1495 "cp-parse.y"
4334{ yyval.ttype = build_functional_cast (yyval.ttype, NULL_TREE); ;
4335 break;}
4336case 225:
4337#line 1497 "cp-parse.y"
4338{ yyval.ttype = build_functional_cast (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4339 break;}
4340case 226:
4341#line 1499 "cp-parse.y"
4342{ yyval.ttype = build_functional_cast (yyvsp[-1].ttype, NULL_TREE); ;
4343 break;}
4344case 227:
4345#line 1501 "cp-parse.y"
4346{
4347 do_scoped_id:
4348 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
4349 if (yychar == YYEMPTY)
4350 yychar = YYLEX;
4351 if (! yyval.ttype)
4352 {
4353 if (yychar == '(' || yychar == LEFT_RIGHT)
4354 yyval.ttype = implicitly_declare (yyvsp[0].ttype);
4355 else
4356 {
4357 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node)
4358 error ("undeclared variable `%s' (first use here)",
4359 IDENTIFIER_POINTER (yyvsp[0].ttype));
4360 yyval.ttype = error_mark_node;
4361 /* Prevent repeated error messages. */
4362 IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
4363 }
4364 }
4365 else
4366 {
4367 if (TREE_CODE (yyval.ttype) == ADDR_EXPR)
4368 assemble_external (TREE_OPERAND (yyval.ttype, 0));
4369 else
4370 assemble_external (yyval.ttype);
4371 TREE_USED (yyval.ttype) = 1;
4372 }
4373 if (TREE_CODE (yyval.ttype) == CONST_DECL)
4374 {
4375 /* XXX CHS - should we set TREE_USED of the constant? */
4376 yyval.ttype = DECL_INITIAL (yyval.ttype);
4377 /* This is to prevent an enum whose value is 0
4378 from being considered a null pointer constant. */
4379 yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
4380 TREE_CONSTANT (yyval.ttype) = 1;
4381 }
4382
4383 ;
4384 break;}
4385case 228:
4386#line 1540 "cp-parse.y"
4387{
4388 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
4389 goto do_scoped_id;
4390 do_scoped_operator:
4391 yyval.ttype = yyvsp[0].ttype;
4392 ;
4393 break;}
4394case 229:
4395#line 1547 "cp-parse.y"
4396{ yyval.ttype = build_offset_ref (yyval.ttype, yyvsp[0].ttype); ;
4397 break;}
4398case 230:
4399#line 1549 "cp-parse.y"
4400{ yyval.ttype = build_member_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4401 break;}
4402case 231:
4403#line 1551 "cp-parse.y"
4404{ yyval.ttype = build_member_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
4405 break;}
4406case 232:
4407#line 1553 "cp-parse.y"
4408{ yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
4409 (LOOKUP_NORMAL|LOOKUP_AGGR)); ;
4410 break;}
4411case 233:
4412#line 1556 "cp-parse.y"
4413{ yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
4414 (LOOKUP_NORMAL|LOOKUP_AGGR)); ;
4415 break;}
4416case 234:
4417#line 1559 "cp-parse.y"
4418{ yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4419 break;}
4420case 235:
4421#line 1561 "cp-parse.y"
4422{ yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE); ;
4423 break;}
4424case 236:
4425#line 1603 "cp-parse.y"
4426{ yyval.ttype = NULL_TREE; ;
4427 break;}
4428case 237:
4429#line 1605 "cp-parse.y"
4430{
4431 yyval.ttype = yyvsp[-1].ttype;
4432 pedwarn ("old style placement syntax, use () instead");
4433 ;
4434 break;}
4435case 238:
4436#line 1610 "cp-parse.y"
4437{ yyval.ttype = void_type_node; ;
4438 break;}
4439case 239:
4440#line 1612 "cp-parse.y"
4441{ yyval.ttype = combine_strings (yyvsp[-1].ttype); ;
4442 break;}
4443case 240:
4444#line 1617 "cp-parse.y"
4445{ yyval.itype = 0; ;
4446 break;}
4447case 241:
4448#line 1619 "cp-parse.y"
4449{ yyval.itype = 1; ;
4450 break;}
4451case 242:
4452#line 1623 "cp-parse.y"
4453{ yyval.ttype = NULL_TREE; ;
4454 break;}
4455case 243:
4456#line 1625 "cp-parse.y"
4457{ if (yyvsp[0].ttype)
4458 error ("extra `::' before `delete' ignored");
4459 yyval.ttype = error_mark_node;
4460 ;
4461 break;}
4462case 245:
4463#line 1635 "cp-parse.y"
4464{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
4465 break;}
4466case 246:
4467#line 1640 "cp-parse.y"
4468{
4469 if (! current_function_parms_stored)
4470 store_parm_decls ();
4471 setup_vtbl_ptr ();
4472 ;
4473 break;}
4474case 247:
4475#line 1648 "cp-parse.y"
4476{
4477 if (yyval.ttype == error_mark_node)
4478 ;
4479 else
4480 {
4481 tree type = TREE_TYPE (yyval.ttype);
4482
4483 if (! PROMOTES_TO_AGGR_TYPE (type, REFERENCE_TYPE))
4484 {
4485 error ("object in '.' expression is not of aggregate type");
4486 yyval.ttype = error_mark_node;
4487 }
4488 }
4489 ;
4490 break;}
4491case 248:
4492#line 1663 "cp-parse.y"
4493{
4494 yyval.ttype = build_x_arrow (yyval.ttype);
4495 ;
4496 break;}
4497case 250:
4498#line 1673 "cp-parse.y"
4499{
4500 resume_momentary (yyvsp[-1].itype);
4501 note_list_got_semicolon (yyval.ttype);
4502 ;
4503 break;}
4504case 251:
4505#line 1679 "cp-parse.y"
4506{ tree d;
4507 int yes = suspend_momentary ();
4508 d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
4509 finish_decl (d, NULL_TREE, NULL_TREE, 0);
4510 resume_momentary (yes);
4511 note_list_got_semicolon (yyval.ttype);
4512 ;
4513 break;}
4514case 252:
4515#line 1687 "cp-parse.y"
4516{ resume_momentary ((int) yyvsp[-1].itype); ;
4517 break;}
4518case 253:
4519#line 1690 "cp-parse.y"
4520{ tree d;
4521 int yes = suspend_momentary ();
4522 d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
4523 finish_decl (d, NULL_TREE, NULL_TREE, 0);
4524 resume_momentary (yes);
4525 ;
4526 break;}
4527case 254:
4528#line 1697 "cp-parse.y"
4529{
4530 shadow_tag (yyval.ttype);
4531 note_list_got_semicolon (yyval.ttype);
4532 ;
4533 break;}
4534case 255:
4535#line 1702 "cp-parse.y"
4536{ warning ("empty declaration"); ;
4537 break;}
4538case 258:
4539#line 1712 "cp-parse.y"
4540{ yyval.ttype = yyvsp[0].ttype; ;
4541 break;}
4542case 259:
4543#line 1714 "cp-parse.y"
4544{ yyval.ttype = yyvsp[0].ttype; ;
4545 break;}
4546case 260:
4547#line 1723 "cp-parse.y"
4548{ yyval.ttype = list_hash_lookup_or_cons (yyval.ttype); ;
4549 break;}
4550case 261:
4551#line 1725 "cp-parse.y"
4552{ yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype); ;
4553 break;}
4554case 262:
4555#line 1727 "cp-parse.y"
4556{ yyval.ttype = hash_tree_chain (yyval.ttype, yyvsp[0].ttype); ;
4557 break;}
4558case 263:
4559#line 1729 "cp-parse.y"
4560{ yyval.ttype = hash_tree_chain (yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ;
4561 break;}
4562case 264:
4563#line 1735 "cp-parse.y"
4564{ yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
4565 break;}
4566case 265:
4567#line 1737 "cp-parse.y"
4568{ if (extra_warnings)
4569 warning ("`%s' is not at beginning of declaration",
4570 IDENTIFIER_POINTER (yyval.ttype));
4571 yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
4572 break;}
4573case 266:
4574#line 1742 "cp-parse.y"
4575{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
4576 break;}
4577case 267:
4578#line 1744 "cp-parse.y"
4579{ if (extra_warnings)
4580 warning ("`%s' is not at beginning of declaration",
4581 IDENTIFIER_POINTER (yyvsp[0].ttype));
4582 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
4583 break;}
4584case 268:
4585#line 1756 "cp-parse.y"
4586{ yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype);
4587 TREE_STATIC (yyval.ttype) = 1; ;
4588 break;}
4589case 269:
4590#line 1759 "cp-parse.y"
4591{ yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
4592 break;}
4593case 270:
4594#line 1761 "cp-parse.y"
4595{ yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype);
4596 TREE_STATIC (yyval.ttype) = 1; ;
4597 break;}
4598case 271:
4599#line 1764 "cp-parse.y"
4600{ if (extra_warnings && TREE_STATIC (yyval.ttype))
4601 warning ("`%s' is not at beginning of declaration",
4602 IDENTIFIER_POINTER (yyvsp[0].ttype));
4603 yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype);
4604 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
4605 break;}
4606case 272:
4607#line 1780 "cp-parse.y"
4608{ yyval.ttype = get_decl_list (yyval.ttype); ;
4609 break;}
4610case 273:
4611#line 1782 "cp-parse.y"
4612{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
4613 break;}
4614case 274:
4615#line 1784 "cp-parse.y"
4616{ yyval.ttype = decl_tree_cons (NULL_TREE, yyval.ttype, yyvsp[0].ttype); ;
4617 break;}
4618case 275:
4619#line 1786 "cp-parse.y"
4620{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ;
4621 break;}
4622case 276:
4623#line 1791 "cp-parse.y"
4624{ yyval.ttype = get_decl_list (yyval.ttype); ;
4625 break;}
4626case 277:
4627#line 1793 "cp-parse.y"
4628{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
4629 break;}
4630case 282:
4631#line 1805 "cp-parse.y"
4632{ yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
4633 if (pedantic)
4634 pedwarn ("ANSI C++ forbids `typeof'"); ;
4635 break;}
4636case 283:
4637#line 1809 "cp-parse.y"
4638{ yyval.ttype = groktypename (yyvsp[-1].ttype);
4639 if (pedantic)
4640 pedwarn ("ANSI C++ forbids `typeof'"); ;
4641 break;}
4642case 292:
4643#line 1834 "cp-parse.y"
4644{ yyval.ttype = NULL_TREE; ;
4645 break;}
4646case 293:
4647#line 1836 "cp-parse.y"
4648{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
4649 break;}
4650case 294:
4651#line 1841 "cp-parse.y"
4652{ current_declspecs = yyvsp[-5].ttype;
4653 yyvsp[0].itype = suspend_momentary ();
4654 yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
4655 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
4656 break;}
4657case 295:
4658#line 1847 "cp-parse.y"
4659{ finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0);
4660 yyval.itype = yyvsp[-2].itype; ;
4661 break;}
4662case 296:
4663#line 1850 "cp-parse.y"
4664{ tree d;
4665 current_declspecs = yyvsp[-4].ttype;
4666 yyval.itype = suspend_momentary ();
4667 d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
4668 cplus_decl_attributes (d, yyvsp[0].ttype);
4669 finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
4670 break;}
4671case 297:
4672#line 1860 "cp-parse.y"
4673{ yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
4674 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
4675 break;}
4676case 298:
4677#line 1864 "cp-parse.y"
4678{ finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0); ;
4679 break;}
4680case 299:
4681#line 1866 "cp-parse.y"
4682{ tree d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
4683 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype);
4684 finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
4685 break;}
4686case 300:
4687#line 1873 "cp-parse.y"
4688{ current_declspecs = yyvsp[-5].ttype;
4689 yyvsp[0].itype = suspend_momentary ();
4690 yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
4691 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
4692 break;}
4693case 301:
4694#line 1879 "cp-parse.y"
4695{ finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0);
4696 yyval.itype = yyvsp[-2].itype; ;
4697 break;}
4698case 302:
4699#line 1882 "cp-parse.y"
4700{ tree d;
4701 current_declspecs = yyvsp[-4].ttype;
4702 yyval.itype = suspend_momentary ();
4703 d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
4704 cplus_decl_attributes (d, yyvsp[0].ttype);
4705 finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
4706 break;}
4707case 303:
4708#line 1894 "cp-parse.y"
4709{ yyval.ttype = NULL_TREE; ;
4710 break;}
4711case 304:
4712#line 1896 "cp-parse.y"
4713{ yyval.ttype = yyvsp[-2].ttype; ;
4714 break;}
4715case 305:
4716#line 1901 "cp-parse.y"
4717{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4718 break;}
4719case 306:
4720#line 1903 "cp-parse.y"
4721{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
4722 break;}
4723case 307:
4724#line 1908 "cp-parse.y"
4725{ if (strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "packed"))
4726 warning ("`%s' attribute directive ignored",
4727 IDENTIFIER_POINTER (yyvsp[0].ttype));
4728 yyval.ttype = yyvsp[0].ttype; ;
4729 break;}
4730case 308:
4731#line 1913 "cp-parse.y"
4732{ /* if not "aligned(n)", then issue warning */
4733 if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0
4734 || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
4735 {
4736 warning ("`%s' attribute directive ignored",
4737 IDENTIFIER_POINTER (yyvsp[-3].ttype));
4738 yyval.ttype = yyvsp[-3].ttype;
4739 }
4740 else
4741 yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
4742 break;}
4743case 309:
4744#line 1924 "cp-parse.y"
4745{ /* if not "format(...)", then issue warning */
4746 if (strcmp (IDENTIFIER_POINTER (yyvsp[-7].ttype), "format") != 0
4747 || TREE_CODE (yyvsp[-3].ttype) != INTEGER_CST
4748 || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
4749 {
4750 warning ("`%s' attribute directive ignored",
4751 IDENTIFIER_POINTER (yyvsp[-7].ttype));
4752 yyval.ttype = yyvsp[-7].ttype;
4753 }
4754 else
4755 yyval.ttype = tree_cons (yyvsp[-7].ttype, tree_cons (yyvsp[-5].ttype, tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE), NULL_TREE), NULL_TREE); ;
4756 break;}
4757case 310:
4758#line 1940 "cp-parse.y"
4759{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4760 break;}
4761case 311:
4762#line 1942 "cp-parse.y"
4763{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4764 break;}
4765case 313:
4766#line 1948 "cp-parse.y"
4767{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
4768 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1;
4769 if (pedantic)
4770 pedwarn ("ANSI C++ forbids empty initializer braces"); ;
4771 break;}
4772case 314:
4773#line 1953 "cp-parse.y"
4774{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
4775 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
4776 break;}
4777case 315:
4778#line 1956 "cp-parse.y"
4779{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
4780 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
4781 break;}
4782case 316:
4783#line 1959 "cp-parse.y"
4784{ yyval.ttype = NULL_TREE; ;
4785 break;}
4786case 317:
4787#line 1966 "cp-parse.y"
4788{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
4789 break;}
4790case 318:
4791#line 1968 "cp-parse.y"
4792{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
4793 break;}
4794case 319:
4795#line 1971 "cp-parse.y"
4796{ yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4797 break;}
4798case 320:
4799#line 1973 "cp-parse.y"
4800{ yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
4801 break;}
4802case 321:
4803#line 1975 "cp-parse.y"
4804{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ;
4805 break;}
4806case 322:
4807#line 1977 "cp-parse.y"
4808{ yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
4809 break;}
4810case 323:
4811#line 1982 "cp-parse.y"
4812{ yyvsp[0].itype = suspend_momentary ();
4813 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
4814 break;}
4815case 324:
4816#line 1985 "cp-parse.y"
4817{ yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
4818 resume_momentary ((int) yyvsp[-4].itype);
4819 check_for_missing_semicolon (yyvsp[-3].ttype); ;
4820 break;}
4821case 325:
4822#line 1989 "cp-parse.y"
4823{ yyval.ttype = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
4824 check_for_missing_semicolon (yyval.ttype); ;
4825 break;}
4826case 326:
4827#line 1992 "cp-parse.y"
4828{ yyvsp[0].itype = suspend_momentary ();
4829 yyval.ttype = start_enum (make_anon_name ()); ;
4830 break;}
4831case 327:
4832#line 1995 "cp-parse.y"
4833{ yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
4834 resume_momentary ((int) yyvsp[-5].itype);
4835 check_for_missing_semicolon (yyvsp[-3].ttype); ;
4836 break;}
4837case 328:
4838#line 1999 "cp-parse.y"
4839{ yyval.ttype = finish_enum (start_enum (make_anon_name()), NULL_TREE);
4840 check_for_missing_semicolon (yyval.ttype); ;
4841 break;}
4842case 329:
4843#line 2002 "cp-parse.y"
4844{ yyval.ttype = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE); ;
4845 break;}
4846case 330:
4847#line 2006 "cp-parse.y"
4848{
4849 int semi;
4850 tree id;
4851
4852#if 0
4853 /* Need to rework class nesting in the
4854 presence of nested classes, etc. */
4855 shadow_tag (CLASSTYPE_AS_LIST (yyval.ttype)); */
4856#endif
4857 if (yychar == YYEMPTY)
4858 yychar = YYLEX;
4859 semi = yychar == ';';
4860 /* finish_struct nukes this anyway; if
4861 finish_exception does too, then it can go. */
4862 if (semi)
4863 note_got_semicolon (yyval.ttype);
4864
4865 if (TREE_CODE (yyval.ttype) == ENUMERAL_TYPE)
4866 /* $$ = $1 from default rule. */;
4867 else if (CLASSTYPE_DECLARED_EXCEPTION (yyval.ttype))
4868 {
4869 if (! semi)
4870 yyval.ttype = finish_exception (yyval.ttype, yyvsp[-1].ttype);
4871 else
4872 warning ("empty exception declaration\n");
4873 }
4874 else
4875 {
4876 yyval.ttype = finish_struct (yyval.ttype, yyvsp[-1].ttype, semi);
4877 if (semi) note_got_semicolon (yyval.ttype);
4878 }
4879
4880 pop_obstacks ();
4881
4882 id = TYPE_IDENTIFIER (yyval.ttype);
4883 if (IDENTIFIER_TEMPLATE (id))
4884 {
4885 tree decl;
4886
4887 /* I don't know if the copying of this TYPE_DECL is
4888 * really needed. However, it's such a small per-
4889 * formance penalty that the extra safety is a bargain.
4890 * - niklas@appli.se
4891 */
4892 push_obstacks (&permanent_obstack, &permanent_obstack);
4893 decl = copy_node (lookup_name (id, 0));
4894 if (DECL_LANG_SPECIFIC (decl))
4895 copy_lang_decl (decl);
4896 pop_obstacks ();
4897 undo_template_name_overload (id, 0);
4898 pushdecl_top_level (decl);
4899 }
4900 if (! semi)
4901 check_for_missing_semicolon (yyval.ttype); ;
4902 break;}
4903case 331:
4904#line 2061 "cp-parse.y"
4905{
4906#if 0
4907 /* It's no longer clear what the following error is supposed to
4908 accomplish. If it turns out to be needed, add a comment why. */
4909 if (TYPE_BINFO_BASETYPES (yyval.ttype) && !TYPE_SIZE (yyval.ttype))
4910 {
4911 error ("incomplete definition of type `%s'",
4912 TYPE_NAME_STRING (yyval.ttype));
4913 yyval.ttype = error_mark_node;
4914 }
4915#endif
4916 ;
4917 break;}
4918case 335:
4919#line 2083 "cp-parse.y"
4920{ if (pedantic)
4921 pedwarn ("ANSI C++ forbids comma at end of enumerator list"); ;
4922 break;}
4923case 337:
4924#line 2089 "cp-parse.y"
4925{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4926 break;}
4927case 338:
4928#line 2091 "cp-parse.y"
4929{ yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4930 break;}
4931case 339:
4932#line 2093 "cp-parse.y"
4933{ error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
4934 ;
4935 break;}
4936case 340:
4937#line 2096 "cp-parse.y"
4938{ error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
4939 ;
4940 break;}
4941case 341:
4942#line 2099 "cp-parse.y"
4943{ error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
4944 ;
4945 break;}
4946case 342:
4947#line 2102 "cp-parse.y"
4948{ error ("no body nor ';' separates two class, struct or union declarations");
4949 ;
4950 break;}
4951case 343:
4952#line 2108 "cp-parse.y"
4953{ aggr1: current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
4954 break;}
4955case 344:
4956#line 2110 "cp-parse.y"
4957{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
4958 break;}
4959case 345:
4960#line 2112 "cp-parse.y"
4961{ yyungetc (':', 1); goto aggr1; ;
4962 break;}
4963case 346:
4964#line 2114 "cp-parse.y"
4965{ yyungetc ('{', 1);
4966 aggr2:
4967 current_aggr = yyval.ttype;
4968 yyval.ttype = yyvsp[-1].ttype;
4969 overload_template_name (yyval.ttype, 0); ;
4970 break;}
4971case 347:
4972#line 2120 "cp-parse.y"
4973{ yyungetc (':', 1); goto aggr2; ;
4974 break;}
4975case 348:
4976#line 2125 "cp-parse.y"
4977{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
4978 break;}
4979case 349:
4980#line 2130 "cp-parse.y"
4981{
4982 yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE);
4983 ;
4984 break;}
4985case 350:
4986#line 2134 "cp-parse.y"
4987{
4988 if (yyvsp[0].ttype)
4989 yyval.ttype = xref_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype);
4990 else
4991 yyval.ttype = yyvsp[-1].ttype;
4992 ;
4993 break;}
4994case 351:
4995#line 2142 "cp-parse.y"
4996{
4997 yyval.ttype = xref_defn_tag (current_aggr, yyvsp[0].ttype, NULL_TREE);
4998 ;
4999 break;}
5000case 352:
5001#line 2146 "cp-parse.y"
5002{
5003 if (yyvsp[0].ttype)
5004 yyval.ttype = xref_defn_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype);
5005 else
5006 yyval.ttype = yyvsp[-1].ttype;
5007 ;
5008 break;}
5009case 353:
5010#line 2155 "cp-parse.y"
5011{ yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE);
5012 yyungetc ('{', 1); ;
5013 break;}
5014case 356:
5015#line 2163 "cp-parse.y"
5016{ yyval.ttype = NULL_TREE; ;
5017 break;}
5018case 357:
5019#line 2165 "cp-parse.y"
5020{ yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
5021 break;}
5022case 358:
5023#line 2167 "cp-parse.y"
5024{ yyval.ttype = yyvsp[0].ttype; ;
5025 break;}
5026case 360:
5027#line 2173 "cp-parse.y"
5028{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5029 break;}
5030case 361:
5031#line 2178 "cp-parse.y"
5032{ if (! is_aggr_typedef (yyval.ttype, 1))
5033 yyval.ttype = NULL_TREE;
5034 else yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
5035 break;}
5036case 362:
5037#line 2182 "cp-parse.y"
5038{ if (! is_aggr_typedef (yyval.ttype, 1))
5039 yyval.ttype = NULL_TREE;
5040 else yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
5041 break;}
5042case 363:
5043#line 2186 "cp-parse.y"
5044{ if (! is_aggr_typedef (yyvsp[0].ttype, 1))
5045 yyval.ttype = NULL_TREE;
5046 else yyval.ttype = build_tree_list ((tree) yyval.ttype, yyvsp[0].ttype); ;
5047 break;}
5048case 364:
5049#line 2190 "cp-parse.y"
5050{ if (! is_aggr_typedef (yyvsp[0].ttype, 1))
5051 yyval.ttype = NULL_TREE;
5052 else yyval.ttype = build_tree_list ((tree) yyval.ttype, yyvsp[0].ttype); ;
5053 break;}
5054case 365:
5055#line 2197 "cp-parse.y"
5056{
5057 /* Kludge!!! See rule "template_type" and the code
5058 * dealing with "template_type_seen_before_scope" in
5059 * yylex(). */
5060 yyval.ttype = yyvsp[0].ttype;
5061 ;
5062 break;}
5063case 366:
5064#line 2206 "cp-parse.y"
5065{
5066 extern tree template_type_seen_before_scope;
5067 tree id = yyvsp[0].ttype ? TYPE_IDENTIFIER (yyvsp[0].ttype) : yyvsp[-2].ttype;
5068
5069 /* Check the rule template_type to get this... */
5070 if (yychar == YYEMPTY)
5071 yychar = YYLEX;
5072 if (yychar == SCOPE) {
5073 template_type_seen_before_scope = id;
5074 yychar = YYLEX;
5075 }
5076 ;
5077 break;}
5078case 369:
5079#line 2224 "cp-parse.y"
5080{ if (yyval.ttype != ridpointers[(int)RID_VIRTUAL])
5081 sorry ("non-virtual visibility");
5082 yyval.itype = visibility_default_virtual; ;
5083 break;}
5084case 370:
5085#line 2228 "cp-parse.y"
5086{ int err = 0;
5087 if (yyvsp[0].itype == visibility_protected)
5088 {
5089 warning ("`protected' visibility not implemented");
5090 yyvsp[0].itype = visibility_public;
5091 err++;
5092 }
5093 else if (yyvsp[0].itype == visibility_public)
5094 {
5095 if (yyvsp[-1].itype == visibility_private)
5096 {
5097 mixed:
5098 error ("base class cannot be public and private");
5099 }
5100 else if (yyvsp[-1].itype == visibility_default_virtual)
5101 yyval.itype = visibility_public_virtual;
5102 }
5103 else /* $2 == visibility_private */
5104 {
5105 if (yyvsp[-1].itype == visibility_public)
5106 goto mixed;
5107 else if (yyvsp[-1].itype == visibility_default_virtual)
5108 yyval.itype = visibility_private_virtual;
5109 }
5110 ;
5111 break;}
5112case 371:
5113#line 2254 "cp-parse.y"
5114{ if (yyvsp[0].ttype != ridpointers[(int)RID_VIRTUAL])
5115 sorry ("non-virtual visibility");
5116 if (yyval.itype == visibility_public)
5117 yyval.itype = visibility_public_virtual;
5118 else if (yyval.itype == visibility_private)
5119 yyval.itype = visibility_private_virtual; ;
5120 break;}
5121case 372:
5122#line 2263 "cp-parse.y"
5123{ tree t;
5124 push_obstacks_nochange ();
5125 end_temporary_allocation ();
5126
5127 if (! IS_AGGR_TYPE (yyvsp[-1].ttype))
5128 {
5129 yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
5130 TYPE_NAME (yyvsp[-1].ttype) = get_identifier ("erroneous type");
5131 }
5132 if (TYPE_SIZE (yyvsp[-1].ttype))
5133 duplicate_tag_error (yyvsp[-1].ttype);
5134 if (TYPE_SIZE (yyvsp[-1].ttype) || TYPE_BEING_DEFINED (yyvsp[-1].ttype))
5135 {
5136 t = make_lang_type (TREE_CODE (yyvsp[-1].ttype));
5137 pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t);
5138 yyvsp[-1].ttype = t;
5139 }
5140 pushclass (yyvsp[-1].ttype, 0);
5141 TYPE_BEING_DEFINED (yyvsp[-1].ttype) = 1;
5142 t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
5143 if (IDENTIFIER_TEMPLATE (t))
5144 overload_template_name (t, 1);
5145 ;
5146 break;}
5147case 373:
5148#line 2290 "cp-parse.y"
5149{ yyval.ttype = NULL_TREE; ;
5150 break;}
5151case 374:
5152#line 2292 "cp-parse.y"
5153{ yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
5154 break;}
5155case 375:
5156#line 2294 "cp-parse.y"
5157{ yyval.ttype = chainon (yyval.ttype, build_tree_list ((tree) yyvsp[-2].itype, yyvsp[0].ttype)); ;
5158 break;}
5159case 377:
5160#line 2300 "cp-parse.y"
5161{ if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; ;
5162 break;}
5163case 378:
5164#line 2302 "cp-parse.y"
5165{ if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
5166 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5167 break;}
5168case 379:
5169#line 2305 "cp-parse.y"
5170{ if (pedantic)
5171 pedwarn ("ANSI C++ forbids extra semicolons here"); ;
5172 break;}
5173case 380:
5174#line 2311 "cp-parse.y"
5175{
5176 do_components:
5177 if (yyvsp[-1].ttype == void_type_node)
5178 /* We just got some friends.
5179 They have been recorded elsewhere. */
5180 yyval.ttype = NULL_TREE;
5181 else if (yyvsp[-1].ttype == NULL_TREE)
5182 {
5183 tree t = groktypename (build_decl_list (yyval.ttype, NULL_TREE));
5184 if (t == NULL_TREE)
5185 {
5186 error ("error in component specification");
5187 yyval.ttype = NULL_TREE;
5188 }
5189 else if (TREE_CODE (t) == UNION_TYPE)
5190 {
5191 /* handle anonymous unions */
5192 if (ANON_AGGRNAME_P (TYPE_IDENTIFIER (t)))
5193 yyval.ttype = build_lang_field_decl (FIELD_DECL,
5194 NULL_TREE, t);
5195 else
5196 {
5197 /* This is a local union decl with a name, but
5198 no components, I think this is the right thing
5199 to do. (mrs) */
5200#if 0
5201 /* I copied this from below, it is probably
5202 needed, but I cannot prove that to myself
5203 right now, but if you find it is needed
5204 please turn it on. (mrs) */
5205 if (TYPE_LANG_SPECIFIC (t)
5206 && CLASSTYPE_DECLARED_EXCEPTION (t))
5207 shadow_tag (yyval.ttype);
5208#endif
5209 yyval.ttype = NULL_TREE;
5210 }
5211 }
5212 else if (TREE_CODE (t) == ENUMERAL_TYPE)
5213 yyval.ttype = grok_enum_decls (t, NULL_TREE);
5214 else if (TREE_CODE (t) == RECORD_TYPE)
5215 {
5216 if (TYPE_LANG_SPECIFIC (t)
5217 && CLASSTYPE_DECLARED_EXCEPTION (t))
5218 shadow_tag (yyval.ttype);
5219 yyval.ttype = NULL_TREE;
5220 }
5221 else if (t != void_type_node)
5222 {
5223 error ("empty component declaration");
5224 yyval.ttype = NULL_TREE;
5225 }
5226 else yyval.ttype = NULL_TREE;
5227 }
5228 else
5229 {
5230 tree t = TREE_TYPE (yyvsp[-1].ttype);
5231 if (TREE_CODE (t) == ENUMERAL_TYPE && TREE_NONLOCAL_FLAG (t))
5232 yyval.ttype = grok_enum_decls (t, yyvsp[-1].ttype);
5233 else
5234 yyval.ttype = yyvsp[-1].ttype;
5235 }
5236 end_exception_decls ();
5237 ;
5238 break;}
5239case 381:
5240#line 2375 "cp-parse.y"
5241{ yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
5242 break;}
5243case 382:
5244#line 2377 "cp-parse.y"
5245{ error ("missing ';' before right brace");
5246 yyungetc ('}', 0);
5247 yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
5248 break;}
5249case 383:
5250#line 2381 "cp-parse.y"
5251{ yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
5252 break;}
5253case 384:
5254#line 2383 "cp-parse.y"
5255{ error ("missing ';' before right brace");
5256 yyungetc ('}', 0);
5257 yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
5258 break;}
5259case 385:
5260#line 2387 "cp-parse.y"
5261{ goto do_components; ;
5262 break;}
5263case 386:
5264#line 2390 "cp-parse.y"
5265{ yyval.ttype = grokfield (yyvsp[-1].ttype, yyval.ttype,
5266 NULL_TREE, NULL_TREE, NULL_TREE); ;
5267 break;}
5268case 387:
5269#line 2393 "cp-parse.y"
5270{ error ("missing ';' before right brace");
5271 yyungetc ('}', 0);
5272 goto do_components; ;
5273 break;}
5274case 388:
5275#line 2397 "cp-parse.y"
5276{ yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
5277 break;}
5278case 389:
5279#line 2399 "cp-parse.y"
5280{ error ("missing ';' before right brace");
5281 yyungetc ('}', 0);
5282 yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
5283 break;}
5284case 390:
5285#line 2403 "cp-parse.y"
5286{ yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
5287 break;}
5288case 391:
5289#line 2405 "cp-parse.y"
5290{ error ("missing ';' before right brace");
5291 yyungetc ('}', 0);
5292 yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
5293 break;}
5294case 392:
5295#line 2409 "cp-parse.y"
5296{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
5297 break;}
5298case 393:
5299#line 2411 "cp-parse.y"
5300{ error ("missing ';' before right brace");
5301 yyungetc ('}', 0);
5302 yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
5303 break;}
5304case 394:
5305#line 2415 "cp-parse.y"
5306{ yyval.ttype = NULL_TREE; ;
5307 break;}
5308case 395:
5309#line 2420 "cp-parse.y"
5310{ yyval.ttype = finish_method (yyval.ttype); ;
5311 break;}
5312case 396:
5313#line 2422 "cp-parse.y"
5314{ yyval.ttype = finish_method (yyval.ttype); ;
5315 break;}
5316case 397:
5317#line 2424 "cp-parse.y"
5318{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
5319 break;}
5320case 398:
5321#line 2426 "cp-parse.y"
5322{ error ("missing ';' before right brace");
5323 yyungetc ('}', 0);
5324 yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
5325 break;}
5326case 399:
5327#line 2433 "cp-parse.y"
5328{ yyval.ttype = NULL_TREE; ;
5329 break;}
5330case 401:
5331#line 2436 "cp-parse.y"
5332{
5333 /* In this context, void_type_node encodes
5334 friends. They have been recorded elsewhere. */
5335 if (yyval.ttype == void_type_node)
5336 yyval.ttype = yyvsp[0].ttype;
5337 else
5338 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
5339 ;
5340 break;}
5341case 402:
5342#line 2448 "cp-parse.y"
5343{ current_declspecs = yyvsp[-4].ttype;
5344 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
5345 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
5346 break;}
5347case 403:
5348#line 2452 "cp-parse.y"
5349{ current_declspecs = yyvsp[-6].ttype;
5350 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-4].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
5351 cplus_decl_attributes (yyval.ttype, yyvsp[-2].ttype); ;
5352 break;}
5353case 404:
5354#line 2456 "cp-parse.y"
5355{ current_declspecs = yyvsp[-4].ttype;
5356 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
5357 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
5358 break;}
5359case 405:
5360#line 2460 "cp-parse.y"
5361{ current_declspecs = yyvsp[-3].ttype;
5362 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
5363 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
5364 break;}
5365case 406:
5366#line 2464 "cp-parse.y"
5367{ current_declspecs = yyvsp[-2].ttype;
5368 yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
5369 break;}
5370case 407:
5371#line 2470 "cp-parse.y"
5372{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
5373 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
5374 break;}
5375case 408:
5376#line 2473 "cp-parse.y"
5377{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-4].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
5378 cplus_decl_attributes (yyval.ttype, yyvsp[-2].ttype); ;
5379 break;}
5380case 409:
5381#line 2476 "cp-parse.y"
5382{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
5383 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
5384 break;}
5385case 410:
5386#line 2479 "cp-parse.y"
5387{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
5388 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
5389 break;}
5390case 411:
5391#line 2482 "cp-parse.y"
5392{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
5393 break;}
5394case 413:
5395#line 2492 "cp-parse.y"
5396{ TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
5397 break;}
5398case 414:
5399#line 2497 "cp-parse.y"
5400{ yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
5401 break;}
5402case 415:
5403#line 2499 "cp-parse.y"
5404{ yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
5405 break;}
5406case 416:
5407#line 2504 "cp-parse.y"
5408{ yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
5409 break;}
5410case 417:
5411#line 2506 "cp-parse.y"
5412{ yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
5413 break;}
5414case 418:
5415#line 2511 "cp-parse.y"
5416{ yyval.ttype = NULL_TREE; ;
5417 break;}
5418case 420:
5419#line 2514 "cp-parse.y"
5420{ yyval.ttype = yyvsp[0].ttype; ;
5421 break;}
5422case 421:
5423#line 2519 "cp-parse.y"
5424{ yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
5425 break;}
5426case 422:
5427#line 2521 "cp-parse.y"
5428{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5429 break;}
5430case 423:
5431#line 2526 "cp-parse.y"
5432{ yyval.ttype = NULL_TREE; ;
5433 break;}
5434case 424:
5435#line 2528 "cp-parse.y"
5436{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5437 break;}
5438case 425:
5439#line 2536 "cp-parse.y"
5440{ yyval.itype = suspend_momentary (); ;
5441 break;}
5442case 426:
5443#line 2537 "cp-parse.y"
5444{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
5445 break;}
5446case 427:
5447#line 2543 "cp-parse.y"
5448{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5449 break;}
5450case 428:
5451#line 2545 "cp-parse.y"
5452{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5453 break;}
5454case 429:
5455#line 2547 "cp-parse.y"
5456{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
5457 break;}
5458case 430:
5459#line 2549 "cp-parse.y"
5460{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
5461 break;}
5462case 431:
5463#line 2551 "cp-parse.y"
5464{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
5465 break;}
5466case 432:
5467#line 2553 "cp-parse.y"
5468{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
5469 break;}
5470case 433:
5471#line 2555 "cp-parse.y"
5472{ yyval.ttype = yyvsp[-1].ttype; ;
5473 break;}
5474case 434:
5475#line 2557 "cp-parse.y"
5476{ yyval.ttype = make_pointer_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5477 break;}
5478case 435:
5479#line 2559 "cp-parse.y"
5480{ see_typename (); ;
5481 break;}
5482case 437:
5483#line 2562 "cp-parse.y"
5484{ yyval.ttype = make_reference_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5485 break;}
5486case 438:
5487#line 2564 "cp-parse.y"
5488{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5489 break;}
5490case 439:
5491#line 2566 "cp-parse.y"
5492{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5493 break;}
5494case 441:
5495#line 2572 "cp-parse.y"
5496{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5497 break;}
5498case 442:
5499#line 2574 "cp-parse.y"
5500{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5501 break;}
5502case 443:
5503#line 2576 "cp-parse.y"
5504{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
5505 break;}
5506case 444:
5507#line 2578 "cp-parse.y"
5508{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
5509 break;}
5510case 445:
5511#line 2580 "cp-parse.y"
5512{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
5513 break;}
5514case 446:
5515#line 2582 "cp-parse.y"
5516{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
5517 break;}
5518case 447:
5519#line 2584 "cp-parse.y"
5520{ yyval.ttype = yyvsp[-1].ttype; ;
5521 break;}
5522case 448:
5523#line 2586 "cp-parse.y"
5524{ see_typename (); ;
5525 break;}
5526case 450:
5527#line 2589 "cp-parse.y"
5528{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5529 break;}
5530case 451:
5531#line 2591 "cp-parse.y"
5532{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5533 break;}
5534case 452:
5535#line 2599 "cp-parse.y"
5536{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5537 break;}
5538case 453:
5539#line 2601 "cp-parse.y"
5540{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5541 break;}
5542case 454:
5543#line 2603 "cp-parse.y"
5544{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
5545 break;}
5546case 455:
5547#line 2605 "cp-parse.y"
5548{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
5549 break;}
5550case 456:
5551#line 2607 "cp-parse.y"
5552{ yyval.ttype = yyvsp[-1].ttype; ;
5553 break;}
5554case 457:
5555#line 2609 "cp-parse.y"
5556{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5557 break;}
5558case 458:
5559#line 2611 "cp-parse.y"
5560{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5561 break;}
5562case 459:
5563#line 2613 "cp-parse.y"
5564{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
5565 break;}
5566case 460:
5567#line 2615 "cp-parse.y"
5568{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
5569 break;}
5570case 461:
5571#line 2617 "cp-parse.y"
5572{ see_typename (); ;
5573 break;}
5574case 462:
5575#line 2621 "cp-parse.y"
5576{ see_typename (); ;
5577 break;}
5578case 463:
5579#line 2624 "cp-parse.y"
5580{
5581 destructor_name:
5582 see_typename ();
5583 yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype);
5584 ;
5585 break;}
5586case 464:
5587#line 2630 "cp-parse.y"
5588{ goto destructor_name; ;
5589 break;}
5590case 465:
5591#line 2632 "cp-parse.y"
5592{ goto destructor_name; ;
5593 break;}
5594case 466:
5595#line 2634 "cp-parse.y"
5596{ see_typename ();
5597 if (TREE_CODE (yyval.ttype) != SCOPE_REF)
5598 yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype);
5599 else if (TREE_OPERAND (yyval.ttype, 1) == NULL_TREE)
5600 TREE_OPERAND (yyval.ttype, 1) = yyvsp[0].ttype;
5601 else
5602 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
5603 ;
5604 break;}
5605case 467:
5606#line 2643 "cp-parse.y"
5607{ yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ;
5608 break;}
5609case 468:
5610#line 2645 "cp-parse.y"
5611{ yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
5612 break;}
5613case 469:
5614#line 2647 "cp-parse.y"
5615{ yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
5616 break;}
5617case 470:
5618#line 2649 "cp-parse.y"
5619{ yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
5620 break;}
5621case 471:
5622#line 2651 "cp-parse.y"
5623{ yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
5624 break;}
5625case 472:
5626#line 2654 "cp-parse.y"
5627{ yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ;
5628 break;}
5629case 473:
5630#line 2656 "cp-parse.y"
5631{ yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
5632 break;}
5633case 474:
5634#line 2658 "cp-parse.y"
5635{ yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
5636 break;}
5637case 475:
5638#line 2660 "cp-parse.y"
5639{ yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
5640 break;}
5641case 476:
5642#line 2662 "cp-parse.y"
5643{ yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
5644 break;}
5645case 477:
5646#line 2664 "cp-parse.y"
5647{ yyval.ttype = build_parse_node (SCOPE_REF, NULL_TREE, yyvsp[0].ttype); ;
5648 break;}
5649case 478:
5650#line 2668 "cp-parse.y"
5651{ yyval.ttype = resolve_scope_to_name (NULL_TREE, yyval.ttype);
5652 if (yyval.ttype == NULL_TREE)
5653 {
5654 error ("undefined explicitly scoped type");
5655 yyval.ttype = error_mark_node;
5656 }
5657 ;
5658 break;}
5659case 479:
5660#line 2676 "cp-parse.y"
5661{
5662 if (yyval.ttype == error_mark_node)
5663 /* leave it alone */;
5664 else
5665 {
5666 yyval.ttype = resolve_scope_to_name (NULL_TREE, TYPE_IDENTIFIER (yyval.ttype));
5667 if (yyval.ttype == NULL_TREE)
5668 {
5669 error ("undefined explicitly scoped type");
5670 yyval.ttype = error_mark_node;
5671 }
5672 }
5673/* if ($3) popclass (1); */
5674 ;
5675 break;}
5676case 482:
5677#line 2697 "cp-parse.y"
5678{
5679 /* Kludge!!! See rule "template_type" and the code
5680 * dealing with "template_type_seen_before_scope" in
5681 * yylex(). */
5682 yyval.ttype = yyvsp[0].ttype;
5683 ;
5684 break;}
5685case 483:
5686#line 2719 "cp-parse.y"
5687{ see_typename ();
5688 yyval.ttype = yyvsp[-1].ttype; ;
5689 break;}
5690case 484:
5691#line 2723 "cp-parse.y"
5692{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5693 break;}
5694case 485:
5695#line 2725 "cp-parse.y"
5696{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
5697 break;}
5698case 486:
5699#line 2727 "cp-parse.y"
5700{ see_typename (); ;
5701 break;}
5702case 487:
5703#line 2729 "cp-parse.y"
5704{ yyval.ttype = yyvsp[-1].ttype; ;
5705 break;}
5706case 488:
5707#line 2731 "cp-parse.y"
5708{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5709 break;}
5710case 489:
5711#line 2733 "cp-parse.y"
5712{ yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
5713 break;}
5714case 490:
5715#line 2735 "cp-parse.y"
5716{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5717 break;}
5718case 491:
5719#line 2737 "cp-parse.y"
5720{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
5721 break;}
5722case 492:
5723#line 2739 "cp-parse.y"
5724{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
5725 break;}
5726case 493:
5727#line 2741 "cp-parse.y"
5728{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
5729 break;}
5730case 494:
5731#line 2743 "cp-parse.y"
5732{ yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5733 break;}
5734case 495:
5735#line 2745 "cp-parse.y"
5736{ yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, empty_parms (), yyvsp[0].ttype); ;
5737 break;}
5738case 496:
5739#line 2747 "cp-parse.y"
5740{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
5741 break;}
5742case 497:
5743#line 2749 "cp-parse.y"
5744{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
5745 break;}
5746case 498:
5747#line 2754 "cp-parse.y"
5748{ tree t;
5749 t = yyval.ttype;
5750 while (TREE_OPERAND (t, 1))
5751 t = TREE_OPERAND (t, 1);
5752 TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, 0);
5753 ;
5754 break;}
5755case 499:
5756#line 2761 "cp-parse.y"
5757{ tree t;
5758 t = yyval.ttype;
5759 while (TREE_OPERAND (t, 1))
5760 t = TREE_OPERAND (t, 1);
5761 TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype);
5762 ;
5763 break;}
5764case 500:
5765#line 2768 "cp-parse.y"
5766{ tree t;
5767 t = yyval.ttype;
5768 while (TREE_OPERAND (t, 1))
5769 t = TREE_OPERAND (t, 1);
5770 TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, 0);
5771 ;
5772 break;}
5773case 501:
5774#line 2775 "cp-parse.y"
5775{ tree t;
5776 t = yyval.ttype;
5777 while (TREE_OPERAND (t, 1))
5778 t = TREE_OPERAND (t, 1);
5779 TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype);
5780 ;
5781 break;}
5782case 502:
5783#line 2785 "cp-parse.y"
5784{ tree t;
5785 t = yyval.ttype;
5786 while (TREE_OPERAND (t, 1))
5787 t = TREE_OPERAND (t, 1);
5788 TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype);
5789 ;
5790 break;}
5791case 503:
5792#line 2792 "cp-parse.y"
5793{ tree t;
5794 t = yyval.ttype;
5795 while (TREE_OPERAND (t, 1))
5796 t = TREE_OPERAND (t, 1);
5797 TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype);
5798 ;
5799 break;}
5800case 509:
5801#line 2819 "cp-parse.y"
5802{ emit_line_note (input_filename, lineno);
5803 pushlevel (0);
5804 clear_last_expr ();
5805 push_momentary ();
5806 expand_start_bindings (0); ;
5807 break;}
5808case 511:
5809#line 2831 "cp-parse.y"
5810{ if (pedantic)
5811 pedwarn ("ANSI C++ forbids label declarations"); ;
5812 break;}
5813case 514:
5814#line 2842 "cp-parse.y"
5815{ tree link;
5816 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
5817 {
5818 tree label = shadow_label (TREE_VALUE (link));
5819 C_DECLARED_LABEL_FLAG (label) = 1;
5820 declare_nonlocal_label (label);
5821 }
5822 ;
5823 break;}
5824case 515:
5825#line 2856 "cp-parse.y"
5826{;
5827 break;}
5828case 517:
5829#line 2861 "cp-parse.y"
5830{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
5831 break;}
5832case 518:
5833#line 2863 "cp-parse.y"
5834{ pop_implicit_try_blocks (NULL_TREE);
5835 expand_end_bindings (getdecls (), kept_level_p (), 1);
5836 yyval.ttype = poplevel (kept_level_p (), 1, 0);
5837 pop_momentary (); ;
5838 break;}
5839case 519:
5840#line 2868 "cp-parse.y"
5841{ pop_implicit_try_blocks (NULL_TREE);
5842 expand_end_bindings (getdecls (), kept_level_p (), 1);
5843 yyval.ttype = poplevel (kept_level_p (), 0, 0);
5844 pop_momentary (); ;
5845 break;}
5846case 520:
5847#line 2876 "cp-parse.y"
5848{ cond_stmt_keyword = "if"; ;
5849 break;}
5850case 521:
5851#line 2878 "cp-parse.y"
5852{ emit_line_note (input_filename, lineno);
5853 expand_start_cond (truthvalue_conversion (yyvsp[0].ttype), 0); ;
5854 break;}
5855case 523:
5856#line 2885 "cp-parse.y"
5857{ finish_stmt (); ;
5858 break;}
5859case 524:
5860#line 2887 "cp-parse.y"
5861{ pop_implicit_try_blocks (NULL_TREE);
5862 expand_end_bindings (getdecls (), kept_level_p (), 1);
5863 yyval.ttype = poplevel (kept_level_p (), 1, 0);
5864 pop_momentary (); ;
5865 break;}
5866case 525:
5867#line 2895 "cp-parse.y"
5868{ finish_stmt (); ;
5869 break;}
5870case 527:
5871#line 2901 "cp-parse.y"
5872{ finish_stmt (); ;
5873 break;}
5874case 528:
5875#line 2903 "cp-parse.y"
5876{
5877 tree expr = yyvsp[-1].ttype;
5878 emit_line_note (input_filename, lineno);
5879 /* Do default conversion if safe and possibly important,
5880 in case within ({...}). */
5881 if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
5882 && lvalue_p (expr))
5883 || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
5884 expr = default_conversion (expr);
5885 cplus_expand_expr_stmt (expr);
5886 clear_momentary ();
5887 finish_stmt (); ;
5888 break;}
5889case 529:
5890#line 2916 "cp-parse.y"
5891{ expand_start_else (); ;
5892 break;}
5893case 530:
5894#line 2918 "cp-parse.y"
5895{ expand_end_cond ();
5896 finish_stmt (); ;
5897 break;}
5898case 531:
5899#line 2921 "cp-parse.y"
5900{ expand_end_cond ();
5901 finish_stmt (); ;
5902 break;}
5903case 532:
5904#line 2924 "cp-parse.y"
5905{ emit_nop ();
5906 emit_line_note (input_filename, lineno);
5907 expand_start_loop (1);
5908 cond_stmt_keyword = "while"; ;
5909 break;}
5910case 533:
5911#line 2929 "cp-parse.y"
5912{ expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[0].ttype)); ;
5913 break;}
5914case 534:
5915#line 2931 "cp-parse.y"
5916{ expand_end_loop ();
5917 finish_stmt (); ;
5918 break;}
5919case 535:
5920#line 2934 "cp-parse.y"
5921{ emit_nop ();
5922 emit_line_note (input_filename, lineno);
5923 expand_start_loop_continue_elsewhere (1); ;
5924 break;}
5925case 536:
5926#line 2938 "cp-parse.y"
5927{ expand_loop_continue_here ();
5928 cond_stmt_keyword = "do"; ;
5929 break;}
5930case 537:
5931#line 2941 "cp-parse.y"
5932{ emit_line_note (input_filename, lineno);
5933 expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype));
5934 expand_end_loop ();
5935 clear_momentary ();
5936 finish_stmt (); ;
5937 break;}
5938case 538:
5939#line 2947 "cp-parse.y"
5940{ emit_nop ();
5941 emit_line_note (input_filename, lineno);
5942 if (yyvsp[0].ttype) cplus_expand_expr_stmt (yyvsp[0].ttype);
5943 expand_start_loop_continue_elsewhere (1); ;
5944 break;}
5945case 539:
5946#line 2952 "cp-parse.y"
5947{ emit_line_note (input_filename, lineno);
5948 if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ;
5949 break;}
5950case 540:
5951#line 2957 "cp-parse.y"
5952{ push_momentary (); ;
5953 break;}
5954case 541:
5955#line 2959 "cp-parse.y"
5956{ emit_line_note (input_filename, lineno);
5957 expand_loop_continue_here ();
5958 if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
5959 pop_momentary ();
5960 expand_end_loop ();
5961 finish_stmt (); ;
5962 break;}
5963case 542:
5964#line 2966 "cp-parse.y"
5965{ emit_nop ();
5966 emit_line_note (input_filename, lineno);
5967 expand_start_loop_continue_elsewhere (1); ;
5968 break;}
5969case 543:
5970#line 2970 "cp-parse.y"
5971{ emit_line_note (input_filename, lineno);
5972 if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ;
5973 break;}
5974case 544:
5975#line 2975 "cp-parse.y"
5976{ push_momentary ();
5977 yyvsp[0].itype = lineno; ;
5978 break;}
5979case 545:
5980#line 2978 "cp-parse.y"
5981{ emit_line_note (input_filename, (int) yyvsp[-2].itype);
5982 expand_loop_continue_here ();
5983 if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
5984 pop_momentary ();
5985 expand_end_loop ();
5986 pop_implicit_try_blocks (NULL_TREE);
5987 if (yyvsp[-8].itype)
5988 {
5989 register int keep = yyvsp[-8].itype > 0;
5990 if (keep) expand_end_bindings (0, keep, 1);
5991 poplevel (keep, 1, 0);
5992 pop_momentary ();
5993 }
5994 finish_stmt ();
5995 ;
5996 break;}
5997case 546:
5998#line 2994 "cp-parse.y"
5999{ emit_line_note (input_filename, lineno);
6000 c_expand_start_case (yyvsp[-1].ttype);
6001 /* Don't let the tree nodes for $3 be discarded by
6002 clear_momentary during the parsing of the next stmt. */
6003 push_momentary (); ;
6004 break;}
6005case 547:
6006#line 3000 "cp-parse.y"
6007{ expand_end_case (yyvsp[-3].ttype);
6008 pop_momentary ();
6009 finish_stmt (); ;
6010 break;}
6011case 548:
6012#line 3004 "cp-parse.y"
6013{ register tree value = yyvsp[-1].ttype;
6014 register tree label
6015 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
6016
6017 /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
6018 Strip such NOP_EXPRs. */
6019 if (TREE_CODE (value) == NOP_EXPR
6020 && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
6021 value = TREE_OPERAND (value, 0);
6022
6023 if (TREE_READONLY_DECL_P (value))
6024 {
6025 value = decl_constant_value (value);
6026 /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
6027 Strip such NOP_EXPRs. */
6028 if (TREE_CODE (value) == NOP_EXPR
6029 && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
6030 value = TREE_OPERAND (value, 0);
6031 }
6032 value = fold (value);
6033
6034 if (TREE_CODE (value) != INTEGER_CST
6035 && value != error_mark_node)
6036 {
6037 error ("case label does not reduce to an integer constant");
6038 value = error_mark_node;
6039 }
6040 else
6041 /* Promote char or short to int. */
6042 value = default_conversion (value);
6043 if (value != error_mark_node)
6044 {
6045 tree duplicate;
6046 int success = pushcase (value, label, &duplicate);
6047 if (success == 1)
6048 error ("case label not within a switch statement");
6049 else if (success == 2)
6050 {
6051 error ("duplicate case value");
6052 error_with_decl (duplicate, "this is the first entry for that value");
6053 }
6054 else if (success == 3)
6055 warning ("case value out of range");
6056 else if (success == 5)
6057 error ("case label within scope of cleanup or variable array");
6058 }
6059 define_case_label (label);
6060 ;
6061 break;}
6062case 550:
6063#line 3054 "cp-parse.y"
6064{ register tree value1 = yyvsp[-3].ttype;
6065 register tree value2 = yyvsp[-1].ttype;
6066 register tree label
6067 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
6068
6069 if (pedantic)
6070 pedwarn ("ANSI C++ forbids range expressions in switch statement");
6071
6072 /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
6073 Strip such NOP_EXPRs. */
6074 if (TREE_CODE (value1) == NOP_EXPR
6075 && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
6076 value1 = TREE_OPERAND (value1, 0);
6077
6078 if (TREE_READONLY_DECL_P (value1))
6079 {
6080 value1 = decl_constant_value (value1);
6081 /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
6082 Strip such NOP_EXPRs. */
6083 if (TREE_CODE (value1) == NOP_EXPR
6084 && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
6085 value1 = TREE_OPERAND (value1, 0);
6086 }
6087 value1 = fold (value1);
6088
6089 /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
6090 Strip such NOP_EXPRs. */
6091 if (TREE_CODE (value2) == NOP_EXPR
6092 && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
6093 value2 = TREE_OPERAND (value2, 0);
6094
6095 if (TREE_READONLY_DECL_P (value2))
6096 {
6097 value2 = decl_constant_value (value2);
6098 /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
6099 Strip such NOP_EXPRs. */
6100 if (TREE_CODE (value2) == NOP_EXPR
6101 && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
6102 value2 = TREE_OPERAND (value2, 0);
6103 }
6104 value2 = fold (value2);
6105
6106
6107 if (TREE_CODE (value1) != INTEGER_CST
6108 && value1 != error_mark_node)
6109 {
6110 error ("case label does not reduce to an integer constant");
6111 value1 = error_mark_node;
6112 }
6113 if (TREE_CODE (value2) != INTEGER_CST
6114 && value2 != error_mark_node)
6115 {
6116 error ("case label does not reduce to an integer constant");
6117 value2 = error_mark_node;
6118 }
6119 if (value1 != error_mark_node
6120 && value2 != error_mark_node)
6121 {
6122 tree duplicate;
6123 int success = pushcase_range (value1, value2, label,
6124 &duplicate);
6125 if (success == 1)
6126 error ("case label not within a switch statement");
6127 else if (success == 2)
6128 {
6129 error ("duplicate (or overlapping) case value");
6130 error_with_decl (duplicate, "this is the first entry overlapping that value");
6131 }
6132 else if (success == 3)
6133 warning ("case value out of range");
6134 else if (success == 4)
6135 warning ("empty range specified");
6136 else if (success == 5)
6137 error ("case label within scope of cleanup or variable array");
6138 }
6139 define_case_label (label);
6140 ;
6141 break;}
6142case 552:
6143#line 3133 "cp-parse.y"
6144{
6145 tree duplicate;
6146 register tree label
6147 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
6148 int success = pushcase (NULL_TREE, label, &duplicate);
6149 if (success == 1)
6150 error ("default label not within a switch statement");
6151 else if (success == 2)
6152 {
6153 error ("multiple default labels in one switch");
6154 error_with_decl (duplicate, "this is the first default label");
6155 }
6156 define_case_label (NULL_TREE);
6157 ;
6158 break;}
6159case 554:
6160#line 3149 "cp-parse.y"
6161{ emit_line_note (input_filename, lineno);
6162 if ( ! expand_exit_something ())
6163 error ("break statement not within loop or switch"); ;
6164 break;}
6165case 555:
6166#line 3153 "cp-parse.y"
6167{ emit_line_note (input_filename, lineno);
6168 if (! expand_continue_loop (0))
6169 error ("continue statement not within a loop"); ;
6170 break;}
6171case 556:
6172#line 3157 "cp-parse.y"
6173{ emit_line_note (input_filename, lineno);
6174 c_expand_return (NULL_TREE); ;
6175 break;}
6176case 557:
6177#line 3160 "cp-parse.y"
6178{ emit_line_note (input_filename, lineno);
6179 c_expand_return (yyvsp[-1].ttype);
6180 finish_stmt ();
6181 ;
6182 break;}
6183case 558:
6184#line 3165 "cp-parse.y"
6185{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
6186 emit_line_note (input_filename, lineno);
6187 expand_asm (yyvsp[-2].ttype);
6188 finish_stmt ();
6189 ;
6190 break;}
6191case 559:
6192#line 3172 "cp-parse.y"
6193{ if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
6194 emit_line_note (input_filename, lineno);
6195 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
6196 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
6197 input_filename, lineno);
6198 finish_stmt ();
6199 ;
6200 break;}
6201case 560:
6202#line 3181 "cp-parse.y"
6203{ if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
6204 emit_line_note (input_filename, lineno);
6205 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
6206 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
6207 input_filename, lineno);
6208 finish_stmt ();
6209 ;
6210 break;}
6211case 561:
6212#line 3191 "cp-parse.y"
6213{ if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
6214 emit_line_note (input_filename, lineno);
6215 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
6216 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
6217 input_filename, lineno);
6218 finish_stmt ();
6219 ;
6220 break;}
6221case 562:
6222#line 3199 "cp-parse.y"
6223{ emit_line_note (input_filename, lineno);
6224 expand_computed_goto (yyvsp[-1].ttype); ;
6225 break;}
6226case 563:
6227#line 3202 "cp-parse.y"
6228{ tree decl;
6229 emit_line_note (input_filename, lineno);
6230 decl = lookup_label (yyvsp[-1].ttype);
6231 TREE_USED (decl) = 1;
6232 expand_goto (decl); ;
6233 break;}
6234case 564:
6235#line 3208 "cp-parse.y"
6236{ finish_stmt (); ;
6237 break;}
6238case 565:
6239#line 3210 "cp-parse.y"
6240{ error ("label must be followed by statement");
6241 yyungetc ('}', 0);
6242 finish_stmt (); ;
6243 break;}
6244case 566:
6245#line 3214 "cp-parse.y"
6246{ finish_stmt (); ;
6247 break;}
6248case 567:
6249#line 3217 "cp-parse.y"
6250{ cplus_expand_throw (NULL_TREE); ;
6251 break;}
6252case 568:
6253#line 3218 "cp-parse.y"
6254{ cplus_expand_throw (yyvsp[-1].ttype); ;
6255 break;}
6256case 569:
6257#line 3220 "cp-parse.y"
6258{ cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0);
6259 finish_stmt (); ;
6260 break;}
6261case 570:
6262#line 3223 "cp-parse.y"
6263{ cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0);
6264 finish_stmt (); ;
6265 break;}
6266case 571:
6267#line 3226 "cp-parse.y"
6268{ cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0);
6269 finish_stmt (); ;
6270 break;}
6271case 572:
6272#line 3229 "cp-parse.y"
6273{ cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0);
6274 finish_stmt (); ;
6275 break;}
6276case 573:
6277#line 3232 "cp-parse.y"
6278{ cplus_expand_reraise (yyvsp[-1].ttype);
6279 finish_stmt (); ;
6280 break;}
6281case 574:
6282#line 3235 "cp-parse.y"
6283{
6284 tree decl = cplus_expand_end_try (yyvsp[-3].itype);
6285 yyvsp[-2].ttype = current_exception_type;
6286 yyvsp[0].ttype = current_exception_decl;
6287 yyval.ttype = current_exception_object;
6288 cplus_expand_start_except (yyvsp[-1].ttype, decl);
6289 pushlevel (0);
6290 clear_last_expr ();
6291 push_momentary ();
6292 expand_start_bindings (0);
6293 ;
6294 break;}
6295case 575:
6296#line 3247 "cp-parse.y"
6297{
6298 tree decls = getdecls ();
6299 /* If there is a default exception to handle,
6300 handle it here. */
6301 if (yyvsp[-1].ttype)
6302 {
6303 tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0);
6304 tree block;
6305
6306 pushlevel (1);
6307 expand_start_bindings (0);
6308 expand_expr (yyvsp[-1].ttype, 0, 0, 0);
6309 expand_end_bindings (0, 1, 0);
6310 block = poplevel (1, 0, 0);
6311
6312 /* This is a catch block. */
6313 TREE_LANG_FLAG_2 (block) = 1;
6314 BLOCK_VARS (block) = decl;
6315 }
6316
6317 expand_end_bindings (decls, decls != 0, 1);
6318 poplevel (decls != 0, 1, 0);
6319 pop_momentary ();
6320 current_exception_type = yyvsp[-5].ttype;
6321 current_exception_decl = yyvsp[-3].ttype;
6322 current_exception_object = yyvsp[-2].ttype;
6323 cplus_expand_end_except (yyvsp[-1].ttype);
6324 ;
6325 break;}
6326case 576:
6327#line 3276 "cp-parse.y"
6328{
6329 cplus_expand_end_try (yyvsp[-1].itype);
6330 /* These are the important actions of
6331 `cplus_expand_end_except' which we must emulate. */
6332 if (expand_escape_except ())
6333 expand_end_except ();
6334 expand_end_bindings (0, 0, 1);
6335 poplevel (0, 0, 0);
6336 ;
6337 break;}
6338case 577:
6339#line 3286 "cp-parse.y"
6340{
6341 tree decl = cplus_expand_end_try (yyvsp[-2].itype);
6342 yyvsp[-1].ttype = current_exception_type;
6343 yyvsp[0].ttype = current_exception_decl;
6344 yyval.ttype = current_exception_object;
6345 cplus_expand_start_except (NULL, decl);
6346 pushlevel (0);
6347 clear_last_expr ();
6348 push_momentary ();
6349 expand_start_bindings (0);
6350 ;
6351 break;}
6352case 578:
6353#line 3298 "cp-parse.y"
6354{
6355 tree decls = getdecls ();
6356 /* If there is a default exception to handle,
6357 handle it here. */
6358 if (yyvsp[0].ttype)
6359 {
6360 tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0);
6361 tree block;
6362
6363 pushlevel (1);
6364 expand_start_bindings (0);
6365 expand_expr (yyvsp[0].ttype, 0, 0, 0);
6366 expand_end_bindings (0, 1, 0);
6367 block = poplevel (1, 0, 0);
6368
6369 /* This is a catch block. */
6370 TREE_LANG_FLAG_2 (block) = 1;
6371 BLOCK_VARS (block) = decl;
6372 }
6373
6374 expand_end_bindings (decls, decls != 0, 1);
6375 poplevel (decls != 0, 1, 0);
6376 pop_momentary ();
6377 current_exception_type = yyvsp[-3].ttype;
6378 current_exception_decl = yyvsp[-2].ttype;
6379 current_exception_object = yyvsp[-1].ttype;
6380 cplus_expand_end_except (yyvsp[0].ttype);
6381 ;
6382 break;}
6383case 579:
6384#line 3327 "cp-parse.y"
6385{ tree name = get_identifier ("(compiler error)");
6386 tree orig_ex_type = current_exception_type;
6387 tree orig_ex_decl = current_exception_decl;
6388 tree orig_ex_obj = current_exception_object;
6389 tree decl = cplus_expand_end_try (yyvsp[-2].itype), decls;
6390
6391 /* Start hidden EXCEPT. */
6392 cplus_expand_start_except (name, decl);
6393 pushlevel (0);
6394 clear_last_expr ();
6395 push_momentary ();
6396 expand_start_bindings (0);
6397
6398 /* This sets up the reraise. */
6399 cplus_expand_reraise (yyvsp[0].ttype);
6400
6401 decls = getdecls ();
6402 expand_end_bindings (decls, decls != 0, 1);
6403 poplevel (decls != 0, 1, 0);
6404 pop_momentary ();
6405 current_exception_type = orig_ex_type;
6406 current_exception_decl = orig_ex_decl;
6407 current_exception_object = orig_ex_obj;
6408 /* This will reraise for us. */
6409 cplus_expand_end_except (error_mark_node);
6410 if (yychar == YYEMPTY)
6411 yychar = YYLEX;
6412 if (yychar != ';')
6413 error ("missing ';' after reraise statement");
6414 ;
6415 break;}
6416case 580:
6417#line 3358 "cp-parse.y"
6418{ yyerror ("`except' missing after `try' statement");
6419 /* Terminate the binding contour started by special
6420 code in `.pushlevel'. Automagically pops off
6421 the conditional we started for `try' stmt. */
6422 cplus_expand_end_try (yyvsp[0].itype);
6423 expand_end_bindings (0, 0, 1);
6424 poplevel (0, 0, 0);
6425 pop_momentary ();
6426 YYERROR; ;
6427 break;}
6428case 581:
6429#line 3373 "cp-parse.y"
6430{
6431 yyval.itype = 1;
6432 pop_implicit_try_blocks (NULL_TREE);
6433 ;
6434 break;}
6435case 582:
6436#line 3378 "cp-parse.y"
6437{
6438 yyval.itype = 1;
6439 pop_implicit_try_blocks (NULL_TREE);
6440 ;
6441 break;}
6442case 583:
6443#line 3383 "cp-parse.y"
6444{
6445 yyval.itype = 0;
6446 pop_implicit_try_blocks (NULL_TREE);
6447 ;
6448 break;}
6449case 584:
6450#line 3391 "cp-parse.y"
6451{ tree label;
6452 do_label:
6453 label = define_label (input_filename, lineno, yyvsp[-1].ttype);
6454 if (label)
6455 expand_label (label);
6456 ;
6457 break;}
6458case 585:
6459#line 3398 "cp-parse.y"
6460{ goto do_label; ;
6461 break;}
6462case 586:
6463#line 3400 "cp-parse.y"
6464{ tree label = define_label (input_filename, lineno, yyvsp[0].ttype);
6465 if (label)
6466 expand_label (label);
6467 ;
6468 break;}
6469case 587:
6470#line 3406 "cp-parse.y"
6471{ cplus_expand_start_try (0); ;
6472 break;}
6473case 589:
6474#line 3412 "cp-parse.y"
6475{
6476 yyval.itype = 1;
6477 pop_implicit_try_blocks (NULL_TREE);
6478 ;
6479 break;}
6480case 590:
6481#line 3417 "cp-parse.y"
6482{
6483 yyval.itype = 1;
6484 pop_implicit_try_blocks (NULL_TREE);
6485 ;
6486 break;}
6487case 591:
6488#line 3422 "cp-parse.y"
6489{
6490 yyval.itype = 0;
6491 pop_implicit_try_blocks (NULL_TREE);
6492 ;
6493 break;}
6494case 593:
6495#line 3429 "cp-parse.y"
6496{ cplus_expand_start_try (0); ;
6497 break;}
6498case 595:
6499#line 3433 "cp-parse.y"
6500{ yyval.ttype = NULL_TREE; ;
6501 break;}
6502case 596:
6503#line 3435 "cp-parse.y"
6504{
6505 tree type = lookup_exception_type (current_class_type, current_class_name, yyvsp[0].ttype);
6506 if (type == NULL_TREE)
6507 {
6508 error ("`%s' is not an exception type",
6509 IDENTIFIER_POINTER (TREE_VALUE (yyvsp[0].ttype)));
6510 current_exception_type = NULL_TREE;
6511 TREE_TYPE (current_exception_object) = error_mark_node;
6512 }
6513 else
6514 {
6515 current_exception_type = type;
6516 /* In-place union. */
6517 TREE_TYPE (current_exception_object) = type;
6518 }
6519 yyvsp[0].ttype = cplus_expand_start_catch (yyvsp[0].ttype);
6520 pushlevel (1);
6521 expand_start_bindings (0);
6522 ;
6523 break;}
6524case 597:
6525#line 3455 "cp-parse.y"
6526{
6527 expand_end_bindings (0, 1, 0);
6528 yyvsp[0].ttype = poplevel (1, 0, 0);
6529
6530 cplus_expand_end_catch (0);
6531
6532 /* Mark this as a catch block. */
6533 TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
6534 if (yyvsp[-2].ttype != error_mark_node)
6535 {
6536 tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-2].ttype), 0);
6537 DECL_RTL (decl) = DECL_RTL (yyvsp[-2].ttype);
6538 TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype);
6539 BLOCK_VARS (yyvsp[0].ttype) = decl;
6540 }
6541 ;
6542 break;}
6543case 598:
6544#line 3472 "cp-parse.y"
6545{
6546 if (yyvsp[-1].ttype)
6547 error ("duplicate default in exception handler");
6548 current_exception_type = NULL_TREE;
6549 /* Takes it right out of scope. */
6550 TREE_TYPE (current_exception_object) = error_mark_node;
6551
6552 if (! expand_catch_default ())
6553 compiler_error ("default catch botch");
6554
6555 /* The default exception is handled as the
6556 last in the chain of exceptions handled. */
6557 do_pending_stack_adjust ();
6558 start_sequence ();
6559 yyvsp[-1].ttype = make_node (RTL_EXPR);
6560 TREE_TYPE (yyvsp[-1].ttype) = void_type_node;
6561 ;
6562 break;}
6563case 599:
6564#line 3490 "cp-parse.y"
6565{
6566 extern struct rtx_def *get_insns ();
6567 do_pending_stack_adjust ();
6568 if (! expand_catch (NULL_TREE))
6569 compiler_error ("except nesting botch");
6570 if (! expand_end_catch ())
6571 compiler_error ("except nesting botch");
6572 RTL_EXPR_SEQUENCE (yyvsp[-3].ttype) = get_insns ();
6573 if (yyvsp[0].ttype)
6574 {
6575 /* Mark this block as the default catch block. */
6576 TREE_LANG_FLAG_1 (yyvsp[0].ttype) = 1;
6577 TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
6578 }
6579 end_sequence ();
6580 ;
6581 break;}
6582case 600:
6583#line 3510 "cp-parse.y"
6584{ yyval.ttype = NULL_TREE; ;
6585 break;}
6586case 602:
6587#line 3515 "cp-parse.y"
6588{ yyval.ttype = NULL_TREE; ;
6589 break;}
6590case 603:
6591#line 3517 "cp-parse.y"
6592{
6593 tree type = groktypename (yyvsp[-2].ttype);
6594 current_exception_type = type;
6595 /* In-place union. */
6596 if (yyvsp[-1].ttype)
6597 {
6598 tree tmp;
6599 tmp = pushdecl (build_decl (VAR_DECL, yyvsp[-1].ttype, type));
6600 current_exception_object =
6601 build1 (INDIRECT_REF, type, tmp);
6602 }
6603 yyvsp[-2].ttype = ansi_expand_start_catch(type);
6604 pushlevel (1);
6605 expand_start_bindings (0);
6606 ;
6607 break;}
6608case 604:
6609#line 3533 "cp-parse.y"
6610{
6611 expand_end_bindings (0, 1, 0);
6612 yyvsp[0].ttype = poplevel (1, 0, 0);
6613
6614 cplus_expand_end_catch (0);
6615
6616 /* Mark this as a catch block. */
6617 TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
6618 if (yyvsp[-4].ttype != error_mark_node)
6619 {
6620 tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-4].ttype), 0);
6621 DECL_RTL (decl) = DECL_RTL (yyvsp[-4].ttype);
6622 TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype);
6623 BLOCK_VARS (yyvsp[0].ttype) = decl;
6624 }
6625 ;
6626 break;}
6627case 605:
6628#line 3553 "cp-parse.y"
6629{ yyval.ttype = NULL_TREE; ;
6630 break;}
6631case 606:
6632#line 3555 "cp-parse.y"
6633{ yyval.ttype = yyvsp[-1].ttype; ;
6634 break;}
6635case 607:
6636#line 3557 "cp-parse.y"
6637{ yyval.ttype = NULL_TREE; ;
6638 break;}
6639case 608:
6640#line 3562 "cp-parse.y"
6641{ yyval.itype = 0; ;
6642 break;}
6643case 609:
6644#line 3564 "cp-parse.y"
6645{ yyval.itype = 0; ;
6646 break;}
6647case 610:
6648#line 3566 "cp-parse.y"
6649{ yyval.itype = 1; ;
6650 break;}
6651case 611:
6652#line 3568 "cp-parse.y"
6653{ yyval.itype = -1; ;
6654 break;}
6655case 612:
6656#line 3575 "cp-parse.y"
6657{ emit_line_note (input_filename, lineno); ;
6658 break;}
6659case 613:
6660#line 3577 "cp-parse.y"
6661{ emit_line_note (input_filename, lineno); ;
6662 break;}
6663case 614:
6664#line 3582 "cp-parse.y"
6665{ yyval.ttype = NULL_TREE; ;
6666 break;}
6667case 616:
6668#line 3585 "cp-parse.y"
6669{ yyval.ttype = NULL_TREE; ;
6670 break;}
6671case 617:
6672#line 3591 "cp-parse.y"
6673{ yyval.ttype = NULL_TREE; ;
6674 break;}
6675case 620:
6676#line 3598 "cp-parse.y"
6677{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6678 break;}
6679case 621:
6680#line 3603 "cp-parse.y"
6681{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
6682 break;}
6683case 622:
6684#line 3608 "cp-parse.y"
6685{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
6686 break;}
6687case 623:
6688#line 3610 "cp-parse.y"
6689{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6690 break;}
6691case 624:
6692#line 3619 "cp-parse.y"
6693{
6694 if (strict_prototype)
6695 yyval.ttype = void_list_node;
6696 else
6697 yyval.ttype = NULL_TREE;
6698 ;
6699 break;}
6700case 625:
6701#line 3626 "cp-parse.y"
6702{
6703 yyval.ttype = chainon (yyval.ttype, void_list_node);
6704 TREE_PARMLIST (yyval.ttype) = 1;
6705 ;
6706 break;}
6707case 626:
6708#line 3631 "cp-parse.y"
6709{
6710 TREE_PARMLIST (yyval.ttype) = 1;
6711 ;
6712 break;}
6713case 627:
6714#line 3636 "cp-parse.y"
6715{
6716 TREE_PARMLIST (yyval.ttype) = 1;
6717 ;
6718 break;}
6719case 628:
6720#line 3640 "cp-parse.y"
6721{
6722 /* ARM $8.2.5 has this as a boxed-off comment. */
6723 if (pedantic)
6724 warning ("use of `...' without a first argument is non-portable");
6725 yyval.ttype = NULL_TREE;
6726 ;
6727 break;}
6728case 629:
6729#line 3647 "cp-parse.y"
6730{
6731 TREE_PARMLIST (yyval.ttype) = 1;
6732 ;
6733 break;}
6734case 630:
6735#line 3651 "cp-parse.y"
6736{
6737 TREE_PARMLIST (yyval.ttype) = 1;
6738 ;
6739 break;}
6740case 631:
6741#line 3655 "cp-parse.y"
6742{
6743 /* This helps us recover from really nasty
6744 parse errors, for example, a missing right
6745 parenthesis. */
6746 yyerror ("possibly missing ')'");
6747 yyval.ttype = chainon (yyval.ttype, void_list_node);
6748 TREE_PARMLIST (yyval.ttype) = 1;
6749 yyungetc (':', 0);
6750 yychar = ')';
6751 ;
6752 break;}
6753case 632:
6754#line 3670 "cp-parse.y"
6755{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
6756 break;}
6757case 633:
6758#line 3672 "cp-parse.y"
6759{ yyval.ttype = build_tree_list (yyvsp[0].ttype, yyval.ttype); ;
6760 break;}
6761case 634:
6762#line 3674 "cp-parse.y"
6763{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
6764 break;}
6765case 635:
6766#line 3676 "cp-parse.y"
6767{ yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
6768 break;}
6769case 636:
6770#line 3678 "cp-parse.y"
6771{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
6772 break;}
6773case 637:
6774#line 3680 "cp-parse.y"
6775{ yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
6776 break;}
6777case 638:
6778#line 3701 "cp-parse.y"
6779{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype);
6780 see_typename (); ;
6781 break;}
6782case 639:
6783#line 3704 "cp-parse.y"
6784{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype);
6785 see_typename (); ;
6786 break;}
6787case 642:
6788#line 3711 "cp-parse.y"
6789{ yyval.ttype = yyvsp[0].ttype; ;
6790 break;}
6791case 643:
6792#line 3715 "cp-parse.y"
6793{ see_typename (); ;
6794 break;}
6795case 644:
6796#line 3719 "cp-parse.y"
6797{ dont_see_typename (); ;
6798 break;}
6799case 645:
6800#line 3738 "cp-parse.y"
6801{
6802 warning ("type specifier omitted for parameter");
6803 yyval.ttype = build_tree_list (TREE_PURPOSE (TREE_VALUE (yyvsp[-2].ttype)), yyval.ttype);
6804 ;
6805 break;}
6806case 646:
6807#line 3746 "cp-parse.y"
6808{ yyval.ttype = NULL_TREE; ;
6809 break;}
6810case 647:
6811#line 3748 "cp-parse.y"
6812{ yyval.ttype = yyvsp[0].ttype; ;
6813 break;}
6814case 648:
6815#line 3750 "cp-parse.y"
6816{ yyval.ttype = yyvsp[-1].ttype; ;
6817 break;}
6818case 649:
6819#line 3755 "cp-parse.y"
6820{ yyval.ttype = void_list_node; ;
6821 break;}
6822case 650:
6823#line 3757 "cp-parse.y"
6824{ yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
6825 break;}
6826case 651:
6827#line 3759 "cp-parse.y"
6828{ yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
6829 break;}
6830case 652:
6831#line 3761 "cp-parse.y"
6832{ yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
6833 break;}
6834case 653:
6835#line 3763 "cp-parse.y"
6836{ yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
6837 break;}
6838case 654:
6839#line 3765 "cp-parse.y"
6840{ yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
6841 break;}
6842case 656:
6843#line 3771 "cp-parse.y"
6844{ yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
6845 break;}
6846case 658:
6847#line 3777 "cp-parse.y"
6848{
6849 TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
6850 yyval.ttype = yyvsp[0].ttype;
6851 ;
6852 break;}
6853case 660:
6854#line 3786 "cp-parse.y"
6855{
6856 TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
6857 yyval.ttype = yyvsp[0].ttype;
6858 ;
6859 break;}
6860case 661:
6861#line 3794 "cp-parse.y"
6862{ yyval.ttype = ansi_opname[MULT_EXPR]; ;
6863 break;}
6864case 662:
6865#line 3796 "cp-parse.y"
6866{ yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
6867 break;}
6868case 663:
6869#line 3798 "cp-parse.y"
6870{ yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
6871 break;}
6872case 664:
6873#line 3800 "cp-parse.y"
6874{ yyval.ttype = ansi_opname[PLUS_EXPR]; ;
6875 break;}
6876case 665:
6877#line 3802 "cp-parse.y"
6878{ yyval.ttype = ansi_opname[MINUS_EXPR]; ;
6879 break;}
6880case 666:
6881#line 3804 "cp-parse.y"
6882{ yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
6883 break;}
6884case 667:
6885#line 3806 "cp-parse.y"
6886{ yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
6887 break;}
6888case 668:
6889#line 3808 "cp-parse.y"
6890{ yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
6891 break;}
6892case 669:
6893#line 3810 "cp-parse.y"
6894{ yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
6895 break;}
6896case 670:
6897#line 3812 "cp-parse.y"
6898{ yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
6899 break;}
6900case 671:
6901#line 3814 "cp-parse.y"
6902{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
6903 break;}
6904case 672:
6905#line 3816 "cp-parse.y"
6906{ yyval.ttype = ansi_opname[LT_EXPR]; ;
6907 break;}
6908case 673:
6909#line 3818 "cp-parse.y"
6910{ yyval.ttype = ansi_opname[GT_EXPR]; ;
6911 break;}
6912case 674:
6913#line 3820 "cp-parse.y"
6914{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
6915 break;}
6916case 675:
6917#line 3822 "cp-parse.y"
6918{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
6919 break;}
6920case 676:
6921#line 3824 "cp-parse.y"
6922{
6923 yyval.ttype = ansi_opname [MODIFY_EXPR];
6924 if (current_class_type)
6925 {
6926 TYPE_HAS_ASSIGNMENT (current_class_type) = 1;
6927 TYPE_GETS_ASSIGNMENT (current_class_type) = 1;
6928 }
6929 ;
6930 break;}
6931case 677:
6932#line 3833 "cp-parse.y"
6933{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
6934 break;}
6935case 678:
6936#line 3835 "cp-parse.y"
6937{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
6938 break;}
6939case 679:
6940#line 3837 "cp-parse.y"
6941{ yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
6942 break;}
6943case 680:
6944#line 3839 "cp-parse.y"
6945{ yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
6946 break;}
6947case 681:
6948#line 3841 "cp-parse.y"
6949{ yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
6950 break;}
6951case 682:
6952#line 3843 "cp-parse.y"
6953{ yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
6954 break;}
6955case 683:
6956#line 3845 "cp-parse.y"
6957{ yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
6958 break;}
6959case 684:
6960#line 3847 "cp-parse.y"
6961{ yyval.ttype = ansi_opname[COND_EXPR]; ;
6962 break;}
6963case 685:
6964#line 3849 "cp-parse.y"
6965{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
6966 break;}
6967case 686:
6968#line 3851 "cp-parse.y"
6969{ yyval.ttype = ansi_opname[COMPONENT_REF];
6970 if (current_class_type)
6971 {
6972 tree t = current_class_type;
6973 while (t)
6974 {
6975 TYPE_OVERLOADS_ARROW (t) = 1;
6976 t = TYPE_NEXT_VARIANT (t);
6977 }
6978 }
6979 ;
6980 break;}
6981case 687:
6982#line 3863 "cp-parse.y"
6983{ yyval.ttype = ansi_opname[MEMBER_REF];
6984 if (current_class_type)
6985 {
6986 tree t = current_class_type;
6987 while (t)
6988 {
6989 TYPE_OVERLOADS_ARROW (t) = 1;
6990 t = TYPE_NEXT_VARIANT (t);
6991 }
6992 }
6993 ;
6994 break;}
6995case 688:
6996#line 3875 "cp-parse.y"
6997{
6998 if (yychar == YYEMPTY)
6999 yychar = YYLEX;
7000 if (yychar == '(' || yychar == LEFT_RIGHT)
7001 {
7002 yyval.ttype = ansi_opname[METHOD_CALL_EXPR];
7003 if (current_class_type)
7004 {
7005 tree t = current_class_type;
7006 while (t)
7007 {
7008 TYPE_OVERLOADS_METHOD_CALL_EXPR (t) = 1;
7009 t = TYPE_NEXT_VARIANT (t);
7010 }
7011 }
7012 }
7013 else
7014 {
7015 yyval.ttype = build_parse_node (CALL_EXPR, ansi_opname[COMPONENT_REF], void_list_node, yyvsp[0].ttype);
7016 if (current_class_type)
7017 {
7018 tree t = current_class_type;
7019 while (t)
7020 {
7021 TYPE_OVERLOADS_ARROW (t) = 1;
7022 t = TYPE_NEXT_VARIANT (t);
7023 }
7024 }
7025 }
7026 ;
7027 break;}
7028case 689:
7029#line 3906 "cp-parse.y"
7030{ yyval.ttype = ansi_opname[CALL_EXPR];
7031 if (current_class_type)
7032 {
7033 tree t = current_class_type;
7034 while (t)
7035 {
7036 TYPE_OVERLOADS_CALL_EXPR (t) = 1;
7037 t = TYPE_NEXT_VARIANT (t);
7038 }
7039 }
7040 ;
7041 break;}
7042case 690:
7043#line 3918 "cp-parse.y"
7044{ yyval.ttype = ansi_opname[ARRAY_REF];
7045 if (current_class_type)
7046 {
7047 tree t = current_class_type;
7048 while (t)
7049 {
7050 TYPE_OVERLOADS_ARRAY_REF (t) = 1;
7051 t = TYPE_NEXT_VARIANT (t);
7052 }
7053 }
7054 ;
7055 break;}
7056case 691:
7057#line 3930 "cp-parse.y"
7058{
7059 yyval.ttype = ansi_opname[NEW_EXPR];
7060 if (current_class_type)
7061 {
7062 tree t = current_class_type;
7063 while (t)
7064 {
7065 TREE_GETS_NEW (t) = 1;
7066 t = TYPE_NEXT_VARIANT (t);
7067 }
7068 }
7069 ;
7070 break;}
7071case 692:
7072#line 3943 "cp-parse.y"
7073{
7074 yyval.ttype = ansi_opname[DELETE_EXPR];
7075 if (current_class_type)
7076 {
7077 tree t = current_class_type;
7078 while (t)
7079 {
7080 TREE_GETS_DELETE (t) = 1;
7081 t = TYPE_NEXT_VARIANT (t);
7082 }
7083 }
7084 ;
7085 break;}
7086case 693:
7087#line 3959 "cp-parse.y"
7088{ yyval.ttype = build1 (TYPE_EXPR, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7089 break;}
7090case 694:
7091#line 3961 "cp-parse.y"
7092{ yyval.ttype = ansi_opname[ERROR_MARK]; ;
7093 break;}
7094}
7095 /* the action file gets copied in in place of this dollarsign */
7096#line 440 "bison.simple"
7097\f
7098 yyvsp -= yylen;
7099 yyssp -= yylen;
7100#ifdef YYLSP_NEEDED
7101 yylsp -= yylen;
7102#endif
7103
7104#if YYDEBUG != 0
7105 if (yydebug)
7106 {
7107 short *ssp1 = yyss - 1;
7108 fprintf (stderr, "state stack now");
7109 while (ssp1 != yyssp)
7110 fprintf (stderr, " %d", *++ssp1);
7111 fprintf (stderr, "\n");
7112 }
7113#endif
7114
7115 *++yyvsp = yyval;
7116
7117#ifdef YYLSP_NEEDED
7118 yylsp++;
7119 if (yylen == 0)
7120 {
7121 yylsp->first_line = yylloc.first_line;
7122 yylsp->first_column = yylloc.first_column;
7123 yylsp->last_line = (yylsp-1)->last_line;
7124 yylsp->last_column = (yylsp-1)->last_column;
7125 yylsp->text = 0;
7126 }
7127 else
7128 {
7129 yylsp->last_line = (yylsp+yylen-1)->last_line;
7130 yylsp->last_column = (yylsp+yylen-1)->last_column;
7131 }
7132#endif
7133
7134 /* Now "shift" the result of the reduction.
7135 Determine what state that goes to,
7136 based on the state we popped back to
7137 and the rule number reduced by. */
7138
7139 yyn = yyr1[yyn];
7140
7141 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
7142 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
7143 yystate = yytable[yystate];
7144 else
7145 yystate = yydefgoto[yyn - YYNTBASE];
7146
7147 goto yynewstate;
7148
7149yyerrlab: /* here on detecting error */
7150
7151 if (! yyerrstatus)
7152 /* If not already recovering from an error, report this error. */
7153 {
7154 ++yynerrs;
7155
7156#ifdef YYERROR_VERBOSE
7157 yyn = yypact[yystate];
7158
7159 if (yyn > YYFLAG && yyn < YYLAST)
7160 {
7161 int size = 0;
7162 char *msg;
7163 int x, count;
7164
7165 count = 0;
7166 for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
7167 if (yycheck[x + yyn] == x)
7168 size += strlen(yytname[x]) + 15, count++;
7169 msg = (char *) malloc(size + 15);
7170 if (msg != 0)
7171 {
7172 strcpy(msg, "parse error");
7173
7174 if (count < 5)
7175 {
7176 count = 0;
7177 for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
7178 if (yycheck[x + yyn] == x)
7179 {
7180 strcat(msg, count == 0 ? ", expecting `" : " or `");
7181 strcat(msg, yytname[x]);
7182 strcat(msg, "'");
7183 count++;
7184 }
7185 }
7186 yyerror(msg);
7187 free(msg);
7188 }
7189 else
7190 yyerror ("parse error; also virtual memory exceeded");
7191 }
7192 else
7193#endif /* YYERROR_VERBOSE */
7194 yyerror("parse error");
7195 }
7196
7197yyerrlab1: /* here on error raised explicitly by an action */
7198
7199 if (yyerrstatus == 3)
7200 {
7201 /* if just tried and failed to reuse lookahead token after an error, discard it. */
7202
7203 /* return failure if at end of input */
7204 if (yychar == YYEOF)
7205 YYABORT;
7206
7207#if YYDEBUG != 0
7208 if (yydebug)
7209 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
7210#endif
7211
7212 yychar = YYEMPTY;
7213 }
7214
7215 /* Else will try to reuse lookahead token
7216 after shifting the error token. */
7217
7218 yyerrstatus = 3; /* Each real token shifted decrements this */
7219
7220 goto yyerrhandle;
7221
7222yyerrdefault: /* current state does not do anything special for the error token. */
7223
7224#if 0
7225 /* This is wrong; only states that explicitly want error tokens
7226 should shift them. */
7227 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
7228 if (yyn) goto yydefault;
7229#endif
7230
7231yyerrpop: /* pop the current state because it cannot handle the error token */
7232
7233 if (yyssp == yyss) YYABORT;
7234 yyvsp--;
7235 yystate = *--yyssp;
7236#ifdef YYLSP_NEEDED
7237 yylsp--;
7238#endif
7239
7240#if YYDEBUG != 0
7241 if (yydebug)
7242 {
7243 short *ssp1 = yyss - 1;
7244 fprintf (stderr, "Error: state stack now");
7245 while (ssp1 != yyssp)
7246 fprintf (stderr, " %d", *++ssp1);
7247 fprintf (stderr, "\n");
7248 }
7249#endif
7250
7251yyerrhandle:
7252
7253 yyn = yypact[yystate];
7254 if (yyn == YYFLAG)
7255 goto yyerrdefault;
7256
7257 yyn += YYTERROR;
7258 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
7259 goto yyerrdefault;
7260
7261 yyn = yytable[yyn];
7262 if (yyn < 0)
7263 {
7264 if (yyn == YYFLAG)
7265 goto yyerrpop;
7266 yyn = -yyn;
7267 goto yyreduce;
7268 }
7269 else if (yyn == 0)
7270 goto yyerrpop;
7271
7272 if (yyn == YYFINAL)
7273 YYACCEPT;
7274
7275#if YYDEBUG != 0
7276 if (yydebug)
7277 fprintf(stderr, "Shifting error token, ");
7278#endif
7279
7280 *++yyvsp = yylval;
7281#ifdef YYLSP_NEEDED
7282 *++yylsp = yylloc;
7283#endif
7284
7285 yystate = yyn;
7286 goto yynewstate;
7287}
7288#line 3964 "cp-parse.y"
7289
7290
7291tree
7292get_current_declspecs ()
7293{
7294 return current_declspecs;
7295}