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