|
|
1.1 root 1:
1.1.1.6 root 2: /* A Bison parser, made from objc-parse.y with Bison version GNU Bison version 1.22
3: */
1.1 root 4:
5: #define YYBISON 1 /* Identify Bison output. */
6:
7: #define IDENTIFIER 258
8: #define TYPENAME 259
9: #define SCSPEC 260
10: #define TYPESPEC 261
11: #define TYPE_QUAL 262
12: #define CONSTANT 263
13: #define STRING 264
14: #define ELLIPSIS 265
15: #define SIZEOF 266
16: #define ENUM 267
17: #define STRUCT 268
18: #define UNION 269
19: #define IF 270
20: #define ELSE 271
21: #define WHILE 272
22: #define DO 273
23: #define FOR 274
24: #define SWITCH 275
25: #define CASE 276
26: #define DEFAULT 277
27: #define BREAK 278
28: #define CONTINUE 279
29: #define RETURN 280
30: #define GOTO 281
1.1.1.2 root 31: #define ASM_KEYWORD 282
1.1 root 32: #define TYPEOF 283
33: #define ALIGNOF 284
1.1.1.8 ! root 34: #define ATTRIBUTE 285
! 35: #define EXTENSION 286
! 36: #define LABEL 287
! 37: #define REALPART 288
! 38: #define IMAGPART 289
! 39: #define ASSIGN 290
! 40: #define OROR 291
! 41: #define ANDAND 292
! 42: #define EQCOMPARE 293
! 43: #define ARITHCOMPARE 294
! 44: #define LSHIFT 295
! 45: #define RSHIFT 296
! 46: #define UNARY 297
! 47: #define PLUSPLUS 298
! 48: #define MINUSMINUS 299
! 49: #define HYPERUNARY 300
! 50: #define POINTSAT 301
! 51: #define INTERFACE 302
! 52: #define IMPLEMENTATION 303
! 53: #define END 304
! 54: #define SELECTOR 305
! 55: #define DEFS 306
! 56: #define ENCODE 307
! 57: #define CLASSNAME 308
! 58: #define PUBLIC 309
! 59: #define PRIVATE 310
! 60: #define PROTECTED 311
! 61: #define PROTOCOL 312
! 62: #define OBJECTNAME 313
! 63: #define CLASS 314
! 64: #define ALIAS 315
! 65: #define OBJC_STRING 316
1.1 root 66:
1.1.1.8 ! root 67: #line 32 "objc-parse.y"
1.1 root 68:
69: #include <stdio.h>
70: #include <errno.h>
71: #include <setjmp.h>
72:
73: #include "config.h"
74: #include "tree.h"
75: #include "input.h"
76: #include "c-lex.h"
77: #include "c-tree.h"
78: #include "flags.h"
79:
1.1.1.4 root 80: #ifdef MULTIBYTE_CHARS
81: #include <stdlib.h>
82: #include <locale.h>
83: #endif
84:
1.1.1.5 root 85: #include "objc-act.h"
86:
87: /* Since parsers are distinct for each language, put the language string
88: definition here. */
89: char *language_string = "GNU Obj-C";
1.1 root 90:
91: #ifndef errno
92: extern int errno;
93: #endif
94:
95: void yyerror ();
96:
97: /* Like YYERROR but do call yyerror. */
98: #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
99:
100: /* Cause the `yydebug' variable to be defined. */
101: #define YYDEBUG 1
102:
1.1.1.8 ! root 103: #line 70 "objc-parse.y"
1.1 root 104: typedef union {long itype; tree ttype; enum tree_code code;
1.1.1.8 ! root 105: char *filename; int lineno; int ends_in_label; } YYSTYPE;
! 106: #line 194 "objc-parse.y"
1.1 root 107:
108: /* Number of statements (loosely speaking) seen so far. */
109: static int stmt_count;
110:
111: /* Input file and line number of the end of the body of last simple_if;
112: used by the stmt-rule immediately after simple_if returns. */
113: static char *if_stmt_file;
114: static int if_stmt_line;
115:
116: /* List of types and structure classes of the current declaration. */
117: static tree current_declspecs;
1.1.1.8 ! root 118: static tree prefix_attributes = NULL_TREE;
1.1 root 119:
1.1.1.8 ! root 120: /* Stack of saved values of current_declspecs and prefix_attributes. */
1.1 root 121: static tree declspec_stack;
122:
123: /* 1 if we explained undeclared var errors. */
124: static int undeclared_variable_notice;
125:
126: /* Objective-C specific information */
127:
128: tree objc_interface_context;
129: tree objc_implementation_context;
130: tree objc_method_context;
131: tree objc_ivar_chain;
132: tree objc_ivar_context;
133: enum tree_code objc_inherit_code;
134: int objc_receiver_context;
135: int objc_public_flag;
136:
1.1.1.4 root 137:
1.1 root 138: /* Tell yyparse how to print a token's value, if yydebug is set. */
139:
140: #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
141: extern void yyprint ();
142:
143: #ifndef YYLTYPE
144: typedef
145: struct yyltype
146: {
147: int timestamp;
148: int first_line;
149: int first_column;
150: int last_line;
151: int last_column;
152: char *text;
153: }
154: yyltype;
155:
156: #define YYLTYPE yyltype
157: #endif
158:
159: #include <stdio.h>
160:
1.1.1.6 root 161: #ifndef __cplusplus
1.1 root 162: #ifndef __STDC__
163: #define const
164: #endif
1.1.1.6 root 165: #endif
1.1 root 166:
167:
168:
1.1.1.8 ! root 169: #define YYFINAL 915
1.1 root 170: #define YYFLAG -32768
1.1.1.8 ! root 171: #define YYNTBASE 84
1.1 root 172:
1.1.1.8 ! root 173: #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 294)
1.1 root 174:
175: static const char yytranslate[] = { 0,
176: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
177: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
178: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1.1.1.8 ! root 179: 2, 2, 80, 2, 2, 2, 52, 43, 2, 59,
! 180: 76, 50, 48, 81, 49, 58, 51, 2, 2, 2,
! 181: 2, 2, 2, 2, 2, 2, 2, 38, 77, 2,
! 182: 36, 2, 37, 2, 2, 2, 2, 2, 2, 2,
1.1 root 183: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
184: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1.1.1.8 ! root 185: 60, 2, 83, 42, 2, 2, 2, 2, 2, 2,
1.1 root 186: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
187: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1.1.1.8 ! root 188: 2, 2, 82, 41, 78, 79, 2, 2, 2, 2,
1.1 root 189: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
190: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
191: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
192: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
193: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
194: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
195: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
196: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
197: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
198: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
199: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
200: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
201: 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
202: 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
203: 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1.1.1.5 root 204: 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1.1.1.8 ! root 205: 39, 40, 44, 45, 46, 47, 53, 54, 55, 56,
! 206: 57, 61, 62, 63, 64, 65, 66, 67, 68, 69,
! 207: 70, 71, 72, 73, 74, 75
1.1 root 208: };
209:
1.1.1.6 root 210: #if YYDEBUG != 0
1.1 root 211: static const short yyprhs[] = { 0,
212: 0, 1, 3, 4, 7, 8, 12, 14, 16, 18,
213: 24, 28, 33, 38, 41, 44, 47, 50, 52, 53,
214: 54, 62, 67, 68, 69, 77, 82, 83, 84, 91,
215: 95, 97, 99, 101, 103, 105, 107, 109, 111, 113,
1.1.1.5 root 216: 115, 117, 119, 120, 122, 124, 128, 130, 133, 134,
217: 138, 141, 144, 147, 152, 155, 160, 163, 166, 168,
1.1.1.6 root 218: 173, 174, 182, 184, 188, 192, 196, 200, 204, 208,
219: 212, 216, 220, 224, 228, 232, 236, 240, 246, 250,
220: 254, 256, 258, 260, 264, 268, 269, 274, 279, 284,
221: 288, 292, 295, 298, 300, 302, 304, 306, 308, 310,
222: 313, 315, 318, 319, 321, 324, 328, 330, 332, 335,
223: 338, 343, 348, 351, 354, 358, 360, 362, 365, 368,
1.1.1.8 ! root 224: 369, 370, 375, 380, 384, 388, 391, 394, 397, 401,
! 225: 402, 405, 408, 410, 412, 415, 418, 421, 425, 426,
! 226: 429, 431, 433, 435, 438, 441, 446, 451, 453, 455,
! 227: 457, 459, 463, 465, 469, 470, 475, 476, 483, 487,
! 228: 488, 495, 499, 500, 502, 504, 507, 514, 516, 520,
! 229: 521, 523, 528, 535, 540, 542, 544, 546, 548, 550,
! 230: 551, 556, 558, 559, 562, 564, 568, 570, 571, 576,
! 231: 578, 579, 584, 585, 591, 592, 593, 599, 600, 601,
! 232: 607, 609, 611, 615, 619, 624, 628, 632, 636, 638,
! 233: 640, 644, 649, 653, 657, 661, 663, 667, 671, 675,
! 234: 680, 684, 688, 690, 691, 699, 705, 708, 709, 717,
! 235: 723, 726, 727, 736, 737, 745, 748, 749, 751, 752,
! 236: 754, 756, 759, 760, 764, 767, 772, 776, 778, 782,
! 237: 784, 786, 788, 792, 797, 804, 810, 812, 816, 818,
! 238: 820, 824, 827, 830, 831, 833, 835, 838, 839, 842,
! 239: 846, 850, 853, 857, 862, 866, 869, 873, 876, 880,
! 240: 882, 884, 887, 890, 891, 893, 896, 897, 898, 900,
! 241: 902, 905, 909, 911, 914, 917, 924, 930, 936, 939,
! 242: 942, 947, 948, 953, 954, 955, 959, 964, 968, 970,
! 243: 972, 974, 976, 979, 980, 985, 987, 991, 992, 993,
! 244: 1001, 1007, 1010, 1011, 1012, 1013, 1026, 1027, 1034, 1037,
! 245: 1040, 1043, 1047, 1054, 1063, 1074, 1087, 1091, 1096, 1098,
! 246: 1100, 1101, 1108, 1112, 1118, 1121, 1124, 1125, 1127, 1128,
! 247: 1130, 1131, 1133, 1135, 1139, 1144, 1146, 1150, 1151, 1154,
! 248: 1157, 1158, 1163, 1166, 1167, 1169, 1171, 1175, 1177, 1181,
! 249: 1186, 1191, 1196, 1201, 1206, 1207, 1210, 1212, 1215, 1217,
! 250: 1221, 1223, 1227, 1229, 1231, 1233, 1235, 1237, 1239, 1241,
! 251: 1245, 1249, 1254, 1255, 1256, 1267, 1268, 1275, 1276, 1277,
! 252: 1290, 1291, 1300, 1301, 1308, 1311, 1312, 1321, 1326, 1327,
! 253: 1337, 1343, 1344, 1351, 1352, 1356, 1360, 1362, 1364, 1366,
! 254: 1368, 1369, 1373, 1376, 1380, 1384, 1386, 1387, 1389, 1393,
! 255: 1395, 1399, 1402, 1403, 1404, 1405, 1413, 1414, 1415, 1416,
! 256: 1424, 1425, 1426, 1429, 1431, 1433, 1436, 1437, 1441, 1443,
! 257: 1445, 1446, 1447, 1453, 1454, 1455, 1461, 1466, 1468, 1474,
! 258: 1477, 1478, 1481, 1482, 1484, 1486, 1488, 1491, 1494, 1499,
! 259: 1502, 1505, 1507, 1511, 1514, 1517, 1520, 1521, 1524, 1525,
! 260: 1529, 1531, 1533, 1536, 1538, 1540, 1542, 1544, 1546, 1548,
! 261: 1550, 1552, 1554, 1556, 1558, 1560, 1562, 1564, 1566, 1568,
! 262: 1570, 1572, 1574, 1576, 1578, 1580, 1582, 1584, 1586, 1593,
! 263: 1597, 1603, 1606, 1608, 1610, 1612, 1615, 1617, 1621, 1624,
! 264: 1626, 1628, 1629, 1630, 1637, 1639, 1641, 1643, 1646, 1649,
! 265: 1651, 1656, 1661
1.1 root 266: };
267:
268: static const short yyrhs[] = { -1,
1.1.1.8 ! root 269: 85, 0, 0, 86, 88, 0, 0, 85, 87, 88,
! 270: 0, 90, 0, 89, 0, 226, 0, 27, 59, 99,
! 271: 76, 77, 0, 117, 128, 77, 0, 122, 117, 128,
! 272: 77, 0, 120, 117, 127, 77, 0, 122, 77, 0,
! 273: 120, 77, 0, 1, 77, 0, 1, 78, 0, 77,
! 274: 0, 0, 0, 120, 117, 154, 91, 111, 92, 185,
! 275: 0, 120, 117, 154, 1, 0, 0, 0, 122, 117,
! 276: 157, 93, 111, 94, 185, 0, 122, 117, 157, 1,
! 277: 0, 0, 0, 117, 157, 95, 111, 96, 185, 0,
! 278: 117, 157, 1, 0, 3, 0, 4, 0, 72, 0,
! 279: 67, 0, 43, 0, 49, 0, 48, 0, 54, 0,
! 280: 55, 0, 79, 0, 80, 0, 101, 0, 0, 101,
! 281: 0, 106, 0, 101, 81, 106, 0, 107, 0, 50,
! 282: 104, 0, 0, 31, 103, 104, 0, 98, 104, 0,
! 283: 40, 97, 0, 11, 102, 0, 11, 59, 172, 76,
! 284: 0, 29, 102, 0, 29, 59, 172, 76, 0, 33,
! 285: 104, 0, 34, 104, 0, 102, 0, 59, 172, 76,
! 286: 104, 0, 0, 59, 172, 76, 82, 105, 142, 78,
! 287: 0, 104, 0, 106, 48, 106, 0, 106, 49, 106,
! 288: 0, 106, 50, 106, 0, 106, 51, 106, 0, 106,
! 289: 52, 106, 0, 106, 46, 106, 0, 106, 47, 106,
! 290: 0, 106, 45, 106, 0, 106, 44, 106, 0, 106,
! 291: 43, 106, 0, 106, 41, 106, 0, 106, 42, 106,
! 292: 0, 106, 40, 106, 0, 106, 39, 106, 0, 106,
! 293: 37, 209, 38, 106, 0, 106, 36, 106, 0, 106,
! 294: 35, 106, 0, 3, 0, 8, 0, 109, 0, 59,
! 295: 99, 76, 0, 59, 1, 76, 0, 0, 59, 108,
! 296: 186, 76, 0, 107, 59, 100, 76, 0, 107, 60,
! 297: 99, 83, 0, 107, 58, 97, 0, 107, 57, 97,
! 298: 0, 107, 54, 0, 107, 55, 0, 285, 0, 291,
! 299: 0, 292, 0, 293, 0, 110, 0, 9, 0, 109,
! 300: 9, 0, 75, 0, 110, 75, 0, 0, 113, 0,
! 301: 113, 10, 0, 191, 192, 114, 0, 112, 0, 180,
! 302: 0, 113, 112, 0, 112, 180, 0, 120, 117, 127,
! 303: 77, 0, 122, 117, 128, 77, 0, 120, 77, 0,
! 304: 122, 77, 0, 191, 192, 119, 0, 115, 0, 180,
! 305: 0, 116, 115, 0, 115, 180, 0, 0, 0, 120,
! 306: 117, 127, 77, 0, 122, 117, 128, 77, 0, 120,
! 307: 117, 148, 0, 122, 117, 151, 0, 120, 77, 0,
! 308: 122, 77, 0, 125, 121, 0, 122, 125, 121, 0,
! 309: 0, 121, 126, 0, 121, 5, 0, 7, 0, 5,
! 310: 0, 122, 7, 0, 122, 5, 0, 125, 124, 0,
! 311: 174, 125, 124, 0, 0, 124, 126, 0, 6, 0,
! 312: 158, 0, 4, 0, 67, 242, 0, 72, 242, 0,
! 313: 28, 59, 99, 76, 0, 28, 59, 172, 76, 0,
! 314: 6, 0, 7, 0, 158, 0, 130, 0, 127, 81,
! 315: 130, 0, 132, 0, 128, 81, 130, 0, 0, 27,
! 316: 59, 109, 76, 0, 0, 154, 129, 134, 36, 131,
! 317: 140, 0, 154, 129, 134, 0, 0, 157, 129, 134,
! 318: 36, 133, 140, 0, 157, 129, 134, 0, 0, 135,
! 319: 0, 136, 0, 135, 136, 0, 30, 59, 59, 137,
! 320: 76, 76, 0, 138, 0, 137, 81, 138, 0, 0,
! 321: 139, 0, 139, 59, 3, 76, 0, 139, 59, 3,
! 322: 81, 101, 76, 0, 139, 59, 100, 76, 0, 97,
! 323: 0, 5, 0, 6, 0, 7, 0, 106, 0, 0,
! 324: 82, 141, 142, 78, 0, 1, 0, 0, 143, 163,
! 325: 0, 144, 0, 143, 81, 144, 0, 106, 0, 0,
! 326: 82, 145, 142, 78, 0, 1, 0, 0, 97, 38,
! 327: 146, 144, 0, 0, 58, 97, 36, 147, 144, 0,
! 328: 0, 0, 154, 149, 111, 150, 186, 0, 0, 0,
! 329: 157, 152, 111, 153, 186, 0, 155, 0, 157, 0,
! 330: 59, 155, 76, 0, 155, 59, 221, 0, 155, 60,
! 331: 99, 83, 0, 155, 60, 83, 0, 50, 175, 155,
! 332: 0, 135, 118, 155, 0, 4, 0, 72, 0, 156,
! 333: 59, 221, 0, 156, 60, 99, 83, 0, 156, 60,
! 334: 83, 0, 50, 175, 156, 0, 135, 118, 156, 0,
! 335: 4, 0, 157, 59, 221, 0, 59, 157, 76, 0,
! 336: 50, 175, 157, 0, 157, 60, 99, 83, 0, 157,
! 337: 60, 83, 0, 135, 118, 157, 0, 3, 0, 0,
! 338: 13, 97, 82, 159, 165, 78, 134, 0, 13, 82,
! 339: 165, 78, 134, 0, 13, 97, 0, 0, 14, 97,
! 340: 82, 160, 165, 78, 134, 0, 14, 82, 165, 78,
! 341: 134, 0, 14, 97, 0, 0, 12, 97, 82, 161,
! 342: 170, 164, 78, 134, 0, 0, 12, 82, 162, 170,
! 343: 164, 78, 134, 0, 12, 97, 0, 0, 81, 0,
! 344: 0, 81, 0, 166, 0, 166, 167, 0, 0, 166,
! 345: 167, 77, 0, 166, 77, 0, 65, 59, 67, 76,
! 346: 0, 123, 117, 168, 0, 123, 0, 174, 117, 168,
! 347: 0, 174, 0, 1, 0, 169, 0, 168, 81, 169,
! 348: 0, 191, 192, 154, 134, 0, 191, 192, 154, 38,
! 349: 106, 134, 0, 191, 192, 38, 106, 134, 0, 171,
! 350: 0, 170, 81, 171, 0, 1, 0, 97, 0, 97,
! 351: 36, 106, 0, 123, 173, 0, 174, 173, 0, 0,
! 352: 176, 0, 7, 0, 174, 7, 0, 0, 175, 7,
! 353: 0, 59, 176, 76, 0, 50, 175, 176, 0, 50,
! 354: 175, 0, 176, 59, 214, 0, 176, 60, 99, 83,
! 355: 0, 176, 60, 83, 0, 59, 214, 0, 60, 99,
! 356: 83, 0, 60, 83, 0, 135, 118, 176, 0, 178,
! 357: 0, 194, 0, 178, 194, 0, 178, 180, 0, 0,
! 358: 177, 0, 1, 77, 0, 0, 0, 183, 0, 184,
! 359: 0, 183, 184, 0, 32, 225, 77, 0, 186, 0,
! 360: 1, 186, 0, 82, 78, 0, 82, 181, 182, 116,
! 361: 179, 78, 0, 82, 181, 182, 1, 78, 0, 82,
! 362: 181, 182, 177, 78, 0, 188, 193, 0, 188, 1,
! 363: 0, 15, 59, 99, 76, 0, 0, 18, 190, 193,
! 364: 17, 0, 0, 0, 191, 192, 196, 0, 191, 192,
! 365: 207, 193, 0, 191, 192, 195, 0, 196, 0, 207,
! 366: 0, 186, 0, 204, 0, 99, 77, 0, 0, 187,
! 367: 16, 197, 193, 0, 187, 0, 187, 16, 1, 0,
! 368: 0, 0, 17, 198, 59, 99, 76, 199, 193, 0,
! 369: 189, 59, 99, 76, 77, 0, 189, 1, 0, 0,
! 370: 0, 0, 19, 59, 209, 77, 200, 209, 77, 201,
! 371: 209, 76, 202, 193, 0, 0, 20, 59, 99, 76,
! 372: 203, 193, 0, 23, 77, 0, 24, 77, 0, 25,
! 373: 77, 0, 25, 99, 77, 0, 27, 208, 59, 99,
! 374: 76, 77, 0, 27, 208, 59, 99, 38, 210, 76,
! 375: 77, 0, 27, 208, 59, 99, 38, 210, 38, 210,
! 376: 76, 77, 0, 27, 208, 59, 99, 38, 210, 38,
! 377: 210, 38, 213, 76, 77, 0, 26, 97, 77, 0,
! 378: 26, 50, 99, 77, 0, 77, 0, 205, 0, 0,
! 379: 19, 59, 107, 76, 206, 193, 0, 21, 106, 38,
! 380: 0, 21, 106, 10, 106, 38, 0, 22, 38, 0,
! 381: 97, 38, 0, 0, 7, 0, 0, 99, 0, 0,
! 382: 211, 0, 212, 0, 211, 81, 212, 0, 9, 59,
! 383: 99, 76, 0, 109, 0, 213, 81, 109, 0, 0,
! 384: 215, 216, 0, 218, 76, 0, 0, 219, 77, 217,
! 385: 216, 0, 1, 76, 0, 0, 10, 0, 219, 0,
! 386: 219, 81, 10, 0, 220, 0, 219, 81, 220, 0,
! 387: 120, 117, 156, 134, 0, 120, 117, 157, 134, 0,
! 388: 120, 117, 173, 134, 0, 122, 117, 157, 134, 0,
! 389: 122, 117, 173, 134, 0, 0, 222, 223, 0, 216,
! 390: 0, 224, 76, 0, 3, 0, 224, 81, 3, 0,
! 391: 97, 0, 225, 81, 97, 0, 230, 0, 228, 0,
! 392: 229, 0, 240, 0, 249, 0, 63, 0, 97, 0,
! 393: 227, 81, 97, 0, 73, 227, 77, 0, 74, 97,
! 394: 97, 77, 0, 0, 0, 61, 97, 242, 82, 231,
! 395: 243, 78, 232, 256, 63, 0, 0, 61, 97, 242,
! 396: 233, 256, 63, 0, 0, 0, 61, 97, 38, 97,
! 397: 242, 82, 234, 243, 78, 235, 256, 63, 0, 0,
! 398: 61, 97, 38, 97, 242, 236, 256, 63, 0, 0,
! 399: 62, 97, 82, 237, 243, 78, 0, 62, 97, 0,
! 400: 0, 62, 97, 38, 97, 82, 238, 243, 78, 0,
! 401: 62, 97, 38, 97, 0, 0, 61, 97, 59, 97,
! 402: 76, 242, 239, 256, 63, 0, 62, 97, 59, 97,
! 403: 76, 0, 0, 71, 97, 242, 241, 256, 63, 0,
! 404: 0, 45, 227, 45, 0, 243, 244, 245, 0, 245,
! 405: 0, 69, 0, 70, 0, 68, 0, 0, 245, 246,
! 406: 77, 0, 245, 77, 0, 123, 117, 247, 0, 174,
! 407: 117, 247, 0, 1, 0, 0, 248, 0, 247, 81,
! 408: 248, 0, 154, 0, 154, 38, 106, 0, 38, 106,
! 409: 0, 0, 0, 0, 48, 250, 266, 251, 267, 252,
! 410: 185, 0, 0, 0, 0, 49, 253, 266, 254, 267,
! 411: 255, 185, 0, 0, 0, 257, 258, 0, 261, 0,
! 412: 89, 0, 258, 261, 0, 0, 258, 259, 89, 0,
! 413: 77, 0, 1, 0, 0, 0, 48, 262, 266, 263,
! 414: 260, 0, 0, 0, 49, 264, 266, 265, 260, 0,
! 415: 59, 172, 76, 275, 0, 275, 0, 59, 172, 76,
! 416: 276, 273, 0, 276, 273, 0, 0, 77, 268, 0,
! 417: 0, 269, 0, 270, 0, 180, 0, 269, 270, 0,
! 418: 270, 180, 0, 120, 117, 271, 77, 0, 120, 77,
! 419: 0, 122, 77, 0, 272, 0, 271, 81, 272, 0,
! 420: 156, 134, 0, 157, 134, 0, 173, 134, 0, 0,
! 421: 81, 10, 0, 0, 81, 274, 218, 0, 277, 0,
! 422: 279, 0, 276, 279, 0, 3, 0, 4, 0, 72,
! 423: 0, 278, 0, 12, 0, 13, 0, 14, 0, 15,
! 424: 0, 16, 0, 17, 0, 18, 0, 19, 0, 20,
! 425: 0, 21, 0, 22, 0, 23, 0, 24, 0, 25,
! 426: 0, 26, 0, 27, 0, 11, 0, 28, 0, 29,
! 427: 0, 6, 0, 7, 0, 277, 38, 59, 172, 76,
! 428: 97, 0, 277, 38, 97, 0, 38, 59, 172, 76,
! 429: 97, 0, 38, 97, 0, 277, 0, 281, 0, 283,
! 430: 0, 281, 283, 0, 101, 0, 277, 38, 282, 0,
! 431: 38, 282, 0, 99, 0, 67, 0, 0, 0, 60,
! 432: 286, 284, 287, 280, 83, 0, 277, 0, 289, 0,
! 433: 290, 0, 289, 290, 0, 277, 38, 0, 38, 0,
! 434: 64, 59, 288, 76, 0, 71, 59, 97, 76, 0,
! 435: 66, 59, 172, 76, 0
1.1 root 436: };
437:
1.1.1.6 root 438: #endif
439:
1.1 root 440: #if YYDEBUG != 0
441: static const short yyrline[] = { 0,
1.1.1.8 ! root 442: 232, 237, 251, 253, 253, 254, 256, 258, 259, 260,
! 443: 270, 281, 286, 291, 293, 295, 296, 297, 302, 309,
! 444: 311, 316, 321, 327, 329, 334, 339, 345, 347, 352,
! 445: 359, 361, 362, 363, 366, 368, 370, 372, 374, 376,
! 446: 378, 382, 386, 389, 392, 395, 399, 401, 404, 407,
! 447: 410, 414, 442, 447, 449, 451, 453, 455, 459, 461,
! 448: 464, 468, 495, 497, 499, 501, 503, 505, 507, 509,
! 449: 511, 513, 515, 517, 519, 521, 523, 525, 527, 530,
! 450: 536, 696, 697, 699, 705, 707, 721, 744, 746, 748,
! 451: 760, 774, 776, 778, 780, 782, 784, 786, 791, 793,
! 452: 799, 801, 805, 807, 808, 818, 823, 825, 826, 827,
! 453: 830, 836, 841, 844, 852, 857, 859, 860, 861, 868,
! 454: 878, 882, 888, 893, 898, 903, 905, 913, 916, 920,
! 455: 922, 924, 935, 939, 941, 944, 957, 960, 964, 966,
! 456: 974, 975, 976, 980, 982, 984, 986, 992, 993, 994,
! 457: 997, 999, 1002, 1004, 1007, 1010, 1016, 1023, 1025, 1032,
! 458: 1039, 1042, 1049, 1052, 1056, 1059, 1063, 1068, 1071, 1075,
! 459: 1078, 1080, 1082, 1084, 1091, 1093, 1094, 1095, 1100, 1102,
! 460: 1107, 1115, 1120, 1124, 1127, 1129, 1134, 1137, 1139, 1141,
! 461: 1145, 1148, 1148, 1151, 1153, 1164, 1172, 1176, 1187, 1195,
! 462: 1202, 1204, 1209, 1212, 1217, 1219, 1221, 1223, 1225, 1226,
! 463: 1234, 1240, 1242, 1244, 1246, 1248, 1254, 1260, 1262, 1264,
! 464: 1266, 1268, 1270, 1273, 1278, 1280, 1284, 1286, 1288, 1290,
! 465: 1294, 1296, 1299, 1302, 1305, 1308, 1312, 1314, 1317, 1319,
! 466: 1323, 1326, 1331, 1333, 1335, 1339, 1363, 1370, 1375, 1381,
! 467: 1386, 1390, 1392, 1396, 1400, 1404, 1414, 1416, 1421, 1426,
! 468: 1429, 1433, 1436, 1440, 1443, 1446, 1449, 1453, 1456, 1460,
! 469: 1464, 1466, 1468, 1470, 1472, 1474, 1476, 1478, 1480, 1488,
! 470: 1496, 1498, 1500, 1504, 1506, 1509, 1512, 1525, 1527, 1532,
! 471: 1534, 1537, 1551, 1554, 1557, 1559, 1567, 1575, 1586, 1591,
! 472: 1594, 1607, 1615, 1619, 1623, 1627, 1633, 1637, 1642, 1645,
! 473: 1650, 1653, 1654, 1671, 1676, 1679, 1691, 1693, 1703, 1713,
! 474: 1714, 1722, 1725, 1737, 1741, 1758, 1768, 1777, 1782, 1787,
! 475: 1792, 1796, 1800, 1811, 1818, 1825, 1832, 1843, 1847, 1850,
! 476: 1855, 1878, 1912, 1937, 1966, 1981, 1992, 1996, 2000, 2003,
! 477: 2008, 2010, 2013, 2015, 2019, 2024, 2027, 2033, 2038, 2043,
! 478: 2045, 2054, 2055, 2061, 2063, 2073, 2075, 2079, 2082, 2088,
! 479: 2098, 2107, 2116, 2126, 2140, 2145, 2150, 2152, 2161, 2164,
! 480: 2169, 2172, 2178, 2180, 2181, 2182, 2183, 2184, 2198, 2201,
! 481: 2205, 2211, 2217, 2224, 2229, 2235, 2242, 2248, 2254, 2259,
! 482: 2265, 2272, 2278, 2284, 2290, 2298, 2304, 2310, 2318, 2325,
! 483: 2331, 2340, 2347, 2355, 2360, 2369, 2371, 2374, 2376, 2377,
! 484: 2380, 2385, 2386, 2403, 2410, 2416, 2420, 2423, 2424, 2427,
! 485: 2435, 2441, 2450, 2460, 2467, 2471, 2476, 2485, 2492, 2496,
! 486: 2506, 2508, 2509, 2511, 2513, 2514, 2515, 2516, 2518, 2520,
! 487: 2523, 2529, 2534, 2534, 2539, 2543, 2545, 2551, 2556, 2561,
! 488: 2570, 2572, 2578, 2580, 2583, 2585, 2586, 2587, 2590, 2596,
! 489: 2598, 2602, 2605, 2612, 2618, 2623, 2630, 2635, 2640, 2645,
! 490: 2652, 2656, 2659, 2665, 2667, 2668, 2669, 2672, 2674, 2675,
! 491: 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685,
! 492: 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2692, 2695, 2701,
! 493: 2706, 2711, 2717, 2719, 2722, 2724, 2731, 2743, 2748, 2754,
! 494: 2756, 2762, 2766, 2767, 2773, 2775, 2778, 2780, 2786, 2791,
! 495: 2797, 2804, 2813
1.1 root 496: };
497:
498: static const char * const yytname[] = { "$","error","$illegal.","IDENTIFIER",
499: "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
500: "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
1.1.1.8 ! root 501: "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
! 502: "EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
! 503: "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
! 504: "'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
1.1.1.5 root 505: "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
506: "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
507: "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
508: "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
1.1.1.6 root 509: "unop","expr","exprlist","nonnull_exprlist","unary_expr","@9","cast_expr","@10",
510: "expr_no_commas","primary","@11","string","objc_string","xdecls","lineno_datadecl",
1.1.1.8 ! root 511: "datadecls","datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
1.1.1.6 root 512: "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
513: "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
1.1.1.7 root 514: "@12","notype_initdcl","@13","maybe_attribute","attributes","attribute","attribute_list",
515: "attrib","any_word","init","@14","initlist_maybe_comma","initlist1","initelt",
1.1.1.8 ! root 516: "@15","@16","@17","nested_function","@18","@19","notype_nested_function","@20",
! 517: "@21","declarator","after_type_declarator","parm_declarator","notype_declarator",
! 518: "structsp","@22","@23","@24","@25","maybecomma","maybecomma_warn","component_decl_list",
! 519: "component_decl_list2","component_decl","components","component_declarator",
! 520: "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
! 521: "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
! 522: "label_decls","label_decl","compstmt_or_error","compstmt","simple_if","if_prefix",
! 523: "do_stmt_start","@26","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
! 524: "stmt_or_label","stmt","@27","@28","@29","@30","@31","@32","@33","all_iter_stmt",
! 525: "all_iter_stmt_simple","@34","label","maybe_type_qual","xexpr","asm_operands",
! 526: "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@35","parmlist_1",
! 527: "@36","parmlist_2","parms","parm","parmlist_or_identifiers","@37","parmlist_or_identifiers_1",
! 528: "identifiers","identifiers_or_typenames","objcdef","identifier_list","classdecl",
! 529: "aliasdecl","classdef","@38","@39","@40","@41","@42","@43","@44","@45","@46",
! 530: "protocoldef","@47","protocolrefs","ivar_decl_list","visibility_spec","ivar_decls",
! 531: "ivar_decl","ivars","ivar_declarator","methoddef","@48","@49","@50","@51","@52",
! 532: "@53","methodprotolist","@54","methodprotolist2","@55","semi_or_error","methodproto",
! 533: "@56","@57","@58","@59","methoddecl","optarglist","myxdecls","mydecls","mydecl",
! 534: "myparms","myparm","optparmlist","@60","unaryselector","keywordselector","selector",
! 535: "reservedwords","keyworddecl","messageargs","keywordarglist","keywordexpr","keywordarg",
! 536: "receiver","objcmessageexpr","@61","@62","selectorarg","keywordnamelist","keywordname",
! 537: "objcselectorexpr","objcprotocolexpr","objcencodeexpr",""
1.1 root 538: };
539: #endif
540:
541: static const short yyr1[] = { 0,
1.1.1.8 ! root 542: 84, 84, 86, 85, 87, 85, 88, 88, 88, 88,
! 543: 89, 89, 89, 89, 89, 89, 89, 89, 91, 92,
! 544: 90, 90, 93, 94, 90, 90, 95, 96, 90, 90,
! 545: 97, 97, 97, 97, 98, 98, 98, 98, 98, 98,
! 546: 98, 99, 100, 100, 101, 101, 102, 102, 103, 102,
! 547: 102, 102, 102, 102, 102, 102, 102, 102, 104, 104,
! 548: 105, 104, 106, 106, 106, 106, 106, 106, 106, 106,
! 549: 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
! 550: 107, 107, 107, 107, 107, 108, 107, 107, 107, 107,
! 551: 107, 107, 107, 107, 107, 107, 107, 107, 109, 109,
! 552: 110, 110, 111, 111, 111, 112, 113, 113, 113, 113,
! 553: 114, 114, 114, 114, 115, 116, 116, 116, 116, 117,
! 554: 118, 119, 119, 119, 119, 119, 119, 120, 120, 121,
! 555: 121, 121, 122, 122, 122, 122, 123, 123, 124, 124,
! 556: 125, 125, 125, 125, 125, 125, 125, 126, 126, 126,
! 557: 127, 127, 128, 128, 129, 129, 131, 130, 130, 133,
! 558: 132, 132, 134, 134, 135, 135, 136, 137, 137, 138,
! 559: 138, 138, 138, 138, 139, 139, 139, 139, 140, 141,
! 560: 140, 140, 142, 142, 143, 143, 144, 145, 144, 144,
! 561: 146, 144, 147, 144, 149, 150, 148, 152, 153, 151,
! 562: 154, 154, 155, 155, 155, 155, 155, 155, 155, 155,
! 563: 156, 156, 156, 156, 156, 156, 157, 157, 157, 157,
! 564: 157, 157, 157, 159, 158, 158, 158, 160, 158, 158,
! 565: 158, 161, 158, 162, 158, 158, 163, 163, 164, 164,
! 566: 165, 165, 166, 166, 166, 166, 167, 167, 167, 167,
! 567: 167, 168, 168, 169, 169, 169, 170, 170, 170, 171,
! 568: 171, 172, 172, 173, 173, 174, 174, 175, 175, 176,
! 569: 176, 176, 176, 176, 176, 176, 176, 176, 176, 177,
! 570: 178, 178, 178, 179, 179, 180, 181, 182, 182, 183,
! 571: 183, 184, 185, 185, 186, 186, 186, 186, 187, 187,
! 572: 188, 190, 189, 191, 192, 193, 193, 194, 195, 195,
! 573: 196, 196, 196, 197, 196, 196, 196, 198, 199, 196,
! 574: 196, 196, 200, 201, 202, 196, 203, 196, 196, 196,
! 575: 196, 196, 196, 196, 196, 196, 196, 196, 196, 204,
! 576: 206, 205, 207, 207, 207, 207, 208, 208, 209, 209,
! 577: 210, 210, 211, 211, 212, 213, 213, 215, 214, 216,
! 578: 217, 216, 216, 218, 218, 218, 218, 219, 219, 220,
! 579: 220, 220, 220, 220, 222, 221, 223, 223, 224, 224,
! 580: 225, 225, 226, 226, 226, 226, 226, 226, 227, 227,
! 581: 228, 229, 231, 232, 230, 233, 230, 234, 235, 230,
! 582: 236, 230, 237, 230, 230, 238, 230, 230, 239, 230,
! 583: 230, 241, 240, 242, 242, 243, 243, 244, 244, 244,
! 584: 245, 245, 245, 246, 246, 246, 247, 247, 247, 248,
! 585: 248, 248, 250, 251, 252, 249, 253, 254, 255, 249,
! 586: 256, 257, 256, 258, 258, 258, 259, 258, 260, 260,
! 587: 262, 263, 261, 264, 265, 261, 266, 266, 266, 266,
! 588: 267, 267, 268, 268, 269, 269, 269, 269, 270, 270,
! 589: 270, 271, 271, 272, 272, 272, 273, 273, 274, 273,
! 590: 275, 276, 276, 277, 277, 277, 277, 278, 278, 278,
! 591: 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
! 592: 278, 278, 278, 278, 278, 278, 278, 278, 279, 279,
! 593: 279, 279, 280, 280, 281, 281, 282, 283, 283, 284,
! 594: 284, 286, 287, 285, 288, 288, 289, 289, 290, 290,
! 595: 291, 292, 293
1.1 root 596: };
597:
598: static const short yyr2[] = { 0,
599: 0, 1, 0, 2, 0, 3, 1, 1, 1, 5,
600: 3, 4, 4, 2, 2, 2, 2, 1, 0, 0,
601: 7, 4, 0, 0, 7, 4, 0, 0, 6, 3,
602: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1.1.1.5 root 603: 1, 1, 0, 1, 1, 3, 1, 2, 0, 3,
604: 2, 2, 2, 4, 2, 4, 2, 2, 1, 4,
1.1.1.6 root 605: 0, 7, 1, 3, 3, 3, 3, 3, 3, 3,
606: 3, 3, 3, 3, 3, 3, 3, 5, 3, 3,
607: 1, 1, 1, 3, 3, 0, 4, 4, 4, 3,
608: 3, 2, 2, 1, 1, 1, 1, 1, 1, 2,
609: 1, 2, 0, 1, 2, 3, 1, 1, 2, 2,
610: 4, 4, 2, 2, 3, 1, 1, 2, 2, 0,
1.1.1.8 ! root 611: 0, 4, 4, 3, 3, 2, 2, 2, 3, 0,
! 612: 2, 2, 1, 1, 2, 2, 2, 3, 0, 2,
! 613: 1, 1, 1, 2, 2, 4, 4, 1, 1, 1,
! 614: 1, 3, 1, 3, 0, 4, 0, 6, 3, 0,
! 615: 6, 3, 0, 1, 1, 2, 6, 1, 3, 0,
! 616: 1, 4, 6, 4, 1, 1, 1, 1, 1, 0,
! 617: 4, 1, 0, 2, 1, 3, 1, 0, 4, 1,
! 618: 0, 4, 0, 5, 0, 0, 5, 0, 0, 5,
! 619: 1, 1, 3, 3, 4, 3, 3, 3, 1, 1,
! 620: 3, 4, 3, 3, 3, 1, 3, 3, 3, 4,
! 621: 3, 3, 1, 0, 7, 5, 2, 0, 7, 5,
! 622: 2, 0, 8, 0, 7, 2, 0, 1, 0, 1,
! 623: 1, 2, 0, 3, 2, 4, 3, 1, 3, 1,
! 624: 1, 1, 3, 4, 6, 5, 1, 3, 1, 1,
! 625: 3, 2, 2, 0, 1, 1, 2, 0, 2, 3,
! 626: 3, 2, 3, 4, 3, 2, 3, 2, 3, 1,
! 627: 1, 2, 2, 0, 1, 2, 0, 0, 1, 1,
! 628: 2, 3, 1, 2, 2, 6, 5, 5, 2, 2,
! 629: 4, 0, 4, 0, 0, 3, 4, 3, 1, 1,
! 630: 1, 1, 2, 0, 4, 1, 3, 0, 0, 7,
! 631: 5, 2, 0, 0, 0, 12, 0, 6, 2, 2,
! 632: 2, 3, 6, 8, 10, 12, 3, 4, 1, 1,
! 633: 0, 6, 3, 5, 2, 2, 0, 1, 0, 1,
! 634: 0, 1, 1, 3, 4, 1, 3, 0, 2, 2,
! 635: 0, 4, 2, 0, 1, 1, 3, 1, 3, 4,
! 636: 4, 4, 4, 4, 0, 2, 1, 2, 1, 3,
! 637: 1, 3, 1, 1, 1, 1, 1, 1, 1, 3,
! 638: 3, 4, 0, 0, 10, 0, 6, 0, 0, 12,
! 639: 0, 8, 0, 6, 2, 0, 8, 4, 0, 9,
! 640: 5, 0, 6, 0, 3, 3, 1, 1, 1, 1,
! 641: 0, 3, 2, 3, 3, 1, 0, 1, 3, 1,
! 642: 3, 2, 0, 0, 0, 7, 0, 0, 0, 7,
! 643: 0, 0, 2, 1, 1, 2, 0, 3, 1, 1,
! 644: 0, 0, 5, 0, 0, 5, 4, 1, 5, 2,
! 645: 0, 2, 0, 1, 1, 1, 2, 2, 4, 2,
! 646: 2, 1, 3, 2, 2, 2, 0, 2, 0, 3,
! 647: 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
1.1 root 648: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1.1.1.8 ! root 649: 1, 1, 1, 1, 1, 1, 1, 1, 6, 3,
! 650: 5, 2, 1, 1, 1, 2, 1, 3, 2, 1,
! 651: 1, 0, 0, 6, 1, 1, 1, 2, 2, 1,
! 652: 4, 4, 4
1.1 root 653: };
654:
655: static const short yydefact[] = { 3,
1.1.1.8 ! root 656: 5, 0, 0, 0, 143, 134, 141, 133, 0, 0,
! 657: 0, 0, 0, 433, 437, 0, 0, 388, 414, 0,
! 658: 414, 0, 0, 18, 4, 8, 7, 0, 120, 120,
! 659: 130, 142, 9, 384, 385, 383, 386, 387, 6, 16,
! 660: 17, 31, 32, 34, 33, 234, 236, 243, 227, 243,
! 661: 231, 0, 0, 0, 0, 414, 405, 0, 144, 414,
! 662: 145, 389, 0, 0, 223, 0, 268, 0, 0, 153,
! 663: 121, 165, 0, 15, 0, 136, 135, 14, 0, 130,
! 664: 128, 0, 232, 0, 0, 0, 224, 0, 228, 81,
! 665: 82, 99, 0, 0, 49, 0, 0, 0, 35, 37,
! 666: 36, 0, 38, 39, 0, 522, 0, 0, 0, 101,
! 667: 40, 41, 0, 0, 42, 59, 63, 45, 47, 83,
! 668: 98, 94, 95, 96, 97, 266, 0, 264, 139, 0,
! 669: 264, 484, 485, 507, 508, 504, 488, 489, 490, 491,
! 670: 492, 493, 494, 495, 496, 497, 498, 499, 500, 501,
! 671: 502, 503, 505, 506, 0, 0, 486, 434, 458, 477,
! 672: 481, 487, 482, 438, 0, 0, 396, 0, 0, 403,
! 673: 0, 412, 391, 0, 0, 0, 0, 0, 11, 0,
! 674: 0, 166, 30, 0, 375, 0, 0, 163, 209, 268,
! 675: 0, 210, 0, 151, 121, 0, 201, 202, 0, 0,
! 676: 129, 132, 148, 149, 131, 150, 259, 260, 239, 257,
! 677: 0, 0, 163, 251, 245, 120, 242, 120, 243, 163,
! 678: 243, 0, 53, 0, 55, 0, 57, 58, 52, 48,
! 679: 0, 0, 0, 0, 0, 0, 0, 0, 51, 0,
! 680: 0, 0, 0, 349, 0, 0, 0, 0, 0, 0,
! 681: 0, 0, 0, 0, 0, 0, 0, 0, 92, 93,
! 682: 0, 0, 43, 0, 100, 102, 146, 268, 358, 0,
! 683: 121, 262, 265, 137, 147, 267, 139, 263, 0, 512,
! 684: 0, 461, 479, 460, 0, 483, 0, 461, 414, 0,
! 685: 393, 442, 408, 0, 421, 415, 442, 390, 392, 170,
! 686: 269, 219, 218, 154, 155, 222, 0, 217, 0, 221,
! 687: 0, 0, 28, 0, 304, 108, 305, 162, 164, 0,
! 688: 0, 13, 0, 0, 22, 0, 163, 375, 0, 12,
! 689: 26, 0, 0, 240, 0, 239, 0, 226, 304, 244,
! 690: 304, 0, 230, 0, 0, 0, 50, 85, 84, 287,
! 691: 0, 0, 521, 520, 523, 530, 525, 0, 526, 527,
! 692: 0, 0, 10, 46, 80, 79, 350, 0, 77, 76,
! 693: 74, 75, 73, 72, 71, 69, 70, 64, 65, 66,
! 694: 67, 68, 91, 90, 0, 44, 0, 272, 0, 276,
! 695: 0, 278, 0, 0, 358, 0, 140, 138, 0, 0,
! 696: 0, 435, 478, 364, 0, 510, 439, 401, 414, 421,
! 697: 0, 0, 406, 411, 0, 0, 0, 176, 177, 178,
! 698: 175, 0, 168, 171, 0, 0, 379, 365, 120, 120,
! 699: 377, 0, 366, 368, 376, 0, 220, 286, 0, 110,
! 700: 105, 109, 0, 160, 207, 203, 152, 208, 20, 159,
! 701: 204, 206, 0, 24, 261, 258, 163, 0, 246, 247,
! 702: 252, 305, 249, 163, 163, 54, 56, 295, 288, 87,
! 703: 61, 60, 0, 529, 531, 0, 528, 533, 532, 0,
! 704: 88, 89, 271, 270, 359, 277, 279, 273, 275, 0,
! 705: 0, 457, 477, 120, 0, 466, 462, 464, 0, 0,
! 706: 480, 366, 0, 0, 398, 442, 409, 0, 397, 451,
! 707: 454, 445, 0, 120, 120, 447, 444, 421, 420, 418,
! 708: 419, 404, 421, 426, 423, 120, 120, 0, 413, 0,
! 709: 170, 43, 156, 363, 264, 264, 360, 361, 0, 378,
! 710: 0, 0, 29, 293, 106, 120, 120, 0, 0, 157,
! 711: 205, 0, 235, 163, 304, 0, 225, 229, 0, 0,
! 712: 289, 290, 0, 0, 513, 0, 514, 515, 78, 274,
! 713: 511, 459, 470, 264, 471, 467, 468, 436, 0, 440,
! 714: 421, 0, 442, 394, 0, 0, 155, 0, 0, 0,
! 715: 446, 0, 0, 427, 427, 422, 167, 169, 81, 0,
! 716: 216, 268, 358, 121, 163, 163, 163, 268, 121, 163,
! 717: 163, 0, 367, 369, 380, 294, 113, 0, 114, 0,
! 718: 182, 180, 179, 161, 21, 0, 25, 233, 253, 0,
! 719: 163, 381, 0, 0, 0, 304, 0, 0, 117, 305,
! 720: 281, 291, 190, 81, 0, 188, 0, 187, 0, 237,
! 721: 185, 517, 519, 0, 524, 0, 516, 163, 163, 163,
! 722: 0, 472, 509, 0, 402, 0, 442, 452, 455, 448,
! 723: 407, 0, 430, 424, 428, 425, 172, 0, 174, 272,
! 724: 0, 375, 0, 370, 371, 372, 272, 0, 373, 374,
! 725: 362, 0, 0, 0, 158, 163, 0, 254, 292, 0,
! 726: 297, 119, 118, 285, 0, 298, 283, 305, 282, 0,
! 727: 0, 0, 191, 62, 0, 184, 518, 474, 475, 476,
! 728: 469, 264, 399, 410, 0, 0, 0, 432, 0, 0,
! 729: 0, 214, 215, 211, 213, 0, 111, 112, 0, 256,
! 730: 163, 382, 296, 0, 143, 0, 318, 302, 0, 0,
! 731: 0, 0, 0, 0, 0, 0, 347, 414, 414, 339,
! 732: 0, 0, 115, 120, 120, 311, 316, 0, 0, 308,
! 733: 309, 312, 340, 310, 193, 0, 0, 186, 473, 442,
! 734: 395, 450, 449, 453, 456, 431, 429, 173, 212, 181,
! 735: 255, 0, 0, 304, 349, 0, 0, 345, 329, 330,
! 736: 331, 0, 0, 0, 348, 0, 346, 313, 126, 0,
! 737: 127, 0, 0, 300, 305, 299, 322, 0, 0, 189,
! 738: 192, 0, 0, 0, 0, 47, 0, 0, 0, 343,
! 739: 332, 0, 337, 0, 0, 124, 195, 0, 125, 198,
! 740: 317, 304, 0, 0, 194, 400, 301, 0, 303, 341,
! 741: 323, 327, 0, 338, 0, 122, 0, 123, 0, 315,
! 742: 306, 304, 0, 319, 304, 349, 304, 344, 351, 0,
! 743: 196, 199, 307, 321, 304, 342, 0, 328, 0, 0,
! 744: 352, 353, 333, 0, 0, 320, 324, 0, 351, 0,
! 745: 0, 197, 200, 349, 0, 0, 334, 354, 0, 355,
! 746: 0, 0, 325, 356, 0, 335, 304, 0, 0, 326,
! 747: 336, 357, 0, 0, 0
1.1 root 748: };
749:
1.1.1.8 ! root 750: static const short yydefgoto[] = { 913,
! 751: 1, 2, 3, 25, 26, 27, 326, 549, 332, 552,
! 752: 187, 439, 647, 113, 367, 385, 115, 116, 226, 117,
! 753: 563, 118, 119, 233, 120, 121, 313, 314, 315, 545,
! 754: 635, 636, 28, 181, 763, 429, 81, 430, 128, 274,
! 755: 31, 205, 193, 69, 188, 194, 626, 70, 548, 318,
! 756: 319, 72, 422, 423, 424, 624, 694, 649, 650, 651,
! 757: 712, 777, 819, 836, 857, 884, 839, 859, 885, 305,
! 758: 197, 658, 198, 32, 219, 221, 211, 82, 716, 335,
! 759: 85, 86, 217, 460, 461, 209, 210, 130, 660, 131,
! 760: 177, 273, 637, 638, 705, 316, 469, 560, 561, 562,
! 761: 543, 544, 767, 768, 769, 794, 815, 443, 816, 641,
! 762: 770, 771, 842, 793, 875, 866, 894, 907, 867, 772,
! 763: 773, 865, 774, 806, 368, 880, 881, 882, 905, 390,
! 764: 391, 431, 612, 432, 433, 434, 308, 309, 435, 436,
! 765: 633, 33, 63, 34, 35, 36, 410, 667, 292, 581,
! 766: 780, 506, 295, 518, 583, 37, 297, 59, 415, 523,
! 767: 416, 528, 674, 675, 38, 54, 282, 500, 55, 288,
! 768: 504, 411, 412, 516, 590, 784, 517, 585, 726, 586,
! 769: 727, 158, 402, 497, 498, 499, 661, 662, 284, 404,
! 770: 159, 160, 161, 162, 163, 566, 567, 653, 568, 355,
! 771: 122, 235, 473, 358, 359, 360, 123, 124, 125
1.1 root 772: };
773:
1.1.1.8 ! root 774: static const short yypact[] = { 94,
! 775: 97, 2746, 2746, 129,-32768,-32768,-32768,-32768, 76, 213,
! 776: 226, 57, 86,-32768,-32768, 327, 327,-32768, 102, 327,
! 777: 102, 327, 327,-32768,-32768,-32768,-32768, 71, 27, 2946,
1.1.1.5 root 778: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1.1.1.8 ! root 779: -32768,-32768,-32768,-32768,-32768,-32768, 70, 104, 115, 104,
! 780: 118, 2455, 2293, 3046, 3046, 61, 186, 327,-32768, 102,
! 781: -32768,-32768, 173, 327,-32768, 156,-32768, 71, 222,-32768,
! 782: 195,-32768, 757,-32768, 351,-32768,-32768,-32768, 71,-32768,
! 783: 813, 107,-32768, 176, 165, 235,-32768, 179,-32768,-32768,
! 784: -32768,-32768, 2509, 2563,-32768, 2455, 2455, 327,-32768,-32768,
! 785: -32768, 2455,-32768,-32768, 1255,-32768, 192, 201, 211,-32768,
! 786: -32768,-32768, 2455, 203, 224,-32768,-32768, 3369, 789, 318,
! 787: 240,-32768,-32768,-32768,-32768,-32768, 270, 214,-32768, 277,
! 788: 1720,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1.1 root 789: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1.1.1.8 ! root 790: -32768,-32768,-32768,-32768, 199, 3255,-32768,-32768,-32768, 2265,
! 791: 340,-32768,-32768,-32768, 327, 327, 303, 327, 327,-32768,
! 792: 45,-32768,-32768, 327, 311, 334, 421, 280,-32768, 351,
! 793: 71,-32768,-32768, 337,-32768, 1734, 623, 195,-32768,-32768,
! 794: 351,-32768, 268,-32768, 195, 1658, 316, 395, 331, 1579,
! 795: 813,-32768,-32768,-32768,-32768,-32768,-32768, 362, 325,-32768,
! 796: 107, 342, 195,-32768,-32768, 401, 339, 2929, 104, 195,
! 797: 104, 1255,-32768, 1255,-32768, 2455,-32768,-32768,-32768,-32768,
! 798: 343, 353, 370, 391, 2347, 3108, 3255, 327,-32768, 399,
! 799: 2455, 2455, 2455, 2455, 2455, 2455, 2455, 2455, 2455, 2455,
! 800: 2455, 2455, 2455, 2455, 2455, 2455, 2455, 2455,-32768,-32768,
! 801: 327, 327, 2455, 2455,-32768,-32768,-32768,-32768, 214, 1793,
! 802: 195,-32768, 443, 718,-32768,-32768,-32768,-32768, 3255,-32768,
! 803: 416, 412, 485,-32768, 340,-32768, 333, 412, 102, 423,
! 804: -32768, 442, 428, 438,-32768,-32768, 442,-32768,-32768, 319,
! 805: -32768, 395,-32768,-32768, 493, 395, 519,-32768, 2899,-32768,
! 806: 450, 463,-32768, 1677, 68,-32768,-32768, 508, 195, 458,
! 807: 358,-32768, 351, 351,-32768, 623, 195,-32768, 1852,-32768,
! 808: -32768, 623, 2455, 327, 457, 325, 474,-32768,-32768,-32768,
! 809: -32768, 489,-32768, 494, 495, 498,-32768,-32768,-32768, 497,
! 810: 501, 2185,-32768,-32768,-32768,-32768, 549, 510, 3108,-32768,
! 811: 517, 525,-32768, 3369, 3369, 3369,-32768, 557, 1230, 1386,
! 812: 1465, 1666, 2264, 1706, 753, 838, 838, 554, 554,-32768,
! 813: -32768,-32768,-32768,-32768, 533, 224, 530, 548, 372,-32768,
! 814: 2918,-32768, 534, 214,-32768, 1911,-32768, 718, 542, 3136,
! 815: 708,-32768,-32768, 3199, 3255,-32768,-32768, 541, 102,-32768,
! 816: 563, 2821,-32768,-32768, 273, 2694, 569,-32768,-32768,-32768,
! 817: -32768, 22,-32768, 561, 59, 558,-32768,-32768,-32768, 3227,
! 818: -32768, 566, 359,-32768,-32768, 128,-32768,-32768, 85,-32768,
! 819: -32768,-32768, 3244,-32768, 316,-32768,-32768, 316,-32768, 589,
! 820: -32768,-32768, 555,-32768, 3369,-32768, 195, 570,-32768, 568,
! 821: -32768,-32768, 568, 195, 195,-32768,-32768,-32768, 620,-32768,
! 822: -32768,-32768, 3172,-32768,-32768, 549,-32768,-32768,-32768, 2455,
! 823: -32768,-32768, 443,-32768,-32768,-32768, 443,-32768,-32768, 567,
! 824: 327,-32768, 2265, 576, 2974,-32768,-32768, 3244, 1694, 85,
! 825: -32768, 575, 583, 85,-32768, 442,-32768, 511,-32768,-32768,
! 826: -32768,-32768, 71, 27, 2946, 285,-32768,-32768,-32768,-32768,
! 827: -32768,-32768,-32768,-32768,-32768,-32768, 3272, 588,-32768, 587,
! 828: 319, 2617,-32768,-32768, 562, 237,-32768,-32768, 3210,-32768,
! 829: 663, 370,-32768,-32768,-32768, 592, 3015, 1570, 85,-32768,
! 830: -32768, 85,-32768, 195,-32768, 538,-32768,-32768, 327, 935,
! 831: 620,-32768, 1335, 2455, 635, 595, 3172,-32768, 1308,-32768,
! 832: -32768,-32768,-32768, 562,-32768,-32768,-32768,-32768, 327,-32768,
! 833: -32768, 619, 442,-32768, 3046, 3046, 69, 351, 71, 2849,
! 834: -32768, 602, 2711, 651, 651,-32768,-32768,-32768, 202, 609,
! 835: -32768,-32768, 237, 195, 58, 232, 195,-32768, 195, 232,
! 836: 195, 2918,-32768,-32768,-32768,-32768,-32768, 351,-32768, 71,
! 837: -32768,-32768, 3369,-32768,-32768, 1570,-32768,-32768,-32768, 2455,
! 838: 106,-32768, 365, 470, 851, 613, 615, 1015,-32768,-32768,
! 839: -32768,-32768,-32768, 659, 327,-32768, 660, 3369, 621, 625,
! 840: -32768, 224,-32768, 2455,-32768, 635,-32768, 58, 232, 195,
! 841: 376,-32768,-32768, 618,-32768, 637, 442,-32768,-32768,-32768,
! 842: -32768, 2455, 669, 627,-32768, 627,-32768, 2455,-32768, 791,
! 843: 562,-32768, 1970,-32768,-32768,-32768, 82, 237,-32768,-32768,
! 844: -32768, 389, 392, 1335,-32768, 3333, 2455,-32768,-32768, 327,
! 845: -32768,-32768,-32768,-32768, 633,-32768,-32768,-32768,-32768, 2051,
! 846: 680, 1335,-32768,-32768, 1415,-32768,-32768,-32768,-32768,-32768,
! 847: -32768, 562,-32768,-32768, 664, 56, 56, 3369, 2455, 651,
! 848: 233, 499, 499,-32768,-32768, 645,-32768,-32768, 655,-32768,
! 849: 3333,-32768,-32768, 2131, 691, 675,-32768,-32768, 682, 684,
! 850: 2455, 709, 671, 672, 2401, 234, 746, 62, 153,-32768,
! 851: 716, 678,-32768, 683, 3026,-32768, 743, 1095, 64,-32768,
! 852: -32768,-32768,-32768,-32768,-32768, 687, 1495,-32768,-32768, 442,
! 853: -32768,-32768,-32768,-32768,-32768, 3369,-32768,-32768,-32768,-32768,
! 854: -32768, 2455, 714,-32768, 2455, 2455, 3310,-32768,-32768,-32768,
! 855: -32768, 690, 2455, 699,-32768, 719,-32768,-32768,-32768, 351,
! 856: -32768, 71, 1175,-32768,-32768,-32768,-32768, 2455, 1495,-32768,
! 857: -32768, 705, 701, 2455, 762, 586, 704, 707, 2455,-32768,
! 858: -32768, 712,-32768, 2455, 410,-32768, 420, 413,-32768, 944,
! 859: -32768,-32768, 2131, 710,-32768,-32768,-32768, 720,-32768,-32768,
! 860: -32768,-32768, 3351,-32768, 43,-32768, 623,-32768, 623,-32768,
! 861: -32768,-32768, 730,-32768,-32768, 2455,-32768,-32768, 788, 732,
! 862: -32768,-32768,-32768,-32768,-32768,-32768, 734,-32768, 755, 46,
! 863: 731,-32768,-32768, 370, 370,-32768,-32768, 2455, 788, 738,
! 864: 788,-32768,-32768, 2455, 747, 49,-32768,-32768, 754,-32768,
! 865: 519, 745,-32768, 318, 306,-32768,-32768, 756, 519,-32768,
! 866: -32768, 318, 832, 835,-32768
1.1 root 867: };
868:
869: static const short yypgoto[] = {-32768,
1.1.1.8 ! root 870: -32768,-32768,-32768, 837, -367,-32768,-32768,-32768,-32768,-32768,
! 871: -32768,-32768, -6,-32768, -52, 310, -243, 468,-32768, -41,
! 872: -32768, 116, 66,-32768, -298,-32768, -314, 577,-32768,-32768,
! 873: 217,-32768, -8, -166,-32768, 25, 801, 29, -56, 606,
! 874: 9, -220, -584, -60, -190, -139,-32768,-32768,-32768, -147,
! 875: -4, -58,-32768, 364,-32768, 271,-32768, -603,-32768, -638,
! 876: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -73,
! 877: -131, -486, -20, -46,-32768,-32768,-32768,-32768,-32768, 560,
! 878: 1,-32768,-32768, 571, 347, 692, 564, -3, -91, -36,
! 879: -175, -206, 272,-32768,-32768, -288,-32768,-32768,-32768, 346,
! 880: -214, -210,-32768,-32768,-32768,-32768, -140, -426, -711, 266,
! 881: -32768, 73,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
! 882: -32768,-32768, 77,-32768, -728, 20,-32768, 23,-32768, 518,
! 883: -32768, -353,-32768, 515, 520, 382, -303,-32768,-32768,-32768,
! 884: -32768,-32768, 867,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
! 885: -32768,-32768,-32768,-32768,-32768,-32768,-32768, -14, -328,-32768,
! 886: 404,-32768, 356, 204,-32768,-32768,-32768,-32768,-32768,-32768,
! 887: -32768, -254,-32768,-32768,-32768, 205, 449,-32768,-32768,-32768,
! 888: -32768, -22, 649,-32768,-32768, 469,-32768, 248, 479,-32768,
! 889: 573, 579, -90,-32768, -116,-32768,-32768, 322, 414,-32768,
! 890: -32768,-32768,-32768,-32768,-32768, 628,-32768,-32768,-32768
1.1 root 891: };
892:
893:
1.1.1.8 ! root 894: #define YYLAST 3421
1.1 root 895:
896:
1.1.1.8 ! root 897: static const short yytable[] = { 114,
! 898: 127, 196, 47, 49, 51, 327, 61, 73, 425, 56,
! 899: 57, 449, 182, 60, 320, 62, 64, 454, 199, 386,
! 900: 75, 79, 351, 71, 451, 440, 29, 29, 324, 216,
! 901: 30, 30, 164, 692, 206, 556, 272, 485, 80, 278,
! 902: 304, 167, 417, 286, 512, 172, 317, 178, 605, 218,
! 903: 88, 62, 232, 397, 227, 228, 782, 175, 200, 321,
! 904: 230, 129, 389, 71, 817, 338, 827, 265, -104, 285,
! 905: 195, 239, 343, 65, 71, 208, 778, 441, 42, 43,
! 906: 869, 508, 825, 889, 65, 542, 901, 66, 301, 296,
! 907: 739, 229, 388, -1, 129, 184, -2, 530, 165, -34,
! 908: 66, 234, 531, 74, 394, 58, 58, 207, 776, 42,
! 909: 43, 66, 496, 129, 327, 52, 682, 683, 870, 166,
! 910: 67, 890, 818, 271, 902, 174, 271, 185, 186, 68,
! 911: 860, 608, 783, 311, 533, 66, 182, 877, 821, 277,
! 912: 603, 270, 44, 697, 53, 357, 58, 45, 280, -104,
! 913: 873, 83, 281, 876, 206, 878, 302, 46, 289, 290,
! 914: 306, 293, 294, 886, 129, 899, 350, 298, 84, 232,
! 915: 178, 232, 71, 44, 317, 195, 71, 397, 45, 450,
! 916: 845, 483, 354, 447, 347, 317, 195, 487, 445, 592,
! 917: -33, 317, 448, 732, 733, 910, 87, 58, 462, 89,
! 918: 462, 42, 43, 540, 208, 40, 41, 339, 541, 341,
! 919: 577, 387, 182, 710, 176, 42, 43, 393, 345, 342,
! 920: 346, 344, 670, 168, 66, 835, 277, 206, 42, 43,
! 921: 129, 362, 129, 361, 212, 214, 42, 43, 5, 65,
! 922: 7, 126, 213, 66, 169, 129, 9, 10, 11, 173,
! 923: 236, 582, 664, 174, 383, 384, 220, 279, 691, 237,
! 924: 182, 66, 13, 268, 271, 44, 66, 170, 476, 238,
! 925: 45, 639, 269, 270, 408, 399, 453, 677, 240, 44,
! 926: 406, 744, 678, 803, 45, 578, 608, 129, 386, 580,
! 927: 185, 186, 44, 421, 48, 603, 270, 45, 179, 302,
! 928: 44, 19, 180, 306, 241, 45, 21, 50, 788, 553,
! 929: 472, 215, -241, 241, 266, 195, 557, 558, 195, 195,
! 930: 652, 42, 43, 418, 419, 420, 265, 208, 666, 42,
! 931: 43, 616, 510, 511, 625, 42, 43, 627, 185, 186,
! 932: 519, 520, 521, 490, 322, 267, 702, -443, 323, 707,
! 933: 522, 206, 275, 65, 189, 303, 364, 365, 366, 526,
! 934: 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
! 935: 379, 380, 381, 382, 328, 329, 286, 287, 734, 527,
! 936: 66, 908, 565, 271, 291, 44, 909, 299, 843, 271,
! 937: 45, 405, 300, 44, 507, 307, 389, 333, 45, 44,
! 938: 190, 503, 285, 513, 45, 334, 628, 330, 337, 191,
! 939: 652, 180, 725, 129, 462, 340, 328, 329, 348, 640,
! 940: 535, 536, 192, 65, 129, 494, 680, 301, 349, 495,
! 941: 395, 396, 687, 446, 731, 538, 514, 681, 80, 539,
! 942: 515, 699, 688, 607, 611, 700, 184, 484, 455, -155,
! 943: 66, 350, 721, 185, 186, -155, 722, 684, 685, 686,
! 944: 65, 189, 689, 690, 301, 737, 352, 546, 738, 323,
! 945: 67, 547, 180, 483, 487, 363, 656, -248, -248, 68,
! 946: 483, 487, 631, 698, 571, 574, 856, 66, 401, 858,
! 947: 323, 400, 587, 180, 403, 640, -155, 708, 409, 766,
! 948: -155, 395, 396, 80, -441, 588, 589, 190, 71, 413,
! 949: 718, 719, 720, 414, 606, 610, 191, 594, 595, 184,
! 950: 673, 673, 494, 80, 421, 822, 495, 92, 199, 192,
! 951: 604, 609, 437, 766, 457, 277, 526, 618, 620, 438,
! 952: 65, 189, 871, 444, 872, 182, 438, 701, 740, 459,
! 953: 182, 195, 632, 659, 301, 80, 527, 682, 683, 693,
! 954: 223, 225, 668, 669, 65, 601, 464, 66, 587, 604,
! 955: 466, 465, 663, 467, 468, 630, 470, 66, 519, 520,
! 956: 521, 513, 178, 195, 71, 475, 474, 190, 584, 195,
! 957: 195, 66, 478, 791, 480, 569, 191, 268, 609, 587,
! 958: 479, 129, 904, 256, 257, 258, 269, 270, 481, 192,
! 959: 912, 602, 482, 195, 514, 71, 486, 491, 515, 532,
! 960: 603, 270, 505, 312, 550, 509, -304, -304, -304, -304,
! 961: 736, 529, 766, 534, -304, -304, -304, 551, 711, 259,
! 962: 260, 537, 261, 262, 263, 264, 327, 554, 555, 570,
! 963: -304, 559, 573, 65, 189, 539, 673, 762, 579, 302,
! 964: 306, 850, 597, 623, 596, 615, 302, 306, 617, 519,
! 965: 520, 521, 654, 892, 893, 604, 604, 655, 648, 671,
! 966: 66, 665, 609, 609, 679, 519, 520, 521, 672, -304,
! 967: -284, 762, 706, 742, -304, 723, -31, 713, 714, 724,
! 968: 190, 659, 802, 761, -103, 715, 729, 730, 312, 191,
! 969: 743, 5, 6, 7, 8, 775, 317, 604, 317, 9,
! 970: 10, 11, 192, 203, 204, 195, 781, 789, -32, 9,
! 971: 10, 11, 790, 792, 764, 13, 837, 761, 765, 823,
! 972: 795, 623, 796, 828, 61, 696, 798, 799, 800, 804,
! 973: 832, 838, 805, 807, 808, 810, 812, 183, 813, 809,
! 974: -27, -27, -27, -27, 820, 844, 831, 846, -27, -27,
! 975: -27, 848, 824, 80, 19, 833, 847, 834, 849, 21,
! 976: 851, 855, 852, 184, -27, 863, -155, 728, 854, -463,
! 977: 762, 840, -155, 65, 601, 864, 879, 301, 252, 253,
! 978: 254, 255, 256, 257, 258, 195, 874, 71, 883, 648,
! 979: 887, 891, 741, 888, 897, 185, 186, 202, 203, 204,
! 980: 66, 906, 900, -27, 9, 10, 11, 648, -27, 903,
! 981: 648, 914, 911, -155, 915, 895, 761, -155, -27, 39,
! 982: 602, 600, 259, 260, 786, 261, 262, 263, 264, 603,
! 983: 270, 312, 703, -116, -116, -116, -116, -116, -116, -116,
! 984: 826, -116, -116, -116, -116, -116, 797, -116, -116, -116,
! 985: -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
! 986: 201, -116, 398, -116, -116, 254, 255, 256, 257, 258,
! 987: -116, 442, 648, -116, 598, 458, 695, 456, -116, -116,
! 988: -116, 629, 336, 709, -116, -116, 642, 704, 896, -116,
! 989: -116, 463, 488, 898, -116, 861, -116, -116, 501, 862,
! 990: 614, -116, -116, 502, 171, -116, 593, -116, -116, -116,
! 991: -116, 785, -116, 787, 648, 634, 407, -304, -304, -304,
! 992: -304, -304, -304, -304, 853, -304, -304, -304, -304, -304,
! 993: 676, -304, -304, -304, -304, -304, -304, -304, -304, -304,
! 994: -304, -304, -304, -304, 591, -304, 576, -304, -304, 779,
! 995: 184, 572, 492, -155, -304, 717, 0, -304, 493, -155,
! 996: 657, 0, -304, -304, -304, 0, 477, 0, -304, -304,
! 997: 0, 0, 0, -304, -304, 0, 0, 0, -304, 0,
! 998: -304, -304, 185, 186, 0, -304, -304, 0, 0, -304,
! 999: 0, -304, 0, -304, -304, 312, -304, -304, -304, 0,
! 1000: -155, 0, -304, -304, -155, -304, 0, 0, 0, -304,
! 1001: 0, -304, -304, -304, -304, -304, -304, -304, -304, -304,
! 1002: -304, -304, 0, -304, 0, -304, 0, -304, -304, 0,
! 1003: 0, 0, 0, 0, -304, 0, 0, -304, 0, 0,
! 1004: 0, 0, -304, -304, -304, 0, 0, 0, -304, -304,
! 1005: 0, 0, 0, -304, -304, 0, 0, 0, -304, 0,
! 1006: -304, -304, 0, 0, 0, -304, -304, 0, 0, -304,
! 1007: 0, -304, -280, -304, -304, 814, -304, -304, -304, 0,
! 1008: 0, 0, -304, -304, 0, -304, 0, 0, 0, -304,
! 1009: 0, -304, -304, -304, -304, -304, -304, -304, -304, -304,
! 1010: -304, -304, 0, -304, 0, -304, 0, -304, -304, 0,
! 1011: 0, 0, 0, 0, -304, 0, 0, -304, 0, 0,
! 1012: 0, 0, -304, -304, -304, 0, 0, 0, -304, -304,
! 1013: 0, 0, 0, -304, -304, 0, 0, 0, -304, 0,
! 1014: -304, -304, 0, 0, 0, -304, -304, 0, 0, -304,
! 1015: 0, -304, 0, -304, -304, 841, -304, -314, -314, 0,
! 1016: 0, 0, -314, -314, 0, -314, 0, 0, 0, -314,
! 1017: 0, -314, -314, -314, -314, -314, -314, -314, -314, -314,
! 1018: -314, -314, 0, -314, 0, -314, 0, -314, -314, 0,
! 1019: 0, 0, 0, 0, -314, 0, 0, -314, 0, 0,
! 1020: 0, 0, -314, -314, -314, 0, 0, 0, -314, -314,
! 1021: 0, 0, 0, -314, -314, 0, 0, 0, -314, 0,
! 1022: -314, -314, 0, 0, 0, -314, -314, 0, 0, -314,
! 1023: 0, -314, 0, -314, -314, 231, -314, 90, 5, 0,
! 1024: 7, 126, 91, 92, 0, 93, 9, 10, 11, 246,
! 1025: 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
! 1026: 257, 258, 13, 94, 0, 95, 0, 96, 97, 0,
! 1027: 0, 0, 0, 0, 98, 0, 0, 99, 0, 0,
! 1028: 0, 0, 100, 101, 102, 0, 0, 0, 103, 104,
! 1029: 0, 0, 0, 105, 106, 0, 0, 0, 107, 0,
! 1030: 108, 19, 0, 0, 0, 109, 21, 0, 0, 110,
! 1031: 0, 0, 0, 111, 112, 643, -86, 644, 43, 0,
! 1032: 0, 0, 91, 92, 244, 93, 245, 246, 247, 248,
! 1033: 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
! 1034: 0, 0, 0, 94, 0, 95, 0, 96, 97, 0,
! 1035: 0, 0, 0, 0, 98, 0, 0, 99, 0, 0,
! 1036: 0, 0, 100, 101, 102, 0, 0, 0, 103, 104,
! 1037: 0, 0, 645, 105, 106, 0, 0, 0, 107, 0,
! 1038: 108, 44, 0, 0, 0, 109, 45, 0, 0, 110,
! 1039: 0, 0, -183, 111, 112, 643, 646, 644, 43, 0,
! 1040: 0, 0, 91, 92, 0, 93, 247, 248, 249, 250,
! 1041: 251, 252, 253, 254, 255, 256, 257, 258, 0, 0,
! 1042: 0, 0, 0, 94, 0, 95, 0, 96, 97, 0,
! 1043: 0, 0, 0, 0, 98, 0, 0, 99, 0, 0,
! 1044: 0, 0, 100, 101, 102, 0, 0, 0, 103, 104,
! 1045: 0, 0, 645, 105, 106, 0, 0, 0, 107, 0,
! 1046: 108, 44, 0, 0, 0, 109, 45, 0, 0, 110,
! 1047: 0, 0, -238, 111, 112, 643, 646, 644, 43, 0,
! 1048: 0, 0, 91, 92, 0, 93, 248, 249, 250, 251,
! 1049: 252, 253, 254, 255, 256, 257, 258, 0, 0, 0,
! 1050: 0, 0, 0, 94, 0, 95, 0, 96, 97, 0,
! 1051: 0, 0, 0, 0, 98, 0, 0, 99, 0, 0,
! 1052: 0, 0, 100, 101, 102, 0, 0, 0, 103, 104,
! 1053: 0, 0, 645, 105, 106, 0, 0, 0, 107, 0,
! 1054: 108, 44, 0, 0, 0, 109, 45, 0, 0, 110,
! 1055: 621, 0, 90, 111, 112, 0, 646, 91, 92, 331,
! 1056: 93, 0, -23, -23, -23, -23, 0, 0, 0, 0,
! 1057: -23, -23, -23, 0, 0, 0, 0, 0, 94, 0,
! 1058: 95, 0, 96, 97, 0, 184, -23, 0, -155, 98,
! 1059: 0, 0, 99, 0, -155, 0, 0, 100, 101, 102,
! 1060: 0, 0, 0, 103, 104, 0, 0, 0, 105, 106,
! 1061: 0, 0, 0, 107, 0, 108, 0, 185, 186, 0,
! 1062: 109, 0, 0, 0, 110, -23, 0, 0, 111, 112,
! 1063: -23, 622, 0, 0, 0, -155, 0, 0, 325, -155,
! 1064: -23, -19, -19, -19, -19, 0, 0, 0, 0, -19,
! 1065: -19, -19, 0, 0, 0, 0, 0, 312, 0, 0,
! 1066: -107, -107, -107, -107, 184, -19, -107, -155, -107, -107,
! 1067: -107, 0, 0, -155, 312, 0, 0, -465, -465, -465,
! 1068: -465, 0, 0, 0, -107, -465, -465, -465, 249, 250,
! 1069: 251, 252, 253, 254, 255, 256, 257, 258, 0, 0,
! 1070: 0, -465, 0, 5, -19, 7, 276, 0, 0, -19,
! 1071: 0, 9, 10, 11, -155, 0, 90, 0, -155, -19,
! 1072: 0, 91, 92, -107, 93, 0, 0, 13, -107, 66,
! 1073: 251, 252, 253, 254, 255, 256, 257, 258, -107, 0,
! 1074: -465, 0, 94, 0, 95, -465, 96, 97, 0, 268,
! 1075: 0, 0, 0, 98, 0, -465, 99, 0, 269, 270,
! 1076: 0, 100, 101, 102, 0, 0, 19, 103, 104, 0,
! 1077: 0, 21, 105, 106, 0, 90, 0, 107, 0, 108,
! 1078: 91, 92, 0, 93, 109, 0, 0, 0, 110, 0,
! 1079: 0, 0, 111, 112, 0, 0, 310, 0, 0, 0,
! 1080: 0, 94, 0, 95, 0, 96, 97, 0, 0, 0,
! 1081: 0, 0, 98, 0, 0, 99, 0, 0, 0, 0,
! 1082: 100, 101, 102, 0, 0, 0, 103, 104, 0, 0,
! 1083: 0, 105, 106, 0, 90, 0, 107, 0, 108, 91,
! 1084: 92, 0, 93, 109, 0, 0, 0, 110, 0, 0,
! 1085: 0, 111, 112, 0, 0, 392, 0, 0, 0, 0,
! 1086: 94, 0, 95, 0, 96, 97, 0, 0, 0, 0,
! 1087: 0, 98, 0, 0, 99, 0, 0, 0, 0, 100,
! 1088: 101, 102, 0, 0, 0, 103, 104, 0, 0, 0,
! 1089: 105, 106, 0, 90, 0, 107, 0, 108, 91, 92,
! 1090: 0, 93, 109, 0, 0, 0, 110, 0, 0, 0,
! 1091: 111, 112, 0, 0, 452, 0, 0, 0, 0, 94,
! 1092: 0, 95, 0, 96, 97, 0, 0, 0, 0, 0,
! 1093: 98, 0, 0, 99, 0, 0, 0, 0, 100, 101,
! 1094: 102, 0, 0, 0, 103, 104, 0, 0, 0, 105,
! 1095: 106, 0, 90, 0, 107, 0, 108, 91, 92, 0,
! 1096: 93, 109, 0, 0, 0, 110, 0, 0, 0, 111,
! 1097: 112, 0, 0, 489, 0, 0, 0, 0, 94, 0,
! 1098: 95, 0, 96, 97, 0, 0, 0, 0, 0, 98,
! 1099: 0, 0, 99, 0, 0, 0, 0, 100, 101, 102,
! 1100: 0, 0, 0, 103, 104, 0, 0, 0, 105, 106,
! 1101: 0, 0, 0, 107, 0, 108, 0, 0, 0, 0,
! 1102: 109, 0, 0, 0, 110, 0, 0, 0, 111, 112,
! 1103: 0, 0, 735, 644, 745, 6, 7, 8, 91, 92,
! 1104: 0, 93, 9, 10, 11, 746, 0, 747, 748, 749,
! 1105: 750, 751, 752, 753, 754, 755, 756, 757, 13, 94,
! 1106: 0, 95, 0, 96, 97, 0, 0, 0, 0, 0,
! 1107: 98, 0, 0, 99, 0, 0, 0, 0, 100, 101,
! 1108: 102, 0, 0, 0, 103, 104, 0, 0, 0, 105,
! 1109: 106, 0, 0, 0, 107, 0, 108, 758, 0, 0,
! 1110: 0, 109, 759, 0, 0, 110, 0, 760, 0, 111,
! 1111: 112, 0, 350, 644, 43, 0, 0, 0, 91, 92,
! 1112: 0, 93, 0, 0, 0, 746, 0, 747, 748, 749,
! 1113: 750, 751, 752, 753, 754, 755, 756, 757, 0, 94,
! 1114: 0, 95, 0, 96, 97, 0, 0, 0, 0, 0,
! 1115: 98, 0, 0, 99, 0, 0, 0, 0, 100, 101,
! 1116: 102, 0, 0, 0, 103, 104, 0, 90, 0, 105,
! 1117: 106, 0, 91, 92, 107, 93, 108, 44, 0, 0,
! 1118: 0, 109, 45, 0, 0, 110, 0, 760, 0, 111,
! 1119: 112, 0, 350, 94, 0, 95, 0, 96, 97, 0,
! 1120: 0, 0, 0, 0, 98, 0, 0, 99, 0, 0,
! 1121: 0, 0, 100, 101, 102, 0, 0, 0, 103, 104,
! 1122: 0, 0, 0, 105, 106, 0, 0, 0, 107, 0,
! 1123: 108, 0, 0, 0, 0, 109, 0, 0, 0, 110,
! 1124: 0, 0, 0, 111, 112, 0, 471, 132, 133, 0,
! 1125: 134, 135, 0, 0, 0, 136, 137, 138, 139, 140,
1.1.1.7 root 1126: 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
1.1.1.8 ! root 1127: 151, 152, 153, 154, 0, 90, 5, 0, 7, 126,
! 1128: 91, 92, 155, 93, 9, 10, 11, 250, 251, 252,
! 1129: 253, 254, 255, 256, 257, 258, 0, 0, 0, 0,
! 1130: 13, 94, 0, 95, 0, 96, 97, 0, 0, 0,
! 1131: 0, 0, 98, 0, 0, 99, 157, 0, 0, 0,
! 1132: 100, 101, 102, 0, 0, 283, 103, 104, 0, 90,
! 1133: 0, 105, 106, 0, 91, 92, 107, 93, 108, 19,
! 1134: 0, 0, 0, 109, 21, 0, 0, 110, 0, 0,
! 1135: 0, 111, 112, 0, 0, 94, 0, 95, 0, 96,
! 1136: 97, 0, 0, 0, 0, 0, 98, 0, 0, 99,
! 1137: 0, 0, 0, 0, 100, 101, 102, 0, 0, 0,
! 1138: 103, 104, 0, 90, 0, 105, 106, 0, 91, 92,
! 1139: 107, 93, 108, 353, 0, 0, 0, 109, 0, 0,
! 1140: 0, 110, 0, 0, 0, 111, 112, 0, 0, 94,
! 1141: 0, 95, 0, 96, 97, 0, 0, 0, 0, 0,
! 1142: 98, 0, 0, 99, 0, 0, 0, 0, 100, 101,
! 1143: 102, 0, 0, 0, 103, 104, 0, 90, 0, 105,
! 1144: 106, 0, 91, 92, 107, 93, 108, 0, 0, 0,
! 1145: 0, 109, 0, 0, 0, 110, 0, 801, 0, 111,
! 1146: 112, 0, 0, 94, 0, 95, 0, 96, 97, 0,
! 1147: 0, 0, 0, 0, 98, 0, 0, 99, 0, 0,
! 1148: 0, 0, 100, 101, 102, 0, 0, 0, 103, 104,
! 1149: 0, 90, 0, 105, 106, 0, 91, 92, 107, 93,
! 1150: 108, 0, 0, 0, 0, 109, 0, 0, 0, 110,
! 1151: 0, 0, 0, 111, 112, 0, 0, 94, 0, 95,
! 1152: 0, 96, 97, 0, 0, 0, 0, 0, 98, 0,
! 1153: 0, 99, 0, 0, 0, 0, 100, 101, 102, 0,
! 1154: 0, 0, 103, 104, 0, 90, 0, 222, 106, 0,
! 1155: 91, 92, 107, 93, 108, 0, 0, 0, 0, 109,
! 1156: 0, 0, 0, 110, 0, 0, 0, 111, 112, 0,
! 1157: 0, 94, 0, 95, 0, 96, 97, 0, 0, 0,
! 1158: 0, 0, 98, 0, 0, 99, 0, 0, 0, 0,
! 1159: 100, 101, 102, 0, 0, 0, 103, 104, 0, 599,
! 1160: 0, 224, 106, 0, 91, 92, 107, 93, 108, 0,
! 1161: 0, 0, 0, 109, 0, 0, 0, 110, 0, 0,
! 1162: 0, 111, 112, 0, 0, 94, 0, 95, 0, 96,
! 1163: 97, 0, 0, 0, 0, 0, 98, 0, 0, 99,
! 1164: 0, 0, 0, 0, 100, 101, 102, 0, 0, 0,
! 1165: 103, 104, 0, 0, 0, 105, 106, 0, 0, 0,
! 1166: 107, 0, 108, 0, 0, 0, 0, 109, 0, 0,
! 1167: 0, 110, 0, 0, 524, 111, 112, 5, 0, 7,
! 1168: 126, 0, 0, 0, 0, 9, 10, 11, 0, 0,
! 1169: 0, 524, 0, 0, 5, 0, 7, 126, 0, 0,
1.1.1.7 root 1170: 0, 13, 9, 10, 11, 0, 0, 0, 0, 0,
1.1.1.8 ! root 1171: 0, 0, 0, 0, 0, 0, 0, 0, 13, 0,
! 1172: 0, 0, 0, 0, 0, 0, 4, 0, -120, 5,
! 1173: 6, 7, 8, 0, 0, 0, 0, 9, 10, 11,
! 1174: 19, -417, -417, -417, 0, 21, 0, 0, 0, 0,
! 1175: 525, -417, 12, 13, 0, -120, 0, 19, -416, -416,
! 1176: -416, 0, 21, 0, 0, 0, 0, 525, -416, 0,
! 1177: 0, 0, 0, 14, 15, -120, 0, 0, 0, 0,
! 1178: 0, 0, 0, 0, -120, 0, 16, 17, 18, 0,
! 1179: 0, 0, 19, 0, 0, 0, 20, 21, 22, 23,
! 1180: 0, 4, 24, -120, 5, 6, 7, 8, 0, 0,
! 1181: 0, 0, 9, 10, 11, 0, 0, 0, 0, 0,
! 1182: 0, 0, 0, 0, 0, 0, 0, 0, 13, 4,
! 1183: -120, -120, 5, 6, 7, 8, 0, 0, 0, 0,
! 1184: 9, 10, 11, 0, 0, 0, 0, 0, 510, 511,
! 1185: -120, 0, 0, 0, 0, 0, 13, 0, -120, -120,
! 1186: 0, 0, 0, 0, 0, 0, 0, 19, 0, 0,
! 1187: 0, 0, 21, 0, 0, 0, 0, 24, -120, 426,
! 1188: 0, 427, 5, 6, 7, 8, 0, -120, 428, 0,
! 1189: 9, 10, 11, 0, 0, 19, 0, 0, 426, 0,
! 1190: 21, 5, 6, 7, 8, 24, 13, 428, 0, 9,
! 1191: 10, 11, 5, 0, 7, 276, 0, 0, 0, 0,
! 1192: 9, 10, 11, 0, 0, 13, 0, 0, 0, 5,
! 1193: 76, 7, 77, 0, 0, 0, 13, 9, 10, 11,
! 1194: 0, 0, 0, 0, 0, 19, 0, 0, 0, 0,
! 1195: 21, 0, 0, 13, -364, 0, 0, 5, 76, 7,
! 1196: 77, 0, 0, 0, 19, 9, 10, 11, 0, 21,
! 1197: 0, 0, 0, -364, 0, 19, 0, 0, 0, 0,
! 1198: 21, 13, 0, 0, 0, -250, -250, 0, 0, 0,
! 1199: 0, 0, 19, 0, 0, 0, 0, 21, 5, 76,
! 1200: 7, 77, 78, 0, 0, 0, 9, 10, 11, 5,
! 1201: 76, 7, 77, 0, 0, 0, 0, 9, 10, 11,
! 1202: 19, 0, 13, 0, 0, 21, 0, 0, 132, 133,
! 1203: 575, 134, 135, 13, 0, 0, 136, 137, 138, 139,
! 1204: 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
! 1205: 150, 151, 152, 153, 154, 0, 0, 0, 0, 0,
! 1206: 0, 19, 0, 155, 0, 0, 21, 0, 0, 0,
! 1207: 0, 619, 19, 0, 0, 0, 0, 21, 0, 0,
! 1208: 0, 0, 811, 0, 156, 0, 0, 0, 0, 0,
! 1209: 132, 133, 0, 134, 135, 0, 0, 157, 136, 137,
! 1210: 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
! 1211: 148, 149, 150, 151, 152, 153, 154, 0, 132, 133,
! 1212: 0, 134, 135, 0, 0, 356, 136, 137, 138, 139,
! 1213: 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
! 1214: 150, 151, 152, 153, 154, 0, 0, 0, 0, 0,
! 1215: 0, 0, 0, 155, 132, 133, 0, 134, 135, 157,
! 1216: 0, 0, 136, 137, 138, 139, 140, 141, 142, 143,
! 1217: 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
! 1218: 154, 0, 5, 6, 7, 8, 0, 157, 428, 564,
! 1219: 9, 10, 11, 5, 6, 7, 8, 0, 0, 613,
! 1220: 0, 9, 10, 11, 0, 0, 13, 0, 0, 0,
! 1221: 5, 76, 7, 77, 0, 0, 0, 13, 9, 10,
! 1222: 11, 0, 0, 157, 0, 0, 0, 5, 6, 7,
! 1223: 8, 0, 0, 0, 13, 9, 10, 11, 5, 0,
! 1224: 7, 126, 0, 0, 0, 19, 9, 10, 11, 0,
! 1225: 21, 13, 0, 0, 0, 5, 19, 7, 276, 0,
! 1226: 0, 21, 13, 9, 10, 11, 0, 0, 0, 0,
! 1227: 0, 0, 0, 19, 0, 0, 0, 0, 21, 13,
! 1228: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 1229: 19, 0, 0, 0, 0, 21, 0, 0, 0, 829,
1.1.1.7 root 1230: 0, 19, 0, 0, 0, 0, 21, 0, 0, 0,
1231: 0, 0, 0, 0, 0, 0, 0, 0, 19, 0,
1.1.1.8 ! root 1232: 0, 0, 0, 21, 242, 243, 244, 830, 245, 246,
! 1233: 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
! 1234: 257, 258, 66, 0, 0, 0, 0, 242, 243, 244,
! 1235: 0, 245, 246, 247, 248, 249, 250, 251, 252, 253,
! 1236: 254, 255, 256, 257, 258, 242, 243, 244, 868, 245,
! 1237: 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
! 1238: 256, 257, 258, 242, 243, 244, 0, 245, 246, 247,
! 1239: 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
! 1240: 258
1.1 root 1241: };
1242:
1.1.1.5 root 1243: static const short yycheck[] = { 52,
1.1.1.8 ! root 1244: 53, 75, 9, 10, 11, 196, 21, 28, 307, 16,
! 1245: 17, 326, 71, 20, 190, 22, 23, 332, 79, 263,
! 1246: 29, 30, 233, 28, 328, 314, 2, 3, 195, 86,
! 1247: 2, 3, 55, 618, 81, 462, 128, 391, 30, 131,
! 1248: 180, 56, 297, 160, 412, 60, 187, 68, 535, 86,
! 1249: 50, 58, 105, 274, 96, 97, 1, 64, 79, 191,
! 1250: 102, 53, 269, 68, 1, 213, 795, 9, 1, 160,
! 1251: 75, 113, 220, 3, 79, 82, 715, 10, 3, 4,
! 1252: 38, 410, 794, 38, 3, 1, 38, 30, 7, 45,
! 1253: 694, 98, 268, 0, 86, 27, 0, 76, 38, 38,
! 1254: 30, 105, 81, 77, 271, 45, 45, 1, 712, 3,
! 1255: 4, 30, 401, 105, 305, 59, 59, 60, 76, 59,
! 1256: 50, 76, 59, 128, 76, 81, 131, 59, 60, 59,
! 1257: 842, 50, 77, 186, 76, 30, 195, 866, 777, 131,
! 1258: 59, 60, 67, 38, 59, 236, 45, 72, 155, 82,
! 1259: 862, 82, 156, 865, 201, 867, 177, 82, 165, 166,
! 1260: 181, 168, 169, 875, 156, 894, 82, 174, 65, 222,
! 1261: 191, 224, 177, 67, 315, 180, 181, 398, 72, 327,
! 1262: 819, 388, 235, 323, 226, 326, 191, 394, 320, 518,
! 1263: 38, 332, 324, 680, 681, 907, 82, 45, 339, 82,
! 1264: 341, 3, 4, 76, 211, 77, 78, 216, 81, 218,
! 1265: 499, 264, 271, 640, 59, 3, 4, 270, 222, 219,
! 1266: 224, 221, 590, 38, 30, 810, 218, 274, 3, 4,
! 1267: 222, 238, 224, 237, 59, 1, 3, 4, 4, 3,
! 1268: 6, 7, 78, 30, 59, 237, 12, 13, 14, 77,
! 1269: 59, 506, 581, 81, 261, 262, 78, 59, 612, 59,
! 1270: 319, 30, 28, 50, 269, 67, 30, 82, 359, 59,
! 1271: 72, 560, 59, 60, 289, 279, 329, 76, 76, 67,
! 1272: 287, 708, 81, 50, 72, 500, 50, 279, 532, 504,
! 1273: 59, 60, 67, 300, 82, 59, 60, 72, 77, 320,
! 1274: 67, 67, 81, 324, 81, 72, 72, 82, 76, 457,
! 1275: 352, 77, 78, 81, 75, 320, 464, 465, 323, 324,
! 1276: 564, 3, 4, 5, 6, 7, 9, 334, 583, 3,
! 1277: 4, 542, 48, 49, 549, 3, 4, 552, 59, 60,
! 1278: 68, 69, 70, 396, 77, 76, 635, 63, 81, 638,
! 1279: 78, 398, 76, 3, 4, 76, 241, 242, 243, 416,
! 1280: 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
! 1281: 255, 256, 257, 258, 59, 60, 493, 38, 682, 416,
! 1282: 30, 76, 473, 388, 82, 67, 81, 77, 815, 394,
! 1283: 72, 59, 59, 67, 409, 59, 603, 36, 72, 67,
! 1284: 50, 405, 493, 412, 72, 81, 554, 77, 67, 59,
! 1285: 654, 81, 667, 405, 555, 77, 59, 60, 76, 560,
! 1286: 429, 430, 72, 3, 416, 401, 602, 7, 76, 401,
! 1287: 59, 60, 608, 76, 678, 77, 412, 604, 430, 81,
! 1288: 412, 77, 609, 535, 536, 81, 27, 76, 333, 30,
! 1289: 30, 82, 77, 59, 60, 36, 81, 605, 606, 607,
! 1290: 3, 4, 610, 611, 7, 77, 76, 443, 77, 81,
! 1291: 50, 443, 81, 680, 681, 77, 567, 77, 78, 59,
! 1292: 687, 688, 556, 631, 491, 494, 77, 30, 77, 77,
! 1293: 81, 76, 513, 81, 10, 636, 77, 638, 76, 710,
! 1294: 81, 59, 60, 495, 63, 514, 515, 50, 513, 82,
! 1295: 658, 659, 660, 76, 535, 536, 59, 526, 527, 27,
! 1296: 594, 595, 498, 515, 531, 780, 498, 9, 589, 72,
! 1297: 535, 536, 83, 744, 78, 527, 593, 546, 547, 77,
! 1298: 3, 4, 857, 36, 859, 604, 77, 78, 696, 76,
! 1299: 609, 556, 559, 574, 7, 547, 593, 59, 60, 620,
! 1300: 93, 94, 585, 586, 3, 4, 78, 30, 589, 574,
! 1301: 76, 78, 579, 76, 78, 38, 76, 30, 68, 69,
! 1302: 70, 590, 603, 588, 589, 76, 38, 50, 78, 594,
! 1303: 595, 30, 76, 741, 38, 480, 59, 50, 603, 620,
! 1304: 76, 593, 901, 50, 51, 52, 59, 60, 76, 72,
! 1305: 909, 50, 83, 618, 590, 620, 83, 76, 590, 59,
! 1306: 59, 60, 82, 1, 36, 63, 4, 5, 6, 7,
! 1307: 683, 63, 843, 76, 12, 13, 14, 83, 645, 54,
! 1308: 55, 76, 57, 58, 59, 60, 837, 78, 81, 83,
! 1309: 28, 32, 77, 3, 4, 81, 730, 710, 76, 680,
! 1310: 681, 76, 76, 548, 77, 3, 687, 688, 77, 68,
! 1311: 69, 70, 38, 884, 885, 680, 681, 83, 563, 78,
! 1312: 30, 63, 687, 688, 76, 68, 69, 70, 38, 67,
! 1313: 78, 744, 78, 700, 72, 78, 38, 38, 78, 63,
! 1314: 50, 722, 755, 710, 82, 81, 38, 81, 1, 59,
! 1315: 78, 4, 5, 6, 7, 36, 857, 722, 859, 12,
! 1316: 13, 14, 72, 6, 7, 730, 63, 83, 38, 12,
! 1317: 13, 14, 78, 59, 710, 28, 810, 744, 710, 792,
! 1318: 59, 626, 59, 796, 759, 630, 38, 77, 77, 756,
! 1319: 803, 812, 7, 38, 77, 764, 765, 1, 16, 77,
! 1320: 4, 5, 6, 7, 78, 818, 77, 63, 12, 13,
! 1321: 14, 824, 59, 765, 67, 77, 76, 59, 17, 72,
! 1322: 77, 834, 76, 27, 28, 76, 30, 672, 77, 82,
! 1323: 843, 812, 36, 3, 4, 76, 9, 7, 46, 47,
! 1324: 48, 49, 50, 51, 52, 810, 77, 812, 77, 694,
! 1325: 77, 81, 697, 59, 77, 59, 60, 5, 6, 7,
! 1326: 30, 77, 76, 67, 12, 13, 14, 712, 72, 76,
! 1327: 715, 0, 77, 77, 0, 888, 843, 81, 82, 3,
! 1328: 50, 532, 54, 55, 729, 57, 58, 59, 60, 59,
! 1329: 60, 1, 636, 3, 4, 5, 6, 7, 8, 9,
! 1330: 795, 11, 12, 13, 14, 15, 751, 17, 18, 19,
! 1331: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
! 1332: 80, 31, 277, 33, 34, 48, 49, 50, 51, 52,
! 1333: 40, 315, 777, 43, 531, 336, 626, 334, 48, 49,
! 1334: 50, 555, 211, 638, 54, 55, 561, 636, 889, 59,
! 1335: 60, 341, 395, 891, 64, 843, 66, 67, 404, 843,
! 1336: 539, 71, 72, 404, 58, 75, 523, 77, 78, 79,
! 1337: 80, 727, 82, 730, 819, 1, 288, 3, 4, 5,
! 1338: 6, 7, 8, 9, 829, 11, 12, 13, 14, 15,
! 1339: 595, 17, 18, 19, 20, 21, 22, 23, 24, 25,
! 1340: 26, 27, 28, 29, 516, 31, 498, 33, 34, 722,
! 1341: 27, 493, 400, 30, 40, 654, -1, 43, 400, 36,
! 1342: 567, -1, 48, 49, 50, -1, 359, -1, 54, 55,
! 1343: -1, -1, -1, 59, 60, -1, -1, -1, 64, -1,
! 1344: 66, 67, 59, 60, -1, 71, 72, -1, -1, 75,
! 1345: -1, 77, -1, 79, 80, 1, 82, 3, 4, -1,
! 1346: 77, -1, 8, 9, 81, 11, -1, -1, -1, 15,
! 1347: -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
! 1348: 26, 27, -1, 29, -1, 31, -1, 33, 34, -1,
! 1349: -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
! 1350: -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
! 1351: -1, -1, -1, 59, 60, -1, -1, -1, 64, -1,
! 1352: 66, 67, -1, -1, -1, 71, 72, -1, -1, 75,
! 1353: -1, 77, 78, 79, 80, 1, 82, 3, 4, -1,
1.1.1.4 root 1354: -1, -1, 8, 9, -1, 11, -1, -1, -1, 15,
1.1.1.5 root 1355: -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1.1.1.8 ! root 1356: 26, 27, -1, 29, -1, 31, -1, 33, 34, -1,
! 1357: -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
! 1358: -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
! 1359: -1, -1, -1, 59, 60, -1, -1, -1, 64, -1,
! 1360: 66, 67, -1, -1, -1, 71, 72, -1, -1, 75,
! 1361: -1, 77, -1, 79, 80, 1, 82, 3, 4, -1,
1.1.1.7 root 1362: -1, -1, 8, 9, -1, 11, -1, -1, -1, 15,
1363: -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1.1.1.8 ! root 1364: 26, 27, -1, 29, -1, 31, -1, 33, 34, -1,
! 1365: -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
! 1366: -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
! 1367: -1, -1, -1, 59, 60, -1, -1, -1, 64, -1,
! 1368: 66, 67, -1, -1, -1, 71, 72, -1, -1, 75,
! 1369: -1, 77, -1, 79, 80, 1, 82, 3, 4, -1,
! 1370: 6, 7, 8, 9, -1, 11, 12, 13, 14, 40,
! 1371: 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
! 1372: 51, 52, 28, 29, -1, 31, -1, 33, 34, -1,
! 1373: -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
! 1374: -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
! 1375: -1, -1, -1, 59, 60, -1, -1, -1, 64, -1,
! 1376: 66, 67, -1, -1, -1, 71, 72, -1, -1, 75,
! 1377: -1, -1, -1, 79, 80, 1, 82, 3, 4, -1,
! 1378: -1, -1, 8, 9, 37, 11, 39, 40, 41, 42,
! 1379: 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
! 1380: -1, -1, -1, 29, -1, 31, -1, 33, 34, -1,
! 1381: -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
! 1382: -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
! 1383: -1, -1, 58, 59, 60, -1, -1, -1, 64, -1,
! 1384: 66, 67, -1, -1, -1, 71, 72, -1, -1, 75,
! 1385: -1, -1, 78, 79, 80, 1, 82, 3, 4, -1,
! 1386: -1, -1, 8, 9, -1, 11, 41, 42, 43, 44,
! 1387: 45, 46, 47, 48, 49, 50, 51, 52, -1, -1,
! 1388: -1, -1, -1, 29, -1, 31, -1, 33, 34, -1,
! 1389: -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
! 1390: -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
! 1391: -1, -1, 58, 59, 60, -1, -1, -1, 64, -1,
! 1392: 66, 67, -1, -1, -1, 71, 72, -1, -1, 75,
! 1393: -1, -1, 78, 79, 80, 1, 82, 3, 4, -1,
! 1394: -1, -1, 8, 9, -1, 11, 42, 43, 44, 45,
! 1395: 46, 47, 48, 49, 50, 51, 52, -1, -1, -1,
! 1396: -1, -1, -1, 29, -1, 31, -1, 33, 34, -1,
! 1397: -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
! 1398: -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
! 1399: -1, -1, 58, 59, 60, -1, -1, -1, 64, -1,
! 1400: 66, 67, -1, -1, -1, 71, 72, -1, -1, 75,
! 1401: 1, -1, 3, 79, 80, -1, 82, 8, 9, 1,
! 1402: 11, -1, 4, 5, 6, 7, -1, -1, -1, -1,
! 1403: 12, 13, 14, -1, -1, -1, -1, -1, 29, -1,
! 1404: 31, -1, 33, 34, -1, 27, 28, -1, 30, 40,
! 1405: -1, -1, 43, -1, 36, -1, -1, 48, 49, 50,
! 1406: -1, -1, -1, 54, 55, -1, -1, -1, 59, 60,
! 1407: -1, -1, -1, 64, -1, 66, -1, 59, 60, -1,
! 1408: 71, -1, -1, -1, 75, 67, -1, -1, 79, 80,
! 1409: 72, 82, -1, -1, -1, 77, -1, -1, 1, 81,
! 1410: 82, 4, 5, 6, 7, -1, -1, -1, -1, 12,
! 1411: 13, 14, -1, -1, -1, -1, -1, 1, -1, -1,
! 1412: 4, 5, 6, 7, 27, 28, 10, 30, 12, 13,
! 1413: 14, -1, -1, 36, 1, -1, -1, 4, 5, 6,
! 1414: 7, -1, -1, -1, 28, 12, 13, 14, 43, 44,
! 1415: 45, 46, 47, 48, 49, 50, 51, 52, -1, -1,
! 1416: -1, 28, -1, 4, 67, 6, 7, -1, -1, 72,
! 1417: -1, 12, 13, 14, 77, -1, 3, -1, 81, 82,
! 1418: -1, 8, 9, 67, 11, -1, -1, 28, 72, 30,
! 1419: 45, 46, 47, 48, 49, 50, 51, 52, 82, -1,
! 1420: 67, -1, 29, -1, 31, 72, 33, 34, -1, 50,
! 1421: -1, -1, -1, 40, -1, 82, 43, -1, 59, 60,
! 1422: -1, 48, 49, 50, -1, -1, 67, 54, 55, -1,
! 1423: -1, 72, 59, 60, -1, 3, -1, 64, -1, 66,
! 1424: 8, 9, -1, 11, 71, -1, -1, -1, 75, -1,
! 1425: -1, -1, 79, 80, -1, -1, 83, -1, -1, -1,
! 1426: -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
! 1427: -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
! 1428: 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
! 1429: -1, 59, 60, -1, 3, -1, 64, -1, 66, 8,
! 1430: 9, -1, 11, 71, -1, -1, -1, 75, -1, -1,
! 1431: -1, 79, 80, -1, -1, 83, -1, -1, -1, -1,
! 1432: 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
! 1433: -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
! 1434: 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
! 1435: 59, 60, -1, 3, -1, 64, -1, 66, 8, 9,
! 1436: -1, 11, 71, -1, -1, -1, 75, -1, -1, -1,
! 1437: 79, 80, -1, -1, 83, -1, -1, -1, -1, 29,
! 1438: -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
! 1439: 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
! 1440: 50, -1, -1, -1, 54, 55, -1, -1, -1, 59,
! 1441: 60, -1, 3, -1, 64, -1, 66, 8, 9, -1,
! 1442: 11, 71, -1, -1, -1, 75, -1, -1, -1, 79,
! 1443: 80, -1, -1, 83, -1, -1, -1, -1, 29, -1,
! 1444: 31, -1, 33, 34, -1, -1, -1, -1, -1, 40,
! 1445: -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
! 1446: -1, -1, -1, 54, 55, -1, -1, -1, 59, 60,
! 1447: -1, -1, -1, 64, -1, 66, -1, -1, -1, -1,
! 1448: 71, -1, -1, -1, 75, -1, -1, -1, 79, 80,
! 1449: -1, -1, 83, 3, 4, 5, 6, 7, 8, 9,
! 1450: -1, 11, 12, 13, 14, 15, -1, 17, 18, 19,
1.1.1.7 root 1451: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1.1.1.8 ! root 1452: -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
! 1453: 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
! 1454: 50, -1, -1, -1, 54, 55, -1, -1, -1, 59,
! 1455: 60, -1, -1, -1, 64, -1, 66, 67, -1, -1,
! 1456: -1, 71, 72, -1, -1, 75, -1, 77, -1, 79,
! 1457: 80, -1, 82, 3, 4, -1, -1, -1, 8, 9,
! 1458: -1, 11, -1, -1, -1, 15, -1, 17, 18, 19,
! 1459: 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
! 1460: -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
! 1461: 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
! 1462: 50, -1, -1, -1, 54, 55, -1, 3, -1, 59,
! 1463: 60, -1, 8, 9, 64, 11, 66, 67, -1, -1,
! 1464: -1, 71, 72, -1, -1, 75, -1, 77, -1, 79,
! 1465: 80, -1, 82, 29, -1, 31, -1, 33, 34, -1,
! 1466: -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
! 1467: -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
! 1468: -1, -1, -1, 59, 60, -1, -1, -1, 64, -1,
! 1469: 66, -1, -1, -1, -1, 71, -1, -1, -1, 75,
! 1470: -1, -1, -1, 79, 80, -1, 82, 3, 4, -1,
! 1471: 6, 7, -1, -1, -1, 11, 12, 13, 14, 15,
! 1472: 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
! 1473: 26, 27, 28, 29, -1, 3, 4, -1, 6, 7,
! 1474: 8, 9, 38, 11, 12, 13, 14, 44, 45, 46,
! 1475: 47, 48, 49, 50, 51, 52, -1, -1, -1, -1,
! 1476: 28, 29, -1, 31, -1, 33, 34, -1, -1, -1,
! 1477: -1, -1, 40, -1, -1, 43, 72, -1, -1, -1,
! 1478: 48, 49, 50, -1, -1, 81, 54, 55, -1, 3,
! 1479: -1, 59, 60, -1, 8, 9, 64, 11, 66, 67,
! 1480: -1, -1, -1, 71, 72, -1, -1, 75, -1, -1,
! 1481: -1, 79, 80, -1, -1, 29, -1, 31, -1, 33,
! 1482: 34, -1, -1, -1, -1, -1, 40, -1, -1, 43,
! 1483: -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
! 1484: 54, 55, -1, 3, -1, 59, 60, -1, 8, 9,
! 1485: 64, 11, 66, 67, -1, -1, -1, 71, -1, -1,
! 1486: -1, 75, -1, -1, -1, 79, 80, -1, -1, 29,
! 1487: -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
! 1488: 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
! 1489: 50, -1, -1, -1, 54, 55, -1, 3, -1, 59,
! 1490: 60, -1, 8, 9, 64, 11, 66, -1, -1, -1,
! 1491: -1, 71, -1, -1, -1, 75, -1, 77, -1, 79,
! 1492: 80, -1, -1, 29, -1, 31, -1, 33, 34, -1,
! 1493: -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
! 1494: -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
! 1495: -1, 3, -1, 59, 60, -1, 8, 9, 64, 11,
! 1496: 66, -1, -1, -1, -1, 71, -1, -1, -1, 75,
! 1497: -1, -1, -1, 79, 80, -1, -1, 29, -1, 31,
! 1498: -1, 33, 34, -1, -1, -1, -1, -1, 40, -1,
! 1499: -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
! 1500: -1, -1, 54, 55, -1, 3, -1, 59, 60, -1,
! 1501: 8, 9, 64, 11, 66, -1, -1, -1, -1, 71,
! 1502: -1, -1, -1, 75, -1, -1, -1, 79, 80, -1,
! 1503: -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
! 1504: -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
! 1505: 48, 49, 50, -1, -1, -1, 54, 55, -1, 3,
! 1506: -1, 59, 60, -1, 8, 9, 64, 11, 66, -1,
! 1507: -1, -1, -1, 71, -1, -1, -1, 75, -1, -1,
! 1508: -1, 79, 80, -1, -1, 29, -1, 31, -1, 33,
! 1509: 34, -1, -1, -1, -1, -1, 40, -1, -1, 43,
! 1510: -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
! 1511: 54, 55, -1, -1, -1, 59, 60, -1, -1, -1,
! 1512: 64, -1, 66, -1, -1, -1, -1, 71, -1, -1,
! 1513: -1, 75, -1, -1, 1, 79, 80, 4, -1, 6,
! 1514: 7, -1, -1, -1, -1, 12, 13, 14, -1, -1,
! 1515: -1, 1, -1, -1, 4, -1, 6, 7, -1, -1,
1.1.1.7 root 1516: -1, 28, 12, 13, 14, -1, -1, -1, -1, -1,
1.1.1.8 ! root 1517: -1, -1, -1, -1, -1, -1, -1, -1, 28, -1,
! 1518: -1, -1, -1, -1, -1, -1, 1, -1, 3, 4,
! 1519: 5, 6, 7, -1, -1, -1, -1, 12, 13, 14,
! 1520: 67, 68, 69, 70, -1, 72, -1, -1, -1, -1,
! 1521: 77, 78, 27, 28, -1, 30, -1, 67, 68, 69,
! 1522: 70, -1, 72, -1, -1, -1, -1, 77, 78, -1,
! 1523: -1, -1, -1, 48, 49, 50, -1, -1, -1, -1,
! 1524: -1, -1, -1, -1, 59, -1, 61, 62, 63, -1,
! 1525: -1, -1, 67, -1, -1, -1, 71, 72, 73, 74,
! 1526: -1, 1, 77, 3, 4, 5, 6, 7, -1, -1,
! 1527: -1, -1, 12, 13, 14, -1, -1, -1, -1, -1,
! 1528: -1, -1, -1, -1, -1, -1, -1, -1, 28, 1,
! 1529: 30, 3, 4, 5, 6, 7, -1, -1, -1, -1,
! 1530: 12, 13, 14, -1, -1, -1, -1, -1, 48, 49,
! 1531: 50, -1, -1, -1, -1, -1, 28, -1, 30, 59,
! 1532: -1, -1, -1, -1, -1, -1, -1, 67, -1, -1,
! 1533: -1, -1, 72, -1, -1, -1, -1, 77, 50, 1,
! 1534: -1, 3, 4, 5, 6, 7, -1, 59, 10, -1,
! 1535: 12, 13, 14, -1, -1, 67, -1, -1, 1, -1,
! 1536: 72, 4, 5, 6, 7, 77, 28, 10, -1, 12,
! 1537: 13, 14, 4, -1, 6, 7, -1, -1, -1, -1,
! 1538: 12, 13, 14, -1, -1, 28, -1, -1, -1, 4,
! 1539: 5, 6, 7, -1, -1, -1, 28, 12, 13, 14,
! 1540: -1, -1, -1, -1, -1, 67, -1, -1, -1, -1,
! 1541: 72, -1, -1, 28, 76, -1, -1, 4, 5, 6,
! 1542: 7, -1, -1, -1, 67, 12, 13, 14, -1, 72,
! 1543: -1, -1, -1, 76, -1, 67, -1, -1, -1, -1,
! 1544: 72, 28, -1, -1, -1, 77, 78, -1, -1, -1,
! 1545: -1, -1, 67, -1, -1, -1, -1, 72, 4, 5,
! 1546: 6, 7, 77, -1, -1, -1, 12, 13, 14, 4,
! 1547: 5, 6, 7, -1, -1, -1, -1, 12, 13, 14,
! 1548: 67, -1, 28, -1, -1, 72, -1, -1, 3, 4,
! 1549: 77, 6, 7, 28, -1, -1, 11, 12, 13, 14,
! 1550: 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
! 1551: 25, 26, 27, 28, 29, -1, -1, -1, -1, -1,
! 1552: -1, 67, -1, 38, -1, -1, 72, -1, -1, -1,
! 1553: -1, 77, 67, -1, -1, -1, -1, 72, -1, -1,
! 1554: -1, -1, 77, -1, 59, -1, -1, -1, -1, -1,
! 1555: 3, 4, -1, 6, 7, -1, -1, 72, 11, 12,
! 1556: 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
! 1557: 23, 24, 25, 26, 27, 28, 29, -1, 3, 4,
! 1558: -1, 6, 7, -1, -1, 38, 11, 12, 13, 14,
! 1559: 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
! 1560: 25, 26, 27, 28, 29, -1, -1, -1, -1, -1,
! 1561: -1, -1, -1, 38, 3, 4, -1, 6, 7, 72,
! 1562: -1, -1, 11, 12, 13, 14, 15, 16, 17, 18,
! 1563: 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
! 1564: 29, -1, 4, 5, 6, 7, -1, 72, 10, 38,
! 1565: 12, 13, 14, 4, 5, 6, 7, -1, -1, 10,
! 1566: -1, 12, 13, 14, -1, -1, 28, -1, -1, -1,
! 1567: 4, 5, 6, 7, -1, -1, -1, 28, 12, 13,
! 1568: 14, -1, -1, 72, -1, -1, -1, 4, 5, 6,
! 1569: 7, -1, -1, -1, 28, 12, 13, 14, 4, -1,
! 1570: 6, 7, -1, -1, -1, 67, 12, 13, 14, -1,
! 1571: 72, 28, -1, -1, -1, 4, 67, 6, 7, -1,
! 1572: -1, 72, 28, 12, 13, 14, -1, -1, -1, -1,
! 1573: -1, -1, -1, 67, -1, -1, -1, -1, 72, 28,
! 1574: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 1575: 67, -1, -1, -1, -1, 72, -1, -1, -1, 10,
! 1576: -1, 67, -1, -1, -1, -1, 72, -1, -1, -1,
! 1577: -1, -1, -1, -1, -1, -1, -1, -1, 67, -1,
! 1578: -1, -1, -1, 72, 35, 36, 37, 38, 39, 40,
! 1579: 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
! 1580: 51, 52, 30, -1, -1, -1, -1, 35, 36, 37,
! 1581: -1, 39, 40, 41, 42, 43, 44, 45, 46, 47,
! 1582: 48, 49, 50, 51, 52, 35, 36, 37, 38, 39,
! 1583: 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
! 1584: 50, 51, 52, 35, 36, 37, -1, 39, 40, 41,
1.1.1.7 root 1585: 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1.1.1.8 ! root 1586: 52
1.1 root 1587: };
1588: /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1.1.1.6 root 1589: #line 3 "/usr/local/lib/bison.simple"
1.1 root 1590:
1591: /* Skeleton output parser for bison,
1592: Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
1593:
1594: This program is free software; you can redistribute it and/or modify
1595: it under the terms of the GNU General Public License as published by
1596: the Free Software Foundation; either version 1, or (at your option)
1597: any later version.
1598:
1599: This program is distributed in the hope that it will be useful,
1600: but WITHOUT ANY WARRANTY; without even the implied warranty of
1601: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1602: GNU General Public License for more details.
1603:
1604: You should have received a copy of the GNU General Public License
1605: along with this program; if not, write to the Free Software
1606: Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1607:
1608:
1609: #ifndef alloca
1610: #ifdef __GNUC__
1611: #define alloca __builtin_alloca
1612: #else /* not GNU C. */
1.1.1.6 root 1613: #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1.1 root 1614: #include <alloca.h>
1615: #else /* not sparc */
1616: #if defined (MSDOS) && !defined (__TURBOC__)
1617: #include <malloc.h>
1618: #else /* not MSDOS, or __TURBOC__ */
1619: #if defined(_AIX)
1620: #include <malloc.h>
1621: #pragma alloca
1.1.1.6 root 1622: #else /* not MSDOS, __TURBOC__, or _AIX */
1623: #ifdef __hpux
1624: #ifdef __cplusplus
1625: extern "C" {
1626: void *alloca (unsigned int);
1627: };
1628: #else /* not __cplusplus */
1629: void *alloca ();
1630: #endif /* not __cplusplus */
1631: #endif /* __hpux */
1.1 root 1632: #endif /* not _AIX */
1633: #endif /* not MSDOS, or __TURBOC__ */
1634: #endif /* not sparc. */
1635: #endif /* not GNU C. */
1636: #endif /* alloca not defined. */
1637:
1638: /* This is the parser code that is written into each bison parser
1639: when the %semantic_parser declaration is not specified in the grammar.
1640: It was written by Richard Stallman by simplifying the hairy parser
1641: used when %semantic_parser is specified. */
1642:
1643: /* Note: there must be only one dollar sign in this file.
1644: It is replaced by the list of actions, each action
1645: as one case of the switch. */
1646:
1647: #define yyerrok (yyerrstatus = 0)
1648: #define yyclearin (yychar = YYEMPTY)
1649: #define YYEMPTY -2
1650: #define YYEOF 0
1651: #define YYACCEPT return(0)
1652: #define YYABORT return(1)
1653: #define YYERROR goto yyerrlab1
1654: /* Like YYERROR except do call yyerror.
1655: This remains here temporarily to ease the
1656: transition to the new meaning of YYERROR, for GCC.
1657: Once GCC version 2 has supplanted version 1, this can go. */
1658: #define YYFAIL goto yyerrlab
1659: #define YYRECOVERING() (!!yyerrstatus)
1660: #define YYBACKUP(token, value) \
1661: do \
1662: if (yychar == YYEMPTY && yylen == 1) \
1663: { yychar = (token), yylval = (value); \
1664: yychar1 = YYTRANSLATE (yychar); \
1665: YYPOPSTACK; \
1666: goto yybackup; \
1667: } \
1668: else \
1669: { yyerror ("syntax error: cannot back up"); YYERROR; } \
1670: while (0)
1671:
1672: #define YYTERROR 1
1673: #define YYERRCODE 256
1674:
1675: #ifndef YYPURE
1676: #define YYLEX yylex()
1677: #endif
1678:
1679: #ifdef YYPURE
1680: #ifdef YYLSP_NEEDED
1681: #define YYLEX yylex(&yylval, &yylloc)
1682: #else
1683: #define YYLEX yylex(&yylval)
1684: #endif
1685: #endif
1686:
1687: /* If nonreentrant, generate the variables here */
1688:
1689: #ifndef YYPURE
1690:
1691: int yychar; /* the lookahead symbol */
1692: YYSTYPE yylval; /* the semantic value of the */
1693: /* lookahead symbol */
1694:
1695: #ifdef YYLSP_NEEDED
1696: YYLTYPE yylloc; /* location data for the lookahead */
1697: /* symbol */
1698: #endif
1699:
1700: int yynerrs; /* number of parse errors so far */
1701: #endif /* not YYPURE */
1702:
1703: #if YYDEBUG != 0
1704: int yydebug; /* nonzero means print parse trace */
1705: /* Since this is uninitialized, it does not stop multiple parsers
1706: from coexisting. */
1707: #endif
1708:
1709: /* YYINITDEPTH indicates the initial size of the parser's stacks */
1710:
1711: #ifndef YYINITDEPTH
1712: #define YYINITDEPTH 200
1713: #endif
1714:
1715: /* YYMAXDEPTH is the maximum size the stacks can grow to
1716: (effective only if the built-in stack extension method is used). */
1717:
1718: #if YYMAXDEPTH == 0
1719: #undef YYMAXDEPTH
1720: #endif
1721:
1722: #ifndef YYMAXDEPTH
1723: #define YYMAXDEPTH 10000
1724: #endif
1.1.1.6 root 1725:
1726: /* Prevent warning if -Wstrict-prototypes. */
1727: #ifdef __GNUC__
1728: int yyparse (void);
1729: #endif
1.1 root 1730:
1731: #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1732: #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1733: #else /* not GNU C or C++ */
1734: #ifndef __cplusplus
1735:
1736: /* This is the most reliable way to avoid incompatibilities
1737: in available built-in functions on various systems. */
1738: static void
1739: __yy_bcopy (from, to, count)
1740: char *from;
1741: char *to;
1742: int count;
1743: {
1744: register char *f = from;
1745: register char *t = to;
1746: register int i = count;
1747:
1748: while (i-- > 0)
1749: *t++ = *f++;
1750: }
1751:
1752: #else /* __cplusplus */
1753:
1754: /* This is the most reliable way to avoid incompatibilities
1755: in available built-in functions on various systems. */
1756: static void
1757: __yy_bcopy (char *from, char *to, int count)
1758: {
1759: register char *f = from;
1760: register char *t = to;
1761: register int i = count;
1762:
1763: while (i-- > 0)
1764: *t++ = *f++;
1765: }
1766:
1767: #endif
1768: #endif
1769:
1.1.1.6 root 1770: #line 184 "/usr/local/lib/bison.simple"
1771:
1772: /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1773: into yyparse. The argument should have type void *.
1774: It should actually point to an object.
1775: Grammar actions can access the variable by casting it
1776: to the proper pointer type. */
1777:
1778: #ifdef YYPARSE_PARAM
1779: #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1780: #else
1781: #define YYPARSE_PARAM
1782: #define YYPARSE_PARAM_DECL
1783: #endif
1784:
1.1 root 1785: int
1.1.1.6 root 1786: yyparse(YYPARSE_PARAM)
1787: YYPARSE_PARAM_DECL
1.1 root 1788: {
1789: register int yystate;
1790: register int yyn;
1791: register short *yyssp;
1792: register YYSTYPE *yyvsp;
1793: int yyerrstatus; /* number of tokens to shift before error messages enabled */
1.1.1.6 root 1794: int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1.1 root 1795:
1796: short yyssa[YYINITDEPTH]; /* the state stack */
1797: YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1798:
1799: short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1800: YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1801:
1802: #ifdef YYLSP_NEEDED
1803: YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1804: YYLTYPE *yyls = yylsa;
1805: YYLTYPE *yylsp;
1806:
1.1.1.3 root 1807: #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1.1 root 1808: #else
1.1.1.3 root 1809: #define YYPOPSTACK (yyvsp--, yyssp--)
1.1 root 1810: #endif
1811:
1812: int yystacksize = YYINITDEPTH;
1813:
1814: #ifdef YYPURE
1815: int yychar;
1816: YYSTYPE yylval;
1817: int yynerrs;
1818: #ifdef YYLSP_NEEDED
1819: YYLTYPE yylloc;
1820: #endif
1821: #endif
1822:
1823: YYSTYPE yyval; /* the variable used to return */
1824: /* semantic values from the action */
1825: /* routines */
1826:
1827: int yylen;
1828:
1829: #if YYDEBUG != 0
1830: if (yydebug)
1831: fprintf(stderr, "Starting parse\n");
1832: #endif
1833:
1834: yystate = 0;
1835: yyerrstatus = 0;
1836: yynerrs = 0;
1837: yychar = YYEMPTY; /* Cause a token to be read. */
1838:
1839: /* Initialize stack pointers.
1840: Waste one element of value and location stack
1.1.1.6 root 1841: so that they stay on the same level as the state stack.
1842: The wasted elements are never initialized. */
1.1 root 1843:
1844: yyssp = yyss - 1;
1845: yyvsp = yyvs;
1846: #ifdef YYLSP_NEEDED
1847: yylsp = yyls;
1848: #endif
1849:
1850: /* Push a new state, which is found in yystate . */
1851: /* In all cases, when you get here, the value and location stacks
1852: have just been pushed. so pushing a state here evens the stacks. */
1853: yynewstate:
1854:
1855: *++yyssp = yystate;
1856:
1857: if (yyssp >= yyss + yystacksize - 1)
1858: {
1859: /* Give user a chance to reallocate the stack */
1860: /* Use copies of these so that the &'s don't force the real ones into memory. */
1861: YYSTYPE *yyvs1 = yyvs;
1862: short *yyss1 = yyss;
1863: #ifdef YYLSP_NEEDED
1864: YYLTYPE *yyls1 = yyls;
1865: #endif
1866:
1867: /* Get the current used size of the three stacks, in elements. */
1868: int size = yyssp - yyss + 1;
1869:
1870: #ifdef yyoverflow
1871: /* Each stack pointer address is followed by the size of
1872: the data in use in that stack, in bytes. */
1.1.1.6 root 1873: #ifdef YYLSP_NEEDED
1874: /* This used to be a conditional around just the two extra args,
1875: but that might be undefined if yyoverflow is a macro. */
1.1 root 1876: yyoverflow("parser stack overflow",
1877: &yyss1, size * sizeof (*yyssp),
1878: &yyvs1, size * sizeof (*yyvsp),
1879: &yyls1, size * sizeof (*yylsp),
1880: &yystacksize);
1.1.1.6 root 1881: #else
1882: yyoverflow("parser stack overflow",
1883: &yyss1, size * sizeof (*yyssp),
1884: &yyvs1, size * sizeof (*yyvsp),
1885: &yystacksize);
1886: #endif
1.1 root 1887:
1888: yyss = yyss1; yyvs = yyvs1;
1889: #ifdef YYLSP_NEEDED
1890: yyls = yyls1;
1891: #endif
1892: #else /* no yyoverflow */
1893: /* Extend the stack our own way. */
1894: if (yystacksize >= YYMAXDEPTH)
1895: {
1896: yyerror("parser stack overflow");
1897: return 2;
1898: }
1899: yystacksize *= 2;
1900: if (yystacksize > YYMAXDEPTH)
1901: yystacksize = YYMAXDEPTH;
1902: yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1903: __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
1904: yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1905: __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
1906: #ifdef YYLSP_NEEDED
1907: yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1908: __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
1909: #endif
1910: #endif /* no yyoverflow */
1911:
1912: yyssp = yyss + size - 1;
1913: yyvsp = yyvs + size - 1;
1914: #ifdef YYLSP_NEEDED
1915: yylsp = yyls + size - 1;
1916: #endif
1917:
1918: #if YYDEBUG != 0
1919: if (yydebug)
1920: fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1921: #endif
1922:
1923: if (yyssp >= yyss + yystacksize - 1)
1924: YYABORT;
1925: }
1926:
1927: #if YYDEBUG != 0
1928: if (yydebug)
1929: fprintf(stderr, "Entering state %d\n", yystate);
1930: #endif
1931:
1.1.1.6 root 1932: goto yybackup;
1.1 root 1933: yybackup:
1934:
1935: /* Do appropriate processing given the current state. */
1936: /* Read a lookahead token if we need one and don't already have one. */
1937: /* yyresume: */
1938:
1939: /* First try to decide what to do without reference to lookahead token. */
1940:
1941: yyn = yypact[yystate];
1942: if (yyn == YYFLAG)
1943: goto yydefault;
1944:
1945: /* Not known => get a lookahead token if don't already have one. */
1946:
1947: /* yychar is either YYEMPTY or YYEOF
1948: or a valid token in external form. */
1949:
1950: if (yychar == YYEMPTY)
1951: {
1952: #if YYDEBUG != 0
1953: if (yydebug)
1954: fprintf(stderr, "Reading a token: ");
1955: #endif
1956: yychar = YYLEX;
1957: }
1958:
1959: /* Convert token to internal form (in yychar1) for indexing tables with */
1960:
1961: if (yychar <= 0) /* This means end of input. */
1962: {
1963: yychar1 = 0;
1964: yychar = YYEOF; /* Don't call YYLEX any more */
1965:
1966: #if YYDEBUG != 0
1967: if (yydebug)
1968: fprintf(stderr, "Now at end of input.\n");
1969: #endif
1970: }
1971: else
1972: {
1973: yychar1 = YYTRANSLATE(yychar);
1974:
1975: #if YYDEBUG != 0
1976: if (yydebug)
1977: {
1978: fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1979: /* Give the individual parser a way to print the precise meaning
1980: of a token, for further debugging info. */
1981: #ifdef YYPRINT
1982: YYPRINT (stderr, yychar, yylval);
1983: #endif
1984: fprintf (stderr, ")\n");
1985: }
1986: #endif
1987: }
1988:
1989: yyn += yychar1;
1990: if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1991: goto yydefault;
1992:
1993: yyn = yytable[yyn];
1994:
1995: /* yyn is what to do for this token type in this state.
1996: Negative => reduce, -yyn is rule number.
1997: Positive => shift, yyn is new state.
1998: New state is final state => don't bother to shift,
1999: just return success.
2000: 0, or most negative number => error. */
2001:
2002: if (yyn < 0)
2003: {
2004: if (yyn == YYFLAG)
2005: goto yyerrlab;
2006: yyn = -yyn;
2007: goto yyreduce;
2008: }
2009: else if (yyn == 0)
2010: goto yyerrlab;
2011:
2012: if (yyn == YYFINAL)
2013: YYACCEPT;
2014:
2015: /* Shift the lookahead token. */
2016:
2017: #if YYDEBUG != 0
2018: if (yydebug)
2019: fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2020: #endif
2021:
2022: /* Discard the token being shifted unless it is eof. */
2023: if (yychar != YYEOF)
2024: yychar = YYEMPTY;
2025:
2026: *++yyvsp = yylval;
2027: #ifdef YYLSP_NEEDED
2028: *++yylsp = yylloc;
2029: #endif
2030:
2031: /* count tokens shifted since error; after three, turn off error status. */
2032: if (yyerrstatus) yyerrstatus--;
2033:
2034: yystate = yyn;
2035: goto yynewstate;
2036:
2037: /* Do the default action for the current state. */
2038: yydefault:
2039:
2040: yyn = yydefact[yystate];
2041: if (yyn == 0)
2042: goto yyerrlab;
2043:
2044: /* Do a reduction. yyn is the number of a rule to reduce with. */
2045: yyreduce:
2046: yylen = yyr2[yyn];
1.1.1.6 root 2047: if (yylen > 0)
2048: yyval = yyvsp[1-yylen]; /* implement default value of the action */
1.1 root 2049:
2050: #if YYDEBUG != 0
2051: if (yydebug)
2052: {
2053: int i;
2054:
2055: fprintf (stderr, "Reducing via rule %d (line %d), ",
2056: yyn, yyrline[yyn]);
2057:
1.1.1.6 root 2058: /* Print the symbols being reduced, and their result. */
1.1 root 2059: for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2060: fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2061: fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2062: }
2063: #endif
2064:
2065:
2066: switch (yyn) {
2067:
2068: case 1:
1.1.1.8 ! root 2069: #line 233 "objc-parse.y"
1.1 root 2070: { if (pedantic)
2071: pedwarn ("ANSI C forbids an empty source file");
1.1.1.8 ! root 2072: finish_file ();
1.1.1.4 root 2073: ;
1.1 root 2074: break;}
2075: case 2:
1.1.1.8 ! root 2076: #line 238 "objc-parse.y"
1.1.1.4 root 2077: {
1.1.1.5 root 2078: /* In case there were missing closebraces,
2079: get us back to the global binding level. */
2080: while (! global_bindings_p ())
2081: poplevel (0, 0, 0);
1.1.1.8 ! root 2082: finish_file ();
1.1.1.4 root 2083: ;
1.1 root 2084: break;}
2085: case 3:
1.1.1.8 ! root 2086: #line 252 "objc-parse.y"
1.1 root 2087: {yyval.ttype = NULL_TREE; ;
2088: break;}
2089: case 5:
1.1.1.8 ! root 2090: #line 253 "objc-parse.y"
1.1 root 2091: {yyval.ttype = NULL_TREE; ;
2092: break;}
2093: case 10:
1.1.1.8 ! root 2094: #line 261 "objc-parse.y"
1.1.1.4 root 2095: { STRIP_NOPS (yyvsp[-2].ttype);
2096: if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
2097: && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
2098: || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
2099: assemble_asm (yyvsp[-2].ttype);
2100: else
2101: error ("argument of `asm' is not a constant string"); ;
1.1 root 2102: break;}
2103: case 11:
1.1.1.8 ! root 2104: #line 272 "objc-parse.y"
1.1 root 2105: { if (pedantic)
2106: error ("ANSI C forbids data definition with no type or storage class");
2107: else if (!flag_traditional)
1.1.1.8 ! root 2108: warning ("data definition has no type or storage class");
! 2109:
! 2110: current_declspecs = TREE_VALUE (declspec_stack);
! 2111: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 2112: declspec_stack = TREE_CHAIN (declspec_stack);
! 2113: resume_momentary (yyvsp[-2].itype); ;
1.1 root 2114: break;}
2115: case 12:
1.1.1.8 ! root 2116: #line 282 "objc-parse.y"
! 2117: { current_declspecs = TREE_VALUE (declspec_stack);
! 2118: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 2119: declspec_stack = TREE_CHAIN (declspec_stack);
! 2120: resume_momentary (yyvsp[-2].itype); ;
1.1 root 2121: break;}
2122: case 13:
1.1.1.8 ! root 2123: #line 287 "objc-parse.y"
! 2124: { current_declspecs = TREE_VALUE (declspec_stack);
! 2125: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 2126: declspec_stack = TREE_CHAIN (declspec_stack);
! 2127: resume_momentary (yyvsp[-2].itype); ;
1.1 root 2128: break;}
2129: case 14:
1.1.1.8 ! root 2130: #line 292 "objc-parse.y"
1.1.1.4 root 2131: { pedwarn ("empty declaration"); ;
1.1 root 2132: break;}
2133: case 15:
1.1.1.8 ! root 2134: #line 294 "objc-parse.y"
1.1 root 2135: { shadow_tag (yyvsp[-1].ttype); ;
2136: break;}
2137: case 18:
1.1.1.8 ! root 2138: #line 298 "objc-parse.y"
1.1 root 2139: { if (pedantic)
2140: pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
2141: break;}
2142: case 19:
1.1.1.8 ! root 2143: #line 304 "objc-parse.y"
! 2144: { if (! start_function (yyvsp[-2].ttype, yyvsp[0].ttype, prefix_attributes,
! 2145: NULL_TREE, 0))
1.1 root 2146: YYERROR1;
2147: reinit_parse_for_function (); ;
2148: break;}
2149: case 20:
1.1.1.8 ! root 2150: #line 309 "objc-parse.y"
1.1 root 2151: { store_parm_decls (); ;
2152: break;}
2153: case 21:
1.1.1.8 ! root 2154: #line 311 "objc-parse.y"
! 2155: { finish_function (0);
! 2156: current_declspecs = TREE_VALUE (declspec_stack);
! 2157: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 2158: declspec_stack = TREE_CHAIN (declspec_stack);
! 2159: resume_momentary (yyvsp[-5].itype); ;
1.1 root 2160: break;}
2161: case 22:
1.1.1.8 ! root 2162: #line 317 "objc-parse.y"
! 2163: { current_declspecs = TREE_VALUE (declspec_stack);
! 2164: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 2165: declspec_stack = TREE_CHAIN (declspec_stack);
! 2166: resume_momentary (yyvsp[-2].itype); ;
1.1 root 2167: break;}
2168: case 23:
1.1.1.8 ! root 2169: #line 322 "objc-parse.y"
! 2170: { if (! start_function (yyvsp[-2].ttype, yyvsp[0].ttype, prefix_attributes,
! 2171: NULL_TREE, 0))
1.1 root 2172: YYERROR1;
2173: reinit_parse_for_function (); ;
2174: break;}
2175: case 24:
1.1.1.8 ! root 2176: #line 327 "objc-parse.y"
1.1 root 2177: { store_parm_decls (); ;
2178: break;}
2179: case 25:
1.1.1.8 ! root 2180: #line 329 "objc-parse.y"
! 2181: { finish_function (0);
! 2182: current_declspecs = TREE_VALUE (declspec_stack);
! 2183: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 2184: declspec_stack = TREE_CHAIN (declspec_stack);
! 2185: resume_momentary (yyvsp[-5].itype); ;
1.1 root 2186: break;}
2187: case 26:
1.1.1.8 ! root 2188: #line 335 "objc-parse.y"
! 2189: { current_declspecs = TREE_VALUE (declspec_stack);
! 2190: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 2191: declspec_stack = TREE_CHAIN (declspec_stack);
! 2192: resume_momentary (yyvsp[-2].itype); ;
1.1 root 2193: break;}
2194: case 27:
1.1.1.8 ! root 2195: #line 340 "objc-parse.y"
! 2196: { if (! start_function (NULL_TREE, yyvsp[0].ttype,
! 2197: prefix_attributes, NULL_TREE, 0))
1.1 root 2198: YYERROR1;
2199: reinit_parse_for_function (); ;
2200: break;}
2201: case 28:
1.1.1.8 ! root 2202: #line 345 "objc-parse.y"
1.1 root 2203: { store_parm_decls (); ;
2204: break;}
2205: case 29:
1.1.1.8 ! root 2206: #line 347 "objc-parse.y"
! 2207: { finish_function (0);
! 2208: current_declspecs = TREE_VALUE (declspec_stack);
! 2209: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 2210: declspec_stack = TREE_CHAIN (declspec_stack);
! 2211: resume_momentary (yyvsp[-5].itype); ;
1.1 root 2212: break;}
2213: case 30:
1.1.1.8 ! root 2214: #line 353 "objc-parse.y"
! 2215: { current_declspecs = TREE_VALUE (declspec_stack);
! 2216: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 2217: declspec_stack = TREE_CHAIN (declspec_stack);
! 2218: resume_momentary (yyvsp[-2].itype); ;
1.1 root 2219: break;}
1.1.1.5 root 2220: case 35:
1.1.1.8 ! root 2221: #line 367 "objc-parse.y"
1.1 root 2222: { yyval.code = ADDR_EXPR; ;
2223: break;}
1.1.1.5 root 2224: case 36:
1.1.1.8 ! root 2225: #line 369 "objc-parse.y"
1.1 root 2226: { yyval.code = NEGATE_EXPR; ;
2227: break;}
1.1.1.5 root 2228: case 37:
1.1.1.8 ! root 2229: #line 371 "objc-parse.y"
1.1 root 2230: { yyval.code = CONVERT_EXPR; ;
2231: break;}
1.1.1.5 root 2232: case 38:
1.1.1.8 ! root 2233: #line 373 "objc-parse.y"
1.1 root 2234: { yyval.code = PREINCREMENT_EXPR; ;
2235: break;}
1.1.1.5 root 2236: case 39:
1.1.1.8 ! root 2237: #line 375 "objc-parse.y"
1.1 root 2238: { yyval.code = PREDECREMENT_EXPR; ;
2239: break;}
1.1.1.5 root 2240: case 40:
1.1.1.8 ! root 2241: #line 377 "objc-parse.y"
1.1 root 2242: { yyval.code = BIT_NOT_EXPR; ;
2243: break;}
1.1.1.5 root 2244: case 41:
1.1.1.8 ! root 2245: #line 379 "objc-parse.y"
1.1 root 2246: { yyval.code = TRUTH_NOT_EXPR; ;
2247: break;}
1.1.1.5 root 2248: case 42:
1.1.1.8 ! root 2249: #line 383 "objc-parse.y"
1.1 root 2250: { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
2251: break;}
1.1.1.5 root 2252: case 43:
1.1.1.8 ! root 2253: #line 388 "objc-parse.y"
1.1 root 2254: { yyval.ttype = NULL_TREE; ;
2255: break;}
1.1.1.5 root 2256: case 45:
1.1.1.8 ! root 2257: #line 394 "objc-parse.y"
1.1 root 2258: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
2259: break;}
1.1.1.5 root 2260: case 46:
1.1.1.8 ! root 2261: #line 396 "objc-parse.y"
1.1 root 2262: { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
2263: break;}
1.1.1.5 root 2264: case 48:
1.1.1.8 ! root 2265: #line 402 "objc-parse.y"
1.1 root 2266: { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
2267: break;}
1.1.1.5 root 2268: case 49:
1.1.1.8 ! root 2269: #line 405 "objc-parse.y"
1.1 root 2270: { yyvsp[0].itype = pedantic;
2271: pedantic = 0; ;
2272: break;}
1.1.1.5 root 2273: case 50:
1.1.1.8 ! root 2274: #line 408 "objc-parse.y"
1.1 root 2275: { yyval.ttype = yyvsp[0].ttype;
2276: pedantic = yyvsp[-2].itype; ;
2277: break;}
2278: case 51:
1.1.1.8 ! root 2279: #line 411 "objc-parse.y"
1.1.1.5 root 2280: { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
2281: overflow_warning (yyval.ttype); ;
1.1 root 2282: break;}
2283: case 52:
1.1.1.8 ! root 2284: #line 415 "objc-parse.y"
1.1.1.5 root 2285: { tree label = lookup_label (yyvsp[0].ttype);
1.1.1.8 ! root 2286: if (pedantic)
! 2287: pedwarn ("ANSI C forbids `&&'");
1.1.1.5 root 2288: if (label == 0)
2289: yyval.ttype = null_pointer_node;
2290: else
2291: {
2292: TREE_USED (label) = 1;
2293: yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
2294: TREE_CONSTANT (yyval.ttype) = 1;
2295: }
2296: ;
2297: break;}
2298: case 53:
1.1.1.8 ! root 2299: #line 443 "objc-parse.y"
1.1 root 2300: { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
2301: && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
2302: error ("`sizeof' applied to a bit-field");
2303: yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
2304: break;}
1.1.1.5 root 2305: case 54:
1.1.1.8 ! root 2306: #line 448 "objc-parse.y"
1.1 root 2307: { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
2308: break;}
1.1.1.5 root 2309: case 55:
1.1.1.8 ! root 2310: #line 450 "objc-parse.y"
1.1 root 2311: { yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
2312: break;}
1.1.1.5 root 2313: case 56:
1.1.1.8 ! root 2314: #line 452 "objc-parse.y"
1.1 root 2315: { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
2316: break;}
2317: case 57:
1.1.1.8 ! root 2318: #line 454 "objc-parse.y"
1.1.1.5 root 2319: { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
2320: break;}
2321: case 58:
1.1.1.8 ! root 2322: #line 456 "objc-parse.y"
1.1.1.5 root 2323: { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
2324: break;}
2325: case 60:
1.1.1.8 ! root 2326: #line 462 "objc-parse.y"
1.1 root 2327: { tree type = groktypename (yyvsp[-2].ttype);
2328: yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
2329: break;}
1.1.1.5 root 2330: case 61:
1.1.1.8 ! root 2331: #line 465 "objc-parse.y"
1.1.1.6 root 2332: { start_init (NULL_TREE, NULL, 0);
2333: yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
2334: really_start_incremental_init (yyvsp[-2].ttype); ;
2335: break;}
2336: case 62:
1.1.1.8 ! root 2337: #line 469 "objc-parse.y"
1.1.1.6 root 2338: { char *name;
2339: tree result = pop_init_level (0);
2340: tree type = yyvsp[-5].ttype;
2341: finish_init ();
2342:
1.1 root 2343: if (pedantic)
2344: pedwarn ("ANSI C forbids constructor expressions");
1.1.1.4 root 2345: if (TYPE_NAME (type) != 0)
2346: {
2347: if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
2348: name = IDENTIFIER_POINTER (TYPE_NAME (type));
2349: else
2350: name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
2351: }
2352: else
2353: name = "";
1.1.1.6 root 2354: yyval.ttype = result;
1.1 root 2355: if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
2356: {
2357: int failure = complete_array_type (type, yyval.ttype, 1);
2358: if (failure)
2359: abort ();
2360: }
2361: ;
2362: break;}
2363: case 64:
1.1.1.8 ! root 2364: #line 498 "objc-parse.y"
1.1 root 2365: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2366: break;}
2367: case 65:
1.1.1.8 ! root 2368: #line 500 "objc-parse.y"
1.1 root 2369: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2370: break;}
2371: case 66:
1.1.1.8 ! root 2372: #line 502 "objc-parse.y"
1.1 root 2373: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2374: break;}
2375: case 67:
1.1.1.8 ! root 2376: #line 504 "objc-parse.y"
1.1 root 2377: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2378: break;}
2379: case 68:
1.1.1.8 ! root 2380: #line 506 "objc-parse.y"
1.1 root 2381: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2382: break;}
2383: case 69:
1.1.1.8 ! root 2384: #line 508 "objc-parse.y"
1.1 root 2385: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2386: break;}
2387: case 70:
1.1.1.8 ! root 2388: #line 510 "objc-parse.y"
1.1 root 2389: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2390: break;}
2391: case 71:
1.1.1.8 ! root 2392: #line 512 "objc-parse.y"
1.1 root 2393: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2394: break;}
2395: case 72:
1.1.1.8 ! root 2396: #line 514 "objc-parse.y"
1.1.1.5 root 2397: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1.1 root 2398: break;}
2399: case 73:
1.1.1.8 ! root 2400: #line 516 "objc-parse.y"
1.1.1.5 root 2401: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1.1 root 2402: break;}
2403: case 74:
1.1.1.8 ! root 2404: #line 518 "objc-parse.y"
1.1.1.5 root 2405: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1.1 root 2406: break;}
2407: case 75:
1.1.1.8 ! root 2408: #line 520 "objc-parse.y"
1.1.1.6 root 2409: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1.1.1.5 root 2410: break;}
2411: case 76:
1.1.1.8 ! root 2412: #line 522 "objc-parse.y"
1.1.1.6 root 2413: { yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1.1.1.5 root 2414: break;}
2415: case 77:
1.1.1.8 ! root 2416: #line 524 "objc-parse.y"
1.1.1.6 root 2417: { yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1.1.1.5 root 2418: break;}
2419: case 78:
1.1.1.8 ! root 2420: #line 526 "objc-parse.y"
1.1.1.6 root 2421: { yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2422: break;}
2423: case 79:
1.1.1.8 ! root 2424: #line 528 "objc-parse.y"
1.1.1.4 root 2425: { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
2426: C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
1.1 root 2427: break;}
1.1.1.6 root 2428: case 80:
1.1.1.8 ! root 2429: #line 531 "objc-parse.y"
1.1.1.4 root 2430: { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
1.1.1.5 root 2431: /* This inhibits warnings in truthvalue_conversion. */
2432: C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
1.1 root 2433: break;}
1.1.1.6 root 2434: case 81:
1.1.1.8 ! root 2435: #line 538 "objc-parse.y"
1.1 root 2436: {
2437: yyval.ttype = lastiddecl;
2438: if (!yyval.ttype || yyval.ttype == error_mark_node)
2439: {
2440: if (yychar == YYEMPTY)
2441: yychar = YYLEX;
2442: if (yychar == '(')
2443: {
1.1.1.5 root 2444: tree decl;
2445:
1.1 root 2446: if (objc_receiver_context
2447: && ! (objc_receiver_context
2448: && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super")))
2449: /* we have a message to super */
2450: yyval.ttype = get_super_receiver ();
2451: else if (objc_method_context
1.1.1.5 root 2452: && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
2453: {
2454: if (is_private (decl))
2455: yyval.ttype = error_mark_node;
2456: else
2457: yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
2458: }
1.1 root 2459: else
2460: {
2461: /* Ordinary implicit function declaration. */
2462: yyval.ttype = implicitly_declare (yyvsp[0].ttype);
2463: assemble_external (yyval.ttype);
2464: TREE_USED (yyval.ttype) = 1;
2465: }
2466: }
2467: else if (current_function_decl == 0)
2468: {
1.1.1.5 root 2469: error ("`%s' undeclared here (not in a function)",
1.1 root 2470: IDENTIFIER_POINTER (yyvsp[0].ttype));
2471: yyval.ttype = error_mark_node;
2472: }
2473: else
2474: {
1.1.1.5 root 2475: tree decl;
2476:
1.1 root 2477: if (objc_receiver_context
1.1.1.4 root 2478: && ! strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super"))
1.1 root 2479: /* we have a message to super */
2480: yyval.ttype = get_super_receiver ();
2481: else if (objc_method_context
1.1.1.5 root 2482: && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
2483: {
2484: if (is_private (decl))
2485: yyval.ttype = error_mark_node;
2486: else
2487: yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
2488: }
1.1 root 2489: else
2490: {
2491: if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
2492: || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
2493: {
2494: error ("`%s' undeclared (first use this function)",
2495: IDENTIFIER_POINTER (yyvsp[0].ttype));
2496:
2497: if (! undeclared_variable_notice)
2498: {
2499: error ("(Each undeclared identifier is reported only once");
2500: error ("for each function it appears in.)");
2501: undeclared_variable_notice = 1;
2502: }
2503: }
2504: yyval.ttype = error_mark_node;
2505: /* Prevent repeated error messages. */
2506: IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
2507: IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
1.1.1.4 root 2508: }
1.1 root 2509: }
2510: }
1.1.1.4 root 2511: else if (TREE_TYPE (yyval.ttype) == error_mark_node)
2512: yyval.ttype = error_mark_node;
2513: else if (C_DECL_ANTICIPATED (yyval.ttype))
1.1 root 2514: {
1.1.1.4 root 2515: /* The first time we see a build-in function used,
2516: if it has not been declared. */
2517: C_DECL_ANTICIPATED (yyval.ttype) = 0;
2518: if (yychar == YYEMPTY)
2519: yychar = YYLEX;
2520: if (yychar == '(')
1.1 root 2521: {
1.1.1.4 root 2522: /* Omit the implicit declaration we
2523: would ordinarily do, so we don't lose
2524: the actual built in type.
2525: But print a diagnostic for the mismatch. */
2526: if (objc_method_context
2527: && is_ivar (objc_ivar_chain, yyvsp[0].ttype))
2528: error ("Instance variable `%s' implicitly declared as function",
2529: IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2530: else
2531: if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
2532: error ("`%s' implicitly declared as function",
2533: IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2534: else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
2535: != TYPE_MODE (integer_type_node))
2536: && (TREE_TYPE (TREE_TYPE (yyval.ttype))
2537: != void_type_node))
2538: pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2539: IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2540: /* If it really returns void, change that to int. */
2541: if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
2542: TREE_TYPE (yyval.ttype)
2543: = build_function_type (integer_type_node,
2544: TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
1.1 root 2545: }
1.1.1.4 root 2546: else
2547: pedwarn ("built-in function `%s' used without declaration",
2548: IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2549:
2550: /* Do what we would ordinarily do when a fn is used. */
2551: assemble_external (yyval.ttype);
2552: TREE_USED (yyval.ttype) = 1;
2553: }
2554: else
2555: {
2556: assemble_external (yyval.ttype);
2557: TREE_USED (yyval.ttype) = 1;
1.1 root 2558: /* we have a definition - still check if iVariable */
2559:
2560: if (!objc_receiver_context
2561: || (objc_receiver_context
2562: && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super")))
2563: {
1.1.1.5 root 2564: tree decl;
2565:
1.1 root 2566: if (objc_method_context
1.1.1.5 root 2567: && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
1.1 root 2568: {
2569: if (IDENTIFIER_LOCAL_VALUE (yyvsp[0].ttype))
2570: warning ("local declaration of `%s' hides instance variable",
2571: IDENTIFIER_POINTER (yyvsp[0].ttype));
2572: else
1.1.1.5 root 2573: {
2574: if (is_private (decl))
2575: yyval.ttype = error_mark_node;
2576: else
2577: yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
2578: }
1.1 root 2579: }
2580: }
2581: else /* we have a message to super */
2582: yyval.ttype = get_super_receiver ();
2583: }
2584:
2585: if (TREE_CODE (yyval.ttype) == CONST_DECL)
1.1.1.4 root 2586: {
2587: yyval.ttype = DECL_INITIAL (yyval.ttype);
2588: /* This is to prevent an enum whose value is 0
2589: from being considered a null pointer constant. */
2590: yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
2591: TREE_CONSTANT (yyval.ttype) = 1;
2592: }
1.1 root 2593: ;
2594: break;}
1.1.1.6 root 2595: case 83:
1.1.1.8 ! root 2596: #line 698 "objc-parse.y"
1.1 root 2597: { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
2598: break;}
1.1.1.6 root 2599: case 84:
1.1.1.8 ! root 2600: #line 700 "objc-parse.y"
1.1 root 2601: { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
2602: if (class == 'e' || class == '1'
2603: || class == '2' || class == '<')
2604: C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
2605: yyval.ttype = yyvsp[-1].ttype; ;
2606: break;}
1.1.1.6 root 2607: case 85:
1.1.1.8 ! root 2608: #line 706 "objc-parse.y"
1.1 root 2609: { yyval.ttype = error_mark_node; ;
2610: break;}
1.1.1.6 root 2611: case 86:
1.1.1.8 ! root 2612: #line 708 "objc-parse.y"
1.1 root 2613: { if (current_function_decl == 0)
2614: {
2615: error ("braced-group within expression allowed only inside a function");
2616: YYERROR;
2617: }
2618: /* We must force a BLOCK for this level
2619: so that, if it is not expanded later,
2620: there is a way to turn off the entire subtree of blocks
2621: that are contained in it. */
2622: keep_next_level ();
1.1.1.5 root 2623: push_iterator_stack ();
1.1 root 2624: push_label_level ();
2625: yyval.ttype = expand_start_stmt_expr (); ;
2626: break;}
1.1.1.6 root 2627: case 87:
1.1.1.8 ! root 2628: #line 722 "objc-parse.y"
1.1 root 2629: { tree rtl_exp;
2630: if (pedantic)
2631: pedwarn ("ANSI C forbids braced-groups within expressions");
1.1.1.5 root 2632: pop_iterator_stack ();
1.1 root 2633: pop_label_level ();
2634: rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
2635: /* The statements have side effects, so the group does. */
2636: TREE_SIDE_EFFECTS (rtl_exp) = 1;
2637:
1.1.1.6 root 2638: if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
2639: {
2640: /* Make a BIND_EXPR for the BLOCK already made. */
2641: yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
2642: NULL_TREE, rtl_exp, yyvsp[-1].ttype);
2643: /* Remove the block from the tree at this point.
2644: It gets put back at the proper place
2645: when the BIND_EXPR is expanded. */
2646: delete_block (yyvsp[-1].ttype);
2647: }
2648: else
2649: yyval.ttype = yyvsp[-1].ttype;
1.1 root 2650: ;
2651: break;}
1.1.1.6 root 2652: case 88:
1.1.1.8 ! root 2653: #line 745 "objc-parse.y"
1.1 root 2654: { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2655: break;}
1.1.1.6 root 2656: case 89:
1.1.1.8 ! root 2657: #line 747 "objc-parse.y"
1.1 root 2658: { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2659: break;}
1.1.1.6 root 2660: case 90:
1.1.1.8 ! root 2661: #line 749 "objc-parse.y"
1.1 root 2662: {
2663: if (doing_objc_thang)
2664: {
2665: if (is_public (yyvsp[-2].ttype, yyvsp[0].ttype))
2666: yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2667: else
2668: yyval.ttype = error_mark_node;
2669: }
2670: else
1.1.1.4 root 2671: yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
1.1 root 2672: ;
2673: break;}
1.1.1.6 root 2674: case 91:
1.1.1.8 ! root 2675: #line 761 "objc-parse.y"
1.1 root 2676: {
1.1.1.4 root 2677: tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
1.1 root 2678:
2679: if (doing_objc_thang)
2680: {
1.1.1.4 root 2681: if (is_public (expr, yyvsp[0].ttype))
2682: yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
1.1 root 2683: else
2684: yyval.ttype = error_mark_node;
2685: }
2686: else
1.1.1.4 root 2687: yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
1.1 root 2688: ;
2689: break;}
1.1.1.6 root 2690: case 92:
1.1.1.8 ! root 2691: #line 775 "objc-parse.y"
1.1 root 2692: { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2693: break;}
1.1.1.6 root 2694: case 93:
1.1.1.8 ! root 2695: #line 777 "objc-parse.y"
1.1 root 2696: { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2697: break;}
1.1.1.6 root 2698: case 94:
1.1.1.8 ! root 2699: #line 779 "objc-parse.y"
1.1 root 2700: { yyval.ttype = build_message_expr (yyvsp[0].ttype); ;
2701: break;}
1.1.1.6 root 2702: case 95:
1.1.1.8 ! root 2703: #line 781 "objc-parse.y"
1.1 root 2704: { yyval.ttype = build_selector_expr (yyvsp[0].ttype); ;
2705: break;}
1.1.1.6 root 2706: case 96:
1.1.1.8 ! root 2707: #line 783 "objc-parse.y"
1.1.1.5 root 2708: { yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ;
2709: break;}
1.1.1.6 root 2710: case 97:
1.1.1.8 ! root 2711: #line 785 "objc-parse.y"
1.1 root 2712: { yyval.ttype = build_encode_expr (yyvsp[0].ttype); ;
2713: break;}
1.1.1.6 root 2714: case 98:
1.1.1.8 ! root 2715: #line 787 "objc-parse.y"
1.1.1.5 root 2716: { yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ;
2717: break;}
1.1.1.6 root 2718: case 100:
1.1.1.8 ! root 2719: #line 794 "objc-parse.y"
1.1 root 2720: { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2721: break;}
1.1.1.6 root 2722: case 102:
1.1.1.8 ! root 2723: #line 802 "objc-parse.y"
1.1.1.5 root 2724: { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2725: break;}
1.1.1.6 root 2726: case 105:
1.1.1.8 ! root 2727: #line 810 "objc-parse.y"
1.1 root 2728: { c_mark_varargs ();
2729: if (pedantic)
2730: pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2731: break;}
1.1.1.6 root 2732: case 106:
1.1.1.8 ! root 2733: #line 820 "objc-parse.y"
1.1 root 2734: { ;
2735: break;}
1.1.1.6 root 2736: case 111:
1.1.1.8 ! root 2737: #line 832 "objc-parse.y"
1.1.1.4 root 2738: { current_declspecs = TREE_VALUE (declspec_stack);
1.1.1.8 ! root 2739: prefix_attributes = TREE_PURPOSE (declspec_stack);
1.1.1.4 root 2740: declspec_stack = TREE_CHAIN (declspec_stack);
2741: resume_momentary (yyvsp[-2].itype); ;
2742: break;}
1.1.1.6 root 2743: case 112:
1.1.1.8 ! root 2744: #line 837 "objc-parse.y"
! 2745: { current_declspecs = TREE_VALUE (declspec_stack);
! 2746: prefix_attributes = TREE_PURPOSE (declspec_stack);
1.1.1.4 root 2747: declspec_stack = TREE_CHAIN (declspec_stack);
2748: resume_momentary (yyvsp[-2].itype); ;
2749: break;}
1.1.1.6 root 2750: case 113:
1.1.1.8 ! root 2751: #line 842 "objc-parse.y"
1.1.1.4 root 2752: { shadow_tag_warned (yyvsp[-1].ttype, 1);
2753: pedwarn ("empty declaration"); ;
2754: break;}
1.1.1.6 root 2755: case 114:
1.1.1.8 ! root 2756: #line 845 "objc-parse.y"
1.1.1.4 root 2757: { pedwarn ("empty declaration"); ;
2758: break;}
1.1.1.6 root 2759: case 115:
1.1.1.8 ! root 2760: #line 854 "objc-parse.y"
1.1.1.4 root 2761: { ;
2762: break;}
1.1.1.6 root 2763: case 120:
1.1.1.8 ! root 2764: #line 869 "objc-parse.y"
1.1 root 2765: { yyval.itype = suspend_momentary ();
2766: pending_xref_error ();
1.1.1.8 ! root 2767: declspec_stack = tree_cons (prefix_attributes,
! 2768: current_declspecs,
1.1 root 2769: declspec_stack);
1.1.1.8 ! root 2770: current_declspecs = yyvsp[0].ttype;
! 2771: prefix_attributes = NULL_TREE; ;
1.1 root 2772: break;}
1.1.1.6 root 2773: case 121:
1.1.1.8 ! root 2774: #line 879 "objc-parse.y"
! 2775: { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
1.1 root 2776: break;}
1.1.1.6 root 2777: case 122:
1.1.1.8 ! root 2778: #line 884 "objc-parse.y"
1.1 root 2779: { current_declspecs = TREE_VALUE (declspec_stack);
1.1.1.8 ! root 2780: prefix_attributes = TREE_PURPOSE (declspec_stack);
1.1 root 2781: declspec_stack = TREE_CHAIN (declspec_stack);
2782: resume_momentary (yyvsp[-2].itype); ;
2783: break;}
1.1.1.6 root 2784: case 123:
1.1.1.8 ! root 2785: #line 889 "objc-parse.y"
1.1 root 2786: { current_declspecs = TREE_VALUE (declspec_stack);
1.1.1.8 ! root 2787: prefix_attributes = TREE_PURPOSE (declspec_stack);
1.1 root 2788: declspec_stack = TREE_CHAIN (declspec_stack);
1.1.1.8 ! root 2789: resume_momentary (yyvsp[-2].itype); ;
1.1 root 2790: break;}
1.1.1.6 root 2791: case 124:
1.1.1.8 ! root 2792: #line 894 "objc-parse.y"
1.1 root 2793: { current_declspecs = TREE_VALUE (declspec_stack);
1.1.1.8 ! root 2794: prefix_attributes = TREE_PURPOSE (declspec_stack);
1.1 root 2795: declspec_stack = TREE_CHAIN (declspec_stack);
2796: resume_momentary (yyvsp[-1].itype); ;
2797: break;}
1.1.1.6 root 2798: case 125:
1.1.1.8 ! root 2799: #line 899 "objc-parse.y"
! 2800: { current_declspecs = TREE_VALUE (declspec_stack);
! 2801: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 2802: declspec_stack = TREE_CHAIN (declspec_stack);
! 2803: resume_momentary (yyvsp[-1].itype); ;
1.1 root 2804: break;}
1.1.1.6 root 2805: case 126:
1.1.1.8 ! root 2806: #line 904 "objc-parse.y"
! 2807: { shadow_tag (yyvsp[-1].ttype); ;
1.1 root 2808: break;}
1.1.1.6 root 2809: case 127:
1.1.1.8 ! root 2810: #line 906 "objc-parse.y"
! 2811: { pedwarn ("empty declaration"); ;
1.1 root 2812: break;}
1.1.1.6 root 2813: case 128:
1.1.1.8 ! root 2814: #line 915 "objc-parse.y"
! 2815: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
1.1 root 2816: break;}
1.1.1.6 root 2817: case 129:
1.1.1.8 ! root 2818: #line 917 "objc-parse.y"
! 2819: { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
1.1 root 2820: break;}
1.1.1.6 root 2821: case 130:
1.1.1.8 ! root 2822: #line 921 "objc-parse.y"
! 2823: { yyval.ttype = NULL_TREE; ;
1.1 root 2824: break;}
1.1.1.6 root 2825: case 131:
1.1.1.8 ! root 2826: #line 923 "objc-parse.y"
! 2827: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
! 2828: break;}
! 2829: case 132:
! 2830: #line 925 "objc-parse.y"
1.1.1.4 root 2831: { if (extra_warnings)
2832: warning ("`%s' is not at beginning of declaration",
2833: IDENTIFIER_POINTER (yyvsp[0].ttype));
2834: yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2835: break;}
1.1.1.8 ! root 2836: case 133:
! 2837: #line 937 "objc-parse.y"
1.1.1.4 root 2838: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
2839: TREE_STATIC (yyval.ttype) = 1; ;
1.1 root 2840: break;}
1.1.1.8 ! root 2841: case 134:
! 2842: #line 940 "objc-parse.y"
1.1 root 2843: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2844: break;}
1.1.1.8 ! root 2845: case 135:
! 2846: #line 942 "objc-parse.y"
1.1.1.4 root 2847: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2848: TREE_STATIC (yyval.ttype) = 1; ;
1.1 root 2849: break;}
1.1.1.8 ! root 2850: case 136:
! 2851: #line 945 "objc-parse.y"
1.1.1.4 root 2852: { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
2853: warning ("`%s' is not at beginning of declaration",
2854: IDENTIFIER_POINTER (yyvsp[0].ttype));
2855: yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2856: TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
1.1 root 2857: break;}
1.1.1.8 ! root 2858: case 137:
! 2859: #line 959 "objc-parse.y"
1.1 root 2860: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2861: break;}
1.1.1.8 ! root 2862: case 138:
! 2863: #line 961 "objc-parse.y"
1.1 root 2864: { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2865: break;}
1.1.1.8 ! root 2866: case 139:
! 2867: #line 965 "objc-parse.y"
1.1 root 2868: { yyval.ttype = NULL_TREE; ;
2869: break;}
1.1.1.8 ! root 2870: case 140:
! 2871: #line 967 "objc-parse.y"
1.1 root 2872: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2873: break;}
1.1.1.8 ! root 2874: case 143:
! 2875: #line 977 "objc-parse.y"
1.1.1.4 root 2876: { /* For a typedef name, record the meaning, not the name.
2877: In case of `foo foo, bar;'. */
2878: yyval.ttype = lookup_name (yyvsp[0].ttype); ;
2879: break;}
1.1.1.8 ! root 2880: case 144:
! 2881: #line 981 "objc-parse.y"
1.1.1.5 root 2882: { yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2883: break;}
1.1.1.8 ! root 2884: case 145:
! 2885: #line 983 "objc-parse.y"
1.1.1.5 root 2886: { yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
1.1 root 2887: break;}
1.1.1.8 ! root 2888: case 146:
! 2889: #line 985 "objc-parse.y"
1.1.1.4 root 2890: { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
1.1 root 2891: break;}
1.1.1.8 ! root 2892: case 147:
! 2893: #line 987 "objc-parse.y"
1.1.1.4 root 2894: { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
1.1 root 2895: break;}
1.1.1.8 ! root 2896: case 155:
! 2897: #line 1009 "objc-parse.y"
1.1 root 2898: { yyval.ttype = NULL_TREE; ;
2899: break;}
1.1.1.8 ! root 2900: case 156:
! 2901: #line 1011 "objc-parse.y"
1.1 root 2902: { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
2903: yyval.ttype = yyvsp[-1].ttype;
2904: ;
2905: break;}
1.1.1.8 ! root 2906: case 157:
! 2907: #line 1018 "objc-parse.y"
! 2908: { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
! 2909: yyvsp[-1].ttype, prefix_attributes);
1.1.1.6 root 2910: start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
1.1 root 2911: break;}
1.1.1.8 ! root 2912: case 158:
! 2913: #line 1023 "objc-parse.y"
1.1.1.6 root 2914: { finish_init ();
2915: finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2916: break;}
1.1.1.5 root 2917: case 159:
1.1.1.8 ! root 2918: #line 1026 "objc-parse.y"
! 2919: { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
! 2920: yyvsp[0].ttype, prefix_attributes);
! 2921: finish_decl (d, NULL_TREE, yyvsp[-1].ttype);
! 2922: ;
1.1 root 2923: break;}
1.1.1.5 root 2924: case 160:
1.1.1.8 ! root 2925: #line 1034 "objc-parse.y"
! 2926: { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
! 2927: yyvsp[-1].ttype, prefix_attributes);
! 2928: start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
1.1.1.6 root 2929: break;}
2930: case 161:
1.1.1.8 ! root 2931: #line 1039 "objc-parse.y"
! 2932: { finish_init ();
! 2933: decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
! 2934: finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
1.1 root 2935: break;}
1.1.1.6 root 2936: case 162:
1.1.1.8 ! root 2937: #line 1043 "objc-parse.y"
! 2938: { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
! 2939: yyvsp[0].ttype, prefix_attributes);
! 2940: finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
1.1 root 2941: break;}
1.1.1.6 root 2942: case 163:
1.1.1.8 ! root 2943: #line 1051 "objc-parse.y"
! 2944: { yyval.ttype = NULL_TREE; ;
1.1 root 2945: break;}
1.1.1.6 root 2946: case 164:
1.1.1.8 ! root 2947: #line 1053 "objc-parse.y"
1.1.1.7 root 2948: { yyval.ttype = yyvsp[0].ttype; ;
1.1 root 2949: break;}
1.1.1.6 root 2950: case 165:
1.1.1.8 ! root 2951: #line 1058 "objc-parse.y"
! 2952: { yyval.ttype = yyvsp[0].ttype; ;
1.1 root 2953: break;}
1.1.1.6 root 2954: case 166:
1.1.1.8 ! root 2955: #line 1060 "objc-parse.y"
! 2956: { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
1.1.1.7 root 2957: break;}
2958: case 167:
1.1.1.8 ! root 2959: #line 1065 "objc-parse.y"
! 2960: { yyval.ttype = yyvsp[-2].ttype; ;
1.1 root 2961: break;}
1.1.1.6 root 2962: case 168:
1.1.1.8 ! root 2963: #line 1070 "objc-parse.y"
! 2964: { yyval.ttype = yyvsp[0].ttype; ;
1.1.1.4 root 2965: break;}
1.1.1.6 root 2966: case 169:
1.1.1.8 ! root 2967: #line 1072 "objc-parse.y"
! 2968: { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
1.1 root 2969: break;}
1.1.1.6 root 2970: case 170:
1.1.1.8 ! root 2971: #line 1077 "objc-parse.y"
! 2972: { yyval.ttype = NULL_TREE; ;
1.1.1.7 root 2973: break;}
2974: case 171:
1.1.1.8 ! root 2975: #line 1079 "objc-parse.y"
! 2976: { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
1.1 root 2977: break;}
1.1.1.5 root 2978: case 172:
1.1.1.8 ! root 2979: #line 1081 "objc-parse.y"
! 2980: { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
1.1.1.7 root 2981: break;}
2982: case 173:
1.1.1.8 ! root 2983: #line 1083 "objc-parse.y"
! 2984: { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
1.1.1.7 root 2985: break;}
1.1.1.8 ! root 2986: case 174:
! 2987: #line 1085 "objc-parse.y"
! 2988: { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
! 2989: break;}
! 2990: case 180:
! 2991: #line 1103 "objc-parse.y"
1.1.1.6 root 2992: { really_start_incremental_init (NULL_TREE);
2993: /* Note that the call to clear_momentary
2994: is in process_init_element. */
2995: push_momentary (); ;
1.1 root 2996: break;}
1.1.1.8 ! root 2997: case 181:
! 2998: #line 1108 "objc-parse.y"
1.1.1.6 root 2999: { yyval.ttype = pop_init_level (0);
1.1.1.7 root 3000: if (yyval.ttype == error_mark_node
3001: && ! (yychar == STRING || yychar == CONSTANT))
1.1.1.6 root 3002: pop_momentary ();
3003: else
3004: pop_momentary_nofree (); ;
1.1 root 3005: break;}
1.1.1.8 ! root 3006: case 182:
! 3007: #line 1116 "objc-parse.y"
1.1.1.6 root 3008: { yyval.ttype = error_mark_node; ;
1.1 root 3009: break;}
1.1.1.8 ! root 3010: case 183:
! 3011: #line 1122 "objc-parse.y"
1.1.1.6 root 3012: { if (pedantic)
3013: pedwarn ("ANSI C forbids empty initializer braces"); ;
3014: break;}
1.1.1.8 ! root 3015: case 187:
! 3016: #line 1136 "objc-parse.y"
1.1.1.6 root 3017: { process_init_element (yyvsp[0].ttype); ;
3018: break;}
1.1.1.8 ! root 3019: case 188:
! 3020: #line 1138 "objc-parse.y"
1.1.1.6 root 3021: { push_init_level (0); ;
3022: break;}
1.1.1.8 ! root 3023: case 189:
! 3024: #line 1140 "objc-parse.y"
1.1.1.6 root 3025: { process_init_element (pop_init_level (0)); ;
1.1 root 3026: break;}
1.1.1.8 ! root 3027: case 191:
! 3028: #line 1146 "objc-parse.y"
1.1.1.6 root 3029: { set_init_label (yyvsp[-1].ttype); ;
3030: break;}
1.1.1.8 ! root 3031: case 193:
! 3032: #line 1149 "objc-parse.y"
1.1.1.6 root 3033: { set_init_label (yyvsp[-1].ttype); ;
1.1 root 3034: break;}
1.1.1.8 ! root 3035: case 195:
! 3036: #line 1155 "objc-parse.y"
1.1 root 3037: { push_c_function_context ();
1.1.1.8 ! root 3038: if (! start_function (current_declspecs, yyvsp[0].ttype,
! 3039: prefix_attributes, NULL_TREE, 1))
1.1 root 3040: {
3041: pop_c_function_context ();
3042: YYERROR1;
3043: }
1.1.1.8 ! root 3044: reinit_parse_for_function (); ;
1.1 root 3045: break;}
1.1.1.8 ! root 3046: case 196:
! 3047: #line 1164 "objc-parse.y"
! 3048: { store_parm_decls (); ;
! 3049: break;}
! 3050: case 197:
! 3051: #line 1172 "objc-parse.y"
1.1 root 3052: { finish_function (1);
3053: pop_c_function_context (); ;
3054: break;}
1.1.1.8 ! root 3055: case 198:
! 3056: #line 1178 "objc-parse.y"
1.1 root 3057: { push_c_function_context ();
1.1.1.8 ! root 3058: if (! start_function (current_declspecs, yyvsp[0].ttype,
! 3059: prefix_attributes, NULL_TREE, 1))
1.1 root 3060: {
3061: pop_c_function_context ();
3062: YYERROR1;
3063: }
1.1.1.8 ! root 3064: reinit_parse_for_function (); ;
1.1 root 3065: break;}
1.1.1.8 ! root 3066: case 199:
! 3067: #line 1187 "objc-parse.y"
! 3068: { store_parm_decls (); ;
! 3069: break;}
! 3070: case 200:
! 3071: #line 1195 "objc-parse.y"
1.1 root 3072: { finish_function (1);
3073: pop_c_function_context (); ;
3074: break;}
1.1.1.8 ! root 3075: case 203:
! 3076: #line 1211 "objc-parse.y"
1.1 root 3077: { yyval.ttype = yyvsp[-1].ttype; ;
3078: break;}
1.1.1.8 ! root 3079: case 204:
! 3080: #line 1213 "objc-parse.y"
1.1 root 3081: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3082: break;}
1.1.1.8 ! root 3083: case 205:
! 3084: #line 1218 "objc-parse.y"
1.1 root 3085: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3086: break;}
1.1.1.8 ! root 3087: case 206:
! 3088: #line 1220 "objc-parse.y"
1.1 root 3089: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3090: break;}
1.1.1.7 root 3091: case 207:
1.1.1.8 ! root 3092: #line 1222 "objc-parse.y"
! 3093: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
1.1 root 3094: break;}
1.1.1.7 root 3095: case 208:
1.1.1.8 ! root 3096: #line 1224 "objc-parse.y"
! 3097: { yyval.ttype = yyvsp[0].ttype; ;
1.1 root 3098: break;}
1.1.1.8 ! root 3099: case 211:
! 3100: #line 1236 "objc-parse.y"
! 3101: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
1.1 root 3102: break;}
1.1.1.7 root 3103: case 212:
1.1.1.8 ! root 3104: #line 1241 "objc-parse.y"
! 3105: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
1.1 root 3106: break;}
1.1.1.7 root 3107: case 213:
1.1.1.8 ! root 3108: #line 1243 "objc-parse.y"
! 3109: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
1.1 root 3110: break;}
1.1.1.7 root 3111: case 214:
1.1.1.8 ! root 3112: #line 1245 "objc-parse.y"
1.1 root 3113: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3114: break;}
1.1.1.7 root 3115: case 215:
1.1.1.8 ! root 3116: #line 1247 "objc-parse.y"
! 3117: { yyval.ttype = yyvsp[0].ttype; ;
1.1 root 3118: break;}
1.1.1.8 ! root 3119: case 217:
! 3120: #line 1256 "objc-parse.y"
! 3121: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
1.1 root 3122: break;}
1.1.1.7 root 3123: case 218:
1.1.1.8 ! root 3124: #line 1261 "objc-parse.y"
! 3125: { yyval.ttype = yyvsp[-1].ttype; ;
1.1 root 3126: break;}
1.1.1.7 root 3127: case 219:
1.1.1.8 ! root 3128: #line 1263 "objc-parse.y"
! 3129: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
1.1 root 3130: break;}
1.1.1.7 root 3131: case 220:
1.1.1.8 ! root 3132: #line 1265 "objc-parse.y"
! 3133: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
1.1 root 3134: break;}
1.1.1.7 root 3135: case 221:
1.1.1.8 ! root 3136: #line 1267 "objc-parse.y"
! 3137: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
1.1 root 3138: break;}
1.1.1.7 root 3139: case 222:
1.1.1.8 ! root 3140: #line 1269 "objc-parse.y"
! 3141: { yyval.ttype = yyvsp[0].ttype; ;
1.1 root 3142: break;}
1.1.1.7 root 3143: case 224:
1.1.1.8 ! root 3144: #line 1275 "objc-parse.y"
! 3145: { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
! 3146: /* Start scope of tag before parsing components. */
! 3147: ;
1.1 root 3148: break;}
1.1.1.7 root 3149: case 225:
1.1.1.8 ! root 3150: #line 1279 "objc-parse.y"
! 3151: { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1.1 root 3152: break;}
1.1.1.7 root 3153: case 226:
1.1.1.8 ! root 3154: #line 1281 "objc-parse.y"
! 3155: { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
! 3156: yyvsp[-2].ttype, yyvsp[0].ttype);
! 3157: ;
1.1 root 3158: break;}
1.1.1.7 root 3159: case 227:
1.1.1.8 ! root 3160: #line 1285 "objc-parse.y"
! 3161: { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
1.1 root 3162: break;}
1.1.1.7 root 3163: case 228:
1.1.1.8 ! root 3164: #line 1287 "objc-parse.y"
! 3165: { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
1.1 root 3166: break;}
1.1.1.7 root 3167: case 229:
1.1.1.8 ! root 3168: #line 1289 "objc-parse.y"
! 3169: { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1.1 root 3170: break;}
1.1.1.7 root 3171: case 230:
1.1.1.8 ! root 3172: #line 1291 "objc-parse.y"
! 3173: { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
! 3174: yyvsp[-2].ttype, yyvsp[0].ttype);
! 3175: ;
! 3176: break;}
! 3177: case 231:
! 3178: #line 1295 "objc-parse.y"
! 3179: { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
! 3180: break;}
! 3181: case 232:
! 3182: #line 1297 "objc-parse.y"
! 3183: { yyvsp[0].itype = suspend_momentary ();
! 3184: yyval.ttype = start_enum (yyvsp[-1].ttype); ;
! 3185: break;}
! 3186: case 233:
! 3187: #line 1300 "objc-parse.y"
! 3188: { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
! 3189: resume_momentary (yyvsp[-5].itype); ;
1.1 root 3190: break;}
1.1.1.7 root 3191: case 234:
1.1.1.8 ! root 3192: #line 1303 "objc-parse.y"
! 3193: { yyvsp[0].itype = suspend_momentary ();
! 3194: yyval.ttype = start_enum (NULL_TREE); ;
1.1 root 3195: break;}
1.1.1.7 root 3196: case 235:
1.1.1.8 ! root 3197: #line 1306 "objc-parse.y"
! 3198: { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
! 3199: resume_momentary (yyvsp[-5].itype); ;
1.1 root 3200: break;}
1.1.1.7 root 3201: case 236:
1.1.1.8 ! root 3202: #line 1309 "objc-parse.y"
! 3203: { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
! 3204: break;}
! 3205: case 240:
! 3206: #line 1320 "objc-parse.y"
! 3207: { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
! 3208: break;}
! 3209: case 241:
! 3210: #line 1325 "objc-parse.y"
! 3211: { yyval.ttype = yyvsp[0].ttype; ;
! 3212: break;}
! 3213: case 242:
! 3214: #line 1327 "objc-parse.y"
1.1 root 3215: { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
1.1.1.4 root 3216: pedwarn ("no semicolon at end of struct or union"); ;
1.1 root 3217: break;}
1.1.1.8 ! root 3218: case 243:
! 3219: #line 1332 "objc-parse.y"
1.1 root 3220: { yyval.ttype = NULL_TREE; ;
3221: break;}
1.1.1.8 ! root 3222: case 244:
! 3223: #line 1334 "objc-parse.y"
1.1 root 3224: { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
3225: break;}
1.1.1.8 ! root 3226: case 245:
! 3227: #line 1336 "objc-parse.y"
1.1 root 3228: { if (pedantic)
1.1.1.4 root 3229: pedwarn ("extra semicolon in struct or union specified"); ;
1.1 root 3230: break;}
1.1.1.8 ! root 3231: case 246:
! 3232: #line 1340 "objc-parse.y"
1.1.1.5 root 3233: {
3234: tree interface = lookup_interface (yyvsp[-1].ttype);
3235:
3236: if (interface)
3237: yyval.ttype = get_class_ivars (interface);
3238: else
3239: {
3240: error ("Cannot find interface declaration for `%s'",
3241: IDENTIFIER_POINTER (yyvsp[-1].ttype));
3242: yyval.ttype = NULL_TREE;
3243: }
3244: ;
1.1 root 3245: break;}
1.1.1.8 ! root 3246: case 247:
! 3247: #line 1365 "objc-parse.y"
1.1 root 3248: { yyval.ttype = yyvsp[0].ttype;
3249: current_declspecs = TREE_VALUE (declspec_stack);
1.1.1.8 ! root 3250: prefix_attributes = TREE_PURPOSE (declspec_stack);
1.1 root 3251: declspec_stack = TREE_CHAIN (declspec_stack);
3252: resume_momentary (yyvsp[-1].itype); ;
3253: break;}
1.1.1.8 ! root 3254: case 248:
! 3255: #line 1371 "objc-parse.y"
1.1 root 3256: { if (pedantic)
3257: pedwarn ("ANSI C forbids member declarations with no members");
3258: shadow_tag(yyvsp[0].ttype);
3259: yyval.ttype = NULL_TREE; ;
3260: break;}
1.1.1.8 ! root 3261: case 249:
! 3262: #line 1376 "objc-parse.y"
1.1 root 3263: { yyval.ttype = yyvsp[0].ttype;
3264: current_declspecs = TREE_VALUE (declspec_stack);
1.1.1.8 ! root 3265: prefix_attributes = TREE_PURPOSE (declspec_stack);
1.1 root 3266: declspec_stack = TREE_CHAIN (declspec_stack);
3267: resume_momentary (yyvsp[-1].itype); ;
3268: break;}
1.1.1.8 ! root 3269: case 250:
! 3270: #line 1382 "objc-parse.y"
1.1 root 3271: { if (pedantic)
3272: pedwarn ("ANSI C forbids member declarations with no members");
3273: shadow_tag(yyvsp[0].ttype);
3274: yyval.ttype = NULL_TREE; ;
3275: break;}
1.1.1.8 ! root 3276: case 251:
! 3277: #line 1387 "objc-parse.y"
1.1 root 3278: { yyval.ttype = NULL_TREE; ;
3279: break;}
1.1.1.8 ! root 3280: case 253:
! 3281: #line 1393 "objc-parse.y"
1.1 root 3282: { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3283: break;}
1.1.1.8 ! root 3284: case 254:
! 3285: #line 1398 "objc-parse.y"
1.1 root 3286: { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
1.1.1.8 ! root 3287: decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
1.1 root 3288: break;}
1.1.1.8 ! root 3289: case 255:
! 3290: #line 1402 "objc-parse.y"
1.1 root 3291: { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
1.1.1.8 ! root 3292: decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
1.1 root 3293: break;}
1.1.1.8 ! root 3294: case 256:
! 3295: #line 1405 "objc-parse.y"
1.1.1.5 root 3296: { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
1.1.1.8 ! root 3297: decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
1.1 root 3298: break;}
1.1.1.8 ! root 3299: case 258:
! 3300: #line 1417 "objc-parse.y"
! 3301: { if (yyvsp[-2].ttype == error_mark_node)
! 3302: yyval.ttype = yyvsp[-2].ttype;
! 3303: else
! 3304: yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
1.1 root 3305: break;}
1.1.1.8 ! root 3306: case 259:
! 3307: #line 1422 "objc-parse.y"
1.1.1.7 root 3308: { yyval.ttype = error_mark_node; ;
3309: break;}
1.1.1.8 ! root 3310: case 260:
! 3311: #line 1428 "objc-parse.y"
1.1 root 3312: { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
3313: break;}
1.1.1.8 ! root 3314: case 261:
! 3315: #line 1430 "objc-parse.y"
1.1 root 3316: { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3317: break;}
1.1.1.8 ! root 3318: case 262:
! 3319: #line 1435 "objc-parse.y"
1.1 root 3320: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3321: break;}
1.1.1.8 ! root 3322: case 263:
! 3323: #line 1437 "objc-parse.y"
1.1 root 3324: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3325: break;}
1.1.1.8 ! root 3326: case 264:
! 3327: #line 1442 "objc-parse.y"
1.1 root 3328: { yyval.ttype = NULL_TREE; ;
3329: break;}
1.1.1.8 ! root 3330: case 266:
! 3331: #line 1448 "objc-parse.y"
1.1 root 3332: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3333: break;}
1.1.1.8 ! root 3334: case 267:
! 3335: #line 1450 "objc-parse.y"
1.1 root 3336: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3337: break;}
1.1.1.8 ! root 3338: case 268:
! 3339: #line 1455 "objc-parse.y"
1.1 root 3340: { yyval.ttype = NULL_TREE; ;
3341: break;}
1.1.1.8 ! root 3342: case 269:
! 3343: #line 1457 "objc-parse.y"
1.1 root 3344: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3345: break;}
1.1.1.8 ! root 3346: case 270:
! 3347: #line 1462 "objc-parse.y"
1.1 root 3348: { yyval.ttype = yyvsp[-1].ttype; ;
3349: break;}
1.1.1.8 ! root 3350: case 271:
! 3351: #line 1465 "objc-parse.y"
1.1 root 3352: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3353: break;}
1.1.1.8 ! root 3354: case 272:
! 3355: #line 1467 "objc-parse.y"
1.1 root 3356: { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
3357: break;}
1.1.1.8 ! root 3358: case 273:
! 3359: #line 1469 "objc-parse.y"
1.1 root 3360: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3361: break;}
1.1.1.8 ! root 3362: case 274:
! 3363: #line 1471 "objc-parse.y"
1.1 root 3364: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3365: break;}
1.1.1.8 ! root 3366: case 275:
! 3367: #line 1473 "objc-parse.y"
1.1 root 3368: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3369: break;}
1.1.1.8 ! root 3370: case 276:
! 3371: #line 1475 "objc-parse.y"
1.1 root 3372: { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3373: break;}
1.1.1.8 ! root 3374: case 277:
! 3375: #line 1477 "objc-parse.y"
1.1 root 3376: { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
3377: break;}
1.1.1.8 ! root 3378: case 278:
! 3379: #line 1479 "objc-parse.y"
1.1 root 3380: { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
3381: break;}
1.1.1.7 root 3382: case 279:
1.1.1.8 ! root 3383: #line 1481 "objc-parse.y"
! 3384: { yyval.ttype = yyvsp[0].ttype; ;
! 3385: break;}
! 3386: case 280:
! 3387: #line 1490 "objc-parse.y"
! 3388: {
! 3389: if (pedantic && yyvsp[0].ends_in_label)
! 3390: pedwarn ("ANSI C forbids label at end of compound statement");
! 3391: ;
! 3392: break;}
! 3393: case 282:
! 3394: #line 1499 "objc-parse.y"
! 3395: { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
! 3396: break;}
! 3397: case 283:
! 3398: #line 1501 "objc-parse.y"
! 3399: { yyval.ends_in_label = 0; ;
! 3400: break;}
! 3401: case 287:
! 3402: #line 1513 "objc-parse.y"
1.1 root 3403: { emit_line_note (input_filename, lineno);
3404: pushlevel (0);
3405: clear_last_expr ();
3406: push_momentary ();
3407: expand_start_bindings (0);
3408: if (objc_method_context)
1.1.1.4 root 3409: add_objc_decls ();
3410: ;
1.1 root 3411: break;}
1.1.1.8 ! root 3412: case 289:
! 3413: #line 1528 "objc-parse.y"
1.1 root 3414: { if (pedantic)
3415: pedwarn ("ANSI C forbids label declarations"); ;
3416: break;}
1.1.1.8 ! root 3417: case 292:
! 3418: #line 1539 "objc-parse.y"
1.1 root 3419: { tree link;
3420: for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
3421: {
3422: tree label = shadow_label (TREE_VALUE (link));
3423: C_DECLARED_LABEL_FLAG (label) = 1;
3424: declare_nonlocal_label (label);
3425: }
3426: ;
3427: break;}
1.1.1.8 ! root 3428: case 293:
! 3429: #line 1553 "objc-parse.y"
1.1 root 3430: {;
3431: break;}
1.1.1.8 ! root 3432: case 295:
! 3433: #line 1558 "objc-parse.y"
1.1 root 3434: { yyval.ttype = convert (void_type_node, integer_zero_node); ;
3435: break;}
1.1.1.8 ! root 3436: case 296:
! 3437: #line 1560 "objc-parse.y"
1.1 root 3438: { emit_line_note (input_filename, lineno);
3439: expand_end_bindings (getdecls (), 1, 0);
3440: yyval.ttype = poplevel (1, 1, 0);
1.1.1.7 root 3441: if (yychar == CONSTANT || yychar == STRING)
3442: pop_momentary_nofree ();
3443: else
3444: pop_momentary (); ;
1.1 root 3445: break;}
1.1.1.8 ! root 3446: case 297:
! 3447: #line 1568 "objc-parse.y"
1.1 root 3448: { emit_line_note (input_filename, lineno);
3449: expand_end_bindings (getdecls (), kept_level_p (), 0);
3450: yyval.ttype = poplevel (kept_level_p (), 0, 0);
1.1.1.7 root 3451: if (yychar == CONSTANT || yychar == STRING)
3452: pop_momentary_nofree ();
3453: else
3454: pop_momentary (); ;
1.1 root 3455: break;}
1.1.1.8 ! root 3456: case 298:
! 3457: #line 1576 "objc-parse.y"
1.1 root 3458: { emit_line_note (input_filename, lineno);
3459: expand_end_bindings (getdecls (), kept_level_p (), 0);
3460: yyval.ttype = poplevel (kept_level_p (), 0, 0);
1.1.1.7 root 3461: if (yychar == CONSTANT || yychar == STRING)
3462: pop_momentary_nofree ();
3463: else
3464: pop_momentary (); ;
1.1 root 3465: break;}
1.1.1.8 ! root 3466: case 301:
! 3467: #line 1596 "objc-parse.y"
1.1 root 3468: { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3469: expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
1.1.1.6 root 3470: yyval.itype = stmt_count;
1.1 root 3471: if_stmt_file = yyvsp[-5].filename;
3472: if_stmt_line = yyvsp[-4].lineno;
3473: position_after_white_space (); ;
3474: break;}
1.1.1.8 ! root 3475: case 302:
! 3476: #line 1609 "objc-parse.y"
1.1.1.4 root 3477: { stmt_count++;
3478: emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3479: /* See comment in `while' alternative, above. */
3480: emit_nop ();
3481: expand_start_loop_continue_elsewhere (1);
3482: position_after_white_space (); ;
3483: break;}
1.1.1.8 ! root 3484: case 303:
! 3485: #line 1616 "objc-parse.y"
1.1.1.4 root 3486: { expand_loop_continue_here (); ;
3487: break;}
1.1.1.8 ! root 3488: case 304:
! 3489: #line 1620 "objc-parse.y"
1.1 root 3490: { yyval.filename = input_filename; ;
3491: break;}
1.1.1.8 ! root 3492: case 305:
! 3493: #line 1624 "objc-parse.y"
1.1 root 3494: { yyval.lineno = lineno; ;
3495: break;}
1.1.1.8 ! root 3496: case 306:
! 3497: #line 1629 "objc-parse.y"
1.1 root 3498: { ;
3499: break;}
1.1.1.8 ! root 3500: case 307:
! 3501: #line 1634 "objc-parse.y"
1.1.1.4 root 3502: { ;
3503: break;}
1.1.1.8 ! root 3504: case 308:
! 3505: #line 1639 "objc-parse.y"
! 3506: { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
1.1.1.4 root 3507: break;}
1.1.1.8 ! root 3508: case 309:
! 3509: #line 1644 "objc-parse.y"
! 3510: { yyval.ends_in_label = 0; ;
1.1.1.4 root 3511: break;}
1.1.1.8 ! root 3512: case 310:
! 3513: #line 1646 "objc-parse.y"
! 3514: { yyval.ends_in_label = 1; ;
! 3515: break;}
! 3516: case 311:
! 3517: #line 1652 "objc-parse.y"
1.1 root 3518: { stmt_count++; ;
3519: break;}
1.1.1.8 ! root 3520: case 313:
! 3521: #line 1655 "objc-parse.y"
1.1 root 3522: { stmt_count++;
3523: emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
1.1.1.6 root 3524: /* It appears that this should not be done--that a non-lvalue array
3525: shouldn't get an error if the value isn't used.
3526: Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3527: if it appears as a top-level expression,
3528: but says nothing about non-lvalue arrays. */
3529: #if 0
3530: /* Call default_conversion to get an error
3531: on referring to a register array if pedantic. */
3532: if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
3533: || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
3534: yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
3535: #endif
1.1.1.5 root 3536: iterator_expand (yyvsp[-1].ttype);
1.1 root 3537: clear_momentary (); ;
3538: break;}
1.1.1.8 ! root 3539: case 314:
! 3540: #line 1672 "objc-parse.y"
1.1 root 3541: { expand_start_else ();
3542: yyvsp[-1].itype = stmt_count;
3543: position_after_white_space (); ;
3544: break;}
1.1.1.8 ! root 3545: case 315:
! 3546: #line 1676 "objc-parse.y"
1.1 root 3547: { expand_end_cond ();
3548: if (extra_warnings && stmt_count == yyvsp[-3].itype)
3549: warning ("empty body in an else-statement"); ;
3550: break;}
1.1.1.8 ! root 3551: case 316:
! 3552: #line 1680 "objc-parse.y"
1.1 root 3553: { expand_end_cond ();
1.1.1.6 root 3554: /* This warning is here instead of in simple_if, because we
3555: do not want a warning if an empty if is followed by an
1.1.1.7 root 3556: else statement. Increment stmt_count so we don't
3557: give a second error if this is a nested `if'. */
3558: if (extra_warnings && stmt_count++ == yyvsp[0].itype)
1.1 root 3559: warning_with_file_and_line (if_stmt_file, if_stmt_line,
3560: "empty body in an if-statement"); ;
3561: break;}
1.1.1.8 ! root 3562: case 317:
! 3563: #line 1692 "objc-parse.y"
1.1.1.4 root 3564: { expand_end_cond (); ;
3565: break;}
1.1.1.8 ! root 3566: case 318:
! 3567: #line 1694 "objc-parse.y"
1.1.1.4 root 3568: { stmt_count++;
1.1 root 3569: emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
1.1.1.4 root 3570: /* The emit_nop used to come before emit_line_note,
3571: but that made the nop seem like part of the preceding line.
3572: And that was confusing when the preceding line was
3573: inside of an if statement and was not really executed.
3574: I think it ought to work to put the nop after the line number.
3575: We will see. --rms, July 15, 1991. */
3576: emit_nop (); ;
1.1 root 3577: break;}
1.1.1.8 ! root 3578: case 319:
! 3579: #line 1704 "objc-parse.y"
1.1.1.4 root 3580: { /* Don't start the loop till we have succeeded
3581: in parsing the end test. This is to make sure
3582: that we end every loop we start. */
3583: expand_start_loop (1);
3584: emit_line_note (input_filename, lineno);
3585: expand_exit_loop_if_false (NULL_PTR,
3586: truthvalue_conversion (yyvsp[-1].ttype));
1.1 root 3587: position_after_white_space (); ;
3588: break;}
1.1.1.8 ! root 3589: case 320:
! 3590: #line 1713 "objc-parse.y"
1.1 root 3591: { expand_end_loop (); ;
3592: break;}
1.1.1.8 ! root 3593: case 321:
! 3594: #line 1716 "objc-parse.y"
1.1 root 3595: { emit_line_note (input_filename, lineno);
1.1.1.4 root 3596: expand_exit_loop_if_false (NULL_PTR,
3597: truthvalue_conversion (yyvsp[-2].ttype));
1.1 root 3598: expand_end_loop ();
3599: clear_momentary (); ;
3600: break;}
1.1.1.8 ! root 3601: case 322:
! 3602: #line 1723 "objc-parse.y"
1.1.1.4 root 3603: { expand_end_loop ();
3604: clear_momentary (); ;
3605: break;}
1.1.1.8 ! root 3606: case 323:
! 3607: #line 1727 "objc-parse.y"
1.1.1.4 root 3608: { stmt_count++;
1.1 root 3609: emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
1.1.1.4 root 3610: /* See comment in `while' alternative, above. */
3611: emit_nop ();
1.1 root 3612: if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
1.1.1.4 root 3613: /* Next step is to call expand_start_loop_continue_elsewhere,
3614: but wait till after we parse the entire for (...).
3615: Otherwise, invalid input might cause us to call that
3616: fn without calling expand_end_loop. */
3617: ;
1.1 root 3618: break;}
1.1.1.8 ! root 3619: case 324:
! 3620: #line 1739 "objc-parse.y"
1.1.1.4 root 3621: { yyvsp[0].lineno = lineno;
3622: yyval.filename = input_filename; ;
1.1 root 3623: break;}
1.1.1.8 ! root 3624: case 325:
! 3625: #line 1742 "objc-parse.y"
1.1.1.4 root 3626: {
3627: /* Start the loop. Doing this after parsing
3628: all the expressions ensures we will end the loop. */
3629: expand_start_loop_continue_elsewhere (1);
3630: /* Emit the end-test, with a line number. */
3631: emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
3632: if (yyvsp[-4].ttype)
3633: expand_exit_loop_if_false (NULL_PTR,
3634: truthvalue_conversion (yyvsp[-4].ttype));
3635: /* Don't let the tree nodes for $9 be discarded by
3636: clear_momentary during the parsing of the next stmt. */
3637: push_momentary ();
3638: yyvsp[-3].lineno = lineno;
1.1.1.5 root 3639: yyvsp[-2].filename = input_filename;
3640: position_after_white_space (); ;
1.1 root 3641: break;}
1.1.1.8 ! root 3642: case 326:
! 3643: #line 1758 "objc-parse.y"
1.1.1.4 root 3644: { /* Emit the increment expression, with a line number. */
3645: emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
1.1 root 3646: expand_loop_continue_here ();
3647: if (yyvsp[-3].ttype)
3648: c_expand_expr_stmt (yyvsp[-3].ttype);
1.1.1.7 root 3649: if (yychar == CONSTANT || yychar == STRING)
3650: pop_momentary_nofree ();
3651: else
3652: pop_momentary ();
1.1 root 3653: expand_end_loop (); ;
3654: break;}
1.1.1.8 ! root 3655: case 327:
! 3656: #line 1769 "objc-parse.y"
1.1 root 3657: { stmt_count++;
3658: emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3659: c_expand_start_case (yyvsp[-1].ttype);
3660: /* Don't let the tree nodes for $3 be discarded by
3661: clear_momentary during the parsing of the next stmt. */
3662: push_momentary ();
3663: position_after_white_space (); ;
3664: break;}
1.1.1.8 ! root 3665: case 328:
! 3666: #line 1777 "objc-parse.y"
1.1 root 3667: { expand_end_case (yyvsp[-3].ttype);
1.1.1.7 root 3668: if (yychar == CONSTANT || yychar == STRING)
3669: pop_momentary_nofree ();
3670: else
3671: pop_momentary (); ;
1.1 root 3672: break;}
1.1.1.8 ! root 3673: case 329:
! 3674: #line 1783 "objc-parse.y"
1.1.1.4 root 3675: { stmt_count++;
3676: emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3677: if ( ! expand_exit_something ())
3678: error ("break statement not within loop or switch"); ;
3679: break;}
1.1.1.8 ! root 3680: case 330:
! 3681: #line 1788 "objc-parse.y"
1.1.1.4 root 3682: { stmt_count++;
3683: emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3684: if (! expand_continue_loop (NULL_PTR))
3685: error ("continue statement not within a loop"); ;
3686: break;}
1.1.1.8 ! root 3687: case 331:
! 3688: #line 1793 "objc-parse.y"
1.1.1.4 root 3689: { stmt_count++;
3690: emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3691: c_expand_return (NULL_TREE); ;
3692: break;}
1.1.1.8 ! root 3693: case 332:
! 3694: #line 1797 "objc-parse.y"
1.1.1.4 root 3695: { stmt_count++;
3696: emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3697: c_expand_return (yyvsp[-1].ttype); ;
3698: break;}
1.1.1.8 ! root 3699: case 333:
! 3700: #line 1801 "objc-parse.y"
1.1.1.4 root 3701: { stmt_count++;
3702: emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
3703: STRIP_NOPS (yyvsp[-2].ttype);
3704: if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
3705: && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
3706: || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
3707: expand_asm (yyvsp[-2].ttype);
3708: else
3709: error ("argument of `asm' is not a constant string"); ;
3710: break;}
1.1.1.8 ! root 3711: case 334:
! 3712: #line 1812 "objc-parse.y"
1.1.1.4 root 3713: { stmt_count++;
3714: emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
3715: c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
3716: yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
3717: input_filename, lineno); ;
3718: break;}
1.1.1.8 ! root 3719: case 335:
! 3720: #line 1819 "objc-parse.y"
1.1.1.4 root 3721: { stmt_count++;
3722: emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
3723: c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
3724: yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
3725: input_filename, lineno); ;
3726: break;}
1.1.1.8 ! root 3727: case 336:
! 3728: #line 1827 "objc-parse.y"
1.1.1.4 root 3729: { stmt_count++;
3730: emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
3731: c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
3732: yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
3733: input_filename, lineno); ;
3734: break;}
1.1.1.8 ! root 3735: case 337:
! 3736: #line 1833 "objc-parse.y"
1.1.1.4 root 3737: { tree decl;
3738: stmt_count++;
3739: emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3740: decl = lookup_label (yyvsp[-1].ttype);
3741: if (decl != 0)
3742: {
3743: TREE_USED (decl) = 1;
3744: expand_goto (decl);
3745: }
3746: ;
3747: break;}
1.1.1.8 ! root 3748: case 338:
! 3749: #line 1844 "objc-parse.y"
1.1.1.4 root 3750: { stmt_count++;
3751: emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3752: expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
3753: break;}
1.1.1.8 ! root 3754: case 341:
! 3755: #line 1857 "objc-parse.y"
1.1.1.5 root 3756: {
3757: /* The value returned by this action is */
3758: /* 1 if everything is OK */
3759: /* 0 in case of error or already bound iterator */
3760:
3761: yyval.itype = 0;
3762: if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
3763: error ("invalid `for (ITERATOR)' syntax");
1.1.1.6 root 3764: else if (! ITERATOR_P (yyvsp[-1].ttype))
1.1.1.5 root 3765: error ("`%s' is not an iterator",
3766: IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3767: else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
3768: error ("`for (%s)' inside expansion of same iterator",
3769: IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3770: else
3771: {
3772: yyval.itype = 1;
3773: iterator_for_loop_start (yyvsp[-1].ttype);
3774: }
3775: ;
3776: break;}
1.1.1.8 ! root 3777: case 342:
! 3778: #line 1878 "objc-parse.y"
1.1.1.5 root 3779: {
3780: if (yyvsp[-1].itype)
3781: iterator_for_loop_end (yyvsp[-3].ttype);
3782: ;
3783: break;}
1.1.1.8 ! root 3784: case 343:
! 3785: #line 1913 "objc-parse.y"
1.1 root 3786: { register tree value = check_case_value (yyvsp[-1].ttype);
3787: register tree label
3788: = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3789:
3790: stmt_count++;
3791:
3792: if (value != error_mark_node)
3793: {
3794: tree duplicate;
1.1.1.6 root 3795: int success = pushcase (value, convert_and_check,
3796: label, &duplicate);
1.1 root 3797: if (success == 1)
3798: error ("case label not within a switch statement");
3799: else if (success == 2)
3800: {
3801: error ("duplicate case value");
3802: error_with_decl (duplicate, "this is the first entry for that value");
3803: }
3804: else if (success == 3)
3805: warning ("case value out of range");
3806: else if (success == 5)
3807: error ("case label within scope of cleanup or variable array");
3808: }
3809: position_after_white_space (); ;
3810: break;}
1.1.1.8 ! root 3811: case 344:
! 3812: #line 1938 "objc-parse.y"
1.1 root 3813: { register tree value1 = check_case_value (yyvsp[-3].ttype);
3814: register tree value2 = check_case_value (yyvsp[-1].ttype);
3815: register tree label
3816: = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3817:
3818: stmt_count++;
3819:
3820: if (value1 != error_mark_node && value2 != error_mark_node)
3821: {
3822: tree duplicate;
1.1.1.6 root 3823: int success = pushcase_range (value1, value2,
3824: convert_and_check, label,
1.1 root 3825: &duplicate);
3826: if (success == 1)
3827: error ("case label not within a switch statement");
3828: else if (success == 2)
3829: {
3830: error ("duplicate case value");
1.1.1.4 root 3831: error_with_decl (duplicate, "this is the first entry for that value");
1.1 root 3832: }
3833: else if (success == 3)
3834: warning ("case value out of range");
3835: else if (success == 4)
3836: warning ("empty case range");
3837: else if (success == 5)
3838: error ("case label within scope of cleanup or variable array");
3839: }
3840: position_after_white_space (); ;
3841: break;}
1.1.1.8 ! root 3842: case 345:
! 3843: #line 1967 "objc-parse.y"
1.1 root 3844: {
3845: tree duplicate;
3846: register tree label
3847: = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
1.1.1.6 root 3848: int success = pushcase (NULL_TREE, 0, label, &duplicate);
1.1 root 3849: stmt_count++;
3850: if (success == 1)
3851: error ("default label not within a switch statement");
3852: else if (success == 2)
3853: {
3854: error ("multiple default labels in one switch");
1.1.1.4 root 3855: error_with_decl (duplicate, "this is the first default label");
1.1 root 3856: }
3857: position_after_white_space (); ;
3858: break;}
1.1.1.8 ! root 3859: case 346:
! 3860: #line 1982 "objc-parse.y"
1.1 root 3861: { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
3862: stmt_count++;
3863: emit_nop ();
3864: if (label)
3865: expand_label (label);
3866: position_after_white_space (); ;
3867: break;}
1.1.1.8 ! root 3868: case 347:
! 3869: #line 1994 "objc-parse.y"
1.1.1.6 root 3870: { emit_line_note (input_filename, lineno);
3871: yyval.ttype = NULL_TREE; ;
1.1 root 3872: break;}
1.1.1.8 ! root 3873: case 348:
! 3874: #line 1997 "objc-parse.y"
1.1.1.4 root 3875: { emit_line_note (input_filename, lineno); ;
1.1 root 3876: break;}
1.1.1.8 ! root 3877: case 349:
! 3878: #line 2002 "objc-parse.y"
1.1 root 3879: { yyval.ttype = NULL_TREE; ;
3880: break;}
1.1.1.8 ! root 3881: case 351:
! 3882: #line 2009 "objc-parse.y"
1.1 root 3883: { yyval.ttype = NULL_TREE; ;
3884: break;}
1.1.1.8 ! root 3885: case 354:
! 3886: #line 2016 "objc-parse.y"
1.1 root 3887: { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3888: break;}
1.1.1.8 ! root 3889: case 355:
! 3890: #line 2021 "objc-parse.y"
1.1 root 3891: { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3892: break;}
1.1.1.8 ! root 3893: case 356:
! 3894: #line 2026 "objc-parse.y"
1.1 root 3895: { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
3896: break;}
1.1.1.8 ! root 3897: case 357:
! 3898: #line 2028 "objc-parse.y"
1.1 root 3899: { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
3900: break;}
1.1.1.8 ! root 3901: case 358:
! 3902: #line 2034 "objc-parse.y"
1.1 root 3903: { pushlevel (0);
1.1.1.4 root 3904: clear_parm_order ();
1.1 root 3905: declare_parm_level (0); ;
3906: break;}
1.1.1.8 ! root 3907: case 359:
! 3908: #line 2038 "objc-parse.y"
1.1 root 3909: { yyval.ttype = yyvsp[0].ttype;
3910: parmlist_tags_warning ();
3911: poplevel (0, 0, 0); ;
3912: break;}
1.1.1.8 ! root 3913: case 361:
! 3914: #line 2046 "objc-parse.y"
1.1.1.4 root 3915: { tree parm;
3916: if (pedantic)
3917: pedwarn ("ANSI C forbids forward parameter declarations");
3918: /* Mark the forward decls as such. */
3919: for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
3920: TREE_ASM_WRITTEN (parm) = 1;
3921: clear_parm_order (); ;
1.1 root 3922: break;}
1.1.1.8 ! root 3923: case 362:
! 3924: #line 2054 "objc-parse.y"
1.1.1.4 root 3925: { yyval.ttype = yyvsp[0].ttype; ;
1.1 root 3926: break;}
1.1.1.8 ! root 3927: case 363:
! 3928: #line 2056 "objc-parse.y"
1.1 root 3929: { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
3930: break;}
1.1.1.8 ! root 3931: case 364:
! 3932: #line 2062 "objc-parse.y"
1.1 root 3933: { yyval.ttype = get_parm_info (0); ;
3934: break;}
1.1.1.8 ! root 3935: case 365:
! 3936: #line 2064 "objc-parse.y"
1.1.1.4 root 3937: { yyval.ttype = get_parm_info (0);
1.1.1.7 root 3938: /* Gcc used to allow this as an extension. However, it does
3939: not work for all targets, and thus has been disabled.
3940: Also, since func (...) and func () are indistinguishable,
3941: it caused problems with the code in expand_builtin which
3942: tries to verify that BUILT_IN_NEXT_ARG is being used
3943: correctly. */
3944: error ("ANSI C requires a named argument before `...'");
1.1.1.4 root 3945: ;
3946: break;}
1.1.1.8 ! root 3947: case 366:
! 3948: #line 2074 "objc-parse.y"
1.1 root 3949: { yyval.ttype = get_parm_info (1); ;
3950: break;}
1.1.1.8 ! root 3951: case 367:
! 3952: #line 2076 "objc-parse.y"
1.1 root 3953: { yyval.ttype = get_parm_info (0); ;
3954: break;}
1.1.1.8 ! root 3955: case 368:
! 3956: #line 2081 "objc-parse.y"
1.1 root 3957: { push_parm_decl (yyvsp[0].ttype); ;
3958: break;}
1.1.1.8 ! root 3959: case 369:
! 3960: #line 2083 "objc-parse.y"
1.1 root 3961: { push_parm_decl (yyvsp[0].ttype); ;
3962: break;}
1.1.1.8 ! root 3963: case 370:
! 3964: #line 2090 "objc-parse.y"
! 3965: { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
! 3966: yyvsp[-1].ttype),
! 3967: build_tree_list (prefix_attributes,
! 3968: yyvsp[0].ttype));
! 3969: current_declspecs = TREE_VALUE (declspec_stack);
! 3970: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 3971: declspec_stack = TREE_CHAIN (declspec_stack);
! 3972: resume_momentary (yyvsp[-2].itype); ;
1.1 root 3973: break;}
1.1.1.8 ! root 3974: case 371:
! 3975: #line 2099 "objc-parse.y"
! 3976: { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
! 3977: yyvsp[-1].ttype),
! 3978: build_tree_list (prefix_attributes,
! 3979: yyvsp[0].ttype));
! 3980: current_declspecs = TREE_VALUE (declspec_stack);
! 3981: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 3982: declspec_stack = TREE_CHAIN (declspec_stack);
! 3983: resume_momentary (yyvsp[-2].itype); ;
1.1 root 3984: break;}
1.1.1.8 ! root 3985: case 372:
! 3986: #line 2108 "objc-parse.y"
! 3987: { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
! 3988: yyvsp[-1].ttype),
! 3989: build_tree_list (prefix_attributes,
! 3990: yyvsp[0].ttype));
! 3991: current_declspecs = TREE_VALUE (declspec_stack);
! 3992: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 3993: declspec_stack = TREE_CHAIN (declspec_stack);
! 3994: resume_momentary (yyvsp[-2].itype); ;
1.1 root 3995: break;}
1.1.1.8 ! root 3996: case 373:
! 3997: #line 2117 "objc-parse.y"
! 3998: { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
! 3999: yyvsp[-1].ttype),
! 4000: build_tree_list (prefix_attributes,
! 4001: yyvsp[0].ttype));
! 4002: current_declspecs = TREE_VALUE (declspec_stack);
! 4003: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 4004: declspec_stack = TREE_CHAIN (declspec_stack);
! 4005: resume_momentary (yyvsp[-2].itype); ;
1.1 root 4006: break;}
1.1.1.8 ! root 4007: case 374:
! 4008: #line 2127 "objc-parse.y"
! 4009: { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
! 4010: yyvsp[-1].ttype),
! 4011: build_tree_list (prefix_attributes,
! 4012: yyvsp[0].ttype));
! 4013: current_declspecs = TREE_VALUE (declspec_stack);
! 4014: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 4015: declspec_stack = TREE_CHAIN (declspec_stack);
! 4016: resume_momentary (yyvsp[-2].itype); ;
1.1 root 4017: break;}
1.1.1.8 ! root 4018: case 375:
! 4019: #line 2141 "objc-parse.y"
1.1.1.4 root 4020: { pushlevel (0);
4021: clear_parm_order ();
4022: declare_parm_level (1); ;
4023: break;}
1.1.1.8 ! root 4024: case 376:
! 4025: #line 2145 "objc-parse.y"
1.1.1.4 root 4026: { yyval.ttype = yyvsp[0].ttype;
4027: parmlist_tags_warning ();
4028: poplevel (0, 0, 0); ;
4029: break;}
1.1.1.8 ! root 4030: case 378:
! 4031: #line 2153 "objc-parse.y"
1.1.1.4 root 4032: { tree t;
4033: for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
4034: if (TREE_VALUE (t) == NULL_TREE)
4035: error ("`...' in old-style identifier list");
4036: yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
4037: break;}
1.1.1.8 ! root 4038: case 379:
! 4039: #line 2163 "objc-parse.y"
1.1 root 4040: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4041: break;}
1.1.1.8 ! root 4042: case 380:
! 4043: #line 2165 "objc-parse.y"
1.1 root 4044: { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4045: break;}
1.1.1.8 ! root 4046: case 381:
! 4047: #line 2171 "objc-parse.y"
1.1.1.4 root 4048: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4049: break;}
1.1.1.8 ! root 4050: case 382:
! 4051: #line 2173 "objc-parse.y"
1.1.1.4 root 4052: { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4053: break;}
1.1.1.8 ! root 4054: case 388:
! 4055: #line 2185 "objc-parse.y"
1.1 root 4056: {
4057: if (objc_implementation_context)
4058: {
4059: finish_class (objc_implementation_context);
4060: objc_ivar_chain = NULL_TREE;
4061: objc_implementation_context = NULL_TREE;
4062: }
4063: else
4064: warning ("`@end' must appear in an implementation context");
4065: ;
4066: break;}
1.1.1.8 ! root 4067: case 389:
! 4068: #line 2200 "objc-parse.y"
1.1.1.5 root 4069: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4070: break;}
1.1.1.8 ! root 4071: case 390:
! 4072: #line 2202 "objc-parse.y"
1.1.1.5 root 4073: { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4074: break;}
1.1.1.8 ! root 4075: case 391:
! 4076: #line 2207 "objc-parse.y"
1.1.1.5 root 4077: {
4078: objc_declare_class (yyvsp[-1].ttype);
4079: ;
4080: break;}
1.1.1.8 ! root 4081: case 392:
! 4082: #line 2213 "objc-parse.y"
1.1.1.5 root 4083: {
4084: objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype);
4085: ;
4086: break;}
1.1.1.8 ! root 4087: case 393:
! 4088: #line 2219 "objc-parse.y"
1.1 root 4089: {
4090: objc_interface_context = objc_ivar_context
1.1.1.5 root 4091: = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
1.1 root 4092: objc_public_flag = 0;
4093: ;
4094: break;}
1.1.1.8 ! root 4095: case 394:
! 4096: #line 2225 "objc-parse.y"
1.1 root 4097: {
4098: continue_class (objc_interface_context);
4099: ;
4100: break;}
1.1.1.8 ! root 4101: case 395:
! 4102: #line 2230 "objc-parse.y"
1.1 root 4103: {
4104: finish_class (objc_interface_context);
4105: objc_interface_context = NULL_TREE;
4106: ;
4107: break;}
1.1.1.8 ! root 4108: case 396:
! 4109: #line 2236 "objc-parse.y"
1.1 root 4110: {
4111: objc_interface_context
1.1.1.5 root 4112: = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype);
1.1 root 4113: continue_class (objc_interface_context);
4114: ;
4115: break;}
1.1.1.8 ! root 4116: case 397:
! 4117: #line 2243 "objc-parse.y"
1.1 root 4118: {
4119: finish_class (objc_interface_context);
4120: objc_interface_context = NULL_TREE;
4121: ;
4122: break;}
1.1.1.8 ! root 4123: case 398:
! 4124: #line 2249 "objc-parse.y"
1.1 root 4125: {
4126: objc_interface_context = objc_ivar_context
1.1.1.5 root 4127: = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype);
1.1 root 4128: objc_public_flag = 0;
4129: ;
4130: break;}
1.1.1.8 ! root 4131: case 399:
! 4132: #line 2255 "objc-parse.y"
1.1 root 4133: {
4134: continue_class (objc_interface_context);
4135: ;
4136: break;}
1.1.1.8 ! root 4137: case 400:
! 4138: #line 2260 "objc-parse.y"
1.1 root 4139: {
4140: finish_class (objc_interface_context);
4141: objc_interface_context = NULL_TREE;
4142: ;
4143: break;}
1.1.1.8 ! root 4144: case 401:
! 4145: #line 2266 "objc-parse.y"
1.1 root 4146: {
4147: objc_interface_context
1.1.1.5 root 4148: = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
1.1 root 4149: continue_class (objc_interface_context);
4150: ;
4151: break;}
1.1.1.8 ! root 4152: case 402:
! 4153: #line 2273 "objc-parse.y"
1.1 root 4154: {
4155: finish_class (objc_interface_context);
4156: objc_interface_context = NULL_TREE;
4157: ;
4158: break;}
1.1.1.8 ! root 4159: case 403:
! 4160: #line 2279 "objc-parse.y"
1.1 root 4161: {
4162: objc_implementation_context = objc_ivar_context
1.1.1.5 root 4163: = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
1.1 root 4164: objc_public_flag = 0;
4165: ;
4166: break;}
1.1.1.8 ! root 4167: case 404:
! 4168: #line 2285 "objc-parse.y"
1.1 root 4169: {
4170: objc_ivar_chain
4171: = continue_class (objc_implementation_context);
4172: ;
4173: break;}
1.1.1.8 ! root 4174: case 405:
! 4175: #line 2291 "objc-parse.y"
1.1 root 4176: {
4177: objc_implementation_context
1.1.1.5 root 4178: = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
1.1 root 4179: objc_ivar_chain
4180: = continue_class (objc_implementation_context);
4181: ;
4182: break;}
1.1.1.8 ! root 4183: case 406:
! 4184: #line 2299 "objc-parse.y"
1.1 root 4185: {
4186: objc_implementation_context = objc_ivar_context
1.1.1.5 root 4187: = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
1.1 root 4188: objc_public_flag = 0;
4189: ;
4190: break;}
1.1.1.8 ! root 4191: case 407:
! 4192: #line 2305 "objc-parse.y"
1.1 root 4193: {
4194: objc_ivar_chain
4195: = continue_class (objc_implementation_context);
4196: ;
4197: break;}
1.1.1.8 ! root 4198: case 408:
! 4199: #line 2311 "objc-parse.y"
1.1 root 4200: {
4201: objc_implementation_context
1.1.1.5 root 4202: = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
1.1 root 4203: objc_ivar_chain
4204: = continue_class (objc_implementation_context);
4205: ;
4206: break;}
1.1.1.8 ! root 4207: case 409:
! 4208: #line 2319 "objc-parse.y"
1.1 root 4209: {
4210: objc_interface_context
1.1.1.5 root 4211: = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
1.1 root 4212: continue_class (objc_interface_context);
4213: ;
4214: break;}
1.1.1.8 ! root 4215: case 410:
! 4216: #line 2326 "objc-parse.y"
1.1 root 4217: {
4218: finish_class (objc_interface_context);
4219: objc_interface_context = NULL_TREE;
4220: ;
4221: break;}
1.1.1.8 ! root 4222: case 411:
! 4223: #line 2332 "objc-parse.y"
1.1 root 4224: {
4225: objc_implementation_context
1.1.1.5 root 4226: = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
1.1 root 4227: objc_ivar_chain
4228: = continue_class (objc_implementation_context);
4229: ;
4230: break;}
1.1.1.8 ! root 4231: case 412:
! 4232: #line 2342 "objc-parse.y"
1.1.1.5 root 4233: {
4234: remember_protocol_qualifiers ();
4235: objc_interface_context
4236: = start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[-1].ttype, yyvsp[0].ttype);
4237: ;
4238: break;}
1.1.1.8 ! root 4239: case 413:
! 4240: #line 2348 "objc-parse.y"
1.1.1.5 root 4241: {
4242: forget_protocol_qualifiers();
4243: finish_protocol(objc_interface_context);
4244: objc_interface_context = NULL_TREE;
4245: ;
4246: break;}
1.1.1.8 ! root 4247: case 414:
! 4248: #line 2357 "objc-parse.y"
1.1.1.5 root 4249: {
4250: yyval.ttype = NULL_TREE;
4251: ;
4252: break;}
1.1.1.8 ! root 4253: case 415:
! 4254: #line 2361 "objc-parse.y"
1.1.1.5 root 4255: {
4256: if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR)
4257: yyval.ttype = yyvsp[-1].ttype;
4258: else
4259: YYERROR1;
4260: ;
4261: break;}
1.1.1.8 ! root 4262: case 418:
! 4263: #line 2375 "objc-parse.y"
1.1.1.5 root 4264: { objc_public_flag = 2; ;
4265: break;}
1.1.1.8 ! root 4266: case 419:
! 4267: #line 2376 "objc-parse.y"
1.1.1.5 root 4268: { objc_public_flag = 0; ;
4269: break;}
1.1.1.8 ! root 4270: case 420:
! 4271: #line 2377 "objc-parse.y"
1.1 root 4272: { objc_public_flag = 1; ;
4273: break;}
1.1.1.8 ! root 4274: case 421:
! 4275: #line 2382 "objc-parse.y"
1.1 root 4276: {
4277: yyval.ttype = NULL_TREE;
4278: ;
4279: break;}
1.1.1.8 ! root 4280: case 423:
! 4281: #line 2387 "objc-parse.y"
1.1 root 4282: {
4283: if (pedantic)
1.1.1.5 root 4284: pedwarn ("extra semicolon in struct or union specified");
1.1 root 4285: ;
4286: break;}
1.1.1.8 ! root 4287: case 424:
! 4288: #line 2405 "objc-parse.y"
! 4289: { yyval.ttype = yyvsp[0].ttype;
! 4290: current_declspecs = TREE_VALUE (declspec_stack);
! 4291: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 4292: declspec_stack = TREE_CHAIN (declspec_stack);
! 4293: resume_momentary (yyvsp[-1].itype); ;
1.1 root 4294: break;}
1.1.1.8 ! root 4295: case 425:
! 4296: #line 2411 "objc-parse.y"
! 4297: { yyval.ttype = yyvsp[0].ttype;
! 4298: current_declspecs = TREE_VALUE (declspec_stack);
! 4299: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 4300: declspec_stack = TREE_CHAIN (declspec_stack);
! 4301: resume_momentary (yyvsp[-1].itype); ;
1.1 root 4302: break;}
1.1.1.8 ! root 4303: case 426:
! 4304: #line 2417 "objc-parse.y"
1.1 root 4305: { yyval.ttype = NULL_TREE; ;
4306: break;}
1.1.1.8 ! root 4307: case 427:
! 4308: #line 2422 "objc-parse.y"
1.1 root 4309: { yyval.ttype = NULL_TREE; ;
4310: break;}
1.1.1.8 ! root 4311: case 430:
! 4312: #line 2429 "objc-parse.y"
1.1 root 4313: {
4314: yyval.ttype = add_instance_variable (objc_ivar_context,
4315: objc_public_flag,
4316: yyvsp[0].ttype, current_declspecs,
4317: NULL_TREE);
4318: ;
4319: break;}
1.1.1.8 ! root 4320: case 431:
! 4321: #line 2436 "objc-parse.y"
1.1 root 4322: {
4323: yyval.ttype = add_instance_variable (objc_ivar_context,
4324: objc_public_flag,
4325: yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype);
4326: ;
4327: break;}
1.1.1.8 ! root 4328: case 432:
! 4329: #line 2442 "objc-parse.y"
1.1 root 4330: {
4331: yyval.ttype = add_instance_variable (objc_ivar_context,
4332: objc_public_flag,
4333: NULL_TREE,
4334: current_declspecs, yyvsp[0].ttype);
4335: ;
4336: break;}
1.1.1.8 ! root 4337: case 433:
! 4338: #line 2452 "objc-parse.y"
1.1 root 4339: {
1.1.1.5 root 4340: remember_protocol_qualifiers ();
1.1 root 4341: if (objc_implementation_context)
4342: objc_inherit_code = CLASS_METHOD_DECL;
4343: else
4344: fatal ("method definition not in class context");
4345: ;
4346: break;}
1.1.1.8 ! root 4347: case 434:
! 4348: #line 2460 "objc-parse.y"
1.1 root 4349: {
1.1.1.5 root 4350: forget_protocol_qualifiers ();
1.1 root 4351: add_class_method (objc_implementation_context, yyvsp[0].ttype);
4352: start_method_def (yyvsp[0].ttype);
4353: objc_method_context = yyvsp[0].ttype;
4354: ;
4355: break;}
1.1.1.8 ! root 4356: case 435:
! 4357: #line 2467 "objc-parse.y"
1.1 root 4358: {
4359: continue_method_def ();
4360: ;
4361: break;}
1.1.1.8 ! root 4362: case 436:
! 4363: #line 2471 "objc-parse.y"
1.1 root 4364: {
4365: finish_method_def ();
4366: objc_method_context = NULL_TREE;
4367: ;
4368: break;}
1.1.1.8 ! root 4369: case 437:
! 4370: #line 2477 "objc-parse.y"
1.1 root 4371: {
1.1.1.5 root 4372: remember_protocol_qualifiers ();
1.1 root 4373: if (objc_implementation_context)
4374: objc_inherit_code = INSTANCE_METHOD_DECL;
4375: else
4376: fatal ("method definition not in class context");
4377: ;
4378: break;}
1.1.1.8 ! root 4379: case 438:
! 4380: #line 2485 "objc-parse.y"
1.1 root 4381: {
1.1.1.5 root 4382: forget_protocol_qualifiers ();
1.1 root 4383: add_instance_method (objc_implementation_context, yyvsp[0].ttype);
4384: start_method_def (yyvsp[0].ttype);
4385: objc_method_context = yyvsp[0].ttype;
4386: ;
4387: break;}
1.1.1.8 ! root 4388: case 439:
! 4389: #line 2492 "objc-parse.y"
1.1 root 4390: {
4391: continue_method_def ();
4392: ;
4393: break;}
1.1.1.8 ! root 4394: case 440:
! 4395: #line 2496 "objc-parse.y"
1.1 root 4396: {
4397: finish_method_def ();
4398: objc_method_context = NULL_TREE;
4399: ;
4400: break;}
1.1.1.8 ! root 4401: case 442:
! 4402: #line 2508 "objc-parse.y"
1.1 root 4403: {yyval.ttype = NULL_TREE; ;
4404: break;}
1.1.1.8 ! root 4405: case 447:
! 4406: #line 2515 "objc-parse.y"
1.1 root 4407: {yyval.ttype = NULL_TREE; ;
4408: break;}
1.1.1.8 ! root 4409: case 451:
! 4410: #line 2525 "objc-parse.y"
1.1 root 4411: {
4412: objc_inherit_code = CLASS_METHOD_DECL;
4413: ;
4414: break;}
1.1.1.8 ! root 4415: case 452:
! 4416: #line 2529 "objc-parse.y"
1.1 root 4417: {
4418: add_class_method (objc_interface_context, yyvsp[0].ttype);
4419: ;
4420: break;}
1.1.1.8 ! root 4421: case 454:
! 4422: #line 2535 "objc-parse.y"
1.1 root 4423: {
4424: objc_inherit_code = INSTANCE_METHOD_DECL;
4425: ;
4426: break;}
1.1.1.8 ! root 4427: case 455:
! 4428: #line 2539 "objc-parse.y"
1.1 root 4429: {
4430: add_instance_method (objc_interface_context, yyvsp[0].ttype);
4431: ;
4432: break;}
1.1.1.8 ! root 4433: case 457:
! 4434: #line 2547 "objc-parse.y"
1.1 root 4435: {
4436: yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
4437: ;
4438: break;}
1.1.1.8 ! root 4439: case 458:
! 4440: #line 2552 "objc-parse.y"
1.1 root 4441: {
4442: yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE);
4443: ;
4444: break;}
1.1.1.8 ! root 4445: case 459:
! 4446: #line 2557 "objc-parse.y"
1.1 root 4447: {
4448: yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
4449: ;
4450: break;}
1.1.1.8 ! root 4451: case 460:
! 4452: #line 2562 "objc-parse.y"
1.1 root 4453: {
4454: yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
4455: ;
4456: break;}
1.1.1.8 ! root 4457: case 469:
! 4458: #line 2592 "objc-parse.y"
! 4459: { current_declspecs = TREE_VALUE (declspec_stack);
! 4460: prefix_attributes = TREE_PURPOSE (declspec_stack);
! 4461: declspec_stack = TREE_CHAIN (declspec_stack);
! 4462: resume_momentary (yyvsp[-2].itype); ;
1.1 root 4463: break;}
1.1.1.8 ! root 4464: case 470:
! 4465: #line 2597 "objc-parse.y"
1.1 root 4466: { shadow_tag (yyvsp[-1].ttype); ;
4467: break;}
1.1.1.8 ! root 4468: case 471:
! 4469: #line 2599 "objc-parse.y"
1.1.1.4 root 4470: { pedwarn ("empty declaration"); ;
1.1 root 4471: break;}
1.1.1.8 ! root 4472: case 472:
! 4473: #line 2604 "objc-parse.y"
1.1 root 4474: { push_parm_decl (yyvsp[0].ttype); ;
4475: break;}
1.1.1.8 ! root 4476: case 473:
! 4477: #line 2606 "objc-parse.y"
1.1 root 4478: { push_parm_decl (yyvsp[0].ttype); ;
4479: break;}
1.1.1.8 ! root 4480: case 474:
! 4481: #line 2614 "objc-parse.y"
! 4482: { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
! 4483: yyvsp[-1].ttype),
! 4484: build_tree_list (prefix_attributes,
! 4485: yyvsp[0].ttype)); ;
1.1 root 4486: break;}
1.1.1.8 ! root 4487: case 475:
! 4488: #line 2619 "objc-parse.y"
! 4489: { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
! 4490: yyvsp[-1].ttype),
! 4491: build_tree_list (prefix_attributes,
! 4492: yyvsp[0].ttype)); ;
! 4493: break;}
! 4494: case 476:
! 4495: #line 2624 "objc-parse.y"
! 4496: { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
! 4497: yyvsp[-1].ttype),
! 4498: build_tree_list (prefix_attributes,
! 4499: yyvsp[0].ttype)); ;
! 4500: break;}
! 4501: case 477:
! 4502: #line 2632 "objc-parse.y"
1.1 root 4503: {
4504: yyval.ttype = NULL_TREE;
4505: ;
4506: break;}
1.1.1.8 ! root 4507: case 478:
! 4508: #line 2636 "objc-parse.y"
1.1 root 4509: {
4510: /* oh what a kludge! */
4511: yyval.ttype = (tree)1;
4512: ;
4513: break;}
1.1.1.8 ! root 4514: case 479:
! 4515: #line 2641 "objc-parse.y"
1.1 root 4516: {
4517: pushlevel (0);
4518: ;
4519: break;}
1.1.1.8 ! root 4520: case 480:
! 4521: #line 2645 "objc-parse.y"
1.1 root 4522: {
4523: /* returns a tree list node generated by get_parm_info */
4524: yyval.ttype = yyvsp[0].ttype;
4525: poplevel (0, 0, 0);
4526: ;
4527: break;}
1.1.1.8 ! root 4528: case 483:
! 4529: #line 2660 "objc-parse.y"
1.1 root 4530: {
4531: yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
4532: ;
4533: break;}
1.1.1.8 ! root 4534: case 488:
! 4535: #line 2673 "objc-parse.y"
1.1 root 4536: { yyval.ttype = get_identifier (token_buffer); ;
4537: break;}
1.1.1.8 ! root 4538: case 489:
! 4539: #line 2674 "objc-parse.y"
1.1 root 4540: { yyval.ttype = get_identifier (token_buffer); ;
4541: break;}
1.1.1.8 ! root 4542: case 490:
! 4543: #line 2675 "objc-parse.y"
1.1 root 4544: { yyval.ttype = get_identifier (token_buffer); ;
4545: break;}
1.1.1.8 ! root 4546: case 491:
! 4547: #line 2676 "objc-parse.y"
1.1 root 4548: { yyval.ttype = get_identifier (token_buffer); ;
4549: break;}
1.1.1.8 ! root 4550: case 492:
! 4551: #line 2677 "objc-parse.y"
1.1 root 4552: { yyval.ttype = get_identifier (token_buffer); ;
4553: break;}
1.1.1.8 ! root 4554: case 493:
! 4555: #line 2678 "objc-parse.y"
1.1 root 4556: { yyval.ttype = get_identifier (token_buffer); ;
4557: break;}
1.1.1.8 ! root 4558: case 494:
! 4559: #line 2679 "objc-parse.y"
1.1 root 4560: { yyval.ttype = get_identifier (token_buffer); ;
4561: break;}
1.1.1.8 ! root 4562: case 495:
! 4563: #line 2680 "objc-parse.y"
1.1 root 4564: { yyval.ttype = get_identifier (token_buffer); ;
4565: break;}
1.1.1.8 ! root 4566: case 496:
! 4567: #line 2681 "objc-parse.y"
1.1 root 4568: { yyval.ttype = get_identifier (token_buffer); ;
4569: break;}
1.1.1.8 ! root 4570: case 497:
! 4571: #line 2682 "objc-parse.y"
1.1 root 4572: { yyval.ttype = get_identifier (token_buffer); ;
4573: break;}
1.1.1.8 ! root 4574: case 498:
! 4575: #line 2683 "objc-parse.y"
1.1 root 4576: { yyval.ttype = get_identifier (token_buffer); ;
4577: break;}
1.1.1.8 ! root 4578: case 499:
! 4579: #line 2684 "objc-parse.y"
1.1 root 4580: { yyval.ttype = get_identifier (token_buffer); ;
4581: break;}
1.1.1.8 ! root 4582: case 500:
! 4583: #line 2685 "objc-parse.y"
1.1 root 4584: { yyval.ttype = get_identifier (token_buffer); ;
4585: break;}
1.1.1.8 ! root 4586: case 501:
! 4587: #line 2686 "objc-parse.y"
1.1 root 4588: { yyval.ttype = get_identifier (token_buffer); ;
4589: break;}
1.1.1.8 ! root 4590: case 502:
! 4591: #line 2687 "objc-parse.y"
1.1 root 4592: { yyval.ttype = get_identifier (token_buffer); ;
4593: break;}
1.1.1.8 ! root 4594: case 503:
! 4595: #line 2688 "objc-parse.y"
1.1 root 4596: { yyval.ttype = get_identifier (token_buffer); ;
4597: break;}
1.1.1.8 ! root 4598: case 504:
! 4599: #line 2689 "objc-parse.y"
1.1 root 4600: { yyval.ttype = get_identifier (token_buffer); ;
4601: break;}
1.1.1.8 ! root 4602: case 505:
! 4603: #line 2690 "objc-parse.y"
1.1 root 4604: { yyval.ttype = get_identifier (token_buffer); ;
4605: break;}
1.1.1.8 ! root 4606: case 506:
! 4607: #line 2691 "objc-parse.y"
1.1 root 4608: { yyval.ttype = get_identifier (token_buffer); ;
4609: break;}
1.1.1.8 ! root 4610: case 509:
! 4611: #line 2697 "objc-parse.y"
1.1 root 4612: {
4613: yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
4614: ;
4615: break;}
1.1.1.8 ! root 4616: case 510:
! 4617: #line 2702 "objc-parse.y"
1.1 root 4618: {
4619: yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
4620: ;
4621: break;}
1.1.1.8 ! root 4622: case 511:
! 4623: #line 2707 "objc-parse.y"
1.1 root 4624: {
4625: yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype);
4626: ;
4627: break;}
1.1.1.8 ! root 4628: case 512:
! 4629: #line 2712 "objc-parse.y"
1.1 root 4630: {
4631: yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
4632: ;
4633: break;}
1.1.1.8 ! root 4634: case 516:
! 4635: #line 2725 "objc-parse.y"
1.1 root 4636: {
4637: yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
4638: ;
4639: break;}
1.1.1.8 ! root 4640: case 517:
! 4641: #line 2733 "objc-parse.y"
1.1 root 4642: {
4643: if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE)
4644: /* just return the expr., remove a level of indirection */
4645: yyval.ttype = TREE_VALUE (yyvsp[0].ttype);
4646: else
4647: /* we have a comma expr., we will collapse later */
4648: yyval.ttype = yyvsp[0].ttype;
4649: ;
4650: break;}
1.1.1.8 ! root 4651: case 518:
! 4652: #line 2745 "objc-parse.y"
1.1 root 4653: {
4654: yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
4655: ;
4656: break;}
1.1.1.8 ! root 4657: case 519:
! 4658: #line 2749 "objc-parse.y"
1.1 root 4659: {
4660: yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
4661: ;
4662: break;}
1.1.1.8 ! root 4663: case 521:
! 4664: #line 2757 "objc-parse.y"
1.1 root 4665: {
4666: yyval.ttype = get_class_reference (yyvsp[0].ttype);
4667: ;
4668: break;}
1.1.1.8 ! root 4669: case 522:
! 4670: #line 2764 "objc-parse.y"
1.1 root 4671: { objc_receiver_context = 1; ;
4672: break;}
1.1.1.8 ! root 4673: case 523:
! 4674: #line 2766 "objc-parse.y"
1.1 root 4675: { objc_receiver_context = 0; ;
4676: break;}
1.1.1.8 ! root 4677: case 524:
! 4678: #line 2768 "objc-parse.y"
1.1 root 4679: {
4680: yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype);
4681: ;
4682: break;}
1.1.1.8 ! root 4683: case 528:
! 4684: #line 2781 "objc-parse.y"
1.1 root 4685: {
4686: yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
4687: ;
4688: break;}
1.1.1.8 ! root 4689: case 529:
! 4690: #line 2788 "objc-parse.y"
1.1 root 4691: {
4692: yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
4693: ;
4694: break;}
1.1.1.8 ! root 4695: case 530:
! 4696: #line 2792 "objc-parse.y"
1.1 root 4697: {
4698: yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE);
4699: ;
4700: break;}
1.1.1.8 ! root 4701: case 531:
! 4702: #line 2799 "objc-parse.y"
1.1 root 4703: {
4704: yyval.ttype = yyvsp[-1].ttype;
4705: ;
4706: break;}
1.1.1.8 ! root 4707: case 532:
! 4708: #line 2806 "objc-parse.y"
1.1.1.5 root 4709: {
4710: yyval.ttype = yyvsp[-1].ttype;
4711: ;
4712: break;}
1.1.1.8 ! root 4713: case 533:
! 4714: #line 2815 "objc-parse.y"
1.1 root 4715: {
4716: yyval.ttype = groktypename (yyvsp[-1].ttype);
4717: ;
4718: break;}
4719: }
4720: /* the action file gets copied in in place of this dollarsign */
1.1.1.6 root 4721: #line 480 "/usr/local/lib/bison.simple"
1.1 root 4722:
4723: yyvsp -= yylen;
4724: yyssp -= yylen;
4725: #ifdef YYLSP_NEEDED
4726: yylsp -= yylen;
4727: #endif
4728:
4729: #if YYDEBUG != 0
4730: if (yydebug)
4731: {
4732: short *ssp1 = yyss - 1;
4733: fprintf (stderr, "state stack now");
4734: while (ssp1 != yyssp)
4735: fprintf (stderr, " %d", *++ssp1);
4736: fprintf (stderr, "\n");
4737: }
4738: #endif
4739:
4740: *++yyvsp = yyval;
4741:
4742: #ifdef YYLSP_NEEDED
4743: yylsp++;
4744: if (yylen == 0)
4745: {
4746: yylsp->first_line = yylloc.first_line;
4747: yylsp->first_column = yylloc.first_column;
4748: yylsp->last_line = (yylsp-1)->last_line;
4749: yylsp->last_column = (yylsp-1)->last_column;
4750: yylsp->text = 0;
4751: }
4752: else
4753: {
4754: yylsp->last_line = (yylsp+yylen-1)->last_line;
4755: yylsp->last_column = (yylsp+yylen-1)->last_column;
4756: }
4757: #endif
4758:
4759: /* Now "shift" the result of the reduction.
4760: Determine what state that goes to,
4761: based on the state we popped back to
4762: and the rule number reduced by. */
4763:
4764: yyn = yyr1[yyn];
4765:
4766: yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
4767: if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4768: yystate = yytable[yystate];
4769: else
4770: yystate = yydefgoto[yyn - YYNTBASE];
4771:
4772: goto yynewstate;
4773:
4774: yyerrlab: /* here on detecting error */
4775:
4776: if (! yyerrstatus)
4777: /* If not already recovering from an error, report this error. */
4778: {
4779: ++yynerrs;
4780:
4781: #ifdef YYERROR_VERBOSE
4782: yyn = yypact[yystate];
4783:
4784: if (yyn > YYFLAG && yyn < YYLAST)
4785: {
4786: int size = 0;
4787: char *msg;
4788: int x, count;
4789:
4790: count = 0;
1.1.1.6 root 4791: /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
4792: for (x = (yyn < 0 ? -yyn : 0);
4793: x < (sizeof(yytname) / sizeof(char *)); x++)
1.1 root 4794: if (yycheck[x + yyn] == x)
4795: size += strlen(yytname[x]) + 15, count++;
4796: msg = (char *) malloc(size + 15);
4797: if (msg != 0)
4798: {
4799: strcpy(msg, "parse error");
4800:
4801: if (count < 5)
4802: {
4803: count = 0;
1.1.1.6 root 4804: for (x = (yyn < 0 ? -yyn : 0);
4805: x < (sizeof(yytname) / sizeof(char *)); x++)
1.1 root 4806: if (yycheck[x + yyn] == x)
4807: {
4808: strcat(msg, count == 0 ? ", expecting `" : " or `");
4809: strcat(msg, yytname[x]);
4810: strcat(msg, "'");
4811: count++;
4812: }
4813: }
4814: yyerror(msg);
4815: free(msg);
4816: }
4817: else
4818: yyerror ("parse error; also virtual memory exceeded");
4819: }
4820: else
4821: #endif /* YYERROR_VERBOSE */
4822: yyerror("parse error");
4823: }
4824:
1.1.1.6 root 4825: goto yyerrlab1;
1.1 root 4826: yyerrlab1: /* here on error raised explicitly by an action */
4827:
4828: if (yyerrstatus == 3)
4829: {
4830: /* if just tried and failed to reuse lookahead token after an error, discard it. */
4831:
4832: /* return failure if at end of input */
4833: if (yychar == YYEOF)
4834: YYABORT;
4835:
4836: #if YYDEBUG != 0
4837: if (yydebug)
4838: fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
4839: #endif
4840:
4841: yychar = YYEMPTY;
4842: }
4843:
4844: /* Else will try to reuse lookahead token
4845: after shifting the error token. */
4846:
4847: yyerrstatus = 3; /* Each real token shifted decrements this */
4848:
4849: goto yyerrhandle;
4850:
4851: yyerrdefault: /* current state does not do anything special for the error token. */
4852:
4853: #if 0
4854: /* This is wrong; only states that explicitly want error tokens
4855: should shift them. */
4856: yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
4857: if (yyn) goto yydefault;
4858: #endif
4859:
4860: yyerrpop: /* pop the current state because it cannot handle the error token */
4861:
4862: if (yyssp == yyss) YYABORT;
4863: yyvsp--;
4864: yystate = *--yyssp;
4865: #ifdef YYLSP_NEEDED
4866: yylsp--;
4867: #endif
4868:
4869: #if YYDEBUG != 0
4870: if (yydebug)
4871: {
4872: short *ssp1 = yyss - 1;
4873: fprintf (stderr, "Error: state stack now");
4874: while (ssp1 != yyssp)
4875: fprintf (stderr, " %d", *++ssp1);
4876: fprintf (stderr, "\n");
4877: }
4878: #endif
4879:
4880: yyerrhandle:
4881:
4882: yyn = yypact[yystate];
4883: if (yyn == YYFLAG)
4884: goto yyerrdefault;
4885:
4886: yyn += YYTERROR;
4887: if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
4888: goto yyerrdefault;
4889:
4890: yyn = yytable[yyn];
4891: if (yyn < 0)
4892: {
4893: if (yyn == YYFLAG)
4894: goto yyerrpop;
4895: yyn = -yyn;
4896: goto yyreduce;
4897: }
4898: else if (yyn == 0)
4899: goto yyerrpop;
4900:
4901: if (yyn == YYFINAL)
4902: YYACCEPT;
4903:
4904: #if YYDEBUG != 0
4905: if (yydebug)
4906: fprintf(stderr, "Shifting error token, ");
4907: #endif
4908:
4909: *++yyvsp = yylval;
4910: #ifdef YYLSP_NEEDED
4911: *++yylsp = yylloc;
4912: #endif
4913:
4914: yystate = yyn;
4915: goto yynewstate;
4916: }
1.1.1.8 ! root 4917: #line 2820 "objc-parse.y"
1.1.1.4 root 4918:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.