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