* parse.y (simple_stmt): Use getdecls() to check for decl.
[gcc.git] / gcc / cp / parse.c
1
2 /* A Bison parser, made from parse.y
3 by GNU Bison version 1.25
4 */
5
6 #define YYBISON 1 /* Identify Bison output. */
7
8 #define IDENTIFIER 258
9 #define TYPENAME 259
10 #define SELFNAME 260
11 #define PFUNCNAME 261
12 #define SCSPEC 262
13 #define TYPESPEC 263
14 #define CV_QUALIFIER 264
15 #define CONSTANT 265
16 #define STRING 266
17 #define ELLIPSIS 267
18 #define SIZEOF 268
19 #define ENUM 269
20 #define IF 270
21 #define ELSE 271
22 #define WHILE 272
23 #define DO 273
24 #define FOR 274
25 #define SWITCH 275
26 #define CASE 276
27 #define DEFAULT 277
28 #define BREAK 278
29 #define CONTINUE 279
30 #define RETURN 280
31 #define GOTO 281
32 #define ASM_KEYWORD 282
33 #define GCC_ASM_KEYWORD 283
34 #define TYPEOF 284
35 #define ALIGNOF 285
36 #define SIGOF 286
37 #define ATTRIBUTE 287
38 #define EXTENSION 288
39 #define LABEL 289
40 #define REALPART 290
41 #define IMAGPART 291
42 #define AGGR 292
43 #define VISSPEC 293
44 #define DELETE 294
45 #define NEW 295
46 #define THIS 296
47 #define OPERATOR 297
48 #define CXX_TRUE 298
49 #define CXX_FALSE 299
50 #define NAMESPACE 300
51 #define TYPENAME_KEYWORD 301
52 #define USING 302
53 #define LEFT_RIGHT 303
54 #define TEMPLATE 304
55 #define TYPEID 305
56 #define DYNAMIC_CAST 306
57 #define STATIC_CAST 307
58 #define REINTERPRET_CAST 308
59 #define CONST_CAST 309
60 #define SCOPE 310
61 #define EMPTY 311
62 #define PTYPENAME 312
63 #define NSNAME 313
64 #define THROW 314
65 #define ASSIGN 315
66 #define OROR 316
67 #define ANDAND 317
68 #define MIN_MAX 318
69 #define EQCOMPARE 319
70 #define ARITHCOMPARE 320
71 #define LSHIFT 321
72 #define RSHIFT 322
73 #define POINTSAT_STAR 323
74 #define DOT_STAR 324
75 #define UNARY 325
76 #define PLUSPLUS 326
77 #define MINUSMINUS 327
78 #define HYPERUNARY 328
79 #define PAREN_STAR_PAREN 329
80 #define POINTSAT 330
81 #define TRY 331
82 #define CATCH 332
83 #define TYPENAME_ELLIPSIS 333
84 #define PRE_PARSED_FUNCTION_DECL 334
85 #define EXTERN_LANG_STRING 335
86 #define ALL 336
87 #define PRE_PARSED_CLASS_DECL 337
88 #define DEFARG 338
89 #define DEFARG_MARKER 339
90 #define TYPENAME_DEFN 340
91 #define IDENTIFIER_DEFN 341
92 #define PTYPENAME_DEFN 342
93 #define END_OF_LINE 343
94 #define END_OF_SAVED_INPUT 344
95
96 #line 29 "parse.y"
97
98 /* Cause the `yydebug' variable to be defined. */
99 #define YYDEBUG 1
100
101 #include "config.h"
102
103 #include <stdio.h>
104 #include <errno.h>
105
106 #include "tree.h"
107 #include "input.h"
108 #include "flags.h"
109 #include "lex.h"
110 #include "cp-tree.h"
111 #include "output.h"
112 #include "except.h"
113
114 /* Since parsers are distinct for each language, put the language string
115 definition here. (fnf) */
116 char *language_string = "GNU C++";
117
118 extern tree void_list_node;
119 extern struct obstack permanent_obstack;
120
121 #ifndef errno
122 extern int errno;
123 #endif
124
125 extern int end_of_file;
126 extern int current_class_depth;
127
128 /* FSF LOCAL dje prefix attributes */
129 extern tree strip_attrs PROTO((tree));
130 /* END FSF LOCAL */
131
132 /* Like YYERROR but do call yyerror. */
133 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
134
135 #define OP0(NODE) (TREE_OPERAND (NODE, 0))
136 #define OP1(NODE) (TREE_OPERAND (NODE, 1))
137
138 /* Contains the statement keyword (if/while/do) to include in an
139 error message if the user supplies an empty conditional expression. */
140 static char *cond_stmt_keyword;
141
142 static tree empty_parms PROTO((void));
143
144 /* Nonzero if we have an `extern "C"' acting as an extern specifier. */
145 int have_extern_spec;
146 int used_extern_spec;
147
148 /* Cons up an empty parameter list. */
149 #ifdef __GNUC__
150 __inline
151 #endif
152 static tree
153 empty_parms ()
154 {
155 tree parms;
156
157 if (strict_prototype
158 || current_class_type != NULL)
159 parms = void_list_node;
160 else
161 parms = NULL_TREE;
162 return parms;
163 }
164
165
166 #line 101 "parse.y"
167 typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
168 #line 290 "parse.y"
169
170 /* List of types and structure classes of the current declaration. */
171 static tree current_declspecs = NULL_TREE;
172 /* List of prefix attributes in effect.
173 Prefix attributes are parsed by the reserved_declspecs and declmods
174 rules. They create a list that contains *both* declspecs and attrs. */
175 /* ??? It is not clear yet that all cases where an attribute can now appear in
176 a declspec list have been updated. */
177 static tree prefix_attributes = NULL_TREE;
178
179 /* When defining an aggregate, this is the most recent one being defined. */
180 static tree current_aggr;
181
182 /* Tell yyparse how to print a token's value, if yydebug is set. */
183
184 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
185 extern void yyprint PROTO((FILE *, int, YYSTYPE));
186 extern tree combine_strings PROTO((tree));
187 #include <stdio.h>
188
189 #ifndef __cplusplus
190 #ifndef __STDC__
191 #define const
192 #endif
193 #endif
194
195
196
197 #define YYFINAL 1535
198 #define YYFLAG -32768
199 #define YYNTBASE 114
200
201 #define YYTRANSLATE(x) ((unsigned)(x) <= 344 ? yytranslate[x] : 389)
202
203 static const char yytranslate[] = { 0,
204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
205 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
206 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
207 2, 2, 112, 2, 2, 2, 83, 71, 2, 94,
208 110, 81, 79, 60, 80, 93, 82, 2, 2, 2,
209 2, 2, 2, 2, 2, 2, 2, 63, 61, 75,
210 65, 76, 66, 2, 2, 2, 2, 2, 2, 2,
211 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
212 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
213 95, 2, 113, 70, 2, 2, 2, 2, 2, 2,
214 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
215 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
216 2, 2, 59, 69, 111, 89, 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, 2, 2, 2, 2, 2,
228 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
229 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
230 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
231 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
232 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
233 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
234 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
235 56, 57, 58, 62, 64, 67, 68, 72, 73, 74,
236 77, 78, 84, 85, 86, 87, 88, 90, 91, 92,
237 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
238 106, 107, 108, 109
239 };
240
241 #if YYDEBUG != 0
242 static const short yyprhs[] = { 0,
243 0, 1, 3, 4, 7, 10, 12, 13, 14, 15,
244 17, 19, 21, 22, 25, 28, 30, 32, 38, 43,
245 49, 54, 55, 62, 63, 69, 75, 78, 83, 86,
246 89, 93, 97, 99, 101, 104, 107, 109, 112, 113,
247 119, 123, 125, 129, 131, 132, 135, 138, 142, 144,
248 148, 150, 154, 156, 160, 163, 166, 169, 173, 177,
249 180, 183, 186, 189, 192, 194, 196, 198, 199, 201,
250 204, 205, 207, 212, 216, 220, 221, 230, 236, 237,
251 247, 254, 255, 264, 270, 271, 281, 288, 291, 294,
252 296, 299, 301, 308, 313, 320, 325, 328, 330, 333,
253 336, 338, 341, 343, 346, 349, 352, 357, 360, 364,
254 365, 366, 368, 372, 375, 379, 381, 386, 389, 394,
255 397, 402, 405, 407, 409, 411, 413, 415, 417, 419,
256 421, 423, 425, 427, 428, 435, 436, 443, 444, 450,
257 451, 457, 458, 466, 467, 475, 476, 483, 484, 491,
258 492, 493, 498, 503, 505, 510, 512, 514, 515, 517,
259 519, 523, 525, 527, 529, 531, 533, 535, 537, 539,
260 541, 543, 547, 549, 553, 554, 556, 558, 559, 567,
261 569, 571, 575, 580, 584, 585, 589, 591, 595, 599,
262 603, 607, 609, 611, 613, 616, 619, 622, 625, 628,
263 631, 634, 639, 642, 647, 650, 654, 658, 663, 668,
264 674, 680, 687, 690, 695, 701, 704, 707, 711, 715,
265 719, 721, 725, 728, 732, 737, 739, 742, 748, 750,
266 754, 758, 762, 766, 770, 774, 778, 782, 786, 790,
267 794, 798, 802, 806, 810, 814, 818, 822, 826, 832,
268 836, 840, 842, 845, 849, 851, 853, 855, 857, 859,
269 860, 866, 872, 878, 884, 890, 892, 894, 896, 898,
270 901, 904, 908, 913, 918, 920, 922, 924, 928, 930,
271 932, 934, 936, 940, 944, 948, 949, 954, 959, 962,
272 967, 970, 973, 975, 980, 982, 990, 998, 1006, 1014,
273 1019, 1024, 1027, 1030, 1032, 1037, 1040, 1043, 1049, 1053,
274 1056, 1059, 1065, 1069, 1075, 1079, 1084, 1091, 1094, 1096,
275 1099, 1101, 1104, 1106, 1108, 1110, 1113, 1114, 1117, 1120,
276 1124, 1128, 1132, 1135, 1138, 1141, 1143, 1145, 1147, 1150,
277 1153, 1156, 1159, 1161, 1163, 1165, 1167, 1170, 1173, 1177,
278 1181, 1185, 1190, 1192, 1195, 1198, 1201, 1203, 1205, 1207,
279 1210, 1213, 1216, 1218, 1220, 1223, 1226, 1230, 1232, 1235,
280 1237, 1239, 1241, 1246, 1251, 1256, 1261, 1263, 1265, 1267,
281 1269, 1273, 1275, 1279, 1281, 1285, 1286, 1291, 1292, 1299,
282 1303, 1304, 1311, 1315, 1316, 1323, 1327, 1328, 1335, 1339,
283 1343, 1344, 1346, 1348, 1351, 1358, 1360, 1364, 1365, 1367,
284 1372, 1379, 1384, 1386, 1388, 1390, 1392, 1394, 1398, 1399,
285 1402, 1404, 1407, 1411, 1416, 1418, 1420, 1424, 1426, 1431,
286 1435, 1439, 1440, 1444, 1448, 1452, 1453, 1456, 1459, 1460,
287 1468, 1473, 1474, 1481, 1485, 1488, 1491, 1494, 1495, 1496,
288 1506, 1508, 1509, 1511, 1512, 1514, 1516, 1519, 1522, 1525,
289 1528, 1531, 1534, 1538, 1543, 1547, 1550, 1554, 1555, 1557,
290 1561, 1564, 1567, 1569, 1571, 1572, 1575, 1579, 1581, 1586,
291 1588, 1592, 1594, 1596, 1601, 1606, 1609, 1612, 1616, 1620,
292 1622, 1623, 1625, 1628, 1633, 1637, 1639, 1642, 1645, 1648,
293 1651, 1654, 1657, 1660, 1662, 1665, 1668, 1671, 1676, 1681,
294 1684, 1686, 1692, 1697, 1699, 1702, 1703, 1705, 1709, 1710,
295 1712, 1716, 1718, 1720, 1722, 1724, 1729, 1734, 1739, 1744,
296 1749, 1753, 1758, 1763, 1768, 1773, 1777, 1779, 1783, 1785,
297 1789, 1792, 1794, 1801, 1802, 1805, 1807, 1810, 1811, 1814,
298 1819, 1824, 1827, 1832, 1836, 1840, 1843, 1846, 1850, 1852,
299 1854, 1857, 1859, 1861, 1864, 1867, 1872, 1877, 1881, 1885,
300 1888, 1890, 1894, 1898, 1901, 1904, 1908, 1910, 1914, 1918,
301 1921, 1924, 1928, 1930, 1935, 1939, 1944, 1948, 1950, 1953,
302 1956, 1959, 1962, 1965, 1967, 1970, 1975, 1980, 1983, 1985,
303 1987, 1989, 1991, 1994, 1997, 2000, 2003, 2006, 2008, 2011,
304 2014, 2016, 2019, 2022, 2025, 2028, 2031, 2034, 2037, 2040,
305 2042, 2045, 2048, 2052, 2054, 2058, 2061, 2065, 2068, 2071,
306 2075, 2077, 2081, 2086, 2090, 2093, 2096, 2098, 2102, 2105,
307 2108, 2110, 2113, 2117, 2119, 2123, 2125, 2132, 2137, 2142,
308 2146, 2152, 2156, 2160, 2164, 2167, 2169, 2171, 2174, 2177,
309 2180, 2181, 2182, 2183, 2185, 2187, 2190, 2194, 2196, 2199,
310 2200, 2206, 2207, 2208, 2215, 2217, 2218, 2223, 2225, 2227,
311 2229, 2232, 2233, 2234, 2241, 2243, 2244, 2245, 2253, 2254,
312 2255, 2263, 2264, 2265, 2266, 2267, 2282, 2283, 2284, 2294,
313 2295, 2301, 2302, 2310, 2311, 2316, 2319, 2322, 2325, 2329,
314 2336, 2345, 2356, 2369, 2374, 2378, 2381, 2384, 2386, 2388,
315 2389, 2390, 2397, 2398, 2399, 2405, 2407, 2410, 2411, 2412,
316 2413, 2422, 2424, 2426, 2430, 2434, 2437, 2440, 2443, 2446,
317 2449, 2451, 2454, 2455, 2457, 2458, 2460, 2462, 2463, 2465,
318 2467, 2471, 2476, 2478, 2482, 2483, 2485, 2487, 2489, 2492,
319 2495, 2498, 2500, 2502, 2505, 2508, 2511, 2514, 2515, 2519,
320 2521, 2523, 2525, 2528, 2531, 2534, 2539, 2542, 2545, 2548,
321 2551, 2554, 2557, 2559, 2562, 2564, 2567, 2569, 2571, 2572,
322 2573, 2575, 2576, 2581, 2584, 2586, 2588, 2592, 2593, 2597,
323 2601, 2605, 2607, 2610, 2613, 2616, 2619, 2622, 2625, 2628,
324 2631, 2634, 2637, 2640, 2643, 2646, 2649, 2652, 2655, 2658,
325 2661, 2664, 2667, 2670, 2673, 2676, 2680, 2683, 2686, 2689,
326 2692, 2696, 2699, 2702, 2707, 2712, 2716
327 };
328
329 static const short yyrhs[] = { -1,
330 115, 0, 0, 116, 122, 0, 115, 122, 0, 115,
331 0, 0, 0, 0, 33, 0, 27, 0, 28, 0,
332 0, 123, 124, 0, 142, 141, 0, 138, 0, 137,
333 0, 121, 94, 208, 110, 61, 0, 129, 59, 117,
334 111, 0, 129, 118, 142, 119, 141, 0, 129, 118,
335 138, 119, 0, 0, 45, 157, 59, 125, 117, 111,
336 0, 0, 45, 59, 126, 117, 111, 0, 45, 157,
337 65, 128, 61, 0, 127, 61, 0, 47, 45, 128,
338 61, 0, 120, 124, 0, 47, 300, 0, 47, 313,
339 300, 0, 47, 313, 199, 0, 199, 0, 300, 0,
340 313, 300, 0, 313, 199, 0, 100, 0, 129, 100,
341 0, 0, 49, 75, 131, 132, 76, 0, 49, 75,
342 76, 0, 136, 0, 132, 60, 136, 0, 157, 0,
343 0, 257, 133, 0, 46, 133, 0, 130, 257, 133,
344 0, 134, 0, 134, 65, 214, 0, 380, 0, 380,
345 65, 194, 0, 135, 0, 135, 65, 176, 0, 130,
346 124, 0, 130, 1, 0, 225, 61, 0, 218, 224,
347 61, 0, 215, 223, 61, 0, 218, 61, 0, 160,
348 61, 0, 215, 61, 0, 1, 61, 0, 1, 111,
349 0, 61, 0, 209, 0, 153, 0, 0, 152, 0,
350 152, 61, 0, 0, 109, 0, 148, 140, 139, 325,
351 0, 148, 140, 350, 0, 148, 140, 1, 0, 0,
352 305, 5, 94, 144, 371, 110, 287, 383, 0, 305,
353 5, 48, 287, 383, 0, 0, 313, 305, 5, 94,
354 145, 371, 110, 287, 383, 0, 313, 305, 5, 48,
355 287, 383, 0, 0, 305, 172, 94, 146, 371, 110,
356 287, 383, 0, 305, 172, 48, 287, 383, 0, 0,
357 313, 305, 172, 94, 147, 371, 110, 287, 383, 0,
358 313, 305, 172, 48, 287, 383, 0, 215, 212, 0,
359 218, 297, 0, 297, 0, 218, 143, 0, 143, 0,
360 5, 94, 371, 110, 287, 383, 0, 5, 48, 287,
361 383, 0, 172, 94, 371, 110, 287, 383, 0, 172,
362 48, 287, 383, 0, 218, 149, 0, 149, 0, 215,
363 212, 0, 218, 297, 0, 297, 0, 218, 143, 0,
364 143, 0, 130, 150, 0, 25, 3, 0, 151, 242,
365 0, 151, 94, 188, 110, 0, 151, 48, 0, 63,
366 154, 155, 0, 0, 0, 156, 0, 155, 60, 156,
367 0, 155, 1, 0, 94, 188, 110, 0, 48, 0,
368 158, 94, 188, 110, 0, 158, 48, 0, 293, 94,
369 188, 110, 0, 293, 48, 0, 307, 94, 188, 110,
370 0, 307, 48, 0, 3, 0, 4, 0, 5, 0,
371 57, 0, 58, 0, 3, 0, 57, 0, 58, 0,
372 106, 0, 105, 0, 107, 0, 0, 49, 169, 221,
373 61, 161, 170, 0, 0, 49, 169, 215, 212, 162,
374 170, 0, 0, 49, 169, 297, 163, 170, 0, 0,
375 49, 169, 143, 164, 170, 0, 0, 7, 49, 169,
376 221, 61, 165, 170, 0, 0, 7, 49, 169, 215,
377 212, 166, 170, 0, 0, 7, 49, 169, 297, 167,
378 170, 0, 0, 7, 49, 169, 143, 168, 170, 0,
379 0, 0, 57, 75, 174, 173, 0, 4, 75, 174,
380 173, 0, 172, 0, 5, 75, 174, 173, 0, 76,
381 0, 78, 0, 0, 175, 0, 176, 0, 175, 60,
382 176, 0, 214, 0, 194, 0, 80, 0, 79, 0,
383 87, 0, 88, 0, 112, 0, 187, 0, 194, 0,
384 48, 0, 94, 178, 110, 0, 48, 0, 94, 182,
385 110, 0, 0, 182, 0, 1, 0, 0, 361, 212,
386 226, 235, 65, 183, 243, 0, 178, 0, 111, 0,
387 322, 318, 111, 0, 322, 318, 1, 111, 0, 322,
388 1, 111, 0, 0, 59, 186, 184, 0, 334, 0,
389 194, 60, 194, 0, 194, 60, 1, 0, 187, 60,
390 194, 0, 187, 60, 1, 0, 194, 0, 187, 0,
391 203, 0, 120, 193, 0, 81, 193, 0, 71, 193,
392 0, 89, 193, 0, 177, 193, 0, 68, 157, 0,
393 13, 189, 0, 13, 94, 214, 110, 0, 30, 189,
394 0, 30, 94, 214, 110, 0, 205, 286, 0, 205,
395 286, 191, 0, 205, 190, 286, 0, 205, 190, 286,
396 191, 0, 205, 94, 214, 110, 0, 205, 94, 214,
397 110, 191, 0, 205, 190, 94, 214, 110, 0, 205,
398 190, 94, 214, 110, 191, 0, 206, 193, 0, 206,
399 95, 113, 193, 0, 206, 95, 178, 113, 193, 0,
400 35, 193, 0, 36, 193, 0, 94, 188, 110, 0,
401 59, 188, 111, 0, 94, 188, 110, 0, 48, 0,
402 94, 221, 110, 0, 65, 243, 0, 94, 214, 110,
403 0, 192, 94, 214, 110, 0, 189, 0, 192, 189,
404 0, 192, 59, 244, 255, 111, 0, 193, 0, 194,
405 84, 194, 0, 194, 85, 194, 0, 194, 79, 194,
406 0, 194, 80, 194, 0, 194, 81, 194, 0, 194,
407 82, 194, 0, 194, 83, 194, 0, 194, 77, 194,
408 0, 194, 78, 194, 0, 194, 74, 194, 0, 194,
409 75, 194, 0, 194, 76, 194, 0, 194, 73, 194,
410 0, 194, 72, 194, 0, 194, 71, 194, 0, 194,
411 69, 194, 0, 194, 70, 194, 0, 194, 68, 194,
412 0, 194, 67, 194, 0, 194, 66, 366, 63, 194,
413 0, 194, 65, 194, 0, 194, 64, 194, 0, 62,
414 0, 62, 194, 0, 89, 381, 157, 0, 197, 0,
415 388, 0, 3, 0, 57, 0, 58, 0, 0, 6,
416 75, 196, 174, 173, 0, 388, 75, 196, 174, 173,
417 0, 49, 157, 75, 174, 173, 0, 49, 6, 75,
418 174, 173, 0, 49, 388, 75, 174, 173, 0, 195,
419 0, 4, 0, 5, 0, 195, 0, 81, 200, 0,
420 71, 200, 0, 94, 200, 110, 0, 3, 75, 174,
421 173, 0, 58, 75, 175, 173, 0, 299, 0, 195,
422 0, 201, 0, 94, 200, 110, 0, 195, 0, 10,
423 0, 207, 0, 208, 0, 94, 178, 110, 0, 94,
424 200, 110, 0, 94, 1, 110, 0, 0, 94, 204,
425 326, 110, 0, 203, 94, 188, 110, 0, 203, 48,
426 0, 203, 95, 178, 113, 0, 203, 87, 0, 203,
427 88, 0, 41, 0, 9, 94, 188, 110, 0, 303,
428 0, 51, 75, 214, 76, 94, 178, 110, 0, 52,
429 75, 214, 76, 94, 178, 110, 0, 53, 75, 214,
430 76, 94, 178, 110, 0, 54, 75, 214, 76, 94,
431 178, 110, 0, 50, 94, 178, 110, 0, 50, 94,
432 214, 110, 0, 313, 3, 0, 313, 388, 0, 302,
433 0, 302, 94, 188, 110, 0, 302, 48, 0, 210,
434 198, 0, 210, 198, 94, 188, 110, 0, 210, 198,
435 48, 0, 210, 199, 0, 210, 302, 0, 210, 199,
436 94, 188, 110, 0, 210, 199, 48, 0, 210, 302,
437 94, 188, 110, 0, 210, 302, 48, 0, 210, 89,
438 8, 48, 0, 210, 8, 55, 89, 8, 48, 0,
439 210, 1, 0, 40, 0, 313, 40, 0, 39, 0,
440 313, 206, 0, 43, 0, 44, 0, 11, 0, 208,
441 11, 0, 0, 203, 93, 0, 203, 92, 0, 221,
442 223, 61, 0, 215, 223, 61, 0, 218, 224, 61,
443 0, 215, 61, 0, 218, 61, 0, 120, 211, 0,
444 292, 0, 297, 0, 48, 0, 213, 48, 0, 219,
445 316, 0, 288, 316, 0, 221, 316, 0, 219, 0,
446 288, 0, 219, 0, 216, 0, 218, 221, 0, 221,
447 217, 0, 221, 220, 217, 0, 218, 221, 217, 0,
448 218, 221, 220, 0, 218, 221, 220, 217, 0, 7,
449 0, 217, 222, 0, 217, 7, 0, 217, 236, 0,
450 236, 0, 288, 0, 7, 0, 218, 9, 0, 218,
451 7, 0, 218, 236, 0, 236, 0, 221, 0, 288,
452 221, 0, 221, 220, 0, 288, 221, 220, 0, 222,
453 0, 220, 222, 0, 250, 0, 8, 0, 294, 0,
454 29, 94, 178, 110, 0, 29, 94, 214, 110, 0,
455 31, 94, 178, 110, 0, 31, 94, 214, 110, 0,
456 8, 0, 9, 0, 250, 0, 227, 0, 223, 60,
457 229, 0, 231, 0, 224, 60, 229, 0, 233, 0,
458 225, 60, 229, 0, 0, 121, 94, 208, 110, 0,
459 0, 212, 226, 235, 65, 228, 243, 0, 212, 226,
460 235, 0, 0, 212, 226, 235, 65, 230, 243, 0,
461 212, 226, 235, 0, 0, 297, 226, 235, 65, 232,
462 243, 0, 297, 226, 235, 0, 0, 297, 226, 235,
463 65, 234, 243, 0, 297, 226, 235, 0, 143, 226,
464 235, 0, 0, 236, 0, 237, 0, 236, 237, 0,
465 32, 94, 94, 238, 110, 110, 0, 239, 0, 238,
466 60, 239, 0, 0, 240, 0, 240, 94, 3, 110,
467 0, 240, 94, 3, 60, 188, 110, 0, 240, 94,
468 188, 110, 0, 157, 0, 7, 0, 8, 0, 9,
469 0, 157, 0, 241, 60, 157, 0, 0, 65, 243,
470 0, 194, 0, 59, 111, 0, 59, 244, 111, 0,
471 59, 244, 60, 111, 0, 1, 0, 243, 0, 244,
472 60, 243, 0, 99, 0, 245, 140, 139, 325, 0,
473 245, 140, 350, 0, 245, 140, 1, 0, 0, 247,
474 246, 141, 0, 104, 194, 109, 0, 104, 1, 109,
475 0, 0, 249, 248, 0, 249, 1, 0, 0, 14,
476 157, 59, 251, 284, 256, 111, 0, 14, 157, 59,
477 111, 0, 0, 14, 59, 252, 284, 256, 111, 0,
478 14, 59, 111, 0, 14, 157, 0, 14, 311, 0,
479 46, 307, 0, 0, 0, 264, 270, 272, 111, 235,
480 253, 249, 254, 247, 0, 264, 0, 0, 60, 0,
481 0, 60, 0, 37, 0, 257, 7, 0, 257, 8,
482 0, 257, 9, 0, 257, 37, 0, 257, 157, 0,
483 257, 159, 0, 257, 305, 157, 0, 257, 313, 305,
484 157, 0, 257, 313, 157, 0, 257, 171, 0, 257,
485 305, 171, 0, 0, 258, 0, 259, 261, 265, 0,
486 260, 265, 0, 257, 59, 0, 263, 0, 262, 0,
487 0, 63, 381, 0, 63, 381, 266, 0, 267, 0,
488 266, 60, 381, 267, 0, 268, 0, 269, 381, 268,
489 0, 307, 0, 293, 0, 31, 94, 178, 110, 0,
490 31, 94, 214, 110, 0, 38, 381, 0, 7, 381,
491 0, 269, 38, 381, 0, 269, 7, 381, 0, 59,
492 0, 0, 271, 0, 271, 273, 0, 272, 38, 63,
493 273, 0, 272, 38, 63, 0, 274, 0, 273, 274,
494 0, 275, 61, 0, 275, 111, 0, 150, 63, 0,
495 150, 96, 0, 150, 25, 0, 150, 59, 0, 61,
496 0, 120, 274, 0, 215, 276, 0, 218, 277, 0,
497 297, 226, 235, 242, 0, 143, 226, 235, 242, 0,
498 63, 194, 0, 1, 0, 218, 149, 226, 235, 242,
499 0, 149, 226, 235, 242, 0, 127, 0, 130, 275,
500 0, 0, 278, 0, 276, 60, 279, 0, 0, 281,
501 0, 277, 60, 283, 0, 280, 0, 281, 0, 282,
502 0, 283, 0, 292, 226, 235, 242, 0, 4, 63,
503 194, 235, 0, 297, 226, 235, 242, 0, 143, 226,
504 235, 242, 0, 3, 63, 194, 235, 0, 63, 194,
505 235, 0, 292, 226, 235, 242, 0, 4, 63, 194,
506 235, 0, 297, 226, 235, 242, 0, 3, 63, 194,
507 235, 0, 63, 194, 235, 0, 285, 0, 284, 60,
508 285, 0, 157, 0, 157, 65, 194, 0, 361, 314,
509 0, 361, 0, 94, 214, 110, 95, 178, 113, 0,
510 0, 287, 9, 0, 9, 0, 288, 9, 0, 0,
511 289, 178, 0, 289, 94, 188, 110, 0, 289, 94,
512 371, 110, 0, 289, 48, 0, 289, 94, 1, 110,
513 0, 81, 288, 292, 0, 71, 288, 292, 0, 81,
514 292, 0, 71, 292, 0, 312, 287, 292, 0, 296,
515 0, 304, 0, 313, 304, 0, 293, 0, 295, 0,
516 313, 295, 0, 305, 304, 0, 296, 291, 287, 383,
517 0, 296, 95, 290, 113, 0, 296, 95, 113, 0,
518 94, 292, 110, 0, 305, 304, 0, 304, 0, 81,
519 288, 297, 0, 71, 288, 297, 0, 81, 297, 0,
520 71, 297, 0, 312, 287, 297, 0, 202, 0, 81,
521 288, 297, 0, 71, 288, 297, 0, 81, 298, 0,
522 71, 298, 0, 312, 287, 297, 0, 299, 0, 202,
523 291, 287, 383, 0, 94, 298, 110, 0, 202, 95,
524 290, 113, 0, 202, 95, 113, 0, 301, 0, 305,
525 201, 0, 305, 199, 0, 305, 198, 0, 305, 195,
526 0, 305, 198, 0, 301, 0, 313, 301, 0, 221,
527 94, 188, 110, 0, 221, 94, 200, 110, 0, 221,
528 213, 0, 4, 0, 5, 0, 171, 0, 306, 0,
529 305, 306, 0, 4, 55, 0, 5, 55, 0, 58,
530 55, 0, 171, 55, 0, 308, 0, 313, 308, 0,
531 309, 157, 0, 310, 0, 309, 310, 0, 4, 55,
532 0, 5, 55, 0, 171, 55, 0, 57, 55, 0,
533 3, 55, 0, 58, 55, 0, 313, 304, 0, 295,
534 0, 313, 295, 0, 305, 81, 0, 313, 305, 81,
535 0, 55, 0, 81, 287, 314, 0, 81, 287, 0,
536 71, 287, 314, 0, 71, 287, 0, 312, 287, 0,
537 312, 287, 314, 0, 315, 0, 95, 178, 113, 0,
538 315, 95, 290, 113, 0, 81, 288, 316, 0, 81,
539 316, 0, 81, 288, 0, 81, 0, 71, 288, 316,
540 0, 71, 316, 0, 71, 288, 0, 71, 0, 312,
541 287, 0, 312, 287, 316, 0, 317, 0, 94, 316,
542 110, 0, 91, 0, 317, 94, 371, 110, 287, 383,
543 0, 317, 48, 287, 383, 0, 317, 95, 290, 113,
544 0, 317, 95, 113, 0, 94, 372, 110, 287, 383,
545 0, 192, 287, 383, 0, 213, 287, 383, 0, 95,
546 290, 113, 0, 95, 113, 0, 333, 0, 319, 0,
547 318, 333, 0, 318, 319, 0, 1, 61, 0, 0,
548 0, 0, 323, 0, 324, 0, 323, 324, 0, 34,
549 241, 61, 0, 326, 0, 1, 326, 0, 0, 59,
550 327, 320, 184, 321, 0, 0, 0, 15, 329, 320,
551 180, 330, 331, 0, 326, 0, 0, 320, 332, 334,
552 321, 0, 326, 0, 334, 0, 211, 0, 178, 61,
553 0, 0, 0, 328, 16, 335, 331, 336, 321, 0,
554 328, 0, 0, 0, 17, 337, 320, 180, 338, 185,
555 321, 0, 0, 0, 18, 339, 331, 17, 340, 179,
556 61, 0, 0, 0, 0, 0, 19, 341, 94, 364,
557 342, 320, 181, 61, 343, 366, 110, 344, 185, 321,
558 0, 0, 0, 20, 320, 94, 182, 110, 345, 331,
559 346, 321, 0, 0, 21, 194, 63, 347, 333, 0,
560 0, 21, 194, 12, 194, 63, 348, 333, 0, 0,
561 22, 63, 349, 333, 0, 23, 61, 0, 24, 61,
562 0, 25, 61, 0, 25, 178, 61, 0, 121, 365,
563 94, 208, 110, 61, 0, 121, 365, 94, 208, 63,
564 367, 110, 61, 0, 121, 365, 94, 208, 63, 367,
565 63, 367, 110, 61, 0, 121, 365, 94, 208, 63,
566 367, 63, 367, 63, 370, 110, 61, 0, 26, 81,
567 178, 61, 0, 26, 157, 61, 0, 363, 333, 0,
568 363, 111, 0, 61, 0, 353, 0, 0, 0, 96,
569 351, 139, 326, 352, 356, 0, 0, 0, 96, 354,
570 326, 355, 356, 0, 357, 0, 356, 357, 0, 0,
571 0, 0, 97, 358, 320, 362, 359, 326, 360, 321,
572 0, 219, 0, 288, 0, 94, 12, 110, 0, 94,
573 380, 110, 0, 3, 63, 0, 57, 63, 0, 4,
574 63, 0, 5, 63, 0, 366, 61, 0, 211, 0,
575 59, 184, 0, 0, 9, 0, 0, 178, 0, 1,
576 0, 0, 368, 0, 369, 0, 368, 60, 369, 0,
577 11, 94, 178, 110, 0, 11, 0, 370, 60, 11,
578 0, 0, 372, 0, 214, 0, 376, 0, 377, 12,
579 0, 376, 12, 0, 214, 12, 0, 12, 0, 98,
580 0, 376, 98, 0, 214, 98, 0, 376, 63, 0,
581 214, 63, 0, 0, 65, 374, 375, 0, 103, 0,
582 243, 0, 378, 0, 380, 373, 0, 377, 379, 0,
583 377, 382, 0, 377, 382, 65, 243, 0, 376, 60,
584 0, 214, 60, 0, 216, 212, 0, 219, 212, 0,
585 221, 212, 0, 216, 316, 0, 216, 0, 218, 297,
586 0, 380, 0, 380, 373, 0, 378, 0, 214, 0,
587 0, 0, 297, 0, 0, 62, 94, 385, 110, 0,
588 62, 48, 0, 214, 0, 384, 0, 385, 60, 384,
589 0, 0, 81, 287, 386, 0, 71, 287, 386, 0,
590 312, 287, 386, 0, 42, 0, 387, 81, 0, 387,
591 82, 0, 387, 83, 0, 387, 79, 0, 387, 80,
592 0, 387, 71, 0, 387, 69, 0, 387, 70, 0,
593 387, 89, 0, 387, 60, 0, 387, 74, 0, 387,
594 75, 0, 387, 76, 0, 387, 73, 0, 387, 64,
595 0, 387, 65, 0, 387, 77, 0, 387, 78, 0,
596 387, 87, 0, 387, 88, 0, 387, 68, 0, 387,
597 67, 0, 387, 112, 0, 387, 66, 63, 0, 387,
598 72, 0, 387, 92, 0, 387, 84, 0, 387, 48,
599 0, 387, 95, 113, 0, 387, 40, 0, 387, 39,
600 0, 387, 40, 95, 113, 0, 387, 39, 95, 113,
601 0, 387, 361, 386, 0, 387, 1, 0
602 };
603
604 #endif
605
606 #if YYDEBUG != 0
607 static const short yyrline[] = { 0,
608 311, 313, 327, 330, 331, 335, 337, 340, 345, 349,
609 355, 357, 360, 363, 367, 370, 372, 374, 377, 379,
610 382, 385, 387, 389, 391, 393, 395, 397, 403, 407,
611 410, 412, 416, 418, 419, 421, 425, 428, 434, 437,
612 439, 444, 447, 451, 454, 457, 469, 473, 491, 501,
613 503, 505, 507, 509, 522, 531, 541, 544, 546, 550,
614 552, 553, 560, 561, 562, 565, 568, 572, 574, 575,
615 578, 580, 583, 586, 588, 592, 602, 604, 614, 623,
616 625, 635, 644, 646, 656, 665, 667, 679, 687, 694,
617 699, 706, 713, 716, 718, 720, 726, 736, 738, 741,
618 744, 746, 749, 751, 755, 764, 767, 769, 773, 786,
619 806, 809, 811, 812, 815, 822, 828, 830, 832, 834,
620 836, 839, 844, 846, 847, 848, 849, 852, 854, 855,
621 858, 860, 861, 864, 869, 869, 873, 873, 876, 876,
622 879, 879, 883, 883, 888, 888, 891, 891, 894, 896,
623 899, 906, 913, 919, 922, 931, 933, 941, 944, 947,
624 950, 954, 957, 960, 963, 965, 967, 969, 973, 976,
625 979, 984, 988, 993, 997, 1000, 1002, 1006, 1026, 1033,
626 1036, 1038, 1039, 1040, 1043, 1054, 1063, 1067, 1071, 1074,
627 1076, 1080, 1083, 1086, 1090, 1093, 1095, 1097, 1099, 1106,
628 1119, 1121, 1123, 1125, 1131, 1134, 1137, 1140, 1143, 1147,
629 1150, 1153, 1157, 1159, 1163, 1167, 1169, 1173, 1176, 1183,
630 1186, 1188, 1196, 1205, 1211, 1218, 1220, 1222, 1235, 1238,
631 1240, 1242, 1244, 1246, 1248, 1250, 1252, 1254, 1256, 1258,
632 1260, 1262, 1264, 1266, 1268, 1270, 1272, 1274, 1276, 1278,
633 1282, 1284, 1286, 1303, 1306, 1307, 1308, 1309, 1310, 1313,
634 1316, 1319, 1323, 1326, 1328, 1333, 1335, 1336, 1339, 1341,
635 1343, 1345, 1349, 1352, 1356, 1358, 1359, 1360, 1364, 1372,
636 1373, 1374, 1382, 1390, 1398, 1400, 1412, 1442, 1449, 1456,
637 1458, 1467, 1472, 1495, 1539, 1540, 1544, 1548, 1552, 1556,
638 1558, 1562, 1564, 1572, 1574, 1579, 1585, 1589, 1594, 1599,
639 1601, 1606, 1621, 1636, 1647, 1659, 1667, 1676, 1720, 1723,
640 1727, 1730, 1734, 1737, 1742, 1744, 1748, 1761, 1764, 1771,
641 1778, 1783, 1785, 1790, 1792, 1799, 1801, 1805, 1809, 1815,
642 1819, 1822, 1825, 1828, 1838, 1840, 1843, 1847, 1850, 1853,
643 1856, 1859, 1865, 1871, 1873, 1878, 1880, 1889, 1892, 1894,
644 1897, 1903, 1905, 1915, 1919, 1922, 1925, 1930, 1933, 1941,
645 1943, 1945, 1947, 1950, 1953, 1968, 1987, 1990, 1992, 1995,
646 1997, 2000, 2002, 2005, 2007, 2010, 2013, 2017, 2036, 2038,
647 2058, 2064, 2065, 2071, 2080, 2082, 2092, 2101, 2103, 2111,
648 2123, 2126, 2130, 2133, 2137, 2142, 2145, 2149, 2152, 2154,
649 2156, 2158, 2165, 2167, 2168, 2169, 2173, 2176, 2180, 2183,
650 2189, 2191, 2194, 2197, 2200, 2206, 2209, 2227, 2233, 2241,
651 2243, 2247, 2249, 2254, 2257, 2260, 2262, 2264, 2268, 2272,
652 2277, 2281, 2284, 2289, 2293, 2296, 2299, 2303, 2338, 2344,
653 2353, 2373, 2375, 2378, 2380, 2385, 2387, 2389, 2391, 2393,
654 2397, 2402, 2407, 2413, 2418, 2423, 2425, 2429, 2434, 2437,
655 2444, 2472, 2478, 2480, 2483, 2486, 2488, 2492, 2494, 2498,
656 2524, 2553, 2556, 2557, 2578, 2601, 2603, 2607, 2618, 2632,
657 2721, 2728, 2731, 2739, 2750, 2759, 2763, 2778, 2781, 2786,
658 2788, 2790, 2792, 2794, 2796, 2801, 2807, 2809, 2812, 2815,
659 2817, 2828, 2833, 2836, 2838, 2843, 2846, 2847, 2858, 2861,
660 2862, 2873, 2875, 2878, 2880, 2883, 2890, 2898, 2905, 2911,
661 2917, 2925, 2929, 2934, 2938, 2941, 2950, 2952, 2956, 2959,
662 2964, 2968, 2973, 2983, 2986, 2990, 2994, 3002, 3007, 3013,
663 3016, 3018, 3020, 3026, 3029, 3031, 3033, 3035, 3039, 3042,
664 3060, 3070, 3072, 3073, 3077, 3082, 3085, 3087, 3089, 3091,
665 3095, 3101, 3104, 3106, 3108, 3110, 3114, 3117, 3120, 3122,
666 3124, 3126, 3130, 3133, 3136, 3138, 3140, 3142, 3149, 3160,
667 3164, 3169, 3173, 3178, 3180, 3184, 3187, 3189, 3193, 3195,
668 3196, 3199, 3201, 3207, 3222, 3228, 3234, 3248, 3250, 3254,
669 3270, 3276, 3291, 3302, 3308, 3310, 3311, 3312, 3320, 3329,
670 3330, 3334, 3337, 3343, 3349, 3352, 3354, 3356, 3358, 3362,
671 3366, 3370, 3373, 3378, 3381, 3383, 3385, 3387, 3389, 3391,
672 3393, 3395, 3399, 3403, 3407, 3411, 3412, 3414, 3416, 3418,
673 3420, 3422, 3424, 3426, 3428, 3436, 3438, 3439, 3440, 3443,
674 3451, 3456, 3463, 3465, 3470, 3472, 3475, 3489, 3492, 3495,
675 3504, 3516, 3527, 3547, 3557, 3560, 3568, 3580, 3583, 3586,
676 3589, 3605, 3608, 3619, 3620, 3624, 3639, 3667, 3679, 3693,
677 3707, 3720, 3739, 3757, 3785, 3793, 3814, 3832, 3845, 3846,
678 3849, 3849, 3852, 3852, 3855, 3855, 3861, 3867, 3870, 3875,
679 3882, 3891, 3900, 3909, 3917, 3930, 3932, 3936, 3938, 3941,
680 3948, 3951, 3959, 3975, 3986, 3998, 4000, 4003, 4013, 4023,
681 4034, 4036, 4038, 4041, 4058, 4064, 4072, 4074, 4076, 4080,
682 4083, 4084, 4092, 4096, 4100, 4103, 4104, 4110, 4113, 4116,
683 4118, 4122, 4127, 4130, 4140, 4145, 4146, 4154, 4160, 4165,
684 4169, 4174, 4178, 4182, 4186, 4191, 4202, 4216, 4220, 4223,
685 4225, 4229, 4233, 4236, 4239, 4241, 4245, 4247, 4254, 4261,
686 4264, 4267, 4271, 4275, 4281, 4285, 4290, 4292, 4295, 4300,
687 4306, 4317, 4320, 4322, 4326, 4331, 4333, 4340, 4343, 4345,
688 4347, 4353, 4358, 4361, 4363, 4365, 4367, 4369, 4371, 4373,
689 4375, 4377, 4379, 4381, 4383, 4385, 4387, 4389, 4391, 4393,
690 4395, 4397, 4399, 4401, 4403, 4405, 4407, 4409, 4411, 4413,
691 4415, 4417, 4419, 4421, 4423, 4426, 4428
692 };
693 #endif
694
695
696 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
697
698 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
699 "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
700 "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
701 "CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","GCC_ASM_KEYWORD",
702 "TYPEOF","ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART",
703 "AGGR","VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE",
704 "TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST",
705 "REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','",
706 "';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
707 "EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
708 "'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY",
709 "PAREN_STAR_PAREN","POINTSAT","'.'","'('","'['","TRY","CATCH","TYPENAME_ELLIPSIS",
710 "PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
711 "DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN",
712 "END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'","program","extdefs",
713 "@1","extdefs_opt",".hush_warning",".warning_ok","extension","asm_keyword","lang_extdef",
714 "@2","extdef","@3","@4","using_decl","any_id","extern_lang_string","template_header",
715 "@5","template_parm_list","maybe_identifier","template_type_parm","template_template_parm",
716 "template_parm","template_def","datadef","ctor_initializer_opt","maybe_return_init",
717 "eat_saved_input","fndef","constructor_declarator","@6","@7","@8","@9","fn.def1",
718 "component_constructor_declarator","fn.def2","return_id","return_init","base_init",
719 ".set_base_init","member_init_list","member_init","identifier","notype_identifier",
720 "identifier_defn","explicit_instantiation","@10","@11","@12","@13","@14","@15",
721 "@16","@17","begin_explicit_instantiation","end_explicit_instantiation","template_type",
722 "self_template_type","template_close_bracket","template_arg_list_opt","template_arg_list",
723 "template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null","xcond",
724 "condition","@18","compstmtend","already_scoped_stmt","@19","nontrivial_exprlist",
725 "nonnull_exprlist","unary_expr","new_placement","new_initializer","regcast_or_absdcl",
726 "cast_expr","expr_no_commas","notype_unqualified_id","do_id","template_id","object_template_id",
727 "unqualified_id","expr_or_declarator","notype_template_declarator","direct_notype_declarator",
728 "primary","@20","new","delete","boolean.literal","string","nodecls","object",
729 "decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1",
730 "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
731 "typespecqual_reserved","initdecls","notype_initdecls","nomods_initdecls","maybeasm",
732 "initdcl0","@21","initdcl","@22","notype_initdcl0","@23","nomods_initdcl0","@24",
733 "maybe_attribute","attributes","attribute","attribute_list","attrib","any_word",
734 "identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline",
735 "pending_inlines","defarg_again","pending_defargs","structsp","@25","@26","@27",
736 "@28","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
737 "named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
738 "do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list",
739 "base_class_list","base_class","base_class.1","base_class_access_list","left_curly",
740 "self_reference","opt.component_decl_list","component_decl_list","component_decl",
741 "component_decl_1","components","notype_components","component_declarator0",
742 "component_declarator","after_type_component_declarator0","notype_component_declarator0",
743 "after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
744 "new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
745 "maybe_parmlist","after_type_declarator","nonnested_type","complete_type_name",
746 "nested_type","direct_after_type_declarator","notype_declarator","complex_notype_declarator",
747 "complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id",
748 "functional_cast","type_name","nested_name_specifier","nested_name_specifier_1",
749 "typename_sub","typename_sub0","typename_sub1","typename_sub2","complex_type_name",
750 "ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl",
751 "direct_abstract_declarator","stmts","errstmt",".pushlevel",".poplevel","maybe_label_decls",
752 "label_decls","label_decl","compstmt_or_error","compstmt","@29","simple_if",
753 "@30","@31","implicitly_scoped_stmt","@32","stmt","simple_stmt","@33","@34",
754 "@35","@36","@37","@38","@39","@40","@41","@42","@43","@44","@45","@46","@47",
755 "function_try_block","@48","@49","try_block","@50","@51","handler_seq","handler",
756 "@52","@53","@54","type_specifier_seq","handler_args","label_colon","for.init.statement",
757 "maybe_cv_qualifier","xexpr","asm_operands","nonnull_asm_operands","asm_operand",
758 "asm_clobbers","parmlist","complex_parmlist","defarg","@55","defarg1","parms",
759 "parms_comma","named_parm","full_parm","parm","see_typename","bad_parm","exception_specification_opt",
760 "ansi_raise_identifier","ansi_raise_identifiers","conversion_declarator","operator",
761 "operator_name", NULL
762 };
763 #endif
764
765 static const short yyr1[] = { 0,
766 114, 114, 116, 115, 115, 117, 117, 118, 119, 120,
767 121, 121, 123, 122, 124, 124, 124, 124, 124, 124,
768 124, 125, 124, 126, 124, 124, 124, 124, 124, 127,
769 127, 127, 128, 128, 128, 128, 129, 129, 131, 130,
770 130, 132, 132, 133, 133, 134, 134, 135, 136, 136,
771 136, 136, 136, 136, 137, 137, 138, 138, 138, 138,
772 138, 138, 138, 138, 138, 139, 139, 140, 140, 140,
773 141, 141, 142, 142, 142, 144, 143, 143, 145, 143,
774 143, 146, 143, 143, 147, 143, 143, 148, 148, 148,
775 148, 148, 149, 149, 149, 149, 150, 150, 150, 150,
776 150, 150, 150, 150, 151, 152, 152, 152, 153, 154,
777 155, 155, 155, 155, 156, 156, 156, 156, 156, 156,
778 156, 156, 157, 157, 157, 157, 157, 158, 158, 158,
779 159, 159, 159, 161, 160, 162, 160, 163, 160, 164,
780 160, 165, 160, 166, 160, 167, 160, 168, 160, 169,
781 170, 171, 171, 171, 172, 173, 173, 174, 174, 175,
782 175, 176, 176, 177, 177, 177, 177, 177, 178, 178,
783 179, 179, 180, 180, 181, 181, 181, 183, 182, 182,
784 184, 184, 184, 184, 186, 185, 185, 187, 187, 187,
785 187, 188, 188, 189, 189, 189, 189, 189, 189, 189,
786 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
787 189, 189, 189, 189, 189, 189, 189, 190, 190, 191,
788 191, 191, 191, 192, 192, 193, 193, 193, 194, 194,
789 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
790 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
791 194, 194, 194, 195, 195, 195, 195, 195, 195, 196,
792 197, 197, 198, 198, 198, 199, 199, 199, 200, 200,
793 200, 200, 201, 201, 202, 202, 202, 202, 203, 203,
794 203, 203, 203, 203, 203, 204, 203, 203, 203, 203,
795 203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
796 203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
797 203, 203, 203, 203, 203, 203, 203, 203, 205, 205,
798 206, 206, 207, 207, 208, 208, 209, 210, 210, 211,
799 211, 211, 211, 211, 211, 212, 212, 213, 213, 214,
800 214, 214, 214, 214, 215, 215, 216, 216, 216, 216,
801 216, 216, 217, 217, 217, 217, 217, 218, 218, 218,
802 218, 218, 218, 219, 219, 219, 219, 220, 220, 221,
803 221, 221, 221, 221, 221, 221, 222, 222, 222, 223,
804 223, 224, 224, 225, 225, 226, 226, 228, 227, 227,
805 230, 229, 229, 232, 231, 231, 234, 233, 233, 233,
806 235, 235, 236, 236, 237, 238, 238, 239, 239, 239,
807 239, 239, 240, 240, 240, 240, 241, 241, 242, 242,
808 243, 243, 243, 243, 243, 244, 244, 245, 246, 246,
809 246, 247, 247, 248, 248, 249, 249, 249, 251, 250,
810 250, 252, 250, 250, 250, 250, 250, 253, 254, 250,
811 250, 255, 255, 256, 256, 257, 257, 257, 257, 257,
812 258, 259, 260, 260, 260, 260, 260, 261, 262, 262,
813 262, 263, 264, 264, 265, 265, 265, 266, 266, 267,
814 267, 268, 268, 268, 268, 269, 269, 269, 269, 270,
815 271, 272, 272, 272, 272, 273, 273, 274, 274, 274,
816 274, 274, 274, 274, 274, 275, 275, 275, 275, 275,
817 275, 275, 275, 275, 275, 276, 276, 276, 277, 277,
818 277, 278, 278, 279, 279, 280, 280, 281, 281, 281,
819 281, 282, 282, 283, 283, 283, 284, 284, 285, 285,
820 286, 286, 286, 287, 287, 288, 288, 289, 290, 291,
821 291, 291, 291, 292, 292, 292, 292, 292, 292, 293,
822 293, 294, 294, 294, 295, 296, 296, 296, 296, 296,
823 296, 297, 297, 297, 297, 297, 297, 298, 298, 298,
824 298, 298, 298, 299, 299, 299, 299, 299, 299, 300,
825 300, 301, 301, 302, 302, 303, 303, 303, 304, 304,
826 304, 305, 305, 306, 306, 306, 306, 307, 307, 308,
827 309, 309, 310, 310, 310, 310, 310, 310, 311, 311,
828 311, 312, 312, 313, 314, 314, 314, 314, 314, 314,
829 314, 315, 315, 316, 316, 316, 316, 316, 316, 316,
830 316, 316, 316, 316, 317, 317, 317, 317, 317, 317,
831 317, 317, 317, 317, 317, 318, 318, 318, 318, 319,
832 320, 321, 322, 322, 323, 323, 324, 325, 325, 327,
833 326, 329, 330, 328, 331, 332, 331, 333, 333, 334,
834 334, 335, 336, 334, 334, 337, 338, 334, 339, 340,
835 334, 341, 342, 343, 344, 334, 345, 346, 334, 347,
836 334, 348, 334, 349, 334, 334, 334, 334, 334, 334,
837 334, 334, 334, 334, 334, 334, 334, 334, 334, 351,
838 352, 350, 354, 355, 353, 356, 356, 358, 359, 360,
839 357, 361, 361, 362, 362, 363, 363, 363, 363, 364,
840 364, 364, 365, 365, 366, 366, 366, 367, 367, 368,
841 368, 369, 370, 370, 371, 371, 371, 372, 372, 372,
842 372, 372, 372, 372, 372, 372, 372, 374, 373, 375,
843 375, 376, 376, 376, 376, 376, 377, 377, 378, 378,
844 378, 378, 378, 378, 379, 379, 380, 380, 381, 382,
845 382, 383, 383, 383, 384, 385, 385, 386, 386, 386,
846 386, 387, 388, 388, 388, 388, 388, 388, 388, 388,
847 388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
848 388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
849 388, 388, 388, 388, 388, 388, 388
850 };
851
852 static const short yyr2[] = { 0,
853 0, 1, 0, 2, 2, 1, 0, 0, 0, 1,
854 1, 1, 0, 2, 2, 1, 1, 5, 4, 5,
855 4, 0, 6, 0, 5, 5, 2, 4, 2, 2,
856 3, 3, 1, 1, 2, 2, 1, 2, 0, 5,
857 3, 1, 3, 1, 0, 2, 2, 3, 1, 3,
858 1, 3, 1, 3, 2, 2, 2, 3, 3, 2,
859 2, 2, 2, 2, 1, 1, 1, 0, 1, 2,
860 0, 1, 4, 3, 3, 0, 8, 5, 0, 9,
861 6, 0, 8, 5, 0, 9, 6, 2, 2, 1,
862 2, 1, 6, 4, 6, 4, 2, 1, 2, 2,
863 1, 2, 1, 2, 2, 2, 4, 2, 3, 0,
864 0, 1, 3, 2, 3, 1, 4, 2, 4, 2,
865 4, 2, 1, 1, 1, 1, 1, 1, 1, 1,
866 1, 1, 1, 0, 6, 0, 6, 0, 5, 0,
867 5, 0, 7, 0, 7, 0, 6, 0, 6, 0,
868 0, 4, 4, 1, 4, 1, 1, 0, 1, 1,
869 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
870 1, 3, 1, 3, 0, 1, 1, 0, 7, 1,
871 1, 3, 4, 3, 0, 3, 1, 3, 3, 3,
872 3, 1, 1, 1, 2, 2, 2, 2, 2, 2,
873 2, 4, 2, 4, 2, 3, 3, 4, 4, 5,
874 5, 6, 2, 4, 5, 2, 2, 3, 3, 3,
875 1, 3, 2, 3, 4, 1, 2, 5, 1, 3,
876 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
877 3, 3, 3, 3, 3, 3, 3, 3, 5, 3,
878 3, 1, 2, 3, 1, 1, 1, 1, 1, 0,
879 5, 5, 5, 5, 5, 1, 1, 1, 1, 2,
880 2, 3, 4, 4, 1, 1, 1, 3, 1, 1,
881 1, 1, 3, 3, 3, 0, 4, 4, 2, 4,
882 2, 2, 1, 4, 1, 7, 7, 7, 7, 4,
883 4, 2, 2, 1, 4, 2, 2, 5, 3, 2,
884 2, 5, 3, 5, 3, 4, 6, 2, 1, 2,
885 1, 2, 1, 1, 1, 2, 0, 2, 2, 3,
886 3, 3, 2, 2, 2, 1, 1, 1, 2, 2,
887 2, 2, 1, 1, 1, 1, 2, 2, 3, 3,
888 3, 4, 1, 2, 2, 2, 1, 1, 1, 2,
889 2, 2, 1, 1, 2, 2, 3, 1, 2, 1,
890 1, 1, 4, 4, 4, 4, 1, 1, 1, 1,
891 3, 1, 3, 1, 3, 0, 4, 0, 6, 3,
892 0, 6, 3, 0, 6, 3, 0, 6, 3, 3,
893 0, 1, 1, 2, 6, 1, 3, 0, 1, 4,
894 6, 4, 1, 1, 1, 1, 1, 3, 0, 2,
895 1, 2, 3, 4, 1, 1, 3, 1, 4, 3,
896 3, 0, 3, 3, 3, 0, 2, 2, 0, 7,
897 4, 0, 6, 3, 2, 2, 2, 0, 0, 9,
898 1, 0, 1, 0, 1, 1, 2, 2, 2, 2,
899 2, 2, 3, 4, 3, 2, 3, 0, 1, 3,
900 2, 2, 1, 1, 0, 2, 3, 1, 4, 1,
901 3, 1, 1, 4, 4, 2, 2, 3, 3, 1,
902 0, 1, 2, 4, 3, 1, 2, 2, 2, 2,
903 2, 2, 2, 1, 2, 2, 2, 4, 4, 2,
904 1, 5, 4, 1, 2, 0, 1, 3, 0, 1,
905 3, 1, 1, 1, 1, 4, 4, 4, 4, 4,
906 3, 4, 4, 4, 4, 3, 1, 3, 1, 3,
907 2, 1, 6, 0, 2, 1, 2, 0, 2, 4,
908 4, 2, 4, 3, 3, 2, 2, 3, 1, 1,
909 2, 1, 1, 2, 2, 4, 4, 3, 3, 2,
910 1, 3, 3, 2, 2, 3, 1, 3, 3, 2,
911 2, 3, 1, 4, 3, 4, 3, 1, 2, 2,
912 2, 2, 2, 1, 2, 4, 4, 2, 1, 1,
913 1, 1, 2, 2, 2, 2, 2, 1, 2, 2,
914 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
915 2, 2, 3, 1, 3, 2, 3, 2, 2, 3,
916 1, 3, 4, 3, 2, 2, 1, 3, 2, 2,
917 1, 2, 3, 1, 3, 1, 6, 4, 4, 3,
918 5, 3, 3, 3, 2, 1, 1, 2, 2, 2,
919 0, 0, 0, 1, 1, 2, 3, 1, 2, 0,
920 5, 0, 0, 6, 1, 0, 4, 1, 1, 1,
921 2, 0, 0, 6, 1, 0, 0, 7, 0, 0,
922 7, 0, 0, 0, 0, 14, 0, 0, 9, 0,
923 5, 0, 7, 0, 4, 2, 2, 2, 3, 6,
924 8, 10, 12, 4, 3, 2, 2, 1, 1, 0,
925 0, 6, 0, 0, 5, 1, 2, 0, 0, 0,
926 8, 1, 1, 3, 3, 2, 2, 2, 2, 2,
927 1, 2, 0, 1, 0, 1, 1, 0, 1, 1,
928 3, 4, 1, 3, 0, 1, 1, 1, 2, 2,
929 2, 1, 1, 2, 2, 2, 2, 0, 3, 1,
930 1, 1, 2, 2, 2, 4, 2, 2, 2, 2,
931 2, 2, 1, 2, 1, 2, 1, 1, 0, 0,
932 1, 0, 4, 2, 1, 1, 3, 0, 3, 3,
933 3, 1, 2, 2, 2, 2, 2, 2, 2, 2,
934 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
935 2, 2, 2, 2, 2, 3, 2, 2, 2, 2,
936 3, 2, 2, 4, 4, 3, 2
937 };
938
939 static const short yydefact[] = { 3,
940 13, 13, 5, 0, 4, 0, 257, 599, 600, 0,
941 359, 371, 546, 0, 11, 12, 0, 0, 0, 10,
942 456, 802, 0, 0, 0, 150, 624, 258, 259, 65,
943 0, 0, 789, 0, 37, 0, 0, 14, 0, 8,
944 0, 17, 16, 71, 92, 68, 0, 601, 154, 276,
945 255, 277, 577, 0, 346, 0, 345, 364, 0, 384,
946 363, 403, 370, 0, 469, 468, 475, 474, 473, 451,
947 358, 562, 372, 563, 90, 275, 588, 560, 0, 602,
948 544, 0, 0, 256, 63, 64, 158, 604, 158, 605,
949 158, 260, 150, 123, 124, 125, 126, 127, 442, 445,
950 0, 620, 0, 446, 0, 0, 0, 0, 124, 125,
951 126, 127, 24, 0, 0, 0, 0, 0, 0, 0,
952 447, 608, 0, 611, 0, 0, 0, 0, 0, 0,
953 30, 0, 0, 39, 0, 158, 606, 0, 0, 575,
954 0, 0, 0, 574, 0, 0, 0, 0, 276, 0,
955 548, 0, 275, 544, 29, 0, 27, 3, 38, 0,
956 56, 55, 72, 15, 0, 401, 0, 0, 419, 69,
957 61, 607, 548, 0, 544, 62, 0, 0, 0, 88,
958 0, 380, 336, 559, 337, 571, 0, 544, 361, 360,
959 60, 91, 347, 0, 382, 362, 89, 353, 377, 378,
960 348, 366, 368, 357, 379, 0, 57, 404, 457, 458,
961 459, 460, 472, 132, 131, 133, 461, 462, 466, 0,
962 0, 475, 789, 471, 490, 491, 547, 365, 0, 401,
963 600, 0, 622, 154, 592, 593, 589, 565, 603, 0,
964 564, 561, 0, 837, 833, 832, 830, 812, 817, 818,
965 0, 824, 823, 809, 810, 808, 827, 816, 813, 814,
966 815, 819, 820, 806, 807, 803, 804, 805, 829, 821,
967 822, 811, 828, 0, 825, 732, 364, 733, 798, 260,
968 257, 546, 280, 325, 0, 0, 0, 0, 321, 319,
969 293, 323, 324, 0, 0, 0, 0, 0, 259, 252,
970 0, 0, 165, 164, 0, 166, 167, 0, 0, 168,
971 0, 0, 159, 160, 0, 226, 0, 229, 163, 279,
972 194, 0, 0, 281, 282, 0, 162, 343, 364, 344,
973 594, 304, 295, 0, 0, 0, 0, 158, 0, 444,
974 0, 439, 621, 619, 0, 169, 170, 0, 0, 0,
975 408, 3, 22, 0, 617, 613, 614, 616, 618, 615,
976 123, 124, 125, 126, 127, 610, 612, 609, 267, 268,
977 0, 266, 33, 34, 0, 591, 590, 32, 31, 41,
978 0, 359, 140, 0, 0, 364, 138, 0, 0, 573,
979 0, 572, 254, 271, 0, 581, 270, 0, 580, 0,
980 278, 585, 0, 0, 13, 0, 150, 9, 9, 0,
981 400, 402, 105, 75, 110, 720, 0, 67, 66, 74,
982 108, 0, 0, 106, 70, 587, 0, 0, 552, 0,
983 792, 0, 557, 0, 556, 0, 0, 0, 0, 544,
984 401, 0, 59, 548, 544, 570, 0, 350, 351, 0,
985 58, 401, 355, 354, 356, 349, 369, 386, 385, 463,
986 467, 465, 0, 470, 476, 0, 0, 367, 399, 544,
987 76, 0, 0, 0, 544, 82, 545, 576, 600, 623,
988 154, 0, 0, 826, 831, 366, 544, 544, 0, 544,
989 836, 158, 0, 0, 0, 201, 0, 0, 203, 216,
990 217, 0, 0, 0, 0, 0, 253, 200, 197, 196,
991 198, 0, 0, 0, 0, 0, 279, 0, 0, 0,
992 195, 156, 157, 273, 0, 199, 0, 0, 227, 0,
993 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
995 0, 289, 291, 292, 329, 328, 0, 0, 0, 0,
996 0, 205, 542, 0, 213, 326, 318, 0, 789, 307,
997 310, 311, 0, 0, 338, 641, 637, 646, 0, 548,
998 544, 544, 544, 340, 644, 0, 598, 342, 0, 0,
999 341, 306, 0, 302, 320, 322, 595, 0, 303, 153,
1000 155, 0, 148, 0, 364, 146, 539, 454, 537, 441,
1001 0, 373, 0, 0, 374, 375, 376, 414, 415, 416,
1002 413, 0, 406, 409, 0, 3, 0, 28, 36, 35,
1003 45, 0, 0, 0, 49, 53, 42, 788, 783, 0,
1004 343, 364, 45, 344, 787, 51, 151, 136, 134, 151,
1005 152, 274, 579, 578, 278, 582, 0, 19, 21, 71,
1006 0, 111, 327, 0, 670, 73, 668, 425, 0, 421,
1007 420, 193, 0, 192, 549, 586, 0, 762, 763, 0,
1008 757, 364, 0, 756, 758, 790, 772, 0, 0, 584,
1009 555, 554, 0, 0, 569, 0, 390, 381, 568, 0,
1010 792, 558, 352, 383, 396, 401, 464, 599, 600, 789,
1011 0, 789, 601, 477, 478, 480, 789, 483, 482, 0,
1012 511, 600, 0, 504, 0, 0, 514, 0, 103, 98,
1013 0, 154, 516, 519, 0, 496, 0, 101, 0, 401,
1014 397, 792, 755, 158, 158, 158, 792, 755, 544, 79,
1015 544, 85, 835, 834, 798, 798, 798, 0, 0, 0,
1016 0, 598, 0, 0, 0, 0, 364, 0, 0, 0,
1017 285, 0, 283, 284, 0, 224, 161, 426, 452, 0,
1018 251, 250, 747, 746, 0, 248, 247, 245, 246, 244,
1019 243, 242, 239, 240, 241, 237, 238, 232, 233, 234,
1020 235, 236, 230, 231, 0, 0, 0, 0, 0, 0,
1021 207, 221, 0, 0, 206, 544, 544, 0, 544, 541,
1022 631, 0, 0, 0, 0, 309, 0, 313, 0, 315,
1023 0, 640, 639, 636, 635, 788, 0, 0, 655, 0,
1024 0, 792, 339, 792, 642, 544, 755, 548, 641, 637,
1025 0, 0, 544, 0, 0, 0, 0, 0, 261, 151,
1026 144, 142, 151, 0, 455, 0, 454, 191, 190, 189,
1027 188, 408, 0, 0, 25, 0, 26, 47, 44, 45,
1028 0, 40, 0, 0, 641, 637, 0, 779, 544, 782,
1029 784, 0, 780, 781, 46, 461, 0, 141, 151, 151,
1030 139, 18, 20, 387, 128, 116, 129, 130, 0, 109,
1031 112, 0, 0, 0, 0, 669, 661, 422, 0, 107,
1032 553, 550, 761, 778, 767, 765, 0, 551, 760, 777,
1033 766, 764, 759, 791, 774, 785, 775, 768, 773, 794,
1034 0, 388, 567, 566, 394, 393, 487, 0, 486, 789,
1035 789, 789, 0, 544, 755, 510, 505, 104, 515, 401,
1036 401, 502, 503, 500, 501, 544, 755, 257, 599, 0,
1037 386, 99, 506, 517, 522, 523, 386, 386, 0, 0,
1038 386, 97, 507, 520, 386, 497, 498, 499, 401, 0,
1039 448, 0, 78, 0, 0, 0, 0, 84, 0, 792,
1040 755, 792, 755, 800, 799, 801, 262, 294, 202, 204,
1041 300, 301, 0, 0, 0, 0, 284, 287, 0, 0,
1042 225, 0, 288, 290, 219, 218, 209, 0, 208, 223,
1043 0, 0, 628, 626, 0, 629, 548, 214, 0, 0,
1044 316, 0, 0, 0, 638, 634, 645, 544, 654, 652,
1045 653, 643, 792, 0, 650, 0, 596, 597, 0, 305,
1046 149, 151, 151, 147, 540, 538, 443, 0, 407, 405,
1047 257, 0, 23, 48, 43, 50, 54, 640, 636, 641,
1048 637, 0, 560, 0, 544, 642, 52, 137, 135, 0,
1049 114, 0, 118, 0, 120, 0, 122, 0, 721, 663,
1050 0, 423, 641, 637, 0, 279, 0, 594, 786, 0,
1051 0, 795, 796, 0, 0, 0, 391, 0, 0, 0,
1052 489, 488, 481, 792, 0, 419, 419, 792, 0, 0,
1053 0, 401, 401, 0, 401, 401, 0, 401, 0, 419,
1054 0, 436, 398, 544, 264, 263, 265, 544, 81, 0,
1055 87, 0, 0, 0, 0, 0, 427, 228, 249, 0,
1056 210, 211, 220, 222, 627, 625, 632, 630, 0, 215,
1057 0, 308, 312, 314, 792, 648, 544, 649, 145, 143,
1058 440, 0, 410, 412, 640, 636, 565, 642, 115, 113,
1059 0, 0, 0, 0, 0, 181, 662, 0, 664, 665,
1060 424, 0, 597, 776, 770, 771, 769, 0, 793, 389,
1061 395, 0, 484, 485, 479, 94, 544, 509, 513, 96,
1062 544, 401, 401, 531, 419, 257, 599, 0, 518, 524,
1063 525, 386, 386, 419, 419, 0, 419, 521, 508, 0,
1064 792, 792, 544, 544, 0, 0, 0, 0, 0, 212,
1065 633, 317, 651, 792, 0, 117, 119, 121, 728, 722,
1066 726, 417, 0, 671, 0, 257, 599, 600, 672, 686,
1067 689, 692, 661, 0, 0, 0, 0, 0, 0, 258,
1068 718, 723, 0, 743, 0, 680, 0, 0, 364, 0,
1069 657, 678, 685, 656, 679, 719, 0, 666, 284, 797,
1070 392, 792, 792, 530, 527, 529, 0, 0, 401, 401,
1071 401, 526, 528, 512, 438, 0, 437, 432, 77, 83,
1072 792, 792, 296, 297, 298, 299, 543, 647, 411, 661,
1073 727, 0, 667, 660, 184, 736, 738, 739, 661, 661,
1074 661, 0, 0, 0, 704, 706, 707, 708, 0, 0,
1075 0, 737, 0, 335, 744, 0, 681, 333, 386, 0,
1076 334, 0, 386, 0, 0, 0, 182, 659, 658, 682,
1077 717, 716, 93, 95, 401, 401, 536, 419, 419, 0,
1078 0, 450, 80, 86, 0, 418, 0, 0, 676, 675,
1079 0, 0, 0, 0, 700, 0, 709, 0, 715, 724,
1080 0, 331, 332, 0, 0, 0, 330, 183, 661, 535,
1081 533, 532, 534, 435, 434, 428, 68, 71, 0, 729,
1082 173, 0, 673, 687, 0, 690, 663, 741, 693, 0,
1083 180, 0, 364, 0, 0, 0, 705, 714, 0, 0,
1084 683, 0, 433, 0, 0, 0, 0, 661, 0, 662,
1085 0, 742, 661, 740, 697, 386, 702, 701, 725, 748,
1086 0, 662, 431, 0, 430, 734, 735, 730, 174, 674,
1087 185, 662, 187, 677, 171, 0, 0, 0, 661, 401,
1088 0, 0, 0, 749, 750, 710, 684, 429, 662, 663,
1089 688, 0, 691, 177, 0, 176, 698, 0, 703, 0,
1090 748, 0, 0, 731, 186, 172, 694, 662, 178, 0,
1091 0, 711, 751, 0, 699, 0, 752, 0, 0, 0,
1092 179, 753, 0, 712, 695, 0, 0, 0, 754, 713,
1093 662, 696, 0, 0, 0
1094 };
1095
1096 static const short yydefgoto[] = { 1533,
1097 405, 2, 406, 160, 659, 311, 165, 3, 4, 38,
1098 626, 352, 727, 371, 40, 728, 381, 634, 878, 635,
1099 636, 637, 42, 43, 417, 168, 164, 44, 729, 743,
1100 1001, 748, 1003, 46, 730, 731, 169, 170, 418, 662,
1101 910, 911, 607, 912, 218, 47, 900, 899, 650, 647,
1102 1063, 1062, 863, 860, 135, 898, 48, 49, 524, 312,
1103 313, 314, 315, 1285, 1477, 1423, 1495, 1432, 1516, 1197,
1104 1472, 1490, 346, 852, 316, 561, 815, 317, 318, 347,
1105 320, 338, 51, 236, 373, 394, 52, 53, 321, 519,
1106 322, 323, 324, 325, 419, 326, 1286, 458, 582, 327,
1107 1287, 55, 201, 640, 328, 202, 497, 203, 181, 194,
1108 59, 441, 182, 1115, 459, 1212, 195, 1116, 60, 992,
1109 411, 61, 62, 622, 623, 624, 1263, 424, 778, 779,
1110 1417, 1418, 1382, 1317, 1240, 63, 611, 341, 1142, 1318,
1111 1020, 866, 64, 65, 66, 67, 222, 68, 69, 70,
1112 224, 714, 715, 716, 717, 226, 466, 467, 735, 736,
1113 737, 973, 983, 974, 1229, 975, 976, 1230, 1231, 608,
1114 609, 562, 842, 330, 427, 428, 175, 183, 72, 73,
1115 74, 184, 185, 152, 76, 131, 331, 332, 333, 78,
1116 334, 80, 719, 122, 123, 124, 104, 81, 335, 820,
1117 821, 837, 585, 1290, 1291, 1389, 1264, 1198, 1199, 1200,
1118 666, 1292, 917, 1293, 1339, 1448, 1391, 1425, 1294, 1295,
1119 1409, 1462, 1340, 1449, 1341, 1451, 1342, 1453, 1514, 1528,
1120 1479, 1508, 1436, 1481, 1396, 420, 663, 1194, 1296, 1353,
1121 1439, 1260, 1261, 1330, 1446, 1489, 1434, 1420, 1297, 1429,
1122 1356, 785, 1483, 1484, 1485, 1523, 683, 684, 939, 1111,
1123 1207, 685, 686, 687, 935, 688, 145, 937, 690, 1113,
1124 1114, 491, 83, 84
1125 };
1126
1127 static const short yypact[] = { 208,
1128 211,-32768,-32768, 5271,-32768, 49, 147, 53, 70, 151,
1129 207,-32768,-32768, 799,-32768,-32768, 233, 265, 286,-32768,
1130 -32768,-32768, 869, 522, 909, 226,-32768, 241, 75,-32768,
1131 1223, 1223,-32768, 8672,-32768, 5271, 294,-32768, 347, 299,
1132 5583,-32768,-32768, 285, 1145, 417, 387, 416,-32768,-32768,
1133 -32768,-32768, 159, 1297,-32768, 3960,-32768, 1693, 473,-32768,
1134 461,-32768,-32768, 1651,-32768,-32768, 434,-32768,-32768, 471,
1135 3925,-32768,-32768,-32768, 806,-32768,-32768,-32768, 836,-32768,
1136 -32768, 755, 5693, 429,-32768,-32768, 8925,-32768, 8925,-32768,
1137 8925,-32768,-32768,-32768, 53, 70, 241, 468, 430, 487,
1138 416,-32768, 755,-32768, 755, 8925, 8925, 474,-32768,-32768,
1139 -32768,-32768,-32768, 76, 523, 464, 489, 593, 541, 560,
1140 -32768,-32768, 937,-32768, 944, 53, 70, 370, 241, 468,
1141 -32768, 2008, 970, 553, 5823, 8925,-32768, 8925, 3322,-32768,
1142 1027, 840, 3322,-32768, 1303, 4154, 4154, 8672, 542, 548,
1143 575, 568, 578,-32768,-32768, 644,-32768, 592,-32768, 3431,
1144 49,-32768,-32768,-32768, 620, 461, 715, 143, 330, 668,
1145 -32768,-32768, 610, 107,-32768,-32768, 4661, 4661, 10186, 806,
1146 573,-32768,-32768, 227,-32768,-32768, 1153,-32768,-32768,-32768,
1147 -32768,-32768, 1693, 631,-32768, 461, 806,-32768,-32768,-32768,
1148 2039, 1693,-32768, 461,-32768, 10227,-32768,-32768,-32768,-32768,
1149 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 416, 1558,
1150 1558, 434,-32768,-32768,-32768,-32768,-32768, 1096, 755, 461,
1151 562, 1562,-32768, 166,-32768,-32768,-32768,-32768,-32768, 4766,
1152 -32768,-32768, 215,-32768, 637, 650,-32768,-32768,-32768,-32768,
1153 708,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1154 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1155 -32768,-32768,-32768, 673,-32768,-32768, 1096, 3925, 1395,-32768,
1156 -32768, 681,-32768,-32768, 9540, 9627, 9714, 9714,-32768,-32768,
1157 -32768,-32768,-32768, 685, 718, 721, 733, 747, 468, 9012,
1158 1303, 9714,-32768,-32768, 9714,-32768,-32768, 9714, 6914,-32768,
1159 9714, 287, 745,-32768, 9714,-32768, 9099,-32768, 5121,-32768,
1160 1544, 3642, 9186,-32768, 812, 2255,-32768, 2094, 3938, 3218,
1161 -32768, 266,-32768, 2235, 1121, 287, 287, 8925, 5823,-32768,
1162 1303, 714,-32768,-32768, 717, 768, 10326, 719, 725, 742,
1163 1141, 592,-32768, 370,-32768,-32768,-32768,-32768,-32768,-32768,
1164 523, 464, 489, 593, 541,-32768,-32768,-32768, 53, 70,
1165 771,-32768,-32768,-32768, 970,-32768,-32768,-32768,-32768,-32768,
1166 5467,-32768,-32768, 10227, 4986, 1768,-32768, 287, 529,-32768,
1167 273,-32768,-32768,-32768, 3322,-32768,-32768, 3322,-32768, 750,
1168 -32768,-32768, 4766, 85, 737, 758,-32768,-32768,-32768, 644,
1169 -32768, 461,-32768,-32768,-32768,-32768, 100,-32768,-32768,-32768,
1170 -32768, 7006, 9012,-32768,-32768,-32768, 9012, 762,-32768, 6432,
1171 84, 4969,-32768, 4969,-32768, 5173, 5173, 10186, 779,-32768,
1172 461, 10227,-32768, 778,-32768,-32768, 7870, 2039, 1693, 10227,
1173 -32768, 461,-32768,-32768, 461, 2039,-32768, 670,-32768,-32768,
1174 416,-32768, 1558,-32768, 1541, 1850, 46, 1096, 837,-32768,
1175 -32768, 828, 830, 834,-32768,-32768,-32768,-32768, 587,-32768,
1176 309, 797, 802,-32768,-32768, 1096,-32768,-32768, 333,-32768,
1177 -32768, 8925, 9012, 681, 6914,-32768, 381, 6914,-32768,-32768,
1178 -32768, 8925, 4335, 4335, 4335, 4335, 10371,-32768,-32768,-32768,
1179 -32768, 809, 9801, 9801, 6914, 824, 542, 826, 884, 835,
1180 -32768,-32768,-32768,-32768, 8925,-32768, 7006, 6914,-32768, 9012,
1181 9012, 7098, 9012, 9012, 9012, 9012, 9012, 9012, 9012, 9012,
1182 9012, 9012, 9012, 9012, 9012, 9012, 9012, 9012, 9012, 9012,
1183 9012,-32768,-32768,-32768,-32768,-32768, 9012, 9012, 9012, 8925,
1184 3159, 384, 1032, 7737,-32768,-32768,-32768, 903, 947, 391,
1185 393, 396, 2917, 840,-32768, 1424, 1424,-32768, 2976, 852,
1186 875, 929,-32768,-32768, 324, 8368, 1732,-32768, 618, 755,
1187 -32768,-32768, 9012,-32768,-32768,-32768,-32768, 204,-32768,-32768,
1188 -32768, 287,-32768, 10227, 1921,-32768, 913, 925,-32768,-32768,
1189 1303,-32768, 7466, 7558,-32768,-32768,-32768,-32768,-32768,-32768,
1190 -32768, 83,-32768, 893, 879, 592, 939,-32768,-32768,-32768,
1191 1459, 226, 966, 280, 940, 943,-32768,-32768, 2819, 10122,
1192 2819, 4057, 1651, 4644,-32768, 945,-32768,-32768,-32768,-32768,
1193 -32768,-32768,-32768,-32768, 894,-32768, 948,-32768,-32768, 285,
1194 93, 177, 953, 884,-32768,-32768,-32768,-32768, 6542, 10371,
1195 -32768, 768, 907, 10326,-32768,-32768, 911,-32768,-32768, 916,
1196 445, 4869, 919,-32768, 126, 3677, 969, 981, 490,-32768,
1197 -32768,-32768, 4969, 4969,-32768, 7870, 982,-32768,-32768, 922,
1198 84,-32768, 2039,-32768, 987, 461,-32768, 464, 489,-32768,
1199 960,-32768, 560, 978,-32768,-32768, 104,-32768,-32768, 1622,
1200 -32768, 722, 1113,-32768, 9012, 9957,-32768, 3072, 369, 369,
1201 492, 519, 1946, 10018, 4267,-32768, 87, 369, 995, 461,
1202 -32768, 84, 2191, 8925, 8925, 8925, 84, 2191,-32768,-32768,
1203 -32768,-32768,-32768,-32768, 1309, 1309, 1309, 287, 951, 952,
1204 9279, 929, 954, 956, 957, 994, 4405, 998, 999, 1004,
1205 -32768, 971,-32768,-32768, 985,-32768,-32768,-32768, 1023, 988,
1206 10371, 10371,-32768,-32768, 1029, 10298, 10388, 4706, 2853, 5454,
1207 2334, 2734, 2554, 2554, 2554, 1764, 1764, 848, 848, 623,
1208 623, 623,-32768,-32768, 992, 993, 996, 1001, 1005, 4335,
1209 384,-32768, 7006, 9012,-32768,-32768,-32768, 9012,-32768,-32768,
1210 1014, 9714, 1009, 1025, 1081,-32768, 9012,-32768, 9012,-32768,
1211 9012, 2650,-32768, 2650,-32768, 178, 1020, 1022,-32768, 1026,
1212 4335, 84,-32768, 84, 3517,-32768, 2191, 1028, 8560, 8560,
1213 6240, 1041, 9099, 1043, 1647, 1121, 730, 1052,-32768,-32768,
1214 -32768,-32768,-32768, 9012, 1303, 1024, 925,-32768, 10371,-32768,
1215 10371, 1141, 1056, 9366,-32768, 1063,-32768,-32768,-32768, 2523,
1216 5467,-32768, 4335, 8925, 2064, 2064, 2680,-32768,-32768,-32768,
1217 -32768, 1153,-32768,-32768,-32768, 405, 9012,-32768,-32768,-32768,
1218 -32768,-32768,-32768,-32768, 523,-32768, 593, 541, 9012, 1115,
1219 -32768, 545, 552, 571, 884,-32768,-32768,-32768, 66,-32768,
1220 -32768,-32768,-32768,-32768,-32768,-32768, 8464,-32768,-32768,-32768,
1221 -32768,-32768,-32768,-32768,-32768, 981, 1116,-32768,-32768,-32768,
1222 4335,-32768,-32768,-32768,-32768, 1117,-32768, 8925,-32768,-32768,
1223 -32768,-32768, 967,-32768, 2191, 10371,-32768,-32768,-32768, 461,
1224 461,-32768,-32768,-32768,-32768,-32768, 2191, 54, 270, 9012,
1225 670,-32768, 1120,-32768,-32768,-32768, 410, 600, 836, 840,
1226 767, 369, 1125,-32768, 790,-32768,-32768,-32768, 461, 7806,
1227 -32768, 7006,-32768, 1080, 287, 287, 287,-32768, 1082, 84,
1228 2191, 84, 2191,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1229 -32768,-32768, 1107, 1109, 1118, 1126, 894,-32768, 6634, 1098,
1230 -32768, 9012,-32768,-32768,-32768,-32768, 58, 1111,-32768,-32768,
1231 1112, 26, 984, 984, 1106, 984,-32768,-32768, 9714, 1216,
1232 -32768, 1133, 1134, 1135,-32768,-32768,-32768,-32768,-32768,-32768,
1233 -32768,-32768, 84, 1137,-32768, 1142,-32768,-32768, 1828,-32768,
1234 -32768,-32768,-32768,-32768, 10371,-32768,-32768, 1119,-32768,-32768,
1235 134, 1147,-32768,-32768,-32768,-32768,-32768, 2311, 2311, 2454,
1236 2454, 2680,-32768, 1153,-32768, 2749, 5121,-32768,-32768, 1148,
1237 -32768, 177,-32768, 9012,-32768, 9012,-32768, 9012,-32768, 55,
1238 6726,-32768, 8653, 8653, 6336, 556, 1149, 626,-32768, 7006,
1239 6818,-32768,-32768, 152, 7006, 7006,-32768, 1150, 1151, 1541,
1240 -32768,-32768,-32768, 84, 1154, 1166, 1166, 84, 1157, 9012,
1241 9012, 10258, 461, 3803, 461, 461, 743, 461, 8579, 1166,
1242 7877,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1158,
1243 -32768, 1165, 9012, 9012, 9012, 9012,-32768,-32768, 10371, 9012,
1244 -32768, 58,-32768,-32768,-32768,-32768,-32768,-32768, 1163,-32768,
1245 1229,-32768,-32768,-32768, 84,-32768,-32768,-32768,-32768,-32768,
1246 -32768, 9012,-32768,-32768, 2311, 2311,-32768, 2749,-32768,-32768,
1247 1173, 1177, 1178, 1193, 1303,-32768,-32768, 6130, 1257,-32768,
1248 -32768, 1185, 2076,-32768,-32768,-32768,-32768, 4335,-32768,-32768,
1249 -32768, 7006,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1250 -32768, 10258, 10258,-32768, 1166, 158, 807, 9012,-32768,-32768,
1251 -32768, 670, 670, 1166, 1166, 587, 1166,-32768,-32768, 5883,
1252 84, 84,-32768,-32768, 1188, 1199, 1200, 1206, 1202,-32768,
1253 -32768,-32768,-32768, 84, 1209,-32768,-32768,-32768,-32768, 1193,
1254 -32768,-32768, 666,-32768, 156, 1258, 841, 845,-32768,-32768,
1255 -32768,-32768,-32768, 9012, 1261, 1259, 1264, 8746, 479, 389,
1256 -32768,-32768, 8838, 1318, 1267,-32768, 10179, 10063, 10167, 5998,
1257 -32768,-32768, 1313,-32768,-32768,-32768, 7972,-32768, 726,-32768,
1258 -32768, 84, 84,-32768,-32768,-32768, 9012, 9012, 10258, 461,
1259 461,-32768,-32768,-32768,-32768, 7650,-32768,-32768,-32768,-32768,
1260 84, 84,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1261 -32768, 1303,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1262 884, 1240, 1247, 2364,-32768,-32768,-32768,-32768, 1281, 9012,
1263 1282,-32768, 884,-32768,-32768, 1252,-32768,-32768, 670, 692,
1264 -32768, 723, 670, 9453, 738, 179,-32768,-32768,-32768,-32768,
1265 -32768,-32768,-32768,-32768, 10258, 10258,-32768, 1166, 1166, 1239,
1266 10280, 1250,-32768,-32768, 1256,-32768, 583, 583,-32768,-32768,
1267 1334, 5399, 8925, 9012,-32768, 8082,-32768, 1296,-32768,-32768,
1268 644,-32768,-32768, 9888, 9888, 7190,-32768,-32768, 884,-32768,
1269 -32768,-32768,-32768,-32768,-32768,-32768, 417, 285, 4834,-32768,
1270 -32768, 8925,-32768,-32768, 8274,-32768, 55,-32768,-32768, 1298,
1271 -32768, 1255, 544, 10227, 10349, 8082,-32768,-32768, 1193, 61,
1272 -32768, 150,-32768, 1260, 1265, 884, 1266, 884, 8178,-32768,
1273 596,-32768,-32768,-32768,-32768, 670,-32768,-32768, 1193, 1358,
1274 1310,-32768,-32768, 100,-32768,-32768,-32768,-32768,-32768,-32768,
1275 -32768,-32768,-32768,-32768,-32768, 9012, 1316, 7282, 884, 461,
1276 8082, 1285, 222, 1322,-32768,-32768,-32768,-32768,-32768, 55,
1277 -32768, 1274,-32768,-32768, 1324,-32768,-32768, 1331,-32768, 9012,
1278 1358, 1326, 1358,-32768,-32768,-32768,-32768,-32768,-32768, 1287,
1279 234,-32768,-32768, 7374,-32768, 7006,-32768, 1392, 1344, 1302,
1280 -32768,-32768, 257,-32768,-32768, 1396, 1345, 8178,-32768,-32768,
1281 -32768,-32768, 1408, 1413,-32768
1282 };
1283
1284 static const short yypgoto[] = {-32768,
1285 1417,-32768, -324,-32768, 1010, 2, -1, 1418,-32768, 380,
1286 -32768,-32768, 955, 1068,-32768, 6,-32768,-32768, -594,-32768,
1287 -32768, 555,-32768, 1280, -651, 17, -646, 1283, 32,-32768,
1288 -32768,-32768,-32768,-32768, 710, 728,-32768,-32768,-32768,-32768,
1289 -32768, 357, 275,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1290 -32768,-32768,-32768,-32768, 1365, -477, 5094, -55, -311, -29,
1291 1327, -514,-32768, 33,-32768, 79,-32768, -1317,-32768, -1306,
1292 -59,-32768, 1205, 900, -241,-32768, -778, 4490, -60, 3985,
1293 3318, 1198,-32768, -74, -62, 973, -78, -32,-32768,-32768,
1294 -32768, -294,-32768, -149,-32768,-32768, -1214, -33, -321, 4058,
1295 23, -194, -137, 50, 164, -180, -4, -120, -831, 185,
1296 -32768, -25,-32768,-32768, -35,-32768,-32768,-32768,-32768,-32768,
1297 616, -39, 19,-32768, 612,-32768,-32768, -758, -347, 816,
1298 -32768,-32768,-32768,-32768,-32768, 64,-32768,-32768,-32768,-32768,
1299 -32768, 622, -352,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1300 1268,-32768, 371, 539,-32768,-32768,-32768,-32768, 504, -680,
1301 770,-32768,-32768,-32768,-32768,-32768, 769,-32768, 363, 885,
1302 642, 949, 2764, 133, 45, -405, 1328, 1777, -431,-32768,
1303 8,-32768, 4657, -142, 136, -67, 3747, 1182,-32768, 3183,
1304 1539, 1194, -15, -109,-32768, 1390,-32768, 1914, 2451, -684,
1305 -32768, 2714,-32768,-32768, 230, -894, -848,-32768,-32768, 322,
1306 59, -213,-32768,-32768,-32768,-32768, -1179,-32768, -1178, -1331,
1307 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1308 -32768,-32768,-32768,-32768,-32768, 80,-32768,-32768,-32768,-32768,
1309 -32768, 95, -1209,-32768,-32768,-32768, -52,-32768,-32768,-32768,
1310 -32768, -1335, 31,-32768, 36,-32768, -648, -487, 599,-32768,
1311 -32768,-32768,-32768, -366,-32768, -363, -170,-32768, 662, 328,
1312 -32768, 0,-32768, -202
1313 };
1314
1315
1316 #define YYLAST 10473
1317
1318
1319 static const short yytable[] = { 58,
1320 237, 151, 37, 396, 399, 36, 404, 587, 121, 41,
1321 777, 915, 449, 903, 645, 368, 196, 646, 204, 166,
1322 180, 102, 1100, 234, 600, 601, 54, 625, 643, 474,
1323 279, 58, 1029, 718, 37, 45, 58, 36, 700, 37,
1324 596, 41, 36, 496, 499, 957, 41, 468, 895, 230,
1325 1331, 193, 465, 56, 986, 448, 1430, 376, 54, 336,
1326 374, 337, 237, 54, 456, 379, 228, 45, 1354, 377,
1327 378, 566, 45, 575, 671, 529, 651, 652, 277, 208,
1328 454, 457, 329, 739, 329, 56, 329, 192, 1195, 241,
1329 56, 838, 477, 1450, 994, 566, 486, 174, 838, 999,
1330 664, 329, 329, 566, 1447, 812, 388, 88, 237, 85,
1331 951, 1369, 343, 151, 151, 151, 1130, 1473, 1372, 761,
1332 1452, 205, 813, 1460, 90, 1101, 412, 89, 87, 137,
1333 386, 329, 599, 329, 353, 1164, 71, 929, 345, 349,
1334 354, 952, 872, 414, 91, 689, 151, 987, 486, 138,
1335 1463, 814, 1160, 204, 429, 58, 740, 384, 665, 86,
1336 1496, 455, 204, 139, 143, 1196, 383, 57, 71, 153,
1337 1461, 452, 901, 71, 840, 762, 1102, 1428, 1520, 905,
1338 708, 709, 54, 1505, 385, 930, 639, 481, 931, 923,
1339 412, 45, 873, 1182, 657, 174, 1473, 988, 1054, 57,
1340 430, -327, 904, 667, 57, 415, -548, -1, -327, 56,
1341 -2, 1208, 415, 475, 208, 278, 1334, 1437, 8, 479,
1342 1307, 87, 208, 932, 906, 92, 500, 501, 174, 1441,
1343 913, 27, 87, 907, 908, 639, 241, 924, 416, 1334,
1344 925, 509, 289, 1183, 510, 416, 276, 511, 1161, 1331,
1345 521, 570, -548, 173, 526, 93, 205, 1458, 27, 476,
1346 661, 1209, 565, 571, 205, 205, 1335, 71, 1470, 563,
1347 909, 129, 130, 228, -548, 926, 126, 127, 395, 398,
1348 880, 153, 153, 153, 1501, 1074, 374, 776, 100, 1408,
1349 859, 205, 71, 396, 399, 480, 1518, 114, 57, 1497,
1350 134, 876, 1499, 596, 329, 775, 1125, 630, 602, 432,
1351 434, 703, 629, 592, 153, 136, 1526, 277, 1129, 645,
1352 -548, 444, 936, 57, 88, 228, 106, 454, 457, 129,
1353 130, 1502, 1131, 329, 605, 454, 126, 127, 217, 881,
1354 205, 516, 241, 1519, 89, 196, 204, 457, 1165, 1166,
1355 648, 1168, 1150, 480, 1152, 882, 751, 158, 107, 593,
1356 587, 604, 522, 838, 523, 457, 1527, 1218, 1219, 1077,
1357 603, 846, 281, 369, 370, 10, 642, 421, 1343, 108,
1358 193, 1239, 1061, 1250, 639, 1064, 633, 156, 385, 129,
1359 130, 639, 205, 163, 422, 15, 16, 366, 159, 838,
1360 -386, 412, 752, 151, 151, 151, 698, 157, 455, 204,
1361 732, 22, 412, 233, 704, 155, 455, 847, 848, 393,
1362 162, 1088, 1089, 423, 27, 682, 28, 299, 575, -386,
1363 208, 812, 706, -386, -336, 1385, 15, 16, 826, 838,
1364 828, 167, 1056, 830, 1387, 1388, 1007, 171, 813, 205,
1365 916, 1352, 509, 510, 278, 1360, 923, 1365, 33, 675,
1366 986, 58, 758, 136, -44, 1030, 1306, 726, -336, -44,
1367 172, 71, -336, 208, 761, 1312, 1313, 814, 1314, -386,
1368 -44, 94, 109, 110, 827, 276, 829, 329, 733, 831,
1369 329, 639, 19, 329, 460, 462, 223, 329, 767, 767,
1370 767, 767, 57, 280, 924, -336, 473, 925, 563, -788,
1371 329, 205, 205, 644, 645, 734, 962, 646, 356, 205,
1372 329, 718, 137, 329, 115, 116, 117, 516, 643, 225,
1373 516, 205, 206, 207, 764, 111, 112, 940, 89, 947,
1374 340, 949, 926, 357, 641, 342, 953, 516, 639, 205,
1375 963, 199, 200, 639, 964, 329, 277, 14, 1478, 1350,
1376 516, 596, 644, 91, 784, 204, 966, 351, 693, 694,
1377 861, 153, 153, 153, 642, 508, 27, 355, 118, 119,
1378 21, 682, 454, 941, 1179, 1180, 486, 965, 525, 24,
1379 806, 575, 1093, 641, 838, 359, 823, 241, 71, 1095,
1380 196, 1474, 204, -276, 522, 888, 523, 893, 894, 470,
1381 368, 529, 967, 1487, 360, 121, 90, 838, 1097, 1412,
1382 1413, 8, 9, 1491, -337, 621, 15, 16, 380, 57,
1383 1421, 1169, 442, 443, 749, 193, 91, 761, 1094, 228,
1384 1504, 90, 204, 1475, 1143, 1096, 914, 358, 894, -276,
1385 -276, -269, 639, 599, 284, 471, 639, 401, -337, 1515,
1386 913, 91, -337, 455, 1098, -269, 412, 136, 205, 173,
1387 732, 1157, 732, -588, 129, 130, 1422, 402, 732, 732,
1388 750, 642, 1532, 1145, 1146, 1147, 639, -583, 718, 1476,
1389 450, 451, 639, 278, 196, -337, 15, 16, 233, 972,
1390 412, 1099, -7, 960, 961, 205, 550, 551, 832, 834,
1391 762, 644, 989, 410, 995, 996, 997, 413, 644, -588,
1392 -588, 58, 426, 58, 276, 1332, 1333, 726, 425, 193,
1393 58, 482, 639, 8, 9, -588, 726, 707, 642, 329,
1394 329, 329, 641, 642, 483, 205, 126, 1236, 733, 641,
1395 733, 442, 1402, 1157, 1004, 1005, 1006, 733, 8, 9,
1396 639, 1038, 1204, 1206, 971, 981, 205, 1210, 1211, 954,
1397 484, 1443, 639, -278, 493, 734, 90, 734, 502, 1120,
1398 1121, 1122, 450, 1403, 734, 485, 129, 130, 509, 510,
1399 1464, -102, 503, 15, 16, 504, 91, 442, 1407, 129,
1400 130, 94, 95, 96, 525, 767, 639, 505, 639, 1032,
1401 480, 129, 130, 237, -100, 955, 15, 16, 644, -278,
1402 -278, 506, 566, 480, 610, -102, 612, 613, 615, -102,
1403 205, 628, 15, 16, 616, -272, 767, -386, 7, 8,
1404 231, 10, 642, 126, 127, 469, 682, -6, -100, 641,
1405 1035, 617, -100, 27, 151, 97, 98, 99, 71, 655,
1406 71, 88, -102, 241, 1301, -386, -386, 71, 658, 1308,
1407 -386, 94, 109, 110, 676, 644, 642, 22, 767, 329,
1408 644, 89, 642, 516, 232, -100, 633, 639, 695, 57,
1409 699, 57, 28, 29, 151, 88, 129, 130, 57, 90,
1410 237, 741, 744, 1337, 745, 879, 641, 1338, 746, 753,
1411 639, 641, 126, 127, 754, 89, 233, 896, 771, 91,
1412 412, 412, 682, 234, 33, 111, 112, 113, 547, 548,
1413 549, 550, 551, 773, 732, 774, 767, 396, 399, 361,
1414 362, 363, 665, 329, 776, 1133, 115, 116, 117, 412,
1415 642, 1135, 1136, 128, 825, 1133, 1138, 824, 39, 1136,
1416 396, 399, 642, 27, 839, 129, 130, 762, 841, 115,
1417 708, 709, 281, 369, 370, 10, 843, 864, 1170, 644,
1418 1118, 832, 834, 644, 865, 58, 874, 126, 127, 875,
1419 39, 726, 477, 364, 365, 39, 642, 711, 642, 877,
1420 118, 119, 21, -272, 883, 237, 150, 884, 902, 897,
1421 641, 22, 733, 644, 641, 415, 920, 1078, 1079, 644,
1422 921, 27, 153, 118, 119, 922, 28, 299, 928, 7,
1423 126, 127, 10, -787, 943, 126, 127, 950, 27, 734,
1424 129, 130, 509, 510, 641, 938, 942, 151, 151, 151,
1425 641, 945, 645, 948, 816, 1445, 697, 990, 33, 644,
1426 1008, 1009, 153, 1010, 817, 1011, 1012, 705, 22, 1013,
1427 151, 151, 151, 1014, 1015, 232, 914, 642, 818, 1016,
1428 1017, 481, 1019, 28, 29, 732, 27, 644, 129, 130,
1429 641, 1022, 412, 412, 1018, 412, 412, 1021, 412, 644,
1430 682, 1023, 816, 199, 200, 1024, 1025, 233, 1037, 14,
1431 1026, 762, 817, 1040, 1027, 33, 126, 127, 641, 397,
1432 400, 1039, 71, 594, 8, 9, 818, 1390, 1041, 1047,
1433 641, 1048, 21, 644, 1067, 644, 58, 516, 1049, 1400,
1434 1055, 24, 726, 94, 109, 110, 621, 618, 619, 620,
1435 1057, 150, 1058, 57, 879, 7, 8, 9, 10, 289,
1436 595, 1060, 22, 733, 641, 1070, 641, 27, 1521, 129,
1437 130, 15, 16, 1073, 1092, 27, -386, 129, 130, 1134,
1438 1110, 1117, 412, 412, 1139, 1245, 1246, 1247, 1248, 1144,
1439 734, 1148, 1249, 1289, 22, 1390, 1284, 111, 112, 1283,
1440 1153, 232, 1154, 767, -386, -386, 1310, 1311, 1158, 28,
1441 29, 1155, 1185, 1186, 644, 153, 153, 153, 1167, 1156,
1442 1162, 1163, 521, 1171, 639, 7, 126, 127, 10, 1181,
1443 422, 13, 1468, 233, 1390, 1185, 1186, 644, 153, 153,
1444 153, 33, 1172, 1173, 1174, 641, 1177, 1288, 196, 204,
1445 667, 1440, 486, 1359, 1178, 1359, 1184, 1189, 1203, 1213,
1446 1214, 396, 399, 1217, 22, 1390, 1221, 1243, 641, 412,
1447 412, 412, 239, 71, 1244, 1251, 1252, 27, 1289, 28,
1448 29, 518, 1256, 193, 1283, 1289, 1257, 1258, 1284, 1259,
1449 1195, 1283, 1289, 31, 1299, 1284, 239, 1323, 1283, 7,
1450 8, 9, 10, 32, 57, 94, 109, 110, 1324, 1325,
1451 1349, 33, 126, 127, 1327, 1326, 34, 477, 1329, 1346,
1452 1336, 946, 673, 1345, 1347, 239, 1355, 1357, 1370, 680,
1453 71, 151, 1288, 1392, 239, 412, 412, 452, 22, 1288,
1454 1393, 1397, 1399, 509, 510, 1401, 1288, 1414, 1416, 1419,
1455 1426, 27, 205, 28, 29, 991, 1438, 176, 1454, 111,
1456 112, 57, 944, 27, 1455, 129, 130, 177, 1482, 1466,
1457 1486, 151, 151, 151, 1467, 1469, 1493, 178, 1500, 487,
1458 239, 1503, 1398, 1506, 1507, 33, 1512, 1289, 1433, 488,
1459 179, 1289, 759, 1283, 1284, 1509, 1517, 1283, 126, 127,
1460 1456, 329, 1522, 993, 1524, 1530, 1529, 1534, 998, 397,
1461 400, 1525, 1535, 239, 642, 71, 1, 1433, 660, 5,
1462 1289, 627, 71, 1284, 784, 1431, 1283, 126, 127, 71,
1463 1480, 1289, 13, 1442, 1284, 1075, 239, 1283, 516, 408,
1464 412, 1288, 409, 982, 1289, 1288, 57, 1284, 1190, 27,
1465 1283, 129, 130, 57, 1431, 958, 805, 339, 807, 808,
1466 57, 361, 362, 363, 389, 487, 1424, 518, 1531, 1262,
1467 518, 575, 1362, 1433, 1288, 488, 1289, 492, 27, 1284,
1468 129, 130, 1283, 1069, 919, 1288, 397, 772, 1068, 464,
1469 1215, 1123, 858, 1141, 576, 867, 205, 959, 1288, 153,
1470 518, 1238, 984, 1050, 577, 1051, 1066, 572, 1492, 811,
1471 1431, 445, 367, 27, 578, 364, 365, 579, 580, 1368,
1472 1298, 1465, 1488, 1289, 71, 278, 1284, 239, 71, 1283,
1473 1288, 1511, 1510, 1459, 1109, 1300, 693, 694, 1513, 153,
1474 153, 153, 79, 115, 708, 709, 784, 710, 0, 0,
1475 0, 644, 103, 1351, 278, 57, 276, 71, 854, 57,
1476 94, 95, 96, 132, 94, 109, 110, 472, 71, 141,
1477 141, 711, 141, 0, 79, 1126, 1127, 1288, 712, 79,
1478 0, 71, 641, 0, 239, 276, 0, 0, 57, 0,
1479 0, 552, 187, 0, 79, 27, 0, 118, 119, 57,
1480 0, 0, 220, 22, 1140, 0, 1386, 0, 0, 103,
1481 278, 0, 57, 71, 97, 98, 0, 0, 111, 112,
1482 243, 103, 0, 0, 115, 708, 709, 672, 0, 0,
1483 553, 554, 0, 0, 672, 555, 556, 557, 558, 0,
1484 0, 276, 0, 103, 57, 0, 0, 0, 0, 281,
1485 8, 9, 10, 94, 95, 96, 239, 209, 210, 211,
1486 71, 1149, 0, 1151, 0, 0, 132, 0, 0, 0,
1487 0, 132, 0, 79, 0, 0, 0, 141, 118, 119,
1488 391, 141, 239, 0, 141, 141, 141, 212, 22, 0,
1489 0, 57, 0, 0, 0, 232, 0, 672, 79, 198,
1490 199, 200, 0, 28, 299, 27, 14, 97, 98, 213,
1491 0, 0, 0, 1031, 1176, 187, 187, 187, 0, 0,
1492 0, 0, 0, 0, 19, 0, 1042, 233, 1043, 21,
1493 1044, 0, 0, 854, 0, 33, 0, 0, 24, 0,
1494 -544, 0, 0, -544, 187, 0, 0, 1224, 1225, 0,
1495 1234, 1235, 0, 1237, 0, 214, 215, 216, 0, 463,
1496 0, 672, 0, 672, 672, 0, 239, 103, 0, 0,
1497 0, 0, 0, 1072, 198, 199, 200, 0, 141, 843,
1498 0, 14, 239, 0, 0, 1216, 0, 0, 0, 1220,
1499 672, -544, 0, -544, -544, 0, -544, 672, 0, 19,
1500 0, 0, 0, 0, 21, 0, 0, -544, 1090, -544,
1501 0, 0, 0, 24, 0, 0, 103, 489, 0, 0,
1502 0, 0, 397, 772, 0, -544, -544, 0, 649, -544,
1503 281, 8, 9, 10, 0, 0, 1253, 1304, 1305, 0,
1504 0, -544, 545, 546, 547, 548, 549, 550, 551, 0,
1505 721, 0, 7, 8, 722, 10, 382, 12, 13, 150,
1506 103, 0, 0, 14, 573, 0, 489, 489, 589, 22,
1507 0, 0, 0, 0, 0, 0, 232, 79, 17, 0,
1508 18, 19, 20, 0, 28, 299, 21, -492, 0, 0,
1509 0, 22, 132, 0, 0, 24, 723, 0, 632, 1107,
1510 0, 0, 1319, 1320, 27, 0, 28, 29, 480, 0,
1511 724, 0, 725, 132, 0, 1328, 33, 0, 0, 103,
1512 31, 0, 187, 103, 1377, 1378, 1379, 198, 199, 200,
1513 32, 0, 0, 141, 14, 0, 141, 0, 33, 0,
1514 0, 141, 0, 34, 0, 0, 0, 154, 968, 969,
1515 9, 10, 19, 433, 435, 439, 0, 21, 0, 0,
1516 -492, 0, 0, 1373, 1374, 672, 24, 188, 0, 0,
1517 187, 0, 187, 0, 187, 187, 187, 0, 0, 0,
1518 187, 862, 1383, 1384, 0, 187, 0, 22, 187, 0,
1519 1410, 1411, 0, 1191, 0, 1192, 0, 1193, 0, 0,
1520 27, 0, 28, 29, 79, 0, 0, 0, 970, 0,
1521 281, 369, 370, 10, 0, 0, 177, 0, 672, 0,
1522 0, 0, 0, 0, 0, 0, 178, 0, 0, 0,
1523 0, 672, 0, 672, 33, 672, 0, 0, 0, 179,
1524 0, 103, 103, 103, 103, 453, 199, 200, 239, 22,
1525 239, 0, 14, 397, 400, 0, 232, 0, 0, 154,
1526 154, 154, 0, 0, 28, 299, 7, 8, 9, 10,
1527 19, 0, 13, 0, 0, 21, 397, 1202, 672, 0,
1528 0, 1255, 0, 0, 24, 239, 0, -278, 0, 0,
1529 188, 188, 440, 0, 0, 1498, 33, 126, 127, 103,
1530 0, 489, -278, -278, 0, 22, 0, -278, 0, 0,
1531 0, 575, 573, 672, 489, 489, 0, 589, 27, 188,
1532 28, 29, 0, -278, 855, 0, 0, 0, 857, 0,
1533 0, 672, 0, 0, 885, -278, -278, 0, -278, 0,
1534 -278, 575, 187, 0, 886, 0, 0, 0, 27, 0,
1535 129, 130, 33, 0, 578, 0, 0, 887, 580, 0,
1536 0, 0, 0, 0, 576, 0, 0, 0, 0, -278,
1537 -278, 0, 239, -278, 577, 0, 0, 187, 892, 187,
1538 187, 220, 589, 0, 578, -278, 0, 579, 580, 0,
1539 0, 0, 490, 0, 8, 9, 0, 382, 12, 13,
1540 0, 0, 678, 0, 14, 0, 0, 0, 691, 0,
1541 692, 0, 433, 435, 439, 0, 0, 0, 0, 17,
1542 187, 18, 19, 702, 892, 0, 0, 21, 0, 0,
1543 0, 187, 187, 0, 187, 0, 24, 281, 8, 9,
1544 10, 583, 583, 583, 0, 27, 0, 129, 130, 0,
1545 0, 0, 239, 0, 0, 567, 0, 281, 369, 370,
1546 10, 132, 568, 0, 79, 0, 79, 0, 0, 0,
1547 0, 979, 79, 79, 0, 0, 22, 239, 0, 0,
1548 0, 103, 0, 232, 0, 0, 103, 0, 679, 0,
1549 0, 28, 299, 489, 489, 489, 22, 188, 672, 0,
1550 672, 0, 672, 232, 0, 489, 0, 0, 0, 27,
1551 0, 28, 299, 7, 8, 9, 10, 0, 0, 227,
1552 0, 0, 0, 33, 0, 0, 0, 0, 0, 0,
1553 239, 0, 0, 0, 0, 0, 1107, 0, 0, 0,
1554 0, 0, 0, 569, 0, 188, 0, 188, 103, 440,
1555 440, 440, 22, 0, 0, 188, 0, 0, 575, 0,
1556 188, 0, 0, 188, 0, 27, 0, 28, 29, 0,
1557 489, 0, 489, 0, 0, 1394, 0, 397, 1202, 103,
1558 0, 885, 0, 489, 0, 103, 672, 855, 855, 855,
1559 0, 886, 0, 0, 1059, 0, 0, 0, 0, 33,
1560 0, 578, 0, 0, 887, 580, 539, 540, 541, 542,
1561 543, 544, 545, 546, 547, 548, 549, 550, 551, 103,
1562 0, 103, 0, 187, 187, 1084, 1395, 530, 531, 532,
1563 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,
1564 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
1565 0, 0, 0, 0, 82, 0, 7, 8, 9, 10,
1566 0, 0, 13, 0, 105, 1084, 0, 0, 0, 691,
1567 692, 0, 702, 0, 125, 133, 819, 0, 0, 103,
1568 0, 142, 142, 0, 142, 0, 82, 0, 0, 583,
1569 583, 82, 583, 103, 0, 22, 0, 0, 0, 583,
1570 0, 575, 0, 0, 142, 103, 82, 0, 27, 977,
1571 28, 29, 0, 0, 221, 0, 0, 188, 1137, 0,
1572 0, 229, 0, 0, 1080, 94, 109, 110, 79, 209,
1573 210, 211, 0, 229, 1081, 0, 0, 0, 0, 103,
1574 0, 103, 33, 0, 578, 0, 0, 1082, 580, 0,
1575 0, 0, 889, 0, 889, 889, 0, 583, 0, 212,
1576 0, 0, 0, 0, 0, 0, 0, 0, 672, 0,
1577 0, 489, 489, 0, 489, 0, 0, 0, 375, 111,
1578 112, 0, 0, 0, 0, 82, 0, 0, 0, 142,
1579 0, 0, 0, 142, 0, 889, 142, 142, 142, 0,
1580 0, 0, 0, 0, 0, 0, 188, 188, 0, 188,
1581 82, 0, 0, 0, 0, 0, 187, 187, 187, 187,
1582 1084, 0, 0, 0, 187, 0, 0, 142, 142, 142,
1583 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
1584 0, 1084, 1084, 1084, 0, 0, 188, 0, 0, 0,
1585 0, 0, 0, 126, 127, 0, 142, 0, 227, 0,
1586 0, 433, 435, 439, 0, 0, 0, 0, 490, 490,
1587 490, 0, 187, 0, 0, 0, 0, 141, 0, 79,
1588 583, 0, 7, 8, 9, 10, 382, 12, 13, 0,
1589 142, 678, 0, 14, 0, 0, 0, 575, 0, 0,
1590 0, 0, 0, 439, 27, 0, 129, 130, 17, 0,
1591 18, 19, 0, 0, 0, 0, 21, 0, 0, 0,
1592 576, 22, 0, 187, 187, 24, 187, 575, 229, 142,
1593 577, 0, 0, 0, 27, 0, 28, 29, 0, 0,
1594 578, 0, 0, 579, 580, 583, 103, 583, 0, 0,
1595 1080, 7, 8, 9, 10, 0, 0, 477, 583, 0,
1596 1081, 0, 583, 583, 583, 0, 0, 0, 33, 0,
1597 578, 0, 229, 1082, 580, 0, 574, 679, 142, 142,
1598 590, 0, 0, 0, 0, 598, 0, 0, 0, 82,
1599 22, 0, 0, 0, 0, 0, 575, 0, 889, 889,
1600 1085, 0, 0, 27, 375, 28, 29, 540, 541, 542,
1601 543, 544, 545, 546, 547, 548, 549, 550, 551, 885,
1602 0, 7, 8, 9, 10, 187, 892, 187, 0, 886,
1603 0, 229, 0, 0, 142, 229, 0, 33, 0, 578,
1604 1085, 0, 887, 580, 240, 142, 0, 0, 142, 0,
1605 0, 0, 0, 142, 691, 692, 433, 435, 439, 0,
1606 22, 0, 702, 0, 0, 0, 575, 0, 0, 0,
1607 0, 0, 0, 27, 0, 28, 29, 0, 0, 433,
1608 435, 439, 142, 0, 142, 0, 142, 142, 142, 885,
1609 0, 0, 142, 0, 0, 0, 0, 142, 0, 886,
1610 142, 0, 1084, 0, 0, 0, 0, 33, 0, 578,
1611 1232, 0, 887, 580, 0, 720, 82, 403, 0, 281,
1612 126, 127, 10, 537, 538, 539, 540, 541, 542, 543,
1613 544, 545, 546, 547, 548, 549, 550, 551, 431, 0,
1614 0, 0, 1084, 1084, 1084, 0, 819, 819, 0, 819,
1615 0, 447, 0, 229, 229, 229, 229, 103, 22, 0,
1616 0, 691, 692, 0, 702, 232, 0, 0, 0, 0,
1617 0, 0, 187, 28, 299, 0, 0, 0, 0, 8,
1618 9, 0, 382, 12, 13, 0, 0, 678, 0, 14,
1619 0, 889, 889, 1085, 1085, 1085, 0, 0, 0, 889,
1620 0, 0, 0, 0, 17, 33, 18, 19, 0, 0,
1621 0, 229, 21, 142, 0, 0, 1085, 1085, 1085, 0,
1622 0, 24, 0, 575, 0, 0, 142, 142, 0, 590,
1623 27, 0, 129, 130, 0, 0, 856, 0, 0, 0,
1624 0, 584, 588, 591, 0, 0, 576, 188, 598, 0,
1625 0, 0, 0, 0, 142, 0, 577, 0, 0, 0,
1626 0, 0, 0, 0, 0, 0, 578, 0, 0, 579,
1627 580, 0, 721, 679, 7, 8, 722, 10, 382, 12,
1628 13, 125, 0, 0, 0, 14, 0, 0, 0, 142,
1629 590, 142, 142, 221, 590, 0, 0, 0, 889, 889,
1630 17, 889, 18, 19, 0, 0, 0, 0, 21, 0,
1631 0, 0, 720, 22, 0, 0, 0, 24, 723, 0,
1632 632, 0, 0, 0, 0, 0, 27, 0, 28, 29,
1633 0, 0, 142, 0, 725, 0, 590, 0, 0, 0,
1634 439, 0, 31, 142, 142, 0, 142, 0, 0, 0,
1635 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
1636 33, 0, 8, 9, 0, 34, 12, 13, 0, 0,
1637 0, 0, 14, 133, 0, 0, 82, 0, 82, 0,
1638 433, 435, 439, 980, 82, 82, 0, 17, 0, 18,
1639 0, 0, 0, 229, 0, 21, 0, 0, 229, 0,
1640 188, 0, 188, 696, 24, 142, 142, 142, 701, 0,
1641 0, 0, 0, 27, 0, 129, 130, 142, 0, 0,
1642 0, 8, 9, 0, 0, 12, 227, 0, 0, 0,
1643 0, 14, 0, 742, 0, 0, 186, 0, 747, 0,
1644 0, 0, 0, 0, 0, 0, 17, 0, 18, 0,
1645 755, 756, 810, 757, 21, 0, 0, 0, 0, 0,
1646 229, 238, 0, 24, 242, 575, 0, 0, 0, 0,
1647 0, 0, 27, 0, 129, 130, 0, 440, 0, 0,
1648 0, 0, 142, 0, 142, 238, 0, 344, 576, 833,
1649 835, 229, 0, 0, 0, 142, 0, 229, 577, 856,
1650 856, 856, 0, 0, 0, 0, 598, 0, 578, 0,
1651 0, 579, 580, 0, 0, 0, 0, 440, 440, 440,
1652 0, 50, 0, 0, 7, 126, 127, 10, 0, 0,
1653 227, 229, 0, 229, 0, 142, 142, 590, 0, 0,
1654 0, 0, 0, 0, 0, 844, 845, 188, 50, 50,
1655 844, 149, 890, 50, 584, 588, 0, 591, 50, 186,
1656 186, 186, 0, 22, 0, 0, 0, 0, 0, 446,
1657 0, 50, 0, 50, 0, 0, 27, 856, 28, 29,
1658 0, 0, 0, 0, 0, 0, 0, 0, 186, 0,
1659 0, 229, 31, 0, 0, 588, 235, 0, 0, 0,
1660 0, 0, 32, 720, 0, 229, 0, 0, 0, 0,
1661 33, 242, 0, 0, 0, 34, 0, 229, 0, 0,
1662 0, 0, 0, 0, 0, 238, 0, 0, 0, 0,
1663 0, 6, 0, 7, 8, 9, 10, 11, 12, 13,
1664 82, 0, 0, 0, 14, 372, 0, 0, 0, 372,
1665 372, 229, 50, 229, 0, 0, 50, 0, 235, 17,
1666 50, 18, 19, 149, 149, 149, 0, 21, 0, 0,
1667 0, 0, 22, 0, 0, 0, 24, 50, 0, 407,
1668 588, 0, 0, 142, 142, 27, 142, 28, 29, 0,
1669 0, 30, 0, 0, 50, 50, 149, 0, 0, 0,
1670 0, 31, 0, 0, 235, 0, 0, 0, 0, 0,
1671 0, 32, 1000, 0, 1002, 0, 238, 242, 0, 33,
1672 126, 127, 0, 50, 34, 477, 0, 0, 142, 142,
1673 142, 142, 590, 0, 0, 0, 142, 0, 0, 0,
1674 0, 0, 720, 0, 0, 1045, 0, 1046, 0, 0,
1675 0, 0, 0, 856, 856, 856, 0, 50, 1052, 0,
1676 0, 0, 833, 835, 575, 0, 186, 0, 0, 0,
1677 720, 27, 0, 129, 130, 0, 0, 0, 0, 1033,
1678 1034, 0, 1036, 0, 142, 0, 0, 576, 0, 142,
1679 0, 82, 0, 0, 0, 0, 0, 577, 833, 835,
1680 0, 0, 0, 0, 0, 0, 0, 578, 0, 1053,
1681 579, 580, 0, 0, 186, 0, 186, 0, 186, 186,
1682 186, 0, 0, 0, 186, 0, 517, 0, 0, 186,
1683 0, 0, 186, 0, 0, 142, 142, 0, 142, 0,
1684 0, 0, 0, 372, 0, 8, 9, 0, 0, 12,
1685 13, 235, 1086, 0, 0, 14, 50, 0, 229, 0,
1686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1687 17, 372, 18, 0, 0, 0, 0, 0, 21, 7,
1688 8, 9, 10, 382, 12, 13, 0, 24, 933, 0,
1689 14, 0, 372, 0, 0, 0, 27, 0, 129, 130,
1690 559, 50, 0, 0, 0, 17, 0, 18, 19, 0,
1691 0, 0, 50, 21, 0, 50, 0, 1124, 22, 0,
1692 50, 0, 24, 0, 0, 0, 0, 0, 0, 1128,
1693 0, 27, 0, 28, 29, 560, 0, 142, 590, 142,
1694 0, 0, 0, 0, 0, 0, 0, 31, 0, 50,
1695 77, 50, 0, 149, 149, 149, 0, 32, 0, 50,
1696 0, 0, 0, 0, 50, 33, 0, 50, 0, 0,
1697 34, 238, 242, 0, 0, 0, 0, 77, 77, 0,
1698 77, 0, 77, 50, 0, 0, 186, 77, 0, 0,
1699 0, 1045, 1046, 833, 835, 0, 0, 0, 0, 1052,
1700 77, 0, 77, 0, 0, 1226, 1227, 9, 10, 0,
1701 0, 1175, 517, 0, 856, 517, 833, 835, 0, 0,
1702 0, 186, 0, 186, 186, 0, 0, 0, 0, 0,
1703 517, 517, 517, 0, 0, 0, 0, 0, 0, 0,
1704 0, 0, 0, 0, 22, 517, 0, 0, 1188, 0,
1705 0, 0, 0, 0, 856, 856, 856, 27, 0, 28,
1706 29, 0, 0, 0, 186, 1228, 0, 0, 0, 229,
1707 0, 0, 0, 177, 0, 186, 186, 0, 186, 0,
1708 0, 77, 0, 178, 142, 77, 0, 0, 0, 77,
1709 235, 33, 77, 77, 77, 0, 179, 0, 1045, 1046,
1710 0, 1052, 242, 517, 0, 0, 77, 1241, 0, 0,
1711 0, 1242, 0, 0, 0, 186, 0, 0, 0, 0,
1712 0, 50, 0, 77, 77, 77, 0, 0, 8, 9,
1713 0, 0, 12, 227, 0, 0, 0, 0, 14, 0,
1714 1254, 126, 127, 0, 0, 199, 200, 0, 0, 0,
1715 0, 14, 77, 17, 0, 18, 50, 50, 50, 50,
1716 0, 21, 7, 8, 9, 10, 189, 12, 190, 0,
1717 24, 0, 0, 14, 21, 0, 0, 0, 0, 27,
1718 1302, 129, 130, 24, 1303, 575, 77, 0, 17, 0,
1719 18, 19, 27, 0, 129, 130, 21, 0, 0, 50,
1720 0, 22, 0, 50, 0, 24, 1321, 1322, 576, 0,
1721 50, 50, 0, 50, 27, 0, 28, 29, 577, 0,
1722 191, 0, 0, 0, 0, 0, 0, 0, 578, 0,
1723 31, 586, 580, 0, 0, 0, 0, 238, 242, 238,
1724 32, 0, 0, 50, 0, 50, 0, 0, 33, 0,
1725 50, 50, 50, 34, 0, 0, 0, 0, 0, 7,
1726 8, 9, 10, 198, 199, 200, 0, 186, 186, 1083,
1727 14, 319, 0, 319, 238, 319, 0, 0, 517, 0,
1728 0, 597, 0, 0, 0, 77, 0, 0, 19, 0,
1729 0, 0, 0, 21, 0, 0, 0, 0, 22, 0,
1730 0, 0, 24, 0, 575, 0, 0, 0, 0, 1083,
1731 0, 27, 0, 28, 29, 0, 0, 0, 0, 0,
1732 319, 0, 319, 0, 0, 0, 0, 885, 0, 0,
1733 77, 0, 0, 0, 0, 0, 0, 886, 0, 0,
1734 0, 77, 0, 0, 77, 33, 0, 578, 0, 77,
1735 887, 580, 0, 0, 0, 0, 7, 126, 127, 10,
1736 0, 446, 13, 348, 350, 0, 517, 517, 517, 0,
1737 0, 0, 235, 0, 0, 0, 0, 0, 77, 0,
1738 77, 0, 77, 77, 77, 0, 0, 0, 77, 0,
1739 0, 0, 0, 77, 0, 22, 77, 0, 0, 0,
1740 0, 0, 50, 50, 149, 0, 0, 0, 27, 235,
1741 28, 29, 77, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 146, 0, 0, 0, 0, 0,
1743 0, 0, 0, 0, 147, 0, 0, 0, 0, 0,
1744 0, 238, 33, 0, 1106, 0, 0, 148, 0, 0,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 186, 186, 186, 186, 1083, 0, 1187, 721, 186, 7,
1747 8, 722, 10, 382, 12, 13, 0, 0, 0, 0,
1748 14, 0, 0, 0, 507, 1083, 1083, 1083, 0, 0,
1749 0, 0, 0, 0, 0, 17, 235, 18, 19, 20,
1750 0, 0, 0, 21, -493, 0, 0, 50, 22, 0,
1751 0, 0, 24, 723, 0, 632, 186, 0, 0, 0,
1752 597, 27, 319, 28, 29, 0, 0, 724, 0, 725,
1753 0, 0, 0, 0, 0, 0, 0, 31, 8, 9,
1754 0, 0, 12, 13, 0, 0, 0, 32, 14, 0,
1755 77, 0, 0, 0, 0, 33, 0, 0, 0, 0,
1756 34, 0, 0, 17, 0, 18, 520, 186, 186, 0,
1757 186, 21, 0, 0, 0, 0, 235, -493, 0, 0,
1758 24, 0, 0, 0, 0, 77, 77, 77, 77, 27,
1759 0, 129, 130, 0, 0, 50, 50, 149, 149, 149,
1760 0, 235, 0, 50, 0, 0, 670, 674, 126, 127,
1761 0, 0, 199, 200, 674, 0, 0, 0, 14, 0,
1762 1106, 1106, 1106, 0, 0, 0, 0, 0, 77, 0,
1763 0, 0, 77, 0, 0, 0, 0, 0, 638, 77,
1764 77, 21, 77, 0, 0, 0, 0, 0, 0, 0,
1765 24, 50, 575, 0, 0, 0, 50, 0, 50, 27,
1766 0, 129, 130, 0, 0, 0, 0, 0, 0, 186,
1767 0, 186, 77, 0, 77, 576, 319, 674, 0, 77,
1768 77, 77, 0, 0, 0, 577, 0, 681, 0, 0,
1769 0, 0, 0, 0, 0, 578, 0, 0, 579, 580,
1770 0, 0, 50, 50, 0, 50, 0, 0, 0, 319,
1771 0, 670, 0, 0, 781, 782, 0, 786, 787, 788,
1772 789, 790, 791, 792, 793, 794, 795, 796, 797, 798,
1773 799, 800, 801, 802, 803, 804, 0, 0, 0, 0,
1774 0, 674, 0, 674, 674, 0, 1083, 0, 0, 0,
1775 0, 0, 760, 0, 0, 763, 0, 0, 0, 765,
1776 766, 768, 769, 770, 0, 0, 0, 0, 0, 0,
1777 674, 0, 520, 0, 0, 0, 0, 674, 0, 0,
1778 0, 0, 0, 0, 0, 780, 1083, 1083, 1083, 0,
1779 0, 0, 0, 0, 0, 0, 0, 869, 871, 0,
1780 0, 0, 597, 0, 50, 50, 50, 0, 0, 0,
1781 0, 0, 0, 0, 0, 0, 186, 809, 0, 0,
1782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1783 0, 77, 77, 77, 0, 0, 836, 0, 0, 0,
1784 0, 0, 0, 836, 0, 0, -358, 8, 9, -358,
1785 -358, 12, 227, 670, 0, 0, 0, 14, 0, 0,
1786 75, 0, 0, 7, 8, 9, 10, 0, 0, 13,
1787 0, 0, 17, 1108, 18, -358, 0, 0, 0, 0,
1788 21, 1106, 0, 0, 0, -358, 0, 140, 144, 24,
1789 0, 575, 75, 0, 0, 0, 0, 75, 27, 0,
1790 129, 130, 22, 0, 0, 0, 0, 0, 0, 956,
1791 0, 0, 197, 0, 576, 27, 0, 28, 29, 0,
1792 0, 1106, 1106, 1106, 577, 0, 0, 0, 319, 319,
1793 319, 177, -358, 0, 578, 0, 77, 579, 580, 0,
1794 0, 178, 0, 638, 0, 674, 0, 0, 0, 33,
1795 0, 50, 0, 0, 179, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0, 7, 126,
1797 127, 10, 0, 0, 477, 536, 537, 538, 539, 540,
1798 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
1799 551, 387, 0, 0, 0, 390, 0, 670, 674, 392,
1800 681, 0, 0, 0, 0, 681, 0, 22, 0, 0,
1801 0, 674, 0, 674, 0, 674, 75, 581, 581, 581,
1802 27, 0, 28, 29, 77, 77, 77, 77, 77, 0,
1803 0, 0, 77, 140, 144, 0, 31, 8, 9, 0,
1804 382, 12, 13, 0, 0, 1444, 32, 14, 1065, 1108,
1805 1108, 1108, 0, 0, 33, 0, 0, 0, 674, 34,
1806 0, 0, 17, 0, 18, 19, 0, 1028, 319, 0,
1807 21, 7, 8, 9, 10, 198, 199, 200, 0, 24,
1808 77, 1087, 14, 0, 0, 77, 0, 77, 27, 0,
1809 129, 130, 0, 674, 0, 0, 478, 0, 780, 0,
1810 19, 0, 0, 0, 681, 21, 0, 0, 836, 0,
1811 22, 674, 0, 0, 24, 0, 575, 0, 0, 0,
1812 0, 0, 0, 27, 0, 28, 29, 0, 0, 0,
1813 0, 77, 77, 0, 77, 0, 0, 0, 638, 885,
1814 1076, 0, 0, 0, 836, 0, 0, 0, 0, 886,
1815 0, 0, 0, 0, 1132, 0, 0, 33, 0, 578,
1816 0, 0, 927, 580, 0, 0, 0, 0, 0, 0,
1817 0, 7, 8, 9, 10, 0, 670, 227, 0, 0,
1818 0, 0, 0, 0, 836, 0, 0, 0, 0, 8,
1819 9, 0, 189, 12, 190, 606, 0, 0, 1112, 14,
1820 0, 0, 0, 670, 0, 1119, 1159, 0, 0, 0,
1821 22, 0, 681, 0, 17, 0, 18, 19, 0, 0,
1822 0, 0, 21, 27, 681, 28, 29, 0, 0, 0,
1823 0, 24, 0, 77, 77, 77, 0, 0, 0, 177,
1824 27, 0, 129, 130, 0, 0, 0, 0, 0, 178,
1825 0, 653, 0, 0, 654, 0, 0, 33, 681, 656,
1826 681, 0, 179, 0, 0, 581, 581, 0, 581, 0,
1827 0, 0, 0, 0, 0, 853, 0, 0, 674, 0,
1828 674, 0, 674, 0, 0, 670, 0, 0, 390, 0,
1829 392, 0, 0, 0, 670, 670, 0, 0, 0, 670,
1830 670, 0, 0, 478, 0, 0, 0, 101, 0, 0,
1831 1108, 0, 0, 0, 1222, 1223, 0, 120, 101, 0,
1832 0, 0, 738, 0, 101, 101, 0, 101, 581, 0,
1833 581, 581, 0, 581, 0, 0, 0, 0, 0, 836,
1834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835 1108, 1108, 1108, 0, 0, 0, 0, 219, 0, 0,
1836 0, 0, 836, 0, 0, 0, 674, 0, 0, 0,
1837 0, 581, 0, 0, 0, 7, 8, 9, 10, 0,
1838 77, 13, 0, 0, 530, 531, 532, 533, 534, 535,
1839 536, 537, 538, 539, 540, 541, 670, 543, 544, 545,
1840 546, 547, 548, 549, 550, 551, 0, 0, 0, 0,
1841 0, 0, 1309, 0, 22, 0, 120, 0, 120, 0,
1842 0, 101, 0, 0, 0, 101, 101, 27, 0, 28,
1843 29, 0, 101, 0, 101, 101, 101, 0, 0, 101,
1844 101, 101, 0, 436, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 437, 0, 0, 581, 0, 1344, 0,
1846 0, 33, 0, 0, 0, 1112, 438, 0, 0, 0,
1847 0, 6, 0, 7, 8, 9, 10, 11, 12, 13,
1848 0, 0, 0, 0, 14, 0, 0, 0, 0, 0,
1849 0, 1375, 1376, 0, 0, 0, 891, 15, 16, 17,
1850 1381, 18, 19, 20, 0, 0, 0, 21, 0, 0,
1851 0, 0, 22, 461, 101, 23, 24, 25, 0, 26,
1852 0, 581, 0, 581, 0, 27, 0, 28, 29, 0,
1853 0, 30, 0, 101, 581, 0, 0, 0, 853, 853,
1854 853, 31, 934, 0, 0, 0, 0, 0, 674, 653,
1855 654, 32, 656, 0, 0, 0, 0, 0, 0, 33,
1856 0, 0, 0, 0, 34, 0, 0, 0, 0, 0,
1857 35, 0, 101, 0, 581, 581, 581, 0, 1435, 0,
1858 0, 0, 738, 0, 738, 0, 0, 0, 0, 978,
1859 985, 738, 0, 0, 0, 0, 0, 0, 0, 783,
1860 0, 281, 8, 9, 10, 382, 12, 282, 283, 284,
1861 0, 285, 14, 0, 0, 0, 853, 0, 0, 101,
1862 0, 101, 101, 0, 0, 0, 0, 17, 286, 18,
1863 19, 20, 0, 287, 288, 21, 0, 289, 290, 291,
1864 22, 292, 293, 0, 24, 0, 0, 101, 294, 295,
1865 296, 297, 298, 27, 0, 28, 299, 1427, 0, -745,
1866 300, 0, 0, 520, 0, 0, 301, 0, 101, 302,
1867 8, 9, 0, 382, 12, 13, 638, 303, 304, 305,
1868 14, 0, 0, 0, 101, 306, 307, 308, 101, 0,
1869 0, 101, 309, 0, 0, 17, 101, 18, 19, 0,
1870 670, 0, 0, 21, 0, 0, 0, 0, 0, 0,
1871 310, 0, 631, 0, 0, 632, 0, 0, 0, 0,
1872 0, 27, 0, 129, 130, 538, 539, 540, 541, 542,
1873 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
1874 0, 140, 144, 0, 0, 0, 0, 0, 0, 0,
1875 0, 0, 0, 0, 0, 0, 101, 0, 713, 0,
1876 0, 0, 0, 0, 0, 0, 0, 581, 581, 581,
1877 581, 581, 0, 0, 0, 581, 0, 0, 0, 0,
1878 0, 0, 101, 161, 0, 7, 8, 9, 10, 11,
1879 12, 13, 853, 853, 853, 0, 14, 0, 0, 0,
1880 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
1881 16, 17, 0, 18, 19, 20, 0, 0, 0, 21,
1882 0, 0, 0, 0, 22, 0, 0, 23, 24, 25,
1883 0, 26, 0, 0, 0, 0, 0, 27, 0, 28,
1884 29, 0, 0, 30, 0, 0, 738, 0, 0, 0,
1885 0, 0, 0, 31, 0, 0, 101, 0, 0, 0,
1886 0, 0, 0, 32, 0, 0, 101, 101, 0, 101,
1887 101, 33, 0, 0, 581, 581, 34, 581, 0, 0,
1888 0, 0, 35, 0, 0, 0, 0, 0, 0, 0,
1889 0, 0, 0, 244, 0, 0, 8, 9, 0, 0,
1890 12, 13, 0, 0, 0, 0, 14, 0, 0, 0,
1891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1892 0, 17, 0, 18, 120, 0, 0, 0, 0, 21,
1893 0, 245, 246, 0, 390, 392, 219, 0, 24, 0,
1894 247, 0, 478, 0, 0, 0, 0, 27, 0, 129,
1895 130, 0, 248, 0, 0, 713, 249, 250, 251, 252,
1896 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
1897 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
1898 271, 272, 0, 0, 273, 0, 0, 274, 0, 0,
1899 1233, 0, 0, 0, 0, 1233, 0, 738, 0, 0,
1900 0, 0, 0, 0, 275, 0, 0, 0, 0, 0,
1901 0, 0, 0, 713, 0, 0, 101, 0, 0, 0,
1902 0, 0, 0, 0, 0, 7, 8, 9, 10, 382,
1903 12, 13, 0, 0, 0, 0, 14, 0, 0, 0,
1904 0, 653, 654, 0, 656, 0, 0, 0, 101, 101,
1905 101, 17, 0, 18, 19, 0, 0, 0, 0, 21,
1906 101, 0, 0, 0, 22, 0, 0, 0, 24, 0,
1907 0, 0, 0, 0, 0, 0, 0, 27, 0, 28,
1908 29, 0, 0, 1315, 0, -449, -449, -449, -449, -449,
1909 -449, -449, 0, 31, -449, 0, -449, 0, 0, 0,
1910 0, 0, 0, 32, 0, 0, 0, -449, 0, -449,
1911 -449, 33, 0, 0, -449, 0, 34, 0, 0, -449,
1912 0, 0, 0, 0, -449, 101, 0, 101, -449, 0,
1913 -449, 0, 0, 0, 0, 0, 0, -449, 101, -449,
1914 -449, -449, -449, -449, 1363, -449, -449, -449, -449, -449,
1915 -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
1916 -449, -449, -449, -449, -449, -449, -449, -449, 0, -449,
1917 -449, -449, 0, -449, -449, -449, -449, -449, -449, 0,
1918 -449, -449, 0, 0, 0, 0, 1316, 0, 0, 0,
1919 0, -449, -449, -449, 0, -449, 0, 0, 1366, 0,
1920 1266, 1267, 1268, 10, 382, 12, 282, 283, 284, 0,
1921 285, 14, 1269, 0, 1270, 1271, 1272, 1273, 1274, 1275,
1922 1276, 1277, 1278, 1279, 15, 16, 17, 286, 18, 19,
1923 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
1924 292, 293, 0, 24, 0, 0, 713, 294, 295, 296,
1925 297, 298, 27, 0, 1280, 299, 665, 0, 1281, 300,
1926 0, 0, 0, 0, 0, 301, 0, 0, 302, 0,
1927 0, 0, 0, 101, 0, 0, 303, 304, 305, 0,
1928 0, 0, 0, 0, 306, 307, 308, 0, 0, 0,
1929 0, 309, 0, 1282, 0, 0, 0, 0, 0, 0,
1930 0, 0, 0, 0, 0, 0, 0, 0, 1367, 310,
1931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1932 0, 0, 0, 0, 0, 0, 101, 101, 0, 101,
1933 1265, 0, 1266, 1267, 1268, 10, 382, 12, 282, 283,
1934 284, 0, 285, 14, 1269, 0, 1270, 1271, 1272, 1273,
1935 1274, 1275, 1276, 1277, 1278, 1279, 15, 16, 17, 286,
1936 18, 19, 20, 0, 287, 288, 21, 0, 289, 290,
1937 291, 22, 292, 293, 0, 24, 0, 0, 0, 294,
1938 295, 296, 297, 298, 27, 713, 1280, 299, 665, 0,
1939 1281, 300, 0, 0, 0, 0, 0, 301, 0, 0,
1940 302, 0, 0, 0, 0, 0, 0, 0, 303, 304,
1941 305, 0, 0, 713, 0, 0, 306, 307, 308, 0,
1942 0, 0, 0, 309, 0, 1282, 0, 0, 0, 0,
1943 101, 0, 101, 0, 0, 0, 0, 0, 0, 0,
1944 512, 310, 281, 8, 9, 10, 382, 12, 282, 283,
1945 284, 678, 285, 14, 0, 0, 0, 0, 0, 0,
1946 0, 0, 0, 0, 0, 0, 0, 0, 17, 286,
1947 18, 19, 20, 0, 287, 288, 21, 0, 289, 290,
1948 291, 22, 292, 293, 0, 24, 0, 575, 0, 294,
1949 295, 296, 297, 298, 27, 0, 28, 299, -286, 0,
1950 0, 300, 0, 0, 0, 0, 0, 301, 0, 0,
1951 849, 0, 0, 0, 0, 0, 0, 0, 303, 304,
1952 850, 0, 0, 0, 0, 0, 306, 307, 308, 0,
1953 578, 0, 0, 851, 580, 0, 512, 679, 7, 8,
1954 9, 10, 382, 12, 282, 283, 284, 678, 285, 14,
1955 0, 310, 0, 0, 0, 0, 0, 0, 0, 0,
1956 0, 0, 0, 0, 17, 286, 18, 19, 20, 0,
1957 287, 288, 21, 0, 289, 290, 291, 22, 292, 293,
1958 0, 24, 0, 575, 0, 294, 295, 296, 297, 298,
1959 27, 0, 28, 29, -286, 0, 0, 300, 0, 0,
1960 0, 0, 0, 301, 0, 0, 1103, 0, 0, 0,
1961 0, 0, 0, 0, 303, 304, 1104, 0, 0, 0,
1962 0, 0, 306, 307, 308, 0, 578, 0, 0, 1105,
1963 580, 0, 677, 679, 281, 8, 9, 10, 382, 12,
1964 282, 283, 284, 678, 285, 14, 0, 310, 0, 0,
1965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1966 17, 286, 18, 19, 20, 0, 287, 288, 21, 0,
1967 289, 290, 291, 22, 292, 293, 0, 24, 0, 0,
1968 0, 294, 295, 296, 297, 298, 27, 0, 28, 299,
1969 0, 0, 0, 300, 0, 0, 0, 0, 0, 301,
1970 0, 0, 302, 0, 0, 0, 0, 0, 0, 0,
1971 303, 304, 305, 0, 0, 0, 0, 0, 306, 307,
1972 308, 0, 0, 0, 0, 309, 0, 0, 0, 679,
1973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1974 0, -755, 668, 310, 281, 8, 9, 10, 0, 12,
1975 494, 283, 284, 0, 285, 14, 0, 0, 0, 0,
1976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1977 17, 286, 18, 0, 20, 0, 287, 288, 21, 0,
1978 289, 290, 291, 22, 292, 293, 0, 24, 0, 0,
1979 0, 294, 295, 296, 297, 298, 27, 0, 28, 299,
1980 669, 0, 0, 300, 0, 0, 0, 0, 0, 301,
1981 0, 0, 302, 0, 0, 0, 0, 0, 0, 0,
1982 303, 304, 305, 0, 0, 0, 0, 0, 306, 307,
1983 308, 0, 0, 0, 668, 309, 281, 8, 9, 10,
1984 0, 12, 494, 283, 284, 0, 285, 14, 0, 0,
1985 0, 0, 918, 310, 0, 0, 0, 0, 0, 0,
1986 0, 0, 17, 286, 18, 0, 20, 0, 287, 288,
1987 21, 0, 289, 290, 291, 22, 292, 293, 0, 24,
1988 0, 0, 0, 294, 295, 296, 297, 298, 27, 0,
1989 28, 299, 669, 0, 0, 300, 0, 0, 0, 0,
1990 0, 301, 0, 0, 302, 0, 0, 0, 0, 0,
1991 0, 0, 303, 304, 305, 0, 0, 0, 0, 0,
1992 306, 307, 308, 0, 0, 0, 668, 309, 281, 8,
1993 9, 10, 0, 12, 494, 283, 284, 0, 285, 14,
1994 0, 0, 0, 0, -453, 310, 0, 0, 0, 0,
1995 0, 0, 0, 0, 17, 286, 18, 0, 20, 0,
1996 287, 288, 21, 0, 289, 290, 291, 22, 292, 293,
1997 0, 24, 0, 0, 0, 294, 295, 296, 297, 298,
1998 27, 0, 28, 299, 669, 0, 0, 300, 0, 0,
1999 0, 0, 0, 301, 0, 0, 302, 0, 0, 0,
2000 0, 0, 0, 0, 303, 304, 305, 0, 0, 0,
2001 0, 0, 306, 307, 308, 0, 0, 0, 668, 309,
2002 281, 8, 9, 10, 0, 12, 494, 283, 284, 0,
2003 285, 14, 0, 0, 0, 0, 1201, 310, 0, 0,
2004 0, 0, 0, 0, 0, 0, 17, 286, 18, 0,
2005 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2006 292, 293, 0, 24, 0, 0, 0, 294, 295, 296,
2007 297, 298, 27, 0, 28, 299, 669, 0, 0, 300,
2008 0, 0, 0, 0, 0, 301, 0, 0, 302, 0,
2009 0, 0, 0, 0, 0, 0, 303, 304, 305, 0,
2010 0, 0, 0, 0, 306, 307, 308, 0, 0, 0,
2011 0, 309, 0, 0, 512, 0, 281, 8, 9, 10,
2012 1205, 12, 282, 283, 284, 0, 285, 14, 0, 310,
2013 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2014 0, 0, 17, 286, 18, 0, 20, 0, 287, 288,
2015 21, 0, 289, 290, 291, 22, 292, 293, 0, 24,
2016 0, 0, 0, 294, 295, 296, 297, 298, 27, 0,
2017 28, 299, -286, 0, 0, 300, 0, 0, 0, 0,
2018 0, 301, 0, 0, 513, 0, 0, 0, 0, 0,
2019 0, 0, 303, 304, 514, 0, 0, 0, 0, 0,
2020 306, 307, 308, 0, 0, 0, 668, 515, 281, 8,
2021 9, 10, 0, 12, 494, 283, 284, 0, 285, 14,
2022 0, 0, 0, 0, 0, 310, 0, 0, 0, 0,
2023 0, 0, 0, 0, 17, 286, 18, 0, 20, 0,
2024 287, 288, 21, 0, 289, 290, 291, 22, 292, 293,
2025 0, 24, 0, 0, 0, 294, 295, 296, 297, 298,
2026 27, 0, 28, 299, 669, 0, 0, 300, 0, 0,
2027 0, 0, 0, 301, 0, 0, 302, 0, 0, 0,
2028 0, 0, 0, 0, 303, 304, 305, 0, 0, 0,
2029 0, 0, 306, 307, 308, 0, 0, 0, 783, 309,
2030 281, 8, 9, 10, 0, 12, 494, 283, 284, 0,
2031 285, 14, 0, 0, 0, 0, 0, 310, 0, 0,
2032 0, 0, 0, 0, 0, 0, 17, 286, 18, 0,
2033 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2034 292, 293, 0, 24, 0, 0, 0, 294, 295, 296,
2035 297, 298, 27, 0, 28, 299, 0, 0, 0, 300,
2036 -745, 0, 0, 0, 0, 301, 0, 0, 302, 0,
2037 0, 0, 0, 0, 0, 0, 303, 304, 305, 0,
2038 0, 0, 0, 0, 306, 307, 308, 0, 0, 0,
2039 512, 309, 7, 8, 9, 10, 0, 12, 282, 283,
2040 284, 0, 285, 14, 0, 0, 0, 0, 0, 310,
2041 0, 0, 0, 0, 0, 0, 0, 0, 17, 286,
2042 18, 0, 20, 0, 287, 288, 21, 0, 289, 290,
2043 291, 22, 292, 293, 0, 24, 0, 0, 0, 294,
2044 295, 296, 297, 298, 27, 0, 28, 29, -286, 0,
2045 0, 300, 0, 0, 0, 0, 0, 301, 0, 0,
2046 1404, 0, 0, 0, 0, 0, 0, 0, 303, 304,
2047 1405, 0, 0, 0, 0, 0, 306, 307, 308, 0,
2048 0, 0, 1494, 1406, 281, 8, 9, 10, 0, 12,
2049 282, 283, 284, 0, 285, 14, 0, 0, 0, 0,
2050 0, 310, 0, 0, 0, 0, 0, 0, 0, 0,
2051 17, 286, 18, 0, 20, 0, 287, 288, 21, 0,
2052 289, 290, 291, 22, 292, 293, 0, 24, 0, 0,
2053 0, 294, 295, 296, 297, 298, 27, 0, 28, 299,
2054 0, 0, -175, 300, 0, 0, 0, 0, 0, 301,
2055 0, 0, 302, 0, 0, 0, 0, 0, 0, 0,
2056 303, 304, 305, 0, 0, 0, 0, 0, 306, 307,
2057 308, 0, 0, 0, 783, 309, 281, 8, 9, 10,
2058 0, 12, 494, 283, 284, 0, 285, 14, 0, 0,
2059 0, 0, 0, 310, 0, 0, 0, 0, 0, 0,
2060 0, 0, 17, 286, 18, 0, 20, 0, 287, 288,
2061 21, 0, 289, 290, 291, 22, 292, 293, 0, 24,
2062 0, 0, 0, 294, 295, 296, 297, 298, 27, 0,
2063 28, 299, 0, 0, 0, 300, 0, 0, 0, 0,
2064 0, 301, 0, 0, 302, 0, 0, 0, 0, 0,
2065 0, 0, 303, 304, 305, 0, 0, 0, 0, 0,
2066 306, 307, 308, 0, 0, 0, 868, 309, 281, 8,
2067 9, 10, 0, 12, 494, 283, 284, 0, 285, 14,
2068 0, 0, 0, -745, 0, 310, 0, 0, 0, 0,
2069 0, 0, 0, 0, 17, 286, 18, 0, 20, 0,
2070 287, 288, 21, 0, 289, 290, 291, 22, 292, 293,
2071 0, 24, 0, 0, 0, 294, 295, 296, 297, 298,
2072 27, 0, 28, 299, 0, 0, 0, 300, 0, 0,
2073 0, 0, 0, 301, 0, 0, 302, 0, 0, 0,
2074 0, 0, 0, 0, 303, 304, 305, 0, 0, 0,
2075 0, 0, 306, 307, 308, 0, 0, 0, 870, 309,
2076 281, 8, 9, 10, 0, 12, 494, 283, 284, 0,
2077 285, 14, 0, 0, 0, 0, 0, 310, 0, 0,
2078 0, 0, 0, 0, 0, 0, 17, 286, 18, 0,
2079 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2080 292, 293, 0, 24, 0, 0, 0, 294, 295, 296,
2081 297, 298, 27, 0, 28, 299, 0, 0, 0, 300,
2082 0, 0, 0, 0, 0, 301, 0, 0, 302, 0,
2083 0, 0, 0, 0, 0, 0, 303, 304, 305, 0,
2084 0, 0, 0, 0, 306, 307, 308, 0, 0, 0,
2085 1380, 309, 281, 8, 9, 10, 0, 12, 494, 283,
2086 284, 0, 285, 14, 0, 0, 0, 0, 0, 310,
2087 0, 0, 0, 0, 0, 0, 0, 0, 17, 286,
2088 18, 0, 20, 0, 287, 288, 21, 0, 289, 290,
2089 291, 22, 292, 293, 0, 24, 0, 0, 0, 294,
2090 295, 296, 297, 298, 27, 0, 28, 299, 0, 0,
2091 0, 300, 0, 0, 0, 0, 0, 301, 0, 0,
2092 302, 0, 0, 0, 0, 0, 0, 0, 303, 304,
2093 305, 0, 0, 0, 0, 0, 306, 307, 308, 281,
2094 8, 9, 10, 309, 12, 494, 283, 284, 0, 285,
2095 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2096 0, 310, 0, 0, 0, 17, 286, 18, 0, 20,
2097 0, 287, 288, 21, 0, 289, 290, 291, 22, 292,
2098 293, 0, 24, 0, 0, 0, 294, 295, 296, 297,
2099 298, 27, 0, 28, 299, 0, 0, 0, 300, 0,
2100 0, 0, 0, 0, 301, 0, 721, 302, 7, 8,
2101 722, 10, 382, 12, 13, 303, 304, 305, 0, 14,
2102 0, 0, 0, 306, 307, 308, 0, 0, 0, 0,
2103 309, 0, 0, 0, 17, 0, 18, 19, 20, 0,
2104 0, 0, 21, -495, 0, 0, 0, 22, 310, 822,
2105 0, 24, 723, 0, 632, 0, 0, 0, 0, 0,
2106 27, 0, 28, 29, 0, 0, 724, 0, 725, 0,
2107 0, 0, 7, 8, 9, 10, 31, 721, 477, 7,
2108 8, 722, 10, 382, 12, 13, 32, 0, 0, 0,
2109 14, 0, 0, 0, 33, 0, 0, 0, 0, 34,
2110 0, 0, 0, 0, 0, 17, 0, 18, 19, 20,
2111 0, 22, 0, 21, -494, 0, -495, 0, 22, 0,
2112 0, 0, 24, 723, 27, 632, 28, 29, 0, 0,
2113 0, 27, 0, 28, 29, 0, 0, 724, 0, 725,
2114 177, 0, 0, 0, 0, 0, 0, 31, 0, 0,
2115 178, 0, 0, 0, 0, 0, 0, 32, 33, 0,
2116 0, 0, 0, 179, 0, 33, 0, 0, 0, 0,
2117 34, 0, 0, 0, 1266, 1267, 1268, 10, 382, 12,
2118 282, 283, 284, 0, 285, 14, 1269, -494, 1270, 1271,
2119 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 15, 16,
2120 17, 286, 18, 19, 20, 0, 287, 288, 21, 0,
2121 289, 290, 291, 22, 292, 293, 0, 24, 0, 0,
2122 0, 294, 295, 296, 297, 298, 27, 0, 1280, 299,
2123 665, 0, 1281, 300, 0, 0, 0, 0, 0, 301,
2124 0, 0, 302, 0, 0, 0, 0, 0, 0, 0,
2125 303, 304, 305, 0, 0, 0, 0, 0, 306, 307,
2126 308, 0, 0, 0, 0, 309, 0, 1282, 0, 0,
2127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2128 0, 0, 1371, 310, 1266, 1267, 1268, 10, 382, 12,
2129 282, 283, 284, 0, 285, 14, 1269, 0, 1270, 1271,
2130 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 15, 16,
2131 17, 286, 18, 19, 20, 0, 287, 288, 21, 0,
2132 289, 290, 291, 22, 292, 293, 0, 24, 0, 0,
2133 0, 294, 295, 296, 297, 298, 27, 0, 1280, 299,
2134 665, 0, 1281, 300, 0, 0, 0, 0, 0, 301,
2135 0, 0, 302, 0, 0, 0, 0, 0, 0, 0,
2136 303, 304, 305, 0, 0, 0, 0, 0, 306, 307,
2137 308, 0, 0, 0, 0, 309, 0, 1282, 0, 0,
2138 1266, 1267, 1268, 10, 382, 12, 282, 283, 284, 0,
2139 285, 14, 1269, 310, 1270, 1271, 1272, 1273, 1274, 1275,
2140 1276, 1277, 1278, 1279, 15, 16, 17, 286, 18, 19,
2141 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2142 292, 293, 0, 24, 0, 0, 0, 294, 295, 296,
2143 297, 298, 27, 0, 1280, 299, 1471, 0, 1281, 300,
2144 0, 0, 0, 0, 0, 301, 0, 0, 302, 0,
2145 0, 0, 0, 0, 0, 0, 303, 304, 305, 0,
2146 0, 0, 0, 0, 306, 307, 308, 0, 0, 0,
2147 0, 309, 0, 1282, 0, 0, 1266, 1267, 1268, 10,
2148 382, 12, 282, 283, 284, 0, 285, 14, 1269, 310,
2149 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279,
2150 15, 16, 17, 286, 18, 19, 20, 0, 287, 288,
2151 21, 0, 289, 290, 291, 22, 292, 293, 0, 24,
2152 0, 0, 0, 294, 295, 296, 297, 298, 27, 0,
2153 1280, 299, 0, 0, 1281, 300, 0, 0, 0, 0,
2154 0, 301, 0, 0, 302, 0, 0, 0, 0, 0,
2155 0, 0, 303, 304, 305, 0, 0, 0, 0, 0,
2156 306, 307, 308, 0, 0, 0, 0, 309, 0, 1282,
2157 281, 8, 9, 10, 382, 12, 282, 283, 284, 678,
2158 285, 14, 0, 0, 0, 310, 0, 0, 0, 0,
2159 0, 0, 0, 0, 0, 0, 17, 286, 18, 19,
2160 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2161 292, 293, 0, 24, 0, 575, 0, 294, 295, 296,
2162 297, 298, 27, 0, 28, 299, 0, 0, 0, 300,
2163 0, 0, 0, 0, 0, 301, 0, 0, 849, 0,
2164 0, 0, 0, 0, 0, 0, 303, 304, 850, 0,
2165 0, 0, 0, 0, 306, 307, 308, 0, 578, 0,
2166 0, 851, 580, 0, 0, 679, 7, 8, 9, 10,
2167 382, 12, 282, 283, 284, 678, 285, 14, 0, 310,
2168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2169 0, 0, 17, 286, 18, 19, 20, 0, 287, 288,
2170 21, 0, 289, 290, 291, 22, 292, 293, 0, 24,
2171 0, 575, 0, 294, 295, 296, 297, 298, 27, 0,
2172 28, 29, 0, 0, 0, 300, 0, 0, 0, 0,
2173 0, 301, 0, 0, 1103, 0, 0, 0, 0, 0,
2174 0, 0, 303, 304, 1104, 0, 0, 0, 0, 0,
2175 306, 307, 308, 0, 578, 0, 0, 1105, 580, 0,
2176 0, 679, 281, 8, 9, 10, 0, 12, 282, 283,
2177 284, 0, 285, 14, 0, 310, 0, 0, 0, 0,
2178 0, 1226, 126, 127, 10, 0, 0, 0, 17, 286,
2179 18, 0, 20, 0, 287, 288, 21, 0, 289, 290,
2180 291, 22, 292, 293, 0, 24, 0, 575, 0, 294,
2181 295, 296, 297, 298, 27, 0, 28, 299, 0, 0,
2182 22, 0, 0, 0, 0, 0, 0, 301, 0, 0,
2183 849, 0, 0, 27, 0, 28, 29, 0, 303, 304,
2184 850, 1228, 0, 0, 0, 0, 306, 307, 308, 31,
2185 578, 0, 0, 851, 580, 7, 8, 9, 10, 32,
2186 12, 282, 283, 284, 0, 285, 14, 33, 0, 0,
2187 0, 310, 34, 0, 7, 126, 127, 10, 0, 0,
2188 0, 17, 286, 18, 0, 20, 0, 287, 288, 21,
2189 0, 289, 290, 291, 22, 292, 293, 0, 24, 0,
2190 575, 0, 294, 295, 296, 297, 298, 27, 0, 28,
2191 29, 0, 0, 22, 0, 0, 0, 0, 0, 0,
2192 301, 0, 0, 1103, 0, 0, 27, 0, 28, 29,
2193 0, 303, 304, 1104, 0, 0, 0, 0, 0, 306,
2194 307, 308, 146, 578, 0, 0, 1105, 580, 281, 8,
2195 9, 10, 147, 12, 494, 283, 284, 0, 285, 14,
2196 33, 0, 0, 0, 310, 148, 0, 0, 0, 0,
2197 0, 0, 0, 0, 17, 286, 18, 0, 20, 0,
2198 287, 288, 21, 0, 289, 290, 291, 22, 292, 293,
2199 0, 24, 0, 0, 0, 294, 295, 296, 297, 298,
2200 27, 0, 28, 299, 0, 0, 1348, 300, 0, 0,
2201 0, 0, 0, 301, 0, 0, 302, 0, 0, 0,
2202 0, 0, 0, 0, 303, 304, 305, 0, 0, 0,
2203 0, 0, 306, 307, 308, 0, 0, 0, 0, 309,
2204 281, 8, 9, 10, 382, 12, 282, 283, 284, 0,
2205 285, 14, 0, 0, 0, 0, 0, 310, 0, 0,
2206 0, 0, 0, 0, 0, 0, 17, 286, 18, 19,
2207 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2208 292, 293, 0, 24, 0, 0, 0, 294, 295, 296,
2209 297, 298, 27, 0, 28, 299, 0, 0, 0, 0,
2210 0, 0, 0, 0, 0, 301, 0, 0, 302, 0,
2211 0, 0, 0, 0, 0, 0, 303, 304, 305, 0,
2212 0, 0, 0, 0, 306, 307, 308, 281, 8, 9,
2213 10, 309, 12, 282, 283, 284, 0, 285, 14, 0,
2214 0, 0, 0, 0, 0, 0, 0, 0, 0, 310,
2215 0, 0, 0, 17, 286, 18, 0, 20, 0, 287,
2216 288, 21, 0, 289, 290, 291, 22, 292, 293, 0,
2217 24, 0, 0, 0, 294, 295, 296, 297, 298, 27,
2218 0, 28, 299, 0, 0, 0, 300, 0, 0, 0,
2219 0, 0, 301, 0, 0, 302, 0, 0, 0, 0,
2220 0, 0, 0, 303, 304, 305, 0, 0, 0, 0,
2221 0, 306, 307, 308, 281, 8, 9, 10, 309, 12,
2222 494, 283, 284, 0, 285, 14, 0, 0, 0, 0,
2223 0, 0, 0, 0, 0, 0, 310, 0, 0, 0,
2224 17, 286, 18, 0, 20, 0, 287, 288, 21, 0,
2225 289, 290, 291, 22, 292, 293, 0, 24, 0, 0,
2226 0, 294, 295, 296, 297, 298, 27, 0, 28, 299,
2227 0, 0, 0, 300, 0, 0, 0, 0, 0, 301,
2228 0, 0, 302, 0, 0, 0, 0, 0, 0, 0,
2229 303, 304, 305, 0, 0, 0, 0, 0, 306, 307,
2230 308, 281, 8, 9, 10, 309, 12, 494, 283, 284,
2231 0, 285, 14, 0, 0, 0, 0, 0, 0, 0,
2232 0, 0, 0, 310, 0, 0, 0, 17, 286, 18,
2233 0, 20, 0, 287, 288, 21, 0, 289, 290, 291,
2234 22, 292, 293, 0, 24, 0, 0, 0, 294, 295,
2235 296, 297, 298, 27, 0, 28, 299, 527, 0, 0,
2236 0, 0, 0, 0, 0, 0, 301, 0, 0, 302,
2237 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
2238 0, 0, 0, 0, 0, 306, 307, 308, 281, 8,
2239 9, 10, 528, 12, 494, 283, 284, 0, 285, 14,
2240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2241 310, 0, 0, 0, 17, 286, 18, 0, 20, 0,
2242 287, 288, 21, 0, 289, 290, 291, 22, 292, 293,
2243 0, 24, 0, 0, 0, 294, 295, 296, 297, 298,
2244 27, 0, 28, 299, 0, 0, 0, 0, 0, 0,
2245 0, 0, 0, 301, 0, 0, 302, 0, 0, 0,
2246 0, 0, 0, 0, 303, 304, 305, 0, 0, 0,
2247 0, 0, 306, 307, 308, 0, 0, 0, 0, 309,
2248 564, 281, 8, 9, 10, 0, 12, 494, 283, 284,
2249 0, 285, 14, 0, 0, 0, 0, 310, 0, 0,
2250 0, 0, 0, 0, 0, 0, 0, 17, 286, 18,
2251 0, 20, 0, 287, 288, 21, 0, 289, 290, 291,
2252 22, 292, 293, 0, 24, 0, 0, 0, 294, 295,
2253 296, 297, 298, 27, 0, 28, 299, 0, 0, 0,
2254 300, 0, 0, 0, 0, 0, 301, 0, 0, 513,
2255 0, 0, 0, 0, 0, 0, 0, 303, 304, 514,
2256 0, 0, 0, 0, 0, 306, 307, 308, 1071, 8,
2257 9, 10, 515, 12, 494, 283, 284, 0, 285, 14,
2258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2259 310, 0, 0, 0, 17, 286, 18, 0, 20, 0,
2260 287, 288, 21, 0, 289, 290, 291, 22, 292, 293,
2261 0, 24, 0, 0, 0, 294, 295, 296, 297, 298,
2262 27, 0, 28, 299, 0, 0, 0, 300, 0, 0,
2263 0, 0, 0, 301, 0, 0, 302, 0, 0, 0,
2264 0, 0, 0, 0, 303, 304, 305, 0, 0, 0,
2265 0, 0, 306, 307, 308, 7, 8, 9, 10, 309,
2266 12, 494, 283, 284, 0, 285, 14, 0, 0, 0,
2267 0, 0, 0, 0, 0, 0, 0, 310, 0, 0,
2268 0, 17, 286, 18, 0, 20, 0, 287, 288, 21,
2269 0, 289, 290, 291, 22, 292, 293, 0, 24, 0,
2270 0, 0, 294, 295, 296, 297, 298, 27, 0, 28,
2271 29, 0, 0, 0, 300, 0, 0, 0, 0, 0,
2272 301, 0, 0, 1404, 0, 0, 0, 0, 0, 0,
2273 0, 303, 304, 1405, 0, 0, 0, 0, 0, 306,
2274 307, 308, 281, 8, 9, 10, 1406, 12, 494, 283,
2275 284, 0, 285, 14, 0, 0, 0, 0, 0, 0,
2276 0, 0, 0, 0, 310, 0, 0, 0, 17, 286,
2277 18, 0, 20, 0, 287, 288, 21, 0, 289, 290,
2278 291, 22, 292, 293, 0, 24, 0, 0, 0, 294,
2279 295, 296, 297, 298, 27, 0, 28, 299, 0, 0,
2280 0, 0, 0, 0, 0, 0, 0, 301, 0, 0,
2281 302, 0, 0, 0, 0, 0, 0, 0, 303, 304,
2282 305, 0, 0, 0, 0, 0, 306, 307, 308, 281,
2283 8, 9, 10, 495, 12, 494, 283, 284, 0, 285,
2284 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2285 0, 310, 0, 0, 0, 17, 286, 18, 0, 20,
2286 0, 287, 288, 21, 0, 289, 290, 291, 22, 292,
2287 293, 0, 24, 0, 0, 0, 294, 295, 296, 297,
2288 298, 27, 0, 28, 299, 0, 0, 0, 0, 0,
2289 0, 0, 0, 0, 301, 0, 0, 302, 0, 0,
2290 0, 0, 0, 0, 0, 303, 304, 305, 0, 0,
2291 0, 0, 0, 306, 307, 308, 281, 8, 9, 10,
2292 498, 12, 494, 283, 284, 0, 285, 14, 0, 0,
2293 0, 0, 0, 0, 0, 0, 0, 0, 310, 0,
2294 0, 0, 17, 286, 18, 0, 20, 0, 287, 288,
2295 21, 0, 289, 290, 291, 22, 292, 293, 0, 24,
2296 0, 0, 0, 294, 295, 296, 297, 298, 27, 0,
2297 28, 299, 0, 0, 0, 0, 0, 0, 0, 0,
2298 0, 301, 0, 0, 302, 0, 0, 0, 0, 0,
2299 0, 0, 303, 304, 305, 0, 0, 0, 0, 0,
2300 306, 307, 308, 281, 8, 9, 10, 309, 12, 494,
2301 283, 284, 0, 285, 14, 0, 0, 0, 0, 0,
2302 0, 0, 0, 0, 0, 310, 0, 0, 0, 17,
2303 286, 18, 0, 20, 0, 287, 288, 21, 0, 289,
2304 290, 291, 22, 292, 293, 0, 24, 0, 0, 0,
2305 294, 295, 296, 297, 298, 27, 0, 28, 299, 0,
2306 0, 0, 0, 0, 0, 0, 0, 0, 301, 0,
2307 0, 513, 0, 0, 0, 0, 0, 0, 0, 303,
2308 304, 514, 0, 0, 0, 0, 0, 306, 307, 308,
2309 7, 8, 9, 10, 515, 12, 282, 283, 284, 0,
2310 285, 14, 0, 0, 0, 0, 0, 0, 0, 0,
2311 0, 0, 310, 0, 0, 0, 17, 286, 18, 0,
2312 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2313 292, 293, 0, 24, 0, 0, 0, 294, 295, 296,
2314 297, 298, 27, 0, 28, 29, 0, 0, 0, 0,
2315 0, 0, 0, 0, 0, 301, 0, 721, 1404, 7,
2316 8, 722, 10, 382, 12, 13, 303, 304, 1405, 0,
2317 14, 0, 0, 0, 306, 307, 308, 0, 0, 0,
2318 0, 1406, 0, 0, 0, 17, 0, 18, 19, 20,
2319 0, 0, 0, 21, 0, 0, 0, 0, 22, 310,
2320 0, 0, 24, 723, 0, 632, 0, 0, 0, 0,
2321 0, 27, 0, 28, 29, 0, 0, 724, 0, 725,
2322 968, 8, 722, 10, 189, 12, 190, 31, 0, 0,
2323 0, 14, 0, 0, 0, 0, 0, 32, 0, 0,
2324 0, 0, 0, 0, 0, 33, 17, 0, 18, 19,
2325 34, 0, 0, 0, 21, 0, 0, 0, 0, 22,
2326 0, 0, 0, 24, 0, 7, 8, 9, 10, 189,
2327 12, 190, 27, 0, 28, 29, 14, 0, 0, 0,
2328 970, 0, 0, 0, 0, 0, 0, 0, 31, 0,
2329 0, 17, 0, 18, 19, 0, 0, 0, 32, 21,
2330 0, 0, 0, 0, 22, 0, 33, 0, 24, 0,
2331 0, 34, 0, 0, 0, 0, 0, 27, 0, 28,
2332 29, 0, 0, 1361, 7, 8, 9, 10, 189, 12,
2333 190, 0, 0, 31, 0, 14, 0, 0, 0, 0,
2334 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
2335 17, 33, 18, 19, 0, 0, 34, 0, 21, 0,
2336 0, 0, 0, 22, 0, 0, 0, 24, 0, 7,
2337 8, 9, 10, 198, 199, 200, 27, 0, 28, 29,
2338 14, 7, 8, 9, 10, 0, 0, 0, 7, 8,
2339 9, 10, 31, 0, 0, 0, 0, 0, 19, 0,
2340 0, 0, 32, 21, 0, 0, 0, 0, 22, 0,
2341 33, 0, 24, 0, 575, 34, 0, 0, 0, 0,
2342 22, 27, 0, 28, 29, 0, 0, 22, 0, 7,
2343 8, 9, 10, 27, 0, 28, 29, 177, 0, 1358,
2344 27, 0, 28, 29, 0, 0, 0, 178, 0, 177,
2345 0, 0, 0, 0, 0, 33, 436, 0, 0, 178,
2346 1364, 0, 0, 0, 0, 0, 437, 33, 22, 0,
2347 0, 0, 179, 0, 33, 0, 0, 0, 0, 438,
2348 0, 27, 0, 28, 29, 0, 0, 0, 0, 19,
2349 0, 0, 0, 0, 0, 0, 0, 177, 0, 0,
2350 0, 0, 0, 0, 0, 0, 0, 178, 0, 0,
2351 0, 0, 0, 0, 0, 33, 0, 0, 0, 0,
2352 179, 530, 531, 532, 533, 534, 535, 536, 537, 538,
2353 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
2354 549, 550, 551, 530, 531, 532, 533, 534, 535, 536,
2355 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
2356 547, 548, 549, 550, 551, 534, 535, 536, 537, 538,
2357 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
2358 549, 550, 551, 0, 0, 614, 0, 0, 1415, 530,
2359 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
2360 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
2361 551, 1457, 530, 531, 532, 533, 534, 535, 536, 537,
2362 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
2363 548, 549, 550, 551, 530, 531, 532, 533, 534, 535,
2364 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
2365 546, 547, 548, 549, 550, 551, 535, 536, 537, 538,
2366 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
2367 549, 550, 551
2368 };
2369
2370 static const short yycheck[] = { 4,
2371 79, 34, 4, 146, 147, 4, 156, 329, 24, 4,
2372 525, 663, 193, 660, 381, 125, 56, 381, 58, 45,
2373 54, 14, 917, 79, 336, 337, 4, 352, 381, 232,
2374 83, 36, 811, 465, 36, 4, 41, 36, 444, 41,
2375 335, 36, 41, 285, 286, 726, 41, 228, 643, 75,
2376 1260, 56, 223, 4, 735, 193, 1392, 132, 36, 89,
2377 128, 91, 141, 41, 202, 133, 71, 36, 1283, 132,
2378 133, 11, 41, 48, 422, 317, 388, 389, 83, 61,
2379 201, 202, 87, 38, 89, 36, 91, 56, 34, 82,
2380 41, 579, 9, 1425, 743, 11, 277, 53, 586, 748,
2381 1, 106, 107, 11, 1422, 48, 136, 55, 187, 61,
2382 7, 1290, 105, 146, 147, 148, 63, 1449, 1297, 94,
2383 1427, 58, 65, 63, 55, 60, 166, 75, 75, 55,
2384 135, 136, 335, 138, 59, 110, 4, 12, 106, 107,
2385 65, 38, 60, 1, 75, 62, 179, 61, 329, 75,
2386 1, 94, 95, 193, 48, 160, 111, 135, 59, 111,
2387 1478, 201, 202, 31, 32, 111, 135, 4, 36, 34,
2388 110, 197, 650, 41, 580, 497, 111, 1392, 1514, 3,
2389 4, 5, 160, 1490, 135, 60, 381, 243, 63, 12,
2390 230, 160, 110, 60, 110, 151, 1528, 111, 847, 36,
2391 94, 59, 110, 417, 41, 63, 48, 0, 59, 160,
2392 0, 60, 63, 48, 196, 83, 61, 1396, 4, 5,
2393 63, 75, 204, 98, 48, 75, 287, 288, 184, 1409,
2394 662, 55, 75, 57, 58, 430, 229, 60, 96, 61,
2395 63, 302, 39, 110, 305, 96, 83, 308, 1027, 1459,
2396 311, 326, 94, 95, 315, 49, 193, 1436, 55, 94,
2397 410, 110, 323, 326, 201, 202, 111, 135, 1448, 322,
2398 94, 57, 58, 278, 48, 98, 4, 5, 146, 147,
2399 633, 146, 147, 148, 63, 880, 354, 110, 14, 111,
2400 602, 228, 160, 436, 437, 81, 63, 23, 135, 1479,
2401 75, 626, 1481, 598, 309, 519, 955, 375, 338, 177,
2402 178, 449, 375, 48, 179, 75, 60, 322, 967, 686,
2403 94, 95, 686, 160, 55, 330, 94, 448, 449, 57,
2404 58, 110, 63, 338, 339, 456, 4, 5, 64, 60,
2405 277, 309, 335, 110, 75, 385, 386, 468, 1033, 1034,
2406 384, 1036, 1001, 81, 1003, 76, 48, 59, 94, 94,
2407 682, 339, 76, 851, 78, 486, 110, 1126, 1127, 884,
2408 339, 48, 3, 4, 5, 6, 381, 48, 1273, 94,
2409 385, 1140, 860, 1162, 579, 863, 381, 94, 339, 57,
2410 58, 586, 329, 109, 65, 27, 28, 123, 100, 887,
2411 32, 441, 94, 436, 437, 438, 442, 61, 448, 449,
2412 466, 42, 452, 81, 450, 36, 456, 94, 95, 145,
2413 41, 899, 900, 94, 55, 430, 57, 58, 48, 61,
2414 412, 48, 458, 65, 25, 1330, 27, 28, 48, 927,
2415 48, 25, 848, 48, 1339, 1340, 758, 61, 65, 386,
2416 664, 63, 513, 514, 322, 1287, 12, 1289, 89, 427,
2417 1141, 466, 492, 75, 60, 813, 1225, 466, 59, 65,
2418 55, 339, 63, 455, 94, 1234, 1235, 94, 1237, 111,
2419 76, 3, 4, 5, 94, 322, 94, 492, 466, 94,
2420 495, 686, 32, 498, 220, 221, 63, 502, 503, 504,
2421 505, 506, 339, 75, 60, 96, 232, 63, 561, 65,
2422 515, 448, 449, 381, 881, 466, 25, 881, 55, 456,
2423 525, 953, 55, 528, 3, 4, 5, 495, 881, 59,
2424 498, 468, 60, 61, 502, 57, 58, 48, 75, 710,
2425 111, 712, 98, 55, 381, 59, 717, 515, 743, 486,
2426 59, 8, 9, 748, 63, 560, 561, 14, 1453, 81,
2427 528, 856, 430, 75, 532, 605, 48, 94, 436, 437,
2428 604, 436, 437, 438, 579, 301, 55, 55, 57, 58,
2429 37, 586, 703, 94, 1062, 1063, 767, 96, 60, 46,
2430 558, 48, 48, 430, 1082, 55, 564, 590, 466, 48,
2431 640, 1450, 642, 48, 76, 639, 78, 641, 642, 48,
2432 720, 853, 94, 1462, 55, 631, 55, 1105, 48, 1378,
2433 1379, 4, 5, 1472, 25, 351, 27, 28, 76, 466,
2434 48, 1037, 60, 61, 48, 640, 75, 94, 94, 644,
2435 1489, 55, 682, 48, 992, 94, 662, 55, 682, 94,
2436 95, 110, 847, 856, 11, 94, 851, 110, 59, 1508,
2437 1092, 75, 63, 703, 94, 110, 706, 75, 605, 95,
2438 726, 1019, 728, 48, 57, 58, 94, 110, 734, 735,
2439 94, 686, 1531, 995, 996, 997, 881, 110, 1120, 94,
2440 60, 61, 887, 561, 734, 96, 27, 28, 81, 733,
2441 740, 915, 111, 729, 730, 642, 84, 85, 576, 577,
2442 1032, 579, 738, 94, 744, 745, 746, 3, 586, 94,
2443 95, 726, 113, 728, 561, 60, 61, 726, 61, 734,
2444 735, 95, 927, 4, 5, 110, 735, 463, 743, 744,
2445 745, 746, 579, 748, 95, 682, 4, 5, 726, 586,
2446 728, 60, 61, 1101, 755, 756, 757, 735, 4, 5,
2447 955, 822, 1110, 1111, 733, 734, 703, 1115, 1116, 48,
2448 63, 1418, 967, 48, 94, 726, 55, 728, 94, 950,
2449 951, 952, 60, 61, 735, 113, 57, 58, 849, 850,
2450 1442, 25, 75, 27, 28, 75, 75, 60, 61, 57,
2451 58, 3, 4, 5, 60, 810, 1001, 75, 1003, 814,
2452 81, 57, 58, 892, 25, 94, 27, 28, 686, 94,
2453 95, 75, 11, 81, 111, 59, 110, 60, 110, 63,
2454 767, 61, 27, 28, 110, 110, 841, 32, 3, 4,
2455 5, 6, 847, 4, 5, 230, 851, 111, 59, 686,
2456 818, 110, 63, 55, 887, 57, 58, 59, 726, 110,
2457 728, 55, 96, 856, 1212, 60, 61, 735, 111, 63,
2458 65, 3, 4, 5, 113, 743, 881, 42, 883, 884,
2459 748, 75, 887, 851, 49, 96, 881, 1082, 110, 726,
2460 113, 728, 57, 58, 927, 55, 57, 58, 735, 55,
2461 979, 65, 75, 63, 75, 631, 743, 63, 75, 113,
2462 1105, 748, 4, 5, 113, 75, 81, 643, 110, 75,
2463 960, 961, 927, 979, 89, 57, 58, 59, 81, 82,
2464 83, 84, 85, 110, 990, 110, 941, 1080, 1081, 3,
2465 4, 5, 59, 948, 110, 971, 3, 4, 5, 989,
2466 955, 977, 978, 45, 8, 981, 982, 55, 4, 985,
2467 1103, 1104, 967, 55, 113, 57, 58, 1289, 94, 3,
2468 4, 5, 3, 4, 5, 6, 48, 65, 1039, 847,
2469 948, 849, 850, 851, 60, 990, 94, 4, 5, 111,
2470 36, 990, 9, 57, 58, 41, 1001, 31, 1003, 61,
2471 57, 58, 37, 110, 65, 1084, 34, 65, 61, 65,
2472 847, 42, 990, 881, 851, 63, 110, 885, 886, 887,
2473 110, 55, 887, 57, 58, 110, 57, 58, 110, 3,
2474 4, 5, 6, 65, 113, 4, 5, 60, 55, 990,
2475 57, 58, 1103, 1104, 881, 65, 65, 1080, 1081, 1082,
2476 887, 65, 1419, 94, 71, 1419, 441, 63, 89, 927,
2477 110, 110, 927, 110, 81, 110, 110, 452, 42, 76,
2478 1103, 1104, 1105, 76, 76, 49, 1092, 1082, 95, 76,
2479 110, 1137, 60, 57, 58, 1141, 55, 955, 57, 58,
2480 927, 63, 1132, 1133, 110, 1135, 1136, 110, 1138, 967,
2481 1105, 110, 71, 8, 9, 113, 111, 81, 95, 14,
2482 110, 1433, 81, 89, 110, 89, 4, 5, 955, 147,
2483 148, 113, 990, 3, 4, 5, 95, 1341, 48, 110,
2484 967, 110, 37, 1001, 111, 1003, 1141, 1105, 113, 1353,
2485 113, 46, 1141, 3, 4, 5, 872, 7, 8, 9,
2486 110, 179, 110, 990, 880, 3, 4, 5, 6, 39,
2487 40, 110, 42, 1141, 1001, 110, 1003, 55, 1516, 57,
2488 58, 27, 28, 111, 60, 55, 32, 57, 58, 60,
2489 65, 65, 1222, 1223, 60, 1153, 1154, 1155, 1156, 110,
2490 1141, 110, 1160, 1198, 42, 1409, 1198, 57, 58, 1198,
2491 94, 49, 94, 1208, 60, 61, 1232, 1233, 111, 57,
2492 58, 94, 1080, 1081, 1082, 1080, 1081, 1082, 113, 94,
2493 110, 110, 1283, 8, 1419, 3, 4, 5, 6, 111,
2494 65, 9, 1446, 81, 1448, 1103, 1104, 1105, 1103, 1104,
2495 1105, 89, 110, 110, 110, 1082, 110, 1198, 1288, 1289,
2496 1464, 1401, 1433, 1287, 113, 1289, 110, 110, 110, 110,
2497 110, 1404, 1405, 110, 42, 1479, 110, 110, 1105, 1309,
2498 1310, 1311, 79, 1141, 110, 113, 48, 55, 1283, 57,
2499 58, 309, 110, 1288, 1283, 1290, 110, 110, 1290, 97,
2500 34, 1290, 1297, 71, 110, 1297, 103, 110, 1297, 3,
2501 4, 5, 6, 81, 1141, 3, 4, 5, 110, 110,
2502 1278, 89, 4, 5, 113, 110, 94, 9, 110, 61,
2503 63, 706, 423, 63, 61, 132, 9, 61, 16, 430,
2504 1198, 1364, 1283, 94, 141, 1375, 1376, 1363, 42, 1290,
2505 94, 61, 61, 1404, 1405, 94, 1297, 109, 99, 94,
2506 17, 55, 1289, 57, 58, 740, 61, 61, 61, 57,
2507 58, 1198, 701, 55, 110, 57, 58, 71, 11, 110,
2508 61, 1404, 1405, 1406, 110, 110, 61, 81, 94, 71,
2509 187, 60, 1350, 110, 61, 89, 61, 1392, 1393, 81,
2510 94, 1396, 493, 1392, 1396, 65, 110, 1396, 4, 5,
2511 1434, 1406, 11, 742, 61, 61, 11, 0, 747, 437,
2512 438, 110, 0, 220, 1419, 1283, 0, 1422, 409, 2,
2513 1425, 354, 1290, 1425, 1392, 1393, 1425, 4, 5, 1297,
2514 1456, 1436, 9, 1417, 1436, 881, 243, 1436, 1406, 160,
2515 1480, 1392, 160, 734, 1449, 1396, 1283, 1449, 1092, 55,
2516 1449, 57, 58, 1290, 1422, 728, 557, 93, 559, 560,
2517 1297, 3, 4, 5, 138, 71, 1388, 495, 1528, 1195,
2518 498, 48, 1288, 1478, 1425, 81, 1481, 280, 55, 1481,
2519 57, 58, 1481, 872, 669, 1436, 514, 515, 867, 222,
2520 1120, 953, 593, 990, 71, 611, 1433, 728, 1449, 1364,
2521 528, 1139, 734, 842, 81, 844, 865, 326, 1476, 561,
2522 1478, 184, 123, 55, 91, 57, 58, 94, 95, 1290,
2523 1199, 1442, 1464, 1528, 1392, 1393, 1528, 334, 1396, 1528,
2524 1481, 1501, 1500, 1439, 936, 1208, 1404, 1405, 1503, 1404,
2525 1405, 1406, 4, 3, 4, 5, 1514, 7, -1, -1,
2526 -1, 1419, 14, 1279, 1422, 1392, 1393, 1425, 586, 1396,
2527 3, 4, 5, 25, 3, 4, 5, 6, 1436, 31,
2528 32, 31, 34, -1, 36, 960, 961, 1528, 38, 41,
2529 -1, 1449, 1419, -1, 391, 1422, -1, -1, 1425, -1,
2530 -1, 48, 54, -1, 56, 55, -1, 57, 58, 1436,
2531 -1, -1, 64, 42, 989, -1, 1332, -1, -1, 71,
2532 1478, -1, 1449, 1481, 57, 58, -1, -1, 57, 58,
2533 82, 83, -1, -1, 3, 4, 5, 423, -1, -1,
2534 87, 88, -1, -1, 430, 92, 93, 94, 95, -1,
2535 -1, 1478, -1, 105, 1481, -1, -1, -1, -1, 3,
2536 4, 5, 6, 3, 4, 5, 463, 7, 8, 9,
2537 1528, 1000, -1, 1002, -1, -1, 128, -1, -1, -1,
2538 -1, 133, -1, 135, -1, -1, -1, 139, 57, 58,
2539 142, 143, 489, -1, 146, 147, 148, 37, 42, -1,
2540 -1, 1528, -1, -1, -1, 49, -1, 493, 160, 7,
2541 8, 9, -1, 57, 58, 55, 14, 57, 58, 59,
2542 -1, -1, -1, 814, 1053, 177, 178, 179, -1, -1,
2543 -1, -1, -1, -1, 32, -1, 827, 81, 829, 37,
2544 831, -1, -1, 761, -1, 89, -1, -1, 46, -1,
2545 9, -1, -1, 12, 206, -1, -1, 1132, 1133, -1,
2546 1135, 1136, -1, 1138, -1, 105, 106, 107, -1, 221,
2547 -1, 557, -1, 559, 560, -1, 573, 229, -1, -1,
2548 -1, -1, -1, 874, 7, 8, 9, -1, 240, 48,
2549 -1, 14, 589, -1, -1, 1124, -1, -1, -1, 1128,
2550 586, 60, -1, 62, 63, -1, 65, 593, -1, 32,
2551 -1, -1, -1, -1, 37, -1, -1, 76, 909, 78,
2552 -1, -1, -1, 46, -1, -1, 278, 279, -1, -1,
2553 -1, -1, 850, 851, -1, 94, 95, -1, 61, 98,
2554 3, 4, 5, 6, -1, -1, 1175, 1222, 1223, -1,
2555 -1, 110, 79, 80, 81, 82, 83, 84, 85, -1,
2556 1, -1, 3, 4, 5, 6, 7, 8, 9, 887,
2557 322, -1, -1, 14, 326, -1, 328, 329, 330, 42,
2558 -1, -1, -1, -1, -1, -1, 49, 339, 29, -1,
2559 31, 32, 33, -1, 57, 58, 37, 38, -1, -1,
2560 -1, 42, 354, -1, -1, 46, 47, -1, 49, 927,
2561 -1, -1, 1241, 1242, 55, -1, 57, 58, 81, -1,
2562 61, -1, 63, 375, -1, 1254, 89, -1, -1, 381,
2563 71, -1, 384, 385, 1309, 1310, 1311, 7, 8, 9,
2564 81, -1, -1, 395, 14, -1, 398, -1, 89, -1,
2565 -1, 403, -1, 94, -1, -1, -1, 34, 3, 4,
2566 5, 6, 32, 177, 178, 179, -1, 37, -1, -1,
2567 111, -1, -1, 1302, 1303, 761, 46, 54, -1, -1,
2568 432, -1, 434, -1, 436, 437, 438, -1, -1, -1,
2569 442, 61, 1321, 1322, -1, 447, -1, 42, 450, -1,
2570 1375, 1376, -1, 1094, -1, 1096, -1, 1098, -1, -1,
2571 55, -1, 57, 58, 466, -1, -1, -1, 63, -1,
2572 3, 4, 5, 6, -1, -1, 71, -1, 814, -1,
2573 -1, -1, -1, -1, -1, -1, 81, -1, -1, -1,
2574 -1, 827, -1, 829, 89, 831, -1, -1, -1, 94,
2575 -1, 503, 504, 505, 506, 7, 8, 9, 855, 42,
2576 857, -1, 14, 1081, 1082, -1, 49, -1, -1, 146,
2577 147, 148, -1, -1, 57, 58, 3, 4, 5, 6,
2578 32, -1, 9, -1, -1, 37, 1104, 1105, 874, -1,
2579 -1, 1182, -1, -1, 46, 892, -1, 12, -1, -1,
2580 177, 178, 179, -1, -1, 1480, 89, 4, 5, 561,
2581 -1, 563, 27, 28, -1, 42, -1, 32, -1, -1,
2582 -1, 48, 574, 909, 576, 577, -1, 579, 55, 206,
2583 57, 58, -1, 48, 586, -1, -1, -1, 590, -1,
2584 -1, 927, -1, -1, 71, 60, 61, -1, 63, -1,
2585 65, 48, 604, -1, 81, -1, -1, -1, 55, -1,
2586 57, 58, 89, -1, 91, -1, -1, 94, 95, -1,
2587 -1, -1, -1, -1, 71, -1, -1, -1, -1, 94,
2588 95, -1, 979, 98, 81, -1, -1, 639, 640, 641,
2589 642, 643, 644, -1, 91, 110, -1, 94, 95, -1,
2590 -1, -1, 279, -1, 4, 5, -1, 7, 8, 9,
2591 -1, -1, 12, -1, 14, -1, -1, -1, 432, -1,
2592 434, -1, 436, 437, 438, -1, -1, -1, -1, 29,
2593 682, 31, 32, 447, 686, -1, -1, 37, -1, -1,
2594 -1, 693, 694, -1, 696, -1, 46, 3, 4, 5,
2595 6, 328, 329, 330, -1, 55, -1, 57, 58, -1,
2596 -1, -1, 1059, -1, -1, 1, -1, 3, 4, 5,
2597 6, 723, 8, -1, 726, -1, 728, -1, -1, -1,
2598 -1, 733, 734, 735, -1, -1, 42, 1084, -1, -1,
2599 -1, 743, -1, 49, -1, -1, 748, -1, 98, -1,
2600 -1, 57, 58, 755, 756, 757, 42, 384, 1094, -1,
2601 1096, -1, 1098, 49, -1, 767, -1, -1, -1, 55,
2602 -1, 57, 58, 3, 4, 5, 6, -1, -1, 9,
2603 -1, -1, -1, 89, -1, -1, -1, -1, -1, -1,
2604 1137, -1, -1, -1, -1, -1, 1364, -1, -1, -1,
2605 -1, -1, -1, 89, -1, 432, -1, 434, 810, 436,
2606 437, 438, 42, -1, -1, 442, -1, -1, 48, -1,
2607 447, -1, -1, 450, -1, 55, -1, 57, 58, -1,
2608 832, -1, 834, -1, -1, 12, -1, 1405, 1406, 841,
2609 -1, 71, -1, 845, -1, 847, 1182, 849, 850, 851,
2610 -1, 81, -1, -1, 856, -1, -1, -1, -1, 89,
2611 -1, 91, -1, -1, 94, 95, 73, 74, 75, 76,
2612 77, 78, 79, 80, 81, 82, 83, 84, 85, 881,
2613 -1, 883, -1, 885, 886, 887, 63, 64, 65, 66,
2614 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2615 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
2616 -1, -1, -1, -1, 4, -1, 3, 4, 5, 6,
2617 -1, -1, 9, -1, 14, 927, -1, -1, -1, 693,
2618 694, -1, 696, -1, 24, 25, 563, -1, -1, 941,
2619 -1, 31, 32, -1, 34, -1, 36, -1, -1, 576,
2620 577, 41, 579, 955, -1, 42, -1, -1, -1, 586,
2621 -1, 48, -1, -1, 54, 967, 56, -1, 55, 733,
2622 57, 58, -1, -1, 64, -1, -1, 604, 980, -1,
2623 -1, 71, -1, -1, 71, 3, 4, 5, 990, 7,
2624 8, 9, -1, 83, 81, -1, -1, -1, -1, 1001,
2625 -1, 1003, 89, -1, 91, -1, -1, 94, 95, -1,
2626 -1, -1, 639, -1, 641, 642, -1, 644, -1, 37,
2627 -1, -1, -1, -1, -1, -1, -1, -1, 1364, -1,
2628 -1, 1033, 1034, -1, 1036, -1, -1, -1, 128, 57,
2629 58, -1, -1, -1, -1, 135, -1, -1, -1, 139,
2630 -1, -1, -1, 143, -1, 682, 146, 147, 148, -1,
2631 -1, -1, -1, -1, -1, -1, 693, 694, -1, 696,
2632 160, -1, -1, -1, -1, -1, 1078, 1079, 1080, 1081,
2633 1082, -1, -1, -1, 1086, -1, -1, 177, 178, 179,
2634 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
2635 -1, 1103, 1104, 1105, -1, -1, 733, -1, -1, -1,
2636 -1, -1, -1, 4, 5, -1, 206, -1, 9, -1,
2637 -1, 885, 886, 887, -1, -1, -1, -1, 755, 756,
2638 757, -1, 1134, -1, -1, -1, -1, 1139, -1, 1141,
2639 767, -1, 3, 4, 5, 6, 7, 8, 9, -1,
2640 240, 12, -1, 14, -1, -1, -1, 48, -1, -1,
2641 -1, -1, -1, 927, 55, -1, 57, 58, 29, -1,
2642 31, 32, -1, -1, -1, -1, 37, -1, -1, -1,
2643 71, 42, -1, 1185, 1186, 46, 1188, 48, 278, 279,
2644 81, -1, -1, -1, 55, -1, 57, 58, -1, -1,
2645 91, -1, -1, 94, 95, 832, 1208, 834, -1, -1,
2646 71, 3, 4, 5, 6, -1, -1, 9, 845, -1,
2647 81, -1, 849, 850, 851, -1, -1, -1, 89, -1,
2648 91, -1, 322, 94, 95, -1, 326, 98, 328, 329,
2649 330, -1, -1, -1, -1, 335, -1, -1, -1, 339,
2650 42, -1, -1, -1, -1, -1, 48, -1, 885, 886,
2651 887, -1, -1, 55, 354, 57, 58, 74, 75, 76,
2652 77, 78, 79, 80, 81, 82, 83, 84, 85, 71,
2653 -1, 3, 4, 5, 6, 1287, 1288, 1289, -1, 81,
2654 -1, 381, -1, -1, 384, 385, -1, 89, -1, 91,
2655 927, -1, 94, 95, 81, 395, -1, -1, 398, -1,
2656 -1, -1, -1, 403, 1078, 1079, 1080, 1081, 1082, -1,
2657 42, -1, 1086, -1, -1, -1, 48, -1, -1, -1,
2658 -1, -1, -1, 55, -1, 57, 58, -1, -1, 1103,
2659 1104, 1105, 432, -1, 434, -1, 436, 437, 438, 71,
2660 -1, -1, 442, -1, -1, -1, -1, 447, -1, 81,
2661 450, -1, 1364, -1, -1, -1, -1, 89, -1, 91,
2662 1134, -1, 94, 95, -1, 465, 466, 154, -1, 3,
2663 4, 5, 6, 71, 72, 73, 74, 75, 76, 77,
2664 78, 79, 80, 81, 82, 83, 84, 85, 175, -1,
2665 -1, -1, 1404, 1405, 1406, -1, 1033, 1034, -1, 1036,
2666 -1, 188, -1, 503, 504, 505, 506, 1419, 42, -1,
2667 -1, 1185, 1186, -1, 1188, 49, -1, -1, -1, -1,
2668 -1, -1, 1434, 57, 58, -1, -1, -1, -1, 4,
2669 5, -1, 7, 8, 9, -1, -1, 12, -1, 14,
2670 -1, 1078, 1079, 1080, 1081, 1082, -1, -1, -1, 1086,
2671 -1, -1, -1, -1, 29, 89, 31, 32, -1, -1,
2672 -1, 561, 37, 563, -1, -1, 1103, 1104, 1105, -1,
2673 -1, 46, -1, 48, -1, -1, 576, 577, -1, 579,
2674 55, -1, 57, 58, -1, -1, 586, -1, -1, -1,
2675 -1, 328, 329, 330, -1, -1, 71, 1134, 598, -1,
2676 -1, -1, -1, -1, 604, -1, 81, -1, -1, -1,
2677 -1, -1, -1, -1, -1, -1, 91, -1, -1, 94,
2678 95, -1, 1, 98, 3, 4, 5, 6, 7, 8,
2679 9, 631, -1, -1, -1, 14, -1, -1, -1, 639,
2680 640, 641, 642, 643, 644, -1, -1, -1, 1185, 1186,
2681 29, 1188, 31, 32, -1, -1, -1, -1, 37, -1,
2682 -1, -1, 662, 42, -1, -1, -1, 46, 47, -1,
2683 49, -1, -1, -1, -1, -1, 55, -1, 57, 58,
2684 -1, -1, 682, -1, 63, -1, 686, -1, -1, -1,
2685 1364, -1, 71, 693, 694, -1, 696, -1, -1, -1,
2686 -1, -1, 81, -1, -1, -1, -1, -1, -1, -1,
2687 89, -1, 4, 5, -1, 94, 8, 9, -1, -1,
2688 -1, -1, 14, 723, -1, -1, 726, -1, 728, -1,
2689 1404, 1405, 1406, 733, 734, 735, -1, 29, -1, 31,
2690 -1, -1, -1, 743, -1, 37, -1, -1, 748, -1,
2691 1287, -1, 1289, 440, 46, 755, 756, 757, 445, -1,
2692 -1, -1, -1, 55, -1, 57, 58, 767, -1, -1,
2693 -1, 4, 5, -1, -1, 8, 9, -1, -1, -1,
2694 -1, 14, -1, 470, -1, -1, 54, -1, 475, -1,
2695 -1, -1, -1, -1, -1, -1, 29, -1, 31, -1,
2696 487, 488, 94, 490, 37, -1, -1, -1, -1, -1,
2697 810, 79, -1, 46, 82, 48, -1, -1, -1, -1,
2698 -1, -1, 55, -1, 57, 58, -1, 1364, -1, -1,
2699 -1, -1, 832, -1, 834, 103, -1, 105, 71, 576,
2700 577, 841, -1, -1, -1, 845, -1, 847, 81, 849,
2701 850, 851, -1, -1, -1, -1, 856, -1, 91, -1,
2702 -1, 94, 95, -1, -1, -1, -1, 1404, 1405, 1406,
2703 -1, 4, -1, -1, 3, 4, 5, 6, -1, -1,
2704 9, 881, -1, 883, -1, 885, 886, 887, -1, -1,
2705 -1, -1, -1, -1, -1, 582, 583, 1434, 31, 32,
2706 587, 34, 639, 36, 641, 642, -1, 644, 41, 177,
2707 178, 179, -1, 42, -1, -1, -1, -1, -1, 187,
2708 -1, 54, -1, 56, -1, -1, 55, 927, 57, 58,
2709 -1, -1, -1, -1, -1, -1, -1, -1, 206, -1,
2710 -1, 941, 71, -1, -1, 682, 79, -1, -1, -1,
2711 -1, -1, 81, 953, -1, 955, -1, -1, -1, -1,
2712 89, 229, -1, -1, -1, 94, -1, 967, -1, -1,
2713 -1, -1, -1, -1, -1, 243, -1, -1, -1, -1,
2714 -1, 1, -1, 3, 4, 5, 6, 7, 8, 9,
2715 990, -1, -1, -1, 14, 128, -1, -1, -1, 132,
2716 133, 1001, 135, 1003, -1, -1, 139, -1, 141, 29,
2717 143, 31, 32, 146, 147, 148, -1, 37, -1, -1,
2718 -1, -1, 42, -1, -1, -1, 46, 160, -1, 49,
2719 767, -1, -1, 1033, 1034, 55, 1036, 57, 58, -1,
2720 -1, 61, -1, -1, 177, 178, 179, -1, -1, -1,
2721 -1, 71, -1, -1, 187, -1, -1, -1, -1, -1,
2722 -1, 81, 749, -1, 751, -1, 334, 335, -1, 89,
2723 4, 5, -1, 206, 94, 9, -1, -1, 1078, 1079,
2724 1080, 1081, 1082, -1, -1, -1, 1086, -1, -1, -1,
2725 -1, -1, 1092, -1, -1, 832, -1, 834, -1, -1,
2726 -1, -1, -1, 1103, 1104, 1105, -1, 240, 845, -1,
2727 -1, -1, 849, 850, 48, -1, 384, -1, -1, -1,
2728 1120, 55, -1, 57, 58, -1, -1, -1, -1, 816,
2729 817, -1, 819, -1, 1134, -1, -1, 71, -1, 1139,
2730 -1, 1141, -1, -1, -1, -1, -1, 81, 885, 886,
2731 -1, -1, -1, -1, -1, -1, -1, 91, -1, 846,
2732 94, 95, -1, -1, 432, -1, 434, -1, 436, 437,
2733 438, -1, -1, -1, 442, -1, 309, -1, -1, 447,
2734 -1, -1, 450, -1, -1, 1185, 1186, -1, 1188, -1,
2735 -1, -1, -1, 326, -1, 4, 5, -1, -1, 8,
2736 9, 334, 889, -1, -1, 14, 339, -1, 1208, -1,
2737 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2738 29, 354, 31, -1, -1, -1, -1, -1, 37, 3,
2739 4, 5, 6, 7, 8, 9, -1, 46, 12, -1,
2740 14, -1, 375, -1, -1, -1, 55, -1, 57, 58,
2741 59, 384, -1, -1, -1, 29, -1, 31, 32, -1,
2742 -1, -1, 395, 37, -1, 398, -1, 954, 42, -1,
2743 403, -1, 46, -1, -1, -1, -1, -1, -1, 966,
2744 -1, 55, -1, 57, 58, 94, -1, 1287, 1288, 1289,
2745 -1, -1, -1, -1, -1, -1, -1, 71, -1, 432,
2746 4, 434, -1, 436, 437, 438, -1, 81, -1, 442,
2747 -1, -1, -1, -1, 447, 89, -1, 450, -1, -1,
2748 94, 589, 590, -1, -1, -1, -1, 31, 32, -1,
2749 34, -1, 36, 466, -1, -1, 604, 41, -1, -1,
2750 -1, 1078, 1079, 1080, 1081, -1, -1, -1, -1, 1086,
2751 54, -1, 56, -1, -1, 3, 4, 5, 6, -1,
2752 -1, 1048, 495, -1, 1364, 498, 1103, 1104, -1, -1,
2753 -1, 639, -1, 641, 642, -1, -1, -1, -1, -1,
2754 513, 514, 515, -1, -1, -1, -1, -1, -1, -1,
2755 -1, -1, -1, -1, 42, 528, -1, -1, 1085, -1,
2756 -1, -1, -1, -1, 1404, 1405, 1406, 55, -1, 57,
2757 58, -1, -1, -1, 682, 63, -1, -1, -1, 1419,
2758 -1, -1, -1, 71, -1, 693, 694, -1, 696, -1,
2759 -1, 135, -1, 81, 1434, 139, -1, -1, -1, 143,
2760 573, 89, 146, 147, 148, -1, 94, -1, 1185, 1186,
2761 -1, 1188, 720, 586, -1, -1, 160, 1144, -1, -1,
2762 -1, 1148, -1, -1, -1, 733, -1, -1, -1, -1,
2763 -1, 604, -1, 177, 178, 179, -1, -1, 4, 5,
2764 -1, -1, 8, 9, -1, -1, -1, -1, 14, -1,
2765 1177, 4, 5, -1, -1, 8, 9, -1, -1, -1,
2766 -1, 14, 206, 29, -1, 31, 639, 640, 641, 642,
2767 -1, 37, 3, 4, 5, 6, 7, 8, 9, -1,
2768 46, -1, -1, 14, 37, -1, -1, -1, -1, 55,
2769 1217, 57, 58, 46, 1221, 48, 240, -1, 29, -1,
2770 31, 32, 55, -1, 57, 58, 37, -1, -1, 682,
2771 -1, 42, -1, 686, -1, 46, 1243, 1244, 71, -1,
2772 693, 694, -1, 696, 55, -1, 57, 58, 81, -1,
2773 61, -1, -1, -1, -1, -1, -1, -1, 91, -1,
2774 71, 94, 95, -1, -1, -1, -1, 855, 856, 857,
2775 81, -1, -1, 726, -1, 728, -1, -1, 89, -1,
2776 733, 734, 735, 94, -1, -1, -1, -1, -1, 3,
2777 4, 5, 6, 7, 8, 9, -1, 885, 886, 887,
2778 14, 87, -1, 89, 892, 91, -1, -1, 761, -1,
2779 -1, 335, -1, -1, -1, 339, -1, -1, 32, -1,
2780 -1, -1, -1, 37, -1, -1, -1, -1, 42, -1,
2781 -1, -1, 46, -1, 48, -1, -1, -1, -1, 927,
2782 -1, 55, -1, 57, 58, -1, -1, -1, -1, -1,
2783 136, -1, 138, -1, -1, -1, -1, 71, -1, -1,
2784 384, -1, -1, -1, -1, -1, -1, 81, -1, -1,
2785 -1, 395, -1, -1, 398, 89, -1, 91, -1, 403,
2786 94, 95, -1, -1, -1, -1, 3, 4, 5, 6,
2787 -1, 979, 9, 106, 107, -1, 849, 850, 851, -1,
2788 -1, -1, 855, -1, -1, -1, -1, -1, 432, -1,
2789 434, -1, 436, 437, 438, -1, -1, -1, 442, -1,
2790 -1, -1, -1, 447, -1, 42, 450, -1, -1, -1,
2791 -1, -1, 885, 886, 887, -1, -1, -1, 55, 892,
2792 57, 58, 466, -1, -1, -1, -1, -1, -1, -1,
2793 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
2794 -1, -1, -1, -1, 81, -1, -1, -1, -1, -1,
2795 -1, 1059, 89, -1, 927, -1, -1, 94, -1, -1,
2796 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2797 1078, 1079, 1080, 1081, 1082, -1, 1084, 1, 1086, 3,
2798 4, 5, 6, 7, 8, 9, -1, -1, -1, -1,
2799 14, -1, -1, -1, 300, 1103, 1104, 1105, -1, -1,
2800 -1, -1, -1, -1, -1, 29, 979, 31, 32, 33,
2801 -1, -1, -1, 37, 38, -1, -1, 990, 42, -1,
2802 -1, -1, 46, 47, -1, 49, 1134, -1, -1, -1,
2803 574, 55, 338, 57, 58, -1, -1, 61, -1, 63,
2804 -1, -1, -1, -1, -1, -1, -1, 71, 4, 5,
2805 -1, -1, 8, 9, -1, -1, -1, 81, 14, -1,
2806 604, -1, -1, -1, -1, 89, -1, -1, -1, -1,
2807 94, -1, -1, 29, -1, 31, 309, 1185, 1186, -1,
2808 1188, 37, -1, -1, -1, -1, 1059, 111, -1, -1,
2809 46, -1, -1, -1, -1, 639, 640, 641, 642, 55,
2810 -1, 57, 58, -1, -1, 1078, 1079, 1080, 1081, 1082,
2811 -1, 1084, -1, 1086, -1, -1, 422, 423, 4, 5,
2812 -1, -1, 8, 9, 430, -1, -1, -1, 14, -1,
2813 1103, 1104, 1105, -1, -1, -1, -1, -1, 682, -1,
2814 -1, -1, 686, -1, -1, -1, -1, -1, 381, 693,
2815 694, 37, 696, -1, -1, -1, -1, -1, -1, -1,
2816 46, 1134, 48, -1, -1, -1, 1139, -1, 1141, 55,
2817 -1, 57, 58, -1, -1, -1, -1, -1, -1, 1287,
2818 -1, 1289, 726, -1, 728, 71, 492, 493, -1, 733,
2819 734, 735, -1, -1, -1, 81, -1, 430, -1, -1,
2820 -1, -1, -1, -1, -1, 91, -1, -1, 94, 95,
2821 -1, -1, 1185, 1186, -1, 1188, -1, -1, -1, 525,
2822 -1, 527, -1, -1, 530, 531, -1, 533, 534, 535,
2823 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
2824 546, 547, 548, 549, 550, 551, -1, -1, -1, -1,
2825 -1, 557, -1, 559, 560, -1, 1364, -1, -1, -1,
2826 -1, -1, 495, -1, -1, 498, -1, -1, -1, 502,
2827 503, 504, 505, 506, -1, -1, -1, -1, -1, -1,
2828 586, -1, 515, -1, -1, -1, -1, 593, -1, -1,
2829 -1, -1, -1, -1, -1, 528, 1404, 1405, 1406, -1,
2830 -1, -1, -1, -1, -1, -1, -1, 613, 614, -1,
2831 -1, -1, 856, -1, 1287, 1288, 1289, -1, -1, -1,
2832 -1, -1, -1, -1, -1, -1, 1434, 560, -1, -1,
2833 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2834 -1, 885, 886, 887, -1, -1, 579, -1, -1, -1,
2835 -1, -1, -1, 586, -1, -1, 3, 4, 5, 6,
2836 7, 8, 9, 669, -1, -1, -1, 14, -1, -1,
2837 4, -1, -1, 3, 4, 5, 6, -1, -1, 9,
2838 -1, -1, 29, 927, 31, 32, -1, -1, -1, -1,
2839 37, 1364, -1, -1, -1, 42, -1, 31, 32, 46,
2840 -1, 48, 36, -1, -1, -1, -1, 41, 55, -1,
2841 57, 58, 42, -1, -1, -1, -1, -1, -1, 725,
2842 -1, -1, 56, -1, 71, 55, -1, 57, 58, -1,
2843 -1, 1404, 1405, 1406, 81, -1, -1, -1, 744, 745,
2844 746, 71, 89, -1, 91, -1, 990, 94, 95, -1,
2845 -1, 81, -1, 686, -1, 761, -1, -1, -1, 89,
2846 -1, 1434, -1, -1, 94, -1, -1, -1, -1, -1,
2847 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
2848 5, 6, -1, -1, 9, 70, 71, 72, 73, 74,
2849 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2850 85, 135, -1, -1, -1, 139, -1, 813, 814, 143,
2851 743, -1, -1, -1, -1, 748, -1, 42, -1, -1,
2852 -1, 827, -1, 829, -1, 831, 160, 328, 329, 330,
2853 55, -1, 57, 58, 1078, 1079, 1080, 1081, 1082, -1,
2854 -1, -1, 1086, 177, 178, -1, 71, 4, 5, -1,
2855 7, 8, 9, -1, -1, 12, 81, 14, 864, 1103,
2856 1104, 1105, -1, -1, 89, -1, -1, -1, 874, 94,
2857 -1, -1, 29, -1, 31, 32, -1, 810, 884, -1,
2858 37, 3, 4, 5, 6, 7, 8, 9, -1, 46,
2859 1134, 897, 14, -1, -1, 1139, -1, 1141, 55, -1,
2860 57, 58, -1, 909, -1, -1, 240, -1, 841, -1,
2861 32, -1, -1, -1, 847, 37, -1, -1, 851, -1,
2862 42, 927, -1, -1, 46, -1, 48, -1, -1, -1,
2863 -1, -1, -1, 55, -1, 57, 58, -1, -1, -1,
2864 -1, 1185, 1186, -1, 1188, -1, -1, -1, 881, 71,
2865 883, -1, -1, -1, 887, -1, -1, -1, -1, 81,
2866 -1, -1, -1, -1, 970, -1, -1, 89, -1, 91,
2867 -1, -1, 94, 95, -1, -1, -1, -1, -1, -1,
2868 -1, 3, 4, 5, 6, -1, 992, 9, -1, -1,
2869 -1, -1, -1, -1, 927, -1, -1, -1, -1, 4,
2870 5, -1, 7, 8, 9, 339, -1, -1, 941, 14,
2871 -1, -1, -1, 1019, -1, 948, 1022, -1, -1, -1,
2872 42, -1, 955, -1, 29, -1, 31, 32, -1, -1,
2873 -1, -1, 37, 55, 967, 57, 58, -1, -1, -1,
2874 -1, 46, -1, 1287, 1288, 1289, -1, -1, -1, 71,
2875 55, -1, 57, 58, -1, -1, -1, -1, -1, 81,
2876 -1, 395, -1, -1, 398, -1, -1, 89, 1001, 403,
2877 1003, -1, 94, -1, -1, 576, 577, -1, 579, -1,
2878 -1, -1, -1, -1, -1, 586, -1, -1, 1094, -1,
2879 1096, -1, 1098, -1, -1, 1101, -1, -1, 432, -1,
2880 434, -1, -1, -1, 1110, 1111, -1, -1, -1, 1115,
2881 1116, -1, -1, 447, -1, -1, -1, 14, -1, -1,
2882 1364, -1, -1, -1, 1130, 1131, -1, 24, 25, -1,
2883 -1, -1, 466, -1, 31, 32, -1, 34, 639, -1,
2884 641, 642, -1, 644, -1, -1, -1, -1, -1, 1082,
2885 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2886 1404, 1405, 1406, -1, -1, -1, -1, 64, -1, -1,
2887 -1, -1, 1105, -1, -1, -1, 1182, -1, -1, -1,
2888 -1, 682, -1, -1, -1, 3, 4, 5, 6, -1,
2889 1434, 9, -1, -1, 64, 65, 66, 67, 68, 69,
2890 70, 71, 72, 73, 74, 75, 1212, 77, 78, 79,
2891 80, 81, 82, 83, 84, 85, -1, -1, -1, -1,
2892 -1, -1, 1228, -1, 42, -1, 123, -1, 125, -1,
2893 -1, 128, -1, -1, -1, 132, 133, 55, -1, 57,
2894 58, -1, 139, -1, 141, 142, 143, -1, -1, 146,
2895 147, 148, -1, 71, -1, -1, -1, -1, -1, -1,
2896 -1, -1, -1, 81, -1, -1, 767, -1, 1274, -1,
2897 -1, 89, -1, -1, -1, 1208, 94, -1, -1, -1,
2898 -1, 1, -1, 3, 4, 5, 6, 7, 8, 9,
2899 -1, -1, -1, -1, 14, -1, -1, -1, -1, -1,
2900 -1, 1307, 1308, -1, -1, -1, 640, 27, 28, 29,
2901 1316, 31, 32, 33, -1, -1, -1, 37, -1, -1,
2902 -1, -1, 42, 220, 221, 45, 46, 47, -1, 49,
2903 -1, 832, -1, 834, -1, 55, -1, 57, 58, -1,
2904 -1, 61, -1, 240, 845, -1, -1, -1, 849, 850,
2905 851, 71, 686, -1, -1, -1, -1, -1, 1364, 693,
2906 694, 81, 696, -1, -1, -1, -1, -1, -1, 89,
2907 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
2908 100, -1, 279, -1, 885, 886, 887, -1, 1394, -1,
2909 -1, -1, 726, -1, 728, -1, -1, -1, -1, 733,
2910 734, 735, -1, -1, -1, -1, -1, -1, -1, 1,
2911 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2912 -1, 13, 14, -1, -1, -1, 927, -1, -1, 326,
2913 -1, 328, 329, -1, -1, -1, -1, 29, 30, 31,
2914 32, 33, -1, 35, 36, 37, -1, 39, 40, 41,
2915 42, 43, 44, -1, 46, -1, -1, 354, 50, 51,
2916 52, 53, 54, 55, -1, 57, 58, 59, -1, 61,
2917 62, -1, -1, 1406, -1, -1, 68, -1, 375, 71,
2918 4, 5, -1, 7, 8, 9, 1419, 79, 80, 81,
2919 14, -1, -1, -1, 391, 87, 88, 89, 395, -1,
2920 -1, 398, 94, -1, -1, 29, 403, 31, 32, -1,
2921 1516, -1, -1, 37, -1, -1, -1, -1, -1, -1,
2922 112, -1, 46, -1, -1, 49, -1, -1, -1, -1,
2923 -1, 55, -1, 57, 58, 72, 73, 74, 75, 76,
2924 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
2925 -1, 885, 886, -1, -1, -1, -1, -1, -1, -1,
2926 -1, -1, -1, -1, -1, -1, 463, -1, 465, -1,
2927 -1, -1, -1, -1, -1, -1, -1, 1078, 1079, 1080,
2928 1081, 1082, -1, -1, -1, 1086, -1, -1, -1, -1,
2929 -1, -1, 489, 1, -1, 3, 4, 5, 6, 7,
2930 8, 9, 1103, 1104, 1105, -1, 14, -1, -1, -1,
2931 -1, -1, -1, -1, -1, -1, -1, -1, -1, 27,
2932 28, 29, -1, 31, 32, 33, -1, -1, -1, 37,
2933 -1, -1, -1, -1, 42, -1, -1, 45, 46, 47,
2934 -1, 49, -1, -1, -1, -1, -1, 55, -1, 57,
2935 58, -1, -1, 61, -1, -1, 990, -1, -1, -1,
2936 -1, -1, -1, 71, -1, -1, 563, -1, -1, -1,
2937 -1, -1, -1, 81, -1, -1, 573, 574, -1, 576,
2938 577, 89, -1, -1, 1185, 1186, 94, 1188, -1, -1,
2939 -1, -1, 100, -1, -1, -1, -1, -1, -1, -1,
2940 -1, -1, -1, 1, -1, -1, 4, 5, -1, -1,
2941 8, 9, -1, -1, -1, -1, 14, -1, -1, -1,
2942 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2943 -1, 29, -1, 31, 631, -1, -1, -1, -1, 37,
2944 -1, 39, 40, -1, 1078, 1079, 643, -1, 46, -1,
2945 48, -1, 1086, -1, -1, -1, -1, 55, -1, 57,
2946 58, -1, 60, -1, -1, 662, 64, 65, 66, 67,
2947 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2948 78, 79, 80, 81, 82, 83, 84, -1, -1, 87,
2949 88, 89, -1, -1, 92, -1, -1, 95, -1, -1,
2950 1134, -1, -1, -1, -1, 1139, -1, 1141, -1, -1,
2951 -1, -1, -1, -1, 112, -1, -1, -1, -1, -1,
2952 -1, -1, -1, 720, -1, -1, 723, -1, -1, -1,
2953 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
2954 8, 9, -1, -1, -1, -1, 14, -1, -1, -1,
2955 -1, 1185, 1186, -1, 1188, -1, -1, -1, 755, 756,
2956 757, 29, -1, 31, 32, -1, -1, -1, -1, 37,
2957 767, -1, -1, -1, 42, -1, -1, -1, 46, -1,
2958 -1, -1, -1, -1, -1, -1, -1, 55, -1, 57,
2959 58, -1, -1, 1, -1, 3, 4, 5, 6, 7,
2960 8, 9, -1, 71, 12, -1, 14, -1, -1, -1,
2961 -1, -1, -1, 81, -1, -1, -1, 25, -1, 27,
2962 28, 89, -1, -1, 32, -1, 94, -1, -1, 37,
2963 -1, -1, -1, -1, 42, 832, -1, 834, 46, -1,
2964 48, -1, -1, -1, -1, -1, -1, 55, 845, 57,
2965 58, 59, 60, 61, 1288, 63, 64, 65, 66, 67,
2966 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2967 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
2968 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
2969 98, 99, -1, -1, -1, -1, 104, -1, -1, -1,
2970 -1, 109, 110, 111, -1, 113, -1, -1, 1, -1,
2971 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
2972 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
2973 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
2974 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
2975 43, 44, -1, 46, -1, -1, 953, 50, 51, 52,
2976 53, 54, 55, -1, 57, 58, 59, -1, 61, 62,
2977 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
2978 -1, -1, -1, 980, -1, -1, 79, 80, 81, -1,
2979 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
2980 -1, 94, -1, 96, -1, -1, -1, -1, -1, -1,
2981 -1, -1, -1, -1, -1, -1, -1, -1, 111, 112,
2982 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2983 -1, -1, -1, -1, -1, -1, 1033, 1034, -1, 1036,
2984 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
2985 11, -1, 13, 14, 15, -1, 17, 18, 19, 20,
2986 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2987 31, 32, 33, -1, 35, 36, 37, -1, 39, 40,
2988 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
2989 51, 52, 53, 54, 55, 1092, 57, 58, 59, -1,
2990 61, 62, -1, -1, -1, -1, -1, 68, -1, -1,
2991 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
2992 81, -1, -1, 1120, -1, -1, 87, 88, 89, -1,
2993 -1, -1, -1, 94, -1, 96, -1, -1, -1, -1,
2994 1137, -1, 1139, -1, -1, -1, -1, -1, -1, -1,
2995 1, 112, 3, 4, 5, 6, 7, 8, 9, 10,
2996 11, 12, 13, 14, -1, -1, -1, -1, -1, -1,
2997 -1, -1, -1, -1, -1, -1, -1, -1, 29, 30,
2998 31, 32, 33, -1, 35, 36, 37, -1, 39, 40,
2999 41, 42, 43, 44, -1, 46, -1, 48, -1, 50,
3000 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3001 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3002 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3003 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3004 91, -1, -1, 94, 95, -1, 1, 98, 3, 4,
3005 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3006 -1, 112, -1, -1, -1, -1, -1, -1, -1, -1,
3007 -1, -1, -1, -1, 29, 30, 31, 32, 33, -1,
3008 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3009 -1, 46, -1, 48, -1, 50, 51, 52, 53, 54,
3010 55, -1, 57, 58, 59, -1, -1, 62, -1, -1,
3011 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3012 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3013 -1, -1, 87, 88, 89, -1, 91, -1, -1, 94,
3014 95, -1, 1, 98, 3, 4, 5, 6, 7, 8,
3015 9, 10, 11, 12, 13, 14, -1, 112, -1, -1,
3016 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3017 29, 30, 31, 32, 33, -1, 35, 36, 37, -1,
3018 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3019 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3020 -1, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3021 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3022 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3023 89, -1, -1, -1, -1, 94, -1, -1, -1, 98,
3024 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3025 -1, 110, 1, 112, 3, 4, 5, 6, -1, 8,
3026 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3027 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3028 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3029 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3030 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3031 59, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3032 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3033 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3034 89, -1, -1, -1, 1, 94, 3, 4, 5, 6,
3035 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3036 -1, -1, 111, 112, -1, -1, -1, -1, -1, -1,
3037 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3038 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3039 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3040 57, 58, 59, -1, -1, 62, -1, -1, -1, -1,
3041 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3042 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3043 87, 88, 89, -1, -1, -1, 1, 94, 3, 4,
3044 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3045 -1, -1, -1, -1, 111, 112, -1, -1, -1, -1,
3046 -1, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3047 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3048 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3049 55, -1, 57, 58, 59, -1, -1, 62, -1, -1,
3050 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3051 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3052 -1, -1, 87, 88, 89, -1, -1, -1, 1, 94,
3053 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3054 13, 14, -1, -1, -1, -1, 111, 112, -1, -1,
3055 -1, -1, -1, -1, -1, -1, 29, 30, 31, -1,
3056 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3057 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3058 53, 54, 55, -1, 57, 58, 59, -1, -1, 62,
3059 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3060 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3061 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3062 -1, 94, -1, -1, 1, -1, 3, 4, 5, 6,
3063 103, 8, 9, 10, 11, -1, 13, 14, -1, 112,
3064 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3065 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3066 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3067 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3068 57, 58, 59, -1, -1, 62, -1, -1, -1, -1,
3069 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3070 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3071 87, 88, 89, -1, -1, -1, 1, 94, 3, 4,
3072 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3073 -1, -1, -1, -1, -1, 112, -1, -1, -1, -1,
3074 -1, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3075 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3076 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3077 55, -1, 57, 58, 59, -1, -1, 62, -1, -1,
3078 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3079 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3080 -1, -1, 87, 88, 89, -1, -1, -1, 1, 94,
3081 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3082 13, 14, -1, -1, -1, -1, -1, 112, -1, -1,
3083 -1, -1, -1, -1, -1, -1, 29, 30, 31, -1,
3084 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3085 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3086 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3087 63, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3088 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3089 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3090 1, 94, 3, 4, 5, 6, -1, 8, 9, 10,
3091 11, -1, 13, 14, -1, -1, -1, -1, -1, 112,
3092 -1, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3093 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3094 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3095 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3096 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3097 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3098 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3099 -1, -1, 1, 94, 3, 4, 5, 6, -1, 8,
3100 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3101 -1, 112, -1, -1, -1, -1, -1, -1, -1, -1,
3102 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3103 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3104 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3105 -1, -1, 61, 62, -1, -1, -1, -1, -1, 68,
3106 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3107 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3108 89, -1, -1, -1, 1, 94, 3, 4, 5, 6,
3109 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3110 -1, -1, -1, 112, -1, -1, -1, -1, -1, -1,
3111 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3112 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3113 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3114 57, 58, -1, -1, -1, 62, -1, -1, -1, -1,
3115 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3116 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3117 87, 88, 89, -1, -1, -1, 1, 94, 3, 4,
3118 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3119 -1, -1, -1, 110, -1, 112, -1, -1, -1, -1,
3120 -1, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3121 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3122 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3123 55, -1, 57, 58, -1, -1, -1, 62, -1, -1,
3124 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3125 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3126 -1, -1, 87, 88, 89, -1, -1, -1, 1, 94,
3127 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3128 13, 14, -1, -1, -1, -1, -1, 112, -1, -1,
3129 -1, -1, -1, -1, -1, -1, 29, 30, 31, -1,
3130 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3131 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3132 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3133 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3134 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3135 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3136 1, 94, 3, 4, 5, 6, -1, 8, 9, 10,
3137 11, -1, 13, 14, -1, -1, -1, -1, -1, 112,
3138 -1, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3139 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3140 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3141 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3142 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3143 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3144 81, -1, -1, -1, -1, -1, 87, 88, 89, 3,
3145 4, 5, 6, 94, 8, 9, 10, 11, -1, 13,
3146 14, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3147 -1, 112, -1, -1, -1, 29, 30, 31, -1, 33,
3148 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3149 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3150 54, 55, -1, 57, 58, -1, -1, -1, 62, -1,
3151 -1, -1, -1, -1, 68, -1, 1, 71, 3, 4,
3152 5, 6, 7, 8, 9, 79, 80, 81, -1, 14,
3153 -1, -1, -1, 87, 88, 89, -1, -1, -1, -1,
3154 94, -1, -1, -1, 29, -1, 31, 32, 33, -1,
3155 -1, -1, 37, 38, -1, -1, -1, 42, 112, 113,
3156 -1, 46, 47, -1, 49, -1, -1, -1, -1, -1,
3157 55, -1, 57, 58, -1, -1, 61, -1, 63, -1,
3158 -1, -1, 3, 4, 5, 6, 71, 1, 9, 3,
3159 4, 5, 6, 7, 8, 9, 81, -1, -1, -1,
3160 14, -1, -1, -1, 89, -1, -1, -1, -1, 94,
3161 -1, -1, -1, -1, -1, 29, -1, 31, 32, 33,
3162 -1, 42, -1, 37, 38, -1, 111, -1, 42, -1,
3163 -1, -1, 46, 47, 55, 49, 57, 58, -1, -1,
3164 -1, 55, -1, 57, 58, -1, -1, 61, -1, 63,
3165 71, -1, -1, -1, -1, -1, -1, 71, -1, -1,
3166 81, -1, -1, -1, -1, -1, -1, 81, 89, -1,
3167 -1, -1, -1, 94, -1, 89, -1, -1, -1, -1,
3168 94, -1, -1, -1, 3, 4, 5, 6, 7, 8,
3169 9, 10, 11, -1, 13, 14, 15, 111, 17, 18,
3170 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
3171 29, 30, 31, 32, 33, -1, 35, 36, 37, -1,
3172 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3173 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3174 59, -1, 61, 62, -1, -1, -1, -1, -1, 68,
3175 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3176 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3177 89, -1, -1, -1, -1, 94, -1, 96, -1, -1,
3178 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3179 -1, -1, 111, 112, 3, 4, 5, 6, 7, 8,
3180 9, 10, 11, -1, 13, 14, 15, -1, 17, 18,
3181 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
3182 29, 30, 31, 32, 33, -1, 35, 36, 37, -1,
3183 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3184 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3185 59, -1, 61, 62, -1, -1, -1, -1, -1, 68,
3186 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3187 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3188 89, -1, -1, -1, -1, 94, -1, 96, -1, -1,
3189 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
3190 13, 14, 15, 112, 17, 18, 19, 20, 21, 22,
3191 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
3192 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3193 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3194 53, 54, 55, -1, 57, 58, 59, -1, 61, 62,
3195 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3196 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3197 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3198 -1, 94, -1, 96, -1, -1, 3, 4, 5, 6,
3199 7, 8, 9, 10, 11, -1, 13, 14, 15, 112,
3200 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3201 27, 28, 29, 30, 31, 32, 33, -1, 35, 36,
3202 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3203 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3204 57, 58, -1, -1, 61, 62, -1, -1, -1, -1,
3205 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3206 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3207 87, 88, 89, -1, -1, -1, -1, 94, -1, 96,
3208 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3209 13, 14, -1, -1, -1, 112, -1, -1, -1, -1,
3210 -1, -1, -1, -1, -1, -1, 29, 30, 31, 32,
3211 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3212 43, 44, -1, 46, -1, 48, -1, 50, 51, 52,
3213 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3214 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3215 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3216 -1, -1, -1, -1, 87, 88, 89, -1, 91, -1,
3217 -1, 94, 95, -1, -1, 98, 3, 4, 5, 6,
3218 7, 8, 9, 10, 11, 12, 13, 14, -1, 112,
3219 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3220 -1, -1, 29, 30, 31, 32, 33, -1, 35, 36,
3221 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3222 -1, 48, -1, 50, 51, 52, 53, 54, 55, -1,
3223 57, 58, -1, -1, -1, 62, -1, -1, -1, -1,
3224 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3225 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3226 87, 88, 89, -1, 91, -1, -1, 94, 95, -1,
3227 -1, 98, 3, 4, 5, 6, -1, 8, 9, 10,
3228 11, -1, 13, 14, -1, 112, -1, -1, -1, -1,
3229 -1, 3, 4, 5, 6, -1, -1, -1, 29, 30,
3230 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3231 41, 42, 43, 44, -1, 46, -1, 48, -1, 50,
3232 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3233 42, -1, -1, -1, -1, -1, -1, 68, -1, -1,
3234 71, -1, -1, 55, -1, 57, 58, -1, 79, 80,
3235 81, 63, -1, -1, -1, -1, 87, 88, 89, 71,
3236 91, -1, -1, 94, 95, 3, 4, 5, 6, 81,
3237 8, 9, 10, 11, -1, 13, 14, 89, -1, -1,
3238 -1, 112, 94, -1, 3, 4, 5, 6, -1, -1,
3239 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3240 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3241 48, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3242 58, -1, -1, 42, -1, -1, -1, -1, -1, -1,
3243 68, -1, -1, 71, -1, -1, 55, -1, 57, 58,
3244 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3245 88, 89, 71, 91, -1, -1, 94, 95, 3, 4,
3246 5, 6, 81, 8, 9, 10, 11, -1, 13, 14,
3247 89, -1, -1, -1, 112, 94, -1, -1, -1, -1,
3248 -1, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3249 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3250 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3251 55, -1, 57, 58, -1, -1, 61, 62, -1, -1,
3252 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3253 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3254 -1, -1, 87, 88, 89, -1, -1, -1, -1, 94,
3255 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
3256 13, 14, -1, -1, -1, -1, -1, 112, -1, -1,
3257 -1, -1, -1, -1, -1, -1, 29, 30, 31, 32,
3258 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3259 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3260 53, 54, 55, -1, 57, 58, -1, -1, -1, -1,
3261 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3262 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3263 -1, -1, -1, -1, 87, 88, 89, 3, 4, 5,
3264 6, 94, 8, 9, 10, 11, -1, 13, 14, -1,
3265 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
3266 -1, -1, -1, 29, 30, 31, -1, 33, -1, 35,
3267 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3268 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3269 -1, 57, 58, -1, -1, -1, 62, -1, -1, -1,
3270 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3271 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3272 -1, 87, 88, 89, 3, 4, 5, 6, 94, 8,
3273 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3274 -1, -1, -1, -1, -1, -1, 112, -1, -1, -1,
3275 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3276 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3277 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3278 -1, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3279 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3280 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3281 89, 3, 4, 5, 6, 94, 8, 9, 10, 11,
3282 -1, 13, 14, -1, -1, -1, -1, -1, -1, -1,
3283 -1, -1, -1, 112, -1, -1, -1, 29, 30, 31,
3284 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3285 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3286 52, 53, 54, 55, -1, 57, 58, 59, -1, -1,
3287 -1, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3288 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3289 -1, -1, -1, -1, -1, 87, 88, 89, 3, 4,
3290 5, 6, 94, 8, 9, 10, 11, -1, 13, 14,
3291 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3292 112, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3293 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3294 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3295 55, -1, 57, 58, -1, -1, -1, -1, -1, -1,
3296 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3297 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3298 -1, -1, 87, 88, 89, -1, -1, -1, -1, 94,
3299 95, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3300 -1, 13, 14, -1, -1, -1, -1, 112, -1, -1,
3301 -1, -1, -1, -1, -1, -1, -1, 29, 30, 31,
3302 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3303 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3304 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
3305 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3306 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3307 -1, -1, -1, -1, -1, 87, 88, 89, 3, 4,
3308 5, 6, 94, 8, 9, 10, 11, -1, 13, 14,
3309 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3310 112, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3311 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3312 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3313 55, -1, 57, 58, -1, -1, -1, 62, -1, -1,
3314 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3315 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3316 -1, -1, 87, 88, 89, 3, 4, 5, 6, 94,
3317 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3318 -1, -1, -1, -1, -1, -1, -1, 112, -1, -1,
3319 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3320 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3321 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3322 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
3323 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3324 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3325 88, 89, 3, 4, 5, 6, 94, 8, 9, 10,
3326 11, -1, 13, 14, -1, -1, -1, -1, -1, -1,
3327 -1, -1, -1, -1, 112, -1, -1, -1, 29, 30,
3328 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3329 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3330 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3331 -1, -1, -1, -1, -1, -1, -1, 68, -1, -1,
3332 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3333 81, -1, -1, -1, -1, -1, 87, 88, 89, 3,
3334 4, 5, 6, 94, 8, 9, 10, 11, -1, 13,
3335 14, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3336 -1, 112, -1, -1, -1, 29, 30, 31, -1, 33,
3337 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3338 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3339 54, 55, -1, 57, 58, -1, -1, -1, -1, -1,
3340 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3341 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3342 -1, -1, -1, 87, 88, 89, 3, 4, 5, 6,
3343 94, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3344 -1, -1, -1, -1, -1, -1, -1, -1, 112, -1,
3345 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3346 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3347 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3348 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
3349 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3350 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3351 87, 88, 89, 3, 4, 5, 6, 94, 8, 9,
3352 10, 11, -1, 13, 14, -1, -1, -1, -1, -1,
3353 -1, -1, -1, -1, -1, 112, -1, -1, -1, 29,
3354 30, 31, -1, 33, -1, 35, 36, 37, -1, 39,
3355 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3356 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
3357 -1, -1, -1, -1, -1, -1, -1, -1, 68, -1,
3358 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3359 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3360 3, 4, 5, 6, 94, 8, 9, 10, 11, -1,
3361 13, 14, -1, -1, -1, -1, -1, -1, -1, -1,
3362 -1, -1, 112, -1, -1, -1, 29, 30, 31, -1,
3363 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3364 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3365 53, 54, 55, -1, 57, 58, -1, -1, -1, -1,
3366 -1, -1, -1, -1, -1, 68, -1, 1, 71, 3,
3367 4, 5, 6, 7, 8, 9, 79, 80, 81, -1,
3368 14, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3369 -1, 94, -1, -1, -1, 29, -1, 31, 32, 33,
3370 -1, -1, -1, 37, -1, -1, -1, -1, 42, 112,
3371 -1, -1, 46, 47, -1, 49, -1, -1, -1, -1,
3372 -1, 55, -1, 57, 58, -1, -1, 61, -1, 63,
3373 3, 4, 5, 6, 7, 8, 9, 71, -1, -1,
3374 -1, 14, -1, -1, -1, -1, -1, 81, -1, -1,
3375 -1, -1, -1, -1, -1, 89, 29, -1, 31, 32,
3376 94, -1, -1, -1, 37, -1, -1, -1, -1, 42,
3377 -1, -1, -1, 46, -1, 3, 4, 5, 6, 7,
3378 8, 9, 55, -1, 57, 58, 14, -1, -1, -1,
3379 63, -1, -1, -1, -1, -1, -1, -1, 71, -1,
3380 -1, 29, -1, 31, 32, -1, -1, -1, 81, 37,
3381 -1, -1, -1, -1, 42, -1, 89, -1, 46, -1,
3382 -1, 94, -1, -1, -1, -1, -1, 55, -1, 57,
3383 58, -1, -1, 61, 3, 4, 5, 6, 7, 8,
3384 9, -1, -1, 71, -1, 14, -1, -1, -1, -1,
3385 -1, -1, -1, 81, -1, -1, -1, -1, -1, -1,
3386 29, 89, 31, 32, -1, -1, 94, -1, 37, -1,
3387 -1, -1, -1, 42, -1, -1, -1, 46, -1, 3,
3388 4, 5, 6, 7, 8, 9, 55, -1, 57, 58,
3389 14, 3, 4, 5, 6, -1, -1, -1, 3, 4,
3390 5, 6, 71, -1, -1, -1, -1, -1, 32, -1,
3391 -1, -1, 81, 37, -1, -1, -1, -1, 42, -1,
3392 89, -1, 46, -1, 48, 94, -1, -1, -1, -1,
3393 42, 55, -1, 57, 58, -1, -1, 42, -1, 3,
3394 4, 5, 6, 55, -1, 57, 58, 71, -1, 61,
3395 55, -1, 57, 58, -1, -1, -1, 81, -1, 71,
3396 -1, -1, -1, -1, -1, 89, 71, -1, -1, 81,
3397 94, -1, -1, -1, -1, -1, 81, 89, 42, -1,
3398 -1, -1, 94, -1, 89, -1, -1, -1, -1, 94,
3399 -1, 55, -1, 57, 58, -1, -1, -1, -1, 32,
3400 -1, -1, -1, -1, -1, -1, -1, 71, -1, -1,
3401 -1, -1, -1, -1, -1, -1, -1, 81, -1, -1,
3402 -1, -1, -1, -1, -1, 89, -1, -1, -1, -1,
3403 94, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3404 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3405 83, 84, 85, 64, 65, 66, 67, 68, 69, 70,
3406 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3407 81, 82, 83, 84, 85, 68, 69, 70, 71, 72,
3408 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3409 83, 84, 85, -1, -1, 60, -1, -1, 109, 64,
3410 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3411 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
3412 85, 63, 64, 65, 66, 67, 68, 69, 70, 71,
3413 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3414 82, 83, 84, 85, 64, 65, 66, 67, 68, 69,
3415 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3416 80, 81, 82, 83, 84, 85, 69, 70, 71, 72,
3417 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3418 83, 84, 85
3419 };
3420 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
3421 #line 3 "/usr/lib/bison.simple"
3422
3423 /* Skeleton output parser for bison,
3424 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
3425
3426 This program is free software; you can redistribute it and/or modify
3427 it under the terms of the GNU General Public License as published by
3428 the Free Software Foundation; either version 2, or (at your option)
3429 any later version.
3430
3431 This program is distributed in the hope that it will be useful,
3432 but WITHOUT ANY WARRANTY; without even the implied warranty of
3433 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3434 GNU General Public License for more details.
3435
3436 You should have received a copy of the GNU General Public License
3437 along with this program; if not, write to the Free Software
3438 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
3439
3440 /* As a special exception, when this file is copied by Bison into a
3441 Bison output file, you may use that output file without restriction.
3442 This special exception was added by the Free Software Foundation
3443 in version 1.24 of Bison. */
3444
3445 #ifndef alloca
3446 #ifdef __GNUC__
3447 #define alloca __builtin_alloca
3448 #else /* not GNU C. */
3449 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
3450 #include <alloca.h>
3451 #else /* not sparc */
3452 #if defined (MSDOS) && !defined (__TURBOC__)
3453 #include <malloc.h>
3454 #else /* not MSDOS, or __TURBOC__ */
3455 #if defined(_AIX)
3456 #include <malloc.h>
3457 #pragma alloca
3458 #else /* not MSDOS, __TURBOC__, or _AIX */
3459 #ifdef __hpux
3460 #ifdef __cplusplus
3461 extern "C" {
3462 void *alloca (unsigned int);
3463 };
3464 #else /* not __cplusplus */
3465 void *alloca ();
3466 #endif /* not __cplusplus */
3467 #endif /* __hpux */
3468 #endif /* not _AIX */
3469 #endif /* not MSDOS, or __TURBOC__ */
3470 #endif /* not sparc. */
3471 #endif /* not GNU C. */
3472 #endif /* alloca not defined. */
3473
3474 /* This is the parser code that is written into each bison parser
3475 when the %semantic_parser declaration is not specified in the grammar.
3476 It was written by Richard Stallman by simplifying the hairy parser
3477 used when %semantic_parser is specified. */
3478
3479 /* Note: there must be only one dollar sign in this file.
3480 It is replaced by the list of actions, each action
3481 as one case of the switch. */
3482
3483 #define yyerrok (yyerrstatus = 0)
3484 #define yyclearin (yychar = YYEMPTY)
3485 #define YYEMPTY -2
3486 #define YYEOF 0
3487 #define YYACCEPT return(0)
3488 #define YYABORT return(1)
3489 #define YYERROR goto yyerrlab1
3490 /* Like YYERROR except do call yyerror.
3491 This remains here temporarily to ease the
3492 transition to the new meaning of YYERROR, for GCC.
3493 Once GCC version 2 has supplanted version 1, this can go. */
3494 #define YYFAIL goto yyerrlab
3495 #define YYRECOVERING() (!!yyerrstatus)
3496 #define YYBACKUP(token, value) \
3497 do \
3498 if (yychar == YYEMPTY && yylen == 1) \
3499 { yychar = (token), yylval = (value); \
3500 yychar1 = YYTRANSLATE (yychar); \
3501 YYPOPSTACK; \
3502 goto yybackup; \
3503 } \
3504 else \
3505 { yyerror ("syntax error: cannot back up"); YYERROR; } \
3506 while (0)
3507
3508 #define YYTERROR 1
3509 #define YYERRCODE 256
3510
3511 #ifndef YYPURE
3512 #define YYLEX yylex()
3513 #endif
3514
3515 #ifdef YYPURE
3516 #ifdef YYLSP_NEEDED
3517 #ifdef YYLEX_PARAM
3518 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
3519 #else
3520 #define YYLEX yylex(&yylval, &yylloc)
3521 #endif
3522 #else /* not YYLSP_NEEDED */
3523 #ifdef YYLEX_PARAM
3524 #define YYLEX yylex(&yylval, YYLEX_PARAM)
3525 #else
3526 #define YYLEX yylex(&yylval)
3527 #endif
3528 #endif /* not YYLSP_NEEDED */
3529 #endif
3530
3531 /* If nonreentrant, generate the variables here */
3532
3533 #ifndef YYPURE
3534
3535 int yychar; /* the lookahead symbol */
3536 YYSTYPE yylval; /* the semantic value of the */
3537 /* lookahead symbol */
3538
3539 #ifdef YYLSP_NEEDED
3540 YYLTYPE yylloc; /* location data for the lookahead */
3541 /* symbol */
3542 #endif
3543
3544 int yynerrs; /* number of parse errors so far */
3545 #endif /* not YYPURE */
3546
3547 #if YYDEBUG != 0
3548 int yydebug; /* nonzero means print parse trace */
3549 /* Since this is uninitialized, it does not stop multiple parsers
3550 from coexisting. */
3551 #endif
3552
3553 /* YYINITDEPTH indicates the initial size of the parser's stacks */
3554
3555 #ifndef YYINITDEPTH
3556 #define YYINITDEPTH 200
3557 #endif
3558
3559 /* YYMAXDEPTH is the maximum size the stacks can grow to
3560 (effective only if the built-in stack extension method is used). */
3561
3562 #if YYMAXDEPTH == 0
3563 #undef YYMAXDEPTH
3564 #endif
3565
3566 #ifndef YYMAXDEPTH
3567 #define YYMAXDEPTH 10000
3568 #endif
3569
3570 /* Prevent warning if -Wstrict-prototypes. */
3571 #ifdef __GNUC__
3572 int yyparse (void);
3573 #endif
3574 \f
3575 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
3576 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
3577 #else /* not GNU C or C++ */
3578 #ifndef __cplusplus
3579
3580 /* This is the most reliable way to avoid incompatibilities
3581 in available built-in functions on various systems. */
3582 static void
3583 __yy_memcpy (to, from, count)
3584 char *to;
3585 char *from;
3586 int count;
3587 {
3588 register char *f = from;
3589 register char *t = to;
3590 register int i = count;
3591
3592 while (i-- > 0)
3593 *t++ = *f++;
3594 }
3595
3596 #else /* __cplusplus */
3597
3598 /* This is the most reliable way to avoid incompatibilities
3599 in available built-in functions on various systems. */
3600 static void
3601 __yy_memcpy (char *to, char *from, int count)
3602 {
3603 register char *f = from;
3604 register char *t = to;
3605 register int i = count;
3606
3607 while (i-- > 0)
3608 *t++ = *f++;
3609 }
3610
3611 #endif
3612 #endif
3613 \f
3614 #line 196 "/usr/lib/bison.simple"
3615
3616 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3617 into yyparse. The argument should have type void *.
3618 It should actually point to an object.
3619 Grammar actions can access the variable by casting it
3620 to the proper pointer type. */
3621
3622 #ifdef YYPARSE_PARAM
3623 #ifdef __cplusplus
3624 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3625 #define YYPARSE_PARAM_DECL
3626 #else /* not __cplusplus */
3627 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
3628 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3629 #endif /* not __cplusplus */
3630 #else /* not YYPARSE_PARAM */
3631 #define YYPARSE_PARAM_ARG
3632 #define YYPARSE_PARAM_DECL
3633 #endif /* not YYPARSE_PARAM */
3634
3635 int
3636 yyparse(YYPARSE_PARAM_ARG)
3637 YYPARSE_PARAM_DECL
3638 {
3639 register int yystate;
3640 register int yyn;
3641 register short *yyssp;
3642 register YYSTYPE *yyvsp;
3643 int yyerrstatus; /* number of tokens to shift before error messages enabled */
3644 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
3645
3646 short yyssa[YYINITDEPTH]; /* the state stack */
3647 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
3648
3649 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
3650 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
3651
3652 #ifdef YYLSP_NEEDED
3653 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
3654 YYLTYPE *yyls = yylsa;
3655 YYLTYPE *yylsp;
3656
3657 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
3658 #else
3659 #define YYPOPSTACK (yyvsp--, yyssp--)
3660 #endif
3661
3662 int yystacksize = YYINITDEPTH;
3663
3664 #ifdef YYPURE
3665 int yychar;
3666 YYSTYPE yylval;
3667 int yynerrs;
3668 #ifdef YYLSP_NEEDED
3669 YYLTYPE yylloc;
3670 #endif
3671 #endif
3672
3673 YYSTYPE yyval; /* the variable used to return */
3674 /* semantic values from the action */
3675 /* routines */
3676
3677 int yylen;
3678
3679 #if YYDEBUG != 0
3680 if (yydebug)
3681 fprintf(stderr, "Starting parse\n");
3682 #endif
3683
3684 yystate = 0;
3685 yyerrstatus = 0;
3686 yynerrs = 0;
3687 yychar = YYEMPTY; /* Cause a token to be read. */
3688
3689 /* Initialize stack pointers.
3690 Waste one element of value and location stack
3691 so that they stay on the same level as the state stack.
3692 The wasted elements are never initialized. */
3693
3694 yyssp = yyss - 1;
3695 yyvsp = yyvs;
3696 #ifdef YYLSP_NEEDED
3697 yylsp = yyls;
3698 #endif
3699
3700 /* Push a new state, which is found in yystate . */
3701 /* In all cases, when you get here, the value and location stacks
3702 have just been pushed. so pushing a state here evens the stacks. */
3703 yynewstate:
3704
3705 *++yyssp = yystate;
3706
3707 if (yyssp >= yyss + yystacksize - 1)
3708 {
3709 /* Give user a chance to reallocate the stack */
3710 /* Use copies of these so that the &'s don't force the real ones into memory. */
3711 YYSTYPE *yyvs1 = yyvs;
3712 short *yyss1 = yyss;
3713 #ifdef YYLSP_NEEDED
3714 YYLTYPE *yyls1 = yyls;
3715 #endif
3716
3717 /* Get the current used size of the three stacks, in elements. */
3718 int size = yyssp - yyss + 1;
3719
3720 #ifdef yyoverflow
3721 /* Each stack pointer address is followed by the size of
3722 the data in use in that stack, in bytes. */
3723 #ifdef YYLSP_NEEDED
3724 /* This used to be a conditional around just the two extra args,
3725 but that might be undefined if yyoverflow is a macro. */
3726 yyoverflow("parser stack overflow",
3727 &yyss1, size * sizeof (*yyssp),
3728 &yyvs1, size * sizeof (*yyvsp),
3729 &yyls1, size * sizeof (*yylsp),
3730 &yystacksize);
3731 #else
3732 yyoverflow("parser stack overflow",
3733 &yyss1, size * sizeof (*yyssp),
3734 &yyvs1, size * sizeof (*yyvsp),
3735 &yystacksize);
3736 #endif
3737
3738 yyss = yyss1; yyvs = yyvs1;
3739 #ifdef YYLSP_NEEDED
3740 yyls = yyls1;
3741 #endif
3742 #else /* no yyoverflow */
3743 /* Extend the stack our own way. */
3744 if (yystacksize >= YYMAXDEPTH)
3745 {
3746 yyerror("parser stack overflow");
3747 return 2;
3748 }
3749 yystacksize *= 2;
3750 if (yystacksize > YYMAXDEPTH)
3751 yystacksize = YYMAXDEPTH;
3752 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
3753 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
3754 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
3755 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
3756 #ifdef YYLSP_NEEDED
3757 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
3758 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
3759 #endif
3760 #endif /* no yyoverflow */
3761
3762 yyssp = yyss + size - 1;
3763 yyvsp = yyvs + size - 1;
3764 #ifdef YYLSP_NEEDED
3765 yylsp = yyls + size - 1;
3766 #endif
3767
3768 #if YYDEBUG != 0
3769 if (yydebug)
3770 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3771 #endif
3772
3773 if (yyssp >= yyss + yystacksize - 1)
3774 YYABORT;
3775 }
3776
3777 #if YYDEBUG != 0
3778 if (yydebug)
3779 fprintf(stderr, "Entering state %d\n", yystate);
3780 #endif
3781
3782 goto yybackup;
3783 yybackup:
3784
3785 /* Do appropriate processing given the current state. */
3786 /* Read a lookahead token if we need one and don't already have one. */
3787 /* yyresume: */
3788
3789 /* First try to decide what to do without reference to lookahead token. */
3790
3791 yyn = yypact[yystate];
3792 if (yyn == YYFLAG)
3793 goto yydefault;
3794
3795 /* Not known => get a lookahead token if don't already have one. */
3796
3797 /* yychar is either YYEMPTY or YYEOF
3798 or a valid token in external form. */
3799
3800 if (yychar == YYEMPTY)
3801 {
3802 #if YYDEBUG != 0
3803 if (yydebug)
3804 fprintf(stderr, "Reading a token: ");
3805 #endif
3806 yychar = YYLEX;
3807 }
3808
3809 /* Convert token to internal form (in yychar1) for indexing tables with */
3810
3811 if (yychar <= 0) /* This means end of input. */
3812 {
3813 yychar1 = 0;
3814 yychar = YYEOF; /* Don't call YYLEX any more */
3815
3816 #if YYDEBUG != 0
3817 if (yydebug)
3818 fprintf(stderr, "Now at end of input.\n");
3819 #endif
3820 }
3821 else
3822 {
3823 yychar1 = YYTRANSLATE(yychar);
3824
3825 #if YYDEBUG != 0
3826 if (yydebug)
3827 {
3828 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3829 /* Give the individual parser a way to print the precise meaning
3830 of a token, for further debugging info. */
3831 #ifdef YYPRINT
3832 YYPRINT (stderr, yychar, yylval);
3833 #endif
3834 fprintf (stderr, ")\n");
3835 }
3836 #endif
3837 }
3838
3839 yyn += yychar1;
3840 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3841 goto yydefault;
3842
3843 yyn = yytable[yyn];
3844
3845 /* yyn is what to do for this token type in this state.
3846 Negative => reduce, -yyn is rule number.
3847 Positive => shift, yyn is new state.
3848 New state is final state => don't bother to shift,
3849 just return success.
3850 0, or most negative number => error. */
3851
3852 if (yyn < 0)
3853 {
3854 if (yyn == YYFLAG)
3855 goto yyerrlab;
3856 yyn = -yyn;
3857 goto yyreduce;
3858 }
3859 else if (yyn == 0)
3860 goto yyerrlab;
3861
3862 if (yyn == YYFINAL)
3863 YYACCEPT;
3864
3865 /* Shift the lookahead token. */
3866
3867 #if YYDEBUG != 0
3868 if (yydebug)
3869 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3870 #endif
3871
3872 /* Discard the token being shifted unless it is eof. */
3873 if (yychar != YYEOF)
3874 yychar = YYEMPTY;
3875
3876 *++yyvsp = yylval;
3877 #ifdef YYLSP_NEEDED
3878 *++yylsp = yylloc;
3879 #endif
3880
3881 /* count tokens shifted since error; after three, turn off error status. */
3882 if (yyerrstatus) yyerrstatus--;
3883
3884 yystate = yyn;
3885 goto yynewstate;
3886
3887 /* Do the default action for the current state. */
3888 yydefault:
3889
3890 yyn = yydefact[yystate];
3891 if (yyn == 0)
3892 goto yyerrlab;
3893
3894 /* Do a reduction. yyn is the number of a rule to reduce with. */
3895 yyreduce:
3896 yylen = yyr2[yyn];
3897 if (yylen > 0)
3898 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3899
3900 #if YYDEBUG != 0
3901 if (yydebug)
3902 {
3903 int i;
3904
3905 fprintf (stderr, "Reducing via rule %d (line %d), ",
3906 yyn, yyrline[yyn]);
3907
3908 /* Print the symbols being reduced, and their result. */
3909 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3910 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3911 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3912 }
3913 #endif
3914
3915
3916 switch (yyn) {
3917
3918 case 2:
3919 #line 314 "parse.y"
3920 {
3921 /* In case there were missing closebraces,
3922 get us back to the global binding level. */
3923 while (! global_bindings_p ())
3924 poplevel (0, 0, 0);
3925 finish_file ();
3926 ;
3927 break;}
3928 case 3:
3929 #line 328 "parse.y"
3930 { yyval.ttype = NULL_TREE; ;
3931 break;}
3932 case 4:
3933 #line 330 "parse.y"
3934 { yyval.ttype = NULL_TREE; ;
3935 break;}
3936 case 5:
3937 #line 332 "parse.y"
3938 { yyval.ttype = NULL_TREE; ;
3939 break;}
3940 case 8:
3941 #line 341 "parse.y"
3942 { have_extern_spec = 1;
3943 used_extern_spec = 0;
3944 yyval.ttype = NULL_TREE; ;
3945 break;}
3946 case 9:
3947 #line 346 "parse.y"
3948 { have_extern_spec = 0; ;
3949 break;}
3950 case 10:
3951 #line 351 "parse.y"
3952 { yyval.itype = pedantic;
3953 pedantic = 0; ;
3954 break;}
3955 case 13:
3956 #line 361 "parse.y"
3957 { if (pending_lang_change) do_pending_lang_change(); ;
3958 break;}
3959 case 14:
3960 #line 363 "parse.y"
3961 { if (! toplevel_bindings_p () && ! pseudo_global_level_p())
3962 pop_everything (); ;
3963 break;}
3964 case 15:
3965 #line 369 "parse.y"
3966 { if (pending_inlines) do_pending_inlines (); ;
3967 break;}
3968 case 16:
3969 #line 371 "parse.y"
3970 { if (pending_inlines) do_pending_inlines (); ;
3971 break;}
3972 case 17:
3973 #line 373 "parse.y"
3974 { if (pending_inlines) do_pending_inlines (); ;
3975 break;}
3976 case 18:
3977 #line 375 "parse.y"
3978 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
3979 assemble_asm (yyvsp[-2].ttype); ;
3980 break;}
3981 case 19:
3982 #line 378 "parse.y"
3983 { pop_lang_context (); ;
3984 break;}
3985 case 20:
3986 #line 380 "parse.y"
3987 { if (pending_inlines) do_pending_inlines ();
3988 pop_lang_context (); ;
3989 break;}
3990 case 21:
3991 #line 383 "parse.y"
3992 { if (pending_inlines) do_pending_inlines ();
3993 pop_lang_context (); ;
3994 break;}
3995 case 22:
3996 #line 386 "parse.y"
3997 { push_namespace (yyvsp[-1].ttype); ;
3998 break;}
3999 case 23:
4000 #line 388 "parse.y"
4001 { pop_namespace (); ;
4002 break;}
4003 case 24:
4004 #line 390 "parse.y"
4005 { push_namespace (NULL_TREE); ;
4006 break;}
4007 case 25:
4008 #line 392 "parse.y"
4009 { pop_namespace (); ;
4010 break;}
4011 case 26:
4012 #line 394 "parse.y"
4013 { do_namespace_alias (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4014 break;}
4015 case 27:
4016 #line 396 "parse.y"
4017 { do_toplevel_using_decl (yyvsp[-1].ttype); ;
4018 break;}
4019 case 28:
4020 #line 398 "parse.y"
4021 {
4022 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
4023 yyvsp[-1].ttype = lastiddecl;
4024 do_using_directive (yyvsp[-1].ttype);
4025 ;
4026 break;}
4027 case 29:
4028 #line 404 "parse.y"
4029 { pedantic = yyvsp[-1].itype; ;
4030 break;}
4031 case 30:
4032 #line 409 "parse.y"
4033 { yyval.ttype = yyvsp[0].ttype; ;
4034 break;}
4035 case 31:
4036 #line 411 "parse.y"
4037 { yyval.ttype = yyvsp[0].ttype; ;
4038 break;}
4039 case 32:
4040 #line 413 "parse.y"
4041 { yyval.ttype = yyvsp[0].ttype; ;
4042 break;}
4043 case 35:
4044 #line 420 "parse.y"
4045 { yyval.ttype = yyvsp[0].ttype; ;
4046 break;}
4047 case 36:
4048 #line 422 "parse.y"
4049 { yyval.ttype = yyvsp[0].ttype; ;
4050 break;}
4051 case 37:
4052 #line 427 "parse.y"
4053 { push_lang_context (yyvsp[0].ttype); ;
4054 break;}
4055 case 38:
4056 #line 429 "parse.y"
4057 { if (current_lang_name != yyvsp[0].ttype)
4058 cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
4059 pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
4060 break;}
4061 case 39:
4062 #line 436 "parse.y"
4063 { begin_template_parm_list (); ;
4064 break;}
4065 case 40:
4066 #line 438 "parse.y"
4067 { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
4068 break;}
4069 case 41:
4070 #line 440 "parse.y"
4071 { begin_specialization();
4072 yyval.ttype = NULL_TREE; ;
4073 break;}
4074 case 42:
4075 #line 446 "parse.y"
4076 { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
4077 break;}
4078 case 43:
4079 #line 448 "parse.y"
4080 { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4081 break;}
4082 case 44:
4083 #line 453 "parse.y"
4084 { yyval.ttype = yyvsp[0].ttype; ;
4085 break;}
4086 case 45:
4087 #line 455 "parse.y"
4088 { yyval.ttype = NULL_TREE; ;
4089 break;}
4090 case 46:
4091 #line 459 "parse.y"
4092 {
4093 yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype);
4094 if (TREE_PURPOSE (yyval.ttype) == signature_type_node)
4095 sorry ("signature as template type parameter");
4096 else if (TREE_PURPOSE (yyval.ttype) != class_type_node)
4097 {
4098 pedwarn ("template type parameters must use the keyword `class'");
4099 TREE_PURPOSE (yyval.ttype) = class_type_node;
4100 }
4101 ;
4102 break;}
4103 case 47:
4104 #line 470 "parse.y"
4105 { yyval.ttype = build_tree_list (class_type_node, yyvsp[0].ttype); ;
4106 break;}
4107 case 48:
4108 #line 475 "parse.y"
4109 {
4110 tree decl = build_decl (TYPE_DECL, yyvsp[0].ttype, NULL_TREE);
4111 tree tmpl = build_lang_decl (TEMPLATE_DECL, yyvsp[0].ttype, NULL_TREE);
4112 DECL_TEMPLATE_PARMS (tmpl) = current_template_parms;
4113 DECL_TEMPLATE_RESULT (tmpl) = decl;
4114 SET_DECL_ARTIFICIAL (decl);
4115 end_template_decl ();
4116
4117 if (yyvsp[-1].ttype == signature_type_node)
4118 sorry ("signature as template template parameter");
4119 else if (yyvsp[-1].ttype != class_type_node)
4120 pedwarn ("template template parameters must use the keyword `class'");
4121 yyval.ttype = build_tree_list (class_type_node, tmpl);
4122 ;
4123 break;}
4124 case 49:
4125 #line 500 "parse.y"
4126 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4127 break;}
4128 case 50:
4129 #line 502 "parse.y"
4130 { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
4131 break;}
4132 case 51:
4133 #line 504 "parse.y"
4134 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
4135 break;}
4136 case 52:
4137 #line 506 "parse.y"
4138 { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
4139 break;}
4140 case 53:
4141 #line 508 "parse.y"
4142 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4143 break;}
4144 case 54:
4145 #line 510 "parse.y"
4146 {
4147 if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
4148 && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
4149 && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL)
4150 {
4151 error ("invalid default template argument");
4152 yyvsp[0].ttype = error_mark_node;
4153 }
4154 yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
4155 ;
4156 break;}
4157 case 55:
4158 #line 525 "parse.y"
4159 {
4160 if (yyvsp[-1].ttype)
4161 end_template_decl ();
4162 else
4163 end_specialization ();
4164 ;
4165 break;}
4166 case 56:
4167 #line 533 "parse.y"
4168 {
4169 if (yyvsp[-1].ttype)
4170 end_template_decl ();
4171 else
4172 end_specialization ();
4173 ;
4174 break;}
4175 case 57:
4176 #line 543 "parse.y"
4177 {;
4178 break;}
4179 case 58:
4180 #line 545 "parse.y"
4181 {;
4182 break;}
4183 case 59:
4184 #line 547 "parse.y"
4185 {
4186 note_list_got_semicolon (yyvsp[-2].ftype.t);
4187 ;
4188 break;}
4189 case 60:
4190 #line 551 "parse.y"
4191 { pedwarn ("empty declaration"); ;
4192 break;}
4193 case 62:
4194 #line 554 "parse.y"
4195 {
4196 tree t, attrs;
4197 split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
4198 shadow_tag (t);
4199 note_list_got_semicolon (yyvsp[-1].ftype.t);
4200 ;
4201 break;}
4202 case 66:
4203 #line 567 "parse.y"
4204 { yyval.itype = 0; ;
4205 break;}
4206 case 67:
4207 #line 569 "parse.y"
4208 { yyval.itype = 1; ;
4209 break;}
4210 case 73:
4211 #line 585 "parse.y"
4212 { finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
4213 break;}
4214 case 74:
4215 #line 587 "parse.y"
4216 { ;
4217 break;}
4218 case 75:
4219 #line 589 "parse.y"
4220 { ;
4221 break;}
4222 case 76:
4223 #line 594 "parse.y"
4224 {
4225 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4226 if (yyvsp[-2].ttype != current_class_type)
4227 {
4228 push_nested_class (yyvsp[-2].ttype, 3);
4229 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4230 }
4231 ;
4232 break;}
4233 case 77:
4234 #line 603 "parse.y"
4235 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4236 break;}
4237 case 78:
4238 #line 605 "parse.y"
4239 {
4240 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4241 if (yyvsp[-4].ttype != current_class_type)
4242 {
4243 push_nested_class (yyvsp[-4].ttype, 3);
4244 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4245 }
4246 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4247 ;
4248 break;}
4249 case 79:
4250 #line 615 "parse.y"
4251 {
4252 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4253 if (yyvsp[-2].ttype != current_class_type)
4254 {
4255 push_nested_class (yyvsp[-2].ttype, 3);
4256 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4257 }
4258 ;
4259 break;}
4260 case 80:
4261 #line 624 "parse.y"
4262 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4263 break;}
4264 case 81:
4265 #line 626 "parse.y"
4266 {
4267 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4268 if (yyvsp[-4].ttype != current_class_type)
4269 {
4270 push_nested_class (yyvsp[-4].ttype, 3);
4271 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4272 }
4273 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4274 ;
4275 break;}
4276 case 82:
4277 #line 636 "parse.y"
4278 {
4279 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4280 if (yyvsp[-2].ttype != current_class_type)
4281 {
4282 push_nested_class (yyvsp[-2].ttype, 3);
4283 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4284 }
4285 ;
4286 break;}
4287 case 83:
4288 #line 645 "parse.y"
4289 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4290 break;}
4291 case 84:
4292 #line 647 "parse.y"
4293 {
4294 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4295 if (yyvsp[-4].ttype != current_class_type)
4296 {
4297 push_nested_class (yyvsp[-4].ttype, 3);
4298 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4299 }
4300 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4301 ;
4302 break;}
4303 case 85:
4304 #line 657 "parse.y"
4305 {
4306 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4307 if (yyvsp[-2].ttype != current_class_type)
4308 {
4309 push_nested_class (yyvsp[-2].ttype, 3);
4310 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4311 }
4312 ;
4313 break;}
4314 case 86:
4315 #line 666 "parse.y"
4316 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4317 break;}
4318 case 87:
4319 #line 668 "parse.y"
4320 {
4321 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4322 if (yyvsp[-4].ttype != current_class_type)
4323 {
4324 push_nested_class (yyvsp[-4].ttype, 3);
4325 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4326 }
4327 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4328 ;
4329 break;}
4330 case 88:
4331 #line 681 "parse.y"
4332 { tree specs, attrs;
4333 split_specs_attrs (yyvsp[-1].ftype.t, &specs, &attrs);
4334 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4335 YYERROR1;
4336 reinit_parse_for_function ();
4337 yyval.ttype = NULL_TREE; ;
4338 break;}
4339 case 89:
4340 #line 688 "parse.y"
4341 { tree specs, attrs;
4342 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4343 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4344 YYERROR1;
4345 reinit_parse_for_function ();
4346 yyval.ttype = NULL_TREE; ;
4347 break;}
4348 case 90:
4349 #line 695 "parse.y"
4350 { if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
4351 YYERROR1;
4352 reinit_parse_for_function ();
4353 yyval.ttype = NULL_TREE; ;
4354 break;}
4355 case 91:
4356 #line 700 "parse.y"
4357 { tree specs, attrs;
4358 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4359 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4360 YYERROR1;
4361 reinit_parse_for_function ();
4362 yyval.ttype = NULL_TREE; ;
4363 break;}
4364 case 92:
4365 #line 707 "parse.y"
4366 { if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
4367 YYERROR1;
4368 reinit_parse_for_function ();
4369 yyval.ttype = NULL_TREE; ;
4370 break;}
4371 case 93:
4372 #line 715 "parse.y"
4373 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4374 break;}
4375 case 94:
4376 #line 717 "parse.y"
4377 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4378 break;}
4379 case 95:
4380 #line 719 "parse.y"
4381 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4382 break;}
4383 case 96:
4384 #line 721 "parse.y"
4385 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4386 break;}
4387 case 97:
4388 #line 728 "parse.y"
4389 { tree specs = strip_attrs (yyvsp[-1].ttype);
4390 yyval.ttype = start_method (specs, yyvsp[0].ttype);
4391 rest_of_mdef:
4392 if (! yyval.ttype)
4393 YYERROR1;
4394 if (yychar == YYEMPTY)
4395 yychar = YYLEX;
4396 reinit_parse_for_method (yychar, yyval.ttype); ;
4397 break;}
4398 case 98:
4399 #line 737 "parse.y"
4400 { yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ;
4401 break;}
4402 case 99:
4403 #line 739 "parse.y"
4404 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4405 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4406 break;}
4407 case 100:
4408 #line 742 "parse.y"
4409 { tree specs = strip_attrs (yyvsp[-1].ttype);
4410 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4411 break;}
4412 case 101:
4413 #line 745 "parse.y"
4414 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4415 break;}
4416 case 102:
4417 #line 747 "parse.y"
4418 { tree specs = strip_attrs (yyvsp[-1].ttype);
4419 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4420 break;}
4421 case 103:
4422 #line 750 "parse.y"
4423 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4424 break;}
4425 case 104:
4426 #line 752 "parse.y"
4427 { yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4428 break;}
4429 case 105:
4430 #line 757 "parse.y"
4431 {
4432 if (! current_function_parms_stored)
4433 store_parm_decls ();
4434 yyval.ttype = yyvsp[0].ttype;
4435 ;
4436 break;}
4437 case 106:
4438 #line 766 "parse.y"
4439 { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
4440 break;}
4441 case 107:
4442 #line 768 "parse.y"
4443 { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
4444 break;}
4445 case 108:
4446 #line 770 "parse.y"
4447 { store_return_init (yyval.ttype, NULL_TREE); ;
4448 break;}
4449 case 109:
4450 #line 775 "parse.y"
4451 {
4452 if (yyvsp[0].itype == 0)
4453 error ("no base initializers given following ':'");
4454 setup_vtbl_ptr ();
4455 /* Always keep the BLOCK node associated with the outermost
4456 pair of curley braces of a function. These are needed
4457 for correct operation of dwarfout.c. */
4458 keep_next_level ();
4459 ;
4460 break;}
4461 case 110:
4462 #line 788 "parse.y"
4463 {
4464 if (! current_function_parms_stored)
4465 store_parm_decls ();
4466
4467 if (DECL_CONSTRUCTOR_P (current_function_decl))
4468 {
4469 /* Make a contour for the initializer list. */
4470 pushlevel (0);
4471 clear_last_expr ();
4472 expand_start_bindings (0);
4473 }
4474 else if (current_class_type == NULL_TREE)
4475 error ("base initializers not allowed for non-member functions");
4476 else if (! DECL_CONSTRUCTOR_P (current_function_decl))
4477 error ("only constructors take base initializers");
4478 ;
4479 break;}
4480 case 111:
4481 #line 808 "parse.y"
4482 { yyval.itype = 0; ;
4483 break;}
4484 case 112:
4485 #line 810 "parse.y"
4486 { yyval.itype = 1; ;
4487 break;}
4488 case 115:
4489 #line 817 "parse.y"
4490 {
4491 if (current_class_name)
4492 pedwarn ("anachronistic old style base class initializer");
4493 expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
4494 ;
4495 break;}
4496 case 116:
4497 #line 823 "parse.y"
4498 {
4499 if (current_class_name)
4500 pedwarn ("anachronistic old style base class initializer");
4501 expand_member_init (current_class_ref, NULL_TREE, void_type_node);
4502 ;
4503 break;}
4504 case 117:
4505 #line 829 "parse.y"
4506 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4507 break;}
4508 case 118:
4509 #line 831 "parse.y"
4510 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4511 break;}
4512 case 119:
4513 #line 833 "parse.y"
4514 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4515 break;}
4516 case 120:
4517 #line 835 "parse.y"
4518 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4519 break;}
4520 case 121:
4521 #line 837 "parse.y"
4522 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
4523 yyvsp[-1].ttype); ;
4524 break;}
4525 case 122:
4526 #line 840 "parse.y"
4527 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
4528 void_type_node); ;
4529 break;}
4530 case 134:
4531 #line 866 "parse.y"
4532 { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
4533 yyungetc (';', 1); ;
4534 break;}
4535 case 136:
4536 #line 870 "parse.y"
4537 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4538 do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
4539 break;}
4540 case 138:
4541 #line 874 "parse.y"
4542 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4543 break;}
4544 case 140:
4545 #line 877 "parse.y"
4546 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4547 break;}
4548 case 142:
4549 #line 880 "parse.y"
4550 { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
4551 yyungetc (';', 1); ;
4552 break;}
4553 case 144:
4554 #line 885 "parse.y"
4555 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4556 do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
4557 break;}
4558 case 146:
4559 #line 889 "parse.y"
4560 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4561 break;}
4562 case 148:
4563 #line 892 "parse.y"
4564 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4565 break;}
4566 case 150:
4567 #line 897 "parse.y"
4568 { begin_explicit_instantiation(); ;
4569 break;}
4570 case 151:
4571 #line 900 "parse.y"
4572 { end_explicit_instantiation(); ;
4573 break;}
4574 case 152:
4575 #line 908 "parse.y"
4576 {
4577 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4578 if (yyval.ttype != error_mark_node)
4579 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4580 ;
4581 break;}
4582 case 153:
4583 #line 914 "parse.y"
4584 {
4585 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4586 if (yyval.ttype != error_mark_node)
4587 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4588 ;
4589 break;}
4590 case 155:
4591 #line 924 "parse.y"
4592 {
4593 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4594 if (yyval.ttype != error_mark_node)
4595 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4596 ;
4597 break;}
4598 case 157:
4599 #line 934 "parse.y"
4600 {
4601 /* Handle `Class<Class<Type>>' without space in the `>>' */
4602 pedwarn ("`>>' should be `> >' in template class name");
4603 yyungetc ('>', 1);
4604 ;
4605 break;}
4606 case 158:
4607 #line 943 "parse.y"
4608 { yyval.ttype = NULL_TREE; ;
4609 break;}
4610 case 160:
4611 #line 949 "parse.y"
4612 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
4613 break;}
4614 case 161:
4615 #line 951 "parse.y"
4616 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4617 break;}
4618 case 162:
4619 #line 956 "parse.y"
4620 { yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
4621 break;}
4622 case 164:
4623 #line 962 "parse.y"
4624 { yyval.code = NEGATE_EXPR; ;
4625 break;}
4626 case 165:
4627 #line 964 "parse.y"
4628 { yyval.code = CONVERT_EXPR; ;
4629 break;}
4630 case 166:
4631 #line 966 "parse.y"
4632 { yyval.code = PREINCREMENT_EXPR; ;
4633 break;}
4634 case 167:
4635 #line 968 "parse.y"
4636 { yyval.code = PREDECREMENT_EXPR; ;
4637 break;}
4638 case 168:
4639 #line 970 "parse.y"
4640 { yyval.code = TRUTH_NOT_EXPR; ;
4641 break;}
4642 case 169:
4643 #line 975 "parse.y"
4644 { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
4645 break;}
4646 case 171:
4647 #line 981 "parse.y"
4648 { error ("ANSI C++ forbids an empty condition for `%s'",
4649 cond_stmt_keyword);
4650 yyval.ttype = integer_zero_node; ;
4651 break;}
4652 case 172:
4653 #line 985 "parse.y"
4654 { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
4655 break;}
4656 case 173:
4657 #line 990 "parse.y"
4658 { error ("ANSI C++ forbids an empty condition for `%s'",
4659 cond_stmt_keyword);
4660 yyval.ttype = integer_zero_node; ;
4661 break;}
4662 case 174:
4663 #line 994 "parse.y"
4664 { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
4665 break;}
4666 case 175:
4667 #line 999 "parse.y"
4668 { yyval.ttype = NULL_TREE; ;
4669 break;}
4670 case 176:
4671 #line 1001 "parse.y"
4672 { yyval.ttype = condition_conversion (yyval.ttype); ;
4673 break;}
4674 case 177:
4675 #line 1003 "parse.y"
4676 { yyval.ttype = NULL_TREE; ;
4677 break;}
4678 case 178:
4679 #line 1008 "parse.y"
4680 { {
4681 tree d;
4682 for (d = getdecls (); d; d = TREE_CHAIN (d))
4683 if (TREE_CODE (d) == TYPE_DECL) {
4684 tree s = TREE_TYPE (d);
4685 if (TREE_CODE (s) == RECORD_TYPE)
4686 cp_error ("definition of class `%T' in condition", s);
4687 else if (TREE_CODE (s) == ENUMERAL_TYPE)
4688 cp_error ("definition of enum `%T' in condition", s);
4689 }
4690 }
4691 current_declspecs = yyvsp[-4].ftype.t;
4692 yyvsp[0].itype = suspend_momentary ();
4693 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
4694 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype,
4695 /*prefix_attributes*/ NULL_TREE);
4696 ;
4697 break;}
4698 case 179:
4699 #line 1026 "parse.y"
4700 {
4701 cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
4702 resume_momentary (yyvsp[-2].itype);
4703 yyval.ttype = yyvsp[-1].ttype;
4704 if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
4705 cp_error ("definition of array `%#D' in condition", yyval.ttype);
4706 ;
4707 break;}
4708 case 185:
4709 #line 1045 "parse.y"
4710 {
4711 if (processing_template_decl)
4712 {
4713 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
4714 COMPOUND_STMT_NO_SCOPE (yyval.ttype) = 1;
4715 add_tree (yyval.ttype);
4716 }
4717 ;
4718 break;}
4719 case 186:
4720 #line 1054 "parse.y"
4721 {
4722 if (processing_template_decl)
4723 {
4724 TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
4725 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
4726 last_tree = yyvsp[-1].ttype;
4727 }
4728 finish_stmt ();
4729 ;
4730 break;}
4731 case 188:
4732 #line 1069 "parse.y"
4733 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
4734 build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4735 break;}
4736 case 189:
4737 #line 1072 "parse.y"
4738 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
4739 build_expr_list (NULL_TREE, error_mark_node)); ;
4740 break;}
4741 case 190:
4742 #line 1075 "parse.y"
4743 { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4744 break;}
4745 case 191:
4746 #line 1077 "parse.y"
4747 { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
4748 break;}
4749 case 192:
4750 #line 1082 "parse.y"
4751 { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
4752 break;}
4753 case 194:
4754 #line 1088 "parse.y"
4755 { yyval.ttype = yyvsp[0].ttype; ;
4756 break;}
4757 case 195:
4758 #line 1091 "parse.y"
4759 { yyval.ttype = yyvsp[0].ttype;
4760 pedantic = yyvsp[-1].itype; ;
4761 break;}
4762 case 196:
4763 #line 1094 "parse.y"
4764 { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
4765 break;}
4766 case 197:
4767 #line 1096 "parse.y"
4768 { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
4769 break;}
4770 case 198:
4771 #line 1098 "parse.y"
4772 { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
4773 break;}
4774 case 199:
4775 #line 1100 "parse.y"
4776 { yyval.ttype = build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype);
4777 if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
4778 TREE_NEGATED_INT (yyval.ttype) = 1;
4779 overflow_warning (yyval.ttype);
4780 ;
4781 break;}
4782 case 200:
4783 #line 1107 "parse.y"
4784 { tree label = lookup_label (yyvsp[0].ttype);
4785 if (pedantic)
4786 pedwarn ("ANSI C++ forbids `&&'");
4787 if (label == NULL_TREE)
4788 yyval.ttype = null_pointer_node;
4789 else
4790 {
4791 TREE_USED (label) = 1;
4792 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
4793 TREE_CONSTANT (yyval.ttype) = 1;
4794 }
4795 ;
4796 break;}
4797 case 201:
4798 #line 1120 "parse.y"
4799 { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
4800 break;}
4801 case 202:
4802 #line 1122 "parse.y"
4803 { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ;
4804 break;}
4805 case 203:
4806 #line 1124 "parse.y"
4807 { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
4808 break;}
4809 case 204:
4810 #line 1126 "parse.y"
4811 { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t));
4812 check_for_new_type ("alignof", yyvsp[-1].ftype); ;
4813 break;}
4814 case 205:
4815 #line 1132 "parse.y"
4816 { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype);
4817 check_for_new_type ("new", yyvsp[0].ftype); ;
4818 break;}
4819 case 206:
4820 #line 1135 "parse.y"
4821 { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype);
4822 check_for_new_type ("new", yyvsp[-1].ftype); ;
4823 break;}
4824 case 207:
4825 #line 1138 "parse.y"
4826 { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype);
4827 check_for_new_type ("new", yyvsp[0].ftype); ;
4828 break;}
4829 case 208:
4830 #line 1141 "parse.y"
4831 { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype);
4832 check_for_new_type ("new", yyvsp[-1].ftype); ;
4833 break;}
4834 case 209:
4835 #line 1144 "parse.y"
4836 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
4837 NULL_TREE, yyvsp[-3].itype);
4838 check_for_new_type ("new", yyvsp[-1].ftype); ;
4839 break;}
4840 case 210:
4841 #line 1148 "parse.y"
4842 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype);
4843 check_for_new_type ("new", yyvsp[-2].ftype); ;
4844 break;}
4845 case 211:
4846 #line 1151 "parse.y"
4847 { yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype);
4848 check_for_new_type ("new", yyvsp[-1].ftype); ;
4849 break;}
4850 case 212:
4851 #line 1154 "parse.y"
4852 { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype);
4853 check_for_new_type ("new", yyvsp[-2].ftype); ;
4854 break;}
4855 case 213:
4856 #line 1158 "parse.y"
4857 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
4858 break;}
4859 case 214:
4860 #line 1160 "parse.y"
4861 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
4862 if (yychar == YYEMPTY)
4863 yychar = YYLEX; ;
4864 break;}
4865 case 215:
4866 #line 1164 "parse.y"
4867 { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
4868 if (yychar == YYEMPTY)
4869 yychar = YYLEX; ;
4870 break;}
4871 case 216:
4872 #line 1168 "parse.y"
4873 { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
4874 break;}
4875 case 217:
4876 #line 1170 "parse.y"
4877 { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
4878 break;}
4879 case 218:
4880 #line 1175 "parse.y"
4881 { yyval.ttype = yyvsp[-1].ttype; ;
4882 break;}
4883 case 219:
4884 #line 1177 "parse.y"
4885 {
4886 yyval.ttype = yyvsp[-1].ttype;
4887 pedwarn ("old style placement syntax, use () instead");
4888 ;
4889 break;}
4890 case 220:
4891 #line 1185 "parse.y"
4892 { yyval.ttype = yyvsp[-1].ttype; ;
4893 break;}
4894 case 221:
4895 #line 1187 "parse.y"
4896 { yyval.ttype = NULL_TREE; ;
4897 break;}
4898 case 222:
4899 #line 1189 "parse.y"
4900 {
4901 cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
4902 yyval.ttype = error_mark_node;
4903 ;
4904 break;}
4905 case 223:
4906 #line 1197 "parse.y"
4907 {
4908 if (pedantic)
4909 pedwarn ("ANSI C++ forbids initialization of new expression with `='");
4910 yyval.ttype = yyvsp[0].ttype;
4911 ;
4912 break;}
4913 case 224:
4914 #line 1207 "parse.y"
4915 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
4916 TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
4917 yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
4918 check_for_new_type ("cast", yyvsp[-1].ftype); ;
4919 break;}
4920 case 225:
4921 #line 1212 "parse.y"
4922 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
4923 TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
4924 yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
4925 check_for_new_type ("cast", yyvsp[-1].ftype); ;
4926 break;}
4927 case 227:
4928 #line 1221 "parse.y"
4929 { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
4930 break;}
4931 case 228:
4932 #line 1223 "parse.y"
4933 {
4934 tree init = build_nt (CONSTRUCTOR, NULL_TREE,
4935 nreverse (yyvsp[-2].ttype));
4936 if (pedantic)
4937 pedwarn ("ANSI C++ forbids constructor-expressions");
4938 /* Indicate that this was a GNU C constructor expression. */
4939 TREE_HAS_CONSTRUCTOR (init) = 1;
4940
4941 yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
4942 ;
4943 break;}
4944 case 230:
4945 #line 1239 "parse.y"
4946 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
4947 break;}
4948 case 231:
4949 #line 1241 "parse.y"
4950 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
4951 break;}
4952 case 232:
4953 #line 1243 "parse.y"
4954 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4955 break;}
4956 case 233:
4957 #line 1245 "parse.y"
4958 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4959 break;}
4960 case 234:
4961 #line 1247 "parse.y"
4962 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4963 break;}
4964 case 235:
4965 #line 1249 "parse.y"
4966 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4967 break;}
4968 case 236:
4969 #line 1251 "parse.y"
4970 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4971 break;}
4972 case 237:
4973 #line 1253 "parse.y"
4974 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4975 break;}
4976 case 238:
4977 #line 1255 "parse.y"
4978 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4979 break;}
4980 case 239:
4981 #line 1257 "parse.y"
4982 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4983 break;}
4984 case 240:
4985 #line 1259 "parse.y"
4986 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4987 break;}
4988 case 241:
4989 #line 1261 "parse.y"
4990 { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4991 break;}
4992 case 242:
4993 #line 1263 "parse.y"
4994 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4995 break;}
4996 case 243:
4997 #line 1265 "parse.y"
4998 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4999 break;}
5000 case 244:
5001 #line 1267 "parse.y"
5002 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5003 break;}
5004 case 245:
5005 #line 1269 "parse.y"
5006 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5007 break;}
5008 case 246:
5009 #line 1271 "parse.y"
5010 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5011 break;}
5012 case 247:
5013 #line 1273 "parse.y"
5014 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5015 break;}
5016 case 248:
5017 #line 1275 "parse.y"
5018 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5019 break;}
5020 case 249:
5021 #line 1277 "parse.y"
5022 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5023 break;}
5024 case 250:
5025 #line 1279 "parse.y"
5026 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
5027 if (yyval.ttype != error_mark_node)
5028 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
5029 break;}
5030 case 251:
5031 #line 1283 "parse.y"
5032 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
5033 break;}
5034 case 252:
5035 #line 1285 "parse.y"
5036 { yyval.ttype = build_throw (NULL_TREE); ;
5037 break;}
5038 case 253:
5039 #line 1287 "parse.y"
5040 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
5041 break;}
5042 case 254:
5043 #line 1305 "parse.y"
5044 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5045 break;}
5046 case 260:
5047 #line 1314 "parse.y"
5048 { yyval.ttype = do_identifier (yyvsp[-1].ttype, 1); ;
5049 break;}
5050 case 261:
5051 #line 1318 "parse.y"
5052 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5053 break;}
5054 case 262:
5055 #line 1320 "parse.y"
5056 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5057 break;}
5058 case 263:
5059 #line 1325 "parse.y"
5060 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5061 break;}
5062 case 264:
5063 #line 1327 "parse.y"
5064 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5065 break;}
5066 case 265:
5067 #line 1330 "parse.y"
5068 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5069 break;}
5070 case 270:
5071 #line 1342 "parse.y"
5072 { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
5073 break;}
5074 case 271:
5075 #line 1344 "parse.y"
5076 { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
5077 break;}
5078 case 272:
5079 #line 1346 "parse.y"
5080 { yyval.ttype = yyvsp[-1].ttype; ;
5081 break;}
5082 case 273:
5083 #line 1351 "parse.y"
5084 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5085 break;}
5086 case 274:
5087 #line 1353 "parse.y"
5088 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5089 break;}
5090 case 278:
5091 #line 1361 "parse.y"
5092 { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
5093 break;}
5094 case 279:
5095 #line 1366 "parse.y"
5096 {
5097 if (TREE_CODE (yyval.ttype) == BIT_NOT_EXPR)
5098 yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyval.ttype, 0));
5099 else if (TREE_CODE (yyval.ttype) != TEMPLATE_ID_EXPR)
5100 yyval.ttype = do_identifier (yyval.ttype, 1);
5101 ;
5102 break;}
5103 case 282:
5104 #line 1375 "parse.y"
5105 {
5106 if (processing_template_decl)
5107 push_obstacks (&permanent_obstack, &permanent_obstack);
5108 yyval.ttype = combine_strings (yyval.ttype);
5109 if (processing_template_decl)
5110 pop_obstacks ();
5111 ;
5112 break;}
5113 case 283:
5114 #line 1383 "parse.y"
5115 { char class;
5116 yyval.ttype = yyvsp[-1].ttype;
5117 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
5118 if (class == 'e' || class == '1'
5119 || class == '2' || class == '<')
5120 /* This inhibits warnings in truthvalue_conversion. */
5121 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
5122 break;}
5123 case 284:
5124 #line 1391 "parse.y"
5125 { char class;
5126 yyval.ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
5127 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
5128 if (class == 'e' || class == '1'
5129 || class == '2' || class == '<')
5130 /* This inhibits warnings in truthvalue_conversion. */
5131 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
5132 break;}
5133 case 285:
5134 #line 1399 "parse.y"
5135 { yyval.ttype = error_mark_node; ;
5136 break;}
5137 case 286:
5138 #line 1401 "parse.y"
5139 { if (current_function_decl == 0)
5140 {
5141 error ("braced-group within expression allowed only inside a function");
5142 YYERROR;
5143 }
5144 keep_next_level ();
5145 if (!processing_template_decl)
5146 yyval.ttype = expand_start_stmt_expr ();
5147 else
5148 yyval.ttype = NULL_TREE;
5149 ;
5150 break;}
5151 case 287:
5152 #line 1413 "parse.y"
5153 { tree rtl_exp;
5154 if (pedantic)
5155 pedwarn ("ANSI C++ forbids braced-groups within expressions");
5156 if (!processing_template_decl)
5157 {
5158 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
5159 /* The statements have side effects, so the
5160 group does. */
5161 TREE_SIDE_EFFECTS (rtl_exp) = 1;
5162 }
5163
5164 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
5165 {
5166 /* Make a BIND_EXPR for the BLOCK already made. */
5167 if (processing_template_decl)
5168 yyval.ttype = build (BIND_EXPR, NULL_TREE,
5169 NULL_TREE, last_tree, yyvsp[-1].ttype);
5170 else
5171 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
5172 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
5173
5174 /* Remove the block from the tree at this point.
5175 It gets put back at the proper place
5176 when the BIND_EXPR is expanded. */
5177 delete_block (yyvsp[-1].ttype);
5178 }
5179 else
5180 yyval.ttype = yyvsp[-1].ttype;
5181 ;
5182 break;}
5183 case 288:
5184 #line 1443 "parse.y"
5185 {
5186 yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_ref);
5187 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5188 && TREE_TYPE (yyval.ttype) != void_type_node)
5189 yyval.ttype = require_complete_type (yyval.ttype);
5190 ;
5191 break;}
5192 case 289:
5193 #line 1450 "parse.y"
5194 {
5195 yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_ref);
5196 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5197 && TREE_TYPE (yyval.ttype) != void_type_node)
5198 yyval.ttype = require_complete_type (yyval.ttype);
5199 ;
5200 break;}
5201 case 290:
5202 #line 1457 "parse.y"
5203 { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
5204 break;}
5205 case 291:
5206 #line 1459 "parse.y"
5207 { /* If we get an OFFSET_REF, turn it into what it really
5208 means (e.g., a COMPONENT_REF). This way if we've got,
5209 say, a reference to a static member that's being operated
5210 on, we don't end up trying to find a member operator for
5211 the class it's in. */
5212 if (TREE_CODE (yyval.ttype) == OFFSET_REF)
5213 yyval.ttype = resolve_offset_ref (yyval.ttype);
5214 yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
5215 break;}
5216 case 292:
5217 #line 1468 "parse.y"
5218 { if (TREE_CODE (yyval.ttype) == OFFSET_REF)
5219 yyval.ttype = resolve_offset_ref (yyval.ttype);
5220 yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
5221 break;}
5222 case 293:
5223 #line 1473 "parse.y"
5224 { if (current_class_ptr)
5225 {
5226 #ifdef WARNING_ABOUT_CCD
5227 TREE_USED (current_class_ptr) = 1;
5228 #endif
5229 yyval.ttype = current_class_ptr;
5230 }
5231 else if (current_function_decl
5232 && DECL_STATIC_FUNCTION_P (current_function_decl))
5233 {
5234 error ("`this' is unavailable for static member functions");
5235 yyval.ttype = error_mark_node;
5236 }
5237 else
5238 {
5239 if (current_function_decl)
5240 error ("invalid use of `this' in non-member function");
5241 else
5242 error ("invalid use of `this' at top level");
5243 yyval.ttype = error_mark_node;
5244 }
5245 ;
5246 break;}
5247 case 294:
5248 #line 1496 "parse.y"
5249 {
5250 tree type = NULL_TREE;
5251 tree id = yyval.ttype;
5252
5253 /* This is a C cast in C++'s `functional' notation. */
5254 if (yyvsp[-1].ttype == error_mark_node)
5255 {
5256 yyval.ttype = error_mark_node;
5257 break;
5258 }
5259 #if 0
5260 if (yyvsp[-1].ttype == NULL_TREE)
5261 {
5262 error ("cannot cast null list to type `%s'",
5263 IDENTIFIER_POINTER (TYPE_NAME (id)));
5264 yyval.ttype = error_mark_node;
5265 break;
5266 }
5267 #endif
5268 #if 0
5269 /* type is not set! (mrs) */
5270 if (type == error_mark_node)
5271 yyval.ttype = error_mark_node;
5272 else
5273 #endif
5274 {
5275 if (id == ridpointers[(int) RID_CONST])
5276 type = build_type_variant (integer_type_node, 1, 0);
5277 else if (id == ridpointers[(int) RID_VOLATILE])
5278 type = build_type_variant (integer_type_node, 0, 1);
5279 #if 0
5280 /* should not be able to get here (mrs) */
5281 else if (id == ridpointers[(int) RID_FRIEND])
5282 {
5283 error ("cannot cast expression to `friend' type");
5284 yyval.ttype = error_mark_node;
5285 break;
5286 }
5287 #endif
5288 else my_friendly_abort (79);
5289 yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
5290 }
5291 ;
5292 break;}
5293 case 296:
5294 #line 1541 "parse.y"
5295 { tree type = groktypename (yyvsp[-4].ftype.t);
5296 check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
5297 yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
5298 break;}
5299 case 297:
5300 #line 1545 "parse.y"
5301 { tree type = groktypename (yyvsp[-4].ftype.t);
5302 check_for_new_type ("static_cast", yyvsp[-4].ftype);
5303 yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
5304 break;}
5305 case 298:
5306 #line 1549 "parse.y"
5307 { tree type = groktypename (yyvsp[-4].ftype.t);
5308 check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
5309 yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
5310 break;}
5311 case 299:
5312 #line 1553 "parse.y"
5313 { tree type = groktypename (yyvsp[-4].ftype.t);
5314 check_for_new_type ("const_cast", yyvsp[-4].ftype);
5315 yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
5316 break;}
5317 case 300:
5318 #line 1557 "parse.y"
5319 { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
5320 break;}
5321 case 301:
5322 #line 1559 "parse.y"
5323 { tree type = groktypename (yyvsp[-1].ftype.t);
5324 check_for_new_type ("typeid", yyvsp[-1].ftype);
5325 yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
5326 break;}
5327 case 302:
5328 #line 1563 "parse.y"
5329 { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
5330 break;}
5331 case 303:
5332 #line 1565 "parse.y"
5333 {
5334 got_scope = NULL_TREE;
5335 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
5336 yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
5337 else
5338 yyval.ttype = yyvsp[0].ttype;
5339 ;
5340 break;}
5341 case 304:
5342 #line 1573 "parse.y"
5343 { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
5344 break;}
5345 case 305:
5346 #line 1575 "parse.y"
5347 { if (processing_template_decl)
5348 yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE);
5349 else
5350 yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), yyvsp[-1].ttype); ;
5351 break;}
5352 case 306:
5353 #line 1580 "parse.y"
5354 { if (processing_template_decl)
5355 yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-1].ttype),
5356 NULL_TREE, NULL_TREE);
5357 else
5358 yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), NULL_TREE); ;
5359 break;}
5360 case 307:
5361 #line 1586 "parse.y"
5362 {
5363 yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1);
5364 ;
5365 break;}
5366 case 308:
5367 #line 1590 "parse.y"
5368 {
5369 yyval.ttype = build_method_call (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype,
5370 NULL_TREE, LOOKUP_NORMAL);
5371 ;
5372 break;}
5373 case 309:
5374 #line 1595 "parse.y"
5375 {
5376 yyval.ttype = build_method_call (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE,
5377 NULL_TREE, LOOKUP_NORMAL);
5378 ;
5379 break;}
5380 case 310:
5381 #line 1600 "parse.y"
5382 { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
5383 break;}
5384 case 311:
5385 #line 1602 "parse.y"
5386 { if (processing_template_decl)
5387 yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
5388 else
5389 yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
5390 break;}
5391 case 312:
5392 #line 1607 "parse.y"
5393 {
5394 #if 0
5395 /* This is a future direction of this code, but because
5396 build_x_function_call cannot always undo what is done
5397 in build_component_ref entirely yet, we cannot do this. */
5398 yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-3].ttype, NULL_TREE, 1), yyvsp[-1].ttype, current_class_ref);
5399 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5400 && TREE_TYPE (yyval.ttype) != void_type_node)
5401 yyval.ttype = require_complete_type (yyval.ttype);
5402 #else
5403 yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
5404 LOOKUP_NORMAL);
5405 #endif
5406 ;
5407 break;}
5408 case 313:
5409 #line 1622 "parse.y"
5410 {
5411 #if 0
5412 /* This is a future direction of this code, but because
5413 build_x_function_call cannot always undo what is done
5414 in build_component_ref entirely yet, we cannot do this. */
5415 yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, 1), NULL_TREE, current_class_ref);
5416 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5417 && TREE_TYPE (yyval.ttype) != void_type_node)
5418 yyval.ttype = require_complete_type (yyval.ttype);
5419 #else
5420 yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
5421 LOOKUP_NORMAL);
5422 #endif
5423 ;
5424 break;}
5425 case 314:
5426 #line 1637 "parse.y"
5427 {
5428 if (IS_SIGNATURE (OP0 (yyvsp[-3].ttype)))
5429 {
5430 warning ("signature name in scope resolution ignored");
5431 yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE,
5432 LOOKUP_NORMAL);
5433 }
5434 else
5435 yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-3].ttype), OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype);
5436 ;
5437 break;}
5438 case 315:
5439 #line 1648 "parse.y"
5440 {
5441 if (IS_SIGNATURE (OP0 (yyvsp[-1].ttype)))
5442 {
5443 warning ("signature name in scope resolution ignored");
5444 yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-1].ttype), NULL_TREE, NULL_TREE,
5445 LOOKUP_NORMAL);
5446 }
5447 else
5448 yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-1].ttype), OP1 (yyvsp[-1].ttype), NULL_TREE);
5449 ;
5450 break;}
5451 case 316:
5452 #line 1660 "parse.y"
5453 {
5454 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)
5455 && (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype))
5456 != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)))))
5457 cp_error ("`%E' is not of type `%T'", yyvsp[-3].ttype, yyvsp[-1].ttype);
5458 yyval.ttype = cp_convert (void_type_node, yyvsp[-3].ttype);
5459 ;
5460 break;}
5461 case 317:
5462 #line 1668 "parse.y"
5463 {
5464 if (yyvsp[-4].ttype != yyvsp[-1].ttype)
5465 cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype);
5466 if (TREE_CODE (TREE_TYPE (yyvsp[-5].ttype))
5467 != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-4].ttype))))
5468 cp_error ("`%E' is not of type `%T'", yyvsp[-5].ttype, yyvsp[-4].ttype);
5469 yyval.ttype = cp_convert (void_type_node, yyvsp[-5].ttype);
5470 ;
5471 break;}
5472 case 318:
5473 #line 1677 "parse.y"
5474 {
5475 yyval.ttype = error_mark_node;
5476 ;
5477 break;}
5478 case 319:
5479 #line 1722 "parse.y"
5480 { yyval.itype = 0; ;
5481 break;}
5482 case 320:
5483 #line 1724 "parse.y"
5484 { got_scope = NULL_TREE; yyval.itype = 1; ;
5485 break;}
5486 case 321:
5487 #line 1729 "parse.y"
5488 { yyval.itype = 0; ;
5489 break;}
5490 case 322:
5491 #line 1731 "parse.y"
5492 { got_scope = NULL_TREE; yyval.itype = 1; ;
5493 break;}
5494 case 323:
5495 #line 1736 "parse.y"
5496 { yyval.ttype = boolean_true_node; ;
5497 break;}
5498 case 324:
5499 #line 1738 "parse.y"
5500 { yyval.ttype = boolean_false_node; ;
5501 break;}
5502 case 326:
5503 #line 1745 "parse.y"
5504 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5505 break;}
5506 case 327:
5507 #line 1750 "parse.y"
5508 {
5509 if (! current_function_parms_stored)
5510 store_parm_decls ();
5511 setup_vtbl_ptr ();
5512 /* Always keep the BLOCK node associated with the outermost
5513 pair of curley braces of a function. These are needed
5514 for correct operation of dwarfout.c. */
5515 keep_next_level ();
5516 ;
5517 break;}
5518 case 328:
5519 #line 1763 "parse.y"
5520 { got_object = TREE_TYPE (yyval.ttype); ;
5521 break;}
5522 case 329:
5523 #line 1765 "parse.y"
5524 {
5525 yyval.ttype = build_x_arrow (yyval.ttype);
5526 got_object = TREE_TYPE (yyval.ttype);
5527 ;
5528 break;}
5529 case 330:
5530 #line 1773 "parse.y"
5531 {
5532 resume_momentary (yyvsp[-1].itype);
5533 if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
5534 note_got_semicolon (yyvsp[-2].ftype.t);
5535 ;
5536 break;}
5537 case 331:
5538 #line 1779 "parse.y"
5539 {
5540 resume_momentary (yyvsp[-1].itype);
5541 note_list_got_semicolon (yyvsp[-2].ftype.t);
5542 ;
5543 break;}
5544 case 332:
5545 #line 1784 "parse.y"
5546 { resume_momentary (yyvsp[-1].itype); ;
5547 break;}
5548 case 333:
5549 #line 1786 "parse.y"
5550 {
5551 shadow_tag (yyvsp[-1].ftype.t);
5552 note_list_got_semicolon (yyvsp[-1].ftype.t);
5553 ;
5554 break;}
5555 case 334:
5556 #line 1791 "parse.y"
5557 { warning ("empty declaration"); ;
5558 break;}
5559 case 335:
5560 #line 1793 "parse.y"
5561 { pedantic = yyvsp[-1].itype; ;
5562 break;}
5563 case 338:
5564 #line 1807 "parse.y"
5565 { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
5566 NULL_TREE, NULL_TREE); ;
5567 break;}
5568 case 339:
5569 #line 1810 "parse.y"
5570 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
5571 NULL_TREE); ;
5572 break;}
5573 case 340:
5574 #line 1817 "parse.y"
5575 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5576 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5577 break;}
5578 case 341:
5579 #line 1820 "parse.y"
5580 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5581 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5582 break;}
5583 case 342:
5584 #line 1823 "parse.y"
5585 { yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
5586 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5587 break;}
5588 case 343:
5589 #line 1826 "parse.y"
5590 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5591 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5592 break;}
5593 case 344:
5594 #line 1829 "parse.y"
5595 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5596 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5597 break;}
5598 case 347:
5599 #line 1845 "parse.y"
5600 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype);
5601 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5602 break;}
5603 case 348:
5604 #line 1848 "parse.y"
5605 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
5606 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5607 break;}
5608 case 349:
5609 #line 1851 "parse.y"
5610 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype));
5611 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5612 break;}
5613 case 350:
5614 #line 1854 "parse.y"
5615 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5616 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5617 break;}
5618 case 351:
5619 #line 1857 "parse.y"
5620 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5621 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5622 break;}
5623 case 352:
5624 #line 1860 "parse.y"
5625 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
5626 chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype)));
5627 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5628 break;}
5629 case 353:
5630 #line 1867 "parse.y"
5631 { if (extra_warnings)
5632 warning ("`%s' is not at beginning of declaration",
5633 IDENTIFIER_POINTER (yyval.ttype));
5634 yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
5635 break;}
5636 case 354:
5637 #line 1872 "parse.y"
5638 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
5639 break;}
5640 case 355:
5641 #line 1874 "parse.y"
5642 { if (extra_warnings)
5643 warning ("`%s' is not at beginning of declaration",
5644 IDENTIFIER_POINTER (yyvsp[0].ttype));
5645 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5646 break;}
5647 case 356:
5648 #line 1879 "parse.y"
5649 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5650 break;}
5651 case 357:
5652 #line 1881 "parse.y"
5653 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5654 break;}
5655 case 358:
5656 #line 1891 "parse.y"
5657 { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
5658 break;}
5659 case 359:
5660 #line 1893 "parse.y"
5661 { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
5662 break;}
5663 case 360:
5664 #line 1895 "parse.y"
5665 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5666 TREE_STATIC (yyval.ttype) = 1; ;
5667 break;}
5668 case 361:
5669 #line 1898 "parse.y"
5670 { if (extra_warnings && TREE_STATIC (yyval.ttype))
5671 warning ("`%s' is not at beginning of declaration",
5672 IDENTIFIER_POINTER (yyvsp[0].ttype));
5673 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5674 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
5675 break;}
5676 case 362:
5677 #line 1904 "parse.y"
5678 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5679 break;}
5680 case 363:
5681 #line 1906 "parse.y"
5682 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5683 break;}
5684 case 364:
5685 #line 1917 "parse.y"
5686 { yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t);
5687 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5688 break;}
5689 case 365:
5690 #line 1920 "parse.y"
5691 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t);
5692 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5693 break;}
5694 case 366:
5695 #line 1923 "parse.y"
5696 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
5697 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5698 break;}
5699 case 367:
5700 #line 1926 "parse.y"
5701 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t));
5702 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5703 break;}
5704 case 368:
5705 #line 1932 "parse.y"
5706 { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
5707 break;}
5708 case 369:
5709 #line 1934 "parse.y"
5710 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
5711 break;}
5712 case 371:
5713 #line 1944 "parse.y"
5714 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5715 break;}
5716 case 372:
5717 #line 1946 "parse.y"
5718 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5719 break;}
5720 case 373:
5721 #line 1948 "parse.y"
5722 { yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype);
5723 yyval.ftype.new_type_flag = 0; ;
5724 break;}
5725 case 374:
5726 #line 1951 "parse.y"
5727 { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
5728 yyval.ftype.new_type_flag = 0; ;
5729 break;}
5730 case 375:
5731 #line 1954 "parse.y"
5732 { tree type = TREE_TYPE (yyvsp[-1].ttype);
5733
5734 yyval.ftype.new_type_flag = 0;
5735 if (IS_AGGR_TYPE (type))
5736 {
5737 sorry ("sigof type specifier");
5738 yyval.ftype.t = type;
5739 }
5740 else
5741 {
5742 error ("`sigof' applied to non-aggregate expression");
5743 yyval.ftype.t = error_mark_node;
5744 }
5745 ;
5746 break;}
5747 case 376:
5748 #line 1969 "parse.y"
5749 { tree type = groktypename (yyvsp[-1].ftype.t);
5750
5751 yyval.ftype.new_type_flag = 0;
5752 if (IS_AGGR_TYPE (type))
5753 {
5754 sorry ("sigof type specifier");
5755 yyval.ftype.t = type;
5756 }
5757 else
5758 {
5759 error("`sigof' applied to non-aggregate type");
5760 yyval.ftype.t = error_mark_node;
5761 }
5762 ;
5763 break;}
5764 case 377:
5765 #line 1989 "parse.y"
5766 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5767 break;}
5768 case 378:
5769 #line 1991 "parse.y"
5770 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5771 break;}
5772 case 386:
5773 #line 2012 "parse.y"
5774 { yyval.ttype = NULL_TREE; ;
5775 break;}
5776 case 387:
5777 #line 2014 "parse.y"
5778 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
5779 break;}
5780 case 388:
5781 #line 2019 "parse.y"
5782 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
5783 &prefix_attributes);
5784 if (current_declspecs
5785 && TREE_CODE (current_declspecs) != TREE_LIST)
5786 current_declspecs = get_decl_list (current_declspecs);
5787 if (have_extern_spec && !used_extern_spec)
5788 {
5789 current_declspecs = decl_tree_cons
5790 (NULL_TREE, get_identifier ("extern"),
5791 current_declspecs);
5792 used_extern_spec = 1;
5793 }
5794 yyvsp[0].itype = suspend_momentary ();
5795 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5796 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5797 break;}
5798 case 389:
5799 #line 2036 "parse.y"
5800 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5801 yyval.itype = yyvsp[-2].itype; ;
5802 break;}
5803 case 390:
5804 #line 2039 "parse.y"
5805 { tree d;
5806 split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
5807 &prefix_attributes);
5808 if (current_declspecs
5809 && TREE_CODE (current_declspecs) != TREE_LIST)
5810 current_declspecs = get_decl_list (current_declspecs);
5811 if (have_extern_spec && !used_extern_spec)
5812 {
5813 current_declspecs = decl_tree_cons
5814 (NULL_TREE, get_identifier ("extern"),
5815 current_declspecs);
5816 used_extern_spec = 1;
5817 }
5818 yyval.itype = suspend_momentary ();
5819 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5820 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5821 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5822 break;}
5823 case 391:
5824 #line 2060 "parse.y"
5825 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5826 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5827 break;}
5828 case 392:
5829 #line 2064 "parse.y"
5830 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
5831 break;}
5832 case 393:
5833 #line 2066 "parse.y"
5834 { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5835 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes);
5836 cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5837 break;}
5838 case 394:
5839 #line 2073 "parse.y"
5840 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
5841 &prefix_attributes);
5842 yyvsp[0].itype = suspend_momentary ();
5843 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5844 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5845 break;}
5846 case 395:
5847 #line 2080 "parse.y"
5848 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5849 yyval.itype = yyvsp[-2].itype; ;
5850 break;}
5851 case 396:
5852 #line 2083 "parse.y"
5853 { tree d;
5854 split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
5855 &prefix_attributes);
5856 yyval.itype = suspend_momentary ();
5857 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5858 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5859 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5860 break;}
5861 case 397:
5862 #line 2094 "parse.y"
5863 { current_declspecs = NULL_TREE;
5864 prefix_attributes = NULL_TREE;
5865 yyvsp[0].itype = suspend_momentary ();
5866 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5867 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5868 break;}
5869 case 398:
5870 #line 2101 "parse.y"
5871 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5872 yyval.itype = yyvsp[-2].itype; ;
5873 break;}
5874 case 399:
5875 #line 2104 "parse.y"
5876 { tree d;
5877 current_declspecs = NULL_TREE;
5878 prefix_attributes = NULL_TREE;
5879 yyval.itype = suspend_momentary ();
5880 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5881 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5882 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5883 break;}
5884 case 400:
5885 #line 2112 "parse.y"
5886 { tree d;
5887 current_declspecs = NULL_TREE;
5888 prefix_attributes = NULL_TREE;
5889 yyval.itype = suspend_momentary ();
5890 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5891 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5892 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5893 break;}
5894 case 401:
5895 #line 2125 "parse.y"
5896 { yyval.ttype = NULL_TREE; ;
5897 break;}
5898 case 402:
5899 #line 2127 "parse.y"
5900 { yyval.ttype = yyvsp[0].ttype; ;
5901 break;}
5902 case 403:
5903 #line 2132 "parse.y"
5904 { yyval.ttype = yyvsp[0].ttype; ;
5905 break;}
5906 case 404:
5907 #line 2134 "parse.y"
5908 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5909 break;}
5910 case 405:
5911 #line 2139 "parse.y"
5912 { yyval.ttype = yyvsp[-2].ttype; ;
5913 break;}
5914 case 406:
5915 #line 2144 "parse.y"
5916 { yyval.ttype = yyvsp[0].ttype; ;
5917 break;}
5918 case 407:
5919 #line 2146 "parse.y"
5920 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
5921 break;}
5922 case 408:
5923 #line 2151 "parse.y"
5924 { yyval.ttype = NULL_TREE; ;
5925 break;}
5926 case 409:
5927 #line 2153 "parse.y"
5928 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
5929 break;}
5930 case 410:
5931 #line 2155 "parse.y"
5932 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
5933 break;}
5934 case 411:
5935 #line 2157 "parse.y"
5936 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
5937 break;}
5938 case 412:
5939 #line 2159 "parse.y"
5940 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5941 break;}
5942 case 417:
5943 #line 2175 "parse.y"
5944 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
5945 break;}
5946 case 418:
5947 #line 2177 "parse.y"
5948 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
5949 break;}
5950 case 419:
5951 #line 2182 "parse.y"
5952 { yyval.ttype = NULL_TREE; ;
5953 break;}
5954 case 420:
5955 #line 2184 "parse.y"
5956 { yyval.ttype = yyvsp[0].ttype; ;
5957 break;}
5958 case 422:
5959 #line 2192 "parse.y"
5960 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
5961 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5962 break;}
5963 case 423:
5964 #line 2195 "parse.y"
5965 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
5966 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5967 break;}
5968 case 424:
5969 #line 2198 "parse.y"
5970 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
5971 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5972 break;}
5973 case 425:
5974 #line 2201 "parse.y"
5975 { yyval.ttype = NULL_TREE; ;
5976 break;}
5977 case 426:
5978 #line 2208 "parse.y"
5979 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
5980 break;}
5981 case 427:
5982 #line 2210 "parse.y"
5983 { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5984 break;}
5985 case 428:
5986 #line 2229 "parse.y"
5987 { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
5988 NULL_TREE, 1);
5989 reinit_parse_for_function (); ;
5990 break;}
5991 case 429:
5992 #line 2235 "parse.y"
5993 {
5994 int nested = (hack_decl_function_context
5995 (current_function_decl) != NULL_TREE);
5996 finish_function (lineno, (int)yyvsp[-1].itype, nested);
5997 process_next_inline (yyvsp[-3].ttype);
5998 ;
5999 break;}
6000 case 430:
6001 #line 2242 "parse.y"
6002 { process_next_inline (yyvsp[-2].ttype); ;
6003 break;}
6004 case 431:
6005 #line 2244 "parse.y"
6006 { process_next_inline (yyvsp[-2].ttype); ;
6007 break;}
6008 case 434:
6009 #line 2256 "parse.y"
6010 { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
6011 break;}
6012 case 435:
6013 #line 2258 "parse.y"
6014 { replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
6015 break;}
6016 case 437:
6017 #line 2263 "parse.y"
6018 { do_pending_defargs (); ;
6019 break;}
6020 case 438:
6021 #line 2265 "parse.y"
6022 { do_pending_defargs (); ;
6023 break;}
6024 case 439:
6025 #line 2270 "parse.y"
6026 { yyvsp[0].itype = suspend_momentary ();
6027 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
6028 break;}
6029 case 440:
6030 #line 2273 "parse.y"
6031 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
6032 yyval.ftype.new_type_flag = 1;
6033 resume_momentary ((int) yyvsp[-4].itype);
6034 check_for_missing_semicolon (yyvsp[-3].ttype); ;
6035 break;}
6036 case 441:
6037 #line 2278 "parse.y"
6038 { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
6039 yyval.ftype.new_type_flag = 1;
6040 check_for_missing_semicolon (yyval.ftype.t); ;
6041 break;}
6042 case 442:
6043 #line 2282 "parse.y"
6044 { yyvsp[0].itype = suspend_momentary ();
6045 yyval.ttype = start_enum (make_anon_name ()); ;
6046 break;}
6047 case 443:
6048 #line 2285 "parse.y"
6049 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
6050 resume_momentary ((int) yyvsp[-5].itype);
6051 check_for_missing_semicolon (yyvsp[-3].ttype);
6052 yyval.ftype.new_type_flag = 1; ;
6053 break;}
6054 case 444:
6055 #line 2290 "parse.y"
6056 { yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE);
6057 yyval.ftype.new_type_flag = 1;
6058 check_for_missing_semicolon (yyval.ftype.t); ;
6059 break;}
6060 case 445:
6061 #line 2294 "parse.y"
6062 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1);
6063 yyval.ftype.new_type_flag = 0; ;
6064 break;}
6065 case 446:
6066 #line 2297 "parse.y"
6067 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1);
6068 yyval.ftype.new_type_flag = 0; ;
6069 break;}
6070 case 447:
6071 #line 2300 "parse.y"
6072 { yyval.ftype.t = yyvsp[0].ttype;
6073 yyval.ftype.new_type_flag = 0; ;
6074 break;}
6075 case 448:
6076 #line 2305 "parse.y"
6077 {
6078 int semi;
6079
6080 yyval.ttype = yyvsp[-4].ttype;
6081 #if 0
6082 /* Need to rework class nesting in the
6083 presence of nested classes, etc. */
6084 shadow_tag (CLASSTYPE_AS_LIST (yyvsp[-4].ttype)); */
6085 #endif
6086 if (yychar == YYEMPTY)
6087 yychar = YYLEX;
6088 semi = yychar == ';';
6089 /* finish_struct nukes this anyway; if
6090 finish_exception does too, then it can go. */
6091 if (semi)
6092 note_got_semicolon (yyvsp[-4].ttype);
6093
6094 if (TREE_CODE (yyvsp[-4].ttype) == ENUMERAL_TYPE)
6095 ;
6096 else
6097 {
6098 yyval.ttype = finish_struct (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi);
6099 if (semi) note_got_semicolon (yyval.ttype);
6100 }
6101
6102 pop_obstacks ();
6103
6104 if (! semi)
6105 check_for_missing_semicolon (yyvsp[-4].ttype);
6106 if (current_scope () == current_function_decl)
6107 do_pending_defargs ();
6108 ;
6109 break;}
6110 case 449:
6111 #line 2338 "parse.y"
6112 {
6113 if (pending_inlines
6114 && current_scope () == current_function_decl)
6115 do_pending_inlines ();
6116 ;
6117 break;}
6118 case 450:
6119 #line 2344 "parse.y"
6120 {
6121 yyval.ftype.t = yyvsp[-3].ttype;
6122 yyval.ftype.new_type_flag = 1;
6123 if (current_class_type == NULL_TREE)
6124 clear_inline_text_obstack ();
6125
6126 /* Undo the begin_tree in left_curly. */
6127 end_tree ();
6128 ;
6129 break;}
6130 case 451:
6131 #line 2354 "parse.y"
6132 {
6133 yyval.ftype.new_type_flag = 0;
6134 if (TYPE_BINFO (yyvsp[0].ttype) == NULL_TREE)
6135 {
6136 cp_error ("%T is not a class type", yyvsp[0].ttype);
6137 yyval.ftype.t = error_mark_node;
6138 }
6139 else
6140 {
6141 yyval.ftype.t = yyvsp[0].ttype;
6142 /* struct B: public A; is not accepted by the WP grammar. */
6143 if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
6144 && ! TYPE_BEING_DEFINED (yyval.ftype.t))
6145 cp_error ("base clause without member specification for `%#T'",
6146 yyval.ftype.t);
6147 }
6148 ;
6149 break;}
6150 case 455:
6151 #line 2381 "parse.y"
6152 { if (pedantic && !in_system_header)
6153 pedwarn ("comma at end of enumerator list"); ;
6154 break;}
6155 case 457:
6156 #line 2388 "parse.y"
6157 { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6158 break;}
6159 case 458:
6160 #line 2390 "parse.y"
6161 { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6162 break;}
6163 case 459:
6164 #line 2392 "parse.y"
6165 { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6166 break;}
6167 case 460:
6168 #line 2394 "parse.y"
6169 { error ("no body nor ';' separates two class, struct or union declarations"); ;
6170 break;}
6171 case 461:
6172 #line 2399 "parse.y"
6173 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6174 break;}
6175 case 462:
6176 #line 2404 "parse.y"
6177 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6178 break;}
6179 case 463:
6180 #line 2409 "parse.y"
6181 {
6182 current_aggr = yyvsp[-2].ttype;
6183 yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6184 ;
6185 break;}
6186 case 464:
6187 #line 2414 "parse.y"
6188 {
6189 current_aggr = yyvsp[-3].ttype;
6190 yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6191 ;
6192 break;}
6193 case 465:
6194 #line 2419 "parse.y"
6195 {
6196 current_aggr = yyvsp[-2].ttype;
6197 yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
6198 ;
6199 break;}
6200 case 466:
6201 #line 2424 "parse.y"
6202 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6203 break;}
6204 case 467:
6205 #line 2426 "parse.y"
6206 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6207 break;}
6208 case 468:
6209 #line 2431 "parse.y"
6210 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ;
6211 break;}
6212 case 469:
6213 #line 2436 "parse.y"
6214 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ;
6215 break;}
6216 case 470:
6217 #line 2439 "parse.y"
6218 {
6219 yyval.ttype = yyvsp[-1].ttype;
6220 if (yyvsp[0].ttype)
6221 xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6222 ;
6223 break;}
6224 case 471:
6225 #line 2445 "parse.y"
6226 {
6227 yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6228 if (TREE_INT_CST_LOW (current_aggr) == union_type
6229 && TREE_CODE (yyval.ttype) != UNION_TYPE)
6230 cp_pedwarn ("`union' tag used in declaring `%#T'", yyval.ttype);
6231 else if (TREE_CODE (yyval.ttype) == UNION_TYPE
6232 && TREE_INT_CST_LOW (current_aggr) != union_type)
6233 cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ttype);
6234 if (yyvsp[0].ttype)
6235 {
6236 if (IS_AGGR_TYPE (yyval.ttype) && CLASSTYPE_USE_TEMPLATE (yyval.ttype))
6237 {
6238 if (CLASSTYPE_IMPLICIT_INSTANTIATION (yyval.ttype)
6239 && TYPE_SIZE (yyval.ttype) == NULL_TREE)
6240 {
6241 SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (yyval.ttype);
6242 if (processing_template_decl)
6243 push_template_decl (TYPE_MAIN_DECL (yyval.ttype));
6244 }
6245 else if (CLASSTYPE_TEMPLATE_INSTANTIATION (yyval.ttype))
6246 cp_error ("specialization after instantiation of `%T'", yyval.ttype);
6247 }
6248 xref_basetypes (current_aggr, yyvsp[-1].ttype, yyval.ttype, yyvsp[0].ttype);
6249 }
6250 ;
6251 break;}
6252 case 472:
6253 #line 2474 "parse.y"
6254 { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0);
6255 yyungetc ('{', 1); ;
6256 break;}
6257 case 475:
6258 #line 2485 "parse.y"
6259 { yyval.ttype = NULL_TREE; ;
6260 break;}
6261 case 476:
6262 #line 2487 "parse.y"
6263 { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
6264 break;}
6265 case 477:
6266 #line 2489 "parse.y"
6267 { yyval.ttype = yyvsp[0].ttype; ;
6268 break;}
6269 case 479:
6270 #line 2495 "parse.y"
6271 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6272 break;}
6273 case 480:
6274 #line 2500 "parse.y"
6275 {
6276 tree type = TREE_TYPE (yyvsp[0].ttype);
6277 if (! is_aggr_type (type, 1))
6278 yyval.ttype = NULL_TREE;
6279 else if (current_aggr == signature_type_node
6280 && (! type) && (! IS_SIGNATURE (type)))
6281 {
6282 error ("class name not allowed as base signature");
6283 yyval.ttype = NULL_TREE;
6284 }
6285 else if (current_aggr == signature_type_node)
6286 {
6287 sorry ("signature inheritance, base type `%s' ignored",
6288 IDENTIFIER_POINTER (yyval.ttype));
6289 yyval.ttype = build_tree_list (access_public_node, type);
6290 }
6291 else if (type && IS_SIGNATURE (type))
6292 {
6293 error ("signature name not allowed as base class");
6294 yyval.ttype = NULL_TREE;
6295 }
6296 else
6297 yyval.ttype = build_tree_list (access_default_node, type);
6298 ;
6299 break;}
6300 case 481:
6301 #line 2525 "parse.y"
6302 {
6303 tree type = TREE_TYPE (yyvsp[0].ttype);
6304 if (current_aggr == signature_type_node)
6305 error ("access and source specifiers not allowed in signature");
6306 if (! IS_AGGR_TYPE (type))
6307 yyval.ttype = NULL_TREE;
6308 else if (current_aggr == signature_type_node
6309 && (! type) && (! IS_SIGNATURE (type)))
6310 {
6311 error ("class name not allowed as base signature");
6312 yyval.ttype = NULL_TREE;
6313 }
6314 else if (current_aggr == signature_type_node)
6315 {
6316 sorry ("signature inheritance, base type `%s' ignored",
6317 IDENTIFIER_POINTER (yyval.ttype));
6318 yyval.ttype = build_tree_list (access_public_node, type);
6319 }
6320 else if (type && IS_SIGNATURE (type))
6321 {
6322 error ("signature name not allowed as base class");
6323 yyval.ttype = NULL_TREE;
6324 }
6325 else
6326 yyval.ttype = build_tree_list (yyval.ttype, type);
6327 ;
6328 break;}
6329 case 482:
6330 #line 2555 "parse.y"
6331 { yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
6332 break;}
6333 case 484:
6334 #line 2558 "parse.y"
6335 {
6336 if (current_aggr == signature_type_node)
6337 {
6338 if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
6339 {
6340 sorry ("`sigof' as base signature specifier");
6341 yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6342 }
6343 else
6344 {
6345 error ("`sigof' applied to non-aggregate expression");
6346 yyval.ttype = error_mark_node;
6347 }
6348 }
6349 else
6350 {
6351 error ("`sigof' in struct or class declaration");
6352 yyval.ttype = error_mark_node;
6353 }
6354 ;
6355 break;}
6356 case 485:
6357 #line 2579 "parse.y"
6358 {
6359 if (current_aggr == signature_type_node)
6360 {
6361 if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
6362 {
6363 sorry ("`sigof' as base signature specifier");
6364 yyval.ttype = groktypename (yyvsp[-1].ftype.t);
6365 }
6366 else
6367 {
6368 error ("`sigof' applied to non-aggregate expression");
6369 yyval.ttype = error_mark_node;
6370 }
6371 }
6372 else
6373 {
6374 error ("`sigof' in struct or class declaration");
6375 yyval.ttype = error_mark_node;
6376 }
6377 ;
6378 break;}
6379 case 487:
6380 #line 2604 "parse.y"
6381 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6382 cp_error ("`%D' access", yyvsp[-1].ttype);
6383 yyval.ttype = access_default_virtual_node; ;
6384 break;}
6385 case 488:
6386 #line 2608 "parse.y"
6387 {
6388 if (yyvsp[-2].ttype != access_default_virtual_node)
6389 error ("multiple access specifiers");
6390 else if (yyvsp[-1].ttype == access_public_node)
6391 yyval.ttype = access_public_virtual_node;
6392 else if (yyvsp[-1].ttype == access_protected_node)
6393 yyval.ttype = access_protected_virtual_node;
6394 else /* $2 == access_private_node */
6395 yyval.ttype = access_private_virtual_node;
6396 ;
6397 break;}
6398 case 489:
6399 #line 2619 "parse.y"
6400 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6401 cp_error ("`%D' access", yyvsp[-1].ttype);
6402 else if (yyval.ttype == access_public_node)
6403 yyval.ttype = access_public_virtual_node;
6404 else if (yyval.ttype == access_protected_node)
6405 yyval.ttype = access_protected_virtual_node;
6406 else if (yyval.ttype == access_private_node)
6407 yyval.ttype = access_private_virtual_node;
6408 else
6409 error ("multiple `virtual' specifiers");
6410 ;
6411 break;}
6412 case 490:
6413 #line 2634 "parse.y"
6414 { tree t = yyvsp[-1].ttype;
6415 push_obstacks_nochange ();
6416 end_temporary_allocation ();
6417
6418 if (t == error_mark_node
6419 || ! IS_AGGR_TYPE (t))
6420 {
6421 t = yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
6422 pushtag (make_anon_name (), t, 0);
6423 }
6424 if (TYPE_SIZE (t))
6425 duplicate_tag_error (t);
6426 if (TYPE_SIZE (t) || TYPE_BEING_DEFINED (t))
6427 {
6428 t = make_lang_type (TREE_CODE (t));
6429 pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t, 0);
6430 yyvsp[-1].ttype = t;
6431 }
6432 if (processing_template_decl && TYPE_CONTEXT (t)
6433 && ! current_class_type)
6434 push_template_decl (TYPE_STUB_DECL (t));
6435 pushclass (t, 0);
6436 TYPE_BEING_DEFINED (t) = 1;
6437 if (IS_AGGR_TYPE (t) && CLASSTYPE_USE_TEMPLATE (t))
6438 {
6439 if (CLASSTYPE_IMPLICIT_INSTANTIATION (t)
6440 && TYPE_SIZE (t) == NULL_TREE)
6441 {
6442 SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (t);
6443 if (processing_template_decl)
6444 push_template_decl (TYPE_MAIN_DECL (t));
6445 }
6446 else if (CLASSTYPE_TEMPLATE_INSTANTIATION (t))
6447 cp_error ("specialization after instantiation of `%T'", t);
6448 }
6449 /* Reset the interface data, at the earliest possible
6450 moment, as it might have been set via a class foo;
6451 before. */
6452 /* Don't change signatures. */
6453 if (! IS_SIGNATURE (t))
6454 {
6455 extern tree pending_vtables;
6456 int needs_writing;
6457 tree name = TYPE_IDENTIFIER (t);
6458
6459 if (! ANON_AGGRNAME_P (name))
6460 {
6461 CLASSTYPE_INTERFACE_ONLY (t) = interface_only;
6462 SET_CLASSTYPE_INTERFACE_UNKNOWN_X
6463 (t, interface_unknown);
6464 }
6465
6466 /* Record how to set the access of this class's
6467 virtual functions. If write_virtuals == 2 or 3, then
6468 inline virtuals are ``extern inline''. */
6469 switch (write_virtuals)
6470 {
6471 case 0:
6472 case 1:
6473 needs_writing = 1;
6474 break;
6475 case 2:
6476 needs_writing = !! value_member (name, pending_vtables);
6477 break;
6478 case 3:
6479 needs_writing = ! CLASSTYPE_INTERFACE_ONLY (t)
6480 && CLASSTYPE_INTERFACE_KNOWN (t);
6481 break;
6482 default:
6483 needs_writing = 0;
6484 }
6485 CLASSTYPE_VTABLE_NEEDS_WRITING (t) = needs_writing;
6486 }
6487 #if 0
6488 t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
6489 if (t && IDENTIFIER_TEMPLATE (t))
6490 overload_template_name (t, 1);
6491 #endif
6492 reset_specialization();
6493
6494 /* In case this is a local class within a template
6495 function, we save the current tree structure so
6496 that we can get it back later. */
6497 begin_tree ();
6498 ;
6499 break;}
6500 case 491:
6501 #line 2723 "parse.y"
6502 {
6503 yyval.ttype = build_self_reference ();
6504 ;
6505 break;}
6506 case 492:
6507 #line 2730 "parse.y"
6508 { if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ;
6509 break;}
6510 case 493:
6511 #line 2732 "parse.y"
6512 {
6513 if (current_aggr == signature_type_node)
6514 yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype);
6515 else
6516 yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype);
6517 if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype);
6518 ;
6519 break;}
6520 case 494:
6521 #line 2740 "parse.y"
6522 {
6523 tree visspec = yyvsp[-2].ttype;
6524
6525 if (current_aggr == signature_type_node)
6526 {
6527 error ("access specifier not allowed in signature");
6528 visspec = access_public_node;
6529 }
6530 yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
6531 ;
6532 break;}
6533 case 495:
6534 #line 2751 "parse.y"
6535 {
6536 if (current_aggr == signature_type_node)
6537 error ("access specifier not allowed in signature");
6538 ;
6539 break;}
6540 case 496:
6541 #line 2761 "parse.y"
6542 { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE;
6543 ;
6544 break;}
6545 case 497:
6546 #line 2764 "parse.y"
6547 { /* In pushdecl, we created a reverse list of names
6548 in this binding level. Make sure that the chain
6549 of what we're trying to add isn't the item itself
6550 (which can happen with what pushdecl's doing). */
6551 if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
6552 {
6553 if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
6554 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6555 else
6556 yyval.ttype = yyvsp[0].ttype;
6557 }
6558 ;
6559 break;}
6560 case 498:
6561 #line 2780 "parse.y"
6562 { ;
6563 break;}
6564 case 499:
6565 #line 2782 "parse.y"
6566 { error ("missing ';' before right brace");
6567 yyungetc ('}', 0); ;
6568 break;}
6569 case 500:
6570 #line 2787 "parse.y"
6571 { yyval.ttype = finish_method (yyval.ttype); ;
6572 break;}
6573 case 501:
6574 #line 2789 "parse.y"
6575 { yyval.ttype = finish_method (yyval.ttype); ;
6576 break;}
6577 case 502:
6578 #line 2791 "parse.y"
6579 { yyval.ttype = finish_method (yyval.ttype); ;
6580 break;}
6581 case 503:
6582 #line 2793 "parse.y"
6583 { yyval.ttype = finish_method (yyval.ttype); ;
6584 break;}
6585 case 504:
6586 #line 2795 "parse.y"
6587 { yyval.ttype = NULL_TREE; ;
6588 break;}
6589 case 505:
6590 #line 2797 "parse.y"
6591 { yyval.ttype = yyvsp[0].ttype;
6592 pedantic = yyvsp[-1].itype; ;
6593 break;}
6594 case 506:
6595 #line 2806 "parse.y"
6596 { yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6597 break;}
6598 case 507:
6599 #line 2808 "parse.y"
6600 { yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6601 break;}
6602 case 508:
6603 #line 2810 "parse.y"
6604 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6605 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6606 break;}
6607 case 509:
6608 #line 2813 "parse.y"
6609 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6610 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6611 break;}
6612 case 510:
6613 #line 2816 "parse.y"
6614 { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
6615 break;}
6616 case 511:
6617 #line 2818 "parse.y"
6618 { yyval.ttype = NULL_TREE; ;
6619 break;}
6620 case 512:
6621 #line 2829 "parse.y"
6622 { tree specs, attrs;
6623 split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
6624 yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
6625 build_tree_list (yyvsp[-1].ttype, attrs)); ;
6626 break;}
6627 case 513:
6628 #line 2834 "parse.y"
6629 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6630 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6631 break;}
6632 case 514:
6633 #line 2837 "parse.y"
6634 { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
6635 break;}
6636 case 515:
6637 #line 2839 "parse.y"
6638 { yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6639 break;}
6640 case 516:
6641 #line 2845 "parse.y"
6642 { yyval.ttype = NULL_TREE; ;
6643 break;}
6644 case 518:
6645 #line 2848 "parse.y"
6646 {
6647 /* In this context, void_type_node encodes
6648 friends. They have been recorded elsewhere. */
6649 if (yyval.ttype == void_type_node)
6650 yyval.ttype = yyvsp[0].ttype;
6651 else
6652 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6653 ;
6654 break;}
6655 case 519:
6656 #line 2860 "parse.y"
6657 { yyval.ttype = NULL_TREE; ;
6658 break;}
6659 case 521:
6660 #line 2863 "parse.y"
6661 {
6662 /* In this context, void_type_node encodes
6663 friends. They have been recorded elsewhere. */
6664 if (yyval.ttype == void_type_node)
6665 yyval.ttype = yyvsp[0].ttype;
6666 else
6667 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6668 ;
6669 break;}
6670 case 526:
6671 #line 2885 "parse.y"
6672 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6673 &prefix_attributes);
6674 yyvsp[-4].ttype = current_declspecs;
6675 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6676 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6677 break;}
6678 case 527:
6679 #line 2891 "parse.y"
6680 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6681 &prefix_attributes);
6682 yyvsp[-4].ttype = current_declspecs;
6683 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6684 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6685 break;}
6686 case 528:
6687 #line 2900 "parse.y"
6688 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6689 &prefix_attributes);
6690 yyvsp[-4].ttype = current_declspecs;
6691 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6692 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6693 break;}
6694 case 529:
6695 #line 2906 "parse.y"
6696 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6697 &prefix_attributes);
6698 yyvsp[-4].ttype = current_declspecs;
6699 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6700 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6701 break;}
6702 case 530:
6703 #line 2912 "parse.y"
6704 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6705 &prefix_attributes);
6706 yyvsp[-4].ttype = current_declspecs;
6707 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6708 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6709 break;}
6710 case 531:
6711 #line 2918 "parse.y"
6712 { split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
6713 &prefix_attributes);
6714 yyvsp[-3].ttype = current_declspecs;
6715 yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6716 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6717 break;}
6718 case 532:
6719 #line 2927 "parse.y"
6720 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6721 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6722 break;}
6723 case 533:
6724 #line 2930 "parse.y"
6725 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6726 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6727 break;}
6728 case 534:
6729 #line 2936 "parse.y"
6730 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6731 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6732 break;}
6733 case 535:
6734 #line 2939 "parse.y"
6735 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6736 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6737 break;}
6738 case 536:
6739 #line 2942 "parse.y"
6740 { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6741 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6742 break;}
6743 case 538:
6744 #line 2953 "parse.y"
6745 { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6746 break;}
6747 case 539:
6748 #line 2958 "parse.y"
6749 { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
6750 break;}
6751 case 540:
6752 #line 2960 "parse.y"
6753 { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
6754 break;}
6755 case 541:
6756 #line 2966 "parse.y"
6757 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
6758 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6759 break;}
6760 case 542:
6761 #line 2969 "parse.y"
6762 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
6763 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6764 break;}
6765 case 543:
6766 #line 2974 "parse.y"
6767 {
6768 if (pedantic)
6769 pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
6770 yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
6771 yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
6772 yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
6773 ;
6774 break;}
6775 case 544:
6776 #line 2985 "parse.y"
6777 { yyval.ttype = NULL_TREE; ;
6778 break;}
6779 case 545:
6780 #line 2987 "parse.y"
6781 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6782 break;}
6783 case 546:
6784 #line 2992 "parse.y"
6785 { yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype);
6786 yyval.ftype.new_type_flag = 0; ;
6787 break;}
6788 case 547:
6789 #line 2995 "parse.y"
6790 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t);
6791 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6792 break;}
6793 case 548:
6794 #line 3004 "parse.y"
6795 { yyval.itype = suspend_momentary (); ;
6796 break;}
6797 case 549:
6798 #line 3009 "parse.y"
6799 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
6800 break;}
6801 case 550:
6802 #line 3015 "parse.y"
6803 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6804 break;}
6805 case 551:
6806 #line 3017 "parse.y"
6807 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6808 break;}
6809 case 552:
6810 #line 3019 "parse.y"
6811 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
6812 break;}
6813 case 553:
6814 #line 3021 "parse.y"
6815 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
6816 break;}
6817 case 554:
6818 #line 3028 "parse.y"
6819 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6820 break;}
6821 case 555:
6822 #line 3030 "parse.y"
6823 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6824 break;}
6825 case 556:
6826 #line 3032 "parse.y"
6827 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6828 break;}
6829 case 557:
6830 #line 3034 "parse.y"
6831 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6832 break;}
6833 case 558:
6834 #line 3036 "parse.y"
6835 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6836 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6837 ;
6838 break;}
6839 case 560:
6840 #line 3044 "parse.y"
6841 {
6842 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6843 {
6844 yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
6845 if (current_class_type
6846 && TYPE_BEING_DEFINED (current_class_type)
6847 && ! IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype))
6848 {
6849 /* Remember that this name has been used in the class
6850 definition, as per [class.scope0] */
6851 pushdecl_class_level (yyval.ttype);
6852 }
6853 }
6854 else
6855 yyval.ttype = yyvsp[0].ttype;
6856 ;
6857 break;}
6858 case 561:
6859 #line 3061 "parse.y"
6860 {
6861 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6862 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
6863 else
6864 yyval.ttype = yyvsp[0].ttype;
6865 got_scope = NULL_TREE;
6866 ;
6867 break;}
6868 case 564:
6869 #line 3074 "parse.y"
6870 { yyval.ttype = yyvsp[0].ttype; ;
6871 break;}
6872 case 565:
6873 #line 3079 "parse.y"
6874 { yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
6875 break;}
6876 case 566:
6877 #line 3084 "parse.y"
6878 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6879 break;}
6880 case 567:
6881 #line 3086 "parse.y"
6882 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6883 break;}
6884 case 568:
6885 #line 3088 "parse.y"
6886 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6887 break;}
6888 case 569:
6889 #line 3090 "parse.y"
6890 { yyval.ttype = yyvsp[-1].ttype; ;
6891 break;}
6892 case 570:
6893 #line 3092 "parse.y"
6894 { push_nested_class (yyvsp[-1].ttype, 3);
6895 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
6896 TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
6897 break;}
6898 case 572:
6899 #line 3103 "parse.y"
6900 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6901 break;}
6902 case 573:
6903 #line 3105 "parse.y"
6904 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6905 break;}
6906 case 574:
6907 #line 3107 "parse.y"
6908 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6909 break;}
6910 case 575:
6911 #line 3109 "parse.y"
6912 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6913 break;}
6914 case 576:
6915 #line 3111 "parse.y"
6916 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6917 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6918 ;
6919 break;}
6920 case 578:
6921 #line 3119 "parse.y"
6922 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6923 break;}
6924 case 579:
6925 #line 3121 "parse.y"
6926 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6927 break;}
6928 case 580:
6929 #line 3123 "parse.y"
6930 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6931 break;}
6932 case 581:
6933 #line 3125 "parse.y"
6934 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6935 break;}
6936 case 582:
6937 #line 3127 "parse.y"
6938 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6939 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6940 ;
6941 break;}
6942 case 584:
6943 #line 3135 "parse.y"
6944 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6945 break;}
6946 case 585:
6947 #line 3137 "parse.y"
6948 { yyval.ttype = yyvsp[-1].ttype; ;
6949 break;}
6950 case 586:
6951 #line 3139 "parse.y"
6952 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6953 break;}
6954 case 587:
6955 #line 3141 "parse.y"
6956 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6957 break;}
6958 case 588:
6959 #line 3143 "parse.y"
6960 { if (OP0 (yyval.ttype) != current_class_type)
6961 {
6962 push_nested_class (OP0 (yyval.ttype), 3);
6963 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
6964 }
6965 ;
6966 break;}
6967 case 589:
6968 #line 3150 "parse.y"
6969 { got_scope = NULL_TREE;
6970 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
6971 if (yyvsp[-1].ttype != current_class_type)
6972 {
6973 push_nested_class (yyvsp[-1].ttype, 3);
6974 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
6975 }
6976 ;
6977 break;}
6978 case 590:
6979 #line 3162 "parse.y"
6980 { got_scope = NULL_TREE;
6981 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
6982 break;}
6983 case 591:
6984 #line 3165 "parse.y"
6985 { got_scope = NULL_TREE;
6986 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6987 break;}
6988 case 592:
6989 #line 3171 "parse.y"
6990 { got_scope = NULL_TREE;
6991 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
6992 break;}
6993 case 593:
6994 #line 3174 "parse.y"
6995 { got_scope = NULL_TREE;
6996 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6997 break;}
6998 case 595:
6999 #line 3181 "parse.y"
7000 { yyval.ttype = yyvsp[0].ttype; ;
7001 break;}
7002 case 596:
7003 #line 3186 "parse.y"
7004 { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7005 break;}
7006 case 597:
7007 #line 3188 "parse.y"
7008 { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7009 break;}
7010 case 598:
7011 #line 3190 "parse.y"
7012 { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7013 break;}
7014 case 603:
7015 #line 3202 "parse.y"
7016 { yyval.ttype = yyvsp[0].ttype; ;
7017 break;}
7018 case 604:
7019 #line 3209 "parse.y"
7020 {
7021 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7022 {
7023 yyval.ttype = lastiddecl;
7024 /* Remember that this name has been used in the class
7025 definition, as per [class.scope0] */
7026 if (current_class_type
7027 && TYPE_BEING_DEFINED (current_class_type)
7028 && ! IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype))
7029 pushdecl_class_level (yyval.ttype);
7030 }
7031 got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7032 ;
7033 break;}
7034 case 605:
7035 #line 3223 "parse.y"
7036 {
7037 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7038 yyval.ttype = lastiddecl;
7039 got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7040 ;
7041 break;}
7042 case 606:
7043 #line 3229 "parse.y"
7044 {
7045 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7046 yyval.ttype = lastiddecl;
7047 got_scope = yyval.ttype;
7048 ;
7049 break;}
7050 case 607:
7051 #line 3235 "parse.y"
7052 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
7053 break;}
7054 case 609:
7055 #line 3251 "parse.y"
7056 { yyval.ttype = yyvsp[0].ttype; ;
7057 break;}
7058 case 610:
7059 #line 3256 "parse.y"
7060 {
7061 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7062 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7063 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7064 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7065 else
7066 {
7067 yyval.ttype = yyvsp[0].ttype;
7068 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7069 yyval.ttype = TREE_TYPE (yyval.ttype);
7070 }
7071 ;
7072 break;}
7073 case 611:
7074 #line 3272 "parse.y"
7075 {
7076 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7077 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7078 ;
7079 break;}
7080 case 612:
7081 #line 3277 "parse.y"
7082 {
7083 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7084 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7085 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7086 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7087 else
7088 {
7089 yyval.ttype = yyvsp[0].ttype;
7090 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7091 yyval.ttype = TREE_TYPE (yyval.ttype);
7092 }
7093 ;
7094 break;}
7095 case 613:
7096 #line 3293 "parse.y"
7097 {
7098 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7099 yyvsp[-1].ttype = lastiddecl;
7100
7101 got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype));
7102
7103 if (yyval.ttype == error_mark_node)
7104 cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
7105 ;
7106 break;}
7107 case 614:
7108 #line 3303 "parse.y"
7109 {
7110 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7111 yyval.ttype = lastiddecl;
7112 got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
7113 ;
7114 break;}
7115 case 615:
7116 #line 3309 "parse.y"
7117 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
7118 break;}
7119 case 618:
7120 #line 3313 "parse.y"
7121 {
7122 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7123 yyval.ttype = lastiddecl;
7124 got_scope = yyval.ttype;
7125 ;
7126 break;}
7127 case 619:
7128 #line 3322 "parse.y"
7129 {
7130 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7131 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
7132 else
7133 yyval.ttype = yyvsp[0].ttype;
7134 got_scope = NULL_TREE;
7135 ;
7136 break;}
7137 case 621:
7138 #line 3331 "parse.y"
7139 { yyval.ttype = yyvsp[0].ttype; ;
7140 break;}
7141 case 622:
7142 #line 3336 "parse.y"
7143 { got_scope = NULL_TREE; ;
7144 break;}
7145 case 623:
7146 #line 3338 "parse.y"
7147 { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
7148 break;}
7149 case 624:
7150 #line 3345 "parse.y"
7151 { got_scope = void_type_node; ;
7152 break;}
7153 case 625:
7154 #line 3351 "parse.y"
7155 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7156 break;}
7157 case 626:
7158 #line 3353 "parse.y"
7159 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
7160 break;}
7161 case 627:
7162 #line 3355 "parse.y"
7163 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7164 break;}
7165 case 628:
7166 #line 3357 "parse.y"
7167 { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
7168 break;}
7169 case 629:
7170 #line 3359 "parse.y"
7171 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7172 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7173 ;
7174 break;}
7175 case 630:
7176 #line 3363 "parse.y"
7177 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7178 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7179 ;
7180 break;}
7181 case 632:
7182 #line 3372 "parse.y"
7183 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7184 break;}
7185 case 633:
7186 #line 3374 "parse.y"
7187 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7188 break;}
7189 case 634:
7190 #line 3380 "parse.y"
7191 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7192 break;}
7193 case 635:
7194 #line 3382 "parse.y"
7195 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7196 break;}
7197 case 636:
7198 #line 3384 "parse.y"
7199 { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7200 break;}
7201 case 637:
7202 #line 3386 "parse.y"
7203 { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
7204 break;}
7205 case 638:
7206 #line 3388 "parse.y"
7207 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7208 break;}
7209 case 639:
7210 #line 3390 "parse.y"
7211 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7212 break;}
7213 case 640:
7214 #line 3392 "parse.y"
7215 { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7216 break;}
7217 case 641:
7218 #line 3394 "parse.y"
7219 { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
7220 break;}
7221 case 642:
7222 #line 3396 "parse.y"
7223 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7224 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7225 ;
7226 break;}
7227 case 643:
7228 #line 3400 "parse.y"
7229 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7230 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7231 ;
7232 break;}
7233 case 645:
7234 #line 3409 "parse.y"
7235 { yyval.ttype = yyvsp[-1].ttype; ;
7236 break;}
7237 case 647:
7238 #line 3413 "parse.y"
7239 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7240 break;}
7241 case 648:
7242 #line 3415 "parse.y"
7243 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
7244 break;}
7245 case 649:
7246 #line 3417 "parse.y"
7247 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7248 break;}
7249 case 650:
7250 #line 3419 "parse.y"
7251 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7252 break;}
7253 case 651:
7254 #line 3421 "parse.y"
7255 { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7256 break;}
7257 case 652:
7258 #line 3423 "parse.y"
7259 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7260 break;}
7261 case 653:
7262 #line 3425 "parse.y"
7263 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7264 break;}
7265 case 654:
7266 #line 3427 "parse.y"
7267 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7268 break;}
7269 case 655:
7270 #line 3429 "parse.y"
7271 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
7272 break;}
7273 case 661:
7274 #line 3453 "parse.y"
7275 { do_pushlevel (); ;
7276 break;}
7277 case 662:
7278 #line 3458 "parse.y"
7279 { yyval.ttype = do_poplevel (); ;
7280 break;}
7281 case 664:
7282 #line 3466 "parse.y"
7283 { if (pedantic)
7284 pedwarn ("ANSI C++ forbids label declarations"); ;
7285 break;}
7286 case 667:
7287 #line 3477 "parse.y"
7288 { tree link;
7289 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
7290 {
7291 tree label = shadow_label (TREE_VALUE (link));
7292 C_DECLARED_LABEL_FLAG (label) = 1;
7293 declare_nonlocal_label (label);
7294 }
7295 ;
7296 break;}
7297 case 668:
7298 #line 3491 "parse.y"
7299 {;
7300 break;}
7301 case 670:
7302 #line 3497 "parse.y"
7303 {
7304 if (processing_template_decl)
7305 {
7306 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
7307 add_tree (yyval.ttype);
7308 }
7309 ;
7310 break;}
7311 case 671:
7312 #line 3505 "parse.y"
7313 {
7314 if (processing_template_decl)
7315 {
7316 TREE_OPERAND (yyvsp[-3].ttype, 0) = TREE_CHAIN (yyvsp[-3].ttype);
7317 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7318 last_tree = yyvsp[-3].ttype;
7319 }
7320 yyval.ttype = yyvsp[0].ttype;
7321 ;
7322 break;}
7323 case 672:
7324 #line 3518 "parse.y"
7325 {
7326 if (processing_template_decl)
7327 {
7328 yyval.ttype = build_min_nt (IF_STMT, NULL_TREE, NULL_TREE,
7329 NULL_TREE);
7330 add_tree (yyval.ttype);
7331 }
7332 cond_stmt_keyword = "if";
7333 ;
7334 break;}
7335 case 673:
7336 #line 3528 "parse.y"
7337 {
7338 if (processing_template_decl)
7339 {
7340 if (last_tree != yyvsp[-2].ttype)
7341 {
7342 TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
7343 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7344 last_tree = yyvsp[-2].ttype;
7345 }
7346 else
7347 TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
7348 }
7349 else
7350 {
7351 emit_line_note (input_filename, lineno);
7352 expand_start_cond (yyvsp[0].ttype, 0);
7353 }
7354 ;
7355 break;}
7356 case 674:
7357 #line 3547 "parse.y"
7358 {
7359 if (processing_template_decl)
7360 {
7361 TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
7362 TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
7363 yyval.ttype = last_tree = yyvsp[-4].ttype;
7364 }
7365 ;
7366 break;}
7367 case 675:
7368 #line 3559 "parse.y"
7369 { finish_stmt (); ;
7370 break;}
7371 case 676:
7372 #line 3561 "parse.y"
7373 {
7374 if (processing_template_decl)
7375 {
7376 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
7377 add_tree (yyval.ttype);
7378 }
7379 ;
7380 break;}
7381 case 677:
7382 #line 3569 "parse.y"
7383 {
7384 if (processing_template_decl)
7385 {
7386 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7387 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7388 last_tree = yyvsp[-2].ttype;
7389 }
7390 yyval.ttype = yyvsp[0].ttype;
7391 ;
7392 break;}
7393 case 678:
7394 #line 3582 "parse.y"
7395 { finish_stmt (); ;
7396 break;}
7397 case 680:
7398 #line 3588 "parse.y"
7399 { finish_stmt (); ;
7400 break;}
7401 case 681:
7402 #line 3590 "parse.y"
7403 {
7404 tree expr = yyvsp[-1].ttype;
7405 if (! processing_template_decl)
7406 {
7407 emit_line_note (input_filename, lineno);
7408 /* Do default conversion if safe and possibly important,
7409 in case within ({...}). */
7410 if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
7411 && lvalue_p (expr))
7412 || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
7413 expr = default_conversion (expr);
7414 }
7415 cplus_expand_expr_stmt (expr);
7416 clear_momentary ();
7417 finish_stmt (); ;
7418 break;}
7419 case 682:
7420 #line 3606 "parse.y"
7421 { if (! processing_template_decl) expand_start_else (); ;
7422 break;}
7423 case 683:
7424 #line 3608 "parse.y"
7425 {
7426 if (processing_template_decl)
7427 {
7428 TREE_OPERAND (yyvsp[-3].ttype, 2) = TREE_CHAIN (yyvsp[-3].ttype);
7429 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7430 last_tree = yyvsp[-3].ttype;
7431 }
7432 else
7433 expand_end_cond ();
7434 ;
7435 break;}
7436 case 684:
7437 #line 3619 "parse.y"
7438 { finish_stmt (); ;
7439 break;}
7440 case 685:
7441 #line 3621 "parse.y"
7442 { if (! processing_template_decl) expand_end_cond ();
7443 do_poplevel ();
7444 finish_stmt (); ;
7445 break;}
7446 case 686:
7447 #line 3625 "parse.y"
7448 {
7449 if (processing_template_decl)
7450 {
7451 yyval.ttype = build_min_nt (WHILE_STMT, NULL_TREE, NULL_TREE);
7452 add_tree (yyval.ttype);
7453 }
7454 else
7455 {
7456 emit_nop ();
7457 emit_line_note (input_filename, lineno);
7458 expand_start_loop (1);
7459 }
7460 cond_stmt_keyword = "while";
7461 ;
7462 break;}
7463 case 687:
7464 #line 3640 "parse.y"
7465 {
7466 if (processing_template_decl)
7467 {
7468 if (last_tree != yyvsp[-2].ttype)
7469 {
7470 TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
7471 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7472 last_tree = yyvsp[-2].ttype;
7473 }
7474 else
7475 TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
7476 }
7477 else
7478 {
7479 emit_line_note (input_filename, lineno);
7480 expand_exit_loop_if_false (0, yyvsp[0].ttype);
7481 }
7482
7483 /* If the condition wasn't a declaration, clear out the
7484 block we made for it and start a new one here so the
7485 optimization in expand_end_loop will work. */
7486 if (getdecls () == NULL_TREE)
7487 {
7488 do_poplevel ();
7489 do_pushlevel ();
7490 }
7491 ;
7492 break;}
7493 case 688:
7494 #line 3668 "parse.y"
7495 {
7496 if (processing_template_decl)
7497 {
7498 TREE_OPERAND (yyvsp[-5].ttype, 1) = TREE_CHAIN (yyvsp[-5].ttype);
7499 TREE_CHAIN (yyvsp[-5].ttype) = NULL_TREE;
7500 last_tree = yyvsp[-5].ttype;
7501 }
7502 else
7503 expand_end_loop ();
7504 finish_stmt ();
7505 ;
7506 break;}
7507 case 689:
7508 #line 3680 "parse.y"
7509 {
7510 if (processing_template_decl)
7511 {
7512 yyval.ttype = build_min_nt (DO_STMT, NULL_TREE, NULL_TREE);
7513 add_tree (yyval.ttype);
7514 }
7515 else
7516 {
7517 emit_nop ();
7518 emit_line_note (input_filename, lineno);
7519 expand_start_loop_continue_elsewhere (1);
7520 }
7521 ;
7522 break;}
7523 case 690:
7524 #line 3694 "parse.y"
7525 {
7526 if (processing_template_decl)
7527 {
7528 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7529 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7530 last_tree = yyvsp[-2].ttype;
7531 }
7532 else
7533 {
7534 expand_loop_continue_here ();
7535 cond_stmt_keyword = "do";
7536 }
7537 ;
7538 break;}
7539 case 691:
7540 #line 3708 "parse.y"
7541 {
7542 if (processing_template_decl)
7543 TREE_OPERAND (yyvsp[-5].ttype, 1) = yyvsp[-1].ttype;
7544 else
7545 {
7546 emit_line_note (input_filename, lineno);
7547 expand_exit_loop_if_false (0, yyvsp[-1].ttype);
7548 expand_end_loop ();
7549 }
7550 clear_momentary ();
7551 finish_stmt ();
7552 ;
7553 break;}
7554 case 692:
7555 #line 3721 "parse.y"
7556 { if (processing_template_decl)
7557 {
7558 yyval.ttype = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE,
7559 NULL_TREE, NULL_TREE);
7560 add_tree (yyval.ttype);
7561 }
7562 else
7563 emit_line_note (input_filename, lineno);
7564 if (flag_new_for_scope > 0)
7565 {
7566 /* Conditionalize .pushlevel */
7567 pushlevel (0);
7568 note_level_for_for ();
7569 clear_last_expr ();
7570 push_momentary ();
7571 expand_start_bindings (0);
7572 }
7573 ;
7574 break;}
7575 case 693:
7576 #line 3740 "parse.y"
7577 {
7578 if (processing_template_decl)
7579 {
7580 if (last_tree != yyvsp[-2].ttype)
7581 {
7582 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7583 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7584 last_tree = yyvsp[-2].ttype;
7585 }
7586 }
7587 else
7588 {
7589 emit_nop ();
7590 emit_line_note (input_filename, lineno);
7591 expand_start_loop_continue_elsewhere (1);
7592 }
7593 ;
7594 break;}
7595 case 694:
7596 #line 3758 "parse.y"
7597 {
7598 if (processing_template_decl)
7599 {
7600 if (last_tree != yyvsp[-6].ttype)
7601 {
7602 TREE_OPERAND (yyvsp[-6].ttype, 1) = last_tree;
7603 TREE_CHAIN (yyvsp[-6].ttype) = NULL_TREE;
7604 last_tree = yyvsp[-6].ttype;
7605 }
7606 else
7607 TREE_OPERAND (yyvsp[-6].ttype, 1) = yyvsp[-1].ttype;
7608 }
7609 else
7610 {
7611 emit_line_note (input_filename, lineno);
7612 if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, yyvsp[-1].ttype);
7613 }
7614
7615 /* If the condition wasn't a declaration, clear out the
7616 block we made for it and start a new one here so the
7617 optimization in expand_end_loop will work. */
7618 if (getdecls () == NULL_TREE)
7619 {
7620 do_poplevel ();
7621 do_pushlevel ();
7622 }
7623 ;
7624 break;}
7625 case 695:
7626 #line 3788 "parse.y"
7627 {
7628 if (processing_template_decl)
7629 TREE_OPERAND (yyvsp[-9].ttype, 2) = yyvsp[-1].ttype;
7630 push_momentary ();
7631 ;
7632 break;}
7633 case 696:
7634 #line 3794 "parse.y"
7635 {
7636 if (processing_template_decl)
7637 {
7638 TREE_OPERAND (yyvsp[-12].ttype, 3) = TREE_CHAIN (yyvsp[-12].ttype);
7639 TREE_CHAIN (yyvsp[-12].ttype) = NULL_TREE;
7640 last_tree = yyvsp[-12].ttype;
7641 }
7642 else
7643 {
7644 emit_line_note (input_filename, lineno);
7645 expand_loop_continue_here ();
7646 if (yyvsp[-4].ttype) cplus_expand_expr_stmt (yyvsp[-4].ttype);
7647 expand_end_loop ();
7648 }
7649 pop_momentary ();
7650 if (flag_new_for_scope > 0)
7651 {
7652 do_poplevel ();
7653 }
7654 finish_stmt (); ;
7655 break;}
7656 case 697:
7657 #line 3815 "parse.y"
7658 {
7659 if (processing_template_decl)
7660 {
7661 yyval.ttype = build_min_nt (SWITCH_STMT, yyvsp[-1].ttype, NULL_TREE);
7662 add_tree (yyval.ttype);
7663 }
7664 else
7665 {
7666 emit_line_note (input_filename, lineno);
7667 c_expand_start_case (yyvsp[-1].ttype);
7668 }
7669 push_switch ();
7670 /* Don't let the tree nodes for $4 be discarded by
7671 clear_momentary during the parsing of the next stmt. */
7672 push_momentary ();
7673 ;
7674 break;}
7675 case 698:
7676 #line 3832 "parse.y"
7677 {
7678 if (processing_template_decl)
7679 {
7680 TREE_OPERAND (yyvsp[-1].ttype, 1) = TREE_CHAIN (yyvsp[-1].ttype);
7681 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
7682 last_tree = yyvsp[-1].ttype;
7683 }
7684 else
7685 expand_end_case (yyvsp[-3].ttype);
7686 pop_momentary ();
7687 pop_switch ();
7688 ;
7689 break;}
7690 case 699:
7691 #line 3845 "parse.y"
7692 { finish_stmt (); ;
7693 break;}
7694 case 700:
7695 #line 3847 "parse.y"
7696 { do_case (yyvsp[-1].ttype, NULL_TREE); ;
7697 break;}
7698 case 702:
7699 #line 3850 "parse.y"
7700 { do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7701 break;}
7702 case 704:
7703 #line 3853 "parse.y"
7704 { do_case (NULL_TREE, NULL_TREE); ;
7705 break;}
7706 case 706:
7707 #line 3856 "parse.y"
7708 { emit_line_note (input_filename, lineno);
7709 if (processing_template_decl)
7710 add_tree (build_min_nt (BREAK_STMT));
7711 else if ( ! expand_exit_something ())
7712 error ("break statement not within loop or switch"); ;
7713 break;}
7714 case 707:
7715 #line 3862 "parse.y"
7716 { emit_line_note (input_filename, lineno);
7717 if (processing_template_decl)
7718 add_tree (build_min_nt (CONTINUE_STMT));
7719 else if (! expand_continue_loop (0))
7720 error ("continue statement not within a loop"); ;
7721 break;}
7722 case 708:
7723 #line 3868 "parse.y"
7724 { emit_line_note (input_filename, lineno);
7725 c_expand_return (NULL_TREE); ;
7726 break;}
7727 case 709:
7728 #line 3871 "parse.y"
7729 { emit_line_note (input_filename, lineno);
7730 c_expand_return (yyvsp[-1].ttype);
7731 finish_stmt ();
7732 ;
7733 break;}
7734 case 710:
7735 #line 3876 "parse.y"
7736 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
7737 emit_line_note (input_filename, lineno);
7738 expand_asm (yyvsp[-2].ttype);
7739 finish_stmt ();
7740 ;
7741 break;}
7742 case 711:
7743 #line 3883 "parse.y"
7744 { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
7745 emit_line_note (input_filename, lineno);
7746 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
7747 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
7748 input_filename, lineno);
7749 finish_stmt ();
7750 ;
7751 break;}
7752 case 712:
7753 #line 3892 "parse.y"
7754 { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
7755 emit_line_note (input_filename, lineno);
7756 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
7757 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
7758 input_filename, lineno);
7759 finish_stmt ();
7760 ;
7761 break;}
7762 case 713:
7763 #line 3902 "parse.y"
7764 { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
7765 emit_line_note (input_filename, lineno);
7766 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
7767 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
7768 input_filename, lineno);
7769 finish_stmt ();
7770 ;
7771 break;}
7772 case 714:
7773 #line 3910 "parse.y"
7774 {
7775 if (processing_template_decl)
7776 add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
7777 else
7778 { emit_line_note (input_filename, lineno);
7779 expand_computed_goto (yyvsp[-1].ttype); }
7780 ;
7781 break;}
7782 case 715:
7783 #line 3918 "parse.y"
7784 {
7785 if (processing_template_decl)
7786 add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
7787 else
7788 {
7789 tree decl;
7790 emit_line_note (input_filename, lineno);
7791 decl = lookup_label (yyvsp[-1].ttype);
7792 TREE_USED (decl) = 1;
7793 expand_goto (decl);
7794 }
7795 ;
7796 break;}
7797 case 716:
7798 #line 3931 "parse.y"
7799 { finish_stmt (); ;
7800 break;}
7801 case 717:
7802 #line 3933 "parse.y"
7803 { error ("label must be followed by statement");
7804 yyungetc ('}', 0);
7805 finish_stmt (); ;
7806 break;}
7807 case 718:
7808 #line 3937 "parse.y"
7809 { finish_stmt (); ;
7810 break;}
7811 case 720:
7812 #line 3943 "parse.y"
7813 {
7814 if (! current_function_parms_stored)
7815 store_parm_decls ();
7816 expand_start_early_try_stmts ();
7817 ;
7818 break;}
7819 case 721:
7820 #line 3949 "parse.y"
7821 { expand_start_all_catch (); ;
7822 break;}
7823 case 722:
7824 #line 3951 "parse.y"
7825 {
7826 int nested = (hack_decl_function_context
7827 (current_function_decl) != NULL_TREE);
7828 expand_end_all_catch ();
7829 finish_function (lineno, (int)yyvsp[-3].itype, nested);
7830 ;
7831 break;}
7832 case 723:
7833 #line 3961 "parse.y"
7834 {
7835 if (processing_template_decl)
7836 {
7837 yyval.ttype = build_min_nt (TRY_BLOCK, NULL_TREE,
7838 NULL_TREE);
7839 add_tree (yyval.ttype);
7840 }
7841 else
7842 {
7843 emit_line_note (input_filename, lineno);
7844 expand_start_try_stmts ();
7845 }
7846 ;
7847 break;}
7848 case 724:
7849 #line 3975 "parse.y"
7850 {
7851 if (processing_template_decl)
7852 {
7853 TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
7854 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
7855 last_tree = yyvsp[-1].ttype;
7856 }
7857 else
7858 expand_start_all_catch ();
7859 ;
7860 break;}
7861 case 725:
7862 #line 3986 "parse.y"
7863 {
7864 if (processing_template_decl)
7865 {
7866 TREE_OPERAND (yyvsp[-3].ttype, 1) = TREE_CHAIN (yyvsp[-3].ttype);
7867 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7868 last_tree = yyvsp[-3].ttype;
7869 }
7870 else
7871 expand_end_all_catch ();
7872 ;
7873 break;}
7874 case 728:
7875 #line 4005 "parse.y"
7876 {
7877 if (processing_template_decl)
7878 {
7879 yyval.ttype = build_min_nt (HANDLER, NULL_TREE,
7880 NULL_TREE);
7881 add_tree (yyval.ttype);
7882 }
7883 ;
7884 break;}
7885 case 729:
7886 #line 4014 "parse.y"
7887 {
7888 if (processing_template_decl)
7889 {
7890 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7891 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7892 last_tree = yyvsp[-2].ttype;
7893 }
7894 ;
7895 break;}
7896 case 730:
7897 #line 4023 "parse.y"
7898 {
7899 if (processing_template_decl)
7900 {
7901 TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
7902 TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
7903 last_tree = yyvsp[-4].ttype;
7904 }
7905 else
7906 expand_end_catch_block ();
7907 ;
7908 break;}
7909 case 734:
7910 #line 4043 "parse.y"
7911 { expand_start_catch_block (NULL_TREE, NULL_TREE); ;
7912 break;}
7913 case 735:
7914 #line 4059 "parse.y"
7915 { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
7916 expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
7917 TREE_VALUE (yyvsp[-1].ftype.t)); ;
7918 break;}
7919 case 736:
7920 #line 4066 "parse.y"
7921 { tree label;
7922 do_label:
7923 label = define_label (input_filename, lineno, yyvsp[-1].ttype);
7924 if (label && ! minimal_parse_mode)
7925 expand_label (label);
7926 ;
7927 break;}
7928 case 737:
7929 #line 4073 "parse.y"
7930 { goto do_label; ;
7931 break;}
7932 case 738:
7933 #line 4075 "parse.y"
7934 { goto do_label; ;
7935 break;}
7936 case 739:
7937 #line 4077 "parse.y"
7938 { goto do_label; ;
7939 break;}
7940 case 740:
7941 #line 4082 "parse.y"
7942 { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
7943 break;}
7944 case 742:
7945 #line 4085 "parse.y"
7946 { if (pedantic)
7947 pedwarn ("ANSI C++ forbids compound statements inside for initializations");
7948 ;
7949 break;}
7950 case 743:
7951 #line 4094 "parse.y"
7952 { emit_line_note (input_filename, lineno);
7953 yyval.ttype = NULL_TREE; ;
7954 break;}
7955 case 744:
7956 #line 4097 "parse.y"
7957 { emit_line_note (input_filename, lineno); ;
7958 break;}
7959 case 745:
7960 #line 4102 "parse.y"
7961 { yyval.ttype = NULL_TREE; ;
7962 break;}
7963 case 747:
7964 #line 4105 "parse.y"
7965 { yyval.ttype = NULL_TREE; ;
7966 break;}
7967 case 748:
7968 #line 4112 "parse.y"
7969 { yyval.ttype = NULL_TREE; ;
7970 break;}
7971 case 751:
7972 #line 4119 "parse.y"
7973 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
7974 break;}
7975 case 752:
7976 #line 4124 "parse.y"
7977 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
7978 break;}
7979 case 753:
7980 #line 4129 "parse.y"
7981 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
7982 break;}
7983 case 754:
7984 #line 4131 "parse.y"
7985 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
7986 break;}
7987 case 755:
7988 #line 4142 "parse.y"
7989 {
7990 yyval.ttype = empty_parms();
7991 ;
7992 break;}
7993 case 757:
7994 #line 4147 "parse.y"
7995 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, void_list_node);
7996 TREE_PARMLIST (yyval.ttype) = 1;
7997 check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
7998 break;}
7999 case 758:
8000 #line 4156 "parse.y"
8001 {
8002 yyval.ttype = chainon (yyval.ttype, void_list_node);
8003 TREE_PARMLIST (yyval.ttype) = 1;
8004 ;
8005 break;}
8006 case 759:
8007 #line 4161 "parse.y"
8008 {
8009 TREE_PARMLIST (yyval.ttype) = 1;
8010 ;
8011 break;}
8012 case 760:
8013 #line 4166 "parse.y"
8014 {
8015 TREE_PARMLIST (yyval.ttype) = 1;
8016 ;
8017 break;}
8018 case 761:
8019 #line 4170 "parse.y"
8020 {
8021 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
8022 TREE_PARMLIST (yyval.ttype) = 1;
8023 ;
8024 break;}
8025 case 762:
8026 #line 4175 "parse.y"
8027 {
8028 yyval.ttype = NULL_TREE;
8029 ;
8030 break;}
8031 case 763:
8032 #line 4179 "parse.y"
8033 {
8034 TREE_PARMLIST (yyval.ttype) = 1;
8035 ;
8036 break;}
8037 case 764:
8038 #line 4183 "parse.y"
8039 {
8040 TREE_PARMLIST (yyval.ttype) = 1;
8041 ;
8042 break;}
8043 case 765:
8044 #line 4187 "parse.y"
8045 {
8046 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
8047 TREE_PARMLIST (yyval.ttype) = 1;
8048 ;
8049 break;}
8050 case 766:
8051 #line 4192 "parse.y"
8052 {
8053 /* This helps us recover from really nasty
8054 parse errors, for example, a missing right
8055 parenthesis. */
8056 yyerror ("possibly missing ')'");
8057 yyval.ttype = chainon (yyval.ttype, void_list_node);
8058 TREE_PARMLIST (yyval.ttype) = 1;
8059 yyungetc (':', 0);
8060 yychar = ')';
8061 ;
8062 break;}
8063 case 767:
8064 #line 4203 "parse.y"
8065 {
8066 /* This helps us recover from really nasty
8067 parse errors, for example, a missing right
8068 parenthesis. */
8069 yyerror ("possibly missing ')'");
8070 yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
8071 TREE_PARMLIST (yyval.ttype) = 1;
8072 yyungetc (':', 0);
8073 yychar = ')';
8074 ;
8075 break;}
8076 case 768:
8077 #line 4218 "parse.y"
8078 { maybe_snarf_defarg (); ;
8079 break;}
8080 case 769:
8081 #line 4220 "parse.y"
8082 { yyval.ttype = yyvsp[0].ttype; ;
8083 break;}
8084 case 772:
8085 #line 4231 "parse.y"
8086 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8087 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
8088 break;}
8089 case 773:
8090 #line 4234 "parse.y"
8091 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8092 yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
8093 break;}
8094 case 774:
8095 #line 4237 "parse.y"
8096 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8097 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
8098 break;}
8099 case 775:
8100 #line 4240 "parse.y"
8101 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
8102 break;}
8103 case 776:
8104 #line 4242 "parse.y"
8105 { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
8106 break;}
8107 case 778:
8108 #line 4248 "parse.y"
8109 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8110 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
8111 break;}
8112 case 779:
8113 #line 4258 "parse.y"
8114 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8115 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
8116 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
8117 break;}
8118 case 780:
8119 #line 4262 "parse.y"
8120 { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
8121 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8122 break;}
8123 case 781:
8124 #line 4265 "parse.y"
8125 { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
8126 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8127 break;}
8128 case 782:
8129 #line 4268 "parse.y"
8130 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8131 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
8132 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8133 break;}
8134 case 783:
8135 #line 4272 "parse.y"
8136 { tree specs = strip_attrs (yyvsp[0].ftype.t);
8137 yyval.ftype.t = build_tree_list (specs, NULL_TREE);
8138 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
8139 break;}
8140 case 784:
8141 #line 4276 "parse.y"
8142 { tree specs = strip_attrs (yyvsp[-1].ttype);
8143 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
8144 yyval.ftype.new_type_flag = 0; ;
8145 break;}
8146 case 785:
8147 #line 4283 "parse.y"
8148 { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
8149 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
8150 break;}
8151 case 786:
8152 #line 4286 "parse.y"
8153 { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
8154 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8155 break;}
8156 case 789:
8157 #line 4297 "parse.y"
8158 { see_typename (); ;
8159 break;}
8160 case 790:
8161 #line 4302 "parse.y"
8162 {
8163 error ("type specifier omitted for parameter");
8164 yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
8165 ;
8166 break;}
8167 case 791:
8168 #line 4307 "parse.y"
8169 {
8170 error ("type specifier omitted for parameter");
8171 if (TREE_CODE (yyval.ttype) == SCOPE_REF
8172 && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
8173 || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
8174 cp_error (" perhaps you want `typename %E' to make it a type", yyval.ttype);
8175 yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
8176 ;
8177 break;}
8178 case 792:
8179 #line 4319 "parse.y"
8180 { yyval.ttype = NULL_TREE; ;
8181 break;}
8182 case 793:
8183 #line 4321 "parse.y"
8184 { yyval.ttype = yyvsp[-1].ttype; ;
8185 break;}
8186 case 794:
8187 #line 4323 "parse.y"
8188 { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
8189 break;}
8190 case 795:
8191 #line 4328 "parse.y"
8192 { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
8193 break;}
8194 case 797:
8195 #line 4334 "parse.y"
8196 {
8197 TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
8198 yyval.ttype = yyvsp[0].ttype;
8199 ;
8200 break;}
8201 case 798:
8202 #line 4342 "parse.y"
8203 { yyval.ttype = NULL_TREE; ;
8204 break;}
8205 case 799:
8206 #line 4344 "parse.y"
8207 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8208 break;}
8209 case 800:
8210 #line 4346 "parse.y"
8211 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8212 break;}
8213 case 801:
8214 #line 4348 "parse.y"
8215 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
8216 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
8217 ;
8218 break;}
8219 case 802:
8220 #line 4355 "parse.y"
8221 { got_scope = NULL_TREE; ;
8222 break;}
8223 case 803:
8224 #line 4360 "parse.y"
8225 { yyval.ttype = ansi_opname[MULT_EXPR]; ;
8226 break;}
8227 case 804:
8228 #line 4362 "parse.y"
8229 { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
8230 break;}
8231 case 805:
8232 #line 4364 "parse.y"
8233 { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
8234 break;}
8235 case 806:
8236 #line 4366 "parse.y"
8237 { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
8238 break;}
8239 case 807:
8240 #line 4368 "parse.y"
8241 { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
8242 break;}
8243 case 808:
8244 #line 4370 "parse.y"
8245 { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
8246 break;}
8247 case 809:
8248 #line 4372 "parse.y"
8249 { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
8250 break;}
8251 case 810:
8252 #line 4374 "parse.y"
8253 { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
8254 break;}
8255 case 811:
8256 #line 4376 "parse.y"
8257 { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
8258 break;}
8259 case 812:
8260 #line 4378 "parse.y"
8261 { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
8262 break;}
8263 case 813:
8264 #line 4380 "parse.y"
8265 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8266 break;}
8267 case 814:
8268 #line 4382 "parse.y"
8269 { yyval.ttype = ansi_opname[LT_EXPR]; ;
8270 break;}
8271 case 815:
8272 #line 4384 "parse.y"
8273 { yyval.ttype = ansi_opname[GT_EXPR]; ;
8274 break;}
8275 case 816:
8276 #line 4386 "parse.y"
8277 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8278 break;}
8279 case 817:
8280 #line 4388 "parse.y"
8281 { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
8282 break;}
8283 case 818:
8284 #line 4390 "parse.y"
8285 { yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
8286 break;}
8287 case 819:
8288 #line 4392 "parse.y"
8289 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8290 break;}
8291 case 820:
8292 #line 4394 "parse.y"
8293 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8294 break;}
8295 case 821:
8296 #line 4396 "parse.y"
8297 { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
8298 break;}
8299 case 822:
8300 #line 4398 "parse.y"
8301 { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
8302 break;}
8303 case 823:
8304 #line 4400 "parse.y"
8305 { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
8306 break;}
8307 case 824:
8308 #line 4402 "parse.y"
8309 { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
8310 break;}
8311 case 825:
8312 #line 4404 "parse.y"
8313 { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
8314 break;}
8315 case 826:
8316 #line 4406 "parse.y"
8317 { yyval.ttype = ansi_opname[COND_EXPR]; ;
8318 break;}
8319 case 827:
8320 #line 4408 "parse.y"
8321 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8322 break;}
8323 case 828:
8324 #line 4410 "parse.y"
8325 { yyval.ttype = ansi_opname[COMPONENT_REF]; ;
8326 break;}
8327 case 829:
8328 #line 4412 "parse.y"
8329 { yyval.ttype = ansi_opname[MEMBER_REF]; ;
8330 break;}
8331 case 830:
8332 #line 4414 "parse.y"
8333 { yyval.ttype = ansi_opname[CALL_EXPR]; ;
8334 break;}
8335 case 831:
8336 #line 4416 "parse.y"
8337 { yyval.ttype = ansi_opname[ARRAY_REF]; ;
8338 break;}
8339 case 832:
8340 #line 4418 "parse.y"
8341 { yyval.ttype = ansi_opname[NEW_EXPR]; ;
8342 break;}
8343 case 833:
8344 #line 4420 "parse.y"
8345 { yyval.ttype = ansi_opname[DELETE_EXPR]; ;
8346 break;}
8347 case 834:
8348 #line 4422 "parse.y"
8349 { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
8350 break;}
8351 case 835:
8352 #line 4424 "parse.y"
8353 { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
8354 break;}
8355 case 836:
8356 #line 4427 "parse.y"
8357 { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
8358 break;}
8359 case 837:
8360 #line 4429 "parse.y"
8361 { yyval.ttype = ansi_opname[ERROR_MARK]; ;
8362 break;}
8363 }
8364 /* the action file gets copied in in place of this dollarsign */
8365 #line 498 "/usr/lib/bison.simple"
8366 \f
8367 yyvsp -= yylen;
8368 yyssp -= yylen;
8369 #ifdef YYLSP_NEEDED
8370 yylsp -= yylen;
8371 #endif
8372
8373 #if YYDEBUG != 0
8374 if (yydebug)
8375 {
8376 short *ssp1 = yyss - 1;
8377 fprintf (stderr, "state stack now");
8378 while (ssp1 != yyssp)
8379 fprintf (stderr, " %d", *++ssp1);
8380 fprintf (stderr, "\n");
8381 }
8382 #endif
8383
8384 *++yyvsp = yyval;
8385
8386 #ifdef YYLSP_NEEDED
8387 yylsp++;
8388 if (yylen == 0)
8389 {
8390 yylsp->first_line = yylloc.first_line;
8391 yylsp->first_column = yylloc.first_column;
8392 yylsp->last_line = (yylsp-1)->last_line;
8393 yylsp->last_column = (yylsp-1)->last_column;
8394 yylsp->text = 0;
8395 }
8396 else
8397 {
8398 yylsp->last_line = (yylsp+yylen-1)->last_line;
8399 yylsp->last_column = (yylsp+yylen-1)->last_column;
8400 }
8401 #endif
8402
8403 /* Now "shift" the result of the reduction.
8404 Determine what state that goes to,
8405 based on the state we popped back to
8406 and the rule number reduced by. */
8407
8408 yyn = yyr1[yyn];
8409
8410 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
8411 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8412 yystate = yytable[yystate];
8413 else
8414 yystate = yydefgoto[yyn - YYNTBASE];
8415
8416 goto yynewstate;
8417
8418 yyerrlab: /* here on detecting error */
8419
8420 if (! yyerrstatus)
8421 /* If not already recovering from an error, report this error. */
8422 {
8423 ++yynerrs;
8424
8425 #ifdef YYERROR_VERBOSE
8426 yyn = yypact[yystate];
8427
8428 if (yyn > YYFLAG && yyn < YYLAST)
8429 {
8430 int size = 0;
8431 char *msg;
8432 int x, count;
8433
8434 count = 0;
8435 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
8436 for (x = (yyn < 0 ? -yyn : 0);
8437 x < (sizeof(yytname) / sizeof(char *)); x++)
8438 if (yycheck[x + yyn] == x)
8439 size += strlen(yytname[x]) + 15, count++;
8440 msg = (char *) malloc(size + 15);
8441 if (msg != 0)
8442 {
8443 strcpy(msg, "parse error");
8444
8445 if (count < 5)
8446 {
8447 count = 0;
8448 for (x = (yyn < 0 ? -yyn : 0);
8449 x < (sizeof(yytname) / sizeof(char *)); x++)
8450 if (yycheck[x + yyn] == x)
8451 {
8452 strcat(msg, count == 0 ? ", expecting `" : " or `");
8453 strcat(msg, yytname[x]);
8454 strcat(msg, "'");
8455 count++;
8456 }
8457 }
8458 yyerror(msg);
8459 free(msg);
8460 }
8461 else
8462 yyerror ("parse error; also virtual memory exceeded");
8463 }
8464 else
8465 #endif /* YYERROR_VERBOSE */
8466 yyerror("parse error");
8467 }
8468
8469 goto yyerrlab1;
8470 yyerrlab1: /* here on error raised explicitly by an action */
8471
8472 if (yyerrstatus == 3)
8473 {
8474 /* if just tried and failed to reuse lookahead token after an error, discard it. */
8475
8476 /* return failure if at end of input */
8477 if (yychar == YYEOF)
8478 YYABORT;
8479
8480 #if YYDEBUG != 0
8481 if (yydebug)
8482 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
8483 #endif
8484
8485 yychar = YYEMPTY;
8486 }
8487
8488 /* Else will try to reuse lookahead token
8489 after shifting the error token. */
8490
8491 yyerrstatus = 3; /* Each real token shifted decrements this */
8492
8493 goto yyerrhandle;
8494
8495 yyerrdefault: /* current state does not do anything special for the error token. */
8496
8497 #if 0
8498 /* This is wrong; only states that explicitly want error tokens
8499 should shift them. */
8500 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
8501 if (yyn) goto yydefault;
8502 #endif
8503
8504 yyerrpop: /* pop the current state because it cannot handle the error token */
8505
8506 if (yyssp == yyss) YYABORT;
8507 yyvsp--;
8508 yystate = *--yyssp;
8509 #ifdef YYLSP_NEEDED
8510 yylsp--;
8511 #endif
8512
8513 #if YYDEBUG != 0
8514 if (yydebug)
8515 {
8516 short *ssp1 = yyss - 1;
8517 fprintf (stderr, "Error: state stack now");
8518 while (ssp1 != yyssp)
8519 fprintf (stderr, " %d", *++ssp1);
8520 fprintf (stderr, "\n");
8521 }
8522 #endif
8523
8524 yyerrhandle:
8525
8526 yyn = yypact[yystate];
8527 if (yyn == YYFLAG)
8528 goto yyerrdefault;
8529
8530 yyn += YYTERROR;
8531 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
8532 goto yyerrdefault;
8533
8534 yyn = yytable[yyn];
8535 if (yyn < 0)
8536 {
8537 if (yyn == YYFLAG)
8538 goto yyerrpop;
8539 yyn = -yyn;
8540 goto yyreduce;
8541 }
8542 else if (yyn == 0)
8543 goto yyerrpop;
8544
8545 if (yyn == YYFINAL)
8546 YYACCEPT;
8547
8548 #if YYDEBUG != 0
8549 if (yydebug)
8550 fprintf(stderr, "Shifting error token, ");
8551 #endif
8552
8553 *++yyvsp = yylval;
8554 #ifdef YYLSP_NEEDED
8555 *++yylsp = yylloc;
8556 #endif
8557
8558 yystate = yyn;
8559 goto yynewstate;
8560 }
8561 #line 4432 "parse.y"
8562
8563
8564 #ifdef SPEW_DEBUG
8565 const char *
8566 debug_yytranslate (value)
8567 int value;
8568 {
8569 return yytname[YYTRANSLATE (value)];
8570 }
8571
8572 #endif