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