/* A Bison parser, made from c-parse.y */
#define YYBISON 1 /* Identify Bison output. */
#define IMPLEMENTATION 304
/* Since parsers are distinct for each language, put the language string
char *language_string
= "GNU C";
/* Like YYERROR but do call yyerror. */
#define YYERROR1 { yyerror ("syntax error"); YYERROR; }
/* Cause the `yydebug' variable to be defined. */
typedef union {long itype
; tree ttype
; enum tree_code code
;
char *filename
; int lineno
; } YYSTYPE
;
/* Number of statements (loosely speaking) seen so far. */
/* Input file and line number of the end of the body of last simple_if;
used by the stmt-rule immediately after simple_if returns. */
static char *if_stmt_file
;
/* List of types and structure classes of the current declaration. */
static tree current_declspecs
;
/* Stack of saved values of current_declspecs. */
static tree declspec_stack
;
/* 1 if we explained undeclared var errors. */
static int undeclared_variable_notice
;
/* Tell yyparse how to print a token's value, if yydebug is set. */
#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
#define YYTRANSLATE(x) ((unsigned)(x) <= 317 ? yytranslate[x] : 212)
static const char yytranslate
[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 81, 2, 2, 2, 53, 44, 2, 60,
77, 51, 49, 82, 50, 59, 52, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 39, 78, 2,
37, 2, 38, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
61, 2, 84, 43, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 83, 42, 79, 80, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 40, 41, 45, 46, 47, 48, 54, 55, 56,
57, 58, 62, 63, 64, 65, 66, 67, 68, 69,
70, 71, 72, 73, 74, 75, 76
static const short yyprhs
[] = { 0,
0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
26, 31, 36, 39, 42, 45, 48, 50, 51, 52,
60, 65, 66, 67, 75, 80, 81, 82, 89, 93,
95, 97, 99, 101, 103, 105, 107, 109, 111, 113,
114, 116, 118, 122, 124, 127, 128, 132, 135, 138,
141, 146, 149, 154, 157, 160, 162, 167, 175, 177,
181, 185, 189, 193, 197, 201, 205, 209, 213, 217,
221, 225, 229, 233, 239, 243, 247, 249, 251, 253,
257, 261, 262, 267, 272, 277, 281, 285, 288, 291,
293, 296, 297, 299, 302, 306, 308, 310, 313, 316,
321, 326, 329, 332, 336, 338, 340, 343, 346, 347,
352, 357, 361, 365, 368, 371, 374, 378, 379, 382,
385, 387, 389, 392, 395, 398, 402, 403, 406, 408,
410, 412, 417, 422, 424, 426, 428, 430, 434, 436,
440, 441, 446, 447, 454, 458, 459, 466, 470, 471,
478, 480, 484, 486, 491, 496, 505, 507, 510, 514,
519, 521, 523, 527, 534, 543, 548, 555, 559, 565,
566, 570, 571, 575, 577, 579, 583, 587, 592, 596,
600, 602, 606, 611, 615, 619, 621, 625, 629, 633,
638, 642, 644, 645, 652, 657, 660, 661, 668, 673,
676, 677, 685, 686, 693, 696, 697, 699, 700, 702,
704, 707, 708, 712, 715, 719, 721, 725, 727, 729,
731, 735, 740, 747, 753, 755, 759, 761, 765, 768,
771, 772, 774, 776, 779, 780, 783, 787, 791, 794,
798, 803, 807, 810, 814, 817, 819, 822, 825, 826,
828, 831, 832, 833, 835, 837, 840, 844, 846, 849,
852, 859, 865, 871, 874, 877, 882, 883, 888, 889,
890, 894, 899, 903, 905, 907, 909, 911, 914, 915,
920, 922, 926, 927, 928, 936, 942, 945, 946, 947,
948, 961, 962, 969, 972, 975, 978, 982, 989, 998,
1009, 1022, 1026, 1031, 1033, 1035, 1036, 1043, 1047, 1053,
1056, 1059, 1060, 1062, 1063, 1065, 1066, 1068, 1070, 1074,
1079, 1081, 1085, 1086, 1089, 1092, 1093, 1098, 1101, 1102,
1104, 1106, 1110, 1112, 1116, 1119, 1122, 1125, 1128, 1131,
1132, 1135, 1137, 1140, 1142, 1146, 1148
static const short yyrhs
[] = { -1,
86, 0, 0, 87, 89, 0, 0, 86, 88, 89,
0, 91, 0, 90, 0, 27, 60, 100, 77, 78,
0, 116, 126, 78, 0, 120, 116, 126, 78, 0,
118, 116, 125, 78, 0, 120, 78, 0, 118, 78,
0, 1, 78, 0, 1, 79, 0, 78, 0, 0,
0, 118, 116, 141, 92, 110, 93, 171, 0, 118,
116, 141, 1, 0, 0, 0, 120, 116, 144, 94,
110, 95, 171, 0, 120, 116, 144, 1, 0, 0,
0, 116, 144, 96, 110, 97, 171, 0, 116, 144,
1, 0, 3, 0, 4, 0, 44, 0, 50, 0,
49, 0, 55, 0, 56, 0, 80, 0, 81, 0,
102, 0, 0, 102, 0, 106, 0, 102, 82, 106,
0, 107, 0, 51, 105, 0, 0, 32, 104, 105,
0, 99, 105, 0, 41, 98, 0, 11, 103, 0,
11, 60, 159, 77, 0, 29, 103, 0, 29, 60,
159, 77, 0, 34, 105, 0, 35, 105, 0, 103,
0, 60, 159, 77, 105, 0, 60, 159, 77, 83,
136, 150, 79, 0, 105, 0, 106, 49, 106, 0,
106, 50, 106, 0, 106, 51, 106, 0, 106, 52,
106, 0, 106, 53, 106, 0, 106, 47, 106, 0,
106, 48, 106, 0, 106, 46, 106, 0, 106, 45,
106, 0, 106, 44, 106, 0, 106, 42, 106, 0,
106, 43, 106, 0, 106, 41, 106, 0, 106, 40,
106, 0, 106, 38, 195, 39, 106, 0, 106, 37,
106, 0, 106, 36, 106, 0, 3, 0, 8, 0,
109, 0, 60, 100, 77, 0, 60, 1, 77, 0,
0, 60, 108, 172, 77, 0, 107, 60, 101, 77,
0, 107, 61, 100, 84, 0, 107, 59, 98, 0,
107, 58, 98, 0, 107, 55, 0, 107, 56, 0,
9, 0, 109, 9, 0, 0, 112, 0, 112, 10,
0, 177, 178, 113, 0, 111, 0, 166, 0, 112,
111, 0, 111, 166, 0, 118, 116, 125, 78, 0,
120, 116, 126, 78, 0, 118, 78, 0, 120, 78,
0, 177, 178, 117, 0, 114, 0, 166, 0, 115,
114, 0, 114, 166, 0, 0, 118, 116, 125, 78,
0, 120, 116, 126, 78, 0, 118, 116, 137, 0,
120, 116, 139, 0, 118, 78, 0, 120, 78, 0,
123, 119, 0, 120, 123, 119, 0, 0, 119, 124,
0, 119, 5, 0, 7, 0, 5, 0, 120, 7,
0, 120, 5, 0, 123, 122, 0, 161, 123, 122,
0, 0, 122, 124, 0, 6, 0, 145, 0, 4,
0, 28, 60, 100, 77, 0, 28, 60, 159, 77,
0, 6, 0, 7, 0, 145, 0, 128, 0, 125,
82, 128, 0, 130, 0, 126, 82, 128, 0, 0,
27, 60, 109, 77, 0, 0, 141, 127, 132, 37,
129, 135, 0, 141, 127, 132, 0, 0, 144, 127,
132, 37, 131, 135, 0, 144, 127, 132, 0, 0,
31, 60, 60, 133, 77, 77, 0, 134, 0, 133,
82, 134, 0, 3, 0, 3, 60, 3, 77, 0,
3, 60, 8, 77, 0, 3, 60, 3, 82, 8,
82, 8, 77, 0, 106, 0, 83, 79, 0, 83,
136, 79, 0, 83, 136, 82, 79, 0, 1, 0,
135, 0, 136, 82, 135, 0, 61, 106, 10, 106,
84, 135, 0, 136, 82, 61, 106, 10, 106, 84,
135, 0, 61, 106, 84, 135, 0, 136, 82, 61,
106, 84, 135, 0, 98, 39, 135, 0, 136, 82,
98, 39, 135, 0, 0, 141, 138, 172, 0, 0,
144, 140, 172, 0, 142, 0, 144, 0, 60, 142,
77, 0, 142, 60, 207, 0, 142, 61, 100, 84,
0, 142, 61, 84, 0, 51, 162, 142, 0, 4,
0, 143, 60, 207, 0, 143, 61, 100, 84, 0,
143, 61, 84, 0, 51, 162, 143, 0, 4, 0,
144, 60, 207, 0, 60, 144, 77, 0, 51, 162,
144, 0, 144, 61, 100, 84, 0, 144, 61, 84,
0, 3, 0, 0, 13, 98, 83, 146, 152, 79,
0, 13, 83, 152, 79, 0, 13, 98, 0, 0,
14, 98, 83, 147, 152, 79, 0, 14, 83, 152,
79, 0, 14, 98, 0, 0, 12, 98, 83, 148,
157, 151, 79, 0, 0, 12, 83, 149, 157, 151,
79, 0, 12, 98, 0, 0, 82, 0, 0, 82,
0, 153, 0, 153, 154, 0, 0, 153, 154, 78,
0, 153, 78, 0, 121, 116, 155, 0, 121, 0,
161, 116, 155, 0, 161, 0, 1, 0, 156, 0,
155, 82, 156, 0, 177, 178, 141, 132, 0, 177,
178, 141, 39, 106, 132, 0, 177, 178, 39, 106,
132, 0, 158, 0, 157, 82, 158, 0, 98, 0,
98, 37, 106, 0, 121, 160, 0, 161, 160, 0,
0, 163, 0, 7, 0, 161, 7, 0, 0, 162,
7, 0, 60, 163, 77, 0, 51, 162, 163, 0,
51, 162, 0, 163, 60, 200, 0, 163, 61, 100,
84, 0, 163, 61, 84, 0, 60, 200, 0, 61,
100, 84, 0, 61, 84, 0, 180, 0, 164, 180,
0, 164, 166, 0, 0, 164, 0, 1, 78, 0,
0, 0, 169, 0, 170, 0, 169, 170, 0, 33,
211, 78, 0, 172, 0, 1, 172, 0, 83, 79,
0, 83, 167, 168, 115, 165, 79, 0, 83, 167,
168, 1, 79, 0, 83, 167, 168, 164, 79, 0,
174, 179, 0, 174, 1, 0, 15, 60, 100, 77,
0, 0, 18, 176, 179, 17, 0, 0, 0, 177,
178, 182, 0, 177, 178, 193, 179, 0, 177, 178,
181, 0, 182, 0, 193, 0, 172, 0, 190, 0,
100, 78, 0, 0, 173, 16, 183, 179, 0, 173,
0, 173, 16, 1, 0, 0, 0, 17, 184, 60,
100, 77, 185, 179, 0, 175, 60, 100, 77, 78,
0, 175, 1, 0, 0, 0, 0, 19, 60, 195,
78, 186, 195, 78, 187, 195, 77, 188, 179, 0,
0, 20, 60, 100, 77, 189, 179, 0, 23, 78,
0, 24, 78, 0, 25, 78, 0, 25, 100, 78,
0, 27, 194, 60, 100, 77, 78, 0, 27, 194,
60, 100, 39, 196, 77, 78, 0, 27, 194, 60,
100, 39, 196, 39, 196, 77, 78, 0, 27, 194,
60, 100, 39, 196, 39, 196, 39, 199, 77, 78,
0, 26, 98, 78, 0, 26, 51, 100, 78, 0,
78, 0, 191, 0, 0, 19, 60, 107, 77, 192,
179, 0, 21, 106, 39, 0, 21, 106, 10, 106,
39, 0, 22, 39, 0, 98, 39, 0, 0, 7,
0, 0, 100, 0, 0, 197, 0, 198, 0, 197,
82, 198, 0, 9, 60, 100, 77, 0, 109, 0,
199, 82, 109, 0, 0, 201, 202, 0, 204, 77,
0, 0, 205, 78, 203, 202, 0, 1, 77, 0,
0, 10, 0, 205, 0, 205, 82, 10, 0, 206,
0, 205, 82, 206, 0, 118, 143, 0, 118, 144,
0, 118, 160, 0, 120, 144, 0, 120, 160, 0,
0, 208, 209, 0, 202, 0, 210, 77, 0, 3,
0, 210, 82, 3, 0, 98, 0, 211, 82, 98,
static const short yyrline
[] = { 0,
218, 222, 235, 237, 237, 238, 240, 242, 243, 253,
259, 261, 263, 265, 267, 268, 269, 274, 280, 282,
283, 285, 290, 292, 293, 295, 300, 302, 303, 307,
309, 312, 314, 316, 318, 320, 322, 324, 328, 332,
335, 338, 341, 345, 347, 350, 353, 356, 360, 386,
391, 393, 395, 397, 399, 403, 405, 408, 433, 435,
437, 439, 441, 443, 445, 447, 449, 451, 453, 455,
457, 459, 461, 463, 465, 468, 474, 575, 576, 578,
584, 586, 600, 618, 620, 622, 626, 632, 634, 639,
641, 646, 648, 649, 659, 664, 666, 667, 668, 671,
676, 680, 683, 691, 696, 698, 699, 700, 707, 715,
720, 724, 728, 732, 734, 742, 745, 749, 751, 753,
764, 768, 770, 773, 786, 789, 793, 795, 803, 804,
805, 809, 811, 817, 818, 819, 822, 824, 827, 829,
832, 835, 841, 846, 848, 854, 859, 861, 868, 871,
876, 878, 883, 888, 898, 909, 927, 929, 933, 935,
937, 943, 946, 951, 955, 960, 962, 964, 966, 970,
987, 991, 1008, 1015, 1017, 1022, 1025, 1030, 1032, 1034,
1036, 1044, 1050, 1052, 1054, 1056, 1062, 1068, 1070, 1072,
1074, 1076, 1079, 1084, 1088, 1091, 1093, 1095, 1097, 1100,
1102, 1105, 1108, 1111, 1114, 1118, 1120, 1123, 1125, 1129,
1132, 1137, 1139, 1141, 1155, 1161, 1166, 1171, 1176, 1180,
1182, 1186, 1190, 1194, 1204, 1206, 1211, 1214, 1218, 1221,
1225, 1228, 1231, 1234, 1238, 1241, 1245, 1249, 1251, 1253,
1255, 1257, 1259, 1261, 1263, 1271, 1273, 1274, 1277, 1279,
1282, 1285, 1296, 1298, 1303, 1305, 1308, 1322, 1325, 1328,
1330, 1335, 1340, 1348, 1353, 1356, 1369, 1377, 1381, 1385,
1389, 1395, 1399, 1404, 1406, 1417, 1420, 1421, 1426, 1431,
1434, 1442, 1444, 1454, 1464, 1465, 1473, 1476, 1488, 1492,
1509, 1516, 1525, 1527, 1532, 1537, 1541, 1545, 1556, 1563,
1570, 1577, 1588, 1592, 1595, 1600, 1623, 1654, 1678, 1706,
1721, 1732, 1735, 1739, 1742, 1747, 1749, 1752, 1754, 1758,
1763, 1766, 1772, 1777, 1782, 1784, 1793, 1794, 1800, 1802,
1807, 1809, 1813, 1816, 1822, 1825, 1827, 1829, 1831, 1838,
1843, 1848, 1850, 1859, 1862, 1867, 1870
static const char * const yytname
[] = { "$","error","$illegal.","IDENTIFIER",
"TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
"ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
"BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ALIGN",
"ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'",
"OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT",
"'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
"'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
"CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
"OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
"@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
"unop","expr","exprlist","nonnull_exprlist","unary_expr","@9","cast_expr","expr_no_commas",
"primary","@10","string","xdecls","lineno_datadecl","datadecls","datadecl","lineno_decl",
"decls","setspecs","decl","typed_declspecs","reserved_declspecs","declmods",
"typed_typespecs","reserved_typespecquals","typespec","typespecqual_reserved",
"initdecls","notype_initdecls","maybeasm","initdcl","@11","notype_initdcl","@12",
"maybe_attribute","attribute_list","attrib","init","initlist","nested_function",
"@13","notype_nested_function","@14","declarator","after_type_declarator","parm_declarator",
"notype_declarator","structsp","@15","@16","@17","@18","maybecomma","maybecomma_warn",
"component_decl_list","component_decl_list2","component_decl","components","component_declarator",
"enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
"absdcl1","stmts","xstmts","errstmt","pushlevel","maybe_label_decls","label_decls",
"label_decl","compstmt_or_error","compstmt","simple_if","if_prefix","do_stmt_start",
"@19","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
"stmt_or_label","stmt","@20","@21","@22","@23","@24","@25","@26","all_iter_stmt",
"all_iter_stmt_simple","@27","label","maybe_type_qual","xexpr","asm_operands",
"nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@28","parmlist_1",
"@29","parmlist_2","parms","parm","parmlist_or_identifiers","@30","parmlist_or_identifiers_1",
"identifiers","identifiers_or_typenames",""
static const short yyr1
[] = { 0,
85, 85, 87, 86, 88, 86, 89, 89, 89, 90,
90, 90, 90, 90, 90, 90, 90, 92, 93, 91,
91, 94, 95, 91, 91, 96, 97, 91, 91, 98,
98, 99, 99, 99, 99, 99, 99, 99, 100, 101,
101, 102, 102, 103, 103, 104, 103, 103, 103, 103,
103, 103, 103, 103, 103, 105, 105, 105, 106, 106,
106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
106, 106, 106, 106, 106, 106, 107, 107, 107, 107,
107, 108, 107, 107, 107, 107, 107, 107, 107, 109,
109, 110, 110, 110, 111, 112, 112, 112, 112, 113,
113, 113, 113, 114, 115, 115, 115, 115, 116, 117,
117, 117, 117, 117, 117, 118, 118, 119, 119, 119,
120, 120, 120, 120, 121, 121, 122, 122, 123, 123,
123, 123, 123, 124, 124, 124, 125, 125, 126, 126,
127, 127, 129, 128, 128, 131, 130, 130, 132, 132,
133, 133, 134, 134, 134, 134, 135, 135, 135, 135,
135, 136, 136, 136, 136, 136, 136, 136, 136, 138,
137, 140, 139, 141, 141, 142, 142, 142, 142, 142,
142, 143, 143, 143, 143, 143, 144, 144, 144, 144,
144, 144, 146, 145, 145, 145, 147, 145, 145, 145,
148, 145, 149, 145, 145, 150, 150, 151, 151, 152,
152, 153, 153, 153, 154, 154, 154, 154, 154, 155,
155, 156, 156, 156, 157, 157, 158, 158, 159, 159,
160, 160, 161, 161, 162, 162, 163, 163, 163, 163,
163, 163, 163, 163, 163, 164, 164, 164, 165, 165,
166, 167, 168, 168, 169, 169, 170, 171, 171, 172,
172, 172, 172, 173, 173, 174, 176, 175, 177, 178,
179, 179, 180, 181, 181, 182, 182, 182, 183, 182,
182, 182, 184, 185, 182, 182, 182, 186, 187, 188,
182, 189, 182, 182, 182, 182, 182, 182, 182, 182,
182, 182, 182, 182, 190, 192, 191, 193, 193, 193,
193, 194, 194, 195, 195, 196, 196, 197, 197, 198,
199, 199, 201, 200, 202, 203, 202, 202, 204, 204,
204, 204, 205, 205, 206, 206, 206, 206, 206, 208,
207, 209, 209, 210, 210, 211, 211
static const short yyr2
[] = { 0,
0, 1, 0, 2, 0, 3, 1, 1, 5, 3,
4, 4, 2, 2, 2, 2, 1, 0, 0, 7,
4, 0, 0, 7, 4, 0, 0, 6, 3, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1, 1, 3, 1, 2, 0, 3, 2, 2, 2,
4, 2, 4, 2, 2, 1, 4, 7, 1, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 5, 3, 3, 1, 1, 1, 3,
3, 0, 4, 4, 4, 3, 3, 2, 2, 1,
2, 0, 1, 2, 3, 1, 1, 2, 2, 4,
4, 2, 2, 3, 1, 1, 2, 2, 0, 4,
4, 3, 3, 2, 2, 2, 3, 0, 2, 2,
1, 1, 2, 2, 2, 3, 0, 2, 1, 1,
1, 4, 4, 1, 1, 1, 1, 3, 1, 3,
0, 4, 0, 6, 3, 0, 6, 3, 0, 6,
1, 3, 1, 4, 4, 8, 1, 2, 3, 4,
1, 1, 3, 6, 8, 4, 6, 3, 5, 0,
3, 0, 3, 1, 1, 3, 3, 4, 3, 3,
1, 3, 4, 3, 3, 1, 3, 3, 3, 4,
3, 1, 0, 6, 4, 2, 0, 6, 4, 2,
0, 7, 0, 6, 2, 0, 1, 0, 1, 1,
2, 0, 3, 2, 3, 1, 3, 1, 1, 1,
3, 4, 6, 5, 1, 3, 1, 3, 2, 2,
0, 1, 1, 2, 0, 2, 3, 3, 2, 3,
4, 3, 2, 3, 2, 1, 2, 2, 0, 1,
2, 0, 0, 1, 1, 2, 3, 1, 2, 2,
6, 5, 5, 2, 2, 4, 0, 4, 0, 0,
3, 4, 3, 1, 1, 1, 1, 2, 0, 4,
1, 3, 0, 0, 7, 5, 2, 0, 0, 0,
12, 0, 6, 2, 2, 2, 3, 6, 8, 10,
12, 3, 4, 1, 1, 0, 6, 3, 5, 2,
2, 0, 1, 0, 1, 0, 1, 1, 3, 4,
1, 3, 0, 2, 2, 0, 4, 2, 0, 1,
1, 3, 1, 3, 2, 2, 2, 2, 2, 0,
static const short yydefact
[] = { 3,
5, 0, 0, 0, 131, 122, 129, 121, 0, 0,
0, 0, 0, 17, 4, 8, 7, 0, 109, 109,
118, 130, 6, 15, 16, 30, 31, 203, 205, 212,
196, 212, 200, 0, 0, 192, 235, 0, 0, 139,
0, 14, 0, 124, 123, 13, 0, 118, 116, 0,
201, 0, 0, 193, 0, 197, 77, 78, 90, 0,
0, 46, 0, 0, 0, 32, 34, 33, 0, 35,
36, 0, 37, 38, 0, 0, 39, 56, 59, 42,
44, 79, 233, 0, 231, 127, 0, 231, 0, 0,
10, 0, 29, 0, 340, 0, 0, 149, 181, 235,
0, 0, 137, 0, 174, 175, 0, 0, 117, 120,
134, 135, 119, 136, 227, 208, 225, 0, 195, 219,
214, 109, 211, 109, 212, 199, 212, 0, 50, 0,
52, 0, 54, 55, 49, 45, 0, 0, 0, 0,
48, 0, 0, 0, 0, 314, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
88, 89, 0, 0, 40, 0, 91, 132, 235, 323,
0, 229, 232, 125, 133, 234, 127, 230, 236, 189,
188, 140, 141, 0, 187, 0, 191, 0, 0, 27,
0, 269, 97, 270, 0, 148, 0, 0, 12, 0,
21, 0, 149, 340, 0, 11, 25, 0, 0, 209,
0, 208, 269, 213, 269, 0, 0, 0, 0, 47,
81, 80, 252, 0, 0, 9, 43, 76, 75, 315,
0, 73, 72, 70, 71, 69, 68, 67, 65, 66,
60, 61, 62, 63, 64, 87, 86, 0, 41, 0,
239, 0, 243, 0, 245, 0, 323, 0, 128, 126,
0, 0, 344, 330, 231, 231, 342, 0, 331, 333,
341, 0, 190, 251, 0, 99, 94, 98, 0, 0,
146, 180, 176, 138, 19, 145, 177, 179, 0, 23,
228, 226, 204, 0, 215, 220, 270, 217, 194, 198,
51, 53, 260, 253, 83, 0, 57, 0, 84, 85,
238, 237, 324, 244, 240, 242, 0, 142, 328, 186,
235, 323, 335, 336, 337, 235, 338, 339, 325, 326,
0, 343, 0, 0, 28, 258, 95, 109, 109, 0,
0, 0, 143, 178, 0, 202, 269, 0, 0, 0,
254, 255, 161, 77, 0, 0, 0, 157, 162, 206,
74, 241, 239, 340, 0, 239, 0, 332, 334, 345,
259, 102, 0, 103, 0, 153, 0, 151, 147, 20,
0, 24, 221, 0, 149, 346, 0, 0, 0, 269,
0, 106, 270, 246, 256, 0, 158, 0, 0, 0,
0, 185, 182, 184, 0, 327, 0, 0, 141, 0,
0, 0, 144, 149, 0, 222, 257, 0, 262, 108,
107, 0, 0, 263, 248, 270, 247, 0, 0, 0,
159, 0, 168, 0, 0, 163, 58, 183, 100, 101,
0, 0, 150, 152, 224, 149, 347, 261, 0, 131,
0, 283, 267, 0, 0, 0, 0, 0, 0, 0,
0, 312, 304, 0, 0, 104, 109, 109, 276, 281,
0, 0, 273, 274, 277, 305, 275, 0, 166, 160,
0, 0, 154, 0, 155, 223, 0, 0, 269, 314,
0, 0, 310, 294, 295, 296, 0, 0, 0, 313,
0, 311, 278, 114, 0, 115, 0, 0, 265, 270,
264, 287, 0, 0, 0, 0, 169, 0, 0, 0,
0, 44, 0, 0, 0, 308, 297, 0, 302, 0,
0, 112, 141, 0, 113, 141, 282, 269, 0, 0,
164, 0, 167, 0, 266, 0, 268, 306, 288, 292,
0, 303, 0, 110, 0, 111, 0, 280, 271, 269,
0, 0, 0, 284, 269, 314, 269, 309, 316, 0,
171, 173, 272, 286, 165, 156, 269, 307, 0, 293,
0, 0, 317, 318, 298, 285, 289, 0, 316, 0,
0, 314, 0, 0, 299, 319, 0, 320, 0, 0,
290, 321, 0, 300, 269, 0, 0, 291, 301, 322,
static const short yydefgoto
[] = { 611,
1, 2, 3, 15, 16, 17, 202, 342, 208, 345,
97, 275, 115, 75, 230, 248, 77, 78, 132, 79,
80, 81, 139, 82, 190, 191, 192, 337, 389, 390,
18, 466, 265, 49, 266, 85, 174, 21, 113, 102,
39, 98, 103, 381, 40, 341, 196, 377, 378, 359,
360, 532, 555, 535, 557, 183, 105, 323, 106, 22,
125, 127, 118, 50, 401, 211, 52, 53, 123, 295,
296, 116, 117, 87, 172, 88, 89, 173, 391, 423,
193, 304, 350, 351, 352, 335, 336, 470, 471, 472,
489, 510, 279, 511, 394, 473, 474, 538, 488, 577,
566, 592, 605, 567, 475, 476, 565, 477, 501, 231,
582, 583, 584, 603, 253, 254, 267, 367, 268, 269,
270, 185, 186, 271, 272, 387
static const short yypact
[] = { 49,
95, 710, 710, 262,-32768,-32768,-32768,-32768, 64, 66,
70, 60, 86,-32768,-32768,-32768,-32768, 33, -36, 332,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 65,-32768,
79,-32768, 128, 1837, 1753,-32768,-32768, 33, 94,-32768,
391,-32768, 444,-32768,-32768,-32768, 33,-32768, 312, 68,
-32768, 141, 154,-32768, 144,-32768,-32768,-32768,-32768, 1850,
1900,-32768, 1837, 1837, 68,-32768,-32768,-32768, 1837,-32768,
-32768, 1032,-32768,-32768, 1837, 165, 169,-32768,-32768, 2059,
637, 247,-32768, 188, 187,-32768, 191, 951, 356, 0,
-32768, 444,-32768, 211,-32768, 1379, 529, 245,-32768,-32768,
444, 153,-32768, 273, 297, 308, 176, 486, 312,-32768,
-32768,-32768,-32768,-32768, 244, 202,-32768, 68,-32768,-32768,
-32768, 311, 224, 215,-32768,-32768,-32768, 1032,-32768, 1032,
-32768, 1837,-32768,-32768,-32768,-32768, 228, 231, 251, 243,
-32768, 265, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837,
1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837,
-32768,-32768, 68, 68, 1837, 1837,-32768,-32768,-32768, 187,
1392,-32768, 352, 538,-32768,-32768,-32768,-32768,-32768, 308,
-32768,-32768, 321, 362,-32768, 632,-32768, 307, 322,-32768,
360, 42,-32768,-32768, 346, 377, 263, 4,-32768, 444,
-32768, 529, 245,-32768, 1446,-32768,-32768, 529, 1837, 68,
341, 202,-32768,-32768,-32768, 344, 350, 354, 357,-32768,
-32768,-32768, 376, 373, 1695,-32768, 2059, 2059, 2059,-32768,
400, 2072, 1299, 2083, 1875, 2092, 1485, 459, 432, 432,
328, 328,-32768,-32768,-32768,-32768,-32768, 383, 169, 379,
114, 109,-32768, 789,-32768, 393,-32768, 1459,-32768, 538,
24, 420,-32768,-32768, 222, 875,-32768, 424, 181,-32768,
-32768, 101,-32768,-32768, 40,-32768,-32768,-32768, 926, 443,
-32768, 297,-32768,-32768,-32768, 485,-32768,-32768, 442,-32768,
2059,-32768,-32768, 448, 447,-32768,-32768, 447,-32768,-32768,
-32768,-32768,-32768, 498,-32768, 1273,-32768, 1837,-32768,-32768,
352,-32768,-32768,-32768,-32768,-32768, 454,-32768,-32768,-32768,
-32768, 261, 411, 308,-32768,-32768, 308,-32768,-32768,-32768,
1104,-32768, 536, 251,-32768,-32768,-32768, 462, 371, 545,
1329, 40,-32768,-32768, 40,-32768,-32768, 405, 68, 650,
498,-32768,-32768, 510, 1837, 1090, 514, 2059,-32768, 473,
1669,-32768, 103,-32768, 1513, 237, 789,-32768,-32768,-32768,
-32768,-32768, 444,-32768, 33, 496, 110,-32768,-32768,-32768,
1329,-32768,-32768, 1837, 111,-32768, 225, 410, 569, 479,
731,-32768,-32768,-32768,-32768, 1926,-32768, 26, 1329, 1151,
480, 411,-32768,-32768, 481,-32768, 250, 304, 235, 177,
489, 545,-32768, 2016, 1837,-32768,-32768, 68,-32768,-32768,
-32768, 812, 484,-32768,-32768,-32768,-32768, 1595, 1837, 1329,
-32768, 1212,-32768, 1837, 528,-32768,-32768,-32768,-32768,-32768,
157, 502,-32768,-32768,-32768, 2016,-32768,-32768, 1645, 546,
539,-32768,-32768, 540, 542, 1837, 566, 531, 533, 1787,
52, 599,-32768, 568, 537,-32768, 543, 845,-32768, 598,
893, 30,-32768,-32768,-32768,-32768,-32768, 1971,-32768,-32768,
1947, 1329,-32768, 608,-32768,-32768, 1837, 557,-32768, 1837,
1837, 1539,-32768,-32768,-32768,-32768, 544, 1837, 548,-32768,
563,-32768,-32768,-32768, 444,-32768, 33, 974,-32768,-32768,
-32768,-32768, 1837, 1329, 1837, 1329,-32768, 549, 550, 1837,
611, 460, 552, 555, 1837,-32768,-32768, 556,-32768, 1837,
358,-32768, 21, 388,-32768, 230,-32768,-32768, 1645, 564,
-32768, 1992,-32768, 635,-32768, 589,-32768,-32768,-32768,-32768,
2041,-32768, 15,-32768, 251,-32768, 251,-32768,-32768,-32768,
562, 1329, 603,-32768,-32768, 1837,-32768,-32768, 672, 605,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 609,-32768,
626, 20, 606,-32768,-32768,-32768,-32768, 1837, 672, 612,
672, 1837, 625, 39,-32768,-32768, 627,-32768, 362, 629,
-32768, 247, 168,-32768,-32768, 630, 362,-32768,-32768, 247,
static const short yypgoto
[] = {-32768,
-32768,-32768,-32768, 709,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768, -7,-32768, -34,-32768, 553, 464,-32768, -18,
46, 229,-32768, -175, -117, 534,-32768,-32768, 330,-32768,
-9,-32768, 10, 673, 13, 674, 559, -6, -124, -346,
-40, -96, -55,-32768,-32768,-32768, -177,-32768, 313, -301,
385,-32768,-32768,-32768,-32768, -37, -62, 366, -13, -30,
-32768,-32768,-32768,-32768,-32768, 532, 3,-32768,-32768, 530,
396, 641, 554, -19, -56, 694, -80, -149, 372,-32768,
-173,-32768,-32768,-32768, 416, -259, -122,-32768,-32768,-32768,
-32768, -75, -274, -426, -347,-32768, 232,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768, 234,-32768, -466,
179,-32768, 178,-32768, 517,-32768, -224,-32768,-32768,-32768,
445, -176,-32768,-32768,-32768,-32768
static const short yytable
[] = { 76,
84, 29, 31, 33, 41, 104, 107, 203, 261, 43,
47, 19, 19, 48, 20, 20, 224, 276, 114, 197,
252, 194, 348, 523, 90, 286, 407, 287, 86, 313,
512, 178, 167, 108, 55, 36, 182, 138, 198, 379,
334, 42, -93, 427, 133, 134, 86, 94, -1, 259,
136, 277, 140, 569, 26, 27, 141, 135, 589, 95,
96, 188, 521, 204, 205, 86, 26, 27, 26, 27,
26, 27, 26, 27, 427, 180, 181, 599, 114, 413,
283, 177, 380, 37, 285, 382, 203, 90, 251, 513,
290, 570, 38, 138, -2, 138, 590, 433, 436, 579,
318, 311, 498, -170, 431, 36, 320, 432, 218, 179,
219, 558, 213, 220, 215, 600, 194, 177, 428, 34,
179, 86, 223, 86, -93, 597, 194, 216, 479, 217,
436, 250, 194, 573, 282, 259, 256, 297, 578, 297,
580, 195, 406, 114, 284, 35, 28, 51, 30, 415,
586, 449, 32, 321, 120, 246, 247, 5, 531, 7,
83, 54, 322, 171, 169, 9, 10, 11, 257, 258,
289, 91, 252, 170, 171, 92, 392, 332, 608, 441,
517, 13, 333, 180, 442, 312, 411, 403, 227, 228,
229, 412, 232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244, 245, 307, 416, 325, 328,
56, 371, 541, 311, 543, 420, 311, 425, 5, 119,
7, 176, 126, 317, 36, 320, 9, 10, 11, 114,
199, 121, -210, 483, 200, 539, 445, 169, 484, 36,
363, 142, 13, 179, 606, 366, 170, 171, 425, 607,
143, 324, 327, 206, 291, 167, 94, 92, 330, 48,
575, 94, 331, 36, 168, 36, 99, 175, 486, 179,
184, 297, 321, 201, 393, 195, -18, -18, -18, -18,
209, 322, 171, 210, -18, -18, -18, 326, 338, 95,
96, 339, -218, -218, 95, 96, 322, 171, 357, 94,
-18, 214, 417, -141, 221, 469, 418, 222, 90, -141,
385, 326, -172, 100, 393, 426, 110, 111, 112, 225,
322, 171, 101, 9, 10, 11, 469, 439, 373, 375,
405, 200, 48, 223, 408, 5, 44, 7, 45, 24,
25, 386, 226, 9, 10, 11, 426, 94, 357, 180,
-141, 358, 180, 361, -141, -18, 204, 205, 36, 13,
189, 409, 179, -96, -96, -96, -96, 95, 96, -96,
59, -96, -96, -96, 5, 44, 7, 45, 158, 159,
160, 440, 9, 10, 11, 92, 358, -96, -216, -216,
273, 93, 435, 465, -26, -26, -26, -26, 13, 274,
396, 358, -26, -26, -26, 280, 37, 36, 99, 46,
447, 257, 258, 281, 465, 38, 469, 94, -26, 293,
464, -141, 299, 602, 435, 497, 358, -141, 300, 414,
301, 610, 571, 302, 572, 554, 203, 467, 308, 200,
468, 464, -96, 384, 358, 358, 36, 99, 374, 305,
95, 96, 519, 499, 303, 100, 524, 505, 507, 309,
446, 48, 310, 528, 101, 556, 534, 533, -141, 92,
364, 365, -141, -26, 478, 358, 314, 358, 540, 481,
156, 157, 158, 159, 160, 546, 207, 274, 419, -22,
-22, -22, -22, 536, 100, 553, 319, -22, -22, -22,
329, 492, 340, 101, 465, 154, 155, 156, 157, 158,
159, 160, 94, -22, 161, 162, -141, 163, 164, 165,
166, 343, -141, 129, 131, 344, 346, 358, 347, 189,
349, 464, -269, -269, -269, -269, 548, 362, 370, 372,
-269, -269, -269, 111, 112, 95, 96, 376, -30, 9,
10, 11, 399, 593, 400, 410, -269, -249, 437, 358,
542, 358, 448, -141, 438, 443, 482, -141, -22, 189,
551, -105, -105, -105, -105, -105, -105, -105, 485, -105,
-105, -105, -105, -105, -31, -105, -105, -105, -105, -105,
-105, -105, -105, -105, -105, -105, -105, -105, 487, 490,
-105, 491, -105, -105, 493, 500, 502, 358, 494, -105,
495, -92, -105, 508, 503, 518, 520, -105, -105, -105,
504, 527, 530, -105, -105, 529, 545, 547, -105, 549,
544, 550, 262, 552, 263, 5, 6, 7, 8, 574,
561, 264, 563, 9, 10, 11, -105, -105, -105, -105,
388, -105, -269, -269, -269, -269, -269, -269, -269, 13,
-269, -269, -269, -269, -269, 564, -269, -269, -269, -269,
-269, -269, -269, -269, -269, -269, -269, -269, -269, 576,
581, -269, 585, -269, -269, 588, 587, 591, 612, 595,
-269, 161, 162, -269, 163, 164, 165, 166, -269, -269,
-269, 598, 613, 601, -269, -269, 604, 609, -329, -269,
4, 23, -109, 5, 6, 7, 8, 249, 522, 421,
109, 9, 10, 11, 444, 278, 122, -269, 402, -269,
-269, 189, -269, -269, -269, 260, 12, 13, -269, -269,
398, -269, 383, 294, 298, -269, 124, -269, -269, -269,
-269, -269, -269, -269, -269, -269, -269, -269, 212, -269,
-109, 422, -269, 292, -269, -269, 395, 594, 596, -109,
559, -269, 560, 315, -269, 369, 0, 0, 0, -269,
-269, -269, 0, 0, 0, -269, -269, 14, 0, 262,
-269, 0, 5, 6, 7, 8, 0, 0, 264, 0,
9, 10, 11, 0, 0, 0, 0, 0, -269, 424,
-269, -269, 189, -269, -269, -269, 13, 0, 0, -269,
-269, 0, -269, 0, 0, 0, -269, 0, -269, -269,
-269, -269, -269, -269, -269, -269, -269, -269, -269, 0,
-269, 0, 0, -269, 0, -269, -269, 0, 5, 44,
7, 45, -269, 0, 0, -269, 9, 10, 11, 0,
-269, -269, -269, 0, 0, -329, -269, -269, 0, 0,
0, -269, 13, 0, 0, 0, 0, 36, 5, 44,
7, 45, 0, 0, 0, 0, 9, 10, 11, -269,
-250, -269, -269, 509, -269, -269, -269, 0, 0, 0,
-269, -269, 13, -269, 0, 0, 0, -269, 0, -269,
-269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
0, -269, 506, 0, -269, 326, -269, -269, 0, 5,
6, 7, 8, -269, 322, 171, -269, 9, 10, 11,
0, -269, -269, -269, 0, 0, 0, -269, -269, 0,
0, 0, -269, 13, 5, 0, 7, 176, 0, 0,
0, 0, 9, 10, 11, 0, 0, 0, 0, 0,
-269, 0, -269, -269, 537, -269, -279, -279, 13, 0,
0, -279, -279, 0, -279, 0, 0, 0, -279, 0,
-279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
-279, 169, -279, 0, 0, -279, 0, -279, -279, 0,
170, 171, 0, 0, -279, 0, 0, -279, 0, 0,
0, 0, -279, -279, -279, 0, 0, 0, -279, -279,
0, 0, 137, -279, 57, 5, 0, 7, 83, 58,
59, 0, 60, 9, 10, 11, 0, 0, 0, 0,
0, -279, 0, -279, -279, 0, -279, 0, 0, 13,
61, 0, 0, 62, 0, 63, 64, 0, 0, 0,
0, 0, 65, 0, 0, 66, 0, 0, 0, 0,
67, 68, 69, 0, 0, 0, 70, 71, 0, 0,
353, 72, 354, 27, 0, 0, 0, 58, 59, 0,
60, 0, 0, 0, 0, 0, 0, 5, 6, 7,
8, 73, 74, 368, -82, 9, 10, 11, 61, 0,
0, 62, 0, 63, 64, 0, 0, 0, 0, 0,
65, 13, 0, 66, 0, 0, 0, 0, 67, 68,
69, 0, 0, 0, 70, 71, 0, 0, 0, 72,
355, 353, 0, 354, 27, 0, 0, 0, 58, 59,
0, 60, 0, 0, 0, 0, 0, 0, 397, 73,
74, 0, 356, 0, 0, 0, 0, 0, 0, 61,
0, 0, 62, 0, 63, 64, 0, 0, 0, 0,
0, 65, 0, 0, 66, 0, 0, 0, 0, 67,
68, 69, 0, 0, 0, 70, 71, 0, 0, 0,
72, 434, 353, 0, 354, 27, 0, 0, 0, 58,
59, 0, 60, 0, 0, 0, 0, 0, 0, -207,
73, 74, 0, 356, 0, 0, 0, 0, 0, 0,
61, 0, 0, 62, 0, 63, 64, 0, 0, 0,
0, 0, 65, 0, 0, 66, 0, 0, 0, 0,
67, 68, 69, 0, 0, 0, 70, 71, 0, 0,
0, 72, 434, 353, 0, 354, 27, 0, 0, 0,
58, 59, 0, 60, 0, 0, 0, 0, 0, 0,
480, 73, 74, 0, 356, 0, 0, 0, 0, 0,
0, 61, 0, 0, 62, 0, 63, 64, 0, 0,
0, 0, 0, 65, 0, 0, 66, 0, 0, 0,
0, 67, 68, 69, 0, 0, 0, 70, 71, 353,
0, 57, 72, 355, 0, 0, 58, 59, 0, 60,
149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
159, 160, 73, 74, 0, 356, 0, 61, 0, 0,
62, 0, 63, 64, 0, 0, 0, 0, 0, 65,
0, 0, 66, 0, 0, 0, 0, 67, 68, 69,
0, 57, 0, 70, 71, 0, 58, 59, 72, 60,
0, 0, 0, 0, 57, 0, 0, 0, 0, 58,
59, 0, 60, 0, 0, 0, 0, 61, 73, 74,
62, 356, 63, 64, 0, 0, 0, 0, 0, 65,
61, 0, 66, 62, 0, 63, 64, 67, 68, 69,
0, 0, 65, 70, 71, 66, 0, 0, 72, 0,
67, 68, 69, 0, 0, 0, 70, 71, 57, 0,
0, 72, 0, 58, 59, 0, 60, 0, 73, 74,
0, 57, 187, 0, 0, 0, 58, 59, 0, 60,
0, 73, 74, 0, 61, 255, 0, 62, 0, 63,
64, 0, 0, 0, 0, 0, 65, 61, 0, 66,
62, 0, 63, 64, 67, 68, 69, 0, 0, 65,
70, 71, 66, 0, 0, 72, 0, 67, 68, 69,
0, 0, 0, 70, 71, 57, 0, 0, 72, 0,
58, 59, 0, 60, 0, 73, 74, 0, 0, 288,
153, 154, 155, 156, 157, 158, 159, 160, 73, 74,
0, 61, 316, 0, 62, 0, 63, 64, 525, 0,
0, 0, 0, 65, 0, 0, 66, 0, 0, 0,
0, 67, 68, 69, 0, 0, 0, 70, 71, 0,
0, 0, 72, 0, 144, 145, 146, 526, 147, 148,
149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
159, 160, 73, 74, 0, 0, 404, 354, 450, 6,
7, 8, 58, 59, 0, 60, 9, 10, 11, 451,
0, 452, 453, 454, 455, 456, 457, 458, 459, 460,
461, 462, 13, 61, 0, 0, 62, 0, 63, 64,
0, 0, 0, 0, 0, 65, 0, 0, 66, 0,
0, 0, 0, 67, 68, 69, 0, 354, 27, 70,
71, 0, 58, 59, 72, 60, 0, 0, 0, 451,
0, 452, 453, 454, 455, 456, 457, 458, 459, 460,
461, 462, 463, 61, 73, 74, 62, 223, 63, 64,
0, 0, 0, 0, 0, 65, 0, 0, 66, 0,
0, 0, 0, 67, 68, 69, 0, 57, 0, 70,
71, 0, 58, 59, 72, 60, 146, 0, 147, 148,
149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
159, 160, 463, 61, 73, 74, 62, 223, 63, 64,
0, 0, 0, 0, 0, 65, 0, 0, 66, 0,
0, 0, 0, 67, 68, 69, 0, 0, 0, 70,
71, 0, 0, 0, 72, 57, 5, 0, 7, 83,
58, 59, 0, 60, 9, 10, 11, 0, 0, 0,
0, 0, 0, 0, 73, 74, 0, 306, 0, 0,
13, 61, 0, 0, 62, 0, 63, 64, 0, 57,
0, 0, 0, 65, 58, 59, 66, 60, 0, 0,
0, 67, 68, 69, 0, 0, 0, 70, 71, 0,
0, 0, 72, 0, 0, 61, 0, 0, 62, 0,
63, 64, 0, 0, 0, 0, 0, 65, 0, 0,
66, 0, 73, 74, 0, 67, 68, 69, 0, 57,
0, 70, 71, 0, 58, 59, 72, 60, 0, 0,
0, 0, 57, 0, 0, 0, 0, 58, 59, 0,
60, 0, 0, 0, 496, 61, 73, 74, 62, 0,
63, 64, 0, 0, 0, 0, 0, 65, 61, 0,
66, 62, 0, 63, 64, 67, 68, 69, 0, 0,
65, 70, 71, 66, 0, 0, 72, 0, 67, 68,
69, 0, 57, 0, 70, 71, 0, 58, 59, 128,
60, 0, 0, 0, 0, 0, 73, 74, 151, 152,
153, 154, 155, 156, 157, 158, 159, 160, 61, 73,
74, 62, 0, 63, 64, 429, 0, 0, 0, 0,
65, 0, 0, 66, 0, 0, 0, 0, 67, 68,
69, 0, 0, 0, 70, 71, 515, 0, 0, 130,
0, 144, 145, 146, 0, 147, 148, 149, 150, 151,
152, 153, 154, 155, 156, 157, 158, 159, 160, 73,
74, 0, 144, 145, 146, 0, 147, 148, 149, 150,
151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
0, 0, 0, 0, 0, 0, 144, 145, 146, 430,
147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
157, 158, 159, 160, 0, 0, 0, 144, 145, 146,
516, 147, 148, 149, 150, 151, 152, 153, 154, 155,
156, 157, 158, 159, 160, 0, 195, 0, 0, 0,
0, 144, 145, 146, 514, 147, 148, 149, 150, 151,
152, 153, 154, 155, 156, 157, 158, 159, 160, 0,
0, 0, 0, 0, 0, 562, 144, 145, 146, 568,
147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
157, 158, 159, 160, 144, 145, 146, 0, 147, 148,
149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
159, 160, 148, 149, 150, 151, 152, 153, 154, 155,
156, 157, 158, 159, 160, 150, 151, 152, 153, 154,
155, 156, 157, 158, 159, 160, 152, 153, 154, 155,
static const short yycheck
[] = { 34,
35, 9, 10, 11, 18, 43, 47, 104, 184, 19,
20, 2, 3, 20, 2, 3, 139, 191, 49, 100,
170, 97, 297, 490, 38, 203, 373, 204, 35, 254,
1, 88, 9, 47, 32, 3, 92, 72, 101, 341,
1, 78, 1, 391, 63, 64, 53, 27, 0, 174,
69, 10, 72, 39, 3, 4, 75, 65, 39, 60,
61, 96, 489, 60, 61, 72, 3, 4, 3, 4,
3, 4, 3, 4, 422, 89, 77, 39, 109, 381,
77, 88, 342, 51, 202, 345, 183, 101, 169, 60,
208, 77, 60, 128, 0, 130, 77, 399, 400, 566,
77, 251, 51, 83, 79, 3, 4, 82, 128, 7,
130, 538, 122, 132, 124, 77, 192, 124, 393, 60,
7, 128, 83, 130, 83, 592, 202, 125, 430, 127,
432, 166, 208, 560, 197, 260, 171, 213, 565, 215,
567, 31, 367, 174, 200, 60, 83, 83, 83, 39,
577, 426, 83, 51, 1, 163, 164, 4, 505, 6,
7, 83, 60, 61, 51, 12, 13, 14, 60, 61,
205, 78, 322, 60, 61, 82, 350, 77, 605, 3,
482, 28, 82, 197, 8, 77, 77, 364, 143, 144,
145, 82, 147, 148, 149, 150, 151, 152, 153, 154,
155, 156, 157, 158, 159, 160, 225, 385, 265, 266,
83, 334, 514, 363, 516, 389, 366, 391, 4, 79,
6, 7, 79, 258, 3, 4, 12, 13, 14, 260,
78, 78, 79, 77, 82, 510, 414, 51, 82, 3,
321, 77, 28, 7, 77, 326, 60, 61, 422, 82,
82, 265, 266, 78, 209, 9, 27, 82, 78, 266,
562, 27, 82, 3, 77, 3, 4, 77, 446, 7,
60, 347, 51, 1, 350, 31, 4, 5, 6, 7,
37, 60, 61, 82, 12, 13, 14, 51, 279, 60,
61, 279, 78, 79, 60, 61, 60, 61, 306, 27,
28, 78, 78, 31, 77, 428, 82, 77, 322, 37,
348, 51, 83, 51, 390, 391, 5, 6, 7, 77,
60, 61, 60, 12, 13, 14, 449, 78, 338, 339,
365, 82, 339, 83, 375, 4, 5, 6, 7, 78,
79, 349, 78, 12, 13, 14, 422, 27, 356, 363,
78, 306, 366, 308, 82, 83, 60, 61, 3, 28,
1, 375, 7, 4, 5, 6, 7, 60, 61, 10,
9, 12, 13, 14, 4, 5, 6, 7, 51, 52,
53, 78, 12, 13, 14, 82, 341, 28, 78, 79,
84, 1, 400, 428, 4, 5, 6, 7, 28, 78,
355, 356, 12, 13, 14, 60, 51, 3, 4, 78,
418, 60, 61, 37, 449, 60, 539, 27, 28, 79,
428, 31, 79, 599, 432, 460, 381, 37, 79, 384,
77, 607, 555, 77, 557, 78, 533, 428, 39, 82,
428, 449, 83, 39, 399, 400, 3, 4, 78, 77,
60, 61, 487, 461, 79, 51, 491, 467, 468, 77,
415, 468, 84, 498, 60, 78, 507, 505, 78, 82,
60, 61, 82, 83, 429, 430, 84, 432, 513, 434,
49, 50, 51, 52, 53, 520, 1, 78, 79, 4,
5, 6, 7, 507, 51, 530, 77, 12, 13, 14,
77, 456, 60, 60, 539, 47, 48, 49, 50, 51,
52, 53, 27, 28, 55, 56, 31, 58, 59, 60,
61, 37, 37, 60, 61, 84, 79, 482, 82, 1,
33, 539, 4, 5, 6, 7, 77, 84, 3, 78,
12, 13, 14, 6, 7, 60, 61, 3, 39, 12,
13, 14, 39, 588, 82, 60, 28, 79, 79, 514,
515, 516, 79, 78, 84, 77, 39, 82, 83, 1,
525, 3, 4, 5, 6, 7, 8, 9, 77, 11,
12, 13, 14, 15, 39, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 60, 60,
32, 60, 34, 35, 39, 7, 39, 562, 78, 41,
78, 83, 44, 16, 78, 8, 60, 49, 50, 51,
78, 78, 60, 55, 56, 78, 77, 17, 60, 78,
82, 77, 1, 78, 3, 4, 5, 6, 7, 78,
77, 10, 8, 12, 13, 14, 78, 79, 80, 81,
1, 83, 3, 4, 5, 6, 7, 8, 9, 28,
11, 12, 13, 14, 15, 77, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 77,
9, 32, 78, 34, 35, 60, 78, 82, 0, 78,
41, 55, 56, 44, 58, 59, 60, 61, 49, 50,
51, 77, 0, 77, 55, 56, 78, 78, 77, 60,
1, 3, 3, 4, 5, 6, 7, 165, 490, 390,
48, 12, 13, 14, 412, 192, 53, 78, 363, 80,
81, 1, 83, 3, 4, 177, 27, 28, 8, 9,
356, 11, 347, 212, 215, 15, 53, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 118, 29,
51, 390, 32, 210, 34, 35, 351, 589, 591, 60,
539, 41, 539, 257, 44, 331, -1, -1, -1, 49,
50, 51, -1, -1, -1, 55, 56, 78, -1, 1,
60, -1, 4, 5, 6, 7, -1, -1, 10, -1,
12, 13, 14, -1, -1, -1, -1, -1, 78, 79,
80, 81, 1, 83, 3, 4, 28, -1, -1, 8,
9, -1, 11, -1, -1, -1, 15, -1, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
29, -1, -1, 32, -1, 34, 35, -1, 4, 5,
6, 7, 41, -1, -1, 44, 12, 13, 14, -1,
49, 50, 51, -1, -1, 77, 55, 56, -1, -1,
-1, 60, 28, -1, -1, -1, -1, 3, 4, 5,
6, 7, -1, -1, -1, -1, 12, 13, 14, 78,
79, 80, 81, 1, 83, 3, 4, -1, -1, -1,
8, 9, 28, 11, -1, -1, -1, 15, -1, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
-1, 29, 78, -1, 32, 51, 34, 35, -1, 4,
5, 6, 7, 41, 60, 61, 44, 12, 13, 14,
-1, 49, 50, 51, -1, -1, -1, 55, 56, -1,
-1, -1, 60, 28, 4, -1, 6, 7, -1, -1,
-1, -1, 12, 13, 14, -1, -1, -1, -1, -1,
78, -1, 80, 81, 1, 83, 3, 4, 28, -1,
-1, 8, 9, -1, 11, -1, -1, -1, 15, -1,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 51, 29, -1, -1, 32, -1, 34, 35, -1,
60, 61, -1, -1, 41, -1, -1, 44, -1, -1,
-1, -1, 49, 50, 51, -1, -1, -1, 55, 56,
-1, -1, 1, 60, 3, 4, -1, 6, 7, 8,
9, -1, 11, 12, 13, 14, -1, -1, -1, -1,
-1, 78, -1, 80, 81, -1, 83, -1, -1, 28,
29, -1, -1, 32, -1, 34, 35, -1, -1, -1,
-1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
49, 50, 51, -1, -1, -1, 55, 56, -1, -1,
1, 60, 3, 4, -1, -1, -1, 8, 9, -1,
11, -1, -1, -1, -1, -1, -1, 4, 5, 6,
7, 80, 81, 10, 83, 12, 13, 14, 29, -1,
-1, 32, -1, 34, 35, -1, -1, -1, -1, -1,
41, 28, -1, 44, -1, -1, -1, -1, 49, 50,
51, -1, -1, -1, 55, 56, -1, -1, -1, 60,
61, 1, -1, 3, 4, -1, -1, -1, 8, 9,
-1, 11, -1, -1, -1, -1, -1, -1, 79, 80,
81, -1, 83, -1, -1, -1, -1, -1, -1, 29,
-1, -1, 32, -1, 34, 35, -1, -1, -1, -1,
-1, 41, -1, -1, 44, -1, -1, -1, -1, 49,
50, 51, -1, -1, -1, 55, 56, -1, -1, -1,
60, 61, 1, -1, 3, 4, -1, -1, -1, 8,
9, -1, 11, -1, -1, -1, -1, -1, -1, 79,
80, 81, -1, 83, -1, -1, -1, -1, -1, -1,
29, -1, -1, 32, -1, 34, 35, -1, -1, -1,
-1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
49, 50, 51, -1, -1, -1, 55, 56, -1, -1,
-1, 60, 61, 1, -1, 3, 4, -1, -1, -1,
8, 9, -1, 11, -1, -1, -1, -1, -1, -1,
79, 80, 81, -1, 83, -1, -1, -1, -1, -1,
-1, 29, -1, -1, 32, -1, 34, 35, -1, -1,
-1, -1, -1, 41, -1, -1, 44, -1, -1, -1,
-1, 49, 50, 51, -1, -1, -1, 55, 56, 1,
-1, 3, 60, 61, -1, -1, 8, 9, -1, 11,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 53, 80, 81, -1, 83, -1, 29, -1, -1,
32, -1, 34, 35, -1, -1, -1, -1, -1, 41,
-1, -1, 44, -1, -1, -1, -1, 49, 50, 51,
-1, 3, -1, 55, 56, -1, 8, 9, 60, 11,
-1, -1, -1, -1, 3, -1, -1, -1, -1, 8,
9, -1, 11, -1, -1, -1, -1, 29, 80, 81,
32, 83, 34, 35, -1, -1, -1, -1, -1, 41,
29, -1, 44, 32, -1, 34, 35, 49, 50, 51,
-1, -1, 41, 55, 56, 44, -1, -1, 60, -1,
49, 50, 51, -1, -1, -1, 55, 56, 3, -1,
-1, 60, -1, 8, 9, -1, 11, -1, 80, 81,
-1, 3, 84, -1, -1, -1, 8, 9, -1, 11,
-1, 80, 81, -1, 29, 84, -1, 32, -1, 34,
35, -1, -1, -1, -1, -1, 41, 29, -1, 44,
32, -1, 34, 35, 49, 50, 51, -1, -1, 41,
55, 56, 44, -1, -1, 60, -1, 49, 50, 51,
-1, -1, -1, 55, 56, 3, -1, -1, 60, -1,
8, 9, -1, 11, -1, 80, 81, -1, -1, 84,
46, 47, 48, 49, 50, 51, 52, 53, 80, 81,
-1, 29, 84, -1, 32, -1, 34, 35, 10, -1,
-1, -1, -1, 41, -1, -1, 44, -1, -1, -1,
-1, 49, 50, 51, -1, -1, -1, 55, 56, -1,
-1, -1, 60, -1, 36, 37, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 53, 80, 81, -1, -1, 84, 3, 4, 5,
6, 7, 8, 9, -1, 11, 12, 13, 14, 15,
-1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, -1, -1, 32, -1, 34, 35,
-1, -1, -1, -1, -1, 41, -1, -1, 44, -1,
-1, -1, -1, 49, 50, 51, -1, 3, 4, 55,
56, -1, 8, 9, 60, 11, -1, -1, -1, 15,
-1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 78, 29, 80, 81, 32, 83, 34, 35,
-1, -1, -1, -1, -1, 41, -1, -1, 44, -1,
-1, -1, -1, 49, 50, 51, -1, 3, -1, 55,
56, -1, 8, 9, 60, 11, 38, -1, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 53, 78, 29, 80, 81, 32, 83, 34, 35,
-1, -1, -1, -1, -1, 41, -1, -1, 44, -1,
-1, -1, -1, 49, 50, 51, -1, -1, -1, 55,
56, -1, -1, -1, 60, 3, 4, -1, 6, 7,
8, 9, -1, 11, 12, 13, 14, -1, -1, -1,
-1, -1, -1, -1, 80, 81, -1, 83, -1, -1,
28, 29, -1, -1, 32, -1, 34, 35, -1, 3,
-1, -1, -1, 41, 8, 9, 44, 11, -1, -1,
-1, 49, 50, 51, -1, -1, -1, 55, 56, -1,
-1, -1, 60, -1, -1, 29, -1, -1, 32, -1,
34, 35, -1, -1, -1, -1, -1, 41, -1, -1,
44, -1, 80, 81, -1, 49, 50, 51, -1, 3,
-1, 55, 56, -1, 8, 9, 60, 11, -1, -1,
-1, -1, 3, -1, -1, -1, -1, 8, 9, -1,
11, -1, -1, -1, 78, 29, 80, 81, 32, -1,
34, 35, -1, -1, -1, -1, -1, 41, 29, -1,
44, 32, -1, 34, 35, 49, 50, 51, -1, -1,
41, 55, 56, 44, -1, -1, 60, -1, 49, 50,
51, -1, 3, -1, 55, 56, -1, 8, 9, 60,
11, -1, -1, -1, -1, -1, 80, 81, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 29, 80,
81, 32, -1, 34, 35, 10, -1, -1, -1, -1,
41, -1, -1, 44, -1, -1, -1, -1, 49, 50,
51, -1, -1, -1, 55, 56, 10, -1, -1, 60,
-1, 36, 37, 38, -1, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 80,
81, -1, 36, 37, 38, -1, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
-1, -1, -1, -1, -1, -1, 36, 37, 38, 84,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
50, 51, 52, 53, -1, -1, -1, 36, 37, 38,
84, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, -1, 31, -1, -1, -1,
-1, 36, 37, 38, 84, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, -1,
-1, -1, -1, -1, -1, 84, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
50, 51, 52, 53, 36, 37, 38, -1, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 53, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 45, 46, 47, 48,
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define alloca __builtin_alloca
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
#if defined (MSDOS) && !defined (__TURBOC__)
#else /* not MSDOS, or __TURBOC__ */
#endif /* not MSDOS, or __TURBOC__ */
#endif /* alloca not defined. */
/* This is the parser code that is written into each bison parser
when the %semantic_parser declaration is not specified in the grammar.
It was written by Richard Stallman by simplifying the hairy parser
used when %semantic_parser is specified. */
/* Note: there must be only one dollar sign in this file.
It is replaced by the list of actions, each action
as one case of the switch. */
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYACCEPT return(0)
#define YYABORT return(1)
#define YYERROR goto yyerrlab1
/* Like YYERROR except do call yyerror.
This remains here temporarily to ease the
transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. */
#define YYFAIL goto yyerrlab
#define YYRECOVERING() (!!yyerrstatus)
#define YYBACKUP(token, value) \
if (yychar == YYEMPTY && yylen == 1) \
{ yychar = (token), yylval = (value); \
yychar1 = YYTRANSLATE (yychar); \
{ yyerror ("syntax error: cannot back up"); YYERROR; } \
#define YYLEX yylex(&yylval, &yylloc)
#define YYLEX yylex(&yylval)
/* If nonreentrant, generate the variables here */
int yychar
; /* the lookahead symbol */
YYSTYPE yylval
; /* the semantic value of the */
YYLTYPE yylloc
; /* location data for the lookahead */
int yynerrs
; /* number of parse errors so far */
int yydebug
; /* nonzero means print parse trace */
/* Since this is uninitialized, it does not stop multiple parsers
/* YYINITDEPTH indicates the initial size of the parser's stacks */
/* YYMAXDEPTH is the maximum size the stacks can grow to
(effective only if the built-in stack extension method is used). */
#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
#define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
#else /* not GNU C or C++ */
/* This is the most reliable way to avoid incompatibilities
in available built-in functions on various systems. */
__yy_bcopy (from
, to
, count
)
/* This is the most reliable way to avoid incompatibilities
in available built-in functions on various systems. */
__yy_bcopy (char *from
, char *to
, int count
)
int yyerrstatus
; /* number of tokens to shift before error messages enabled */
int yychar1
; /* lookahead token as an internal (translated) token number */
short yyssa
[YYINITDEPTH
]; /* the state stack */
YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
#define YYPOPSTACK (yyvsp--, yyssp--)
int yystacksize
= YYINITDEPTH
;
YYSTYPE yyval
; /* the variable used to return */
/* semantic values from the action */
fprintf(stderr
, "Starting parse\n");
yychar
= YYEMPTY
; /* Cause a token to be read. */
/* Initialize stack pointers.
Waste one element of value and location stack
so that they stay on the same level as the state stack. */
/* Push a new state, which is found in yystate . */
/* In all cases, when you get here, the value and location stacks
have just been pushed. so pushing a state here evens the stacks. */
if (yyssp
>= yyss
+ yystacksize
- 1)
/* Give user a chance to reallocate the stack */
/* Use copies of these so that the &'s don't force the real ones into memory. */
/* Get the current used size of the three stacks, in elements. */
int size
= yyssp
- yyss
+ 1;
/* Each stack pointer address is followed by the size of
the data in use in that stack, in bytes. */
yyoverflow("parser stack overflow",
&yyss1
, size
* sizeof (*yyssp
),
&yyvs1
, size
* sizeof (*yyvsp
),
&yyls1
, size
* sizeof (*yylsp
),
yyss
= yyss1
; yyvs
= yyvs1
;
#else /* no yyoverflow */
/* Extend the stack our own way. */
if (yystacksize
>= YYMAXDEPTH
)
yyerror("parser stack overflow");
if (yystacksize
> YYMAXDEPTH
)
yystacksize
= YYMAXDEPTH
;
yyss
= (short *) alloca (yystacksize
* sizeof (*yyssp
));
__yy_bcopy ((char *)yyss1
, (char *)yyss
, size
* sizeof (*yyssp
));
yyvs
= (YYSTYPE
*) alloca (yystacksize
* sizeof (*yyvsp
));
__yy_bcopy ((char *)yyvs1
, (char *)yyvs
, size
* sizeof (*yyvsp
));
yyls
= (YYLTYPE
*) alloca (yystacksize
* sizeof (*yylsp
));
__yy_bcopy ((char *)yyls1
, (char *)yyls
, size
* sizeof (*yylsp
));
#endif /* no yyoverflow */
fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
if (yyssp
>= yyss
+ yystacksize
- 1)
fprintf(stderr
, "Entering state %d\n", yystate
);
/* Do appropriate processing given the current state. */
/* Read a lookahead token if we need one and don't already have one. */
/* First try to decide what to do without reference to lookahead token. */
/* Not known => get a lookahead token if don't already have one. */
/* yychar is either YYEMPTY or YYEOF
or a valid token in external form. */
fprintf(stderr
, "Reading a token: ");
/* Convert token to internal form (in yychar1) for indexing tables with */
if (yychar
<= 0) /* This means end of input. */
yychar
= YYEOF
; /* Don't call YYLEX any more */
fprintf(stderr
, "Now at end of input.\n");
yychar1
= YYTRANSLATE(yychar
);
fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
/* Give the individual parser a way to print the precise meaning
of a token, for further debugging info. */
YYPRINT (stderr
, yychar
, yylval
);
if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
/* yyn is what to do for this token type in this state.
Negative => reduce, -yyn is rule number.
Positive => shift, yyn is new state.
New state is final state => don't bother to shift,
0, or most negative number => error. */
/* Shift the lookahead token. */
fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
/* Discard the token being shifted unless it is eof. */
/* count tokens shifted since error; after three, turn off error status. */
if (yyerrstatus
) yyerrstatus
--;
/* Do the default action for the current state. */
/* Do a reduction. yyn is the number of a rule to reduce with. */
yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
fprintf (stderr
, "Reducing via rule %d (line %d), ",
/* Print the symboles being reduced, and their result. */
for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
pedwarn ("ANSI C forbids an empty source file");
/* In case there were missing closebraces,
get us back to the global binding level. */
while (! global_bindings_p ())
{yyval
.ttype
= NULL_TREE
; ;
{yyval
.ttype
= NULL_TREE
; ;
{ STRIP_NOPS (yyvsp
[-2].ttype
);
if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
&& TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
|| TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
assemble_asm (yyvsp
[-2].ttype
);
error ("argument of `asm' is not a constant string"); ;
error ("ANSI C forbids data definition with no type or storage class");
else if (!flag_traditional
)
warning ("data definition has no type or storage class"); ;
{ pedwarn ("empty declaration"); ;
{ shadow_tag (yyvsp
[-1].ttype
); ;
pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
{ if (! start_function (yyvsp
[-2].ttype
, yyvsp
[0].ttype
, 0))
reinit_parse_for_function (); ;
{ if (! start_function (yyvsp
[-2].ttype
, yyvsp
[0].ttype
, 0))
reinit_parse_for_function (); ;
{ if (! start_function (NULL_TREE
, yyvsp
[0].ttype
, 0))
reinit_parse_for_function (); ;
{ yyval
.code
= ADDR_EXPR
; ;
{ yyval
.code
= NEGATE_EXPR
; ;
{ yyval
.code
= CONVERT_EXPR
; ;
{ yyval
.code
= PREINCREMENT_EXPR
; ;
{ yyval
.code
= PREDECREMENT_EXPR
; ;
{ yyval
.code
= BIT_NOT_EXPR
; ;
{ yyval
.code
= TRUTH_NOT_EXPR
; ;
{ yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
{ yyval
.ttype
= NULL_TREE
; ;
{ yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
{ chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
{ yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
{ yyvsp
[0].itype
= pedantic
;
{ yyval
.ttype
= yyvsp
[0].ttype
;
pedantic
= yyvsp
[-2].itype
; ;
{ yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
overflow_warning (yyval
.ttype
); ;
{ tree label
= lookup_label (yyvsp
[0].ttype
);
yyval
.ttype
= null_pointer_node
;
yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
TREE_CONSTANT (yyval
.ttype
) = 1;
{ if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
&& DECL_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
error ("`sizeof' applied to a bit-field");
yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
{ yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
{ yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
{ yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
{ yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
{ yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
{ tree type
= groktypename (yyvsp
[-2].ttype
);
yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
{ tree type
= groktypename (yyvsp
[-5].ttype
);
pedwarn ("ANSI C forbids constructor expressions");
if (TYPE_NAME (type
) != 0)
if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
yyval
.ttype
= digest_init (type
, build_nt (CONSTRUCTOR
, NULL_TREE
, nreverse (yyvsp
[-2].ttype
)),
if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
int failure
= complete_array_type (type
, yyval
.ttype
, 1);
{ yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
); ;
{ yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
/* This inhibits warnings in truthvalue_conversion. */
C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
); ;
yyval
.ttype
= lastiddecl
;
if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
/* Ordinary implicit function declaration. */
yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
assemble_external (yyval
.ttype
);
TREE_USED (yyval
.ttype
) = 1;
else if (current_function_decl
== 0)
error ("`%s' undeclared here (not in a function)",
IDENTIFIER_POINTER (yyvsp
[0].ttype
));
yyval
.ttype
= error_mark_node
;
if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
|| IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
error ("`%s' undeclared (first use this function)",
IDENTIFIER_POINTER (yyvsp
[0].ttype
));
if (! undeclared_variable_notice
)
error ("(Each undeclared identifier is reported only once");
error ("for each function it appears in.)");
undeclared_variable_notice
= 1;
yyval
.ttype
= error_mark_node
;
/* Prevent repeated error messages. */
IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
yyval
.ttype
= error_mark_node
;
else if (C_DECL_ANTICIPATED (yyval
.ttype
))
/* The first time we see a build-in function used,
if it has not been declared. */
C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
/* Omit the implicit declaration we
would ordinarily do, so we don't lose
the actual built in type.
But print a diagnostic for the mismatch. */
if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
error ("`%s' implicitly declared as function",
IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
!= TYPE_MODE (integer_type_node
))
&& (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
/* If it really returns void, change that to int. */
if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
= build_function_type (integer_type_node
,
TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
pedwarn ("built-in function `%s' used without declaration",
IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
/* Do what we would ordinarily do when a fn is used. */
assemble_external (yyval
.ttype
);
TREE_USED (yyval
.ttype
) = 1;
assemble_external (yyval
.ttype
);
TREE_USED (yyval
.ttype
) = 1;
if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
/* This is to prevent an enum whose value is 0
from being considered a null pointer constant. */
yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
TREE_CONSTANT (yyval
.ttype
) = 1;
{ yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
{ char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
if (class == 'e' || class == '1'
|| class == '2' || class == '<')
C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
yyval
.ttype
= yyvsp
[-1].ttype
; ;
{ yyval
.ttype
= error_mark_node
; ;
{ if (current_function_decl
== 0)
error ("braced-group within expression allowed only inside a function");
/* We must force a BLOCK for this level
so that, if it is not expanded later,
there is a way to turn off the entire subtree of blocks
that are contained in it. */
yyval
.ttype
= expand_start_stmt_expr (); ;
pedwarn ("ANSI C forbids braced-groups within expressions");
rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
/* The statements have side effects, so the group does. */
TREE_SIDE_EFFECTS (rtl_exp
) = 1;
/* Make a BIND_EXPR for the BLOCK already made. */
yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
/* Remove the block from the tree at this point.
It gets put back at the proper place
when the BIND_EXPR is expanded. */
delete_block (yyvsp
[-1].ttype
);
{ yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
{ yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
{ yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
{ yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
{ current_declspecs
= TREE_VALUE (declspec_stack
);
declspec_stack
= TREE_CHAIN (declspec_stack
);
resume_momentary (yyvsp
[-2].itype
); ;
{ current_declspecs
= TREE_VALUE (declspec_stack
);
declspec_stack
= TREE_CHAIN (declspec_stack
);
resume_momentary (yyvsp
[-2].itype
); ;
{ shadow_tag_warned (yyvsp
[-1].ttype
, 1);
pedwarn ("empty declaration"); ;
{ pedwarn ("empty declaration"); ;
{ yyval
.itype
= suspend_momentary ();
declspec_stack
= tree_cons (NULL_TREE
, current_declspecs
,
current_declspecs
= yyvsp
[0].ttype
; ;
{ current_declspecs
= TREE_VALUE (declspec_stack
);
declspec_stack
= TREE_CHAIN (declspec_stack
);
resume_momentary (yyvsp
[-2].itype
); ;
{ current_declspecs
= TREE_VALUE (declspec_stack
);
declspec_stack
= TREE_CHAIN (declspec_stack
);
resume_momentary (yyvsp
[-2].itype
); ;
{ current_declspecs
= TREE_VALUE (declspec_stack
);
declspec_stack
= TREE_CHAIN (declspec_stack
);
resume_momentary (yyvsp
[-1].itype
); ;
{ current_declspecs
= TREE_VALUE (declspec_stack
);
declspec_stack
= TREE_CHAIN (declspec_stack
);
resume_momentary (yyvsp
[-1].itype
); ;
{ shadow_tag (yyvsp
[-1].ttype
); ;
{ pedwarn ("empty declaration"); ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
{ yyval
.ttype
= NULL_TREE
; ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
warning ("`%s' is not at beginning of declaration",
IDENTIFIER_POINTER (yyvsp
[0].ttype
));
yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
TREE_STATIC (yyval
.ttype
) = 1; ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
TREE_STATIC (yyval
.ttype
) = 1; ;
{ if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
warning ("`%s' is not at beginning of declaration",
IDENTIFIER_POINTER (yyvsp
[0].ttype
));
yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
{ yyval
.ttype
= NULL_TREE
; ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
{ /* For a typedef name, record the meaning, not the name.
In case of `foo foo, bar;'. */
yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
{ yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= NULL_TREE
; ;
{ if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
yyval
.ttype
= yyvsp
[-1].ttype
;
{ yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1); ;
{ decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
);
finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
{ tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0);
decl_attributes (d
, yyvsp
[0].ttype
);
finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1); ;
{ decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
);
finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
{ tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0);
decl_attributes (d
, yyvsp
[0].ttype
);
finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= NULL_TREE
; ;
{ yyval
.ttype
= yyvsp
[-2].ttype
; ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
{ if (strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "packed"))
warning ("`%s' attribute directive ignored",
IDENTIFIER_POINTER (yyvsp
[0].ttype
));
yyval
.ttype
= yyvsp
[0].ttype
; ;
{ /* If not "mode (m)", then issue warning. */
if (strcmp (IDENTIFIER_POINTER (yyvsp
[-3].ttype
), "mode") != 0)
warning ("`%s' attribute directive ignored",
IDENTIFIER_POINTER (yyvsp
[-3].ttype
));
yyval
.ttype
= yyvsp
[-3].ttype
;
yyval
.ttype
= tree_cons (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
); ;
{ /* if not "aligned(n)", then issue warning */
if (strcmp (IDENTIFIER_POINTER (yyvsp
[-3].ttype
), "aligned") != 0
|| TREE_CODE (yyvsp
[-1].ttype
) != INTEGER_CST
)
warning ("`%s' attribute directive ignored",
IDENTIFIER_POINTER (yyvsp
[-3].ttype
));
yyval
.ttype
= yyvsp
[-3].ttype
;
yyval
.ttype
= tree_cons (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
); ;
{ /* if not "format(...)", then issue warning */
if (strcmp (IDENTIFIER_POINTER (yyvsp
[-7].ttype
), "format") != 0
|| TREE_CODE (yyvsp
[-3].ttype
) != INTEGER_CST
|| TREE_CODE (yyvsp
[-1].ttype
) != INTEGER_CST
)
warning ("`%s' attribute directive ignored",
IDENTIFIER_POINTER (yyvsp
[-7].ttype
));
yyval
.ttype
= yyvsp
[-7].ttype
;
yyval
.ttype
= tree_cons (yyvsp
[-7].ttype
,
tree_cons (yyvsp
[-5].ttype
,
tree_cons (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
),
{ yyval
.ttype
= build_nt (CONSTRUCTOR
, NULL_TREE
, NULL_TREE
);
pedwarn ("ANSI C forbids empty initializer braces"); ;
{ yyval
.ttype
= build_nt (CONSTRUCTOR
, NULL_TREE
, nreverse (yyvsp
[-1].ttype
)); ;
{ yyval
.ttype
= build_nt (CONSTRUCTOR
, NULL_TREE
, nreverse (yyvsp
[-2].ttype
)); ;
{ yyval
.ttype
= NULL_TREE
; ;
{ yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
{ yyval
.ttype
= build_tree_list (tree_cons (yyvsp
[-4].ttype
, NULL_TREE
,
build_tree_list (yyvsp
[-2].ttype
, NULL_TREE
)),
{ yyval
.ttype
= tree_cons (tree_cons (yyvsp
[-4].ttype
, NULL_TREE
,
build_tree_list (yyvsp
[-2].ttype
, NULL_TREE
)),
{ yyval
.ttype
= build_tree_list (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= tree_cons (yyvsp
[-2].ttype
, yyvsp
[0].ttype
, yyvsp
[-5].ttype
); ;
{ yyval
.ttype
= build_tree_list (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= tree_cons (yyvsp
[-2].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
{ push_c_function_context ();
if (! start_function (current_declspecs
, yyvsp
[0].ttype
, 1))
pop_c_function_context ();
reinit_parse_for_function ();
pop_c_function_context (); ;
{ push_c_function_context ();
if (! start_function (current_declspecs
, yyvsp
[0].ttype
, 1))
pop_c_function_context ();
reinit_parse_for_function ();
pop_c_function_context (); ;
{ yyval
.ttype
= yyvsp
[-1].ttype
; ;
{ yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
{ yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
{ yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
{ yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
{ yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
{ yyval
.ttype
= yyvsp
[-1].ttype
; ;
{ yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
{ yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
/* Start scope of tag before parsing components. */
{ yyval
.ttype
= finish_struct (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
/* Really define the structure. */
{ yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
{ yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= finish_struct (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
{ yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
{ yyvsp
[0].itype
= suspend_momentary ();
yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= finish_enum (yyvsp
[-3].ttype
, nreverse (yyvsp
[-2].ttype
));
resume_momentary (yyvsp
[-4].itype
); ;
{ yyvsp
[0].itype
= suspend_momentary ();
yyval
.ttype
= start_enum (NULL_TREE
); ;
{ yyval
.ttype
= finish_enum (yyvsp
[-3].ttype
, nreverse (yyvsp
[-2].ttype
));
resume_momentary (yyvsp
[-4].itype
); ;
{ yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
{ if (pedantic
) pedwarn ("comma at end of enumerator list"); ;
{ yyval
.ttype
= yyvsp
[0].ttype
; ;
{ yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
pedwarn ("no semicolon at end of struct or union"); ;
{ yyval
.ttype
= NULL_TREE
; ;
{ yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
pedwarn ("extra semicolon in struct or union specified"); ;
{ yyval
.ttype
= yyvsp
[0].ttype
;
current_declspecs
= TREE_VALUE (declspec_stack
);
declspec_stack
= TREE_CHAIN (declspec_stack
);
resume_momentary (yyvsp
[-1].itype
); ;
pedwarn ("ANSI C forbids member declarations with no members");
shadow_tag(yyvsp
[0].ttype
);
yyval
.ttype
= NULL_TREE
; ;
{ yyval
.ttype
= yyvsp
[0].ttype
;
current_declspecs
= TREE_VALUE (declspec_stack
);
declspec_stack
= TREE_CHAIN (declspec_stack
);
resume_momentary (yyvsp
[-1].itype
); ;
pedwarn ("ANSI C forbids member declarations with no members");
shadow_tag(yyvsp
[0].ttype
);
yyval
.ttype
= NULL_TREE
; ;
{ yyval
.ttype
= NULL_TREE
; ;
{ yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
{ yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
{ yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= NULL_TREE
; ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= NULL_TREE
; ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= yyvsp
[-1].ttype
; ;
{ yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
{ yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
{ yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
{ yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
{ yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
{ emit_line_note (input_filename
, lineno
);
expand_start_bindings (0);
pedwarn ("ANSI C forbids label declarations"); ;
for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
tree label
= shadow_label (TREE_VALUE (link
));
C_DECLARED_LABEL_FLAG (label
) = 1;
declare_nonlocal_label (label
);
{ yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
{ emit_line_note (input_filename
, lineno
);
expand_end_bindings (getdecls (), 1, 0);
yyval
.ttype
= poplevel (1, 1, 0);
{ emit_line_note (input_filename
, lineno
);
expand_end_bindings (getdecls (), kept_level_p (), 0);
yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
{ emit_line_note (input_filename
, lineno
);
expand_end_bindings (getdecls (), kept_level_p (), 0);
yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
{ emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0);
yyvsp
[-3].itype
= stmt_count
;
if_stmt_file
= yyvsp
[-5].filename
;
if_stmt_line
= yyvsp
[-4].lineno
;
position_after_white_space (); ;
emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
/* See comment in `while' alternative, above. */
expand_start_loop_continue_elsewhere (1);
position_after_white_space (); ;
{ expand_loop_continue_here (); ;
{ yyval
.filename
= input_filename
; ;
{ yyval
.lineno
= lineno
; ;
position_after_white_space ();
if (pedantic
&& next
== '}')
pedwarn ("ANSI C forbids label at end of compound statement");
emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
iterator_expand (yyvsp
[-1].ttype
);
yyvsp
[-1].itype
= stmt_count
;
position_after_white_space (); ;
if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
warning ("empty body in an else-statement"); ;
if (extra_warnings
&& stmt_count
== yyvsp
[0].itype
)
warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
"empty body in an if-statement"); ;
emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
/* The emit_nop used to come before emit_line_note,
but that made the nop seem like part of the preceding line.
And that was confusing when the preceding line was
inside of an if statement and was not really executed.
I think it ought to work to put the nop after the line number.
We will see. --rms, July 15, 1991. */
{ /* Don't start the loop till we have succeeded
in parsing the end test. This is to make sure
that we end every loop we start. */
emit_line_note (input_filename
, lineno
);
expand_exit_loop_if_false (NULL_PTR
,
truthvalue_conversion (yyvsp
[-1].ttype
));
position_after_white_space (); ;
{ emit_line_note (input_filename
, lineno
);
expand_exit_loop_if_false (NULL_PTR
,
truthvalue_conversion (yyvsp
[-2].ttype
));
emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
/* See comment in `while' alternative, above. */
if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
/* Next step is to call expand_start_loop_continue_elsewhere,
but wait till after we parse the entire for (...).
Otherwise, invalid input might cause us to call that
fn without calling expand_end_loop. */
{ yyvsp
[0].lineno
= lineno
;
yyval
.filename
= input_filename
; ;
/* Start the loop. Doing this after parsing
all the expressions ensures we will end the loop. */
expand_start_loop_continue_elsewhere (1);
/* Emit the end-test, with a line number. */
emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
expand_exit_loop_if_false (NULL_PTR
,
truthvalue_conversion (yyvsp
[-4].ttype
));
/* Don't let the tree nodes for $9 be discarded by
clear_momentary during the parsing of the next stmt. */
yyvsp
[-3].lineno
= lineno
;
yyvsp
[-2].filename
= input_filename
;
position_after_white_space (); ;
{ /* Emit the increment expression, with a line number. */
emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
expand_loop_continue_here ();
c_expand_expr_stmt (yyvsp
[-3].ttype
);
emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
c_expand_start_case (yyvsp
[-1].ttype
);
/* Don't let the tree nodes for $3 be discarded by
clear_momentary during the parsing of the next stmt. */
position_after_white_space (); ;
{ expand_end_case (yyvsp
[-3].ttype
);
emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
if ( ! expand_exit_something ())
error ("break statement not within loop or switch"); ;
emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
if (! expand_continue_loop (NULL_PTR
))
error ("continue statement not within a loop"); ;
emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
c_expand_return (NULL_TREE
); ;
emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
c_expand_return (yyvsp
[-1].ttype
); ;
emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
STRIP_NOPS (yyvsp
[-2].ttype
);
if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
&& TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
|| TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
expand_asm (yyvsp
[-2].ttype
);
error ("argument of `asm' is not a constant string"); ;
emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
input_filename
, lineno
); ;
emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
input_filename
, lineno
); ;
emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
input_filename
, lineno
); ;
emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
decl
= lookup_label (yyvsp
[-1].ttype
);
emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
/* The value returned by this action is */
/* 1 if everything is OK */
/* 0 in case of error or already bound iterator */
if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
error ("invalid `for (ITERATOR)' syntax");
if (! ITERATOR_P (yyvsp
[-1].ttype
))
error ("`%s' is not an iterator",
IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
error ("`for (%s)' inside expansion of same iterator",
IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
iterator_for_loop_start (yyvsp
[-1].ttype
);
iterator_for_loop_end (yyvsp
[-3].ttype
);
{ register tree value
= check_case_value (yyvsp
[-1].ttype
);
= build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
if (value
!= error_mark_node
)
int success
= pushcase (value
, label
, &duplicate
);
error ("case label not within a switch statement");
error ("duplicate case value");
error_with_decl (duplicate
, "this is the first entry for that value");
warning ("case value out of range");
error ("case label within scope of cleanup or variable array");
position_after_white_space (); ;
{ register tree value1
= check_case_value (yyvsp
[-3].ttype
);
register tree value2
= check_case_value (yyvsp
[-1].ttype
);
= build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
int success
= pushcase_range (value1
, value2
, label
,
error ("case label not within a switch statement");
error ("duplicate case value");
error_with_decl (duplicate
, "this is the first entry for that value");
warning ("case value out of range");
warning ("empty case range");
error ("case label within scope of cleanup or variable array");
position_after_white_space (); ;
= build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
int success
= pushcase (NULL_TREE
, label
, &duplicate
);
error ("default label not within a switch statement");
error ("multiple default labels in one switch");
error_with_decl (duplicate
, "this is the first default label");
position_after_white_space (); ;
{ tree label
= define_label (input_filename
, lineno
, yyvsp
[-1].ttype
);
position_after_white_space (); ;
{ emit_line_note (input_filename
, lineno
); ;
{ emit_line_note (input_filename
, lineno
); ;
{ yyval
.ttype
= NULL_TREE
; ;
{ yyval
.ttype
= NULL_TREE
; ;
{ yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
declare_parm_level (0); ;
{ yyval
.ttype
= yyvsp
[0].ttype
;
parmlist_tags_warning ();
pedwarn ("ANSI C forbids forward parameter declarations");
/* Mark the forward decls as such. */
for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
TREE_ASM_WRITTEN (parm
) = 1;
{ yyval
.ttype
= yyvsp
[0].ttype
; ;
{ yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
{ yyval
.ttype
= get_parm_info (0); ;
{ yyval
.ttype
= get_parm_info (0);
pedwarn ("ANSI C requires a named argument before `...'");
{ yyval
.ttype
= get_parm_info (1); ;
{ yyval
.ttype
= get_parm_info (0); ;
{ push_parm_decl (yyvsp
[0].ttype
); ;
{ push_parm_decl (yyvsp
[0].ttype
); ;
{ yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
) ; ;
{ yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
) ; ;
{ yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
) ; ;
{ yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
declare_parm_level (1); ;
{ yyval
.ttype
= yyvsp
[0].ttype
;
parmlist_tags_warning ();
for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
if (TREE_VALUE (t
) == NULL_TREE
)
error ("`...' in old-style identifier list");
yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
{ yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
{ yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
{ yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
/* the action file gets copied in in place of this dollarsign */
fprintf (stderr
, "state stack now");
fprintf (stderr
, " %d", *++ssp1
);
yylsp
->first_line
= yylloc
.first_line
;
yylsp
->first_column
= yylloc
.first_column
;
yylsp
->last_line
= (yylsp
-1)->last_line
;
yylsp
->last_column
= (yylsp
-1)->last_column
;
yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
/* Now "shift" the result of the reduction.
Determine what state that goes to,
based on the state we popped back to
and the rule number reduced by. */
yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
yystate
= yytable
[yystate
];
yystate
= yydefgoto
[yyn
- YYNTBASE
];
yyerrlab
: /* here on detecting error */
/* If not already recovering from an error, report this error. */
if (yyn
> YYFLAG
&& yyn
< YYLAST
)
for (x
= 0; x
< (sizeof(yytname
) / sizeof(char *)); x
++)
if (yycheck
[x
+ yyn
] == x
)
size
+= strlen(yytname
[x
]) + 15, count
++;
msg
= (char *) malloc(size
+ 15);
strcpy(msg
, "parse error");
for (x
= 0; x
< (sizeof(yytname
) / sizeof(char *)); x
++)
if (yycheck
[x
+ yyn
] == x
)
strcat(msg
, count
== 0 ? ", expecting `" : " or `");
yyerror ("parse error; also virtual memory exceeded");
#endif /* YYERROR_VERBOSE */
yyerrlab1
: /* here on error raised explicitly by an action */
/* if just tried and failed to reuse lookahead token after an error, discard it. */
/* return failure if at end of input */
fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
/* Else will try to reuse lookahead token
after shifting the error token. */
yyerrstatus
= 3; /* Each real token shifted decrements this */
yyerrdefault
: /* current state does not do anything special for the error token. */
/* This is wrong; only states that explicitly want error tokens
yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
yyerrpop
: /* pop the current state because it cannot handle the error token */
if (yyssp
== yyss
) YYABORT
;
fprintf (stderr
, "Error: state stack now");
fprintf (stderr
, " %d", *++ssp1
);
if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
fprintf(stderr
, "Shifting error token, ");