|
|
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
1.1.1.2 ! root 29: #define ASM_KEYWORD 281
1.1 root 30: #define TYPEOF 282
31: #define ALIGNOF 283
32: #define HEADOF 284
33: #define CLASSOF 285
34: #define ATTRIBUTE 286
1.1.1.2 ! root 35: #define EXTENSION 287
! 36: #define LABEL 288
! 37: #define AGGR 289
! 38: #define VISSPEC 290
! 39: #define DELETE 291
! 40: #define NEW 292
! 41: #define OVERLOAD 293
! 42: #define THIS 294
! 43: #define OPERATOR 295
! 44: #define DYNAMIC 296
! 45: #define POINTSAT_LEFT_RIGHT 297
! 46: #define LEFT_RIGHT 298
! 47: #define TEMPLATE 299
! 48: #define SCOPE 300
! 49: #define START_DECLARATOR 301
! 50: #define EMPTY 302
! 51: #define TYPENAME_COLON 303
! 52: #define ASSIGN 304
! 53: #define RANGE 305
! 54: #define OROR 306
! 55: #define ANDAND 307
! 56: #define MIN_MAX 308
! 57: #define EQCOMPARE 309
! 58: #define ARITHCOMPARE 310
! 59: #define LSHIFT 311
! 60: #define RSHIFT 312
! 61: #define UNARY 313
! 62: #define PLUSPLUS 314
! 63: #define MINUSMINUS 315
! 64: #define HYPERUNARY 316
! 65: #define PAREN_STAR_PAREN 317
! 66: #define POINTSAT 318
! 67: #define POINTSAT_STAR 319
! 68: #define DOT_STAR 320
! 69: #define RAISE 321
! 70: #define RAISES 322
! 71: #define RERAISE 323
! 72: #define TRY 324
! 73: #define EXCEPT 325
! 74: #define CATCH 326
! 75: #define THROW 327
! 76: #define ANSI_TRY 328
! 77: #define ANSI_THROW 329
! 78: #define TYPENAME_ELLIPSIS 330
! 79: #define PTYPENAME 331
! 80: #define PRE_PARSED_FUNCTION_DECL 332
! 81: #define EXTERN_LANG_STRING 333
! 82: #define ALL 334
! 83: #define PRE_PARSED_CLASS_DECL 335
! 84: #define TYPENAME_DEFN 336
! 85: #define IDENTIFIER_DEFN 337
! 86: #define PTYPENAME_DEFN 338
! 87: #define END_OF_SAVED_INPUT 339
1.1 root 88:
89: #line 42 "cp-parse.y"
90:
91: #ifdef GATHER_STATISTICS
92: #undef YYDEBUG
93: #define YYDEBUG 1
94: #endif
95:
96: #include "config.h"
97:
98: #include <stdio.h>
99: #include <errno.h>
100:
101: #include "tree.h"
102: #include "input.h"
103: #include "cp-lex.h"
104: #include "cp-tree.h"
105: #include "assert.h"
106:
107: extern tree void_list_node;
108:
109: #ifndef errno
110: extern int errno;
111: #endif
112:
113: extern int end_of_file;
114:
115: void yyerror ();
116:
117: /* Like YYERROR but do call yyerror. */
118: #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
119:
120: static void position_after_white_space ();
121:
122: /* The elements of `ridpointers' are identifier nodes
123: for the reserved type names and storage classes.
124: It is indexed by a RID_... value. */
125:
126: tree ridpointers[(int) RID_MAX];
127: #define NORID RID_UNUSED
128:
129: /* Contains error message to give if user tries to declare
130: a variable where one does not belong. */
131: static char *stmt_decl_msg = 0;
132:
133: /* Nonzero if we have an `extern "C"' acting as an extern specifier. */
134:
135: static int have_extern_spec;
136:
137: void yyhook ();
138:
139: /* Cons up an empty parameter list. */
140: #ifdef __GNUC__
141: __inline
142: #endif
143: static tree
144: empty_parms ()
145: {
146: tree parms;
147:
148: if (strict_prototype)
149: parms = void_list_node;
150: else
151: parms = NULL_TREE;
152: return parms;
153: }
154:
155: #line 110 "cp-parse.y"
1.1.1.2 ! root 156: typedef union {long itype; tree ttype; char *strtype; enum tree_code code; } YYSTYPE;
! 157: #line 266 "cp-parse.y"
1.1 root 158:
159: /* the declaration found for the last IDENTIFIER token read in.
160: yylex must look this up to detect typedefs, which get token type TYPENAME,
161: so it is left around in case the identifier is not a typedef but is
162: used in a context which makes it a reference to a variable. */
163: tree lastiddecl;
164:
165: /* Back-door communication channel to the lexer. */
166: extern int looking_for_typename;
167:
168: tree make_pointer_declarator (), make_reference_declarator ();
169:
170: void reinit_parse_for_function ();
171: void reinit_parse_for_method ();
172:
173: /* List of types and structure classes of the current declaration. */
174: tree current_declspecs;
175:
176: /* When defining an aggregate, this is the most recent one being defined. */
177: static tree current_aggr;
178:
179: int undeclared_variable_notice; /* 1 if we explained undeclared var errors. */
180:
181: int yylex ();
182:
1.1.1.2 ! root 183: static
! 184: #ifdef __GNUC__
! 185: __inline
! 186: #endif
! 187: void yyprint ();
1.1 root 188: #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
189:
190: #ifndef YYLTYPE
191: typedef
192: struct yyltype
193: {
194: int timestamp;
195: int first_line;
196: int first_column;
197: int last_line;
198: int last_column;
199: char *text;
200: }
201: yyltype;
202:
203: #define YYLTYPE yyltype
204: #endif
205:
206: #include <stdio.h>
207:
208: #ifndef __STDC__
209: #define const
210: #endif
211:
212:
213:
1.1.1.2 ! root 214: #define YYFINAL 1240
1.1 root 215: #define YYFLAG -32768
1.1.1.2 ! root 216: #define YYNTBASE 109
1.1 root 217:
1.1.1.2 ! root 218: #define YYTRANSLATE(x) ((unsigned)(x) <= 339 ? yytranslate[x] : 300)
1.1 root 219:
220: static const char yytranslate[] = { 0,
221: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
222: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
223: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1.1.1.2 ! root 224: 2, 2, 107, 2, 2, 2, 72, 60, 2, 82,
! 225: 103, 70, 68, 50, 69, 80, 71, 2, 2, 2,
! 226: 2, 2, 2, 2, 2, 2, 2, 54, 104, 64,
! 227: 52, 65, 53, 2, 2, 2, 2, 2, 2, 2,
1.1 root 228: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
229: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1.1.1.2 ! root 230: 83, 2, 108, 59, 2, 2, 2, 2, 2, 2,
1.1 root 231: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
232: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1.1.1.2 ! root 233: 2, 2, 49, 58, 105, 106, 2, 2, 2, 2,
1.1 root 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, 2, 2, 2, 2, 2,
240: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
241: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
242: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
243: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
244: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
245: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
246: 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
247: 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
248: 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
249: 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
250: 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1.1.1.2 ! root 251: 46, 47, 48, 51, 55, 56, 57, 61, 62, 63,
! 252: 66, 67, 73, 74, 75, 76, 77, 78, 79, 81,
1.1 root 253: 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1.1.1.2 ! root 254: 94, 95, 96, 97, 98, 99, 100, 101, 102
1.1 root 255: };
256:
257: static const short yyprhs[] = { 0,
258: 0, 1, 3, 4, 7, 10, 11, 12, 14, 16,
259: 18, 20, 26, 31, 35, 40, 45, 47, 48, 54,
260: 56, 60, 63, 68, 72, 74, 78, 80, 84, 85,
261: 91, 92, 98, 99, 105, 106, 112, 116, 120, 127,
1.1.1.2 ! root 262: 135, 140, 144, 148, 150, 152, 154, 156, 158, 161,
! 263: 165, 169, 173, 177, 180, 183, 186, 189, 191, 195,
! 264: 200, 204, 210, 215, 219, 223, 226, 230, 234, 237,
! 265: 244, 251, 256, 261, 263, 270, 275, 279, 286, 291,
! 266: 295, 298, 301, 303, 307, 312, 315, 319, 320, 321,
! 267: 323, 327, 330, 334, 336, 341, 344, 349, 352, 358,
! 268: 362, 364, 366, 368, 370, 372, 374, 376, 378, 380,
! 269: 383, 385, 388, 391, 394, 398, 402, 404, 407, 410,
! 270: 414, 419, 421, 423, 424, 425, 427, 431, 433, 435,
! 271: 436, 443, 444, 446, 447, 450, 452, 454, 456, 458,
! 272: 460, 462, 464, 466, 470, 474, 476, 477, 481, 484,
! 273: 487, 490, 493, 496, 501, 504, 509, 513, 520, 525,
! 274: 531, 541, 551, 558, 565, 569, 572, 577, 583, 585,
! 275: 590, 598, 603, 608, 613, 615, 619, 623, 627, 631,
! 276: 635, 639, 643, 647, 651, 655, 659, 663, 667, 671,
! 277: 675, 679, 683, 689, 693, 697, 701, 704, 706, 708,
! 278: 710, 712, 716, 720, 721, 726, 727, 734, 737, 742,
! 279: 745, 749, 752, 755, 757, 762, 767, 770, 773, 776,
! 280: 779, 785, 789, 795, 799, 806, 811, 813, 818, 821,
! 281: 827, 828, 830, 832, 835, 837, 840, 841, 844, 847,
! 282: 850, 854, 858, 862, 866, 869, 872, 874, 876, 879,
! 283: 882, 884, 887, 890, 894, 896, 898, 901, 904, 906,
! 284: 908, 911, 914, 916, 919, 922, 926, 928, 931, 933,
! 285: 935, 937, 939, 944, 949, 951, 953, 955, 957, 959,
! 286: 963, 965, 969, 970, 975, 976, 984, 989, 990, 998,
! 287: 1003, 1004, 1012, 1017, 1018, 1025, 1027, 1031, 1033, 1038,
! 288: 1043, 1045, 1049, 1051, 1055, 1057, 1060, 1064, 1069, 1071,
! 289: 1073, 1077, 1082, 1089, 1093, 1099, 1100, 1108, 1113, 1114,
! 290: 1121, 1125, 1128, 1133, 1135, 1136, 1138, 1139, 1141, 1143,
! 291: 1146, 1152, 1155, 1158, 1161, 1164, 1167, 1170, 1173, 1177,
! 292: 1181, 1184, 1185, 1189, 1190, 1194, 1197, 1199, 1201, 1202,
! 293: 1204, 1207, 1209, 1213, 1215, 1218, 1222, 1224, 1226, 1228,
! 294: 1231, 1234, 1236, 1237, 1239, 1244, 1248, 1250, 1253, 1256,
! 295: 1260, 1266, 1272, 1276, 1280, 1284, 1288, 1292, 1298, 1304,
! 296: 1308, 1312, 1316, 1320, 1322, 1325, 1328, 1332, 1336, 1337,
! 297: 1339, 1343, 1347, 1353, 1357, 1360, 1363, 1367, 1373, 1377,
! 298: 1380, 1383, 1385, 1389, 1391, 1395, 1398, 1401, 1402, 1404,
! 299: 1407, 1409, 1412, 1413, 1416, 1417, 1420, 1426, 1432, 1436,
! 300: 1442, 1447, 1451, 1455, 1461, 1463, 1465, 1471, 1475, 1479,
! 301: 1481, 1487, 1493, 1497, 1503, 1508, 1512, 1516, 1518, 1520,
! 302: 1524, 1528, 1534, 1540, 1544, 1550, 1554, 1558, 1562, 1567,
! 303: 1571, 1573, 1575, 1578, 1581, 1584, 1587, 1591, 1595, 1599,
! 304: 1603, 1611, 1619, 1625, 1633, 1637, 1645, 1653, 1659, 1667,
! 305: 1671, 1673, 1677, 1680, 1682, 1686, 1690, 1693, 1695, 1699,
! 306: 1703, 1706, 1712, 1716, 1721, 1725, 1730, 1733, 1737, 1740,
! 307: 1744, 1749, 1753, 1758, 1764, 1770, 1772, 1774, 1777, 1780,
! 308: 1783, 1784, 1785, 1787, 1789, 1792, 1796, 1798, 1801, 1804,
! 309: 1810, 1816, 1817, 1824, 1826, 1828, 1831, 1832, 1837, 1839,
! 310: 1840, 1841, 1849, 1850, 1851, 1861, 1862, 1863, 1864, 1874,
! 311: 1875, 1876, 1877, 1887, 1888, 1895, 1896, 1902, 1903, 1911,
! 312: 1912, 1917, 1920, 1923, 1926, 1930, 1937, 1946, 1957, 1970,
! 313: 1974, 1977, 1980, 1982, 1985, 1989, 1996, 2001, 2008, 2013,
! 314: 2017, 2018, 2026, 2029, 2030, 2036, 2040, 2042, 2045, 2049,
! 315: 2053, 2056, 2059, 2061, 2062, 2067, 2070, 2074, 2078, 2079,
! 316: 2080, 2085, 2086, 2087, 2092, 2093, 2098, 2099, 2101, 2102,
! 317: 2103, 2112, 2116, 2121, 2126, 2130, 2135, 2142, 2149, 2150,
! 318: 2152, 2153, 2155, 2157, 2158, 2160, 2162, 2166, 2171, 2173,
! 319: 2177, 2178, 2180, 2184, 2187, 2189, 2191, 2194, 2197, 2199,
! 320: 2203, 2207, 2213, 2217, 2223, 2227, 2231, 2233, 2235, 2238,
! 321: 2240, 2241, 2242, 2244, 2245, 2248, 2253, 2255, 2257, 2259,
! 322: 2262, 2265, 2268, 2270, 2272, 2274, 2278, 2280, 2284, 2287,
! 323: 2290, 2293, 2296, 2299, 2302, 2305, 2308, 2311, 2314, 2317,
! 324: 2320, 2323, 2326, 2329, 2332, 2335, 2338, 2341, 2344, 2347,
! 325: 2350, 2353, 2357, 2360, 2363, 2366, 2370, 2373, 2377, 2380,
! 326: 2383, 2387
1.1 root 327: };
328:
329: static const short yyrhs[] = { -1,
1.1.1.2 ! root 330: 110, 0, 0, 111, 114, 0, 110, 114, 0, 0,
! 331: 0, 129, 0, 128, 0, 122, 0, 120, 0, 26,
! 332: 82, 165, 103, 104, 0, 115, 49, 110, 105, 0,
! 333: 115, 49, 105, 0, 115, 112, 129, 113, 0, 115,
! 334: 112, 128, 113, 0, 96, 0, 0, 44, 64, 117,
! 335: 118, 65, 0, 119, 0, 118, 50, 119, 0, 199,
! 336: 138, 0, 199, 139, 54, 210, 0, 199, 48, 210,
! 337: 0, 288, 0, 38, 121, 104, 0, 3, 0, 121,
! 338: 50, 3, 0, 0, 116, 200, 49, 123, 104, 0,
! 339: 0, 116, 201, 49, 124, 104, 0, 0, 116, 200,
! 340: 54, 125, 104, 0, 0, 116, 201, 54, 126, 104,
! 341: 0, 116, 200, 104, 0, 116, 201, 104, 0, 116,
! 342: 229, 294, 180, 187, 127, 0, 116, 171, 170, 294,
! 343: 180, 187, 127, 0, 116, 173, 170, 127, 0, 116,
! 344: 1, 105, 0, 116, 1, 104, 0, 49, 0, 54,
! 345: 0, 104, 0, 52, 0, 24, 0, 179, 104, 0,
! 346: 173, 179, 104, 0, 173, 170, 104, 0, 171, 178,
! 347: 104, 0, 171, 170, 104, 0, 173, 104, 0, 171,
! 348: 104, 0, 1, 104, 0, 1, 105, 0, 104, 0,
! 349: 130, 134, 242, 0, 130, 133, 134, 242, 0, 130,
! 350: 166, 242, 0, 130, 133, 104, 166, 242, 0, 130,
! 351: 133, 166, 242, 0, 171, 170, 1, 0, 173, 229,
! 352: 1, 0, 229, 1, 0, 171, 170, 294, 0, 173,
! 353: 229, 294, 0, 229, 294, 0, 4, 82, 286, 103,
! 354: 224, 294, 0, 232, 82, 286, 103, 224, 294, 0,
! 355: 4, 43, 224, 294, 0, 232, 43, 224, 294, 0,
! 356: 95, 0, 171, 82, 286, 103, 224, 294, 0, 171,
! 357: 43, 224, 294, 0, 171, 170, 294, 0, 173, 82,
! 358: 286, 103, 224, 294, 0, 173, 43, 224, 294, 0,
! 359: 173, 170, 294, 0, 229, 294, 0, 24, 3, 0,
! 360: 132, 0, 132, 52, 192, 0, 132, 82, 154, 103,
! 361: 0, 132, 43, 0, 54, 135, 136, 0, 0, 0,
! 362: 137, 0, 136, 50, 137, 0, 136, 1, 0, 82,
! 363: 154, 103, 0, 43, 0, 138, 82, 154, 103, 0,
! 364: 138, 43, 0, 143, 82, 154, 103, 0, 143, 43,
! 365: 0, 230, 138, 82, 154, 103, 0, 230, 138, 43,
! 366: 0, 3, 0, 4, 0, 94, 0, 100, 0, 99,
! 367: 0, 101, 0, 3, 0, 4, 0, 94, 0, 106,
! 368: 138, 0, 299, 0, 141, 3, 0, 141, 4, 0,
! 369: 141, 299, 0, 141, 230, 3, 0, 141, 230, 299,
! 370: 0, 43, 0, 106, 43, 0, 43, 53, 0, 143,
! 371: 144, 150, 0, 94, 64, 146, 65, 0, 49, 0,
! 372: 54, 0, 0, 0, 147, 0, 146, 50, 147, 0,
! 373: 221, 0, 158, 0, 0, 98, 207, 149, 212, 213,
! 374: 105, 0, 0, 148, 0, 0, 148, 151, 0, 69,
! 375: 0, 68, 0, 74, 0, 75, 0, 107, 0, 154,
! 376: 0, 158, 0, 158, 0, 154, 50, 158, 0, 154,
! 377: 50, 1, 0, 159, 0, 0, 32, 156, 157, 0,
! 378: 70, 157, 0, 60, 157, 0, 106, 157, 0, 152,
! 379: 157, 0, 12, 155, 0, 12, 82, 221, 103, 0,
! 380: 28, 155, 0, 28, 82, 221, 103, 0, 163, 162,
! 381: 221, 0, 163, 162, 176, 82, 154, 103, 0, 163,
! 382: 162, 176, 43, 0, 163, 162, 221, 52, 192, 0,
! 383: 163, 162, 82, 174, 222, 103, 83, 225, 108, 0,
! 384: 163, 162, 82, 223, 222, 103, 83, 225, 108, 0,
! 385: 163, 162, 82, 174, 222, 103, 0, 163, 162, 82,
! 386: 223, 222, 103, 0, 163, 162, 48, 0, 164, 157,
! 387: 0, 164, 83, 108, 157, 0, 164, 83, 153, 108,
! 388: 157, 0, 155, 0, 82, 221, 103, 158, 0, 82,
! 389: 221, 103, 49, 193, 197, 105, 0, 29, 82, 153,
! 390: 103, 0, 30, 82, 153, 103, 0, 30, 82, 4,
! 391: 103, 0, 157, 0, 158, 68, 158, 0, 158, 69,
! 392: 158, 0, 158, 70, 158, 0, 158, 71, 158, 0,
! 393: 158, 72, 158, 0, 158, 66, 158, 0, 158, 67,
! 394: 158, 0, 158, 63, 158, 0, 158, 64, 158, 0,
! 395: 158, 65, 158, 0, 158, 62, 158, 0, 158, 61,
! 396: 158, 0, 158, 60, 158, 0, 158, 58, 158, 0,
! 397: 158, 59, 158, 0, 158, 57, 158, 0, 158, 56,
! 398: 158, 0, 158, 53, 281, 54, 158, 0, 158, 52,
! 399: 158, 0, 158, 51, 158, 0, 159, 81, 158, 0,
! 400: 168, 158, 0, 3, 0, 299, 0, 9, 0, 165,
! 401: 0, 82, 153, 103, 0, 82, 1, 103, 0, 0,
! 402: 82, 160, 243, 103, 0, 0, 159, 82, 154, 103,
! 403: 161, 151, 0, 159, 43, 0, 159, 83, 153, 108,
! 404: 0, 167, 140, 0, 167, 230, 140, 0, 159, 74,
! 405: 0, 159, 75, 0, 39, 0, 8, 82, 154, 103,
! 406: 0, 176, 82, 154, 103, 0, 176, 43, 0, 45,
! 407: 3, 0, 45, 299, 0, 230, 140, 0, 230, 140,
! 408: 82, 154, 103, 0, 230, 140, 43, 0, 167, 140,
! 409: 82, 154, 103, 0, 167, 140, 43, 0, 167, 230,
! 410: 140, 82, 154, 103, 0, 167, 230, 140, 43, 0,
! 411: 37, 0, 37, 49, 154, 105, 0, 37, 41, 0,
! 412: 37, 41, 82, 165, 103, 0, 0, 45, 0, 36,
! 413: 0, 45, 164, 0, 10, 0, 165, 10, 0, 0,
! 414: 159, 80, 0, 159, 78, 0, 159, 79, 0, 171,
! 415: 178, 104, 0, 171, 170, 104, 0, 173, 179, 104,
! 416: 0, 173, 170, 104, 0, 171, 104, 0, 173, 104,
! 417: 0, 227, 0, 229, 0, 46, 227, 0, 46, 229,
! 418: 0, 176, 0, 173, 176, 0, 176, 172, 0, 173,
! 419: 176, 172, 0, 177, 0, 6, 0, 172, 177, 0,
! 420: 172, 6, 0, 8, 0, 6, 0, 173, 8, 0,
! 421: 173, 6, 0, 176, 0, 223, 176, 0, 176, 175,
! 422: 0, 223, 176, 175, 0, 177, 0, 175, 177, 0,
! 423: 194, 0, 7, 0, 4, 0, 232, 0, 27, 82,
! 424: 153, 103, 0, 27, 82, 221, 103, 0, 142, 0,
! 425: 7, 0, 8, 0, 194, 0, 181, 0, 178, 50,
! 426: 183, 0, 185, 0, 179, 50, 183, 0, 0, 26,
! 427: 82, 165, 103, 0, 0, 170, 294, 180, 187, 52,
! 428: 182, 192, 0, 170, 294, 180, 187, 0, 0, 170,
! 429: 294, 180, 187, 52, 184, 192, 0, 170, 294, 180,
! 430: 187, 0, 0, 229, 294, 180, 187, 52, 186, 192,
! 431: 0, 229, 294, 180, 187, 0, 0, 31, 82, 82,
! 432: 188, 103, 103, 0, 189, 0, 188, 50, 189, 0,
! 433: 3, 0, 3, 82, 9, 103, 0, 3, 82, 190,
! 434: 103, 0, 3, 0, 190, 50, 3, 0, 138, 0,
! 435: 191, 50, 138, 0, 158, 0, 49, 105, 0, 49,
! 436: 193, 105, 0, 49, 193, 50, 105, 0, 1, 0,
! 437: 192, 0, 193, 50, 192, 0, 83, 158, 108, 192,
! 438: 0, 193, 50, 20, 158, 54, 192, 0, 138, 54,
! 439: 192, 0, 193, 50, 138, 54, 192, 0, 0, 13,
! 440: 138, 49, 195, 219, 198, 105, 0, 13, 138, 49,
! 441: 105, 0, 0, 13, 49, 196, 219, 198, 105, 0,
! 442: 13, 49, 105, 0, 13, 138, 0, 206, 212, 213,
! 443: 105, 0, 206, 0, 0, 50, 0, 0, 50, 0,
! 444: 34, 0, 41, 34, 0, 41, 82, 165, 103, 34,
! 445: 0, 199, 6, 0, 199, 7, 0, 199, 8, 0,
! 446: 199, 34, 0, 199, 138, 0, 199, 143, 0, 199,
! 447: 48, 0, 199, 143, 49, 0, 199, 143, 54, 0,
! 448: 199, 139, 0, 0, 200, 203, 207, 0, 0, 201,
! 449: 204, 207, 0, 199, 49, 0, 205, 0, 202, 0,
! 450: 0, 54, 0, 54, 208, 0, 209, 0, 208, 50,
! 451: 209, 0, 210, 0, 211, 210, 0, 143, 145, 150,
! 452: 0, 138, 0, 35, 0, 6, 0, 211, 35, 0,
! 453: 211, 6, 0, 49, 0, 0, 214, 0, 213, 35,
! 454: 54, 214, 0, 213, 35, 54, 0, 215, 0, 214,
! 455: 215, 0, 214, 104, 0, 171, 216, 104, 0, 171,
! 456: 82, 286, 103, 104, 0, 171, 82, 286, 103, 105,
! 457: 0, 171, 43, 104, 0, 171, 43, 105, 0, 173,
! 458: 216, 104, 0, 173, 170, 104, 0, 173, 216, 105,
! 459: 0, 173, 82, 286, 103, 104, 0, 173, 82, 286,
! 460: 103, 105, 0, 173, 43, 104, 0, 173, 43, 105,
! 461: 0, 54, 158, 104, 0, 54, 158, 105, 0, 1,
! 462: 0, 131, 54, 0, 131, 49, 0, 229, 294, 104,
! 463: 0, 229, 294, 105, 0, 0, 217, 0, 216, 50,
! 464: 218, 0, 170, 294, 180, 0, 170, 294, 180, 52,
! 465: 192, 0, 3, 54, 158, 0, 48, 158, 0, 54,
! 466: 158, 0, 170, 294, 180, 0, 170, 294, 180, 52,
! 467: 192, 0, 3, 54, 158, 0, 48, 158, 0, 54,
! 468: 158, 0, 220, 0, 219, 50, 220, 0, 138, 0,
! 469: 138, 52, 158, 0, 174, 222, 0, 223, 222, 0,
! 470: 0, 233, 0, 46, 233, 0, 8, 0, 223, 8,
! 471: 0, 0, 224, 8, 0, 0, 226, 153, 0, 227,
! 472: 82, 154, 103, 224, 0, 227, 82, 286, 103, 224,
! 473: 0, 227, 43, 224, 0, 227, 82, 1, 103, 224,
! 474: 0, 227, 83, 225, 108, 0, 227, 83, 108, 0,
! 475: 82, 228, 103, 0, 82, 70, 224, 227, 103, 0,
! 476: 77, 0, 235, 0, 82, 60, 224, 227, 103, 0,
! 477: 70, 224, 227, 0, 60, 224, 227, 0, 4, 0,
! 478: 228, 82, 154, 103, 224, 0, 228, 82, 286, 103,
! 479: 224, 0, 228, 43, 224, 0, 228, 82, 1, 103,
! 480: 224, 0, 228, 83, 225, 108, 0, 228, 83, 108,
! 481: 0, 82, 228, 103, 0, 77, 0, 235, 0, 70,
! 482: 224, 227, 0, 60, 224, 227, 0, 229, 82, 154,
! 483: 103, 224, 0, 229, 82, 286, 103, 224, 0, 229,
! 484: 43, 224, 0, 229, 82, 1, 103, 224, 0, 82,
! 485: 229, 103, 0, 70, 224, 229, 0, 60, 224, 229,
! 486: 0, 229, 83, 225, 108, 0, 229, 83, 108, 0,
! 487: 3, 0, 299, 0, 106, 4, 0, 106, 3, 0,
! 488: 106, 94, 0, 43, 138, 0, 43, 53, 138, 0,
! 489: 106, 43, 138, 0, 230, 290, 229, 0, 230, 290,
! 490: 4, 0, 230, 290, 4, 82, 154, 103, 224, 0,
! 491: 230, 290, 4, 82, 286, 103, 224, 0, 230, 290,
! 492: 4, 43, 224, 0, 230, 290, 4, 82, 1, 103,
! 493: 224, 0, 230, 290, 94, 0, 230, 290, 94, 82,
! 494: 154, 103, 224, 0, 230, 290, 94, 82, 286, 103,
! 495: 224, 0, 230, 290, 94, 43, 224, 0, 230, 290,
! 496: 94, 82, 1, 103, 224, 0, 45, 290, 229, 0,
! 497: 231, 0, 142, 45, 292, 0, 4, 45, 0, 5,
! 498: 0, 82, 233, 103, 0, 70, 224, 233, 0, 70,
! 499: 224, 0, 77, 0, 82, 234, 103, 0, 60, 224,
! 500: 233, 0, 60, 224, 0, 233, 82, 286, 103, 224,
! 501: 0, 233, 43, 224, 0, 233, 83, 225, 108, 0,
! 502: 233, 83, 108, 0, 82, 286, 103, 224, 0, 43,
! 503: 224, 0, 83, 225, 108, 0, 83, 108, 0, 230,
! 504: 70, 224, 0, 230, 70, 224, 233, 0, 230, 60,
! 505: 224, 0, 230, 60, 224, 233, 0, 230, 290, 70,
! 506: 224, 227, 0, 230, 290, 60, 224, 227, 0, 246,
! 507: 0, 237, 0, 236, 246, 0, 236, 237, 0, 1,
! 508: 104, 0, 0, 0, 240, 0, 241, 0, 240, 241,
! 509: 0, 33, 191, 104, 0, 243, 0, 1, 243, 0,
! 510: 49, 105, 0, 49, 238, 239, 236, 105, 0, 49,
! 511: 238, 239, 1, 105, 0, 0, 14, 82, 153, 103,
! 512: 245, 246, 0, 243, 0, 169, 0, 153, 104, 0,
! 513: 0, 244, 15, 247, 246, 0, 244, 0, 0, 0,
! 514: 16, 248, 82, 153, 103, 249, 246, 0, 0, 0,
! 515: 17, 250, 246, 16, 251, 82, 153, 103, 104, 0,
! 516: 0, 0, 0, 278, 252, 281, 104, 253, 281, 103,
! 517: 254, 246, 0, 0, 0, 0, 279, 255, 281, 104,
! 518: 256, 281, 103, 257, 246, 0, 0, 19, 82, 153,
! 519: 103, 258, 246, 0, 0, 20, 153, 54, 259, 246,
! 520: 0, 0, 20, 153, 55, 153, 54, 260, 246, 0,
! 521: 0, 21, 54, 261, 246, 0, 22, 104, 0, 23,
! 522: 104, 0, 24, 104, 0, 24, 153, 104, 0, 26,
! 523: 280, 82, 165, 103, 104, 0, 26, 280, 82, 165,
! 524: 54, 282, 103, 104, 0, 26, 280, 82, 165, 54,
! 525: 282, 54, 282, 103, 104, 0, 26, 280, 82, 165,
! 526: 54, 282, 54, 282, 54, 285, 103, 104, 0, 25,
! 527: 138, 104, 0, 265, 246, 0, 265, 105, 0, 104,
! 528: 0, 92, 104, 0, 92, 153, 104, 0, 90, 295,
! 529: 82, 154, 103, 104, 0, 90, 295, 43, 104, 0,
! 530: 84, 295, 82, 154, 103, 104, 0, 84, 295, 43,
! 531: 104, 0, 84, 138, 104, 0, 0, 264, 88, 138,
! 532: 49, 262, 272, 105, 0, 264, 1, 0, 0, 268,
! 533: 269, 269, 263, 276, 0, 264, 86, 297, 0, 264,
! 534: 0, 266, 105, 0, 266, 236, 105, 0, 266, 1,
! 535: 105, 0, 3, 54, 0, 94, 54, 0, 48, 0,
! 536: 0, 87, 49, 267, 238, 0, 270, 105, 0, 270,
! 537: 236, 105, 0, 270, 1, 105, 0, 0, 0, 91,
! 538: 49, 271, 238, 0, 0, 0, 272, 295, 273, 243,
! 539: 0, 0, 272, 21, 274, 243, 0, 0, 138, 0,
! 540: 0, 0, 276, 89, 82, 221, 275, 103, 277, 243,
! 541: 0, 18, 82, 104, 0, 18, 82, 153, 104, 0,
! 542: 18, 82, 49, 105, 0, 18, 82, 169, 0, 18,
! 543: 82, 1, 104, 0, 18, 82, 49, 238, 236, 105,
! 544: 0, 18, 82, 49, 238, 1, 105, 0, 0, 8,
! 545: 0, 0, 153, 0, 1, 0, 0, 283, 0, 284,
! 546: 0, 283, 50, 284, 0, 10, 82, 153, 103, 0,
! 547: 10, 0, 285, 50, 10, 0, 0, 287, 0, 287,
! 548: 50, 11, 0, 287, 11, 0, 11, 0, 93, 0,
! 549: 287, 93, 0, 287, 54, 0, 288, 0, 288, 52,
! 550: 192, 0, 287, 50, 288, 0, 287, 50, 288, 52,
! 551: 192, 0, 287, 50, 293, 0, 287, 50, 293, 52,
! 552: 192, 0, 171, 291, 289, 0, 173, 291, 289, 0,
! 553: 222, 0, 229, 0, 46, 229, 0, 224, 0, 0,
! 554: 0, 289, 0, 0, 85, 297, 0, 92, 82, 298,
! 555: 103, 0, 97, 0, 3, 0, 4, 0, 45, 3,
! 556: 0, 45, 4, 0, 230, 3, 0, 232, 0, 221,
! 557: 0, 295, 0, 297, 50, 295, 0, 296, 0, 298,
! 558: 50, 296, 0, 40, 70, 0, 40, 71, 0, 40,
! 559: 72, 0, 40, 68, 0, 40, 69, 0, 40, 60,
! 560: 0, 40, 58, 0, 40, 59, 0, 40, 106, 0,
! 561: 40, 50, 0, 40, 63, 0, 40, 64, 0, 40,
! 562: 65, 0, 40, 62, 0, 40, 51, 0, 40, 52,
! 563: 0, 40, 66, 0, 40, 67, 0, 40, 74, 0,
! 564: 40, 75, 0, 40, 57, 0, 40, 56, 0, 40,
! 565: 107, 0, 40, 53, 54, 0, 40, 61, 0, 40,
! 566: 78, 0, 40, 79, 0, 40, 42, 224, 0, 40,
! 567: 43, 0, 40, 83, 108, 0, 40, 37, 0, 40,
! 568: 36, 0, 40, 174, 222, 0, 40, 1, 0
1.1 root 569: };
570:
571: #if YYDEBUG != 0
572: static const short yyrline[] = { 0,
1.1.1.2 ! root 573: 300, 301, 309, 311, 312, 316, 320, 324, 327, 329,
! 574: 331, 332, 337, 339, 341, 344, 349, 354, 357, 361,
! 575: 364, 368, 381, 388, 395, 398, 401, 403, 407, 413,
! 576: 413, 416, 416, 419, 419, 432, 432, 437, 442, 464,
! 577: 485, 494, 495, 498, 499, 500, 501, 502, 505, 511,
! 578: 514, 519, 525, 532, 534, 552, 553, 554, 557, 571,
! 579: 584, 587, 590, 593, 595, 597, 601, 607, 612, 617,
! 580: 622, 627, 632, 637, 643, 653, 662, 669, 678, 687,
! 581: 694, 703, 711, 713, 715, 717, 721, 730, 753, 756,
! 582: 758, 759, 762, 769, 776, 780, 782, 784, 786, 790,
! 583: 796, 798, 799, 802, 804, 805, 808, 810, 811, 815,
! 584: 816, 817, 819, 821, 823, 825, 829, 831, 833, 837,
! 585: 847, 852, 856, 857, 861, 866, 869, 873, 876, 879,
! 586: 912, 927, 930, 934, 937, 941, 943, 945, 947, 949,
! 587: 953, 956, 959, 962, 964, 968, 975, 978, 981, 983,
! 588: 985, 987, 992, 1005, 1007, 1040, 1043, 1045, 1047, 1049,
! 589: 1055, 1072, 1075, 1079, 1082, 1086, 1102, 1113, 1129, 1131,
! 590: 1134, 1149, 1151, 1153, 1164, 1166, 1168, 1170, 1172, 1174,
! 591: 1176, 1178, 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194,
! 592: 1196, 1198, 1200, 1202, 1204, 1210, 1213, 1228, 1231, 1246,
! 593: 1247, 1249, 1251, 1253, 1261, 1273, 1279, 1286, 1293, 1343,
! 594: 1345, 1361, 1363, 1367, 1390, 1428, 1430, 1432, 1461, 1468,
! 595: 1470, 1472, 1474, 1477, 1480, 1482, 1524, 1526, 1528, 1530,
! 596: 1534, 1537, 1541, 1543, 1551, 1553, 1557, 1566, 1581, 1587,
! 597: 1590, 1597, 1605, 1608, 1615, 1620, 1627, 1629, 1630, 1632,
! 598: 1640, 1643, 1645, 1647, 1651, 1655, 1657, 1659, 1667, 1670,
! 599: 1672, 1674, 1685, 1688, 1690, 1692, 1696, 1699, 1707, 1708,
! 600: 1709, 1710, 1711, 1715, 1719, 1724, 1725, 1726, 1729, 1731,
! 601: 1734, 1736, 1739, 1742, 1750, 1757, 1759, 1767, 1772, 1773,
! 602: 1778, 1785, 1787, 1797, 1800, 1805, 1806, 1810, 1813, 1820,
! 603: 1826, 1829, 1834, 1837, 1841, 1843, 1848, 1851, 1854, 1860,
! 604: 1863, 1866, 1868, 1870, 1872, 1876, 1880, 1884, 1887, 1890,
! 605: 1894, 1897, 1901, 1927, 1942, 1944, 1947, 1949, 1953, 1954,
! 606: 1956, 1958, 1961, 1964, 1967, 1972, 1975, 1977, 1979, 1984,
! 607: 1988, 1993, 1998, 2005, 2010, 2019, 2024, 2024, 2026, 2029,
! 608: 2031, 2035, 2037, 2041, 2046, 2052, 2054, 2057, 2066, 2070,
! 609: 2096, 2105, 2131, 2134, 2136, 2138, 2141, 2144, 2147, 2152,
! 610: 2201, 2203, 2207, 2209, 2213, 2216, 2218, 2222, 2224, 2228,
! 611: 2230, 2234, 2236, 2240, 2245, 2247, 2249, 2251, 2257, 2260,
! 612: 2261, 2272, 2276, 2279, 2282, 2285, 2290, 2293, 2295, 2297,
! 613: 2299, 2307, 2309, 2313, 2316, 2320, 2323, 2327, 2330, 2331,
! 614: 2335, 2338, 2342, 2345, 2353, 2355, 2359, 2362, 2364, 2366,
! 615: 2368, 2370, 2372, 2374, 2376, 2378, 2379, 2381, 2383, 2385,
! 616: 2388, 2391, 2393, 2395, 2397, 2399, 2401, 2403, 2405, 2406,
! 617: 2408, 2415, 2418, 2420, 2422, 2424, 2426, 2428, 2430, 2432,
! 618: 2434, 2438, 2441, 2447, 2449, 2451, 2456, 2462, 2465, 2474,
! 619: 2476, 2478, 2480, 2482, 2485, 2487, 2489, 2491, 2493, 2495,
! 620: 2499, 2507, 2524, 2527, 2542, 2547, 2549, 2551, 2553, 2555,
! 621: 2557, 2559, 2561, 2563, 2565, 2567, 2569, 2571, 2573, 2577,
! 622: 2585, 2592, 2599, 2608, 2616, 2629, 2631, 2632, 2633, 2636,
! 623: 2643, 2655, 2657, 2662, 2664, 2667, 2681, 2684, 2687, 2689,
! 624: 2695, 2703, 2709, 2712, 2715, 2720, 2733, 2737, 2740, 2744,
! 625: 2748, 2752, 2756, 2761, 2764, 2770, 2775, 2778, 2784, 2791,
! 626: 2795, 2798, 2805, 2821, 2829, 2833, 2883, 2883, 2966, 2966,
! 627: 2982, 2982, 2986, 2990, 2993, 2998, 3005, 3014, 3023, 3032,
! 628: 3038, 3040, 3044, 3048, 3049, 3050, 3053, 3056, 3059, 3062,
! 629: 3065, 3078, 3107, 3117, 3131, 3159, 3191, 3203, 3211, 3216,
! 630: 3223, 3231, 3233, 3240, 3242, 3242, 3250, 3255, 3262, 3263,
! 631: 3265, 3265, 3268, 3289, 3305, 3324, 3341, 3344, 3346, 3349,
! 632: 3368, 3386, 3389, 3391, 3395, 3398, 3400, 3402, 3408, 3413,
! 633: 3419, 3422, 3423, 3429, 3431, 3434, 3436, 3440, 3445, 3448,
! 634: 3457, 3464, 3469, 3474, 3478, 3482, 3486, 3490, 3504, 3507,
! 635: 3509, 3511, 3513, 3515, 3523, 3539, 3544, 3545, 3546, 3550,
! 636: 3554, 3558, 3570, 3578, 3581, 3583, 3587, 3590, 3592, 3594,
! 637: 3596, 3598, 3600, 3603, 3608, 3610, 3617, 3619, 3626, 3629,
! 638: 3631, 3633, 3635, 3637, 3639, 3641, 3643, 3645, 3647, 3649,
! 639: 3651, 3653, 3655, 3657, 3666, 3668, 3670, 3672, 3674, 3676,
! 640: 3678, 3680, 3682, 3684, 3696, 3708, 3739, 3751, 3763, 3776,
! 641: 3792, 3796
1.1 root 642: };
643:
644: static const char * const yytname[] = { "$","error","$illegal.","IDENTIFIER",
645: "TYPENAME","SCOPED_TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING",
646: "ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
1.1.1.2 ! root 647: "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","HEADOF",
! 648: "CLASSOF","ATTRIBUTE","EXTENSION","LABEL","AGGR","VISSPEC","DELETE","NEW","OVERLOAD",
! 649: "THIS","OPERATOR","DYNAMIC","POINTSAT_LEFT_RIGHT","LEFT_RIGHT","TEMPLATE","SCOPE",
! 650: "START_DECLARATOR","EMPTY","TYPENAME_COLON","'{'","','","ASSIGN","'='","'?'",
! 651: "':'","RANGE","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX","EQCOMPARE","ARITHCOMPARE",
! 652: "'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS",
! 653: "MINUSMINUS","HYPERUNARY","PAREN_STAR_PAREN","POINTSAT","POINTSAT_STAR","'.'",
! 654: "DOT_STAR","'('","'['","RAISE","RAISES","RERAISE","TRY","EXCEPT","CATCH","THROW",
! 655: "ANSI_TRY","ANSI_THROW","TYPENAME_ELLIPSIS","PTYPENAME","PRE_PARSED_FUNCTION_DECL",
! 656: "EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL","TYPENAME_DEFN","IDENTIFIER_DEFN",
! 657: "PTYPENAME_DEFN","END_OF_SAVED_INPUT","')'","';'","'}'","'~'","'!'","']'","program",
! 658: "extdefs","@1",".hush_warning",".warning_ok","extdef","extern_lang_string","template_header",
! 659: "@2","template_parm_list","template_parm","overloaddef","ov_identifiers","template_def",
! 660: "@3","@4","@5","@6","fn_tmpl_end","datadef","fndef","fn.def1","fn.def2","return_id",
! 661: "return_init","base_init",".set_base_init","member_init_list","member_init",
! 662: "identifier","identifier_defn","identifier_or_opname","wrapper","template_type",
! 663: "template_type_name","tmpl.1","tmpl.2","template_arg_list","template_arg","template_instantiate_once",
! 664: "@7","template_instantiation","template_instantiate_some","unop","expr","nonnull_exprlist",
! 665: "unary_expr","@8","cast_expr","expr_no_commas","primary","@9","@10","new",".scope",
1.1 root 666: "delete","string","nodecls","object","object_star","decl","declarator","typed_declspecs",
667: "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
668: "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl0",
1.1.1.2 ! root 669: "@11","initdcl","@12","notype_initdcl0","@13","maybe_attribute","attribute_list",
! 670: "attrib","identifiers","identifiers_or_typenames","init","initlist","structsp",
! 671: "@14","@15","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
! 672: "named_class_head_sans_basetype_defn","named_class_head","@16","@17","unnamed_class_head",
! 673: "class_head","maybe_base_class_list","base_class_list","base_class","base_class.1",
! 674: "base_class_visibility_list","LC","opt.component_decl_list","component_decl_list",
! 675: "component_decl","components","component_declarator0","component_declarator",
! 676: "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
! 677: "nonmomentary_expr","@18","after_type_declarator","after_type_declarator_no_typename",
! 678: "notype_declarator","scoped_id","TYPENAME_SCOPE","scoped_typename","absdcl1",
! 679: "abs_member_declarator","after_type_member_declarator","stmts","errstmt",".pushlevel",
! 680: "maybe_label_decls","label_decls","label_decl","compstmt_or_error","compstmt",
! 681: "simple_if","@19","stmt","@20","@21","@22","@23","@24","@25","@26","@27","@28",
! 682: "@29","@30","@31","@32","@33","@34","@35","@36","try","label_colon","try_head",
! 683: "@37","ansi_try","ansi_dummy","ansi_try_head","@38","except_stmts","@39","@40",
! 684: "optional_identifier","ansi_except_stmts","@41","forhead.1","forhead.2","maybe_type_qual",
! 685: "xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
1.1 root 686: "parms","parm","abs_or_notype_decl","see_typename","dont_see_typename","try_for_typename",
687: "bad_parm","maybe_raises","raise_identifier","ansi_raise_identifier","raise_identifiers",
688: "ansi_raise_identifiers","operator_name",""
689: };
690: #endif
691:
692: static const short yyr1[] = { 0,
1.1.1.2 ! root 693: 109, 109, 111, 110, 110, 112, 113, 114, 114, 114,
! 694: 114, 114, 114, 114, 114, 114, 115, 117, 116, 118,
! 695: 118, 119, 119, 119, 119, 120, 121, 121, 123, 122,
! 696: 124, 122, 125, 122, 126, 122, 122, 122, 122, 122,
! 697: 122, 122, 122, 127, 127, 127, 127, 127, 128, 128,
! 698: 128, 128, 128, 128, 128, 128, 128, 128, 129, 129,
! 699: 129, 129, 129, 129, 129, 129, 130, 130, 130, 130,
! 700: 130, 130, 130, 130, 131, 131, 131, 131, 131, 131,
! 701: 131, 132, 133, 133, 133, 133, 134, 135, 136, 136,
! 702: 136, 136, 137, 137, 137, 137, 137, 137, 137, 137,
! 703: 138, 138, 138, 139, 139, 139, 140, 140, 140, 140,
! 704: 140, 140, 140, 140, 140, 140, 141, 141, 141, 142,
! 705: 143, 144, 144, 144, 145, 146, 146, 147, 147, 149,
! 706: 148, 150, 150, 151, 151, 152, 152, 152, 152, 152,
! 707: 153, 153, 154, 154, 154, 155, 156, 155, 155, 155,
1.1 root 708: 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
1.1.1.2 ! root 709: 155, 155, 155, 155, 155, 155, 155, 155, 157, 157,
! 710: 157, 157, 157, 157, 158, 158, 158, 158, 158, 158,
! 711: 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
! 712: 158, 158, 158, 158, 158, 158, 158, 159, 159, 159,
! 713: 159, 159, 159, 160, 159, 161, 159, 159, 159, 159,
! 714: 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
! 715: 159, 159, 159, 159, 159, 159, 162, 162, 162, 162,
! 716: 163, 163, 164, 164, 165, 165, 166, 167, 167, 168,
! 717: 169, 169, 169, 169, 169, 169, 170, 170, 170, 170,
! 718: 171, 171, 171, 171, 172, 172, 172, 172, 173, 173,
! 719: 173, 173, 174, 174, 174, 174, 175, 175, 176, 176,
! 720: 176, 176, 176, 176, 176, 177, 177, 177, 178, 178,
! 721: 179, 179, 180, 180, 182, 181, 181, 184, 183, 183,
! 722: 186, 185, 185, 187, 187, 188, 188, 189, 189, 189,
! 723: 190, 190, 191, 191, 192, 192, 192, 192, 192, 193,
! 724: 193, 193, 193, 193, 193, 195, 194, 194, 196, 194,
! 725: 194, 194, 194, 194, 197, 197, 198, 198, 199, 199,
! 726: 199, 199, 199, 199, 199, 200, 200, 200, 200, 200,
! 727: 201, 203, 202, 204, 202, 205, 206, 206, 207, 207,
! 728: 207, 208, 208, 209, 209, 210, 210, 211, 211, 211,
! 729: 211, 212, 213, 213, 213, 213, 214, 214, 214, 215,
! 730: 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
! 731: 215, 215, 215, 215, 215, 215, 215, 215, 216, 216,
! 732: 216, 217, 217, 217, 217, 217, 218, 218, 218, 218,
! 733: 218, 219, 219, 220, 220, 221, 221, 222, 222, 222,
! 734: 223, 223, 224, 224, 226, 225, 227, 227, 227, 227,
! 735: 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
! 736: 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
! 737: 228, 229, 229, 229, 229, 229, 229, 229, 229, 229,
! 738: 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
1.1 root 739: 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
1.1.1.2 ! root 740: 230, 230, 231, 232, 233, 233, 233, 233, 233, 233,
! 741: 233, 233, 233, 233, 233, 233, 233, 233, 233, 234,
! 742: 234, 234, 234, 235, 235, 236, 236, 236, 236, 237,
! 743: 238, 239, 239, 240, 240, 241, 242, 242, 243, 243,
! 744: 243, 245, 244, 246, 246, 246, 247, 246, 246, 248,
! 745: 249, 246, 250, 251, 246, 252, 253, 254, 246, 255,
! 746: 256, 257, 246, 258, 246, 259, 246, 260, 246, 261,
! 747: 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
! 748: 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
! 749: 262, 246, 246, 263, 246, 246, 246, 264, 264, 264,
! 750: 265, 265, 265, 267, 266, 268, 268, 268, 269, 271,
! 751: 270, 272, 273, 272, 274, 272, 275, 275, 276, 277,
! 752: 276, 278, 278, 278, 279, 279, 279, 279, 280, 280,
! 753: 281, 281, 281, 282, 282, 283, 283, 284, 285, 285,
! 754: 286, 286, 286, 286, 286, 286, 286, 286, 287, 287,
! 755: 287, 287, 287, 287, 288, 288, 289, 289, 289, 290,
! 756: 291, 292, 293, 294, 294, 294, 295, 295, 295, 295,
! 757: 295, 295, 295, 296, 297, 297, 298, 298, 299, 299,
! 758: 299, 299, 299, 299, 299, 299, 299, 299, 299, 299,
! 759: 299, 299, 299, 299, 299, 299, 299, 299, 299, 299,
! 760: 299, 299, 299, 299, 299, 299, 299, 299, 299, 299,
! 761: 299, 299
1.1 root 762: };
763:
764: static const short yyr2[] = { 0,
765: 0, 1, 0, 2, 2, 0, 0, 1, 1, 1,
766: 1, 5, 4, 3, 4, 4, 1, 0, 5, 1,
767: 3, 2, 4, 3, 1, 3, 1, 3, 0, 5,
768: 0, 5, 0, 5, 0, 5, 3, 3, 6, 7,
1.1.1.2 ! root 769: 4, 3, 3, 1, 1, 1, 1, 1, 2, 3,
! 770: 3, 3, 3, 2, 2, 2, 2, 1, 3, 4,
! 771: 3, 5, 4, 3, 3, 2, 3, 3, 2, 6,
! 772: 6, 4, 4, 1, 6, 4, 3, 6, 4, 3,
! 773: 2, 2, 1, 3, 4, 2, 3, 0, 0, 1,
! 774: 3, 2, 3, 1, 4, 2, 4, 2, 5, 3,
! 775: 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
! 776: 1, 2, 2, 2, 3, 3, 1, 2, 2, 3,
! 777: 4, 1, 1, 0, 0, 1, 3, 1, 1, 0,
! 778: 6, 0, 1, 0, 2, 1, 1, 1, 1, 1,
! 779: 1, 1, 1, 3, 3, 1, 0, 3, 2, 2,
! 780: 2, 2, 2, 4, 2, 4, 3, 6, 4, 5,
! 781: 9, 9, 6, 6, 3, 2, 4, 5, 1, 4,
! 782: 7, 4, 4, 4, 1, 3, 3, 3, 3, 3,
1.1 root 783: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1.1.1.2 ! root 784: 3, 3, 5, 3, 3, 3, 2, 1, 1, 1,
! 785: 1, 3, 3, 0, 4, 0, 6, 2, 4, 2,
! 786: 3, 2, 2, 1, 4, 4, 2, 2, 2, 2,
! 787: 5, 3, 5, 3, 6, 4, 1, 4, 2, 5,
! 788: 0, 1, 1, 2, 1, 2, 0, 2, 2, 2,
! 789: 3, 3, 3, 3, 2, 2, 1, 1, 2, 2,
! 790: 1, 2, 2, 3, 1, 1, 2, 2, 1, 1,
! 791: 2, 2, 1, 2, 2, 3, 1, 2, 1, 1,
! 792: 1, 1, 4, 4, 1, 1, 1, 1, 1, 3,
! 793: 1, 3, 0, 4, 0, 7, 4, 0, 7, 4,
! 794: 0, 7, 4, 0, 6, 1, 3, 1, 4, 4,
! 795: 1, 3, 1, 3, 1, 2, 3, 4, 1, 1,
! 796: 3, 4, 6, 3, 5, 0, 7, 4, 0, 6,
! 797: 3, 2, 4, 1, 0, 1, 0, 1, 1, 2,
! 798: 5, 2, 2, 2, 2, 2, 2, 2, 3, 3,
! 799: 2, 0, 3, 0, 3, 2, 1, 1, 0, 1,
! 800: 2, 1, 3, 1, 2, 3, 1, 1, 1, 2,
! 801: 2, 1, 0, 1, 4, 3, 1, 2, 2, 3,
! 802: 5, 5, 3, 3, 3, 3, 3, 5, 5, 3,
! 803: 3, 3, 3, 1, 2, 2, 3, 3, 0, 1,
! 804: 3, 3, 5, 3, 2, 2, 3, 5, 3, 2,
! 805: 2, 1, 3, 1, 3, 2, 2, 0, 1, 2,
! 806: 1, 2, 0, 2, 0, 2, 5, 5, 3, 5,
! 807: 4, 3, 3, 5, 1, 1, 5, 3, 3, 1,
! 808: 5, 5, 3, 5, 4, 3, 3, 1, 1, 3,
! 809: 3, 5, 5, 3, 5, 3, 3, 3, 4, 3,
! 810: 1, 1, 2, 2, 2, 2, 3, 3, 3, 3,
! 811: 7, 7, 5, 7, 3, 7, 7, 5, 7, 3,
! 812: 1, 3, 2, 1, 3, 3, 2, 1, 3, 3,
! 813: 2, 5, 3, 4, 3, 4, 2, 3, 2, 3,
! 814: 4, 3, 4, 5, 5, 1, 1, 2, 2, 2,
! 815: 0, 0, 1, 1, 2, 3, 1, 2, 2, 5,
! 816: 5, 0, 6, 1, 1, 2, 0, 4, 1, 0,
! 817: 0, 7, 0, 0, 9, 0, 0, 0, 9, 0,
! 818: 0, 0, 9, 0, 6, 0, 5, 0, 7, 0,
! 819: 4, 2, 2, 2, 3, 6, 8, 10, 12, 3,
! 820: 2, 2, 1, 2, 3, 6, 4, 6, 4, 3,
! 821: 0, 7, 2, 0, 5, 3, 1, 2, 3, 3,
! 822: 2, 2, 1, 0, 4, 2, 3, 3, 0, 0,
! 823: 4, 0, 0, 4, 0, 4, 0, 1, 0, 0,
! 824: 8, 3, 4, 4, 3, 4, 6, 6, 0, 1,
! 825: 0, 1, 1, 0, 1, 1, 3, 4, 1, 3,
! 826: 0, 1, 3, 2, 1, 1, 2, 2, 1, 3,
! 827: 3, 5, 3, 5, 3, 3, 1, 1, 2, 1,
! 828: 0, 0, 1, 0, 2, 4, 1, 1, 1, 2,
! 829: 2, 2, 1, 1, 1, 3, 1, 3, 2, 2,
1.1 root 830: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1.1.1.2 ! root 831: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
! 832: 2, 3, 2, 2, 2, 3, 2, 3, 2, 2,
! 833: 3, 2
1.1 root 834: };
835:
836: static const short yydefact[] = { 3,
1.1.1.2 ! root 837: 0, 0, 0, 451, 271, 474, 260, 270, 259, 0,
! 838: 0, 0, 329, 0, 0, 0, 0, 0, 413, 413,
! 839: 413, 0, 0, 74, 17, 58, 0, 5, 6, 0,
! 840: 11, 10, 9, 8, 237, 275, 124, 0, 0, 251,
! 841: 0, 281, 269, 0, 342, 344, 348, 347, 324, 0,
! 842: 413, 471, 272, 452, 4, 56, 57, 413, 473, 611,
! 843: 101, 102, 319, 103, 322, 0, 231, 27, 0, 682,
! 844: 271, 411, 680, 679, 413, 677, 658, 663, 664, 0,
! 845: 670, 669, 655, 656, 654, 673, 662, 659, 660, 661,
! 846: 665, 666, 652, 653, 649, 650, 651, 667, 668, 674,
! 847: 675, 0, 657, 671, 275, 408, 263, 0, 272, 330,
! 848: 0, 0, 456, 18, 630, 0, 0, 0, 0, 0,
! 849: 0, 231, 454, 453, 0, 455, 3, 0, 0, 271,
! 850: 0, 0, 342, 344, 634, 0, 88, 83, 237, 0,
! 851: 0, 632, 122, 123, 132, 430, 0, 413, 413, 425,
! 852: 0, 55, 0, 0, 279, 247, 248, 413, 426, 271,
! 853: 262, 261, 54, 0, 252, 0, 0, 256, 276, 277,
! 854: 253, 255, 278, 0, 49, 332, 333, 334, 335, 338,
! 855: 346, 103, 105, 104, 106, 336, 341, 337, 349, 349,
! 856: 362, 0, 66, 413, 0, 415, 0, 0, 69, 0,
! 857: 413, 611, 634, 615, 616, 631, 631, 0, 612, 619,
! 858: 321, 0, 316, 235, 0, 198, 411, 200, 231, 231,
! 859: 0, 0, 147, 233, 214, 232, 231, 137, 136, 231,
! 860: 138, 139, 0, 231, 140, 231, 0, 141, 169, 175,
! 861: 142, 146, 0, 231, 201, 0, 231, 408, 263, 0,
! 862: 408, 0, 199, 0, 26, 676, 672, 678, 413, 0,
! 863: 413, 413, 478, 611, 415, 681, 409, 265, 267, 412,
! 864: 264, 0, 457, 0, 414, 470, 448, 447, 446, 0,
! 865: 126, 129, 128, 458, 14, 0, 7, 7, 43, 42,
! 866: 634, 0, 29, 33, 37, 31, 35, 38, 283, 82,
! 867: 89, 86, 0, 231, 237, 0, 0, 0, 501, 59,
! 868: 507, 61, 472, 349, 133, 120, 249, 250, 0, 0,
! 869: 413, 413, 438, 0, 0, 439, 64, 53, 67, 0,
! 870: 52, 413, 0, 415, 0, 51, 254, 50, 65, 68,
! 871: 258, 257, 634, 282, 339, 340, 350, 343, 345, 384,
! 872: 231, 0, 389, 389, 0, 0, 367, 634, 444, 0,
! 873: 259, 0, 143, 251, 0, 450, 0, 231, 638, 639,
! 874: 0, 637, 0, 643, 645, 635, 0, 0, 294, 460,
! 875: 465, 459, 634, 0, 72, 408, 408, 413, 614, 408,
! 876: 618, 617, 0, 404, 327, 402, 318, 0, 236, 0,
! 877: 231, 0, 0, 153, 146, 0, 0, 155, 231, 231,
! 878: 231, 218, 0, 234, 219, 150, 149, 0, 0, 0,
! 879: 0, 151, 152, 273, 0, 231, 231, 0, 231, 231,
! 880: 231, 231, 231, 231, 231, 231, 231, 231, 231, 231,
! 881: 231, 231, 231, 231, 231, 208, 212, 213, 239, 240,
! 882: 238, 231, 231, 231, 227, 0, 231, 166, 107, 108,
! 883: 117, 109, 0, 210, 0, 0, 111, 197, 406, 217,
! 884: 231, 274, 407, 108, 109, 220, 28, 487, 410, 481,
! 885: 477, 0, 0, 0, 0, 489, 0, 413, 611, 415,
! 886: 268, 266, 0, 0, 20, 0, 25, 231, 121, 13,
! 887: 16, 15, 283, 48, 44, 47, 45, 46, 41, 0,
! 888: 0, 0, 0, 294, 102, 94, 231, 0, 90, 0,
! 889: 124, 0, 309, 0, 305, 84, 0, 0, 60, 63,
! 890: 508, 509, 502, 130, 429, 428, 0, 0, 413, 413,
! 891: 0, 413, 0, 415, 423, 294, 280, 419, 0, 0,
! 892: 0, 422, 0, 413, 413, 283, 359, 358, 357, 125,
! 893: 351, 352, 354, 0, 0, 386, 385, 451, 413, 231,
! 894: 231, 611, 634, 0, 390, 413, 611, 634, 0, 0,
! 895: 323, 369, 368, 81, 413, 413, 413, 449, 416, 640,
! 896: 641, 642, 0, 644, 647, 0, 0, 0, 293, 413,
! 897: 0, 413, 0, 73, 413, 413, 0, 413, 413, 611,
! 898: 627, 628, 625, 626, 634, 613, 621, 633, 623, 620,
! 899: 231, 328, 0, 327, 12, 0, 0, 0, 0, 271,
! 900: 0, 148, 203, 202, 0, 231, 145, 144, 195, 194,
! 901: 603, 602, 0, 192, 191, 189, 190, 188, 187, 186,
! 902: 183, 184, 185, 181, 182, 176, 177, 178, 179, 180,
! 903: 196, 0, 0, 229, 231, 165, 0, 263, 157, 231,
! 904: 0, 119, 118, 110, 224, 231, 112, 113, 0, 114,
! 905: 211, 0, 222, 231, 480, 476, 413, 413, 475, 479,
! 906: 413, 488, 483, 0, 485, 0, 331, 0, 19, 338,
! 907: 336, 341, 127, 294, 30, 34, 32, 36, 0, 0,
! 908: 92, 0, 96, 231, 98, 231, 0, 198, 271, 231,
! 909: 306, 0, 310, 0, 85, 62, 0, 0, 503, 504,
! 910: 0, 0, 0, 0, 0, 437, 433, 0, 0, 0,
! 911: 436, 0, 287, 413, 413, 413, 421, 0, 0, 294,
! 912: 132, 0, 361, 360, 355, 382, 383, 231, 373, 374,
! 913: 634, 395, 396, 0, 283, 0, 370, 380, 381, 634,
! 914: 0, 376, 283, 375, 377, 0, 387, 388, 445, 442,
! 915: 443, 646, 0, 636, 0, 0, 291, 463, 0, 0,
! 916: 0, 468, 0, 0, 0, 634, 629, 481, 477, 413,
! 917: 70, 0, 0, 405, 403, 320, 0, 215, 154, 156,
! 918: 172, 174, 173, 205, 0, 170, 231, 206, 209, 0,
! 919: 0, 408, 408, 159, 231, 0, 167, 231, 0, 115,
! 920: 116, 226, 231, 216, 0, 492, 490, 486, 413, 484,
! 921: 21, 24, 0, 0, 39, 93, 91, 0, 0, 100,
! 922: 231, 0, 0, 0, 307, 303, 0, 0, 198, 0,
! 923: 520, 523, 0, 0, 231, 0, 0, 0, 231, 0,
! 924: 599, 573, 0, 0, 0, 0, 231, 0, 553, 0,
! 925: 515, 0, 0, 0, 497, 514, 519, 496, 0, 231,
! 926: 0, 579, 0, 526, 530, 505, 0, 427, 424, 441,
! 927: 440, 413, 413, 413, 435, 285, 420, 417, 418, 495,
! 928: 494, 290, 356, 353, 394, 76, 413, 392, 451, 231,
! 929: 231, 634, 391, 79, 413, 0, 648, 284, 0, 0,
! 930: 413, 413, 413, 413, 413, 413, 71, 622, 624, 317,
! 931: 325, 193, 134, 0, 228, 0, 0, 0, 160, 168,
! 932: 223, 0, 221, 493, 491, 482, 23, 40, 95, 97,
! 933: 0, 0, 314, 231, 308, 0, 311, 0, 506, 500,
! 934: 511, 571, 231, 0, 231, 0, 231, 0, 540, 542,
! 935: 543, 544, 0, 0, 600, 0, 638, 639, 0, 0,
! 936: 574, 0, 580, 554, 0, 572, 516, 245, 634, 0,
! 937: 246, 0, 0, 634, 0, 510, 499, 498, 517, 563,
! 938: 0, 0, 552, 551, 0, 568, 0, 579, 0, 576,
! 939: 0, 0, 0, 0, 434, 431, 432, 0, 288, 371,
! 940: 372, 634, 0, 231, 400, 401, 283, 378, 379, 634,
! 941: 298, 0, 296, 292, 464, 461, 462, 469, 466, 467,
! 942: 0, 0, 134, 207, 230, 163, 164, 158, 225, 99,
! 943: 312, 0, 0, 304, 0, 231, 0, 0, 501, 592,
! 944: 0, 595, 0, 536, 231, 231, 545, 550, 0, 560,
! 945: 0, 231, 501, 0, 231, 501, 555, 242, 283, 241,
! 946: 244, 243, 283, 231, 566, 0, 570, 569, 564, 578,
! 947: 577, 0, 0, 131, 286, 0, 75, 393, 399, 397,
! 948: 78, 0, 0, 0, 171, 135, 415, 415, 0, 315,
! 949: 512, 0, 524, 596, 594, 0, 593, 534, 231, 0,
! 950: 541, 0, 559, 0, 575, 557, 0, 581, 518, 561,
! 951: 589, 527, 531, 289, 0, 301, 0, 0, 297, 295,
! 952: 0, 0, 313, 231, 521, 0, 0, 0, 231, 537,
! 953: 538, 604, 0, 0, 0, 582, 565, 0, 0, 398,
! 954: 299, 0, 300, 161, 162, 513, 231, 231, 598, 597,
! 955: 535, 231, 0, 0, 605, 606, 546, 558, 556, 0,
! 956: 0, 0, 0, 302, 522, 0, 539, 231, 604, 0,
! 957: 0, 585, 562, 583, 0, 528, 532, 0, 0, 0,
! 958: 547, 607, 0, 0, 587, 231, 231, 525, 608, 0,
! 959: 0, 586, 584, 588, 0, 529, 533, 609, 0, 548,
! 960: 590, 0, 0, 0, 610, 549, 591, 0, 0, 0
1.1 root 961: };
962:
1.1.1.2 ! root 963: static const short yydefgoto[] = { 1238,
! 964: 1, 2, 128, 501, 28, 29, 30, 274, 494, 495,
! 965: 31, 69, 32, 510, 512, 511, 513, 509, 33, 34,
! 966: 35, 352, 138, 139, 140, 301, 518, 519, 559, 187,
! 967: 464, 465, 36, 37, 145, 751, 280, 281, 315, 731,
! 968: 316, 1054, 236, 880, 238, 239, 411, 240, 241, 242,
! 969: 420, 943, 456, 243, 244, 245, 141, 246, 247, 881,
! 970: 343, 882, 171, 883, 248, 268, 406, 269, 154, 41,
! 971: 379, 155, 1028, 344, 1106, 42, 930, 599, 1042, 1043,
! 972: 1148, 857, 723, 724, 43, 398, 212, 1052, 623, 44,
! 973: 45, 46, 47, 189, 190, 48, 49, 348, 561, 562,
! 974: 563, 564, 192, 355, 356, 357, 574, 575, 923, 395,
! 975: 396, 283, 611, 251, 115, 367, 368, 156, 325, 157,
! 976: 252, 52, 109, 267, 484, 159, 884, 885, 533, 728,
! 977: 729, 730, 310, 886, 887, 1154, 888, 1094, 974, 1177,
! 978: 975, 1156, 1022, 1168, 1216, 1023, 1169, 1217, 1159, 1129,
! 979: 1182, 1076, 1166, 1141, 889, 890, 891, 1083, 892, 1018,
! 980: 893, 1086, 1190, 1214, 1213, 1225, 1167, 1234, 894, 895,
! 981: 986, 643, 1184, 1185, 1186, 1229, 485, 209, 210, 613,
! 982: 200, 386, 313, 619, 199, 375, 595, 376, 596, 253
1.1 root 983: };
984:
1.1.1.2 ! root 985: static const short yypact[] = { 74,
! 986: 1739, 4756, 279,-32768, 553,-32768,-32768,-32768,-32768, 134,
! 987: 3, 7,-32768, 116, 3181, 47, 90, 84,-32768,-32768,
! 988: -32768, 507, 143,-32768,-32768,-32768, 219,-32768, 202, 1894,
! 989: -32768,-32768,-32768,-32768, 293, 235, 228, 670, 6083, 784,
! 990: 26,-32768,-32768, 1231,-32768,-32768,-32768,-32768, 356, 982,
! 991: -32768,-32768, 176,-32768,-32768,-32768,-32768,-32768,-32768, 1783,
! 992: -32768,-32768, 256,-32768, 380, 468, 5573,-32768, 28,-32768,
! 993: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 407,
! 994: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1.1 root 995: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1.1.1.2 ! root 996: -32768, 390,-32768,-32768,-32768, 821, 973, 704,-32768,-32768,
! 997: 468, 120,-32768,-32768, 512, 507, 4913, 4913, 478, 235,
! 998: 253, 5573,-32768,-32768, 120,-32768, 441, 1370, 345, 478,
! 999: 3720, 6267, 189, 291, 593, 551,-32768, 699, 381, 107,
! 1000: 107,-32768,-32768,-32768, 465, 478, 2187,-32768,-32768,-32768,
! 1001: 5301,-32768, 717, 72,-32768, 640, 643,-32768,-32768, 860,
! 1002: -32768,-32768,-32768, 452, 784, 199, 1799,-32768,-32768,-32768,
! 1003: 921,-32768,-32768, 3720,-32768,-32768,-32768,-32768,-32768,-32768,
! 1004: -32768, 143,-32768,-32768,-32768,-32768,-32768, 557, 516, 516,
! 1005: -32768, 4869,-32768,-32768, 3273, 510, 212, 504, 427, 5196,
! 1006: -32768, 1783, 187,-32768,-32768,-32768, 1223, 531, 338, 608,
! 1007: -32768, 120, 590,-32768, 48,-32768, 617,-32768, 5783, 5827,
! 1008: 654, 662,-32768,-32768,-32768, 725, 5656,-32768,-32768, 5656,
! 1009: -32768,-32768, 4223, 5656,-32768, 5656, 651, 733,-32768,-32768,
! 1010: 6418, 1638, 764, 5241, 762, 272, 5656, 821, 597, 703,
! 1011: 6326, 339,-32768, 809,-32768, 512,-32768,-32768,-32768, 876,
! 1012: -32768,-32768,-32768, 6311, 716,-32768, 696, 973,-32768,-32768,
! 1013: 973, 51,-32768, 1414,-32768,-32768, 643, 643,-32768, 135,
! 1014: -32768, 3268,-32768,-32768,-32768, 4683,-32768,-32768,-32768,-32768,
! 1015: 163, 305,-32768,-32768,-32768,-32768,-32768,-32768, 788,-32768,
! 1016: 257,-32768, 4306, 5656,-32768, 107, 107, 799, 727,-32768,
! 1017: -32768,-32768,-32768, 516,-32768,-32768, 640, 643, 4882, 4882,
! 1018: -32768,-32768,-32768, 5384, 525,-32768,-32768,-32768, 427, 3720,
! 1019: -32768,-32768, 3380, 729, 5467,-32768, 921,-32768,-32768, 427,
! 1020: -32768,-32768, 163,-32768,-32768,-32768, 136,-32768,-32768,-32768,
! 1021: 5656, 719, 1556, 5909, 30, 1485,-32768, 593, 512, 756,
! 1022: 617, 38, 6464, 532, 774,-32768, 793, 5656,-32768, 478,
! 1023: 754,-32768, 892,-32768,-32768, 865, 1035, 835, 889, 478,
! 1024: 143,-32768, 187, 823,-32768, 1091, 1091,-32768,-32768, 5967,
! 1025: -32768,-32768, 4306, 872, 881,-32768,-32768, 120,-32768, 829,
! 1026: 5656, 617, 4223,-32768, 1089, 375, 4223,-32768, 5656, 5739,
! 1027: 5656,-32768, 80,-32768,-32768,-32768,-32768, 836, 844, 799,
! 1028: 854,-32768,-32768,-32768, 4638, 5656, 5656, 4389, 5656, 5656,
! 1029: 5656, 5656, 5656, 5656, 5656, 5656, 5656, 5656, 5656, 5656,
! 1030: 5656, 5656, 5656, 5656, 5656,-32768,-32768,-32768,-32768,-32768,
! 1031: -32768, 5656, 5656, 5656, 451, 903, 2016,-32768,-32768, 478,
! 1032: 885, 143, 368, 431, 327, 339,-32768,-32768,-32768,-32768,
! 1033: 5656,-32768,-32768,-32768,-32768, 506,-32768, 512, 696, 1037,
! 1034: 1037, 41, 538, 857, 864,-32768, 855,-32768, 1783, 863,
! 1035: -32768, 973, 938, 376,-32768, 3785,-32768, 5573,-32768,-32768,
! 1036: -32768,-32768, 788,-32768,-32768,-32768,-32768,-32768,-32768, 875,
! 1037: 878, 880, 887, 889, 478,-32768, 5656, 416,-32768, 521,
! 1038: 706, 120,-32768, 3808, 6464,-32768, 64, 107,-32768,-32768,
! 1039: -32768,-32768, 943,-32768, 640, 640, 4882, 4882,-32768,-32768,
! 1040: 540,-32768, 3487, 888,-32768, 889,-32768, 512, 886, 168,
! 1041: 890,-32768, 891,-32768,-32768, 788,-32768,-32768,-32768,-32768,
! 1042: 945,-32768,-32768, 230, 6387,-32768,-32768, 946, 53, 5656,
! 1043: 5656, 6141, 163, 218,-32768, 93, 6141, 735, 185, 947,
! 1044: -32768,-32768,-32768, 567,-32768,-32768,-32768,-32768,-32768,-32768,
! 1045: -32768,-32768, 212,-32768,-32768, 195, 468, 922, 957,-32768,
! 1046: 3594,-32768, 3701,-32768,-32768, 90, 330,-32768,-32768, 6025,
! 1047: -32768, 643,-32768,-32768, 187,-32768, 958,-32768, 960,-32768,
! 1048: 5656, 120, 912, 881,-32768, 234, 915, 920, 923, 25,
! 1049: 924,-32768,-32768,-32768, 925, 5324,-32768, 6464, 6464, 6464,
! 1050: -32768,-32768, 975, 6500, 6515, 3367, 1941, 3333, 2068, 2134,
! 1051: 1296, 1296, 1296, 981, 981, 801, 801,-32768,-32768,-32768,
! 1052: -32768, 336, 930, 951, 5656,-32768, 1035, 797, 994, 5656,
! 1053: 939,-32768,-32768,-32768,-32768, 5656,-32768, 478, 69,-32768,
! 1054: 548, 337,-32768, 5656, 696, 696,-32768,-32768,-32768,-32768,
! 1055: -32768,-32768, 512, 953,-32768, 949,-32768, 1414,-32768, 965,
! 1056: 639, 1006,-32768, 889,-32768,-32768,-32768,-32768, 305, 344,
! 1057: -32768, 257,-32768, 5656,-32768, 5656, 576, 1009, 692, 5656,
! 1058: -32768, 1012,-32768, 29,-32768,-32768, 120, 2982, 943,-32768,
! 1059: 356, 611, 618, 4882, 4882,-32768, 512, 967, 348, 970,
! 1060: -32768, 969, 1016,-32768,-32768,-32768,-32768, 4882, 4882, 889,
! 1061: 465, 136,-32768,-32768,-32768,-32768,-32768, 5656,-32768,-32768,
! 1062: 187, 6464, 6464, 976, 787, 2035,-32768,-32768,-32768, 187,
! 1063: 978,-32768, 820,-32768,-32768, 4927,-32768,-32768, 512, 512,
! 1064: 512,-32768, 1035,-32768, 58, 996,-32768, 512, 979, 370,
! 1065: 985, 512, 986, 372, 987, 187, 643, 424, 424, 41,
! 1066: -32768, 4306, 4306, 6464,-32768,-32768, 991,-32768,-32768,-32768,
! 1067: -32768,-32768,-32768,-32768, 4140,-32768, 5656,-32768,-32768, 468,
! 1068: 65, 821, 6326,-32768, 5656, 4306,-32768, 5656, 418,-32768,
! 1069: -32768,-32768, 5656,-32768, 433, 1037, 1037, 512,-32768,-32768,
! 1070: -32768,-32768, 146, 305,-32768,-32768,-32768, 454, 458,-32768,
! 1071: 5656, 6365, 4306, 3891,-32768,-32768, 264, 690, 1045, 1022,
! 1072: -32768,-32768, 1028, 1029, 5656, 1058, 1011, 1013, 5407, 120,
! 1073: 1083,-32768, 283, 1064, 212, 1067, 5490, 445,-32768, 1014,
! 1074: -32768, 2220, 6199, 2336,-32768,-32768, 1106,-32768, 2147, 5031,
! 1075: 2447,-32768, 2554,-32768,-32768,-32768, 4869,-32768,-32768, 640,
! 1076: 640,-32768,-32768,-32768,-32768,-32768, 512, 512, 512, 640,
! 1077: 640, 1071,-32768,-32768, 6464,-32768, 712, 1072, 1068, 5656,
! 1078: 5656, 163,-32768,-32768, 730, 4801,-32768,-32768, 1123, 4306,
1.1 root 1079: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1.1.1.2 ! root 1080: 1077, 6484, 465, 61,-32768, 1027, 1032, 475,-32768,-32768,
! 1081: -32768, 477,-32768, 696, 696, 512,-32768,-32768,-32768,-32768,
! 1082: 487, 4306,-32768, 5656,-32768, 1084,-32768, 120,-32768,-32768,
! 1083: -32768,-32768, 5656, 1059, 5136, 3974, 5656, 800,-32768,-32768,
! 1084: -32768,-32768, 1036, 1039,-32768, 1062, 1041, 22, 1046, 605,
! 1085: -32768, 609,-32768,-32768, 1048,-32768,-32768,-32768, 741, 300,
! 1086: -32768, 1050, 312, 420, 1052,-32768,-32768,-32768,-32768,-32768,
! 1087: 212, 120,-32768,-32768, 771,-32768, 2661,-32768, 783,-32768,
! 1088: 2768, 4472, 4472, 40, 512, 512, 512, 4306,-32768,-32768,
! 1089: -32768, 187, 4306, 5656, 6464, 6464, 788,-32768,-32768, 187,
! 1090: 1080, 509,-32768,-32768, 512, 512, 512, 512, 512, 512,
! 1091: 4057, 1044, 465,-32768,-32768, 1076, 1082,-32768,-32768,-32768,
! 1092: -32768, 6442, 4306,-32768, 1063, 5656, 1154, 1073, 1074,-32768,
! 1093: 1078,-32768, 1075,-32768, 5656, 5136,-32768,-32768, 468,-32768,
! 1094: 1079, 5656,-32768, 1085, 5656,-32768,-32768,-32768, 788,-32768,
! 1095: -32768,-32768, 788, 5136, 865, 1126,-32768,-32768,-32768,-32768,
! 1096: -32768, 1086, 1088,-32768,-32768, 4306,-32768,-32768, 6464, 1128,
! 1097: -32768, 513, 1123, 1081,-32768,-32768,-32768,-32768, 4306,-32768,
! 1098: -32768, 1090,-32768,-32768,-32768, 3089,-32768,-32768, 5136, 1140,
! 1099: -32768, 59,-32768, 542,-32768,-32768, 543,-32768,-32768,-32768,
! 1100: -32768,-32768,-32768,-32768, 4306,-32768, 1093, 544,-32768,-32768,
! 1101: 1095, 1099,-32768, 5136,-32768, 1117, 818, 2875, 5136,-32768,
! 1102: -32768, 1199, 1109, 1114, 1115,-32768, 1121, 4555, 4555,-32768,
! 1103: -32768, 1219,-32768,-32768,-32768,-32768, 5136, 5656,-32768,-32768,
! 1104: -32768, 5136, 1141, 216, 1176,-32768,-32768,-32768,-32768, 99,
! 1105: 1150, 1130, 1139,-32768,-32768, 1143,-32768, 5656, 1199, 1145,
! 1106: 1199,-32768,-32768,-32768, 1035,-32768,-32768, 1147, 1144, 349,
! 1107: -32768,-32768, 799, 799, 120, 5136, 5136,-32768,-32768, 1242,
! 1108: 1149,-32768,-32768,-32768, 1151,-32768,-32768,-32768, 547,-32768,
! 1109: -32768, 1245, 1152, 799,-32768,-32768,-32768, 1258, 1263,-32768
1.1 root 1110: };
1111:
1112: static const short yypgoto[] = {-32768,
1.1.1.2 ! root 1113: 1142,-32768,-32768, 984, 1264,-32768,-32768,-32768,-32768, 569,
! 1114: -32768,-32768,-32768,-32768,-32768,-32768,-32768, -669, 1146, 1148,
! 1115: -32768,-32768,-32768,-32768, 1134,-32768,-32768, 565, -7, 785,
! 1116: -225,-32768, 95, -20,-32768,-32768,-32768, 786, -888,-32768,
! 1117: 535, 237,-32768, 125, 186, 722,-32768, -144, 908, -184,
! 1118: -32768,-32768,-32768,-32768, -182, -64, -106,-32768,-32768, 311,
! 1119: -33, 52, 1127, 363, -8, 1017, -1, 37, 409, -30,
! 1120: -278,-32768,-32768, 968,-32768,-32768,-32768, -484,-32768, 182,
! 1121: -32768,-32768, 555, 482, -12,-32768,-32768,-32768, 675, -252,
! 1122: 1272, 1274,-32768,-32768,-32768,-32768,-32768, -145,-32768, 554,
! 1123: -532,-32768, 574, 410, 534, -341, 954,-32768,-32768, 913,
! 1124: 691, -59, -88, -2, 1375, -261,-32768, -67, 988, 1536,
! 1125: 668,-32768, 24, -173,-32768, -134, -852, -835, -306,-32768,
! 1126: -32768, 585, -118, -129,-32768,-32768, 66,-32768,-32768,-32768,
1.1 root 1127: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1.1.1.2 ! root 1128: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 297,
! 1129: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
! 1130: -32768, -959, 119,-32768, 118,-32768, -29,-32768, -254, -27,
! 1131: 23, 1113,-32768,-32768, -119, -574, 541, 310,-32768, 1070
1.1 root 1132: };
1133:
1134:
1.1.1.2 ! root 1135: #define YYLAST 6587
1.1 root 1136:
1137:
1138: static const short yytable[] = { 40,
1.1.1.2 ! root 1139: 40, 215, 65, 487, 153, 164, 106, 250, 166, 113,
! 1140: 311, 311, 108, 107, 583, 299, 326, 266, 782, 497,
! 1141: 514, 496, 312, 188, 53, 53, 476, 173, 40, 709,
! 1142: 208, 755, 307, 329, 405, 405, 186, 165, 1017, 845,
! 1143: 1021, 116, 405, 414, 349, 405, 272, 340, 1007, 405,
! 1144: 546, 405, 38, 38, 1053, 61, 62, 399, 40, 405,
! 1145: 399, 743, 1102, 1103, 580, 249, 59, 399, 399, 59,
! 1146: 399, 830, 553, -1, 580, 174, 172, 254, 854, 317,
! 1147: 110, 131, 416, 385, 66, 417, 479, 425, 67, 422,
! 1148: 483, 423, 61, 62, 173, 61, 62, 291, 292, 458,
! 1149: 687, 369, 370, 6, 273, 112, 271, 308, 15, 105,
! 1150: 688, 206, 1162, 425, 425, 224, 120, 284, 68, 1202,
! 1151: 249, 330, 61, 62, 413, -102, 40, 812, 111, 175,
! 1152: 165, 255, 120, 855, 581, 617, 61, 62, 61, 62,
! 1153: 586, 557, 112, 371, 1104, 112, 64, 114, 61, 62,
! 1154: 400, 53, 173, 493, 105, 309, 759, 760, 173, 469,
! 1155: 928, 1163, 473, 1055, 1053, 365, 725, 842, 534, 945,
! 1156: 558, 503, 384, 421, 958, 331, 311, 311, 531, 38,
! 1157: 335, 1007, 63, 64, 498, 1007, 64, 529, 530, 326,
! 1158: 40, 237, 23, 364, 275, 372, 768, 769, 528, 499,
! 1159: 40, 172, 105, 1203, 394, 165, 122, 342, 1192, 1193,
! 1160: 120, 120, 120, 64, 369, 370, 6, 425, 201, 844,
! 1161: 374, 123, 124, 556, 704, 120, 405, 64, 696, 182,
! 1162: 414, 249, 61, 62, 766, 753, 173, 293, 584, 182,
! 1163: 681, 120, 294, 353, 783, 120, 206, 197, 174, 271,
! 1164: 127, 535, 536, 206, 198, 173, 371, 202, 173, 61,
! 1165: 515, 125, 40, 604, 754, 912, 632, 766, 120, 1199,
! 1166: 745, 197, 40, 1158, 459, 460, 143, 750, 198, 142,
! 1167: 521, 144, 742, 425, 40, 987, 988, 6, 774, 775,
! 1168: 635, 120, 295, 520, 120, 194, 105, 784, 990, 516,
! 1169: 992, 105, 338, 551, 491, 23, 685, 686, 372, 53,
! 1170: 957, 15, 126, 968, 461, 206, 136, 594, 1200, 573,
! 1171: 578, 767, 1007, 182, 173, 206, 560, 371, 504, 677,
! 1172: 678, 364, 4, 119, 195, 196, 808, 38, 517, 296,
! 1173: 120, 459, 474, 627, 297, 105, 137, 628, 389, 330,
! 1174: 182, 173, 165, 505, 40, 279, 506, 419, 507, 614,
! 1175: 211, 174, 618, 39, 39, 462, 15, 969, 105, 15,
! 1176: 61, 62, 606, 342, 19, 107, 182, 463, 15, 372,
! 1177: 362, 461, 56, 57, 206, 425, 425, 390, 40, 608,
! 1178: 394, 391, 132, 425, 298, 120, 669, 425, 311, 609,
! 1179: 172, 249, 1220, 1090, 191, 249, 263, 353, 508, 726,
! 1180: 673, 610, 265, 120, 120, 1092, 711, 470, 120, 425,
! 1181: 23, 425, 207, 23, 120, 698, 4, 119, 213, 120,
! 1182: 392, 275, 475, 479, 137, 27, 483, 326, 818, 834,
! 1183: 699, 206, 326, 497, 463, 496, 846, 120, 289, 290,
! 1184: 903, 1221, 378, 765, 668, 674, 471, -283, 773, 694,
! 1185: 257, 64, 194, 15, -87, 712, 606, 425, 19, 732,
! 1186: 733, 105, 932, 675, 935, 188, -283, 214, -283, 173,
! 1187: 120, 120, 425, 608, 305, 405, 918, 40, 701, 527,
! 1188: 39, 664, 589, 609, 918, 801, 249, 258, 996, 665,
! 1189: 263, 195, 196, 425, 197, 610, 265, 425, 122, 4,
! 1190: 119, 198, 676, 740, 717, 1146, 722, 23, 550, 275,
! 1191: 951, 1147, 59, -248, 425, 827, 425, 419, 491, 27,
! 1192: -283, 419, 785, 629, 631, 953, 425, 168, 169, 170,
! 1193: 206, 364, 764, 560, 10, 285, 15, 771, 683, 17,
! 1194: 105, 19, 642, 300, 354, 336, 959, 207, 1113, 120,
! 1195: 960, 113, 314, 713, 207, 13, 20, 542, 113, 347,
! 1196: 40, 791, 16, 795, 470, 40, 21, 1058, 663, 1059,
! 1197: 488, 671, 542, 105, 583, 377, 626, 684, 22, 1060,
! 1198: 832, 425, 425, 1172, 206, 58, 1232, 59, 113, 364,
! 1199: 23, 364, 714, 169, 170, 345, 543, 544, 40, 10,
! 1200: 346, 1114, 27, 471, 394, 1204, 374, 366, 850, 489,
! 1201: 490, 543, 544, 206, 685, 686, 207, 545, 206, 833,
! 1202: 13, 120, 120, 388, 60, 194, 207, 16, 662, 470,
! 1203: 689, 916, 736, 405, 1164, 1165, 1173, 1081, 39, 1233,
! 1204: 924, 1084, 206, 332, 206, 173, 682, 851, 822, 393,
! 1205: 332, 206, 954, 955, 823, 107, 900, 901, 51, 51,
! 1206: 777, 778, 4, 146, 195, 196, 937, 197, 471, 560,
! 1207: 910, 911, 332, 950, 198, 194, 1082, 120, -22, 51,
! 1208: 1085, 521, 333, 334, 397, 207, 40, 51, 401, 333,
! 1209: 334, 120, 710, -22, 520, 158, 158, 71, 6, 15,
! 1210: 8, 270, 17, 898, 19, 147, 10, 327, 354, 856,
! 1211: 899, 333, 334, 594, 195, 196, 364, 412, 739, 148,
! 1212: 12, 560, 922, 946, 947, 409, 59, 13, 488, 149,
! 1213: -634, 302, -634, 410, 16, -102, 150, -634, 715, 206,
! 1214: 303, 151, 207, 424, 143, 944, 590, 591, 1110, 144,
! 1215: 224, 105, 1126, 23, 15, -634, -634, 566, -634, 413,
! 1216: -634, 399, 567, 152, 40, 27, 1135, 489, 490, 1138,
! 1217: 304, 107, 425, 51, 51, 51, 790, 716, 794, 168,
! 1218: 169, 170, 105, 970, 971, 51, 10, 23, 158, 158,
! 1219: 455, 197, 1037, 169, 170, 472, 120, 722, 198, 10,
! 1220: 546, 477, 378, 378, 158, 1030, 1031, 13, 158, 197,
! 1221: 328, 271, 560, 486, 16, 197, 198, 353, 120, 120,
! 1222: 13, 532, 198, 1038, 1039, -77, 552, 16, 772, 824,
! 1223: -77, 158, 120, 120, 1088, 378, 966, 309, 999, 1002,
! 1224: 821, 207, 1003, 1074, 1075, 1151, 1152, 526, 585, 51,
! 1225: 120, 829, 984, 259, 373, 989, 260, 51, -80, 835,
! 1226: 443, 444, 445, -80, 970, 1097, 587, 105, 825, 1089,
! 1227: 261, 165, 364, -430, 1093, -430, 970, 1100, 364, 364,
! 1228: 262, 364, 120, 120, 592, 40, 374, 263, 374, 848,
! 1229: 588, 849, 264, 265, 59, 207, 71, 6, -430, 8,
! 1230: 72, -430, 1107, 466, 593, 10, 597, 105, 259, 598,
! 1231: 1111, 970, 1179, 621, 40, 605, 341, 169, 170, 12,
! 1232: 622, 482, 625, 10, 207, 261, 13, 672, 633, 207,
! 1233: 404, 408, -430, 16, -430, 262, 634, 620, 353, 1008,
! 1234: 666, -430, 263, 51, 13, 1014, 636, 264, 265, 690,
! 1235: 1064, 16, 692, 207, -430, 207, 691, 120, 522, 120,
! 1236: 695, 697, 207, 364, 364, 727, 120, 353, 705, 169,
! 1237: 170, 706, 193, 707, 667, 10, 158, 158, 744, 978,
! 1238: 708, 158, 746, 983, 752, 741, 23, 158, 747, 758,
! 1239: 776, 995, 51, 786, 1096, -634, 13, -634, 787, 802,
! 1240: 948, 803, -634, 16, 1132, 364, 806, 809, 952, 364,
! 1241: 158, 158, 810, 51, 194, 811, 813, 814, 817, 282,
! 1242: -634, -634, 820, -634, 374, -634, 961, 819, 71, 6,
! 1243: 1067, 8, 72, 966, 275, 826, 828, 10, 441, 442,
! 1244: 443, 444, 445, 51, 51, 839, 840, 51, 182, 843,
! 1245: 207, 12, -101, 195, 196, 853, 197, 906, 13, 902,
! 1246: 54, 54, 904, 198, 364, 16, 905, 929, 917, 259,
! 1247: 925, 931, 1008, 1222, 1223, -634, 1008, 933, 934, 936,
! 1248: 985, 54, 364, 4, 119, 940, 261, 1065, 972, 54,
! 1249: 1071, 1073, 363, 973, 1237, 120, 262, 54, 54, 976,
! 1250: 977, 979, 991, 263, 980, 993, 981, 997, 264, 265,
! 1251: 1009, 1034, 1029, 1033, 364, 1041, 1051, 364, 23, 1056,
! 1252: 15, 446, 679, 606, 1057, 19, 607, 1063, 354, 1077,
! 1253: 1066, 1131, 1078, 1079, -101, 1215, 642, 642, 1115, 1080,
! 1254: 608, 1087, 364, 1091, 468, 970, 364, 364, 1117, 1139,
! 1255: 609, 1112, 447, 448, 1118, 1121, 449, 263, 451, 1123,
! 1256: 453, 454, 610, 265, 1140, 364, 1124, 1128, 1125, 1145,
! 1257: 364, 1127, 1133, 1150, 23, 54, 54, 54, 1136, 1142,
! 1258: 1122, 1143, 1155, 1161, 1160, 1171, 27, 54, 1178, 1130,
! 1259: 54, 54, 1174, 107, 158, 158, 1175, 1224, 1183, 1191,
! 1260: 525, 363, 1187, 374, 364, 364, 54, 1188, 1189, 1176,
! 1261: 54, 1194, 1198, 1008, 1181, 1201, 71, 6, 161, 8,
! 1262: 162, 1205, 1206, 61, 62, 10, 176, 177, 178, 158,
! 1263: 363, 1207, 1195, 54, 158, 1208, 1219, 1197, 1211, 12,
! 1264: 1218, 1228, 1230, 1231, 1235, 1236, 13, 1239, 565, 354,
! 1265: 373, 54, 1240, 16, 179, 55, 841, 1134, 286, 54,
! 1266: 1137, 502, 306, 287, 51, 288, 847, 800, 180, 181,
! 1267: 702, 1226, 1227, 703, 120, 913, 1072, 492, 354, 1116,
! 1268: 1000, 337, 642, 642, 1149, 415, 941, 547, 807, 105,
! 1269: 525, 133, 1196, 134, 897, 914, 1024, 579, 363, 926,
! 1270: 624, 541, 805, 896, 1099, 467, 23, 1210, 1212, 387,
! 1271: 1095, 467, 1209, 927, 182, 0, 0, 0, 0, 183,
! 1272: 184, 185, 638, 639, 640, 0, 644, 645, 646, 647,
! 1273: 648, 649, 650, 651, 652, 653, 654, 655, 656, 657,
! 1274: 658, 659, 660, 0, 0, 54, 938, 939, 0, 661,
! 1275: 363, 439, 440, 441, 442, 443, 444, 445, 0, 0,
! 1276: 3, 0, 4, 5, 6, 7, 8, 9, 363, 522,
! 1277: 949, 0, 10, 0, 0, 0, 0, 0, 54, 54,
! 1278: 0, 0, 0, 54, 117, 118, 12, 0, 0, 54,
! 1279: 0, 158, 158, 13, 54, 282, 0, 963, 967, 15,
! 1280: 16, 0, 17, 0, 19, 158, 158, 71, 6, 7,
! 1281: 8, 9, 54, 54, 363, 54, 10, 0, 0, 20,
! 1282: 0, 525, 203, 158, 0, 0, 0, 0, 0, 21,
! 1283: 12, 0, 0, 51, 0, 0, 0, 13, 0, 256,
! 1284: 363, 22, 0, 0, 16, 54, 54, 0, 0, 54,
! 1285: 0, 0, 0, 23, 24, 51, 51, 0, 0, 0,
! 1286: 0, 0, 0, 26, 0, 27, 0, 762, 763, 0,
! 1287: 0, 0, 0, 0, 1044, 350, 0, 4, 130, 6,
! 1288: 7, 8, 9, 0, 0, 0, 0, 10, 0, 0,
! 1289: 0, 0, 0, 0, 0, 0, 0, 23, 363, 0,
! 1290: 363, 12, 0, 0, 0, 0, 1061, 0, 13, -364,
! 1291: 0, 0, 319, 320, 15, 16, 0, 17, 804, 19,
! 1292: 0, 0, 0, 0, 680, 467, 50, 50, 351, 0,
! 1293: 373, 0, 373, 816, 20, 0, 0, 0, 0, 158,
! 1294: 158, 0, 0, 0, 21, 0, 0, 121, 568, 146,
! 1295: 0, 0, 0, 0, 51, 135, 22, 0, 359, 0,
! 1296: 0, 0, 363, 0, 167, 383, 0, 0, 23, 0,
! 1297: 0, 0, 1105, 363, 0, 0, 0, 1108, 582, -364,
! 1298: 27, 363, 0, 51, 0, 15, 0, 0, 569, 0,
! 1299: 19, 147, 0, 570, 0, 967, 54, 54, 0, 571,
! 1300: 0, 0, 0, 0, 0, 148, 0, 1120, 0, 0,
! 1301: 0, 363, 0, 363, 0, 149, 0, 852, 0, 0,
! 1302: 0, 0, 150, 478, 0, 480, 481, 572, 0, 0,
! 1303: 0, 54, 0, 0, 0, 0, 54, 0, 0, 23,
! 1304: 0, 276, 277, 278, 0, 0, 0, 0, 0, 0,
! 1305: 1144, 27, 0, 50, 0, 915, 0, 0, 0, 0,
! 1306: 0, 0, 0, 1153, 0, 0, 54, 0, 373, 54,
! 1307: 446, 0, 318, 0, 0, 0, 121, 0, 0, 0,
! 1308: 0, 0, 0, 0, 0, 537, 538, 0, 0, 1170,
! 1309: 0, 0, 0, 0, 0, 0, 548, 0, 0, 525,
! 1310: 525, 447, 448, 0, 0, 449, 450, 451, 452, 453,
! 1311: 454, 0, 525, 0, 942, 0, 0, 358, 0, 0,
! 1312: 0, 0, 363, 525, 0, 382, 0, 0, -2, 3,
! 1313: 363, 4, 5, 6, 7, 8, 9, 0, 831, 0,
! 1314: 0, 10, 0, 0, 0, 0, 0, 0, 363, 0,
! 1315: 525, 525, 615, 0, 11, 12, 0, 0, 0, 0,
! 1316: 0, 0, 13, 0, 0, 0, 14, 0, 15, 16,
! 1317: 0, 17, 18, 19, 0, 0, 71, 6, 7, 8,
! 1318: 9, 0, 0, 204, 0, 10, 0, 0, 20, 339,
! 1319: 0, 0, 0, 54, 54, 0, 0, 0, 21, 12,
! 1320: 0, 0, 0, 0, 0, 0, 13, 54, 54, 0,
! 1321: 22, 50, -634, 16, -634, 0, 0, 1035, 1036, -634,
! 1322: 0, 0, 23, 24, 25, 54, 0, 525, 0, 0,
! 1323: 0, 194, 26, 0, 27, 54, 0, -634, -634, 0,
! 1324: -634, 0, -634, 0, 277, 278, 0, 373, 0, 121,
! 1325: 0, 0, 693, 0, 0, 0, 0, 54, 54, 525,
! 1326: 382, 1062, 0, 0, 0, 205, 23, 0, 0, 0,
! 1327: 195, 196, 0, 197, 0, 0, 0, 0, 0, 0,
! 1328: 198, 358, 0, 0, 129, 0, 4, 130, 6, 7,
! 1329: 8, 9, -248, 0, 0, 0, 10, 0, 0, 0,
! 1330: 0, 0, 0, 734, 735, 0, 737, 0, 0, 0,
! 1331: 12, 612, 612, 0, 0, 612, 0, 13, 748, 749,
! 1332: 0, 0, 0, 15, 16, 525, 17, 0, 19, 0,
! 1333: 525, 1109, 0, 761, 0, 0, 0, 0, 0, 0,
! 1334: 770, 54, 54, 20, 0, 0, 0, 0, 525, 779,
! 1335: 780, 781, 0, 21, 0, 0, 54, 0, 0, 0,
! 1336: 525, 0, 0, 0, 788, 22, 792, 0, 0, 796,
! 1337: 478, 0, 798, 799, 0, 0, 0, 23, 0, 363,
! 1338: 0, 0, 363, 0, 0, 54, 0, 0, 0, 27,
! 1339: 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
! 1340: 443, 444, 445, 525, 0, 0, 0, 0, 216, 130,
! 1341: 6, 0, 8, 402, 218, 214, 525, 219, 10, 0,
! 1342: 0, 0, 0, 0, 0, 0, 0, 919, 146, 0,
! 1343: 0, 0, 12, 220, 221, 222, 0, 223, 0, 13,
! 1344: 0, 224, 525, 0, 225, 15, 16, 0, 0, 0,
! 1345: 226, 836, 837, 0, 0, 838, 0, 0, 0, 0,
! 1346: 0, 0, 277, 278, 15, 227, 0, 17, 0, 19,
! 1347: 147, 0, 920, 228, 229, 230, 0, 0, 921, 231,
! 1348: 232, 0, 0, 0, 148, 0, 0, 233, 0, 0,
! 1349: 0, 0, 0, 0, 149, 0, 0, 121, 0, 23,
! 1350: 0, 150, 121, 0, 0, 0, 151, 0, 907, 908,
! 1351: 909, 234, 235, 670, 0, 0, 0, 0, 23, 435,
! 1352: 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
! 1353: 27, 0, 797, 0, 0, 121, 0, 1010, 0, -567,
! 1354: -567, -567, -567, -567, -567, -567, -567, 0, -567, -567,
! 1355: -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
! 1356: -567, -567, -567, -567, -567, -567, -567, 0, -567, 0,
! 1357: -567, 0, -567, -567, 0, -567, -567, -567, 0, 4,
! 1358: 146, -567, 0, 0, -567, -567, 436, 437, 438, 439,
! 1359: 440, 441, 442, 443, 444, 445, -567, 0, 0, 0,
! 1360: 0, 0, 0, 956, -567, -567, -567, 0, 0, 0,
! 1361: -567, -567, 4, 146, 0, 0, 15, 0, -567, 17,
! 1362: -567, 19, 1011, -567, 1012, 0, -567, -567, -567, 0,
! 1363: -567, 0, 0, 0, 0, 0, 148, 0, 0, 0,
! 1364: -567, -567, -567, -567, 0, 0, 149, 0, 0, 15,
! 1365: 0, 0, 17, 150, 19, 147, 0, 0, 151, 277,
! 1366: 278, 0, 0, 0, 0, 0, 1025, 1026, 1027, 148,
! 1367: 23, 0, 0, 277, 278, 0, 0, 0, 0, 149,
! 1368: 0, 1032, 27, 0, 0, 0, 150, 0, 0, 1040,
! 1369: 0, 151, 0, 0, 0, 1045, 1046, 1047, 1048, 1049,
! 1370: 1050, 358, 0, 23, 0, 0, 0, 0, 0, 0,
! 1371: 0, 0, 0, 998, 0, 27, 0, 0, 0, 0,
! 1372: 0, 0, 0, 277, 278, 0, 1005, 0, 859, 130,
! 1373: 6, 7, 8, 361, 218, 214, 0, 219, 10, 860,
! 1374: 0, 861, 862, 863, 864, 865, 866, 867, 868, 869,
! 1375: 870, 871, 12, 220, 221, 222, 0, 223, 0, 13,
! 1376: 0, 224, -231, 0, 225, 15, 16, 0, 0, 0,
! 1377: 226, 0, 0, 872, 309, 0, 0, 0, 0, 0,
! 1378: 0, 0, 0, 0, 0, 227, 0, 0, 0, 0,
! 1379: 0, 0, 0, 228, 229, 230, 0, 0, 0, 231,
! 1380: 232, 0, 0, 0, 0, 0, 0, 233, 1004, 873,
! 1381: 0, 0, 874, 0, 0, 875, 876, 877, 0, 878,
! 1382: 0, 0, 358, 0, 0, 0, 0, 0, 0, 879,
! 1383: 1006, 234, 235, 0, 0, 0, 0, 1015, 0, 859,
! 1384: 130, 6, 7, 8, 361, 218, 214, 0, 219, 10,
! 1385: 860, 358, 861, 862, 863, 864, 865, 866, 867, 868,
! 1386: 869, 870, 871, 12, 220, 221, 222, 0, 223, 0,
! 1387: 13, 0, 224, -231, 0, 225, 15, 16, 0, 0,
! 1388: 0, 226, 0, 0, 872, 309, 0, 0, 0, 0,
! 1389: 0, 0, 0, 0, 0, 0, 227, 0, 0, 0,
! 1390: 0, 0, 0, 0, 228, 229, 230, 0, 0, 0,
! 1391: 231, 232, 0, 0, 0, 0, 0, 0, 233, 0,
! 1392: 873, 0, 0, 874, 0, 0, 875, 876, 877, 0,
! 1393: 878, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 1394: 879, 1016, 234, 235, 1019, 0, 859, 130, 6, 7,
! 1395: 8, 361, 218, 214, 0, 219, 10, 860, 0, 861,
! 1396: 862, 863, 864, 865, 866, 867, 868, 869, 870, 871,
! 1397: 12, 220, 221, 222, 0, 223, 0, 13, 0, 224,
! 1398: -231, 0, 225, 15, 16, 0, 0, 0, 226, 0,
! 1399: 0, 872, 309, 0, 0, 0, 0, 0, 0, 0,
! 1400: 0, 0, 0, 227, 0, 0, 0, 0, 0, 0,
! 1401: 0, 228, 229, 230, 0, 0, 0, 231, 232, 0,
! 1402: 0, 0, 0, 0, 0, 233, 0, 873, 0, 0,
! 1403: 874, 0, 0, 875, 876, 877, 0, 878, 0, 0,
! 1404: 0, 0, 0, 0, 0, 0, 0, 879, 1020, 234,
! 1405: 235, 1005, 0, 859, 130, 6, 7, 8, 361, 218,
! 1406: 214, 0, 219, 10, 860, 0, 861, 862, 863, 864,
! 1407: 865, 866, 867, 868, 869, 870, 871, 12, 220, 221,
! 1408: 222, 0, 223, 0, 13, 0, 224, -231, 0, 225,
! 1409: 15, 16, 0, 0, 0, 226, 0, 0, 872, 309,
1.1 root 1410: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1.1.1.2 ! root 1411: 227, 0, 0, 0, 0, 0, 0, 0, 228, 229,
! 1412: 230, 0, 0, 0, 231, 232, 0, 0, 0, 0,
! 1413: 0, 0, 233, 0, 873, 0, 0, 874, 0, 0,
! 1414: 875, 876, 877, 0, 878, 0, 0, 0, 0, 0,
! 1415: 0, 0, 0, 0, 879, 1098, 234, 235, 1005, 0,
! 1416: 859, 130, 6, 7, 8, 361, 218, 214, 0, 219,
! 1417: 10, 860, 0, 861, 862, 863, 864, 865, 866, 867,
! 1418: 868, 869, 870, 871, 12, 220, 221, 222, 0, 223,
! 1419: 0, 13, 0, 224, -231, 0, 225, 15, 16, 0,
! 1420: 0, 0, 226, 0, 0, 872, 309, 0, 0, 0,
! 1421: 0, 0, 0, 0, 0, 0, 0, 227, 0, 0,
! 1422: 0, 0, 0, 0, 0, 228, 229, 230, 0, 0,
! 1423: 0, 231, 232, 0, 0, 0, 0, 0, 0, 233,
! 1424: 0, 873, 0, 0, 874, 0, 0, 875, 876, 877,
! 1425: 0, 878, 0, 0, 0, 0, 0, 0, 0, 0,
! 1426: 0, 879, 1101, 234, 235, 1005, 0, 859, 130, 6,
! 1427: 7, 8, 361, 218, 214, 0, 219, 10, 860, 0,
! 1428: 861, 862, 863, 864, 865, 866, 867, 868, 869, 870,
! 1429: 871, 12, 220, 221, 222, 0, 223, 0, 13, 0,
! 1430: 224, -231, 0, 225, 15, 16, 0, 0, 0, 226,
! 1431: 0, 0, 872, 309, 0, 0, 0, 0, 0, 0,
! 1432: 0, 0, 0, 0, 227, 0, 0, 0, 0, 0,
! 1433: 0, 0, 228, 229, 230, 0, 0, 0, 231, 232,
! 1434: 0, 0, 0, 0, 0, 0, 233, 0, 873, 0,
! 1435: 0, 874, 0, 0, 875, 876, 877, 0, 878, 0,
! 1436: 0, 0, 0, 0, 0, 0, 0, 0, 879, 1180,
! 1437: 234, 235, 858, 0, 859, 130, 6, 7, 8, 361,
! 1438: 218, 214, 0, 219, 10, 860, 0, 861, 862, 863,
! 1439: 864, 865, 866, 867, 868, 869, 870, 871, 12, 220,
! 1440: 221, 222, 0, 223, 0, 13, 0, 224, -231, 0,
! 1441: 225, 15, 16, 0, 0, 0, 226, 0, 0, 872,
! 1442: 309, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 1443: 0, 227, 0, 0, 0, 0, 0, 0, 0, 228,
! 1444: 229, 230, 0, 0, 0, 231, 232, 0, 0, 0,
! 1445: 0, 0, 0, 233, 0, 873, 0, 0, 874, 0,
! 1446: 0, 875, 876, 877, 0, 878, 0, 0, 0, 0,
! 1447: 0, 0, 0, 0, 0, 879, 0, 234, 235, 1157,
! 1448: 0, 859, 130, 6, 7, 8, 361, 218, 214, 0,
! 1449: 219, 10, 860, 0, 861, 862, 863, 864, 865, 866,
! 1450: 867, 868, 869, 870, 871, 12, 220, 221, 222, 0,
! 1451: 223, 0, 13, 0, 224, -231, 0, 225, 15, 16,
! 1452: 0, 0, 0, 226, 0, 0, 872, 309, 0, 0,
! 1453: 0, 0, 0, 0, 0, 0, 0, 0, 227, 0,
! 1454: 0, 0, 0, 0, 0, 0, 228, 229, 230, 0,
! 1455: 0, 0, 231, 232, 0, 0, 0, 0, 0, 0,
! 1456: 233, 0, 873, 0, 0, 874, 0, 0, 875, 876,
! 1457: 877, 70, 878, 0, 71, 6, 0, 8, 72, 0,
! 1458: 0, 0, 879, 10, 234, 235, 0, 0, 0, 0,
! 1459: 0, 0, 0, 0, 0, 0, 0, 12, 0, 0,
! 1460: 0, 0, 0, 0, 13, 0, 73, 74, 0, 0,
! 1461: 0, 16, 75, 76, 0, 0, 0, 0, 0, 0,
! 1462: 77, 78, 79, 80, 0, 0, 81, 82, 83, 84,
! 1463: 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
! 1464: 95, 96, 97, 0, 98, 99, 0, 0, 100, 101,
! 1465: 0, 0, 0, 102, 0, 0, 0, 0, 0, 0,
! 1466: 0, 0, 0, 360, 23, 216, 130, 6, 7, 8,
! 1467: 361, 218, 214, 204, 219, 10, 103, 104, 0, 0,
! 1468: 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
! 1469: 220, 221, 222, 0, 223, 0, 13, 0, 224, -231,
! 1470: 0, 225, 15, 16, 0, 0, 0, 226, 426, 427,
! 1471: 428, 0, 0, 429, 430, 431, 432, 433, 434, 435,
! 1472: 436, 437, 227, 439, 440, 441, 442, 443, 444, 445,
! 1473: 228, 229, 230, 0, 0, 0, 231, 232, 0, 0,
! 1474: 0, 0, 0, 0, 233, 0, 0, 0, 0, 0,
! 1475: 0, 0, 0, 0, 0, 205, 23, 0, 0, 0,
! 1476: 0, 0, 0, 0, 0, -611, 0, 0, 234, 235,
! 1477: 549, 0, 216, 130, 6, 7, 8, 361, 218, 214,
! 1478: 204, 219, 10, 434, 435, 436, 437, 438, 439, 440,
! 1479: 441, 442, 443, 444, 445, 0, 12, 220, 221, 222,
! 1480: 0, 223, 0, 13, 0, 224, -231, 0, 225, 15,
! 1481: 16, 0, 0, 0, 226, 432, 433, 434, 435, 436,
! 1482: 437, 438, 439, 440, 441, 442, 443, 444, 445, 227,
! 1483: 0, 0, 0, 0, 0, 0, 0, 228, 229, 230,
! 1484: 0, 0, 0, 231, 232, 0, 0, 0, 0, 0,
! 1485: 0, 233, 0, 0, 0, 0, 0, 0, 0, 0,
! 1486: 0, 0, 205, 23, 0, 0, 0, 0, 0, 0,
! 1487: 0, 0, -611, 0, 0, 234, 235, 738, 0, 216,
! 1488: 130, 6, 7, 8, 361, 218, 214, 204, 219, 10,
1.1 root 1489: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1.1.1.2 ! root 1490: 0, 0, 0, 12, 220, 221, 222, 0, 223, 0,
! 1491: 13, 0, 224, -231, 0, 225, 15, 16, 0, 0,
! 1492: 0, 226, 0, 0, 0, 0, 0, 0, 0, 0,
! 1493: 0, 0, 0, 0, 0, 0, 227, 0, 0, 0,
! 1494: 0, 0, 0, 0, 228, 229, 230, 0, 0, 0,
! 1495: 231, 232, 0, 0, 0, 0, 0, 0, 233, 0,
! 1496: 0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
! 1497: 23, 0, 0, 0, 0, 0, 0, 0, 0, -611,
! 1498: 0, 0, 234, 235, 789, 0, 216, 130, 6, 7,
! 1499: 8, 361, 218, 214, 204, 219, 10, 0, 0, 0,
1.1 root 1500: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1.1.1.2 ! root 1501: 12, 220, 221, 222, 0, 223, 0, 13, 0, 224,
! 1502: -231, 0, 225, 15, 16, 0, 0, 0, 226, 0,
! 1503: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 1504: 0, 0, 0, 227, 0, 0, 0, 0, 0, 0,
! 1505: 0, 228, 229, 230, 0, 0, 0, 231, 232, 0,
! 1506: 0, 0, 0, 0, 0, 233, 0, 0, 0, 0,
! 1507: 0, 0, 0, 0, 0, 0, 205, 23, 0, 0,
! 1508: 0, 0, 0, 0, 0, 0, -611, 0, 0, 234,
! 1509: 235, 793, 0, 216, 130, 6, 7, 8, 361, 218,
! 1510: 214, 204, 219, 10, 0, 0, 0, 0, 0, 0,
! 1511: 0, 0, 4, 146, 0, 0, 0, 12, 220, 221,
! 1512: 222, 0, 223, 0, 13, 0, 224, -231, 0, 225,
! 1513: 15, 16, 0, 0, 0, 226, 0, 0, 0, 0,
! 1514: 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
! 1515: 227, 0, 17, 0, 19, 147, 0, 0, 228, 229,
! 1516: 230, 0, 0, 0, 231, 232, 0, 0, 0, 148,
! 1517: 0, 0, 233, 0, 0, 0, 0, 61, 62, 149,
! 1518: 176, 177, 178, 205, 23, 0, 150, 0, 0, 0,
! 1519: 0, 151, 0, -611, 0, 0, 234, 235, 523, 0,
! 1520: 718, 719, 6, 23, 8, 402, 218, 214, 179, 219,
! 1521: 10, 0, 0, 0, 0, 27, 0, 0, 0, 0,
! 1522: 0, 0, 700, 181, 12, 220, 221, 222, 0, 223,
! 1523: 0, 13, 0, 224, -231, 0, 225, 15, 16, 0,
! 1524: 0, 0, 226, 0, 0, 0, 524, 0, 0, 0,
! 1525: 0, 0, 0, 0, 0, 0, 0, 227, 0, 0,
! 1526: 0, 0, 0, 0, 0, 228, 229, 230, 182, 0,
! 1527: 0, 231, 232, 183, 184, 185, 0, 0, 0, 233,
! 1528: 720, 523, 0, 718, 719, 6, 0, 8, 402, 218,
! 1529: 214, 182, 219, 10, 0, 0, 0, 0, 0, 0,
! 1530: 964, 0, 721, 234, 235, 0, 0, 12, 220, 221,
! 1531: 222, 0, 223, 0, 13, 0, 224, -231, 0, 225,
! 1532: 15, 16, 0, 0, 0, 226, 0, 0, 0, 524,
! 1533: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 1534: 227, 0, 0, 0, 0, 0, 0, 0, 228, 229,
! 1535: 230, 0, 0, 0, 231, 232, 0, 0, 0, 0,
! 1536: 0, 0, 233, 0, 1068, 0, 216, 130, 6, 7,
! 1537: 8, 361, 218, 214, 182, 219, 10, 0, 0, 0,
! 1538: 0, 0, 0, 0, 0, 965, 234, 235, 0, 0,
! 1539: 12, 220, 221, 222, 0, 223, 0, 13, 0, 224,
! 1540: -231, 0, 225, 15, 16, 0, 0, 0, 226, 0,
! 1541: 0, 0, 1069, 0, 0, 0, 0, 0, 0, 0,
! 1542: 0, 0, 0, 227, 0, 0, 0, 0, 0, 0,
! 1543: 0, 228, 229, 230, 0, 0, 0, 231, 232, 0,
! 1544: 0, 0, 0, 0, 0, 233, 0, 523, 0, 718,
! 1545: 719, 6, 0, 8, 402, 218, 214, 23, 219, 10,
! 1546: 0, 0, 0, 0, 0, 0, 964, 1070, 0, 234,
! 1547: 235, 0, 0, 12, 220, 221, 222, 0, 223, 0,
! 1548: 13, 0, 224, -231, 0, 225, 15, 16, 0, 0,
! 1549: 0, 226, 0, 0, 0, 524, 0, 0, 0, 0,
! 1550: 0, 0, 0, 0, 0, 0, 227, 0, 0, 0,
! 1551: 0, 0, 0, 0, 228, 229, 230, 0, 0, 0,
! 1552: 231, 232, 0, 0, 0, 0, 0, 0, 233, 0,
! 1553: 523, 0, 718, 719, 6, 0, 8, 402, 218, 214,
! 1554: 182, 219, 10, 0, 0, 0, 0, 0, 0, 0,
! 1555: 0, -326, 234, 235, 0, 0, 12, 220, 221, 222,
! 1556: 0, 223, 0, 13, 0, 224, -231, 0, 225, 15,
! 1557: 16, 0, 0, 0, 226, 0, 0, 0, 524, 0,
! 1558: 0, 0, 0, 0, 0, 0, 0, 0, 0, 227,
! 1559: 0, 0, 0, 0, 0, 0, 0, 228, 229, 230,
! 1560: 0, 0, 0, 231, 232, 0, 0, 0, 0, 0,
! 1561: 0, 233, 720, 418, 0, 216, 130, 6, 0, 8,
! 1562: 217, 218, 214, 182, 219, 10, 0, 0, 0, 0,
! 1563: 0, 0, 0, 0, 0, 234, 235, 0, 0, 12,
! 1564: 220, 221, 222, 0, 223, 0, 13, 0, 224, -231,
! 1565: 0, 225, 15, 16, 0, 0, 0, 226, 0, 0,
! 1566: 0, -204, 0, 0, 0, 0, 0, 0, 0, 0,
! 1567: 0, 0, 227, 0, 0, 0, 0, 0, 0, 0,
! 1568: 228, 229, 230, 0, 0, 0, 231, 232, 0, 0,
! 1569: 0, 0, 0, 0, 233, 0, 523, 0, 216, 130,
! 1570: 6, 0, 8, 402, 218, 214, 23, 219, 10, 0,
! 1571: 0, 0, 0, 0, 0, 0, 0, 0, 234, 235,
! 1572: 0, 0, 12, 220, 221, 222, 0, 223, 0, 13,
! 1573: 0, 224, -231, 0, 225, 15, 16, 0, 0, 0,
! 1574: 226, 0, 0, 0, 524, 0, 0, 0, 0, 0,
! 1575: 0, 0, 0, 0, 0, 227, 0, 0, 0, 0,
! 1576: 0, 0, 0, 228, 229, 230, 0, 0, 0, 231,
! 1577: 232, 0, 0, 0, 0, 0, 0, 233, 0, 641,
! 1578: 0, 216, 130, 6, 0, 8, 402, 218, 214, 23,
! 1579: 219, 10, 0, 0, 0, 0, 0, 0, 0, 0,
! 1580: 0, 234, 235, 0, 0, 12, 220, 221, 222, 0,
! 1581: 223, 0, 13, 0, 224, -231, 0, 225, 15, 16,
! 1582: 0, 0, 0, 226, 0, 0, 0, 0, 0, 0,
! 1583: 0, 0, -601, 0, 0, 0, 0, 0, 227, 0,
! 1584: 0, 0, 0, 0, 0, 0, 228, 229, 230, 0,
! 1585: 0, 0, 231, 232, 0, 0, 0, 0, 0, 0,
! 1586: 233, 0, 641, 0, 216, 130, 6, 0, 8, 402,
! 1587: 218, 214, 23, 219, 10, 0, 0, 0, 0, 0,
! 1588: 0, 0, 0, 0, 234, 235, 0, 0, 12, 220,
! 1589: 221, 222, 0, 223, 0, 13, 0, 224, -231, 0,
! 1590: 225, 15, 16, 0, 0, 0, 226, 0, 0, 0,
! 1591: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 1592: 0, 227, 0, 0, 0, 0, 0, 0, 0, 228,
! 1593: 229, 230, 0, 0, 0, 231, 232, 0, 0, 0,
! 1594: 0, 0, 0, 233, 0, 641, 0, 216, 130, 6,
! 1595: 0, 8, 402, 218, 214, 23, 219, 10, 0, 0,
! 1596: 0, 0, 0, 0, 0, -601, 0, 234, 235, 0,
! 1597: 0, 12, 220, 221, 222, 0, 223, 0, 13, 0,
! 1598: 224, -231, 0, 225, 15, 16, 0, 0, 0, 226,
! 1599: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 1600: 0, 0, 0, 0, 227, 0, 0, 0, 0, 0,
! 1601: 0, 0, 228, 229, 230, 0, 0, 0, 231, 232,
! 1602: 0, 0, 0, 0, 0, 0, 233, 0, 637, 0,
! 1603: 216, 130, 6, 0, 8, 402, 218, 214, 23, 219,
! 1604: 10, 0, 0, 0, 0, 0, 0, -601, 0, 0,
! 1605: 234, 235, 0, 0, 12, 220, 221, 222, 0, 223,
! 1606: 0, 13, 0, 224, -231, 0, 225, 15, 16, 0,
! 1607: 0, 0, 226, 3, 0, 4, 5, 6, 7, 8,
! 1608: 9, 0, 0, 0, 0, 10, 0, 227, 0, 0,
! 1609: 0, 0, 0, 0, 0, 228, 229, 230, 11, 12,
! 1610: 0, 231, 232, 0, 0, 0, 13, 0, 0, 233,
! 1611: 14, 0, 15, 16, 0, 17, 18, 19, 0, 0,
! 1612: 0, 23, 0, 0, 0, 0, 0, 0, 0, 0,
! 1613: 0, 0, 20, 234, 235, 0, 0, 0, 0, 0,
! 1614: 0, 0, 21, 0, 0, 0, 3, 0, 4, 5,
! 1615: 6, 7, 8, 9, 22, 0, 0, 0, 10, 0,
! 1616: 0, 0, 0, 0, 0, 0, 23, 24, 25, 0,
! 1617: 0, 11, 12, 0, 0, 0, 26, 500, 27, 13,
! 1618: 0, 0, 0, 14, 0, 15, 16, 0, 17, 18,
! 1619: 19, 350, 0, 4, 130, 6, 7, 8, 9, 0,
! 1620: 0, 0, 0, 10, 0, 20, 0, 0, 0, 0,
! 1621: 0, 0, 0, 0, 0, 21, 0, 12, 0, 0,
! 1622: 0, 0, 0, 0, 13, -365, 0, 22, 0, 0,
! 1623: 15, 16, 0, 17, 0, 19, 0, 0, 0, 23,
! 1624: 24, 25, 0, 0, 351, 0, 0, 0, 0, 26,
! 1625: 20, 27, 0, 0, 0, 0, 0, 0, 0, 350,
! 1626: 21, 4, 130, 6, 7, 8, 9, 0, 0, 0,
! 1627: 0, 10, 22, 0, 4, 146, 0, 0, 0, 275,
! 1628: 0, 0, 0, 0, 23, 12, 0, 0, 0, 0,
! 1629: 0, 0, 13, -363, 582, -365, 27, 0, 15, 16,
! 1630: 0, 17, 0, 19, 0, 4, 119, 0, 0, 0,
! 1631: 275, 15, 351, 0, 17, 0, 19, 350, 20, 4,
! 1632: 130, 6, 7, 8, 9, 0, 0, 0, 21, 10,
! 1633: 0, 148, 0, 0, 0, 0, 0, 0, 0, 0,
! 1634: 22, 149, 15, 12, 0, 17, 0, 19, 150, 0,
! 1635: 13, -366, 23, 151, 0, 0, 15, 16, 0, 17,
! 1636: 0, 19, 20, -363, 27, 23, 0, 0, 0, 0,
! 1637: 351, 0, 21, 0, 0, 0, 20, 27, 0, 0,
! 1638: 0, 0, 0, 0, 22, 0, 21, 0, 0, 0,
! 1639: 0, 0, 0, 0, 0, 0, 23, 0, 22, 0,
! 1640: 0, 0, 0, 0, 0, 0, 0, 0, 27, 0,
! 1641: 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 1642: 0, -366, 27, 859, 130, 6, 7, 8, 361, 218,
! 1643: 214, 0, 219, 10, 860, 0, 861, 862, 863, 864,
! 1644: 865, 866, 867, 868, 869, 870, 871, 12, 220, 221,
! 1645: 222, 0, 223, 0, 13, 0, 224, 0, 0, 225,
! 1646: 15, 16, 0, 0, 0, 226, 0, 0, 872, 309,
1.1 root 1647: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1.1.1.2 ! root 1648: 227, 0, 0, 0, 0, 0, 0, 0, 228, 229,
! 1649: 230, 0, 0, 0, 231, 232, 0, 0, 0, 0,
! 1650: 0, 0, 233, 0, 873, 0, 0, 874, 0, 0,
! 1651: 875, 876, 877, 0, 878, 0, 0, 0, 0, 0,
! 1652: 0, 0, 0, 0, 879, 1013, 234, 235, 859, 130,
! 1653: 6, 7, 8, 361, 218, 214, 0, 219, 10, 860,
! 1654: 0, 861, 862, 863, 864, 865, 866, 867, 868, 869,
! 1655: 870, 871, 12, 220, 221, 222, 0, 223, 0, 13,
! 1656: 0, 224, 0, 0, 225, 15, 16, 0, 0, 0,
! 1657: 226, 0, 0, 872, 309, 0, 0, 0, 0, 0,
! 1658: 0, 0, 0, 0, 0, 227, 0, 0, 4, 380,
! 1659: 0, 0, 0, 228, 229, 230, 0, 0, 0, 231,
! 1660: 232, 0, 0, 0, 0, 0, 0, 233, 0, 873,
! 1661: 0, 0, 874, 0, 0, 875, 876, 877, 0, 878,
! 1662: 0, 0, 0, 0, 0, 15, 0, 0, 17, 879,
! 1663: 19, 234, 235, 216, 130, 6, 0, 8, 402, 218,
! 1664: 214, 0, 219, 10, 0, 20, 0, 0, 0, 0,
! 1665: 0, 0, 0, 0, 0, 21, 0, 12, 220, 221,
! 1666: 222, 0, 223, 0, 13, 0, 224, 22, 0, 225,
! 1667: 15, 16, 0, 0, 0, 226, 0, 0, 0, 381,
1.1 root 1668: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1.1.1.2 ! root 1669: 227, 27, 0, 4, 119, 0, 0, 0, 228, 229,
! 1670: 230, 0, 0, 0, 231, 232, 0, 0, 0, 0,
! 1671: 0, 0, 233, 457, 0, 0, 216, 130, 6, 0,
! 1672: 8, 402, 218, 214, 23, 219, 10, 0, 0, 0,
! 1673: 15, 0, 0, 17, 0, 19, 234, 235, 0, 0,
! 1674: 12, 220, 221, 222, 0, 223, 0, 13, 0, 224,
! 1675: 321, 0, 225, 15, 16, 0, 0, 0, 226, 0,
! 1676: 322, 0, 815, 0, 0, 0, 0, 323, 0, 0,
! 1677: 0, 0, 324, 227, 0, 0, 4, 119, 0, 0,
! 1678: 0, 228, 229, 230, 23, 0, 0, 231, 232, 0,
! 1679: 0, 0, 0, 0, 0, 233, 27, 0, 0, 216,
! 1680: 130, 6, 0, 8, 402, 218, 214, 23, 219, 10,
! 1681: 0, 0, 0, 15, 0, 0, 17, 0, 19, 234,
! 1682: 235, 0, 0, 12, 220, 221, 222, 0, 223, 0,
! 1683: 13, 0, 224, 539, 0, 225, 15, 16, 0, 0,
! 1684: 0, 226, 0, 540, 0, 0, 0, 0, 0, 0,
! 1685: 323, 0, 0, 0, 0, 324, 227, 0, 0, 4,
! 1686: 380, 0, 0, 0, 228, 229, 230, 23, 0, 0,
! 1687: 231, 232, 0, 0, 0, 0, 0, 0, 233, 27,
! 1688: 0, 0, 216, 130, 6, 0, 8, 402, 218, 214,
! 1689: 23, 219, 10, 0, 0, 0, 15, 0, 0, 17,
! 1690: 982, 19, 234, 235, 0, 0, 12, 220, 221, 222,
! 1691: 0, 223, 0, 13, 0, 224, 554, 0, 225, 15,
! 1692: 16, 0, 0, 0, 226, 0, 555, 0, 0, 0,
! 1693: 0, 0, 0, 0, 0, 0, 0, 0, 22, 227,
! 1694: 0, 0, 0, 0, 0, 0, 0, 228, 229, 230,
! 1695: 381, 0, 0, 231, 232, 0, 0, 0, 0, 0,
! 1696: 0, 233, 27, 0, 0, 216, 130, 6, 0, 8,
! 1697: 217, 218, 214, 23, 219, 10, 0, 0, 0, 0,
! 1698: 0, 0, 0, 994, 0, 234, 235, 0, 0, 12,
! 1699: 220, 221, 222, 0, 223, 0, 13, 0, 224, 0,
! 1700: 0, 225, 15, 16, 0, 0, 0, 226, 0, 0,
1.1 root 1701: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1.1.1.2 ! root 1702: 0, 0, 227, 0, 0, 0, 0, 0, 0, 0,
! 1703: 228, 229, 230, 0, 0, 0, 231, 232, 0, 0,
! 1704: 0, 0, 0, 0, 233, 0, 0, 0, 216, 130,
! 1705: 6, 0, 8, 402, 218, 214, 23, 219, 10, 0,
! 1706: 0, 0, 0, 0, 0, 0, 0, 0, 234, 235,
! 1707: 0, 0, 12, 220, 221, 222, 0, 223, 0, 13,
! 1708: 0, 224, 0, 0, 225, 15, 16, 0, 0, 0,
! 1709: 226, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 1710: 0, 0, 0, 0, 0, 227, 0, 0, 0, 0,
! 1711: 0, 0, 0, 228, 229, 230, 0, 0, 0, 231,
! 1712: 232, 0, 0, 0, 0, 0, 0, 233, 0, 0,
! 1713: 0, 216, 630, 6, 0, 8, 402, 218, 214, 23,
! 1714: 219, 10, 0, 0, 0, 0, 0, 0, 0, 0,
! 1715: 0, 234, 235, 0, 0, 12, 220, 221, 222, 0,
! 1716: 223, 0, 13, 0, 224, 0, 0, 225, 15, 16,
! 1717: 0, 0, 0, 226, 0, 216, 130, 6, 0, 8,
! 1718: 402, 218, 214, 0, 219, 10, 0, 0, 227, 0,
! 1719: 0, 0, 0, 0, 0, 0, 228, 229, 230, 12,
! 1720: 220, 0, 231, 232, 223, 0, 13, 0, 224, 0,
! 1721: 233, 225, 15, 16, 0, 0, 0, 226, 0, 216,
! 1722: 130, 6, 23, 8, 402, 218, 214, 0, 219, 10,
! 1723: 0, 0, 227, 0, 234, 235, 0, 0, 0, 0,
! 1724: 228, 229, 230, 12, 220, 0, 231, 232, 223, 0,
! 1725: 13, 0, 224, 0, 403, 225, 15, 16, 0, 0,
! 1726: 0, 226, 0, 0, 0, 0, 23, 0, 0, 0,
! 1727: 0, 0, 0, 0, 0, 0, 227, 0, 234, 235,
! 1728: 0, 0, 0, 0, 228, 229, 230, 0, 0, 0,
! 1729: 231, 232, 0, 0, 0, 0, 0, 0, 407, 0,
! 1730: 0, 568, 160, 6, 161, 8, 162, 0, 0, 0,
1.1 root 1731: 23, 10, 0, 0, 0, 0, 0, 0, 0, 0,
1.1.1.2 ! root 1732: 0, 0, 234, 235, 0, 12, 0, 0, 0, 0,
! 1733: 0, 0, 13, 0, 0, 0, 0, 0, 15, 16,
! 1734: 0, 576, 0, 19, 147, 0, 570, 0, 0, 0,
! 1735: 0, 0, 571, 0, 0, 0, 0, 0, 148, 4,
! 1736: 130, 6, 7, 8, 9, 0, 0, 616, 149, 10,
! 1737: 0, 0, 0, 0, 0, 150, 0, 0, 0, 0,
! 1738: 577, 0, 0, 12, 0, 0, 0, 0, 0, 0,
! 1739: 13, 0, 23, 0, 0, 0, 15, 16, 0, 606,
! 1740: 0, 19, 607, 0, 27, 0, 0, 0, 0, 0,
! 1741: 0, 0, 0, 0, 0, 0, 608, 4, 130, 6,
! 1742: 7, 8, 9, 0, 0, 204, 609, 10, 0, 0,
! 1743: 0, 0, 0, 263, 0, 0, 0, 0, 610, 265,
! 1744: 0, 12, 0, 0, 0, 0, 0, 0, 13, 0,
! 1745: 23, 0, 0, 0, 15, 16, 0, 606, 0, 19,
! 1746: 0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
! 1747: 0, 0, 0, 0, 608, 4, 160, 6, 161, 8,
! 1748: 162, 0, 0, 0, 609, 10, 0, 0, 0, 0,
! 1749: 0, 263, 0, 0, 0, 0, 610, 265, 0, 12,
! 1750: 0, 0, 0, 0, 0, 0, 13, 205, 23, 0,
! 1751: 0, 0, 15, 16, 0, 17, 0, 19, 147, 0,
! 1752: 27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 1753: 0, 0, 148, 4, 130, 6, 7, 8, 9, 0,
! 1754: 0, 204, 149, 10, 0, 0, 0, 0, 0, 150,
! 1755: 0, 0, 0, 0, 151, 0, 0, 12, 0, 0,
! 1756: 0, 0, 0, 0, 13, 0, 23, 0, 0, 0,
! 1757: 15, 16, 0, 17, 0, 19, 163, 0, 27, 0,
! 1758: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 1759: 321, 4, 160, 6, 161, 8, 162, 0, 0, 0,
! 1760: 322, 10, 0, 0, 0, 0, 0, 323, 0, 0,
! 1761: 0, 0, 324, 0, 0, 12, 0, 0, 0, 0,
! 1762: 0, 0, 13, 205, 23, 0, 0, 0, 15, 16,
! 1763: 0, 17, 0, 19, 147, 0, 27, 0, 0, 0,
! 1764: 0, 0, 0, 0, 0, 0, 0, 0, 148, 0,
! 1765: 0, 0, 0, 0, 0, 0, 0, 0, 149, 4,
! 1766: 160, 6, 161, 8, 162, 150, 0, 0, 0, 10,
! 1767: 151, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 1768: 0, 0, 23, 12, 0, 0, 0, 0, 0, 0,
! 1769: 13, 0, 1001, 0, 27, 0, 15, 16, 0, 17,
! 1770: 0, 19, 147, 0, 130, 6, 7, 8, 9, 0,
! 1771: 0, 204, 0, 10, 0, 0, 148, 0, 0, 71,
! 1772: 6, 0, 8, 270, 0, 0, 149, 12, 10, 0,
! 1773: 0, 0, 0, 150, 13, 0, 0, 0, 151, 0,
! 1774: 0, 16, 12, 259, 0, 0, 0, 0, 0, 13,
! 1775: 23, 0, 0, 0, 0, 0, 16, 0, 259, 0,
! 1776: 261, 260, 27, 0, 0, 0, 0, 0, 0, 0,
! 1777: 262, 0, 0, 0, 0, 261, 0, 263, 0, 0,
! 1778: 0, 0, 264, 265, 0, 262, 0, 0, 0, 0,
! 1779: 0, 0, 263, 205, 23, 0, 0, 264, 265, 0,
! 1780: 0, 0, 0, 0, 0, 426, 427, 428, 0, 23,
1.1 root 1781: 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
1.1.1.2 ! root 1782: 439, 440, 441, 442, 443, 444, 445, 426, 427, 428,
! 1783: 0, 0, 429, 430, 431, 432, 433, 434, 435, 436,
! 1784: 437, 438, 439, 440, 441, 442, 443, 444, 445, 0,
! 1785: 0, 0, 0, 0, 0, 0, 0, -143, 426, 427,
! 1786: 428, 0, 962, 429, 430, 431, 432, 433, 434, 435,
! 1787: 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
! 1788: 756, 757, 426, 427, 428, 1119, 0, 429, 430, 431,
! 1789: 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
! 1790: 442, 443, 444, 445, 426, 427, 428, 0, 0, 429,
! 1791: 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
! 1792: 440, 441, 442, 443, 444, 445, 428, 0, 0, 429,
! 1793: 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
! 1794: 440, 441, 442, 443, 444, 445, 430, 431, 432, 433,
! 1795: 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
! 1796: 444, 445, 431, 432, 433, 434, 435, 436, 437, 438,
! 1797: 439, 440, 441, 442, 443, 444, 445
1.1 root 1798: };
1799:
1800: static const short yycheck[] = { 1,
1.1.1.2 ! root 1801: 2, 66, 10, 265, 38, 39, 15, 67, 39, 17,
! 1802: 140, 141, 15, 15, 356, 135, 151, 106, 593, 274,
! 1803: 299, 274, 141, 44, 1, 2, 252, 40, 30, 514,
! 1804: 60, 564, 139, 153, 219, 220, 44, 39, 891, 709,
! 1805: 893, 19, 227, 226, 190, 230, 111, 167, 884, 234,
! 1806: 329, 236, 1, 2, 943, 3, 4, 10, 60, 244,
! 1807: 10, 546, 1022, 1023, 35, 67, 45, 10, 10, 45,
! 1808: 10, 3, 334, 0, 35, 50, 40, 50, 50, 147,
! 1809: 34, 30, 227, 203, 82, 230, 260, 50, 82, 234,
! 1810: 264, 236, 3, 4, 107, 3, 4, 131, 132, 244,
! 1811: 60, 3, 4, 5, 112, 53, 108, 1, 40, 15,
! 1812: 70, 60, 54, 50, 50, 36, 22, 125, 3, 21,
! 1813: 122, 50, 3, 4, 45, 104, 128, 103, 82, 104,
! 1814: 132, 104, 38, 105, 105, 390, 3, 4, 3, 4,
! 1815: 103, 6, 53, 45, 105, 53, 94, 64, 3, 4,
! 1816: 103, 128, 165, 103, 60, 49, 104, 105, 171, 248,
! 1817: 103, 103, 251, 103, 1053, 195, 103, 700, 314, 105,
! 1818: 35, 291, 202, 233, 844, 104, 306, 307, 308, 128,
! 1819: 158, 1017, 49, 94, 50, 1021, 94, 306, 307, 324,
! 1820: 192, 67, 94, 195, 8, 97, 104, 105, 305, 65,
! 1821: 202, 165, 108, 105, 212, 207, 64, 171, 1168, 1169,
! 1822: 116, 117, 118, 94, 3, 4, 5, 50, 43, 704,
! 1823: 197, 3, 4, 343, 503, 131, 411, 94, 490, 94,
! 1824: 413, 233, 3, 4, 50, 6, 249, 49, 358, 94,
! 1825: 466, 147, 54, 192, 50, 151, 195, 85, 50, 251,
! 1826: 49, 319, 320, 202, 92, 268, 45, 82, 271, 3,
! 1827: 4, 43, 264, 383, 35, 750, 411, 50, 174, 54,
! 1828: 103, 85, 274, 1126, 3, 4, 49, 556, 92, 45,
! 1829: 301, 54, 544, 50, 286, 3, 4, 5, 104, 105,
! 1830: 420, 197, 104, 301, 200, 43, 202, 103, 873, 43,
! 1831: 875, 207, 104, 333, 268, 94, 480, 481, 97, 286,
! 1832: 843, 40, 94, 50, 43, 264, 24, 377, 103, 353,
! 1833: 354, 104, 1158, 94, 337, 274, 347, 45, 24, 3,
! 1834: 4, 333, 3, 4, 82, 83, 103, 286, 82, 49,
! 1835: 246, 3, 4, 403, 54, 251, 54, 407, 11, 50,
! 1836: 94, 364, 354, 49, 356, 103, 52, 233, 54, 387,
! 1837: 105, 50, 390, 1, 2, 94, 40, 104, 274, 40,
! 1838: 3, 4, 43, 337, 45, 377, 94, 106, 40, 97,
! 1839: 195, 43, 104, 105, 333, 50, 50, 50, 390, 60,
! 1840: 398, 54, 30, 50, 104, 301, 456, 50, 528, 70,
! 1841: 364, 403, 54, 104, 49, 407, 77, 356, 104, 528,
! 1842: 43, 82, 83, 319, 320, 104, 1, 43, 324, 50,
! 1843: 94, 50, 60, 94, 330, 50, 3, 4, 49, 335,
! 1844: 93, 8, 94, 607, 54, 106, 610, 572, 103, 103,
! 1845: 65, 390, 577, 698, 106, 698, 103, 353, 104, 105,
! 1846: 103, 103, 26, 573, 456, 463, 82, 31, 578, 489,
! 1847: 54, 94, 43, 40, 49, 50, 43, 50, 45, 537,
! 1848: 538, 377, 103, 43, 103, 496, 50, 10, 52, 492,
! 1849: 386, 387, 50, 60, 104, 670, 765, 489, 496, 304,
! 1850: 128, 41, 368, 70, 773, 615, 498, 108, 54, 49,
! 1851: 77, 82, 83, 50, 85, 82, 83, 50, 64, 3,
! 1852: 4, 92, 82, 543, 522, 3, 524, 94, 333, 8,
! 1853: 103, 9, 45, 104, 50, 670, 50, 403, 492, 106,
! 1854: 104, 407, 597, 409, 410, 103, 50, 6, 7, 8,
! 1855: 489, 543, 572, 564, 13, 105, 40, 577, 43, 43,
! 1856: 456, 45, 428, 3, 192, 104, 103, 195, 50, 465,
! 1857: 103, 569, 98, 43, 202, 34, 60, 43, 576, 54,
! 1858: 572, 601, 41, 603, 43, 577, 70, 103, 454, 103,
! 1859: 43, 457, 43, 489, 926, 82, 401, 82, 82, 103,
! 1860: 43, 50, 50, 50, 543, 43, 50, 45, 606, 601,
! 1861: 94, 603, 82, 7, 8, 49, 82, 83, 610, 13,
! 1862: 54, 103, 106, 82, 622, 1190, 593, 108, 43, 82,
! 1863: 83, 82, 83, 572, 798, 799, 264, 103, 577, 82,
! 1864: 34, 537, 538, 103, 82, 43, 274, 41, 453, 43,
! 1865: 103, 761, 103, 828, 103, 103, 103, 43, 286, 103,
! 1866: 770, 43, 601, 43, 603, 668, 471, 82, 667, 52,
! 1867: 43, 610, 836, 837, 667, 667, 734, 735, 1, 2,
! 1868: 104, 105, 3, 4, 82, 83, 796, 85, 82, 700,
! 1869: 748, 749, 43, 828, 92, 43, 82, 593, 50, 22,
! 1870: 82, 712, 82, 83, 105, 333, 698, 30, 82, 82,
! 1871: 83, 607, 517, 65, 712, 38, 39, 4, 5, 40,
! 1872: 7, 8, 43, 103, 45, 46, 13, 1, 356, 727,
! 1873: 103, 82, 83, 783, 82, 83, 728, 3, 543, 60,
! 1874: 27, 752, 766, 822, 823, 82, 45, 34, 43, 70,
! 1875: 24, 43, 26, 82, 41, 54, 77, 31, 43, 698,
! 1876: 52, 82, 390, 103, 49, 820, 3, 4, 1037, 54,
! 1877: 36, 667, 1069, 94, 40, 49, 50, 49, 52, 45,
! 1878: 54, 10, 54, 104, 776, 106, 1083, 82, 83, 1086,
! 1879: 82, 783, 50, 116, 117, 118, 601, 82, 603, 6,
! 1880: 7, 8, 698, 104, 105, 128, 13, 94, 131, 132,
! 1881: 37, 85, 922, 7, 8, 103, 712, 815, 92, 13,
! 1882: 1089, 3, 26, 26, 147, 104, 105, 34, 151, 85,
! 1883: 104, 823, 843, 108, 41, 85, 92, 776, 734, 735,
! 1884: 34, 105, 92, 104, 105, 49, 108, 41, 104, 43,
! 1885: 54, 174, 748, 749, 104, 26, 854, 49, 882, 883,
! 1886: 665, 489, 883, 54, 55, 1117, 1118, 303, 103, 192,
! 1887: 766, 676, 870, 43, 197, 873, 46, 200, 49, 684,
! 1888: 70, 71, 72, 54, 104, 105, 103, 783, 82, 999,
! 1889: 60, 883, 884, 24, 1004, 26, 104, 105, 890, 891,
! 1890: 70, 893, 798, 799, 3, 897, 873, 77, 875, 714,
! 1891: 108, 716, 82, 83, 45, 543, 4, 5, 49, 7,
! 1892: 8, 52, 1032, 246, 50, 13, 82, 823, 43, 31,
! 1893: 1040, 104, 105, 52, 926, 103, 6, 7, 8, 27,
! 1894: 50, 264, 104, 13, 572, 60, 34, 53, 103, 577,
! 1895: 219, 220, 83, 41, 85, 70, 103, 393, 897, 884,
! 1896: 48, 92, 77, 286, 34, 890, 103, 82, 83, 103,
! 1897: 968, 41, 108, 601, 105, 603, 103, 873, 301, 875,
! 1898: 108, 34, 610, 975, 976, 33, 882, 926, 104, 7,
! 1899: 8, 104, 1, 104, 82, 13, 319, 320, 103, 865,
! 1900: 104, 324, 103, 869, 50, 108, 94, 330, 108, 54,
! 1901: 54, 877, 335, 82, 1012, 24, 34, 26, 52, 52,
! 1902: 825, 52, 31, 41, 1079, 1017, 105, 103, 833, 1021,
! 1903: 353, 354, 103, 356, 43, 103, 103, 103, 54, 122,
! 1904: 49, 50, 82, 52, 1011, 54, 851, 108, 4, 5,
! 1905: 975, 7, 8, 1051, 8, 52, 108, 13, 68, 69,
! 1906: 70, 71, 72, 386, 387, 103, 108, 390, 94, 54,
! 1907: 698, 27, 54, 82, 83, 54, 85, 52, 34, 103,
! 1908: 1, 2, 103, 92, 1076, 41, 108, 82, 103, 43,
! 1909: 103, 103, 1017, 1213, 1214, 104, 1021, 103, 103, 103,
! 1910: 8, 22, 1094, 3, 4, 105, 60, 973, 54, 30,
! 1911: 976, 977, 195, 82, 1234, 1011, 70, 38, 39, 82,
! 1912: 82, 54, 49, 77, 104, 49, 104, 104, 82, 83,
! 1913: 15, 54, 52, 52, 1126, 3, 50, 1129, 94, 103,
! 1914: 40, 43, 465, 43, 103, 45, 46, 54, 776, 104,
! 1915: 82, 1076, 104, 82, 104, 1205, 1022, 1023, 105, 104,
! 1916: 60, 104, 1154, 104, 247, 104, 1158, 1159, 83, 1094,
! 1917: 70, 82, 74, 75, 83, 103, 78, 77, 80, 16,
! 1918: 82, 83, 82, 83, 49, 1177, 104, 103, 105, 52,
! 1919: 1182, 104, 104, 103, 94, 116, 117, 118, 104, 104,
! 1920: 1066, 104, 103, 54, 1129, 103, 106, 128, 82, 1075,
! 1921: 131, 132, 108, 1205, 537, 538, 108, 1215, 10, 89,
! 1922: 303, 304, 104, 1190, 1216, 1217, 147, 104, 104, 1154,
! 1923: 151, 3, 82, 1158, 1159, 50, 4, 5, 6, 7,
! 1924: 8, 82, 103, 3, 4, 13, 6, 7, 8, 572,
! 1925: 333, 103, 1177, 174, 577, 103, 103, 1182, 104, 27,
! 1926: 104, 10, 104, 103, 10, 104, 34, 0, 351, 897,
! 1927: 593, 192, 0, 41, 34, 2, 698, 1082, 127, 200,
! 1928: 1085, 288, 139, 128, 607, 128, 712, 610, 48, 49,
! 1929: 496, 1216, 1217, 498, 1190, 751, 976, 271, 926, 1053,
! 1930: 882, 165, 1168, 1169, 1113, 226, 815, 330, 624, 1205,
! 1931: 393, 30, 1178, 30, 731, 752, 897, 354, 401, 776,
! 1932: 398, 324, 622, 729, 1018, 246, 94, 1199, 1201, 207,
! 1933: 1011, 252, 1198, 783, 94, -1, -1, -1, -1, 99,
! 1934: 100, 101, 425, 426, 427, -1, 429, 430, 431, 432,
! 1935: 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
! 1936: 443, 444, 445, -1, -1, 286, 802, 803, -1, 452,
! 1937: 453, 66, 67, 68, 69, 70, 71, 72, -1, -1,
! 1938: 1, -1, 3, 4, 5, 6, 7, 8, 471, 712,
! 1939: 826, -1, 13, -1, -1, -1, -1, -1, 319, 320,
! 1940: -1, -1, -1, 324, 20, 21, 27, -1, -1, 330,
! 1941: -1, 734, 735, 34, 335, 498, -1, 853, 854, 40,
! 1942: 41, -1, 43, -1, 45, 748, 749, 4, 5, 6,
! 1943: 7, 8, 353, 354, 517, 356, 13, -1, -1, 60,
! 1944: -1, 524, 58, 766, -1, -1, -1, -1, -1, 70,
! 1945: 27, -1, -1, 776, -1, -1, -1, 34, -1, 75,
! 1946: 543, 82, -1, -1, 41, 386, 387, -1, -1, 390,
! 1947: -1, -1, -1, 94, 95, 798, 799, -1, -1, -1,
! 1948: -1, -1, -1, 104, -1, 106, -1, 570, 571, -1,
! 1949: -1, -1, -1, -1, 930, 1, -1, 3, 4, 5,
! 1950: 6, 7, 8, -1, -1, -1, -1, 13, -1, -1,
! 1951: -1, -1, -1, -1, -1, -1, -1, 94, 601, -1,
! 1952: 603, 27, -1, -1, -1, -1, 962, -1, 34, 35,
! 1953: -1, -1, 148, 149, 40, 41, -1, 43, 621, 45,
! 1954: -1, -1, -1, -1, 465, 466, 1, 2, 54, -1,
! 1955: 873, -1, 875, 636, 60, -1, -1, -1, -1, 882,
! 1956: 883, -1, -1, -1, 70, -1, -1, 22, 3, 4,
! 1957: -1, -1, -1, -1, 897, 30, 82, -1, 194, -1,
! 1958: -1, -1, 665, -1, 39, 201, -1, -1, 94, -1,
! 1959: -1, -1, 1028, 676, -1, -1, -1, 1033, 104, 105,
! 1960: 106, 684, -1, 926, -1, 40, -1, -1, 43, -1,
! 1961: 45, 46, -1, 48, -1, 1051, 537, 538, -1, 54,
! 1962: -1, -1, -1, -1, -1, 60, -1, 1063, -1, -1,
! 1963: -1, 714, -1, 716, -1, 70, -1, 720, -1, -1,
! 1964: -1, -1, 77, 259, -1, 261, 262, 82, -1, -1,
! 1965: -1, 572, -1, -1, -1, -1, 577, -1, -1, 94,
! 1966: -1, 116, 117, 118, -1, -1, -1, -1, -1, -1,
! 1967: 1106, 106, -1, 128, -1, 758, -1, -1, -1, -1,
! 1968: -1, -1, -1, 1119, -1, -1, 607, -1, 1011, 610,
! 1969: 43, -1, 147, -1, -1, -1, 151, -1, -1, -1,
! 1970: -1, -1, -1, -1, -1, 321, 322, -1, -1, 1145,
! 1971: -1, -1, -1, -1, -1, -1, 332, -1, -1, 802,
! 1972: 803, 74, 75, -1, -1, 78, 79, 80, 81, 82,
! 1973: 83, -1, 815, -1, 817, -1, -1, 192, -1, -1,
! 1974: -1, -1, 825, 826, -1, 200, -1, -1, 0, 1,
! 1975: 833, 3, 4, 5, 6, 7, 8, -1, 679, -1,
! 1976: -1, 13, -1, -1, -1, -1, -1, -1, 851, -1,
! 1977: 853, 854, 388, -1, 26, 27, -1, -1, -1, -1,
! 1978: -1, -1, 34, -1, -1, -1, 38, -1, 40, 41,
! 1979: -1, 43, 44, 45, -1, -1, 4, 5, 6, 7,
! 1980: 8, -1, -1, 11, -1, 13, -1, -1, 60, 1,
! 1981: -1, -1, -1, 734, 735, -1, -1, -1, 70, 27,
! 1982: -1, -1, -1, -1, -1, -1, 34, 748, 749, -1,
! 1983: 82, 286, 24, 41, 26, -1, -1, 920, 921, 31,
! 1984: -1, -1, 94, 95, 96, 766, -1, 930, -1, -1,
! 1985: -1, 43, 104, -1, 106, 776, -1, 49, 50, -1,
! 1986: 52, -1, 54, -1, 319, 320, -1, 1190, -1, 324,
! 1987: -1, -1, 488, -1, -1, -1, -1, 798, 799, 962,
! 1988: 335, 964, -1, -1, -1, 93, 94, -1, -1, -1,
! 1989: 82, 83, -1, 85, -1, -1, -1, -1, -1, -1,
! 1990: 92, 356, -1, -1, 1, -1, 3, 4, 5, 6,
! 1991: 7, 8, 104, -1, -1, -1, 13, -1, -1, -1,
! 1992: -1, -1, -1, 539, 540, -1, 542, -1, -1, -1,
! 1993: 27, 386, 387, -1, -1, 390, -1, 34, 554, 555,
! 1994: -1, -1, -1, 40, 41, 1028, 43, -1, 45, -1,
! 1995: 1033, 1034, -1, 569, -1, -1, -1, -1, -1, -1,
! 1996: 576, 882, 883, 60, -1, -1, -1, -1, 1051, 585,
! 1997: 586, 587, -1, 70, -1, -1, 897, -1, -1, -1,
! 1998: 1063, -1, -1, -1, 600, 82, 602, -1, -1, 605,
! 1999: 606, -1, 608, 609, -1, -1, -1, 94, -1, 1082,
! 2000: -1, -1, 1085, -1, -1, 926, -1, -1, -1, 106,
! 2001: 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
! 2002: 70, 71, 72, 1106, -1, -1, -1, -1, 3, 4,
! 2003: 5, -1, 7, 8, 9, 10, 1119, 12, 13, -1,
! 2004: -1, -1, -1, -1, -1, -1, -1, 3, 4, -1,
! 2005: -1, -1, 27, 28, 29, 30, -1, 32, -1, 34,
! 2006: -1, 36, 1145, -1, 39, 40, 41, -1, -1, -1,
! 2007: 45, 687, 688, -1, -1, 691, -1, -1, -1, -1,
! 2008: -1, -1, 537, 538, 40, 60, -1, 43, -1, 45,
! 2009: 46, -1, 48, 68, 69, 70, -1, -1, 54, 74,
! 2010: 75, -1, -1, -1, 60, -1, -1, 82, -1, -1,
! 2011: -1, -1, -1, -1, 70, -1, -1, 572, -1, 94,
! 2012: -1, 77, 577, -1, -1, -1, 82, -1, 744, 745,
! 2013: 746, 106, 107, 108, -1, -1, -1, -1, 94, 62,
! 2014: 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
! 2015: 106, -1, 607, -1, -1, 610, -1, 1, -1, 3,
1.1 root 2016: 4, 5, 6, 7, 8, 9, 10, -1, 12, 13,
2017: 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2018: 24, 25, 26, 27, 28, 29, 30, -1, 32, -1,
1.1.1.2 ! root 2019: 34, -1, 36, 37, -1, 39, 40, 41, -1, 3,
! 2020: 4, 45, -1, -1, 48, 49, 63, 64, 65, 66,
! 2021: 67, 68, 69, 70, 71, 72, 60, -1, -1, -1,
! 2022: -1, -1, -1, 839, 68, 69, 70, -1, -1, -1,
! 2023: 74, 75, 3, 4, -1, -1, 40, -1, 82, 43,
! 2024: 84, 45, 86, 87, 88, -1, 90, 91, 92, -1,
! 2025: 94, -1, -1, -1, -1, -1, 60, -1, -1, -1,
! 2026: 104, 105, 106, 107, -1, -1, 70, -1, -1, 40,
! 2027: -1, -1, 43, 77, 45, 46, -1, -1, 82, 734,
! 2028: 735, -1, -1, -1, -1, -1, 902, 903, 904, 60,
! 2029: 94, -1, -1, 748, 749, -1, -1, -1, -1, 70,
! 2030: -1, 917, 106, -1, -1, -1, 77, -1, -1, 925,
! 2031: -1, 82, -1, -1, -1, 931, 932, 933, 934, 935,
! 2032: 936, 776, -1, 94, -1, -1, -1, -1, -1, -1,
! 2033: -1, -1, -1, 104, -1, 106, -1, -1, -1, -1,
! 2034: -1, -1, -1, 798, 799, -1, 1, -1, 3, 4,
! 2035: 5, 6, 7, 8, 9, 10, -1, 12, 13, 14,
! 2036: -1, 16, 17, 18, 19, 20, 21, 22, 23, 24,
! 2037: 25, 26, 27, 28, 29, 30, -1, 32, -1, 34,
! 2038: -1, 36, 37, -1, 39, 40, 41, -1, -1, -1,
! 2039: 45, -1, -1, 48, 49, -1, -1, -1, -1, -1,
! 2040: -1, -1, -1, -1, -1, 60, -1, -1, -1, -1,
! 2041: -1, -1, -1, 68, 69, 70, -1, -1, -1, 74,
! 2042: 75, -1, -1, -1, -1, -1, -1, 82, 883, 84,
! 2043: -1, -1, 87, -1, -1, 90, 91, 92, -1, 94,
! 2044: -1, -1, 897, -1, -1, -1, -1, -1, -1, 104,
! 2045: 105, 106, 107, -1, -1, -1, -1, 1, -1, 3,
! 2046: 4, 5, 6, 7, 8, 9, 10, -1, 12, 13,
! 2047: 14, 926, 16, 17, 18, 19, 20, 21, 22, 23,
! 2048: 24, 25, 26, 27, 28, 29, 30, -1, 32, -1,
! 2049: 34, -1, 36, 37, -1, 39, 40, 41, -1, -1,
! 2050: -1, 45, -1, -1, 48, 49, -1, -1, -1, -1,
! 2051: -1, -1, -1, -1, -1, -1, 60, -1, -1, -1,
! 2052: -1, -1, -1, -1, 68, 69, 70, -1, -1, -1,
! 2053: 74, 75, -1, -1, -1, -1, -1, -1, 82, -1,
! 2054: 84, -1, -1, 87, -1, -1, 90, 91, 92, -1,
! 2055: 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 2056: 104, 105, 106, 107, 1, -1, 3, 4, 5, 6,
1.1 root 2057: 7, 8, 9, 10, -1, 12, 13, 14, -1, 16,
2058: 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1.1.1.2 ! root 2059: 27, 28, 29, 30, -1, 32, -1, 34, -1, 36,
! 2060: 37, -1, 39, 40, 41, -1, -1, -1, 45, -1,
! 2061: -1, 48, 49, -1, -1, -1, -1, -1, -1, -1,
! 2062: -1, -1, -1, 60, -1, -1, -1, -1, -1, -1,
! 2063: -1, 68, 69, 70, -1, -1, -1, 74, 75, -1,
! 2064: -1, -1, -1, -1, -1, 82, -1, 84, -1, -1,
! 2065: 87, -1, -1, 90, 91, 92, -1, 94, -1, -1,
! 2066: -1, -1, -1, -1, -1, -1, -1, 104, 105, 106,
! 2067: 107, 1, -1, 3, 4, 5, 6, 7, 8, 9,
! 2068: 10, -1, 12, 13, 14, -1, 16, 17, 18, 19,
! 2069: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
! 2070: 30, -1, 32, -1, 34, -1, 36, 37, -1, 39,
! 2071: 40, 41, -1, -1, -1, 45, -1, -1, 48, 49,
1.1 root 2072: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1.1.1.2 ! root 2073: 60, -1, -1, -1, -1, -1, -1, -1, 68, 69,
! 2074: 70, -1, -1, -1, 74, 75, -1, -1, -1, -1,
! 2075: -1, -1, 82, -1, 84, -1, -1, 87, -1, -1,
! 2076: 90, 91, 92, -1, 94, -1, -1, -1, -1, -1,
! 2077: -1, -1, -1, -1, 104, 105, 106, 107, 1, -1,
1.1 root 2078: 3, 4, 5, 6, 7, 8, 9, 10, -1, 12,
2079: 13, 14, -1, 16, 17, 18, 19, 20, 21, 22,
2080: 23, 24, 25, 26, 27, 28, 29, 30, -1, 32,
1.1.1.2 ! root 2081: -1, 34, -1, 36, 37, -1, 39, 40, 41, -1,
! 2082: -1, -1, 45, -1, -1, 48, 49, -1, -1, -1,
! 2083: -1, -1, -1, -1, -1, -1, -1, 60, -1, -1,
! 2084: -1, -1, -1, -1, -1, 68, 69, 70, -1, -1,
! 2085: -1, 74, 75, -1, -1, -1, -1, -1, -1, 82,
! 2086: -1, 84, -1, -1, 87, -1, -1, 90, 91, 92,
! 2087: -1, 94, -1, -1, -1, -1, -1, -1, -1, -1,
! 2088: -1, 104, 105, 106, 107, 1, -1, 3, 4, 5,
! 2089: 6, 7, 8, 9, 10, -1, 12, 13, 14, -1,
! 2090: 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
! 2091: 26, 27, 28, 29, 30, -1, 32, -1, 34, -1,
! 2092: 36, 37, -1, 39, 40, 41, -1, -1, -1, 45,
! 2093: -1, -1, 48, 49, -1, -1, -1, -1, -1, -1,
! 2094: -1, -1, -1, -1, 60, -1, -1, -1, -1, -1,
! 2095: -1, -1, 68, 69, 70, -1, -1, -1, 74, 75,
! 2096: -1, -1, -1, -1, -1, -1, 82, -1, 84, -1,
! 2097: -1, 87, -1, -1, 90, 91, 92, -1, 94, -1,
! 2098: -1, -1, -1, -1, -1, -1, -1, -1, 104, 105,
! 2099: 106, 107, 1, -1, 3, 4, 5, 6, 7, 8,
! 2100: 9, 10, -1, 12, 13, 14, -1, 16, 17, 18,
! 2101: 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
! 2102: 29, 30, -1, 32, -1, 34, -1, 36, 37, -1,
! 2103: 39, 40, 41, -1, -1, -1, 45, -1, -1, 48,
! 2104: 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 2105: -1, 60, -1, -1, -1, -1, -1, -1, -1, 68,
! 2106: 69, 70, -1, -1, -1, 74, 75, -1, -1, -1,
! 2107: -1, -1, -1, 82, -1, 84, -1, -1, 87, -1,
! 2108: -1, 90, 91, 92, -1, 94, -1, -1, -1, -1,
! 2109: -1, -1, -1, -1, -1, 104, -1, 106, 107, 1,
! 2110: -1, 3, 4, 5, 6, 7, 8, 9, 10, -1,
! 2111: 12, 13, 14, -1, 16, 17, 18, 19, 20, 21,
! 2112: 22, 23, 24, 25, 26, 27, 28, 29, 30, -1,
! 2113: 32, -1, 34, -1, 36, 37, -1, 39, 40, 41,
! 2114: -1, -1, -1, 45, -1, -1, 48, 49, -1, -1,
! 2115: -1, -1, -1, -1, -1, -1, -1, -1, 60, -1,
! 2116: -1, -1, -1, -1, -1, -1, 68, 69, 70, -1,
! 2117: -1, -1, 74, 75, -1, -1, -1, -1, -1, -1,
! 2118: 82, -1, 84, -1, -1, 87, -1, -1, 90, 91,
! 2119: 92, 1, 94, -1, 4, 5, -1, 7, 8, -1,
! 2120: -1, -1, 104, 13, 106, 107, -1, -1, -1, -1,
! 2121: -1, -1, -1, -1, -1, -1, -1, 27, -1, -1,
! 2122: -1, -1, -1, -1, 34, -1, 36, 37, -1, -1,
! 2123: -1, 41, 42, 43, -1, -1, -1, -1, -1, -1,
! 2124: 50, 51, 52, 53, -1, -1, 56, 57, 58, 59,
! 2125: 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
! 2126: 70, 71, 72, -1, 74, 75, -1, -1, 78, 79,
! 2127: -1, -1, -1, 83, -1, -1, -1, -1, -1, -1,
! 2128: -1, -1, -1, 1, 94, 3, 4, 5, 6, 7,
! 2129: 8, 9, 10, 11, 12, 13, 106, 107, -1, -1,
! 2130: -1, -1, -1, -1, -1, -1, -1, -1, -1, 27,
! 2131: 28, 29, 30, -1, 32, -1, 34, -1, 36, 37,
! 2132: -1, 39, 40, 41, -1, -1, -1, 45, 51, 52,
! 2133: 53, -1, -1, 56, 57, 58, 59, 60, 61, 62,
! 2134: 63, 64, 60, 66, 67, 68, 69, 70, 71, 72,
! 2135: 68, 69, 70, -1, -1, -1, 74, 75, -1, -1,
! 2136: -1, -1, -1, -1, 82, -1, -1, -1, -1, -1,
! 2137: -1, -1, -1, -1, -1, 93, 94, -1, -1, -1,
! 2138: -1, -1, -1, -1, -1, 103, -1, -1, 106, 107,
! 2139: 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
! 2140: 11, 12, 13, 61, 62, 63, 64, 65, 66, 67,
! 2141: 68, 69, 70, 71, 72, -1, 27, 28, 29, 30,
! 2142: -1, 32, -1, 34, -1, 36, 37, -1, 39, 40,
! 2143: 41, -1, -1, -1, 45, 59, 60, 61, 62, 63,
! 2144: 64, 65, 66, 67, 68, 69, 70, 71, 72, 60,
! 2145: -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
! 2146: -1, -1, -1, 74, 75, -1, -1, -1, -1, -1,
! 2147: -1, 82, -1, -1, -1, -1, -1, -1, -1, -1,
! 2148: -1, -1, 93, 94, -1, -1, -1, -1, -1, -1,
! 2149: -1, -1, 103, -1, -1, 106, 107, 1, -1, 3,
! 2150: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1.1 root 2151: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1.1.1.2 ! root 2152: -1, -1, -1, 27, 28, 29, 30, -1, 32, -1,
! 2153: 34, -1, 36, 37, -1, 39, 40, 41, -1, -1,
! 2154: -1, 45, -1, -1, -1, -1, -1, -1, -1, -1,
! 2155: -1, -1, -1, -1, -1, -1, 60, -1, -1, -1,
! 2156: -1, -1, -1, -1, 68, 69, 70, -1, -1, -1,
! 2157: 74, 75, -1, -1, -1, -1, -1, -1, 82, -1,
! 2158: -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
! 2159: 94, -1, -1, -1, -1, -1, -1, -1, -1, 103,
! 2160: -1, -1, 106, 107, 1, -1, 3, 4, 5, 6,
! 2161: 7, 8, 9, 10, 11, 12, 13, -1, -1, -1,
1.1 root 2162: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1.1.1.2 ! root 2163: 27, 28, 29, 30, -1, 32, -1, 34, -1, 36,
! 2164: 37, -1, 39, 40, 41, -1, -1, -1, 45, -1,
! 2165: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 2166: -1, -1, -1, 60, -1, -1, -1, -1, -1, -1,
! 2167: -1, 68, 69, 70, -1, -1, -1, 74, 75, -1,
! 2168: -1, -1, -1, -1, -1, 82, -1, -1, -1, -1,
! 2169: -1, -1, -1, -1, -1, -1, 93, 94, -1, -1,
! 2170: -1, -1, -1, -1, -1, -1, 103, -1, -1, 106,
! 2171: 107, 1, -1, 3, 4, 5, 6, 7, 8, 9,
! 2172: 10, 11, 12, 13, -1, -1, -1, -1, -1, -1,
! 2173: -1, -1, 3, 4, -1, -1, -1, 27, 28, 29,
! 2174: 30, -1, 32, -1, 34, -1, 36, 37, -1, 39,
! 2175: 40, 41, -1, -1, -1, 45, -1, -1, -1, -1,
! 2176: -1, -1, -1, -1, -1, -1, -1, -1, -1, 40,
! 2177: 60, -1, 43, -1, 45, 46, -1, -1, 68, 69,
! 2178: 70, -1, -1, -1, 74, 75, -1, -1, -1, 60,
! 2179: -1, -1, 82, -1, -1, -1, -1, 3, 4, 70,
! 2180: 6, 7, 8, 93, 94, -1, 77, -1, -1, -1,
! 2181: -1, 82, -1, 103, -1, -1, 106, 107, 1, -1,
! 2182: 3, 4, 5, 94, 7, 8, 9, 10, 34, 12,
! 2183: 13, -1, -1, -1, -1, 106, -1, -1, -1, -1,
! 2184: -1, -1, 48, 49, 27, 28, 29, 30, -1, 32,
! 2185: -1, 34, -1, 36, 37, -1, 39, 40, 41, -1,
! 2186: -1, -1, 45, -1, -1, -1, 49, -1, -1, -1,
! 2187: -1, -1, -1, -1, -1, -1, -1, 60, -1, -1,
! 2188: -1, -1, -1, -1, -1, 68, 69, 70, 94, -1,
! 2189: -1, 74, 75, 99, 100, 101, -1, -1, -1, 82,
! 2190: 83, 1, -1, 3, 4, 5, -1, 7, 8, 9,
! 2191: 10, 94, 12, 13, -1, -1, -1, -1, -1, -1,
! 2192: 20, -1, 105, 106, 107, -1, -1, 27, 28, 29,
! 2193: 30, -1, 32, -1, 34, -1, 36, 37, -1, 39,
! 2194: 40, 41, -1, -1, -1, 45, -1, -1, -1, 49,
1.1 root 2195: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1.1.1.2 ! root 2196: 60, -1, -1, -1, -1, -1, -1, -1, 68, 69,
! 2197: 70, -1, -1, -1, 74, 75, -1, -1, -1, -1,
! 2198: -1, -1, 82, -1, 1, -1, 3, 4, 5, 6,
! 2199: 7, 8, 9, 10, 94, 12, 13, -1, -1, -1,
! 2200: -1, -1, -1, -1, -1, 105, 106, 107, -1, -1,
! 2201: 27, 28, 29, 30, -1, 32, -1, 34, -1, 36,
! 2202: 37, -1, 39, 40, 41, -1, -1, -1, 45, -1,
! 2203: -1, -1, 49, -1, -1, -1, -1, -1, -1, -1,
! 2204: -1, -1, -1, 60, -1, -1, -1, -1, -1, -1,
! 2205: -1, 68, 69, 70, -1, -1, -1, 74, 75, -1,
! 2206: -1, -1, -1, -1, -1, 82, -1, 1, -1, 3,
! 2207: 4, 5, -1, 7, 8, 9, 10, 94, 12, 13,
! 2208: -1, -1, -1, -1, -1, -1, 20, 104, -1, 106,
! 2209: 107, -1, -1, 27, 28, 29, 30, -1, 32, -1,
! 2210: 34, -1, 36, 37, -1, 39, 40, 41, -1, -1,
! 2211: -1, 45, -1, -1, -1, 49, -1, -1, -1, -1,
! 2212: -1, -1, -1, -1, -1, -1, 60, -1, -1, -1,
! 2213: -1, -1, -1, -1, 68, 69, 70, -1, -1, -1,
! 2214: 74, 75, -1, -1, -1, -1, -1, -1, 82, -1,
! 2215: 1, -1, 3, 4, 5, -1, 7, 8, 9, 10,
! 2216: 94, 12, 13, -1, -1, -1, -1, -1, -1, -1,
! 2217: -1, 105, 106, 107, -1, -1, 27, 28, 29, 30,
! 2218: -1, 32, -1, 34, -1, 36, 37, -1, 39, 40,
! 2219: 41, -1, -1, -1, 45, -1, -1, -1, 49, -1,
! 2220: -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
! 2221: -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
! 2222: -1, -1, -1, 74, 75, -1, -1, -1, -1, -1,
! 2223: -1, 82, 83, 1, -1, 3, 4, 5, -1, 7,
! 2224: 8, 9, 10, 94, 12, 13, -1, -1, -1, -1,
! 2225: -1, -1, -1, -1, -1, 106, 107, -1, -1, 27,
! 2226: 28, 29, 30, -1, 32, -1, 34, -1, 36, 37,
! 2227: -1, 39, 40, 41, -1, -1, -1, 45, -1, -1,
! 2228: -1, 49, -1, -1, -1, -1, -1, -1, -1, -1,
! 2229: -1, -1, 60, -1, -1, -1, -1, -1, -1, -1,
! 2230: 68, 69, 70, -1, -1, -1, 74, 75, -1, -1,
! 2231: -1, -1, -1, -1, 82, -1, 1, -1, 3, 4,
! 2232: 5, -1, 7, 8, 9, 10, 94, 12, 13, -1,
! 2233: -1, -1, -1, -1, -1, -1, -1, -1, 106, 107,
1.1 root 2234: -1, -1, 27, 28, 29, 30, -1, 32, -1, 34,
1.1.1.2 ! root 2235: -1, 36, 37, -1, 39, 40, 41, -1, -1, -1,
! 2236: 45, -1, -1, -1, 49, -1, -1, -1, -1, -1,
! 2237: -1, -1, -1, -1, -1, 60, -1, -1, -1, -1,
! 2238: -1, -1, -1, 68, 69, 70, -1, -1, -1, 74,
! 2239: 75, -1, -1, -1, -1, -1, -1, 82, -1, 1,
! 2240: -1, 3, 4, 5, -1, 7, 8, 9, 10, 94,
1.1 root 2241: 12, 13, -1, -1, -1, -1, -1, -1, -1, -1,
1.1.1.2 ! root 2242: -1, 106, 107, -1, -1, 27, 28, 29, 30, -1,
! 2243: 32, -1, 34, -1, 36, 37, -1, 39, 40, 41,
! 2244: -1, -1, -1, 45, -1, -1, -1, -1, -1, -1,
! 2245: -1, -1, 54, -1, -1, -1, -1, -1, 60, -1,
! 2246: -1, -1, -1, -1, -1, -1, 68, 69, 70, -1,
! 2247: -1, -1, 74, 75, -1, -1, -1, -1, -1, -1,
! 2248: 82, -1, 1, -1, 3, 4, 5, -1, 7, 8,
! 2249: 9, 10, 94, 12, 13, -1, -1, -1, -1, -1,
! 2250: -1, -1, -1, -1, 106, 107, -1, -1, 27, 28,
! 2251: 29, 30, -1, 32, -1, 34, -1, 36, 37, -1,
! 2252: 39, 40, 41, -1, -1, -1, 45, -1, -1, -1,
! 2253: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 2254: -1, 60, -1, -1, -1, -1, -1, -1, -1, 68,
! 2255: 69, 70, -1, -1, -1, 74, 75, -1, -1, -1,
! 2256: -1, -1, -1, 82, -1, 1, -1, 3, 4, 5,
! 2257: -1, 7, 8, 9, 10, 94, 12, 13, -1, -1,
! 2258: -1, -1, -1, -1, -1, 104, -1, 106, 107, -1,
! 2259: -1, 27, 28, 29, 30, -1, 32, -1, 34, -1,
! 2260: 36, 37, -1, 39, 40, 41, -1, -1, -1, 45,
! 2261: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 2262: -1, -1, -1, -1, 60, -1, -1, -1, -1, -1,
! 2263: -1, -1, 68, 69, 70, -1, -1, -1, 74, 75,
! 2264: -1, -1, -1, -1, -1, -1, 82, -1, 1, -1,
! 2265: 3, 4, 5, -1, 7, 8, 9, 10, 94, 12,
! 2266: 13, -1, -1, -1, -1, -1, -1, 103, -1, -1,
! 2267: 106, 107, -1, -1, 27, 28, 29, 30, -1, 32,
! 2268: -1, 34, -1, 36, 37, -1, 39, 40, 41, -1,
! 2269: -1, -1, 45, 1, -1, 3, 4, 5, 6, 7,
! 2270: 8, -1, -1, -1, -1, 13, -1, 60, -1, -1,
! 2271: -1, -1, -1, -1, -1, 68, 69, 70, 26, 27,
! 2272: -1, 74, 75, -1, -1, -1, 34, -1, -1, 82,
! 2273: 38, -1, 40, 41, -1, 43, 44, 45, -1, -1,
! 2274: -1, 94, -1, -1, -1, -1, -1, -1, -1, -1,
! 2275: -1, -1, 60, 106, 107, -1, -1, -1, -1, -1,
! 2276: -1, -1, 70, -1, -1, -1, 1, -1, 3, 4,
! 2277: 5, 6, 7, 8, 82, -1, -1, -1, 13, -1,
! 2278: -1, -1, -1, -1, -1, -1, 94, 95, 96, -1,
! 2279: -1, 26, 27, -1, -1, -1, 104, 105, 106, 34,
! 2280: -1, -1, -1, 38, -1, 40, 41, -1, 43, 44,
! 2281: 45, 1, -1, 3, 4, 5, 6, 7, 8, -1,
! 2282: -1, -1, -1, 13, -1, 60, -1, -1, -1, -1,
! 2283: -1, -1, -1, -1, -1, 70, -1, 27, -1, -1,
! 2284: -1, -1, -1, -1, 34, 35, -1, 82, -1, -1,
! 2285: 40, 41, -1, 43, -1, 45, -1, -1, -1, 94,
! 2286: 95, 96, -1, -1, 54, -1, -1, -1, -1, 104,
! 2287: 60, 106, -1, -1, -1, -1, -1, -1, -1, 1,
! 2288: 70, 3, 4, 5, 6, 7, 8, -1, -1, -1,
! 2289: -1, 13, 82, -1, 3, 4, -1, -1, -1, 8,
! 2290: -1, -1, -1, -1, 94, 27, -1, -1, -1, -1,
! 2291: -1, -1, 34, 35, 104, 105, 106, -1, 40, 41,
! 2292: -1, 43, -1, 45, -1, 3, 4, -1, -1, -1,
! 2293: 8, 40, 54, -1, 43, -1, 45, 1, 60, 3,
! 2294: 4, 5, 6, 7, 8, -1, -1, -1, 70, 13,
! 2295: -1, 60, -1, -1, -1, -1, -1, -1, -1, -1,
! 2296: 82, 70, 40, 27, -1, 43, -1, 45, 77, -1,
! 2297: 34, 35, 94, 82, -1, -1, 40, 41, -1, 43,
! 2298: -1, 45, 60, 105, 106, 94, -1, -1, -1, -1,
! 2299: 54, -1, 70, -1, -1, -1, 60, 106, -1, -1,
! 2300: -1, -1, -1, -1, 82, -1, 70, -1, -1, -1,
! 2301: -1, -1, -1, -1, -1, -1, 94, -1, 82, -1,
! 2302: -1, -1, -1, -1, -1, -1, -1, -1, 106, -1,
! 2303: 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 2304: -1, 105, 106, 3, 4, 5, 6, 7, 8, 9,
! 2305: 10, -1, 12, 13, 14, -1, 16, 17, 18, 19,
! 2306: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
! 2307: 30, -1, 32, -1, 34, -1, 36, -1, -1, 39,
! 2308: 40, 41, -1, -1, -1, 45, -1, -1, 48, 49,
1.1 root 2309: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1.1.1.2 ! root 2310: 60, -1, -1, -1, -1, -1, -1, -1, 68, 69,
! 2311: 70, -1, -1, -1, 74, 75, -1, -1, -1, -1,
! 2312: -1, -1, 82, -1, 84, -1, -1, 87, -1, -1,
! 2313: 90, 91, 92, -1, 94, -1, -1, -1, -1, -1,
! 2314: -1, -1, -1, -1, 104, 105, 106, 107, 3, 4,
1.1 root 2315: 5, 6, 7, 8, 9, 10, -1, 12, 13, 14,
2316: -1, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2317: 25, 26, 27, 28, 29, 30, -1, 32, -1, 34,
1.1.1.2 ! root 2318: -1, 36, -1, -1, 39, 40, 41, -1, -1, -1,
! 2319: 45, -1, -1, 48, 49, -1, -1, -1, -1, -1,
! 2320: -1, -1, -1, -1, -1, 60, -1, -1, 3, 4,
! 2321: -1, -1, -1, 68, 69, 70, -1, -1, -1, 74,
! 2322: 75, -1, -1, -1, -1, -1, -1, 82, -1, 84,
! 2323: -1, -1, 87, -1, -1, 90, 91, 92, -1, 94,
! 2324: -1, -1, -1, -1, -1, 40, -1, -1, 43, 104,
! 2325: 45, 106, 107, 3, 4, 5, -1, 7, 8, 9,
! 2326: 10, -1, 12, 13, -1, 60, -1, -1, -1, -1,
! 2327: -1, -1, -1, -1, -1, 70, -1, 27, 28, 29,
! 2328: 30, -1, 32, -1, 34, -1, 36, 82, -1, 39,
! 2329: 40, 41, -1, -1, -1, 45, -1, -1, -1, 94,
! 2330: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 2331: 60, 106, -1, 3, 4, -1, -1, -1, 68, 69,
! 2332: 70, -1, -1, -1, 74, 75, -1, -1, -1, -1,
! 2333: -1, -1, 82, 83, -1, -1, 3, 4, 5, -1,
! 2334: 7, 8, 9, 10, 94, 12, 13, -1, -1, -1,
! 2335: 40, -1, -1, 43, -1, 45, 106, 107, -1, -1,
! 2336: 27, 28, 29, 30, -1, 32, -1, 34, -1, 36,
! 2337: 60, -1, 39, 40, 41, -1, -1, -1, 45, -1,
! 2338: 70, -1, 49, -1, -1, -1, -1, 77, -1, -1,
! 2339: -1, -1, 82, 60, -1, -1, 3, 4, -1, -1,
! 2340: -1, 68, 69, 70, 94, -1, -1, 74, 75, -1,
! 2341: -1, -1, -1, -1, -1, 82, 106, -1, -1, 3,
! 2342: 4, 5, -1, 7, 8, 9, 10, 94, 12, 13,
! 2343: -1, -1, -1, 40, -1, -1, 43, -1, 45, 106,
! 2344: 107, -1, -1, 27, 28, 29, 30, -1, 32, -1,
! 2345: 34, -1, 36, 60, -1, 39, 40, 41, -1, -1,
! 2346: -1, 45, -1, 70, -1, -1, -1, -1, -1, -1,
! 2347: 77, -1, -1, -1, -1, 82, 60, -1, -1, 3,
! 2348: 4, -1, -1, -1, 68, 69, 70, 94, -1, -1,
! 2349: 74, 75, -1, -1, -1, -1, -1, -1, 82, 106,
! 2350: -1, -1, 3, 4, 5, -1, 7, 8, 9, 10,
! 2351: 94, 12, 13, -1, -1, -1, 40, -1, -1, 43,
! 2352: 104, 45, 106, 107, -1, -1, 27, 28, 29, 30,
! 2353: -1, 32, -1, 34, -1, 36, 60, -1, 39, 40,
! 2354: 41, -1, -1, -1, 45, -1, 70, -1, -1, -1,
! 2355: -1, -1, -1, -1, -1, -1, -1, -1, 82, 60,
! 2356: -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
! 2357: 94, -1, -1, 74, 75, -1, -1, -1, -1, -1,
! 2358: -1, 82, 106, -1, -1, 3, 4, 5, -1, 7,
! 2359: 8, 9, 10, 94, 12, 13, -1, -1, -1, -1,
! 2360: -1, -1, -1, 104, -1, 106, 107, -1, -1, 27,
! 2361: 28, 29, 30, -1, 32, -1, 34, -1, 36, -1,
! 2362: -1, 39, 40, 41, -1, -1, -1, 45, -1, -1,
! 2363: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 2364: -1, -1, 60, -1, -1, -1, -1, -1, -1, -1,
! 2365: 68, 69, 70, -1, -1, -1, 74, 75, -1, -1,
! 2366: -1, -1, -1, -1, 82, -1, -1, -1, 3, 4,
! 2367: 5, -1, 7, 8, 9, 10, 94, 12, 13, -1,
! 2368: -1, -1, -1, -1, -1, -1, -1, -1, 106, 107,
1.1 root 2369: -1, -1, 27, 28, 29, 30, -1, 32, -1, 34,
1.1.1.2 ! root 2370: -1, 36, -1, -1, 39, 40, 41, -1, -1, -1,
! 2371: 45, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 2372: -1, -1, -1, -1, -1, 60, -1, -1, -1, -1,
! 2373: -1, -1, -1, 68, 69, 70, -1, -1, -1, 74,
! 2374: 75, -1, -1, -1, -1, -1, -1, 82, -1, -1,
! 2375: -1, 3, 4, 5, -1, 7, 8, 9, 10, 94,
! 2376: 12, 13, -1, -1, -1, -1, -1, -1, -1, -1,
! 2377: -1, 106, 107, -1, -1, 27, 28, 29, 30, -1,
! 2378: 32, -1, 34, -1, 36, -1, -1, 39, 40, 41,
! 2379: -1, -1, -1, 45, -1, 3, 4, 5, -1, 7,
! 2380: 8, 9, 10, -1, 12, 13, -1, -1, 60, -1,
! 2381: -1, -1, -1, -1, -1, -1, 68, 69, 70, 27,
! 2382: 28, -1, 74, 75, 32, -1, 34, -1, 36, -1,
! 2383: 82, 39, 40, 41, -1, -1, -1, 45, -1, 3,
! 2384: 4, 5, 94, 7, 8, 9, 10, -1, 12, 13,
! 2385: -1, -1, 60, -1, 106, 107, -1, -1, -1, -1,
! 2386: 68, 69, 70, 27, 28, -1, 74, 75, 32, -1,
! 2387: 34, -1, 36, -1, 82, 39, 40, 41, -1, -1,
! 2388: -1, 45, -1, -1, -1, -1, 94, -1, -1, -1,
! 2389: -1, -1, -1, -1, -1, -1, 60, -1, 106, 107,
! 2390: -1, -1, -1, -1, 68, 69, 70, -1, -1, -1,
! 2391: 74, 75, -1, -1, -1, -1, -1, -1, 82, -1,
! 2392: -1, 3, 4, 5, 6, 7, 8, -1, -1, -1,
! 2393: 94, 13, -1, -1, -1, -1, -1, -1, -1, -1,
! 2394: -1, -1, 106, 107, -1, 27, -1, -1, -1, -1,
! 2395: -1, -1, 34, -1, -1, -1, -1, -1, 40, 41,
! 2396: -1, 43, -1, 45, 46, -1, 48, -1, -1, -1,
! 2397: -1, -1, 54, -1, -1, -1, -1, -1, 60, 3,
! 2398: 4, 5, 6, 7, 8, -1, -1, 11, 70, 13,
! 2399: -1, -1, -1, -1, -1, 77, -1, -1, -1, -1,
! 2400: 82, -1, -1, 27, -1, -1, -1, -1, -1, -1,
! 2401: 34, -1, 94, -1, -1, -1, 40, 41, -1, 43,
! 2402: -1, 45, 46, -1, 106, -1, -1, -1, -1, -1,
! 2403: -1, -1, -1, -1, -1, -1, 60, 3, 4, 5,
! 2404: 6, 7, 8, -1, -1, 11, 70, 13, -1, -1,
! 2405: -1, -1, -1, 77, -1, -1, -1, -1, 82, 83,
! 2406: -1, 27, -1, -1, -1, -1, -1, -1, 34, -1,
! 2407: 94, -1, -1, -1, 40, 41, -1, 43, -1, 45,
! 2408: -1, -1, 106, -1, -1, -1, -1, -1, -1, -1,
! 2409: -1, -1, -1, -1, 60, 3, 4, 5, 6, 7,
! 2410: 8, -1, -1, -1, 70, 13, -1, -1, -1, -1,
! 2411: -1, 77, -1, -1, -1, -1, 82, 83, -1, 27,
! 2412: -1, -1, -1, -1, -1, -1, 34, 93, 94, -1,
! 2413: -1, -1, 40, 41, -1, 43, -1, 45, 46, -1,
! 2414: 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 2415: -1, -1, 60, 3, 4, 5, 6, 7, 8, -1,
! 2416: -1, 11, 70, 13, -1, -1, -1, -1, -1, 77,
! 2417: -1, -1, -1, -1, 82, -1, -1, 27, -1, -1,
! 2418: -1, -1, -1, -1, 34, -1, 94, -1, -1, -1,
! 2419: 40, 41, -1, 43, -1, 45, 104, -1, 106, -1,
1.1 root 2420: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1.1.1.2 ! root 2421: 60, 3, 4, 5, 6, 7, 8, -1, -1, -1,
! 2422: 70, 13, -1, -1, -1, -1, -1, 77, -1, -1,
! 2423: -1, -1, 82, -1, -1, 27, -1, -1, -1, -1,
! 2424: -1, -1, 34, 93, 94, -1, -1, -1, 40, 41,
! 2425: -1, 43, -1, 45, 46, -1, 106, -1, -1, -1,
! 2426: -1, -1, -1, -1, -1, -1, -1, -1, 60, -1,
! 2427: -1, -1, -1, -1, -1, -1, -1, -1, 70, 3,
! 2428: 4, 5, 6, 7, 8, 77, -1, -1, -1, 13,
! 2429: 82, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 2430: -1, -1, 94, 27, -1, -1, -1, -1, -1, -1,
! 2431: 34, -1, 104, -1, 106, -1, 40, 41, -1, 43,
! 2432: -1, 45, 46, -1, 4, 5, 6, 7, 8, -1,
! 2433: -1, 11, -1, 13, -1, -1, 60, -1, -1, 4,
! 2434: 5, -1, 7, 8, -1, -1, 70, 27, 13, -1,
! 2435: -1, -1, -1, 77, 34, -1, -1, -1, 82, -1,
! 2436: -1, 41, 27, 43, -1, -1, -1, -1, -1, 34,
! 2437: 94, -1, -1, -1, -1, -1, 41, -1, 43, -1,
! 2438: 60, 46, 106, -1, -1, -1, -1, -1, -1, -1,
! 2439: 70, -1, -1, -1, -1, 60, -1, 77, -1, -1,
! 2440: -1, -1, 82, 83, -1, 70, -1, -1, -1, -1,
! 2441: -1, -1, 77, 93, 94, -1, -1, 82, 83, -1,
! 2442: -1, -1, -1, -1, -1, 51, 52, 53, -1, 94,
1.1 root 2443: 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1.1.1.2 ! root 2444: 66, 67, 68, 69, 70, 71, 72, 51, 52, 53,
! 2445: -1, -1, 56, 57, 58, 59, 60, 61, 62, 63,
! 2446: 64, 65, 66, 67, 68, 69, 70, 71, 72, -1,
! 2447: -1, -1, -1, -1, -1, -1, -1, 50, 51, 52,
! 2448: 53, -1, 108, 56, 57, 58, 59, 60, 61, 62,
! 2449: 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
! 2450: 104, 105, 51, 52, 53, 54, -1, 56, 57, 58,
1.1 root 2451: 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1.1.1.2 ! root 2452: 69, 70, 71, 72, 51, 52, 53, -1, -1, 56,
! 2453: 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
! 2454: 67, 68, 69, 70, 71, 72, 53, -1, -1, 56,
! 2455: 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
! 2456: 67, 68, 69, 70, 71, 72, 57, 58, 59, 60,
! 2457: 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
! 2458: 71, 72, 58, 59, 60, 61, 62, 63, 64, 65,
! 2459: 66, 67, 68, 69, 70, 71, 72
1.1 root 2460: };
2461: /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2462: #line 3 "bison.simple"
2463:
2464: /* Skeleton output parser for bison,
2465: Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
2466:
2467: This program is free software; you can redistribute it and/or modify
2468: it under the terms of the GNU General Public License as published by
2469: the Free Software Foundation; either version 1, or (at your option)
2470: any later version.
2471:
2472: This program is distributed in the hope that it will be useful,
2473: but WITHOUT ANY WARRANTY; without even the implied warranty of
2474: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2475: GNU General Public License for more details.
2476:
2477: You should have received a copy of the GNU General Public License
2478: along with this program; if not, write to the Free Software
2479: Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
2480:
2481:
2482: #ifndef alloca
2483: #ifdef __GNUC__
2484: #define alloca __builtin_alloca
2485: #else /* not GNU C. */
2486: #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
2487: #include <alloca.h>
2488: #else /* not sparc */
2489: #if defined (MSDOS) && !defined (__TURBOC__)
2490: #include <malloc.h>
2491: #else /* not MSDOS, or __TURBOC__ */
2492: #if defined(_AIX)
2493: #include <malloc.h>
1.1.1.2 ! root 2494: #pragma alloca
1.1 root 2495: #endif /* not _AIX */
2496: #endif /* not MSDOS, or __TURBOC__ */
2497: #endif /* not sparc. */
2498: #endif /* not GNU C. */
2499: #endif /* alloca not defined. */
2500:
2501: /* This is the parser code that is written into each bison parser
2502: when the %semantic_parser declaration is not specified in the grammar.
2503: It was written by Richard Stallman by simplifying the hairy parser
2504: used when %semantic_parser is specified. */
2505:
2506: /* Note: there must be only one dollar sign in this file.
2507: It is replaced by the list of actions, each action
2508: as one case of the switch. */
2509:
2510: #define yyerrok (yyerrstatus = 0)
2511: #define yyclearin (yychar = YYEMPTY)
2512: #define YYEMPTY -2
2513: #define YYEOF 0
2514: #define YYACCEPT return(0)
2515: #define YYABORT return(1)
2516: #define YYERROR goto yyerrlab1
2517: /* Like YYERROR except do call yyerror.
2518: This remains here temporarily to ease the
2519: transition to the new meaning of YYERROR, for GCC.
2520: Once GCC version 2 has supplanted version 1, this can go. */
2521: #define YYFAIL goto yyerrlab
2522: #define YYRECOVERING() (!!yyerrstatus)
2523: #define YYBACKUP(token, value) \
2524: do \
2525: if (yychar == YYEMPTY && yylen == 1) \
2526: { yychar = (token), yylval = (value); \
2527: yychar1 = YYTRANSLATE (yychar); \
2528: YYPOPSTACK; \
2529: goto yybackup; \
2530: } \
2531: else \
2532: { yyerror ("syntax error: cannot back up"); YYERROR; } \
2533: while (0)
2534:
2535: #define YYTERROR 1
2536: #define YYERRCODE 256
2537:
2538: #ifndef YYPURE
2539: #define YYLEX yylex()
2540: #endif
2541:
2542: #ifdef YYPURE
2543: #ifdef YYLSP_NEEDED
2544: #define YYLEX yylex(&yylval, &yylloc)
2545: #else
2546: #define YYLEX yylex(&yylval)
2547: #endif
2548: #endif
2549:
2550: /* If nonreentrant, generate the variables here */
2551:
2552: #ifndef YYPURE
2553:
2554: int yychar; /* the lookahead symbol */
2555: YYSTYPE yylval; /* the semantic value of the */
2556: /* lookahead symbol */
2557:
2558: #ifdef YYLSP_NEEDED
2559: YYLTYPE yylloc; /* location data for the lookahead */
2560: /* symbol */
2561: #endif
2562:
2563: int yynerrs; /* number of parse errors so far */
2564: #endif /* not YYPURE */
2565:
2566: #if YYDEBUG != 0
2567: int yydebug; /* nonzero means print parse trace */
2568: /* Since this is uninitialized, it does not stop multiple parsers
2569: from coexisting. */
2570: #endif
2571:
2572: /* YYINITDEPTH indicates the initial size of the parser's stacks */
2573:
2574: #ifndef YYINITDEPTH
2575: #define YYINITDEPTH 200
2576: #endif
2577:
2578: /* YYMAXDEPTH is the maximum size the stacks can grow to
2579: (effective only if the built-in stack extension method is used). */
2580:
2581: #if YYMAXDEPTH == 0
2582: #undef YYMAXDEPTH
2583: #endif
2584:
2585: #ifndef YYMAXDEPTH
2586: #define YYMAXDEPTH 10000
2587: #endif
2588:
2589: #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2590: #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2591: #else /* not GNU C or C++ */
2592: #ifndef __cplusplus
2593:
2594: /* This is the most reliable way to avoid incompatibilities
2595: in available built-in functions on various systems. */
2596: static void
2597: __yy_bcopy (from, to, count)
2598: char *from;
2599: char *to;
2600: int count;
2601: {
2602: register char *f = from;
2603: register char *t = to;
2604: register int i = count;
2605:
2606: while (i-- > 0)
2607: *t++ = *f++;
2608: }
2609:
2610: #else /* __cplusplus */
2611:
2612: /* This is the most reliable way to avoid incompatibilities
2613: in available built-in functions on various systems. */
2614: static void
2615: __yy_bcopy (char *from, char *to, int count)
2616: {
2617: register char *f = from;
2618: register char *t = to;
2619: register int i = count;
2620:
2621: while (i-- > 0)
2622: *t++ = *f++;
2623: }
2624:
2625: #endif
2626: #endif
2627:
2628: #line 169 "bison.simple"
2629: int
2630: yyparse()
2631: {
2632: register int yystate;
2633: register int yyn;
2634: register short *yyssp;
2635: register YYSTYPE *yyvsp;
2636: int yyerrstatus; /* number of tokens to shift before error messages enabled */
2637: int yychar1; /* lookahead token as an internal (translated) token number */
2638:
2639: short yyssa[YYINITDEPTH]; /* the state stack */
2640: YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2641:
2642: short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2643: YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2644:
2645: #ifdef YYLSP_NEEDED
2646: YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2647: YYLTYPE *yyls = yylsa;
2648: YYLTYPE *yylsp;
2649:
2650: #define YYPOPSTACK (yyvsp--, yysp--, yylsp--)
2651: #else
2652: #define YYPOPSTACK (yyvsp--, yysp--)
2653: #endif
2654:
2655: int yystacksize = YYINITDEPTH;
2656:
2657: #ifdef YYPURE
2658: int yychar;
2659: YYSTYPE yylval;
2660: int yynerrs;
2661: #ifdef YYLSP_NEEDED
2662: YYLTYPE yylloc;
2663: #endif
2664: #endif
2665:
2666: YYSTYPE yyval; /* the variable used to return */
2667: /* semantic values from the action */
2668: /* routines */
2669:
2670: int yylen;
2671:
2672: #if YYDEBUG != 0
2673: if (yydebug)
2674: fprintf(stderr, "Starting parse\n");
2675: #endif
2676:
2677: yystate = 0;
2678: yyerrstatus = 0;
2679: yynerrs = 0;
2680: yychar = YYEMPTY; /* Cause a token to be read. */
2681:
2682: /* Initialize stack pointers.
2683: Waste one element of value and location stack
2684: so that they stay on the same level as the state stack. */
2685:
2686: yyssp = yyss - 1;
2687: yyvsp = yyvs;
2688: #ifdef YYLSP_NEEDED
2689: yylsp = yyls;
2690: #endif
2691:
2692: /* Push a new state, which is found in yystate . */
2693: /* In all cases, when you get here, the value and location stacks
2694: have just been pushed. so pushing a state here evens the stacks. */
2695: yynewstate:
2696:
2697: *++yyssp = yystate;
2698:
2699: if (yyssp >= yyss + yystacksize - 1)
2700: {
2701: /* Give user a chance to reallocate the stack */
2702: /* Use copies of these so that the &'s don't force the real ones into memory. */
2703: YYSTYPE *yyvs1 = yyvs;
2704: short *yyss1 = yyss;
2705: #ifdef YYLSP_NEEDED
2706: YYLTYPE *yyls1 = yyls;
2707: #endif
2708:
2709: /* Get the current used size of the three stacks, in elements. */
2710: int size = yyssp - yyss + 1;
2711:
2712: #ifdef yyoverflow
2713: /* Each stack pointer address is followed by the size of
2714: the data in use in that stack, in bytes. */
2715: yyoverflow("parser stack overflow",
2716: &yyss1, size * sizeof (*yyssp),
2717: &yyvs1, size * sizeof (*yyvsp),
2718: #ifdef YYLSP_NEEDED
2719: &yyls1, size * sizeof (*yylsp),
2720: #endif
2721: &yystacksize);
2722:
2723: yyss = yyss1; yyvs = yyvs1;
2724: #ifdef YYLSP_NEEDED
2725: yyls = yyls1;
2726: #endif
2727: #else /* no yyoverflow */
2728: /* Extend the stack our own way. */
2729: if (yystacksize >= YYMAXDEPTH)
2730: {
2731: yyerror("parser stack overflow");
2732: return 2;
2733: }
2734: yystacksize *= 2;
2735: if (yystacksize > YYMAXDEPTH)
2736: yystacksize = YYMAXDEPTH;
2737: yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
2738: __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
2739: yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
2740: __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
2741: #ifdef YYLSP_NEEDED
2742: yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
2743: __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
2744: #endif
2745: #endif /* no yyoverflow */
2746:
2747: yyssp = yyss + size - 1;
2748: yyvsp = yyvs + size - 1;
2749: #ifdef YYLSP_NEEDED
2750: yylsp = yyls + size - 1;
2751: #endif
2752:
2753: #if YYDEBUG != 0
2754: if (yydebug)
2755: fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2756: #endif
2757:
2758: if (yyssp >= yyss + yystacksize - 1)
2759: YYABORT;
2760: }
2761:
2762: #if YYDEBUG != 0
2763: if (yydebug)
2764: fprintf(stderr, "Entering state %d\n", yystate);
2765: #endif
2766:
2767: yybackup:
2768:
2769: /* Do appropriate processing given the current state. */
2770: /* Read a lookahead token if we need one and don't already have one. */
2771: /* yyresume: */
2772:
2773: /* First try to decide what to do without reference to lookahead token. */
2774:
2775: yyn = yypact[yystate];
2776: if (yyn == YYFLAG)
2777: goto yydefault;
2778:
2779: /* Not known => get a lookahead token if don't already have one. */
2780:
2781: /* yychar is either YYEMPTY or YYEOF
2782: or a valid token in external form. */
2783:
2784: if (yychar == YYEMPTY)
2785: {
2786: #if YYDEBUG != 0
2787: if (yydebug)
2788: fprintf(stderr, "Reading a token: ");
2789: #endif
2790: yychar = YYLEX;
2791: }
2792:
2793: /* Convert token to internal form (in yychar1) for indexing tables with */
2794:
2795: if (yychar <= 0) /* This means end of input. */
2796: {
2797: yychar1 = 0;
2798: yychar = YYEOF; /* Don't call YYLEX any more */
2799:
2800: #if YYDEBUG != 0
2801: if (yydebug)
2802: fprintf(stderr, "Now at end of input.\n");
2803: #endif
2804: }
2805: else
2806: {
2807: yychar1 = YYTRANSLATE(yychar);
2808:
2809: #if YYDEBUG != 0
2810: if (yydebug)
2811: {
2812: fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2813: /* Give the individual parser a way to print the precise meaning
2814: of a token, for further debugging info. */
2815: #ifdef YYPRINT
2816: YYPRINT (stderr, yychar, yylval);
2817: #endif
2818: fprintf (stderr, ")\n");
2819: }
2820: #endif
2821: }
2822:
2823: yyn += yychar1;
2824: if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2825: goto yydefault;
2826:
2827: yyn = yytable[yyn];
2828:
2829: /* yyn is what to do for this token type in this state.
2830: Negative => reduce, -yyn is rule number.
2831: Positive => shift, yyn is new state.
2832: New state is final state => don't bother to shift,
2833: just return success.
2834: 0, or most negative number => error. */
2835:
2836: if (yyn < 0)
2837: {
2838: if (yyn == YYFLAG)
2839: goto yyerrlab;
2840: yyn = -yyn;
2841: goto yyreduce;
2842: }
2843: else if (yyn == 0)
2844: goto yyerrlab;
2845:
2846: if (yyn == YYFINAL)
2847: YYACCEPT;
2848:
2849: /* Shift the lookahead token. */
2850:
2851: #if YYDEBUG != 0
2852: if (yydebug)
2853: fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2854: #endif
2855:
2856: /* Discard the token being shifted unless it is eof. */
2857: if (yychar != YYEOF)
2858: yychar = YYEMPTY;
2859:
2860: *++yyvsp = yylval;
2861: #ifdef YYLSP_NEEDED
2862: *++yylsp = yylloc;
2863: #endif
2864:
2865: /* count tokens shifted since error; after three, turn off error status. */
2866: if (yyerrstatus) yyerrstatus--;
2867:
2868: yystate = yyn;
2869: goto yynewstate;
2870:
2871: /* Do the default action for the current state. */
2872: yydefault:
2873:
2874: yyn = yydefact[yystate];
2875: if (yyn == 0)
2876: goto yyerrlab;
2877:
2878: /* Do a reduction. yyn is the number of a rule to reduce with. */
2879: yyreduce:
2880: yylen = yyr2[yyn];
2881: yyval = yyvsp[1-yylen]; /* implement default value of the action */
2882:
2883: #if YYDEBUG != 0
2884: if (yydebug)
2885: {
2886: int i;
2887:
2888: fprintf (stderr, "Reducing via rule %d (line %d), ",
2889: yyn, yyrline[yyn]);
2890:
2891: /* Print the symboles being reduced, and their result. */
2892: for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2893: fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2894: fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2895: }
2896: #endif
2897:
2898:
2899: switch (yyn) {
2900:
2901: case 2:
1.1.1.2 ! root 2902: #line 302 "cp-parse.y"
1.1 root 2903: { finish_file (); ;
2904: break;}
2905: case 3:
1.1.1.2 ! root 2906: #line 310 "cp-parse.y"
1.1 root 2907: { yyval.ttype = NULL_TREE; ;
2908: break;}
2909: case 4:
1.1.1.2 ! root 2910: #line 311 "cp-parse.y"
1.1 root 2911: {yyval.ttype = NULL_TREE; ;
2912: break;}
2913: case 5:
1.1.1.2 ! root 2914: #line 313 "cp-parse.y"
1.1 root 2915: {yyval.ttype = NULL_TREE; ;
2916: break;}
2917: case 6:
1.1.1.2 ! root 2918: #line 317 "cp-parse.y"
! 2919: { have_extern_spec = 1;
! 2920: yyval.ttype = NULL_TREE; ;
1.1 root 2921: break;}
2922: case 7:
1.1.1.2 ! root 2923: #line 321 "cp-parse.y"
1.1 root 2924: { have_extern_spec = 0; ;
2925: break;}
2926: case 8:
1.1.1.2 ! root 2927: #line 326 "cp-parse.y"
1.1 root 2928: { if (pending_inlines) do_pending_inlines (); ;
2929: break;}
2930: case 9:
1.1.1.2 ! root 2931: #line 328 "cp-parse.y"
1.1 root 2932: { if (pending_inlines) do_pending_inlines (); ;
2933: break;}
2934: case 10:
1.1.1.2 ! root 2935: #line 330 "cp-parse.y"
1.1 root 2936: { if (pending_inlines) do_pending_inlines (); ;
2937: break;}
2938: case 12:
1.1.1.2 ! root 2939: #line 333 "cp-parse.y"
1.1 root 2940: { if (pedantic)
2941: warning ("ANSI C forbids use of `asm' keyword");
2942: if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
2943: assemble_asm (yyvsp[-2].ttype); ;
2944: break;}
2945: case 13:
1.1.1.2 ! root 2946: #line 338 "cp-parse.y"
1.1 root 2947: { pop_lang_context (); ;
2948: break;}
2949: case 14:
1.1.1.2 ! root 2950: #line 340 "cp-parse.y"
1.1 root 2951: { pop_lang_context (); ;
2952: break;}
2953: case 15:
1.1.1.2 ! root 2954: #line 342 "cp-parse.y"
1.1 root 2955: { if (pending_inlines) do_pending_inlines ();
2956: pop_lang_context (); ;
2957: break;}
2958: case 16:
1.1.1.2 ! root 2959: #line 345 "cp-parse.y"
1.1 root 2960: { if (pending_inlines) do_pending_inlines ();
2961: pop_lang_context (); ;
2962: break;}
2963: case 17:
1.1.1.2 ! root 2964: #line 351 "cp-parse.y"
1.1 root 2965: { push_lang_context (yyvsp[0].ttype); ;
2966: break;}
2967: case 18:
1.1.1.2 ! root 2968: #line 356 "cp-parse.y"
1.1 root 2969: { begin_template_parm_list (); ;
2970: break;}
2971: case 19:
1.1.1.2 ! root 2972: #line 358 "cp-parse.y"
1.1 root 2973: { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
2974: break;}
2975: case 20:
1.1.1.2 ! root 2976: #line 363 "cp-parse.y"
1.1 root 2977: { yyval.ttype = process_template_parm (0, yyvsp[0].ttype); ;
2978: break;}
2979: case 21:
1.1.1.2 ! root 2980: #line 365 "cp-parse.y"
1.1 root 2981: { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2982: break;}
2983: case 22:
1.1.1.2 ! root 2984: #line 376 "cp-parse.y"
1.1 root 2985: {
1.1.1.2 ! root 2986: if (yyvsp[-1].ttype != class_type_node)
1.1 root 2987: error ("template type parameter must use keyword `class'");
2988: yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE);
2989: ;
2990: break;}
2991: case 23:
1.1.1.2 ! root 2992: #line 382 "cp-parse.y"
1.1 root 2993: {
1.1.1.2 ! root 2994: if (yyvsp[-3].ttype != class_type_node)
1.1 root 2995: error ("template type parameter must use keyword `class'");
2996: warning ("restricted template type parameters not yet implemented");
2997: yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
2998: ;
2999: break;}
3000: case 24:
1.1.1.2 ! root 3001: #line 389 "cp-parse.y"
1.1 root 3002: {
1.1.1.2 ! root 3003: if (yyvsp[-2].ttype != class_type_node)
1.1 root 3004: error ("template type parameter must use keyword `class'");
3005: warning ("restricted template type parameters not yet implemented");
3006: yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype);
3007: ;
3008: break;}
3009: case 27:
1.1.1.2 ! root 3010: #line 402 "cp-parse.y"
1.1 root 3011: { declare_overloaded (yyvsp[0].ttype); ;
3012: break;}
3013: case 28:
1.1.1.2 ! root 3014: #line 404 "cp-parse.y"
1.1 root 3015: { declare_overloaded (yyvsp[0].ttype); ;
3016: break;}
3017: case 29:
1.1.1.2 ! root 3018: #line 411 "cp-parse.y"
1.1 root 3019: { yychar = '{'; goto template1; ;
3020: break;}
3021: case 31:
1.1.1.2 ! root 3022: #line 414 "cp-parse.y"
1.1 root 3023: { yychar = '{'; goto template1; ;
3024: break;}
3025: case 33:
1.1.1.2 ! root 3026: #line 417 "cp-parse.y"
1.1 root 3027: { yychar = ':'; goto template1; ;
3028: break;}
3029: case 35:
1.1.1.2 ! root 3030: #line 420 "cp-parse.y"
1.1 root 3031: {
3032: yychar = ':';
3033: template1:
3034: if (current_aggr == exception_type_node)
3035: error ("template type must define an aggregate or union");
3036: /* Maybe pedantic warning for union?
3037: How about an enum? :-) */
3038: end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
3039: reinit_parse_for_template (yychar, yyvsp[-2].ttype, yyvsp[-1].ttype);
3040: yychar = YYEMPTY;
3041: ;
3042: break;}
3043: case 37:
1.1.1.2 ! root 3044: #line 433 "cp-parse.y"
1.1 root 3045: {
3046: end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
3047: /* declare $2 as template name with $1 parm list */
3048: ;
3049: break;}
3050: case 38:
1.1.1.2 ! root 3051: #line 438 "cp-parse.y"
1.1 root 3052: {
3053: end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
3054: /* declare $2 as template name with $1 parm list */
3055: ;
3056: break;}
3057: case 39:
1.1.1.2 ! root 3058: #line 445 "cp-parse.y"
1.1 root 3059: {
3060: tree d;
3061: int momentary;
3062: momentary = suspend_momentary ();
3063: d = start_decl (yyvsp[-4].ttype, /*current_declspecs*/0, 0, yyvsp[-3].ttype);
3064: finish_decl (d, NULL_TREE, yyvsp[-2].ttype);
3065:
3066: #if 0 /* Need to sort out destructor templates, and not give warnings
3067: for them. */
3068: if (pedantic)
3069: error ("ANSI C forbids data definition with no type or storage class");
3070: else if (! flag_traditional && ! have_extern_spec)
3071: warning ("data definition has no type or storage class");
3072: #endif
3073: end_template_decl (yyvsp[-5].ttype, d, 0);
3074: if (yyvsp[0].itype != ';')
3075: reinit_parse_for_template (yyvsp[0].itype, yyvsp[-5].ttype, d);
3076: resume_momentary (momentary);
3077: ;
3078: break;}
3079: case 40:
1.1.1.2 ! root 3080: #line 467 "cp-parse.y"
1.1 root 3081: {
3082: tree d;
3083: int momentary;
3084:
3085: current_declspecs = yyvsp[-5].ttype;
3086: momentary = suspend_momentary ();
3087: d = start_decl (yyvsp[-4].ttype, current_declspecs, 0, yyvsp[-3].ttype);
3088: finish_decl (d, NULL_TREE, yyvsp[-2].ttype);
3089: end_exception_decls ();
3090: end_template_decl (yyvsp[-6].ttype, d, 0);
3091: if (yyvsp[0].itype != ';')
3092: {
3093: reinit_parse_for_template (yyvsp[0].itype, yyvsp[-6].ttype, d);
3094: yychar = YYEMPTY;
3095: }
3096: note_list_got_semicolon (yyvsp[-5].ttype);
3097: resume_momentary (momentary);
3098: ;
3099: break;}
3100: case 41:
1.1.1.2 ! root 3101: #line 486 "cp-parse.y"
1.1 root 3102: {
3103: tree d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
3104: finish_decl (d, NULL_TREE, NULL_TREE);
3105: end_template_decl (yyvsp[-3].ttype, d, 0);
3106: if (yyvsp[0].itype != ';')
3107: reinit_parse_for_template (yyvsp[0].itype, yyvsp[-3].ttype, d);
3108: ;
3109: break;}
3110: case 42:
1.1.1.2 ! root 3111: #line 494 "cp-parse.y"
! 3112: { end_template_decl (yyvsp[-2].ttype, 0, 0); ;
1.1 root 3113: break;}
3114: case 43:
1.1.1.2 ! root 3115: #line 495 "cp-parse.y"
! 3116: { end_template_decl (yyvsp[-2].ttype, 0, 0); ;
1.1 root 3117: break;}
3118: case 44:
1.1.1.2 ! root 3119: #line 498 "cp-parse.y"
! 3120: { yyval.itype = '{'; ;
1.1 root 3121: break;}
3122: case 45:
1.1.1.2 ! root 3123: #line 499 "cp-parse.y"
! 3124: { yyval.itype = ':'; ;
1.1 root 3125: break;}
3126: case 46:
1.1.1.2 ! root 3127: #line 500 "cp-parse.y"
! 3128: { yyval.itype = ';'; ;
1.1 root 3129: break;}
3130: case 47:
1.1.1.2 ! root 3131: #line 501 "cp-parse.y"
! 3132: { yyval.itype = '='; ;
! 3133: break;}
! 3134: case 48:
! 3135: #line 502 "cp-parse.y"
! 3136: { yyval.itype = RETURN; ;
! 3137: break;}
! 3138: case 49:
! 3139: #line 507 "cp-parse.y"
1.1 root 3140: { if (pedantic)
3141: error ("ANSI C forbids data definition with no type or storage class");
3142: else if (! flag_traditional && ! have_extern_spec)
3143: warning ("data definition has no type or storage class"); ;
3144: break;}
1.1.1.2 ! root 3145: case 50:
! 3146: #line 512 "cp-parse.y"
1.1 root 3147: {;
3148: break;}
1.1.1.2 ! root 3149: case 51:
! 3150: #line 515 "cp-parse.y"
1.1 root 3151: { tree d;
3152: d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
3153: finish_decl (d, NULL_TREE, NULL_TREE);
3154: ;
3155: break;}
1.1.1.2 ! root 3156: case 52:
! 3157: #line 520 "cp-parse.y"
1.1 root 3158: {
3159: end_exception_decls ();
3160: note_list_got_semicolon (yyval.ttype);
3161: ;
3162: break;}
1.1.1.2 ! root 3163: case 53:
! 3164: #line 526 "cp-parse.y"
1.1 root 3165: { tree d;
3166: d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
3167: finish_decl (d, NULL_TREE, NULL_TREE);
3168: end_exception_decls ();
3169: note_list_got_semicolon (yyval.ttype);
3170: ;
3171: break;}
1.1.1.2 ! root 3172: case 54:
! 3173: #line 533 "cp-parse.y"
1.1 root 3174: { error ("empty declaration"); ;
3175: break;}
1.1.1.2 ! root 3176: case 55:
! 3177: #line 535 "cp-parse.y"
1.1 root 3178: {
3179: tree t = yyval.ttype;
3180: shadow_tag (t);
3181: if (TREE_CODE (t) == TREE_LIST
3182: && TREE_PURPOSE (t) == NULL_TREE)
3183: {
3184: t = TREE_VALUE (t);
3185: if (TREE_CODE (t) == RECORD_TYPE)
3186: {
3187: if (CLASSTYPE_USE_TEMPLATE (t) == 0)
3188: CLASSTYPE_USE_TEMPLATE (t) = 2;
3189: else if (CLASSTYPE_USE_TEMPLATE (t) == 1)
3190: error ("override declaration for already-expanded template");
3191: }
3192: }
3193: note_list_got_semicolon (yyval.ttype);
3194: ;
3195: break;}
1.1.1.2 ! root 3196: case 59:
! 3197: #line 559 "cp-parse.y"
1.1 root 3198: {
3199: finish_function (lineno, 1);
3200: /* finish_function performs these three statements:
3201:
3202: expand_end_bindings (getdecls (), 1, 0);
3203: poplevel (1, 1, 0);
3204:
3205: expand_end_bindings (0, 0, 0);
3206: poplevel (0, 0, 1);
3207: */
3208: if (yyval.ttype) process_next_inline (yyval.ttype);
3209: ;
3210: break;}
1.1.1.2 ! root 3211: case 60:
! 3212: #line 572 "cp-parse.y"
1.1 root 3213: {
3214: finish_function (lineno, 1);
3215: /* finish_function performs these three statements:
3216:
3217: expand_end_bindings (getdecls (), 1, 0);
3218: poplevel (1, 1, 0);
3219:
3220: expand_end_bindings (0, 0, 0);
3221: poplevel (0, 0, 1);
3222: */
3223: if (yyval.ttype) process_next_inline (yyval.ttype);
3224: ;
3225: break;}
1.1.1.2 ! root 3226: case 61:
! 3227: #line 585 "cp-parse.y"
1.1 root 3228: { finish_function (lineno, 0);
3229: if (yyval.ttype) process_next_inline (yyval.ttype); ;
3230: break;}
1.1.1.2 ! root 3231: case 62:
! 3232: #line 588 "cp-parse.y"
1.1 root 3233: { finish_function (lineno, 0);
3234: if (yyval.ttype) process_next_inline (yyval.ttype); ;
3235: break;}
1.1.1.2 ! root 3236: case 63:
! 3237: #line 591 "cp-parse.y"
1.1 root 3238: { finish_function (lineno, 0);
3239: if (yyval.ttype) process_next_inline (yyval.ttype); ;
3240: break;}
1.1.1.2 ! root 3241: case 64:
! 3242: #line 594 "cp-parse.y"
1.1 root 3243: {;
3244: break;}
1.1.1.2 ! root 3245: case 65:
! 3246: #line 596 "cp-parse.y"
1.1 root 3247: {;
3248: break;}
1.1.1.2 ! root 3249: case 66:
! 3250: #line 598 "cp-parse.y"
1.1 root 3251: {;
3252: break;}
1.1.1.2 ! root 3253: case 67:
! 3254: #line 603 "cp-parse.y"
1.1 root 3255: { if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
3256: YYERROR1;
3257: reinit_parse_for_function ();
3258: yyval.ttype = NULL_TREE; ;
3259: break;}
1.1.1.2 ! root 3260: case 68:
! 3261: #line 608 "cp-parse.y"
1.1 root 3262: { if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
3263: YYERROR1;
3264: reinit_parse_for_function ();
3265: yyval.ttype = NULL_TREE; ;
3266: break;}
1.1.1.2 ! root 3267: case 69:
! 3268: #line 613 "cp-parse.y"
1.1 root 3269: { if (! start_function (NULL_TREE, yyval.ttype, yyvsp[0].ttype, 0))
3270: YYERROR1;
3271: reinit_parse_for_function ();
3272: yyval.ttype = NULL_TREE; ;
3273: break;}
1.1.1.2 ! root 3274: case 70:
! 3275: #line 618 "cp-parse.y"
1.1 root 3276: { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
3277: YYERROR1;
3278: reinit_parse_for_function ();
3279: yyval.ttype = NULL_TREE; ;
3280: break;}
1.1.1.2 ! root 3281: case 71:
! 3282: #line 623 "cp-parse.y"
1.1 root 3283: { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
3284: YYERROR1;
3285: reinit_parse_for_function ();
3286: yyval.ttype = NULL_TREE; ;
3287: break;}
1.1.1.2 ! root 3288: case 72:
! 3289: #line 628 "cp-parse.y"
1.1 root 3290: { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
3291: YYERROR1;
3292: reinit_parse_for_function ();
3293: yyval.ttype = NULL_TREE; ;
3294: break;}
1.1.1.2 ! root 3295: case 73:
! 3296: #line 633 "cp-parse.y"
1.1 root 3297: { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
3298: YYERROR1;
3299: reinit_parse_for_function ();
3300: yyval.ttype = NULL_TREE; ;
3301: break;}
1.1.1.2 ! root 3302: case 74:
! 3303: #line 638 "cp-parse.y"
1.1 root 3304: { start_function (NULL_TREE, TREE_VALUE (yyval.ttype), NULL_TREE, 1);
3305: reinit_parse_for_function (); ;
3306: break;}
1.1.1.2 ! root 3307: case 75:
! 3308: #line 645 "cp-parse.y"
1.1 root 3309: {
3310: tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
3311: yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
3312: if (! yyval.ttype)
3313: YYERROR1;
3314: if (yychar == YYEMPTY)
3315: yychar = YYLEX;
3316: reinit_parse_for_method (yychar, yyval.ttype); ;
3317: break;}
1.1.1.2 ! root 3318: case 76:
! 3319: #line 654 "cp-parse.y"
1.1 root 3320: {
3321: tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype);
3322: yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
3323: if (! yyval.ttype)
3324: YYERROR1;
3325: if (yychar == YYEMPTY)
3326: yychar = YYLEX;
3327: reinit_parse_for_method (yychar, yyval.ttype); ;
3328: break;}
1.1.1.2 ! root 3329: case 77:
! 3330: #line 663 "cp-parse.y"
1.1 root 3331: { yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
3332: if (! yyval.ttype)
3333: YYERROR1;
3334: if (yychar == YYEMPTY)
3335: yychar = YYLEX;
3336: reinit_parse_for_method (yychar, yyval.ttype); ;
3337: break;}
1.1.1.2 ! root 3338: case 78:
! 3339: #line 670 "cp-parse.y"
1.1 root 3340: {
3341: tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
3342: yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
3343: if (! yyval.ttype)
3344: YYERROR1;
3345: if (yychar == YYEMPTY)
3346: yychar = YYLEX;
3347: reinit_parse_for_method (yychar, yyval.ttype); ;
3348: break;}
1.1.1.2 ! root 3349: case 79:
! 3350: #line 679 "cp-parse.y"
1.1 root 3351: {
3352: tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype);
3353: yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
3354: if (! yyval.ttype)
3355: YYERROR1;
3356: if (yychar == YYEMPTY)
3357: yychar = YYLEX;
3358: reinit_parse_for_method (yychar, yyval.ttype); ;
3359: break;}
1.1.1.2 ! root 3360: case 80:
! 3361: #line 688 "cp-parse.y"
1.1 root 3362: { yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
3363: if (! yyval.ttype)
3364: YYERROR1;
3365: if (yychar == YYEMPTY)
3366: yychar = YYLEX;
3367: reinit_parse_for_method (yychar, yyval.ttype); ;
3368: break;}
1.1.1.2 ! root 3369: case 81:
! 3370: #line 695 "cp-parse.y"
1.1 root 3371: { yyval.ttype = start_method (NULL_TREE, yyval.ttype, yyvsp[0].ttype);
3372: if (! yyval.ttype)
3373: YYERROR1;
3374: if (yychar == YYEMPTY)
3375: yychar = YYLEX;
3376: reinit_parse_for_method (yychar, yyval.ttype); ;
3377: break;}
1.1.1.2 ! root 3378: case 82:
! 3379: #line 704 "cp-parse.y"
1.1 root 3380: {
3381: if (! current_function_parms_stored)
3382: store_parm_decls ();
3383: yyval.ttype = yyvsp[0].ttype;
3384: ;
3385: break;}
1.1.1.2 ! root 3386: case 83:
! 3387: #line 712 "cp-parse.y"
1.1 root 3388: { store_return_init (yyval.ttype, NULL_TREE); ;
3389: break;}
1.1.1.2 ! root 3390: case 84:
! 3391: #line 714 "cp-parse.y"
1.1 root 3392: { store_return_init (yyval.ttype, yyvsp[-1].code); ;
3393: break;}
1.1.1.2 ! root 3394: case 85:
! 3395: #line 716 "cp-parse.y"
1.1 root 3396: { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
3397: break;}
1.1.1.2 ! root 3398: case 86:
! 3399: #line 718 "cp-parse.y"
1.1 root 3400: { store_return_init (yyval.ttype, NULL_TREE); ;
3401: break;}
1.1.1.2 ! root 3402: case 87:
! 3403: #line 723 "cp-parse.y"
1.1 root 3404: {
3405: if (yyvsp[0].itype == 0)
3406: error ("no base initializers given following ':'");
3407: setup_vtbl_ptr ();
3408: ;
3409: break;}
1.1.1.2 ! root 3410: case 88:
! 3411: #line 732 "cp-parse.y"
1.1 root 3412: {
3413: if (! current_function_parms_stored)
3414: store_parm_decls ();
3415:
3416: /* Flag that we are processing base and member initializers. */
3417: current_vtable_decl = error_mark_node;
3418:
3419: if (DECL_CONSTRUCTOR_P (current_function_decl))
3420: {
3421: /* Make a contour for the initializer list. */
3422: pushlevel (0);
3423: clear_last_expr ();
3424: expand_start_bindings (0);
3425: }
3426: else if (current_class_type == NULL_TREE)
3427: error ("base initializers not allowed for non-member functions");
3428: else if (! DECL_CONSTRUCTOR_P (current_function_decl))
3429: error ("only constructors take base initializers");
3430: ;
3431: break;}
1.1.1.2 ! root 3432: case 89:
! 3433: #line 755 "cp-parse.y"
1.1 root 3434: { yyval.itype = 0; ;
3435: break;}
1.1.1.2 ! root 3436: case 90:
! 3437: #line 757 "cp-parse.y"
1.1 root 3438: { yyval.itype = 1; ;
3439: break;}
1.1.1.2 ! root 3440: case 93:
! 3441: #line 763 "cp-parse.y"
1.1 root 3442: {
3443: if (current_class_name && pedantic)
3444: warning ("old style base class initialization; use `%s (...)'",
3445: IDENTIFIER_POINTER (current_class_name));
3446: expand_member_init (C_C_D, NULL_TREE, yyvsp[-1].ttype);
3447: ;
3448: break;}
1.1.1.2 ! root 3449: case 94:
! 3450: #line 770 "cp-parse.y"
1.1 root 3451: {
3452: if (current_class_name && pedantic)
3453: warning ("old style base class initialization; use `%s (...)'",
3454: IDENTIFIER_POINTER (current_class_name));
3455: expand_member_init (C_C_D, NULL_TREE, void_type_node);
3456: ;
3457: break;}
1.1.1.2 ! root 3458: case 95:
! 3459: #line 777 "cp-parse.y"
1.1 root 3460: {
3461: expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype);
3462: ;
3463: break;}
1.1.1.2 ! root 3464: case 96:
! 3465: #line 781 "cp-parse.y"
1.1 root 3466: { expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
3467: break;}
1.1.1.2 ! root 3468: case 97:
! 3469: #line 783 "cp-parse.y"
! 3470: { expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype); ;
! 3471: break;}
! 3472: case 98:
! 3473: #line 785 "cp-parse.y"
! 3474: { expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
! 3475: break;}
! 3476: case 99:
! 3477: #line 787 "cp-parse.y"
1.1 root 3478: {
3479: do_member_init (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype);
3480: ;
3481: break;}
1.1.1.2 ! root 3482: case 100:
! 3483: #line 791 "cp-parse.y"
1.1 root 3484: {
3485: do_member_init (yyval.ttype, yyvsp[-1].ttype, void_type_node);
3486: ;
3487: break;}
1.1.1.2 ! root 3488: case 110:
! 3489: #line 815 "cp-parse.y"
1.1 root 3490: { yyval.ttype = build_parse_node (BIT_NOT_EXPR,yyvsp[0].ttype);;
3491: break;}
1.1.1.2 ! root 3492: case 112:
! 3493: #line 818 "cp-parse.y"
1.1 root 3494: { yyval.ttype = hack_wrapper (yyval.ttype, NULL_TREE, yyvsp[0].ttype); ;
3495: break;}
1.1.1.2 ! root 3496: case 113:
! 3497: #line 820 "cp-parse.y"
1.1 root 3498: { yyval.ttype = hack_wrapper (yyval.ttype, NULL_TREE, yyvsp[0].ttype); ;
3499: break;}
1.1.1.2 ! root 3500: case 114:
! 3501: #line 822 "cp-parse.y"
1.1 root 3502: { yyval.ttype = hack_wrapper (yyval.ttype, NULL_TREE, yyvsp[0].ttype); ;
3503: break;}
1.1.1.2 ! root 3504: case 115:
! 3505: #line 824 "cp-parse.y"
1.1 root 3506: { yyval.ttype = hack_wrapper (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
3507: break;}
1.1.1.2 ! root 3508: case 116:
! 3509: #line 826 "cp-parse.y"
1.1 root 3510: { yyval.ttype = hack_wrapper (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
3511: break;}
1.1.1.2 ! root 3512: case 117:
! 3513: #line 830 "cp-parse.y"
1.1 root 3514: { yyval.itype = 0; ;
3515: break;}
1.1.1.2 ! root 3516: case 118:
! 3517: #line 832 "cp-parse.y"
1.1 root 3518: { yyval.itype = 1; ;
3519: break;}
1.1.1.2 ! root 3520: case 119:
! 3521: #line 834 "cp-parse.y"
1.1 root 3522: { yyval.itype = 2; ;
3523: break;}
1.1.1.2 ! root 3524: case 120:
! 3525: #line 839 "cp-parse.y"
1.1 root 3526: {
3527: if (yyvsp[0].ttype)
3528: yyval.ttype = yyvsp[0].ttype;
3529: else if (yyval.ttype != error_mark_node)
3530: yyval.ttype = IDENTIFIER_TYPE_VALUE (yyval.ttype);
3531: ;
3532: break;}
1.1.1.2 ! root 3533: case 121:
! 3534: #line 849 "cp-parse.y"
1.1 root 3535: { yyval.ttype = lookup_template_class (yyval.ttype, yyvsp[-1].ttype); ;
3536: break;}
1.1.1.2 ! root 3537: case 122:
! 3538: #line 855 "cp-parse.y"
1.1 root 3539: { yyungetc ('{', 1); yyval.ttype = 0; ;
3540: break;}
1.1.1.2 ! root 3541: case 123:
! 3542: #line 856 "cp-parse.y"
1.1 root 3543: { yyungetc (':', 1); yyval.ttype = 0; ;
3544: break;}
1.1.1.2 ! root 3545: case 124:
! 3546: #line 858 "cp-parse.y"
1.1 root 3547: { yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ;
3548: break;}
1.1.1.2 ! root 3549: case 125:
! 3550: #line 863 "cp-parse.y"
1.1 root 3551: { yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ;
3552: break;}
1.1.1.2 ! root 3553: case 126:
! 3554: #line 868 "cp-parse.y"
1.1 root 3555: { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
3556: break;}
1.1.1.2 ! root 3557: case 127:
! 3558: #line 870 "cp-parse.y"
1.1 root 3559: { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3560: break;}
1.1.1.2 ! root 3561: case 128:
! 3562: #line 875 "cp-parse.y"
1.1 root 3563: { yyval.ttype = groktypename (yyval.ttype); ;
3564: break;}
1.1.1.2 ! root 3565: case 130:
! 3566: #line 881 "cp-parse.y"
1.1 root 3567: {
3568: tree t, decl, id, tmpl;
3569:
3570: id = TREE_VALUE (yyvsp[-1].ttype);
3571: tmpl = TREE_PURPOSE (IDENTIFIER_TEMPLATE (id));
3572: t = xref_tag (DECL_TEMPLATE_INFO (tmpl)->aggr, id, yyvsp[0].ttype);
3573: set_current_level_tags_transparency (1);
3574: assert (TREE_CODE (t) == RECORD_TYPE);
3575: yyval.ttype = t;
3576:
3577: /* Now, put a copy of the decl in global scope, to avoid
3578: recursive expansion. */
3579: decl = IDENTIFIER_LOCAL_VALUE (id);
3580: if (!decl)
3581: decl = IDENTIFIER_CLASS_VALUE (id);
3582: /* Now, put a copy of the decl in global scope, to avoid
3583: recursive expansion. */
3584: if (decl)
3585: {
3586: /* Need to copy it to clear the chain pointer,
3587: and need to get it into permanent storage. */
3588: extern struct obstack permanent_obstack;
3589: assert (TREE_CODE (decl) == TYPE_DECL);
3590: push_obstacks (&permanent_obstack, &permanent_obstack);
3591: decl = copy_node (decl);
3592: if (DECL_LANG_SPECIFIC (decl))
3593: copy_lang_decl (decl);
3594: pop_obstacks ();
3595: pushdecl_top_level (decl);
3596: }
3597: ;
3598: break;}
1.1.1.2 ! root 3599: case 131:
! 3600: #line 913 "cp-parse.y"
1.1 root 3601: {
3602: extern void end_template_instantiation ();
3603: tree id, members;
3604:
3605: yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-1].ttype, 0, 0);
3606:
3607: pop_obstacks ();
3608: end_template_instantiation (yyvsp[-5].ttype, yyvsp[-3].ttype);
3609:
3610: /* Now go after the methods & class data. */
3611: instantiate_member_templates (yyvsp[-5].ttype);
3612: ;
3613: break;}
1.1.1.2 ! root 3614: case 132:
! 3615: #line 929 "cp-parse.y"
1.1 root 3616: { yyval.ttype = NULL_TREE; ;
3617: break;}
1.1.1.2 ! root 3618: case 133:
! 3619: #line 931 "cp-parse.y"
1.1 root 3620: { yyval.ttype = yyvsp[0].ttype; ;
3621: break;}
1.1.1.2 ! root 3622: case 134:
! 3623: #line 936 "cp-parse.y"
1.1 root 3624: { yyval.ttype = NULL_TREE; /* never used from here... */;
3625: break;}
1.1.1.2 ! root 3626: case 135:
! 3627: #line 938 "cp-parse.y"
1.1 root 3628: { yyval.ttype = yyvsp[-1].ttype; /*???*/ ;
3629: break;}
1.1.1.2 ! root 3630: case 136:
! 3631: #line 942 "cp-parse.y"
1.1 root 3632: { yyval.code = NEGATE_EXPR; ;
3633: break;}
1.1.1.2 ! root 3634: case 137:
! 3635: #line 944 "cp-parse.y"
1.1 root 3636: { yyval.code = CONVERT_EXPR; ;
3637: break;}
1.1.1.2 ! root 3638: case 138:
! 3639: #line 946 "cp-parse.y"
1.1 root 3640: { yyval.code = PREINCREMENT_EXPR; ;
3641: break;}
1.1.1.2 ! root 3642: case 139:
! 3643: #line 948 "cp-parse.y"
1.1 root 3644: { yyval.code = PREDECREMENT_EXPR; ;
3645: break;}
1.1.1.2 ! root 3646: case 140:
! 3647: #line 950 "cp-parse.y"
1.1 root 3648: { yyval.code = TRUTH_NOT_EXPR; ;
3649: break;}
1.1.1.2 ! root 3650: case 141:
! 3651: #line 954 "cp-parse.y"
1.1 root 3652: { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
3653: break;}
1.1.1.2 ! root 3654: case 143:
! 3655: #line 961 "cp-parse.y"
1.1 root 3656: { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
3657: break;}
1.1.1.2 ! root 3658: case 144:
! 3659: #line 963 "cp-parse.y"
1.1 root 3660: { chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3661: break;}
1.1.1.2 ! root 3662: case 145:
! 3663: #line 965 "cp-parse.y"
1.1 root 3664: { chainon (yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ;
3665: break;}
1.1.1.2 ! root 3666: case 146:
! 3667: #line 970 "cp-parse.y"
1.1 root 3668: {
3669: if (TREE_CODE (yyval.ttype) == TYPE_EXPR)
3670: yyval.ttype = build_component_type_expr (C_C_D, yyval.ttype, NULL_TREE, 1);
3671: ;
3672: break;}
1.1.1.2 ! root 3673: case 147:
! 3674: #line 976 "cp-parse.y"
! 3675: { yyvsp[0].itype = pedantic;
! 3676: pedantic = 0; ;
! 3677: break;}
! 3678: case 148:
! 3679: #line 979 "cp-parse.y"
! 3680: { yyval.ttype = yyvsp[0].ttype;
! 3681: pedantic = yyvsp[-2].itype; ;
! 3682: break;}
! 3683: case 149:
! 3684: #line 982 "cp-parse.y"
1.1 root 3685: { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
3686: break;}
1.1.1.2 ! root 3687: case 150:
! 3688: #line 984 "cp-parse.y"
1.1 root 3689: { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
3690: break;}
1.1.1.2 ! root 3691: case 151:
! 3692: #line 986 "cp-parse.y"
1.1 root 3693: { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
3694: break;}
1.1.1.2 ! root 3695: case 152:
! 3696: #line 988 "cp-parse.y"
1.1 root 3697: { yyval.ttype = build_x_unary_op (yyval.ttype, yyvsp[0].ttype);
3698: if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
3699: TREE_NEGATED_INT (yyval.ttype) = 1;
3700: ;
3701: break;}
1.1.1.2 ! root 3702: case 153:
! 3703: #line 993 "cp-parse.y"
1.1 root 3704: { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
3705: && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
3706: error ("sizeof applied to a bit-field");
3707: /* ANSI says arrays and functions are converted inside comma.
3708: But we can't really convert them in build_compound_expr
3709: because that would break commas in lvalues.
3710: So do the conversion here if operand was a comma. */
3711: if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
3712: && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
3713: || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
3714: yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
3715: yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
3716: break;}
1.1.1.2 ! root 3717: case 154:
! 3718: #line 1006 "cp-parse.y"
1.1 root 3719: { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
3720: break;}
1.1.1.2 ! root 3721: case 155:
! 3722: #line 1008 "cp-parse.y"
1.1 root 3723: { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
3724: && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
3725: error ("`__alignof' applied to a bit-field");
3726: if (TREE_CODE (yyvsp[0].ttype) == INDIRECT_REF)
3727: {
3728: tree t = TREE_OPERAND (yyvsp[0].ttype, 0);
3729: tree best = t;
3730: int bestalign = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (t)));
3731: while (TREE_CODE (t) == NOP_EXPR
3732: && TREE_CODE (TREE_TYPE (TREE_OPERAND (t, 0))) == POINTER_TYPE)
3733: {
3734: int thisalign;
3735: t = TREE_OPERAND (t, 0);
3736: thisalign = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (t)));
3737: if (thisalign > bestalign)
3738: best = t, bestalign = thisalign;
3739: }
3740: yyval.ttype = c_alignof (TREE_TYPE (TREE_TYPE (best)));
3741: }
3742: else
3743: {
3744: /* ANSI says arrays and fns are converted inside comma.
3745: But we can't convert them in build_compound_expr
3746: because that would break commas in lvalues.
3747: So do the conversion here if operand was a comma. */
3748: if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
3749: && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
3750: || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
3751: yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
3752: yyval.ttype = c_alignof (TREE_TYPE (yyvsp[0].ttype));
3753: }
3754: ;
3755: break;}
1.1.1.2 ! root 3756: case 156:
! 3757: #line 1041 "cp-parse.y"
1.1 root 3758: { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
3759: break;}
1.1.1.2 ! root 3760: case 157:
! 3761: #line 1044 "cp-parse.y"
1.1 root 3762: { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype); ;
3763: break;}
1.1.1.2 ! root 3764: case 158:
! 3765: #line 1046 "cp-parse.y"
1.1 root 3766: { yyval.ttype = build_new (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyval.ttype); ;
3767: break;}
1.1.1.2 ! root 3768: case 159:
! 3769: #line 1048 "cp-parse.y"
1.1 root 3770: { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE, yyval.ttype); ;
3771: break;}
1.1.1.2 ! root 3772: case 160:
! 3773: #line 1050 "cp-parse.y"
1.1 root 3774: { yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
3775: break;}
1.1.1.2 ! root 3776: case 161:
! 3777: #line 1056 "cp-parse.y"
1.1 root 3778: {
3779: tree absdcl, typename;
3780: static int gave_warning = 0;
3781:
3782: illegal_new_array:
3783: absdcl = build_parse_node (ARRAY_REF, yyvsp[-4].ttype, yyvsp[-1].ttype);
3784: typename = build_decl_list (yyvsp[-5].ttype, absdcl);
3785: warning ("array dimensions with parenthesized type is disallowed in standard C++");
3786: if (!gave_warning)
3787: {
3788: gave_warning++;
3789: warning (" (per grammar in Ellis & Stroustrup [1990], chapter 17)");
3790: warning (" try rewriting, perhaps with a typedef");
3791: }
3792: yyval.ttype = build_new (yyvsp[-7].ttype, typename, NULL_TREE, yyval.ttype);
3793: ;
3794: break;}
1.1.1.2 ! root 3795: case 162:
! 3796: #line 1073 "cp-parse.y"
1.1 root 3797: { goto illegal_new_array; ;
3798: break;}
1.1.1.2 ! root 3799: case 163:
! 3800: #line 1076 "cp-parse.y"
1.1 root 3801: {
3802: yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype);
3803: ;
3804: break;}
1.1.1.2 ! root 3805: case 164:
! 3806: #line 1080 "cp-parse.y"
1.1 root 3807: { yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype); ;
3808: break;}
1.1.1.2 ! root 3809: case 165:
! 3810: #line 1083 "cp-parse.y"
1.1 root 3811: { yyungetc (':', 1);
3812: yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype); ;
3813: break;}
1.1.1.2 ! root 3814: case 166:
! 3815: #line 1087 "cp-parse.y"
1.1 root 3816: { tree expr = stabilize_reference (convert_from_reference (yyvsp[0].ttype));
3817: tree type = TREE_TYPE (expr);
3818:
3819: if (integer_zerop (expr))
3820: yyval.ttype = build1 (NOP_EXPR, void_type_node, expr);
3821: else if (TREE_CODE (type) != POINTER_TYPE)
3822: {
3823: error ("non-pointer type to `delete'");
3824: yyval.ttype = error_mark_node;
3825: break;
3826: }
3827: yyval.ttype = build_delete (type, expr, integer_three_node,
3828: LOOKUP_NORMAL|LOOKUP_HAS_IN_CHARGE,
3829: TYPE_HAS_DESTRUCTOR (TREE_TYPE (type)) ? yyval.ttype : 0, 1);
3830: ;
3831: break;}
1.1.1.2 ! root 3832: case 167:
! 3833: #line 1103 "cp-parse.y"
1.1 root 3834: {
3835: tree exp = stabilize_reference (convert_from_reference (yyvsp[0].ttype));
3836: tree elt_size = c_sizeof (TREE_TYPE (exp));
3837:
3838: if (yychar == YYEMPTY)
3839: yychar = YYLEX;
3840:
3841: yyval.ttype = build_vec_delete (exp, NULL_TREE, elt_size, NULL_TREE,
3842: integer_one_node, integer_two_node);
3843: ;
3844: break;}
1.1.1.2 ! root 3845: case 168:
! 3846: #line 1114 "cp-parse.y"
1.1 root 3847: {
3848: tree maxindex = build_binary_op (MINUS_EXPR, yyvsp[-2].ttype,
3849: integer_one_node);
3850: tree exp = stabilize_reference (convert_from_reference (yyvsp[0].ttype));
3851: tree elt_size = c_sizeof (TREE_TYPE (exp));
3852:
3853: if (yychar == YYEMPTY)
3854: yychar = YYLEX;
3855:
3856: warning ("use of array size with vector delete is anachronistic");
3857: yyval.ttype = build_vec_delete (exp, maxindex, elt_size, NULL_TREE,
3858: integer_one_node, integer_two_node);
3859: ;
3860: break;}
1.1.1.2 ! root 3861: case 170:
! 3862: #line 1132 "cp-parse.y"
1.1 root 3863: { tree type = groktypename (yyvsp[-2].ttype);
3864: yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
3865: break;}
1.1.1.2 ! root 3866: case 171:
! 3867: #line 1135 "cp-parse.y"
1.1 root 3868: { tree type = groktypename (yyvsp[-5].ttype);
3869: tree init = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
3870: if (pedantic)
3871: warning ("ANSI C forbids constructor-expressions");
3872: /* Indicate that this was a GNU C constructor expression. */
3873: TREE_HAS_CONSTRUCTOR (init) = 1;
3874: yyval.ttype = digest_init (type, init, 0);
3875: if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
3876: {
3877: int failure = complete_array_type (type, yyval.ttype, 1);
3878: if (failure)
3879: abort ();
3880: }
3881: ;
3882: break;}
1.1.1.2 ! root 3883: case 172:
! 3884: #line 1150 "cp-parse.y"
1.1 root 3885: { yyval.ttype = build_headof (yyvsp[-1].ttype); ;
3886: break;}
1.1.1.2 ! root 3887: case 173:
! 3888: #line 1152 "cp-parse.y"
1.1 root 3889: { yyval.ttype = build_classof (yyvsp[-1].ttype); ;
3890: break;}
1.1.1.2 ! root 3891: case 174:
! 3892: #line 1154 "cp-parse.y"
1.1 root 3893: { if (is_aggr_typedef (yyvsp[-1].ttype, 1))
3894: {
3895: tree type = IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype);
3896: yyval.ttype = CLASSTYPE_DOSSIER (type);
3897: }
3898: else
3899: yyval.ttype = error_mark_node;
3900: ;
3901: break;}
1.1.1.2 ! root 3902: case 176:
! 3903: #line 1167 "cp-parse.y"
1.1 root 3904: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
3905: break;}
1.1.1.2 ! root 3906: case 177:
! 3907: #line 1169 "cp-parse.y"
1.1 root 3908: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
3909: break;}
1.1.1.2 ! root 3910: case 178:
! 3911: #line 1171 "cp-parse.y"
1.1 root 3912: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
3913: break;}
1.1.1.2 ! root 3914: case 179:
! 3915: #line 1173 "cp-parse.y"
1.1 root 3916: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
3917: break;}
1.1.1.2 ! root 3918: case 180:
! 3919: #line 1175 "cp-parse.y"
1.1 root 3920: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
3921: break;}
1.1.1.2 ! root 3922: case 181:
! 3923: #line 1177 "cp-parse.y"
1.1 root 3924: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
3925: break;}
1.1.1.2 ! root 3926: case 182:
! 3927: #line 1179 "cp-parse.y"
1.1 root 3928: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
3929: break;}
1.1.1.2 ! root 3930: case 183:
! 3931: #line 1181 "cp-parse.y"
1.1 root 3932: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
3933: break;}
1.1.1.2 ! root 3934: case 184:
! 3935: #line 1183 "cp-parse.y"
1.1 root 3936: { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
3937: break;}
1.1.1.2 ! root 3938: case 185:
! 3939: #line 1185 "cp-parse.y"
1.1 root 3940: { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
3941: break;}
1.1.1.2 ! root 3942: case 186:
! 3943: #line 1187 "cp-parse.y"
1.1 root 3944: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
3945: break;}
1.1.1.2 ! root 3946: case 187:
! 3947: #line 1189 "cp-parse.y"
1.1 root 3948: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
3949: break;}
1.1.1.2 ! root 3950: case 188:
! 3951: #line 1191 "cp-parse.y"
1.1 root 3952: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
3953: break;}
1.1.1.2 ! root 3954: case 189:
! 3955: #line 1193 "cp-parse.y"
1.1 root 3956: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
3957: break;}
1.1.1.2 ! root 3958: case 190:
! 3959: #line 1195 "cp-parse.y"
1.1 root 3960: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
3961: break;}
1.1.1.2 ! root 3962: case 191:
! 3963: #line 1197 "cp-parse.y"
1.1 root 3964: { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
3965: break;}
1.1.1.2 ! root 3966: case 192:
! 3967: #line 1199 "cp-parse.y"
1.1 root 3968: { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
3969: break;}
1.1.1.2 ! root 3970: case 193:
! 3971: #line 1201 "cp-parse.y"
1.1 root 3972: { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
3973: break;}
1.1.1.2 ! root 3974: case 194:
! 3975: #line 1203 "cp-parse.y"
1.1 root 3976: { yyval.ttype = build_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); ;
3977: break;}
1.1.1.2 ! root 3978: case 195:
! 3979: #line 1205 "cp-parse.y"
1.1 root 3980: { register tree rval;
3981: if (rval = build_opfncall (MODIFY_EXPR, LOOKUP_NORMAL, yyval.ttype, yyvsp[0].ttype, yyvsp[-1].code))
3982: yyval.ttype = rval;
3983: else
3984: yyval.ttype = build_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
3985: break;}
1.1.1.2 ! root 3986: case 196:
! 3987: #line 1211 "cp-parse.y"
1.1 root 3988: { yyval.ttype = build_m_component_ref (yyval.ttype, build_indirect_ref (yyvsp[0].ttype, 0)); ;
3989: break;}
1.1.1.2 ! root 3990: case 197:
! 3991: #line 1214 "cp-parse.y"
1.1 root 3992: { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
3993: break;}
1.1.1.2 ! root 3994: case 198:
! 3995: #line 1230 "cp-parse.y"
1.1 root 3996: { yyval.ttype = do_identifier (yyval.ttype); ;
3997: break;}
1.1.1.2 ! root 3998: case 199:
! 3999: #line 1232 "cp-parse.y"
1.1 root 4000: {
4001: tree op = yyval.ttype;
4002: if (TREE_CODE (op) != IDENTIFIER_NODE)
4003: yyval.ttype = op;
4004: else
4005: {
4006: yyval.ttype = lookup_name (op);
4007: if (yyval.ttype == NULL_TREE)
4008: {
4009: error ("operator %s not defined", operator_name_string (op));
4010: yyval.ttype = error_mark_node;
4011: }
4012: }
4013: ;
4014: break;}
1.1.1.2 ! root 4015: case 201:
! 4016: #line 1248 "cp-parse.y"
1.1 root 4017: { yyval.ttype = combine_strings (yyval.ttype); ;
4018: break;}
1.1.1.2 ! root 4019: case 202:
! 4020: #line 1250 "cp-parse.y"
1.1 root 4021: { yyval.ttype = yyvsp[-1].ttype; ;
4022: break;}
1.1.1.2 ! root 4023: case 203:
! 4024: #line 1252 "cp-parse.y"
1.1 root 4025: { yyval.ttype = error_mark_node; ;
4026: break;}
1.1.1.2 ! root 4027: case 204:
! 4028: #line 1254 "cp-parse.y"
1.1 root 4029: { if (current_function_decl == 0)
4030: {
4031: error ("braced-group within expression allowed only inside a function");
4032: YYERROR;
4033: }
4034: keep_next_level ();
4035: yyval.ttype = expand_start_stmt_expr (); ;
4036: break;}
1.1.1.2 ! root 4037: case 205:
! 4038: #line 1262 "cp-parse.y"
1.1 root 4039: { tree rtl_exp;
4040: if (pedantic)
4041: warning ("ANSI C forbids braced-groups within expressions");
4042: rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
4043: /* The statements have side effects, so the group does. */
4044: TREE_SIDE_EFFECTS (rtl_exp) = 1;
4045:
4046: /* Make a BIND_EXPR for the BLOCK already made. */
4047: yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
4048: NULL_TREE, rtl_exp, yyvsp[-1].ttype);
4049: ;
4050: break;}
1.1.1.2 ! root 4051: case 206:
! 4052: #line 1274 "cp-parse.y"
1.1 root 4053: { /* [eichin:19911016.1902EST] */
4054: extern struct pending_template* pending_templates;
4055: yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_decl);
4056: /* here we instantiate_class_template as needed... */
4057: if (pending_templates) do_pending_templates ();
4058: ;
4059: break;}
1.1.1.2 ! root 4060: case 207:
! 4061: #line 1279 "cp-parse.y"
1.1 root 4062: {
4063: if (TREE_CODE (yyvsp[-1].ttype) == CALL_EXPR
4064: && TREE_TYPE (yyvsp[-1].ttype) != void_type_node)
4065: yyval.ttype = require_complete_type (yyvsp[-1].ttype);
4066: else
4067: yyval.ttype = yyvsp[-1].ttype;
4068: ;
4069: break;}
1.1.1.2 ! root 4070: case 208:
! 4071: #line 1287 "cp-parse.y"
1.1 root 4072: {
4073: yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_decl);
4074: if (TREE_CODE (yyval.ttype) == CALL_EXPR
4075: && TREE_TYPE (yyval.ttype) != void_type_node)
4076: yyval.ttype = require_complete_type (yyval.ttype);
4077: ;
4078: break;}
1.1.1.2 ! root 4079: case 209:
! 4080: #line 1294 "cp-parse.y"
1.1 root 4081: {
4082: do_array:
4083: {
4084: tree array_expr = yyval.ttype;
4085: tree index_exp = yyvsp[-1].ttype;
4086: tree type = TREE_TYPE (array_expr);
4087: if (type == error_mark_node || index_exp == error_mark_node)
4088: yyval.ttype = error_mark_node;
4089: else if (type == NULL_TREE)
4090: {
4091: /* Something has gone very wrong. Assume we
4092: are mistakenly reducing an expression
4093: instead of a declaration. */
4094: error ("parser may be lost: is there a '{' missing somewhere?");
4095: yyval.ttype = NULL_TREE;
4096: }
4097: else
4098: {
4099: if (TREE_CODE (type) == OFFSET_TYPE)
4100: type = TREE_TYPE (type);
4101: if (TREE_CODE (type) == REFERENCE_TYPE)
4102: type = TREE_TYPE (type);
4103:
4104: if (TYPE_LANG_SPECIFIC (type)
4105: && TYPE_OVERLOADS_ARRAY_REF (type))
4106: yyval.ttype = build_opfncall (ARRAY_REF, LOOKUP_NORMAL, array_expr, index_exp);
4107: else if (TREE_CODE (type) == POINTER_TYPE
4108: || TREE_CODE (type) == ARRAY_TYPE)
4109: yyval.ttype = build_array_ref (array_expr, index_exp);
4110: else
4111: {
4112: type = TREE_TYPE (index_exp);
4113: if (TREE_CODE (type) == OFFSET_TYPE)
4114: type = TREE_TYPE (type);
4115: if (TREE_CODE (type) == REFERENCE_TYPE)
4116: type = TREE_TYPE (type);
4117:
4118: if (TYPE_LANG_SPECIFIC (type)
4119: && TYPE_OVERLOADS_ARRAY_REF (type))
4120: error ("array expression backwards");
4121: else if (TREE_CODE (type) == POINTER_TYPE
4122: || TREE_CODE (type) == ARRAY_TYPE)
4123: yyval.ttype = build_array_ref (index_exp, array_expr);
4124: else
4125: error("[] applied to non-pointer type");
4126: }
4127: }
4128: }
4129: ;
4130: break;}
1.1.1.2 ! root 4131: case 210:
! 4132: #line 1344 "cp-parse.y"
1.1 root 4133: { yyval.ttype = build_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
4134: break;}
1.1.1.2 ! root 4135: case 211:
! 4136: #line 1346 "cp-parse.y"
1.1 root 4137: {
4138: tree basetype = yyvsp[-1].ttype;
4139: if (is_aggr_typedef (basetype, 1))
4140: {
4141: basetype = IDENTIFIER_TYPE_VALUE (basetype);
4142:
4143: if (yyval.ttype == error_mark_node)
4144: ;
4145: else if (binfo_or_else (basetype, TREE_TYPE (yyval.ttype)))
4146: yyval.ttype = build_component_ref (build_scoped_ref (yyval.ttype, yyvsp[-1].ttype), yyvsp[0].ttype, NULL_TREE, 1);
4147: else
4148: yyval.ttype = error_mark_node;
4149: }
4150: else yyval.ttype = error_mark_node;
4151: ;
4152: break;}
1.1.1.2 ! root 4153: case 212:
! 4154: #line 1362 "cp-parse.y"
1.1 root 4155: { yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
4156: break;}
1.1.1.2 ! root 4157: case 213:
! 4158: #line 1364 "cp-parse.y"
1.1 root 4159: { yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
4160: break;}
1.1.1.2 ! root 4161: case 214:
! 4162: #line 1368 "cp-parse.y"
1.1 root 4163: { if (current_class_decl)
4164: {
4165: #ifdef WARNING_ABOUT_CCD
4166: TREE_USED (current_class_decl) = 1;
4167: #endif
4168: yyval.ttype = current_class_decl;
4169: }
4170: else if (current_function_decl
4171: && DECL_STATIC_FUNCTION_P (current_function_decl))
4172: {
4173: error ("`this' is unavailable for static member functions");
4174: yyval.ttype = error_mark_node;
4175: }
4176: else
4177: {
4178: if (current_function_decl)
4179: error ("invalid use of `this' in non-member function");
4180: else
4181: error ("invalid use of `this' at top level");
4182: yyval.ttype = error_mark_node;
4183: }
4184: ;
4185: break;}
1.1.1.2 ! root 4186: case 215:
! 4187: #line 1391 "cp-parse.y"
1.1 root 4188: {
4189: tree type;
4190: tree id = yyval.ttype;
4191:
4192: /* This is a C cast in C++'s `functional' notation. */
4193: if (yyvsp[-1].ttype == error_mark_node)
4194: {
4195: yyval.ttype = error_mark_node;
4196: break;
4197: }
4198: #if 0
4199: if (yyvsp[-1].ttype == NULL_TREE)
4200: {
4201: error ("cannot cast null list to type `%s'",
4202: IDENTIFIER_POINTER (TYPE_NAME (id)));
4203: yyval.ttype = error_mark_node;
4204: break;
4205: }
4206: #endif
4207: if (type == error_mark_node)
4208: yyval.ttype = error_mark_node;
4209: else
4210: {
4211: if (id == ridpointers[(int) RID_CONST])
4212: type = build_type_variant (integer_type_node, 1, 0);
4213: else if (id == ridpointers[(int) RID_VOLATILE])
4214: type = build_type_variant (integer_type_node, 0, 1);
4215: else if (id == ridpointers[(int) RID_FRIEND])
4216: {
4217: error ("cannot cast expression to `friend' type");
4218: yyval.ttype = error_mark_node;
4219: break;
4220: }
4221: else abort ();
4222: yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
4223: }
4224: ;
4225: break;}
1.1.1.2 ! root 4226: case 216:
! 4227: #line 1429 "cp-parse.y"
1.1 root 4228: { yyval.ttype = build_functional_cast (yyval.ttype, yyvsp[-1].ttype); ;
4229: break;}
1.1.1.2 ! root 4230: case 217:
! 4231: #line 1431 "cp-parse.y"
1.1 root 4232: { yyval.ttype = build_functional_cast (yyval.ttype, NULL_TREE); ;
4233: break;}
1.1.1.2 ! root 4234: case 218:
! 4235: #line 1433 "cp-parse.y"
1.1 root 4236: {
4237: do_scoped_id:
4238: yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
4239: if (yychar == YYEMPTY)
4240: yychar = YYLEX;
4241: if (! yyval.ttype)
4242: {
4243: if (yychar == '(' || yychar == LEFT_RIGHT)
4244: yyval.ttype = implicitly_declare (yyvsp[0].ttype);
4245: else
4246: {
4247: if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node)
4248: error ("undeclared variable `%s' (first use here)",
4249: IDENTIFIER_POINTER (yyvsp[0].ttype));
4250: yyval.ttype = error_mark_node;
4251: /* Prevent repeated error messages. */
4252: IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
4253: }
4254: }
4255: else
4256: {
4257: assemble_external (yyval.ttype);
4258: TREE_USED (yyval.ttype) = 1;
4259: }
4260: if (TREE_CODE (yyval.ttype) == CONST_DECL)
4261: yyval.ttype = DECL_INITIAL (yyval.ttype);
4262: /* XXX CHS - should we set TREE_USED of the constant? */
4263: ;
4264: break;}
1.1.1.2 ! root 4265: case 219:
! 4266: #line 1462 "cp-parse.y"
1.1 root 4267: {
4268: if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
4269: goto do_scoped_id;
4270: do_scoped_operator:
4271: yyval.ttype = yyvsp[0].ttype;
4272: ;
4273: break;}
1.1.1.2 ! root 4274: case 220:
! 4275: #line 1469 "cp-parse.y"
1.1 root 4276: { yyval.ttype = build_offset_ref (yyval.ttype, yyvsp[0].ttype); ;
4277: break;}
1.1.1.2 ! root 4278: case 221:
! 4279: #line 1471 "cp-parse.y"
1.1 root 4280: { yyval.ttype = build_member_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4281: break;}
1.1.1.2 ! root 4282: case 222:
! 4283: #line 1473 "cp-parse.y"
1.1 root 4284: { yyval.ttype = build_member_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
4285: break;}
1.1.1.2 ! root 4286: case 223:
! 4287: #line 1475 "cp-parse.y"
1.1 root 4288: { yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
4289: (LOOKUP_NORMAL|LOOKUP_AGGR)); ;
4290: break;}
1.1.1.2 ! root 4291: case 224:
! 4292: #line 1478 "cp-parse.y"
1.1 root 4293: { yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
4294: (LOOKUP_NORMAL|LOOKUP_AGGR)); ;
4295: break;}
1.1.1.2 ! root 4296: case 225:
! 4297: #line 1481 "cp-parse.y"
1.1 root 4298: { yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4299: break;}
1.1.1.2 ! root 4300: case 226:
! 4301: #line 1483 "cp-parse.y"
1.1 root 4302: { yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE); ;
4303: break;}
1.1.1.2 ! root 4304: case 227:
! 4305: #line 1525 "cp-parse.y"
1.1 root 4306: { yyval.ttype = NULL_TREE; ;
4307: break;}
1.1.1.2 ! root 4308: case 228:
! 4309: #line 1527 "cp-parse.y"
1.1 root 4310: { yyval.ttype = yyvsp[-1].ttype; ;
4311: break;}
1.1.1.2 ! root 4312: case 229:
! 4313: #line 1529 "cp-parse.y"
1.1 root 4314: { yyval.ttype = void_type_node; ;
4315: break;}
1.1.1.2 ! root 4316: case 230:
! 4317: #line 1531 "cp-parse.y"
1.1 root 4318: { yyval.ttype = combine_strings (yyvsp[-1].ttype); ;
4319: break;}
1.1.1.2 ! root 4320: case 231:
! 4321: #line 1536 "cp-parse.y"
1.1 root 4322: { yyval.itype = 0; ;
4323: break;}
1.1.1.2 ! root 4324: case 232:
! 4325: #line 1538 "cp-parse.y"
1.1 root 4326: { yyval.itype = 1; ;
4327: break;}
1.1.1.2 ! root 4328: case 233:
! 4329: #line 1542 "cp-parse.y"
1.1 root 4330: { yyval.ttype = NULL_TREE; ;
4331: break;}
1.1.1.2 ! root 4332: case 234:
! 4333: #line 1544 "cp-parse.y"
1.1 root 4334: { if (yyvsp[0].ttype)
4335: error ("extra `::' before `delete' ignored");
4336: yyval.ttype = error_mark_node;
4337: ;
4338: break;}
1.1.1.2 ! root 4339: case 236:
! 4340: #line 1554 "cp-parse.y"
1.1 root 4341: { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
4342: break;}
1.1.1.2 ! root 4343: case 237:
! 4344: #line 1559 "cp-parse.y"
1.1 root 4345: {
4346: if (! current_function_parms_stored)
4347: store_parm_decls ();
4348: setup_vtbl_ptr ();
4349: ;
4350: break;}
1.1.1.2 ! root 4351: case 238:
! 4352: #line 1567 "cp-parse.y"
1.1 root 4353: {
4354: if (yyval.ttype == error_mark_node)
4355: ;
4356: else
4357: {
4358: tree type = TREE_TYPE (yyval.ttype);
4359:
4360: if (! PROMOTES_TO_AGGR_TYPE (type, REFERENCE_TYPE))
4361: {
4362: error ("object in '.' expression is not of aggregate type");
4363: yyval.ttype = error_mark_node;
4364: }
4365: }
4366: ;
4367: break;}
1.1.1.2 ! root 4368: case 239:
! 4369: #line 1582 "cp-parse.y"
1.1 root 4370: {
4371: yyval.ttype = build_x_arrow (yyval.ttype, 0);
4372: ;
4373: break;}
1.1.1.2 ! root 4374: case 241:
! 4375: #line 1592 "cp-parse.y"
1.1 root 4376: {
4377: resume_momentary (yyvsp[-1].itype);
4378: note_list_got_semicolon (yyval.ttype);
4379: ;
4380: break;}
1.1.1.2 ! root 4381: case 242:
! 4382: #line 1598 "cp-parse.y"
1.1 root 4383: { tree d;
4384: int yes = suspend_momentary ();
4385: d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
4386: finish_decl (d, NULL_TREE, NULL_TREE);
4387: resume_momentary (yes);
4388: note_list_got_semicolon (yyval.ttype);
4389: ;
4390: break;}
1.1.1.2 ! root 4391: case 243:
! 4392: #line 1606 "cp-parse.y"
1.1 root 4393: { resume_momentary (yyvsp[-1].itype); ;
4394: break;}
1.1.1.2 ! root 4395: case 244:
! 4396: #line 1609 "cp-parse.y"
1.1 root 4397: { tree d;
4398: int yes = suspend_momentary ();
4399: d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
4400: finish_decl (d, NULL_TREE, NULL_TREE);
4401: resume_momentary (yes);
4402: ;
4403: break;}
1.1.1.2 ! root 4404: case 245:
! 4405: #line 1616 "cp-parse.y"
1.1 root 4406: {
4407: shadow_tag (yyval.ttype);
4408: note_list_got_semicolon (yyval.ttype);
4409: ;
4410: break;}
1.1.1.2 ! root 4411: case 246:
! 4412: #line 1621 "cp-parse.y"
1.1 root 4413: { warning ("empty declaration"); ;
4414: break;}
1.1.1.2 ! root 4415: case 249:
! 4416: #line 1631 "cp-parse.y"
1.1 root 4417: { yyval.ttype = yyvsp[0].ttype; ;
4418: break;}
1.1.1.2 ! root 4419: case 250:
! 4420: #line 1633 "cp-parse.y"
1.1 root 4421: { yyval.ttype = yyvsp[0].ttype; ;
4422: break;}
1.1.1.2 ! root 4423: case 251:
! 4424: #line 1642 "cp-parse.y"
1.1 root 4425: { yyval.ttype = list_hash_lookup_or_cons (yyval.ttype); ;
4426: break;}
1.1.1.2 ! root 4427: case 252:
! 4428: #line 1644 "cp-parse.y"
1.1 root 4429: { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype); ;
4430: break;}
1.1.1.2 ! root 4431: case 253:
! 4432: #line 1646 "cp-parse.y"
1.1 root 4433: { yyval.ttype = hash_tree_chain (yyval.ttype, yyvsp[0].ttype); ;
4434: break;}
1.1.1.2 ! root 4435: case 254:
! 4436: #line 1648 "cp-parse.y"
1.1 root 4437: { yyval.ttype = hash_tree_chain (yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ;
4438: break;}
1.1.1.2 ! root 4439: case 255:
! 4440: #line 1654 "cp-parse.y"
1.1 root 4441: { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
4442: break;}
1.1.1.2 ! root 4443: case 256:
! 4444: #line 1656 "cp-parse.y"
1.1 root 4445: { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
4446: break;}
1.1.1.2 ! root 4447: case 257:
! 4448: #line 1658 "cp-parse.y"
1.1 root 4449: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
4450: break;}
1.1.1.2 ! root 4451: case 258:
! 4452: #line 1660 "cp-parse.y"
1.1 root 4453: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
4454: break;}
1.1.1.2 ! root 4455: case 259:
! 4456: #line 1669 "cp-parse.y"
1.1 root 4457: { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
4458: break;}
1.1.1.2 ! root 4459: case 260:
! 4460: #line 1671 "cp-parse.y"
1.1 root 4461: { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
4462: break;}
1.1.1.2 ! root 4463: case 261:
! 4464: #line 1673 "cp-parse.y"
1.1 root 4465: { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype); ;
4466: break;}
1.1.1.2 ! root 4467: case 262:
! 4468: #line 1675 "cp-parse.y"
1.1 root 4469: { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype); ;
4470: break;}
1.1.1.2 ! root 4471: case 263:
! 4472: #line 1687 "cp-parse.y"
1.1 root 4473: { yyval.ttype = get_decl_list (yyval.ttype); ;
4474: break;}
1.1.1.2 ! root 4475: case 264:
! 4476: #line 1689 "cp-parse.y"
1.1 root 4477: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
4478: break;}
1.1.1.2 ! root 4479: case 265:
! 4480: #line 1691 "cp-parse.y"
1.1 root 4481: { yyval.ttype = decl_tree_cons (NULL_TREE, yyval.ttype, yyvsp[0].ttype); ;
4482: break;}
1.1.1.2 ! root 4483: case 266:
! 4484: #line 1693 "cp-parse.y"
1.1 root 4485: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ;
4486: break;}
1.1.1.2 ! root 4487: case 267:
! 4488: #line 1698 "cp-parse.y"
1.1 root 4489: { yyval.ttype = get_decl_list (yyval.ttype); ;
4490: break;}
1.1.1.2 ! root 4491: case 268:
! 4492: #line 1700 "cp-parse.y"
1.1 root 4493: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
4494: break;}
1.1.1.2 ! root 4495: case 273:
! 4496: #line 1712 "cp-parse.y"
1.1 root 4497: { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
4498: if (pedantic)
4499: warning ("ANSI C forbids `typeof'"); ;
4500: break;}
1.1.1.2 ! root 4501: case 274:
! 4502: #line 1716 "cp-parse.y"
1.1 root 4503: { yyval.ttype = groktypename (yyvsp[-1].ttype);
4504: if (pedantic)
4505: warning ("ANSI C forbids `typeof'"); ;
4506: break;}
1.1.1.2 ! root 4507: case 283:
! 4508: #line 1741 "cp-parse.y"
1.1 root 4509: { yyval.ttype = NULL_TREE; ;
4510: break;}
1.1.1.2 ! root 4511: case 284:
! 4512: #line 1743 "cp-parse.y"
1.1 root 4513: { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
4514: yyval.ttype = yyvsp[-1].ttype;
4515: if (pedantic)
4516: warning ("ANSI C forbids use of `asm' keyword");
4517: ;
4518: break;}
1.1.1.2 ! root 4519: case 285:
! 4520: #line 1752 "cp-parse.y"
1.1 root 4521: { current_declspecs = yyvsp[-5].ttype;
4522: yyvsp[0].itype = suspend_momentary ();
4523: yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype); ;
4524: break;}
1.1.1.2 ! root 4525: case 286:
! 4526: #line 1757 "cp-parse.y"
1.1 root 4527: { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype);
4528: yyval.itype = yyvsp[-2].itype; ;
4529: break;}
1.1.1.2 ! root 4530: case 287:
! 4531: #line 1760 "cp-parse.y"
1.1 root 4532: { tree d;
4533: current_declspecs = yyvsp[-4].ttype;
4534: yyval.itype = suspend_momentary ();
4535: d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
4536: finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
4537: break;}
1.1.1.2 ! root 4538: case 288:
! 4539: #line 1769 "cp-parse.y"
1.1 root 4540: { yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype); ;
4541: break;}
1.1.1.2 ! root 4542: case 289:
! 4543: #line 1772 "cp-parse.y"
1.1 root 4544: { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
4545: break;}
1.1.1.2 ! root 4546: case 290:
! 4547: #line 1774 "cp-parse.y"
1.1 root 4548: { tree d = start_decl (yyval.itype, current_declspecs, 0, yyvsp[-2].ttype);
4549: finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
4550: break;}
1.1.1.2 ! root 4551: case 291:
! 4552: #line 1780 "cp-parse.y"
1.1 root 4553: { current_declspecs = yyvsp[-5].ttype;
4554: yyvsp[0].itype = suspend_momentary ();
4555: yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype); ;
4556: break;}
1.1.1.2 ! root 4557: case 292:
! 4558: #line 1785 "cp-parse.y"
1.1 root 4559: { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype);
4560: yyval.itype = yyvsp[-2].itype; ;
4561: break;}
1.1.1.2 ! root 4562: case 293:
! 4563: #line 1788 "cp-parse.y"
1.1 root 4564: { tree d;
4565: current_declspecs = yyvsp[-4].ttype;
4566: yyval.itype = suspend_momentary ();
4567: d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
4568: finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
4569: break;}
1.1.1.2 ! root 4570: case 294:
! 4571: #line 1799 "cp-parse.y"
1.1 root 4572: { yyval.ttype = NULL_TREE; ;
4573: break;}
1.1.1.2 ! root 4574: case 295:
! 4575: #line 1801 "cp-parse.y"
1.1 root 4576: { yyval.ttype = yyvsp[-2].ttype; ;
4577: break;}
1.1.1.2 ! root 4578: case 298:
! 4579: #line 1811 "cp-parse.y"
1.1 root 4580: { warning ("`%s' attribute directive ignored",
4581: IDENTIFIER_POINTER (yyval.ttype)); ;
4582: break;}
1.1.1.2 ! root 4583: case 299:
! 4584: #line 1814 "cp-parse.y"
1.1 root 4585: { /* if not "aligned(1)", then issue warning */
4586: if (strcmp (IDENTIFIER_POINTER (yyval.ttype), "aligned") != 0
4587: || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST
4588: || TREE_INT_CST_LOW (yyvsp[-1].ttype) != 1)
4589: warning ("`%s' attribute directive ignored",
4590: IDENTIFIER_POINTER (yyval.ttype)); ;
4591: break;}
1.1.1.2 ! root 4592: case 300:
! 4593: #line 1821 "cp-parse.y"
1.1 root 4594: { warning ("`%s' attribute directive ignored",
4595: IDENTIFIER_POINTER (yyval.ttype)); ;
4596: break;}
1.1.1.2 ! root 4597: case 301:
! 4598: #line 1828 "cp-parse.y"
! 4599: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
! 4600: break;}
! 4601: case 302:
! 4602: #line 1830 "cp-parse.y"
! 4603: { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
! 4604: break;}
! 4605: case 303:
! 4606: #line 1836 "cp-parse.y"
! 4607: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
1.1 root 4608: break;}
1.1.1.2 ! root 4609: case 304:
! 4610: #line 1838 "cp-parse.y"
! 4611: { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
1.1 root 4612: break;}
1.1.1.2 ! root 4613: case 306:
! 4614: #line 1844 "cp-parse.y"
1.1 root 4615: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
4616: TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1;
4617: if (pedantic)
4618: warning ("ANSI C forbids empty initializer braces"); ;
4619: break;}
1.1.1.2 ! root 4620: case 307:
! 4621: #line 1849 "cp-parse.y"
1.1 root 4622: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
4623: TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
4624: break;}
1.1.1.2 ! root 4625: case 308:
! 4626: #line 1852 "cp-parse.y"
1.1 root 4627: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
4628: TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
4629: break;}
1.1.1.2 ! root 4630: case 309:
! 4631: #line 1855 "cp-parse.y"
1.1 root 4632: { yyval.ttype = NULL_TREE; ;
4633: break;}
1.1.1.2 ! root 4634: case 310:
! 4635: #line 1862 "cp-parse.y"
1.1 root 4636: { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
4637: break;}
1.1.1.2 ! root 4638: case 311:
! 4639: #line 1864 "cp-parse.y"
1.1 root 4640: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
4641: break;}
1.1.1.2 ! root 4642: case 312:
! 4643: #line 1867 "cp-parse.y"
1.1 root 4644: { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4645: break;}
1.1.1.2 ! root 4646: case 313:
! 4647: #line 1869 "cp-parse.y"
1.1 root 4648: { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
4649: break;}
1.1.1.2 ! root 4650: case 314:
! 4651: #line 1871 "cp-parse.y"
1.1 root 4652: { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ;
4653: break;}
1.1.1.2 ! root 4654: case 315:
! 4655: #line 1873 "cp-parse.y"
1.1 root 4656: { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
4657: break;}
1.1.1.2 ! root 4658: case 316:
! 4659: #line 1878 "cp-parse.y"
1.1 root 4660: { yyvsp[0].itype = suspend_momentary ();
4661: yyval.ttype = start_enum (yyvsp[-1].ttype); ;
4662: break;}
1.1.1.2 ! root 4663: case 317:
! 4664: #line 1881 "cp-parse.y"
1.1 root 4665: { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
4666: resume_momentary (yyvsp[-4].itype);
4667: check_for_missing_semicolon (yyvsp[-3].ttype); ;
4668: break;}
1.1.1.2 ! root 4669: case 318:
! 4670: #line 1885 "cp-parse.y"
1.1 root 4671: { yyval.ttype = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
4672: check_for_missing_semicolon (yyval.ttype); ;
4673: break;}
1.1.1.2 ! root 4674: case 319:
! 4675: #line 1888 "cp-parse.y"
1.1 root 4676: { yyvsp[0].itype = suspend_momentary ();
4677: yyval.ttype = start_enum (make_anon_name ()); ;
4678: break;}
1.1.1.2 ! root 4679: case 320:
! 4680: #line 1891 "cp-parse.y"
1.1 root 4681: { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
4682: resume_momentary (yyvsp[-5].itype);
4683: check_for_missing_semicolon (yyvsp[-3].ttype); ;
4684: break;}
1.1.1.2 ! root 4685: case 321:
! 4686: #line 1895 "cp-parse.y"
1.1 root 4687: { yyval.ttype = finish_enum (start_enum (make_anon_name()), NULL_TREE);
4688: check_for_missing_semicolon (yyval.ttype); ;
4689: break;}
1.1.1.2 ! root 4690: case 322:
! 4691: #line 1898 "cp-parse.y"
1.1 root 4692: { yyval.ttype = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE); ;
4693: break;}
1.1.1.2 ! root 4694: case 323:
! 4695: #line 1902 "cp-parse.y"
1.1 root 4696: {
4697: int semi;
4698: #if 0
4699: /* Need to rework class nesting in the
4700: presence of nested classes, etc. */
4701: shadow_tag (CLASSTYPE_AS_LIST (yyval.ttype)); */
4702: #endif
4703: semi = yychar == ';';
4704: if (semi)
4705: note_got_semicolon (yyval.ttype);
4706: if (TREE_CODE (yyval.ttype) == ENUMERAL_TYPE)
4707: /* $$ = $1 from default rule. */;
4708: else if (CLASSTYPE_DECLARED_EXCEPTION (yyval.ttype))
4709: {
4710: if (! semi)
4711: yyval.ttype = finish_exception (yyval.ttype, yyvsp[-1].ttype);
4712: else
4713: warning ("empty exception declaration\n");
4714: }
4715: else
4716: yyval.ttype = finish_struct (yyval.ttype, yyvsp[-1].ttype, semi, semi);
4717:
4718: pop_obstacks ();
4719: if (! semi)
4720: check_for_missing_semicolon (yyval.ttype); ;
4721: break;}
1.1.1.2 ! root 4722: case 324:
! 4723: #line 1928 "cp-parse.y"
1.1 root 4724: {
4725: #if 0
4726: /* It's no longer clear what the following error is supposed to
4727: accomplish. If it turns out to be needed, add a comment why. */
4728: if (TYPE_BINFO_BASETYPES (yyval.ttype) && !TYPE_SIZE (yyval.ttype))
4729: {
4730: error ("incomplete definition of type `%s'",
4731: TYPE_NAME_STRING (yyval.ttype));
4732: yyval.ttype = error_mark_node;
4733: }
4734: #endif
4735: ;
4736: break;}
1.1.1.2 ! root 4737: case 328:
! 4738: #line 1950 "cp-parse.y"
1.1 root 4739: { if (pedantic) warning ("comma at end of enumerator list"); ;
4740: break;}
1.1.1.2 ! root 4741: case 330:
! 4742: #line 1955 "cp-parse.y"
1.1 root 4743: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4744: break;}
1.1.1.2 ! root 4745: case 331:
! 4746: #line 1957 "cp-parse.y"
1.1 root 4747: { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4748: break;}
1.1.1.2 ! root 4749: case 332:
! 4750: #line 1959 "cp-parse.y"
1.1 root 4751: { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
4752: ;
4753: break;}
1.1.1.2 ! root 4754: case 333:
! 4755: #line 1962 "cp-parse.y"
1.1 root 4756: { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
4757: ;
4758: break;}
1.1.1.2 ! root 4759: case 334:
! 4760: #line 1965 "cp-parse.y"
1.1 root 4761: { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
4762: ;
4763: break;}
1.1.1.2 ! root 4764: case 335:
! 4765: #line 1968 "cp-parse.y"
1.1 root 4766: { error ("no body nor ';' separates two class, struct or union declarations");
4767: ;
4768: break;}
1.1.1.2 ! root 4769: case 336:
! 4770: #line 1974 "cp-parse.y"
1.1 root 4771: { aggr1: current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
4772: break;}
1.1.1.2 ! root 4773: case 337:
! 4774: #line 1976 "cp-parse.y"
1.1 root 4775: { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
4776: break;}
1.1.1.2 ! root 4777: case 338:
! 4778: #line 1978 "cp-parse.y"
1.1 root 4779: { yyungetc (':', 1); goto aggr1; ;
4780: break;}
1.1.1.2 ! root 4781: case 339:
! 4782: #line 1980 "cp-parse.y"
1.1 root 4783: { yyungetc ('{', 1);
4784: aggr2:
4785: current_aggr = yyval.ttype;
4786: yyval.ttype = yyvsp[-1].ttype; ;
4787: break;}
1.1.1.2 ! root 4788: case 340:
! 4789: #line 1985 "cp-parse.y"
1.1 root 4790: { yyungetc (':', 1); goto aggr2; ;
4791: break;}
1.1.1.2 ! root 4792: case 341:
! 4793: #line 1990 "cp-parse.y"
1.1 root 4794: { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
4795: break;}
1.1.1.2 ! root 4796: case 342:
! 4797: #line 1995 "cp-parse.y"
1.1 root 4798: {
4799: yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE);
4800: ;
4801: break;}
1.1.1.2 ! root 4802: case 343:
! 4803: #line 1999 "cp-parse.y"
1.1 root 4804: {
4805: if (yyvsp[0].ttype)
4806: yyval.ttype = xref_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype);
4807: else
4808: yyval.ttype = yyvsp[-1].ttype;
4809: ;
4810: break;}
1.1.1.2 ! root 4811: case 344:
! 4812: #line 2007 "cp-parse.y"
1.1 root 4813: {
4814: yyval.ttype = xref_defn_tag (current_aggr, yyvsp[0].ttype, NULL_TREE);
4815: ;
4816: break;}
1.1.1.2 ! root 4817: case 345:
! 4818: #line 2011 "cp-parse.y"
1.1 root 4819: {
4820: if (yyvsp[0].ttype)
4821: yyval.ttype = xref_defn_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype);
4822: else
4823: yyval.ttype = yyvsp[-1].ttype;
4824: ;
4825: break;}
1.1.1.2 ! root 4826: case 346:
! 4827: #line 2020 "cp-parse.y"
1.1 root 4828: { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE);
4829: yyungetc ('{', 1); ;
4830: break;}
1.1.1.2 ! root 4831: case 349:
! 4832: #line 2028 "cp-parse.y"
1.1 root 4833: { yyval.ttype = NULL_TREE; ;
4834: break;}
1.1.1.2 ! root 4835: case 350:
! 4836: #line 2030 "cp-parse.y"
1.1 root 4837: { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
4838: break;}
1.1.1.2 ! root 4839: case 351:
! 4840: #line 2032 "cp-parse.y"
1.1 root 4841: { yyval.ttype = yyvsp[0].ttype; ;
4842: break;}
1.1.1.2 ! root 4843: case 353:
! 4844: #line 2038 "cp-parse.y"
1.1 root 4845: { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
4846: break;}
1.1.1.2 ! root 4847: case 354:
! 4848: #line 2043 "cp-parse.y"
1.1 root 4849: { if (! is_aggr_typedef (yyval.ttype, 1))
4850: yyval.ttype = NULL_TREE;
4851: else yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
4852: break;}
1.1.1.2 ! root 4853: case 355:
! 4854: #line 2047 "cp-parse.y"
1.1 root 4855: { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
4856: yyval.ttype = NULL_TREE;
4857: else yyval.ttype = build_tree_list ((tree) yyval.ttype, yyvsp[0].ttype); ;
4858: break;}
1.1.1.2 ! root 4859: case 358:
! 4860: #line 2059 "cp-parse.y"
1.1 root 4861: {
4862: if (yyval.itype == visibility_protected)
4863: {
4864: warning ("`protected' visibility not implemented");
4865: yyval.itype = visibility_public;
4866: }
4867: ;
4868: break;}
1.1.1.2 ! root 4869: case 359:
! 4870: #line 2067 "cp-parse.y"
1.1 root 4871: { if (yyval.ttype != ridpointers[(int)RID_VIRTUAL])
4872: sorry ("non-virtual visibility");
4873: yyval.itype = visibility_default_virtual; ;
4874: break;}
1.1.1.2 ! root 4875: case 360:
! 4876: #line 2071 "cp-parse.y"
1.1 root 4877: { int err = 0;
4878: if (yyvsp[0].itype == visibility_protected)
4879: {
4880: warning ("`protected' visibility not implemented");
4881: yyvsp[0].itype = visibility_public;
4882: err++;
4883: }
4884: else if (yyvsp[0].itype == visibility_public)
4885: {
4886: if (yyvsp[-1].itype == visibility_private)
4887: {
4888: mixed:
4889: error ("base class cannot be public and private");
4890: }
4891: else if (yyvsp[-1].itype == visibility_default_virtual)
4892: yyval.itype = visibility_public_virtual;
4893: }
1.1.1.2 ! root 4894: else /* $2 == visibility_private */
1.1 root 4895: {
4896: if (yyvsp[-1].itype == visibility_public)
4897: goto mixed;
4898: else if (yyvsp[-1].itype == visibility_default_virtual)
4899: yyval.itype = visibility_private_virtual;
4900: }
4901: ;
4902: break;}
1.1.1.2 ! root 4903: case 361:
! 4904: #line 2097 "cp-parse.y"
1.1 root 4905: { if (yyvsp[0].ttype != ridpointers[(int)RID_VIRTUAL])
4906: sorry ("non-virtual visibility");
4907: if (yyval.itype == visibility_public)
4908: yyval.itype = visibility_public_virtual;
4909: else if (yyval.itype == visibility_private)
4910: yyval.itype = visibility_private_virtual; ;
4911: break;}
1.1.1.2 ! root 4912: case 362:
! 4913: #line 2106 "cp-parse.y"
1.1 root 4914: { tree t;
4915: push_obstacks_nochange ();
4916: end_temporary_allocation ();
4917:
4918: if (! IS_AGGR_TYPE (yyvsp[-1].ttype))
4919: {
4920: yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
4921: TYPE_NAME (yyvsp[-1].ttype) = get_identifier ("erroneous type");
4922: }
4923: if (TYPE_SIZE (yyvsp[-1].ttype))
4924: duplicate_tag_error (yyvsp[-1].ttype);
4925: if (TYPE_SIZE (yyvsp[-1].ttype) || TYPE_BEING_DEFINED (yyvsp[-1].ttype))
4926: {
4927: t = make_lang_type (TREE_CODE (yyvsp[-1].ttype));
4928: pushtag (DECL_NAME (TYPE_NAME (yyvsp[-1].ttype)), t);
4929: yyvsp[-1].ttype = t;
4930: }
4931: pushclass (yyvsp[-1].ttype, 0);
4932: TYPE_BEING_DEFINED (yyvsp[-1].ttype) = 1;
4933: t = DECL_NAME (TYPE_NAME (yyvsp[-1].ttype));
4934: if (IDENTIFIER_TEMPLATE (t))
4935: overload_template_name (t, 1);
4936: ;
4937: break;}
1.1.1.2 ! root 4938: case 363:
! 4939: #line 2133 "cp-parse.y"
1.1 root 4940: { yyval.ttype = NULL_TREE; ;
4941: break;}
1.1.1.2 ! root 4942: case 364:
! 4943: #line 2135 "cp-parse.y"
1.1 root 4944: { yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
4945: break;}
1.1.1.2 ! root 4946: case 365:
! 4947: #line 2137 "cp-parse.y"
1.1 root 4948: { yyval.ttype = chainon (yyval.ttype, build_tree_list ((tree) yyvsp[-2].itype, yyvsp[0].ttype)); ;
4949: break;}
1.1.1.2 ! root 4950: case 367:
! 4951: #line 2143 "cp-parse.y"
1.1 root 4952: { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; ;
4953: break;}
1.1.1.2 ! root 4954: case 368:
! 4955: #line 2145 "cp-parse.y"
1.1 root 4956: { if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
4957: yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
4958: break;}
1.1.1.2 ! root 4959: case 369:
! 4960: #line 2148 "cp-parse.y"
1.1 root 4961: { if (pedantic)
4962: warning ("extra semicolon in struct or union specified"); ;
4963: break;}
1.1.1.2 ! root 4964: case 370:
! 4965: #line 2154 "cp-parse.y"
1.1 root 4966: {
4967: do_components:
4968: if (yyvsp[-1].ttype == void_type_node)
4969: /* We just got some friends.
4970: They have been recorded elsewhere. */
4971: yyval.ttype = NULL_TREE;
4972: else if (yyvsp[-1].ttype == NULL_TREE)
4973: {
4974: tree t = groktypename (build_decl_list (yyval.ttype, NULL_TREE));
4975: if (t == NULL_TREE)
4976: {
4977: error ("error in component specification");
4978: yyval.ttype = NULL_TREE;
4979: }
4980: else if (TREE_CODE (t) == UNION_TYPE)
4981: {
4982: /* handle anonymous unions */
4983: if (CLASSTYPE_METHOD_VEC (t))
4984: sorry ("methods in anonymous unions");
4985: yyval.ttype = build_lang_field_decl (FIELD_DECL, NULL_TREE, t);
4986: }
4987: else if (TREE_CODE (t) == ENUMERAL_TYPE)
4988: yyval.ttype = grok_enum_decls (t, NULL_TREE);
4989: else if (TREE_CODE (t) == RECORD_TYPE)
4990: {
4991: if (TYPE_LANG_SPECIFIC (t)
4992: && CLASSTYPE_DECLARED_EXCEPTION (t))
4993: shadow_tag (yyval.ttype);
4994: yyval.ttype = NULL_TREE;
4995: }
4996: else if (t != void_type_node)
4997: {
4998: error ("empty component declaration");
4999: yyval.ttype = NULL_TREE;
5000: }
5001: else yyval.ttype = NULL_TREE;
5002: }
5003: else
5004: {
5005: tree t = TREE_TYPE (yyvsp[-1].ttype);
5006: if (TREE_CODE (t) == ENUMERAL_TYPE && TREE_NONLOCAL_FLAG (t))
5007: yyval.ttype = grok_enum_decls (t, yyvsp[-1].ttype);
5008: else
5009: yyval.ttype = yyvsp[-1].ttype;
5010: }
5011: end_exception_decls ();
5012: ;
5013: break;}
1.1.1.2 ! root 5014: case 371:
! 5015: #line 2202 "cp-parse.y"
1.1 root 5016: { yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
5017: break;}
1.1.1.2 ! root 5018: case 372:
! 5019: #line 2204 "cp-parse.y"
1.1 root 5020: { error ("missing ';' before right brace");
5021: yyungetc ('}', 0);
5022: yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
5023: break;}
1.1.1.2 ! root 5024: case 373:
! 5025: #line 2208 "cp-parse.y"
1.1 root 5026: { yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
5027: break;}
1.1.1.2 ! root 5028: case 374:
! 5029: #line 2210 "cp-parse.y"
1.1 root 5030: { error ("missing ';' before right brace");
5031: yyungetc ('}', 0);
5032: yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
5033: break;}
1.1.1.2 ! root 5034: case 375:
! 5035: #line 2214 "cp-parse.y"
1.1 root 5036: { goto do_components; ;
5037: break;}
1.1.1.2 ! root 5038: case 376:
! 5039: #line 2217 "cp-parse.y"
1.1 root 5040: { yyval.ttype = grokfield (yyvsp[-1].ttype, yyval.ttype, 0, 0, 0, 0); ;
5041: break;}
1.1.1.2 ! root 5042: case 377:
! 5043: #line 2219 "cp-parse.y"
1.1 root 5044: { error ("missing ';' before right brace");
5045: yyungetc ('}', 0);
5046: goto do_components; ;
5047: break;}
1.1.1.2 ! root 5048: case 378:
! 5049: #line 2223 "cp-parse.y"
1.1 root 5050: { yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
5051: break;}
1.1.1.2 ! root 5052: case 379:
! 5053: #line 2225 "cp-parse.y"
1.1 root 5054: { error ("missing ';' before right brace");
5055: yyungetc ('}', 0);
5056: yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
5057: break;}
1.1.1.2 ! root 5058: case 380:
! 5059: #line 2229 "cp-parse.y"
1.1 root 5060: { yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
5061: break;}
1.1.1.2 ! root 5062: case 381:
! 5063: #line 2231 "cp-parse.y"
1.1 root 5064: { error ("missing ';' before right brace");
5065: yyungetc ('}', 0);
5066: yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
5067: break;}
1.1.1.2 ! root 5068: case 382:
! 5069: #line 2235 "cp-parse.y"
1.1 root 5070: { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
5071: break;}
1.1.1.2 ! root 5072: case 383:
! 5073: #line 2237 "cp-parse.y"
1.1 root 5074: { error ("missing ';' before right brace");
5075: yyungetc ('}', 0);
5076: yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
5077: break;}
1.1.1.2 ! root 5078: case 384:
! 5079: #line 2241 "cp-parse.y"
1.1 root 5080: { yyval.ttype = NULL_TREE; ;
5081: break;}
1.1.1.2 ! root 5082: case 385:
! 5083: #line 2246 "cp-parse.y"
1.1 root 5084: { yyval.ttype = finish_method (yyval.ttype); ;
5085: break;}
1.1.1.2 ! root 5086: case 386:
! 5087: #line 2248 "cp-parse.y"
1.1 root 5088: { yyval.ttype = finish_method (yyval.ttype); ;
5089: break;}
1.1.1.2 ! root 5090: case 387:
! 5091: #line 2250 "cp-parse.y"
1.1 root 5092: { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
5093: break;}
1.1.1.2 ! root 5094: case 388:
! 5095: #line 2252 "cp-parse.y"
1.1 root 5096: { error ("missing ';' before right brace");
5097: yyungetc ('}', 0);
5098: yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
5099: break;}
1.1.1.2 ! root 5100: case 389:
! 5101: #line 2259 "cp-parse.y"
1.1 root 5102: { yyval.ttype = NULL_TREE; ;
5103: break;}
1.1.1.2 ! root 5104: case 391:
! 5105: #line 2262 "cp-parse.y"
1.1 root 5106: {
5107: /* In this context, void_type_node encodes
5108: friends. They have been recorded elsewhere. */
5109: if (yyval.ttype == void_type_node)
5110: yyval.ttype = yyvsp[0].ttype;
5111: else
5112: yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
5113: ;
5114: break;}
1.1.1.2 ! root 5115: case 392:
! 5116: #line 2274 "cp-parse.y"
1.1 root 5117: { current_declspecs = yyvsp[-3].ttype;
5118: yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype); ;
5119: break;}
1.1.1.2 ! root 5120: case 393:
! 5121: #line 2277 "cp-parse.y"
1.1 root 5122: { current_declspecs = yyvsp[-5].ttype;
5123: yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-2].ttype); ;
5124: break;}
1.1.1.2 ! root 5125: case 394:
! 5126: #line 2280 "cp-parse.y"
1.1 root 5127: { current_declspecs = yyvsp[-3].ttype;
5128: yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[0].ttype); ;
5129: break;}
1.1.1.2 ! root 5130: case 395:
! 5131: #line 2283 "cp-parse.y"
1.1 root 5132: { current_declspecs = yyvsp[-2].ttype;
5133: yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[0].ttype); ;
5134: break;}
1.1.1.2 ! root 5135: case 396:
! 5136: #line 2286 "cp-parse.y"
1.1 root 5137: { current_declspecs = yyvsp[-2].ttype;
5138: yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
5139: break;}
1.1.1.2 ! root 5140: case 397:
! 5141: #line 2292 "cp-parse.y"
1.1 root 5142: { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype); ;
5143: break;}
1.1.1.2 ! root 5144: case 398:
! 5145: #line 2294 "cp-parse.y"
1.1 root 5146: { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-2].ttype); ;
5147: break;}
1.1.1.2 ! root 5148: case 399:
! 5149: #line 2296 "cp-parse.y"
1.1 root 5150: { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[0].ttype); ;
5151: break;}
1.1.1.2 ! root 5152: case 400:
! 5153: #line 2298 "cp-parse.y"
1.1 root 5154: { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[0].ttype); ;
5155: break;}
1.1.1.2 ! root 5156: case 401:
! 5157: #line 2300 "cp-parse.y"
1.1 root 5158: { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
5159: break;}
1.1.1.2 ! root 5160: case 403:
! 5161: #line 2310 "cp-parse.y"
1.1 root 5162: { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
5163: break;}
1.1.1.2 ! root 5164: case 404:
! 5165: #line 2315 "cp-parse.y"
1.1 root 5166: { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
5167: break;}
1.1.1.2 ! root 5168: case 405:
! 5169: #line 2317 "cp-parse.y"
1.1 root 5170: { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
5171: break;}
1.1.1.2 ! root 5172: case 406:
! 5173: #line 2322 "cp-parse.y"
1.1 root 5174: { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
5175: break;}
1.1.1.2 ! root 5176: case 407:
! 5177: #line 2324 "cp-parse.y"
1.1 root 5178: { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
5179: break;}
1.1.1.2 ! root 5180: case 408:
! 5181: #line 2329 "cp-parse.y"
1.1 root 5182: { yyval.ttype = NULL_TREE; ;
5183: break;}
1.1.1.2 ! root 5184: case 410:
! 5185: #line 2332 "cp-parse.y"
1.1 root 5186: { yyval.ttype = yyvsp[0].ttype; ;
5187: break;}
1.1.1.2 ! root 5188: case 411:
! 5189: #line 2337 "cp-parse.y"
1.1 root 5190: { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
5191: break;}
1.1.1.2 ! root 5192: case 412:
! 5193: #line 2339 "cp-parse.y"
1.1 root 5194: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5195: break;}
1.1.1.2 ! root 5196: case 413:
! 5197: #line 2344 "cp-parse.y"
1.1 root 5198: { yyval.ttype = NULL_TREE; ;
5199: break;}
1.1.1.2 ! root 5200: case 414:
! 5201: #line 2346 "cp-parse.y"
1.1 root 5202: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5203: break;}
1.1.1.2 ! root 5204: case 415:
! 5205: #line 2354 "cp-parse.y"
1.1 root 5206: { yyval.itype = suspend_momentary (); ;
5207: break;}
1.1.1.2 ! root 5208: case 416:
! 5209: #line 2355 "cp-parse.y"
1.1 root 5210: { resume_momentary (yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
5211: break;}
1.1.1.2 ! root 5212: case 417:
! 5213: #line 2361 "cp-parse.y"
1.1 root 5214: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5215: break;}
1.1.1.2 ! root 5216: case 418:
! 5217: #line 2363 "cp-parse.y"
1.1 root 5218: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5219: break;}
1.1.1.2 ! root 5220: case 419:
! 5221: #line 2365 "cp-parse.y"
1.1 root 5222: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
5223: break;}
1.1.1.2 ! root 5224: case 420:
! 5225: #line 2367 "cp-parse.y"
1.1 root 5226: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
5227: break;}
1.1.1.2 ! root 5228: case 421:
! 5229: #line 2369 "cp-parse.y"
1.1 root 5230: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
5231: break;}
1.1.1.2 ! root 5232: case 422:
! 5233: #line 2371 "cp-parse.y"
1.1 root 5234: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
5235: break;}
1.1.1.2 ! root 5236: case 423:
! 5237: #line 2373 "cp-parse.y"
1.1 root 5238: { yyval.ttype = yyvsp[-1].ttype; ;
5239: break;}
1.1.1.2 ! root 5240: case 424:
! 5241: #line 2375 "cp-parse.y"
1.1 root 5242: { yyval.ttype = make_pointer_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5243: break;}
1.1.1.2 ! root 5244: case 425:
! 5245: #line 2377 "cp-parse.y"
1.1 root 5246: { see_typename (); ;
5247: break;}
1.1.1.2 ! root 5248: case 427:
! 5249: #line 2380 "cp-parse.y"
1.1 root 5250: { yyval.ttype = make_reference_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5251: break;}
1.1.1.2 ! root 5252: case 428:
! 5253: #line 2382 "cp-parse.y"
1.1 root 5254: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5255: break;}
1.1.1.2 ! root 5256: case 429:
! 5257: #line 2384 "cp-parse.y"
1.1 root 5258: { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5259: break;}
1.1.1.2 ! root 5260: case 431:
! 5261: #line 2390 "cp-parse.y"
1.1 root 5262: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5263: break;}
1.1.1.2 ! root 5264: case 432:
! 5265: #line 2392 "cp-parse.y"
1.1 root 5266: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5267: break;}
1.1.1.2 ! root 5268: case 433:
! 5269: #line 2394 "cp-parse.y"
1.1 root 5270: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
5271: break;}
1.1.1.2 ! root 5272: case 434:
! 5273: #line 2396 "cp-parse.y"
1.1 root 5274: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
5275: break;}
1.1.1.2 ! root 5276: case 435:
! 5277: #line 2398 "cp-parse.y"
1.1 root 5278: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
5279: break;}
1.1.1.2 ! root 5280: case 436:
! 5281: #line 2400 "cp-parse.y"
1.1 root 5282: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
5283: break;}
1.1.1.2 ! root 5284: case 437:
! 5285: #line 2402 "cp-parse.y"
1.1 root 5286: { yyval.ttype = yyvsp[-1].ttype; ;
5287: break;}
1.1.1.2 ! root 5288: case 438:
! 5289: #line 2404 "cp-parse.y"
1.1 root 5290: { see_typename (); ;
5291: break;}
1.1.1.2 ! root 5292: case 440:
! 5293: #line 2407 "cp-parse.y"
1.1 root 5294: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5295: break;}
1.1.1.2 ! root 5296: case 441:
! 5297: #line 2409 "cp-parse.y"
1.1 root 5298: { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5299: break;}
1.1.1.2 ! root 5300: case 442:
! 5301: #line 2417 "cp-parse.y"
1.1 root 5302: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5303: break;}
1.1.1.2 ! root 5304: case 443:
! 5305: #line 2419 "cp-parse.y"
1.1 root 5306: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5307: break;}
1.1.1.2 ! root 5308: case 444:
! 5309: #line 2421 "cp-parse.y"
1.1 root 5310: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
5311: break;}
1.1.1.2 ! root 5312: case 445:
! 5313: #line 2423 "cp-parse.y"
1.1 root 5314: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
5315: break;}
1.1.1.2 ! root 5316: case 446:
! 5317: #line 2425 "cp-parse.y"
1.1 root 5318: { yyval.ttype = yyvsp[-1].ttype; ;
5319: break;}
1.1.1.2 ! root 5320: case 447:
! 5321: #line 2427 "cp-parse.y"
1.1 root 5322: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5323: break;}
1.1.1.2 ! root 5324: case 448:
! 5325: #line 2429 "cp-parse.y"
1.1 root 5326: { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5327: break;}
1.1.1.2 ! root 5328: case 449:
! 5329: #line 2431 "cp-parse.y"
1.1 root 5330: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
5331: break;}
1.1.1.2 ! root 5332: case 450:
! 5333: #line 2433 "cp-parse.y"
1.1 root 5334: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
5335: break;}
1.1.1.2 ! root 5336: case 451:
! 5337: #line 2435 "cp-parse.y"
1.1 root 5338: { see_typename (); ;
5339: break;}
1.1.1.2 ! root 5340: case 452:
! 5341: #line 2439 "cp-parse.y"
1.1 root 5342: { see_typename (); ;
5343: break;}
1.1.1.2 ! root 5344: case 453:
! 5345: #line 2442 "cp-parse.y"
1.1 root 5346: {
5347: destructor_name:
5348: see_typename ();
5349: yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype);
5350: ;
5351: break;}
1.1.1.2 ! root 5352: case 454:
! 5353: #line 2448 "cp-parse.y"
1.1 root 5354: { goto destructor_name; ;
5355: break;}
1.1.1.2 ! root 5356: case 455:
! 5357: #line 2450 "cp-parse.y"
1.1 root 5358: { goto destructor_name; ;
5359: break;}
1.1.1.2 ! root 5360: case 456:
! 5361: #line 2452 "cp-parse.y"
1.1 root 5362: {
5363: see_typename ();
5364: yyval.ttype = build_parse_node (WRAPPER_EXPR, yyvsp[0].ttype);
5365: ;
5366: break;}
1.1.1.2 ! root 5367: case 457:
! 5368: #line 2457 "cp-parse.y"
1.1 root 5369: {
5370: see_typename ();
5371: yyval.ttype = build_parse_node (WRAPPER_EXPR,
5372: build_parse_node (COND_EXPR, yyvsp[0].ttype, NULL_TREE, NULL_TREE));
5373: ;
5374: break;}
1.1.1.2 ! root 5375: case 458:
! 5376: #line 2463 "cp-parse.y"
1.1 root 5377: { see_typename ();
5378: yyval.ttype = build_parse_node (ANTI_WRAPPER_EXPR, yyvsp[0].ttype); ;
5379: break;}
1.1.1.2 ! root 5380: case 459:
! 5381: #line 2466 "cp-parse.y"
1.1 root 5382: { see_typename ();
5383: if (TREE_CODE (yyval.ttype) != SCOPE_REF)
5384: yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype);
5385: else if (TREE_OPERAND (yyval.ttype, 1) == NULL_TREE)
5386: TREE_OPERAND (yyval.ttype, 1) = yyvsp[0].ttype;
5387: else
5388: yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
5389: ;
5390: break;}
1.1.1.2 ! root 5391: case 460:
! 5392: #line 2475 "cp-parse.y"
1.1 root 5393: { yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ;
5394: break;}
1.1.1.2 ! root 5395: case 461:
! 5396: #line 2477 "cp-parse.y"
1.1 root 5397: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
5398: break;}
1.1.1.2 ! root 5399: case 462:
! 5400: #line 2479 "cp-parse.y"
1.1 root 5401: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
5402: break;}
1.1.1.2 ! root 5403: case 463:
! 5404: #line 2481 "cp-parse.y"
1.1 root 5405: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
5406: break;}
1.1.1.2 ! root 5407: case 464:
! 5408: #line 2483 "cp-parse.y"
1.1 root 5409: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
5410: break;}
1.1.1.2 ! root 5411: case 465:
! 5412: #line 2486 "cp-parse.y"
1.1 root 5413: { yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ;
5414: break;}
1.1.1.2 ! root 5415: case 466:
! 5416: #line 2488 "cp-parse.y"
1.1 root 5417: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
5418: break;}
1.1.1.2 ! root 5419: case 467:
! 5420: #line 2490 "cp-parse.y"
1.1 root 5421: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
5422: break;}
1.1.1.2 ! root 5423: case 468:
! 5424: #line 2492 "cp-parse.y"
1.1 root 5425: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
5426: break;}
1.1.1.2 ! root 5427: case 469:
! 5428: #line 2494 "cp-parse.y"
1.1 root 5429: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
5430: break;}
1.1.1.2 ! root 5431: case 470:
! 5432: #line 2496 "cp-parse.y"
1.1 root 5433: { yyval.ttype = build_parse_node (SCOPE_REF, NULL_TREE, yyvsp[0].ttype); ;
5434: break;}
1.1.1.2 ! root 5435: case 471:
! 5436: #line 2500 "cp-parse.y"
! 5437: { yyval.ttype = resolve_scope_to_name (NULL_TREE, yyval.ttype);
! 5438: if (yyval.ttype == NULL_TREE)
! 5439: {
! 5440: error ("undefined explicitly scoped type");
! 5441: yyval.ttype = error_mark_node;
! 5442: }
! 5443: ;
1.1 root 5444: break;}
1.1.1.2 ! root 5445: case 472:
! 5446: #line 2508 "cp-parse.y"
1.1 root 5447: {
5448: if (yyval.ttype == error_mark_node)
5449: /* leave it alone */;
5450: else
5451: {
5452: yyval.ttype = resolve_scope_to_name (NULL_TREE, TYPE_IDENTIFIER (yyval.ttype));
1.1.1.2 ! root 5453: if (yyval.ttype == NULL_TREE)
! 5454: {
! 5455: error ("undefined explicitly scoped type");
! 5456: yyval.ttype = error_mark_node;
! 5457: }
1.1 root 5458: }
5459: if (yyvsp[0].itype) popclass (1);
5460: ;
5461: break;}
1.1.1.2 ! root 5462: case 475:
! 5463: #line 2544 "cp-parse.y"
1.1 root 5464: { see_typename ();
5465: yyval.ttype = yyvsp[-1].ttype; ;
5466: break;}
1.1.1.2 ! root 5467: case 476:
! 5468: #line 2548 "cp-parse.y"
1.1 root 5469: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5470: break;}
1.1.1.2 ! root 5471: case 477:
! 5472: #line 2550 "cp-parse.y"
1.1 root 5473: { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
5474: break;}
1.1.1.2 ! root 5475: case 478:
! 5476: #line 2552 "cp-parse.y"
1.1 root 5477: { see_typename (); ;
5478: break;}
1.1.1.2 ! root 5479: case 479:
! 5480: #line 2554 "cp-parse.y"
1.1 root 5481: { yyval.ttype = yyvsp[-1].ttype; ;
5482: break;}
1.1.1.2 ! root 5483: case 480:
! 5484: #line 2556 "cp-parse.y"
1.1 root 5485: { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5486: break;}
1.1.1.2 ! root 5487: case 481:
! 5488: #line 2558 "cp-parse.y"
1.1 root 5489: { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
5490: break;}
1.1.1.2 ! root 5491: case 482:
! 5492: #line 2560 "cp-parse.y"
1.1 root 5493: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5494: break;}
1.1.1.2 ! root 5495: case 483:
! 5496: #line 2562 "cp-parse.y"
1.1 root 5497: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
5498: break;}
1.1.1.2 ! root 5499: case 484:
! 5500: #line 2564 "cp-parse.y"
1.1 root 5501: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
5502: break;}
1.1.1.2 ! root 5503: case 485:
! 5504: #line 2566 "cp-parse.y"
1.1 root 5505: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
5506: break;}
1.1.1.2 ! root 5507: case 486:
! 5508: #line 2568 "cp-parse.y"
1.1 root 5509: { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5510: break;}
1.1.1.2 ! root 5511: case 487:
! 5512: #line 2570 "cp-parse.y"
1.1 root 5513: { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, empty_parms (), yyvsp[0].ttype); ;
5514: break;}
1.1.1.2 ! root 5515: case 488:
! 5516: #line 2572 "cp-parse.y"
1.1 root 5517: { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
5518: break;}
1.1.1.2 ! root 5519: case 489:
! 5520: #line 2574 "cp-parse.y"
1.1 root 5521: { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
5522: break;}
1.1.1.2 ! root 5523: case 490:
! 5524: #line 2579 "cp-parse.y"
1.1 root 5525: { tree t;
5526: t = yyval.ttype;
5527: while (TREE_OPERAND (t, 1))
5528: t = TREE_OPERAND (t, 1);
5529: TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, 0);
5530: ;
5531: break;}
1.1.1.2 ! root 5532: case 491:
! 5533: #line 2586 "cp-parse.y"
1.1 root 5534: { tree t;
5535: t = yyval.ttype;
5536: while (TREE_OPERAND (t, 1))
5537: t = TREE_OPERAND (t, 1);
5538: TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype);
5539: ;
5540: break;}
1.1.1.2 ! root 5541: case 492:
! 5542: #line 2593 "cp-parse.y"
1.1 root 5543: { tree t;
5544: t = yyval.ttype;
5545: while (TREE_OPERAND (t, 1))
5546: t = TREE_OPERAND (t, 1);
5547: TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, 0);
5548: ;
5549: break;}
1.1.1.2 ! root 5550: case 493:
! 5551: #line 2600 "cp-parse.y"
1.1 root 5552: { tree t;
5553: t = yyval.ttype;
5554: while (TREE_OPERAND (t, 1))
5555: t = TREE_OPERAND (t, 1);
5556: TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype);
5557: ;
5558: break;}
1.1.1.2 ! root 5559: case 494:
! 5560: #line 2610 "cp-parse.y"
1.1 root 5561: { tree t;
5562: t = yyval.ttype;
5563: while (TREE_OPERAND (t, 1))
5564: t = TREE_OPERAND (t, 1);
5565: TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype);
5566: ;
5567: break;}
1.1.1.2 ! root 5568: case 495:
! 5569: #line 2617 "cp-parse.y"
1.1 root 5570: { tree t;
5571: t = yyval.ttype;
5572: while (TREE_OPERAND (t, 1))
5573: t = TREE_OPERAND (t, 1);
5574: TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype);
5575: ;
5576: break;}
1.1.1.2 ! root 5577: case 501:
! 5578: #line 2644 "cp-parse.y"
! 5579: { emit_line_note (input_filename, lineno);
1.1 root 5580: pushlevel (0);
5581: clear_last_expr ();
5582: push_momentary ();
5583: expand_start_bindings (0);
1.1.1.2 ! root 5584: yyval.strtype = stmt_decl_msg;
! 5585: stmt_decl_msg = 0; ;
! 5586: break;}
! 5587: case 503:
! 5588: #line 2658 "cp-parse.y"
! 5589: { if (pedantic)
! 5590: pedwarn ("ANSI C forbids label declarations"); ;
! 5591: break;}
! 5592: case 506:
! 5593: #line 2669 "cp-parse.y"
! 5594: { tree link;
! 5595: for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
! 5596: {
! 5597: tree label = shadow_label (TREE_VALUE (link));
! 5598: C_DECLARED_LABEL_FLAG (label) = 1;
! 5599: declare_nonlocal_label (label);
! 5600: }
1.1 root 5601: ;
5602: break;}
1.1.1.2 ! root 5603: case 507:
! 5604: #line 2683 "cp-parse.y"
1.1 root 5605: {;
5606: break;}
1.1.1.2 ! root 5607: case 509:
! 5608: #line 2688 "cp-parse.y"
1.1 root 5609: { yyval.ttype = convert (void_type_node, integer_zero_node); ;
5610: break;}
1.1.1.2 ! root 5611: case 510:
! 5612: #line 2690 "cp-parse.y"
1.1 root 5613: { pop_implicit_try_blocks (NULL_TREE);
1.1.1.2 ! root 5614: stmt_decl_msg = yyvsp[-3].strtype;
1.1 root 5615: expand_end_bindings (getdecls (), kept_level_p (), 1);
5616: yyval.ttype = poplevel (kept_level_p (), 1, 0);
5617: pop_momentary (); ;
5618: break;}
1.1.1.2 ! root 5619: case 511:
! 5620: #line 2696 "cp-parse.y"
1.1 root 5621: { pop_implicit_try_blocks (NULL_TREE);
1.1.1.2 ! root 5622: stmt_decl_msg = yyvsp[-3].strtype;
1.1 root 5623: expand_end_bindings (getdecls (), kept_level_p (), 1);
5624: yyval.ttype = poplevel (kept_level_p (), 0, 0);
5625: pop_momentary (); ;
5626: break;}
1.1.1.2 ! root 5627: case 512:
! 5628: #line 2705 "cp-parse.y"
1.1 root 5629: { emit_line_note (input_filename, lineno);
5630: expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
5631: stmt_decl_msg = "if"; ;
5632: break;}
1.1.1.2 ! root 5633: case 513:
! 5634: #line 2709 "cp-parse.y"
1.1 root 5635: { stmt_decl_msg = 0; ;
5636: break;}
1.1.1.2 ! root 5637: case 514:
! 5638: #line 2714 "cp-parse.y"
1.1 root 5639: { finish_stmt (); ;
5640: break;}
1.1.1.2 ! root 5641: case 515:
! 5642: #line 2716 "cp-parse.y"
1.1 root 5643: { if (stmt_decl_msg)
5644: error ("declaration after %s invalid", stmt_decl_msg);
5645: stmt_decl_msg = 0;
5646: finish_stmt (); ;
5647: break;}
1.1.1.2 ! root 5648: case 516:
! 5649: #line 2721 "cp-parse.y"
1.1 root 5650: {
5651: tree expr = yyvsp[-1].ttype;
5652: emit_line_note (input_filename, lineno);
5653: /* Do default conversion if safe and possibly important,
5654: in case within ({...}). */
5655: if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
5656: && lvalue_p (expr))
5657: || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
5658: expr = default_conversion (expr);
5659: cplus_expand_expr_stmt (expr);
5660: clear_momentary ();
5661: finish_stmt (); ;
5662: break;}
1.1.1.2 ! root 5663: case 517:
! 5664: #line 2734 "cp-parse.y"
1.1 root 5665: { expand_start_else ();
5666: stmt_decl_msg = "else"; ;
5667: break;}
1.1.1.2 ! root 5668: case 518:
! 5669: #line 2737 "cp-parse.y"
1.1 root 5670: { expand_end_cond ();
5671: stmt_decl_msg = 0;
5672: finish_stmt (); ;
5673: break;}
1.1.1.2 ! root 5674: case 519:
! 5675: #line 2741 "cp-parse.y"
1.1 root 5676: { expand_end_cond ();
5677: stmt_decl_msg = 0;
5678: finish_stmt (); ;
5679: break;}
1.1.1.2 ! root 5680: case 520:
! 5681: #line 2745 "cp-parse.y"
1.1 root 5682: { emit_nop ();
5683: emit_line_note (input_filename, lineno);
5684: expand_start_loop (1); ;
5685: break;}
1.1.1.2 ! root 5686: case 521:
! 5687: #line 2749 "cp-parse.y"
1.1 root 5688: { expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype));
5689: stmt_decl_msg = "while"; ;
5690: break;}
1.1.1.2 ! root 5691: case 522:
! 5692: #line 2752 "cp-parse.y"
1.1 root 5693: {
5694: expand_end_loop ();
5695: stmt_decl_msg = 0;
5696: finish_stmt (); ;
5697: break;}
1.1.1.2 ! root 5698: case 523:
! 5699: #line 2757 "cp-parse.y"
1.1 root 5700: { emit_nop ();
5701: emit_line_note (input_filename, lineno);
5702: expand_start_loop_continue_elsewhere (1);
5703: stmt_decl_msg = "do"; ;
5704: break;}
1.1.1.2 ! root 5705: case 524:
! 5706: #line 2762 "cp-parse.y"
1.1 root 5707: { stmt_decl_msg = 0;
5708: expand_loop_continue_here (); ;
5709: break;}
1.1.1.2 ! root 5710: case 525:
! 5711: #line 2765 "cp-parse.y"
1.1 root 5712: { emit_line_note (input_filename, lineno);
5713: expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-2].ttype));
5714: expand_end_loop ();
5715: clear_momentary ();
5716: finish_stmt (); ;
5717: break;}
1.1.1.2 ! root 5718: case 526:
! 5719: #line 2771 "cp-parse.y"
1.1 root 5720: { emit_nop ();
5721: emit_line_note (input_filename, lineno);
5722: if (yyvsp[0].ttype) cplus_expand_expr_stmt (yyvsp[0].ttype);
5723: expand_start_loop_continue_elsewhere (1); ;
5724: break;}
1.1.1.2 ! root 5725: case 527:
! 5726: #line 2776 "cp-parse.y"
1.1 root 5727: { emit_line_note (input_filename, lineno);
5728: if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ;
5729: break;}
1.1.1.2 ! root 5730: case 528:
! 5731: #line 2781 "cp-parse.y"
1.1 root 5732: { push_momentary ();
5733: stmt_decl_msg = "for"; ;
5734: break;}
1.1.1.2 ! root 5735: case 529:
! 5736: #line 2784 "cp-parse.y"
1.1 root 5737: { emit_line_note (input_filename, lineno);
5738: expand_loop_continue_here ();
5739: if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
5740: pop_momentary ();
5741: expand_end_loop ();
5742: stmt_decl_msg = 0;
5743: finish_stmt (); ;
5744: break;}
1.1.1.2 ! root 5745: case 530:
! 5746: #line 2792 "cp-parse.y"
1.1 root 5747: { emit_nop ();
5748: emit_line_note (input_filename, lineno);
5749: expand_start_loop_continue_elsewhere (1); ;
5750: break;}
1.1.1.2 ! root 5751: case 531:
! 5752: #line 2796 "cp-parse.y"
1.1 root 5753: { emit_line_note (input_filename, lineno);
5754: if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ;
5755: break;}
1.1.1.2 ! root 5756: case 532:
! 5757: #line 2801 "cp-parse.y"
1.1 root 5758: { push_momentary ();
5759: stmt_decl_msg = "for";
5760: yyvsp[0].itype = lineno; ;
5761: break;}
1.1.1.2 ! root 5762: case 533:
! 5763: #line 2805 "cp-parse.y"
1.1 root 5764: { emit_line_note (input_filename, yyvsp[-2].itype);
5765: expand_loop_continue_here ();
5766: if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
5767: pop_momentary ();
5768: expand_end_loop ();
5769: pop_implicit_try_blocks (NULL_TREE);
5770: if (yyvsp[-8].itype)
5771: {
5772: register keep = yyvsp[-8].itype > 0;
5773: if (keep) expand_end_bindings (0, keep, 1);
5774: poplevel (keep, 1, 0);
5775: pop_momentary ();
5776: }
5777: stmt_decl_msg = 0;
5778: finish_stmt ();
5779: ;
5780: break;}
1.1.1.2 ! root 5781: case 534:
! 5782: #line 2822 "cp-parse.y"
1.1 root 5783: { emit_line_note (input_filename, lineno);
5784: c_expand_start_case (yyvsp[-1].ttype);
5785: /* Don't let the tree nodes for $3 be discarded by
5786: clear_momentary during the parsing of the next stmt. */
5787: push_momentary ();
5788: stmt_decl_msg = "switch"; ;
5789: break;}
1.1.1.2 ! root 5790: case 535:
! 5791: #line 2829 "cp-parse.y"
1.1 root 5792: { expand_end_case (yyvsp[-3].ttype);
5793: pop_momentary ();
5794: stmt_decl_msg = 0;
5795: finish_stmt (); ;
5796: break;}
1.1.1.2 ! root 5797: case 536:
! 5798: #line 2834 "cp-parse.y"
1.1 root 5799: { register tree value = yyvsp[-1].ttype;
5800: register tree label
5801: = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
5802:
5803: /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
5804: Strip such NOP_EXPRs. */
5805: if (TREE_CODE (value) == NOP_EXPR
5806: && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
5807: value = TREE_OPERAND (value, 0);
5808:
5809: if (TREE_READONLY_DECL_P (value))
5810: {
5811: value = decl_constant_value (value);
5812: /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
5813: Strip such NOP_EXPRs. */
5814: if (TREE_CODE (value) == NOP_EXPR
5815: && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
5816: value = TREE_OPERAND (value, 0);
5817: }
5818: value = fold (value);
5819:
5820: if (TREE_CODE (value) != INTEGER_CST
5821: && value != error_mark_node)
5822: {
5823: error ("case label does not reduce to an integer constant");
5824: value = error_mark_node;
5825: }
5826: else
5827: /* Promote char or short to int. */
5828: value = default_conversion (value);
5829: if (value != error_mark_node)
5830: {
5831: tree duplicate;
5832: int success = pushcase (value, label, &duplicate);
5833: if (success == 1)
5834: error ("case label not within a switch statement");
5835: else if (success == 2)
5836: {
5837: error ("duplicate case value");
5838: error_with_decl (duplicate, "this is the first entry for that value");
5839: }
5840: else if (success == 3)
5841: warning ("case value out of range");
5842: else if (success == 5)
5843: error ("case label within scope of cleanup or variable array");
5844: }
5845: define_case_label (label);
5846: ;
5847: break;}
1.1.1.2 ! root 5848: case 538:
! 5849: #line 2884 "cp-parse.y"
1.1 root 5850: { register tree value1 = yyvsp[-3].ttype;
5851: register tree value2 = yyvsp[-1].ttype;
5852: register tree label
5853: = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
5854:
5855: if (pedantic)
5856: {
5857: error ("ANSI C does not allow range expressions in switch statement");
5858: value1 = error_mark_node;
5859: value2 = error_mark_node;
5860: break;
5861: }
5862: /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
5863: Strip such NOP_EXPRs. */
5864: if (TREE_CODE (value1) == NOP_EXPR
5865: && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
5866: value1 = TREE_OPERAND (value1, 0);
5867:
5868: if (TREE_READONLY_DECL_P (value1))
5869: {
5870: value1 = decl_constant_value (value1);
5871: /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
5872: Strip such NOP_EXPRs. */
5873: if (TREE_CODE (value1) == NOP_EXPR
5874: && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
5875: value1 = TREE_OPERAND (value1, 0);
5876: }
5877: value1 = fold (value1);
5878:
5879: /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
5880: Strip such NOP_EXPRs. */
5881: if (TREE_CODE (value2) == NOP_EXPR
5882: && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
5883: value2 = TREE_OPERAND (value2, 0);
5884:
5885: if (TREE_READONLY_DECL_P (value2))
5886: {
5887: value2 = decl_constant_value (value2);
5888: /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
5889: Strip such NOP_EXPRs. */
5890: if (TREE_CODE (value2) == NOP_EXPR
5891: && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
5892: value2 = TREE_OPERAND (value2, 0);
5893: }
5894: value2 = fold (value2);
5895:
5896:
5897: if (TREE_CODE (value1) != INTEGER_CST
5898: && value1 != error_mark_node)
5899: {
5900: error ("case label does not reduce to an integer constant");
5901: value1 = error_mark_node;
5902: }
5903: if (TREE_CODE (value2) != INTEGER_CST
5904: && value2 != error_mark_node)
5905: {
5906: error ("case label does not reduce to an integer constant");
5907: value2 = error_mark_node;
5908: }
5909: if (value1 != error_mark_node
5910: && value2 != error_mark_node)
5911: {
5912: tree duplicate;
1.1.1.2 ! root 5913: int success = pushcase_range (value1, value2, label,
! 5914: &duplicate);
1.1 root 5915: if (success == 1)
5916: error ("case label not within a switch statement");
5917: else if (success == 2)
5918: {
5919: error ("duplicate (or overlapping) case value");
5920: error_with_decl (duplicate, "this is the first entry overlapping that value");
5921: }
5922: else if (success == 3)
5923: warning ("case value out of range");
5924: else if (success == 4)
5925: warning ("empty range specified");
5926: else if (success == 5)
5927: error ("case label within scope of cleanup or variable array");
5928: }
5929: define_case_label (label);
5930: ;
5931: break;}
1.1.1.2 ! root 5932: case 540:
! 5933: #line 2967 "cp-parse.y"
1.1 root 5934: {
5935: tree duplicate;
5936: register tree label
5937: = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
5938: int success = pushcase (NULL_TREE, label, &duplicate);
5939: if (success == 1)
5940: error ("default label not within a switch statement");
5941: else if (success == 2)
5942: {
5943: error ("multiple default labels in one switch");
5944: error_with_decl (duplicate, "this is the first default label");
5945: }
5946: define_case_label (NULL_TREE);
5947: ;
5948: break;}
1.1.1.2 ! root 5949: case 542:
! 5950: #line 2983 "cp-parse.y"
1.1 root 5951: { emit_line_note (input_filename, lineno);
5952: if ( ! expand_exit_something ())
5953: error ("break statement not within loop or switch"); ;
5954: break;}
1.1.1.2 ! root 5955: case 543:
! 5956: #line 2987 "cp-parse.y"
1.1 root 5957: { emit_line_note (input_filename, lineno);
5958: if (! expand_continue_loop (0))
5959: error ("continue statement not within a loop"); ;
5960: break;}
1.1.1.2 ! root 5961: case 544:
! 5962: #line 2991 "cp-parse.y"
1.1 root 5963: { emit_line_note (input_filename, lineno);
5964: c_expand_return (NULL_TREE); ;
5965: break;}
1.1.1.2 ! root 5966: case 545:
! 5967: #line 2994 "cp-parse.y"
1.1 root 5968: { emit_line_note (input_filename, lineno);
5969: c_expand_return (yyvsp[-1].ttype);
5970: finish_stmt ();
5971: ;
5972: break;}
1.1.1.2 ! root 5973: case 546:
! 5974: #line 2999 "cp-parse.y"
1.1 root 5975: { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
5976: emit_line_note (input_filename, lineno);
5977: expand_asm (yyvsp[-2].ttype);
5978: finish_stmt ();
5979: ;
5980: break;}
1.1.1.2 ! root 5981: case 547:
! 5982: #line 3006 "cp-parse.y"
1.1 root 5983: { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
5984: emit_line_note (input_filename, lineno);
5985: c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
5986: yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
5987: input_filename, lineno);
5988: finish_stmt ();
5989: ;
5990: break;}
1.1.1.2 ! root 5991: case 548:
! 5992: #line 3015 "cp-parse.y"
1.1 root 5993: { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
5994: emit_line_note (input_filename, lineno);
5995: c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
5996: yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
5997: input_filename, lineno);
5998: finish_stmt ();
5999: ;
6000: break;}
1.1.1.2 ! root 6001: case 549:
! 6002: #line 3025 "cp-parse.y"
1.1 root 6003: { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
6004: emit_line_note (input_filename, lineno);
6005: c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
6006: yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
6007: input_filename, lineno);
6008: finish_stmt ();
6009: ;
6010: break;}
1.1.1.2 ! root 6011: case 550:
! 6012: #line 3033 "cp-parse.y"
1.1 root 6013: { tree decl;
6014: emit_line_note (input_filename, lineno);
6015: decl = lookup_label (yyvsp[-1].ttype);
6016: TREE_USED (decl) = 1;
6017: expand_goto (decl); ;
6018: break;}
1.1.1.2 ! root 6019: case 551:
! 6020: #line 3039 "cp-parse.y"
1.1 root 6021: { finish_stmt (); ;
6022: break;}
1.1.1.2 ! root 6023: case 552:
! 6024: #line 3041 "cp-parse.y"
1.1 root 6025: { error ("label must be followed by statement");
6026: yyungetc ('}', 0);
6027: finish_stmt (); ;
6028: break;}
1.1.1.2 ! root 6029: case 553:
! 6030: #line 3045 "cp-parse.y"
1.1 root 6031: { finish_stmt (); ;
6032: break;}
1.1.1.2 ! root 6033: case 554:
! 6034: #line 3048 "cp-parse.y"
1.1 root 6035: { cplus_expand_throw (NULL_TREE); ;
6036: break;}
1.1.1.2 ! root 6037: case 555:
! 6038: #line 3049 "cp-parse.y"
1.1 root 6039: { cplus_expand_throw (yyvsp[-1].ttype); ;
6040: break;}
1.1.1.2 ! root 6041: case 556:
! 6042: #line 3051 "cp-parse.y"
1.1 root 6043: { cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0);
6044: finish_stmt (); ;
6045: break;}
1.1.1.2 ! root 6046: case 557:
! 6047: #line 3054 "cp-parse.y"
1.1 root 6048: { cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0);
6049: finish_stmt (); ;
6050: break;}
1.1.1.2 ! root 6051: case 558:
! 6052: #line 3057 "cp-parse.y"
1.1 root 6053: { cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0);
6054: finish_stmt (); ;
6055: break;}
1.1.1.2 ! root 6056: case 559:
! 6057: #line 3060 "cp-parse.y"
1.1 root 6058: { cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0);
6059: finish_stmt (); ;
6060: break;}
1.1.1.2 ! root 6061: case 560:
! 6062: #line 3063 "cp-parse.y"
1.1 root 6063: { cplus_expand_reraise (yyvsp[-1].ttype);
6064: finish_stmt (); ;
6065: break;}
1.1.1.2 ! root 6066: case 561:
! 6067: #line 3066 "cp-parse.y"
1.1 root 6068: {
6069: tree decl = cplus_expand_end_try (yyvsp[-3].itype);
6070: yyvsp[-2].ttype = current_exception_type;
6071: yyvsp[0].ttype = current_exception_decl;
6072: yyval.ttype = current_exception_object;
6073: cplus_expand_start_except (yyvsp[-1].ttype, decl);
6074: pushlevel (0);
6075: clear_last_expr ();
6076: push_momentary ();
6077: expand_start_bindings (0);
6078: stmt_decl_msg = 0;
6079: ;
6080: break;}
1.1.1.2 ! root 6081: case 562:
! 6082: #line 3079 "cp-parse.y"
1.1 root 6083: {
6084: tree decls = getdecls ();
6085: /* If there is a default exception to handle,
6086: handle it here. */
6087: if (yyvsp[-1].ttype)
6088: {
6089: tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0);
6090: tree block;
6091:
6092: pushlevel (1);
6093: expand_start_bindings (0);
6094: expand_expr (yyvsp[-1].ttype, 0, 0, 0);
6095: expand_end_bindings (0, 1, 0);
6096: block = poplevel (1, 0, 0);
6097:
6098: /* This is a catch block. */
6099: TREE_LANG_FLAG_2 (block) = 1;
6100: BLOCK_VARS (block) = decl;
6101: }
6102:
6103: expand_end_bindings (decls, decls != 0, 1);
6104: poplevel (decls != 0, 1, 0);
6105: pop_momentary ();
6106: current_exception_type = yyvsp[-5].ttype;
6107: current_exception_decl = yyvsp[-3].ttype;
6108: current_exception_object = yyvsp[-2].ttype;
6109: cplus_expand_end_except (yyvsp[-1].ttype);
6110: ;
6111: break;}
1.1.1.2 ! root 6112: case 563:
! 6113: #line 3108 "cp-parse.y"
1.1 root 6114: {
6115: cplus_expand_end_try (yyvsp[-1].itype);
6116: /* These are the important actions of
6117: `cplus_expand_end_except' which we must emulate. */
6118: if (expand_escape_except ())
6119: expand_end_except ();
6120: expand_end_bindings (0, 0, 1);
6121: poplevel (0, 0, 0);
6122: ;
6123: break;}
1.1.1.2 ! root 6124: case 564:
! 6125: #line 3118 "cp-parse.y"
1.1 root 6126: {
6127: tree decl = cplus_expand_end_try (yyvsp[-2].itype);
6128: yyvsp[-1].ttype = current_exception_type;
6129: yyvsp[0].ttype = current_exception_decl;
6130: yyval.ttype = current_exception_object;
6131: cplus_expand_start_except (NULL, decl);
6132: pushlevel (0);
6133: clear_last_expr ();
6134: push_momentary ();
6135: expand_start_bindings (0);
6136: stmt_decl_msg = 0;
6137: ;
6138: break;}
1.1.1.2 ! root 6139: case 565:
! 6140: #line 3131 "cp-parse.y"
1.1 root 6141: {
6142: tree decls = getdecls ();
6143: /* If there is a default exception to handle,
6144: handle it here. */
6145: if (yyvsp[0].ttype)
6146: {
6147: tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0);
6148: tree block;
6149:
6150: pushlevel (1);
6151: expand_start_bindings (0);
6152: expand_expr (yyvsp[0].ttype, 0, 0, 0);
6153: expand_end_bindings (0, 1, 0);
6154: block = poplevel (1, 0, 0);
6155:
6156: /* This is a catch block. */
6157: TREE_LANG_FLAG_2 (block) = 1;
6158: BLOCK_VARS (block) = decl;
6159: }
6160:
6161: expand_end_bindings (decls, decls != 0, 1);
6162: poplevel (decls != 0, 1, 0);
6163: pop_momentary ();
6164: current_exception_type = yyvsp[-3].ttype;
6165: current_exception_decl = yyvsp[-2].ttype;
6166: current_exception_object = yyvsp[-1].ttype;
6167: cplus_expand_end_except (yyvsp[0].ttype);
6168: ;
6169: break;}
1.1.1.2 ! root 6170: case 566:
! 6171: #line 3160 "cp-parse.y"
1.1 root 6172: { tree name = get_identifier ("(compiler error)");
6173: tree orig_ex_type = current_exception_type;
6174: tree orig_ex_decl = current_exception_decl;
6175: tree orig_ex_obj = current_exception_object;
6176: tree decl = cplus_expand_end_try (yyvsp[-2].itype), decls;
6177:
6178: /* Start hidden EXCEPT. */
6179: cplus_expand_start_except (name, decl);
6180: pushlevel (0);
6181: clear_last_expr ();
6182: push_momentary ();
6183: expand_start_bindings (0);
6184: stmt_decl_msg = 0;
6185:
6186: /* This sets up the reraise. */
6187: cplus_expand_reraise (yyvsp[0].ttype);
6188:
6189: decls = getdecls ();
6190: expand_end_bindings (decls, decls != 0, 1);
6191: poplevel (decls != 0, 1, 0);
6192: pop_momentary ();
6193: current_exception_type = orig_ex_type;
6194: current_exception_decl = orig_ex_decl;
6195: current_exception_object = orig_ex_obj;
6196: /* This will reraise for us. */
6197: cplus_expand_end_except (error_mark_node);
6198: if (yychar == YYEMPTY)
6199: yychar = YYLEX;
6200: if (yychar != ';')
6201: error ("missing ';' after reraise statement");
6202: ;
6203: break;}
1.1.1.2 ! root 6204: case 567:
! 6205: #line 3192 "cp-parse.y"
1.1 root 6206: { yyerror ("`except' missing after `try' statement");
6207: /* Terminate the binding contour started by special
6208: code in `.pushlevel'. Automagically pops off
6209: the conditional we started for `try' stmt. */
6210: cplus_expand_end_try (yyvsp[0].itype);
6211: expand_end_bindings (0, 0, 1);
6212: poplevel (0, 0, 0);
6213: pop_momentary ();
6214: YYERROR; ;
6215: break;}
1.1.1.2 ! root 6216: case 568:
! 6217: #line 3207 "cp-parse.y"
1.1 root 6218: {
6219: yyval.itype = 1;
6220: pop_implicit_try_blocks (NULL_TREE);
6221: ;
6222: break;}
1.1.1.2 ! root 6223: case 569:
! 6224: #line 3212 "cp-parse.y"
1.1 root 6225: {
6226: yyval.itype = 1;
6227: pop_implicit_try_blocks (NULL_TREE);
6228: ;
6229: break;}
1.1.1.2 ! root 6230: case 570:
! 6231: #line 3217 "cp-parse.y"
1.1 root 6232: {
6233: yyval.itype = 0;
6234: pop_implicit_try_blocks (NULL_TREE);
6235: ;
6236: break;}
1.1.1.2 ! root 6237: case 571:
! 6238: #line 3225 "cp-parse.y"
1.1 root 6239: { tree label;
6240: do_label:
6241: label = define_label (input_filename, lineno, yyvsp[-1].ttype);
6242: if (label)
6243: expand_label (label);
6244: ;
6245: break;}
1.1.1.2 ! root 6246: case 572:
! 6247: #line 3232 "cp-parse.y"
1.1 root 6248: { goto do_label; ;
6249: break;}
1.1.1.2 ! root 6250: case 573:
! 6251: #line 3234 "cp-parse.y"
1.1 root 6252: { tree label = define_label (input_filename, lineno, yyvsp[0].ttype);
6253: if (label)
6254: expand_label (label);
6255: ;
6256: break;}
1.1.1.2 ! root 6257: case 574:
! 6258: #line 3240 "cp-parse.y"
1.1 root 6259: { cplus_expand_start_try (0); ;
6260: break;}
1.1.1.2 ! root 6261: case 576:
! 6262: #line 3246 "cp-parse.y"
1.1 root 6263: {
6264: yyval.itype = 1;
6265: pop_implicit_try_blocks (NULL_TREE);
6266: ;
6267: break;}
1.1.1.2 ! root 6268: case 577:
! 6269: #line 3251 "cp-parse.y"
1.1 root 6270: {
6271: yyval.itype = 1;
6272: pop_implicit_try_blocks (NULL_TREE);
6273: ;
6274: break;}
1.1.1.2 ! root 6275: case 578:
! 6276: #line 3256 "cp-parse.y"
1.1 root 6277: {
6278: yyval.itype = 0;
6279: pop_implicit_try_blocks (NULL_TREE);
6280: ;
6281: break;}
1.1.1.2 ! root 6282: case 580:
! 6283: #line 3263 "cp-parse.y"
1.1 root 6284: { cplus_expand_start_try (0); ;
6285: break;}
1.1.1.2 ! root 6286: case 582:
! 6287: #line 3267 "cp-parse.y"
1.1 root 6288: { yyval.ttype = NULL_TREE; ;
6289: break;}
1.1.1.2 ! root 6290: case 583:
! 6291: #line 3269 "cp-parse.y"
1.1 root 6292: {
6293: tree type = lookup_exception_type (current_class_type, current_class_name, yyvsp[0].ttype);
6294: if (type == NULL_TREE)
6295: {
6296: error ("`%s' is not an exception type",
6297: IDENTIFIER_POINTER (TREE_VALUE (yyvsp[0].ttype)));
6298: current_exception_type = NULL_TREE;
6299: TREE_TYPE (current_exception_object) = error_mark_node;
6300: }
6301: else
6302: {
6303: current_exception_type = type;
6304: /* In-place union. */
6305: TREE_TYPE (current_exception_object) = type;
6306: }
6307: yyvsp[0].ttype = cplus_expand_start_catch (yyvsp[0].ttype);
6308: pushlevel (1);
6309: expand_start_bindings (0);
6310: ;
6311: break;}
1.1.1.2 ! root 6312: case 584:
! 6313: #line 3289 "cp-parse.y"
1.1 root 6314: {
6315: expand_end_bindings (0, 1, 0);
6316: yyvsp[0].ttype = poplevel (1, 0, 0);
6317:
6318: cplus_expand_end_catch (0);
6319:
6320: /* Mark this as a catch block. */
6321: TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
6322: if (yyvsp[-2].ttype != error_mark_node)
6323: {
6324: tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-2].ttype), 0);
6325: DECL_RTL (decl) = DECL_RTL (yyvsp[-2].ttype);
6326: TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype);
6327: BLOCK_VARS (yyvsp[0].ttype) = decl;
6328: }
6329: ;
6330: break;}
1.1.1.2 ! root 6331: case 585:
! 6332: #line 3306 "cp-parse.y"
1.1 root 6333: {
6334: if (yyvsp[-1].ttype)
6335: error ("duplicate default in exception handler");
6336: current_exception_type = NULL_TREE;
6337: /* Takes it right out of scope. */
6338: TREE_TYPE (current_exception_object) = error_mark_node;
6339:
6340: if (! expand_catch_default ())
6341: compiler_error ("default catch botch");
6342:
6343: /* The default exception is handled as the
6344: last in the chain of exceptions handled. */
6345: do_pending_stack_adjust ();
6346: start_sequence ();
6347: yyvsp[-1].ttype = make_node (RTL_EXPR);
6348: TREE_TYPE (yyvsp[-1].ttype) = void_type_node;
6349: ;
6350: break;}
1.1.1.2 ! root 6351: case 586:
! 6352: #line 3324 "cp-parse.y"
1.1 root 6353: {
6354: do_pending_stack_adjust ();
6355: if (! expand_catch (NULL_TREE))
6356: compiler_error ("except nesting botch");
6357: if (! expand_end_catch ())
6358: compiler_error ("except nesting botch");
6359: RTL_EXPR_SEQUENCE (yyvsp[-3].ttype) = (struct rtx_def *)get_insns ();
6360: if (yyvsp[0].ttype)
6361: {
6362: /* Mark this block as the default catch block. */
6363: TREE_LANG_FLAG_1 (yyvsp[0].ttype) = 1;
6364: TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
6365: }
6366: end_sequence ();
6367: ;
6368: break;}
1.1.1.2 ! root 6369: case 587:
! 6370: #line 3343 "cp-parse.y"
1.1 root 6371: { yyval.ttype = NULL_TREE; ;
6372: break;}
1.1.1.2 ! root 6373: case 589:
! 6374: #line 3348 "cp-parse.y"
1.1 root 6375: { yyval.ttype = NULL_TREE; ;
6376: break;}
1.1.1.2 ! root 6377: case 590:
! 6378: #line 3350 "cp-parse.y"
1.1 root 6379: {
6380: extern tree ansi_expand_start_catch ();
6381: extern tree cplus_exception_name ();
6382: tree type = groktypename (yyvsp[-2].ttype);
6383: current_exception_type = type;
6384: /* In-place union. */
6385: if (yyvsp[-1].ttype)
6386: {
6387: tree tmp;
6388: tmp = pushdecl (build_decl (VAR_DECL, yyvsp[-1].ttype, type));
6389: current_exception_object =
6390: build1 (INDIRECT_REF, type, tmp);
6391: }
6392: yyvsp[-2].ttype = ansi_expand_start_catch(type);
6393: pushlevel (1);
6394: expand_start_bindings (0);
6395: ;
6396: break;}
1.1.1.2 ! root 6397: case 591:
! 6398: #line 3368 "cp-parse.y"
1.1 root 6399: {
6400: expand_end_bindings (0, 1, 0);
6401: yyvsp[0].ttype = poplevel (1, 0, 0);
6402:
6403: cplus_expand_end_catch (0);
6404:
6405: /* Mark this as a catch block. */
6406: TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
6407: if (yyvsp[-4].ttype != error_mark_node)
6408: {
6409: tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-4].ttype), 0);
6410: DECL_RTL (decl) = DECL_RTL (yyvsp[-4].ttype);
6411: TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype);
6412: BLOCK_VARS (yyvsp[0].ttype) = decl;
6413: }
6414: ;
6415: break;}
1.1.1.2 ! root 6416: case 592:
! 6417: #line 3388 "cp-parse.y"
1.1 root 6418: { yyval.ttype = NULL_TREE; ;
6419: break;}
1.1.1.2 ! root 6420: case 593:
! 6421: #line 3390 "cp-parse.y"
1.1 root 6422: { yyval.ttype = yyvsp[-1].ttype; ;
6423: break;}
1.1.1.2 ! root 6424: case 594:
! 6425: #line 3392 "cp-parse.y"
1.1 root 6426: { yyval.ttype = NULL_TREE; ;
6427: break;}
1.1.1.2 ! root 6428: case 595:
! 6429: #line 3397 "cp-parse.y"
1.1 root 6430: { yyval.itype = 0; ;
6431: break;}
1.1.1.2 ! root 6432: case 596:
! 6433: #line 3399 "cp-parse.y"
1.1 root 6434: { yyval.itype = 0; ;
6435: break;}
1.1.1.2 ! root 6436: case 597:
! 6437: #line 3401 "cp-parse.y"
1.1 root 6438: { yyval.itype = 1; ;
6439: break;}
1.1.1.2 ! root 6440: case 598:
! 6441: #line 3403 "cp-parse.y"
1.1 root 6442: { yyval.itype = -1; ;
6443: break;}
1.1.1.2 ! root 6444: case 599:
! 6445: #line 3410 "cp-parse.y"
1.1 root 6446: { if (pedantic)
6447: warning ("ANSI C forbids use of `asm' keyword");
6448: emit_line_note (input_filename, lineno); ;
6449: break;}
1.1.1.2 ! root 6450: case 600:
! 6451: #line 3414 "cp-parse.y"
1.1 root 6452: { if (pedantic)
6453: warning ("ANSI C forbids use of `asm' keyword");
6454: emit_line_note (input_filename, lineno); ;
6455: break;}
1.1.1.2 ! root 6456: case 601:
! 6457: #line 3421 "cp-parse.y"
1.1 root 6458: { yyval.ttype = NULL_TREE; ;
6459: break;}
1.1.1.2 ! root 6460: case 603:
! 6461: #line 3424 "cp-parse.y"
1.1 root 6462: { yyval.ttype = NULL_TREE; ;
6463: break;}
1.1.1.2 ! root 6464: case 604:
! 6465: #line 3430 "cp-parse.y"
1.1 root 6466: { yyval.ttype = NULL_TREE; ;
6467: break;}
1.1.1.2 ! root 6468: case 607:
! 6469: #line 3437 "cp-parse.y"
1.1 root 6470: { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6471: break;}
1.1.1.2 ! root 6472: case 608:
! 6473: #line 3442 "cp-parse.y"
1.1 root 6474: { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
6475: break;}
1.1.1.2 ! root 6476: case 609:
! 6477: #line 3447 "cp-parse.y"
1.1 root 6478: { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
6479: break;}
1.1.1.2 ! root 6480: case 610:
! 6481: #line 3449 "cp-parse.y"
1.1 root 6482: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6483: break;}
1.1.1.2 ! root 6484: case 611:
! 6485: #line 3458 "cp-parse.y"
1.1 root 6486: {
6487: if (strict_prototype)
6488: yyval.ttype = void_list_node;
6489: else
6490: yyval.ttype = NULL_TREE;
6491: ;
6492: break;}
1.1.1.2 ! root 6493: case 612:
! 6494: #line 3465 "cp-parse.y"
1.1 root 6495: {
6496: yyval.ttype = chainon (yyval.ttype, void_list_node);
6497: TREE_PARMLIST (yyval.ttype) = 1;
6498: ;
6499: break;}
1.1.1.2 ! root 6500: case 613:
! 6501: #line 3470 "cp-parse.y"
1.1 root 6502: {
6503: TREE_PARMLIST (yyval.ttype) = 1;
6504: ;
6505: break;}
1.1.1.2 ! root 6506: case 614:
! 6507: #line 3475 "cp-parse.y"
1.1 root 6508: {
6509: TREE_PARMLIST (yyval.ttype) = 1;
6510: ;
6511: break;}
1.1.1.2 ! root 6512: case 615:
! 6513: #line 3479 "cp-parse.y"
1.1 root 6514: {
6515: yyval.ttype = NULL_TREE;
6516: ;
6517: break;}
1.1.1.2 ! root 6518: case 616:
! 6519: #line 3483 "cp-parse.y"
1.1 root 6520: {
6521: TREE_PARMLIST (yyval.ttype) = 1;
6522: ;
6523: break;}
1.1.1.2 ! root 6524: case 617:
! 6525: #line 3487 "cp-parse.y"
1.1 root 6526: {
6527: TREE_PARMLIST (yyval.ttype) = 1;
6528: ;
6529: break;}
1.1.1.2 ! root 6530: case 618:
! 6531: #line 3491 "cp-parse.y"
1.1 root 6532: {
6533: /* This helps us recover from really nasty
6534: parse errors, for example, a missing right
6535: parenthesis. */
6536: yyerror ("possibly missing ')'");
6537: yyval.ttype = chainon (yyval.ttype, void_list_node);
6538: TREE_PARMLIST (yyval.ttype) = 1;
6539: yyungetc (':', 0);
6540: yychar = ')';
6541: ;
6542: break;}
1.1.1.2 ! root 6543: case 619:
! 6544: #line 3506 "cp-parse.y"
1.1 root 6545: { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
6546: break;}
1.1.1.2 ! root 6547: case 620:
! 6548: #line 3508 "cp-parse.y"
1.1 root 6549: { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyval.ttype); ;
6550: break;}
1.1.1.2 ! root 6551: case 621:
! 6552: #line 3510 "cp-parse.y"
1.1 root 6553: { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
6554: break;}
1.1.1.2 ! root 6555: case 622:
! 6556: #line 3512 "cp-parse.y"
1.1 root 6557: { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
6558: break;}
1.1.1.2 ! root 6559: case 623:
! 6560: #line 3514 "cp-parse.y"
1.1 root 6561: { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
6562: break;}
1.1.1.2 ! root 6563: case 624:
! 6564: #line 3516 "cp-parse.y"
1.1 root 6565: { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
6566: break;}
1.1.1.2 ! root 6567: case 625:
! 6568: #line 3537 "cp-parse.y"
1.1 root 6569: { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype);
6570: see_typename (); ;
6571: break;}
1.1.1.2 ! root 6572: case 626:
! 6573: #line 3540 "cp-parse.y"
1.1 root 6574: { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype);
6575: see_typename (); ;
6576: break;}
1.1.1.2 ! root 6577: case 629:
! 6578: #line 3547 "cp-parse.y"
1.1 root 6579: { yyval.ttype = yyvsp[0].ttype; ;
6580: break;}
1.1.1.2 ! root 6581: case 630:
! 6582: #line 3551 "cp-parse.y"
1.1 root 6583: { see_typename (); ;
6584: break;}
1.1.1.2 ! root 6585: case 631:
! 6586: #line 3555 "cp-parse.y"
1.1 root 6587: { dont_see_typename (); ;
6588: break;}
1.1.1.2 ! root 6589: case 632:
! 6590: #line 3559 "cp-parse.y"
1.1 root 6591: {
6592: if (yyvsp[-1].ttype == error_mark_node)
6593: yyval.itype = 0;
6594: else
6595: {
6596: yyval.itype = 1;
6597: pushclass (yyvsp[-1].ttype, 1);
6598: }
6599: ;
6600: break;}
1.1.1.2 ! root 6601: case 633:
! 6602: #line 3572 "cp-parse.y"
1.1 root 6603: {
6604: warning ("type specifier omitted for parameter");
6605: yyval.ttype = build_tree_list (TREE_PURPOSE (TREE_VALUE (yyvsp[-2].ttype)), yyval.ttype);
6606: ;
6607: break;}
1.1.1.2 ! root 6608: case 634:
! 6609: #line 3580 "cp-parse.y"
1.1 root 6610: { yyval.ttype = NULL_TREE; ;
6611: break;}
1.1.1.2 ! root 6612: case 635:
! 6613: #line 3582 "cp-parse.y"
1.1 root 6614: { yyval.ttype = yyvsp[0].ttype; ;
6615: break;}
1.1.1.2 ! root 6616: case 636:
! 6617: #line 3584 "cp-parse.y"
1.1 root 6618: { yyval.ttype = yyvsp[-1].ttype; ;
6619: break;}
1.1.1.2 ! root 6620: case 637:
! 6621: #line 3589 "cp-parse.y"
1.1 root 6622: { yyval.ttype = void_list_node; ;
6623: break;}
1.1.1.2 ! root 6624: case 638:
! 6625: #line 3591 "cp-parse.y"
1.1 root 6626: { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
6627: break;}
1.1.1.2 ! root 6628: case 639:
! 6629: #line 3593 "cp-parse.y"
1.1 root 6630: { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
6631: break;}
1.1.1.2 ! root 6632: case 640:
! 6633: #line 3595 "cp-parse.y"
1.1 root 6634: { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
6635: break;}
1.1.1.2 ! root 6636: case 641:
! 6637: #line 3597 "cp-parse.y"
1.1 root 6638: { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
6639: break;}
1.1.1.2 ! root 6640: case 642:
! 6641: #line 3599 "cp-parse.y"
1.1 root 6642: { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
6643: break;}
1.1.1.2 ! root 6644: case 644:
! 6645: #line 3605 "cp-parse.y"
1.1 root 6646: { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
6647: break;}
1.1.1.2 ! root 6648: case 646:
! 6649: #line 3611 "cp-parse.y"
1.1 root 6650: {
6651: TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
6652: yyval.ttype = yyvsp[0].ttype;
6653: ;
6654: break;}
1.1.1.2 ! root 6655: case 648:
! 6656: #line 3620 "cp-parse.y"
1.1 root 6657: {
6658: TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
6659: yyval.ttype = yyvsp[0].ttype;
6660: ;
6661: break;}
1.1.1.2 ! root 6662: case 649:
! 6663: #line 3628 "cp-parse.y"
1.1 root 6664: { yyval.ttype = ansi_opname[MULT_EXPR]; ;
6665: break;}
1.1.1.2 ! root 6666: case 650:
! 6667: #line 3630 "cp-parse.y"
1.1 root 6668: { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
6669: break;}
1.1.1.2 ! root 6670: case 651:
! 6671: #line 3632 "cp-parse.y"
1.1 root 6672: { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
6673: break;}
1.1.1.2 ! root 6674: case 652:
! 6675: #line 3634 "cp-parse.y"
1.1 root 6676: { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
6677: break;}
1.1.1.2 ! root 6678: case 653:
! 6679: #line 3636 "cp-parse.y"
1.1 root 6680: { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
6681: break;}
1.1.1.2 ! root 6682: case 654:
! 6683: #line 3638 "cp-parse.y"
1.1 root 6684: { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
6685: break;}
1.1.1.2 ! root 6686: case 655:
! 6687: #line 3640 "cp-parse.y"
1.1 root 6688: { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
6689: break;}
1.1.1.2 ! root 6690: case 656:
! 6691: #line 3642 "cp-parse.y"
1.1 root 6692: { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
6693: break;}
1.1.1.2 ! root 6694: case 657:
! 6695: #line 3644 "cp-parse.y"
1.1 root 6696: { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
6697: break;}
1.1.1.2 ! root 6698: case 658:
! 6699: #line 3646 "cp-parse.y"
1.1 root 6700: { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
6701: break;}
1.1.1.2 ! root 6702: case 659:
! 6703: #line 3648 "cp-parse.y"
1.1 root 6704: { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
6705: break;}
1.1.1.2 ! root 6706: case 660:
! 6707: #line 3650 "cp-parse.y"
1.1 root 6708: { yyval.ttype = ansi_opname[LT_EXPR]; ;
6709: break;}
1.1.1.2 ! root 6710: case 661:
! 6711: #line 3652 "cp-parse.y"
1.1 root 6712: { yyval.ttype = ansi_opname[GT_EXPR]; ;
6713: break;}
1.1.1.2 ! root 6714: case 662:
! 6715: #line 3654 "cp-parse.y"
1.1 root 6716: { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
6717: break;}
1.1.1.2 ! root 6718: case 663:
! 6719: #line 3656 "cp-parse.y"
1.1 root 6720: { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
6721: break;}
1.1.1.2 ! root 6722: case 664:
! 6723: #line 3658 "cp-parse.y"
1.1 root 6724: {
6725: yyval.ttype = ansi_opname [MODIFY_EXPR];
6726: if (current_class_type)
6727: {
6728: TYPE_HAS_ASSIGNMENT (current_class_type) = 1;
6729: TYPE_GETS_ASSIGNMENT (current_class_type) = 1;
6730: }
6731: ;
6732: break;}
1.1.1.2 ! root 6733: case 665:
! 6734: #line 3667 "cp-parse.y"
1.1 root 6735: { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
6736: break;}
1.1.1.2 ! root 6737: case 666:
! 6738: #line 3669 "cp-parse.y"
1.1 root 6739: { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
6740: break;}
1.1.1.2 ! root 6741: case 667:
! 6742: #line 3671 "cp-parse.y"
1.1 root 6743: { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
6744: break;}
1.1.1.2 ! root 6745: case 668:
! 6746: #line 3673 "cp-parse.y"
1.1 root 6747: { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
6748: break;}
1.1.1.2 ! root 6749: case 669:
! 6750: #line 3675 "cp-parse.y"
1.1 root 6751: { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
6752: break;}
1.1.1.2 ! root 6753: case 670:
! 6754: #line 3677 "cp-parse.y"
1.1 root 6755: { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
6756: break;}
1.1.1.2 ! root 6757: case 671:
! 6758: #line 3679 "cp-parse.y"
1.1 root 6759: { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
6760: break;}
1.1.1.2 ! root 6761: case 672:
! 6762: #line 3681 "cp-parse.y"
1.1 root 6763: { yyval.ttype = ansi_opname[COND_EXPR]; ;
6764: break;}
1.1.1.2 ! root 6765: case 673:
! 6766: #line 3683 "cp-parse.y"
1.1 root 6767: { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
6768: break;}
1.1.1.2 ! root 6769: case 674:
! 6770: #line 3685 "cp-parse.y"
1.1 root 6771: { yyval.ttype = ansi_opname[COMPONENT_REF];
6772: if (current_class_type)
6773: {
6774: tree t = current_class_type;
6775: while (t)
6776: {
6777: TYPE_OVERLOADS_ARROW (t) = 1;
6778: t = TYPE_NEXT_VARIANT (t);
6779: }
6780: }
6781: ;
6782: break;}
1.1.1.2 ! root 6783: case 675:
! 6784: #line 3697 "cp-parse.y"
1.1 root 6785: { yyval.ttype = ansi_opname[MEMBER_REF];
6786: if (current_class_type)
6787: {
6788: tree t = current_class_type;
6789: while (t)
6790: {
6791: TYPE_OVERLOADS_ARROW (t) = 1;
6792: t = TYPE_NEXT_VARIANT (t);
6793: }
6794: }
6795: ;
6796: break;}
1.1.1.2 ! root 6797: case 676:
! 6798: #line 3709 "cp-parse.y"
1.1 root 6799: {
6800: if (yychar == YYEMPTY)
6801: yychar = YYLEX;
6802: if (yychar == '(' || yychar == LEFT_RIGHT)
6803: {
6804: yyval.ttype = ansi_opname[METHOD_CALL_EXPR];
6805: if (current_class_type)
6806: {
6807: tree t = current_class_type;
6808: while (t)
6809: {
6810: TYPE_OVERLOADS_METHOD_CALL_EXPR (t) = 1;
6811: t = TYPE_NEXT_VARIANT (t);
6812: }
6813: }
6814: }
6815: else
6816: {
6817: yyval.ttype = build_parse_node (CALL_EXPR, ansi_opname[COMPONENT_REF], void_list_node, yyvsp[0].ttype);
6818: if (current_class_type)
6819: {
6820: tree t = current_class_type;
6821: while (t)
6822: {
6823: TYPE_OVERLOADS_ARROW (t) = 1;
6824: t = TYPE_NEXT_VARIANT (t);
6825: }
6826: }
6827: }
6828: ;
6829: break;}
1.1.1.2 ! root 6830: case 677:
! 6831: #line 3740 "cp-parse.y"
1.1 root 6832: { yyval.ttype = ansi_opname[CALL_EXPR];
6833: if (current_class_type)
6834: {
6835: tree t = current_class_type;
6836: while (t)
6837: {
6838: TYPE_OVERLOADS_CALL_EXPR (t) = 1;
6839: t = TYPE_NEXT_VARIANT (t);
6840: }
6841: }
6842: ;
6843: break;}
1.1.1.2 ! root 6844: case 678:
! 6845: #line 3752 "cp-parse.y"
1.1 root 6846: { yyval.ttype = ansi_opname[ARRAY_REF];
6847: if (current_class_type)
6848: {
6849: tree t = current_class_type;
6850: while (t)
6851: {
6852: TYPE_OVERLOADS_ARRAY_REF (t) = 1;
6853: t = TYPE_NEXT_VARIANT (t);
6854: }
6855: }
6856: ;
6857: break;}
1.1.1.2 ! root 6858: case 679:
! 6859: #line 3764 "cp-parse.y"
1.1 root 6860: {
6861: yyval.ttype = ansi_opname[NEW_EXPR];
6862: if (current_class_type)
6863: {
6864: tree t = current_class_type;
6865: while (t)
6866: {
6867: TREE_GETS_NEW (t) = 1;
6868: t = TYPE_NEXT_VARIANT (t);
6869: }
6870: }
6871: ;
6872: break;}
1.1.1.2 ! root 6873: case 680:
! 6874: #line 3777 "cp-parse.y"
1.1 root 6875: {
6876: yyval.ttype = ansi_opname[DELETE_EXPR];
6877: if (current_class_type)
6878: {
6879: tree t = current_class_type;
6880: while (t)
6881: {
6882: TREE_GETS_DELETE (t) = 1;
6883: t = TYPE_NEXT_VARIANT (t);
6884: }
6885: }
6886: ;
6887: break;}
1.1.1.2 ! root 6888: case 681:
! 6889: #line 3793 "cp-parse.y"
1.1 root 6890: {
6891: yyval.ttype = build1 (TYPE_EXPR, yyvsp[-1].ttype, yyvsp[0].ttype);
6892: ;
6893: break;}
1.1.1.2 ! root 6894: case 682:
! 6895: #line 3797 "cp-parse.y"
1.1 root 6896: { yyval.ttype = ansi_opname[ERROR_MARK]; ;
6897: break;}
6898: }
6899: /* the action file gets copied in in place of this dollarsign */
6900: #line 440 "bison.simple"
6901:
6902: yyvsp -= yylen;
6903: yyssp -= yylen;
6904: #ifdef YYLSP_NEEDED
6905: yylsp -= yylen;
6906: #endif
6907:
6908: #if YYDEBUG != 0
6909: if (yydebug)
6910: {
6911: short *ssp1 = yyss - 1;
6912: fprintf (stderr, "state stack now");
6913: while (ssp1 != yyssp)
6914: fprintf (stderr, " %d", *++ssp1);
6915: fprintf (stderr, "\n");
6916: }
6917: #endif
6918:
6919: *++yyvsp = yyval;
6920:
6921: #ifdef YYLSP_NEEDED
6922: yylsp++;
6923: if (yylen == 0)
6924: {
6925: yylsp->first_line = yylloc.first_line;
6926: yylsp->first_column = yylloc.first_column;
6927: yylsp->last_line = (yylsp-1)->last_line;
6928: yylsp->last_column = (yylsp-1)->last_column;
6929: yylsp->text = 0;
6930: }
6931: else
6932: {
6933: yylsp->last_line = (yylsp+yylen-1)->last_line;
6934: yylsp->last_column = (yylsp+yylen-1)->last_column;
6935: }
6936: #endif
6937:
6938: /* Now "shift" the result of the reduction.
6939: Determine what state that goes to,
6940: based on the state we popped back to
6941: and the rule number reduced by. */
6942:
6943: yyn = yyr1[yyn];
6944:
6945: yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
6946: if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
6947: yystate = yytable[yystate];
6948: else
6949: yystate = yydefgoto[yyn - YYNTBASE];
6950:
6951: goto yynewstate;
6952:
6953: yyerrlab: /* here on detecting error */
6954:
6955: if (! yyerrstatus)
6956: /* If not already recovering from an error, report this error. */
6957: {
6958: ++yynerrs;
6959:
6960: #ifdef YYERROR_VERBOSE
6961: yyn = yypact[yystate];
6962:
6963: if (yyn > YYFLAG && yyn < YYLAST)
6964: {
6965: int size = 0;
6966: char *msg;
6967: int x, count;
6968:
6969: count = 0;
6970: for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
6971: if (yycheck[x + yyn] == x)
6972: size += strlen(yytname[x]) + 15, count++;
1.1.1.2 ! root 6973: msg = (char *) xmalloc(size + 15);
! 6974: strcpy(msg, "parse error");
1.1 root 6975:
1.1.1.2 ! root 6976: if (count < 5)
! 6977: {
! 6978: count = 0;
! 6979: for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
! 6980: if (yycheck[x + yyn] == x)
! 6981: {
! 6982: strcat(msg, count == 0 ? ", expecting `" : " or `");
! 6983: strcat(msg, yytname[x]);
! 6984: strcat(msg, "'");
! 6985: count++;
! 6986: }
1.1 root 6987: }
1.1.1.2 ! root 6988: yyerror(msg);
! 6989: free(msg);
1.1 root 6990: }
6991: else
6992: #endif /* YYERROR_VERBOSE */
6993: yyerror("parse error");
6994: }
6995:
6996: yyerrlab1: /* here on error raised explicitly by an action */
6997:
6998: if (yyerrstatus == 3)
6999: {
7000: /* if just tried and failed to reuse lookahead token after an error, discard it. */
7001:
7002: /* return failure if at end of input */
7003: if (yychar == YYEOF)
7004: YYABORT;
7005:
7006: #if YYDEBUG != 0
7007: if (yydebug)
7008: fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
7009: #endif
7010:
7011: yychar = YYEMPTY;
7012: }
7013:
7014: /* Else will try to reuse lookahead token
7015: after shifting the error token. */
7016:
7017: yyerrstatus = 3; /* Each real token shifted decrements this */
7018:
7019: goto yyerrhandle;
7020:
7021: yyerrdefault: /* current state does not do anything special for the error token. */
7022:
7023: #if 0
7024: /* This is wrong; only states that explicitly want error tokens
7025: should shift them. */
7026: yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
7027: if (yyn) goto yydefault;
7028: #endif
7029:
7030: yyerrpop: /* pop the current state because it cannot handle the error token */
7031:
7032: if (yyssp == yyss) YYABORT;
7033: yyvsp--;
7034: yystate = *--yyssp;
7035: #ifdef YYLSP_NEEDED
7036: yylsp--;
7037: #endif
7038:
7039: #if YYDEBUG != 0
7040: if (yydebug)
7041: {
7042: short *ssp1 = yyss - 1;
7043: fprintf (stderr, "Error: state stack now");
7044: while (ssp1 != yyssp)
7045: fprintf (stderr, " %d", *++ssp1);
7046: fprintf (stderr, "\n");
7047: }
7048: #endif
7049:
7050: yyerrhandle:
7051:
7052: yyn = yypact[yystate];
7053: if (yyn == YYFLAG)
7054: goto yyerrdefault;
7055:
7056: yyn += YYTERROR;
7057: if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
7058: goto yyerrdefault;
7059:
7060: yyn = yytable[yyn];
7061: if (yyn < 0)
7062: {
7063: if (yyn == YYFLAG)
7064: goto yyerrpop;
7065: yyn = -yyn;
7066: goto yyreduce;
7067: }
7068: else if (yyn == 0)
7069: goto yyerrpop;
7070:
7071: if (yyn == YYFINAL)
7072: YYACCEPT;
7073:
7074: #if YYDEBUG != 0
7075: if (yydebug)
7076: fprintf(stderr, "Shifting error token, ");
7077: #endif
7078:
7079: *++yyvsp = yylval;
7080: #ifdef YYLSP_NEEDED
7081: *++yylsp = yylloc;
7082: #endif
7083:
7084: yystate = yyn;
7085: goto yynewstate;
7086: }
1.1.1.2 ! root 7087: #line 3800 "cp-parse.y"
! 7088:
1.1 root 7089:
1.1.1.2 ! root 7090: tree
! 7091: get_current_declspecs ()
! 7092: {
! 7093: return current_declspecs;
! 7094: }
1.1 root 7095:
7096: #if YYDEBUG != 0
7097: db_yyerror (s, yyps, yychar)
7098: char *s;
7099: short *yyps;
7100: int yychar;
7101: {
7102: FILE *yyout;
7103: char buf[1024];
7104: int st;
7105:
7106: yyerror (s);
7107: printf ("State is %d, input token number is %d.\n", *yyps, yychar);
7108:
7109: #ifdef PARSE_OUTPUT
7110: if (*yyps < 1) fatal ("Cannot start from here");
7111: else if ((yyout = fopen (PARSE_OUTPUT, "r")) == NULL)
7112: error ("cannot open file %s", PARSE_OUTPUT);
7113: else
7114: {
7115: printf ("That is to say,\n\n");
7116: while (fgets(buf, sizeof (buf)-1, yyout))
7117: {
7118: if (buf[0] != 's') continue;
7119: st = atoi (buf+6);
7120: if (st != *yyps) continue;
7121: printf ("%s", buf);
7122: while (fgets (buf, sizeof (buf)-1, yyout))
7123: {
7124: if (buf[0] == 's') break;
7125: printf ("%s", buf);
7126: }
7127: break;
7128: }
7129: printf ("With the token %s\n", yytname[YYTRANSLATE (yychar)]);
7130: fclose (yyout);
7131: }
7132: #endif
7133: }
7134: #endif
7135:
7136: void
7137: yyerror (string)
7138: char *string;
7139: {
7140: extern int end_of_file;
7141: extern char *token_buffer;
7142: extern int input_redirected ();
7143: char buf[200];
7144:
7145: strcpy (buf, string);
7146:
7147: /* We can't print string and character constants well
7148: because the token_buffer contains the result of processing escapes. */
7149: if (end_of_file)
7150: strcat (buf, input_redirected ()
7151: ? " at end of saved text"
7152: : " at end of input");
7153: else if (token_buffer[0] == 0)
7154: strcat (buf, " at null character");
7155: else if (token_buffer[0] == '"')
7156: strcat (buf, " before string constant");
7157: else if (token_buffer[0] == '\'')
7158: strcat (buf, " before character constant");
7159: else if (token_buffer[0] < 040 || (unsigned char) token_buffer[0] >= 0177)
7160: sprintf (buf + strlen (buf), " before character 0%o",
7161: (unsigned char) token_buffer[0]);
7162: else
7163: strcat (buf, " before `%s'");
7164:
7165: error (buf, token_buffer);
7166: }
7167:
7168: static
7169: #ifdef __GNUC__
7170: __inline
7171: #endif
7172: void
7173: yyprint (file, yychar, yylval)
7174: FILE *file;
7175: int yychar;
7176: YYSTYPE yylval;
7177: {
7178: tree t;
7179: switch (yychar)
7180: {
7181: case IDENTIFIER:
7182: case TYPENAME:
7183: case TYPESPEC:
7184: case PTYPENAME:
7185: case IDENTIFIER_DEFN:
7186: case TYPENAME_DEFN:
7187: case PTYPENAME_DEFN:
7188: case TYPENAME_COLON:
7189: case TYPENAME_ELLIPSIS:
7190: case SCOPED_TYPENAME:
7191: case SCSPEC:
7192: t = yylval.ttype;
7193: print_id:
7194: assert (TREE_CODE (t) == IDENTIFIER_NODE);
7195: if (IDENTIFIER_POINTER (t))
7196: fprintf (file, " `%s'", IDENTIFIER_POINTER (t));
7197: break;
7198: case AGGR:
7199: if (yylval.ttype == class_type_node)
7200: fprintf (file, " `class'");
7201: else if (yylval.ttype == record_type_node)
7202: fprintf (file, " `struct'");
7203: else if (yylval.ttype == union_type_node)
7204: fprintf (file, " `union'");
7205: else if (yylval.ttype == enum_type_node)
7206: fprintf (file, " `enum'");
7207: else
7208: abort ();
7209: break;
7210: case PRE_PARSED_CLASS_DECL:
7211: t = yylval.ttype;
7212: assert (TREE_CODE (t) == TREE_LIST);
7213: t = TREE_VALUE (t);
7214: goto print_id;
7215: }
7216: }
7217:
7218: static int *reduce_count;
7219: int *token_count;
7220:
7221: #define REDUCE_LENGTH (sizeof (yyr2) / sizeof (yyr2[0]))
7222: #define TOKEN_LENGTH (256 + sizeof (yytname) / sizeof (yytname[0]))
7223:
7224: int *
7225: init_parse ()
7226: {
7227: #ifdef GATHER_STATISTICS
7228: reduce_count = (int *)malloc (sizeof (int) * (REDUCE_LENGTH + 1));
7229: bzero (reduce_count, sizeof (int) * (REDUCE_LENGTH + 1));
7230: reduce_count += 1;
7231: token_count = (int *)malloc (sizeof (int) * (TOKEN_LENGTH + 1));
7232: bzero (token_count, sizeof (int) * (TOKEN_LENGTH + 1));
7233: token_count += 1;
7234: #endif
7235: return token_count;
7236: }
7237:
7238: #ifdef GATHER_STATISTICS
7239: void
7240: yyhook (yyn)
7241: int yyn;
7242: {
7243: reduce_count[yyn] += 1;
7244: }
7245: #endif
7246:
7247: static int
7248: reduce_cmp (p, q)
7249: int *p, *q;
7250: {
7251: return reduce_count[*q] - reduce_count[*p];
7252: }
7253:
7254: static int
7255: token_cmp (p, q)
7256: int *p, *q;
7257: {
7258: return token_count[*q] - token_count[*p];
7259: }
7260:
7261: void
7262: print_parse_statistics ()
7263: {
7264: #if YYDEBUG != 0
7265: int i;
7266: int maxlen = REDUCE_LENGTH;
7267: unsigned *sorted;
7268:
7269: if (reduce_count[-1] == 0)
7270: return;
7271:
7272: if (TOKEN_LENGTH > REDUCE_LENGTH)
7273: maxlen = TOKEN_LENGTH;
7274: sorted = (unsigned *) alloca (sizeof (int) * maxlen);
7275:
7276: for (i = 0; i < TOKEN_LENGTH; i++)
7277: sorted[i] = i;
7278: qsort (sorted, TOKEN_LENGTH, sizeof (int), token_cmp);
7279: for (i = 0; i < TOKEN_LENGTH; i++)
7280: {
7281: int index = sorted[i];
7282: if (token_count[index] == 0)
7283: break;
7284: if (token_count[index] < token_count[-1])
7285: break;
7286: fprintf (stderr, "token %d, `%s', count = %d\n",
7287: index, yytname[YYTRANSLATE (index)], token_count[index]);
7288: }
7289: fprintf (stderr, "\n");
7290: for (i = 0; i < REDUCE_LENGTH; i++)
7291: sorted[i] = i;
7292: qsort (sorted, REDUCE_LENGTH, sizeof (int), reduce_cmp);
7293: for (i = 0; i < REDUCE_LENGTH; i++)
7294: {
7295: int index = sorted[i];
7296: if (reduce_count[index] == 0)
7297: break;
7298: if (reduce_count[index] < reduce_count[-1])
7299: break;
7300: fprintf (stderr, "rule %d, line %d, count = %d\n",
7301: index, yyrline[index], reduce_count[index]);
7302: }
7303: fprintf (stderr, "\n");
7304: #endif
7305: }
7306:
7307:
1.1.1.2 ! root 7308: /* Sets the value of the 'yydebug' variable to VALUE.
1.1 root 7309: This is a function so we don't have to have YYDEBUG defined
7310: in order to build the compiler. */
7311: void
7312: set_yydebug (value)
7313: int value;
7314: {
7315: #if YYDEBUG != 0
7316: yydebug = value;
7317: #else
7318: warning ("YYDEBUG not defined.");
7319: #endif
7320: }
7321:
7322: #ifdef SPEW_DEBUG
7323: const char *
7324: debug_yytranslate (value)
7325: int value;
7326: {
7327: #if YYDEBUG != 0
7328: return yytname[YYTRANSLATE (value)];
7329: #else
7330: return "YYDEBUG not defined.";
7331: #endif
7332: }
7333:
7334: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.