|
|
1.1 root 1:
2: /* A Bison parser, made from c-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 44 "c-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:
71: #ifdef MULTIBYTE_CHARS
72: #include <stdlib.h>
73: #include <locale.h>
74: #endif
75:
1.1.1.4 ! root 76:
1.1 root 77: #ifndef errno
78: extern int errno;
79: #endif
80:
81: void yyerror ();
82:
83: /* Like YYERROR but do call yyerror. */
84: #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
85:
86: /* Cause the `yydebug' variable to be defined. */
87: #define YYDEBUG 1
88:
1.1.1.4 ! root 89: #line 77 "c-parse.y"
1.1 root 90: typedef union {long itype; tree ttype; enum tree_code code;
91: char *filename; int lineno; } YYSTYPE;
1.1.1.4 ! root 92: #line 183 "c-parse.y"
1.1 root 93:
94: /* Number of statements (loosely speaking) seen so far. */
95: static int stmt_count;
96:
97: /* Input file and line number of the end of the body of last simple_if;
98: used by the stmt-rule immediately after simple_if returns. */
99: static char *if_stmt_file;
100: static int if_stmt_line;
101:
102: /* List of types and structure classes of the current declaration. */
103: static tree current_declspecs;
104:
105: /* Stack of saved values of current_declspecs. */
106: static tree declspec_stack;
107:
108: /* 1 if we explained undeclared var errors. */
109: static int undeclared_variable_notice;
110:
1.1.1.4 ! root 111:
1.1 root 112: /* Tell yyparse how to print a token's value, if yydebug is set. */
113:
114: #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
115: extern void yyprint ();
116:
117: #ifndef YYLTYPE
118: typedef
119: struct yyltype
120: {
121: int timestamp;
122: int first_line;
123: int first_column;
124: int last_line;
125: int last_column;
126: char *text;
127: }
128: yyltype;
129:
130: #define YYLTYPE yyltype
131: #endif
132:
133: #include <stdio.h>
134:
135: #ifndef __STDC__
136: #define const
137: #endif
138:
139:
140:
1.1.1.4 ! root 141: #define YYFINAL 602
1.1 root 142: #define YYFLAG -32768
143: #define YYNTBASE 76
144:
1.1.1.3 root 145: #define YYTRANSLATE(x) ((unsigned)(x) <= 308 ? yytranslate[x] : 200)
1.1 root 146:
147: static const char yytranslate[] = { 0,
148: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
149: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
150: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
151: 2, 2, 72, 2, 2, 2, 51, 42, 2, 58,
152: 68, 49, 47, 73, 48, 57, 50, 2, 2, 2,
153: 2, 2, 2, 2, 2, 2, 2, 37, 69, 2,
154: 35, 2, 36, 2, 2, 2, 2, 2, 2, 2,
155: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
156: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
157: 59, 2, 75, 41, 2, 2, 2, 2, 2, 2,
158: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
159: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
160: 2, 2, 74, 40, 70, 71, 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, 2, 2, 2, 2, 2, 2, 2, 2,
164: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
165: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
166: 2, 2, 2, 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: 2, 2, 2, 2, 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, 2, 2, 2, 2, 2, 2, 2, 2,
173: 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
174: 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
175: 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
176: 26, 27, 28, 29, 30, 31, 32, 33, 34, 38,
177: 39, 43, 44, 45, 46, 52, 53, 54, 55, 56,
178: 60, 61, 62, 63, 64, 65, 66, 67
179: };
180:
181: static const short yyprhs[] = { 0,
182: 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
183: 26, 31, 36, 39, 42, 45, 48, 50, 51, 52,
184: 60, 65, 66, 67, 75, 80, 81, 82, 89, 93,
185: 95, 97, 99, 101, 103, 105, 107, 109, 111, 113,
186: 114, 116, 118, 122, 124, 127, 128, 132, 135, 138,
187: 141, 146, 149, 154, 156, 161, 169, 171, 175, 179,
188: 183, 187, 191, 195, 199, 203, 207, 211, 215, 219,
189: 223, 227, 233, 237, 241, 243, 245, 247, 251, 255,
190: 256, 261, 266, 271, 275, 279, 282, 285, 287, 290,
191: 291, 293, 296, 300, 302, 304, 307, 310, 315, 320,
192: 323, 326, 330, 332, 334, 337, 340, 341, 346, 351,
193: 355, 359, 362, 365, 368, 372, 373, 376, 379, 381,
194: 383, 386, 389, 392, 396, 397, 400, 402, 404, 406,
195: 411, 416, 418, 420, 422, 424, 428, 430, 434, 435,
196: 440, 441, 448, 452, 453, 460, 464, 465, 472, 474,
1.1.1.3 root 197: 478, 480, 485, 490, 499, 501, 504, 508, 513, 515,
1.1.1.4 ! root 198: 517, 521, 528, 537, 542, 549, 553, 559, 560, 564,
! 199: 565, 569, 571, 573, 577, 581, 586, 590, 594, 596,
! 200: 600, 605, 609, 613, 615, 619, 623, 627, 632, 636,
! 201: 638, 639, 646, 651, 654, 655, 662, 667, 670, 671,
! 202: 679, 680, 687, 690, 691, 693, 694, 696, 698, 701,
! 203: 702, 706, 709, 713, 715, 719, 721, 723, 725, 729,
! 204: 734, 741, 746, 748, 752, 754, 758, 761, 764, 765,
! 205: 767, 769, 772, 773, 776, 780, 784, 787, 791, 796,
! 206: 800, 803, 807, 810, 812, 815, 818, 819, 821, 824,
! 207: 825, 826, 828, 830, 833, 837, 839, 842, 845, 852,
! 208: 858, 864, 867, 870, 875, 876, 881, 882, 883, 887,
! 209: 892, 896, 898, 900, 902, 905, 906, 911, 913, 917,
! 210: 918, 919, 927, 933, 936, 937, 938, 939, 952, 953,
! 211: 960, 963, 966, 969, 973, 980, 989, 1000, 1013, 1017,
! 212: 1022, 1024, 1028, 1034, 1037, 1040, 1041, 1043, 1044, 1046,
! 213: 1047, 1049, 1051, 1055, 1060, 1062, 1066, 1067, 1070, 1073,
! 214: 1074, 1079, 1082, 1083, 1085, 1087, 1091, 1093, 1097, 1100,
! 215: 1103, 1106, 1109, 1112, 1113, 1116, 1118, 1121, 1123, 1127,
! 216: 1129
1.1 root 217: };
218:
219: static const short yyrhs[] = { -1,
220: 77, 0, 0, 78, 80, 0, 0, 77, 79, 80,
221: 0, 82, 0, 81, 0, 27, 58, 91, 68, 69,
222: 0, 107, 117, 69, 0, 111, 107, 117, 69, 0,
223: 109, 107, 116, 69, 0, 111, 69, 0, 109, 69,
224: 0, 1, 69, 0, 1, 70, 0, 69, 0, 0,
225: 0, 109, 107, 132, 83, 101, 84, 162, 0, 109,
226: 107, 132, 1, 0, 0, 0, 111, 107, 135, 85,
227: 101, 86, 162, 0, 111, 107, 135, 1, 0, 0,
228: 0, 107, 135, 87, 101, 88, 162, 0, 107, 135,
229: 1, 0, 3, 0, 4, 0, 42, 0, 48, 0,
230: 47, 0, 53, 0, 54, 0, 71, 0, 72, 0,
231: 93, 0, 0, 93, 0, 97, 0, 93, 73, 97,
232: 0, 98, 0, 49, 96, 0, 0, 32, 95, 96,
233: 0, 90, 96, 0, 39, 89, 0, 11, 94, 0,
234: 11, 58, 150, 68, 0, 29, 94, 0, 29, 58,
235: 150, 68, 0, 94, 0, 58, 150, 68, 96, 0,
236: 58, 150, 68, 74, 127, 141, 70, 0, 96, 0,
237: 97, 47, 97, 0, 97, 48, 97, 0, 97, 49,
238: 97, 0, 97, 50, 97, 0, 97, 51, 97, 0,
239: 97, 45, 97, 0, 97, 46, 97, 0, 97, 44,
240: 97, 0, 97, 43, 97, 0, 97, 42, 97, 0,
241: 97, 40, 97, 0, 97, 41, 97, 0, 97, 39,
242: 97, 0, 97, 38, 97, 0, 97, 36, 183, 37,
243: 97, 0, 97, 35, 97, 0, 97, 34, 97, 0,
244: 3, 0, 8, 0, 100, 0, 58, 91, 68, 0,
245: 58, 1, 68, 0, 0, 58, 99, 163, 68, 0,
246: 98, 58, 92, 68, 0, 98, 59, 91, 75, 0,
247: 98, 57, 89, 0, 98, 56, 89, 0, 98, 53,
248: 0, 98, 54, 0, 9, 0, 100, 9, 0, 0,
1.1.1.3 root 249: 103, 0, 103, 10, 0, 168, 169, 104, 0, 102,
1.1 root 250: 0, 157, 0, 103, 102, 0, 102, 157, 0, 109,
251: 107, 116, 69, 0, 111, 107, 117, 69, 0, 109,
1.1.1.3 root 252: 69, 0, 111, 69, 0, 168, 169, 108, 0, 105,
1.1 root 253: 0, 157, 0, 106, 105, 0, 105, 157, 0, 0,
254: 109, 107, 116, 69, 0, 111, 107, 117, 69, 0,
255: 109, 107, 128, 0, 111, 107, 130, 0, 109, 69,
256: 0, 111, 69, 0, 114, 110, 0, 111, 114, 110,
257: 0, 0, 110, 115, 0, 110, 5, 0, 7, 0,
258: 5, 0, 111, 7, 0, 111, 5, 0, 114, 113,
259: 0, 152, 114, 113, 0, 0, 113, 115, 0, 6,
260: 0, 136, 0, 4, 0, 28, 58, 91, 68, 0,
261: 28, 58, 150, 68, 0, 6, 0, 7, 0, 136,
262: 0, 119, 0, 116, 73, 119, 0, 121, 0, 117,
263: 73, 119, 0, 0, 27, 58, 100, 68, 0, 0,
264: 132, 118, 123, 35, 120, 126, 0, 132, 118, 123,
265: 0, 0, 135, 118, 123, 35, 122, 126, 0, 135,
266: 118, 123, 0, 0, 31, 58, 58, 124, 68, 68,
267: 0, 125, 0, 124, 73, 125, 0, 3, 0, 3,
1.1.1.3 root 268: 58, 3, 68, 0, 3, 58, 8, 68, 0, 3,
269: 58, 3, 73, 8, 73, 8, 68, 0, 97, 0,
270: 74, 70, 0, 74, 127, 70, 0, 74, 127, 73,
271: 70, 0, 1, 0, 126, 0, 127, 73, 126, 0,
1.1.1.4 ! root 272: 59, 97, 10, 97, 75, 126, 0, 127, 73, 59,
! 273: 97, 10, 97, 75, 126, 0, 59, 97, 75, 126,
! 274: 0, 127, 73, 59, 97, 75, 126, 0, 89, 37,
! 275: 126, 0, 127, 73, 89, 37, 126, 0, 0, 132,
! 276: 129, 163, 0, 0, 135, 131, 163, 0, 133, 0,
! 277: 135, 0, 58, 133, 68, 0, 133, 58, 195, 0,
! 278: 133, 59, 91, 75, 0, 133, 59, 75, 0, 49,
! 279: 153, 133, 0, 4, 0, 134, 58, 195, 0, 134,
! 280: 59, 91, 75, 0, 134, 59, 75, 0, 49, 153,
! 281: 134, 0, 4, 0, 135, 58, 195, 0, 58, 135,
! 282: 68, 0, 49, 153, 135, 0, 135, 59, 91, 75,
! 283: 0, 135, 59, 75, 0, 3, 0, 0, 13, 89,
! 284: 74, 137, 143, 70, 0, 13, 74, 143, 70, 0,
! 285: 13, 89, 0, 0, 14, 89, 74, 138, 143, 70,
! 286: 0, 14, 74, 143, 70, 0, 14, 89, 0, 0,
! 287: 12, 89, 74, 139, 148, 142, 70, 0, 0, 12,
! 288: 74, 140, 148, 142, 70, 0, 12, 89, 0, 0,
! 289: 73, 0, 0, 73, 0, 144, 0, 144, 145, 0,
! 290: 0, 144, 145, 69, 0, 144, 69, 0, 112, 107,
! 291: 146, 0, 112, 0, 152, 107, 146, 0, 152, 0,
! 292: 1, 0, 147, 0, 146, 73, 147, 0, 168, 169,
! 293: 132, 123, 0, 168, 169, 132, 37, 97, 123, 0,
! 294: 168, 169, 37, 97, 0, 149, 0, 148, 73, 149,
! 295: 0, 89, 0, 89, 35, 97, 0, 112, 151, 0,
! 296: 152, 151, 0, 0, 154, 0, 7, 0, 152, 7,
! 297: 0, 0, 153, 7, 0, 58, 154, 68, 0, 49,
! 298: 153, 154, 0, 49, 153, 0, 154, 58, 188, 0,
! 299: 154, 59, 91, 75, 0, 154, 59, 75, 0, 58,
! 300: 188, 0, 59, 91, 75, 0, 59, 75, 0, 171,
! 301: 0, 155, 171, 0, 155, 157, 0, 0, 155, 0,
! 302: 1, 69, 0, 0, 0, 160, 0, 161, 0, 160,
! 303: 161, 0, 33, 199, 69, 0, 163, 0, 1, 163,
! 304: 0, 74, 70, 0, 74, 158, 159, 106, 156, 70,
! 305: 0, 74, 158, 159, 1, 70, 0, 74, 158, 159,
! 306: 155, 70, 0, 165, 170, 0, 165, 1, 0, 15,
! 307: 58, 91, 68, 0, 0, 18, 167, 170, 17, 0,
! 308: 0, 0, 168, 169, 173, 0, 168, 169, 181, 170,
! 309: 0, 168, 169, 172, 0, 173, 0, 181, 0, 163,
! 310: 0, 91, 69, 0, 0, 164, 16, 174, 170, 0,
! 311: 164, 0, 164, 16, 1, 0, 0, 0, 17, 175,
! 312: 58, 91, 68, 176, 170, 0, 166, 58, 91, 68,
! 313: 69, 0, 166, 1, 0, 0, 0, 0, 19, 58,
! 314: 183, 69, 177, 183, 69, 178, 183, 68, 179, 170,
! 315: 0, 0, 20, 58, 91, 68, 180, 170, 0, 23,
! 316: 69, 0, 24, 69, 0, 25, 69, 0, 25, 91,
! 317: 69, 0, 27, 182, 58, 91, 68, 69, 0, 27,
! 318: 182, 58, 91, 37, 184, 68, 69, 0, 27, 182,
! 319: 58, 91, 37, 184, 37, 184, 68, 69, 0, 27,
! 320: 182, 58, 91, 37, 184, 37, 184, 37, 187, 68,
! 321: 69, 0, 26, 89, 69, 0, 26, 49, 91, 69,
! 322: 0, 69, 0, 21, 91, 37, 0, 21, 91, 10,
! 323: 91, 37, 0, 22, 37, 0, 89, 37, 0, 0,
! 324: 7, 0, 0, 91, 0, 0, 185, 0, 186, 0,
! 325: 185, 73, 186, 0, 9, 58, 91, 68, 0, 100,
! 326: 0, 187, 73, 100, 0, 0, 189, 190, 0, 192,
! 327: 68, 0, 0, 193, 69, 191, 190, 0, 1, 68,
! 328: 0, 0, 10, 0, 193, 0, 193, 73, 10, 0,
! 329: 194, 0, 193, 73, 194, 0, 109, 134, 0, 109,
! 330: 135, 0, 109, 151, 0, 111, 135, 0, 111, 151,
! 331: 0, 0, 196, 197, 0, 190, 0, 198, 68, 0,
! 332: 3, 0, 198, 73, 3, 0, 89, 0, 199, 73,
! 333: 89, 0
1.1 root 334: };
335:
336: #if YYDEBUG != 0
337: static const short yyrline[] = { 0,
1.1.1.4 ! root 338: 209, 213, 222, 224, 224, 225, 227, 229, 230, 240,
! 339: 246, 248, 250, 252, 254, 255, 256, 261, 267, 269,
! 340: 270, 272, 277, 279, 280, 282, 287, 289, 290, 294,
! 341: 296, 299, 301, 303, 305, 307, 309, 311, 315, 319,
! 342: 322, 325, 328, 332, 334, 337, 340, 343, 346, 366,
! 343: 371, 373, 375, 379, 381, 384, 409, 411, 413, 415,
! 344: 417, 419, 421, 423, 425, 427, 429, 431, 433, 435,
! 345: 437, 439, 441, 444, 449, 550, 551, 553, 559, 561,
! 346: 574, 591, 593, 595, 599, 605, 607, 612, 614, 618,
! 347: 620, 621, 631, 636, 638, 639, 640, 643, 648, 652,
! 348: 655, 663, 668, 670, 671, 672, 679, 687, 692, 696,
! 349: 700, 704, 706, 714, 717, 721, 723, 725, 736, 740,
! 350: 742, 745, 758, 761, 765, 767, 775, 776, 777, 781,
! 351: 783, 789, 790, 791, 794, 796, 799, 801, 804, 807,
! 352: 813, 818, 820, 826, 831, 833, 840, 843, 848, 850,
! 353: 855, 860, 870, 881, 899, 901, 905, 907, 909, 915,
! 354: 918, 921, 925, 930, 932, 934, 936, 940, 957, 961,
! 355: 978, 985, 987, 992, 995, 1000, 1002, 1004, 1006, 1014,
! 356: 1020, 1022, 1024, 1026, 1032, 1038, 1040, 1042, 1044, 1046,
! 357: 1049, 1054, 1058, 1061, 1063, 1065, 1067, 1070, 1072, 1075,
! 358: 1078, 1081, 1084, 1088, 1090, 1093, 1095, 1099, 1102, 1107,
! 359: 1109, 1111, 1125, 1131, 1136, 1141, 1146, 1150, 1152, 1156,
! 360: 1160, 1164, 1173, 1175, 1180, 1183, 1187, 1190, 1194, 1197,
! 361: 1200, 1203, 1207, 1210, 1214, 1218, 1220, 1222, 1224, 1226,
! 362: 1228, 1230, 1232, 1240, 1242, 1243, 1246, 1248, 1251, 1254,
! 363: 1265, 1267, 1272, 1274, 1277, 1291, 1294, 1297, 1299, 1304,
! 364: 1309, 1317, 1322, 1325, 1338, 1346, 1350, 1354, 1358, 1364,
! 365: 1368, 1373, 1375, 1386, 1389, 1394, 1399, 1402, 1410, 1412,
! 366: 1422, 1432, 1433, 1441, 1444, 1456, 1460, 1476, 1483, 1492,
! 367: 1494, 1499, 1504, 1508, 1512, 1523, 1530, 1537, 1544, 1555,
! 368: 1559, 1566, 1590, 1618, 1633, 1644, 1647, 1651, 1654, 1659,
! 369: 1661, 1664, 1666, 1670, 1675, 1678, 1684, 1689, 1694, 1696,
! 370: 1705, 1706, 1712, 1714, 1719, 1721, 1725, 1728, 1734, 1737,
! 371: 1739, 1741, 1743, 1750, 1755, 1760, 1762, 1771, 1774, 1779,
! 372: 1782
1.1 root 373: };
374:
375: static const char * const yytname[] = { "$","error","$illegal.","IDENTIFIER",
376: "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
377: "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
1.1.1.2 root 378: "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ALIGN",
379: "ATTRIBUTE","EXTENSION","LABEL","ASSIGN","'='","'?'","':'","OROR","ANDAND","'|'",
380: "'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
381: "'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT","'.'","'('","'['",
382: "INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE","CLASSNAME","PUBLIC",
383: "')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs","@1","@2",
384: "extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier","unop",
385: "expr","exprlist","nonnull_exprlist","unary_expr","@9","cast_expr","expr_no_commas",
386: "primary","@10","string","xdecls","lineno_datadecl","datadecls","datadecl","lineno_decl",
1.1 root 387: "decls","setspecs","decl","typed_declspecs","reserved_declspecs","declmods",
388: "typed_typespecs","reserved_typespecquals","typespec","typespecqual_reserved",
389: "initdecls","notype_initdecls","maybeasm","initdcl","@11","notype_initdcl","@12",
390: "maybe_attribute","attribute_list","attrib","init","initlist","nested_function",
391: "@13","notype_nested_function","@14","declarator","after_type_declarator","parm_declarator",
392: "notype_declarator","structsp","@15","@16","@17","@18","maybecomma","maybecomma_warn",
393: "component_decl_list","component_decl_list2","component_decl","components","component_declarator",
394: "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
395: "absdcl1","stmts","xstmts","errstmt","pushlevel","maybe_label_decls","label_decls",
1.1.1.3 root 396: "label_decl","compstmt_or_error","compstmt","simple_if","if_prefix","do_stmt_start",
397: "@19","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
398: "stmt_or_label","stmt","@20","@21","@22","@23","@24","@25","@26","label","maybe_type_qual",
1.1 root 399: "xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
1.1.1.3 root 400: "@27","parmlist_1","@28","parmlist_2","parms","parm","parmlist_or_identifiers",
401: "@29","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames",""
1.1 root 402: };
403: #endif
404:
405: static const short yyr1[] = { 0,
406: 76, 76, 78, 77, 79, 77, 80, 80, 80, 81,
407: 81, 81, 81, 81, 81, 81, 81, 83, 84, 82,
408: 82, 85, 86, 82, 82, 87, 88, 82, 82, 89,
409: 89, 90, 90, 90, 90, 90, 90, 90, 91, 92,
410: 92, 93, 93, 94, 94, 95, 94, 94, 94, 94,
411: 94, 94, 94, 96, 96, 96, 97, 97, 97, 97,
412: 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
413: 97, 97, 97, 97, 98, 98, 98, 98, 98, 99,
414: 98, 98, 98, 98, 98, 98, 98, 100, 100, 101,
415: 101, 101, 102, 103, 103, 103, 103, 104, 104, 104,
416: 104, 105, 106, 106, 106, 106, 107, 108, 108, 108,
417: 108, 108, 108, 109, 109, 110, 110, 110, 111, 111,
418: 111, 111, 112, 112, 113, 113, 114, 114, 114, 114,
419: 114, 115, 115, 115, 116, 116, 117, 117, 118, 118,
420: 120, 119, 119, 122, 121, 121, 123, 123, 124, 124,
1.1.1.3 root 421: 125, 125, 125, 125, 126, 126, 126, 126, 126, 127,
1.1.1.4 ! root 422: 127, 127, 127, 127, 127, 127, 127, 129, 128, 131,
! 423: 130, 132, 132, 133, 133, 133, 133, 133, 133, 134,
! 424: 134, 134, 134, 134, 135, 135, 135, 135, 135, 135,
! 425: 137, 136, 136, 136, 138, 136, 136, 136, 139, 136,
! 426: 140, 136, 136, 141, 141, 142, 142, 143, 143, 144,
! 427: 144, 144, 145, 145, 145, 145, 145, 146, 146, 147,
! 428: 147, 147, 148, 148, 149, 149, 150, 150, 151, 151,
! 429: 152, 152, 153, 153, 154, 154, 154, 154, 154, 154,
! 430: 154, 154, 154, 155, 155, 155, 156, 156, 157, 158,
! 431: 159, 159, 160, 160, 161, 162, 162, 163, 163, 163,
! 432: 163, 164, 164, 165, 167, 166, 168, 169, 170, 170,
! 433: 171, 172, 172, 173, 173, 174, 173, 173, 173, 175,
! 434: 176, 173, 173, 173, 177, 178, 179, 173, 180, 173,
! 435: 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
! 436: 173, 181, 181, 181, 181, 182, 182, 183, 183, 184,
! 437: 184, 185, 185, 186, 187, 187, 189, 188, 190, 191,
! 438: 190, 190, 192, 192, 192, 192, 193, 193, 194, 194,
! 439: 194, 194, 194, 196, 195, 197, 197, 198, 198, 199,
! 440: 199
1.1 root 441: };
442:
443: static const short yyr2[] = { 0,
444: 0, 1, 0, 2, 0, 3, 1, 1, 5, 3,
445: 4, 4, 2, 2, 2, 2, 1, 0, 0, 7,
446: 4, 0, 0, 7, 4, 0, 0, 6, 3, 1,
447: 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
448: 1, 1, 3, 1, 2, 0, 3, 2, 2, 2,
449: 4, 2, 4, 1, 4, 7, 1, 3, 3, 3,
450: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
451: 3, 5, 3, 3, 1, 1, 1, 3, 3, 0,
452: 4, 4, 4, 3, 3, 2, 2, 1, 2, 0,
453: 1, 2, 3, 1, 1, 2, 2, 4, 4, 2,
454: 2, 3, 1, 1, 2, 2, 0, 4, 4, 3,
455: 3, 2, 2, 2, 3, 0, 2, 2, 1, 1,
456: 2, 2, 2, 3, 0, 2, 1, 1, 1, 4,
457: 4, 1, 1, 1, 1, 3, 1, 3, 0, 4,
458: 0, 6, 3, 0, 6, 3, 0, 6, 1, 3,
1.1.1.3 root 459: 1, 4, 4, 8, 1, 2, 3, 4, 1, 1,
1.1.1.4 ! root 460: 3, 6, 8, 4, 6, 3, 5, 0, 3, 0,
! 461: 3, 1, 1, 3, 3, 4, 3, 3, 1, 3,
! 462: 4, 3, 3, 1, 3, 3, 3, 4, 3, 1,
! 463: 0, 6, 4, 2, 0, 6, 4, 2, 0, 7,
! 464: 0, 6, 2, 0, 1, 0, 1, 1, 2, 0,
! 465: 3, 2, 3, 1, 3, 1, 1, 1, 3, 4,
! 466: 6, 4, 1, 3, 1, 3, 2, 2, 0, 1,
! 467: 1, 2, 0, 2, 3, 3, 2, 3, 4, 3,
! 468: 2, 3, 2, 1, 2, 2, 0, 1, 2, 0,
! 469: 0, 1, 1, 2, 3, 1, 2, 2, 6, 5,
! 470: 5, 2, 2, 4, 0, 4, 0, 0, 3, 4,
! 471: 3, 1, 1, 1, 2, 0, 4, 1, 3, 0,
! 472: 0, 7, 5, 2, 0, 0, 0, 12, 0, 6,
! 473: 2, 2, 2, 3, 6, 8, 10, 12, 3, 4,
! 474: 1, 3, 5, 2, 2, 0, 1, 0, 1, 0,
! 475: 1, 1, 3, 4, 1, 3, 0, 2, 2, 0,
! 476: 4, 2, 0, 1, 1, 3, 1, 3, 2, 2,
! 477: 2, 2, 2, 0, 2, 1, 2, 1, 3, 1,
! 478: 3
1.1 root 479: };
480:
481: static const short yydefact[] = { 3,
482: 5, 0, 0, 0, 129, 120, 127, 119, 0, 0,
483: 0, 0, 0, 17, 4, 8, 7, 0, 107, 107,
1.1.1.4 ! root 484: 116, 128, 6, 15, 16, 30, 31, 201, 203, 210,
! 485: 194, 210, 198, 0, 0, 190, 233, 0, 0, 137,
1.1 root 486: 0, 14, 0, 122, 121, 13, 0, 116, 114, 0,
1.1.1.4 ! root 487: 199, 0, 0, 191, 0, 195, 75, 76, 88, 0,
1.1 root 488: 0, 46, 0, 32, 34, 33, 0, 35, 36, 0,
489: 37, 38, 0, 0, 39, 54, 57, 42, 44, 77,
1.1.1.4 ! root 490: 231, 0, 229, 125, 0, 229, 0, 0, 10, 0,
! 491: 29, 0, 334, 0, 0, 147, 179, 233, 0, 0,
! 492: 135, 0, 172, 173, 0, 0, 115, 118, 132, 133,
! 493: 117, 134, 225, 206, 223, 0, 193, 217, 212, 107,
! 494: 209, 107, 210, 197, 210, 0, 50, 0, 52, 0,
1.1 root 495: 49, 45, 0, 0, 0, 0, 48, 0, 0, 0,
1.1.1.4 ! root 496: 0, 308, 0, 0, 0, 0, 0, 0, 0, 0,
1.1 root 497: 0, 0, 0, 0, 0, 0, 86, 87, 0, 0,
1.1.1.4 ! root 498: 40, 0, 89, 130, 233, 317, 0, 227, 230, 123,
! 499: 131, 232, 125, 228, 234, 187, 186, 138, 139, 0,
! 500: 185, 0, 189, 0, 0, 27, 0, 267, 95, 268,
! 501: 0, 146, 0, 0, 12, 0, 21, 0, 147, 334,
! 502: 0, 11, 25, 0, 0, 207, 0, 206, 267, 211,
! 503: 267, 0, 0, 0, 0, 47, 79, 78, 250, 0,
! 504: 0, 9, 43, 74, 73, 309, 0, 71, 70, 68,
1.1 root 505: 69, 67, 66, 65, 63, 64, 58, 59, 60, 61,
1.1.1.4 ! root 506: 62, 85, 84, 0, 41, 0, 237, 0, 241, 0,
! 507: 243, 0, 317, 0, 126, 124, 0, 0, 338, 324,
! 508: 229, 229, 336, 0, 325, 327, 335, 0, 188, 249,
! 509: 0, 97, 92, 96, 0, 0, 144, 178, 174, 136,
! 510: 19, 143, 175, 177, 0, 23, 226, 224, 202, 0,
! 511: 213, 218, 268, 215, 192, 196, 51, 53, 258, 251,
! 512: 81, 0, 55, 0, 82, 83, 236, 235, 318, 242,
! 513: 238, 240, 0, 140, 322, 184, 233, 317, 329, 330,
! 514: 331, 233, 332, 333, 319, 320, 0, 337, 0, 0,
! 515: 28, 256, 93, 107, 107, 0, 0, 0, 141, 176,
! 516: 0, 200, 267, 0, 0, 0, 252, 253, 159, 75,
! 517: 0, 0, 0, 155, 160, 204, 72, 239, 237, 334,
! 518: 0, 237, 0, 326, 328, 339, 257, 100, 0, 101,
! 519: 0, 151, 0, 149, 145, 20, 0, 24, 219, 0,
! 520: 147, 340, 0, 0, 0, 267, 0, 104, 268, 244,
! 521: 254, 0, 156, 0, 0, 0, 0, 183, 180, 182,
! 522: 0, 321, 0, 0, 139, 0, 0, 0, 142, 222,
! 523: 0, 220, 255, 0, 260, 106, 105, 0, 0, 261,
! 524: 246, 268, 245, 0, 0, 0, 157, 0, 166, 0,
! 525: 0, 161, 56, 181, 98, 99, 0, 0, 148, 150,
! 526: 147, 341, 259, 0, 129, 0, 280, 265, 0, 0,
! 527: 0, 0, 0, 0, 0, 0, 306, 301, 0, 0,
! 528: 102, 107, 107, 274, 278, 0, 0, 271, 272, 273,
! 529: 0, 164, 158, 0, 0, 152, 0, 153, 221, 0,
! 530: 0, 267, 308, 0, 0, 304, 291, 292, 293, 0,
! 531: 0, 0, 307, 0, 305, 275, 112, 0, 113, 0,
! 532: 0, 263, 268, 262, 284, 0, 0, 0, 0, 167,
! 533: 0, 0, 0, 0, 0, 0, 0, 302, 294, 0,
! 534: 299, 0, 0, 110, 139, 0, 111, 139, 279, 267,
! 535: 0, 0, 162, 0, 165, 0, 264, 0, 266, 285,
! 536: 289, 0, 300, 0, 108, 0, 109, 0, 277, 269,
! 537: 267, 0, 0, 0, 281, 308, 267, 303, 310, 0,
! 538: 169, 171, 270, 283, 163, 154, 267, 0, 290, 0,
! 539: 0, 311, 312, 295, 282, 286, 0, 310, 0, 0,
! 540: 308, 0, 0, 296, 313, 0, 314, 0, 0, 287,
! 541: 315, 0, 297, 267, 0, 0, 288, 298, 316, 0,
! 542: 0, 0
1.1 root 543: };
544:
1.1.1.4 ! root 545: static const short yydefgoto[] = { 600,
1.1.1.3 root 546: 1, 2, 3, 15, 16, 17, 198, 338, 204, 341,
547: 95, 271, 113, 73, 226, 244, 75, 76, 130, 77,
548: 78, 79, 135, 80, 186, 187, 188, 333, 385, 386,
1.1.1.4 ! root 549: 18, 461, 261, 49, 262, 83, 170, 21, 111, 100,
1.1.1.3 root 550: 39, 96, 101, 377, 40, 337, 192, 373, 374, 355,
1.1.1.4 ! root 551: 356, 524, 546, 527, 548, 179, 103, 319, 104, 22,
1.1.1.3 root 552: 123, 125, 116, 50, 397, 207, 52, 53, 121, 291,
553: 292, 114, 115, 85, 168, 86, 87, 169, 387, 419,
1.1.1.4 ! root 554: 189, 300, 346, 347, 348, 331, 332, 465, 466, 467,
! 555: 482, 503, 275, 504, 390, 468, 469, 530, 481, 567,
! 556: 556, 581, 594, 557, 470, 494, 227, 571, 572, 573,
! 557: 592, 249, 250, 263, 363, 264, 265, 266, 181, 182,
1.1.1.3 root 558: 267, 268, 383
1.1 root 559: };
560:
1.1.1.4 ! root 561: static const short yypact[] = { 78,
! 562: 87, 1917, 1917, 222,-32768,-32768,-32768,-32768, 44, 48,
! 563: 60, 86, 92,-32768,-32768,-32768,-32768, 135, 31, 735,
! 564: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 105,-32768,
! 565: 142,-32768, 155, 1807, 1732,-32768,-32768, 135, 163,-32768,
! 566: 464,-32768, 145,-32768,-32768,-32768, 135,-32768, 293, 204,
! 567: -32768, 177, 372,-32768, 179,-32768,-32768,-32768,-32768, 1834,
! 568: 1861,-32768, 204,-32768,-32768,-32768, 1807,-32768,-32768, 309,
! 569: -32768,-32768, 1807, 184, 213,-32768,-32768, 2091, 488, 246,
! 570: -32768, 189, 17,-32768, 235, 431, 50, 138,-32768, 145,
! 571: -32768, 243,-32768, 1333, 392, 277,-32768,-32768, 145, 185,
! 572: -32768, 1326, 294, 343, 262, 1255, 293,-32768,-32768,-32768,
! 573: -32768,-32768, 279, 238,-32768, 204,-32768,-32768,-32768, 342,
! 574: 250, 944,-32768,-32768,-32768, 309,-32768, 309,-32768, 1807,
! 575: -32768,-32768, 268, 271, 256, 274,-32768, 275, 1807, 1807,
! 576: 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807,
! 577: 1807, 1807, 1807, 1807, 1807, 1807,-32768,-32768, 204, 204,
! 578: 1807, 1807,-32768,-32768,-32768, 17, 1381,-32768, 349, 282,
! 579: -32768,-32768,-32768,-32768,-32768, 343,-32768,-32768, 332, 352,
! 580: -32768, 501,-32768, 307, 300,-32768, 159, 40,-32768,-32768,
! 581: 316, 357, 207, 154,-32768, 145,-32768, 392, 277,-32768,
! 582: 1416,-32768,-32768, 392, 1807, 204, 333, 238,-32768,-32768,
! 583: -32768, 345, 348, 354, 358,-32768,-32768,-32768, 359, 394,
! 584: 1679,-32768, 2091, 2091, 2091,-32768, 340, 1907, 1505, 1990,
! 585: 570, 648, 720, 791, 233, 233, 338, 338,-32768,-32768,
! 586: -32768,-32768,-32768, 396, 213, 388, 88, 167,-32768, 1057,
! 587: -32768, 398,-32768, 1451,-32768, 282, 28, 399,-32768,-32768,
! 588: 103, 2016,-32768, 413, 276,-32768,-32768, 0,-32768,-32768,
! 589: 42,-32768,-32768,-32768, 1132, 424,-32768, 294,-32768,-32768,
! 590: -32768, 450,-32768,-32768, 411,-32768, 2091,-32768,-32768, 417,
! 591: 420,-32768,-32768, 420,-32768,-32768,-32768,-32768,-32768, 461,
! 592: -32768, 1192,-32768, 1807,-32768,-32768, 349,-32768,-32768,-32768,
! 593: -32768,-32768, 421,-32768,-32768,-32768,-32768, 133, 355, 343,
! 594: -32768,-32768, 343,-32768,-32768,-32768, 879,-32768, 495, 256,
! 595: -32768,-32768,-32768, 432, 807, 506, 1246, 42,-32768,-32768,
! 596: 42,-32768,-32768, 391, 204, 632, 461,-32768,-32768, 473,
! 597: 1807, 976, 475, 2091,-32768, 443, 1166,-32768, 182,-32768,
! 598: 1486, 202, 1057,-32768,-32768,-32768,-32768,-32768, 145,-32768,
! 599: 135, 459, 108,-32768,-32768,-32768, 1246,-32768,-32768, 1807,
! 600: 51,-32768, 281, 378, 553, 451, 704,-32768,-32768,-32768,
! 601: -32768, 1949,-32768, 125, 1246, 1048, 454, 355,-32768,-32768,
! 602: 445,-32768, 291, 297, 22, 215, 457, 506,-32768, 2091,
! 603: 1807,-32768,-32768, 204,-32768,-32768,-32768, 776, 458,-32768,
! 604: -32768,-32768,-32768, 1559, 1807, 1246,-32768, 1120,-32768, 1807,
! 605: 490,-32768,-32768,-32768,-32768,-32768, 170, 462,-32768,-32768,
! 606: 2070,-32768,-32768, 1631, 494, 474,-32768,-32768, 477, 478,
! 607: 1807, 502, 471, 481, 1759, 66, 545,-32768, 518, 514,
! 608: -32768, 515, 1128,-32768, 547, 848, 53,-32768,-32768,-32768,
! 609: 2011,-32768,-32768, 1967, 1246,-32768, 578,-32768,-32768, 1807,
! 610: 529,-32768, 1807, 1807, 52,-32768,-32768,-32768,-32768, 519,
! 611: 1807, 520,-32768, 532,-32768,-32768,-32768, 145,-32768, 135,
! 612: 920,-32768,-32768,-32768,-32768, 1807, 1246, 1807, 1246,-32768,
! 613: 521, 523, 1807, 576, 527, 531, 1807,-32768,-32768, 528,
! 614: -32768, 1807, 299,-32768, 19, 302,-32768, 116,-32768,-32768,
! 615: 1631, 535,-32768, 2049,-32768, 596,-32768, 537,-32768,-32768,
! 616: -32768, 571,-32768, 18,-32768, 256,-32768, 256,-32768,-32768,
! 617: -32768, 540, 1246, 542,-32768, 1807,-32768,-32768, 617, 559,
! 618: -32768,-32768,-32768,-32768,-32768,-32768,-32768, 560,-32768, 584,
! 619: 30, 561,-32768,-32768,-32768,-32768, 1807, 617, 579, 617,
! 620: 1807, 594, 37,-32768,-32768, 595,-32768, 352, 597,-32768,
! 621: 246, 171,-32768,-32768, 598, 352,-32768,-32768, 246, 665,
! 622: 668,-32768
1.1 root 623: };
624:
625: static const short yypgoto[] = {-32768,
1.1.1.4 ! root 626: -32768,-32768,-32768, 666,-32768,-32768,-32768,-32768,-32768,-32768,
! 627: -32768,-32768, -5,-32768, -34,-32768, 509, 395,-32768, -33,
! 628: 123,-32768,-32768, -164, -139, 484,-32768,-32768, 287,-32768,
! 629: -10,-32768, 10, 627, 12, 624, 505, -9, -132, -339,
! 630: -39, -95, -57,-32768,-32768,-32768, -182,-32768, 280, -305,
! 631: 330,-32768,-32768,-32768,-32768, -40, -64, 324, -16, -28,
! 632: -32768,-32768,-32768,-32768,-32768, 476, 7,-32768,-32768, 489,
! 633: 344, 573, 496, -25, -61, 656, -80, -138, 325,-32768,
! 634: -168,-32768,-32768,-32768, 363, -111, -115,-32768,-32768,-32768,
! 635: -32768, -53, -269, -426, -261,-32768, 183,-32768,-32768,-32768,
! 636: -32768,-32768,-32768,-32768, 186,-32768, -454, 140,-32768, 136,
! 637: -32768, 467,-32768, -223,-32768,-32768,-32768, 405, -177,-32768,
1.1.1.3 root 638: -32768,-32768,-32768
1.1 root 639: };
640:
641:
1.1.1.4 ! root 642: #define YYLAST 2142
1.1 root 643:
644:
645: static const short yytable[] = { 74,
1.1.1.4 ! root 646: 82, 41, 102, 29, 31, 33, 199, 105, 43, 47,
! 647: 48, 19, 19, 20, 20, 257, 282, 193, 272, 220,
! 648: 112, 88, 283, 344, 174, 84, 309, 248, 515, 403,
! 649: 106, 375, 178, 132, 194, 134, 163, 255, 55, 137,
! 650: -91, 190, 330, 84, 136, 92, 26, 27, 92, 273,
! 651: 26, 27, 36, 505, 559, 514, 175, 131, 281, 184,
! 652: 84, 517, 26, 27, 286, 165, 578, 328, 26, 27,
! 653: 176, 409, 329, 588, 166, 167, 173, -1, 112, 93,
! 654: 94, 191, 88, 199, 247, 560, -2, 411, 518, 429,
! 655: 432, 134, -168, 134, 175, 314, 216, 579, 37, 42,
! 656: 214, 568, 215, 549, 589, 36, 316, 38, 307, 209,
! 657: 506, 211, 173, -91, 491, 219, 84, 28, 84, 424,
! 658: 472, 30, 432, 255, 563, 423, 586, 246, 278, 212,
! 659: 569, 213, 252, 32, 190, 36, 165, 36, 280, 402,
! 660: 575, 112, 92, 34, 190, 166, 167, 36, 97, 35,
! 661: 190, 317, 444, 242, 243, 293, 423, 293, 523, 185,
! 662: 318, 167, -94, -94, -94, -94, 285, 597, -94, 510,
! 663: -94, -94, -94, 93, 94, 407, 176, 388, 51, 248,
! 664: 408, 322, 399, 37, 36, 316, -94, 303, 175, -170,
! 665: 318, 167, 38, 98, 427, 93, 94, 428, 412, 321,
! 666: 324, 533, 99, 535, 36, 177, 26, 27, 175, 36,
! 667: 97, 200, 201, 175, 367, 54, 416, 437, 421, 313,
! 668: 307, 279, 438, 307, 253, 254, 376, 112, 56, 378,
! 669: 317, 89, -94, 531, 308, 90, 359, 476, 595, 318,
! 670: 167, 362, 477, 596, 320, 323, 117, 565, 124, 421,
! 671: 322, 138, 48, 195, 163, 98, 164, 196, 479, 318,
! 672: 167, 223, 224, 225, 99, 228, 229, 230, 231, 232,
! 673: 233, 234, 235, 236, 237, 238, 239, 240, 241, 152,
! 674: 153, 154, 155, 156, 334, 139, 335, 109, 110, 293,
! 675: 24, 25, 389, 9, 10, 11, 353, 108, 109, 110,
! 676: 180, 88, 171, 381, 9, 10, 11, 191, 464, 133,
! 677: 206, 57, 5, 205, 7, 81, 58, 59, 210, 60,
! 678: 9, 10, 11, 369, 371, 48, 401, 287, 464, 219,
! 679: 202, 404, 389, 422, 90, 217, 13, 61, 218, 382,
! 680: 62, 221, 176, 222, 326, 176, 353, 63, 327, 413,
! 681: 64, 200, 201, 414, 405, 65, 66, 67, 92, 435,
! 682: 59, 68, 69, 196, 422, 436, 70, 545, 270, 90,
! 683: 547, 196, 118, 276, 90, 5, 304, 7, 81, 71,
! 684: 72, 269, -80, 9, 10, 11, 154, 155, 156, 460,
! 685: 431, 277, 185, 36, 97, -267, -267, -267, -267, 13,
! 686: 93, 94, 289, -267, -267, -267, 253, 254, 442, 460,
! 687: -214, -214, 360, 361, 295, 464, 485, 296, 459, -267,
! 688: 490, 297, 431, 591, 354, 298, 357, 380, 299, 199,
! 689: 561, 599, 562, 462, 5, 463, 7, 172, 459, 98,
! 690: 119, -208, 9, 10, 11, 512, 270, 415, 99, 516,
! 691: 492, 498, 500, 48, 127, 129, 520, 525, 13, 354,
! 692: 526, 301, 306, 305, 91, -90, 315, -26, -26, -26,
! 693: -26, 532, 310, 392, 354, -26, -26, -26, 538, 165,
! 694: 325, 336, 542, 528, 339, 340, 342, 544, 166, 167,
! 695: 92, -26, 343, 345, -139, 358, 460, 366, -139, 354,
! 696: 368, 258, 410, 259, 5, 6, 7, 8, 372, -30,
! 697: 260, 395, 9, 10, 11, 396, 406, 354, 354, 434,
! 698: -247, 93, 94, 433, 439, 459, 475, 443, 13, 478,
! 699: -31, 480, -139, 441, 483, 484, -139, -26, 486, 487,
! 700: 157, 158, 582, 159, 160, 161, 162, 471, 354, 488,
! 701: 354, 493, 474, 185, 495, -103, -103, -103, -103, -103,
! 702: -103, -103, 501, -103, -103, -103, -103, -103, -323, -103,
1.1.1.3 root 703: -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
1.1.1.4 ! root 704: -103, -103, 496, 497, -103, 511, 513, 519, 521, 522,
! 705: 537, -103, 539, 536, -103, 540, 543, 354, 541, -103,
! 706: -103, -103, 552, 554, 555, -103, -103, 558, 564, 566,
! 707: -103, 147, 148, 149, 150, 151, 152, 153, 154, 155,
! 708: 156, -103, -103, -103, -103, 570, -103, 574, 576, 354,
! 709: 534, 354, 384, 580, -267, -267, -267, -267, -267, -267,
! 710: -267, 577, -267, -267, -267, -267, -267, 584, -267, -267,
! 711: -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
! 712: -267, 587, 590, -267, 601, 593, 598, 602, 23, 245,
! 713: -267, 274, 417, -267, 107, 354, 120, 256, -267, -267,
! 714: -267, 394, 398, 290, -267, -267, 379, 440, 208, -267,
! 715: 148, 149, 150, 151, 152, 153, 154, 155, 156, 294,
! 716: -267, 288, -267, -267, 185, -267, -267, -267, 122, 391,
! 717: 418, -267, -267, 550, -267, 585, 551, 583, -267, 311,
! 718: -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
! 719: -267, 365, -267, 0, 0, -267, 0, 0, 5, 44,
! 720: 7, 45, -267, 0, 0, -267, 9, 10, 11, 0,
! 721: -267, -267, -267, 0, 0, 0, -267, -267, 0, 0,
! 722: 0, -267, 13, 149, 150, 151, 152, 153, 154, 155,
! 723: 156, 0, -267, 420, -267, -267, 185, -267, -267, -267,
! 724: 0, 0, 0, -267, -267, 0, -267, 0, 0, 0,
! 725: -267, 0, -267, -267, -267, -267, -267, -267, -267, -267,
! 726: -267, -267, -267, 46, -267, 0, 0, -267, 0, 0,
! 727: 5, 44, 7, 45, -267, 0, 0, -267, 9, 10,
! 728: 11, 0, -267, -267, -267, 0, 0, 0, -267, -267,
! 729: 0, 0, 0, -267, 13, 150, 151, 152, 153, 154,
! 730: 155, 156, 0, 0, -267, -248, -267, -267, 502, -267,
! 731: -267, -267, 0, 0, 0, -267, -267, 0, -267, 0,
! 732: 0, 0, -267, 0, -267, -267, -267, -267, -267, -267,
! 733: -267, -267, -267, -267, -267, 370, -267, 0, 0, -267,
! 734: 0, 0, 5, 6, 7, 8, -267, 0, 364, -267,
! 735: 9, 10, 11, 0, -267, -267, -267, 0, 0, 0,
! 736: -267, -267, 0, 0, 0, -267, 13, 0, 0, 0,
! 737: 0, 0, 0, 0, 0, 0, -267, 0, -267, -267,
! 738: 529, -267, -276, -276, 0, 0, 0, -276, -276, 0,
! 739: -276, 0, 0, 0, -276, 0, -276, -276, -276, -276,
! 740: -276, -276, -276, -276, -276, -276, -276, 5, -276, 7,
! 741: 172, -276, 0, 0, 0, 9, 10, 11, -276, 0,
! 742: 0, -276, 0, 0, 0, 0, -276, -276, -276, 0,
! 743: 0, 13, -276, -276, 0, 0, 349, -276, 350, 27,
! 744: 0, 0, 0, 58, 59, 0, 60, 0, -276, 0,
! 745: -276, -276, 0, -276, 0, 0, 0, 0, 0, 0,
! 746: 0, 0, 0, 0, 61, 0, 0, 62, 0, 0,
! 747: 0, 0, -216, -216, 63, 0, 0, 64, 0, 0,
! 748: 0, 0, 65, 66, 67, 0, 0, 0, 68, 69,
! 749: 0, 0, 0, 70, 351, 0, 0, 0, 0, 0,
! 750: 0, 0, 0, 0, 0, 393, 71, 72, 349, 352,
! 751: 350, 27, 0, 0, 0, 58, 59, 258, 60, 0,
! 752: 5, 6, 7, 8, 0, 0, 260, 0, 9, 10,
! 753: 11, 0, 0, 0, 0, 0, 61, 0, 0, 62,
! 754: 0, 0, 0, 0, 13, 0, 63, 0, 0, 64,
! 755: 0, 0, 0, 0, 65, 66, 67, 0, 0, 0,
! 756: 68, 69, 0, 0, 0, 70, 430, 0, 0, 0,
! 757: 0, 0, 0, 0, 0, 0, 0, -205, 71, 72,
! 758: 349, 352, 350, 27, -323, 0, 0, 58, 59, 0,
! 759: 60, 5, 44, 7, 45, 5, 6, 7, 8, 9,
! 760: 10, 11, 0, 9, 10, 11, 0, 0, 61, 0,
! 761: 0, 62, 0, 0, 0, 13, 0, 0, 63, 13,
! 762: 0, 64, 0, 0, 0, 0, 65, 66, 67, 0,
! 763: 0, 0, 68, 69, 0, 0, 0, 70, 430, 0,
! 764: 0, 0, 0, 0, 0, 0, 0, 0, 0, 473,
! 765: 71, 72, 349, 352, 350, 27, 499, 0, 0, 58,
! 766: 59, 142, 60, 143, 144, 145, 146, 147, 148, 149,
! 767: 150, 151, 152, 153, 154, 155, 156, 0, 0, 0,
! 768: 61, 0, 0, 62, 0, 0, 0, 0, 0, 0,
! 769: 63, 0, 0, 64, 0, 0, 0, 0, 65, 66,
! 770: 67, 0, 0, 0, 68, 69, 349, 0, 57, 70,
! 771: 351, 0, 0, 58, 59, 203, 60, 0, -22, -22,
! 772: -22, -22, 71, 72, 0, 352, -22, -22, -22, 0,
! 773: 0, 0, 0, 0, 61, 0, 0, 62, 0, 0,
! 774: 0, 92, -22, 0, 63, -139, 0, 64, 0, -139,
! 775: 0, 0, 65, 66, 67, 0, 0, 0, 68, 69,
! 776: 0, 0, 0, 70, 0, 0, 0, 0, 0, 0,
! 777: 0, 0, 93, 94, 0, 0, 71, 72, 0, 352,
! 778: 0, 0, 0, -139, 0, 0, 197, -139, -22, -18,
! 779: -18, -18, -18, 0, 0, 57, 0, -18, -18, -18,
! 780: 58, 59, 0, 60, 0, 0, 0, 0, 0, 0,
! 781: 0, 0, 92, -18, 0, 0, -139, 0, 0, 0,
! 782: -139, 61, 0, 0, 62, 0, 0, 0, 0, 0,
1.1 root 783: 0, 63, 0, 0, 64, 0, 0, 0, 0, 65,
1.1.1.4 ! root 784: 66, 67, 0, 57, 0, 68, 69, 0, 58, 59,
! 785: 70, 60, 0, 0, -139, 0, 0, 0, -139, -18,
! 786: 0, 0, 0, 71, 72, 0, 0, 183, 0, 61,
! 787: 0, 0, 62, 0, 0, 0, 0, 0, 57, 63,
! 788: 0, 0, 64, 58, 59, 0, 60, 65, 66, 67,
! 789: 0, 0, 0, 68, 69, 0, 0, 0, 70, 0,
! 790: 0, 0, 0, 0, 61, 0, 0, 62, 0, 0,
! 791: 0, 71, 72, 57, 63, 251, 0, 64, 58, 59,
! 792: 0, 60, 65, 66, 67, 0, 0, 0, 68, 69,
! 793: 0, 0, 0, 70, 0, 0, 0, 0, 0, 61,
! 794: 0, 0, 62, 0, 0, 0, 71, 72, 57, 63,
! 795: 284, 0, 64, 58, 59, 0, 60, 65, 66, 67,
! 796: 0, 0, 0, 68, 69, 0, 0, 0, 70, 0,
! 797: 0, 0, 0, 0, 61, 0, 0, 62, 0, 0,
! 798: 0, 71, 72, 0, 63, 312, 0, 64, 0, 0,
! 799: 0, 0, 65, 66, 67, 0, 0, 0, 68, 69,
! 800: 0, 0, 0, 70, 145, 146, 147, 148, 149, 150,
! 801: 151, 152, 153, 154, 155, 156, 71, 72, 0, 0,
! 802: 400, 350, 445, 6, 7, 8, 58, 59, 0, 60,
! 803: 9, 10, 11, 446, 0, 447, 448, 449, 450, 451,
! 804: 452, 453, 454, 455, 456, 457, 13, 61, 0, 0,
1.1 root 805: 62, 0, 0, 0, 0, 0, 0, 63, 0, 0,
806: 64, 0, 0, 0, 0, 65, 66, 67, 0, 0,
1.1.1.4 ! root 807: 0, 68, 69, 0, 0, 0, 70, 0, 0, 0,
! 808: 0, 0, 0, 0, 0, 0, 0, 458, 0, 71,
! 809: 72, 0, 219, 350, 27, 0, 0, 0, 58, 59,
! 810: 0, 60, 0, 0, 0, 446, 0, 447, 448, 449,
! 811: 450, 451, 452, 453, 454, 455, 456, 457, 0, 61,
! 812: 0, 0, 62, 0, 0, 0, 0, 0, 0, 63,
1.1 root 813: 0, 0, 64, 0, 0, 0, 0, 65, 66, 67,
1.1.1.4 ! root 814: 0, 57, 0, 68, 69, 0, 58, 59, 70, 60,
! 815: 0, 0, 0, 0, 0, 0, 0, 0, 0, 458,
! 816: 0, 71, 72, 0, 219, 0, 0, 61, 0, 0,
! 817: 62, 0, 0, 0, 0, 0, 0, 63, 0, 0,
! 818: 64, 0, 0, 0, 0, 65, 66, 67, 0, 0,
! 819: 0, 68, 69, 0, 57, 5, 70, 7, 81, 58,
! 820: 59, 0, 60, 9, 10, 11, 0, 0, 0, 71,
! 821: 72, 0, 302, 0, 0, 0, 0, 0, 0, 13,
! 822: 61, 57, 0, 62, 0, 0, 58, 59, 0, 60,
! 823: 63, 0, 0, 64, 0, 0, 0, 0, 65, 66,
! 824: 67, 0, 0, 0, 68, 69, 0, 61, 0, 70,
! 825: 62, 0, 0, 0, 0, 0, 0, 63, 0, 0,
! 826: 64, 0, 71, 72, 0, 65, 66, 67, 0, 57,
1.1 root 827: 0, 68, 69, 0, 58, 59, 70, 60, 0, 0,
1.1.1.4 ! root 828: 0, 0, 0, 0, 0, 0, 0, 489, 0, 71,
! 829: 72, 0, 0, 0, 0, 61, 57, 0, 62, 0,
! 830: 0, 58, 59, 0, 60, 63, 0, 0, 64, 0,
1.1 root 831: 0, 0, 0, 65, 66, 67, 0, 0, 0, 68,
1.1.1.4 ! root 832: 69, 0, 61, 57, 70, 62, 0, 0, 58, 59,
! 833: 0, 60, 63, 0, 0, 64, 0, 71, 72, 0,
! 834: 65, 66, 67, 0, 0, 0, 68, 69, 0, 61,
! 835: 0, 126, 62, 0, 0, 0, 0, 0, 0, 63,
! 836: 0, 0, 64, 0, 71, 72, 0, 65, 66, 67,
! 837: 0, 0, 0, 68, 69, 0, 0, 4, 128, -107,
! 838: 5, 6, 7, 8, 0, 0, 0, 0, 9, 10,
! 839: 11, 71, 72, 0, 0, 0, 0, 0, 0, 0,
! 840: 0, 0, 0, 12, 13, 144, 145, 146, 147, 148,
! 841: 149, 150, 151, 152, 153, 154, 155, 156, 425, 0,
1.1.1.3 root 842: 0, 0, 0, 0, 0, -107, 0, 0, 0, 0,
1.1.1.4 ! root 843: 0, 0, 0, 0, -107, 0, 508, 0, 0, 0,
! 844: 0, 0, 140, 141, 142, 14, 143, 144, 145, 146,
! 845: 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
! 846: 140, 141, 142, 0, 143, 144, 145, 146, 147, 148,
! 847: 149, 150, 151, 152, 153, 154, 155, 156, 36, 5,
! 848: 44, 7, 45, 426, 0, 0, 0, 9, 10, 11,
! 849: 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
! 850: 156, 509, 0, 13, 140, 141, 142, 0, 143, 144,
1.1.1.3 root 851: 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1.1.1.4 ! root 852: 155, 156, 0, 0, 322, 0, 0, 0, 0, 0,
! 853: 0, 0, 0, 318, 167, 0, 0, 0, 0, 0,
! 854: 0, 0, 140, 141, 142, 507, 143, 144, 145, 146,
1.1.1.3 root 855: 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
1.1.1.4 ! root 856: 191, 0, 0, 140, 141, 142, 0, 143, 144, 145,
! 857: 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
! 858: 156, 0, 0, 553, 140, 141, 142, 0, 143, 144,
! 859: 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
! 860: 155, 156
1.1 root 861: };
862:
863: static const short yycheck[] = { 34,
1.1.1.4 ! root 864: 35, 18, 43, 9, 10, 11, 102, 47, 19, 20,
! 865: 20, 2, 3, 2, 3, 180, 199, 98, 187, 135,
! 866: 49, 38, 200, 293, 86, 35, 250, 166, 483, 369,
! 867: 47, 337, 90, 67, 99, 70, 9, 170, 32, 73,
! 868: 1, 95, 1, 53, 70, 27, 3, 4, 27, 10,
! 869: 3, 4, 3, 1, 37, 482, 7, 63, 198, 94,
! 870: 70, 10, 3, 4, 204, 49, 37, 68, 3, 4,
! 871: 87, 377, 73, 37, 58, 59, 86, 0, 107, 58,
! 872: 59, 31, 99, 179, 165, 68, 0, 37, 37, 395,
! 873: 396, 126, 74, 128, 7, 68, 130, 68, 49, 69,
! 874: 126, 556, 128, 530, 68, 3, 4, 58, 247, 120,
! 875: 58, 122, 122, 74, 49, 74, 126, 74, 128, 389,
! 876: 426, 74, 428, 256, 551, 387, 581, 162, 193, 123,
! 877: 557, 125, 167, 74, 188, 3, 49, 3, 196, 363,
! 878: 567, 170, 27, 58, 198, 58, 59, 3, 4, 58,
! 879: 204, 49, 422, 159, 160, 209, 418, 211, 498, 1,
! 880: 58, 59, 4, 5, 6, 7, 201, 594, 10, 475,
! 881: 12, 13, 14, 58, 59, 68, 193, 346, 74, 318,
! 882: 73, 49, 360, 49, 3, 4, 28, 221, 7, 74,
! 883: 58, 59, 58, 49, 70, 58, 59, 73, 381, 261,
! 884: 262, 507, 58, 509, 3, 68, 3, 4, 7, 3,
! 885: 4, 58, 59, 7, 330, 74, 385, 3, 387, 254,
! 886: 359, 68, 8, 362, 58, 59, 338, 256, 74, 341,
! 887: 49, 69, 74, 503, 68, 73, 317, 68, 68, 58,
! 888: 59, 322, 73, 73, 261, 262, 70, 553, 70, 418,
! 889: 49, 68, 262, 69, 9, 49, 68, 73, 441, 58,
! 890: 59, 139, 140, 141, 58, 143, 144, 145, 146, 147,
! 891: 148, 149, 150, 151, 152, 153, 154, 155, 156, 47,
! 892: 48, 49, 50, 51, 275, 73, 275, 6, 7, 343,
! 893: 69, 70, 346, 12, 13, 14, 302, 5, 6, 7,
! 894: 58, 318, 68, 344, 12, 13, 14, 31, 424, 1,
! 895: 73, 3, 4, 35, 6, 7, 8, 9, 69, 11,
! 896: 12, 13, 14, 334, 335, 335, 361, 205, 444, 74,
! 897: 69, 371, 386, 387, 73, 68, 28, 29, 68, 345,
! 898: 32, 68, 359, 69, 69, 362, 352, 39, 73, 69,
! 899: 42, 58, 59, 73, 371, 47, 48, 49, 27, 69,
! 900: 9, 53, 54, 73, 418, 69, 58, 69, 69, 73,
! 901: 69, 73, 1, 58, 73, 4, 37, 6, 7, 71,
! 902: 72, 75, 74, 12, 13, 14, 49, 50, 51, 424,
! 903: 396, 35, 1, 3, 4, 4, 5, 6, 7, 28,
! 904: 58, 59, 70, 12, 13, 14, 58, 59, 414, 444,
! 905: 69, 70, 58, 59, 70, 531, 451, 70, 424, 28,
! 906: 455, 68, 428, 588, 302, 68, 304, 37, 70, 525,
! 907: 546, 596, 548, 424, 4, 424, 6, 7, 444, 49,
! 908: 69, 70, 12, 13, 14, 480, 69, 70, 58, 484,
! 909: 456, 462, 463, 463, 60, 61, 491, 498, 28, 337,
! 910: 500, 68, 75, 68, 1, 74, 68, 4, 5, 6,
! 911: 7, 506, 75, 351, 352, 12, 13, 14, 513, 49,
! 912: 68, 58, 517, 500, 35, 75, 70, 522, 58, 59,
! 913: 27, 28, 73, 33, 31, 75, 531, 3, 35, 377,
! 914: 69, 1, 380, 3, 4, 5, 6, 7, 3, 37,
! 915: 10, 37, 12, 13, 14, 73, 58, 395, 396, 75,
! 916: 70, 58, 59, 70, 68, 531, 37, 70, 28, 68,
! 917: 37, 58, 69, 411, 58, 58, 73, 74, 37, 69,
! 918: 53, 54, 577, 56, 57, 58, 59, 425, 426, 69,
! 919: 428, 7, 430, 1, 37, 3, 4, 5, 6, 7,
! 920: 8, 9, 16, 11, 12, 13, 14, 15, 68, 17,
1.1.1.3 root 921: 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1.1.1.4 ! root 922: 28, 29, 69, 69, 32, 8, 58, 69, 69, 58,
! 923: 68, 39, 17, 73, 42, 69, 69, 475, 68, 47,
! 924: 48, 49, 68, 8, 68, 53, 54, 37, 69, 68,
! 925: 58, 42, 43, 44, 45, 46, 47, 48, 49, 50,
! 926: 51, 69, 70, 71, 72, 9, 74, 69, 69, 507,
! 927: 508, 509, 1, 73, 3, 4, 5, 6, 7, 8,
! 928: 9, 58, 11, 12, 13, 14, 15, 69, 17, 18,
! 929: 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
! 930: 29, 68, 68, 32, 0, 69, 69, 0, 3, 161,
! 931: 39, 188, 386, 42, 48, 553, 53, 173, 47, 48,
! 932: 49, 352, 359, 208, 53, 54, 343, 408, 116, 58,
! 933: 43, 44, 45, 46, 47, 48, 49, 50, 51, 211,
! 934: 69, 206, 71, 72, 1, 74, 3, 4, 53, 347,
! 935: 386, 8, 9, 531, 11, 580, 531, 578, 15, 253,
! 936: 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
! 937: 27, 327, 29, -1, -1, 32, -1, -1, 4, 5,
! 938: 6, 7, 39, -1, -1, 42, 12, 13, 14, -1,
! 939: 47, 48, 49, -1, -1, -1, 53, 54, -1, -1,
! 940: -1, 58, 28, 44, 45, 46, 47, 48, 49, 50,
! 941: 51, -1, 69, 70, 71, 72, 1, 74, 3, 4,
! 942: -1, -1, -1, 8, 9, -1, 11, -1, -1, -1,
! 943: 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
! 944: 25, 26, 27, 69, 29, -1, -1, 32, -1, -1,
! 945: 4, 5, 6, 7, 39, -1, -1, 42, 12, 13,
! 946: 14, -1, 47, 48, 49, -1, -1, -1, 53, 54,
! 947: -1, -1, -1, 58, 28, 45, 46, 47, 48, 49,
! 948: 50, 51, -1, -1, 69, 70, 71, 72, 1, 74,
! 949: 3, 4, -1, -1, -1, 8, 9, -1, 11, -1,
! 950: -1, -1, 15, -1, 17, 18, 19, 20, 21, 22,
! 951: 23, 24, 25, 26, 27, 69, 29, -1, -1, 32,
! 952: -1, -1, 4, 5, 6, 7, 39, -1, 10, 42,
! 953: 12, 13, 14, -1, 47, 48, 49, -1, -1, -1,
! 954: 53, 54, -1, -1, -1, 58, 28, -1, -1, -1,
! 955: -1, -1, -1, -1, -1, -1, 69, -1, 71, 72,
! 956: 1, 74, 3, 4, -1, -1, -1, 8, 9, -1,
! 957: 11, -1, -1, -1, 15, -1, 17, 18, 19, 20,
! 958: 21, 22, 23, 24, 25, 26, 27, 4, 29, 6,
! 959: 7, 32, -1, -1, -1, 12, 13, 14, 39, -1,
! 960: -1, 42, -1, -1, -1, -1, 47, 48, 49, -1,
! 961: -1, 28, 53, 54, -1, -1, 1, 58, 3, 4,
! 962: -1, -1, -1, 8, 9, -1, 11, -1, 69, -1,
! 963: 71, 72, -1, 74, -1, -1, -1, -1, -1, -1,
! 964: -1, -1, -1, -1, 29, -1, -1, 32, -1, -1,
! 965: -1, -1, 69, 70, 39, -1, -1, 42, -1, -1,
! 966: -1, -1, 47, 48, 49, -1, -1, -1, 53, 54,
! 967: -1, -1, -1, 58, 59, -1, -1, -1, -1, -1,
! 968: -1, -1, -1, -1, -1, 70, 71, 72, 1, 74,
! 969: 3, 4, -1, -1, -1, 8, 9, 1, 11, -1,
! 970: 4, 5, 6, 7, -1, -1, 10, -1, 12, 13,
! 971: 14, -1, -1, -1, -1, -1, 29, -1, -1, 32,
! 972: -1, -1, -1, -1, 28, -1, 39, -1, -1, 42,
! 973: -1, -1, -1, -1, 47, 48, 49, -1, -1, -1,
! 974: 53, 54, -1, -1, -1, 58, 59, -1, -1, -1,
! 975: -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
! 976: 1, 74, 3, 4, 68, -1, -1, 8, 9, -1,
! 977: 11, 4, 5, 6, 7, 4, 5, 6, 7, 12,
! 978: 13, 14, -1, 12, 13, 14, -1, -1, 29, -1,
! 979: -1, 32, -1, -1, -1, 28, -1, -1, 39, 28,
! 980: -1, 42, -1, -1, -1, -1, 47, 48, 49, -1,
! 981: -1, -1, 53, 54, -1, -1, -1, 58, 59, -1,
! 982: -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
! 983: 71, 72, 1, 74, 3, 4, 69, -1, -1, 8,
! 984: 9, 36, 11, 38, 39, 40, 41, 42, 43, 44,
! 985: 45, 46, 47, 48, 49, 50, 51, -1, -1, -1,
! 986: 29, -1, -1, 32, -1, -1, -1, -1, -1, -1,
! 987: 39, -1, -1, 42, -1, -1, -1, -1, 47, 48,
! 988: 49, -1, -1, -1, 53, 54, 1, -1, 3, 58,
! 989: 59, -1, -1, 8, 9, 1, 11, -1, 4, 5,
! 990: 6, 7, 71, 72, -1, 74, 12, 13, 14, -1,
! 991: -1, -1, -1, -1, 29, -1, -1, 32, -1, -1,
! 992: -1, 27, 28, -1, 39, 31, -1, 42, -1, 35,
! 993: -1, -1, 47, 48, 49, -1, -1, -1, 53, 54,
! 994: -1, -1, -1, 58, -1, -1, -1, -1, -1, -1,
! 995: -1, -1, 58, 59, -1, -1, 71, 72, -1, 74,
! 996: -1, -1, -1, 69, -1, -1, 1, 73, 74, 4,
! 997: 5, 6, 7, -1, -1, 3, -1, 12, 13, 14,
! 998: 8, 9, -1, 11, -1, -1, -1, -1, -1, -1,
! 999: -1, -1, 27, 28, -1, -1, 31, -1, -1, -1,
! 1000: 35, 29, -1, -1, 32, -1, -1, -1, -1, -1,
! 1001: -1, 39, -1, -1, 42, -1, -1, -1, -1, 47,
! 1002: 48, 49, -1, 3, -1, 53, 54, -1, 8, 9,
! 1003: 58, 11, -1, -1, 69, -1, -1, -1, 73, 74,
! 1004: -1, -1, -1, 71, 72, -1, -1, 75, -1, 29,
! 1005: -1, -1, 32, -1, -1, -1, -1, -1, 3, 39,
! 1006: -1, -1, 42, 8, 9, -1, 11, 47, 48, 49,
! 1007: -1, -1, -1, 53, 54, -1, -1, -1, 58, -1,
! 1008: -1, -1, -1, -1, 29, -1, -1, 32, -1, -1,
! 1009: -1, 71, 72, 3, 39, 75, -1, 42, 8, 9,
! 1010: -1, 11, 47, 48, 49, -1, -1, -1, 53, 54,
! 1011: -1, -1, -1, 58, -1, -1, -1, -1, -1, 29,
! 1012: -1, -1, 32, -1, -1, -1, 71, 72, 3, 39,
! 1013: 75, -1, 42, 8, 9, -1, 11, 47, 48, 49,
! 1014: -1, -1, -1, 53, 54, -1, -1, -1, 58, -1,
! 1015: -1, -1, -1, -1, 29, -1, -1, 32, -1, -1,
! 1016: -1, 71, 72, -1, 39, 75, -1, 42, -1, -1,
! 1017: -1, -1, 47, 48, 49, -1, -1, -1, 53, 54,
! 1018: -1, -1, -1, 58, 40, 41, 42, 43, 44, 45,
! 1019: 46, 47, 48, 49, 50, 51, 71, 72, -1, -1,
! 1020: 75, 3, 4, 5, 6, 7, 8, 9, -1, 11,
! 1021: 12, 13, 14, 15, -1, 17, 18, 19, 20, 21,
! 1022: 22, 23, 24, 25, 26, 27, 28, 29, -1, -1,
! 1023: 32, -1, -1, -1, -1, -1, -1, 39, -1, -1,
! 1024: 42, -1, -1, -1, -1, 47, 48, 49, -1, -1,
! 1025: -1, 53, 54, -1, -1, -1, 58, -1, -1, -1,
1.1 root 1026: -1, -1, -1, -1, -1, -1, -1, 69, -1, 71,
1.1.1.4 ! root 1027: 72, -1, 74, 3, 4, -1, -1, -1, 8, 9,
1.1 root 1028: -1, 11, -1, -1, -1, 15, -1, 17, 18, 19,
1.1.1.4 ! root 1029: 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
! 1030: -1, -1, 32, -1, -1, -1, -1, -1, -1, 39,
1.1 root 1031: -1, -1, 42, -1, -1, -1, -1, 47, 48, 49,
1.1.1.4 ! root 1032: -1, 3, -1, 53, 54, -1, 8, 9, 58, 11,
! 1033: -1, -1, -1, -1, -1, -1, -1, -1, -1, 69,
! 1034: -1, 71, 72, -1, 74, -1, -1, 29, -1, -1,
1.1 root 1035: 32, -1, -1, -1, -1, -1, -1, 39, -1, -1,
1036: 42, -1, -1, -1, -1, 47, 48, 49, -1, -1,
1.1.1.4 ! root 1037: -1, 53, 54, -1, 3, 4, 58, 6, 7, 8,
! 1038: 9, -1, 11, 12, 13, 14, -1, -1, -1, 71,
! 1039: 72, -1, 74, -1, -1, -1, -1, -1, -1, 28,
! 1040: 29, 3, -1, 32, -1, -1, 8, 9, -1, 11,
! 1041: 39, -1, -1, 42, -1, -1, -1, -1, 47, 48,
! 1042: 49, -1, -1, -1, 53, 54, -1, 29, -1, 58,
! 1043: 32, -1, -1, -1, -1, -1, -1, 39, -1, -1,
! 1044: 42, -1, 71, 72, -1, 47, 48, 49, -1, 3,
1.1 root 1045: -1, 53, 54, -1, 8, 9, 58, 11, -1, -1,
1.1.1.4 ! root 1046: -1, -1, -1, -1, -1, -1, -1, 69, -1, 71,
! 1047: 72, -1, -1, -1, -1, 29, 3, -1, 32, -1,
! 1048: -1, 8, 9, -1, 11, 39, -1, -1, 42, -1,
1.1 root 1049: -1, -1, -1, 47, 48, 49, -1, -1, -1, 53,
1.1.1.4 ! root 1050: 54, -1, 29, 3, 58, 32, -1, -1, 8, 9,
! 1051: -1, 11, 39, -1, -1, 42, -1, 71, 72, -1,
! 1052: 47, 48, 49, -1, -1, -1, 53, 54, -1, 29,
! 1053: -1, 58, 32, -1, -1, -1, -1, -1, -1, 39,
! 1054: -1, -1, 42, -1, 71, 72, -1, 47, 48, 49,
! 1055: -1, -1, -1, 53, 54, -1, -1, 1, 58, 3,
! 1056: 4, 5, 6, 7, -1, -1, -1, -1, 12, 13,
! 1057: 14, 71, 72, -1, -1, -1, -1, -1, -1, -1,
! 1058: -1, -1, -1, 27, 28, 39, 40, 41, 42, 43,
! 1059: 44, 45, 46, 47, 48, 49, 50, 51, 10, -1,
! 1060: -1, -1, -1, -1, -1, 49, -1, -1, -1, -1,
! 1061: -1, -1, -1, -1, 58, -1, 10, -1, -1, -1,
! 1062: -1, -1, 34, 35, 36, 69, 38, 39, 40, 41,
! 1063: 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
! 1064: 34, 35, 36, -1, 38, 39, 40, 41, 42, 43,
! 1065: 44, 45, 46, 47, 48, 49, 50, 51, 3, 4,
! 1066: 5, 6, 7, 75, -1, -1, -1, 12, 13, 14,
! 1067: 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
! 1068: 51, 75, -1, 28, 34, 35, 36, -1, 38, 39,
1.1.1.3 root 1069: 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1.1.1.4 ! root 1070: 50, 51, -1, -1, 49, -1, -1, -1, -1, -1,
! 1071: -1, -1, -1, 58, 59, -1, -1, -1, -1, -1,
! 1072: -1, -1, 34, 35, 36, 75, 38, 39, 40, 41,
1.1.1.3 root 1073: 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1.1.1.4 ! root 1074: 31, -1, -1, 34, 35, 36, -1, 38, 39, 40,
! 1075: 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
! 1076: 51, -1, -1, 75, 34, 35, 36, -1, 38, 39,
! 1077: 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
! 1078: 50, 51
1.1 root 1079: };
1080: /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1081: #line 3 "bison.simple"
1082:
1083: /* Skeleton output parser for bison,
1084: Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
1085:
1086: This program is free software; you can redistribute it and/or modify
1087: it under the terms of the GNU General Public License as published by
1088: the Free Software Foundation; either version 1, or (at your option)
1089: any later version.
1090:
1091: This program is distributed in the hope that it will be useful,
1092: but WITHOUT ANY WARRANTY; without even the implied warranty of
1093: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1094: GNU General Public License for more details.
1095:
1096: You should have received a copy of the GNU General Public License
1097: along with this program; if not, write to the Free Software
1098: Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1099:
1100:
1101: #ifndef alloca
1102: #ifdef __GNUC__
1103: #define alloca __builtin_alloca
1104: #else /* not GNU C. */
1105: #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
1106: #include <alloca.h>
1107: #else /* not sparc */
1108: #if defined (MSDOS) && !defined (__TURBOC__)
1109: #include <malloc.h>
1110: #else /* not MSDOS, or __TURBOC__ */
1111: #if defined(_AIX)
1112: #include <malloc.h>
1.1.1.3 root 1113: #pragma alloca
1.1 root 1114: #endif /* not _AIX */
1115: #endif /* not MSDOS, or __TURBOC__ */
1116: #endif /* not sparc. */
1117: #endif /* not GNU C. */
1118: #endif /* alloca not defined. */
1119:
1120: /* This is the parser code that is written into each bison parser
1121: when the %semantic_parser declaration is not specified in the grammar.
1122: It was written by Richard Stallman by simplifying the hairy parser
1123: used when %semantic_parser is specified. */
1124:
1125: /* Note: there must be only one dollar sign in this file.
1126: It is replaced by the list of actions, each action
1127: as one case of the switch. */
1128:
1129: #define yyerrok (yyerrstatus = 0)
1130: #define yyclearin (yychar = YYEMPTY)
1131: #define YYEMPTY -2
1132: #define YYEOF 0
1133: #define YYACCEPT return(0)
1134: #define YYABORT return(1)
1135: #define YYERROR goto yyerrlab1
1136: /* Like YYERROR except do call yyerror.
1137: This remains here temporarily to ease the
1138: transition to the new meaning of YYERROR, for GCC.
1139: Once GCC version 2 has supplanted version 1, this can go. */
1140: #define YYFAIL goto yyerrlab
1141: #define YYRECOVERING() (!!yyerrstatus)
1142: #define YYBACKUP(token, value) \
1143: do \
1144: if (yychar == YYEMPTY && yylen == 1) \
1145: { yychar = (token), yylval = (value); \
1146: yychar1 = YYTRANSLATE (yychar); \
1147: YYPOPSTACK; \
1148: goto yybackup; \
1149: } \
1150: else \
1151: { yyerror ("syntax error: cannot back up"); YYERROR; } \
1152: while (0)
1153:
1154: #define YYTERROR 1
1155: #define YYERRCODE 256
1156:
1157: #ifndef YYPURE
1158: #define YYLEX yylex()
1159: #endif
1160:
1161: #ifdef YYPURE
1162: #ifdef YYLSP_NEEDED
1163: #define YYLEX yylex(&yylval, &yylloc)
1164: #else
1165: #define YYLEX yylex(&yylval)
1166: #endif
1167: #endif
1168:
1169: /* If nonreentrant, generate the variables here */
1170:
1171: #ifndef YYPURE
1172:
1173: int yychar; /* the lookahead symbol */
1174: YYSTYPE yylval; /* the semantic value of the */
1175: /* lookahead symbol */
1176:
1177: #ifdef YYLSP_NEEDED
1178: YYLTYPE yylloc; /* location data for the lookahead */
1179: /* symbol */
1180: #endif
1181:
1182: int yynerrs; /* number of parse errors so far */
1183: #endif /* not YYPURE */
1184:
1185: #if YYDEBUG != 0
1186: int yydebug; /* nonzero means print parse trace */
1187: /* Since this is uninitialized, it does not stop multiple parsers
1188: from coexisting. */
1189: #endif
1190:
1191: /* YYINITDEPTH indicates the initial size of the parser's stacks */
1192:
1193: #ifndef YYINITDEPTH
1194: #define YYINITDEPTH 200
1195: #endif
1196:
1197: /* YYMAXDEPTH is the maximum size the stacks can grow to
1198: (effective only if the built-in stack extension method is used). */
1199:
1200: #if YYMAXDEPTH == 0
1201: #undef YYMAXDEPTH
1202: #endif
1203:
1204: #ifndef YYMAXDEPTH
1205: #define YYMAXDEPTH 10000
1206: #endif
1207:
1208: #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1209: #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1210: #else /* not GNU C or C++ */
1211: #ifndef __cplusplus
1212:
1213: /* This is the most reliable way to avoid incompatibilities
1214: in available built-in functions on various systems. */
1215: static void
1216: __yy_bcopy (from, to, count)
1217: char *from;
1218: char *to;
1219: int count;
1220: {
1221: register char *f = from;
1222: register char *t = to;
1223: register int i = count;
1224:
1225: while (i-- > 0)
1226: *t++ = *f++;
1227: }
1228:
1229: #else /* __cplusplus */
1230:
1231: /* This is the most reliable way to avoid incompatibilities
1232: in available built-in functions on various systems. */
1233: static void
1234: __yy_bcopy (char *from, char *to, int count)
1235: {
1236: register char *f = from;
1237: register char *t = to;
1238: register int i = count;
1239:
1240: while (i-- > 0)
1241: *t++ = *f++;
1242: }
1243:
1244: #endif
1245: #endif
1246:
1247: #line 169 "bison.simple"
1248: int
1249: yyparse()
1250: {
1251: register int yystate;
1252: register int yyn;
1253: register short *yyssp;
1254: register YYSTYPE *yyvsp;
1255: int yyerrstatus; /* number of tokens to shift before error messages enabled */
1256: int yychar1; /* lookahead token as an internal (translated) token number */
1257:
1258: short yyssa[YYINITDEPTH]; /* the state stack */
1259: YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1260:
1261: short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1262: YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1263:
1264: #ifdef YYLSP_NEEDED
1265: YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1266: YYLTYPE *yyls = yylsa;
1267: YYLTYPE *yylsp;
1268:
1.1.1.3 root 1269: #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1.1 root 1270: #else
1.1.1.3 root 1271: #define YYPOPSTACK (yyvsp--, yyssp--)
1.1 root 1272: #endif
1273:
1274: int yystacksize = YYINITDEPTH;
1275:
1276: #ifdef YYPURE
1277: int yychar;
1278: YYSTYPE yylval;
1279: int yynerrs;
1280: #ifdef YYLSP_NEEDED
1281: YYLTYPE yylloc;
1282: #endif
1283: #endif
1284:
1285: YYSTYPE yyval; /* the variable used to return */
1286: /* semantic values from the action */
1287: /* routines */
1288:
1289: int yylen;
1290:
1291: #if YYDEBUG != 0
1292: if (yydebug)
1293: fprintf(stderr, "Starting parse\n");
1294: #endif
1295:
1296: yystate = 0;
1297: yyerrstatus = 0;
1298: yynerrs = 0;
1299: yychar = YYEMPTY; /* Cause a token to be read. */
1300:
1301: /* Initialize stack pointers.
1302: Waste one element of value and location stack
1303: so that they stay on the same level as the state stack. */
1304:
1305: yyssp = yyss - 1;
1306: yyvsp = yyvs;
1307: #ifdef YYLSP_NEEDED
1308: yylsp = yyls;
1309: #endif
1310:
1311: /* Push a new state, which is found in yystate . */
1312: /* In all cases, when you get here, the value and location stacks
1313: have just been pushed. so pushing a state here evens the stacks. */
1314: yynewstate:
1315:
1316: *++yyssp = yystate;
1317:
1318: if (yyssp >= yyss + yystacksize - 1)
1319: {
1320: /* Give user a chance to reallocate the stack */
1321: /* Use copies of these so that the &'s don't force the real ones into memory. */
1322: YYSTYPE *yyvs1 = yyvs;
1323: short *yyss1 = yyss;
1324: #ifdef YYLSP_NEEDED
1325: YYLTYPE *yyls1 = yyls;
1326: #endif
1327:
1328: /* Get the current used size of the three stacks, in elements. */
1329: int size = yyssp - yyss + 1;
1330:
1331: #ifdef yyoverflow
1332: /* Each stack pointer address is followed by the size of
1333: the data in use in that stack, in bytes. */
1334: yyoverflow("parser stack overflow",
1335: &yyss1, size * sizeof (*yyssp),
1336: &yyvs1, size * sizeof (*yyvsp),
1337: #ifdef YYLSP_NEEDED
1338: &yyls1, size * sizeof (*yylsp),
1339: #endif
1340: &yystacksize);
1341:
1342: yyss = yyss1; yyvs = yyvs1;
1343: #ifdef YYLSP_NEEDED
1344: yyls = yyls1;
1345: #endif
1346: #else /* no yyoverflow */
1347: /* Extend the stack our own way. */
1348: if (yystacksize >= YYMAXDEPTH)
1349: {
1350: yyerror("parser stack overflow");
1351: return 2;
1352: }
1353: yystacksize *= 2;
1354: if (yystacksize > YYMAXDEPTH)
1355: yystacksize = YYMAXDEPTH;
1356: yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1357: __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
1358: yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1359: __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
1360: #ifdef YYLSP_NEEDED
1361: yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1362: __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
1363: #endif
1364: #endif /* no yyoverflow */
1365:
1366: yyssp = yyss + size - 1;
1367: yyvsp = yyvs + size - 1;
1368: #ifdef YYLSP_NEEDED
1369: yylsp = yyls + size - 1;
1370: #endif
1371:
1372: #if YYDEBUG != 0
1373: if (yydebug)
1374: fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1375: #endif
1376:
1377: if (yyssp >= yyss + yystacksize - 1)
1378: YYABORT;
1379: }
1380:
1381: #if YYDEBUG != 0
1382: if (yydebug)
1383: fprintf(stderr, "Entering state %d\n", yystate);
1384: #endif
1385:
1386: yybackup:
1387:
1388: /* Do appropriate processing given the current state. */
1389: /* Read a lookahead token if we need one and don't already have one. */
1390: /* yyresume: */
1391:
1392: /* First try to decide what to do without reference to lookahead token. */
1393:
1394: yyn = yypact[yystate];
1395: if (yyn == YYFLAG)
1396: goto yydefault;
1397:
1398: /* Not known => get a lookahead token if don't already have one. */
1399:
1400: /* yychar is either YYEMPTY or YYEOF
1401: or a valid token in external form. */
1402:
1403: if (yychar == YYEMPTY)
1404: {
1405: #if YYDEBUG != 0
1406: if (yydebug)
1407: fprintf(stderr, "Reading a token: ");
1408: #endif
1409: yychar = YYLEX;
1410: }
1411:
1412: /* Convert token to internal form (in yychar1) for indexing tables with */
1413:
1414: if (yychar <= 0) /* This means end of input. */
1415: {
1416: yychar1 = 0;
1417: yychar = YYEOF; /* Don't call YYLEX any more */
1418:
1419: #if YYDEBUG != 0
1420: if (yydebug)
1421: fprintf(stderr, "Now at end of input.\n");
1422: #endif
1423: }
1424: else
1425: {
1426: yychar1 = YYTRANSLATE(yychar);
1427:
1428: #if YYDEBUG != 0
1429: if (yydebug)
1430: {
1431: fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1432: /* Give the individual parser a way to print the precise meaning
1433: of a token, for further debugging info. */
1434: #ifdef YYPRINT
1435: YYPRINT (stderr, yychar, yylval);
1436: #endif
1437: fprintf (stderr, ")\n");
1438: }
1439: #endif
1440: }
1441:
1442: yyn += yychar1;
1443: if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1444: goto yydefault;
1445:
1446: yyn = yytable[yyn];
1447:
1448: /* yyn is what to do for this token type in this state.
1449: Negative => reduce, -yyn is rule number.
1450: Positive => shift, yyn is new state.
1451: New state is final state => don't bother to shift,
1452: just return success.
1453: 0, or most negative number => error. */
1454:
1455: if (yyn < 0)
1456: {
1457: if (yyn == YYFLAG)
1458: goto yyerrlab;
1459: yyn = -yyn;
1460: goto yyreduce;
1461: }
1462: else if (yyn == 0)
1463: goto yyerrlab;
1464:
1465: if (yyn == YYFINAL)
1466: YYACCEPT;
1467:
1468: /* Shift the lookahead token. */
1469:
1470: #if YYDEBUG != 0
1471: if (yydebug)
1472: fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
1473: #endif
1474:
1475: /* Discard the token being shifted unless it is eof. */
1476: if (yychar != YYEOF)
1477: yychar = YYEMPTY;
1478:
1479: *++yyvsp = yylval;
1480: #ifdef YYLSP_NEEDED
1481: *++yylsp = yylloc;
1482: #endif
1483:
1484: /* count tokens shifted since error; after three, turn off error status. */
1485: if (yyerrstatus) yyerrstatus--;
1486:
1487: yystate = yyn;
1488: goto yynewstate;
1489:
1490: /* Do the default action for the current state. */
1491: yydefault:
1492:
1493: yyn = yydefact[yystate];
1494: if (yyn == 0)
1495: goto yyerrlab;
1496:
1497: /* Do a reduction. yyn is the number of a rule to reduce with. */
1498: yyreduce:
1499: yylen = yyr2[yyn];
1500: yyval = yyvsp[1-yylen]; /* implement default value of the action */
1501:
1502: #if YYDEBUG != 0
1503: if (yydebug)
1504: {
1505: int i;
1506:
1507: fprintf (stderr, "Reducing via rule %d (line %d), ",
1508: yyn, yyrline[yyn]);
1509:
1510: /* Print the symboles being reduced, and their result. */
1511: for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
1512: fprintf (stderr, "%s ", yytname[yyrhs[i]]);
1513: fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1514: }
1515: #endif
1516:
1517:
1518: switch (yyn) {
1519:
1520: case 1:
1.1.1.4 ! root 1521: #line 210 "c-parse.y"
1.1 root 1522: { if (pedantic)
1.1.1.4 ! root 1523: pedwarn ("ANSI C forbids an empty source file");
! 1524: ;
! 1525: break;}
! 1526: case 2:
! 1527: #line 214 "c-parse.y"
! 1528: {
! 1529: ;
1.1 root 1530: break;}
1531: case 3:
1.1.1.4 ! root 1532: #line 223 "c-parse.y"
1.1 root 1533: {yyval.ttype = NULL_TREE; ;
1534: break;}
1535: case 5:
1.1.1.4 ! root 1536: #line 224 "c-parse.y"
1.1 root 1537: {yyval.ttype = NULL_TREE; ;
1538: break;}
1539: case 9:
1.1.1.4 ! root 1540: #line 231 "c-parse.y"
1.1 root 1541: { STRIP_NOPS (yyvsp[-2].ttype);
1542: if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
1543: && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
1544: || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
1545: assemble_asm (yyvsp[-2].ttype);
1546: else
1547: error ("argument of `asm' is not a constant string"); ;
1548: break;}
1549: case 10:
1.1.1.4 ! root 1550: #line 242 "c-parse.y"
1.1 root 1551: { if (pedantic)
1552: error ("ANSI C forbids data definition with no type or storage class");
1553: else if (!flag_traditional)
1554: warning ("data definition has no type or storage class"); ;
1555: break;}
1556: case 11:
1.1.1.4 ! root 1557: #line 247 "c-parse.y"
1.1 root 1558: {;
1559: break;}
1560: case 12:
1.1.1.4 ! root 1561: #line 249 "c-parse.y"
1.1 root 1562: {;
1563: break;}
1564: case 13:
1.1.1.4 ! root 1565: #line 251 "c-parse.y"
! 1566: { pedwarn ("empty declaration"); ;
1.1 root 1567: break;}
1568: case 14:
1.1.1.4 ! root 1569: #line 253 "c-parse.y"
1.1 root 1570: { shadow_tag (yyvsp[-1].ttype); ;
1571: break;}
1572: case 17:
1.1.1.4 ! root 1573: #line 257 "c-parse.y"
1.1 root 1574: { if (pedantic)
1575: pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1576: break;}
1577: case 18:
1.1.1.4 ! root 1578: #line 263 "c-parse.y"
1.1 root 1579: { if (! start_function (yyvsp[-2].ttype, yyvsp[0].ttype, 0))
1580: YYERROR1;
1581: reinit_parse_for_function (); ;
1582: break;}
1583: case 19:
1.1.1.4 ! root 1584: #line 267 "c-parse.y"
1.1 root 1585: { store_parm_decls (); ;
1586: break;}
1587: case 20:
1.1.1.4 ! root 1588: #line 269 "c-parse.y"
1.1 root 1589: { finish_function (0); ;
1590: break;}
1591: case 21:
1.1.1.4 ! root 1592: #line 271 "c-parse.y"
1.1 root 1593: { ;
1594: break;}
1595: case 22:
1.1.1.4 ! root 1596: #line 273 "c-parse.y"
1.1 root 1597: { if (! start_function (yyvsp[-2].ttype, yyvsp[0].ttype, 0))
1598: YYERROR1;
1599: reinit_parse_for_function (); ;
1600: break;}
1601: case 23:
1.1.1.4 ! root 1602: #line 277 "c-parse.y"
1.1 root 1603: { store_parm_decls (); ;
1604: break;}
1605: case 24:
1.1.1.4 ! root 1606: #line 279 "c-parse.y"
1.1 root 1607: { finish_function (0); ;
1608: break;}
1609: case 25:
1.1.1.4 ! root 1610: #line 281 "c-parse.y"
1.1 root 1611: { ;
1612: break;}
1613: case 26:
1.1.1.4 ! root 1614: #line 283 "c-parse.y"
! 1615: { if (! start_function (NULL_TREE, yyvsp[0].ttype, 0))
1.1 root 1616: YYERROR1;
1617: reinit_parse_for_function (); ;
1618: break;}
1619: case 27:
1.1.1.4 ! root 1620: #line 287 "c-parse.y"
1.1 root 1621: { store_parm_decls (); ;
1622: break;}
1623: case 28:
1.1.1.4 ! root 1624: #line 289 "c-parse.y"
1.1 root 1625: { finish_function (0); ;
1626: break;}
1627: case 29:
1.1.1.4 ! root 1628: #line 291 "c-parse.y"
1.1 root 1629: { ;
1630: break;}
1631: case 32:
1.1.1.4 ! root 1632: #line 300 "c-parse.y"
1.1 root 1633: { yyval.code = ADDR_EXPR; ;
1634: break;}
1635: case 33:
1.1.1.4 ! root 1636: #line 302 "c-parse.y"
1.1 root 1637: { yyval.code = NEGATE_EXPR; ;
1638: break;}
1639: case 34:
1.1.1.4 ! root 1640: #line 304 "c-parse.y"
1.1 root 1641: { yyval.code = CONVERT_EXPR; ;
1642: break;}
1643: case 35:
1.1.1.4 ! root 1644: #line 306 "c-parse.y"
1.1 root 1645: { yyval.code = PREINCREMENT_EXPR; ;
1646: break;}
1647: case 36:
1.1.1.4 ! root 1648: #line 308 "c-parse.y"
1.1 root 1649: { yyval.code = PREDECREMENT_EXPR; ;
1650: break;}
1651: case 37:
1.1.1.4 ! root 1652: #line 310 "c-parse.y"
1.1 root 1653: { yyval.code = BIT_NOT_EXPR; ;
1654: break;}
1655: case 38:
1.1.1.4 ! root 1656: #line 312 "c-parse.y"
1.1 root 1657: { yyval.code = TRUTH_NOT_EXPR; ;
1658: break;}
1659: case 39:
1.1.1.4 ! root 1660: #line 316 "c-parse.y"
1.1 root 1661: { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
1662: break;}
1663: case 40:
1.1.1.4 ! root 1664: #line 321 "c-parse.y"
1.1 root 1665: { yyval.ttype = NULL_TREE; ;
1666: break;}
1667: case 42:
1.1.1.4 ! root 1668: #line 327 "c-parse.y"
1.1 root 1669: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
1670: break;}
1671: case 43:
1.1.1.4 ! root 1672: #line 329 "c-parse.y"
1.1 root 1673: { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
1674: break;}
1675: case 45:
1.1.1.4 ! root 1676: #line 335 "c-parse.y"
1.1 root 1677: { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
1678: break;}
1679: case 46:
1.1.1.4 ! root 1680: #line 338 "c-parse.y"
1.1 root 1681: { yyvsp[0].itype = pedantic;
1682: pedantic = 0; ;
1683: break;}
1684: case 47:
1.1.1.4 ! root 1685: #line 341 "c-parse.y"
1.1 root 1686: { yyval.ttype = yyvsp[0].ttype;
1687: pedantic = yyvsp[-2].itype; ;
1688: break;}
1689: case 48:
1.1.1.4 ! root 1690: #line 344 "c-parse.y"
1.1 root 1691: { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0); ;
1692: break;}
1693: case 49:
1.1.1.4 ! root 1694: #line 347 "c-parse.y"
1.1 root 1695: { tree label = lookup_label (yyvsp[0].ttype);
1696: TREE_USED (label) = 1;
1697: yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
1698: TREE_CONSTANT (yyval.ttype) = 1; ;
1699: break;}
1700: case 50:
1.1.1.4 ! root 1701: #line 367 "c-parse.y"
1.1 root 1702: { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
1703: && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
1704: error ("`sizeof' applied to a bit-field");
1705: yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
1706: break;}
1707: case 51:
1.1.1.4 ! root 1708: #line 372 "c-parse.y"
1.1 root 1709: { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
1710: break;}
1711: case 52:
1.1.1.4 ! root 1712: #line 374 "c-parse.y"
1.1 root 1713: { yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
1714: break;}
1715: case 53:
1.1.1.4 ! root 1716: #line 376 "c-parse.y"
1.1 root 1717: { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
1718: break;}
1719: case 55:
1.1.1.4 ! root 1720: #line 382 "c-parse.y"
1.1 root 1721: { tree type = groktypename (yyvsp[-2].ttype);
1722: yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
1723: break;}
1724: case 56:
1.1.1.4 ! root 1725: #line 385 "c-parse.y"
1.1 root 1726: { tree type = groktypename (yyvsp[-5].ttype);
1727: char *name;
1728: if (pedantic)
1729: pedwarn ("ANSI C forbids constructor expressions");
1730: if (TYPE_NAME (type) != 0)
1731: {
1732: if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
1733: name = IDENTIFIER_POINTER (TYPE_NAME (type));
1734: else
1735: name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
1736: }
1737: else
1738: name = "";
1739: yyval.ttype = digest_init (type, build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)),
1.1.1.4 ! root 1740: NULL_PTR, 0, 0, name);
1.1 root 1741: if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
1742: {
1743: int failure = complete_array_type (type, yyval.ttype, 1);
1744: if (failure)
1745: abort ();
1746: }
1747: ;
1748: break;}
1749: case 58:
1.1.1.4 ! root 1750: #line 412 "c-parse.y"
1.1 root 1751: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1752: break;}
1753: case 59:
1.1.1.4 ! root 1754: #line 414 "c-parse.y"
1.1 root 1755: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1756: break;}
1757: case 60:
1.1.1.4 ! root 1758: #line 416 "c-parse.y"
1.1 root 1759: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1760: break;}
1761: case 61:
1.1.1.4 ! root 1762: #line 418 "c-parse.y"
1.1 root 1763: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1764: break;}
1765: case 62:
1.1.1.4 ! root 1766: #line 420 "c-parse.y"
1.1 root 1767: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1768: break;}
1769: case 63:
1.1.1.4 ! root 1770: #line 422 "c-parse.y"
1.1 root 1771: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1772: break;}
1773: case 64:
1.1.1.4 ! root 1774: #line 424 "c-parse.y"
1.1 root 1775: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1776: break;}
1777: case 65:
1.1.1.4 ! root 1778: #line 426 "c-parse.y"
1.1 root 1779: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1780: break;}
1781: case 66:
1.1.1.4 ! root 1782: #line 428 "c-parse.y"
1.1 root 1783: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1784: break;}
1785: case 67:
1.1.1.4 ! root 1786: #line 430 "c-parse.y"
1.1 root 1787: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1788: break;}
1789: case 68:
1.1.1.4 ! root 1790: #line 432 "c-parse.y"
1.1 root 1791: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1792: break;}
1793: case 69:
1.1.1.4 ! root 1794: #line 434 "c-parse.y"
1.1 root 1795: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1796: break;}
1797: case 70:
1.1.1.4 ! root 1798: #line 436 "c-parse.y"
1.1 root 1799: { yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1800: break;}
1801: case 71:
1.1.1.4 ! root 1802: #line 438 "c-parse.y"
1.1 root 1803: { yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1804: break;}
1805: case 72:
1.1.1.4 ! root 1806: #line 440 "c-parse.y"
1.1 root 1807: { yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1808: break;}
1809: case 73:
1.1.1.4 ! root 1810: #line 442 "c-parse.y"
! 1811: { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
! 1812: C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
1.1 root 1813: break;}
1814: case 74:
1.1.1.4 ! root 1815: #line 445 "c-parse.y"
! 1816: { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
! 1817: C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
1.1 root 1818: break;}
1819: case 75:
1.1.1.4 ! root 1820: #line 451 "c-parse.y"
1.1 root 1821: {
1822: tree context;
1823:
1824: yyval.ttype = lastiddecl;
1825: if (!yyval.ttype || yyval.ttype == error_mark_node)
1826: {
1827: if (yychar == YYEMPTY)
1828: yychar = YYLEX;
1829: if (yychar == '(')
1830: {
1.1.1.4 ! root 1831: {
! 1832: /* Ordinary implicit function declaration. */
! 1833: yyval.ttype = implicitly_declare (yyvsp[0].ttype);
! 1834: assemble_external (yyval.ttype);
! 1835: TREE_USED (yyval.ttype) = 1;
! 1836: }
1.1 root 1837: }
1838: else if (current_function_decl == 0)
1839: {
1840: error ("`%s' undeclared, outside of functions",
1841: IDENTIFIER_POINTER (yyvsp[0].ttype));
1842: yyval.ttype = error_mark_node;
1843: }
1844: else
1845: {
1846: {
1.1.1.4 ! root 1847: if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
! 1848: || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
1.1 root 1849: {
1.1.1.4 ! root 1850: error ("`%s' undeclared (first use this function)",
! 1851: IDENTIFIER_POINTER (yyvsp[0].ttype));
! 1852:
! 1853: if (! undeclared_variable_notice)
! 1854: {
! 1855: error ("(Each undeclared identifier is reported only once");
! 1856: error ("for each function it appears in.)");
! 1857: undeclared_variable_notice = 1;
! 1858: }
1.1 root 1859: }
1.1.1.4 ! root 1860: yyval.ttype = error_mark_node;
! 1861: /* Prevent repeated error messages. */
! 1862: IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
! 1863: IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
1.1 root 1864: }
1865: }
1866: }
1867: else if (TREE_TYPE (yyval.ttype) == error_mark_node)
1868: yyval.ttype = error_mark_node;
1.1.1.4 ! root 1869: else if (C_DECL_ANTICIPATED (yyval.ttype))
! 1870: {
! 1871: /* The first time we see a build-in function used,
! 1872: if it has not been declared. */
! 1873: C_DECL_ANTICIPATED (yyval.ttype) = 0;
! 1874: if (yychar == YYEMPTY)
! 1875: yychar = YYLEX;
! 1876: if (yychar == '(')
! 1877: {
! 1878: /* Omit the implicit declaration we
! 1879: would ordinarily do, so we don't lose
! 1880: the actual built in type.
! 1881: But print a diagnostic for the mismatch. */
! 1882: if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
! 1883: error ("`%s' implicitly declared as function",
! 1884: IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
! 1885: else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
! 1886: != TYPE_MODE (integer_type_node))
! 1887: && (TREE_TYPE (TREE_TYPE (yyval.ttype))
! 1888: != void_type_node))
! 1889: pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
! 1890: IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
! 1891: /* If it really returns void, change that to int. */
! 1892: if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
! 1893: TREE_TYPE (yyval.ttype)
! 1894: = build_function_type (integer_type_node,
! 1895: TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
! 1896: }
! 1897: else
! 1898: pedwarn ("built-in function `%s' used without declaration",
! 1899: IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
! 1900:
! 1901: /* Do what we would ordinarily do when a fn is used. */
! 1902: assemble_external (yyval.ttype);
! 1903: TREE_USED (yyval.ttype) = 1;
! 1904: }
1.1.1.2 root 1905: else
1.1 root 1906: {
1.1.1.2 root 1907: assemble_external (yyval.ttype);
1.1 root 1908: TREE_USED (yyval.ttype) = 1;
1909: }
1.1.1.4 ! root 1910:
1.1 root 1911: if (TREE_CODE (yyval.ttype) == CONST_DECL)
1.1.1.4 ! root 1912: {
! 1913: yyval.ttype = DECL_INITIAL (yyval.ttype);
! 1914: /* This is to prevent an enum whose value is 0
! 1915: from being considered a null pointer constant. */
! 1916: yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
! 1917: TREE_CONSTANT (yyval.ttype) = 1;
! 1918: }
1.1 root 1919: ;
1920: break;}
1921: case 77:
1.1.1.4 ! root 1922: #line 552 "c-parse.y"
1.1 root 1923: { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
1924: break;}
1925: case 78:
1.1.1.4 ! root 1926: #line 554 "c-parse.y"
1.1 root 1927: { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
1928: if (class == 'e' || class == '1'
1929: || class == '2' || class == '<')
1930: C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
1931: yyval.ttype = yyvsp[-1].ttype; ;
1932: break;}
1933: case 79:
1.1.1.4 ! root 1934: #line 560 "c-parse.y"
1.1 root 1935: { yyval.ttype = error_mark_node; ;
1936: break;}
1937: case 80:
1.1.1.4 ! root 1938: #line 562 "c-parse.y"
1.1 root 1939: { if (current_function_decl == 0)
1940: {
1941: error ("braced-group within expression allowed only inside a function");
1942: YYERROR;
1943: }
1944: /* We must force a BLOCK for this level
1945: so that, if it is not expanded later,
1946: there is a way to turn off the entire subtree of blocks
1947: that are contained in it. */
1948: keep_next_level ();
1949: push_label_level ();
1950: yyval.ttype = expand_start_stmt_expr (); ;
1951: break;}
1952: case 81:
1.1.1.4 ! root 1953: #line 575 "c-parse.y"
1.1 root 1954: { tree rtl_exp;
1955: if (pedantic)
1956: pedwarn ("ANSI C forbids braced-groups within expressions");
1957: pop_label_level ();
1958: rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
1959: /* The statements have side effects, so the group does. */
1960: TREE_SIDE_EFFECTS (rtl_exp) = 1;
1961:
1962: /* Make a BIND_EXPR for the BLOCK already made. */
1963: yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
1964: NULL_TREE, rtl_exp, yyvsp[-1].ttype);
1.1.1.4 ! root 1965: /* Remove the block from the tree at this point.
! 1966: It gets put back at the proper place
! 1967: when the BIND_EXPR is expanded. */
! 1968: delete_block (yyvsp[-1].ttype);
1.1 root 1969: ;
1970: break;}
1971: case 82:
1.1.1.4 ! root 1972: #line 592 "c-parse.y"
1.1 root 1973: { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
1974: break;}
1975: case 83:
1.1.1.4 ! root 1976: #line 594 "c-parse.y"
1.1 root 1977: { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
1978: break;}
1979: case 84:
1.1.1.4 ! root 1980: #line 596 "c-parse.y"
! 1981: {
! 1982: yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
! 1983: ;
1.1 root 1984: break;}
1985: case 85:
1.1.1.4 ! root 1986: #line 600 "c-parse.y"
! 1987: {
! 1988: tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
! 1989:
! 1990: yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
! 1991: ;
1.1 root 1992: break;}
1993: case 86:
1.1.1.4 ! root 1994: #line 606 "c-parse.y"
1.1 root 1995: { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
1996: break;}
1997: case 87:
1.1.1.4 ! root 1998: #line 608 "c-parse.y"
1.1 root 1999: { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2000: break;}
2001: case 89:
1.1.1.4 ! root 2002: #line 615 "c-parse.y"
1.1 root 2003: { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2004: break;}
2005: case 92:
1.1.1.4 ! root 2006: #line 623 "c-parse.y"
1.1 root 2007: { c_mark_varargs ();
2008: if (pedantic)
2009: pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2010: break;}
2011: case 93:
1.1.1.4 ! root 2012: #line 633 "c-parse.y"
1.1 root 2013: { ;
2014: break;}
2015: case 98:
1.1.1.4 ! root 2016: #line 645 "c-parse.y"
1.1 root 2017: { current_declspecs = TREE_VALUE (declspec_stack);
2018: declspec_stack = TREE_CHAIN (declspec_stack);
2019: resume_momentary (yyvsp[-2].itype); ;
2020: break;}
2021: case 99:
1.1.1.4 ! root 2022: #line 649 "c-parse.y"
1.1 root 2023: { current_declspecs = TREE_VALUE (declspec_stack);
2024: declspec_stack = TREE_CHAIN (declspec_stack);
2025: resume_momentary (yyvsp[-2].itype); ;
2026: break;}
2027: case 100:
1.1.1.4 ! root 2028: #line 653 "c-parse.y"
! 2029: { shadow_tag_warned (yyvsp[-1].ttype, 1);
! 2030: pedwarn ("empty declaration"); ;
1.1 root 2031: break;}
2032: case 101:
1.1.1.4 ! root 2033: #line 656 "c-parse.y"
1.1 root 2034: { pedwarn ("empty declaration"); ;
2035: break;}
2036: case 102:
1.1.1.4 ! root 2037: #line 665 "c-parse.y"
1.1 root 2038: { ;
2039: break;}
2040: case 107:
1.1.1.4 ! root 2041: #line 680 "c-parse.y"
1.1 root 2042: { yyval.itype = suspend_momentary ();
2043: pending_xref_error ();
1.1.1.4 ! root 2044: declspec_stack = tree_cons (NULL_TREE, current_declspecs,
1.1 root 2045: declspec_stack);
2046: current_declspecs = yyvsp[0].ttype; ;
2047: break;}
2048: case 108:
1.1.1.4 ! root 2049: #line 689 "c-parse.y"
1.1 root 2050: { current_declspecs = TREE_VALUE (declspec_stack);
2051: declspec_stack = TREE_CHAIN (declspec_stack);
2052: resume_momentary (yyvsp[-2].itype); ;
2053: break;}
2054: case 109:
1.1.1.4 ! root 2055: #line 693 "c-parse.y"
1.1 root 2056: { current_declspecs = TREE_VALUE (declspec_stack);
2057: declspec_stack = TREE_CHAIN (declspec_stack);
2058: resume_momentary (yyvsp[-2].itype); ;
2059: break;}
2060: case 110:
1.1.1.4 ! root 2061: #line 697 "c-parse.y"
1.1 root 2062: { current_declspecs = TREE_VALUE (declspec_stack);
2063: declspec_stack = TREE_CHAIN (declspec_stack);
2064: resume_momentary (yyvsp[-1].itype); ;
2065: break;}
2066: case 111:
1.1.1.4 ! root 2067: #line 701 "c-parse.y"
1.1 root 2068: { current_declspecs = TREE_VALUE (declspec_stack);
2069: declspec_stack = TREE_CHAIN (declspec_stack);
2070: resume_momentary (yyvsp[-1].itype); ;
2071: break;}
2072: case 112:
1.1.1.4 ! root 2073: #line 705 "c-parse.y"
1.1 root 2074: { shadow_tag (yyvsp[-1].ttype); ;
2075: break;}
2076: case 113:
1.1.1.4 ! root 2077: #line 707 "c-parse.y"
1.1 root 2078: { pedwarn ("empty declaration"); ;
2079: break;}
2080: case 114:
1.1.1.4 ! root 2081: #line 716 "c-parse.y"
1.1 root 2082: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2083: break;}
2084: case 115:
1.1.1.4 ! root 2085: #line 718 "c-parse.y"
1.1 root 2086: { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2087: break;}
2088: case 116:
1.1.1.4 ! root 2089: #line 722 "c-parse.y"
1.1 root 2090: { yyval.ttype = NULL_TREE; ;
2091: break;}
2092: case 117:
1.1.1.4 ! root 2093: #line 724 "c-parse.y"
1.1 root 2094: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2095: break;}
2096: case 118:
1.1.1.4 ! root 2097: #line 726 "c-parse.y"
! 2098: { if (extra_warnings)
! 2099: warning ("`%s' is not at beginning of declaration",
! 2100: IDENTIFIER_POINTER (yyvsp[0].ttype));
! 2101: yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
1.1 root 2102: break;}
2103: case 119:
1.1.1.4 ! root 2104: #line 738 "c-parse.y"
! 2105: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
! 2106: TREE_STATIC (yyval.ttype) = 1; ;
1.1 root 2107: break;}
2108: case 120:
1.1.1.4 ! root 2109: #line 741 "c-parse.y"
1.1 root 2110: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2111: break;}
2112: case 121:
1.1.1.4 ! root 2113: #line 743 "c-parse.y"
! 2114: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
! 2115: TREE_STATIC (yyval.ttype) = 1; ;
1.1 root 2116: break;}
2117: case 122:
1.1.1.4 ! root 2118: #line 746 "c-parse.y"
! 2119: { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
! 2120: warning ("`%s' is not at beginning of declaration",
! 2121: IDENTIFIER_POINTER (yyvsp[0].ttype));
! 2122: yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
! 2123: TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
1.1 root 2124: break;}
2125: case 123:
1.1.1.4 ! root 2126: #line 760 "c-parse.y"
1.1 root 2127: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2128: break;}
2129: case 124:
1.1.1.4 ! root 2130: #line 762 "c-parse.y"
1.1 root 2131: { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2132: break;}
2133: case 125:
1.1.1.4 ! root 2134: #line 766 "c-parse.y"
1.1 root 2135: { yyval.ttype = NULL_TREE; ;
2136: break;}
2137: case 126:
1.1.1.4 ! root 2138: #line 768 "c-parse.y"
1.1 root 2139: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2140: break;}
2141: case 129:
1.1.1.4 ! root 2142: #line 778 "c-parse.y"
1.1 root 2143: { /* For a typedef name, record the meaning, not the name.
2144: In case of `foo foo, bar;'. */
2145: yyval.ttype = lookup_name (yyvsp[0].ttype); ;
2146: break;}
2147: case 130:
1.1.1.4 ! root 2148: #line 782 "c-parse.y"
! 2149: { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
1.1 root 2150: break;}
2151: case 131:
1.1.1.4 ! root 2152: #line 784 "c-parse.y"
! 2153: { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
1.1 root 2154: break;}
2155: case 139:
1.1.1.4 ! root 2156: #line 806 "c-parse.y"
1.1 root 2157: { yyval.ttype = NULL_TREE; ;
2158: break;}
2159: case 140:
1.1.1.4 ! root 2160: #line 808 "c-parse.y"
1.1 root 2161: { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
2162: yyval.ttype = yyvsp[-1].ttype;
2163: ;
2164: break;}
2165: case 141:
1.1.1.4 ! root 2166: #line 815 "c-parse.y"
1.1 root 2167: { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1); ;
2168: break;}
2169: case 142:
1.1.1.4 ! root 2170: #line 818 "c-parse.y"
1.1 root 2171: { decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype);
2172: finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2173: break;}
2174: case 143:
1.1.1.4 ! root 2175: #line 821 "c-parse.y"
1.1 root 2176: { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
2177: decl_attributes (d, yyvsp[0].ttype);
2178: finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
2179: break;}
2180: case 144:
1.1.1.4 ! root 2181: #line 828 "c-parse.y"
1.1 root 2182: { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1); ;
2183: break;}
2184: case 145:
1.1.1.4 ! root 2185: #line 831 "c-parse.y"
1.1 root 2186: { decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype);
2187: finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2188: break;}
2189: case 146:
1.1.1.4 ! root 2190: #line 834 "c-parse.y"
1.1 root 2191: { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
2192: decl_attributes (d, yyvsp[0].ttype);
2193: finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
2194: break;}
2195: case 147:
1.1.1.4 ! root 2196: #line 842 "c-parse.y"
1.1 root 2197: { yyval.ttype = NULL_TREE; ;
2198: break;}
2199: case 148:
1.1.1.4 ! root 2200: #line 844 "c-parse.y"
1.1 root 2201: { yyval.ttype = yyvsp[-2].ttype; ;
2202: break;}
2203: case 149:
1.1.1.4 ! root 2204: #line 849 "c-parse.y"
1.1 root 2205: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2206: break;}
2207: case 150:
1.1.1.4 ! root 2208: #line 851 "c-parse.y"
1.1 root 2209: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
2210: break;}
2211: case 151:
1.1.1.4 ! root 2212: #line 856 "c-parse.y"
1.1 root 2213: { if (strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "packed"))
2214: warning ("`%s' attribute directive ignored",
2215: IDENTIFIER_POINTER (yyvsp[0].ttype));
2216: yyval.ttype = yyvsp[0].ttype; ;
2217: break;}
2218: case 152:
1.1.1.4 ! root 2219: #line 861 "c-parse.y"
1.1.1.3 root 2220: { /* If not "mode (m)", then issue warning. */
2221: if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "mode") != 0)
2222: {
2223: warning ("`%s' attribute directive ignored",
2224: IDENTIFIER_POINTER (yyvsp[-3].ttype));
2225: yyval.ttype = yyvsp[-3].ttype;
2226: }
2227: else
1.1.1.4 ! root 2228: yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
1.1.1.3 root 2229: break;}
2230: case 153:
1.1.1.4 ! root 2231: #line 871 "c-parse.y"
1.1 root 2232: { /* if not "aligned(n)", then issue warning */
2233: if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0
2234: || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
2235: {
2236: warning ("`%s' attribute directive ignored",
2237: IDENTIFIER_POINTER (yyvsp[-3].ttype));
2238: yyval.ttype = yyvsp[-3].ttype;
2239: }
2240: else
1.1.1.4 ! root 2241: yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
1.1 root 2242: break;}
1.1.1.3 root 2243: case 154:
1.1.1.4 ! root 2244: #line 882 "c-parse.y"
1.1 root 2245: { /* if not "format(...)", then issue warning */
2246: if (strcmp (IDENTIFIER_POINTER (yyvsp[-7].ttype), "format") != 0
2247: || TREE_CODE (yyvsp[-3].ttype) != INTEGER_CST
2248: || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
2249: {
2250: warning ("`%s' attribute directive ignored",
2251: IDENTIFIER_POINTER (yyvsp[-7].ttype));
2252: yyval.ttype = yyvsp[-7].ttype;
2253: }
2254: else
1.1.1.4 ! root 2255: yyval.ttype = tree_cons (yyvsp[-7].ttype,
! 2256: tree_cons (yyvsp[-5].ttype,
! 2257: tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE),
! 2258: NULL_TREE),
! 2259: NULL_TREE); ;
1.1 root 2260: break;}
1.1.1.3 root 2261: case 156:
1.1.1.4 ! root 2262: #line 902 "c-parse.y"
1.1 root 2263: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
2264: if (pedantic)
2265: pedwarn ("ANSI C forbids empty initializer braces"); ;
2266: break;}
1.1.1.3 root 2267: case 157:
1.1.1.4 ! root 2268: #line 906 "c-parse.y"
1.1 root 2269: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype)); ;
2270: break;}
1.1.1.3 root 2271: case 158:
1.1.1.4 ! root 2272: #line 908 "c-parse.y"
1.1 root 2273: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); ;
2274: break;}
1.1.1.3 root 2275: case 159:
1.1.1.4 ! root 2276: #line 910 "c-parse.y"
1.1 root 2277: { yyval.ttype = NULL_TREE; ;
2278: break;}
1.1.1.3 root 2279: case 160:
1.1.1.4 ! root 2280: #line 917 "c-parse.y"
1.1 root 2281: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
2282: break;}
1.1.1.3 root 2283: case 161:
1.1.1.4 ! root 2284: #line 919 "c-parse.y"
1.1 root 2285: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
2286: break;}
1.1.1.3 root 2287: case 162:
1.1.1.4 ! root 2288: #line 922 "c-parse.y"
! 2289: { yyval.ttype = build_tree_list (tree_cons (yyvsp[-4].ttype, NULL_TREE,
! 2290: build_tree_list (yyvsp[-2].ttype, NULL_TREE)),
! 2291: yyvsp[0].ttype); ;
1.1 root 2292: break;}
1.1.1.3 root 2293: case 163:
1.1.1.4 ! root 2294: #line 926 "c-parse.y"
! 2295: { yyval.ttype = tree_cons (tree_cons (yyvsp[-4].ttype, NULL_TREE,
! 2296: build_tree_list (yyvsp[-2].ttype, NULL_TREE)),
! 2297: yyvsp[0].ttype,
! 2298: yyvsp[-7].ttype); ;
1.1 root 2299: break;}
1.1.1.3 root 2300: case 164:
1.1.1.4 ! root 2301: #line 931 "c-parse.y"
1.1 root 2302: { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2303: break;}
1.1.1.3 root 2304: case 165:
1.1.1.4 ! root 2305: #line 933 "c-parse.y"
! 2306: { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-5].ttype); ;
1.1 root 2307: break;}
1.1.1.3 root 2308: case 166:
1.1.1.4 ! root 2309: #line 935 "c-parse.y"
! 2310: { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
! 2311: break;}
! 2312: case 167:
! 2313: #line 937 "c-parse.y"
! 2314: { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
! 2315: break;}
! 2316: case 168:
! 2317: #line 942 "c-parse.y"
1.1 root 2318: { push_c_function_context ();
2319: if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
2320: {
2321: pop_c_function_context ();
2322: YYERROR1;
2323: }
2324: reinit_parse_for_function ();
2325: store_parm_decls (); ;
2326: break;}
1.1.1.4 ! root 2327: case 169:
! 2328: #line 957 "c-parse.y"
1.1 root 2329: { finish_function (1);
2330: pop_c_function_context (); ;
2331: break;}
1.1.1.4 ! root 2332: case 170:
! 2333: #line 963 "c-parse.y"
1.1 root 2334: { push_c_function_context ();
2335: if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
2336: {
2337: pop_c_function_context ();
2338: YYERROR1;
2339: }
2340: reinit_parse_for_function ();
2341: store_parm_decls (); ;
2342: break;}
1.1.1.4 ! root 2343: case 171:
! 2344: #line 978 "c-parse.y"
1.1 root 2345: { finish_function (1);
2346: pop_c_function_context (); ;
2347: break;}
1.1.1.4 ! root 2348: case 174:
! 2349: #line 994 "c-parse.y"
1.1 root 2350: { yyval.ttype = yyvsp[-1].ttype; ;
2351: break;}
1.1.1.4 ! root 2352: case 175:
! 2353: #line 996 "c-parse.y"
1.1 root 2354: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2355: break;}
1.1.1.4 ! root 2356: case 176:
! 2357: #line 1001 "c-parse.y"
1.1 root 2358: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2359: break;}
1.1.1.4 ! root 2360: case 177:
! 2361: #line 1003 "c-parse.y"
1.1 root 2362: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2363: break;}
1.1.1.4 ! root 2364: case 178:
! 2365: #line 1005 "c-parse.y"
1.1 root 2366: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2367: break;}
1.1.1.4 ! root 2368: case 180:
! 2369: #line 1016 "c-parse.y"
1.1 root 2370: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2371: break;}
1.1.1.4 ! root 2372: case 181:
! 2373: #line 1021 "c-parse.y"
1.1 root 2374: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2375: break;}
1.1.1.4 ! root 2376: case 182:
! 2377: #line 1023 "c-parse.y"
1.1 root 2378: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2379: break;}
1.1.1.4 ! root 2380: case 183:
! 2381: #line 1025 "c-parse.y"
1.1 root 2382: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2383: break;}
1.1.1.4 ! root 2384: case 185:
! 2385: #line 1034 "c-parse.y"
1.1 root 2386: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2387: break;}
1.1.1.4 ! root 2388: case 186:
! 2389: #line 1039 "c-parse.y"
1.1 root 2390: { yyval.ttype = yyvsp[-1].ttype; ;
2391: break;}
1.1.1.4 ! root 2392: case 187:
! 2393: #line 1041 "c-parse.y"
1.1 root 2394: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2395: break;}
1.1.1.4 ! root 2396: case 188:
! 2397: #line 1043 "c-parse.y"
1.1 root 2398: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2399: break;}
1.1.1.4 ! root 2400: case 189:
! 2401: #line 1045 "c-parse.y"
1.1 root 2402: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2403: break;}
1.1.1.4 ! root 2404: case 191:
! 2405: #line 1051 "c-parse.y"
1.1 root 2406: { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
2407: /* Start scope of tag before parsing components. */
2408: ;
2409: break;}
1.1.1.4 ! root 2410: case 192:
! 2411: #line 1055 "c-parse.y"
1.1 root 2412: { yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype);
2413: /* Really define the structure. */
2414: ;
2415: break;}
1.1.1.4 ! root 2416: case 193:
! 2417: #line 1059 "c-parse.y"
1.1 root 2418: { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
2419: yyvsp[-1].ttype); ;
2420: break;}
1.1.1.4 ! root 2421: case 194:
! 2422: #line 1062 "c-parse.y"
1.1 root 2423: { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
2424: break;}
1.1.1.4 ! root 2425: case 195:
! 2426: #line 1064 "c-parse.y"
1.1 root 2427: { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
2428: break;}
1.1.1.4 ! root 2429: case 196:
! 2430: #line 1066 "c-parse.y"
1.1 root 2431: { yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
2432: break;}
1.1.1.4 ! root 2433: case 197:
! 2434: #line 1068 "c-parse.y"
1.1 root 2435: { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
2436: yyvsp[-1].ttype); ;
2437: break;}
1.1.1.4 ! root 2438: case 198:
! 2439: #line 1071 "c-parse.y"
1.1 root 2440: { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
2441: break;}
1.1.1.4 ! root 2442: case 199:
! 2443: #line 1073 "c-parse.y"
1.1 root 2444: { yyvsp[0].itype = suspend_momentary ();
2445: yyval.ttype = start_enum (yyvsp[-1].ttype); ;
2446: break;}
1.1.1.4 ! root 2447: case 200:
! 2448: #line 1076 "c-parse.y"
1.1 root 2449: { yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
2450: resume_momentary (yyvsp[-4].itype); ;
2451: break;}
1.1.1.4 ! root 2452: case 201:
! 2453: #line 1079 "c-parse.y"
1.1 root 2454: { yyvsp[0].itype = suspend_momentary ();
2455: yyval.ttype = start_enum (NULL_TREE); ;
2456: break;}
1.1.1.4 ! root 2457: case 202:
! 2458: #line 1082 "c-parse.y"
1.1 root 2459: { yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
2460: resume_momentary (yyvsp[-4].itype); ;
2461: break;}
1.1.1.4 ! root 2462: case 203:
! 2463: #line 1085 "c-parse.y"
1.1 root 2464: { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
2465: break;}
1.1.1.4 ! root 2466: case 207:
! 2467: #line 1096 "c-parse.y"
1.1 root 2468: { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
2469: break;}
1.1.1.4 ! root 2470: case 208:
! 2471: #line 1101 "c-parse.y"
1.1 root 2472: { yyval.ttype = yyvsp[0].ttype; ;
2473: break;}
1.1.1.4 ! root 2474: case 209:
! 2475: #line 1103 "c-parse.y"
1.1 root 2476: { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
1.1.1.4 ! root 2477: pedwarn ("no semicolon at end of struct or union"); ;
1.1 root 2478: break;}
1.1.1.4 ! root 2479: case 210:
! 2480: #line 1108 "c-parse.y"
1.1 root 2481: { yyval.ttype = NULL_TREE; ;
2482: break;}
1.1.1.4 ! root 2483: case 211:
! 2484: #line 1110 "c-parse.y"
1.1 root 2485: { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
2486: break;}
1.1.1.4 ! root 2487: case 212:
! 2488: #line 1112 "c-parse.y"
1.1 root 2489: { if (pedantic)
2490: pedwarn ("extra semicolon in struct or union specified"); ;
2491: break;}
1.1.1.4 ! root 2492: case 213:
! 2493: #line 1127 "c-parse.y"
1.1 root 2494: { yyval.ttype = yyvsp[0].ttype;
2495: current_declspecs = TREE_VALUE (declspec_stack);
2496: declspec_stack = TREE_CHAIN (declspec_stack);
2497: resume_momentary (yyvsp[-1].itype); ;
2498: break;}
1.1.1.4 ! root 2499: case 214:
! 2500: #line 1132 "c-parse.y"
1.1 root 2501: { if (pedantic)
2502: pedwarn ("ANSI C forbids member declarations with no members");
2503: shadow_tag(yyvsp[0].ttype);
2504: yyval.ttype = NULL_TREE; ;
2505: break;}
1.1.1.4 ! root 2506: case 215:
! 2507: #line 1137 "c-parse.y"
1.1 root 2508: { yyval.ttype = yyvsp[0].ttype;
2509: current_declspecs = TREE_VALUE (declspec_stack);
2510: declspec_stack = TREE_CHAIN (declspec_stack);
2511: resume_momentary (yyvsp[-1].itype); ;
2512: break;}
1.1.1.4 ! root 2513: case 216:
! 2514: #line 1142 "c-parse.y"
1.1 root 2515: { if (pedantic)
2516: pedwarn ("ANSI C forbids member declarations with no members");
2517: shadow_tag(yyvsp[0].ttype);
2518: yyval.ttype = NULL_TREE; ;
2519: break;}
1.1.1.4 ! root 2520: case 217:
! 2521: #line 1147 "c-parse.y"
1.1 root 2522: { yyval.ttype = NULL_TREE; ;
2523: break;}
1.1.1.4 ! root 2524: case 219:
! 2525: #line 1153 "c-parse.y"
1.1 root 2526: { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2527: break;}
1.1.1.4 ! root 2528: case 220:
! 2529: #line 1158 "c-parse.y"
1.1 root 2530: { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
2531: decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
2532: break;}
1.1.1.4 ! root 2533: case 221:
! 2534: #line 1162 "c-parse.y"
1.1 root 2535: { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
2536: decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
2537: break;}
1.1.1.4 ! root 2538: case 222:
! 2539: #line 1165 "c-parse.y"
1.1 root 2540: { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, NULL_TREE, current_declspecs, yyvsp[0].ttype); ;
2541: break;}
1.1.1.4 ! root 2542: case 224:
! 2543: #line 1176 "c-parse.y"
1.1.1.3 root 2544: { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
1.1 root 2545: break;}
1.1.1.4 ! root 2546: case 225:
! 2547: #line 1182 "c-parse.y"
1.1.1.3 root 2548: { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
1.1 root 2549: break;}
1.1.1.4 ! root 2550: case 226:
! 2551: #line 1184 "c-parse.y"
1.1.1.3 root 2552: { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
1.1 root 2553: break;}
1.1.1.4 ! root 2554: case 227:
! 2555: #line 1189 "c-parse.y"
1.1 root 2556: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2557: break;}
1.1.1.4 ! root 2558: case 228:
! 2559: #line 1191 "c-parse.y"
1.1.1.3 root 2560: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2561: break;}
1.1.1.4 ! root 2562: case 229:
! 2563: #line 1196 "c-parse.y"
1.1 root 2564: { yyval.ttype = NULL_TREE; ;
2565: break;}
1.1.1.4 ! root 2566: case 231:
! 2567: #line 1202 "c-parse.y"
1.1 root 2568: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2569: break;}
1.1.1.4 ! root 2570: case 232:
! 2571: #line 1204 "c-parse.y"
1.1 root 2572: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2573: break;}
1.1.1.4 ! root 2574: case 233:
! 2575: #line 1209 "c-parse.y"
1.1 root 2576: { yyval.ttype = NULL_TREE; ;
2577: break;}
1.1.1.4 ! root 2578: case 234:
! 2579: #line 1211 "c-parse.y"
1.1 root 2580: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2581: break;}
1.1.1.4 ! root 2582: case 235:
! 2583: #line 1216 "c-parse.y"
1.1 root 2584: { yyval.ttype = yyvsp[-1].ttype; ;
2585: break;}
1.1.1.4 ! root 2586: case 236:
! 2587: #line 1219 "c-parse.y"
1.1 root 2588: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2589: break;}
1.1.1.4 ! root 2590: case 237:
! 2591: #line 1221 "c-parse.y"
1.1 root 2592: { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
2593: break;}
1.1.1.4 ! root 2594: case 238:
! 2595: #line 1223 "c-parse.y"
1.1 root 2596: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2597: break;}
1.1.1.4 ! root 2598: case 239:
! 2599: #line 1225 "c-parse.y"
1.1 root 2600: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2601: break;}
1.1.1.4 ! root 2602: case 240:
! 2603: #line 1227 "c-parse.y"
1.1 root 2604: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2605: break;}
1.1.1.4 ! root 2606: case 241:
! 2607: #line 1229 "c-parse.y"
1.1 root 2608: { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2609: break;}
1.1.1.4 ! root 2610: case 242:
! 2611: #line 1231 "c-parse.y"
1.1 root 2612: { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
2613: break;}
1.1.1.4 ! root 2614: case 243:
! 2615: #line 1233 "c-parse.y"
1.1 root 2616: { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
2617: break;}
1.1.1.4 ! root 2618: case 250:
! 2619: #line 1255 "c-parse.y"
1.1 root 2620: { emit_line_note (input_filename, lineno);
2621: pushlevel (0);
2622: clear_last_expr ();
2623: push_momentary ();
1.1.1.4 ! root 2624: expand_start_bindings (0);
! 2625: ;
1.1 root 2626: break;}
1.1.1.4 ! root 2627: case 252:
! 2628: #line 1268 "c-parse.y"
1.1 root 2629: { if (pedantic)
2630: pedwarn ("ANSI C forbids label declarations"); ;
2631: break;}
1.1.1.4 ! root 2632: case 255:
! 2633: #line 1279 "c-parse.y"
1.1 root 2634: { tree link;
2635: for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
2636: {
2637: tree label = shadow_label (TREE_VALUE (link));
2638: C_DECLARED_LABEL_FLAG (label) = 1;
2639: declare_nonlocal_label (label);
2640: }
2641: ;
2642: break;}
1.1.1.4 ! root 2643: case 256:
! 2644: #line 1293 "c-parse.y"
1.1 root 2645: {;
2646: break;}
1.1.1.4 ! root 2647: case 258:
! 2648: #line 1298 "c-parse.y"
1.1 root 2649: { yyval.ttype = convert (void_type_node, integer_zero_node); ;
2650: break;}
1.1.1.4 ! root 2651: case 259:
! 2652: #line 1300 "c-parse.y"
1.1 root 2653: { emit_line_note (input_filename, lineno);
2654: expand_end_bindings (getdecls (), 1, 0);
2655: yyval.ttype = poplevel (1, 1, 0);
2656: pop_momentary (); ;
2657: break;}
1.1.1.4 ! root 2658: case 260:
! 2659: #line 1305 "c-parse.y"
1.1 root 2660: { emit_line_note (input_filename, lineno);
2661: expand_end_bindings (getdecls (), kept_level_p (), 0);
2662: yyval.ttype = poplevel (kept_level_p (), 0, 0);
2663: pop_momentary (); ;
2664: break;}
1.1.1.4 ! root 2665: case 261:
! 2666: #line 1310 "c-parse.y"
1.1 root 2667: { emit_line_note (input_filename, lineno);
2668: expand_end_bindings (getdecls (), kept_level_p (), 0);
2669: yyval.ttype = poplevel (kept_level_p (), 0, 0);
2670: pop_momentary (); ;
2671: break;}
1.1.1.4 ! root 2672: case 264:
! 2673: #line 1327 "c-parse.y"
1.1 root 2674: { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
2675: expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
2676: yyvsp[-3].itype = stmt_count;
2677: if_stmt_file = yyvsp[-5].filename;
2678: if_stmt_line = yyvsp[-4].lineno;
2679: position_after_white_space (); ;
2680: break;}
1.1.1.4 ! root 2681: case 265:
! 2682: #line 1340 "c-parse.y"
1.1.1.3 root 2683: { stmt_count++;
2684: emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
2685: /* See comment in `while' alternative, above. */
2686: emit_nop ();
2687: expand_start_loop_continue_elsewhere (1);
2688: position_after_white_space (); ;
1.1 root 2689: break;}
1.1.1.4 ! root 2690: case 266:
! 2691: #line 1347 "c-parse.y"
1.1.1.3 root 2692: { expand_loop_continue_here (); ;
1.1 root 2693: break;}
1.1.1.4 ! root 2694: case 267:
! 2695: #line 1351 "c-parse.y"
1.1.1.3 root 2696: { yyval.filename = input_filename; ;
1.1 root 2697: break;}
1.1.1.4 ! root 2698: case 268:
! 2699: #line 1355 "c-parse.y"
1.1.1.3 root 2700: { yyval.lineno = lineno; ;
2701: break;}
1.1.1.4 ! root 2702: case 269:
! 2703: #line 1360 "c-parse.y"
1.1 root 2704: { ;
2705: break;}
1.1.1.4 ! root 2706: case 270:
! 2707: #line 1365 "c-parse.y"
1.1.1.3 root 2708: { ;
2709: break;}
1.1.1.4 ! root 2710: case 271:
! 2711: #line 1370 "c-parse.y"
1.1.1.3 root 2712: { ;
2713: break;}
1.1.1.4 ! root 2714: case 273:
! 2715: #line 1376 "c-parse.y"
1.1 root 2716: { int next;
2717: position_after_white_space ();
2718: next = getc (finput);
2719: ungetc (next, finput);
2720: if (pedantic && next == '}')
2721: pedwarn ("ANSI C forbids label at end of compound statement");
2722: ;
2723: break;}
1.1.1.4 ! root 2724: case 274:
! 2725: #line 1388 "c-parse.y"
1.1 root 2726: { stmt_count++; ;
2727: break;}
1.1.1.4 ! root 2728: case 275:
! 2729: #line 1390 "c-parse.y"
1.1 root 2730: { stmt_count++;
2731: emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
2732: c_expand_expr_stmt (yyvsp[-1].ttype);
2733: clear_momentary (); ;
2734: break;}
1.1.1.4 ! root 2735: case 276:
! 2736: #line 1395 "c-parse.y"
1.1 root 2737: { expand_start_else ();
2738: yyvsp[-1].itype = stmt_count;
2739: position_after_white_space (); ;
2740: break;}
1.1.1.4 ! root 2741: case 277:
! 2742: #line 1399 "c-parse.y"
1.1 root 2743: { expand_end_cond ();
2744: if (extra_warnings && stmt_count == yyvsp[-3].itype)
2745: warning ("empty body in an else-statement"); ;
2746: break;}
1.1.1.4 ! root 2747: case 278:
! 2748: #line 1403 "c-parse.y"
1.1 root 2749: { expand_end_cond ();
2750: if (extra_warnings && stmt_count == yyvsp[0].itype)
2751: warning_with_file_and_line (if_stmt_file, if_stmt_line,
2752: "empty body in an if-statement"); ;
2753: break;}
1.1.1.4 ! root 2754: case 279:
! 2755: #line 1411 "c-parse.y"
1.1 root 2756: { expand_end_cond (); ;
2757: break;}
1.1.1.4 ! root 2758: case 280:
! 2759: #line 1413 "c-parse.y"
1.1 root 2760: { stmt_count++;
2761: emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
2762: /* The emit_nop used to come before emit_line_note,
2763: but that made the nop seem like part of the preceding line.
2764: And that was confusing when the preceding line was
2765: inside of an if statement and was not really executed.
2766: I think it ought to work to put the nop after the line number.
2767: We will see. --rms, July 15, 1991. */
1.1.1.3 root 2768: emit_nop (); ;
1.1 root 2769: break;}
1.1.1.4 ! root 2770: case 281:
! 2771: #line 1423 "c-parse.y"
1.1.1.3 root 2772: { /* Don't start the loop till we have succeeded
2773: in parsing the end test. This is to make sure
2774: that we end every loop we start. */
2775: expand_start_loop (1);
2776: emit_line_note (input_filename, lineno);
1.1.1.4 ! root 2777: expand_exit_loop_if_false (NULL_PTR,
! 2778: truthvalue_conversion (yyvsp[-1].ttype));
1.1 root 2779: position_after_white_space (); ;
2780: break;}
1.1.1.4 ! root 2781: case 282:
! 2782: #line 1432 "c-parse.y"
1.1 root 2783: { expand_end_loop (); ;
2784: break;}
1.1.1.4 ! root 2785: case 283:
! 2786: #line 1435 "c-parse.y"
1.1 root 2787: { emit_line_note (input_filename, lineno);
1.1.1.4 ! root 2788: expand_exit_loop_if_false (NULL_PTR,
! 2789: truthvalue_conversion (yyvsp[-2].ttype));
1.1 root 2790: expand_end_loop ();
2791: clear_momentary (); ;
2792: break;}
1.1.1.4 ! root 2793: case 284:
! 2794: #line 1442 "c-parse.y"
1.1.1.3 root 2795: { expand_end_loop ();
2796: clear_momentary (); ;
2797: break;}
1.1.1.4 ! root 2798: case 285:
! 2799: #line 1446 "c-parse.y"
1.1 root 2800: { stmt_count++;
2801: emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
2802: /* See comment in `while' alternative, above. */
2803: emit_nop ();
2804: if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
1.1.1.3 root 2805: /* Next step is to call expand_start_loop_continue_elsewhere,
2806: but wait till after we parse the entire for (...).
2807: Otherwise, invalid input might cause us to call that
2808: fn without calling expand_end_loop. */
2809: ;
1.1 root 2810: break;}
1.1.1.4 ! root 2811: case 286:
! 2812: #line 1458 "c-parse.y"
1.1.1.3 root 2813: { yyvsp[0].lineno = lineno;
2814: yyval.filename = input_filename; ;
1.1 root 2815: break;}
1.1.1.4 ! root 2816: case 287:
! 2817: #line 1461 "c-parse.y"
1.1.1.3 root 2818: {
2819: /* Start the loop. Doing this after parsing
2820: all the expressions ensures we will end the loop. */
2821: expand_start_loop_continue_elsewhere (1);
2822: /* Emit the end-test, with a line number. */
2823: emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
2824: if (yyvsp[-4].ttype)
1.1.1.4 ! root 2825: expand_exit_loop_if_false (NULL_PTR,
! 2826: truthvalue_conversion (yyvsp[-4].ttype));
1.1.1.3 root 2827: /* Don't let the tree nodes for $9 be discarded by
2828: clear_momentary during the parsing of the next stmt. */
2829: push_momentary ();
1.1.1.4 ! root 2830: yyvsp[-3].lineno = lineno;
! 2831: yyvsp[-2].filename = input_filename; ;
1.1 root 2832: break;}
1.1.1.4 ! root 2833: case 288:
! 2834: #line 1476 "c-parse.y"
! 2835: { /* Emit the increment expression, with a line number. */
! 2836: emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
1.1 root 2837: expand_loop_continue_here ();
2838: if (yyvsp[-3].ttype)
2839: c_expand_expr_stmt (yyvsp[-3].ttype);
2840: pop_momentary ();
2841: expand_end_loop (); ;
2842: break;}
1.1.1.4 ! root 2843: case 289:
! 2844: #line 1484 "c-parse.y"
1.1 root 2845: { stmt_count++;
2846: emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
2847: c_expand_start_case (yyvsp[-1].ttype);
2848: /* Don't let the tree nodes for $3 be discarded by
2849: clear_momentary during the parsing of the next stmt. */
2850: push_momentary ();
2851: position_after_white_space (); ;
2852: break;}
1.1.1.4 ! root 2853: case 290:
! 2854: #line 1492 "c-parse.y"
1.1 root 2855: { expand_end_case (yyvsp[-3].ttype);
2856: pop_momentary (); ;
2857: break;}
1.1.1.4 ! root 2858: case 291:
! 2859: #line 1495 "c-parse.y"
1.1 root 2860: { stmt_count++;
2861: emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
2862: if ( ! expand_exit_something ())
2863: error ("break statement not within loop or switch"); ;
2864: break;}
1.1.1.4 ! root 2865: case 292:
! 2866: #line 1500 "c-parse.y"
1.1 root 2867: { stmt_count++;
2868: emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
1.1.1.4 ! root 2869: if (! expand_continue_loop (NULL_PTR))
1.1 root 2870: error ("continue statement not within a loop"); ;
2871: break;}
1.1.1.4 ! root 2872: case 293:
! 2873: #line 1505 "c-parse.y"
1.1 root 2874: { stmt_count++;
2875: emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
2876: c_expand_return (NULL_TREE); ;
2877: break;}
1.1.1.4 ! root 2878: case 294:
! 2879: #line 1509 "c-parse.y"
1.1 root 2880: { stmt_count++;
2881: emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
2882: c_expand_return (yyvsp[-1].ttype); ;
2883: break;}
1.1.1.4 ! root 2884: case 295:
! 2885: #line 1513 "c-parse.y"
1.1 root 2886: { stmt_count++;
2887: emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
2888: STRIP_NOPS (yyvsp[-2].ttype);
2889: if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
2890: && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
2891: || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
2892: expand_asm (yyvsp[-2].ttype);
2893: else
2894: error ("argument of `asm' is not a constant string"); ;
2895: break;}
1.1.1.4 ! root 2896: case 296:
! 2897: #line 1524 "c-parse.y"
1.1 root 2898: { stmt_count++;
2899: emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
2900: c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
2901: yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
2902: input_filename, lineno); ;
2903: break;}
1.1.1.4 ! root 2904: case 297:
! 2905: #line 1531 "c-parse.y"
1.1 root 2906: { stmt_count++;
2907: emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
2908: c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
2909: yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
2910: input_filename, lineno); ;
2911: break;}
1.1.1.4 ! root 2912: case 298:
! 2913: #line 1539 "c-parse.y"
1.1 root 2914: { stmt_count++;
2915: emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
2916: c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
2917: yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
2918: input_filename, lineno); ;
2919: break;}
1.1.1.4 ! root 2920: case 299:
! 2921: #line 1545 "c-parse.y"
1.1 root 2922: { tree decl;
2923: stmt_count++;
2924: emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
2925: decl = lookup_label (yyvsp[-1].ttype);
2926: if (decl != 0)
2927: {
2928: TREE_USED (decl) = 1;
2929: expand_goto (decl);
2930: }
2931: ;
2932: break;}
1.1.1.4 ! root 2933: case 300:
! 2934: #line 1556 "c-parse.y"
1.1 root 2935: { stmt_count++;
2936: emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
1.1.1.4 ! root 2937: expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
1.1 root 2938: break;}
1.1.1.4 ! root 2939: case 302:
! 2940: #line 1567 "c-parse.y"
1.1 root 2941: { register tree value = check_case_value (yyvsp[-1].ttype);
2942: register tree label
2943: = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
2944:
2945: stmt_count++;
2946:
2947: if (value != error_mark_node)
2948: {
2949: tree duplicate;
2950: int success = pushcase (value, label, &duplicate);
2951: if (success == 1)
2952: error ("case label not within a switch statement");
2953: else if (success == 2)
2954: {
2955: error ("duplicate case value");
2956: error_with_decl (duplicate, "this is the first entry for that value");
2957: }
2958: else if (success == 3)
2959: warning ("case value out of range");
2960: else if (success == 5)
2961: error ("case label within scope of cleanup or variable array");
2962: }
2963: position_after_white_space (); ;
2964: break;}
1.1.1.4 ! root 2965: case 303:
! 2966: #line 1591 "c-parse.y"
1.1 root 2967: { register tree value1 = check_case_value (yyvsp[-3].ttype);
2968: register tree value2 = check_case_value (yyvsp[-1].ttype);
2969: register tree label
2970: = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
2971:
2972: stmt_count++;
2973:
2974: if (value1 != error_mark_node && value2 != error_mark_node)
2975: {
2976: tree duplicate;
2977: int success = pushcase_range (value1, value2, label,
2978: &duplicate);
2979: if (success == 1)
2980: error ("case label not within a switch statement");
2981: else if (success == 2)
2982: {
2983: error ("duplicate case value");
2984: error_with_decl (duplicate, "this is the first entry for that value");
2985: }
2986: else if (success == 3)
2987: warning ("case value out of range");
2988: else if (success == 4)
2989: warning ("empty case range");
2990: else if (success == 5)
2991: error ("case label within scope of cleanup or variable array");
2992: }
2993: position_after_white_space (); ;
2994: break;}
1.1.1.4 ! root 2995: case 304:
! 2996: #line 1619 "c-parse.y"
1.1 root 2997: {
2998: tree duplicate;
2999: register tree label
3000: = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3001: int success = pushcase (NULL_TREE, label, &duplicate);
3002: stmt_count++;
3003: if (success == 1)
3004: error ("default label not within a switch statement");
3005: else if (success == 2)
3006: {
3007: error ("multiple default labels in one switch");
3008: error_with_decl (duplicate, "this is the first default label");
3009: }
3010: position_after_white_space (); ;
3011: break;}
1.1.1.4 ! root 3012: case 305:
! 3013: #line 1634 "c-parse.y"
1.1 root 3014: { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
3015: stmt_count++;
3016: emit_nop ();
3017: if (label)
3018: expand_label (label);
3019: position_after_white_space (); ;
3020: break;}
1.1.1.4 ! root 3021: case 306:
! 3022: #line 1646 "c-parse.y"
1.1 root 3023: { emit_line_note (input_filename, lineno); ;
3024: break;}
1.1.1.4 ! root 3025: case 307:
! 3026: #line 1648 "c-parse.y"
1.1 root 3027: { emit_line_note (input_filename, lineno); ;
3028: break;}
1.1.1.4 ! root 3029: case 308:
! 3030: #line 1653 "c-parse.y"
1.1 root 3031: { yyval.ttype = NULL_TREE; ;
3032: break;}
1.1.1.4 ! root 3033: case 310:
! 3034: #line 1660 "c-parse.y"
1.1 root 3035: { yyval.ttype = NULL_TREE; ;
3036: break;}
1.1.1.4 ! root 3037: case 313:
! 3038: #line 1667 "c-parse.y"
1.1 root 3039: { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3040: break;}
1.1.1.4 ! root 3041: case 314:
! 3042: #line 1672 "c-parse.y"
1.1 root 3043: { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3044: break;}
1.1.1.4 ! root 3045: case 315:
! 3046: #line 1677 "c-parse.y"
1.1 root 3047: { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
3048: break;}
1.1.1.4 ! root 3049: case 316:
! 3050: #line 1679 "c-parse.y"
1.1 root 3051: { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
3052: break;}
1.1.1.4 ! root 3053: case 317:
! 3054: #line 1685 "c-parse.y"
1.1 root 3055: { pushlevel (0);
3056: clear_parm_order ();
3057: declare_parm_level (0); ;
3058: break;}
1.1.1.4 ! root 3059: case 318:
! 3060: #line 1689 "c-parse.y"
1.1 root 3061: { yyval.ttype = yyvsp[0].ttype;
3062: parmlist_tags_warning ();
3063: poplevel (0, 0, 0); ;
3064: break;}
1.1.1.4 ! root 3065: case 320:
! 3066: #line 1697 "c-parse.y"
1.1 root 3067: { tree parm;
1.1.1.3 root 3068: if (pedantic)
3069: pedwarn ("ANSI C forbids forward parameter declarations");
1.1 root 3070: /* Mark the forward decls as such. */
3071: for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
3072: TREE_ASM_WRITTEN (parm) = 1;
3073: clear_parm_order (); ;
3074: break;}
1.1.1.4 ! root 3075: case 321:
! 3076: #line 1705 "c-parse.y"
1.1 root 3077: { yyval.ttype = yyvsp[0].ttype; ;
3078: break;}
1.1.1.4 ! root 3079: case 322:
! 3080: #line 1707 "c-parse.y"
1.1 root 3081: { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
3082: break;}
1.1.1.4 ! root 3083: case 323:
! 3084: #line 1713 "c-parse.y"
1.1 root 3085: { yyval.ttype = get_parm_info (0); ;
3086: break;}
1.1.1.4 ! root 3087: case 324:
! 3088: #line 1715 "c-parse.y"
1.1 root 3089: { yyval.ttype = get_parm_info (0);
3090: if (pedantic)
3091: pedwarn ("ANSI C requires a named argument before `...'");
3092: ;
3093: break;}
1.1.1.4 ! root 3094: case 325:
! 3095: #line 1720 "c-parse.y"
1.1 root 3096: { yyval.ttype = get_parm_info (1); ;
3097: break;}
1.1.1.4 ! root 3098: case 326:
! 3099: #line 1722 "c-parse.y"
1.1 root 3100: { yyval.ttype = get_parm_info (0); ;
3101: break;}
1.1.1.4 ! root 3102: case 327:
! 3103: #line 1727 "c-parse.y"
1.1 root 3104: { push_parm_decl (yyvsp[0].ttype); ;
3105: break;}
1.1.1.4 ! root 3106: case 328:
! 3107: #line 1729 "c-parse.y"
1.1 root 3108: { push_parm_decl (yyvsp[0].ttype); ;
3109: break;}
1.1.1.4 ! root 3110: case 329:
! 3111: #line 1736 "c-parse.y"
1.1 root 3112: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ;
3113: break;}
1.1.1.4 ! root 3114: case 330:
! 3115: #line 1738 "c-parse.y"
1.1 root 3116: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ;
3117: break;}
1.1.1.4 ! root 3118: case 331:
! 3119: #line 1740 "c-parse.y"
1.1 root 3120: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3121: break;}
1.1.1.4 ! root 3122: case 332:
! 3123: #line 1742 "c-parse.y"
1.1 root 3124: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ;
3125: break;}
1.1.1.4 ! root 3126: case 333:
! 3127: #line 1744 "c-parse.y"
1.1 root 3128: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3129: break;}
1.1.1.4 ! root 3130: case 334:
! 3131: #line 1751 "c-parse.y"
1.1 root 3132: { pushlevel (0);
3133: clear_parm_order ();
3134: declare_parm_level (1); ;
3135: break;}
1.1.1.4 ! root 3136: case 335:
! 3137: #line 1755 "c-parse.y"
1.1 root 3138: { yyval.ttype = yyvsp[0].ttype;
3139: parmlist_tags_warning ();
3140: poplevel (0, 0, 0); ;
3141: break;}
1.1.1.4 ! root 3142: case 337:
! 3143: #line 1763 "c-parse.y"
1.1 root 3144: { tree t;
3145: for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
3146: if (TREE_VALUE (t) == NULL_TREE)
3147: error ("`...' in old-style identifier list");
3148: yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
3149: break;}
1.1.1.4 ! root 3150: case 338:
! 3151: #line 1773 "c-parse.y"
1.1 root 3152: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3153: break;}
1.1.1.4 ! root 3154: case 339:
! 3155: #line 1775 "c-parse.y"
1.1 root 3156: { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3157: break;}
1.1.1.4 ! root 3158: case 340:
! 3159: #line 1781 "c-parse.y"
1.1 root 3160: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3161: break;}
1.1.1.4 ! root 3162: case 341:
! 3163: #line 1783 "c-parse.y"
1.1 root 3164: { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3165: break;}
3166: }
3167: /* the action file gets copied in in place of this dollarsign */
3168: #line 440 "bison.simple"
3169:
3170: yyvsp -= yylen;
3171: yyssp -= yylen;
3172: #ifdef YYLSP_NEEDED
3173: yylsp -= yylen;
3174: #endif
3175:
3176: #if YYDEBUG != 0
3177: if (yydebug)
3178: {
3179: short *ssp1 = yyss - 1;
3180: fprintf (stderr, "state stack now");
3181: while (ssp1 != yyssp)
3182: fprintf (stderr, " %d", *++ssp1);
3183: fprintf (stderr, "\n");
3184: }
3185: #endif
3186:
3187: *++yyvsp = yyval;
3188:
3189: #ifdef YYLSP_NEEDED
3190: yylsp++;
3191: if (yylen == 0)
3192: {
3193: yylsp->first_line = yylloc.first_line;
3194: yylsp->first_column = yylloc.first_column;
3195: yylsp->last_line = (yylsp-1)->last_line;
3196: yylsp->last_column = (yylsp-1)->last_column;
3197: yylsp->text = 0;
3198: }
3199: else
3200: {
3201: yylsp->last_line = (yylsp+yylen-1)->last_line;
3202: yylsp->last_column = (yylsp+yylen-1)->last_column;
3203: }
3204: #endif
3205:
3206: /* Now "shift" the result of the reduction.
3207: Determine what state that goes to,
3208: based on the state we popped back to
3209: and the rule number reduced by. */
3210:
3211: yyn = yyr1[yyn];
3212:
3213: yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3214: if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3215: yystate = yytable[yystate];
3216: else
3217: yystate = yydefgoto[yyn - YYNTBASE];
3218:
3219: goto yynewstate;
3220:
3221: yyerrlab: /* here on detecting error */
3222:
3223: if (! yyerrstatus)
3224: /* If not already recovering from an error, report this error. */
3225: {
3226: ++yynerrs;
3227:
3228: #ifdef YYERROR_VERBOSE
3229: yyn = yypact[yystate];
3230:
3231: if (yyn > YYFLAG && yyn < YYLAST)
3232: {
3233: int size = 0;
3234: char *msg;
3235: int x, count;
3236:
3237: count = 0;
3238: for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
3239: if (yycheck[x + yyn] == x)
3240: size += strlen(yytname[x]) + 15, count++;
1.1.1.3 root 3241: msg = (char *) malloc(size + 15);
3242: if (msg != 0)
1.1.1.2 root 3243: {
1.1.1.3 root 3244: strcpy(msg, "parse error");
3245:
3246: if (count < 5)
3247: {
3248: count = 0;
3249: for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
3250: if (yycheck[x + yyn] == x)
3251: {
3252: strcat(msg, count == 0 ? ", expecting `" : " or `");
3253: strcat(msg, yytname[x]);
3254: strcat(msg, "'");
3255: count++;
3256: }
3257: }
3258: yyerror(msg);
3259: free(msg);
1.1 root 3260: }
1.1.1.3 root 3261: else
3262: yyerror ("parse error; also virtual memory exceeded");
1.1 root 3263: }
3264: else
3265: #endif /* YYERROR_VERBOSE */
3266: yyerror("parse error");
3267: }
3268:
3269: yyerrlab1: /* here on error raised explicitly by an action */
3270:
3271: if (yyerrstatus == 3)
3272: {
3273: /* if just tried and failed to reuse lookahead token after an error, discard it. */
3274:
3275: /* return failure if at end of input */
3276: if (yychar == YYEOF)
3277: YYABORT;
3278:
3279: #if YYDEBUG != 0
3280: if (yydebug)
3281: fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3282: #endif
3283:
3284: yychar = YYEMPTY;
3285: }
3286:
3287: /* Else will try to reuse lookahead token
3288: after shifting the error token. */
3289:
3290: yyerrstatus = 3; /* Each real token shifted decrements this */
3291:
3292: goto yyerrhandle;
3293:
3294: yyerrdefault: /* current state does not do anything special for the error token. */
3295:
3296: #if 0
3297: /* This is wrong; only states that explicitly want error tokens
3298: should shift them. */
3299: yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3300: if (yyn) goto yydefault;
3301: #endif
3302:
3303: yyerrpop: /* pop the current state because it cannot handle the error token */
3304:
3305: if (yyssp == yyss) YYABORT;
3306: yyvsp--;
3307: yystate = *--yyssp;
3308: #ifdef YYLSP_NEEDED
3309: yylsp--;
3310: #endif
3311:
3312: #if YYDEBUG != 0
3313: if (yydebug)
3314: {
3315: short *ssp1 = yyss - 1;
3316: fprintf (stderr, "Error: state stack now");
3317: while (ssp1 != yyssp)
3318: fprintf (stderr, " %d", *++ssp1);
3319: fprintf (stderr, "\n");
3320: }
3321: #endif
3322:
3323: yyerrhandle:
3324:
3325: yyn = yypact[yystate];
3326: if (yyn == YYFLAG)
3327: goto yyerrdefault;
3328:
3329: yyn += YYTERROR;
3330: if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3331: goto yyerrdefault;
3332:
3333: yyn = yytable[yyn];
3334: if (yyn < 0)
3335: {
3336: if (yyn == YYFLAG)
3337: goto yyerrpop;
3338: yyn = -yyn;
3339: goto yyreduce;
3340: }
3341: else if (yyn == 0)
3342: goto yyerrpop;
3343:
3344: if (yyn == YYFINAL)
3345: YYACCEPT;
3346:
3347: #if YYDEBUG != 0
3348: if (yydebug)
3349: fprintf(stderr, "Shifting error token, ");
3350: #endif
3351:
3352: *++yyvsp = yylval;
3353: #ifdef YYLSP_NEEDED
3354: *++yylsp = yylloc;
3355: #endif
3356:
3357: yystate = yyn;
3358: goto yynewstate;
3359: }
1.1.1.4 ! root 3360: #line 1786 "c-parse.y"
1.1 root 3361:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.