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