5f2e32965c355ae0c41527079bb1fff9ff956c1a
[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 /* If nonzero, we try to treat TEMPLATE_DECL as argument in template
143 template parameter. */
144 static int processing_template_arg;
145
146 extern int arg_looking_for_template;
147
148 static tree empty_parms PROTO((void));
149
150 /* Nonzero if we have an `extern "C"' acting as an extern specifier. */
151 int have_extern_spec;
152 int used_extern_spec;
153
154 /* Cons up an empty parameter list. */
155 #ifdef __GNUC__
156 __inline
157 #endif
158 static tree
159 empty_parms ()
160 {
161 tree parms;
162
163 if (strict_prototype
164 || current_class_type != NULL)
165 parms = void_list_node;
166 else
167 parms = NULL_TREE;
168 return parms;
169 }
170
171
172 #line 107 "parse.y"
173 typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
174 #line 296 "parse.y"
175
176 /* List of types and structure classes of the current declaration. */
177 static tree current_declspecs = NULL_TREE;
178 /* List of prefix attributes in effect.
179 Prefix attributes are parsed by the reserved_declspecs and declmods
180 rules. They create a list that contains *both* declspecs and attrs. */
181 /* ??? It is not clear yet that all cases where an attribute can now appear in
182 a declspec list have been updated. */
183 static tree prefix_attributes = NULL_TREE;
184
185 /* When defining an aggregate, this is the most recent one being defined. */
186 static tree current_aggr;
187
188 /* Tell yyparse how to print a token's value, if yydebug is set. */
189
190 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
191 extern void yyprint PROTO((FILE *, int, YYSTYPE));
192 extern tree combine_strings PROTO((tree));
193 #include <stdio.h>
194
195 #ifndef __cplusplus
196 #ifndef __STDC__
197 #define const
198 #endif
199 #endif
200
201
202
203 #define YYFINAL 1554
204 #define YYFLAG -32768
205 #define YYNTBASE 114
206
207 #define YYTRANSLATE(x) ((unsigned)(x) <= 344 ? yytranslate[x] : 391)
208
209 static const char yytranslate[] = { 0,
210 2, 2, 2, 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 2, 2, 112, 2, 2, 2, 83, 71, 2, 94,
214 110, 81, 79, 60, 80, 93, 82, 2, 2, 2,
215 2, 2, 2, 2, 2, 2, 2, 63, 61, 75,
216 65, 76, 66, 2, 2, 2, 2, 2, 2, 2,
217 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
218 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
219 95, 2, 113, 70, 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, 59, 69, 111, 89, 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, 2, 2, 2, 2, 2,
230 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
231 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
232 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
233 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
234 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
235 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
236 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
237 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
238 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
239 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
240 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
241 56, 57, 58, 62, 64, 67, 68, 72, 73, 74,
242 77, 78, 84, 85, 86, 87, 88, 90, 91, 92,
243 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
244 106, 107, 108, 109
245 };
246
247 #if YYDEBUG != 0
248 static const short yyprhs[] = { 0,
249 0, 1, 3, 4, 7, 10, 12, 13, 14, 15,
250 17, 19, 21, 22, 25, 28, 30, 32, 38, 43,
251 49, 54, 55, 62, 63, 69, 75, 78, 83, 86,
252 89, 93, 97, 99, 101, 104, 107, 109, 112, 113,
253 119, 123, 125, 129, 131, 132, 135, 138, 142, 144,
254 148, 150, 154, 156, 160, 163, 166, 169, 173, 177,
255 180, 183, 186, 189, 192, 194, 196, 198, 199, 201,
256 204, 205, 207, 212, 216, 220, 221, 230, 236, 237,
257 247, 254, 255, 264, 270, 271, 281, 288, 291, 294,
258 296, 299, 301, 308, 313, 320, 325, 328, 330, 333,
259 336, 338, 341, 343, 346, 349, 352, 357, 360, 364,
260 365, 366, 368, 372, 375, 379, 381, 386, 389, 394,
261 397, 402, 405, 407, 409, 411, 413, 415, 417, 419,
262 421, 423, 425, 427, 428, 435, 436, 443, 444, 450,
263 451, 457, 458, 466, 467, 475, 476, 483, 484, 491,
264 492, 493, 498, 503, 505, 510, 512, 514, 515, 517,
265 519, 523, 524, 527, 529, 531, 533, 535, 537, 539,
266 541, 543, 545, 547, 551, 553, 557, 558, 560, 562,
267 563, 571, 573, 575, 579, 584, 588, 589, 593, 595,
268 599, 603, 607, 611, 613, 615, 617, 620, 623, 626,
269 629, 632, 635, 638, 643, 646, 651, 654, 658, 662,
270 667, 672, 678, 684, 691, 694, 699, 705, 708, 711,
271 715, 719, 723, 725, 729, 732, 736, 741, 743, 746,
272 752, 754, 758, 762, 766, 770, 774, 778, 782, 786,
273 790, 794, 798, 802, 806, 810, 814, 818, 822, 826,
274 830, 836, 840, 844, 846, 849, 853, 855, 857, 859,
275 861, 863, 864, 870, 876, 882, 888, 894, 896, 898,
276 900, 902, 905, 908, 912, 917, 922, 924, 926, 928,
277 932, 934, 936, 938, 940, 944, 948, 952, 953, 958,
278 963, 966, 971, 974, 977, 979, 984, 986, 994, 1002,
279 1010, 1018, 1023, 1028, 1031, 1034, 1036, 1041, 1044, 1047,
280 1053, 1057, 1060, 1063, 1069, 1073, 1079, 1083, 1088, 1095,
281 1098, 1100, 1103, 1105, 1108, 1110, 1112, 1114, 1117, 1118,
282 1121, 1124, 1128, 1132, 1136, 1139, 1142, 1145, 1147, 1149,
283 1151, 1154, 1157, 1160, 1163, 1165, 1167, 1169, 1171, 1174,
284 1177, 1181, 1185, 1189, 1194, 1196, 1199, 1202, 1205, 1207,
285 1209, 1211, 1214, 1217, 1220, 1222, 1224, 1227, 1230, 1234,
286 1236, 1239, 1241, 1243, 1245, 1250, 1255, 1260, 1265, 1267,
287 1269, 1271, 1273, 1277, 1279, 1283, 1285, 1289, 1290, 1295,
288 1296, 1303, 1307, 1308, 1315, 1319, 1320, 1327, 1331, 1332,
289 1339, 1343, 1344, 1346, 1348, 1351, 1358, 1360, 1364, 1365,
290 1367, 1372, 1379, 1384, 1386, 1388, 1390, 1392, 1394, 1398,
291 1399, 1402, 1404, 1407, 1411, 1416, 1418, 1420, 1424, 1429,
292 1436, 1440, 1446, 1448, 1453, 1457, 1461, 1462, 1466, 1470,
293 1474, 1475, 1478, 1481, 1482, 1490, 1495, 1496, 1503, 1507,
294 1510, 1513, 1516, 1517, 1518, 1528, 1530, 1531, 1533, 1534,
295 1536, 1538, 1541, 1544, 1547, 1550, 1553, 1556, 1560, 1565,
296 1569, 1572, 1576, 1577, 1579, 1583, 1586, 1589, 1591, 1593,
297 1594, 1597, 1601, 1603, 1608, 1610, 1614, 1616, 1618, 1623,
298 1628, 1631, 1634, 1638, 1642, 1644, 1645, 1647, 1650, 1655,
299 1659, 1661, 1664, 1667, 1670, 1673, 1676, 1679, 1682, 1684,
300 1687, 1690, 1693, 1698, 1703, 1706, 1708, 1714, 1719, 1721,
301 1724, 1725, 1727, 1731, 1732, 1734, 1738, 1740, 1742, 1744,
302 1746, 1751, 1756, 1761, 1766, 1771, 1775, 1780, 1785, 1790,
303 1795, 1799, 1801, 1805, 1807, 1811, 1814, 1816, 1823, 1824,
304 1827, 1829, 1832, 1833, 1836, 1841, 1846, 1849, 1854, 1858,
305 1862, 1865, 1868, 1872, 1874, 1876, 1879, 1881, 1883, 1886,
306 1889, 1894, 1899, 1903, 1907, 1910, 1912, 1916, 1920, 1923,
307 1926, 1930, 1932, 1936, 1940, 1943, 1946, 1950, 1952, 1957,
308 1961, 1966, 1970, 1972, 1975, 1978, 1981, 1984, 1987, 1989,
309 1992, 1997, 2002, 2005, 2007, 2009, 2011, 2013, 2016, 2019,
310 2022, 2025, 2028, 2030, 2033, 2036, 2038, 2041, 2044, 2047,
311 2050, 2053, 2056, 2059, 2062, 2064, 2067, 2070, 2074, 2076,
312 2080, 2083, 2087, 2090, 2093, 2097, 2099, 2103, 2108, 2112,
313 2115, 2118, 2120, 2124, 2127, 2130, 2132, 2135, 2139, 2141,
314 2145, 2147, 2154, 2159, 2164, 2168, 2174, 2178, 2182, 2186,
315 2189, 2191, 2193, 2196, 2199, 2202, 2203, 2204, 2205, 2207,
316 2209, 2212, 2216, 2218, 2221, 2222, 2228, 2229, 2230, 2237,
317 2239, 2240, 2245, 2247, 2249, 2251, 2254, 2255, 2256, 2263,
318 2265, 2266, 2267, 2275, 2276, 2277, 2285, 2286, 2287, 2288,
319 2289, 2304, 2305, 2306, 2316, 2317, 2323, 2324, 2332, 2333,
320 2338, 2341, 2344, 2347, 2351, 2358, 2367, 2378, 2391, 2396,
321 2400, 2403, 2406, 2408, 2410, 2411, 2412, 2419, 2420, 2421,
322 2427, 2429, 2432, 2433, 2434, 2435, 2444, 2446, 2448, 2452,
323 2456, 2459, 2462, 2465, 2468, 2471, 2473, 2476, 2477, 2479,
324 2480, 2482, 2484, 2485, 2487, 2489, 2493, 2498, 2500, 2504,
325 2505, 2507, 2509, 2511, 2514, 2517, 2520, 2522, 2524, 2527,
326 2530, 2533, 2536, 2537, 2541, 2543, 2545, 2547, 2550, 2553,
327 2556, 2561, 2564, 2567, 2570, 2573, 2576, 2579, 2581, 2584,
328 2586, 2589, 2591, 2593, 2594, 2595, 2597, 2598, 2603, 2606,
329 2608, 2610, 2614, 2615, 2619, 2623, 2627, 2629, 2632, 2635,
330 2638, 2641, 2644, 2647, 2650, 2653, 2656, 2659, 2662, 2665,
331 2668, 2671, 2674, 2677, 2680, 2683, 2686, 2689, 2692, 2695,
332 2698, 2702, 2705, 2708, 2711, 2714, 2718, 2721, 2724, 2729,
333 2734, 2738
334 };
335
336 static const short yyrhs[] = { -1,
337 115, 0, 0, 116, 122, 0, 115, 122, 0, 115,
338 0, 0, 0, 0, 33, 0, 27, 0, 28, 0,
339 0, 123, 124, 0, 142, 141, 0, 138, 0, 137,
340 0, 121, 94, 210, 110, 61, 0, 129, 59, 117,
341 111, 0, 129, 118, 142, 119, 141, 0, 129, 118,
342 138, 119, 0, 0, 45, 157, 59, 125, 117, 111,
343 0, 0, 45, 59, 126, 117, 111, 0, 45, 157,
344 65, 128, 61, 0, 127, 61, 0, 47, 45, 128,
345 61, 0, 120, 124, 0, 47, 302, 0, 47, 315,
346 302, 0, 47, 315, 201, 0, 201, 0, 302, 0,
347 315, 302, 0, 315, 201, 0, 100, 0, 129, 100,
348 0, 0, 49, 75, 131, 132, 76, 0, 49, 75,
349 76, 0, 136, 0, 132, 60, 136, 0, 157, 0,
350 0, 259, 133, 0, 46, 133, 0, 130, 259, 133,
351 0, 134, 0, 134, 65, 216, 0, 382, 0, 382,
352 65, 196, 0, 135, 0, 135, 65, 57, 0, 130,
353 124, 0, 130, 1, 0, 227, 61, 0, 220, 226,
354 61, 0, 217, 225, 61, 0, 220, 61, 0, 160,
355 61, 0, 217, 61, 0, 1, 61, 0, 1, 111,
356 0, 61, 0, 211, 0, 153, 0, 0, 152, 0,
357 152, 61, 0, 0, 109, 0, 148, 140, 139, 327,
358 0, 148, 140, 352, 0, 148, 140, 1, 0, 0,
359 307, 5, 94, 144, 373, 110, 289, 385, 0, 307,
360 5, 48, 289, 385, 0, 0, 315, 307, 5, 94,
361 145, 373, 110, 289, 385, 0, 315, 307, 5, 48,
362 289, 385, 0, 0, 307, 172, 94, 146, 373, 110,
363 289, 385, 0, 307, 172, 48, 289, 385, 0, 0,
364 315, 307, 172, 94, 147, 373, 110, 289, 385, 0,
365 315, 307, 172, 48, 289, 385, 0, 217, 214, 0,
366 220, 299, 0, 299, 0, 220, 143, 0, 143, 0,
367 5, 94, 373, 110, 289, 385, 0, 5, 48, 289,
368 385, 0, 172, 94, 373, 110, 289, 385, 0, 172,
369 48, 289, 385, 0, 220, 149, 0, 149, 0, 217,
370 214, 0, 220, 299, 0, 299, 0, 220, 143, 0,
371 143, 0, 130, 150, 0, 25, 3, 0, 151, 244,
372 0, 151, 94, 190, 110, 0, 151, 48, 0, 63,
373 154, 155, 0, 0, 0, 156, 0, 155, 60, 156,
374 0, 155, 1, 0, 94, 190, 110, 0, 48, 0,
375 158, 94, 190, 110, 0, 158, 48, 0, 295, 94,
376 190, 110, 0, 295, 48, 0, 309, 94, 190, 110,
377 0, 309, 48, 0, 3, 0, 4, 0, 5, 0,
378 57, 0, 58, 0, 3, 0, 57, 0, 58, 0,
379 106, 0, 105, 0, 107, 0, 0, 49, 169, 223,
380 61, 161, 170, 0, 0, 49, 169, 217, 214, 162,
381 170, 0, 0, 49, 169, 299, 163, 170, 0, 0,
382 49, 169, 143, 164, 170, 0, 0, 7, 49, 169,
383 223, 61, 165, 170, 0, 0, 7, 49, 169, 217,
384 214, 166, 170, 0, 0, 7, 49, 169, 299, 167,
385 170, 0, 0, 7, 49, 169, 143, 168, 170, 0,
386 0, 0, 57, 75, 174, 173, 0, 4, 75, 174,
387 173, 0, 172, 0, 5, 75, 174, 173, 0, 76,
388 0, 78, 0, 0, 175, 0, 176, 0, 175, 60,
389 176, 0, 0, 177, 178, 0, 216, 0, 196, 0,
390 80, 0, 79, 0, 87, 0, 88, 0, 112, 0,
391 189, 0, 196, 0, 48, 0, 94, 180, 110, 0,
392 48, 0, 94, 184, 110, 0, 0, 184, 0, 1,
393 0, 0, 363, 214, 228, 237, 65, 185, 245, 0,
394 180, 0, 111, 0, 324, 320, 111, 0, 324, 320,
395 1, 111, 0, 324, 1, 111, 0, 0, 59, 188,
396 186, 0, 336, 0, 196, 60, 196, 0, 196, 60,
397 1, 0, 189, 60, 196, 0, 189, 60, 1, 0,
398 196, 0, 189, 0, 205, 0, 120, 195, 0, 81,
399 195, 0, 71, 195, 0, 89, 195, 0, 179, 195,
400 0, 68, 157, 0, 13, 191, 0, 13, 94, 216,
401 110, 0, 30, 191, 0, 30, 94, 216, 110, 0,
402 207, 288, 0, 207, 288, 193, 0, 207, 192, 288,
403 0, 207, 192, 288, 193, 0, 207, 94, 216, 110,
404 0, 207, 94, 216, 110, 193, 0, 207, 192, 94,
405 216, 110, 0, 207, 192, 94, 216, 110, 193, 0,
406 208, 195, 0, 208, 95, 113, 195, 0, 208, 95,
407 180, 113, 195, 0, 35, 195, 0, 36, 195, 0,
408 94, 190, 110, 0, 59, 190, 111, 0, 94, 190,
409 110, 0, 48, 0, 94, 223, 110, 0, 65, 245,
410 0, 94, 216, 110, 0, 194, 94, 216, 110, 0,
411 191, 0, 194, 191, 0, 194, 59, 246, 257, 111,
412 0, 195, 0, 196, 84, 196, 0, 196, 85, 196,
413 0, 196, 79, 196, 0, 196, 80, 196, 0, 196,
414 81, 196, 0, 196, 82, 196, 0, 196, 83, 196,
415 0, 196, 77, 196, 0, 196, 78, 196, 0, 196,
416 74, 196, 0, 196, 75, 196, 0, 196, 76, 196,
417 0, 196, 73, 196, 0, 196, 72, 196, 0, 196,
418 71, 196, 0, 196, 69, 196, 0, 196, 70, 196,
419 0, 196, 68, 196, 0, 196, 67, 196, 0, 196,
420 66, 368, 63, 196, 0, 196, 65, 196, 0, 196,
421 64, 196, 0, 62, 0, 62, 196, 0, 89, 383,
422 157, 0, 199, 0, 390, 0, 3, 0, 57, 0,
423 58, 0, 0, 6, 75, 198, 174, 173, 0, 390,
424 75, 198, 174, 173, 0, 49, 157, 75, 174, 173,
425 0, 49, 6, 75, 174, 173, 0, 49, 390, 75,
426 174, 173, 0, 197, 0, 4, 0, 5, 0, 197,
427 0, 81, 202, 0, 71, 202, 0, 94, 202, 110,
428 0, 3, 75, 174, 173, 0, 58, 75, 175, 173,
429 0, 301, 0, 197, 0, 203, 0, 94, 202, 110,
430 0, 197, 0, 10, 0, 209, 0, 210, 0, 94,
431 180, 110, 0, 94, 202, 110, 0, 94, 1, 110,
432 0, 0, 94, 206, 328, 110, 0, 205, 94, 190,
433 110, 0, 205, 48, 0, 205, 95, 180, 113, 0,
434 205, 87, 0, 205, 88, 0, 41, 0, 9, 94,
435 190, 110, 0, 305, 0, 51, 75, 216, 76, 94,
436 180, 110, 0, 52, 75, 216, 76, 94, 180, 110,
437 0, 53, 75, 216, 76, 94, 180, 110, 0, 54,
438 75, 216, 76, 94, 180, 110, 0, 50, 94, 180,
439 110, 0, 50, 94, 216, 110, 0, 315, 3, 0,
440 315, 390, 0, 304, 0, 304, 94, 190, 110, 0,
441 304, 48, 0, 212, 200, 0, 212, 200, 94, 190,
442 110, 0, 212, 200, 48, 0, 212, 201, 0, 212,
443 304, 0, 212, 201, 94, 190, 110, 0, 212, 201,
444 48, 0, 212, 304, 94, 190, 110, 0, 212, 304,
445 48, 0, 212, 89, 8, 48, 0, 212, 8, 55,
446 89, 8, 48, 0, 212, 1, 0, 40, 0, 315,
447 40, 0, 39, 0, 315, 208, 0, 43, 0, 44,
448 0, 11, 0, 210, 11, 0, 0, 205, 93, 0,
449 205, 92, 0, 223, 225, 61, 0, 217, 225, 61,
450 0, 220, 226, 61, 0, 217, 61, 0, 220, 61,
451 0, 120, 213, 0, 294, 0, 299, 0, 48, 0,
452 215, 48, 0, 221, 318, 0, 290, 318, 0, 223,
453 318, 0, 221, 0, 290, 0, 221, 0, 218, 0,
454 220, 223, 0, 223, 219, 0, 223, 222, 219, 0,
455 220, 223, 219, 0, 220, 223, 222, 0, 220, 223,
456 222, 219, 0, 7, 0, 219, 224, 0, 219, 7,
457 0, 219, 238, 0, 238, 0, 290, 0, 7, 0,
458 220, 9, 0, 220, 7, 0, 220, 238, 0, 238,
459 0, 223, 0, 290, 223, 0, 223, 222, 0, 290,
460 223, 222, 0, 224, 0, 222, 224, 0, 252, 0,
461 8, 0, 296, 0, 29, 94, 180, 110, 0, 29,
462 94, 216, 110, 0, 31, 94, 180, 110, 0, 31,
463 94, 216, 110, 0, 8, 0, 9, 0, 252, 0,
464 229, 0, 225, 60, 231, 0, 233, 0, 226, 60,
465 231, 0, 235, 0, 227, 60, 231, 0, 0, 121,
466 94, 210, 110, 0, 0, 214, 228, 237, 65, 230,
467 245, 0, 214, 228, 237, 0, 0, 214, 228, 237,
468 65, 232, 245, 0, 214, 228, 237, 0, 0, 299,
469 228, 237, 65, 234, 245, 0, 299, 228, 237, 0,
470 0, 299, 228, 237, 65, 236, 245, 0, 299, 228,
471 237, 0, 0, 238, 0, 239, 0, 238, 239, 0,
472 32, 94, 94, 240, 110, 110, 0, 241, 0, 240,
473 60, 241, 0, 0, 242, 0, 242, 94, 3, 110,
474 0, 242, 94, 3, 60, 190, 110, 0, 242, 94,
475 190, 110, 0, 157, 0, 7, 0, 8, 0, 9,
476 0, 157, 0, 243, 60, 157, 0, 0, 65, 245,
477 0, 196, 0, 59, 111, 0, 59, 246, 111, 0,
478 59, 246, 60, 111, 0, 1, 0, 245, 0, 246,
479 60, 245, 0, 95, 196, 113, 245, 0, 246, 60,
480 21, 196, 63, 245, 0, 157, 63, 245, 0, 246,
481 60, 157, 63, 245, 0, 99, 0, 247, 140, 139,
482 327, 0, 247, 140, 352, 0, 247, 140, 1, 0,
483 0, 249, 248, 141, 0, 104, 196, 109, 0, 104,
484 1, 109, 0, 0, 251, 250, 0, 251, 1, 0,
485 0, 14, 157, 59, 253, 286, 258, 111, 0, 14,
486 157, 59, 111, 0, 0, 14, 59, 254, 286, 258,
487 111, 0, 14, 59, 111, 0, 14, 157, 0, 14,
488 313, 0, 46, 309, 0, 0, 0, 266, 272, 274,
489 111, 237, 255, 251, 256, 249, 0, 266, 0, 0,
490 60, 0, 0, 60, 0, 37, 0, 259, 7, 0,
491 259, 8, 0, 259, 9, 0, 259, 37, 0, 259,
492 157, 0, 259, 159, 0, 259, 307, 157, 0, 259,
493 315, 307, 157, 0, 259, 315, 157, 0, 259, 171,
494 0, 259, 307, 171, 0, 0, 260, 0, 261, 263,
495 267, 0, 262, 267, 0, 259, 59, 0, 265, 0,
496 264, 0, 0, 63, 383, 0, 63, 383, 268, 0,
497 269, 0, 268, 60, 383, 269, 0, 270, 0, 271,
498 383, 270, 0, 309, 0, 295, 0, 31, 94, 180,
499 110, 0, 31, 94, 216, 110, 0, 38, 383, 0,
500 7, 383, 0, 271, 38, 383, 0, 271, 7, 383,
501 0, 59, 0, 0, 273, 0, 273, 275, 0, 274,
502 38, 63, 275, 0, 274, 38, 63, 0, 276, 0,
503 275, 276, 0, 277, 61, 0, 277, 111, 0, 150,
504 63, 0, 150, 96, 0, 150, 25, 0, 150, 59,
505 0, 61, 0, 120, 276, 0, 217, 278, 0, 220,
506 279, 0, 299, 228, 237, 244, 0, 143, 228, 237,
507 244, 0, 63, 196, 0, 1, 0, 220, 149, 228,
508 237, 244, 0, 149, 228, 237, 244, 0, 127, 0,
509 130, 277, 0, 0, 280, 0, 278, 60, 281, 0,
510 0, 283, 0, 279, 60, 285, 0, 282, 0, 283,
511 0, 284, 0, 285, 0, 294, 228, 237, 244, 0,
512 4, 63, 196, 237, 0, 299, 228, 237, 244, 0,
513 143, 228, 237, 244, 0, 3, 63, 196, 237, 0,
514 63, 196, 237, 0, 294, 228, 237, 244, 0, 4,
515 63, 196, 237, 0, 299, 228, 237, 244, 0, 3,
516 63, 196, 237, 0, 63, 196, 237, 0, 287, 0,
517 286, 60, 287, 0, 157, 0, 157, 65, 196, 0,
518 363, 316, 0, 363, 0, 94, 216, 110, 95, 180,
519 113, 0, 0, 289, 9, 0, 9, 0, 290, 9,
520 0, 0, 291, 180, 0, 291, 94, 190, 110, 0,
521 291, 94, 373, 110, 0, 291, 48, 0, 291, 94,
522 1, 110, 0, 81, 290, 294, 0, 71, 290, 294,
523 0, 81, 294, 0, 71, 294, 0, 314, 289, 294,
524 0, 298, 0, 306, 0, 315, 306, 0, 295, 0,
525 297, 0, 315, 297, 0, 307, 306, 0, 298, 293,
526 289, 385, 0, 298, 95, 292, 113, 0, 298, 95,
527 113, 0, 94, 294, 110, 0, 307, 306, 0, 306,
528 0, 81, 290, 299, 0, 71, 290, 299, 0, 81,
529 299, 0, 71, 299, 0, 314, 289, 299, 0, 204,
530 0, 81, 290, 299, 0, 71, 290, 299, 0, 81,
531 300, 0, 71, 300, 0, 314, 289, 299, 0, 301,
532 0, 204, 293, 289, 385, 0, 94, 300, 110, 0,
533 204, 95, 292, 113, 0, 204, 95, 113, 0, 303,
534 0, 307, 203, 0, 307, 201, 0, 307, 200, 0,
535 307, 197, 0, 307, 200, 0, 303, 0, 315, 303,
536 0, 223, 94, 190, 110, 0, 223, 94, 202, 110,
537 0, 223, 215, 0, 4, 0, 5, 0, 171, 0,
538 308, 0, 307, 308, 0, 4, 55, 0, 5, 55,
539 0, 58, 55, 0, 171, 55, 0, 310, 0, 315,
540 310, 0, 311, 157, 0, 312, 0, 311, 312, 0,
541 4, 55, 0, 5, 55, 0, 171, 55, 0, 57,
542 55, 0, 3, 55, 0, 58, 55, 0, 315, 306,
543 0, 297, 0, 315, 297, 0, 307, 81, 0, 315,
544 307, 81, 0, 55, 0, 81, 289, 316, 0, 81,
545 289, 0, 71, 289, 316, 0, 71, 289, 0, 314,
546 289, 0, 314, 289, 316, 0, 317, 0, 95, 180,
547 113, 0, 317, 95, 292, 113, 0, 81, 290, 318,
548 0, 81, 318, 0, 81, 290, 0, 81, 0, 71,
549 290, 318, 0, 71, 318, 0, 71, 290, 0, 71,
550 0, 314, 289, 0, 314, 289, 318, 0, 319, 0,
551 94, 318, 110, 0, 91, 0, 319, 94, 373, 110,
552 289, 385, 0, 319, 48, 289, 385, 0, 319, 95,
553 292, 113, 0, 319, 95, 113, 0, 94, 374, 110,
554 289, 385, 0, 194, 289, 385, 0, 215, 289, 385,
555 0, 95, 292, 113, 0, 95, 113, 0, 335, 0,
556 321, 0, 320, 335, 0, 320, 321, 0, 1, 61,
557 0, 0, 0, 0, 325, 0, 326, 0, 325, 326,
558 0, 34, 243, 61, 0, 328, 0, 1, 328, 0,
559 0, 59, 329, 322, 186, 323, 0, 0, 0, 15,
560 331, 322, 182, 332, 333, 0, 328, 0, 0, 322,
561 334, 336, 323, 0, 328, 0, 336, 0, 213, 0,
562 180, 61, 0, 0, 0, 330, 16, 337, 333, 338,
563 323, 0, 330, 0, 0, 0, 17, 339, 322, 182,
564 340, 187, 323, 0, 0, 0, 18, 341, 333, 17,
565 342, 181, 61, 0, 0, 0, 0, 0, 19, 343,
566 94, 366, 344, 322, 183, 61, 345, 368, 110, 346,
567 187, 323, 0, 0, 0, 20, 322, 94, 184, 110,
568 347, 333, 348, 323, 0, 0, 21, 196, 63, 349,
569 335, 0, 0, 21, 196, 12, 196, 63, 350, 335,
570 0, 0, 22, 63, 351, 335, 0, 23, 61, 0,
571 24, 61, 0, 25, 61, 0, 25, 180, 61, 0,
572 121, 367, 94, 210, 110, 61, 0, 121, 367, 94,
573 210, 63, 369, 110, 61, 0, 121, 367, 94, 210,
574 63, 369, 63, 369, 110, 61, 0, 121, 367, 94,
575 210, 63, 369, 63, 369, 63, 372, 110, 61, 0,
576 26, 81, 180, 61, 0, 26, 157, 61, 0, 365,
577 335, 0, 365, 111, 0, 61, 0, 355, 0, 0,
578 0, 96, 353, 139, 328, 354, 358, 0, 0, 0,
579 96, 356, 328, 357, 358, 0, 359, 0, 358, 359,
580 0, 0, 0, 0, 97, 360, 322, 364, 361, 328,
581 362, 323, 0, 221, 0, 290, 0, 94, 12, 110,
582 0, 94, 382, 110, 0, 3, 63, 0, 57, 63,
583 0, 4, 63, 0, 5, 63, 0, 368, 61, 0,
584 213, 0, 59, 186, 0, 0, 9, 0, 0, 180,
585 0, 1, 0, 0, 370, 0, 371, 0, 370, 60,
586 371, 0, 11, 94, 180, 110, 0, 11, 0, 372,
587 60, 11, 0, 0, 374, 0, 216, 0, 378, 0,
588 379, 12, 0, 378, 12, 0, 216, 12, 0, 12,
589 0, 98, 0, 378, 98, 0, 216, 98, 0, 378,
590 63, 0, 216, 63, 0, 0, 65, 376, 377, 0,
591 103, 0, 245, 0, 380, 0, 382, 375, 0, 379,
592 381, 0, 379, 384, 0, 379, 384, 65, 245, 0,
593 378, 60, 0, 216, 60, 0, 218, 214, 0, 221,
594 214, 0, 223, 214, 0, 218, 318, 0, 218, 0,
595 220, 299, 0, 382, 0, 382, 375, 0, 380, 0,
596 216, 0, 0, 0, 299, 0, 0, 62, 94, 387,
597 110, 0, 62, 48, 0, 216, 0, 386, 0, 387,
598 60, 386, 0, 0, 81, 289, 388, 0, 71, 289,
599 388, 0, 314, 289, 388, 0, 42, 0, 389, 81,
600 0, 389, 82, 0, 389, 83, 0, 389, 79, 0,
601 389, 80, 0, 389, 71, 0, 389, 69, 0, 389,
602 70, 0, 389, 89, 0, 389, 60, 0, 389, 74,
603 0, 389, 75, 0, 389, 76, 0, 389, 73, 0,
604 389, 64, 0, 389, 65, 0, 389, 77, 0, 389,
605 78, 0, 389, 87, 0, 389, 88, 0, 389, 68,
606 0, 389, 67, 0, 389, 112, 0, 389, 66, 63,
607 0, 389, 72, 0, 389, 92, 0, 389, 84, 0,
608 389, 48, 0, 389, 95, 113, 0, 389, 40, 0,
609 389, 39, 0, 389, 40, 95, 113, 0, 389, 39,
610 95, 113, 0, 389, 363, 388, 0, 389, 1, 0
611 };
612
613 #endif
614
615 #if YYDEBUG != 0
616 static const short yyrline[] = { 0,
617 317, 319, 333, 336, 337, 341, 343, 346, 351, 355,
618 361, 363, 366, 369, 373, 376, 378, 380, 383, 385,
619 388, 391, 393, 395, 397, 399, 401, 403, 409, 413,
620 416, 418, 422, 424, 425, 427, 431, 434, 440, 443,
621 445, 450, 453, 457, 460, 463, 475, 479, 497, 507,
622 509, 511, 513, 515, 530, 539, 549, 552, 554, 558,
623 560, 561, 568, 569, 570, 573, 576, 580, 582, 583,
624 586, 588, 591, 594, 596, 600, 610, 612, 622, 631,
625 633, 643, 652, 654, 664, 673, 675, 687, 695, 702,
626 707, 714, 721, 724, 726, 728, 734, 744, 746, 749,
627 752, 754, 757, 759, 763, 772, 775, 777, 781, 794,
628 814, 817, 819, 820, 823, 830, 836, 838, 840, 842,
629 844, 847, 852, 854, 855, 856, 857, 860, 862, 863,
630 866, 868, 869, 872, 877, 877, 881, 881, 884, 884,
631 887, 887, 891, 891, 896, 896, 899, 899, 902, 904,
632 907, 914, 921, 927, 930, 939, 941, 949, 952, 955,
633 958, 962, 965, 968, 971, 974, 977, 979, 981, 983,
634 987, 990, 993, 998, 1002, 1007, 1011, 1014, 1016, 1020,
635 1040, 1047, 1050, 1052, 1053, 1054, 1057, 1068, 1077, 1081,
636 1085, 1088, 1090, 1094, 1097, 1100, 1104, 1107, 1109, 1111,
637 1113, 1120, 1133, 1135, 1137, 1139, 1145, 1148, 1151, 1154,
638 1157, 1161, 1164, 1167, 1171, 1173, 1177, 1181, 1183, 1187,
639 1190, 1197, 1200, 1202, 1210, 1219, 1225, 1232, 1234, 1236,
640 1249, 1252, 1254, 1256, 1258, 1260, 1262, 1264, 1266, 1268,
641 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1284, 1286, 1288,
642 1290, 1292, 1296, 1298, 1300, 1317, 1320, 1321, 1322, 1323,
643 1324, 1327, 1330, 1333, 1337, 1340, 1342, 1347, 1349, 1350,
644 1353, 1355, 1357, 1359, 1363, 1366, 1370, 1372, 1373, 1374,
645 1378, 1400, 1401, 1402, 1410, 1418, 1426, 1428, 1436, 1457,
646 1464, 1471, 1473, 1482, 1487, 1510, 1554, 1555, 1559, 1563,
647 1567, 1571, 1573, 1577, 1579, 1587, 1589, 1594, 1600, 1604,
648 1609, 1614, 1616, 1621, 1636, 1651, 1662, 1674, 1682, 1691,
649 1735, 1738, 1742, 1745, 1749, 1752, 1757, 1759, 1763, 1776,
650 1779, 1786, 1793, 1798, 1800, 1805, 1807, 1814, 1816, 1820,
651 1824, 1830, 1834, 1837, 1840, 1843, 1853, 1855, 1858, 1862,
652 1865, 1868, 1871, 1874, 1880, 1886, 1888, 1893, 1895, 1904,
653 1907, 1909, 1912, 1918, 1920, 1930, 1934, 1937, 1940, 1945,
654 1948, 1956, 1958, 1960, 1962, 1965, 1968, 1983, 2002, 2005,
655 2007, 2010, 2012, 2015, 2017, 2020, 2022, 2025, 2028, 2032,
656 2051, 2053, 2073, 2079, 2080, 2086, 2095, 2097, 2107, 2116,
657 2118, 2130, 2133, 2137, 2140, 2144, 2149, 2152, 2156, 2159,
658 2161, 2163, 2165, 2172, 2174, 2175, 2176, 2180, 2183, 2187,
659 2190, 2196, 2198, 2201, 2204, 2207, 2213, 2216, 2219, 2221,
660 2223, 2225, 2229, 2235, 2243, 2245, 2249, 2251, 2256, 2259,
661 2262, 2264, 2266, 2270, 2274, 2279, 2283, 2286, 2291, 2295,
662 2298, 2301, 2305, 2341, 2347, 2356, 2376, 2378, 2381, 2383,
663 2388, 2390, 2392, 2394, 2396, 2400, 2405, 2410, 2416, 2421,
664 2426, 2428, 2432, 2437, 2440, 2447, 2475, 2481, 2483, 2486,
665 2489, 2491, 2495, 2497, 2501, 2527, 2556, 2559, 2560, 2581,
666 2604, 2606, 2610, 2636, 2645, 2734, 2741, 2744, 2752, 2763,
667 2772, 2776, 2791, 2794, 2799, 2801, 2803, 2805, 2807, 2809,
668 2814, 2820, 2822, 2825, 2828, 2830, 2841, 2846, 2849, 2851,
669 2856, 2859, 2860, 2871, 2874, 2875, 2886, 2888, 2891, 2893,
670 2896, 2903, 2911, 2918, 2924, 2930, 2938, 2942, 2947, 2951,
671 2954, 2963, 2965, 2969, 2972, 2977, 2981, 2986, 2996, 2999,
672 3003, 3007, 3015, 3020, 3026, 3029, 3031, 3033, 3039, 3042,
673 3044, 3046, 3048, 3052, 3055, 3076, 3086, 3088, 3089, 3093,
674 3098, 3101, 3103, 3105, 3107, 3111, 3117, 3120, 3122, 3124,
675 3126, 3130, 3133, 3136, 3138, 3140, 3142, 3146, 3149, 3152,
676 3154, 3156, 3158, 3165, 3176, 3180, 3185, 3189, 3194, 3196,
677 3200, 3203, 3205, 3209, 3211, 3212, 3215, 3217, 3223, 3238,
678 3244, 3250, 3264, 3266, 3270, 3286, 3292, 3307, 3314, 3320,
679 3322, 3323, 3324, 3332, 3341, 3342, 3346, 3349, 3355, 3361,
680 3364, 3366, 3368, 3370, 3374, 3378, 3382, 3385, 3390, 3393,
681 3395, 3397, 3399, 3401, 3403, 3405, 3407, 3411, 3415, 3419,
682 3423, 3424, 3426, 3428, 3430, 3432, 3434, 3436, 3438, 3440,
683 3448, 3450, 3451, 3452, 3455, 3463, 3468, 3475, 3477, 3482,
684 3484, 3487, 3501, 3504, 3507, 3516, 3528, 3539, 3559, 3569,
685 3572, 3580, 3592, 3595, 3598, 3601, 3617, 3620, 3631, 3632,
686 3636, 3651, 3670, 3682, 3696, 3710, 3723, 3742, 3760, 3779,
687 3787, 3808, 3826, 3839, 3840, 3843, 3843, 3846, 3846, 3849,
688 3849, 3855, 3861, 3864, 3869, 3876, 3885, 3894, 3903, 3911,
689 3924, 3926, 3930, 3932, 3935, 3942, 3945, 3953, 3969, 3980,
690 3992, 3994, 3997, 4007, 4017, 4028, 4030, 4032, 4035, 4052,
691 4058, 4066, 4068, 4070, 4074, 4077, 4078, 4086, 4090, 4094,
692 4097, 4098, 4104, 4107, 4110, 4112, 4116, 4121, 4124, 4134,
693 4139, 4140, 4148, 4154, 4159, 4163, 4168, 4172, 4176, 4180,
694 4185, 4196, 4210, 4214, 4217, 4219, 4223, 4227, 4230, 4233,
695 4235, 4239, 4241, 4248, 4255, 4258, 4261, 4265, 4269, 4275,
696 4279, 4284, 4286, 4289, 4294, 4300, 4311, 4314, 4316, 4320,
697 4325, 4327, 4334, 4337, 4339, 4341, 4347, 4352, 4355, 4357,
698 4359, 4361, 4363, 4365, 4367, 4369, 4371, 4373, 4375, 4377,
699 4379, 4381, 4383, 4385, 4387, 4389, 4391, 4393, 4395, 4397,
700 4399, 4401, 4403, 4405, 4407, 4409, 4411, 4413, 4415, 4417,
701 4420, 4422
702 };
703 #endif
704
705
706 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
707
708 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
709 "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
710 "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
711 "CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","GCC_ASM_KEYWORD",
712 "TYPEOF","ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART",
713 "AGGR","VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE",
714 "TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST",
715 "REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','",
716 "';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
717 "EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
718 "'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY",
719 "PAREN_STAR_PAREN","POINTSAT","'.'","'('","'['","TRY","CATCH","TYPENAME_ELLIPSIS",
720 "PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
721 "DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN",
722 "END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'","program","extdefs",
723 "@1","extdefs_opt",".hush_warning",".warning_ok","extension","asm_keyword","lang_extdef",
724 "@2","extdef","@3","@4","using_decl","any_id","extern_lang_string","template_header",
725 "@5","template_parm_list","maybe_identifier","template_type_parm","template_template_parm",
726 "template_parm","template_def","datadef","ctor_initializer_opt","maybe_return_init",
727 "eat_saved_input","fndef","constructor_declarator","@6","@7","@8","@9","fn.def1",
728 "component_constructor_declarator","fn.def2","return_id","return_init","base_init",
729 ".set_base_init","member_init_list","member_init","identifier","notype_identifier",
730 "identifier_defn","explicit_instantiation","@10","@11","@12","@13","@14","@15",
731 "@16","@17","begin_explicit_instantiation","end_explicit_instantiation","template_type",
732 "self_template_type","template_close_bracket","template_arg_list_opt","template_arg_list",
733 "template_arg","@18","template_arg1","unop","expr","paren_expr_or_null","paren_cond_or_null",
734 "xcond","condition","@19","compstmtend","already_scoped_stmt","@20","nontrivial_exprlist",
735 "nonnull_exprlist","unary_expr","new_placement","new_initializer","regcast_or_absdcl",
736 "cast_expr","expr_no_commas","notype_unqualified_id","do_id","template_id","object_template_id",
737 "unqualified_id","expr_or_declarator","notype_template_declarator","direct_notype_declarator",
738 "primary","@21","new","delete","boolean.literal","string","nodecls","object",
739 "decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1",
740 "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
741 "typespecqual_reserved","initdecls","notype_initdecls","nomods_initdecls","maybeasm",
742 "initdcl0","@22","initdcl","@23","notype_initdcl0","@24","nomods_initdcl0","@25",
743 "maybe_attribute","attributes","attribute","attribute_list","attrib","any_word",
744 "identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline",
745 "pending_inlines","defarg_again","pending_defargs","structsp","@26","@27","@28",
746 "@29","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
747 "named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
748 "do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list",
749 "base_class_list","base_class","base_class.1","base_class_access_list","left_curly",
750 "self_reference","opt.component_decl_list","component_decl_list","component_decl",
751 "component_decl_1","components","notype_components","component_declarator0",
752 "component_declarator","after_type_component_declarator0","notype_component_declarator0",
753 "after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
754 "new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
755 "maybe_parmlist","after_type_declarator","nonnested_type","complete_type_name",
756 "nested_type","direct_after_type_declarator","notype_declarator","complex_notype_declarator",
757 "complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id",
758 "functional_cast","type_name","nested_name_specifier","nested_name_specifier_1",
759 "typename_sub","typename_sub0","typename_sub1","typename_sub2","complex_type_name",
760 "ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl",
761 "direct_abstract_declarator","stmts","errstmt",".pushlevel",".poplevel","maybe_label_decls",
762 "label_decls","label_decl","compstmt_or_error","compstmt","@30","simple_if",
763 "@31","@32","implicitly_scoped_stmt","@33","stmt","simple_stmt","@34","@35",
764 "@36","@37","@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","@48",
765 "function_try_block","@49","@50","try_block","@51","@52","handler_seq","handler",
766 "@53","@54","@55","type_specifier_seq","handler_args","label_colon","for.init.statement",
767 "maybe_cv_qualifier","xexpr","asm_operands","nonnull_asm_operands","asm_operand",
768 "asm_clobbers","parmlist","complex_parmlist","defarg","@56","defarg1","parms",
769 "parms_comma","named_parm","full_parm","parm","see_typename","bad_parm","exception_specification_opt",
770 "ansi_raise_identifier","ansi_raise_identifiers","conversion_declarator","operator",
771 "operator_name", NULL
772 };
773 #endif
774
775 static const short yyr1[] = { 0,
776 114, 114, 116, 115, 115, 117, 117, 118, 119, 120,
777 121, 121, 123, 122, 124, 124, 124, 124, 124, 124,
778 124, 125, 124, 126, 124, 124, 124, 124, 124, 127,
779 127, 127, 128, 128, 128, 128, 129, 129, 131, 130,
780 130, 132, 132, 133, 133, 134, 134, 135, 136, 136,
781 136, 136, 136, 136, 137, 137, 138, 138, 138, 138,
782 138, 138, 138, 138, 138, 139, 139, 140, 140, 140,
783 141, 141, 142, 142, 142, 144, 143, 143, 145, 143,
784 143, 146, 143, 143, 147, 143, 143, 148, 148, 148,
785 148, 148, 149, 149, 149, 149, 150, 150, 150, 150,
786 150, 150, 150, 150, 151, 152, 152, 152, 153, 154,
787 155, 155, 155, 155, 156, 156, 156, 156, 156, 156,
788 156, 156, 157, 157, 157, 157, 157, 158, 158, 158,
789 159, 159, 159, 161, 160, 162, 160, 163, 160, 164,
790 160, 165, 160, 166, 160, 167, 160, 168, 160, 169,
791 170, 171, 171, 171, 172, 173, 173, 174, 174, 175,
792 175, 177, 176, 178, 178, 179, 179, 179, 179, 179,
793 180, 180, 181, 181, 182, 182, 183, 183, 183, 185,
794 184, 184, 186, 186, 186, 186, 188, 187, 187, 189,
795 189, 189, 189, 190, 190, 191, 191, 191, 191, 191,
796 191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
797 191, 191, 191, 191, 191, 191, 191, 191, 191, 192,
798 192, 193, 193, 193, 193, 194, 194, 195, 195, 195,
799 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
800 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
801 196, 196, 196, 196, 196, 197, 197, 197, 197, 197,
802 197, 198, 199, 199, 200, 200, 200, 201, 201, 201,
803 202, 202, 202, 202, 203, 203, 204, 204, 204, 204,
804 205, 205, 205, 205, 205, 205, 205, 206, 205, 205,
805 205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
806 205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
807 205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
808 207, 207, 208, 208, 209, 209, 210, 210, 211, 212,
809 212, 213, 213, 213, 213, 213, 213, 214, 214, 215,
810 215, 216, 216, 216, 216, 216, 217, 217, 218, 218,
811 218, 218, 218, 218, 219, 219, 219, 219, 219, 220,
812 220, 220, 220, 220, 220, 221, 221, 221, 221, 222,
813 222, 223, 223, 223, 223, 223, 223, 223, 224, 224,
814 224, 225, 225, 226, 226, 227, 227, 228, 228, 230,
815 229, 229, 232, 231, 231, 234, 233, 233, 236, 235,
816 235, 237, 237, 238, 238, 239, 240, 240, 241, 241,
817 241, 241, 241, 242, 242, 242, 242, 243, 243, 244,
818 244, 245, 245, 245, 245, 245, 246, 246, 246, 246,
819 246, 246, 247, 248, 248, 248, 249, 249, 250, 250,
820 251, 251, 251, 253, 252, 252, 254, 252, 252, 252,
821 252, 252, 255, 256, 252, 252, 257, 257, 258, 258,
822 259, 259, 259, 259, 259, 260, 261, 262, 262, 262,
823 262, 262, 263, 264, 264, 264, 265, 266, 266, 267,
824 267, 267, 268, 268, 269, 269, 270, 270, 270, 270,
825 271, 271, 271, 271, 272, 273, 274, 274, 274, 274,
826 275, 275, 276, 276, 276, 276, 276, 276, 276, 276,
827 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
828 278, 278, 278, 279, 279, 279, 280, 280, 281, 281,
829 282, 282, 283, 283, 283, 283, 284, 284, 285, 285,
830 285, 286, 286, 287, 287, 288, 288, 288, 289, 289,
831 290, 290, 291, 292, 293, 293, 293, 293, 294, 294,
832 294, 294, 294, 294, 295, 295, 296, 296, 296, 297,
833 298, 298, 298, 298, 298, 298, 299, 299, 299, 299,
834 299, 299, 300, 300, 300, 300, 300, 300, 301, 301,
835 301, 301, 301, 301, 302, 302, 303, 303, 304, 304,
836 305, 305, 305, 306, 306, 306, 307, 307, 308, 308,
837 308, 308, 309, 309, 310, 311, 311, 312, 312, 312,
838 312, 312, 312, 313, 313, 313, 314, 314, 315, 316,
839 316, 316, 316, 316, 316, 316, 317, 317, 318, 318,
840 318, 318, 318, 318, 318, 318, 318, 318, 318, 319,
841 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
842 320, 320, 320, 320, 321, 322, 323, 324, 324, 325,
843 325, 326, 327, 327, 329, 328, 331, 332, 330, 333,
844 334, 333, 335, 335, 336, 336, 337, 338, 336, 336,
845 339, 340, 336, 341, 342, 336, 343, 344, 345, 346,
846 336, 347, 348, 336, 349, 336, 350, 336, 351, 336,
847 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
848 336, 336, 336, 336, 353, 354, 352, 356, 357, 355,
849 358, 358, 360, 361, 362, 359, 363, 363, 364, 364,
850 365, 365, 365, 365, 366, 366, 366, 367, 367, 368,
851 368, 368, 369, 369, 370, 370, 371, 372, 372, 373,
852 373, 373, 374, 374, 374, 374, 374, 374, 374, 374,
853 374, 374, 376, 375, 377, 377, 378, 378, 378, 378,
854 378, 379, 379, 380, 380, 380, 380, 380, 380, 381,
855 381, 382, 382, 383, 384, 384, 385, 385, 385, 386,
856 387, 387, 388, 388, 388, 388, 389, 390, 390, 390,
857 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
858 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
859 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
860 390, 390
861 };
862
863 static const short yyr2[] = { 0,
864 0, 1, 0, 2, 2, 1, 0, 0, 0, 1,
865 1, 1, 0, 2, 2, 1, 1, 5, 4, 5,
866 4, 0, 6, 0, 5, 5, 2, 4, 2, 2,
867 3, 3, 1, 1, 2, 2, 1, 2, 0, 5,
868 3, 1, 3, 1, 0, 2, 2, 3, 1, 3,
869 1, 3, 1, 3, 2, 2, 2, 3, 3, 2,
870 2, 2, 2, 2, 1, 1, 1, 0, 1, 2,
871 0, 1, 4, 3, 3, 0, 8, 5, 0, 9,
872 6, 0, 8, 5, 0, 9, 6, 2, 2, 1,
873 2, 1, 6, 4, 6, 4, 2, 1, 2, 2,
874 1, 2, 1, 2, 2, 2, 4, 2, 3, 0,
875 0, 1, 3, 2, 3, 1, 4, 2, 4, 2,
876 4, 2, 1, 1, 1, 1, 1, 1, 1, 1,
877 1, 1, 1, 0, 6, 0, 6, 0, 5, 0,
878 5, 0, 7, 0, 7, 0, 6, 0, 6, 0,
879 0, 4, 4, 1, 4, 1, 1, 0, 1, 1,
880 3, 0, 2, 1, 1, 1, 1, 1, 1, 1,
881 1, 1, 1, 3, 1, 3, 0, 1, 1, 0,
882 7, 1, 1, 3, 4, 3, 0, 3, 1, 3,
883 3, 3, 3, 1, 1, 1, 2, 2, 2, 2,
884 2, 2, 2, 4, 2, 4, 2, 3, 3, 4,
885 4, 5, 5, 6, 2, 4, 5, 2, 2, 3,
886 3, 3, 1, 3, 2, 3, 4, 1, 2, 5,
887 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
888 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
889 5, 3, 3, 1, 2, 3, 1, 1, 1, 1,
890 1, 0, 5, 5, 5, 5, 5, 1, 1, 1,
891 1, 2, 2, 3, 4, 4, 1, 1, 1, 3,
892 1, 1, 1, 1, 3, 3, 3, 0, 4, 4,
893 2, 4, 2, 2, 1, 4, 1, 7, 7, 7,
894 7, 4, 4, 2, 2, 1, 4, 2, 2, 5,
895 3, 2, 2, 5, 3, 5, 3, 4, 6, 2,
896 1, 2, 1, 2, 1, 1, 1, 2, 0, 2,
897 2, 3, 3, 3, 2, 2, 2, 1, 1, 1,
898 2, 2, 2, 2, 1, 1, 1, 1, 2, 2,
899 3, 3, 3, 4, 1, 2, 2, 2, 1, 1,
900 1, 2, 2, 2, 1, 1, 2, 2, 3, 1,
901 2, 1, 1, 1, 4, 4, 4, 4, 1, 1,
902 1, 1, 3, 1, 3, 1, 3, 0, 4, 0,
903 6, 3, 0, 6, 3, 0, 6, 3, 0, 6,
904 3, 0, 1, 1, 2, 6, 1, 3, 0, 1,
905 4, 6, 4, 1, 1, 1, 1, 1, 3, 0,
906 2, 1, 2, 3, 4, 1, 1, 3, 4, 6,
907 3, 5, 1, 4, 3, 3, 0, 3, 3, 3,
908 0, 2, 2, 0, 7, 4, 0, 6, 3, 2,
909 2, 2, 0, 0, 9, 1, 0, 1, 0, 1,
910 1, 2, 2, 2, 2, 2, 2, 3, 4, 3,
911 2, 3, 0, 1, 3, 2, 2, 1, 1, 0,
912 2, 3, 1, 4, 1, 3, 1, 1, 4, 4,
913 2, 2, 3, 3, 1, 0, 1, 2, 4, 3,
914 1, 2, 2, 2, 2, 2, 2, 2, 1, 2,
915 2, 2, 4, 4, 2, 1, 5, 4, 1, 2,
916 0, 1, 3, 0, 1, 3, 1, 1, 1, 1,
917 4, 4, 4, 4, 4, 3, 4, 4, 4, 4,
918 3, 1, 3, 1, 3, 2, 1, 6, 0, 2,
919 1, 2, 0, 2, 4, 4, 2, 4, 3, 3,
920 2, 2, 3, 1, 1, 2, 1, 1, 2, 2,
921 4, 4, 3, 3, 2, 1, 3, 3, 2, 2,
922 3, 1, 3, 3, 2, 2, 3, 1, 4, 3,
923 4, 3, 1, 2, 2, 2, 2, 2, 1, 2,
924 4, 4, 2, 1, 1, 1, 1, 2, 2, 2,
925 2, 2, 1, 2, 2, 1, 2, 2, 2, 2,
926 2, 2, 2, 2, 1, 2, 2, 3, 1, 3,
927 2, 3, 2, 2, 3, 1, 3, 4, 3, 2,
928 2, 1, 3, 2, 2, 1, 2, 3, 1, 3,
929 1, 6, 4, 4, 3, 5, 3, 3, 3, 2,
930 1, 1, 2, 2, 2, 0, 0, 0, 1, 1,
931 2, 3, 1, 2, 0, 5, 0, 0, 6, 1,
932 0, 4, 1, 1, 1, 2, 0, 0, 6, 1,
933 0, 0, 7, 0, 0, 7, 0, 0, 0, 0,
934 14, 0, 0, 9, 0, 5, 0, 7, 0, 4,
935 2, 2, 2, 3, 6, 8, 10, 12, 4, 3,
936 2, 2, 1, 1, 0, 0, 6, 0, 0, 5,
937 1, 2, 0, 0, 0, 8, 1, 1, 3, 3,
938 2, 2, 2, 2, 2, 1, 2, 0, 1, 0,
939 1, 1, 0, 1, 1, 3, 4, 1, 3, 0,
940 1, 1, 1, 2, 2, 2, 1, 1, 2, 2,
941 2, 2, 0, 3, 1, 1, 1, 2, 2, 2,
942 4, 2, 2, 2, 2, 2, 2, 1, 2, 1,
943 2, 1, 1, 0, 0, 1, 0, 4, 2, 1,
944 1, 3, 0, 3, 3, 3, 1, 2, 2, 2,
945 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
946 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
947 3, 2, 2, 2, 2, 3, 2, 2, 4, 4,
948 3, 2
949 };
950
951 static const short yydefact[] = { 3,
952 13, 13, 5, 0, 4, 0, 259, 604, 605, 0,
953 361, 373, 551, 0, 11, 12, 0, 0, 0, 10,
954 461, 807, 0, 0, 0, 150, 629, 260, 261, 65,
955 0, 0, 794, 0, 37, 0, 0, 14, 0, 8,
956 0, 17, 16, 71, 92, 68, 0, 606, 154, 278,
957 257, 279, 582, 0, 348, 0, 347, 366, 0, 386,
958 365, 404, 372, 0, 474, 473, 480, 479, 478, 456,
959 360, 567, 374, 568, 90, 277, 593, 565, 0, 607,
960 549, 0, 0, 258, 63, 64, 162, 609, 162, 610,
961 162, 262, 150, 123, 124, 125, 126, 127, 447, 450,
962 0, 625, 0, 451, 0, 0, 0, 0, 124, 125,
963 126, 127, 24, 0, 0, 0, 0, 0, 0, 0,
964 452, 613, 0, 616, 0, 0, 0, 0, 0, 0,
965 30, 0, 0, 39, 0, 162, 611, 162, 0, 580,
966 0, 0, 0, 579, 0, 0, 0, 0, 278, 0,
967 553, 0, 277, 549, 29, 0, 27, 3, 38, 0,
968 56, 55, 72, 15, 0, 0, 420, 69, 61, 612,
969 553, 0, 549, 62, 0, 0, 0, 88, 0, 382,
970 338, 564, 339, 576, 0, 549, 363, 362, 60, 91,
971 349, 0, 384, 364, 89, 355, 379, 380, 350, 368,
972 370, 359, 381, 0, 57, 405, 462, 463, 464, 465,
973 477, 132, 131, 133, 466, 467, 471, 0, 0, 480,
974 794, 476, 495, 496, 552, 367, 0, 0, 402, 605,
975 0, 627, 154, 597, 598, 594, 570, 608, 0, 569,
976 566, 0, 842, 838, 837, 835, 817, 822, 823, 0,
977 829, 828, 814, 815, 813, 832, 821, 818, 819, 820,
978 824, 825, 811, 812, 808, 809, 810, 834, 826, 827,
979 816, 833, 0, 830, 737, 366, 738, 803, 262, 0,
980 159, 160, 0, 0, 0, 162, 0, 449, 0, 444,
981 626, 624, 259, 551, 282, 327, 0, 0, 0, 0,
982 323, 321, 295, 325, 326, 0, 0, 0, 0, 0,
983 261, 254, 0, 0, 167, 166, 0, 168, 169, 0,
984 0, 170, 0, 0, 0, 171, 228, 0, 231, 172,
985 281, 196, 0, 0, 283, 284, 0, 0, 345, 366,
986 346, 599, 306, 297, 0, 0, 0, 0, 409, 3,
987 22, 0, 622, 618, 619, 621, 623, 620, 123, 124,
988 125, 126, 127, 615, 617, 614, 269, 270, 0, 268,
989 33, 34, 0, 596, 595, 32, 31, 41, 0, 361,
990 140, 0, 0, 366, 138, 0, 0, 578, 0, 577,
991 256, 273, 0, 586, 272, 0, 585, 0, 280, 590,
992 0, 0, 13, 0, 150, 9, 9, 105, 75, 110,
993 725, 0, 67, 66, 74, 108, 0, 0, 106, 70,
994 592, 0, 0, 557, 0, 797, 0, 562, 0, 561,
995 0, 0, 0, 0, 549, 402, 0, 59, 553, 549,
996 575, 0, 352, 353, 0, 58, 402, 357, 356, 358,
997 351, 371, 388, 387, 468, 472, 470, 0, 475, 481,
998 0, 0, 369, 0, 401, 403, 549, 76, 0, 0,
999 0, 549, 82, 550, 581, 605, 628, 154, 0, 0,
1000 831, 836, 368, 549, 549, 0, 549, 841, 162, 156,
1001 157, 275, 162, 163, 165, 164, 153, 155, 0, 148,
1002 0, 366, 146, 544, 459, 542, 446, 0, 0, 0,
1003 0, 203, 0, 0, 205, 218, 219, 0, 0, 0,
1004 0, 0, 255, 202, 199, 198, 200, 0, 0, 0,
1005 0, 0, 281, 0, 0, 0, 197, 201, 375, 0,
1006 0, 0, 229, 0, 0, 0, 0, 0, 0, 0,
1007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1008 0, 0, 0, 0, 0, 0, 291, 293, 294, 331,
1009 330, 0, 0, 0, 0, 0, 207, 547, 0, 215,
1010 328, 320, 0, 794, 309, 312, 313, 0, 0, 376,
1011 340, 646, 642, 651, 0, 553, 549, 549, 549, 342,
1012 649, 0, 603, 344, 0, 0, 343, 308, 0, 304,
1013 322, 324, 600, 0, 305, 377, 378, 415, 416, 417,
1014 414, 0, 407, 410, 0, 3, 0, 28, 36, 35,
1015 45, 0, 0, 0, 49, 53, 42, 793, 788, 0,
1016 345, 366, 45, 346, 792, 51, 151, 136, 134, 151,
1017 152, 276, 584, 583, 280, 587, 0, 19, 21, 71,
1018 111, 329, 0, 675, 73, 673, 426, 0, 422, 421,
1019 195, 0, 194, 554, 591, 0, 767, 768, 0, 762,
1020 366, 0, 761, 763, 795, 777, 0, 0, 589, 560,
1021 559, 0, 0, 574, 0, 392, 383, 573, 0, 797,
1022 563, 354, 385, 398, 402, 469, 604, 605, 794, 0,
1023 794, 606, 482, 483, 485, 794, 488, 487, 0, 516,
1024 605, 0, 509, 0, 0, 519, 0, 103, 98, 0,
1025 154, 521, 524, 0, 501, 0, 101, 0, 402, 0,
1026 399, 797, 760, 162, 162, 162, 797, 760, 549, 79,
1027 549, 85, 840, 839, 803, 803, 803, 0, 161, 263,
1028 151, 144, 142, 151, 0, 460, 0, 459, 0, 0,
1029 0, 603, 0, 0, 0, 0, 366, 0, 0, 0,
1030 287, 0, 285, 286, 0, 226, 193, 192, 259, 604,
1031 605, 260, 261, 0, 0, 427, 457, 0, 191, 190,
1032 253, 252, 752, 751, 0, 250, 249, 247, 248, 246,
1033 245, 244, 241, 242, 243, 239, 240, 234, 235, 236,
1034 237, 238, 232, 233, 0, 0, 0, 0, 0, 0,
1035 209, 223, 0, 0, 208, 549, 549, 0, 549, 546,
1036 636, 0, 0, 0, 0, 311, 0, 315, 0, 317,
1037 0, 645, 644, 641, 640, 793, 0, 0, 660, 0,
1038 0, 797, 341, 797, 647, 549, 760, 553, 646, 642,
1039 0, 0, 549, 0, 0, 0, 0, 0, 409, 0,
1040 0, 25, 0, 26, 47, 44, 45, 0, 40, 0,
1041 0, 646, 642, 0, 784, 549, 787, 789, 0, 785,
1042 786, 46, 466, 0, 141, 151, 151, 139, 18, 20,
1043 128, 116, 129, 130, 0, 109, 112, 0, 0, 0,
1044 0, 674, 666, 423, 0, 107, 558, 555, 766, 783,
1045 772, 770, 0, 556, 765, 782, 771, 769, 764, 796,
1046 779, 790, 780, 773, 778, 799, 0, 390, 572, 571,
1047 396, 395, 492, 0, 491, 794, 794, 794, 0, 549,
1048 760, 515, 510, 104, 520, 402, 402, 507, 508, 505,
1049 506, 549, 760, 259, 604, 0, 388, 99, 511, 522,
1050 527, 528, 388, 388, 0, 0, 388, 97, 512, 525,
1051 388, 502, 503, 504, 402, 0, 453, 389, 0, 78,
1052 0, 0, 0, 0, 84, 0, 797, 760, 797, 760,
1053 805, 804, 806, 264, 149, 151, 151, 147, 545, 543,
1054 448, 0, 296, 204, 206, 302, 303, 0, 0, 0,
1055 0, 286, 289, 0, 0, 0, 0, 227, 0, 290,
1056 292, 221, 220, 211, 0, 210, 225, 0, 0, 633,
1057 631, 0, 634, 553, 216, 0, 0, 318, 0, 0,
1058 0, 643, 639, 650, 549, 659, 657, 658, 648, 797,
1059 0, 655, 0, 601, 602, 0, 307, 408, 406, 259,
1060 0, 23, 48, 43, 50, 54, 645, 641, 646, 642,
1061 0, 565, 0, 549, 647, 52, 137, 135, 0, 114,
1062 0, 118, 0, 120, 0, 122, 0, 726, 668, 0,
1063 424, 646, 642, 0, 281, 0, 599, 791, 0, 0,
1064 800, 801, 0, 0, 0, 393, 0, 0, 0, 494,
1065 493, 486, 797, 0, 420, 420, 797, 0, 0, 0,
1066 402, 402, 0, 402, 402, 0, 402, 0, 420, 0,
1067 441, 400, 549, 266, 265, 267, 549, 81, 0, 87,
1068 0, 145, 143, 445, 0, 0, 0, 0, 0, 431,
1069 0, 0, 428, 230, 251, 0, 212, 213, 222, 224,
1070 632, 630, 637, 635, 0, 217, 0, 310, 314, 316,
1071 797, 653, 549, 654, 0, 411, 413, 645, 641, 570,
1072 647, 115, 113, 0, 0, 0, 0, 0, 183, 667,
1073 0, 669, 670, 425, 0, 602, 781, 775, 776, 774,
1074 0, 798, 391, 397, 0, 489, 490, 484, 94, 549,
1075 514, 518, 96, 549, 402, 402, 536, 420, 259, 604,
1076 0, 523, 529, 530, 388, 388, 420, 420, 0, 420,
1077 526, 513, 0, 797, 797, 549, 549, 0, 0, 0,
1078 0, 429, 0, 0, 0, 214, 638, 319, 656, 797,
1079 0, 117, 119, 121, 733, 727, 731, 418, 0, 676,
1080 0, 259, 604, 605, 677, 691, 694, 697, 666, 0,
1081 0, 0, 0, 0, 0, 260, 723, 728, 0, 748,
1082 0, 685, 0, 0, 366, 0, 662, 683, 690, 661,
1083 684, 724, 0, 671, 286, 802, 394, 797, 797, 535,
1084 532, 534, 0, 0, 402, 402, 402, 531, 533, 517,
1085 443, 0, 442, 437, 77, 83, 797, 797, 298, 299,
1086 300, 301, 0, 432, 548, 652, 412, 666, 732, 0,
1087 672, 665, 186, 741, 743, 744, 666, 666, 666, 0,
1088 0, 0, 709, 711, 712, 713, 0, 0, 0, 742,
1089 0, 337, 749, 0, 686, 335, 388, 0, 336, 0,
1090 388, 0, 0, 0, 184, 664, 663, 687, 722, 721,
1091 93, 95, 402, 402, 541, 420, 420, 0, 0, 455,
1092 80, 86, 430, 0, 419, 0, 0, 681, 680, 0,
1093 0, 0, 0, 705, 0, 714, 0, 720, 729, 0,
1094 333, 334, 0, 0, 0, 332, 185, 666, 540, 538,
1095 537, 539, 440, 439, 433, 68, 71, 0, 734, 175,
1096 0, 678, 692, 0, 695, 668, 746, 698, 0, 182,
1097 0, 366, 0, 0, 0, 710, 719, 0, 0, 688,
1098 0, 438, 0, 0, 0, 0, 666, 0, 667, 0,
1099 747, 666, 745, 702, 388, 707, 706, 730, 753, 0,
1100 667, 436, 0, 435, 739, 740, 735, 176, 679, 187,
1101 667, 189, 682, 173, 0, 0, 0, 666, 402, 0,
1102 0, 0, 754, 755, 715, 689, 434, 667, 668, 693,
1103 0, 696, 179, 0, 178, 703, 0, 708, 0, 753,
1104 0, 0, 736, 188, 174, 699, 667, 180, 0, 0,
1105 716, 756, 0, 704, 0, 757, 0, 0, 0, 181,
1106 758, 0, 717, 700, 0, 0, 0, 759, 718, 667,
1107 701, 0, 0, 0
1108 };
1109
1110 static const short yydefgoto[] = { 1552,
1111 403, 2, 404, 160, 659, 323, 228, 3, 4, 38,
1112 626, 350, 726, 369, 40, 727, 379, 634, 885, 635,
1113 636, 637, 42, 43, 412, 166, 164, 44, 728, 743,
1114 1008, 748, 1010, 46, 729, 730, 167, 168, 413, 661,
1115 916, 917, 504, 918, 216, 47, 907, 906, 650, 647,
1116 1017, 1016, 764, 761, 135, 905, 48, 49, 492, 280,
1117 281, 282, 283, 494, 324, 1301, 1496, 1442, 1514, 1451,
1118 1535, 1210, 1491, 1509, 326, 872, 327, 576, 835, 328,
1119 329, 330, 331, 286, 51, 235, 371, 392, 52, 53,
1120 332, 535, 333, 334, 335, 336, 414, 337, 1302, 453,
1121 598, 680, 1303, 55, 199, 640, 57, 200, 513, 201,
1122 179, 192, 59, 436, 180, 1124, 454, 1225, 193, 1125,
1123 60, 999, 465, 61, 62, 622, 623, 624, 1279, 419,
1124 796, 797, 1436, 1437, 1400, 1333, 1253, 63, 508, 289,
1125 1151, 1334, 1037, 767, 64, 65, 66, 67, 220, 68,
1126 69, 70, 222, 713, 714, 715, 716, 224, 461, 462,
1127 734, 735, 736, 979, 989, 980, 1242, 981, 982, 1243,
1128 1244, 505, 506, 577, 862, 71, 422, 423, 173, 181,
1129 72, 73, 74, 182, 183, 152, 76, 131, 342, 343,
1130 344, 78, 345, 80, 718, 122, 123, 124, 104, 81,
1131 346, 840, 841, 857, 601, 1306, 1307, 1408, 1280, 1211,
1132 1212, 1213, 665, 1308, 923, 1309, 1357, 1467, 1410, 1444,
1133 1310, 1311, 1428, 1481, 1358, 1468, 1359, 1470, 1360, 1472,
1134 1533, 1547, 1498, 1527, 1455, 1500, 1415, 415, 662, 1207,
1135 1312, 1371, 1458, 1276, 1277, 1348, 1465, 1508, 1453, 1439,
1136 1313, 1448, 1374, 805, 1502, 1503, 1504, 1542, 682, 683,
1137 945, 1120, 1220, 684, 685, 686, 941, 687, 145, 943,
1138 689, 1122, 1123, 488, 83, 84
1139 };
1140
1141 static const short yypact[] = { 101,
1142 116,-32768,-32768, 10331,-32768, 78, 44, 121, 289, 82,
1143 145,-32768,-32768, 848,-32768,-32768, 103, 168, 182,-32768,
1144 -32768,-32768, 691, 559, 966, 209,-32768, 216, 479,-32768,
1145 2358, 2358,-32768, 2401,-32768, 10331, 215,-32768, 292, 14,
1146 10390,-32768,-32768, 236,-32768, 331, 319, 328,-32768,-32768,
1147 -32768,-32768, 345, 2831,-32768, 3110,-32768, 1750, 408,-32768,
1148 388,-32768,-32768, 1130,-32768,-32768, 378,-32768,-32768, 406,
1149 4170,-32768,-32768,-32768, 804,-32768,-32768,-32768, 792,-32768,
1150 -32768, 327, 7871, 360,-32768,-32768, 699,-32768, 699,-32768,
1151 699,-32768,-32768,-32768, 121, 289, 216, 428, 424, 497,
1152 328,-32768, 327,-32768, 327, 9299, 9299, 484,-32768,-32768,
1153 -32768,-32768,-32768, 15, 528, 605, 629, 713, 544, 558,
1154 -32768,-32768, 695,-32768, 855, 121, 289, 620, 216, 428,
1155 -32768, 2602, 1004, 555, 10494, 699,-32768,-32768, 2859,-32768,
1156 1470, 414, 2859,-32768, 1270, 3454, 3454, 2401, 557, 561,
1157 591, 583, 587,-32768,-32768, 692,-32768, 601,-32768, 4252,
1158 78,-32768,-32768,-32768, 716, 84, 295, 682,-32768,-32768,
1159 674, 61,-32768,-32768, 3511, 3511, 5038, 804, 490,-32768,
1160 -32768, 356,-32768,-32768, 2290,-32768,-32768,-32768,-32768,-32768,
1161 1750, 655,-32768, 388, 804,-32768,-32768,-32768, 2002, 1750,
1162 -32768, 388,-32768, 5148,-32768,-32768,-32768,-32768,-32768,-32768,
1163 -32768,-32768,-32768,-32768,-32768,-32768, 328, 1368, 1368, 378,
1164 -32768,-32768,-32768,-32768,-32768, 886, 327, 662, 388, 521,
1165 1578,-32768, 232,-32768,-32768,-32768,-32768,-32768, 3621,-32768,
1166 -32768, 398,-32768, 717, 725,-32768,-32768,-32768,-32768, 731,
1167 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1168 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1169 -32768,-32768, 730,-32768,-32768, 886, 4170, 1222,-32768, 737,
1170 769,-32768, 9299, 737, 737, 699, 10494,-32768, 1270, 744,
1171 -32768,-32768,-32768, 754,-32768,-32768, 9914, 10001, 10088, 10088,
1172 -32768,-32768,-32768,-32768,-32768, 772, 793, 797, 799, 801,
1173 428, 9386, 1270, 10088,-32768,-32768, 10088,-32768,-32768, 10088,
1174 7343,-32768, 10088, 10088, 768, 829,-32768, 9473,-32768, 10649,
1175 -32768, 453, 1785, 9560,-32768, 887, 2644, 794, 2796, 1926,
1176 5618,-32768, 364,-32768, 2939, 1518, 798, 806, 1734, 601,
1177 -32768, 620,-32768,-32768,-32768,-32768,-32768,-32768, 528, 605,
1178 629, 713, 544,-32768,-32768,-32768, 121, 289, 865,-32768,
1179 -32768,-32768, 1004,-32768,-32768,-32768,-32768,-32768, 5209,-32768,
1180 -32768, 5148, 5386, 1941,-32768, 737, 912,-32768, 442,-32768,
1181 -32768,-32768, 2859,-32768,-32768, 2859,-32768, 820,-32768,-32768,
1182 3621, 57, 823, 828,-32768,-32768,-32768,-32768,-32768,-32768,
1183 -32768, 77,-32768,-32768,-32768,-32768, 7435, 9386,-32768,-32768,
1184 -32768, 9386, 796,-32768, 6763, 104, 3685,-32768, 3685,-32768,
1185 3904, 3904, 5038, 831,-32768, 388, 5148,-32768, 834,-32768,
1186 -32768, 4096, 2002, 1750, 5148,-32768, 388,-32768,-32768, 388,
1187 2002,-32768, 733,-32768,-32768, 328,-32768, 1368,-32768, 2037,
1188 3361, 37, 886, 692, 852, 388,-32768,-32768, 869, 880,
1189 893,-32768,-32768,-32768,-32768, 670,-32768, 376, 862, 866,
1190 -32768,-32768, 886,-32768,-32768, 500,-32768,-32768, 699,-32768,
1191 -32768,-32768,-32768,-32768, 10545,-32768,-32768,-32768, 737,-32768,
1192 5148, 2125,-32768, 896, 918,-32768,-32768, 1270, 9386, 754,
1193 7343,-32768, 386, 7343,-32768,-32768,-32768, 9299, 5129, 5129,
1194 5129, 5129, 10717,-32768,-32768,-32768,-32768, 870, 10175, 10175,
1195 7343, 877, 557, 879, 932, 883,-32768,-32768,-32768, 7964,
1196 7152, 7343,-32768, 8056, 9386, 9386, 7527, 9386, 9386, 9386,
1197 9386, 9386, 9386, 9386, 9386, 9386, 9386, 9386, 9386, 9386,
1198 9386, 9386, 9386, 9386, 9386, 9386,-32768,-32768,-32768,-32768,
1199 -32768, 9386, 9386, 9386, 9299, 2243, 302, 766, 8235,-32768,
1200 -32768,-32768, 939, 992, 396, 436, 445, 2995, 414,-32768,
1201 -32768, 1530, 1530,-32768, 1717, 888, 908, 964,-32768,-32768,
1202 465, 8742, 1604,-32768, 548, 327,-32768,-32768, 9386,-32768,
1203 -32768,-32768,-32768, 284,-32768,-32768,-32768,-32768,-32768,-32768,
1204 -32768, 31,-32768, 922, 906, 601, 957,-32768,-32768,-32768,
1205 650, 209, 982, 346, 963, 965,-32768,-32768, 2187, 10550,
1206 2187, 3219, 1130, 4466,-32768, 973,-32768,-32768,-32768,-32768,
1207 -32768,-32768,-32768,-32768, 919,-32768, 961,-32768,-32768, 236,
1208 563, 977, 932,-32768,-32768,-32768,-32768, 6873, 10717,-32768,
1209 829, 921, 10649,-32768,-32768, 934,-32768,-32768, 935, 172,
1210 4015, 941,-32768, 192, 5055, 987, 991, 476,-32768,-32768,
1211 -32768, 3685, 3685,-32768, 4096, 993,-32768,-32768, 944, 104,
1212 -32768, 2002,-32768, 994, 388,-32768, 605, 629,-32768, 970,
1213 -32768, 558, 1000,-32768,-32768, 287,-32768,-32768, 1392,-32768,
1214 707, 368,-32768, 9386, 6270,-32768, 2632, 199, 199, 315,
1215 488, 4322, 5814, 4905,-32768, 114, 199, 1010, 388, 71,
1216 -32768, 104, 1333, 699, 699, 699, 104, 1333,-32768,-32768,
1217 -32768,-32768,-32768,-32768, 1045, 1045, 1045, 737,-32768,-32768,
1218 -32768,-32768,-32768,-32768, 9386, 1270, 972, 918, 975, 978,
1219 9653, 964, 988, 989, 995, 1016, 2416, 1021, 1025, 1031,
1220 -32768, 998,-32768,-32768, 1002,-32768,-32768, 10717, 1051, 659,
1221 665, 191, 128, 9386, 1061,-32768, 1065, 1018,-32768, 10717,
1222 10717, 10717,-32768,-32768, 1073, 10735, 8261, 4799, 3709, 5757,
1223 3558, 3889, 3136, 3136, 3136, 1159, 1159, 952, 952, 719,
1224 719, 719,-32768,-32768, 1033, 1028, 1034, 1038, 1040, 5129,
1225 302,-32768, 7435, 9386,-32768,-32768,-32768, 9386,-32768,-32768,
1226 1049, 10088, 1048, 1062, 1105,-32768, 9386,-32768, 9386,-32768,
1227 9386, 3668,-32768, 3668,-32768, 138, 1053, 1055,-32768, 1056,
1228 5129, 104,-32768, 104, 3804,-32768, 1333, 1057, 8934, 8934,
1229 6571, 1058, 9473, 1063, 2499, 1518, 570, 1066, 1734, 1071,
1230 9740,-32768, 1075,-32768,-32768,-32768, 2262, 5209,-32768, 5129,
1231 1109, 1797, 1797, 4709,-32768,-32768,-32768,-32768, 2290,-32768,
1232 -32768,-32768, 815, 9386,-32768,-32768,-32768,-32768,-32768,-32768,
1233 528,-32768, 713, 544, 9386, 1124,-32768, 525, 553, 582,
1234 932,-32768,-32768,-32768, 24,-32768,-32768,-32768,-32768,-32768,
1235 -32768,-32768, 8838,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1236 -32768, 991, 1125,-32768,-32768,-32768, 5129,-32768,-32768,-32768,
1237 -32768, 1137,-32768, 9299,-32768,-32768,-32768,-32768, 1867,-32768,
1238 1333, 10717,-32768,-32768,-32768, 388, 388,-32768,-32768,-32768,
1239 -32768,-32768, 1333, 379, 704, 9386, 733,-32768, 1135,-32768,
1240 -32768,-32768, 610, 783, 792, 414, 1095, 199, 1143,-32768,
1241 1171,-32768,-32768,-32768, 388, 5463,-32768,-32768, 7435,-32768,
1242 1094, 737, 737, 737,-32768, 1096, 104, 1333, 104, 1333,
1243 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 10717,-32768,
1244 -32768, 1098,-32768,-32768,-32768,-32768,-32768, 1111, 1120, 1121,
1245 1126, 919,-32768, 10581, 7435, 6968, 1107,-32768, 9386,-32768,
1246 -32768,-32768,-32768, 367, 1112,-32768,-32768, 1114, 217, 372,
1247 372, 1106, 372,-32768,-32768, 10088, 1221,-32768, 1122, 1123,
1248 1138,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 104,
1249 1139,-32768, 1118,-32768,-32768, 2999,-32768,-32768,-32768, 133,
1250 1140,-32768,-32768,-32768,-32768,-32768, 1899, 1899, 2060, 2060,
1251 4709,-32768, 2290,-32768, 2139, 10545,-32768,-32768, 1141,-32768,
1252 563,-32768, 9386,-32768, 9386,-32768, 9386,-32768, 26, 7060,
1253 -32768, 9027, 9027, 6667, 203, 1142, 220,-32768, 7435, 7247,
1254 -32768,-32768, 135, 7435, 7435,-32768, 1149, 1150, 2037,-32768,
1255 -32768,-32768, 104, 1153, 1180, 1180, 104, 1158, 9386, 9386,
1256 6034, 388, 4339, 388, 388, 684, 388, 4925, 1180, 5687,
1257 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1166,-32768,
1258 1172,-32768,-32768,-32768, 9386, 9386, 9386, 9386, 7435,-32768,
1259 9386, 1184,-32768,-32768, 10717, 9386,-32768, 367,-32768,-32768,
1260 -32768,-32768,-32768,-32768, 1156,-32768, 1205,-32768,-32768,-32768,
1261 104,-32768,-32768,-32768, 9386,-32768,-32768, 1899, 1899,-32768,
1262 2139,-32768,-32768, 1173, 1178, 1181, 1193, 1270,-32768,-32768,
1263 6477, 1247,-32768,-32768, 1182, 1610,-32768,-32768,-32768,-32768,
1264 5129,-32768,-32768,-32768, 7435,-32768,-32768,-32768,-32768,-32768,
1265 -32768,-32768,-32768,-32768, 6034, 6034,-32768, 1180, 446, 770,
1266 9386,-32768,-32768,-32768, 733, 733, 1180, 1180, 670, 1180,
1267 -32768,-32768, 6143, 104, 104,-32768,-32768, 1189, 1194, 1197,
1268 1201,-32768, 10672, 7435, 1203,-32768,-32768,-32768,-32768, 104,
1269 1204,-32768,-32768,-32768,-32768, 1193,-32768,-32768, 723,-32768,
1270 142, 1231, 807, 856,-32768,-32768,-32768,-32768,-32768, 9386,
1271 1254, 1259, 1260, 9120, 107, 581,-32768,-32768, 9212, 1313,
1272 1262,-32768, 4846, 10449, 4560, 6365,-32768,-32768, 1308,-32768,
1273 -32768,-32768, 8346,-32768, 306,-32768,-32768, 104, 104,-32768,
1274 -32768,-32768, 9386, 9386, 6034, 388, 388,-32768,-32768,-32768,
1275 -32768, 8148,-32768,-32768,-32768,-32768, 104, 104,-32768,-32768,
1276 -32768,-32768, 7435,-32768,-32768,-32768,-32768,-32768,-32768, 1270,
1277 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 932, 1232,
1278 1235, 5887,-32768,-32768,-32768,-32768, 1264, 9386, 1269,-32768,
1279 932,-32768,-32768, 1237,-32768,-32768, 733, 841,-32768, 904,
1280 733, 9827, 913, 185,-32768,-32768,-32768,-32768,-32768,-32768,
1281 -32768,-32768, 6034, 6034,-32768, 1180, 1180, 1224, 10603, 1240,
1282 -32768,-32768,-32768, 1242,-32768, 585, 585,-32768,-32768, 1326,
1283 5980, 9299, 9386,-32768, 8456,-32768, 1285,-32768,-32768, 692,
1284 -32768,-32768, 10262, 10262, 7619,-32768,-32768, 932,-32768,-32768,
1285 -32768,-32768,-32768,-32768,-32768, 331, 236, 2554,-32768,-32768,
1286 9299,-32768,-32768, 8648,-32768, 26,-32768,-32768, 1287,-32768,
1287 1239, 201, 5148, 10695, 8456,-32768,-32768, 1193, 52,-32768,
1288 143,-32768, 1241, 1243, 932, 1244, 932, 8552,-32768, 643,
1289 -32768,-32768,-32768,-32768, 733,-32768,-32768, 1193, 1339, 1291,
1290 -32768,-32768, 77,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1291 -32768,-32768,-32768,-32768, 9386, 1297, 7711, 932, 388, 8456,
1292 1266, 157, 1301,-32768,-32768,-32768,-32768,-32768, 26,-32768,
1293 1256,-32768,-32768, 1306,-32768,-32768, 1303,-32768, 9386, 1339,
1294 1316, 1339,-32768,-32768,-32768,-32768,-32768,-32768, 1273, 193,
1295 -32768,-32768, 7803,-32768, 7435,-32768, 1358, 1319, 1275,-32768,
1296 -32768, 190,-32768,-32768, 1363, 1325, 8552,-32768,-32768,-32768,
1297 -32768, 1393, 1394,-32768
1298 };
1299
1300 static const short yypgoto[] = {-32768,
1301 1398,-32768, -324,-32768, 996, 2, 0, 1397,-32768, 392,
1302 -32768,-32768, 492, 1054,-32768, 9,-32768,-32768, -586,-32768,
1303 -32768, 531,-32768, 1249, -655, -14, -644, 1267, 25,-32768,
1304 -32768,-32768,-32768,-32768, 700, 708,-32768,-32768,-32768,-32768,
1305 -32768, 335, 176,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1306 -32768,-32768,-32768,-32768, 1345, -619, 5219, 47, -164, 72,
1307 1304, 946,-32768,-32768,-32768, -36,-32768, 34,-32768, -1369,
1308 -32768, -1382, -102,-32768, 313, 374, -251,-32768, -810, 2843,
1309 -42, 4754, 3156, 1168,-32768, -104, -3, 171, -45, -23,
1310 -32768,-32768,-32768, -321,-32768, -142,-32768,-32768, -1241, -49,
1311 -339, 1165, 51, 885, -138, -1, 4157, -182, -4, -92,
1312 -657, 148,-32768, -63,-32768,-32768, -176,-32768,-32768,-32768,
1313 -32768,-32768, 639, 30, -2,-32768, 574,-32768,-32768, -1031,
1314 -143, 788,-32768,-32768,-32768,-32768,-32768, 303,-32768,-32768,
1315 -32768,-32768,-32768, 690, -362,-32768,-32768,-32768,-32768,-32768,
1316 -32768,-32768, 1245,-32768, 333, 504,-32768,-32768,-32768,-32768,
1317 470, -701, 742,-32768,-32768,-32768,-32768,-32768, 739,-32768,
1318 334, 976, 726, 909, 1728, 66, -5, -409, 1312, 1651,
1319 -437,-32768, 1,-32768, 2919, -127, 5, -11, 3697, 1164,
1320 -32768, 4316, 1484, 974, -22, -117,-32768, 1372,-32768, 3773,
1321 2378, -401,-32768, 1977,-32768,-32768, 197, -872, -1145,-32768,
1322 -32768, 293, 23, -356,-32768,-32768,-32768,-32768, -1329,-32768,
1323 -1237, -1379,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1324 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 49,-32768,-32768,
1325 -32768,-32768,-32768, 53, -1234,-32768,-32768,-32768, -56,-32768,
1326 -32768,-32768,-32768, -1362, -7,-32768, -8,-32768, -653, -502,
1327 575,-32768,-32768,-32768,-32768, -369,-32768, -357, -167,-32768,
1328 968, 309,-32768, 196,-32768, -213
1329 };
1330
1331
1332 #define YYLAST 10820
1333
1334
1335 static const short yytable[] = { 58,
1336 603, 121, 56, 37, 178, 36, 921, 366, 444, 645,
1337 151, 229, 41, 402, 102, 910, 643, 471, 394, 397,
1338 1046, 646, 717, 963, 612, 625, 278, 374, 45, 699,
1339 908, 58, 992, 236, 56, 37, 58, 36, 153, 56,
1340 37, 1349, 36, 463, 41, 512, 515, 172, 1449, 41,
1341 1109, 191, 443, 460, 54, 666, 902, 1372, 206, 1208,
1342 45, 451, 581, 1471, 1469, 45, 226, 581, 1387, 325,
1343 347, 1466, 158, 351, 738, 1390, 543, 663, 276, 352,
1344 190, 581, 240, 1110, 409, 194, 54, 202, 1492, 1001,
1345 879, 54, 858, 483, 1006, 236, 139, 143, 1460, 858,
1346 -1, 340, 340, 1231, 1232, 291, 449, 452, 424, 94,
1347 109, 110, 474, 159, 1479, -2, 372, 1252, 87, 497,
1348 498, 377, 151, 151, 151, 233, 1524, 1515, 375, 376,
1349 384, 447, 615, 383, 1111, 664, 1209, 1489, 85, 236,
1350 880, 1015, -329, 1482, 1018, 172, 410, 739, 277, 929,
1351 153, 153, 153, 151, 425, 58, 92, 483, 56, 381,
1352 284, 1480, 285, 111, 112, 688, 657, 1492, 1516, 1447,
1353 1539, 341, 341, 772, 993, 88, 172, 1456, 785, 411,
1354 998, 153, 137, 929, 45, 382, 860, 1368, 86, 100,
1355 -127, 206, 1195, 93, 1221, 89, 106, 930, 114, 206,
1356 931, -329, 1352, 935, 150, 410, 1322, 386, 197, 198,
1357 54, 393, 396, 1071, 14, 1328, 1329, 1477, 1330, 1520,
1358 202, 651, 652, 919, 994, 15, 16, 240, 450, 202,
1359 -388, 930, 585, 1177, 931, 932, -793, 21, 411, 215,
1360 427, 429, 1196, 1349, 1222, 1352, 24, 786, 591, 1545,
1361 -278, 936, 1353, -126, 937, 1537, 516, 517, 466, -388,
1362 697, 107, 1518, -388, 591, 136, 1521, -593, 703, 932,
1363 887, 525, 226, 670, 526, 108, 578, 527, 340, 472,
1364 537, 538, 502, 134, 532, 383, 1097, 1098, 478, 938,
1365 136, 580, 612, 957, 771, 1427, -278, -278, 364, 1546,
1366 1083, 883, 1538, 394, 397, 702, 922, 1134, 156, -388,
1367 771, 500, -271, -593, -593, 645, 340, 395, 398, 1138,
1368 391, 740, 301, 1493, 958, 473, 1180, 942, 276, -593,
1369 8, 9, 648, 586, 760, 1506, 226, 501, 27, 968,
1370 372, 603, 416, 90, 163, 1510, 240, 150, 341, 832,
1371 449, 452, 157, -280, 1159, 165, 1161, 499, 449, 417,
1372 203, 630, 1523, 91, 1431, 1432, 833, 1266, 858, 629,
1373 452, 126, 127, 969, 642, 126, 127, 970, 191, 169,
1374 474, 1534, 170, 129, 130, 674, 341, 633, 418, 705,
1375 452, 858, -553, 455, 457, 834, 1162, 1163, 277, -280,
1376 -280, 8, 476, -553, 1551, 888, 470, 151, 151, 151,
1377 971, 608, 194, 202, 832, -274, 1361, 126, 127, 19,
1378 681, 889, 27, 751, 129, 130, 27, 155, 129, 130,
1379 858, 833, 162, 591, 279, 153, 153, 153, -553, 171,
1380 221, 1139, 836, 846, 644, 126, 127, 206, 992, -553,
1381 439, 762, 837, 87, 129, 130, 58, 609, 1073, 733,
1382 834, 1176, 725, 206, 223, 466, 838, 204, 205, 752,
1383 129, 130, 450, 202, 532, 1404, 466, 532, 477, 771,
1384 450, 774, 137, 848, 1406, 1407, 525, 526, 524, 847,
1385 644, 534, 850, 203, 532, 39, 692, 693, 129, 130,
1386 567, 203, 203, 126, 127, 532, 340, 731, 1323, 340,
1387 804, 732, 866, 340, 777, 777, 777, 777, 645, 578,
1388 87, 717, 477, 946, 621, 643, 340, 39, 203, 849,
1389 646, 202, 39, 137, 288, 972, 826, 340, 851, 568,
1390 569, 953, 843, 955, 570, 571, 572, 573, 959, 437,
1391 438, 8, 9, 138, 612, 290, 129, 130, 867, 868,
1392 758, 115, 116, 117, 1108, 911, 707, 708, 467, 947,
1393 340, 276, 1102, 8, 9, 90, 341, 349, 203, 341,
1394 232, 973, 353, 341, 341, 341, 341, 341, 858, 895,
1395 642, 900, 901, 1014, 483, 91, 341, 681, 357, 1497,
1396 1104, 366, 395, 398, 129, 130, 240, 341, 121, 449,
1397 912, 858, 358, 27, 468, 118, 119, 27, 1103, 913,
1398 914, 543, 293, 367, 368, 10, 129, 130, 232, 1106,
1399 378, 901, 1440, 706, -338, 191, 15, 16, 920, 226,
1400 341, 277, 203, 1370, 1185, 1378, 1105, 1383, 1181, 1182,
1401 477, 1184, 359, 360, 361, 136, 915, 852, 854, 354,
1402 644, 22, 615, 919, 966, 967, -271, 644, -338, 194,
1403 399, 202, -338, 995, 27, 1107, 28, 311, 1441, 89,
1404 642, 534, 978, 355, 534, 171, 203, 126, 1249, 1047,
1405 1494, 717, 400, 94, 109, 110, -588, 359, 360, 361,
1406 395, 782, 296, 91, 27, -338, 362, 363, 33, 772,
1407 202, -7, 534, 88, 445, 446, 795, 749, 408, 90,
1408 58, -124, 58, 733, 90, 733, 725, -125, 191, 58,
1409 671, 450, 733, 89, 466, 725, 1495, 671, 642, 91,
1410 129, 130, 420, 642, 91, 203, 203, 111, 112, 113,
1411 644, 362, 363, 203, 960, 464, 977, 987, 88, 15,
1412 16, 90, 194, 750, 477, 203, 1140, 356, 466, 126,
1413 127, 731, 874, 731, -158, 732, -158, 732, 89, 731,
1414 731, 91, 1350, 1351, 732, 203, 421, 136, 1129, 1130,
1415 1131, 672, 1462, 481, 7, 8, 230, 10, 679, 1055,
1416 961, 1052, 565, 566, 203, 1483, 886, -339, 644, 15,
1417 16, 479, 490, 644, 491, 1002, 1003, 1004, 903, 480,
1418 27, 671, 129, 130, 88, 777, 525, 526, 493, 1049,
1419 15, 16, 1324, 22, 532, -388, 836, 1154, 1155, 1156,
1420 231, -339, 482, 795, 89, -339, 837, 509, 28, 29,
1421 94, 95, 96, 236, 507, 1152, 777, 115, 116, 117,
1422 838, 88, 642, -388, -388, 518, 681, 519, -388, 1355,
1423 151, 520, 232, 521, -44, 522, 240, 539, -339, -44,
1424 33, 89, 769, 642, 671, 777, 671, 671, 540, 642,
1425 -44, 1170, 1173, 197, 198, 341, 633, 581, 153, 14,
1426 437, 1421, 27, 590, 97, 98, 99, 616, 675, 151,
1427 90, 118, 119, 1142, 671, 617, 741, 1127, 1356, 1144,
1428 1145, 671, 21, 1142, 1147, 628, 341, 1145, 681, 655,
1429 91, 24, 644, -6, 852, 854, 644, 153, 658, 236,
1430 694, 874, 777, 744, 203, 825, 698, 827, 828, 340,
1431 1011, 1012, 1013, 644, 745, 341, 642, 1087, 1088, 644,
1432 765, 394, 397, 445, 1422, 772, 1173, 746, 642, 126,
1433 127, 493, 437, 1426, 753, 1217, 1219, 766, 754, 781,
1434 1223, 1224, 878, 203, 394, 397, 783, 490, 784, 491,
1435 664, 58, 786, 844, 733, 466, 466, 725, 644, 845,
1436 859, 861, 1409, 642, 203, 642, 293, 367, 368, 10,
1437 128, 863, 341, 1186, 1419, 881, 882, 884, 21, 341,
1438 27, 909, 129, 130, 466, 1262, 644, 890, -274, 891,
1439 926, 233, 562, 563, 564, 565, 566, 904, 644, 410,
1440 395, 782, 731, 927, 928, 22, 732, 236, 126, 127,
1441 934, -792, 238, 474, 621, 944, 949, 948, 951, 956,
1442 28, 311, 886, 954, 150, 151, 151, 151, 645, 525,
1443 526, 1409, 996, 644, 696, 644, 238, 532, 920, 203,
1444 1464, 1317, 1021, 671, 1023, 704, 642, 1024, 151, 151,
1445 151, 1028, 33, 153, 153, 153, 1029, 1025, 1026, 27,
1446 1030, 129, 130, 1116, 1027, 238, 1031, 1032, 1487, 681,
1447 1409, 1033, 772, -123, 238, 484, 153, 153, 153, -102,
1448 1344, 15, 16, 1035, 1036, 485, 666, 1038, 1258, 1259,
1449 1260, 1261, 94, 95, 96, 1039, 207, 208, 209, 1265,
1450 1041, 1409, 1040, 1054, 1042, 58, 671, 1043, 733, 1044,
1451 1057, 725, 1058, -102, 1198, 1199, 644, -102, 238, 671,
1452 1056, 671, 1064, 671, 1065, 1086, 210, 1074, 1066, 1072,
1453 466, 466, 1075, 466, 466, 1077, 466, 1198, 1199, 644,
1454 1079, 1326, 1327, 1101, 27, 1082, 97, 98, 211, 1119,
1455 -102, 238, 478, 671, 1143, -100, 731, 15, 16, 1403,
1456 732, 1126, 1148, 1153, 1165, 1157, 1305, 1048, 1164, 1304,
1457 1300, 1172, 1299, 1166, 1167, 238, 777, 1174, 1183, 1168,
1458 1059, 1178, 1060, 1179, 1061, 126, 127, 671, 1187, -100,
1459 1194, 1188, 1189, -100, 212, 213, 214, 560, 561, 562,
1460 563, 564, 565, 566, 417, 671, 1264, 1190, 1193, 1197,
1461 1202, 1216, 1268, 1377, 1081, 1377, 537, 1367, 1226, 1227,
1462 395, 398, 1230, 639, 466, 466, -100, 1234, 1267, 483,
1463 338, 348, 94, 109, 110, 1256, 27, 1459, 129, 130,
1464 1208, 1257, 1272, 395, 1215, 1172, 341, 1273, 1099, 1275,
1465 1274, 1315, 484, 1354, 1305, 394, 397, 1304, 1339, 191,
1466 1299, 1305, 485, 1340, 1304, 1300, 1341, 1299, 1305, 639,
1467 1342, 1304, 1300, 1347, 1299, 1345, 1363, 447, 238, 1364,
1468 1365, 1373, 1375, 1388, 1416, 1411, 111, 112, 1412, 1418,
1469 1420, 1417, 1433, 194, 202, 1438, 8, 9, 1435, 380,
1470 12, 13, 1445, 952, 677, 1457, 14, 1473, 1474, 1501,
1471 1485, 1505, 1486, 1488, 466, 466, 466, 1512, 151, 1519,
1472 1522, 17, 238, 18, 19, 1525, 1526, 1528, 1541, 21,
1473 94, 95, 96, 1548, 804, 1450, 1531, 997, 24, 1543,
1474 525, 526, 1536, 1278, 1544, 1549, 153, 27, 532, 129,
1475 130, 1540, 1553, 1554, 115, 707, 708, 1, 5, 151,
1476 151, 151, 660, 1475, 1450, 627, 1305, 1452, 406, 1304,
1477 1305, 1499, 1299, 1304, 1300, 671, 1299, 671, 1084, 671,
1478 340, 1461, 466, 466, 97, 98, 407, 153, 153, 153,
1479 678, 238, 988, 642, 964, 1203, 1452, 287, 759, 1305,
1480 1443, 387, 1304, 1300, 1550, 1299, 489, 496, 118, 119,
1481 1305, 1380, 1078, 1304, 1300, 925, 1299, 1022, 1511, 238,
1482 1450, 1228, 1132, 1305, 459, 1150, 1304, 1300, 965, 1299,
1483 1369, 990, 7, 126, 127, 10, 1204, 277, 1205, 639,
1484 1206, 1251, 1529, 768, 831, 536, 639, 79, 692, 693,
1485 341, 1020, 1452, 440, 365, 1305, 804, 103, 1304, 1300,
1486 587, 1299, 1386, 644, 1314, 1507, 277, 671, 132, 1484,
1487 1478, 22, 1530, 1532, 141, 141, 1118, 141, 231, 79,
1488 610, 8, 9, 0, 79, 1405, 28, 29, 466, 1316,
1489 0, 0, 0, 126, 127, 0, 0, 185, 13, 79,
1490 0, 0, 1305, 638, 0, 1304, 1300, 218, 1299, 0,
1491 232, 0, 1116, 0, 103, 0, 301, 611, 33, 22,
1492 0, 238, 277, 0, 0, 242, 103, 0, 1271, 639,
1493 0, 0, 27, 0, 129, 130, 0, 591, 238, 0,
1494 94, 109, 110, 469, 27, 0, 129, 130, 103, 0,
1495 0, 0, 0, 0, 395, 1215, 0, 0, 0, 0,
1496 592, 0, 0, 0, 1135, 1136, 0, 203, 0, 0,
1497 593, 132, -549, 0, 0, -549, 132, 0, 79, 22,
1498 594, -280, 141, 595, 596, 389, 141, 639, 0, 141,
1499 141, 141, 639, 1149, 111, 112, -280, -280, 0, 0,
1500 0, -280, 0, 79, 0, 0, 0, 0, 0, 0,
1501 0, 863, 0, 0, 0, 0, 0, -280, 185, 185,
1502 185, 0, 0, -549, 0, -549, -549, 950, -549, -280,
1503 -280, 0, -280, 0, -280, 770, 0, 0, 773, -549,
1504 0, -549, 775, 776, 778, 779, 780, 185, 0, 0,
1505 0, 0, 0, 0, 671, 536, 0, -549, -549, 0,
1506 0, -549, 458, -280, -280, 0, 798, -280, 0, 1000,
1507 103, 0, 0, -549, 1005, 0, 0, 0, 0, -280,
1508 8, 9, 141, 380, 12, 13, 0, 0, 677, 0,
1509 14, 0, 0, 0, 0, 0, 94, 109, 110, 829,
1510 618, 619, 620, 0, 0, 17, 0, 18, 19, 0,
1511 0, 639, 0, 21, 203, 639, 196, 197, 198, 856,
1512 103, 486, 24, 14, 591, 0, 856, 0, 0, 0,
1513 79, 27, 639, 129, 130, 0, 0, 0, 639, 1237,
1514 1238, 19, 1247, 1248, 0, 1250, 21, 592, 8, 9,
1515 111, 112, 12, 13, 0, 24, 0, 593, 14, 7,
1516 8, 9, 10, 0, 0, 13, 0, 594, 239, 0,
1517 595, 596, 0, 17, 678, 18, 103, 639, 0, 0,
1518 588, 21, 486, 486, 605, 428, 430, 434, 0, 1067,
1519 24, 1068, 0, 0, 0, 132, 0, 0, 22, 27,
1520 0, 129, 130, 574, 591, 639, 0, 0, 238, 638,
1521 238, 27, 0, 28, 29, 0, 132, 639, 0, 0,
1522 0, 0, 103, 0, 0, 185, 103, 892, 0, 115,
1523 707, 708, 238, 1320, 1321, 0, 141, 893, 575, 141,
1524 0, 401, 0, 0, 141, 33, 0, 594, 0, 0,
1525 894, 596, 639, 0, 639, 0, 0, 710, 0, 0,
1526 426, 7, 8, 9, 10, 0, 0, 225, 0, 0,
1527 185, 0, 185, 442, 185, 185, 185, 0, 0, 0,
1528 185, 27, 0, 118, 119, 185, 0, 0, 185, 126,
1529 127, 0, 0, 197, 198, 0, 0, 0, 0, 14,
1530 22, 0, 0, 0, 79, 0, 591, 196, 197, 198,
1531 0, 0, 0, 27, 14, 28, 29, 0, 238, 0,
1532 0, 0, 21, 1395, 1396, 1397, 0, 0, 0, 892,
1533 0, 24, 19, 591, 1158, 639, 1160, 21, 0, 893,
1534 27, 0, 129, 130, 185, 0, 24, 33, 0, 594,
1535 0, 0, 894, 596, 1045, 0, 592, 0, 639, 0,
1536 0, 649, 103, 103, 103, 103, 593, 0, 448, 197,
1537 198, 0, 0, 0, 0, 14, 594, 0, 0, 602,
1538 596, 0, 0, 0, 0, 798, 0, 0, 0, 0,
1539 0, 1429, 1430, 19, 0, 856, 0, 1192, 21, 115,
1540 707, 708, 0, 709, 0, 0, 0, 24, 0, 238,
1541 0, 0, 638, 0, 1085, 0, 0, 0, 856, 103,
1542 0, 486, 7, 8, 9, 10, 238, 710, 13, 0,
1543 0, 0, 588, 0, 711, 486, 486, 690, 605, 691,
1544 0, 428, 430, 434, 0, 875, 0, 0, 0, 877,
1545 0, 27, 701, 118, 119, 0, 0, 856, 0, 0,
1546 1229, 22, 0, 0, 1233, 0, 0, 591, 0, 0,
1547 0, 1121, 0, 0, 27, 0, 28, 29, 1128, 238,
1548 0, 0, 185, 899, 185, 185, 218, 605, 0, 0,
1549 1089, 196, 197, 198, 0, 0, 0, 1517, 14, 0,
1550 1090, 7, 8, 9, 10, 0, 0, 474, 33, 0,
1551 594, 0, 0, 1091, 596, 0, 19, 0, 1269, 0,
1552 0, 21, 695, 0, 185, 0, 0, 700, 899, 0,
1553 24, 0, 0, 0, 0, 185, 185, 0, 185, 0,
1554 22, 0, 0, 0, 0, 763, 591, 0, 0, 7,
1555 8, 9, 10, 27, 742, 28, 29, 0, 0, 747,
1556 0, 0, 0, 0, 0, 132, 0, 0, 79, 892,
1557 79, 755, 756, 0, 757, 985, 79, 79, 0, 893,
1558 0, 1335, 1336, 0, 0, 0, 103, 33, 22, 594,
1559 0, 103, 894, 596, 591, 0, 0, 1346, 486, 486,
1560 486, 27, 0, 28, 29, 0, 8, 9, 0, 0,
1561 12, 13, 0, 0, 0, 856, 14, 892, 0, 0,
1562 486, 0, 0, 0, 94, 109, 110, 893, 207, 208,
1563 209, 17, 0, 18, 0, 33, 0, 594, 856, 21,
1564 894, 596, 0, 0, 0, 1391, 1392, 0, 24, 0,
1565 0, 0, 7, 8, 9, 10, 0, 27, 210, 129,
1566 130, 0, 0, 0, 1401, 1402, 0, 0, 0, 0,
1567 0, 0, 0, 103, 0, 600, 604, 607, 111, 112,
1568 0, 0, 639, 0, 0, 864, 865, 0, 0, 0,
1569 864, 22, 0, 0, 0, 486, 830, 486, 231, 0,
1570 0, 0, 690, 691, 103, 701, 28, 29, 486, 0,
1571 103, 0, 875, 875, 875, 0, 0, 0, 0, 1076,
1572 7, 126, 127, 10, 0, 0, 13, 0, 0, 0,
1573 232, 103, 0, 103, 0, 185, 185, 1093, 33, 0,
1574 0, 82, 983, 0, 0, 1121, 0, 0, 0, 0,
1575 0, 105, 0, 0, 0, 0, 0, 0, 0, 22,
1576 0, 125, 133, 7, 126, 127, 10, 0, 142, 142,
1577 0, 142, 27, 82, 28, 29, 1093, 0, 82, 126,
1578 127, 0, 0, 197, 198, 0, 0, 0, 31, 14,
1579 103, 142, 0, 82, 0, 0, 0, 0, 32, 0,
1580 0, 219, 22, 0, 103, 0, 33, 0, 227, 0,
1581 0, 34, 21, 0, 0, 27, 103, 28, 29, 0,
1582 227, 24, 0, 591, 0, 0, 0, 0, 0, 1146,
1583 27, 146, 129, 130, 0, 0, 1007, 0, 1009, 79,
1584 0, 147, 0, 0, 0, 0, 592, 0, 0, 33,
1585 0, 103, 0, 103, 148, 0, 593, 0, 0, 0,
1586 0, 293, 8, 9, 10, 373, 594, 0, 0, 595,
1587 596, 0, 82, 0, 0, 0, 142, 0, 0, 0,
1588 142, 0, 0, 142, 142, 142, 0, 0, 0, 0,
1589 0, 0, 0, 486, 486, 0, 486, 82, 0, 0,
1590 22, 0, 428, 430, 434, 0, 0, 231, 0, 0,
1591 0, 0, 142, 142, 142, 28, 311, 8, 9, 0,
1592 380, 12, 13, 1050, 1051, 1463, 1053, 14, 853, 855,
1593 185, 185, 185, 185, 1093, 0, 0, 0, 185, 232,
1594 0, 142, 17, 434, 18, 19, 0, 33, 0, 536,
1595 21, 0, 0, 1070, 0, 1093, 1093, 1093, 0, 24,
1596 0, 0, 638, 0, 293, 367, 368, 10, 27, 0,
1597 129, 130, 0, 0, 0, 897, 142, 600, 604, 0,
1598 607, 0, 0, 1095, 0, 0, 185, 0, 0, 0,
1599 0, 141, 720, 79, 7, 8, 721, 10, 380, 12,
1600 13, 0, 0, 22, 582, 14, 293, 367, 368, 10,
1601 231, 583, 0, 0, 227, 142, 0, 604, 28, 311,
1602 17, 0, 18, 19, 82, 0, 0, 0, 21, 0,
1603 0, 0, 0, 22, 0, 0, 0, 24, 722, 0,
1604 632, 185, 185, 0, 185, 22, 27, 1133, 28, 29,
1605 33, 0, 231, 0, 724, 0, 0, 0, 27, 1137,
1606 28, 311, 31, 0, 103, 0, 0, 0, 0, 0,
1607 227, 0, 32, 0, 589, 0, 142, 142, 606, 0,
1608 33, 0, 0, 614, 0, 34, 0, 0, 0, 373,
1609 0, 0, 584, 0, 0, 0, 0, 690, 691, 428,
1610 430, 434, 0, 0, 0, 701, 0, 0, 0, 0,
1611 0, 0, 0, 604, 0, 0, 227, 0, 0, 142,
1612 227, 0, 428, 430, 434, 0, 0, 0, 0, 0,
1613 142, 0, 0, 142, 0, 0, 0, 0, 142, 0,
1614 0, 0, 0, 0, 0, 0, 185, 899, 185, 0,
1615 0, 0, 1191, 1245, 0, 0, 0, 0, 0, 126,
1616 127, 0, 0, 0, 142, 0, 142, 0, 142, 142,
1617 142, 0, 0, 0, 142, 0, 0, 0, 0, 142,
1618 0, 1201, 142, 0, 0, 0, 0, 0, 1062, 0,
1619 1063, 0, 0, 7, 8, 9, 10, 719, 82, 0,
1620 0, 1069, 0, 591, 0, 853, 855, 0, 690, 691,
1621 27, 701, 129, 130, 0, 0, 0, 0, 0, 0,
1622 0, 7, 126, 127, 10, 1093, 592, 225, 853, 855,
1623 0, 0, 22, 0, 0, 0, 593, 0, 142, 0,
1624 1254, 0, 0, 0, 1255, 27, 594, 28, 29, 595,
1625 596, 174, 0, 0, 0, 0, 227, 227, 227, 227,
1626 22, 175, 0, 0, 0, 0, 1093, 1093, 1093, 0,
1627 0, 176, 0, 27, 0, 28, 29, 0, 0, 33,
1628 1270, 103, 75, 0, 177, 0, 0, 0, 0, 31,
1629 0, 0, 0, 0, 0, 0, 185, 0, 0, 32,
1630 0, 293, 8, 9, 10, 0, 0, 33, 0, 140,
1631 144, 0, 34, 227, 75, 142, 0, 1318, 0, 75,
1632 0, 1319, 0, 0, 0, 0, 0, 0, 0, 142,
1633 142, 0, 606, 0, 195, 0, 0, 0, 0, 876,
1634 22, 0, 0, 1337, 1338, 0, 0, 231, 0, 0,
1635 0, 614, 0, 0, 0, 28, 311, 293, 126, 127,
1636 10, 293, 8, 9, 10, 0, 0, 0, 125, 0,
1637 0, 0, 0, 0, 0, 0, 142, 606, 142, 142,
1638 219, 606, 0, 0, 0, 0, 0, 33, 0, 0,
1639 0, 0, 434, 0, 0, 0, 22, 0, 719, 0,
1640 22, 0, 0, 231, 0, 0, 0, 231, 0, 0,
1641 0, 28, 311, 385, 0, 28, 311, 388, 142, 0,
1642 0, 390, 606, 1062, 1063, 853, 855, 0, 0, 142,
1643 142, 1069, 142, 428, 430, 434, 0, 0, 75, 477,
1644 0, 0, 0, 33, 0, 0, 0, 33, 853, 855,
1645 0, 0, 0, 140, 144, 0, 0, 0, 0, 133,
1646 0, 0, 82, 0, 82, 0, 0, 0, 0, 986,
1647 82, 82, 7, 8, 9, 10, 187, 12, 188, 0,
1648 227, 0, 0, 14, 0, 227, 0, 0, 0, 0,
1649 0, 0, 142, 142, 142, 0, 0, 0, 17, 0,
1650 18, 19, 0, 0, 0, 0, 21, 0, 0, 0,
1651 0, 22, 0, 0, 142, 24, 0, 475, 0, 50,
1652 0, 0, 0, 0, 27, 0, 28, 29, 0, 0,
1653 189, 0, 0, 0, 1062, 1063, 0, 1069, 0, 0,
1654 31, 597, 597, 597, 0, 0, 50, 50, 0, 149,
1655 32, 50, 0, 0, 0, 0, 50, 0, 33, 0,
1656 0, 0, 0, 34, 0, 503, 0, 227, 0, 50,
1657 0, 50, 558, 559, 560, 561, 562, 563, 564, 565,
1658 566, 7, 8, 9, 10, 196, 197, 198, 0, 142,
1659 0, 142, 14, 0, 234, 0, 0, 0, 227, 0,
1660 0, 0, 142, 0, 227, 0, 876, 876, 876, 0,
1661 19, 0, 0, 614, 0, 21, 0, 0, 0, 0,
1662 22, 0, 0, 0, 24, 227, 591, 227, 0, 142,
1663 142, 606, 0, 27, 0, 28, 29, 0, 0, 0,
1664 0, 0, 0, 370, 0, 0, 0, 370, 370, 892,
1665 50, 0, 0, 0, 50, 0, 234, 0, 50, 893,
1666 0, 149, 149, 149, 0, 0, 0, 33, 0, 594,
1667 876, 653, 894, 596, 654, 50, 0, 0, 0, 656,
1668 0, 0, 0, 0, 227, 0, 0, 0, 0, 0,
1669 50, 50, 149, 0, 0, 0, 719, 0, 227, 0,
1670 234, 0, 0, 0, 0, 388, 0, 390, 0, 0,
1671 227, 0, 0, 0, 0, 0, 0, 0, 0, 50,
1672 475, 720, 0, 7, 8, 721, 10, 380, 12, 13,
1673 0, 0, 0, 82, 14, 0, 0, 0, 0, 737,
1674 0, 0, 0, 0, 0, 227, 0, 227, 0, 17,
1675 0, 18, 19, 20, 50, 0, 0, 21, -497, 0,
1676 0, 0, 22, 0, 0, 0, 24, 722, 0, 632,
1677 0, 0, 0, 0, 0, 27, 0, 28, 29, 0,
1678 0, 723, 0, 724, 0, 0, 0, 142, 142, 0,
1679 142, 31, 0, 0, 597, 597, 0, 597, 0, 0,
1680 0, 32, 50, 0, 873, 0, 0, 0, 0, 33,
1681 0, 0, 0, 0, 34, 0, 7, 126, 127, 10,
1682 0, 0, 13, 0, 142, 142, 142, 142, 606, 0,
1683 0, -497, 142, 0, 0, 0, 533, 0, 719, 0,
1684 0, 597, 0, 597, 597, 0, 597, 0, 0, 876,
1685 876, 876, 370, 0, 0, 22, 0, 0, 0, 0,
1686 234, 0, 0, 0, 0, 0, 719, 370, 27, 0,
1687 28, 29, 0, 7, 8, 9, 10, 0, 0, 13,
1688 142, 0, 0, 597, 146, 142, 0, 82, 370, 0,
1689 0, 0, 0, 0, 147, 0, 0, 50, 0, 0,
1690 0, 0, 33, 0, 0, 0, 0, 148, 50, 0,
1691 0, 50, 22, 0, 0, 0, 50, 0, 898, 0,
1692 0, 0, 0, 0, 0, 27, 0, 28, 29, 0,
1693 0, 0, 0, 0, 0, 142, 142, 0, 142, 0,
1694 0, 175, 50, 0, 50, 0, 149, 149, 149, 0,
1695 0, 176, 50, 0, 0, 0, 0, 50, 227, 33,
1696 50, 0, 0, 940, 177, 0, 0, 0, 0, 0,
1697 653, 654, 0, 656, 0, 0, 50, 0, 0, 597,
1698 0, 0, 0, 7, 126, 127, 10, 0, 0, 474,
1699 554, 555, 556, 557, 558, 559, 560, 561, 562, 563,
1700 564, 565, 566, 737, 0, 737, 0, 0, 0, 0,
1701 984, 991, 737, 0, 0, 0, 50, 0, 0, 0,
1702 0, 0, 22, 0, 0, 0, 533, 0, 0, 533,
1703 0, 126, 127, 0, 0, 27, 225, 28, 29, 0,
1704 142, 606, 142, 0, 533, 533, 533, 7, 8, 9,
1705 10, 31, 0, 225, 597, 0, 597, 533, 0, 0,
1706 77, 32, 0, 0, 0, 0, 0, 597, 0, 33,
1707 0, 873, 873, 873, 34, 591, 0, 0, 0, 0,
1708 0, 0, 27, 0, 129, 130, 22, 77, 77, 0,
1709 77, 0, 77, 0, 597, 597, 597, 77, 592, 27,
1710 0, 28, 29, 234, 0, 0, 0, 0, 593, 0,
1711 77, 0, 77, 0, 0, 175, 0, 533, 594, 876,
1712 0, 595, 596, 0, 0, 176, 0, 0, 0, 0,
1713 0, 0, 0, 33, 0, 873, 0, 0, 177, 552,
1714 553, 554, 555, 556, 557, 558, 559, 560, 561, 562,
1715 563, 564, 565, 566, 50, 50, 50, 50, 0, 0,
1716 876, 876, 876, 0, 0, 0, 154, 126, 127, 0,
1717 140, 144, 474, 0, 0, 227, 0, 0, 0, 0,
1718 0, 0, 0, 0, 0, 0, 186, 0, 0, 0,
1719 142, 77, 0, 0, 0, 77, 50, 0, 0, 77,
1720 50, 0, 77, 77, 77, 0, 0, 50, 50, 0,
1721 50, 591, 0, 0, 0, 0, 77, 0, 27, 0,
1722 129, 130, 0, 0, 0, 0, 0, 0, 0, 0,
1723 0, 77, 77, 77, 592, 0, 0, 0, 0, 0,
1724 50, 0, 50, 0, 593, 0, 0, 50, 50, 50,
1725 0, 0, 0, 0, 594, 0, 0, 595, 596, 0,
1726 77, 0, 0, 0, 0, 0, 7, 8, 9, 10,
1727 0, 0, 13, 0, 737, 0, 0, 0, 154, 154,
1728 154, 0, 0, 0, 0, 0, 533, 0, 0, 597,
1729 597, 597, 597, 597, 0, 77, 0, 597, 0, 0,
1730 0, 0, 0, 0, 0, 22, 0, 186, 186, 435,
1731 0, 0, 0, 0, 873, 873, 873, 0, 27, 0,
1732 28, 29, 555, 556, 557, 558, 559, 560, 561, 562,
1733 563, 564, 565, 566, 431, 0, 186, 0, 0, 0,
1734 0, 0, 0, 77, 432, 0, 0, 0, 0, 0,
1735 0, 0, 33, 0, 0, 0, 0, 433, 0, 0,
1736 0, 0, 0, 0, 0, 388, 390, 0, 0, 0,
1737 0, 0, 0, 475, 0, 0, 0, 7, 8, 9,
1738 10, 196, 197, 198, 533, 533, 533, 0, 14, 0,
1739 234, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1740 597, 597, 613, 597, 0, 0, 19, 50, 50, 149,
1741 487, 21, 0, 0, 234, 0, 22, 0, 0, 0,
1742 24, 1246, 591, 0, 0, 0, 1246, 0, 737, 27,
1743 0, 28, 29, 0, 0, 0, 0, 0, 77, 0,
1744 0, 0, 0, 0, 0, 892, 0, 0, 1115, 77,
1745 0, 0, 77, 0, 0, 893, 0, 77, 7, 8,
1746 9, 10, 0, 33, 474, 594, 0, 0, 933, 596,
1747 0, 599, 599, 599, 0, 0, 653, 654, 0, 656,
1748 0, 0, 0, 77, 0, 77, 0, 77, 77, 77,
1749 0, 0, 0, 77, 0, 0, 0, 22, 77, 0,
1750 234, 77, 0, 0, 0, 0, 0, 0, 0, 0,
1751 27, 50, 28, 29, 186, 0, 0, 77, 0, 0,
1752 0, 0, 0, 0, 0, 0, 175, 0, 0, 0,
1753 0, 0, 0, 8, 9, 0, 176, 12, 225, 0,
1754 0, 0, 0, 14, 33, 0, 0, 0, 0, 177,
1755 0, 0, 0, 0, 0, 0, 0, 77, 17, 186,
1756 18, 186, 0, 435, 435, 435, 21, 0, 0, 186,
1757 0, 0, 0, 0, 186, 24, 0, 186, 0, 0,
1758 0, 0, 1381, 0, 27, 0, 129, 130, 0, 0,
1759 0, 234, 0, 0, 0, 0, 0, 0, 0, 275,
1760 0, 0, 50, 50, 149, 149, 149, 0, 234, 0,
1761 50, 0, 6, 0, 7, 8, 9, 10, 11, 12,
1762 13, 0, 339, 339, 0, 14, 0, 1115, 1115, 1115,
1763 0, 0, 0, 186, 0, 0, 0, 0, 0, 0,
1764 17, 0, 18, 19, 0, 613, 0, 0, 21, 0,
1765 0, 0, 0, 22, 0, 0, 0, 24, 50, 0,
1766 405, 0, 0, 50, 0, 50, 27, 0, 28, 29,
1767 0, 0, 30, 0, 0, 0, 0, 0, 0, 0,
1768 0, 0, 31, 0, 974, 975, 9, 10, 0, 0,
1769 0, 0, 32, 0, 0, 77, 77, 77, 77, 0,
1770 33, 1239, 1240, 9, 10, 34, 0, 0, 0, 0,
1771 839, 0, 0, 50, 50, 0, 50, 0, 0, 0,
1772 0, 0, 0, 22, 599, 599, 0, 599, 0, 184,
1773 0, 0, 0, 0, 599, 0, 27, 77, 28, 29,
1774 22, 77, 0, 0, 976, 0, 0, 0, 77, 77,
1775 0, 77, 175, 27, 237, 28, 29, 241, 0, 0,
1776 0, 1241, 176, 0, 0, 0, 0, 0, 0, 175,
1777 33, 896, 0, 896, 896, 177, 599, 0, 237, 176,
1778 292, 77, 0, 77, 0, 0, 0, 33, 77, 77,
1779 77, 0, 177, 0, 0, 0, 0, 0, 0, 339,
1780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1781 0, 0, 0, 896, 0, 0, 0, 0, 50, 50,
1782 50, 0, 0, 0, 186, 186, 0, 186, -360, 8,
1783 9, -360, -360, 12, 225, 0, 0, 339, 0, 14,
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 275,
1785 184, 184, 184, 0, 17, 0, 18, -360, 0, 0,
1786 441, 0, 21, 0, 186, 0, 0, -360, 0, 0,
1787 0, 24, 0, 591, 0, 0, 0, 0, 0, 184,
1788 27, 0, 129, 130, 0, 0, 0, 487, 487, 487,
1789 0, 0, 0, 0, 0, 641, 592, 1115, 0, 0,
1790 0, 0, 241, 0, 0, 0, 593, 0, 0, 599,
1791 0, 0, 0, 0, -360, 0, 594, 237, 0, 595,
1792 596, 0, 7, 8, 9, 10, 196, 197, 198, 0,
1793 0, 0, 613, 14, 0, 0, 0, 0, 1115, 1115,
1794 1115, 641, 0, 0, 0, 0, 0, 0, 77, 77,
1795 77, 19, 0, 0, 0, 0, 21, 0, 0, 0,
1796 0, 22, 0, 0, 0, 24, 0, 591, 50, 0,
1797 0, 0, 0, 0, 27, 0, 28, 29, 0, 0,
1798 0, 0, 0, 0, 599, 0, 599, 0, 0, 1117,
1799 175, 0, 0, 0, 0, 0, 0, 599, 0, 0,
1800 176, 599, 599, 599, 0, 0, 0, 0, 33, 0,
1801 0, 0, 0, 1382, 0, 0, 0, 0, 0, 0,
1802 237, 241, 0, 0, 896, 896, 1094, 339, 0, 0,
1803 339, 0, 0, 0, 339, 339, 339, 339, 339, 0,
1804 0, 0, 0, 0, 0, 0, 0, 339, 0, 0,
1805 0, 0, 77, 0, 0, 0, 0, 184, 339, 0,
1806 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0,
1807 0, 7, 8, 9, 10, 380, 12, 13, 0, 0,
1808 677, 0, 14, 0, 0, 0, 0, 0, 0, 0,
1809 0, 339, 275, 0, 0, 0, 0, 17, 0, 18,
1810 19, 0, 184, 0, 184, 21, 184, 184, 184, 0,
1811 22, 641, 184, 0, 24, 0, 591, 184, 641, 0,
1812 184, 0, 0, 27, 0, 28, 29, 0, 0, 0,
1813 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089,
1814 0, 0, 0, 77, 77, 77, 77, 77, 0, 1090,
1815 0, 77, 0, 0, 0, 0, 0, 33, 0, 594,
1816 0, 0, 1091, 596, 0, 0, 678, 0, 1117, 1117,
1817 1117, 0, 0, 0, 0, 0, 184, 0, 0, 0,
1818 0, 0, 839, 839, 0, 839, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
1820 0, 641, 0, 0, 77, 0, 77, 0, 7, 8,
1821 9, 10, 0, 0, 0, 0, 0, 0, 0, 896,
1822 896, 1094, 1094, 1094, 0, 0, 0, 896, 551, 552,
1823 553, 554, 555, 556, 557, 558, 559, 560, 561, 562,
1824 563, 564, 565, 566, 1094, 1094, 1094, 22, 0, 0,
1825 0, 0, 0, 0, 77, 77, 0, 77, 0, 641,
1826 27, 0, 28, 29, 641, 720, 1376, 7, 8, 721,
1827 10, 380, 12, 13, 0, 186, 175, 0, 14, 0,
1828 237, 241, 0, 0, 0, 0, 176, 1239, 126, 127,
1829 10, 0, 0, 17, 33, 18, 19, 20, 0, 177,
1830 0, 21, -498, 0, 0, 0, 22, 0, 0, 0,
1831 24, 722, 0, 632, 184, 0, 184, 184, 0, 27,
1832 0, 28, 29, 0, 0, 723, 22, 724, 0, 0,
1833 896, 896, 0, 896, 0, 31, 0, 0, 0, 27,
1834 0, 28, 29, 0, 0, 32, 339, 1241, 0, 0,
1835 0, 0, 0, 33, 0, 31, 184, 0, 34, 77,
1836 77, 77, 0, 0, 0, 32, 0, 184, 184, 0,
1837 184, 0, 0, 33, 0, -498, 0, 339, 34, 0,
1838 0, 0, 0, 641, 0, 0, 0, 641, 0, 0,
1839 0, 0, 0, 0, 241, 0, 495, 0, 0, 0,
1840 7, 8, 9, 10, 641, 0, 339, 184, 0, 0,
1841 641, 0, 0, 0, 0, 0, 0, 7, 8, 9,
1842 10, 380, 12, 13, 0, 523, 939, 0, 14, 0,
1843 0, 0, 0, 0, 0, 186, 0, 186, 1117, 22,
1844 0, 0, 0, 17, 0, 18, 19, 0, 0, 641,
1845 0, 21, 27, 0, 28, 29, 22, 0, 0, 0,
1846 24, 0, 0, 339, 0, 0, 0, 0, 431, 27,
1847 339, 28, 29, 0, 0, 0, 0, 641, 432, 1117,
1848 1117, 1117, 0, 0, 0, 31, 33, 0, 0, 641,
1849 0, 433, 8, 9, 0, 32, 12, 13, 0, 0,
1850 0, 0, 14, 33, 0, 0, 0, 0, 34, 77,
1851 7, 8, 9, 10, 435, 0, 0, 17, 0, 18,
1852 0, 0, 0, 0, 641, 21, 641, 0, 0, 0,
1853 669, 673, 0, 0, 24, 0, 0, 0, 673, 0,
1854 0, 0, 0, 27, 0, 129, 130, 0, 0, 22,
1855 237, 241, 237, 0, 0, 435, 435, 435, 0, 0,
1856 0, 0, 27, 0, 28, 29, 0, 184, 184, 1092,
1857 0, 0, 8, 9, 237, 380, 12, 13, 175, 0,
1858 0, 0, 14, 0, 0, 186, 0, 0, 176, 0,
1859 0, 0, 101, 0, 0, 0, 33, 17, 0, 18,
1860 19, 177, 120, 101, 0, 21, 0, 641, 1092, 101,
1861 101, 0, 101, 0, 631, 0, 0, 632, 0, 0,
1862 0, 0, 673, 27, 0, 129, 130, 0, 0, 0,
1863 641, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 217, 0, 0, 0, 0, 0, 0, 0,
1865 0, 0, 0, 788, 669, 0, 0, 800, 801, 802,
1866 441, 806, 807, 808, 809, 810, 811, 812, 813, 814,
1867 815, 816, 817, 818, 819, 820, 821, 822, 823, 824,
1868 0, 0, 0, 0, 0, 673, 0, 673, 673, 0,
1869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870 0, 120, 0, 120, 0, 0, 101, 0, 0, 0,
1871 101, 101, 0, 0, 0, 673, 0, 101, 0, 101,
1872 101, 101, 673, 0, 101, 101, 101, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 339, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
1875 9, 237, 187, 12, 188, 0, 0, 0, 0, 14,
1876 0, 0, 184, 184, 184, 184, 1092, 0, 1200, 0,
1877 184, 0, 0, 0, 17, 0, 18, 19, 0, 0,
1878 0, 669, 21, 0, 0, 0, 0, 1092, 1092, 1092,
1879 0, 24, 0, 0, 0, 0, 456, 101, 0, 0,
1880 27, 0, 129, 130, 0, 0, 0, 0, 0, 0,
1881 0, 0, 0, 0, 0, 0, 0, 101, 184, 0,
1882 0, 0, 0, 720, 0, 7, 8, 721, 10, 380,
1883 12, 13, 0, 0, 0, 0, 14, 962, 0, 0,
1884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1885 0, 17, 0, 18, 19, 20, 101, 0, 0, 21,
1886 -500, 0, 0, 0, 22, 0, 0, 0, 24, 722,
1887 0, 632, 0, 184, 184, 0, 184, 27, 1019, 28,
1888 29, 0, 0, 723, 673, 724, 0, 0, 0, 0,
1889 0, 0, 0, 31, 0, 0, 0, 0, 0, 0,
1890 0, 0, 0, 32, 0, 0, 0, 1034, 0, 0,
1891 0, 33, 0, 0, 0, 101, 34, 101, 101, 0,
1892 0, 0, 0, 0, 0, 0, 0, 0, 275, 0,
1893 101, 0, 0, -500, 0, 0, 0, 0, 0, 0,
1894 0, 339, 0, 0, 0, 0, 669, 673, 0, 0,
1895 0, 101, 0, 0, 641, 0, 0, 275, 0, 0,
1896 673, 0, 673, 0, 673, 0, 0, 101, 0, 0,
1897 0, 101, 0, 0, 101, 0, 0, 0, 184, 101,
1898 184, 8, 9, 0, 0, 12, 225, 0, 0, 0,
1899 0, 14, 0, 0, 673, 0, 0, 0, 0, 0,
1900 0, 0, 0, 0, 0, 0, 17, 0, 18, 0,
1901 0, 0, 0, 275, 21, 0, 0, 1096, 0, 0,
1902 0, 0, 0, 24, 0, 591, 0, 0, 673, 0,
1903 0, 0, 27, 0, 129, 130, 101, 0, 712, 0,
1904 0, 0, 0, 0, 0, 0, 673, 720, 592, 7,
1905 8, 721, 10, 380, 12, 13, 0, 1092, 593, 0,
1906 14, 0, 0, 0, 101, 0, 0, 0, 594, 0,
1907 0, 595, 596, 0, 0, 17, 0, 18, 19, 20,
1908 0, 0, 0, 21, -499, 0, 0, 0, 22, 1141,
1909 0, 0, 24, 722, 0, 632, 0, 0, 1092, 1092,
1910 1092, 27, 0, 28, 29, 0, 0, 723, 0, 724,
1911 0, 0, 669, 0, 0, 0, 0, 31, 0, 0,
1912 0, 0, 0, 0, 0, 0, 0, 32, 184, 0,
1913 0, 0, 0, 0, 0, 33, 0, 0, 0, 0,
1914 34, 0, 0, 0, 0, 0, 0, 0, 669, 669,
1915 0, 0, 1175, 0, 0, 0, 101, -499, 0, 0,
1916 0, 0, 0, 0, 0, 0, 101, 101, 0, 0,
1917 101, 101, 0, 0, 0, 0, 974, 8, 721, 10,
1918 187, 12, 188, 0, 0, 0, 0, 14, 553, 554,
1919 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
1920 565, 566, 17, 0, 18, 19, 0, 0, 0, 120,
1921 21, 0, 0, 0, 0, 22, 673, 0, 673, 24,
1922 673, 217, 0, 669, 0, 0, 0, 0, 27, 0,
1923 28, 29, 669, 669, 0, 0, 976, 669, 669, 712,
1924 0, 0, 0, 0, 31, 0, 0, 0, 0, 0,
1925 0, 0, 1235, 1236, 32, 0, 0, 0, 1413, 0,
1926 0, 0, 33, 0, 0, 0, 0, 34, 0, 0,
1927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1928 0, 0, 669, 0, 1263, 0, 0, 0, 0, 0,
1929 0, 0, 0, 0, 0, 0, 0, 712, 0, 0,
1930 101, 0, 0, 0, 0, 0, 0, 0, 673, 1414,
1931 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
1932 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
1933 565, 566, 0, 101, 101, 101, 0, 0, 669, 0,
1934 803, 0, 293, 8, 9, 10, 380, 12, 294, 295,
1935 296, 0, 297, 14, 1325, 101, 0, 0, 0, 0,
1936 0, 0, 0, 0, 0, 0, 0, 0, 17, 298,
1937 18, 19, 20, 0, 299, 300, 21, 669, 301, 302,
1938 303, 22, 304, 305, 0, 24, 0, 0, 0, 306,
1939 307, 308, 309, 310, 27, 0, 28, 311, 1446, 0,
1940 -750, 312, 0, 1362, 0, 0, 0, 313, 0, 0,
1941 314, 0, 0, 0, 0, 0, 0, 0, 315, 316,
1942 317, 0, 0, 0, 0, 19, 318, 319, 320, 0,
1943 101, 0, 101, 321, 0, 0, 1393, 1394, 0, 0,
1944 0, 0, 0, 101, 0, 1399, 0, 0, 0, 0,
1945 0, 322, 0, 0, 0, 0, 669, 545, 546, 547,
1946 548, 549, 550, 551, 552, 553, 554, 555, 556, 557,
1947 558, 559, 560, 561, 562, 563, 564, 565, 566, 0,
1948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1949 0, 0, 0, 0, 0, 673, 0, 0, 0, 0,
1950 0, 0, 0, 1331, 0, -454, -454, -454, -454, -454,
1951 -454, -454, 0, 0, -454, 0, -454, 0, 0, 0,
1952 0, 0, 0, 0, 0, 0, 1454, -454, 0, -454,
1953 -454, 0, 0, 0, -454, 0, 0, 712, 0, -454,
1954 0, 0, 0, 0, -454, 0, 0, 0, -454, 0,
1955 -454, 0, 0, 0, 0, 0, 0, -454, 0, -454,
1956 -454, -454, -454, -454, 101, -454, -454, -454, -454, -454,
1957 -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
1958 -454, -454, -454, -454, -454, -454, -454, -454, 0, -454,
1959 -454, -454, 0, -454, -454, -454, -454, -454, -454, 0,
1960 -454, -454, 0, 0, 0, 0, 1332, 0, 0, 0,
1961 0, -454, -454, -454, 0, -454, 0, 0, 0, 0,
1962 0, 0, 0, 0, 0, 0, 0, 0, 101, 101,
1963 720, 101, 7, 8, 721, 10, 380, 12, 13, 0,
1964 0, 0, 0, 14, 0, 0, 0, 0, 669, 0,
1965 0, 0, 0, 0, 0, 0, 0, 0, 17, 0,
1966 18, 19, 20, 0, 0, 0, 21, 0, 0, 0,
1967 0, 22, 0, 0, 0, 24, 722, 0, 632, 712,
1968 0, 0, 0, 0, 27, 0, 28, 29, 0, 0,
1969 723, 0, 724, 0, 0, 0, 0, 0, 0, 0,
1970 31, 0, 0, 0, 0, 0, 0, 712, 0, 0,
1971 32, 0, 0, 0, 0, 0, 0, 0, 33, 0,
1972 0, 0, 0, 34, 101, 1384, 101, 1282, 1283, 1284,
1973 10, 380, 12, 294, 295, 296, 0, 297, 14, 1285,
1974 0, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294,
1975 1295, 15, 16, 17, 298, 18, 19, 20, 0, 299,
1976 300, 21, 0, 301, 302, 303, 22, 304, 305, 0,
1977 24, 0, 0, 0, 306, 307, 308, 309, 310, 27,
1978 0, 1296, 311, 664, 0, 1297, 312, 0, 0, 0,
1979 0, 0, 313, 0, 0, 314, 0, 0, 0, 0,
1980 0, 0, 0, 315, 316, 317, 0, 0, 0, 0,
1981 0, 318, 319, 320, 0, 0, 0, 0, 321, 0,
1982 1298, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1983 0, 0, 0, 0, 0, 1385, 322, 1281, 0, 1282,
1984 1283, 1284, 10, 380, 12, 294, 295, 296, 0, 297,
1985 14, 1285, 0, 1286, 1287, 1288, 1289, 1290, 1291, 1292,
1986 1293, 1294, 1295, 15, 16, 17, 298, 18, 19, 20,
1987 0, 299, 300, 21, 0, 301, 302, 303, 22, 304,
1988 305, 0, 24, 0, 0, 0, 306, 307, 308, 309,
1989 310, 27, 0, 1296, 311, 664, 0, 1297, 312, 0,
1990 0, 0, 0, 0, 313, 0, 0, 314, 0, 0,
1991 0, 0, 0, 0, 0, 315, 316, 317, 0, 0,
1992 0, 0, 0, 318, 319, 320, 0, 0, 0, 0,
1993 321, 528, 1298, 293, 8, 9, 10, 380, 12, 294,
1994 295, 296, 677, 297, 14, 0, 0, 0, 322, 0,
1995 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
1996 298, 18, 19, 20, 0, 299, 300, 21, 0, 301,
1997 302, 303, 22, 304, 305, 0, 24, 0, 591, 0,
1998 306, 307, 308, 309, 310, 27, 0, 28, 311, -288,
1999 0, 0, 312, 0, 0, 0, 0, 0, 313, 0,
2000 0, 869, 0, 0, 0, 0, 0, 0, 0, 315,
2001 316, 870, 0, 0, 0, 0, 0, 318, 319, 320,
2002 0, 594, 0, 0, 871, 596, 0, 528, 678, 7,
2003 8, 9, 10, 380, 12, 294, 295, 296, 677, 297,
2004 14, 0, 322, 0, 0, 0, 0, 0, 0, 0,
2005 0, 0, 0, 0, 0, 17, 298, 18, 19, 20,
2006 0, 299, 300, 21, 0, 301, 302, 303, 22, 304,
2007 305, 0, 24, 0, 591, 0, 306, 307, 308, 309,
2008 310, 27, 0, 28, 29, -288, 0, 0, 312, 0,
2009 0, 0, 0, 0, 313, 0, 0, 1112, 0, 0,
2010 0, 0, 0, 0, 0, 315, 316, 1113, 0, 0,
2011 0, 0, 0, 318, 319, 320, 0, 594, 0, 0,
2012 1114, 596, 0, 676, 678, 293, 8, 9, 10, 380,
2013 12, 294, 295, 296, 677, 297, 14, 0, 322, 0,
2014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2015 0, 17, 298, 18, 19, 20, 0, 299, 300, 21,
2016 0, 301, 302, 303, 22, 304, 305, 0, 24, 0,
2017 0, 0, 306, 307, 308, 309, 310, 27, 0, 28,
2018 311, 0, 0, 0, 312, 0, 0, 0, 0, 0,
2019 313, 0, 0, 314, 0, 0, 0, 0, 0, 0,
2020 0, 315, 316, 317, 0, 0, 0, 0, 0, 318,
2021 319, 320, 0, 0, 0, 0, 321, 0, 0, 0,
2022 678, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2023 0, 0, -760, 667, 322, 789, 790, 791, 10, 0,
2024 12, 510, 295, 296, 0, 297, 14, 0, 0, 0,
2025 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2026 0, 17, 298, 18, 0, 20, 0, 299, 300, 21,
2027 0, 301, 302, 303, 22, 304, 305, 0, 24, 0,
2028 0, 0, 306, 307, 308, 309, 310, 27, 0, 792,
2029 793, 668, 0, 0, 312, 0, 0, 0, 0, 0,
2030 313, 0, 0, 314, 0, 0, 0, 0, 0, 0,
2031 0, 315, 316, 317, 0, 0, 0, 0, 0, 318,
2032 319, 320, 0, 0, 0, 0, 321, 794, 667, 0,
2033 789, 790, 791, 10, 0, 12, 510, 295, 296, 0,
2034 297, 14, 0, 924, 322, 0, 0, 0, 1171, 0,
2035 0, 0, 0, 0, 0, 0, 17, 298, 18, 0,
2036 20, 0, 299, 300, 21, 0, 301, 302, 303, 22,
2037 304, 305, 0, 24, 0, 0, 0, 306, 307, 308,
2038 309, 310, 27, 0, 792, 793, 668, 0, 0, 312,
2039 0, 0, 0, 0, 0, 313, 0, 0, 314, 0,
2040 0, 0, 0, 0, 0, 0, 315, 316, 317, 0,
2041 0, 0, 0, 0, 318, 319, 320, 0, 0, 0,
2042 667, 321, 789, 790, 791, 10, 0, 12, 510, 295,
2043 296, 0, 297, 14, 0, 0, 0, 0, -458, 322,
2044 1171, 0, 0, 0, 0, 0, 0, 0, 17, 298,
2045 18, 0, 20, 0, 299, 300, 21, 0, 301, 302,
2046 303, 22, 304, 305, 0, 24, 0, 0, 0, 306,
2047 307, 308, 309, 310, 27, 0, 792, 793, 668, 0,
2048 0, 312, 0, 0, 0, 0, 0, 313, 0, 0,
2049 314, 0, 0, 0, 0, 0, 0, 0, 315, 316,
2050 317, 0, 0, 0, 0, 0, 318, 319, 320, 0,
2051 0, 0, 667, 321, 789, 790, 791, 10, 0, 12,
2052 510, 295, 296, 0, 297, 14, 0, 0, 0, 0,
2053 1214, 322, 0, 0, 0, 0, 0, 0, 0, 0,
2054 17, 298, 18, 0, 20, 0, 299, 300, 21, 0,
2055 301, 302, 303, 22, 304, 305, 0, 24, 0, 0,
2056 0, 306, 307, 308, 309, 310, 27, 0, 792, 793,
2057 668, 0, 0, 312, 0, 0, 0, 0, 0, 313,
2058 0, 0, 314, 0, 0, 0, 0, 0, 0, 0,
2059 315, 316, 317, 0, 0, 0, 0, 0, 318, 319,
2060 320, 0, 0, 0, 0, 321, 794, 667, 0, 293,
2061 8, 9, 10, 0, 12, 510, 295, 296, 0, 297,
2062 14, 0, 0, 322, 0, 0, 0, 0, 0, 0,
2063 0, 0, 0, 0, 0, 17, 298, 18, 0, 20,
2064 0, 299, 300, 21, 0, 301, 302, 303, 22, 304,
2065 305, 0, 24, 0, 0, 0, 306, 307, 308, 309,
2066 310, 27, 0, 28, 311, 668, 0, 0, 312, 0,
2067 0, 0, 0, 0, 313, 0, 0, 314, 0, 0,
2068 0, 0, 0, 0, 0, 315, 316, 317, 0, 0,
2069 0, 0, 0, 318, 319, 320, 0, 0, 0, 0,
2070 321, 0, 0, 528, 0, 293, 8, 9, 10, 1218,
2071 12, 294, 295, 296, 0, 297, 14, 0, 322, 0,
2072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2073 0, 17, 298, 18, 0, 20, 0, 299, 300, 21,
2074 0, 301, 302, 303, 22, 304, 305, 0, 24, 0,
2075 0, 0, 306, 307, 308, 309, 310, 27, 0, 28,
2076 311, -288, 0, 0, 312, 0, 0, 0, 0, 0,
2077 313, 0, 0, 529, 0, 0, 0, 0, 0, 0,
2078 0, 315, 316, 530, 0, 0, 0, 0, 0, 318,
2079 319, 320, 0, 0, 0, 667, 531, 293, 8, 9,
2080 10, 0, 12, 510, 295, 296, 0, 297, 14, 0,
2081 0, 0, 0, 0, 322, 0, 0, 0, 0, 0,
2082 0, 0, 0, 17, 298, 18, 0, 20, 0, 299,
2083 300, 21, 0, 301, 302, 303, 22, 304, 305, 0,
2084 24, 0, 0, 0, 306, 307, 308, 309, 310, 27,
2085 0, 28, 311, 668, 0, 0, 312, 0, 0, 0,
2086 0, 0, 313, 0, 0, 314, 0, 0, 0, 0,
2087 0, 0, 0, 315, 316, 317, 0, 0, 0, 0,
2088 0, 318, 319, 320, 0, 0, 0, 803, 321, 293,
2089 8, 9, 10, 0, 12, 510, 295, 296, 0, 297,
2090 14, 0, 0, 0, 0, 0, 322, 0, 0, 0,
2091 0, 0, 0, 0, 0, 17, 298, 18, 0, 20,
2092 0, 299, 300, 21, 0, 301, 302, 303, 22, 304,
2093 305, 0, 24, 0, 0, 0, 306, 307, 308, 309,
2094 310, 27, 0, 28, 311, 0, 0, 0, 312, -750,
2095 0, 0, 0, 0, 313, 0, 0, 314, 0, 0,
2096 0, 0, 0, 0, 0, 315, 316, 317, 0, 0,
2097 0, 0, 0, 318, 319, 320, 0, 0, 0, 528,
2098 321, 7, 8, 9, 10, 0, 12, 294, 295, 296,
2099 0, 297, 14, 0, 0, 0, 0, 0, 322, 0,
2100 0, 0, 0, 0, 0, 0, 0, 17, 298, 18,
2101 0, 20, 0, 299, 300, 21, 0, 301, 302, 303,
2102 22, 304, 305, 0, 24, 0, 0, 0, 306, 307,
2103 308, 309, 310, 27, 0, 28, 29, -288, 0, 0,
2104 312, 0, 0, 0, 0, 0, 313, 0, 0, 1423,
2105 0, 0, 0, 0, 0, 0, 0, 315, 316, 1424,
2106 0, 0, 0, 0, 0, 318, 319, 320, 0, 0,
2107 0, 1513, 1425, 293, 8, 9, 10, 0, 12, 294,
2108 295, 296, 0, 297, 14, 0, 0, 0, 0, 0,
2109 322, 0, 0, 0, 0, 0, 0, 0, 0, 17,
2110 298, 18, 0, 20, 0, 299, 300, 21, 0, 301,
2111 302, 303, 22, 304, 305, 0, 24, 0, 0, 0,
2112 306, 307, 308, 309, 310, 27, 0, 28, 311, 0,
2113 0, -177, 312, 0, 0, 0, 0, 0, 313, 0,
2114 0, 314, 0, 0, 0, 0, 0, 0, 0, 315,
2115 316, 317, 0, 0, 0, 0, 0, 318, 319, 320,
2116 0, 0, 0, 803, 321, 293, 8, 9, 10, 0,
2117 12, 510, 295, 296, 0, 297, 14, 0, 0, 0,
2118 0, 0, 322, 0, 0, 0, 0, 0, 0, 0,
2119 0, 17, 298, 18, 0, 20, 0, 299, 300, 21,
2120 0, 301, 302, 303, 22, 304, 305, 0, 24, 0,
2121 0, 0, 306, 307, 308, 309, 310, 27, 0, 28,
2122 311, 0, 0, 0, 312, 0, 0, 0, 0, 0,
2123 313, 243, 0, 314, 8, 9, 0, 0, 12, 13,
2124 0, 315, 316, 317, 14, 0, 0, 0, 0, 318,
2125 319, 320, 0, 0, 0, 0, 321, 0, 0, 17,
2126 0, 18, 0, 0, 0, 0, 0, 21, 0, 244,
2127 245, 0, -750, 0, 322, 0, 24, 0, 246, 0,
2128 0, 0, 0, 0, 0, 27, 0, 129, 130, 0,
2129 247, 0, 0, 0, 248, 249, 250, 251, 252, 253,
2130 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2131 264, 265, 266, 267, 268, 0, 0, 269, 270, 271,
2132 0, 0, 272, 0, 787, 273, 293, 8, 9, 10,
2133 0, 12, 510, 295, 296, 0, 297, 14, 0, 0,
2134 0, 0, 274, 0, 0, 0, 0, 0, 0, 0,
2135 0, 0, 17, 298, 18, 0, 20, 0, 299, 300,
2136 21, 0, 301, 302, 303, 22, 304, 305, 0, 24,
2137 0, 0, 0, 306, 307, 308, 309, 310, 27, 0,
2138 28, 311, 0, 0, 0, 312, 0, 0, 0, 0,
2139 0, 313, 0, 0, 314, 0, 0, 0, 0, 0,
2140 0, 0, 315, 316, 317, 0, 0, 0, 0, 0,
2141 318, 319, 320, 0, 0, 0, 799, 321, 293, 8,
2142 9, 10, 0, 12, 510, 295, 296, 0, 297, 14,
2143 0, 0, 0, 0, 0, 322, 0, 0, 0, 0,
2144 0, 0, 0, 0, 17, 298, 18, 0, 20, 0,
2145 299, 300, 21, 0, 301, 302, 303, 22, 304, 305,
2146 0, 24, 0, 0, 0, 306, 307, 308, 309, 310,
2147 27, 0, 28, 311, 0, 0, 0, 312, 0, 0,
2148 0, 0, 0, 313, 0, 0, 314, 0, 0, 0,
2149 0, 0, 0, 0, 315, 316, 317, 0, 0, 0,
2150 0, 0, 318, 319, 320, 0, 0, 0, 1398, 321,
2151 293, 8, 9, 10, 0, 12, 510, 295, 296, 0,
2152 297, 14, 0, 0, 0, 0, 0, 322, 0, 0,
2153 0, 0, 0, 0, 0, 0, 17, 298, 18, 0,
2154 20, 0, 299, 300, 21, 0, 301, 302, 303, 22,
2155 304, 305, 0, 24, 0, 0, 0, 306, 307, 308,
2156 309, 310, 27, 0, 28, 311, 0, 0, 0, 312,
2157 0, 0, 0, 0, 0, 313, 0, 0, 314, 0,
2158 0, 0, 0, 0, 0, 0, 315, 316, 317, 0,
2159 0, 0, 0, 0, 318, 319, 320, 293, 8, 9,
2160 10, 321, 12, 510, 295, 296, 0, 297, 14, 0,
2161 0, 0, 0, 0, 0, 0, 0, 0, 0, 322,
2162 0, 0, 0, 17, 298, 18, 0, 20, 0, 299,
2163 300, 21, 0, 301, 302, 303, 22, 304, 305, 0,
2164 24, 0, 0, 0, 306, 307, 308, 309, 310, 27,
2165 0, 28, 311, 0, 0, 0, 312, 0, 0, 0,
2166 0, 0, 313, 0, 0, 314, 0, 0, 0, 0,
2167 0, 0, 0, 315, 316, 317, 0, 0, 0, 0,
2168 0, 318, 319, 320, 0, 0, 0, 0, 321, 550,
2169 551, 552, 553, 554, 555, 556, 557, 558, 559, 560,
2170 561, 562, 563, 564, 565, 566, 322, 842, 1282, 1283,
2171 1284, 10, 380, 12, 294, 295, 296, 0, 297, 14,
2172 1285, 0, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293,
2173 1294, 1295, 15, 16, 17, 298, 18, 19, 20, 0,
2174 299, 300, 21, 0, 301, 302, 303, 22, 304, 305,
2175 0, 24, 0, 0, 0, 306, 307, 308, 309, 310,
2176 27, 0, 1296, 311, 664, 0, 1297, 312, 0, 0,
2177 0, 0, 0, 313, 0, 0, 314, 0, 0, 0,
2178 0, 0, 0, 0, 315, 316, 317, 0, 0, 0,
2179 0, 0, 318, 319, 320, 0, 0, 0, 0, 321,
2180 0, 1298, 0, 0, 0, 0, 0, 0, 0, 0,
2181 0, 0, 0, 0, 0, 0, 1389, 322, 1282, 1283,
2182 1284, 10, 380, 12, 294, 295, 296, 0, 297, 14,
2183 1285, 0, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293,
2184 1294, 1295, 15, 16, 17, 298, 18, 19, 20, 0,
2185 299, 300, 21, 0, 301, 302, 303, 22, 304, 305,
2186 0, 24, 0, 0, 0, 306, 307, 308, 309, 310,
2187 27, 0, 1296, 311, 664, 0, 1297, 312, 0, 0,
2188 0, 0, 0, 313, 0, 0, 314, 0, 0, 0,
2189 0, 0, 0, 0, 315, 316, 317, 0, 0, 0,
2190 0, 0, 318, 319, 320, 0, 0, 0, 0, 321,
2191 0, 1298, 0, 0, 1282, 1283, 1284, 10, 380, 12,
2192 294, 295, 296, 0, 297, 14, 1285, 322, 1286, 1287,
2193 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 15, 16,
2194 17, 298, 18, 19, 20, 0, 299, 300, 21, 0,
2195 301, 302, 303, 22, 304, 305, 0, 24, 0, 0,
2196 0, 306, 307, 308, 309, 310, 27, 0, 1296, 311,
2197 1490, 0, 1297, 312, 0, 0, 0, 0, 0, 313,
2198 0, 0, 314, 0, 0, 0, 0, 0, 0, 0,
2199 315, 316, 317, 0, 0, 0, 0, 0, 318, 319,
2200 320, 0, 0, 0, 0, 321, 0, 1298, 0, 0,
2201 1282, 1283, 1284, 10, 380, 12, 294, 295, 296, 0,
2202 297, 14, 1285, 322, 1286, 1287, 1288, 1289, 1290, 1291,
2203 1292, 1293, 1294, 1295, 15, 16, 17, 298, 18, 19,
2204 20, 0, 299, 300, 21, 0, 301, 302, 303, 22,
2205 304, 305, 0, 24, 0, 0, 0, 306, 307, 308,
2206 309, 310, 27, 0, 1296, 311, 0, 0, 1297, 312,
2207 0, 0, 0, 0, 0, 313, 0, 0, 314, 0,
2208 0, 0, 0, 0, 0, 0, 315, 316, 317, 0,
2209 0, 0, 0, 0, 318, 319, 320, 0, 0, 0,
2210 0, 321, 0, 1298, 293, 8, 9, 10, 380, 12,
2211 294, 295, 296, 677, 297, 14, 0, 0, 0, 322,
2212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2213 17, 298, 18, 19, 20, 0, 299, 300, 21, 0,
2214 301, 302, 303, 22, 304, 305, 0, 24, 0, 591,
2215 0, 306, 307, 308, 309, 310, 27, 0, 28, 311,
2216 0, 0, 0, 312, 0, 0, 0, 0, 0, 313,
2217 0, 0, 869, 0, 0, 0, 0, 0, 0, 0,
2218 315, 316, 870, 0, 0, 0, 0, 0, 318, 319,
2219 320, 0, 594, 0, 0, 871, 596, 0, 0, 678,
2220 7, 8, 9, 10, 380, 12, 294, 295, 296, 677,
2221 297, 14, 0, 322, 0, 0, 0, 0, 0, 0,
2222 0, 0, 0, 0, 0, 0, 17, 298, 18, 19,
2223 20, 0, 299, 300, 21, 0, 301, 302, 303, 22,
2224 304, 305, 0, 24, 0, 591, 0, 306, 307, 308,
2225 309, 310, 27, 0, 28, 29, 0, 0, 0, 312,
2226 0, 0, 0, 0, 0, 313, 0, 0, 1112, 0,
2227 0, 0, 0, 0, 0, 0, 315, 316, 1113, 0,
2228 0, 0, 0, 0, 318, 319, 320, 0, 594, 0,
2229 0, 1114, 596, 0, 0, 678, 293, 8, 9, 10,
2230 0, 12, 294, 295, 296, 0, 297, 14, 0, 322,
2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2232 0, 0, 17, 298, 18, 0, 20, 0, 299, 300,
2233 21, 0, 301, 302, 303, 22, 304, 305, 0, 24,
2234 0, 591, 0, 306, 307, 308, 309, 310, 27, 0,
2235 28, 311, 0, 0, 0, 0, 0, 0, 0, 0,
2236 0, 313, 0, 0, 869, 0, 0, 0, 0, 0,
2237 0, 0, 315, 316, 870, 0, 0, 0, 0, 0,
2238 318, 319, 320, 0, 594, 0, 0, 871, 596, 7,
2239 8, 9, 10, 0, 12, 294, 295, 296, 0, 297,
2240 14, 0, 0, 0, 0, 322, 0, 0, 0, 0,
2241 0, 0, 0, 0, 0, 17, 298, 18, 0, 20,
2242 0, 299, 300, 21, 0, 301, 302, 303, 22, 304,
2243 305, 0, 24, 0, 591, 0, 306, 307, 308, 309,
2244 310, 27, 0, 28, 29, 0, 0, 0, 0, 0,
2245 0, 0, 0, 0, 313, 0, 0, 1112, 0, 0,
2246 0, 0, 0, 0, 0, 315, 316, 1113, 0, 0,
2247 0, 0, 0, 318, 319, 320, 0, 594, 0, 0,
2248 1114, 596, 293, 8, 9, 10, 0, 12, 510, 295,
2249 296, 0, 297, 14, 0, 0, 0, 0, 322, 0,
2250 0, 0, 0, 0, 0, 0, 0, 0, 17, 298,
2251 18, 0, 20, 0, 299, 300, 21, 0, 301, 302,
2252 303, 22, 304, 305, 0, 24, 0, 0, 0, 306,
2253 307, 308, 309, 310, 27, 0, 28, 311, 0, 0,
2254 1366, 312, 0, 0, 0, 0, 0, 313, 0, 0,
2255 314, 0, 0, 0, 0, 0, 0, 0, 315, 316,
2256 317, 0, 0, 0, 0, 0, 318, 319, 320, 0,
2257 0, 0, 0, 321, 293, 8, 9, 10, 380, 12,
2258 294, 295, 296, 0, 297, 14, 0, 0, 0, 0,
2259 0, 322, 0, 0, 0, 0, 0, 0, 0, 0,
2260 17, 298, 18, 19, 20, 0, 299, 300, 21, 0,
2261 301, 302, 303, 22, 304, 305, 0, 24, 0, 0,
2262 0, 306, 307, 308, 309, 310, 27, 0, 28, 311,
2263 0, 0, 0, 0, 0, 0, 0, 0, 0, 313,
2264 0, 0, 314, 0, 0, 0, 0, 0, 0, 0,
2265 315, 316, 317, 0, 0, 0, 0, 0, 318, 319,
2266 320, 293, 8, 9, 10, 321, 12, 294, 295, 296,
2267 0, 297, 14, 0, 0, 0, 0, 0, 0, 0,
2268 0, 0, 0, 322, 0, 0, 0, 17, 298, 18,
2269 0, 20, 0, 299, 300, 21, 0, 301, 302, 303,
2270 22, 304, 305, 0, 24, 0, 0, 0, 306, 307,
2271 308, 309, 310, 27, 0, 28, 311, 0, 0, 0,
2272 312, 0, 0, 0, 0, 0, 313, 0, 0, 314,
2273 0, 0, 0, 0, 0, 0, 0, 315, 316, 317,
2274 0, 0, 0, 0, 0, 318, 319, 320, 293, 8,
2275 9, 10, 321, 12, 510, 295, 296, 0, 297, 14,
2276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2277 322, 0, 0, 0, 17, 298, 18, 0, 20, 0,
2278 299, 300, 21, 0, 301, 302, 303, 22, 304, 305,
2279 0, 24, 0, 0, 0, 306, 307, 308, 309, 310,
2280 27, 0, 28, 311, 0, 0, 0, 312, 0, 0,
2281 0, 0, 0, 313, 0, 0, 314, 0, 0, 0,
2282 0, 0, 0, 0, 315, 316, 317, 0, 0, 0,
2283 0, 0, 318, 319, 320, 293, 8, 9, 10, 321,
2284 12, 510, 295, 296, 0, 297, 14, 0, 0, 0,
2285 0, 0, 0, 0, 0, 0, 0, 322, 0, 0,
2286 0, 17, 298, 18, 0, 20, 0, 299, 300, 21,
2287 0, 301, 302, 303, 22, 304, 305, 0, 24, 0,
2288 0, 0, 306, 307, 308, 309, 310, 27, 0, 28,
2289 311, 541, 0, 0, 0, 0, 0, 0, 0, 0,
2290 313, 0, 0, 314, 0, 0, 0, 0, 0, 0,
2291 0, 315, 316, 317, 0, 0, 0, 0, 0, 318,
2292 319, 320, 293, 8, 9, 10, 542, 12, 510, 295,
2293 296, 0, 297, 14, 0, 0, 0, 0, 0, 0,
2294 0, 0, 0, 0, 322, 0, 0, 0, 17, 298,
2295 18, 0, 20, 0, 299, 300, 21, 0, 301, 302,
2296 303, 22, 304, 305, 0, 24, 0, 0, 0, 306,
2297 307, 308, 309, 310, 27, 0, 28, 311, 0, 0,
2298 0, 0, 0, 0, 0, 0, 0, 313, 0, 0,
2299 314, 0, 0, 0, 0, 0, 0, 0, 315, 316,
2300 317, 0, 0, 0, 0, 0, 318, 319, 320, 0,
2301 0, 0, 0, 321, 579, 293, 8, 9, 10, 0,
2302 12, 510, 295, 296, 0, 297, 14, 0, 0, 0,
2303 0, 322, 0, 0, 0, 0, 0, 0, 0, 0,
2304 0, 17, 298, 18, 0, 20, 0, 299, 300, 21,
2305 0, 301, 302, 303, 22, 304, 305, 0, 24, 0,
2306 0, 0, 306, 307, 308, 309, 310, 27, 0, 28,
2307 311, 0, 0, 0, 312, 0, 0, 0, 0, 0,
2308 313, 0, 0, 529, 0, 0, 0, 0, 0, 0,
2309 0, 315, 316, 530, 0, 0, 0, 0, 0, 318,
2310 319, 320, 1080, 8, 9, 10, 531, 12, 510, 295,
2311 296, 0, 297, 14, 0, 0, 0, 0, 0, 0,
2312 0, 0, 0, 0, 322, 0, 0, 0, 17, 298,
2313 18, 0, 20, 0, 299, 300, 21, 0, 301, 302,
2314 303, 22, 304, 305, 0, 24, 0, 0, 0, 306,
2315 307, 308, 309, 310, 27, 0, 28, 311, 0, 0,
2316 0, 312, 0, 0, 0, 0, 0, 313, 0, 0,
2317 314, 0, 0, 0, 0, 0, 0, 0, 315, 316,
2318 317, 0, 0, 0, 0, 0, 318, 319, 320, 7,
2319 8, 9, 10, 321, 12, 510, 295, 296, 0, 297,
2320 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2321 0, 322, 0, 0, 0, 17, 298, 18, 0, 20,
2322 0, 299, 300, 21, 0, 301, 302, 303, 22, 304,
2323 305, 0, 24, 0, 0, 0, 306, 307, 308, 309,
2324 310, 27, 0, 28, 29, 0, 0, 0, 312, 0,
2325 0, 0, 0, 0, 313, 0, 0, 1423, 0, 0,
2326 0, 0, 0, 0, 0, 315, 316, 1424, 0, 0,
2327 0, 0, 0, 318, 319, 320, 293, 8, 9, 10,
2328 1425, 12, 510, 295, 296, 0, 297, 14, 0, 0,
2329 0, 0, 0, 0, 0, 0, 0, 0, 322, 0,
2330 0, 0, 17, 298, 18, 0, 20, 0, 299, 300,
2331 21, 0, 301, 302, 303, 22, 304, 305, 0, 24,
2332 0, 0, 0, 306, 307, 308, 309, 310, 27, 0,
2333 28, 311, 0, 0, 0, 0, 0, 0, 0, 0,
2334 0, 313, 0, 0, 314, 0, 0, 0, 0, 0,
2335 0, 0, 315, 316, 317, 0, 0, 0, 0, 0,
2336 318, 319, 320, 293, 8, 9, 10, 511, 12, 510,
2337 295, 296, 0, 297, 14, 0, 0, 0, 0, 0,
2338 0, 0, 0, 0, 0, 322, 0, 0, 0, 17,
2339 298, 18, 0, 20, 0, 299, 300, 21, 0, 301,
2340 302, 303, 22, 304, 305, 0, 24, 0, 0, 0,
2341 306, 307, 308, 309, 310, 27, 0, 28, 311, 0,
2342 0, 0, 0, 0, 0, 0, 0, 0, 313, 0,
2343 0, 314, 0, 0, 0, 0, 0, 0, 0, 315,
2344 316, 317, 0, 0, 0, 0, 0, 318, 319, 320,
2345 293, 8, 9, 10, 514, 12, 510, 295, 296, 0,
2346 297, 14, 0, 0, 0, 0, 0, 0, 0, 0,
2347 0, 0, 322, 0, 0, 0, 17, 298, 18, 0,
2348 20, 0, 299, 300, 21, 0, 301, 302, 303, 22,
2349 304, 305, 0, 24, 0, 0, 0, 306, 307, 308,
2350 309, 310, 27, 0, 28, 311, 0, 0, 0, 0,
2351 0, 0, 0, 0, 0, 313, 0, 0, 314, 0,
2352 0, 0, 0, 0, 0, 0, 315, 316, 317, 0,
2353 0, 0, 0, 0, 318, 319, 320, 293, 8, 9,
2354 10, 321, 12, 510, 295, 296, 0, 297, 14, 0,
2355 0, 0, 0, 0, 0, 0, 0, 0, 0, 322,
2356 0, 0, 0, 17, 298, 18, 0, 20, 0, 299,
2357 300, 21, 0, 301, 302, 303, 22, 304, 305, 0,
2358 24, 0, 0, 0, 306, 307, 308, 309, 310, 27,
2359 0, 28, 311, 0, 0, 0, 0, 0, 0, 0,
2360 0, 0, 313, 0, 0, 529, 0, 0, 0, 0,
2361 0, 0, 0, 315, 316, 530, 0, 0, 0, 0,
2362 0, 318, 319, 320, 7, 8, 9, 10, 531, 12,
2363 294, 295, 296, 0, 297, 14, 0, 0, 0, 0,
2364 0, 0, 0, 0, 0, 0, 322, 0, 0, 0,
2365 17, 298, 18, 0, 20, 0, 299, 300, 21, 0,
2366 301, 302, 303, 22, 304, 305, 0, 24, 0, 0,
2367 0, 306, 307, 308, 309, 310, 27, 0, 28, 29,
2368 0, 0, 0, 0, 0, 0, 0, 0, 0, 313,
2369 0, 6, 1423, 7, 8, 9, 10, 11, 12, 13,
2370 315, 316, 1424, 0, 14, 0, 0, 0, 318, 319,
2371 320, 0, 0, 0, 0, 1425, 0, 15, 16, 17,
2372 0, 18, 19, 20, 0, 0, 0, 21, 0, 0,
2373 0, 0, 22, 322, 0, 23, 24, 25, 0, 26,
2374 0, 0, 0, 0, 0, 27, 0, 28, 29, 0,
2375 161, 30, 7, 8, 9, 10, 11, 12, 13, 0,
2376 0, 31, 0, 14, 0, 0, 0, 0, 0, 0,
2377 0, 32, 0, 0, 0, 0, 15, 16, 17, 33,
2378 18, 19, 20, 0, 34, 0, 21, 0, 0, 0,
2379 35, 22, 0, 0, 23, 24, 25, 0, 26, 0,
2380 0, 0, 0, 0, 27, 0, 28, 29, 0, 0,
2381 30, 7, 8, 9, 10, 187, 12, 188, 0, 0,
2382 31, 0, 14, 0, 0, 0, 0, 0, 0, 0,
2383 32, 0, 0, 0, 0, 0, 0, 17, 33, 18,
2384 19, 0, 0, 34, 0, 21, 0, 0, 0, 35,
2385 22, 0, 0, 0, 24, 0, 7, 8, 9, 10,
2386 380, 12, 13, 27, 0, 28, 29, 14, 0, 1379,
2387 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
2388 0, 0, 17, 0, 18, 19, 0, 0, 0, 32,
2389 21, 0, 0, 0, 0, 22, 0, 33, 0, 24,
2390 0, 0, 34, 0, 0, 0, 0, 0, 27, 0,
2391 28, 29, 7, 8, 9, 10, 187, 12, 188, 0,
2392 0, 0, 0, 14, 31, 0, 0, 0, 0, 0,
2393 0, 0, 0, 0, 32, 0, 0, 0, 17, 0,
2394 18, 19, 33, 0, 0, 0, 21, 34, 0, 0,
2395 0, 22, 0, 0, 0, 24, 0, 0, 0, 0,
2396 0, 0, 0, 0, 27, 0, 28, 29, 545, 546,
2397 547, 548, 549, 550, 551, 552, 553, 554, 555, 556,
2398 31, 558, 559, 560, 561, 562, 563, 564, 565, 566,
2399 32, 0, 0, 0, 0, 0, 0, 0, 33, 0,
2400 0, 0, 0, 34, 545, 546, 547, 548, 549, 550,
2401 551, 552, 553, 554, 555, 556, 557, 558, 559, 560,
2402 561, 562, 563, 564, 565, 566, 545, 546, 547, 548,
2403 549, 550, 551, 552, 553, 554, 555, 556, 557, 558,
2404 559, 560, 561, 562, 563, 564, 565, 566, 0, 0,
2405 0, 0, 0, 1169, 0, 0, 0, 0, 0, 0,
2406 0, 0, 0, 0, 0, 0, 0, 0, 544, 0,
2407 0, 1434, 545, 546, 547, 548, 549, 550, 551, 552,
2408 553, 554, 555, 556, 557, 558, 559, 560, 561, 562,
2409 563, 564, 565, 566, 1343, 545, 546, 547, 548, 549,
2410 550, 551, 552, 553, 554, 555, 556, 557, 558, 559,
2411 560, 561, 562, 563, 564, 565, 566, 1476, 545, 546,
2412 547, 548, 549, 550, 551, 552, 553, 554, 555, 556,
2413 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
2414 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
2415 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
2416 565, 566, 549, 550, 551, 552, 553, 554, 555, 556,
2417 557, 558, 559, 560, 561, 562, 563, 564, 565, 566
2418 };
2419
2420 static const short yycheck[] = { 4,
2421 340, 24, 4, 4, 54, 4, 662, 125, 191, 379,
2422 34, 75, 4, 156, 14, 660, 379, 231, 146, 147,
2423 831, 379, 460, 725, 346, 350, 83, 132, 4, 439,
2424 650, 36, 734, 79, 36, 36, 41, 36, 34, 41,
2425 41, 1276, 41, 226, 36, 297, 298, 53, 1411, 41,
2426 923, 56, 191, 221, 4, 412, 643, 1299, 61, 34,
2427 36, 200, 11, 1446, 1444, 41, 71, 11, 1306, 106,
2428 107, 1441, 59, 59, 38, 1313, 328, 1, 83, 65,
2429 56, 11, 82, 60, 1, 56, 36, 58, 1468, 743,
2430 60, 41, 595, 276, 748, 141, 31, 32, 1428, 602,
2431 0, 106, 107, 1135, 1136, 105, 199, 200, 48, 3,
2432 4, 5, 9, 100, 63, 0, 128, 1149, 75, 284,
2433 285, 133, 146, 147, 148, 79, 1509, 1497, 132, 133,
2434 135, 195, 346, 135, 111, 59, 111, 1467, 61, 185,
2435 110, 761, 59, 1, 764, 151, 63, 111, 83, 12,
2436 146, 147, 148, 177, 94, 160, 75, 340, 160, 135,
2437 89, 110, 91, 57, 58, 62, 110, 1547, 1498, 1411,
2438 1533, 106, 107, 513, 61, 55, 182, 1415, 535, 96,
2439 110, 177, 55, 12, 160, 135, 596, 81, 111, 14,
2440 63, 194, 60, 49, 60, 75, 94, 60, 23, 202,
2441 63, 59, 61, 12, 34, 63, 1238, 136, 8, 9,
2442 160, 146, 147, 867, 14, 1247, 1248, 1455, 1250, 63,
2443 191, 386, 387, 661, 111, 27, 28, 227, 199, 200,
2444 32, 60, 337, 1044, 63, 98, 65, 37, 96, 64,
2445 175, 176, 110, 1478, 110, 61, 46, 110, 48, 60,
2446 48, 60, 111, 63, 63, 63, 299, 300, 229, 61,
2447 437, 94, 1500, 65, 48, 75, 110, 48, 445, 98,
2448 633, 314, 277, 417, 317, 94, 333, 320, 283, 48,
2449 323, 324, 287, 75, 321, 287, 906, 907, 242, 98,
2450 75, 334, 614, 7, 94, 111, 94, 95, 123, 110,
2451 887, 626, 110, 431, 432, 444, 663, 961, 94, 111,
2452 94, 287, 110, 94, 95, 685, 321, 147, 148, 973,
2453 145, 464, 39, 1469, 38, 94, 110, 685, 333, 110,
2454 4, 5, 382, 337, 499, 1481, 341, 287, 55, 25,
2455 352, 681, 48, 55, 109, 1491, 346, 177, 283, 48,
2456 443, 444, 61, 48, 1008, 25, 1010, 286, 451, 65,
2457 58, 373, 1508, 75, 1396, 1397, 65, 1178, 871, 373,
2458 463, 4, 5, 59, 379, 4, 5, 63, 383, 61,
2459 9, 1527, 55, 57, 58, 422, 321, 379, 94, 453,
2460 483, 894, 48, 218, 219, 94, 1016, 1017, 333, 94,
2461 95, 4, 5, 48, 1550, 60, 231, 431, 432, 433,
2462 96, 48, 383, 384, 48, 110, 1289, 4, 5, 32,
2463 425, 76, 55, 48, 57, 58, 55, 36, 57, 58,
2464 933, 65, 41, 48, 75, 431, 432, 433, 94, 95,
2465 63, 63, 71, 48, 379, 4, 5, 450, 1150, 94,
2466 95, 501, 81, 75, 57, 58, 461, 94, 868, 461,
2467 94, 95, 461, 466, 59, 436, 95, 60, 61, 94,
2468 57, 58, 443, 444, 511, 1348, 447, 514, 81, 94,
2469 451, 518, 55, 48, 1357, 1358, 529, 530, 313, 94,
2470 425, 321, 48, 191, 531, 4, 431, 432, 57, 58,
2471 48, 199, 200, 4, 5, 542, 511, 461, 63, 514,
2472 547, 461, 48, 518, 519, 520, 521, 522, 888, 576,
2473 75, 959, 81, 48, 349, 888, 531, 36, 226, 94,
2474 888, 502, 41, 55, 111, 48, 573, 542, 94, 87,
2475 88, 709, 579, 711, 92, 93, 94, 95, 716, 60,
2476 61, 4, 5, 75, 876, 59, 57, 58, 94, 95,
2477 489, 3, 4, 5, 921, 3, 4, 5, 48, 94,
2478 575, 576, 48, 4, 5, 55, 511, 94, 276, 514,
2479 81, 94, 55, 518, 519, 520, 521, 522, 1091, 639,
2480 595, 641, 642, 758, 777, 75, 531, 602, 55, 1472,
2481 48, 719, 432, 433, 57, 58, 606, 542, 631, 702,
2482 48, 1114, 55, 55, 94, 57, 58, 55, 94, 57,
2483 58, 873, 3, 4, 5, 6, 57, 58, 81, 48,
2484 76, 681, 48, 458, 25, 640, 27, 28, 661, 644,
2485 575, 576, 340, 63, 1054, 1303, 94, 1305, 1050, 1051,
2486 81, 1053, 3, 4, 5, 75, 94, 592, 593, 55,
2487 595, 42, 876, 1101, 728, 729, 110, 602, 59, 640,
2488 110, 642, 63, 737, 55, 94, 57, 58, 94, 75,
2489 685, 511, 732, 55, 514, 95, 384, 4, 5, 833,
2490 48, 1129, 110, 3, 4, 5, 110, 3, 4, 5,
2491 530, 531, 11, 75, 55, 96, 57, 58, 89, 1049,
2492 681, 111, 542, 55, 60, 61, 541, 48, 3, 55,
2493 725, 63, 727, 725, 55, 727, 725, 63, 733, 734,
2494 418, 702, 734, 75, 705, 734, 94, 425, 743, 75,
2495 57, 58, 61, 748, 75, 443, 444, 57, 58, 59,
2496 685, 57, 58, 451, 48, 94, 732, 733, 55, 27,
2497 28, 55, 733, 94, 81, 463, 63, 55, 739, 4,
2498 5, 725, 602, 727, 76, 725, 78, 727, 75, 733,
2499 734, 75, 60, 61, 734, 483, 113, 75, 956, 957,
2500 958, 418, 1437, 63, 3, 4, 5, 6, 425, 842,
2501 94, 838, 84, 85, 502, 1461, 631, 25, 743, 27,
2502 28, 95, 76, 748, 78, 744, 745, 746, 643, 95,
2503 55, 509, 57, 58, 55, 830, 869, 870, 60, 834,
2504 27, 28, 63, 42, 871, 32, 71, 1002, 1003, 1004,
2505 49, 59, 113, 668, 75, 63, 81, 94, 57, 58,
2506 3, 4, 5, 899, 111, 999, 861, 3, 4, 5,
2507 95, 55, 867, 60, 61, 94, 871, 75, 65, 63,
2508 894, 75, 81, 75, 60, 75, 876, 110, 96, 65,
2509 89, 75, 509, 888, 572, 890, 574, 575, 60, 894,
2510 76, 1035, 1036, 8, 9, 830, 888, 11, 894, 14,
2511 60, 61, 55, 110, 57, 58, 59, 110, 113, 933,
2512 55, 57, 58, 977, 602, 110, 65, 954, 63, 983,
2513 984, 609, 37, 987, 988, 61, 861, 991, 933, 110,
2514 75, 46, 867, 111, 869, 870, 871, 933, 111, 985,
2515 110, 771, 947, 75, 642, 572, 113, 574, 575, 954,
2516 755, 756, 757, 888, 75, 890, 961, 892, 893, 894,
2517 65, 1089, 1090, 60, 61, 1305, 1110, 75, 973, 4,
2518 5, 60, 60, 61, 113, 1119, 1120, 60, 113, 110,
2519 1124, 1125, 609, 681, 1112, 1113, 110, 76, 110, 78,
2520 59, 996, 110, 55, 996, 966, 967, 996, 933, 8,
2521 113, 94, 1359, 1008, 702, 1010, 3, 4, 5, 6,
2522 45, 48, 947, 1056, 1371, 94, 111, 61, 37, 954,
2523 55, 61, 57, 58, 995, 1169, 961, 65, 110, 65,
2524 110, 985, 81, 82, 83, 84, 85, 65, 973, 63,
2525 870, 871, 996, 110, 110, 42, 996, 1093, 4, 5,
2526 110, 65, 79, 9, 879, 65, 113, 65, 65, 60,
2527 57, 58, 887, 94, 894, 1089, 1090, 1091, 1438, 1112,
2528 1113, 1428, 63, 1008, 436, 1010, 103, 1114, 1101, 777,
2529 1438, 1225, 111, 771, 110, 447, 1091, 110, 1112, 1113,
2530 1114, 76, 89, 1089, 1090, 1091, 76, 110, 110, 55,
2531 76, 57, 58, 933, 110, 132, 76, 110, 1465, 1114,
2532 1467, 110, 1452, 63, 141, 71, 1112, 1113, 1114, 25,
2533 1264, 27, 28, 63, 60, 81, 1483, 110, 1165, 1166,
2534 1167, 1168, 3, 4, 5, 63, 7, 8, 9, 1176,
2535 113, 1498, 110, 95, 111, 1150, 834, 110, 1150, 110,
2536 89, 1150, 48, 59, 1089, 1090, 1091, 63, 185, 847,
2537 113, 849, 110, 851, 110, 57, 37, 110, 113, 113,
2538 1141, 1142, 110, 1144, 1145, 110, 1147, 1112, 1113, 1114,
2539 110, 1245, 1246, 60, 55, 111, 57, 58, 59, 65,
2540 96, 218, 1146, 881, 60, 25, 1150, 27, 28, 1343,
2541 1150, 65, 60, 110, 94, 110, 1211, 834, 111, 1211,
2542 1211, 1036, 1211, 94, 94, 242, 1221, 111, 113, 94,
2543 847, 110, 849, 110, 851, 4, 5, 915, 8, 59,
2544 113, 110, 110, 63, 105, 106, 107, 79, 80, 81,
2545 82, 83, 84, 85, 65, 933, 63, 110, 110, 110,
2546 110, 110, 48, 1303, 881, 1305, 1299, 1294, 110, 110,
2547 1090, 1091, 110, 379, 1235, 1236, 96, 110, 113, 1452,
2548 106, 107, 3, 4, 5, 110, 55, 1420, 57, 58,
2549 34, 110, 110, 1113, 1114, 1110, 1221, 110, 915, 97,
2550 110, 110, 71, 63, 1299, 1423, 1424, 1299, 110, 1304,
2551 1299, 1306, 81, 110, 1306, 1306, 110, 1306, 1313, 425,
2552 110, 1313, 1313, 110, 1313, 113, 63, 1381, 345, 61,
2553 61, 9, 61, 16, 61, 94, 57, 58, 94, 61,
2554 94, 1368, 109, 1304, 1305, 94, 4, 5, 99, 7,
2555 8, 9, 17, 705, 12, 61, 14, 61, 110, 11,
2556 110, 61, 110, 110, 1325, 1326, 1327, 61, 1382, 94,
2557 60, 29, 389, 31, 32, 110, 61, 65, 11, 37,
2558 3, 4, 5, 11, 1411, 1412, 61, 739, 46, 61,
2559 1423, 1424, 110, 1208, 110, 61, 1382, 55, 1425, 57,
2560 58, 1535, 0, 0, 3, 4, 5, 0, 2, 1423,
2561 1424, 1425, 407, 1453, 1441, 352, 1411, 1412, 160, 1411,
2562 1415, 1475, 1411, 1415, 1415, 1103, 1415, 1105, 888, 1107,
2563 1425, 1436, 1393, 1394, 57, 58, 160, 1423, 1424, 1425,
2564 98, 458, 733, 1438, 727, 1101, 1441, 93, 493, 1444,
2565 1407, 138, 1444, 1444, 1547, 1444, 279, 283, 57, 58,
2566 1455, 1304, 879, 1455, 1455, 668, 1455, 768, 1495, 486,
2567 1497, 1129, 959, 1468, 220, 996, 1468, 1468, 727, 1468,
2568 1295, 733, 3, 4, 5, 6, 1103, 1412, 1105, 595,
2569 1107, 1148, 1519, 508, 576, 321, 602, 4, 1423, 1424,
2570 1425, 766, 1497, 182, 123, 1500, 1533, 14, 1500, 1500,
2571 337, 1500, 1306, 1438, 1212, 1483, 1441, 1195, 25, 1461,
2572 1458, 42, 1520, 1522, 31, 32, 942, 34, 49, 36,
2573 3, 4, 5, -1, 41, 1350, 57, 58, 1499, 1221,
2574 -1, -1, -1, 4, 5, -1, -1, 54, 9, 56,
2575 -1, -1, 1547, 379, -1, 1547, 1547, 64, 1547, -1,
2576 81, -1, 1382, -1, 71, -1, 39, 40, 89, 42,
2577 -1, 588, 1497, -1, -1, 82, 83, -1, 1195, 685,
2578 -1, -1, 55, -1, 57, 58, -1, 48, 605, -1,
2579 3, 4, 5, 6, 55, -1, 57, 58, 105, -1,
2580 -1, -1, -1, -1, 1424, 1425, -1, -1, -1, -1,
2581 71, -1, -1, -1, 966, 967, -1, 1305, -1, -1,
2582 81, 128, 9, -1, -1, 12, 133, -1, 135, 42,
2583 91, 12, 139, 94, 95, 142, 143, 743, -1, 146,
2584 147, 148, 748, 995, 57, 58, 27, 28, -1, -1,
2585 -1, 32, -1, 160, -1, -1, -1, -1, -1, -1,
2586 -1, 48, -1, -1, -1, -1, -1, 48, 175, 176,
2587 177, -1, -1, 60, -1, 62, 63, 700, 65, 60,
2588 61, -1, 63, -1, 65, 511, -1, -1, 514, 76,
2589 -1, 78, 518, 519, 520, 521, 522, 204, -1, -1,
2590 -1, -1, -1, -1, 1382, 531, -1, 94, 95, -1,
2591 -1, 98, 219, 94, 95, -1, 542, 98, -1, 742,
2592 227, -1, -1, 110, 747, -1, -1, -1, -1, 110,
2593 4, 5, 239, 7, 8, 9, -1, -1, 12, -1,
2594 14, -1, -1, -1, -1, -1, 3, 4, 5, 575,
2595 7, 8, 9, -1, -1, 29, -1, 31, 32, -1,
2596 -1, 867, -1, 37, 1452, 871, 7, 8, 9, 595,
2597 277, 278, 46, 14, 48, -1, 602, -1, -1, -1,
2598 287, 55, 888, 57, 58, -1, -1, -1, 894, 1141,
2599 1142, 32, 1144, 1145, -1, 1147, 37, 71, 4, 5,
2600 57, 58, 8, 9, -1, 46, -1, 81, 14, 3,
2601 4, 5, 6, -1, -1, 9, -1, 91, 81, -1,
2602 94, 95, -1, 29, 98, 31, 333, 933, -1, -1,
2603 337, 37, 339, 340, 341, 175, 176, 177, -1, 862,
2604 46, 864, -1, -1, -1, 352, -1, -1, 42, 55,
2605 -1, 57, 58, 59, 48, 961, -1, -1, 875, 685,
2606 877, 55, -1, 57, 58, -1, 373, 973, -1, -1,
2607 -1, -1, 379, -1, -1, 382, 383, 71, -1, 3,
2608 4, 5, 899, 1235, 1236, -1, 393, 81, 94, 396,
2609 -1, 154, -1, -1, 401, 89, -1, 91, -1, -1,
2610 94, 95, 1008, -1, 1010, -1, -1, 31, -1, -1,
2611 173, 3, 4, 5, 6, -1, -1, 9, -1, -1,
2612 427, -1, 429, 186, 431, 432, 433, -1, -1, -1,
2613 437, 55, -1, 57, 58, 442, -1, -1, 445, 4,
2614 5, -1, -1, 8, 9, -1, -1, -1, -1, 14,
2615 42, -1, -1, -1, 461, -1, 48, 7, 8, 9,
2616 -1, -1, -1, 55, 14, 57, 58, -1, 985, -1,
2617 -1, -1, 37, 1325, 1326, 1327, -1, -1, -1, 71,
2618 -1, 46, 32, 48, 1007, 1091, 1009, 37, -1, 81,
2619 55, -1, 57, 58, 501, -1, 46, 89, -1, 91,
2620 -1, -1, 94, 95, 830, -1, 71, -1, 1114, -1,
2621 -1, 61, 519, 520, 521, 522, 81, -1, 7, 8,
2622 9, -1, -1, -1, -1, 14, 91, -1, -1, 94,
2623 95, -1, -1, -1, -1, 861, -1, -1, -1, -1,
2624 -1, 1393, 1394, 32, -1, 871, -1, 1070, 37, 3,
2625 4, 5, -1, 7, -1, -1, -1, 46, -1, 1076,
2626 -1, -1, 888, -1, 890, -1, -1, -1, 894, 576,
2627 -1, 578, 3, 4, 5, 6, 1093, 31, 9, -1,
2628 -1, -1, 589, -1, 38, 592, 593, 427, 595, 429,
2629 -1, 431, 432, 433, -1, 602, -1, -1, -1, 606,
2630 -1, 55, 442, 57, 58, -1, -1, 933, -1, -1,
2631 1133, 42, -1, -1, 1137, -1, -1, 48, -1, -1,
2632 -1, 947, -1, -1, 55, -1, 57, 58, 954, 1146,
2633 -1, -1, 639, 640, 641, 642, 643, 644, -1, -1,
2634 71, 7, 8, 9, -1, -1, -1, 1499, 14, -1,
2635 81, 3, 4, 5, 6, -1, -1, 9, 89, -1,
2636 91, -1, -1, 94, 95, -1, 32, -1, 1191, -1,
2637 -1, 37, 435, -1, 681, -1, -1, 440, 685, -1,
2638 46, -1, -1, -1, -1, 692, 693, -1, 695, -1,
2639 42, -1, -1, -1, -1, 61, 48, -1, -1, 3,
2640 4, 5, 6, 55, 467, 57, 58, -1, -1, 472,
2641 -1, -1, -1, -1, -1, 722, -1, -1, 725, 71,
2642 727, 484, 485, -1, 487, 732, 733, 734, -1, 81,
2643 -1, 1254, 1255, -1, -1, -1, 743, 89, 42, 91,
2644 -1, 748, 94, 95, 48, -1, -1, 1270, 755, 756,
2645 757, 55, -1, 57, 58, -1, 4, 5, -1, -1,
2646 8, 9, -1, -1, -1, 1091, 14, 71, -1, -1,
2647 777, -1, -1, -1, 3, 4, 5, 81, 7, 8,
2648 9, 29, -1, 31, -1, 89, -1, 91, 1114, 37,
2649 94, 95, -1, -1, -1, 1318, 1319, -1, 46, -1,
2650 -1, -1, 3, 4, 5, 6, -1, 55, 37, 57,
2651 58, -1, -1, -1, 1337, 1338, -1, -1, -1, -1,
2652 -1, -1, -1, 830, -1, 339, 340, 341, 57, 58,
2653 -1, -1, 1438, -1, -1, 598, 599, -1, -1, -1,
2654 603, 42, -1, -1, -1, 852, 94, 854, 49, -1,
2655 -1, -1, 692, 693, 861, 695, 57, 58, 865, -1,
2656 867, -1, 869, 870, 871, -1, -1, -1, -1, 876,
2657 3, 4, 5, 6, -1, -1, 9, -1, -1, -1,
2658 81, 888, -1, 890, -1, 892, 893, 894, 89, -1,
2659 -1, 4, 732, -1, -1, 1221, -1, -1, -1, -1,
2660 -1, 14, -1, -1, -1, -1, -1, -1, -1, 42,
2661 -1, 24, 25, 3, 4, 5, 6, -1, 31, 32,
2662 -1, 34, 55, 36, 57, 58, 933, -1, 41, 4,
2663 5, -1, -1, 8, 9, -1, -1, -1, 71, 14,
2664 947, 54, -1, 56, -1, -1, -1, -1, 81, -1,
2665 -1, 64, 42, -1, 961, -1, 89, -1, 71, -1,
2666 -1, 94, 37, -1, -1, 55, 973, 57, 58, -1,
2667 83, 46, -1, 48, -1, -1, -1, -1, -1, 986,
2668 55, 71, 57, 58, -1, -1, 749, -1, 751, 996,
2669 -1, 81, -1, -1, -1, -1, 71, -1, -1, 89,
2670 -1, 1008, -1, 1010, 94, -1, 81, -1, -1, -1,
2671 -1, 3, 4, 5, 6, 128, 91, -1, -1, 94,
2672 95, -1, 135, -1, -1, -1, 139, -1, -1, -1,
2673 143, -1, -1, 146, 147, 148, -1, -1, -1, -1,
2674 -1, -1, -1, 1050, 1051, -1, 1053, 160, -1, -1,
2675 42, -1, 892, 893, 894, -1, -1, 49, -1, -1,
2676 -1, -1, 175, 176, 177, 57, 58, 4, 5, -1,
2677 7, 8, 9, 836, 837, 12, 839, 14, 592, 593,
2678 1087, 1088, 1089, 1090, 1091, -1, -1, -1, 1095, 81,
2679 -1, 204, 29, 933, 31, 32, -1, 89, -1, 1425,
2680 37, -1, -1, 866, -1, 1112, 1113, 1114, -1, 46,
2681 -1, -1, 1438, -1, 3, 4, 5, 6, 55, -1,
2682 57, 58, -1, -1, -1, 639, 239, 641, 642, -1,
2683 644, -1, -1, 896, -1, -1, 1143, -1, -1, -1,
2684 -1, 1148, 1, 1150, 3, 4, 5, 6, 7, 8,
2685 9, -1, -1, 42, 1, 14, 3, 4, 5, 6,
2686 49, 8, -1, -1, 277, 278, -1, 681, 57, 58,
2687 29, -1, 31, 32, 287, -1, -1, -1, 37, -1,
2688 -1, -1, -1, 42, -1, -1, -1, 46, 47, -1,
2689 49, 1198, 1199, -1, 1201, 42, 55, 960, 57, 58,
2690 89, -1, 49, -1, 63, -1, -1, -1, 55, 972,
2691 57, 58, 71, -1, 1221, -1, -1, -1, -1, -1,
2692 333, -1, 81, -1, 337, -1, 339, 340, 341, -1,
2693 89, -1, -1, 346, -1, 94, -1, -1, -1, 352,
2694 -1, -1, 89, -1, -1, -1, -1, 1087, 1088, 1089,
2695 1090, 1091, -1, -1, -1, 1095, -1, -1, -1, -1,
2696 -1, -1, -1, 777, -1, -1, 379, -1, -1, 382,
2697 383, -1, 1112, 1113, 1114, -1, -1, -1, -1, -1,
2698 393, -1, -1, 396, -1, -1, -1, -1, 401, -1,
2699 -1, -1, -1, -1, -1, -1, 1303, 1304, 1305, -1,
2700 -1, -1, 1065, 1143, -1, -1, -1, -1, -1, 4,
2701 5, -1, -1, -1, 427, -1, 429, -1, 431, 432,
2702 433, -1, -1, -1, 437, -1, -1, -1, -1, 442,
2703 -1, 1094, 445, -1, -1, -1, -1, -1, 852, -1,
2704 854, -1, -1, 3, 4, 5, 6, 460, 461, -1,
2705 -1, 865, -1, 48, -1, 869, 870, -1, 1198, 1199,
2706 55, 1201, 57, 58, -1, -1, -1, -1, -1, -1,
2707 -1, 3, 4, 5, 6, 1382, 71, 9, 892, 893,
2708 -1, -1, 42, -1, -1, -1, 81, -1, 501, -1,
2709 1153, -1, -1, -1, 1157, 55, 91, 57, 58, 94,
2710 95, 61, -1, -1, -1, -1, 519, 520, 521, 522,
2711 42, 71, -1, -1, -1, -1, 1423, 1424, 1425, -1,
2712 -1, 81, -1, 55, -1, 57, 58, -1, -1, 89,
2713 1193, 1438, 4, -1, 94, -1, -1, -1, -1, 71,
2714 -1, -1, -1, -1, -1, -1, 1453, -1, -1, 81,
2715 -1, 3, 4, 5, 6, -1, -1, 89, -1, 31,
2716 32, -1, 94, 576, 36, 578, -1, 1230, -1, 41,
2717 -1, 1234, -1, -1, -1, -1, -1, -1, -1, 592,
2718 593, -1, 595, -1, 56, -1, -1, -1, -1, 602,
2719 42, -1, -1, 1256, 1257, -1, -1, 49, -1, -1,
2720 -1, 614, -1, -1, -1, 57, 58, 3, 4, 5,
2721 6, 3, 4, 5, 6, -1, -1, -1, 631, -1,
2722 -1, -1, -1, -1, -1, -1, 639, 640, 641, 642,
2723 643, 644, -1, -1, -1, -1, -1, 89, -1, -1,
2724 -1, -1, 1382, -1, -1, -1, 42, -1, 661, -1,
2725 42, -1, -1, 49, -1, -1, -1, 49, -1, -1,
2726 -1, 57, 58, 135, -1, 57, 58, 139, 681, -1,
2727 -1, 143, 685, 1087, 1088, 1089, 1090, -1, -1, 692,
2728 693, 1095, 695, 1423, 1424, 1425, -1, -1, 160, 81,
2729 -1, -1, -1, 89, -1, -1, -1, 89, 1112, 1113,
2730 -1, -1, -1, 175, 176, -1, -1, -1, -1, 722,
2731 -1, -1, 725, -1, 727, -1, -1, -1, -1, 732,
2732 733, 734, 3, 4, 5, 6, 7, 8, 9, -1,
2733 743, -1, -1, 14, -1, 748, -1, -1, -1, -1,
2734 -1, -1, 755, 756, 757, -1, -1, -1, 29, -1,
2735 31, 32, -1, -1, -1, -1, 37, -1, -1, -1,
2736 -1, 42, -1, -1, 777, 46, -1, 239, -1, 4,
2737 -1, -1, -1, -1, 55, -1, 57, 58, -1, -1,
2738 61, -1, -1, -1, 1198, 1199, -1, 1201, -1, -1,
2739 71, 339, 340, 341, -1, -1, 31, 32, -1, 34,
2740 81, 36, -1, -1, -1, -1, 41, -1, 89, -1,
2741 -1, -1, -1, 94, -1, 287, -1, 830, -1, 54,
2742 -1, 56, 77, 78, 79, 80, 81, 82, 83, 84,
2743 85, 3, 4, 5, 6, 7, 8, 9, -1, 852,
2744 -1, 854, 14, -1, 79, -1, -1, -1, 861, -1,
2745 -1, -1, 865, -1, 867, -1, 869, 870, 871, -1,
2746 32, -1, -1, 876, -1, 37, -1, -1, -1, -1,
2747 42, -1, -1, -1, 46, 888, 48, 890, -1, 892,
2748 893, 894, -1, 55, -1, 57, 58, -1, -1, -1,
2749 -1, -1, -1, 128, -1, -1, -1, 132, 133, 71,
2750 135, -1, -1, -1, 139, -1, 141, -1, 143, 81,
2751 -1, 146, 147, 148, -1, -1, -1, 89, -1, 91,
2752 933, 393, 94, 95, 396, 160, -1, -1, -1, 401,
2753 -1, -1, -1, -1, 947, -1, -1, -1, -1, -1,
2754 175, 176, 177, -1, -1, -1, 959, -1, 961, -1,
2755 185, -1, -1, -1, -1, 427, -1, 429, -1, -1,
2756 973, -1, -1, -1, -1, -1, -1, -1, -1, 204,
2757 442, 1, -1, 3, 4, 5, 6, 7, 8, 9,
2758 -1, -1, -1, 996, 14, -1, -1, -1, -1, 461,
2759 -1, -1, -1, -1, -1, 1008, -1, 1010, -1, 29,
2760 -1, 31, 32, 33, 239, -1, -1, 37, 38, -1,
2761 -1, -1, 42, -1, -1, -1, 46, 47, -1, 49,
2762 -1, -1, -1, -1, -1, 55, -1, 57, 58, -1,
2763 -1, 61, -1, 63, -1, -1, -1, 1050, 1051, -1,
2764 1053, 71, -1, -1, 592, 593, -1, 595, -1, -1,
2765 -1, 81, 287, -1, 602, -1, -1, -1, -1, 89,
2766 -1, -1, -1, -1, 94, -1, 3, 4, 5, 6,
2767 -1, -1, 9, -1, 1087, 1088, 1089, 1090, 1091, -1,
2768 -1, 111, 1095, -1, -1, -1, 321, -1, 1101, -1,
2769 -1, 639, -1, 641, 642, -1, 644, -1, -1, 1112,
2770 1113, 1114, 337, -1, -1, 42, -1, -1, -1, -1,
2771 345, -1, -1, -1, -1, -1, 1129, 352, 55, -1,
2772 57, 58, -1, 3, 4, 5, 6, -1, -1, 9,
2773 1143, -1, -1, 681, 71, 1148, -1, 1150, 373, -1,
2774 -1, -1, -1, -1, 81, -1, -1, 382, -1, -1,
2775 -1, -1, 89, -1, -1, -1, -1, 94, 393, -1,
2776 -1, 396, 42, -1, -1, -1, 401, -1, 640, -1,
2777 -1, -1, -1, -1, -1, 55, -1, 57, 58, -1,
2778 -1, -1, -1, -1, -1, 1198, 1199, -1, 1201, -1,
2779 -1, 71, 427, -1, 429, -1, 431, 432, 433, -1,
2780 -1, 81, 437, -1, -1, -1, -1, 442, 1221, 89,
2781 445, -1, -1, 685, 94, -1, -1, -1, -1, -1,
2782 692, 693, -1, 695, -1, -1, 461, -1, -1, 777,
2783 -1, -1, -1, 3, 4, 5, 6, -1, -1, 9,
2784 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2785 83, 84, 85, 725, -1, 727, -1, -1, -1, -1,
2786 732, 733, 734, -1, -1, -1, 501, -1, -1, -1,
2787 -1, -1, 42, -1, -1, -1, 511, -1, -1, 514,
2788 -1, 4, 5, -1, -1, 55, 9, 57, 58, -1,
2789 1303, 1304, 1305, -1, 529, 530, 531, 3, 4, 5,
2790 6, 71, -1, 9, 852, -1, 854, 542, -1, -1,
2791 4, 81, -1, -1, -1, -1, -1, 865, -1, 89,
2792 -1, 869, 870, 871, 94, 48, -1, -1, -1, -1,
2793 -1, -1, 55, -1, 57, 58, 42, 31, 32, -1,
2794 34, -1, 36, -1, 892, 893, 894, 41, 71, 55,
2795 -1, 57, 58, 588, -1, -1, -1, -1, 81, -1,
2796 54, -1, 56, -1, -1, 71, -1, 602, 91, 1382,
2797 -1, 94, 95, -1, -1, 81, -1, -1, -1, -1,
2798 -1, -1, -1, 89, -1, 933, -1, -1, 94, 71,
2799 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2800 82, 83, 84, 85, 639, 640, 641, 642, -1, -1,
2801 1423, 1424, 1425, -1, -1, -1, 34, 4, 5, -1,
2802 892, 893, 9, -1, -1, 1438, -1, -1, -1, -1,
2803 -1, -1, -1, -1, -1, -1, 54, -1, -1, -1,
2804 1453, 135, -1, -1, -1, 139, 681, -1, -1, 143,
2805 685, -1, 146, 147, 148, -1, -1, 692, 693, -1,
2806 695, 48, -1, -1, -1, -1, 160, -1, 55, -1,
2807 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
2808 -1, 175, 176, 177, 71, -1, -1, -1, -1, -1,
2809 725, -1, 727, -1, 81, -1, -1, 732, 733, 734,
2810 -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
2811 204, -1, -1, -1, -1, -1, 3, 4, 5, 6,
2812 -1, -1, 9, -1, 996, -1, -1, -1, 146, 147,
2813 148, -1, -1, -1, -1, -1, 771, -1, -1, 1087,
2814 1088, 1089, 1090, 1091, -1, 239, -1, 1095, -1, -1,
2815 -1, -1, -1, -1, -1, 42, -1, 175, 176, 177,
2816 -1, -1, -1, -1, 1112, 1113, 1114, -1, 55, -1,
2817 57, 58, 74, 75, 76, 77, 78, 79, 80, 81,
2818 82, 83, 84, 85, 71, -1, 204, -1, -1, -1,
2819 -1, -1, -1, 287, 81, -1, -1, -1, -1, -1,
2820 -1, -1, 89, -1, -1, -1, -1, 94, -1, -1,
2821 -1, -1, -1, -1, -1, 1087, 1088, -1, -1, -1,
2822 -1, -1, -1, 1095, -1, -1, -1, 3, 4, 5,
2823 6, 7, 8, 9, 869, 870, 871, -1, 14, -1,
2824 875, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2825 1198, 1199, 346, 1201, -1, -1, 32, 892, 893, 894,
2826 278, 37, -1, -1, 899, -1, 42, -1, -1, -1,
2827 46, 1143, 48, -1, -1, -1, 1148, -1, 1150, 55,
2828 -1, 57, 58, -1, -1, -1, -1, -1, 382, -1,
2829 -1, -1, -1, -1, -1, 71, -1, -1, 933, 393,
2830 -1, -1, 396, -1, -1, 81, -1, 401, 3, 4,
2831 5, 6, -1, 89, 9, 91, -1, -1, 94, 95,
2832 -1, 339, 340, 341, -1, -1, 1198, 1199, -1, 1201,
2833 -1, -1, -1, 427, -1, 429, -1, 431, 432, 433,
2834 -1, -1, -1, 437, -1, -1, -1, 42, 442, -1,
2835 985, 445, -1, -1, -1, -1, -1, -1, -1, -1,
2836 55, 996, 57, 58, 382, -1, -1, 461, -1, -1,
2837 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
2838 -1, -1, -1, 4, 5, -1, 81, 8, 9, -1,
2839 -1, -1, -1, 14, 89, -1, -1, -1, -1, 94,
2840 -1, -1, -1, -1, -1, -1, -1, 501, 29, 427,
2841 31, 429, -1, 431, 432, 433, 37, -1, -1, 437,
2842 -1, -1, -1, -1, 442, 46, -1, 445, -1, -1,
2843 -1, -1, 1304, -1, 55, -1, 57, 58, -1, -1,
2844 -1, 1076, -1, -1, -1, -1, -1, -1, -1, 83,
2845 -1, -1, 1087, 1088, 1089, 1090, 1091, -1, 1093, -1,
2846 1095, -1, 1, -1, 3, 4, 5, 6, 7, 8,
2847 9, -1, 106, 107, -1, 14, -1, 1112, 1113, 1114,
2848 -1, -1, -1, 501, -1, -1, -1, -1, -1, -1,
2849 29, -1, 31, 32, -1, 589, -1, -1, 37, -1,
2850 -1, -1, -1, 42, -1, -1, -1, 46, 1143, -1,
2851 49, -1, -1, 1148, -1, 1150, 55, -1, 57, 58,
2852 -1, -1, 61, -1, -1, -1, -1, -1, -1, -1,
2853 -1, -1, 71, -1, 3, 4, 5, 6, -1, -1,
2854 -1, -1, 81, -1, -1, 639, 640, 641, 642, -1,
2855 89, 3, 4, 5, 6, 94, -1, -1, -1, -1,
2856 578, -1, -1, 1198, 1199, -1, 1201, -1, -1, -1,
2857 -1, -1, -1, 42, 592, 593, -1, 595, -1, 54,
2858 -1, -1, -1, -1, 602, -1, 55, 681, 57, 58,
2859 42, 685, -1, -1, 63, -1, -1, -1, 692, 693,
2860 -1, 695, 71, 55, 79, 57, 58, 82, -1, -1,
2861 -1, 63, 81, -1, -1, -1, -1, -1, -1, 71,
2862 89, 639, -1, 641, 642, 94, 644, -1, 103, 81,
2863 105, 725, -1, 727, -1, -1, -1, 89, 732, 733,
2864 734, -1, 94, -1, -1, -1, -1, -1, -1, 283,
2865 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2866 -1, -1, -1, 681, -1, -1, -1, -1, 1303, 1304,
2867 1305, -1, -1, -1, 692, 693, -1, 695, 3, 4,
2868 5, 6, 7, 8, 9, -1, -1, 321, -1, 14,
2869 -1, -1, -1, -1, -1, -1, -1, -1, -1, 333,
2870 175, 176, 177, -1, 29, -1, 31, 32, -1, -1,
2871 185, -1, 37, -1, 732, -1, -1, 42, -1, -1,
2872 -1, 46, -1, 48, -1, -1, -1, -1, -1, 204,
2873 55, -1, 57, 58, -1, -1, -1, 755, 756, 757,
2874 -1, -1, -1, -1, -1, 379, 71, 1382, -1, -1,
2875 -1, -1, 227, -1, -1, -1, 81, -1, -1, 777,
2876 -1, -1, -1, -1, 89, -1, 91, 242, -1, 94,
2877 95, -1, 3, 4, 5, 6, 7, 8, 9, -1,
2878 -1, -1, 876, 14, -1, -1, -1, -1, 1423, 1424,
2879 1425, 425, -1, -1, -1, -1, -1, -1, 892, 893,
2880 894, 32, -1, -1, -1, -1, 37, -1, -1, -1,
2881 -1, 42, -1, -1, -1, 46, -1, 48, 1453, -1,
2882 -1, -1, -1, -1, 55, -1, 57, 58, -1, -1,
2883 -1, -1, -1, -1, 852, -1, 854, -1, -1, 933,
2884 71, -1, -1, -1, -1, -1, -1, 865, -1, -1,
2885 81, 869, 870, 871, -1, -1, -1, -1, 89, -1,
2886 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1,
2887 345, 346, -1, -1, 892, 893, 894, 511, -1, -1,
2888 514, -1, -1, -1, 518, 519, 520, 521, 522, -1,
2889 -1, -1, -1, -1, -1, -1, -1, 531, -1, -1,
2890 -1, -1, 996, -1, -1, -1, -1, 382, 542, -1,
2891 -1, -1, -1, -1, -1, 933, -1, -1, -1, -1,
2892 -1, 3, 4, 5, 6, 7, 8, 9, -1, -1,
2893 12, -1, 14, -1, -1, -1, -1, -1, -1, -1,
2894 -1, 575, 576, -1, -1, -1, -1, 29, -1, 31,
2895 32, -1, 427, -1, 429, 37, 431, 432, 433, -1,
2896 42, 595, 437, -1, 46, -1, 48, 442, 602, -1,
2897 445, -1, -1, 55, -1, 57, 58, -1, -1, -1,
2898 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2899 -1, -1, -1, 1087, 1088, 1089, 1090, 1091, -1, 81,
2900 -1, 1095, -1, -1, -1, -1, -1, 89, -1, 91,
2901 -1, -1, 94, 95, -1, -1, 98, -1, 1112, 1113,
2902 1114, -1, -1, -1, -1, -1, 501, -1, -1, -1,
2903 -1, -1, 1050, 1051, -1, 1053, -1, -1, -1, -1,
2904 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1143,
2905 -1, 685, -1, -1, 1148, -1, 1150, -1, 3, 4,
2906 5, 6, -1, -1, -1, -1, -1, -1, -1, 1087,
2907 1088, 1089, 1090, 1091, -1, -1, -1, 1095, 70, 71,
2908 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2909 82, 83, 84, 85, 1112, 1113, 1114, 42, -1, -1,
2910 -1, -1, -1, -1, 1198, 1199, -1, 1201, -1, 743,
2911 55, -1, 57, 58, 748, 1, 61, 3, 4, 5,
2912 6, 7, 8, 9, -1, 1143, 71, -1, 14, -1,
2913 605, 606, -1, -1, -1, -1, 81, 3, 4, 5,
2914 6, -1, -1, 29, 89, 31, 32, 33, -1, 94,
2915 -1, 37, 38, -1, -1, -1, 42, -1, -1, -1,
2916 46, 47, -1, 49, 639, -1, 641, 642, -1, 55,
2917 -1, 57, 58, -1, -1, 61, 42, 63, -1, -1,
2918 1198, 1199, -1, 1201, -1, 71, -1, -1, -1, 55,
2919 -1, 57, 58, -1, -1, 81, 830, 63, -1, -1,
2920 -1, -1, -1, 89, -1, 71, 681, -1, 94, 1303,
2921 1304, 1305, -1, -1, -1, 81, -1, 692, 693, -1,
2922 695, -1, -1, 89, -1, 111, -1, 861, 94, -1,
2923 -1, -1, -1, 867, -1, -1, -1, 871, -1, -1,
2924 -1, -1, -1, -1, 719, -1, 283, -1, -1, -1,
2925 3, 4, 5, 6, 888, -1, 890, 732, -1, -1,
2926 894, -1, -1, -1, -1, -1, -1, 3, 4, 5,
2927 6, 7, 8, 9, -1, 312, 12, -1, 14, -1,
2928 -1, -1, -1, -1, -1, 1303, -1, 1305, 1382, 42,
2929 -1, -1, -1, 29, -1, 31, 32, -1, -1, 933,
2930 -1, 37, 55, -1, 57, 58, 42, -1, -1, -1,
2931 46, -1, -1, 947, -1, -1, -1, -1, 71, 55,
2932 954, 57, 58, -1, -1, -1, -1, 961, 81, 1423,
2933 1424, 1425, -1, -1, -1, 71, 89, -1, -1, 973,
2934 -1, 94, 4, 5, -1, 81, 8, 9, -1, -1,
2935 -1, -1, 14, 89, -1, -1, -1, -1, 94, 1453,
2936 3, 4, 5, 6, 1382, -1, -1, 29, -1, 31,
2937 -1, -1, -1, -1, 1008, 37, 1010, -1, -1, -1,
2938 417, 418, -1, -1, 46, -1, -1, -1, 425, -1,
2939 -1, -1, -1, 55, -1, 57, 58, -1, -1, 42,
2940 875, 876, 877, -1, -1, 1423, 1424, 1425, -1, -1,
2941 -1, -1, 55, -1, 57, 58, -1, 892, 893, 894,
2942 -1, -1, 4, 5, 899, 7, 8, 9, 71, -1,
2943 -1, -1, 14, -1, -1, 1453, -1, -1, 81, -1,
2944 -1, -1, 14, -1, -1, -1, 89, 29, -1, 31,
2945 32, 94, 24, 25, -1, 37, -1, 1091, 933, 31,
2946 32, -1, 34, -1, 46, -1, -1, 49, -1, -1,
2947 -1, -1, 509, 55, -1, 57, 58, -1, -1, -1,
2948 1114, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2949 -1, -1, 64, -1, -1, -1, -1, -1, -1, -1,
2950 -1, -1, -1, 540, 541, -1, -1, 544, 545, 546,
2951 985, 548, 549, 550, 551, 552, 553, 554, 555, 556,
2952 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
2953 -1, -1, -1, -1, -1, 572, -1, 574, 575, -1,
2954 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2955 -1, 123, -1, 125, -1, -1, 128, -1, -1, -1,
2956 132, 133, -1, -1, -1, 602, -1, 139, -1, 141,
2957 142, 143, 609, -1, 146, 147, 148, -1, -1, -1,
2958 -1, -1, -1, -1, -1, -1, -1, 1221, -1, -1,
2959 -1, -1, -1, -1, -1, -1, -1, -1, -1, 4,
2960 5, 1076, 7, 8, 9, -1, -1, -1, -1, 14,
2961 -1, -1, 1087, 1088, 1089, 1090, 1091, -1, 1093, -1,
2962 1095, -1, -1, -1, 29, -1, 31, 32, -1, -1,
2963 -1, 668, 37, -1, -1, -1, -1, 1112, 1113, 1114,
2964 -1, 46, -1, -1, -1, -1, 218, 219, -1, -1,
2965 55, -1, 57, 58, -1, -1, -1, -1, -1, -1,
2966 -1, -1, -1, -1, -1, -1, -1, 239, 1143, -1,
2967 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
2968 8, 9, -1, -1, -1, -1, 14, 724, -1, -1,
2969 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2970 -1, 29, -1, 31, 32, 33, 278, -1, -1, 37,
2971 38, -1, -1, -1, 42, -1, -1, -1, 46, 47,
2972 -1, 49, -1, 1198, 1199, -1, 1201, 55, 765, 57,
2973 58, -1, -1, 61, 771, 63, -1, -1, -1, -1,
2974 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2975 -1, -1, -1, 81, -1, -1, -1, 794, -1, -1,
2976 -1, 89, -1, -1, -1, 337, 94, 339, 340, -1,
2977 -1, -1, -1, -1, -1, -1, -1, -1, 1412, -1,
2978 352, -1, -1, 111, -1, -1, -1, -1, -1, -1,
2979 -1, 1425, -1, -1, -1, -1, 833, 834, -1, -1,
2980 -1, 373, -1, -1, 1438, -1, -1, 1441, -1, -1,
2981 847, -1, 849, -1, 851, -1, -1, 389, -1, -1,
2982 -1, 393, -1, -1, 396, -1, -1, -1, 1303, 401,
2983 1305, 4, 5, -1, -1, 8, 9, -1, -1, -1,
2984 -1, 14, -1, -1, 881, -1, -1, -1, -1, -1,
2985 -1, -1, -1, -1, -1, -1, 29, -1, 31, -1,
2986 -1, -1, -1, 1497, 37, -1, -1, 904, -1, -1,
2987 -1, -1, -1, 46, -1, 48, -1, -1, 915, -1,
2988 -1, -1, 55, -1, 57, 58, 458, -1, 460, -1,
2989 -1, -1, -1, -1, -1, -1, 933, 1, 71, 3,
2990 4, 5, 6, 7, 8, 9, -1, 1382, 81, -1,
2991 14, -1, -1, -1, 486, -1, -1, -1, 91, -1,
2992 -1, 94, 95, -1, -1, 29, -1, 31, 32, 33,
2993 -1, -1, -1, 37, 38, -1, -1, -1, 42, 976,
2994 -1, -1, 46, 47, -1, 49, -1, -1, 1423, 1424,
2995 1425, 55, -1, 57, 58, -1, -1, 61, -1, 63,
2996 -1, -1, 999, -1, -1, -1, -1, 71, -1, -1,
2997 -1, -1, -1, -1, -1, -1, -1, 81, 1453, -1,
2998 -1, -1, -1, -1, -1, 89, -1, -1, -1, -1,
2999 94, -1, -1, -1, -1, -1, -1, -1, 1035, 1036,
3000 -1, -1, 1039, -1, -1, -1, 578, 111, -1, -1,
3001 -1, -1, -1, -1, -1, -1, 588, 589, -1, -1,
3002 592, 593, -1, -1, -1, -1, 3, 4, 5, 6,
3003 7, 8, 9, -1, -1, -1, -1, 14, 72, 73,
3004 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3005 84, 85, 29, -1, 31, 32, -1, -1, -1, 631,
3006 37, -1, -1, -1, -1, 42, 1103, -1, 1105, 46,
3007 1107, 643, -1, 1110, -1, -1, -1, -1, 55, -1,
3008 57, 58, 1119, 1120, -1, -1, 63, 1124, 1125, 661,
3009 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
3010 -1, -1, 1139, 1140, 81, -1, -1, -1, 12, -1,
3011 -1, -1, 89, -1, -1, -1, -1, 94, -1, -1,
3012 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3013 -1, -1, 1169, -1, 1171, -1, -1, -1, -1, -1,
3014 -1, -1, -1, -1, -1, -1, -1, 719, -1, -1,
3015 722, -1, -1, -1, -1, -1, -1, -1, 1195, 63,
3016 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3017 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3018 84, 85, -1, 755, 756, 757, -1, -1, 1225, -1,
3019 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
3020 11, -1, 13, 14, 1241, 777, -1, -1, -1, -1,
3021 -1, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3022 31, 32, 33, -1, 35, 36, 37, 1264, 39, 40,
3023 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3024 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3025 61, 62, -1, 1290, -1, -1, -1, 68, -1, -1,
3026 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3027 81, -1, -1, -1, -1, 32, 87, 88, 89, -1,
3028 852, -1, 854, 94, -1, -1, 1323, 1324, -1, -1,
3029 -1, -1, -1, 865, -1, 1332, -1, -1, -1, -1,
3030 -1, 112, -1, -1, -1, -1, 1343, 64, 65, 66,
3031 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3032 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
3033 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3034 -1, -1, -1, -1, -1, 1382, -1, -1, -1, -1,
3035 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
3036 8, 9, -1, -1, 12, -1, 14, -1, -1, -1,
3037 -1, -1, -1, -1, -1, -1, 1413, 25, -1, 27,
3038 28, -1, -1, -1, 32, -1, -1, 959, -1, 37,
3039 -1, -1, -1, -1, 42, -1, -1, -1, 46, -1,
3040 48, -1, -1, -1, -1, -1, -1, 55, -1, 57,
3041 58, 59, 60, 61, 986, 63, 64, 65, 66, 67,
3042 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3043 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
3044 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
3045 98, 99, -1, -1, -1, -1, 104, -1, -1, -1,
3046 -1, 109, 110, 111, -1, 113, -1, -1, -1, -1,
3047 -1, -1, -1, -1, -1, -1, -1, -1, 1050, 1051,
3048 1, 1053, 3, 4, 5, 6, 7, 8, 9, -1,
3049 -1, -1, -1, 14, -1, -1, -1, -1, 1535, -1,
3050 -1, -1, -1, -1, -1, -1, -1, -1, 29, -1,
3051 31, 32, 33, -1, -1, -1, 37, -1, -1, -1,
3052 -1, 42, -1, -1, -1, 46, 47, -1, 49, 1101,
3053 -1, -1, -1, -1, 55, -1, 57, 58, -1, -1,
3054 61, -1, 63, -1, -1, -1, -1, -1, -1, -1,
3055 71, -1, -1, -1, -1, -1, -1, 1129, -1, -1,
3056 81, -1, -1, -1, -1, -1, -1, -1, 89, -1,
3057 -1, -1, -1, 94, 1146, 1, 1148, 3, 4, 5,
3058 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
3059 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3060 26, 27, 28, 29, 30, 31, 32, 33, -1, 35,
3061 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3062 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3063 -1, 57, 58, 59, -1, 61, 62, -1, -1, -1,
3064 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3065 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3066 -1, 87, 88, 89, -1, -1, -1, -1, 94, -1,
3067 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3068 -1, -1, -1, -1, -1, 111, 112, 1, -1, 3,
3069 4, 5, 6, 7, 8, 9, 10, 11, -1, 13,
3070 14, 15, -1, 17, 18, 19, 20, 21, 22, 23,
3071 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
3072 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3073 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3074 54, 55, -1, 57, 58, 59, -1, 61, 62, -1,
3075 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3076 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3077 -1, -1, -1, 87, 88, 89, -1, -1, -1, -1,
3078 94, 1, 96, 3, 4, 5, 6, 7, 8, 9,
3079 10, 11, 12, 13, 14, -1, -1, -1, 112, -1,
3080 -1, -1, -1, -1, -1, -1, -1, -1, -1, 29,
3081 30, 31, 32, 33, -1, 35, 36, 37, -1, 39,
3082 40, 41, 42, 43, 44, -1, 46, -1, 48, -1,
3083 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
3084 -1, -1, 62, -1, -1, -1, -1, -1, 68, -1,
3085 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3086 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3087 -1, 91, -1, -1, 94, 95, -1, 1, 98, 3,
3088 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3089 14, -1, 112, -1, -1, -1, -1, -1, -1, -1,
3090 -1, -1, -1, -1, -1, 29, 30, 31, 32, 33,
3091 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3092 44, -1, 46, -1, 48, -1, 50, 51, 52, 53,
3093 54, 55, -1, 57, 58, 59, -1, -1, 62, -1,
3094 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3095 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3096 -1, -1, -1, 87, 88, 89, -1, 91, -1, -1,
3097 94, 95, -1, 1, 98, 3, 4, 5, 6, 7,
3098 8, 9, 10, 11, 12, 13, 14, -1, 112, -1,
3099 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3100 -1, 29, 30, 31, 32, 33, -1, 35, 36, 37,
3101 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3102 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3103 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
3104 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3105 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3106 88, 89, -1, -1, -1, -1, 94, -1, -1, -1,
3107 98, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3108 -1, -1, 110, 1, 112, 3, 4, 5, 6, -1,
3109 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3110 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3111 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3112 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3113 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3114 58, 59, -1, -1, 62, -1, -1, -1, -1, -1,
3115 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3116 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3117 88, 89, -1, -1, -1, -1, 94, 95, 1, -1,
3118 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3119 13, 14, -1, 111, 112, -1, -1, -1, 21, -1,
3120 -1, -1, -1, -1, -1, -1, 29, 30, 31, -1,
3121 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3122 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3123 53, 54, 55, -1, 57, 58, 59, -1, -1, 62,
3124 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3125 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3126 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3127 1, 94, 3, 4, 5, 6, -1, 8, 9, 10,
3128 11, -1, 13, 14, -1, -1, -1, -1, 111, 112,
3129 21, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3130 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3131 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3132 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3133 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3134 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3135 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3136 -1, -1, 1, 94, 3, 4, 5, 6, -1, 8,
3137 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3138 111, 112, -1, -1, -1, -1, -1, -1, -1, -1,
3139 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3140 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3141 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3142 59, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3143 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3144 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3145 89, -1, -1, -1, -1, 94, 95, 1, -1, 3,
3146 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
3147 14, -1, -1, 112, -1, -1, -1, -1, -1, -1,
3148 -1, -1, -1, -1, -1, 29, 30, 31, -1, 33,
3149 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3150 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3151 54, 55, -1, 57, 58, 59, -1, -1, 62, -1,
3152 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3153 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3154 -1, -1, -1, 87, 88, 89, -1, -1, -1, -1,
3155 94, -1, -1, 1, -1, 3, 4, 5, 6, 103,
3156 8, 9, 10, 11, -1, 13, 14, -1, 112, -1,
3157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3158 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3159 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3160 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3161 58, 59, -1, -1, 62, -1, -1, -1, -1, -1,
3162 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3163 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3164 88, 89, -1, -1, -1, 1, 94, 3, 4, 5,
3165 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
3166 -1, -1, -1, -1, 112, -1, -1, -1, -1, -1,
3167 -1, -1, -1, 29, 30, 31, -1, 33, -1, 35,
3168 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3169 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3170 -1, 57, 58, 59, -1, -1, 62, -1, -1, -1,
3171 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3172 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3173 -1, 87, 88, 89, -1, -1, -1, 1, 94, 3,
3174 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
3175 14, -1, -1, -1, -1, -1, 112, -1, -1, -1,
3176 -1, -1, -1, -1, -1, 29, 30, 31, -1, 33,
3177 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3178 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3179 54, 55, -1, 57, 58, -1, -1, -1, 62, 63,
3180 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3181 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3182 -1, -1, -1, 87, 88, 89, -1, -1, -1, 1,
3183 94, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3184 -1, 13, 14, -1, -1, -1, -1, -1, 112, -1,
3185 -1, -1, -1, -1, -1, -1, -1, 29, 30, 31,
3186 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3187 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3188 52, 53, 54, 55, -1, 57, 58, 59, -1, -1,
3189 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3190 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3191 -1, -1, -1, -1, -1, 87, 88, 89, -1, -1,
3192 -1, 1, 94, 3, 4, 5, 6, -1, 8, 9,
3193 10, 11, -1, 13, 14, -1, -1, -1, -1, -1,
3194 112, -1, -1, -1, -1, -1, -1, -1, -1, 29,
3195 30, 31, -1, 33, -1, 35, 36, 37, -1, 39,
3196 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3197 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
3198 -1, 61, 62, -1, -1, -1, -1, -1, 68, -1,
3199 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3200 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3201 -1, -1, -1, 1, 94, 3, 4, 5, 6, -1,
3202 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3203 -1, -1, 112, -1, -1, -1, -1, -1, -1, -1,
3204 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3205 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3206 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3207 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
3208 68, 1, -1, 71, 4, 5, -1, -1, 8, 9,
3209 -1, 79, 80, 81, 14, -1, -1, -1, -1, 87,
3210 88, 89, -1, -1, -1, -1, 94, -1, -1, 29,
3211 -1, 31, -1, -1, -1, -1, -1, 37, -1, 39,
3212 40, -1, 110, -1, 112, -1, 46, -1, 48, -1,
3213 -1, -1, -1, -1, -1, 55, -1, 57, 58, -1,
3214 60, -1, -1, -1, 64, 65, 66, 67, 68, 69,
3215 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3216 80, 81, 82, 83, 84, -1, -1, 87, 88, 89,
3217 -1, -1, 92, -1, 1, 95, 3, 4, 5, 6,
3218 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3219 -1, -1, 112, -1, -1, -1, -1, -1, -1, -1,
3220 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3221 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3222 -1, -1, -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, -1, -1, 1, 94, 3, 4,
3227 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3228 -1, -1, -1, -1, -1, 112, -1, -1, -1, -1,
3229 -1, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3230 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3231 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3232 55, -1, 57, 58, -1, -1, -1, 62, -1, -1,
3233 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3234 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3235 -1, -1, 87, 88, 89, -1, -1, -1, 1, 94,
3236 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3237 13, 14, -1, -1, -1, -1, -1, 112, -1, -1,
3238 -1, -1, -1, -1, -1, -1, 29, 30, 31, -1,
3239 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3240 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3241 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3242 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3243 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3244 -1, -1, -1, -1, 87, 88, 89, 3, 4, 5,
3245 6, 94, 8, 9, 10, 11, -1, 13, 14, -1,
3246 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
3247 -1, -1, -1, 29, 30, 31, -1, 33, -1, 35,
3248 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3249 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3250 -1, 57, 58, -1, -1, -1, 62, -1, -1, -1,
3251 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3252 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3253 -1, 87, 88, 89, -1, -1, -1, -1, 94, 69,
3254 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3255 80, 81, 82, 83, 84, 85, 112, 113, 3, 4,
3256 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
3257 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
3258 25, 26, 27, 28, 29, 30, 31, 32, 33, -1,
3259 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3260 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3261 55, -1, 57, 58, 59, -1, 61, 62, -1, -1,
3262 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3263 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3264 -1, -1, 87, 88, 89, -1, -1, -1, -1, 94,
3265 -1, 96, -1, -1, -1, -1, -1, -1, -1, -1,
3266 -1, -1, -1, -1, -1, -1, 111, 112, 3, 4,
3267 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
3268 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
3269 25, 26, 27, 28, 29, 30, 31, 32, 33, -1,
3270 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3271 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3272 55, -1, 57, 58, 59, -1, 61, 62, -1, -1,
3273 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3274 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3275 -1, -1, 87, 88, 89, -1, -1, -1, -1, 94,
3276 -1, 96, -1, -1, 3, 4, 5, 6, 7, 8,
3277 9, 10, 11, -1, 13, 14, 15, 112, 17, 18,
3278 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
3279 29, 30, 31, 32, 33, -1, 35, 36, 37, -1,
3280 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3281 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3282 59, -1, 61, 62, -1, -1, -1, -1, -1, 68,
3283 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3284 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3285 89, -1, -1, -1, -1, 94, -1, 96, -1, -1,
3286 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
3287 13, 14, 15, 112, 17, 18, 19, 20, 21, 22,
3288 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
3289 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3290 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3291 53, 54, 55, -1, 57, 58, -1, -1, 61, 62,
3292 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3293 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3294 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3295 -1, 94, -1, 96, 3, 4, 5, 6, 7, 8,
3296 9, 10, 11, 12, 13, 14, -1, -1, -1, 112,
3297 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3298 29, 30, 31, 32, 33, -1, 35, 36, 37, -1,
3299 39, 40, 41, 42, 43, 44, -1, 46, -1, 48,
3300 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3301 -1, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3302 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3303 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3304 89, -1, 91, -1, -1, 94, 95, -1, -1, 98,
3305 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3306 13, 14, -1, 112, -1, -1, -1, -1, -1, -1,
3307 -1, -1, -1, -1, -1, -1, 29, 30, 31, 32,
3308 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3309 43, 44, -1, 46, -1, 48, -1, 50, 51, 52,
3310 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3311 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3312 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3313 -1, -1, -1, -1, 87, 88, 89, -1, 91, -1,
3314 -1, 94, 95, -1, -1, 98, 3, 4, 5, 6,
3315 -1, 8, 9, 10, 11, -1, 13, 14, -1, 112,
3316 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3317 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3318 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3319 -1, 48, -1, 50, 51, 52, 53, 54, 55, -1,
3320 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
3321 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3322 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3323 87, 88, 89, -1, 91, -1, -1, 94, 95, 3,
3324 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
3325 14, -1, -1, -1, -1, 112, -1, -1, -1, -1,
3326 -1, -1, -1, -1, -1, 29, 30, 31, -1, 33,
3327 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3328 44, -1, 46, -1, 48, -1, 50, 51, 52, 53,
3329 54, 55, -1, 57, 58, -1, -1, -1, -1, -1,
3330 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3331 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3332 -1, -1, -1, 87, 88, 89, -1, 91, -1, -1,
3333 94, 95, 3, 4, 5, 6, -1, 8, 9, 10,
3334 11, -1, 13, 14, -1, -1, -1, -1, 112, -1,
3335 -1, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3336 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3337 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3338 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3339 61, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3340 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3341 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3342 -1, -1, -1, 94, 3, 4, 5, 6, 7, 8,
3343 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3344 -1, 112, -1, -1, -1, -1, -1, -1, -1, -1,
3345 29, 30, 31, 32, 33, -1, 35, 36, 37, -1,
3346 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3347 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3348 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
3349 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3350 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3351 89, 3, 4, 5, 6, 94, 8, 9, 10, 11,
3352 -1, 13, 14, -1, -1, -1, -1, -1, -1, -1,
3353 -1, -1, -1, 112, -1, -1, -1, 29, 30, 31,
3354 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3355 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3356 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
3357 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3358 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3359 -1, -1, -1, -1, -1, 87, 88, 89, 3, 4,
3360 5, 6, 94, 8, 9, 10, 11, -1, 13, 14,
3361 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3362 112, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3363 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3364 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3365 55, -1, 57, 58, -1, -1, -1, 62, -1, -1,
3366 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3367 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3368 -1, -1, 87, 88, 89, 3, 4, 5, 6, 94,
3369 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3370 -1, -1, -1, -1, -1, -1, -1, 112, -1, -1,
3371 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3372 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3373 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3374 58, 59, -1, -1, -1, -1, -1, -1, -1, -1,
3375 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3376 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3377 88, 89, 3, 4, 5, 6, 94, 8, 9, 10,
3378 11, -1, 13, 14, -1, -1, -1, -1, -1, -1,
3379 -1, -1, -1, -1, 112, -1, -1, -1, 29, 30,
3380 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3381 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3382 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3383 -1, -1, -1, -1, -1, -1, -1, 68, -1, -1,
3384 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3385 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3386 -1, -1, -1, 94, 95, 3, 4, 5, 6, -1,
3387 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3388 -1, 112, -1, -1, -1, -1, -1, -1, -1, -1,
3389 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3390 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3391 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3392 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
3393 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3394 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3395 88, 89, 3, 4, 5, 6, 94, 8, 9, 10,
3396 11, -1, 13, 14, -1, -1, -1, -1, -1, -1,
3397 -1, -1, -1, -1, 112, -1, -1, -1, 29, 30,
3398 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3399 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3400 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3401 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3402 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3403 81, -1, -1, -1, -1, -1, 87, 88, 89, 3,
3404 4, 5, 6, 94, 8, 9, 10, 11, -1, 13,
3405 14, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3406 -1, 112, -1, -1, -1, 29, 30, 31, -1, 33,
3407 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3408 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3409 54, 55, -1, 57, 58, -1, -1, -1, 62, -1,
3410 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3411 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3412 -1, -1, -1, 87, 88, 89, 3, 4, 5, 6,
3413 94, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3414 -1, -1, -1, -1, -1, -1, -1, -1, 112, -1,
3415 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3416 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3417 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3418 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
3419 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3420 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3421 87, 88, 89, 3, 4, 5, 6, 94, 8, 9,
3422 10, 11, -1, 13, 14, -1, -1, -1, -1, -1,
3423 -1, -1, -1, -1, -1, 112, -1, -1, -1, 29,
3424 30, 31, -1, 33, -1, 35, 36, 37, -1, 39,
3425 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3426 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
3427 -1, -1, -1, -1, -1, -1, -1, -1, 68, -1,
3428 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3429 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3430 3, 4, 5, 6, 94, 8, 9, 10, 11, -1,
3431 13, 14, -1, -1, -1, -1, -1, -1, -1, -1,
3432 -1, -1, 112, -1, -1, -1, 29, 30, 31, -1,
3433 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3434 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3435 53, 54, 55, -1, 57, 58, -1, -1, -1, -1,
3436 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3437 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3438 -1, -1, -1, -1, 87, 88, 89, 3, 4, 5,
3439 6, 94, 8, 9, 10, 11, -1, 13, 14, -1,
3440 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
3441 -1, -1, -1, 29, 30, 31, -1, 33, -1, 35,
3442 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3443 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3444 -1, 57, 58, -1, -1, -1, -1, -1, -1, -1,
3445 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3446 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3447 -1, 87, 88, 89, 3, 4, 5, 6, 94, 8,
3448 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3449 -1, -1, -1, -1, -1, -1, 112, -1, -1, -1,
3450 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3451 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3452 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3453 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
3454 -1, 1, 71, 3, 4, 5, 6, 7, 8, 9,
3455 79, 80, 81, -1, 14, -1, -1, -1, 87, 88,
3456 89, -1, -1, -1, -1, 94, -1, 27, 28, 29,
3457 -1, 31, 32, 33, -1, -1, -1, 37, -1, -1,
3458 -1, -1, 42, 112, -1, 45, 46, 47, -1, 49,
3459 -1, -1, -1, -1, -1, 55, -1, 57, 58, -1,
3460 1, 61, 3, 4, 5, 6, 7, 8, 9, -1,
3461 -1, 71, -1, 14, -1, -1, -1, -1, -1, -1,
3462 -1, 81, -1, -1, -1, -1, 27, 28, 29, 89,
3463 31, 32, 33, -1, 94, -1, 37, -1, -1, -1,
3464 100, 42, -1, -1, 45, 46, 47, -1, 49, -1,
3465 -1, -1, -1, -1, 55, -1, 57, 58, -1, -1,
3466 61, 3, 4, 5, 6, 7, 8, 9, -1, -1,
3467 71, -1, 14, -1, -1, -1, -1, -1, -1, -1,
3468 81, -1, -1, -1, -1, -1, -1, 29, 89, 31,
3469 32, -1, -1, 94, -1, 37, -1, -1, -1, 100,
3470 42, -1, -1, -1, 46, -1, 3, 4, 5, 6,
3471 7, 8, 9, 55, -1, 57, 58, 14, -1, 61,
3472 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
3473 -1, -1, 29, -1, 31, 32, -1, -1, -1, 81,
3474 37, -1, -1, -1, -1, 42, -1, 89, -1, 46,
3475 -1, -1, 94, -1, -1, -1, -1, -1, 55, -1,
3476 57, 58, 3, 4, 5, 6, 7, 8, 9, -1,
3477 -1, -1, -1, 14, 71, -1, -1, -1, -1, -1,
3478 -1, -1, -1, -1, 81, -1, -1, -1, 29, -1,
3479 31, 32, 89, -1, -1, -1, 37, 94, -1, -1,
3480 -1, 42, -1, -1, -1, 46, -1, -1, -1, -1,
3481 -1, -1, -1, -1, 55, -1, 57, 58, 64, 65,
3482 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3483 71, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3484 81, -1, -1, -1, -1, -1, -1, -1, 89, -1,
3485 -1, -1, -1, 94, 64, 65, 66, 67, 68, 69,
3486 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3487 80, 81, 82, 83, 84, 85, 64, 65, 66, 67,
3488 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3489 78, 79, 80, 81, 82, 83, 84, 85, -1, -1,
3490 -1, -1, -1, 113, -1, -1, -1, -1, -1, -1,
3491 -1, -1, -1, -1, -1, -1, -1, -1, 60, -1,
3492 -1, 109, 64, 65, 66, 67, 68, 69, 70, 71,
3493 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3494 82, 83, 84, 85, 63, 64, 65, 66, 67, 68,
3495 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3496 79, 80, 81, 82, 83, 84, 85, 63, 64, 65,
3497 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3498 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3499 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3500 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3501 84, 85, 68, 69, 70, 71, 72, 73, 74, 75,
3502 76, 77, 78, 79, 80, 81, 82, 83, 84, 85
3503 };
3504 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
3505 #line 3 "/usr/share/bison.simple"
3506
3507 /* Skeleton output parser for bison,
3508 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
3509
3510 This program is free software; you can redistribute it and/or modify
3511 it under the terms of the GNU General Public License as published by
3512 the Free Software Foundation; either version 2, or (at your option)
3513 any later version.
3514
3515 This program is distributed in the hope that it will be useful,
3516 but WITHOUT ANY WARRANTY; without even the implied warranty of
3517 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3518 GNU General Public License for more details.
3519
3520 You should have received a copy of the GNU General Public License
3521 along with this program; if not, write to the Free Software
3522 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
3523
3524 /* As a special exception, when this file is copied by Bison into a
3525 Bison output file, you may use that output file without restriction.
3526 This special exception was added by the Free Software Foundation
3527 in version 1.24 of Bison. */
3528
3529 #ifndef alloca
3530 #ifdef __GNUC__
3531 #define alloca __builtin_alloca
3532 #else /* not GNU C. */
3533 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
3534 #include <alloca.h>
3535 #else /* not sparc */
3536 #if defined (MSDOS) && !defined (__TURBOC__)
3537 #include <malloc.h>
3538 #else /* not MSDOS, or __TURBOC__ */
3539 #if defined(_AIX)
3540 #include <malloc.h>
3541 #pragma alloca
3542 #else /* not MSDOS, __TURBOC__, or _AIX */
3543 #ifdef __hpux
3544 #ifdef __cplusplus
3545 extern "C" {
3546 void *alloca (unsigned int);
3547 };
3548 #else /* not __cplusplus */
3549 void *alloca ();
3550 #endif /* not __cplusplus */
3551 #endif /* __hpux */
3552 #endif /* not _AIX */
3553 #endif /* not MSDOS, or __TURBOC__ */
3554 #endif /* not sparc. */
3555 #endif /* not GNU C. */
3556 #endif /* alloca not defined. */
3557
3558 /* This is the parser code that is written into each bison parser
3559 when the %semantic_parser declaration is not specified in the grammar.
3560 It was written by Richard Stallman by simplifying the hairy parser
3561 used when %semantic_parser is specified. */
3562
3563 /* Note: there must be only one dollar sign in this file.
3564 It is replaced by the list of actions, each action
3565 as one case of the switch. */
3566
3567 #define yyerrok (yyerrstatus = 0)
3568 #define yyclearin (yychar = YYEMPTY)
3569 #define YYEMPTY -2
3570 #define YYEOF 0
3571 #define YYACCEPT return(0)
3572 #define YYABORT return(1)
3573 #define YYERROR goto yyerrlab1
3574 /* Like YYERROR except do call yyerror.
3575 This remains here temporarily to ease the
3576 transition to the new meaning of YYERROR, for GCC.
3577 Once GCC version 2 has supplanted version 1, this can go. */
3578 #define YYFAIL goto yyerrlab
3579 #define YYRECOVERING() (!!yyerrstatus)
3580 #define YYBACKUP(token, value) \
3581 do \
3582 if (yychar == YYEMPTY && yylen == 1) \
3583 { yychar = (token), yylval = (value); \
3584 yychar1 = YYTRANSLATE (yychar); \
3585 YYPOPSTACK; \
3586 goto yybackup; \
3587 } \
3588 else \
3589 { yyerror ("syntax error: cannot back up"); YYERROR; } \
3590 while (0)
3591
3592 #define YYTERROR 1
3593 #define YYERRCODE 256
3594
3595 #ifndef YYPURE
3596 #define YYLEX yylex()
3597 #endif
3598
3599 #ifdef YYPURE
3600 #ifdef YYLSP_NEEDED
3601 #ifdef YYLEX_PARAM
3602 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
3603 #else
3604 #define YYLEX yylex(&yylval, &yylloc)
3605 #endif
3606 #else /* not YYLSP_NEEDED */
3607 #ifdef YYLEX_PARAM
3608 #define YYLEX yylex(&yylval, YYLEX_PARAM)
3609 #else
3610 #define YYLEX yylex(&yylval)
3611 #endif
3612 #endif /* not YYLSP_NEEDED */
3613 #endif
3614
3615 /* If nonreentrant, generate the variables here */
3616
3617 #ifndef YYPURE
3618
3619 int yychar; /* the lookahead symbol */
3620 YYSTYPE yylval; /* the semantic value of the */
3621 /* lookahead symbol */
3622
3623 #ifdef YYLSP_NEEDED
3624 YYLTYPE yylloc; /* location data for the lookahead */
3625 /* symbol */
3626 #endif
3627
3628 int yynerrs; /* number of parse errors so far */
3629 #endif /* not YYPURE */
3630
3631 #if YYDEBUG != 0
3632 int yydebug; /* nonzero means print parse trace */
3633 /* Since this is uninitialized, it does not stop multiple parsers
3634 from coexisting. */
3635 #endif
3636
3637 /* YYINITDEPTH indicates the initial size of the parser's stacks */
3638
3639 #ifndef YYINITDEPTH
3640 #define YYINITDEPTH 200
3641 #endif
3642
3643 /* YYMAXDEPTH is the maximum size the stacks can grow to
3644 (effective only if the built-in stack extension method is used). */
3645
3646 #if YYMAXDEPTH == 0
3647 #undef YYMAXDEPTH
3648 #endif
3649
3650 #ifndef YYMAXDEPTH
3651 #define YYMAXDEPTH 10000
3652 #endif
3653
3654 /* Prevent warning if -Wstrict-prototypes. */
3655 #ifdef __GNUC__
3656 int yyparse (void);
3657 #endif
3658 \f
3659 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
3660 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
3661 #else /* not GNU C or C++ */
3662 #ifndef __cplusplus
3663
3664 /* This is the most reliable way to avoid incompatibilities
3665 in available built-in functions on various systems. */
3666 static void
3667 __yy_memcpy (to, from, count)
3668 char *to;
3669 char *from;
3670 int count;
3671 {
3672 register char *f = from;
3673 register char *t = to;
3674 register int i = count;
3675
3676 while (i-- > 0)
3677 *t++ = *f++;
3678 }
3679
3680 #else /* __cplusplus */
3681
3682 /* This is the most reliable way to avoid incompatibilities
3683 in available built-in functions on various systems. */
3684 static void
3685 __yy_memcpy (char *to, char *from, int count)
3686 {
3687 register char *f = from;
3688 register char *t = to;
3689 register int i = count;
3690
3691 while (i-- > 0)
3692 *t++ = *f++;
3693 }
3694
3695 #endif
3696 #endif
3697 \f
3698 #line 196 "/usr/share/bison.simple"
3699
3700 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3701 into yyparse. The argument should have type void *.
3702 It should actually point to an object.
3703 Grammar actions can access the variable by casting it
3704 to the proper pointer type. */
3705
3706 #ifdef YYPARSE_PARAM
3707 #ifdef __cplusplus
3708 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3709 #define YYPARSE_PARAM_DECL
3710 #else /* not __cplusplus */
3711 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
3712 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3713 #endif /* not __cplusplus */
3714 #else /* not YYPARSE_PARAM */
3715 #define YYPARSE_PARAM_ARG
3716 #define YYPARSE_PARAM_DECL
3717 #endif /* not YYPARSE_PARAM */
3718
3719 int
3720 yyparse(YYPARSE_PARAM_ARG)
3721 YYPARSE_PARAM_DECL
3722 {
3723 register int yystate;
3724 register int yyn;
3725 register short *yyssp;
3726 register YYSTYPE *yyvsp;
3727 int yyerrstatus; /* number of tokens to shift before error messages enabled */
3728 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
3729
3730 short yyssa[YYINITDEPTH]; /* the state stack */
3731 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
3732
3733 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
3734 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
3735
3736 #ifdef YYLSP_NEEDED
3737 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
3738 YYLTYPE *yyls = yylsa;
3739 YYLTYPE *yylsp;
3740
3741 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
3742 #else
3743 #define YYPOPSTACK (yyvsp--, yyssp--)
3744 #endif
3745
3746 int yystacksize = YYINITDEPTH;
3747
3748 #ifdef YYPURE
3749 int yychar;
3750 YYSTYPE yylval;
3751 int yynerrs;
3752 #ifdef YYLSP_NEEDED
3753 YYLTYPE yylloc;
3754 #endif
3755 #endif
3756
3757 YYSTYPE yyval; /* the variable used to return */
3758 /* semantic values from the action */
3759 /* routines */
3760
3761 int yylen;
3762
3763 #if YYDEBUG != 0
3764 if (yydebug)
3765 fprintf(stderr, "Starting parse\n");
3766 #endif
3767
3768 yystate = 0;
3769 yyerrstatus = 0;
3770 yynerrs = 0;
3771 yychar = YYEMPTY; /* Cause a token to be read. */
3772
3773 /* Initialize stack pointers.
3774 Waste one element of value and location stack
3775 so that they stay on the same level as the state stack.
3776 The wasted elements are never initialized. */
3777
3778 yyssp = yyss - 1;
3779 yyvsp = yyvs;
3780 #ifdef YYLSP_NEEDED
3781 yylsp = yyls;
3782 #endif
3783
3784 /* Push a new state, which is found in yystate . */
3785 /* In all cases, when you get here, the value and location stacks
3786 have just been pushed. so pushing a state here evens the stacks. */
3787 yynewstate:
3788
3789 *++yyssp = yystate;
3790
3791 if (yyssp >= yyss + yystacksize - 1)
3792 {
3793 /* Give user a chance to reallocate the stack */
3794 /* Use copies of these so that the &'s don't force the real ones into memory. */
3795 YYSTYPE *yyvs1 = yyvs;
3796 short *yyss1 = yyss;
3797 #ifdef YYLSP_NEEDED
3798 YYLTYPE *yyls1 = yyls;
3799 #endif
3800
3801 /* Get the current used size of the three stacks, in elements. */
3802 int size = yyssp - yyss + 1;
3803
3804 #ifdef yyoverflow
3805 /* Each stack pointer address is followed by the size of
3806 the data in use in that stack, in bytes. */
3807 #ifdef YYLSP_NEEDED
3808 /* This used to be a conditional around just the two extra args,
3809 but that might be undefined if yyoverflow is a macro. */
3810 yyoverflow("parser stack overflow",
3811 &yyss1, size * sizeof (*yyssp),
3812 &yyvs1, size * sizeof (*yyvsp),
3813 &yyls1, size * sizeof (*yylsp),
3814 &yystacksize);
3815 #else
3816 yyoverflow("parser stack overflow",
3817 &yyss1, size * sizeof (*yyssp),
3818 &yyvs1, size * sizeof (*yyvsp),
3819 &yystacksize);
3820 #endif
3821
3822 yyss = yyss1; yyvs = yyvs1;
3823 #ifdef YYLSP_NEEDED
3824 yyls = yyls1;
3825 #endif
3826 #else /* no yyoverflow */
3827 /* Extend the stack our own way. */
3828 if (yystacksize >= YYMAXDEPTH)
3829 {
3830 yyerror("parser stack overflow");
3831 return 2;
3832 }
3833 yystacksize *= 2;
3834 if (yystacksize > YYMAXDEPTH)
3835 yystacksize = YYMAXDEPTH;
3836 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
3837 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
3838 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
3839 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
3840 #ifdef YYLSP_NEEDED
3841 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
3842 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
3843 #endif
3844 #endif /* no yyoverflow */
3845
3846 yyssp = yyss + size - 1;
3847 yyvsp = yyvs + size - 1;
3848 #ifdef YYLSP_NEEDED
3849 yylsp = yyls + size - 1;
3850 #endif
3851
3852 #if YYDEBUG != 0
3853 if (yydebug)
3854 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3855 #endif
3856
3857 if (yyssp >= yyss + yystacksize - 1)
3858 YYABORT;
3859 }
3860
3861 #if YYDEBUG != 0
3862 if (yydebug)
3863 fprintf(stderr, "Entering state %d\n", yystate);
3864 #endif
3865
3866 goto yybackup;
3867 yybackup:
3868
3869 /* Do appropriate processing given the current state. */
3870 /* Read a lookahead token if we need one and don't already have one. */
3871 /* yyresume: */
3872
3873 /* First try to decide what to do without reference to lookahead token. */
3874
3875 yyn = yypact[yystate];
3876 if (yyn == YYFLAG)
3877 goto yydefault;
3878
3879 /* Not known => get a lookahead token if don't already have one. */
3880
3881 /* yychar is either YYEMPTY or YYEOF
3882 or a valid token in external form. */
3883
3884 if (yychar == YYEMPTY)
3885 {
3886 #if YYDEBUG != 0
3887 if (yydebug)
3888 fprintf(stderr, "Reading a token: ");
3889 #endif
3890 yychar = YYLEX;
3891 }
3892
3893 /* Convert token to internal form (in yychar1) for indexing tables with */
3894
3895 if (yychar <= 0) /* This means end of input. */
3896 {
3897 yychar1 = 0;
3898 yychar = YYEOF; /* Don't call YYLEX any more */
3899
3900 #if YYDEBUG != 0
3901 if (yydebug)
3902 fprintf(stderr, "Now at end of input.\n");
3903 #endif
3904 }
3905 else
3906 {
3907 yychar1 = YYTRANSLATE(yychar);
3908
3909 #if YYDEBUG != 0
3910 if (yydebug)
3911 {
3912 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3913 /* Give the individual parser a way to print the precise meaning
3914 of a token, for further debugging info. */
3915 #ifdef YYPRINT
3916 YYPRINT (stderr, yychar, yylval);
3917 #endif
3918 fprintf (stderr, ")\n");
3919 }
3920 #endif
3921 }
3922
3923 yyn += yychar1;
3924 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3925 goto yydefault;
3926
3927 yyn = yytable[yyn];
3928
3929 /* yyn is what to do for this token type in this state.
3930 Negative => reduce, -yyn is rule number.
3931 Positive => shift, yyn is new state.
3932 New state is final state => don't bother to shift,
3933 just return success.
3934 0, or most negative number => error. */
3935
3936 if (yyn < 0)
3937 {
3938 if (yyn == YYFLAG)
3939 goto yyerrlab;
3940 yyn = -yyn;
3941 goto yyreduce;
3942 }
3943 else if (yyn == 0)
3944 goto yyerrlab;
3945
3946 if (yyn == YYFINAL)
3947 YYACCEPT;
3948
3949 /* Shift the lookahead token. */
3950
3951 #if YYDEBUG != 0
3952 if (yydebug)
3953 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3954 #endif
3955
3956 /* Discard the token being shifted unless it is eof. */
3957 if (yychar != YYEOF)
3958 yychar = YYEMPTY;
3959
3960 *++yyvsp = yylval;
3961 #ifdef YYLSP_NEEDED
3962 *++yylsp = yylloc;
3963 #endif
3964
3965 /* count tokens shifted since error; after three, turn off error status. */
3966 if (yyerrstatus) yyerrstatus--;
3967
3968 yystate = yyn;
3969 goto yynewstate;
3970
3971 /* Do the default action for the current state. */
3972 yydefault:
3973
3974 yyn = yydefact[yystate];
3975 if (yyn == 0)
3976 goto yyerrlab;
3977
3978 /* Do a reduction. yyn is the number of a rule to reduce with. */
3979 yyreduce:
3980 yylen = yyr2[yyn];
3981 if (yylen > 0)
3982 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3983
3984 #if YYDEBUG != 0
3985 if (yydebug)
3986 {
3987 int i;
3988
3989 fprintf (stderr, "Reducing via rule %d (line %d), ",
3990 yyn, yyrline[yyn]);
3991
3992 /* Print the symbols being reduced, and their result. */
3993 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3994 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3995 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3996 }
3997 #endif
3998
3999
4000 switch (yyn) {
4001
4002 case 2:
4003 #line 320 "parse.y"
4004 {
4005 /* In case there were missing closebraces,
4006 get us back to the global binding level. */
4007 while (! global_bindings_p ())
4008 poplevel (0, 0, 0);
4009 finish_file ();
4010 ;
4011 break;}
4012 case 3:
4013 #line 334 "parse.y"
4014 { yyval.ttype = NULL_TREE; ;
4015 break;}
4016 case 4:
4017 #line 336 "parse.y"
4018 { yyval.ttype = NULL_TREE; ;
4019 break;}
4020 case 5:
4021 #line 338 "parse.y"
4022 { yyval.ttype = NULL_TREE; ;
4023 break;}
4024 case 8:
4025 #line 347 "parse.y"
4026 { have_extern_spec = 1;
4027 used_extern_spec = 0;
4028 yyval.ttype = NULL_TREE; ;
4029 break;}
4030 case 9:
4031 #line 352 "parse.y"
4032 { have_extern_spec = 0; ;
4033 break;}
4034 case 10:
4035 #line 357 "parse.y"
4036 { yyval.itype = pedantic;
4037 pedantic = 0; ;
4038 break;}
4039 case 13:
4040 #line 367 "parse.y"
4041 { if (pending_lang_change) do_pending_lang_change(); ;
4042 break;}
4043 case 14:
4044 #line 369 "parse.y"
4045 { if (! toplevel_bindings_p () && ! pseudo_global_level_p())
4046 pop_everything (); ;
4047 break;}
4048 case 15:
4049 #line 375 "parse.y"
4050 { if (pending_inlines) do_pending_inlines (); ;
4051 break;}
4052 case 16:
4053 #line 377 "parse.y"
4054 { if (pending_inlines) do_pending_inlines (); ;
4055 break;}
4056 case 17:
4057 #line 379 "parse.y"
4058 { if (pending_inlines) do_pending_inlines (); ;
4059 break;}
4060 case 18:
4061 #line 381 "parse.y"
4062 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
4063 assemble_asm (yyvsp[-2].ttype); ;
4064 break;}
4065 case 19:
4066 #line 384 "parse.y"
4067 { pop_lang_context (); ;
4068 break;}
4069 case 20:
4070 #line 386 "parse.y"
4071 { if (pending_inlines) do_pending_inlines ();
4072 pop_lang_context (); ;
4073 break;}
4074 case 21:
4075 #line 389 "parse.y"
4076 { if (pending_inlines) do_pending_inlines ();
4077 pop_lang_context (); ;
4078 break;}
4079 case 22:
4080 #line 392 "parse.y"
4081 { push_namespace (yyvsp[-1].ttype); ;
4082 break;}
4083 case 23:
4084 #line 394 "parse.y"
4085 { pop_namespace (); ;
4086 break;}
4087 case 24:
4088 #line 396 "parse.y"
4089 { push_namespace (NULL_TREE); ;
4090 break;}
4091 case 25:
4092 #line 398 "parse.y"
4093 { pop_namespace (); ;
4094 break;}
4095 case 26:
4096 #line 400 "parse.y"
4097 { do_namespace_alias (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4098 break;}
4099 case 27:
4100 #line 402 "parse.y"
4101 { do_toplevel_using_decl (yyvsp[-1].ttype); ;
4102 break;}
4103 case 28:
4104 #line 404 "parse.y"
4105 {
4106 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
4107 yyvsp[-1].ttype = lastiddecl;
4108 do_using_directive (yyvsp[-1].ttype);
4109 ;
4110 break;}
4111 case 29:
4112 #line 410 "parse.y"
4113 { pedantic = yyvsp[-1].itype; ;
4114 break;}
4115 case 30:
4116 #line 415 "parse.y"
4117 { yyval.ttype = yyvsp[0].ttype; ;
4118 break;}
4119 case 31:
4120 #line 417 "parse.y"
4121 { yyval.ttype = yyvsp[0].ttype; ;
4122 break;}
4123 case 32:
4124 #line 419 "parse.y"
4125 { yyval.ttype = yyvsp[0].ttype; ;
4126 break;}
4127 case 35:
4128 #line 426 "parse.y"
4129 { yyval.ttype = yyvsp[0].ttype; ;
4130 break;}
4131 case 36:
4132 #line 428 "parse.y"
4133 { yyval.ttype = yyvsp[0].ttype; ;
4134 break;}
4135 case 37:
4136 #line 433 "parse.y"
4137 { push_lang_context (yyvsp[0].ttype); ;
4138 break;}
4139 case 38:
4140 #line 435 "parse.y"
4141 { if (current_lang_name != yyvsp[0].ttype)
4142 cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
4143 pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
4144 break;}
4145 case 39:
4146 #line 442 "parse.y"
4147 { begin_template_parm_list (); ;
4148 break;}
4149 case 40:
4150 #line 444 "parse.y"
4151 { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
4152 break;}
4153 case 41:
4154 #line 446 "parse.y"
4155 { begin_specialization();
4156 yyval.ttype = NULL_TREE; ;
4157 break;}
4158 case 42:
4159 #line 452 "parse.y"
4160 { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
4161 break;}
4162 case 43:
4163 #line 454 "parse.y"
4164 { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4165 break;}
4166 case 44:
4167 #line 459 "parse.y"
4168 { yyval.ttype = yyvsp[0].ttype; ;
4169 break;}
4170 case 45:
4171 #line 461 "parse.y"
4172 { yyval.ttype = NULL_TREE; ;
4173 break;}
4174 case 46:
4175 #line 465 "parse.y"
4176 {
4177 yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype);
4178 if (TREE_PURPOSE (yyval.ttype) == signature_type_node)
4179 sorry ("signature as template type parameter");
4180 else if (TREE_PURPOSE (yyval.ttype) != class_type_node)
4181 {
4182 pedwarn ("template type parameters must use the keyword `class'");
4183 TREE_PURPOSE (yyval.ttype) = class_type_node;
4184 }
4185 ;
4186 break;}
4187 case 47:
4188 #line 476 "parse.y"
4189 { yyval.ttype = build_tree_list (class_type_node, yyvsp[0].ttype); ;
4190 break;}
4191 case 48:
4192 #line 481 "parse.y"
4193 {
4194 tree decl = build_decl (TYPE_DECL, yyvsp[0].ttype, NULL_TREE);
4195 tree tmpl = build_lang_decl (TEMPLATE_DECL, yyvsp[0].ttype, NULL_TREE);
4196 DECL_TEMPLATE_PARMS (tmpl) = current_template_parms;
4197 DECL_TEMPLATE_RESULT (tmpl) = decl;
4198 SET_DECL_ARTIFICIAL (decl);
4199 end_template_decl ();
4200
4201 if (yyvsp[-1].ttype == signature_type_node)
4202 sorry ("signature as template template parameter");
4203 else if (yyvsp[-1].ttype != class_type_node)
4204 pedwarn ("template template parameters must use the keyword `class'");
4205 yyval.ttype = build_tree_list (class_type_node, tmpl);
4206 ;
4207 break;}
4208 case 49:
4209 #line 506 "parse.y"
4210 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4211 break;}
4212 case 50:
4213 #line 508 "parse.y"
4214 { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
4215 break;}
4216 case 51:
4217 #line 510 "parse.y"
4218 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
4219 break;}
4220 case 52:
4221 #line 512 "parse.y"
4222 { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
4223 break;}
4224 case 53:
4225 #line 514 "parse.y"
4226 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4227 break;}
4228 case 54:
4229 #line 516 "parse.y"
4230 {
4231 tree defarg;
4232 arg_looking_for_template = 1;
4233 defarg = lookup_name (yyvsp[0].ttype, 0);
4234 arg_looking_for_template = 0;
4235
4236 if (!defarg || defarg == error_mark_node
4237 || (TREE_CODE (defarg) != TEMPLATE_DECL
4238 && TREE_CODE (defarg) != TEMPLATE_TEMPLATE_PARM))
4239 defarg = do_identifier (yyvsp[0].ttype, 1);
4240 yyval.ttype = build_tree_list (defarg, yyvsp[-2].ttype);
4241 ;
4242 break;}
4243 case 55:
4244 #line 533 "parse.y"
4245 {
4246 if (yyvsp[-1].ttype)
4247 end_template_decl ();
4248 else
4249 end_specialization ();
4250 ;
4251 break;}
4252 case 56:
4253 #line 541 "parse.y"
4254 {
4255 if (yyvsp[-1].ttype)
4256 end_template_decl ();
4257 else
4258 end_specialization ();
4259 ;
4260 break;}
4261 case 57:
4262 #line 551 "parse.y"
4263 {;
4264 break;}
4265 case 58:
4266 #line 553 "parse.y"
4267 {;
4268 break;}
4269 case 59:
4270 #line 555 "parse.y"
4271 {
4272 note_list_got_semicolon (yyvsp[-2].ftype.t);
4273 ;
4274 break;}
4275 case 60:
4276 #line 559 "parse.y"
4277 { pedwarn ("empty declaration"); ;
4278 break;}
4279 case 62:
4280 #line 562 "parse.y"
4281 {
4282 tree t, attrs;
4283 split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
4284 shadow_tag (t);
4285 note_list_got_semicolon (yyvsp[-1].ftype.t);
4286 ;
4287 break;}
4288 case 66:
4289 #line 575 "parse.y"
4290 { yyval.itype = 0; ;
4291 break;}
4292 case 67:
4293 #line 577 "parse.y"
4294 { yyval.itype = 1; ;
4295 break;}
4296 case 73:
4297 #line 593 "parse.y"
4298 { finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
4299 break;}
4300 case 74:
4301 #line 595 "parse.y"
4302 { ;
4303 break;}
4304 case 75:
4305 #line 597 "parse.y"
4306 { ;
4307 break;}
4308 case 76:
4309 #line 602 "parse.y"
4310 {
4311 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4312 if (yyvsp[-2].ttype != current_class_type)
4313 {
4314 push_nested_class (yyvsp[-2].ttype, 3);
4315 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4316 }
4317 ;
4318 break;}
4319 case 77:
4320 #line 611 "parse.y"
4321 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4322 break;}
4323 case 78:
4324 #line 613 "parse.y"
4325 {
4326 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4327 if (yyvsp[-4].ttype != current_class_type)
4328 {
4329 push_nested_class (yyvsp[-4].ttype, 3);
4330 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4331 }
4332 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4333 ;
4334 break;}
4335 case 79:
4336 #line 623 "parse.y"
4337 {
4338 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4339 if (yyvsp[-2].ttype != current_class_type)
4340 {
4341 push_nested_class (yyvsp[-2].ttype, 3);
4342 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4343 }
4344 ;
4345 break;}
4346 case 80:
4347 #line 632 "parse.y"
4348 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4349 break;}
4350 case 81:
4351 #line 634 "parse.y"
4352 {
4353 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4354 if (yyvsp[-4].ttype != current_class_type)
4355 {
4356 push_nested_class (yyvsp[-4].ttype, 3);
4357 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4358 }
4359 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4360 ;
4361 break;}
4362 case 82:
4363 #line 644 "parse.y"
4364 {
4365 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4366 if (yyvsp[-2].ttype != current_class_type)
4367 {
4368 push_nested_class (yyvsp[-2].ttype, 3);
4369 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4370 }
4371 ;
4372 break;}
4373 case 83:
4374 #line 653 "parse.y"
4375 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4376 break;}
4377 case 84:
4378 #line 655 "parse.y"
4379 {
4380 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4381 if (yyvsp[-4].ttype != current_class_type)
4382 {
4383 push_nested_class (yyvsp[-4].ttype, 3);
4384 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4385 }
4386 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4387 ;
4388 break;}
4389 case 85:
4390 #line 665 "parse.y"
4391 {
4392 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4393 if (yyvsp[-2].ttype != current_class_type)
4394 {
4395 push_nested_class (yyvsp[-2].ttype, 3);
4396 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4397 }
4398 ;
4399 break;}
4400 case 86:
4401 #line 674 "parse.y"
4402 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4403 break;}
4404 case 87:
4405 #line 676 "parse.y"
4406 {
4407 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4408 if (yyvsp[-4].ttype != current_class_type)
4409 {
4410 push_nested_class (yyvsp[-4].ttype, 3);
4411 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4412 }
4413 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4414 ;
4415 break;}
4416 case 88:
4417 #line 689 "parse.y"
4418 { tree specs, attrs;
4419 split_specs_attrs (yyvsp[-1].ftype.t, &specs, &attrs);
4420 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4421 YYERROR1;
4422 reinit_parse_for_function ();
4423 yyval.ttype = NULL_TREE; ;
4424 break;}
4425 case 89:
4426 #line 696 "parse.y"
4427 { tree specs, attrs;
4428 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4429 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4430 YYERROR1;
4431 reinit_parse_for_function ();
4432 yyval.ttype = NULL_TREE; ;
4433 break;}
4434 case 90:
4435 #line 703 "parse.y"
4436 { if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
4437 YYERROR1;
4438 reinit_parse_for_function ();
4439 yyval.ttype = NULL_TREE; ;
4440 break;}
4441 case 91:
4442 #line 708 "parse.y"
4443 { tree specs, attrs;
4444 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4445 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4446 YYERROR1;
4447 reinit_parse_for_function ();
4448 yyval.ttype = NULL_TREE; ;
4449 break;}
4450 case 92:
4451 #line 715 "parse.y"
4452 { if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
4453 YYERROR1;
4454 reinit_parse_for_function ();
4455 yyval.ttype = NULL_TREE; ;
4456 break;}
4457 case 93:
4458 #line 723 "parse.y"
4459 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4460 break;}
4461 case 94:
4462 #line 725 "parse.y"
4463 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4464 break;}
4465 case 95:
4466 #line 727 "parse.y"
4467 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4468 break;}
4469 case 96:
4470 #line 729 "parse.y"
4471 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4472 break;}
4473 case 97:
4474 #line 736 "parse.y"
4475 { tree specs = strip_attrs (yyvsp[-1].ttype);
4476 yyval.ttype = start_method (specs, yyvsp[0].ttype);
4477 rest_of_mdef:
4478 if (! yyval.ttype)
4479 YYERROR1;
4480 if (yychar == YYEMPTY)
4481 yychar = YYLEX;
4482 reinit_parse_for_method (yychar, yyval.ttype); ;
4483 break;}
4484 case 98:
4485 #line 745 "parse.y"
4486 { yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ;
4487 break;}
4488 case 99:
4489 #line 747 "parse.y"
4490 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4491 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4492 break;}
4493 case 100:
4494 #line 750 "parse.y"
4495 { tree specs = strip_attrs (yyvsp[-1].ttype);
4496 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4497 break;}
4498 case 101:
4499 #line 753 "parse.y"
4500 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4501 break;}
4502 case 102:
4503 #line 755 "parse.y"
4504 { tree specs = strip_attrs (yyvsp[-1].ttype);
4505 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4506 break;}
4507 case 103:
4508 #line 758 "parse.y"
4509 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4510 break;}
4511 case 104:
4512 #line 760 "parse.y"
4513 { yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4514 break;}
4515 case 105:
4516 #line 765 "parse.y"
4517 {
4518 if (! current_function_parms_stored)
4519 store_parm_decls ();
4520 yyval.ttype = yyvsp[0].ttype;
4521 ;
4522 break;}
4523 case 106:
4524 #line 774 "parse.y"
4525 { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
4526 break;}
4527 case 107:
4528 #line 776 "parse.y"
4529 { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
4530 break;}
4531 case 108:
4532 #line 778 "parse.y"
4533 { store_return_init (yyval.ttype, NULL_TREE); ;
4534 break;}
4535 case 109:
4536 #line 783 "parse.y"
4537 {
4538 if (yyvsp[0].itype == 0)
4539 error ("no base initializers given following ':'");
4540 setup_vtbl_ptr ();
4541 /* Always keep the BLOCK node associated with the outermost
4542 pair of curley braces of a function. These are needed
4543 for correct operation of dwarfout.c. */
4544 keep_next_level ();
4545 ;
4546 break;}
4547 case 110:
4548 #line 796 "parse.y"
4549 {
4550 if (! current_function_parms_stored)
4551 store_parm_decls ();
4552
4553 if (DECL_CONSTRUCTOR_P (current_function_decl))
4554 {
4555 /* Make a contour for the initializer list. */
4556 pushlevel (0);
4557 clear_last_expr ();
4558 expand_start_bindings (0);
4559 }
4560 else if (current_class_type == NULL_TREE)
4561 error ("base initializers not allowed for non-member functions");
4562 else if (! DECL_CONSTRUCTOR_P (current_function_decl))
4563 error ("only constructors take base initializers");
4564 ;
4565 break;}
4566 case 111:
4567 #line 816 "parse.y"
4568 { yyval.itype = 0; ;
4569 break;}
4570 case 112:
4571 #line 818 "parse.y"
4572 { yyval.itype = 1; ;
4573 break;}
4574 case 115:
4575 #line 825 "parse.y"
4576 {
4577 if (current_class_name)
4578 pedwarn ("anachronistic old style base class initializer");
4579 expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
4580 ;
4581 break;}
4582 case 116:
4583 #line 831 "parse.y"
4584 {
4585 if (current_class_name)
4586 pedwarn ("anachronistic old style base class initializer");
4587 expand_member_init (current_class_ref, NULL_TREE, void_type_node);
4588 ;
4589 break;}
4590 case 117:
4591 #line 837 "parse.y"
4592 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4593 break;}
4594 case 118:
4595 #line 839 "parse.y"
4596 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4597 break;}
4598 case 119:
4599 #line 841 "parse.y"
4600 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4601 break;}
4602 case 120:
4603 #line 843 "parse.y"
4604 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4605 break;}
4606 case 121:
4607 #line 845 "parse.y"
4608 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
4609 yyvsp[-1].ttype); ;
4610 break;}
4611 case 122:
4612 #line 848 "parse.y"
4613 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
4614 void_type_node); ;
4615 break;}
4616 case 134:
4617 #line 874 "parse.y"
4618 { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
4619 yyungetc (';', 1); ;
4620 break;}
4621 case 136:
4622 #line 878 "parse.y"
4623 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4624 do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
4625 break;}
4626 case 138:
4627 #line 882 "parse.y"
4628 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4629 break;}
4630 case 140:
4631 #line 885 "parse.y"
4632 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4633 break;}
4634 case 142:
4635 #line 888 "parse.y"
4636 { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
4637 yyungetc (';', 1); ;
4638 break;}
4639 case 144:
4640 #line 893 "parse.y"
4641 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4642 do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
4643 break;}
4644 case 146:
4645 #line 897 "parse.y"
4646 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4647 break;}
4648 case 148:
4649 #line 900 "parse.y"
4650 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4651 break;}
4652 case 150:
4653 #line 905 "parse.y"
4654 { begin_explicit_instantiation(); ;
4655 break;}
4656 case 151:
4657 #line 908 "parse.y"
4658 { end_explicit_instantiation(); ;
4659 break;}
4660 case 152:
4661 #line 916 "parse.y"
4662 {
4663 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4664 if (yyval.ttype != error_mark_node)
4665 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4666 ;
4667 break;}
4668 case 153:
4669 #line 922 "parse.y"
4670 {
4671 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4672 if (yyval.ttype != error_mark_node)
4673 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4674 ;
4675 break;}
4676 case 155:
4677 #line 932 "parse.y"
4678 {
4679 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4680 if (yyval.ttype != error_mark_node)
4681 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4682 ;
4683 break;}
4684 case 157:
4685 #line 942 "parse.y"
4686 {
4687 /* Handle `Class<Class<Type>>' without space in the `>>' */
4688 pedwarn ("`>>' should be `> >' in template class name");
4689 yyungetc ('>', 1);
4690 ;
4691 break;}
4692 case 158:
4693 #line 951 "parse.y"
4694 { yyval.ttype = NULL_TREE; ;
4695 break;}
4696 case 160:
4697 #line 957 "parse.y"
4698 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
4699 break;}
4700 case 161:
4701 #line 959 "parse.y"
4702 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4703 break;}
4704 case 162:
4705 #line 963 "parse.y"
4706 { processing_template_arg = 1; ;
4707 break;}
4708 case 163:
4709 #line 965 "parse.y"
4710 { yyval.ttype = yyvsp[0].ttype;
4711 processing_template_arg = 0; ;
4712 break;}
4713 case 164:
4714 #line 970 "parse.y"
4715 { yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
4716 break;}
4717 case 166:
4718 #line 976 "parse.y"
4719 { yyval.code = NEGATE_EXPR; ;
4720 break;}
4721 case 167:
4722 #line 978 "parse.y"
4723 { yyval.code = CONVERT_EXPR; ;
4724 break;}
4725 case 168:
4726 #line 980 "parse.y"
4727 { yyval.code = PREINCREMENT_EXPR; ;
4728 break;}
4729 case 169:
4730 #line 982 "parse.y"
4731 { yyval.code = PREDECREMENT_EXPR; ;
4732 break;}
4733 case 170:
4734 #line 984 "parse.y"
4735 { yyval.code = TRUTH_NOT_EXPR; ;
4736 break;}
4737 case 171:
4738 #line 989 "parse.y"
4739 { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
4740 break;}
4741 case 173:
4742 #line 995 "parse.y"
4743 { error ("ANSI C++ forbids an empty condition for `%s'",
4744 cond_stmt_keyword);
4745 yyval.ttype = integer_zero_node; ;
4746 break;}
4747 case 174:
4748 #line 999 "parse.y"
4749 { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
4750 break;}
4751 case 175:
4752 #line 1004 "parse.y"
4753 { error ("ANSI C++ forbids an empty condition for `%s'",
4754 cond_stmt_keyword);
4755 yyval.ttype = integer_zero_node; ;
4756 break;}
4757 case 176:
4758 #line 1008 "parse.y"
4759 { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
4760 break;}
4761 case 177:
4762 #line 1013 "parse.y"
4763 { yyval.ttype = NULL_TREE; ;
4764 break;}
4765 case 178:
4766 #line 1015 "parse.y"
4767 { yyval.ttype = condition_conversion (yyval.ttype); ;
4768 break;}
4769 case 179:
4770 #line 1017 "parse.y"
4771 { yyval.ttype = NULL_TREE; ;
4772 break;}
4773 case 180:
4774 #line 1022 "parse.y"
4775 { {
4776 tree d;
4777 for (d = getdecls (); d; d = TREE_CHAIN (d))
4778 if (TREE_CODE (d) == TYPE_DECL) {
4779 tree s = TREE_TYPE (d);
4780 if (TREE_CODE (s) == RECORD_TYPE)
4781 cp_error ("definition of class `%T' in condition", s);
4782 else if (TREE_CODE (s) == ENUMERAL_TYPE)
4783 cp_error ("definition of enum `%T' in condition", s);
4784 }
4785 }
4786 current_declspecs = yyvsp[-4].ftype.t;
4787 yyvsp[0].itype = suspend_momentary ();
4788 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
4789 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype,
4790 /*prefix_attributes*/ NULL_TREE);
4791 ;
4792 break;}
4793 case 181:
4794 #line 1040 "parse.y"
4795 {
4796 cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
4797 resume_momentary (yyvsp[-2].itype);
4798 yyval.ttype = yyvsp[-1].ttype;
4799 if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
4800 cp_error ("definition of array `%#D' in condition", yyval.ttype);
4801 ;
4802 break;}
4803 case 187:
4804 #line 1059 "parse.y"
4805 {
4806 if (processing_template_decl)
4807 {
4808 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
4809 COMPOUND_STMT_NO_SCOPE (yyval.ttype) = 1;
4810 add_tree (yyval.ttype);
4811 }
4812 ;
4813 break;}
4814 case 188:
4815 #line 1068 "parse.y"
4816 {
4817 if (processing_template_decl)
4818 {
4819 TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
4820 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
4821 last_tree = yyvsp[-1].ttype;
4822 }
4823 finish_stmt ();
4824 ;
4825 break;}
4826 case 190:
4827 #line 1083 "parse.y"
4828 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
4829 build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4830 break;}
4831 case 191:
4832 #line 1086 "parse.y"
4833 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
4834 build_expr_list (NULL_TREE, error_mark_node)); ;
4835 break;}
4836 case 192:
4837 #line 1089 "parse.y"
4838 { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4839 break;}
4840 case 193:
4841 #line 1091 "parse.y"
4842 { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
4843 break;}
4844 case 194:
4845 #line 1096 "parse.y"
4846 { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
4847 break;}
4848 case 196:
4849 #line 1102 "parse.y"
4850 { yyval.ttype = yyvsp[0].ttype; ;
4851 break;}
4852 case 197:
4853 #line 1105 "parse.y"
4854 { yyval.ttype = yyvsp[0].ttype;
4855 pedantic = yyvsp[-1].itype; ;
4856 break;}
4857 case 198:
4858 #line 1108 "parse.y"
4859 { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
4860 break;}
4861 case 199:
4862 #line 1110 "parse.y"
4863 { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
4864 break;}
4865 case 200:
4866 #line 1112 "parse.y"
4867 { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
4868 break;}
4869 case 201:
4870 #line 1114 "parse.y"
4871 { yyval.ttype = build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype);
4872 if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
4873 TREE_NEGATED_INT (yyval.ttype) = 1;
4874 overflow_warning (yyval.ttype);
4875 ;
4876 break;}
4877 case 202:
4878 #line 1121 "parse.y"
4879 { tree label = lookup_label (yyvsp[0].ttype);
4880 if (pedantic)
4881 pedwarn ("ANSI C++ forbids `&&'");
4882 if (label == NULL_TREE)
4883 yyval.ttype = null_pointer_node;
4884 else
4885 {
4886 TREE_USED (label) = 1;
4887 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
4888 TREE_CONSTANT (yyval.ttype) = 1;
4889 }
4890 ;
4891 break;}
4892 case 203:
4893 #line 1134 "parse.y"
4894 { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
4895 break;}
4896 case 204:
4897 #line 1136 "parse.y"
4898 { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ;
4899 break;}
4900 case 205:
4901 #line 1138 "parse.y"
4902 { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
4903 break;}
4904 case 206:
4905 #line 1140 "parse.y"
4906 { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t));
4907 check_for_new_type ("alignof", yyvsp[-1].ftype); ;
4908 break;}
4909 case 207:
4910 #line 1146 "parse.y"
4911 { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype);
4912 check_for_new_type ("new", yyvsp[0].ftype); ;
4913 break;}
4914 case 208:
4915 #line 1149 "parse.y"
4916 { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype);
4917 check_for_new_type ("new", yyvsp[-1].ftype); ;
4918 break;}
4919 case 209:
4920 #line 1152 "parse.y"
4921 { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype);
4922 check_for_new_type ("new", yyvsp[0].ftype); ;
4923 break;}
4924 case 210:
4925 #line 1155 "parse.y"
4926 { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype);
4927 check_for_new_type ("new", yyvsp[-1].ftype); ;
4928 break;}
4929 case 211:
4930 #line 1158 "parse.y"
4931 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
4932 NULL_TREE, yyvsp[-3].itype);
4933 check_for_new_type ("new", yyvsp[-1].ftype); ;
4934 break;}
4935 case 212:
4936 #line 1162 "parse.y"
4937 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype);
4938 check_for_new_type ("new", yyvsp[-2].ftype); ;
4939 break;}
4940 case 213:
4941 #line 1165 "parse.y"
4942 { yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype);
4943 check_for_new_type ("new", yyvsp[-1].ftype); ;
4944 break;}
4945 case 214:
4946 #line 1168 "parse.y"
4947 { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype);
4948 check_for_new_type ("new", yyvsp[-2].ftype); ;
4949 break;}
4950 case 215:
4951 #line 1172 "parse.y"
4952 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
4953 break;}
4954 case 216:
4955 #line 1174 "parse.y"
4956 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
4957 if (yychar == YYEMPTY)
4958 yychar = YYLEX; ;
4959 break;}
4960 case 217:
4961 #line 1178 "parse.y"
4962 { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
4963 if (yychar == YYEMPTY)
4964 yychar = YYLEX; ;
4965 break;}
4966 case 218:
4967 #line 1182 "parse.y"
4968 { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
4969 break;}
4970 case 219:
4971 #line 1184 "parse.y"
4972 { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
4973 break;}
4974 case 220:
4975 #line 1189 "parse.y"
4976 { yyval.ttype = yyvsp[-1].ttype; ;
4977 break;}
4978 case 221:
4979 #line 1191 "parse.y"
4980 {
4981 yyval.ttype = yyvsp[-1].ttype;
4982 pedwarn ("old style placement syntax, use () instead");
4983 ;
4984 break;}
4985 case 222:
4986 #line 1199 "parse.y"
4987 { yyval.ttype = yyvsp[-1].ttype; ;
4988 break;}
4989 case 223:
4990 #line 1201 "parse.y"
4991 { yyval.ttype = NULL_TREE; ;
4992 break;}
4993 case 224:
4994 #line 1203 "parse.y"
4995 {
4996 cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
4997 yyval.ttype = error_mark_node;
4998 ;
4999 break;}
5000 case 225:
5001 #line 1211 "parse.y"
5002 {
5003 if (pedantic)
5004 pedwarn ("ANSI C++ forbids initialization of new expression with `='");
5005 yyval.ttype = yyvsp[0].ttype;
5006 ;
5007 break;}
5008 case 226:
5009 #line 1221 "parse.y"
5010 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
5011 TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
5012 yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5013 check_for_new_type ("cast", yyvsp[-1].ftype); ;
5014 break;}
5015 case 227:
5016 #line 1226 "parse.y"
5017 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
5018 TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
5019 yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5020 check_for_new_type ("cast", yyvsp[-1].ftype); ;
5021 break;}
5022 case 229:
5023 #line 1235 "parse.y"
5024 { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
5025 break;}
5026 case 230:
5027 #line 1237 "parse.y"
5028 {
5029 tree init = build_nt (CONSTRUCTOR, NULL_TREE,
5030 nreverse (yyvsp[-2].ttype));
5031 if (pedantic)
5032 pedwarn ("ANSI C++ forbids constructor-expressions");
5033 /* Indicate that this was a GNU C constructor expression. */
5034 TREE_HAS_CONSTRUCTOR (init) = 1;
5035
5036 yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
5037 ;
5038 break;}
5039 case 232:
5040 #line 1253 "parse.y"
5041 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
5042 break;}
5043 case 233:
5044 #line 1255 "parse.y"
5045 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
5046 break;}
5047 case 234:
5048 #line 1257 "parse.y"
5049 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5050 break;}
5051 case 235:
5052 #line 1259 "parse.y"
5053 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5054 break;}
5055 case 236:
5056 #line 1261 "parse.y"
5057 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5058 break;}
5059 case 237:
5060 #line 1263 "parse.y"
5061 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5062 break;}
5063 case 238:
5064 #line 1265 "parse.y"
5065 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5066 break;}
5067 case 239:
5068 #line 1267 "parse.y"
5069 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5070 break;}
5071 case 240:
5072 #line 1269 "parse.y"
5073 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5074 break;}
5075 case 241:
5076 #line 1271 "parse.y"
5077 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5078 break;}
5079 case 242:
5080 #line 1273 "parse.y"
5081 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5082 break;}
5083 case 243:
5084 #line 1275 "parse.y"
5085 { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5086 break;}
5087 case 244:
5088 #line 1277 "parse.y"
5089 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5090 break;}
5091 case 245:
5092 #line 1279 "parse.y"
5093 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5094 break;}
5095 case 246:
5096 #line 1281 "parse.y"
5097 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5098 break;}
5099 case 247:
5100 #line 1283 "parse.y"
5101 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5102 break;}
5103 case 248:
5104 #line 1285 "parse.y"
5105 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5106 break;}
5107 case 249:
5108 #line 1287 "parse.y"
5109 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5110 break;}
5111 case 250:
5112 #line 1289 "parse.y"
5113 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5114 break;}
5115 case 251:
5116 #line 1291 "parse.y"
5117 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5118 break;}
5119 case 252:
5120 #line 1293 "parse.y"
5121 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
5122 if (yyval.ttype != error_mark_node)
5123 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
5124 break;}
5125 case 253:
5126 #line 1297 "parse.y"
5127 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
5128 break;}
5129 case 254:
5130 #line 1299 "parse.y"
5131 { yyval.ttype = build_throw (NULL_TREE); ;
5132 break;}
5133 case 255:
5134 #line 1301 "parse.y"
5135 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
5136 break;}
5137 case 256:
5138 #line 1319 "parse.y"
5139 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5140 break;}
5141 case 262:
5142 #line 1328 "parse.y"
5143 { yyval.ttype = do_identifier (yyvsp[-1].ttype, 1); ;
5144 break;}
5145 case 263:
5146 #line 1332 "parse.y"
5147 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5148 break;}
5149 case 264:
5150 #line 1334 "parse.y"
5151 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5152 break;}
5153 case 265:
5154 #line 1339 "parse.y"
5155 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5156 break;}
5157 case 266:
5158 #line 1341 "parse.y"
5159 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5160 break;}
5161 case 267:
5162 #line 1344 "parse.y"
5163 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5164 break;}
5165 case 272:
5166 #line 1356 "parse.y"
5167 { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
5168 break;}
5169 case 273:
5170 #line 1358 "parse.y"
5171 { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
5172 break;}
5173 case 274:
5174 #line 1360 "parse.y"
5175 { yyval.ttype = yyvsp[-1].ttype; ;
5176 break;}
5177 case 275:
5178 #line 1365 "parse.y"
5179 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5180 break;}
5181 case 276:
5182 #line 1367 "parse.y"
5183 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5184 break;}
5185 case 280:
5186 #line 1375 "parse.y"
5187 { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
5188 break;}
5189 case 281:
5190 #line 1380 "parse.y"
5191 {
5192 if (TREE_CODE (yyval.ttype) == BIT_NOT_EXPR)
5193 yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyval.ttype, 0));
5194 else if (TREE_CODE (yyval.ttype) != TEMPLATE_ID_EXPR)
5195 if (processing_template_arg)
5196 {
5197 tree id;
5198 arg_looking_for_template = processing_template_arg;
5199 id = lookup_name (yyval.ttype, 0);
5200 arg_looking_for_template = 0;
5201
5202 if (!id || id == error_mark_node
5203 || (TREE_CODE (id) != TEMPLATE_DECL
5204 && TREE_CODE (id) != TEMPLATE_TEMPLATE_PARM))
5205 id = do_identifier (yyval.ttype, 1);
5206 yyval.ttype = id;
5207 }
5208 else
5209 yyval.ttype = do_identifier (yyval.ttype, 1);
5210 ;
5211 break;}
5212 case 284:
5213 #line 1403 "parse.y"
5214 {
5215 if (processing_template_decl)
5216 push_obstacks (&permanent_obstack, &permanent_obstack);
5217 yyval.ttype = combine_strings (yyval.ttype);
5218 if (processing_template_decl)
5219 pop_obstacks ();
5220 ;
5221 break;}
5222 case 285:
5223 #line 1411 "parse.y"
5224 { char class;
5225 yyval.ttype = yyvsp[-1].ttype;
5226 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
5227 if (class == 'e' || class == '1'
5228 || class == '2' || class == '<')
5229 /* This inhibits warnings in truthvalue_conversion. */
5230 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
5231 break;}
5232 case 286:
5233 #line 1419 "parse.y"
5234 { char class;
5235 yyval.ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
5236 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
5237 if (class == 'e' || class == '1'
5238 || class == '2' || class == '<')
5239 /* This inhibits warnings in truthvalue_conversion. */
5240 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
5241 break;}
5242 case 287:
5243 #line 1427 "parse.y"
5244 { yyval.ttype = error_mark_node; ;
5245 break;}
5246 case 288:
5247 #line 1429 "parse.y"
5248 { if (current_function_decl == 0)
5249 {
5250 error ("braced-group within expression allowed only inside a function");
5251 YYERROR;
5252 }
5253 keep_next_level ();
5254 yyval.ttype = expand_start_stmt_expr (); ;
5255 break;}
5256 case 289:
5257 #line 1437 "parse.y"
5258 { tree rtl_exp;
5259 if (pedantic)
5260 pedwarn ("ANSI C++ forbids braced-groups within expressions");
5261 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
5262 /* The statements have side effects, so the group does. */
5263 TREE_SIDE_EFFECTS (rtl_exp) = 1;
5264
5265 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
5266 {
5267 /* Make a BIND_EXPR for the BLOCK already made. */
5268 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
5269 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
5270 /* Remove the block from the tree at this point.
5271 It gets put back at the proper place
5272 when the BIND_EXPR is expanded. */
5273 delete_block (yyvsp[-1].ttype);
5274 }
5275 else
5276 yyval.ttype = yyvsp[-1].ttype;
5277 ;
5278 break;}
5279 case 290:
5280 #line 1458 "parse.y"
5281 {
5282 yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_ref);
5283 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5284 && TREE_TYPE (yyval.ttype) != void_type_node)
5285 yyval.ttype = require_complete_type (yyval.ttype);
5286 ;
5287 break;}
5288 case 291:
5289 #line 1465 "parse.y"
5290 {
5291 yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_ref);
5292 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5293 && TREE_TYPE (yyval.ttype) != void_type_node)
5294 yyval.ttype = require_complete_type (yyval.ttype);
5295 ;
5296 break;}
5297 case 292:
5298 #line 1472 "parse.y"
5299 { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
5300 break;}
5301 case 293:
5302 #line 1474 "parse.y"
5303 { /* If we get an OFFSET_REF, turn it into what it really
5304 means (e.g., a COMPONENT_REF). This way if we've got,
5305 say, a reference to a static member that's being operated
5306 on, we don't end up trying to find a member operator for
5307 the class it's in. */
5308 if (TREE_CODE (yyval.ttype) == OFFSET_REF)
5309 yyval.ttype = resolve_offset_ref (yyval.ttype);
5310 yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
5311 break;}
5312 case 294:
5313 #line 1483 "parse.y"
5314 { if (TREE_CODE (yyval.ttype) == OFFSET_REF)
5315 yyval.ttype = resolve_offset_ref (yyval.ttype);
5316 yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
5317 break;}
5318 case 295:
5319 #line 1488 "parse.y"
5320 { if (current_class_ptr)
5321 {
5322 #ifdef WARNING_ABOUT_CCD
5323 TREE_USED (current_class_ptr) = 1;
5324 #endif
5325 yyval.ttype = current_class_ptr;
5326 }
5327 else if (current_function_decl
5328 && DECL_STATIC_FUNCTION_P (current_function_decl))
5329 {
5330 error ("`this' is unavailable for static member functions");
5331 yyval.ttype = error_mark_node;
5332 }
5333 else
5334 {
5335 if (current_function_decl)
5336 error ("invalid use of `this' in non-member function");
5337 else
5338 error ("invalid use of `this' at top level");
5339 yyval.ttype = error_mark_node;
5340 }
5341 ;
5342 break;}
5343 case 296:
5344 #line 1511 "parse.y"
5345 {
5346 tree type;
5347 tree id = yyval.ttype;
5348
5349 /* This is a C cast in C++'s `functional' notation. */
5350 if (yyvsp[-1].ttype == error_mark_node)
5351 {
5352 yyval.ttype = error_mark_node;
5353 break;
5354 }
5355 #if 0
5356 if (yyvsp[-1].ttype == NULL_TREE)
5357 {
5358 error ("cannot cast null list to type `%s'",
5359 IDENTIFIER_POINTER (TYPE_NAME (id)));
5360 yyval.ttype = error_mark_node;
5361 break;
5362 }
5363 #endif
5364 #if 0
5365 /* type is not set! (mrs) */
5366 if (type == error_mark_node)
5367 yyval.ttype = error_mark_node;
5368 else
5369 #endif
5370 {
5371 if (id == ridpointers[(int) RID_CONST])
5372 type = build_type_variant (integer_type_node, 1, 0);
5373 else if (id == ridpointers[(int) RID_VOLATILE])
5374 type = build_type_variant (integer_type_node, 0, 1);
5375 #if 0
5376 /* should not be able to get here (mrs) */
5377 else if (id == ridpointers[(int) RID_FRIEND])
5378 {
5379 error ("cannot cast expression to `friend' type");
5380 yyval.ttype = error_mark_node;
5381 break;
5382 }
5383 #endif
5384 else my_friendly_abort (79);
5385 yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
5386 }
5387 ;
5388 break;}
5389 case 298:
5390 #line 1556 "parse.y"
5391 { tree type = groktypename (yyvsp[-4].ftype.t);
5392 check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
5393 yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
5394 break;}
5395 case 299:
5396 #line 1560 "parse.y"
5397 { tree type = groktypename (yyvsp[-4].ftype.t);
5398 check_for_new_type ("static_cast", yyvsp[-4].ftype);
5399 yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
5400 break;}
5401 case 300:
5402 #line 1564 "parse.y"
5403 { tree type = groktypename (yyvsp[-4].ftype.t);
5404 check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
5405 yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
5406 break;}
5407 case 301:
5408 #line 1568 "parse.y"
5409 { tree type = groktypename (yyvsp[-4].ftype.t);
5410 check_for_new_type ("const_cast", yyvsp[-4].ftype);
5411 yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
5412 break;}
5413 case 302:
5414 #line 1572 "parse.y"
5415 { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
5416 break;}
5417 case 303:
5418 #line 1574 "parse.y"
5419 { tree type = groktypename (yyvsp[-1].ftype.t);
5420 check_for_new_type ("typeid", yyvsp[-1].ftype);
5421 yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
5422 break;}
5423 case 304:
5424 #line 1578 "parse.y"
5425 { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
5426 break;}
5427 case 305:
5428 #line 1580 "parse.y"
5429 {
5430 got_scope = NULL_TREE;
5431 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
5432 yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
5433 else
5434 yyval.ttype = yyvsp[0].ttype;
5435 ;
5436 break;}
5437 case 306:
5438 #line 1588 "parse.y"
5439 { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
5440 break;}
5441 case 307:
5442 #line 1590 "parse.y"
5443 { if (processing_template_decl)
5444 yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE);
5445 else
5446 yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), yyvsp[-1].ttype); ;
5447 break;}
5448 case 308:
5449 #line 1595 "parse.y"
5450 { if (processing_template_decl)
5451 yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-1].ttype),
5452 NULL_TREE, NULL_TREE);
5453 else
5454 yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), NULL_TREE); ;
5455 break;}
5456 case 309:
5457 #line 1601 "parse.y"
5458 {
5459 yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1);
5460 ;
5461 break;}
5462 case 310:
5463 #line 1605 "parse.y"
5464 {
5465 yyval.ttype = build_method_call (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype,
5466 NULL_TREE, LOOKUP_NORMAL);
5467 ;
5468 break;}
5469 case 311:
5470 #line 1610 "parse.y"
5471 {
5472 yyval.ttype = build_method_call (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE,
5473 NULL_TREE, LOOKUP_NORMAL);
5474 ;
5475 break;}
5476 case 312:
5477 #line 1615 "parse.y"
5478 { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
5479 break;}
5480 case 313:
5481 #line 1617 "parse.y"
5482 { if (processing_template_decl)
5483 yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
5484 else
5485 yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
5486 break;}
5487 case 314:
5488 #line 1622 "parse.y"
5489 {
5490 #if 0
5491 /* This is a future direction of this code, but because
5492 build_x_function_call cannot always undo what is done
5493 in build_component_ref entirely yet, we cannot do this. */
5494 yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-3].ttype, NULL_TREE, 1), yyvsp[-1].ttype, current_class_ref);
5495 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5496 && TREE_TYPE (yyval.ttype) != void_type_node)
5497 yyval.ttype = require_complete_type (yyval.ttype);
5498 #else
5499 yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
5500 LOOKUP_NORMAL);
5501 #endif
5502 ;
5503 break;}
5504 case 315:
5505 #line 1637 "parse.y"
5506 {
5507 #if 0
5508 /* This is a future direction of this code, but because
5509 build_x_function_call cannot always undo what is done
5510 in build_component_ref entirely yet, we cannot do this. */
5511 yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, 1), NULL_TREE, current_class_ref);
5512 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5513 && TREE_TYPE (yyval.ttype) != void_type_node)
5514 yyval.ttype = require_complete_type (yyval.ttype);
5515 #else
5516 yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
5517 LOOKUP_NORMAL);
5518 #endif
5519 ;
5520 break;}
5521 case 316:
5522 #line 1652 "parse.y"
5523 {
5524 if (IS_SIGNATURE (OP0 (yyvsp[-3].ttype)))
5525 {
5526 warning ("signature name in scope resolution ignored");
5527 yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE,
5528 LOOKUP_NORMAL);
5529 }
5530 else
5531 yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-3].ttype), OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype);
5532 ;
5533 break;}
5534 case 317:
5535 #line 1663 "parse.y"
5536 {
5537 if (IS_SIGNATURE (OP0 (yyvsp[-1].ttype)))
5538 {
5539 warning ("signature name in scope resolution ignored");
5540 yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-1].ttype), NULL_TREE, NULL_TREE,
5541 LOOKUP_NORMAL);
5542 }
5543 else
5544 yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-1].ttype), OP1 (yyvsp[-1].ttype), NULL_TREE);
5545 ;
5546 break;}
5547 case 318:
5548 #line 1675 "parse.y"
5549 {
5550 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)
5551 && (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype))
5552 != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)))))
5553 cp_error ("`%E' is not of type `%T'", yyvsp[-3].ttype, yyvsp[-1].ttype);
5554 yyval.ttype = cp_convert (void_type_node, yyvsp[-3].ttype);
5555 ;
5556 break;}
5557 case 319:
5558 #line 1683 "parse.y"
5559 {
5560 if (yyvsp[-4].ttype != yyvsp[-1].ttype)
5561 cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype);
5562 if (TREE_CODE (TREE_TYPE (yyvsp[-5].ttype))
5563 != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-4].ttype))))
5564 cp_error ("`%E' is not of type `%T'", yyvsp[-5].ttype, yyvsp[-4].ttype);
5565 yyval.ttype = cp_convert (void_type_node, yyvsp[-5].ttype);
5566 ;
5567 break;}
5568 case 320:
5569 #line 1692 "parse.y"
5570 {
5571 yyval.ttype = error_mark_node;
5572 ;
5573 break;}
5574 case 321:
5575 #line 1737 "parse.y"
5576 { yyval.itype = 0; ;
5577 break;}
5578 case 322:
5579 #line 1739 "parse.y"
5580 { got_scope = NULL_TREE; yyval.itype = 1; ;
5581 break;}
5582 case 323:
5583 #line 1744 "parse.y"
5584 { yyval.itype = 0; ;
5585 break;}
5586 case 324:
5587 #line 1746 "parse.y"
5588 { got_scope = NULL_TREE; yyval.itype = 1; ;
5589 break;}
5590 case 325:
5591 #line 1751 "parse.y"
5592 { yyval.ttype = boolean_true_node; ;
5593 break;}
5594 case 326:
5595 #line 1753 "parse.y"
5596 { yyval.ttype = boolean_false_node; ;
5597 break;}
5598 case 328:
5599 #line 1760 "parse.y"
5600 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5601 break;}
5602 case 329:
5603 #line 1765 "parse.y"
5604 {
5605 if (! current_function_parms_stored)
5606 store_parm_decls ();
5607 setup_vtbl_ptr ();
5608 /* Always keep the BLOCK node associated with the outermost
5609 pair of curley braces of a function. These are needed
5610 for correct operation of dwarfout.c. */
5611 keep_next_level ();
5612 ;
5613 break;}
5614 case 330:
5615 #line 1778 "parse.y"
5616 { got_object = TREE_TYPE (yyval.ttype); ;
5617 break;}
5618 case 331:
5619 #line 1780 "parse.y"
5620 {
5621 yyval.ttype = build_x_arrow (yyval.ttype);
5622 got_object = TREE_TYPE (yyval.ttype);
5623 ;
5624 break;}
5625 case 332:
5626 #line 1788 "parse.y"
5627 {
5628 resume_momentary (yyvsp[-1].itype);
5629 if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
5630 note_got_semicolon (yyvsp[-2].ftype.t);
5631 ;
5632 break;}
5633 case 333:
5634 #line 1794 "parse.y"
5635 {
5636 resume_momentary (yyvsp[-1].itype);
5637 note_list_got_semicolon (yyvsp[-2].ftype.t);
5638 ;
5639 break;}
5640 case 334:
5641 #line 1799 "parse.y"
5642 { resume_momentary (yyvsp[-1].itype); ;
5643 break;}
5644 case 335:
5645 #line 1801 "parse.y"
5646 {
5647 shadow_tag (yyvsp[-1].ftype.t);
5648 note_list_got_semicolon (yyvsp[-1].ftype.t);
5649 ;
5650 break;}
5651 case 336:
5652 #line 1806 "parse.y"
5653 { warning ("empty declaration"); ;
5654 break;}
5655 case 337:
5656 #line 1808 "parse.y"
5657 { pedantic = yyvsp[-1].itype; ;
5658 break;}
5659 case 340:
5660 #line 1822 "parse.y"
5661 { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
5662 NULL_TREE, NULL_TREE); ;
5663 break;}
5664 case 341:
5665 #line 1825 "parse.y"
5666 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
5667 NULL_TREE); ;
5668 break;}
5669 case 342:
5670 #line 1832 "parse.y"
5671 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5672 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5673 break;}
5674 case 343:
5675 #line 1835 "parse.y"
5676 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5677 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5678 break;}
5679 case 344:
5680 #line 1838 "parse.y"
5681 { yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
5682 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5683 break;}
5684 case 345:
5685 #line 1841 "parse.y"
5686 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5687 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5688 break;}
5689 case 346:
5690 #line 1844 "parse.y"
5691 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5692 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5693 break;}
5694 case 349:
5695 #line 1860 "parse.y"
5696 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype);
5697 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5698 break;}
5699 case 350:
5700 #line 1863 "parse.y"
5701 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
5702 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5703 break;}
5704 case 351:
5705 #line 1866 "parse.y"
5706 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype));
5707 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5708 break;}
5709 case 352:
5710 #line 1869 "parse.y"
5711 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5712 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5713 break;}
5714 case 353:
5715 #line 1872 "parse.y"
5716 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5717 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5718 break;}
5719 case 354:
5720 #line 1875 "parse.y"
5721 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
5722 chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype)));
5723 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5724 break;}
5725 case 355:
5726 #line 1882 "parse.y"
5727 { if (extra_warnings)
5728 warning ("`%s' is not at beginning of declaration",
5729 IDENTIFIER_POINTER (yyval.ttype));
5730 yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
5731 break;}
5732 case 356:
5733 #line 1887 "parse.y"
5734 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
5735 break;}
5736 case 357:
5737 #line 1889 "parse.y"
5738 { if (extra_warnings)
5739 warning ("`%s' is not at beginning of declaration",
5740 IDENTIFIER_POINTER (yyvsp[0].ttype));
5741 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5742 break;}
5743 case 358:
5744 #line 1894 "parse.y"
5745 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5746 break;}
5747 case 359:
5748 #line 1896 "parse.y"
5749 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5750 break;}
5751 case 360:
5752 #line 1906 "parse.y"
5753 { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
5754 break;}
5755 case 361:
5756 #line 1908 "parse.y"
5757 { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
5758 break;}
5759 case 362:
5760 #line 1910 "parse.y"
5761 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5762 TREE_STATIC (yyval.ttype) = 1; ;
5763 break;}
5764 case 363:
5765 #line 1913 "parse.y"
5766 { if (extra_warnings && TREE_STATIC (yyval.ttype))
5767 warning ("`%s' is not at beginning of declaration",
5768 IDENTIFIER_POINTER (yyvsp[0].ttype));
5769 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5770 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
5771 break;}
5772 case 364:
5773 #line 1919 "parse.y"
5774 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5775 break;}
5776 case 365:
5777 #line 1921 "parse.y"
5778 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5779 break;}
5780 case 366:
5781 #line 1932 "parse.y"
5782 { yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t);
5783 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5784 break;}
5785 case 367:
5786 #line 1935 "parse.y"
5787 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t);
5788 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5789 break;}
5790 case 368:
5791 #line 1938 "parse.y"
5792 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
5793 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5794 break;}
5795 case 369:
5796 #line 1941 "parse.y"
5797 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t));
5798 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5799 break;}
5800 case 370:
5801 #line 1947 "parse.y"
5802 { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
5803 break;}
5804 case 371:
5805 #line 1949 "parse.y"
5806 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
5807 break;}
5808 case 373:
5809 #line 1959 "parse.y"
5810 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5811 break;}
5812 case 374:
5813 #line 1961 "parse.y"
5814 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5815 break;}
5816 case 375:
5817 #line 1963 "parse.y"
5818 { yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype);
5819 yyval.ftype.new_type_flag = 0; ;
5820 break;}
5821 case 376:
5822 #line 1966 "parse.y"
5823 { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
5824 yyval.ftype.new_type_flag = 0; ;
5825 break;}
5826 case 377:
5827 #line 1969 "parse.y"
5828 { tree type = TREE_TYPE (yyvsp[-1].ttype);
5829
5830 yyval.ftype.new_type_flag = 0;
5831 if (IS_AGGR_TYPE (type))
5832 {
5833 sorry ("sigof type specifier");
5834 yyval.ftype.t = type;
5835 }
5836 else
5837 {
5838 error ("`sigof' applied to non-aggregate expression");
5839 yyval.ftype.t = error_mark_node;
5840 }
5841 ;
5842 break;}
5843 case 378:
5844 #line 1984 "parse.y"
5845 { tree type = groktypename (yyvsp[-1].ftype.t);
5846
5847 yyval.ftype.new_type_flag = 0;
5848 if (IS_AGGR_TYPE (type))
5849 {
5850 sorry ("sigof type specifier");
5851 yyval.ftype.t = type;
5852 }
5853 else
5854 {
5855 error("`sigof' applied to non-aggregate type");
5856 yyval.ftype.t = error_mark_node;
5857 }
5858 ;
5859 break;}
5860 case 379:
5861 #line 2004 "parse.y"
5862 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5863 break;}
5864 case 380:
5865 #line 2006 "parse.y"
5866 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5867 break;}
5868 case 388:
5869 #line 2027 "parse.y"
5870 { yyval.ttype = NULL_TREE; ;
5871 break;}
5872 case 389:
5873 #line 2029 "parse.y"
5874 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
5875 break;}
5876 case 390:
5877 #line 2034 "parse.y"
5878 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
5879 &prefix_attributes);
5880 if (current_declspecs
5881 && TREE_CODE (current_declspecs) != TREE_LIST)
5882 current_declspecs = get_decl_list (current_declspecs);
5883 if (have_extern_spec && !used_extern_spec)
5884 {
5885 current_declspecs = decl_tree_cons
5886 (NULL_TREE, get_identifier ("extern"),
5887 current_declspecs);
5888 used_extern_spec = 1;
5889 }
5890 yyvsp[0].itype = suspend_momentary ();
5891 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5892 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5893 break;}
5894 case 391:
5895 #line 2051 "parse.y"
5896 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5897 yyval.itype = yyvsp[-2].itype; ;
5898 break;}
5899 case 392:
5900 #line 2054 "parse.y"
5901 { tree d;
5902 split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
5903 &prefix_attributes);
5904 if (current_declspecs
5905 && TREE_CODE (current_declspecs) != TREE_LIST)
5906 current_declspecs = get_decl_list (current_declspecs);
5907 if (have_extern_spec && !used_extern_spec)
5908 {
5909 current_declspecs = decl_tree_cons
5910 (NULL_TREE, get_identifier ("extern"),
5911 current_declspecs);
5912 used_extern_spec = 1;
5913 }
5914 yyval.itype = suspend_momentary ();
5915 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5916 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5917 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5918 break;}
5919 case 393:
5920 #line 2075 "parse.y"
5921 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5922 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5923 break;}
5924 case 394:
5925 #line 2079 "parse.y"
5926 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
5927 break;}
5928 case 395:
5929 #line 2081 "parse.y"
5930 { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5931 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes);
5932 cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5933 break;}
5934 case 396:
5935 #line 2088 "parse.y"
5936 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
5937 &prefix_attributes);
5938 yyvsp[0].itype = suspend_momentary ();
5939 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5940 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5941 break;}
5942 case 397:
5943 #line 2095 "parse.y"
5944 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5945 yyval.itype = yyvsp[-2].itype; ;
5946 break;}
5947 case 398:
5948 #line 2098 "parse.y"
5949 { tree d;
5950 split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
5951 &prefix_attributes);
5952 yyval.itype = suspend_momentary ();
5953 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5954 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5955 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5956 break;}
5957 case 399:
5958 #line 2109 "parse.y"
5959 { current_declspecs = NULL_TREE;
5960 prefix_attributes = NULL_TREE;
5961 yyvsp[0].itype = suspend_momentary ();
5962 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5963 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5964 break;}
5965 case 400:
5966 #line 2116 "parse.y"
5967 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5968 yyval.itype = yyvsp[-2].itype; ;
5969 break;}
5970 case 401:
5971 #line 2119 "parse.y"
5972 { tree d;
5973 current_declspecs = NULL_TREE;
5974 prefix_attributes = NULL_TREE;
5975 yyval.itype = suspend_momentary ();
5976 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5977 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5978 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5979 break;}
5980 case 402:
5981 #line 2132 "parse.y"
5982 { yyval.ttype = NULL_TREE; ;
5983 break;}
5984 case 403:
5985 #line 2134 "parse.y"
5986 { yyval.ttype = yyvsp[0].ttype; ;
5987 break;}
5988 case 404:
5989 #line 2139 "parse.y"
5990 { yyval.ttype = yyvsp[0].ttype; ;
5991 break;}
5992 case 405:
5993 #line 2141 "parse.y"
5994 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5995 break;}
5996 case 406:
5997 #line 2146 "parse.y"
5998 { yyval.ttype = yyvsp[-2].ttype; ;
5999 break;}
6000 case 407:
6001 #line 2151 "parse.y"
6002 { yyval.ttype = yyvsp[0].ttype; ;
6003 break;}
6004 case 408:
6005 #line 2153 "parse.y"
6006 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6007 break;}
6008 case 409:
6009 #line 2158 "parse.y"
6010 { yyval.ttype = NULL_TREE; ;
6011 break;}
6012 case 410:
6013 #line 2160 "parse.y"
6014 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
6015 break;}
6016 case 411:
6017 #line 2162 "parse.y"
6018 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
6019 break;}
6020 case 412:
6021 #line 2164 "parse.y"
6022 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
6023 break;}
6024 case 413:
6025 #line 2166 "parse.y"
6026 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6027 break;}
6028 case 418:
6029 #line 2182 "parse.y"
6030 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
6031 break;}
6032 case 419:
6033 #line 2184 "parse.y"
6034 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
6035 break;}
6036 case 420:
6037 #line 2189 "parse.y"
6038 { yyval.ttype = NULL_TREE; ;
6039 break;}
6040 case 421:
6041 #line 2191 "parse.y"
6042 { yyval.ttype = yyvsp[0].ttype; ;
6043 break;}
6044 case 423:
6045 #line 2199 "parse.y"
6046 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
6047 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6048 break;}
6049 case 424:
6050 #line 2202 "parse.y"
6051 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
6052 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6053 break;}
6054 case 425:
6055 #line 2205 "parse.y"
6056 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
6057 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6058 break;}
6059 case 426:
6060 #line 2208 "parse.y"
6061 { yyval.ttype = NULL_TREE; ;
6062 break;}
6063 case 427:
6064 #line 2215 "parse.y"
6065 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
6066 break;}
6067 case 428:
6068 #line 2217 "parse.y"
6069 { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6070 break;}
6071 case 429:
6072 #line 2220 "parse.y"
6073 { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6074 break;}
6075 case 430:
6076 #line 2222 "parse.y"
6077 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
6078 break;}
6079 case 431:
6080 #line 2224 "parse.y"
6081 { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
6082 break;}
6083 case 432:
6084 #line 2226 "parse.y"
6085 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
6086 break;}
6087 case 433:
6088 #line 2231 "parse.y"
6089 { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
6090 NULL_TREE, 1);
6091 reinit_parse_for_function (); ;
6092 break;}
6093 case 434:
6094 #line 2237 "parse.y"
6095 {
6096 int nested = (hack_decl_function_context
6097 (current_function_decl) != NULL_TREE);
6098 finish_function (lineno, (int)yyvsp[-1].itype, nested);
6099 process_next_inline (yyvsp[-3].ttype);
6100 ;
6101 break;}
6102 case 435:
6103 #line 2244 "parse.y"
6104 { process_next_inline (yyvsp[-2].ttype); ;
6105 break;}
6106 case 436:
6107 #line 2246 "parse.y"
6108 { process_next_inline (yyvsp[-2].ttype); ;
6109 break;}
6110 case 439:
6111 #line 2258 "parse.y"
6112 { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
6113 break;}
6114 case 440:
6115 #line 2260 "parse.y"
6116 { replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
6117 break;}
6118 case 442:
6119 #line 2265 "parse.y"
6120 { do_pending_defargs (); ;
6121 break;}
6122 case 443:
6123 #line 2267 "parse.y"
6124 { do_pending_defargs (); ;
6125 break;}
6126 case 444:
6127 #line 2272 "parse.y"
6128 { yyvsp[0].itype = suspend_momentary ();
6129 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
6130 break;}
6131 case 445:
6132 #line 2275 "parse.y"
6133 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
6134 yyval.ftype.new_type_flag = 1;
6135 resume_momentary ((int) yyvsp[-4].itype);
6136 check_for_missing_semicolon (yyvsp[-3].ttype); ;
6137 break;}
6138 case 446:
6139 #line 2280 "parse.y"
6140 { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
6141 yyval.ftype.new_type_flag = 1;
6142 check_for_missing_semicolon (yyval.ftype.t); ;
6143 break;}
6144 case 447:
6145 #line 2284 "parse.y"
6146 { yyvsp[0].itype = suspend_momentary ();
6147 yyval.ttype = start_enum (make_anon_name ()); ;
6148 break;}
6149 case 448:
6150 #line 2287 "parse.y"
6151 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
6152 resume_momentary ((int) yyvsp[-5].itype);
6153 check_for_missing_semicolon (yyvsp[-3].ttype);
6154 yyval.ftype.new_type_flag = 1; ;
6155 break;}
6156 case 449:
6157 #line 2292 "parse.y"
6158 { yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE);
6159 yyval.ftype.new_type_flag = 1;
6160 check_for_missing_semicolon (yyval.ftype.t); ;
6161 break;}
6162 case 450:
6163 #line 2296 "parse.y"
6164 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1);
6165 yyval.ftype.new_type_flag = 0; ;
6166 break;}
6167 case 451:
6168 #line 2299 "parse.y"
6169 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1);
6170 yyval.ftype.new_type_flag = 0; ;
6171 break;}
6172 case 452:
6173 #line 2302 "parse.y"
6174 { yyval.ftype.t = yyvsp[0].ttype;
6175 yyval.ftype.new_type_flag = 0; ;
6176 break;}
6177 case 453:
6178 #line 2307 "parse.y"
6179 {
6180 int semi;
6181 tree id;
6182
6183 yyval.ttype = yyvsp[-4].ttype;
6184 #if 0
6185 /* Need to rework class nesting in the
6186 presence of nested classes, etc. */
6187 shadow_tag (CLASSTYPE_AS_LIST (yyvsp[-4].ttype)); */
6188 #endif
6189 if (yychar == YYEMPTY)
6190 yychar = YYLEX;
6191 semi = yychar == ';';
6192 /* finish_struct nukes this anyway; if
6193 finish_exception does too, then it can go. */
6194 if (semi)
6195 note_got_semicolon (yyvsp[-4].ttype);
6196
6197 if (TREE_CODE (yyvsp[-4].ttype) == ENUMERAL_TYPE)
6198 ;
6199 else
6200 {
6201 yyval.ttype = finish_struct (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi);
6202 if (semi) note_got_semicolon (yyval.ttype);
6203 }
6204
6205 pop_obstacks ();
6206
6207 if (! semi)
6208 check_for_missing_semicolon (yyvsp[-4].ttype);
6209 if (current_scope () == current_function_decl)
6210 do_pending_defargs ();
6211 ;
6212 break;}
6213 case 454:
6214 #line 2341 "parse.y"
6215 {
6216 if (pending_inlines
6217 && current_scope () == current_function_decl)
6218 do_pending_inlines ();
6219 ;
6220 break;}
6221 case 455:
6222 #line 2347 "parse.y"
6223 {
6224 yyval.ftype.t = yyvsp[-3].ttype;
6225 yyval.ftype.new_type_flag = 1;
6226 if (current_class_type == NULL_TREE)
6227 clear_inline_text_obstack ();
6228
6229 /* Undo the begin_tree in left_curly. */
6230 end_tree ();
6231 ;
6232 break;}
6233 case 456:
6234 #line 2357 "parse.y"
6235 {
6236 yyval.ftype.new_type_flag = 0;
6237 if (TYPE_BINFO (yyvsp[0].ttype) == NULL_TREE)
6238 {
6239 cp_error ("%T is not a class type", yyvsp[0].ttype);
6240 yyval.ftype.t = error_mark_node;
6241 }
6242 else
6243 {
6244 yyval.ftype.t = yyvsp[0].ttype;
6245 /* struct B: public A; is not accepted by the WP grammar. */
6246 if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
6247 && ! TYPE_BEING_DEFINED (yyval.ftype.t))
6248 cp_error ("base clause without member specification for `%#T'",
6249 yyval.ftype.t);
6250 }
6251 ;
6252 break;}
6253 case 460:
6254 #line 2384 "parse.y"
6255 { if (pedantic && !in_system_header)
6256 pedwarn ("comma at end of enumerator list"); ;
6257 break;}
6258 case 462:
6259 #line 2391 "parse.y"
6260 { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6261 break;}
6262 case 463:
6263 #line 2393 "parse.y"
6264 { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6265 break;}
6266 case 464:
6267 #line 2395 "parse.y"
6268 { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6269 break;}
6270 case 465:
6271 #line 2397 "parse.y"
6272 { error ("no body nor ';' separates two class, struct or union declarations"); ;
6273 break;}
6274 case 466:
6275 #line 2402 "parse.y"
6276 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6277 break;}
6278 case 467:
6279 #line 2407 "parse.y"
6280 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6281 break;}
6282 case 468:
6283 #line 2412 "parse.y"
6284 {
6285 current_aggr = yyvsp[-2].ttype;
6286 yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6287 ;
6288 break;}
6289 case 469:
6290 #line 2417 "parse.y"
6291 {
6292 current_aggr = yyvsp[-3].ttype;
6293 yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6294 ;
6295 break;}
6296 case 470:
6297 #line 2422 "parse.y"
6298 {
6299 current_aggr = yyvsp[-2].ttype;
6300 yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
6301 ;
6302 break;}
6303 case 471:
6304 #line 2427 "parse.y"
6305 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6306 break;}
6307 case 472:
6308 #line 2429 "parse.y"
6309 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6310 break;}
6311 case 473:
6312 #line 2434 "parse.y"
6313 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ;
6314 break;}
6315 case 474:
6316 #line 2439 "parse.y"
6317 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ;
6318 break;}
6319 case 475:
6320 #line 2442 "parse.y"
6321 {
6322 yyval.ttype = yyvsp[-1].ttype;
6323 if (yyvsp[0].ttype)
6324 xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6325 ;
6326 break;}
6327 case 476:
6328 #line 2448 "parse.y"
6329 {
6330 yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6331 if (TREE_INT_CST_LOW (current_aggr) == union_type
6332 && TREE_CODE (yyval.ttype) != UNION_TYPE)
6333 cp_pedwarn ("`union' tag used in declaring `%#T'", yyval.ttype);
6334 else if (TREE_CODE (yyval.ttype) == UNION_TYPE
6335 && TREE_INT_CST_LOW (current_aggr) != union_type)
6336 cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ttype);
6337 if (yyvsp[0].ttype)
6338 {
6339 if (IS_AGGR_TYPE (yyval.ttype) && CLASSTYPE_USE_TEMPLATE (yyval.ttype))
6340 {
6341 if (CLASSTYPE_IMPLICIT_INSTANTIATION (yyval.ttype)
6342 && TYPE_SIZE (yyval.ttype) == NULL_TREE)
6343 {
6344 SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (yyval.ttype);
6345 if (processing_template_decl)
6346 push_template_decl (TYPE_MAIN_DECL (yyval.ttype));
6347 }
6348 else if (CLASSTYPE_TEMPLATE_INSTANTIATION (yyval.ttype))
6349 cp_error ("specialization after instantiation of `%T'", yyval.ttype);
6350 }
6351 xref_basetypes (current_aggr, yyvsp[-1].ttype, yyval.ttype, yyvsp[0].ttype);
6352 }
6353 ;
6354 break;}
6355 case 477:
6356 #line 2477 "parse.y"
6357 { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0);
6358 yyungetc ('{', 1); ;
6359 break;}
6360 case 480:
6361 #line 2488 "parse.y"
6362 { yyval.ttype = NULL_TREE; ;
6363 break;}
6364 case 481:
6365 #line 2490 "parse.y"
6366 { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
6367 break;}
6368 case 482:
6369 #line 2492 "parse.y"
6370 { yyval.ttype = yyvsp[0].ttype; ;
6371 break;}
6372 case 484:
6373 #line 2498 "parse.y"
6374 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6375 break;}
6376 case 485:
6377 #line 2503 "parse.y"
6378 {
6379 tree type = TREE_TYPE (yyvsp[0].ttype);
6380 if (! is_aggr_type (type, 1))
6381 yyval.ttype = NULL_TREE;
6382 else if (current_aggr == signature_type_node
6383 && (! type) && (! IS_SIGNATURE (type)))
6384 {
6385 error ("class name not allowed as base signature");
6386 yyval.ttype = NULL_TREE;
6387 }
6388 else if (current_aggr == signature_type_node)
6389 {
6390 sorry ("signature inheritance, base type `%s' ignored",
6391 IDENTIFIER_POINTER (yyval.ttype));
6392 yyval.ttype = build_tree_list (access_public_node, type);
6393 }
6394 else if (type && IS_SIGNATURE (type))
6395 {
6396 error ("signature name not allowed as base class");
6397 yyval.ttype = NULL_TREE;
6398 }
6399 else
6400 yyval.ttype = build_tree_list (access_default_node, type);
6401 ;
6402 break;}
6403 case 486:
6404 #line 2528 "parse.y"
6405 {
6406 tree type = TREE_TYPE (yyvsp[0].ttype);
6407 if (current_aggr == signature_type_node)
6408 error ("access and source specifiers not allowed in signature");
6409 if (! IS_AGGR_TYPE (type))
6410 yyval.ttype = NULL_TREE;
6411 else if (current_aggr == signature_type_node
6412 && (! type) && (! IS_SIGNATURE (type)))
6413 {
6414 error ("class name not allowed as base signature");
6415 yyval.ttype = NULL_TREE;
6416 }
6417 else if (current_aggr == signature_type_node)
6418 {
6419 sorry ("signature inheritance, base type `%s' ignored",
6420 IDENTIFIER_POINTER (yyval.ttype));
6421 yyval.ttype = build_tree_list (access_public_node, type);
6422 }
6423 else if (type && IS_SIGNATURE (type))
6424 {
6425 error ("signature name not allowed as base class");
6426 yyval.ttype = NULL_TREE;
6427 }
6428 else
6429 yyval.ttype = build_tree_list (yyval.ttype, type);
6430 ;
6431 break;}
6432 case 487:
6433 #line 2558 "parse.y"
6434 { yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
6435 break;}
6436 case 489:
6437 #line 2561 "parse.y"
6438 {
6439 if (current_aggr == signature_type_node)
6440 {
6441 if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
6442 {
6443 sorry ("`sigof' as base signature specifier");
6444 yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6445 }
6446 else
6447 {
6448 error ("`sigof' applied to non-aggregate expression");
6449 yyval.ttype = error_mark_node;
6450 }
6451 }
6452 else
6453 {
6454 error ("`sigof' in struct or class declaration");
6455 yyval.ttype = error_mark_node;
6456 }
6457 ;
6458 break;}
6459 case 490:
6460 #line 2582 "parse.y"
6461 {
6462 if (current_aggr == signature_type_node)
6463 {
6464 if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
6465 {
6466 sorry ("`sigof' as base signature specifier");
6467 yyval.ttype = groktypename (yyvsp[-1].ftype.t);
6468 }
6469 else
6470 {
6471 error ("`sigof' applied to non-aggregate expression");
6472 yyval.ttype = error_mark_node;
6473 }
6474 }
6475 else
6476 {
6477 error ("`sigof' in struct or class declaration");
6478 yyval.ttype = error_mark_node;
6479 }
6480 ;
6481 break;}
6482 case 492:
6483 #line 2607 "parse.y"
6484 { if (yyval.ttype != ridpointers[(int)RID_VIRTUAL])
6485 sorry ("non-virtual access");
6486 yyval.ttype = access_default_virtual_node; ;
6487 break;}
6488 case 493:
6489 #line 2611 "parse.y"
6490 { int err = 0;
6491 if (yyvsp[-1].ttype == access_protected_node)
6492 {
6493 warning ("`protected' access not implemented");
6494 yyvsp[-1].ttype = access_public_node;
6495 err++;
6496 }
6497 else if (yyvsp[-1].ttype == access_public_node)
6498 {
6499 if (yyvsp[-2].ttype == access_private_node)
6500 {
6501 mixed:
6502 error ("base class cannot be public and private");
6503 }
6504 else if (yyvsp[-2].ttype == access_default_virtual_node)
6505 yyval.ttype = access_public_virtual_node;
6506 }
6507 else /* $2 == access_private_node */
6508 {
6509 if (yyvsp[-2].ttype == access_public_node)
6510 goto mixed;
6511 else if (yyvsp[-2].ttype == access_default_virtual_node)
6512 yyval.ttype = access_private_virtual_node;
6513 }
6514 ;
6515 break;}
6516 case 494:
6517 #line 2637 "parse.y"
6518 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6519 sorry ("non-virtual access");
6520 if (yyval.ttype == access_public_node)
6521 yyval.ttype = access_public_virtual_node;
6522 else if (yyval.ttype == access_private_node)
6523 yyval.ttype = access_private_virtual_node; ;
6524 break;}
6525 case 495:
6526 #line 2647 "parse.y"
6527 { tree t = yyvsp[-1].ttype;
6528 push_obstacks_nochange ();
6529 end_temporary_allocation ();
6530
6531 if (t == error_mark_node
6532 || ! IS_AGGR_TYPE (t))
6533 {
6534 t = yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
6535 pushtag (make_anon_name (), t, 0);
6536 }
6537 if (TYPE_SIZE (t))
6538 duplicate_tag_error (t);
6539 if (TYPE_SIZE (t) || TYPE_BEING_DEFINED (t))
6540 {
6541 t = make_lang_type (TREE_CODE (t));
6542 pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t, 0);
6543 yyvsp[-1].ttype = t;
6544 }
6545 if (processing_template_decl && TYPE_CONTEXT (t)
6546 && ! current_class_type)
6547 push_template_decl (TYPE_STUB_DECL (t));
6548 pushclass (t, 0);
6549 TYPE_BEING_DEFINED (t) = 1;
6550 if (IS_AGGR_TYPE (t) && CLASSTYPE_USE_TEMPLATE (t))
6551 {
6552 if (CLASSTYPE_IMPLICIT_INSTANTIATION (t)
6553 && TYPE_SIZE (t) == NULL_TREE)
6554 {
6555 SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (t);
6556 if (processing_template_decl)
6557 push_template_decl (TYPE_MAIN_DECL (t));
6558 }
6559 else if (CLASSTYPE_TEMPLATE_INSTANTIATION (t))
6560 cp_error ("specialization after instantiation of `%T'", t);
6561 }
6562 /* Reset the interface data, at the earliest possible
6563 moment, as it might have been set via a class foo;
6564 before. */
6565 /* Don't change signatures. */
6566 if (! IS_SIGNATURE (t))
6567 {
6568 extern tree pending_vtables;
6569 int needs_writing;
6570 tree name = TYPE_IDENTIFIER (t);
6571
6572 if (! ANON_AGGRNAME_P (name))
6573 {
6574 CLASSTYPE_INTERFACE_ONLY (t) = interface_only;
6575 SET_CLASSTYPE_INTERFACE_UNKNOWN_X
6576 (t, interface_unknown);
6577 }
6578
6579 /* Record how to set the access of this class's
6580 virtual functions. If write_virtuals == 2 or 3, then
6581 inline virtuals are ``extern inline''. */
6582 switch (write_virtuals)
6583 {
6584 case 0:
6585 case 1:
6586 needs_writing = 1;
6587 break;
6588 case 2:
6589 needs_writing = !! value_member (name, pending_vtables);
6590 break;
6591 case 3:
6592 needs_writing = ! CLASSTYPE_INTERFACE_ONLY (t)
6593 && CLASSTYPE_INTERFACE_KNOWN (t);
6594 break;
6595 default:
6596 needs_writing = 0;
6597 }
6598 CLASSTYPE_VTABLE_NEEDS_WRITING (t) = needs_writing;
6599 }
6600 #if 0
6601 t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
6602 if (t && IDENTIFIER_TEMPLATE (t))
6603 overload_template_name (t, 1);
6604 #endif
6605 reset_specialization();
6606
6607 /* In case this is a local class within a template
6608 function, we save the current tree structure so
6609 that we can get it back later. */
6610 begin_tree ();
6611 ;
6612 break;}
6613 case 496:
6614 #line 2736 "parse.y"
6615 {
6616 yyval.ttype = build_self_reference ();
6617 ;
6618 break;}
6619 case 497:
6620 #line 2743 "parse.y"
6621 { if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ;
6622 break;}
6623 case 498:
6624 #line 2745 "parse.y"
6625 {
6626 if (current_aggr == signature_type_node)
6627 yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype);
6628 else
6629 yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype);
6630 if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype);
6631 ;
6632 break;}
6633 case 499:
6634 #line 2753 "parse.y"
6635 {
6636 tree visspec = yyvsp[-2].ttype;
6637
6638 if (current_aggr == signature_type_node)
6639 {
6640 error ("access specifier not allowed in signature");
6641 visspec = access_public_node;
6642 }
6643 yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
6644 ;
6645 break;}
6646 case 500:
6647 #line 2764 "parse.y"
6648 {
6649 if (current_aggr == signature_type_node)
6650 error ("access specifier not allowed in signature");
6651 ;
6652 break;}
6653 case 501:
6654 #line 2774 "parse.y"
6655 { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE;
6656 ;
6657 break;}
6658 case 502:
6659 #line 2777 "parse.y"
6660 { /* In pushdecl, we created a reverse list of names
6661 in this binding level. Make sure that the chain
6662 of what we're trying to add isn't the item itself
6663 (which can happen with what pushdecl's doing). */
6664 if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
6665 {
6666 if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
6667 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6668 else
6669 yyval.ttype = yyvsp[0].ttype;
6670 }
6671 ;
6672 break;}
6673 case 503:
6674 #line 2793 "parse.y"
6675 { ;
6676 break;}
6677 case 504:
6678 #line 2795 "parse.y"
6679 { error ("missing ';' before right brace");
6680 yyungetc ('}', 0); ;
6681 break;}
6682 case 505:
6683 #line 2800 "parse.y"
6684 { yyval.ttype = finish_method (yyval.ttype); ;
6685 break;}
6686 case 506:
6687 #line 2802 "parse.y"
6688 { yyval.ttype = finish_method (yyval.ttype); ;
6689 break;}
6690 case 507:
6691 #line 2804 "parse.y"
6692 { yyval.ttype = finish_method (yyval.ttype); ;
6693 break;}
6694 case 508:
6695 #line 2806 "parse.y"
6696 { yyval.ttype = finish_method (yyval.ttype); ;
6697 break;}
6698 case 509:
6699 #line 2808 "parse.y"
6700 { yyval.ttype = NULL_TREE; ;
6701 break;}
6702 case 510:
6703 #line 2810 "parse.y"
6704 { yyval.ttype = yyvsp[0].ttype;
6705 pedantic = yyvsp[-1].itype; ;
6706 break;}
6707 case 511:
6708 #line 2819 "parse.y"
6709 { yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6710 break;}
6711 case 512:
6712 #line 2821 "parse.y"
6713 { yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6714 break;}
6715 case 513:
6716 #line 2823 "parse.y"
6717 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6718 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6719 break;}
6720 case 514:
6721 #line 2826 "parse.y"
6722 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6723 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6724 break;}
6725 case 515:
6726 #line 2829 "parse.y"
6727 { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
6728 break;}
6729 case 516:
6730 #line 2831 "parse.y"
6731 { yyval.ttype = NULL_TREE; ;
6732 break;}
6733 case 517:
6734 #line 2842 "parse.y"
6735 { tree specs, attrs;
6736 split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
6737 yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
6738 build_tree_list (yyvsp[-1].ttype, attrs)); ;
6739 break;}
6740 case 518:
6741 #line 2847 "parse.y"
6742 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6743 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6744 break;}
6745 case 519:
6746 #line 2850 "parse.y"
6747 { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
6748 break;}
6749 case 520:
6750 #line 2852 "parse.y"
6751 { yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6752 break;}
6753 case 521:
6754 #line 2858 "parse.y"
6755 { yyval.ttype = NULL_TREE; ;
6756 break;}
6757 case 523:
6758 #line 2861 "parse.y"
6759 {
6760 /* In this context, void_type_node encodes
6761 friends. They have been recorded elsewhere. */
6762 if (yyval.ttype == void_type_node)
6763 yyval.ttype = yyvsp[0].ttype;
6764 else
6765 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6766 ;
6767 break;}
6768 case 524:
6769 #line 2873 "parse.y"
6770 { yyval.ttype = NULL_TREE; ;
6771 break;}
6772 case 526:
6773 #line 2876 "parse.y"
6774 {
6775 /* In this context, void_type_node encodes
6776 friends. They have been recorded elsewhere. */
6777 if (yyval.ttype == void_type_node)
6778 yyval.ttype = yyvsp[0].ttype;
6779 else
6780 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6781 ;
6782 break;}
6783 case 531:
6784 #line 2898 "parse.y"
6785 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6786 &prefix_attributes);
6787 yyvsp[-4].ttype = current_declspecs;
6788 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6789 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6790 break;}
6791 case 532:
6792 #line 2904 "parse.y"
6793 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6794 &prefix_attributes);
6795 yyvsp[-4].ttype = current_declspecs;
6796 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6797 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6798 break;}
6799 case 533:
6800 #line 2913 "parse.y"
6801 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6802 &prefix_attributes);
6803 yyvsp[-4].ttype = current_declspecs;
6804 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6805 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6806 break;}
6807 case 534:
6808 #line 2919 "parse.y"
6809 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6810 &prefix_attributes);
6811 yyvsp[-4].ttype = current_declspecs;
6812 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6813 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6814 break;}
6815 case 535:
6816 #line 2925 "parse.y"
6817 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6818 &prefix_attributes);
6819 yyvsp[-4].ttype = current_declspecs;
6820 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6821 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6822 break;}
6823 case 536:
6824 #line 2931 "parse.y"
6825 { split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
6826 &prefix_attributes);
6827 yyvsp[-3].ttype = current_declspecs;
6828 yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6829 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6830 break;}
6831 case 537:
6832 #line 2940 "parse.y"
6833 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6834 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6835 break;}
6836 case 538:
6837 #line 2943 "parse.y"
6838 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6839 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6840 break;}
6841 case 539:
6842 #line 2949 "parse.y"
6843 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6844 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6845 break;}
6846 case 540:
6847 #line 2952 "parse.y"
6848 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6849 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6850 break;}
6851 case 541:
6852 #line 2955 "parse.y"
6853 { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6854 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6855 break;}
6856 case 543:
6857 #line 2966 "parse.y"
6858 { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6859 break;}
6860 case 544:
6861 #line 2971 "parse.y"
6862 { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
6863 break;}
6864 case 545:
6865 #line 2973 "parse.y"
6866 { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
6867 break;}
6868 case 546:
6869 #line 2979 "parse.y"
6870 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
6871 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6872 break;}
6873 case 547:
6874 #line 2982 "parse.y"
6875 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
6876 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6877 break;}
6878 case 548:
6879 #line 2987 "parse.y"
6880 {
6881 if (pedantic)
6882 pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
6883 yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
6884 yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
6885 yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
6886 ;
6887 break;}
6888 case 549:
6889 #line 2998 "parse.y"
6890 { yyval.ttype = NULL_TREE; ;
6891 break;}
6892 case 550:
6893 #line 3000 "parse.y"
6894 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6895 break;}
6896 case 551:
6897 #line 3005 "parse.y"
6898 { yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype);
6899 yyval.ftype.new_type_flag = 0; ;
6900 break;}
6901 case 552:
6902 #line 3008 "parse.y"
6903 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t);
6904 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6905 break;}
6906 case 553:
6907 #line 3017 "parse.y"
6908 { yyval.itype = suspend_momentary (); ;
6909 break;}
6910 case 554:
6911 #line 3022 "parse.y"
6912 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
6913 break;}
6914 case 555:
6915 #line 3028 "parse.y"
6916 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6917 break;}
6918 case 556:
6919 #line 3030 "parse.y"
6920 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6921 break;}
6922 case 557:
6923 #line 3032 "parse.y"
6924 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
6925 break;}
6926 case 558:
6927 #line 3034 "parse.y"
6928 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
6929 break;}
6930 case 559:
6931 #line 3041 "parse.y"
6932 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6933 break;}
6934 case 560:
6935 #line 3043 "parse.y"
6936 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6937 break;}
6938 case 561:
6939 #line 3045 "parse.y"
6940 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6941 break;}
6942 case 562:
6943 #line 3047 "parse.y"
6944 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6945 break;}
6946 case 563:
6947 #line 3049 "parse.y"
6948 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6949 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6950 ;
6951 break;}
6952 case 565:
6953 #line 3057 "parse.y"
6954 {
6955 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6956 {
6957 arg_looking_for_template = processing_template_arg;
6958 yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
6959 arg_looking_for_template = 0;
6960
6961 if (current_class_type
6962 && TYPE_BEING_DEFINED (current_class_type)
6963 && ! IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype))
6964 {
6965 /* Remember that this name has been used in the class
6966 definition, as per [class.scope0] */
6967 pushdecl_class_level (yyval.ttype);
6968 }
6969 }
6970 else
6971 yyval.ttype = yyvsp[0].ttype;
6972 ;
6973 break;}
6974 case 566:
6975 #line 3077 "parse.y"
6976 {
6977 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6978 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
6979 else
6980 yyval.ttype = yyvsp[0].ttype;
6981 got_scope = NULL_TREE;
6982 ;
6983 break;}
6984 case 569:
6985 #line 3090 "parse.y"
6986 { yyval.ttype = yyvsp[0].ttype; ;
6987 break;}
6988 case 570:
6989 #line 3095 "parse.y"
6990 { yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
6991 break;}
6992 case 571:
6993 #line 3100 "parse.y"
6994 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6995 break;}
6996 case 572:
6997 #line 3102 "parse.y"
6998 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6999 break;}
7000 case 573:
7001 #line 3104 "parse.y"
7002 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7003 break;}
7004 case 574:
7005 #line 3106 "parse.y"
7006 { yyval.ttype = yyvsp[-1].ttype; ;
7007 break;}
7008 case 575:
7009 #line 3108 "parse.y"
7010 { push_nested_class (yyvsp[-1].ttype, 3);
7011 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
7012 TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
7013 break;}
7014 case 577:
7015 #line 3119 "parse.y"
7016 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7017 break;}
7018 case 578:
7019 #line 3121 "parse.y"
7020 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7021 break;}
7022 case 579:
7023 #line 3123 "parse.y"
7024 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7025 break;}
7026 case 580:
7027 #line 3125 "parse.y"
7028 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7029 break;}
7030 case 581:
7031 #line 3127 "parse.y"
7032 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7033 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7034 ;
7035 break;}
7036 case 583:
7037 #line 3135 "parse.y"
7038 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7039 break;}
7040 case 584:
7041 #line 3137 "parse.y"
7042 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7043 break;}
7044 case 585:
7045 #line 3139 "parse.y"
7046 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7047 break;}
7048 case 586:
7049 #line 3141 "parse.y"
7050 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7051 break;}
7052 case 587:
7053 #line 3143 "parse.y"
7054 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7055 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7056 ;
7057 break;}
7058 case 589:
7059 #line 3151 "parse.y"
7060 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7061 break;}
7062 case 590:
7063 #line 3153 "parse.y"
7064 { yyval.ttype = yyvsp[-1].ttype; ;
7065 break;}
7066 case 591:
7067 #line 3155 "parse.y"
7068 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7069 break;}
7070 case 592:
7071 #line 3157 "parse.y"
7072 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7073 break;}
7074 case 593:
7075 #line 3159 "parse.y"
7076 { if (OP0 (yyval.ttype) != current_class_type)
7077 {
7078 push_nested_class (OP0 (yyval.ttype), 3);
7079 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
7080 }
7081 ;
7082 break;}
7083 case 594:
7084 #line 3166 "parse.y"
7085 { got_scope = NULL_TREE;
7086 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
7087 if (yyvsp[-1].ttype != current_class_type)
7088 {
7089 push_nested_class (yyvsp[-1].ttype, 3);
7090 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
7091 }
7092 ;
7093 break;}
7094 case 595:
7095 #line 3178 "parse.y"
7096 { got_scope = NULL_TREE;
7097 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7098 break;}
7099 case 596:
7100 #line 3181 "parse.y"
7101 { got_scope = NULL_TREE;
7102 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7103 break;}
7104 case 597:
7105 #line 3187 "parse.y"
7106 { got_scope = NULL_TREE;
7107 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7108 break;}
7109 case 598:
7110 #line 3190 "parse.y"
7111 { got_scope = NULL_TREE;
7112 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7113 break;}
7114 case 600:
7115 #line 3197 "parse.y"
7116 { yyval.ttype = yyvsp[0].ttype; ;
7117 break;}
7118 case 601:
7119 #line 3202 "parse.y"
7120 { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7121 break;}
7122 case 602:
7123 #line 3204 "parse.y"
7124 { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7125 break;}
7126 case 603:
7127 #line 3206 "parse.y"
7128 { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7129 break;}
7130 case 608:
7131 #line 3218 "parse.y"
7132 { yyval.ttype = yyvsp[0].ttype; ;
7133 break;}
7134 case 609:
7135 #line 3225 "parse.y"
7136 {
7137 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7138 {
7139 yyval.ttype = lastiddecl;
7140 /* Remember that this name has been used in the class
7141 definition, as per [class.scope0] */
7142 if (current_class_type
7143 && TYPE_BEING_DEFINED (current_class_type)
7144 && ! IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype))
7145 pushdecl_class_level (yyval.ttype);
7146 }
7147 got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7148 ;
7149 break;}
7150 case 610:
7151 #line 3239 "parse.y"
7152 {
7153 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7154 yyval.ttype = lastiddecl;
7155 got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7156 ;
7157 break;}
7158 case 611:
7159 #line 3245 "parse.y"
7160 {
7161 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7162 yyval.ttype = lastiddecl;
7163 got_scope = yyval.ttype;
7164 ;
7165 break;}
7166 case 612:
7167 #line 3251 "parse.y"
7168 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
7169 break;}
7170 case 614:
7171 #line 3267 "parse.y"
7172 { yyval.ttype = yyvsp[0].ttype; ;
7173 break;}
7174 case 615:
7175 #line 3272 "parse.y"
7176 {
7177 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7178 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7179 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7180 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7181 else
7182 {
7183 yyval.ttype = yyvsp[0].ttype;
7184 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7185 yyval.ttype = TREE_TYPE (yyval.ttype);
7186 }
7187 ;
7188 break;}
7189 case 616:
7190 #line 3288 "parse.y"
7191 {
7192 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7193 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7194 ;
7195 break;}
7196 case 617:
7197 #line 3293 "parse.y"
7198 {
7199 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7200 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7201 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7202 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7203 else
7204 {
7205 yyval.ttype = yyvsp[0].ttype;
7206 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7207 yyval.ttype = TREE_TYPE (yyval.ttype);
7208 }
7209 ;
7210 break;}
7211 case 618:
7212 #line 3309 "parse.y"
7213 {
7214 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7215 yyval.ttype = lastiddecl;
7216 got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
7217 ;
7218 break;}
7219 case 619:
7220 #line 3315 "parse.y"
7221 {
7222 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7223 yyval.ttype = lastiddecl;
7224 got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
7225 ;
7226 break;}
7227 case 620:
7228 #line 3321 "parse.y"
7229 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
7230 break;}
7231 case 623:
7232 #line 3325 "parse.y"
7233 {
7234 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7235 yyval.ttype = lastiddecl;
7236 got_scope = yyval.ttype;
7237 ;
7238 break;}
7239 case 624:
7240 #line 3334 "parse.y"
7241 {
7242 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7243 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
7244 else
7245 yyval.ttype = yyvsp[0].ttype;
7246 got_scope = NULL_TREE;
7247 ;
7248 break;}
7249 case 626:
7250 #line 3343 "parse.y"
7251 { yyval.ttype = yyvsp[0].ttype; ;
7252 break;}
7253 case 627:
7254 #line 3348 "parse.y"
7255 { got_scope = NULL_TREE; ;
7256 break;}
7257 case 628:
7258 #line 3350 "parse.y"
7259 { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
7260 break;}
7261 case 629:
7262 #line 3357 "parse.y"
7263 { got_scope = void_type_node; ;
7264 break;}
7265 case 630:
7266 #line 3363 "parse.y"
7267 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7268 break;}
7269 case 631:
7270 #line 3365 "parse.y"
7271 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
7272 break;}
7273 case 632:
7274 #line 3367 "parse.y"
7275 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7276 break;}
7277 case 633:
7278 #line 3369 "parse.y"
7279 { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
7280 break;}
7281 case 634:
7282 #line 3371 "parse.y"
7283 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7284 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7285 ;
7286 break;}
7287 case 635:
7288 #line 3375 "parse.y"
7289 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7290 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7291 ;
7292 break;}
7293 case 637:
7294 #line 3384 "parse.y"
7295 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7296 break;}
7297 case 638:
7298 #line 3386 "parse.y"
7299 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7300 break;}
7301 case 639:
7302 #line 3392 "parse.y"
7303 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7304 break;}
7305 case 640:
7306 #line 3394 "parse.y"
7307 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7308 break;}
7309 case 641:
7310 #line 3396 "parse.y"
7311 { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7312 break;}
7313 case 642:
7314 #line 3398 "parse.y"
7315 { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
7316 break;}
7317 case 643:
7318 #line 3400 "parse.y"
7319 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7320 break;}
7321 case 644:
7322 #line 3402 "parse.y"
7323 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7324 break;}
7325 case 645:
7326 #line 3404 "parse.y"
7327 { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7328 break;}
7329 case 646:
7330 #line 3406 "parse.y"
7331 { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
7332 break;}
7333 case 647:
7334 #line 3408 "parse.y"
7335 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7336 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7337 ;
7338 break;}
7339 case 648:
7340 #line 3412 "parse.y"
7341 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7342 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7343 ;
7344 break;}
7345 case 650:
7346 #line 3421 "parse.y"
7347 { yyval.ttype = yyvsp[-1].ttype; ;
7348 break;}
7349 case 652:
7350 #line 3425 "parse.y"
7351 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7352 break;}
7353 case 653:
7354 #line 3427 "parse.y"
7355 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
7356 break;}
7357 case 654:
7358 #line 3429 "parse.y"
7359 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7360 break;}
7361 case 655:
7362 #line 3431 "parse.y"
7363 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7364 break;}
7365 case 656:
7366 #line 3433 "parse.y"
7367 { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7368 break;}
7369 case 657:
7370 #line 3435 "parse.y"
7371 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7372 break;}
7373 case 658:
7374 #line 3437 "parse.y"
7375 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7376 break;}
7377 case 659:
7378 #line 3439 "parse.y"
7379 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7380 break;}
7381 case 660:
7382 #line 3441 "parse.y"
7383 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
7384 break;}
7385 case 666:
7386 #line 3465 "parse.y"
7387 { do_pushlevel (); ;
7388 break;}
7389 case 667:
7390 #line 3470 "parse.y"
7391 { yyval.ttype = do_poplevel (); ;
7392 break;}
7393 case 669:
7394 #line 3478 "parse.y"
7395 { if (pedantic)
7396 pedwarn ("ANSI C++ forbids label declarations"); ;
7397 break;}
7398 case 672:
7399 #line 3489 "parse.y"
7400 { tree link;
7401 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
7402 {
7403 tree label = shadow_label (TREE_VALUE (link));
7404 C_DECLARED_LABEL_FLAG (label) = 1;
7405 declare_nonlocal_label (label);
7406 }
7407 ;
7408 break;}
7409 case 673:
7410 #line 3503 "parse.y"
7411 {;
7412 break;}
7413 case 675:
7414 #line 3509 "parse.y"
7415 {
7416 if (processing_template_decl)
7417 {
7418 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
7419 add_tree (yyval.ttype);
7420 }
7421 ;
7422 break;}
7423 case 676:
7424 #line 3517 "parse.y"
7425 {
7426 if (processing_template_decl)
7427 {
7428 TREE_OPERAND (yyvsp[-3].ttype, 0) = TREE_CHAIN (yyvsp[-3].ttype);
7429 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7430 last_tree = yyvsp[-3].ttype;
7431 }
7432 yyval.ttype = yyvsp[0].ttype;
7433 ;
7434 break;}
7435 case 677:
7436 #line 3530 "parse.y"
7437 {
7438 if (processing_template_decl)
7439 {
7440 yyval.ttype = build_min_nt (IF_STMT, NULL_TREE, NULL_TREE,
7441 NULL_TREE);
7442 add_tree (yyval.ttype);
7443 }
7444 cond_stmt_keyword = "if";
7445 ;
7446 break;}
7447 case 678:
7448 #line 3540 "parse.y"
7449 {
7450 if (processing_template_decl)
7451 {
7452 if (last_tree != yyvsp[-2].ttype)
7453 {
7454 TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
7455 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7456 last_tree = yyvsp[-2].ttype;
7457 }
7458 else
7459 TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
7460 }
7461 else
7462 {
7463 emit_line_note (input_filename, lineno);
7464 expand_start_cond (yyvsp[0].ttype, 0);
7465 }
7466 ;
7467 break;}
7468 case 679:
7469 #line 3559 "parse.y"
7470 {
7471 if (processing_template_decl)
7472 {
7473 TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
7474 TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
7475 yyval.ttype = last_tree = yyvsp[-4].ttype;
7476 }
7477 ;
7478 break;}
7479 case 680:
7480 #line 3571 "parse.y"
7481 { finish_stmt (); ;
7482 break;}
7483 case 681:
7484 #line 3573 "parse.y"
7485 {
7486 if (processing_template_decl)
7487 {
7488 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
7489 add_tree (yyval.ttype);
7490 }
7491 ;
7492 break;}
7493 case 682:
7494 #line 3581 "parse.y"
7495 {
7496 if (processing_template_decl)
7497 {
7498 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7499 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7500 last_tree = yyvsp[-2].ttype;
7501 }
7502 yyval.ttype = yyvsp[0].ttype;
7503 ;
7504 break;}
7505 case 683:
7506 #line 3594 "parse.y"
7507 { finish_stmt (); ;
7508 break;}
7509 case 685:
7510 #line 3600 "parse.y"
7511 { finish_stmt (); ;
7512 break;}
7513 case 686:
7514 #line 3602 "parse.y"
7515 {
7516 tree expr = yyvsp[-1].ttype;
7517 if (! processing_template_decl)
7518 {
7519 emit_line_note (input_filename, lineno);
7520 /* Do default conversion if safe and possibly important,
7521 in case within ({...}). */
7522 if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
7523 && lvalue_p (expr))
7524 || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
7525 expr = default_conversion (expr);
7526 }
7527 cplus_expand_expr_stmt (expr);
7528 clear_momentary ();
7529 finish_stmt (); ;
7530 break;}
7531 case 687:
7532 #line 3618 "parse.y"
7533 { if (! processing_template_decl) expand_start_else (); ;
7534 break;}
7535 case 688:
7536 #line 3620 "parse.y"
7537 {
7538 if (processing_template_decl)
7539 {
7540 TREE_OPERAND (yyvsp[-3].ttype, 2) = TREE_CHAIN (yyvsp[-3].ttype);
7541 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7542 last_tree = yyvsp[-3].ttype;
7543 }
7544 else
7545 expand_end_cond ();
7546 ;
7547 break;}
7548 case 689:
7549 #line 3631 "parse.y"
7550 { finish_stmt (); ;
7551 break;}
7552 case 690:
7553 #line 3633 "parse.y"
7554 { if (! processing_template_decl) expand_end_cond ();
7555 do_poplevel ();
7556 finish_stmt (); ;
7557 break;}
7558 case 691:
7559 #line 3637 "parse.y"
7560 {
7561 if (processing_template_decl)
7562 {
7563 yyval.ttype = build_min_nt (WHILE_STMT, NULL_TREE, NULL_TREE);
7564 add_tree (yyval.ttype);
7565 }
7566 else
7567 {
7568 emit_nop ();
7569 emit_line_note (input_filename, lineno);
7570 expand_start_loop (1);
7571 }
7572 cond_stmt_keyword = "while";
7573 ;
7574 break;}
7575 case 692:
7576 #line 3652 "parse.y"
7577 {
7578 if (processing_template_decl)
7579 {
7580 if (last_tree != yyvsp[-2].ttype)
7581 {
7582 TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
7583 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7584 last_tree = yyvsp[-2].ttype;
7585 }
7586 else
7587 TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
7588 }
7589 else
7590 {
7591 emit_line_note (input_filename, lineno);
7592 expand_exit_loop_if_false (0, yyvsp[0].ttype);
7593 }
7594 ;
7595 break;}
7596 case 693:
7597 #line 3671 "parse.y"
7598 {
7599 if (processing_template_decl)
7600 {
7601 TREE_OPERAND (yyvsp[-5].ttype, 1) = TREE_CHAIN (yyvsp[-5].ttype);
7602 TREE_CHAIN (yyvsp[-5].ttype) = NULL_TREE;
7603 last_tree = yyvsp[-5].ttype;
7604 }
7605 else
7606 expand_end_loop ();
7607 finish_stmt ();
7608 ;
7609 break;}
7610 case 694:
7611 #line 3683 "parse.y"
7612 {
7613 if (processing_template_decl)
7614 {
7615 yyval.ttype = build_min_nt (DO_STMT, NULL_TREE, NULL_TREE);
7616 add_tree (yyval.ttype);
7617 }
7618 else
7619 {
7620 emit_nop ();
7621 emit_line_note (input_filename, lineno);
7622 expand_start_loop_continue_elsewhere (1);
7623 }
7624 ;
7625 break;}
7626 case 695:
7627 #line 3697 "parse.y"
7628 {
7629 if (processing_template_decl)
7630 {
7631 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7632 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7633 last_tree = yyvsp[-2].ttype;
7634 }
7635 else
7636 {
7637 expand_loop_continue_here ();
7638 cond_stmt_keyword = "do";
7639 }
7640 ;
7641 break;}
7642 case 696:
7643 #line 3711 "parse.y"
7644 {
7645 if (processing_template_decl)
7646 TREE_OPERAND (yyvsp[-5].ttype, 1) = yyvsp[-1].ttype;
7647 else
7648 {
7649 emit_line_note (input_filename, lineno);
7650 expand_exit_loop_if_false (0, yyvsp[-1].ttype);
7651 expand_end_loop ();
7652 }
7653 clear_momentary ();
7654 finish_stmt ();
7655 ;
7656 break;}
7657 case 697:
7658 #line 3724 "parse.y"
7659 { if (processing_template_decl)
7660 {
7661 yyval.ttype = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE,
7662 NULL_TREE, NULL_TREE);
7663 add_tree (yyval.ttype);
7664 }
7665 else
7666 emit_line_note (input_filename, lineno);
7667 if (flag_new_for_scope > 0)
7668 {
7669 /* Conditionalize .pushlevel */
7670 pushlevel (0);
7671 note_level_for_for ();
7672 clear_last_expr ();
7673 push_momentary ();
7674 expand_start_bindings (0);
7675 }
7676 ;
7677 break;}
7678 case 698:
7679 #line 3743 "parse.y"
7680 {
7681 if (processing_template_decl)
7682 {
7683 if (last_tree != yyvsp[-2].ttype)
7684 {
7685 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7686 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7687 last_tree = yyvsp[-2].ttype;
7688 }
7689 }
7690 else
7691 {
7692 emit_nop ();
7693 emit_line_note (input_filename, lineno);
7694 expand_start_loop_continue_elsewhere (1);
7695 }
7696 ;
7697 break;}
7698 case 699:
7699 #line 3761 "parse.y"
7700 {
7701 if (processing_template_decl)
7702 {
7703 if (last_tree != yyvsp[-6].ttype)
7704 {
7705 TREE_OPERAND (yyvsp[-6].ttype, 1) = last_tree;
7706 TREE_CHAIN (yyvsp[-6].ttype) = NULL_TREE;
7707 last_tree = yyvsp[-6].ttype;
7708 }
7709 else
7710 TREE_OPERAND (yyvsp[-6].ttype, 1) = yyvsp[-1].ttype;
7711 }
7712 else
7713 {
7714 emit_line_note (input_filename, lineno);
7715 if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, yyvsp[-1].ttype);
7716 }
7717 ;
7718 break;}
7719 case 700:
7720 #line 3782 "parse.y"
7721 {
7722 if (processing_template_decl)
7723 TREE_OPERAND (yyvsp[-9].ttype, 2) = yyvsp[-1].ttype;
7724 push_momentary ();
7725 ;
7726 break;}
7727 case 701:
7728 #line 3788 "parse.y"
7729 {
7730 if (processing_template_decl)
7731 {
7732 TREE_OPERAND (yyvsp[-12].ttype, 3) = TREE_CHAIN (yyvsp[-12].ttype);
7733 TREE_CHAIN (yyvsp[-12].ttype) = NULL_TREE;
7734 last_tree = yyvsp[-12].ttype;
7735 }
7736 else
7737 {
7738 emit_line_note (input_filename, lineno);
7739 expand_loop_continue_here ();
7740 if (yyvsp[-4].ttype) cplus_expand_expr_stmt (yyvsp[-4].ttype);
7741 expand_end_loop ();
7742 }
7743 pop_momentary ();
7744 if (flag_new_for_scope > 0)
7745 {
7746 do_poplevel ();
7747 }
7748 finish_stmt (); ;
7749 break;}
7750 case 702:
7751 #line 3809 "parse.y"
7752 {
7753 if (processing_template_decl)
7754 {
7755 yyval.ttype = build_min_nt (SWITCH_STMT, yyvsp[-1].ttype, NULL_TREE);
7756 add_tree (yyval.ttype);
7757 }
7758 else
7759 {
7760 emit_line_note (input_filename, lineno);
7761 c_expand_start_case (yyvsp[-1].ttype);
7762 }
7763 push_switch ();
7764 /* Don't let the tree nodes for $4 be discarded by
7765 clear_momentary during the parsing of the next stmt. */
7766 push_momentary ();
7767 ;
7768 break;}
7769 case 703:
7770 #line 3826 "parse.y"
7771 {
7772 if (processing_template_decl)
7773 {
7774 TREE_OPERAND (yyvsp[-1].ttype, 1) = TREE_CHAIN (yyvsp[-1].ttype);
7775 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
7776 last_tree = yyvsp[-1].ttype;
7777 }
7778 else
7779 expand_end_case (yyvsp[-3].ttype);
7780 pop_momentary ();
7781 pop_switch ();
7782 ;
7783 break;}
7784 case 704:
7785 #line 3839 "parse.y"
7786 { finish_stmt (); ;
7787 break;}
7788 case 705:
7789 #line 3841 "parse.y"
7790 { do_case (yyvsp[-1].ttype, NULL_TREE); ;
7791 break;}
7792 case 707:
7793 #line 3844 "parse.y"
7794 { do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7795 break;}
7796 case 709:
7797 #line 3847 "parse.y"
7798 { do_case (NULL_TREE, NULL_TREE); ;
7799 break;}
7800 case 711:
7801 #line 3850 "parse.y"
7802 { emit_line_note (input_filename, lineno);
7803 if (processing_template_decl)
7804 add_tree (build_min_nt (BREAK_STMT));
7805 else if ( ! expand_exit_something ())
7806 error ("break statement not within loop or switch"); ;
7807 break;}
7808 case 712:
7809 #line 3856 "parse.y"
7810 { emit_line_note (input_filename, lineno);
7811 if (processing_template_decl)
7812 add_tree (build_min_nt (CONTINUE_STMT));
7813 else if (! expand_continue_loop (0))
7814 error ("continue statement not within a loop"); ;
7815 break;}
7816 case 713:
7817 #line 3862 "parse.y"
7818 { emit_line_note (input_filename, lineno);
7819 c_expand_return (NULL_TREE); ;
7820 break;}
7821 case 714:
7822 #line 3865 "parse.y"
7823 { emit_line_note (input_filename, lineno);
7824 c_expand_return (yyvsp[-1].ttype);
7825 finish_stmt ();
7826 ;
7827 break;}
7828 case 715:
7829 #line 3870 "parse.y"
7830 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
7831 emit_line_note (input_filename, lineno);
7832 expand_asm (yyvsp[-2].ttype);
7833 finish_stmt ();
7834 ;
7835 break;}
7836 case 716:
7837 #line 3877 "parse.y"
7838 { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
7839 emit_line_note (input_filename, lineno);
7840 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
7841 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
7842 input_filename, lineno);
7843 finish_stmt ();
7844 ;
7845 break;}
7846 case 717:
7847 #line 3886 "parse.y"
7848 { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
7849 emit_line_note (input_filename, lineno);
7850 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
7851 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
7852 input_filename, lineno);
7853 finish_stmt ();
7854 ;
7855 break;}
7856 case 718:
7857 #line 3896 "parse.y"
7858 { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
7859 emit_line_note (input_filename, lineno);
7860 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
7861 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
7862 input_filename, lineno);
7863 finish_stmt ();
7864 ;
7865 break;}
7866 case 719:
7867 #line 3904 "parse.y"
7868 {
7869 if (processing_template_decl)
7870 add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
7871 else
7872 { emit_line_note (input_filename, lineno);
7873 expand_computed_goto (yyvsp[-1].ttype); }
7874 ;
7875 break;}
7876 case 720:
7877 #line 3912 "parse.y"
7878 {
7879 if (processing_template_decl)
7880 add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
7881 else
7882 {
7883 tree decl;
7884 emit_line_note (input_filename, lineno);
7885 decl = lookup_label (yyvsp[-1].ttype);
7886 TREE_USED (decl) = 1;
7887 expand_goto (decl);
7888 }
7889 ;
7890 break;}
7891 case 721:
7892 #line 3925 "parse.y"
7893 { finish_stmt (); ;
7894 break;}
7895 case 722:
7896 #line 3927 "parse.y"
7897 { error ("label must be followed by statement");
7898 yyungetc ('}', 0);
7899 finish_stmt (); ;
7900 break;}
7901 case 723:
7902 #line 3931 "parse.y"
7903 { finish_stmt (); ;
7904 break;}
7905 case 725:
7906 #line 3937 "parse.y"
7907 {
7908 if (! current_function_parms_stored)
7909 store_parm_decls ();
7910 expand_start_early_try_stmts ();
7911 ;
7912 break;}
7913 case 726:
7914 #line 3943 "parse.y"
7915 { expand_start_all_catch (); ;
7916 break;}
7917 case 727:
7918 #line 3945 "parse.y"
7919 {
7920 int nested = (hack_decl_function_context
7921 (current_function_decl) != NULL_TREE);
7922 expand_end_all_catch ();
7923 finish_function (lineno, (int)yyvsp[-3].itype, nested);
7924 ;
7925 break;}
7926 case 728:
7927 #line 3955 "parse.y"
7928 {
7929 if (processing_template_decl)
7930 {
7931 yyval.ttype = build_min_nt (TRY_BLOCK, NULL_TREE,
7932 NULL_TREE);
7933 add_tree (yyval.ttype);
7934 }
7935 else
7936 {
7937 emit_line_note (input_filename, lineno);
7938 expand_start_try_stmts ();
7939 }
7940 ;
7941 break;}
7942 case 729:
7943 #line 3969 "parse.y"
7944 {
7945 if (processing_template_decl)
7946 {
7947 TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
7948 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
7949 last_tree = yyvsp[-1].ttype;
7950 }
7951 else
7952 expand_start_all_catch ();
7953 ;
7954 break;}
7955 case 730:
7956 #line 3980 "parse.y"
7957 {
7958 if (processing_template_decl)
7959 {
7960 TREE_OPERAND (yyvsp[-3].ttype, 1) = TREE_CHAIN (yyvsp[-3].ttype);
7961 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7962 last_tree = yyvsp[-3].ttype;
7963 }
7964 else
7965 expand_end_all_catch ();
7966 ;
7967 break;}
7968 case 733:
7969 #line 3999 "parse.y"
7970 {
7971 if (processing_template_decl)
7972 {
7973 yyval.ttype = build_min_nt (HANDLER, NULL_TREE,
7974 NULL_TREE);
7975 add_tree (yyval.ttype);
7976 }
7977 ;
7978 break;}
7979 case 734:
7980 #line 4008 "parse.y"
7981 {
7982 if (processing_template_decl)
7983 {
7984 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7985 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7986 last_tree = yyvsp[-2].ttype;
7987 }
7988 ;
7989 break;}
7990 case 735:
7991 #line 4017 "parse.y"
7992 {
7993 if (processing_template_decl)
7994 {
7995 TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
7996 TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
7997 last_tree = yyvsp[-4].ttype;
7998 }
7999 else
8000 expand_end_catch_block ();
8001 ;
8002 break;}
8003 case 739:
8004 #line 4037 "parse.y"
8005 { expand_start_catch_block (NULL_TREE, NULL_TREE); ;
8006 break;}
8007 case 740:
8008 #line 4053 "parse.y"
8009 { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
8010 expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
8011 TREE_VALUE (yyvsp[-1].ftype.t)); ;
8012 break;}
8013 case 741:
8014 #line 4060 "parse.y"
8015 { tree label;
8016 do_label:
8017 label = define_label (input_filename, lineno, yyvsp[-1].ttype);
8018 if (label && ! minimal_parse_mode)
8019 expand_label (label);
8020 ;
8021 break;}
8022 case 742:
8023 #line 4067 "parse.y"
8024 { goto do_label; ;
8025 break;}
8026 case 743:
8027 #line 4069 "parse.y"
8028 { goto do_label; ;
8029 break;}
8030 case 744:
8031 #line 4071 "parse.y"
8032 { goto do_label; ;
8033 break;}
8034 case 745:
8035 #line 4076 "parse.y"
8036 { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
8037 break;}
8038 case 747:
8039 #line 4079 "parse.y"
8040 { if (pedantic)
8041 pedwarn ("ANSI C++ forbids compound statements inside for initializations");
8042 ;
8043 break;}
8044 case 748:
8045 #line 4088 "parse.y"
8046 { emit_line_note (input_filename, lineno);
8047 yyval.ttype = NULL_TREE; ;
8048 break;}
8049 case 749:
8050 #line 4091 "parse.y"
8051 { emit_line_note (input_filename, lineno); ;
8052 break;}
8053 case 750:
8054 #line 4096 "parse.y"
8055 { yyval.ttype = NULL_TREE; ;
8056 break;}
8057 case 752:
8058 #line 4099 "parse.y"
8059 { yyval.ttype = NULL_TREE; ;
8060 break;}
8061 case 753:
8062 #line 4106 "parse.y"
8063 { yyval.ttype = NULL_TREE; ;
8064 break;}
8065 case 756:
8066 #line 4113 "parse.y"
8067 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
8068 break;}
8069 case 757:
8070 #line 4118 "parse.y"
8071 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
8072 break;}
8073 case 758:
8074 #line 4123 "parse.y"
8075 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
8076 break;}
8077 case 759:
8078 #line 4125 "parse.y"
8079 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
8080 break;}
8081 case 760:
8082 #line 4136 "parse.y"
8083 {
8084 yyval.ttype = empty_parms();
8085 ;
8086 break;}
8087 case 762:
8088 #line 4141 "parse.y"
8089 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, void_list_node);
8090 TREE_PARMLIST (yyval.ttype) = 1;
8091 check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
8092 break;}
8093 case 763:
8094 #line 4150 "parse.y"
8095 {
8096 yyval.ttype = chainon (yyval.ttype, void_list_node);
8097 TREE_PARMLIST (yyval.ttype) = 1;
8098 ;
8099 break;}
8100 case 764:
8101 #line 4155 "parse.y"
8102 {
8103 TREE_PARMLIST (yyval.ttype) = 1;
8104 ;
8105 break;}
8106 case 765:
8107 #line 4160 "parse.y"
8108 {
8109 TREE_PARMLIST (yyval.ttype) = 1;
8110 ;
8111 break;}
8112 case 766:
8113 #line 4164 "parse.y"
8114 {
8115 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
8116 TREE_PARMLIST (yyval.ttype) = 1;
8117 ;
8118 break;}
8119 case 767:
8120 #line 4169 "parse.y"
8121 {
8122 yyval.ttype = NULL_TREE;
8123 ;
8124 break;}
8125 case 768:
8126 #line 4173 "parse.y"
8127 {
8128 TREE_PARMLIST (yyval.ttype) = 1;
8129 ;
8130 break;}
8131 case 769:
8132 #line 4177 "parse.y"
8133 {
8134 TREE_PARMLIST (yyval.ttype) = 1;
8135 ;
8136 break;}
8137 case 770:
8138 #line 4181 "parse.y"
8139 {
8140 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
8141 TREE_PARMLIST (yyval.ttype) = 1;
8142 ;
8143 break;}
8144 case 771:
8145 #line 4186 "parse.y"
8146 {
8147 /* This helps us recover from really nasty
8148 parse errors, for example, a missing right
8149 parenthesis. */
8150 yyerror ("possibly missing ')'");
8151 yyval.ttype = chainon (yyval.ttype, void_list_node);
8152 TREE_PARMLIST (yyval.ttype) = 1;
8153 yyungetc (':', 0);
8154 yychar = ')';
8155 ;
8156 break;}
8157 case 772:
8158 #line 4197 "parse.y"
8159 {
8160 /* This helps us recover from really nasty
8161 parse errors, for example, a missing right
8162 parenthesis. */
8163 yyerror ("possibly missing ')'");
8164 yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
8165 TREE_PARMLIST (yyval.ttype) = 1;
8166 yyungetc (':', 0);
8167 yychar = ')';
8168 ;
8169 break;}
8170 case 773:
8171 #line 4212 "parse.y"
8172 { maybe_snarf_defarg (); ;
8173 break;}
8174 case 774:
8175 #line 4214 "parse.y"
8176 { yyval.ttype = yyvsp[0].ttype; ;
8177 break;}
8178 case 777:
8179 #line 4225 "parse.y"
8180 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8181 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
8182 break;}
8183 case 778:
8184 #line 4228 "parse.y"
8185 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8186 yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
8187 break;}
8188 case 779:
8189 #line 4231 "parse.y"
8190 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8191 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
8192 break;}
8193 case 780:
8194 #line 4234 "parse.y"
8195 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
8196 break;}
8197 case 781:
8198 #line 4236 "parse.y"
8199 { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
8200 break;}
8201 case 783:
8202 #line 4242 "parse.y"
8203 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8204 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
8205 break;}
8206 case 784:
8207 #line 4252 "parse.y"
8208 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8209 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
8210 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
8211 break;}
8212 case 785:
8213 #line 4256 "parse.y"
8214 { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
8215 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8216 break;}
8217 case 786:
8218 #line 4259 "parse.y"
8219 { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
8220 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8221 break;}
8222 case 787:
8223 #line 4262 "parse.y"
8224 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8225 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
8226 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8227 break;}
8228 case 788:
8229 #line 4266 "parse.y"
8230 { tree specs = strip_attrs (yyvsp[0].ftype.t);
8231 yyval.ftype.t = build_tree_list (specs, NULL_TREE);
8232 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
8233 break;}
8234 case 789:
8235 #line 4270 "parse.y"
8236 { tree specs = strip_attrs (yyvsp[-1].ttype);
8237 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
8238 yyval.ftype.new_type_flag = 0; ;
8239 break;}
8240 case 790:
8241 #line 4277 "parse.y"
8242 { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
8243 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
8244 break;}
8245 case 791:
8246 #line 4280 "parse.y"
8247 { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
8248 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8249 break;}
8250 case 794:
8251 #line 4291 "parse.y"
8252 { see_typename (); ;
8253 break;}
8254 case 795:
8255 #line 4296 "parse.y"
8256 {
8257 error ("type specifier omitted for parameter");
8258 yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
8259 ;
8260 break;}
8261 case 796:
8262 #line 4301 "parse.y"
8263 {
8264 error ("type specifier omitted for parameter");
8265 if (TREE_CODE (yyval.ttype) == SCOPE_REF
8266 && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
8267 || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
8268 cp_error (" perhaps you want `typename %E' to make it a type", yyval.ttype);
8269 yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
8270 ;
8271 break;}
8272 case 797:
8273 #line 4313 "parse.y"
8274 { yyval.ttype = NULL_TREE; ;
8275 break;}
8276 case 798:
8277 #line 4315 "parse.y"
8278 { yyval.ttype = yyvsp[-1].ttype; ;
8279 break;}
8280 case 799:
8281 #line 4317 "parse.y"
8282 { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
8283 break;}
8284 case 800:
8285 #line 4322 "parse.y"
8286 { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
8287 break;}
8288 case 802:
8289 #line 4328 "parse.y"
8290 {
8291 TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
8292 yyval.ttype = yyvsp[0].ttype;
8293 ;
8294 break;}
8295 case 803:
8296 #line 4336 "parse.y"
8297 { yyval.ttype = NULL_TREE; ;
8298 break;}
8299 case 804:
8300 #line 4338 "parse.y"
8301 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8302 break;}
8303 case 805:
8304 #line 4340 "parse.y"
8305 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8306 break;}
8307 case 806:
8308 #line 4342 "parse.y"
8309 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
8310 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
8311 ;
8312 break;}
8313 case 807:
8314 #line 4349 "parse.y"
8315 { got_scope = NULL_TREE; ;
8316 break;}
8317 case 808:
8318 #line 4354 "parse.y"
8319 { yyval.ttype = ansi_opname[MULT_EXPR]; ;
8320 break;}
8321 case 809:
8322 #line 4356 "parse.y"
8323 { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
8324 break;}
8325 case 810:
8326 #line 4358 "parse.y"
8327 { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
8328 break;}
8329 case 811:
8330 #line 4360 "parse.y"
8331 { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
8332 break;}
8333 case 812:
8334 #line 4362 "parse.y"
8335 { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
8336 break;}
8337 case 813:
8338 #line 4364 "parse.y"
8339 { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
8340 break;}
8341 case 814:
8342 #line 4366 "parse.y"
8343 { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
8344 break;}
8345 case 815:
8346 #line 4368 "parse.y"
8347 { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
8348 break;}
8349 case 816:
8350 #line 4370 "parse.y"
8351 { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
8352 break;}
8353 case 817:
8354 #line 4372 "parse.y"
8355 { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
8356 break;}
8357 case 818:
8358 #line 4374 "parse.y"
8359 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8360 break;}
8361 case 819:
8362 #line 4376 "parse.y"
8363 { yyval.ttype = ansi_opname[LT_EXPR]; ;
8364 break;}
8365 case 820:
8366 #line 4378 "parse.y"
8367 { yyval.ttype = ansi_opname[GT_EXPR]; ;
8368 break;}
8369 case 821:
8370 #line 4380 "parse.y"
8371 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8372 break;}
8373 case 822:
8374 #line 4382 "parse.y"
8375 { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
8376 break;}
8377 case 823:
8378 #line 4384 "parse.y"
8379 { yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
8380 break;}
8381 case 824:
8382 #line 4386 "parse.y"
8383 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8384 break;}
8385 case 825:
8386 #line 4388 "parse.y"
8387 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8388 break;}
8389 case 826:
8390 #line 4390 "parse.y"
8391 { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
8392 break;}
8393 case 827:
8394 #line 4392 "parse.y"
8395 { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
8396 break;}
8397 case 828:
8398 #line 4394 "parse.y"
8399 { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
8400 break;}
8401 case 829:
8402 #line 4396 "parse.y"
8403 { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
8404 break;}
8405 case 830:
8406 #line 4398 "parse.y"
8407 { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
8408 break;}
8409 case 831:
8410 #line 4400 "parse.y"
8411 { yyval.ttype = ansi_opname[COND_EXPR]; ;
8412 break;}
8413 case 832:
8414 #line 4402 "parse.y"
8415 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8416 break;}
8417 case 833:
8418 #line 4404 "parse.y"
8419 { yyval.ttype = ansi_opname[COMPONENT_REF]; ;
8420 break;}
8421 case 834:
8422 #line 4406 "parse.y"
8423 { yyval.ttype = ansi_opname[MEMBER_REF]; ;
8424 break;}
8425 case 835:
8426 #line 4408 "parse.y"
8427 { yyval.ttype = ansi_opname[CALL_EXPR]; ;
8428 break;}
8429 case 836:
8430 #line 4410 "parse.y"
8431 { yyval.ttype = ansi_opname[ARRAY_REF]; ;
8432 break;}
8433 case 837:
8434 #line 4412 "parse.y"
8435 { yyval.ttype = ansi_opname[NEW_EXPR]; ;
8436 break;}
8437 case 838:
8438 #line 4414 "parse.y"
8439 { yyval.ttype = ansi_opname[DELETE_EXPR]; ;
8440 break;}
8441 case 839:
8442 #line 4416 "parse.y"
8443 { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
8444 break;}
8445 case 840:
8446 #line 4418 "parse.y"
8447 { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
8448 break;}
8449 case 841:
8450 #line 4421 "parse.y"
8451 { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
8452 break;}
8453 case 842:
8454 #line 4423 "parse.y"
8455 { yyval.ttype = ansi_opname[ERROR_MARK]; ;
8456 break;}
8457 }
8458 /* the action file gets copied in in place of this dollarsign */
8459 #line 498 "/usr/share/bison.simple"
8460 \f
8461 yyvsp -= yylen;
8462 yyssp -= yylen;
8463 #ifdef YYLSP_NEEDED
8464 yylsp -= yylen;
8465 #endif
8466
8467 #if YYDEBUG != 0
8468 if (yydebug)
8469 {
8470 short *ssp1 = yyss - 1;
8471 fprintf (stderr, "state stack now");
8472 while (ssp1 != yyssp)
8473 fprintf (stderr, " %d", *++ssp1);
8474 fprintf (stderr, "\n");
8475 }
8476 #endif
8477
8478 *++yyvsp = yyval;
8479
8480 #ifdef YYLSP_NEEDED
8481 yylsp++;
8482 if (yylen == 0)
8483 {
8484 yylsp->first_line = yylloc.first_line;
8485 yylsp->first_column = yylloc.first_column;
8486 yylsp->last_line = (yylsp-1)->last_line;
8487 yylsp->last_column = (yylsp-1)->last_column;
8488 yylsp->text = 0;
8489 }
8490 else
8491 {
8492 yylsp->last_line = (yylsp+yylen-1)->last_line;
8493 yylsp->last_column = (yylsp+yylen-1)->last_column;
8494 }
8495 #endif
8496
8497 /* Now "shift" the result of the reduction.
8498 Determine what state that goes to,
8499 based on the state we popped back to
8500 and the rule number reduced by. */
8501
8502 yyn = yyr1[yyn];
8503
8504 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
8505 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8506 yystate = yytable[yystate];
8507 else
8508 yystate = yydefgoto[yyn - YYNTBASE];
8509
8510 goto yynewstate;
8511
8512 yyerrlab: /* here on detecting error */
8513
8514 if (! yyerrstatus)
8515 /* If not already recovering from an error, report this error. */
8516 {
8517 ++yynerrs;
8518
8519 #ifdef YYERROR_VERBOSE
8520 yyn = yypact[yystate];
8521
8522 if (yyn > YYFLAG && yyn < YYLAST)
8523 {
8524 int size = 0;
8525 char *msg;
8526 int x, count;
8527
8528 count = 0;
8529 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
8530 for (x = (yyn < 0 ? -yyn : 0);
8531 x < (sizeof(yytname) / sizeof(char *)); x++)
8532 if (yycheck[x + yyn] == x)
8533 size += strlen(yytname[x]) + 15, count++;
8534 msg = (char *) malloc(size + 15);
8535 if (msg != 0)
8536 {
8537 strcpy(msg, "parse error");
8538
8539 if (count < 5)
8540 {
8541 count = 0;
8542 for (x = (yyn < 0 ? -yyn : 0);
8543 x < (sizeof(yytname) / sizeof(char *)); x++)
8544 if (yycheck[x + yyn] == x)
8545 {
8546 strcat(msg, count == 0 ? ", expecting `" : " or `");
8547 strcat(msg, yytname[x]);
8548 strcat(msg, "'");
8549 count++;
8550 }
8551 }
8552 yyerror(msg);
8553 free(msg);
8554 }
8555 else
8556 yyerror ("parse error; also virtual memory exceeded");
8557 }
8558 else
8559 #endif /* YYERROR_VERBOSE */
8560 yyerror("parse error");
8561 }
8562
8563 goto yyerrlab1;
8564 yyerrlab1: /* here on error raised explicitly by an action */
8565
8566 if (yyerrstatus == 3)
8567 {
8568 /* if just tried and failed to reuse lookahead token after an error, discard it. */
8569
8570 /* return failure if at end of input */
8571 if (yychar == YYEOF)
8572 YYABORT;
8573
8574 #if YYDEBUG != 0
8575 if (yydebug)
8576 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
8577 #endif
8578
8579 yychar = YYEMPTY;
8580 }
8581
8582 /* Else will try to reuse lookahead token
8583 after shifting the error token. */
8584
8585 yyerrstatus = 3; /* Each real token shifted decrements this */
8586
8587 goto yyerrhandle;
8588
8589 yyerrdefault: /* current state does not do anything special for the error token. */
8590
8591 #if 0
8592 /* This is wrong; only states that explicitly want error tokens
8593 should shift them. */
8594 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
8595 if (yyn) goto yydefault;
8596 #endif
8597
8598 yyerrpop: /* pop the current state because it cannot handle the error token */
8599
8600 if (yyssp == yyss) YYABORT;
8601 yyvsp--;
8602 yystate = *--yyssp;
8603 #ifdef YYLSP_NEEDED
8604 yylsp--;
8605 #endif
8606
8607 #if YYDEBUG != 0
8608 if (yydebug)
8609 {
8610 short *ssp1 = yyss - 1;
8611 fprintf (stderr, "Error: state stack now");
8612 while (ssp1 != yyssp)
8613 fprintf (stderr, " %d", *++ssp1);
8614 fprintf (stderr, "\n");
8615 }
8616 #endif
8617
8618 yyerrhandle:
8619
8620 yyn = yypact[yystate];
8621 if (yyn == YYFLAG)
8622 goto yyerrdefault;
8623
8624 yyn += YYTERROR;
8625 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
8626 goto yyerrdefault;
8627
8628 yyn = yytable[yyn];
8629 if (yyn < 0)
8630 {
8631 if (yyn == YYFLAG)
8632 goto yyerrpop;
8633 yyn = -yyn;
8634 goto yyreduce;
8635 }
8636 else if (yyn == 0)
8637 goto yyerrpop;
8638
8639 if (yyn == YYFINAL)
8640 YYACCEPT;
8641
8642 #if YYDEBUG != 0
8643 if (yydebug)
8644 fprintf(stderr, "Shifting error token, ");
8645 #endif
8646
8647 *++yyvsp = yylval;
8648 #ifdef YYLSP_NEEDED
8649 *++yylsp = yylloc;
8650 #endif
8651
8652 yystate = yyn;
8653 goto yynewstate;
8654 }
8655 #line 4426 "parse.y"
8656
8657
8658 #ifdef SPEW_DEBUG
8659 const char *
8660 debug_yytranslate (value)
8661 int value;
8662 {
8663 return yytname[YYTRANSLATE (value)];
8664 }
8665
8666 #endif