diff options
Diffstat (limited to 'y.tab.c')
-rw-r--r-- | y.tab.c | 1269 |
1 files changed, 655 insertions, 614 deletions
@@ -776,16 +776,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 117 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 609 +#define YYLAST 669 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 61 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 38 /* YYNRULES -- Number of rules. */ -#define YYNRULES 168 +#define YYNRULES 170 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 335 +#define YYNSTATES 343 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -836,23 +836,24 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 381, 381, 392, 401, 416, 432, 442, 444, 448, - 454, 460, 466, 472, 478, 484, 490, 496, 502, 508, - 514, 520, 526, 532, 538, 545, 552, 559, 566, 573, - 580, 586, 592, 598, 604, 610, 616, 622, 628, 634, - 640, 646, 652, 658, 664, 670, 676, 682, 688, 694, - 700, 706, 712, 720, 722, 724, 728, 732, 743, 745, - 749, 751, 753, 769, 771, 775, 777, 779, 781, 783, - 785, 787, 789, 791, 793, 795, 799, 804, 809, 814, - 819, 824, 829, 834, 841, 847, 853, 859, 867, 872, - 877, 882, 887, 892, 899, 904, 909, 916, 919, 922, - 926, 928, 959, 966, 971, 988, 993, 1010, 1017, 1019, - 1021, 1026, 1030, 1034, 1038, 1040, 1042, 1046, 1047, 1051, - 1053, 1055, 1057, 1061, 1063, 1065, 1067, 1069, 1071, 1075, - 1077, 1086, 1094, 1095, 1101, 1102, 1109, 1113, 1115, 1117, - 1124, 1126, 1128, 1132, 1133, 1136, 1138, 1140, 1144, 1145, - 1154, 1167, 1183, 1198, 1200, 1202, 1209, 1212, 1216, 1218, - 1224, 1230, 1250, 1273, 1275, 1298, 1302, 1304, 1306 + 0, 381, 381, 392, 401, 416, 433, 443, 445, 449, + 455, 461, 467, 473, 479, 485, 491, 497, 503, 509, + 515, 521, 527, 533, 539, 546, 553, 560, 567, 574, + 581, 587, 593, 599, 605, 611, 617, 623, 629, 635, + 641, 647, 653, 659, 665, 671, 677, 683, 689, 695, + 701, 707, 713, 721, 723, 725, 729, 733, 744, 746, + 750, 752, 754, 770, 772, 776, 778, 780, 782, 784, + 786, 788, 790, 792, 794, 796, 800, 805, 810, 815, + 820, 825, 830, 835, 842, 848, 854, 860, 868, 873, + 878, 883, 888, 893, 898, 903, 910, 915, 920, 927, + 930, 933, 937, 939, 970, 977, 982, 999, 1004, 1021, + 1028, 1030, 1032, 1037, 1041, 1045, 1049, 1051, 1053, 1057, + 1058, 1062, 1064, 1066, 1068, 1072, 1074, 1076, 1078, 1080, + 1082, 1086, 1088, 1097, 1105, 1106, 1112, 1113, 1120, 1124, + 1126, 1128, 1135, 1137, 1139, 1143, 1144, 1147, 1149, 1151, + 1155, 1156, 1165, 1178, 1194, 1209, 1211, 1213, 1220, 1223, + 1227, 1229, 1235, 1241, 1261, 1284, 1286, 1309, 1313, 1315, + 1317 }; #endif @@ -899,10 +900,10 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -203 +#define YYPACT_NINF -204 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-203))) + (!!((Yystate) == (-204))) #define YYTABLE_NINF -1 @@ -913,40 +914,41 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 309, -2, -203, -20, 2, 3, -203, -203, 5, 509, - 31, 359, 45, 33, -203, 252, 554, -203, 76, 102, - -8, 105, 131, 108, 128, 152, 157, 162, -203, -203, - 169, 174, -203, -203, 107, -203, -203, 229, -203, 541, - -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, - -203, 61, 244, -203, -28, 359, -203, -203, -203, 200, - 29, -203, 163, 48, 167, 193, 218, 181, 223, 229, - 541, 233, -203, -203, -203, -203, -203, 217, 203, 243, - 253, 145, 255, 146, 277, 279, 285, 287, 292, 297, - 298, 164, 302, 198, 303, 304, 307, 308, 314, -203, - -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, - -203, -203, -203, -203, -203, 228, 281, -203, -203, -203, - -203, 541, -203, -203, -203, -203, -203, 409, 409, -203, - -203, -203, -203, -203, -203, -203, 210, -203, -13, -203, - 87, -203, -203, -203, -203, 148, -203, -203, 282, 155, - 541, 541, -203, -203, -203, -203, -203, -203, -203, -203, - -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, - -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, - -203, -203, -203, -203, -203, -203, 29, 29, 20, 20, - 459, 459, 104, -203, -203, -203, -203, -203, -203, 46, - -203, 68, -203, 328, 291, 75, 119, -203, 324, -203, - 336, 342, -203, 541, -203, 541, 155, -203, -203, -28, - -28, -203, -203, -203, 351, 29, 29, 29, 29, 29, - 350, 81, -203, 78, -203, -203, 358, -203, 197, -203, - 316, -203, -203, -203, -203, -203, -203, 363, 29, 197, - 321, -203, -203, 155, 541, -203, 373, 361, -203, -203, - -203, 91, 91, 91, -203, -203, -203, -203, 260, 130, - -203, -203, 357, -38, 369, 332, -203, -203, -203, 129, - -203, 376, 334, 378, 341, -203, 210, -203, -203, -203, - -203, -203, -203, -203, -203, -203, -30, 374, -203, -203, - -203, 168, -203, -203, -203, -203, -203, -203, 194, 216, - -203, -203, -203, 29, -203, -203, 386, 349, -203, -203, - -203, -203, -203, 29, 393, 365, -203, -203, 400, 366, - -203, -203, -203, -203, -203 + 306, -13, -204, -14, 68, 5, -204, -204, 22, 556, + -12, 356, 21, 4, -204, 601, 614, -204, 43, 58, + 139, 60, 143, 79, 90, 98, 100, 102, -204, -204, + 104, 111, -204, -204, 154, -204, -204, 234, -204, 588, + -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, + -204, 70, 192, -204, 65, 356, -204, -204, -204, 135, + 406, -204, 93, 23, 107, 153, 162, 124, 99, 234, + 588, 167, -204, -204, -204, -204, -204, 165, 133, 178, + 206, 144, 210, 145, 213, 225, 229, 232, 233, 238, + 239, 149, 241, 156, 242, 250, 256, 257, 258, -204, + -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, + -204, -204, -204, -204, -204, 169, 170, -204, -204, -204, + -204, 588, -204, -204, -204, -204, -204, 456, 456, -204, + -204, -204, -204, -204, -204, -204, 184, -204, -10, -204, + 7, -204, -204, -204, -204, 19, -204, -204, 226, 41, + 588, 588, -204, -204, -204, -204, -204, -204, -204, -204, + -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, + -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, + -204, -204, -204, -204, -204, -204, 406, 406, 147, 147, + 506, 506, 201, -204, -204, -204, -204, -204, -204, 11, + -204, 82, -204, 270, 235, 32, 36, -204, 82, -204, + 275, 276, -204, 588, -204, 588, 41, -204, -204, 65, + 65, -204, -204, -204, 285, 406, 406, 406, 406, 406, + 286, 204, -204, -4, -204, -204, 281, -204, 137, -204, + 243, -204, -204, -204, -204, -204, -204, 282, 406, 137, + -204, 244, -204, -204, 41, 588, -204, 293, 299, -204, + -204, -204, 180, 180, 180, -204, -204, -204, -204, 208, + 6, -204, -204, 278, -30, 295, 253, -204, -204, -204, + 46, -204, 300, 263, 310, 268, -204, 184, -204, 74, + -204, -204, -204, -204, -204, -204, -204, -204, -24, 301, + -204, -204, -204, 87, -204, -204, -204, -204, -204, -204, + 109, -204, -204, 248, -204, -204, -204, 406, -204, -204, + 315, 273, -204, -204, 322, 280, -204, -204, -204, 406, + 324, 288, -204, -204, 325, 289, -204, -204, -204, -204, + -204, -204, -204 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -954,49 +956,50 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 0, 148, 0, 0, 0, 148, 148, 0, 0, - 0, 0, 166, 53, 54, 0, 0, 112, 0, 0, + 0, 0, 150, 0, 0, 0, 150, 150, 0, 0, + 0, 0, 168, 53, 54, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, - 0, 0, 148, 148, 0, 55, 58, 60, 165, 61, + 0, 0, 150, 150, 0, 55, 58, 60, 167, 61, 65, 75, 69, 66, 63, 71, 64, 70, 72, 73, - 74, 0, 150, 157, 158, 0, 4, 5, 132, 0, - 0, 148, 148, 0, 148, 0, 0, 148, 53, 107, - 103, 0, 146, 145, 147, 162, 159, 167, 0, 0, + 74, 0, 152, 159, 160, 0, 4, 5, 134, 0, + 0, 150, 150, 0, 150, 0, 0, 150, 53, 109, + 105, 0, 148, 147, 149, 164, 161, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 24, 39, 33, 48, 30, 42, 36, 45, 27, 51, 52, 21, 18, 9, 10, 0, 0, 1, 53, 59, - 56, 62, 143, 144, 2, 148, 148, 151, 152, 148, - 148, 161, 160, 148, 149, 131, 133, 142, 0, 148, - 0, 148, 148, 148, 148, 0, 148, 148, 0, 0, - 105, 104, 113, 168, 148, 17, 26, 41, 35, 50, + 56, 62, 145, 146, 2, 150, 150, 153, 154, 150, + 150, 163, 162, 150, 151, 133, 135, 144, 0, 150, + 0, 150, 150, 150, 150, 0, 150, 150, 0, 0, + 107, 106, 115, 170, 150, 17, 26, 41, 35, 50, 32, 44, 38, 47, 29, 23, 20, 13, 14, 16, 25, 40, 34, 49, 31, 43, 37, 46, 28, 22, - 19, 11, 12, 111, 102, 57, 0, 0, 155, 156, - 0, 0, 0, 148, 148, 148, 148, 148, 148, 0, - 148, 0, 148, 0, 0, 0, 0, 148, 0, 148, - 0, 0, 148, 100, 99, 106, 0, 153, 154, 164, - 163, 148, 148, 108, 0, 0, 0, 135, 136, 134, - 0, 117, 148, 0, 148, 148, 0, 7, 0, 148, - 0, 86, 87, 148, 148, 148, 148, 0, 0, 0, - 0, 67, 68, 0, 101, 97, 0, 0, 110, 137, - 138, 139, 140, 141, 96, 123, 125, 127, 118, 0, - 94, 129, 0, 0, 0, 0, 76, 8, 148, 0, - 77, 0, 0, 0, 0, 88, 0, 148, 89, 98, - 109, 148, 124, 126, 128, 95, 0, 0, 148, 78, - 79, 0, 148, 148, 84, 85, 90, 91, 0, 114, - 148, 130, 119, 120, 148, 148, 0, 0, 148, 148, - 148, 116, 121, 122, 0, 0, 82, 83, 0, 0, - 115, 80, 81, 92, 93 + 19, 11, 12, 113, 104, 57, 0, 0, 157, 158, + 0, 0, 0, 150, 150, 150, 150, 150, 150, 0, + 150, 0, 150, 0, 0, 0, 0, 150, 0, 150, + 0, 0, 150, 102, 101, 108, 0, 155, 156, 166, + 165, 150, 150, 110, 0, 0, 0, 137, 138, 136, + 0, 119, 150, 0, 150, 150, 0, 7, 0, 150, + 0, 86, 87, 150, 150, 150, 150, 0, 0, 0, + 150, 0, 67, 68, 0, 103, 99, 0, 0, 112, + 139, 140, 141, 142, 143, 98, 125, 127, 129, 120, + 0, 96, 131, 0, 0, 0, 0, 76, 8, 150, + 0, 77, 0, 0, 0, 0, 88, 0, 150, 0, + 89, 100, 111, 150, 126, 128, 130, 97, 0, 0, + 150, 78, 79, 0, 150, 150, 84, 85, 90, 91, + 0, 150, 150, 116, 150, 132, 121, 122, 150, 150, + 0, 0, 150, 150, 0, 0, 150, 118, 123, 124, + 0, 0, 82, 83, 0, 0, 94, 95, 117, 80, + 81, 92, 93 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -203, -203, 220, -36, -33, -60, 420, -203, -7, -203, - -203, -203, -203, -203, -123, -203, -203, -203, -203, -203, - -203, 121, -203, 201, -203, 170, -202, -6, -203, 232, - -203, -46, -48, -203, -116, 24, 125, -203 + -204, -204, 140, -36, 35, -60, 345, -204, -7, -204, + -204, -204, -204, -204, -198, -204, -204, -204, -204, -204, + -204, 42, -204, 130, -204, 83, -203, -6, -204, -5, + -204, -46, -48, -204, -120, 24, 66, -204 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -1004,7 +1007,7 @@ static const yytype_int16 yydefgoto[] = { -1, 34, 238, 35, 36, 121, 37, 38, 39, 40, 41, 42, 43, 44, 214, 45, 46, 47, 48, 49, - 50, 224, 230, 231, 232, 273, 58, 59, 135, 136, + 50, 224, 230, 231, 232, 274, 58, 59, 135, 136, 124, 75, 60, 51, 52, 137, 54, 55 }; @@ -1013,130 +1016,142 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint16 yytable[] = { - 65, 66, 70, 120, 119, 247, 61, 250, 198, 131, - 151, 188, 189, 138, 140, 297, 145, 143, 101, 149, - 129, 102, 298, 297, 53, 130, 115, 116, 62, 64, - 310, 67, 2, 63, 120, 76, 119, 3, 134, 4, - 5, 6, 7, 283, 284, 8, 9, 10, 103, 56, - 57, 11, 12, 125, 126, 13, 14, 15, 16, 17, - 234, 150, 141, 71, 18, 19, 20, 21, 22, 77, - 217, 218, 23, 24, 25, 26, 27, 186, 187, 132, - 134, 190, 191, 30, 31, 185, 32, 270, 33, 243, - 215, 199, 78, 255, 237, 205, 206, 134, 72, 73, - 74, 200, 99, 235, 271, 142, 216, 117, 201, 221, - 222, 223, 122, 123, 120, 185, 328, 329, 72, 73, - 74, 265, 266, 267, 193, 194, 134, 192, 100, 134, - 289, 104, 244, 245, 108, 203, 204, 272, 134, 295, - 210, 211, 213, 302, 202, 225, 226, 227, 228, 229, - 233, 53, 53, 254, 109, 239, 271, 105, 2, 248, - 106, 248, 207, 3, 253, 4, 5, 6, 7, 208, - 134, 157, 161, 10, 158, 162, 246, 120, 110, 185, - 134, 134, 314, 111, 269, 17, 303, 107, 112, 272, - 171, 279, 278, 172, 236, 113, 240, 248, 248, 134, - 114, 159, 163, 287, 133, 209, 134, 146, 318, 213, - 53, 53, 32, 139, 33, 256, 257, 144, 185, 134, - 173, 320, 222, 277, 175, 315, 2, 176, 274, 275, - 301, 3, 147, 4, 5, 6, 7, 281, 282, 308, - 148, 10, 153, 193, 194, 134, 213, 72, 73, 74, - 313, 319, 152, 17, 177, 118, 14, 15, 16, 195, - 196, 197, 323, 154, 18, 19, 20, 21, 22, 155, - 248, 248, 23, 24, 25, 26, 27, 125, 126, 156, - 32, 160, 33, 30, 31, 309, 183, 79, 80, 81, - 82, 83, 312, 127, 128, 84, 316, 317, 85, 86, - 292, 293, 294, 164, 322, 165, 87, 88, 324, 325, - 1, 166, 2, 167, 330, 219, 220, 3, 168, 4, - 5, 6, 7, 169, 170, 8, 9, 10, 174, 178, - 179, 11, 12, 180, 181, 13, 14, 15, 16, 17, - 182, 184, 212, 241, 18, 19, 20, 21, 22, 242, - 237, 251, 23, 24, 25, 26, 27, 252, 258, 264, - 28, 29, 2, 30, 31, 291, 32, 3, 33, 4, - 5, 6, 7, 276, 280, 8, 9, 10, 285, 288, - 290, 11, 12, 271, 299, 13, 14, 15, 16, 17, - 300, 304, 305, 306, 18, 19, 20, 21, 22, 307, - 311, 326, 23, 24, 25, 26, 27, 327, 331, 72, - 73, 74, 2, 30, 31, 333, 32, 3, 33, 4, - 5, 6, 7, 332, 334, 8, 9, 10, 249, 69, - 321, 11, 12, 268, 0, 13, 14, 15, 16, 17, - 0, 0, 296, 0, 18, 19, 20, 21, 22, 0, - 0, 0, 23, 24, 25, 26, 27, 259, 260, 261, - 262, 263, 2, 30, 31, 0, 32, 3, 33, 4, - 5, 6, 7, 0, 0, 8, 9, 10, 0, 0, - 286, 0, 0, 0, 0, 13, 14, 15, 16, 17, - 0, 0, 0, 0, 18, 19, 20, 21, 22, 0, - 0, 0, 23, 24, 25, 26, 27, 0, 0, 0, - 134, 0, 2, 30, 31, 0, 32, 3, 33, 4, - 5, 6, 7, 0, 0, 0, 0, 10, 0, 0, - 0, 0, 0, 0, 0, 68, 14, 15, 16, 17, - 0, 0, 0, 0, 18, 19, 20, 21, 22, 0, - 0, 0, 23, 24, 25, 26, 27, 0, 0, 0, - 0, 0, 0, 30, 31, 0, 32, 0, 33, 15, - 16, 0, 0, 0, 0, 0, 18, 19, 20, 21, - 22, 0, 0, 0, 23, 24, 25, 26, 27, 89, - 90, 91, 92, 93, 0, 30, 31, 94, 0, 0, + 65, 66, 70, 120, 247, 271, 251, 188, 189, 131, + 151, 198, 61, 138, 140, 297, 145, 143, 256, 149, + 71, 200, 272, 299, 53, 234, 115, 116, 201, 299, + 300, 64, 272, 207, 120, 76, 314, 141, 56, 57, + 208, 134, 284, 285, 2, 77, 243, 134, 67, 3, + 245, 4, 5, 6, 7, 273, 291, 134, 134, 10, + 304, 150, 134, 78, 202, 273, 217, 218, 235, 99, + 134, 17, 119, 72, 73, 74, 209, 186, 187, 132, + 142, 190, 191, 134, 100, 185, 104, 134, 311, 244, + 215, 199, 134, 246, 62, 205, 206, 134, 32, 63, + 33, 318, 2, 305, 119, 108, 216, 3, 237, 4, + 5, 6, 7, 129, 120, 185, 109, 10, 130, 334, + 335, 122, 123, 322, 110, 134, 111, 192, 112, 17, + 113, 312, 72, 73, 74, 203, 204, 114, 134, 133, + 210, 211, 213, 139, 319, 225, 226, 227, 228, 229, + 233, 53, 53, 255, 117, 239, 32, 144, 33, 248, + 134, 248, 250, 278, 254, 101, 323, 146, 102, 105, + 157, 161, 106, 158, 162, 171, 147, 120, 172, 185, + 125, 126, 175, 148, 270, 176, 152, 72, 73, 74, + 153, 280, 279, 154, 236, 103, 240, 248, 248, 107, + 159, 163, 289, 288, 155, 173, 221, 222, 223, 213, + 53, 53, 177, 193, 194, 257, 258, 193, 194, 185, + 260, 261, 262, 263, 264, 125, 126, 183, 275, 276, + 184, 303, 156, 195, 196, 197, 160, 282, 283, 164, + 310, 127, 128, 287, 266, 267, 268, 213, 294, 295, + 296, 165, 317, 326, 222, 166, 219, 220, 167, 168, + 118, 14, 15, 16, 169, 170, 329, 174, 178, 18, + 19, 20, 21, 22, 248, 248, 179, 23, 24, 25, + 26, 27, 180, 181, 182, 241, 212, 313, 30, 31, + 252, 253, 259, 242, 316, 265, 277, 286, 320, 321, + 292, 281, 290, 293, 272, 324, 325, 1, 328, 2, + 301, 302, 330, 331, 3, 306, 4, 5, 6, 7, + 338, 307, 8, 9, 10, 308, 309, 315, 11, 12, + 332, 333, 13, 14, 15, 16, 17, 336, 337, 339, + 341, 18, 19, 20, 21, 22, 340, 342, 249, 23, + 24, 25, 26, 27, 69, 327, 298, 28, 29, 2, + 30, 31, 269, 32, 3, 33, 4, 5, 6, 7, + 0, 0, 8, 9, 10, 0, 0, 0, 11, 12, + 0, 0, 13, 14, 15, 16, 17, 0, 0, 0, + 0, 18, 19, 20, 21, 22, 0, 0, 0, 23, + 24, 25, 26, 27, 0, 0, 72, 73, 74, 2, + 30, 31, 0, 32, 3, 33, 4, 5, 6, 7, + 0, 0, 8, 9, 10, 0, 0, 0, 11, 12, + 0, 0, 13, 14, 15, 16, 17, 0, 0, 0, + 0, 18, 19, 20, 21, 22, 0, 0, 0, 23, + 24, 25, 26, 27, 0, 0, 0, 134, 0, 2, + 30, 31, 0, 32, 3, 33, 4, 5, 6, 7, + 0, 0, 8, 9, 10, 0, 0, 0, 11, 12, + 0, 0, 13, 14, 15, 16, 17, 0, 0, 0, + 0, 18, 19, 20, 21, 22, 0, 0, 0, 23, + 24, 25, 26, 27, 0, 0, 0, 0, 0, 2, + 30, 31, 0, 32, 3, 33, 4, 5, 6, 7, + 0, 0, 8, 9, 10, 0, 0, 0, 0, 0, + 0, 0, 13, 14, 15, 16, 17, 0, 0, 0, + 0, 18, 19, 20, 21, 22, 0, 0, 0, 23, + 24, 25, 26, 27, 0, 0, 0, 134, 0, 2, + 30, 31, 0, 32, 3, 33, 4, 5, 6, 7, + 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 68, 14, 15, 16, 17, 0, 0, 0, + 0, 18, 19, 20, 21, 22, 0, 0, 0, 23, + 24, 25, 26, 27, 0, 0, 0, 0, 0, 0, + 30, 31, 0, 32, 0, 33, 15, 16, 0, 0, + 0, 0, 0, 18, 19, 20, 21, 22, 0, 0, + 0, 23, 24, 25, 26, 27, 79, 80, 81, 82, + 83, 0, 30, 31, 84, 0, 0, 85, 86, 89, + 90, 91, 92, 93, 0, 87, 88, 94, 0, 0, 95, 96, 0, 0, 0, 0, 0, 0, 97, 98 }; static const yytype_int16 yycheck[] = { - 6, 7, 9, 39, 37, 207, 26, 209, 21, 55, - 70, 127, 128, 61, 62, 53, 64, 63, 26, 67, - 48, 29, 60, 53, 0, 53, 32, 33, 26, 26, - 60, 26, 3, 31, 70, 11, 69, 8, 51, 10, - 11, 12, 13, 245, 246, 16, 17, 18, 56, 51, - 52, 22, 23, 33, 34, 26, 27, 28, 29, 30, - 14, 68, 14, 32, 35, 36, 37, 38, 39, 24, - 186, 187, 43, 44, 45, 46, 47, 125, 126, 55, - 51, 129, 130, 54, 55, 121, 57, 9, 59, 14, - 150, 139, 59, 216, 26, 143, 144, 51, 50, 51, - 52, 14, 26, 57, 26, 57, 154, 0, 21, 5, - 6, 7, 51, 52, 150, 151, 318, 319, 50, 51, - 52, 40, 41, 42, 33, 34, 51, 133, 26, 51, - 253, 26, 57, 14, 26, 141, 142, 59, 51, 9, - 146, 147, 149, 14, 57, 193, 194, 195, 196, 197, - 198, 127, 128, 213, 26, 201, 26, 26, 3, 207, - 29, 209, 14, 8, 212, 10, 11, 12, 13, 21, - 51, 26, 26, 18, 29, 29, 57, 213, 26, 215, - 51, 51, 14, 26, 232, 30, 57, 56, 26, 59, - 26, 239, 238, 29, 200, 26, 202, 245, 246, 51, - 26, 56, 56, 249, 4, 57, 51, 14, 14, 216, - 186, 187, 57, 50, 59, 221, 222, 50, 254, 51, - 56, 5, 6, 26, 26, 57, 3, 29, 234, 235, - 278, 8, 14, 10, 11, 12, 13, 243, 244, 287, - 59, 18, 25, 33, 34, 51, 253, 50, 51, 52, - 298, 57, 19, 30, 56, 26, 27, 28, 29, 49, - 50, 51, 310, 60, 35, 36, 37, 38, 39, 26, - 318, 319, 43, 44, 45, 46, 47, 33, 34, 26, - 57, 26, 59, 54, 55, 291, 58, 35, 36, 37, - 38, 39, 298, 49, 50, 43, 302, 303, 46, 47, - 40, 41, 42, 26, 310, 26, 54, 55, 314, 315, - 1, 26, 3, 26, 320, 190, 191, 8, 26, 10, - 11, 12, 13, 26, 26, 16, 17, 18, 26, 26, - 26, 22, 23, 26, 26, 26, 27, 28, 29, 30, - 26, 60, 60, 15, 35, 36, 37, 38, 39, 58, - 26, 15, 43, 44, 45, 46, 47, 15, 7, 9, - 51, 52, 3, 54, 55, 4, 57, 8, 59, 10, - 11, 12, 13, 15, 58, 16, 17, 18, 15, 58, - 7, 22, 23, 26, 15, 26, 27, 28, 29, 30, - 58, 15, 58, 15, 35, 36, 37, 38, 39, 58, - 26, 15, 43, 44, 45, 46, 47, 58, 15, 50, - 51, 52, 3, 54, 55, 15, 57, 8, 59, 10, - 11, 12, 13, 58, 58, 16, 17, 18, 208, 9, - 309, 22, 23, 232, -1, 26, 27, 28, 29, 30, - -1, -1, 272, -1, 35, 36, 37, 38, 39, -1, - -1, -1, 43, 44, 45, 46, 47, 225, 226, 227, - 228, 229, 3, 54, 55, -1, 57, 8, 59, 10, - 11, 12, 13, -1, -1, 16, 17, 18, -1, -1, - 248, -1, -1, -1, -1, 26, 27, 28, 29, 30, - -1, -1, -1, -1, 35, 36, 37, 38, 39, -1, - -1, -1, 43, 44, 45, 46, 47, -1, -1, -1, - 51, -1, 3, 54, 55, -1, 57, 8, 59, 10, - 11, 12, 13, -1, -1, -1, -1, 18, -1, -1, - -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, - -1, -1, -1, -1, 35, 36, 37, 38, 39, -1, - -1, -1, 43, 44, 45, 46, 47, -1, -1, -1, - -1, -1, -1, 54, 55, -1, 57, -1, 59, 28, - 29, -1, -1, -1, -1, -1, 35, 36, 37, 38, - 39, -1, -1, -1, 43, 44, 45, 46, 47, 35, + 6, 7, 9, 39, 207, 9, 209, 127, 128, 55, + 70, 21, 26, 61, 62, 9, 64, 63, 216, 67, + 32, 14, 26, 53, 0, 14, 32, 33, 21, 53, + 60, 26, 26, 14, 70, 11, 60, 14, 51, 52, + 21, 51, 245, 246, 3, 24, 14, 51, 26, 8, + 14, 10, 11, 12, 13, 59, 254, 51, 51, 18, + 14, 68, 51, 59, 57, 59, 186, 187, 57, 26, + 51, 30, 37, 50, 51, 52, 57, 125, 126, 55, + 57, 129, 130, 51, 26, 121, 26, 51, 14, 57, + 150, 139, 51, 57, 26, 143, 144, 51, 57, 31, + 59, 14, 3, 57, 69, 26, 154, 8, 26, 10, + 11, 12, 13, 48, 150, 151, 26, 18, 53, 322, + 323, 51, 52, 14, 26, 51, 26, 133, 26, 30, + 26, 57, 50, 51, 52, 141, 142, 26, 51, 4, + 146, 147, 149, 50, 57, 193, 194, 195, 196, 197, + 198, 127, 128, 213, 0, 201, 57, 50, 59, 207, + 51, 209, 208, 26, 212, 26, 57, 14, 29, 26, + 26, 26, 29, 29, 29, 26, 14, 213, 29, 215, + 33, 34, 26, 59, 232, 29, 19, 50, 51, 52, + 25, 239, 238, 60, 200, 56, 202, 245, 246, 56, + 56, 56, 250, 249, 26, 56, 5, 6, 7, 216, + 186, 187, 56, 33, 34, 221, 222, 33, 34, 255, + 225, 226, 227, 228, 229, 33, 34, 58, 234, 235, + 60, 279, 26, 49, 50, 51, 26, 243, 244, 26, + 288, 49, 50, 248, 40, 41, 42, 254, 40, 41, + 42, 26, 300, 5, 6, 26, 190, 191, 26, 26, + 26, 27, 28, 29, 26, 26, 314, 26, 26, 35, + 36, 37, 38, 39, 322, 323, 26, 43, 44, 45, + 46, 47, 26, 26, 26, 15, 60, 293, 54, 55, + 15, 15, 7, 58, 300, 9, 15, 15, 304, 305, + 7, 58, 58, 4, 26, 311, 312, 1, 314, 3, + 15, 58, 318, 319, 8, 15, 10, 11, 12, 13, + 326, 58, 16, 17, 18, 15, 58, 26, 22, 23, + 15, 58, 26, 27, 28, 29, 30, 15, 58, 15, + 15, 35, 36, 37, 38, 39, 58, 58, 208, 43, + 44, 45, 46, 47, 9, 313, 273, 51, 52, 3, + 54, 55, 232, 57, 8, 59, 10, 11, 12, 13, + -1, -1, 16, 17, 18, -1, -1, -1, 22, 23, + -1, -1, 26, 27, 28, 29, 30, -1, -1, -1, + -1, 35, 36, 37, 38, 39, -1, -1, -1, 43, + 44, 45, 46, 47, -1, -1, 50, 51, 52, 3, + 54, 55, -1, 57, 8, 59, 10, 11, 12, 13, + -1, -1, 16, 17, 18, -1, -1, -1, 22, 23, + -1, -1, 26, 27, 28, 29, 30, -1, -1, -1, + -1, 35, 36, 37, 38, 39, -1, -1, -1, 43, + 44, 45, 46, 47, -1, -1, -1, 51, -1, 3, + 54, 55, -1, 57, 8, 59, 10, 11, 12, 13, + -1, -1, 16, 17, 18, -1, -1, -1, 22, 23, + -1, -1, 26, 27, 28, 29, 30, -1, -1, -1, + -1, 35, 36, 37, 38, 39, -1, -1, -1, 43, + 44, 45, 46, 47, -1, -1, -1, -1, -1, 3, + 54, 55, -1, 57, 8, 59, 10, 11, 12, 13, + -1, -1, 16, 17, 18, -1, -1, -1, -1, -1, + -1, -1, 26, 27, 28, 29, 30, -1, -1, -1, + -1, 35, 36, 37, 38, 39, -1, -1, -1, 43, + 44, 45, 46, 47, -1, -1, -1, 51, -1, 3, + 54, 55, -1, 57, 8, 59, 10, 11, 12, 13, + -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, + -1, -1, 26, 27, 28, 29, 30, -1, -1, -1, + -1, 35, 36, 37, 38, 39, -1, -1, -1, 43, + 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, + 54, 55, -1, 57, -1, 59, 28, 29, -1, -1, + -1, -1, -1, 35, 36, 37, 38, 39, -1, -1, + -1, 43, 44, 45, 46, 47, 35, 36, 37, 38, + 39, -1, 54, 55, 43, -1, -1, 46, 47, 35, 36, 37, 38, 39, -1, 54, 55, 43, -1, -1, 46, 47, -1, -1, -1, -1, -1, -1, 54, 55 }; @@ -1170,15 +1185,16 @@ static const yytype_uint8 yystos[] = 97, 5, 6, 7, 82, 93, 93, 93, 93, 93, 83, 84, 85, 93, 14, 57, 88, 26, 63, 92, 88, 15, 58, 14, 57, 14, 57, 87, 93, 63, - 87, 15, 15, 93, 66, 75, 88, 88, 7, 90, - 90, 90, 90, 90, 9, 40, 41, 42, 84, 93, - 9, 26, 59, 86, 88, 88, 15, 26, 92, 93, - 58, 88, 88, 87, 87, 15, 90, 92, 58, 75, - 7, 4, 40, 41, 42, 9, 86, 53, 60, 15, - 58, 93, 14, 57, 15, 58, 15, 58, 93, 88, - 60, 26, 88, 93, 14, 57, 88, 88, 14, 57, - 5, 82, 88, 93, 88, 88, 15, 58, 87, 87, - 88, 15, 58, 15, 58 + 92, 87, 15, 15, 93, 66, 75, 88, 88, 7, + 90, 90, 90, 90, 90, 9, 40, 41, 42, 84, + 93, 9, 26, 59, 86, 88, 88, 15, 26, 92, + 93, 58, 88, 88, 87, 87, 15, 90, 92, 93, + 58, 75, 7, 4, 40, 41, 42, 9, 86, 53, + 60, 15, 58, 93, 14, 57, 15, 58, 15, 58, + 93, 14, 57, 88, 60, 26, 88, 93, 14, 57, + 88, 88, 14, 57, 88, 88, 5, 82, 88, 93, + 88, 88, 15, 58, 87, 87, 15, 58, 88, 15, + 58, 15, 58 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -1193,14 +1209,15 @@ static const yytype_uint8 yyr1[] = 68, 68, 68, 68, 68, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 70, 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71, 72, 72, - 72, 72, 72, 72, 73, 73, 73, 74, 74, 74, - 75, 75, 76, 77, 77, 77, 77, 77, 78, 78, - 78, 79, 80, 81, 82, 82, 82, 83, 83, 84, - 84, 84, 84, 85, 85, 85, 85, 85, 85, 86, - 86, 87, 88, 88, 89, 89, 89, 90, 90, 90, - 90, 90, 90, 91, 91, 92, 92, 92, 93, 93, - 94, 94, 94, 95, 95, 95, 95, 95, 96, 96, - 96, 96, 96, 97, 97, 97, 98, 98, 98 + 72, 72, 72, 72, 72, 72, 73, 73, 73, 74, + 74, 74, 75, 75, 76, 77, 77, 77, 77, 77, + 78, 78, 78, 79, 80, 81, 82, 82, 82, 83, + 83, 84, 84, 84, 84, 85, 85, 85, 85, 85, + 85, 86, 86, 87, 88, 88, 89, 89, 89, 90, + 90, 90, 90, 90, 90, 91, 91, 92, 92, 92, + 93, 93, 94, 94, 94, 95, 95, 95, 95, 95, + 96, 96, 96, 96, 96, 97, 97, 97, 98, 98, + 98 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1215,14 +1232,15 @@ static const yytype_uint8 yyr2[] = 1, 1, 2, 1, 1, 1, 1, 5, 5, 1, 1, 1, 1, 1, 1, 1, 6, 6, 7, 7, 10, 10, 9, 9, 7, 7, 5, 5, 6, 6, - 7, 7, 10, 10, 6, 7, 6, 5, 6, 4, - 1, 2, 3, 2, 3, 3, 4, 2, 5, 7, - 6, 3, 1, 3, 4, 6, 5, 1, 2, 4, - 4, 5, 5, 2, 3, 2, 3, 2, 3, 1, - 3, 2, 1, 2, 3, 3, 3, 4, 4, 4, - 4, 4, 1, 1, 1, 1, 1, 1, 0, 2, - 1, 2, 2, 4, 4, 3, 3, 1, 1, 2, - 2, 2, 2, 4, 4, 1, 1, 2, 3 + 7, 7, 10, 10, 9, 9, 6, 7, 6, 5, + 6, 4, 1, 2, 3, 2, 3, 3, 4, 2, + 5, 7, 6, 3, 1, 3, 4, 6, 5, 1, + 2, 4, 4, 5, 5, 2, 3, 2, 3, 2, + 3, 1, 3, 2, 1, 2, 3, 3, 3, 4, + 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, + 0, 2, 1, 2, 2, 4, 4, 3, 3, 1, + 1, 2, 2, 2, 2, 4, 4, 1, 1, 2, + 3 }; @@ -1911,7 +1929,7 @@ yyreduce: parser_state |= PST_EOFTOKEN; YYACCEPT; } -#line 1915 "y.tab.c" /* yacc.c:1648 */ +#line 1933 "y.tab.c" /* yacc.c:1648 */ break; case 3: @@ -1924,7 +1942,7 @@ yyreduce: parser_state |= PST_EOFTOKEN; YYACCEPT; } -#line 1928 "y.tab.c" /* yacc.c:1648 */ +#line 1946 "y.tab.c" /* yacc.c:1648 */ break; case 4: @@ -1943,7 +1961,7 @@ yyreduce: YYABORT; } } -#line 1947 "y.tab.c" /* yacc.c:1648 */ +#line 1965 "y.tab.c" /* yacc.c:1648 */ break; case 5: @@ -1952,7 +1970,8 @@ yyreduce: /* EOF after an error. Do ignoreeof or not. Really only interesting in non-interactive shells */ global_command = (COMMAND *)NULL; - last_command_exit_value = 1; + if (last_command_exit_value == 0) + last_command_exit_value = EX_BADUSAGE; /* force error return */ handle_eof_input_unit (); if (interactive && parse_and_execute_level == 0) { @@ -1963,11 +1982,11 @@ yyreduce: YYABORT; } } -#line 1967 "y.tab.c" /* yacc.c:1648 */ +#line 1986 "y.tab.c" /* yacc.c:1648 */ break; case 6: -#line 433 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 434 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { /* Case of EOF seen by itself. Do ignoreeof or not. */ @@ -1975,495 +1994,495 @@ yyreduce: handle_eof_input_unit (); YYACCEPT; } -#line 1979 "y.tab.c" /* yacc.c:1648 */ +#line 1998 "y.tab.c" /* yacc.c:1648 */ break; case 7: -#line 443 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 444 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.word_list) = make_word_list ((yyvsp[0].word), (WORD_LIST *)NULL); } -#line 1985 "y.tab.c" /* yacc.c:1648 */ +#line 2004 "y.tab.c" /* yacc.c:1648 */ break; case 8: -#line 445 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 446 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.word_list) = make_word_list ((yyvsp[0].word), (yyvsp[-1].word_list)); } -#line 1991 "y.tab.c" /* yacc.c:1648 */ +#line 2010 "y.tab.c" /* yacc.c:1648 */ break; case 9: -#line 449 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 450 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 1; redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0); } -#line 2001 "y.tab.c" /* yacc.c:1648 */ +#line 2020 "y.tab.c" /* yacc.c:1648 */ break; case 10: -#line 455 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 456 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 0; redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0); } -#line 2011 "y.tab.c" /* yacc.c:1648 */ +#line 2030 "y.tab.c" /* yacc.c:1648 */ break; case 11: -#line 461 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 462 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = (yyvsp[-2].number); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0); } -#line 2021 "y.tab.c" /* yacc.c:1648 */ +#line 2040 "y.tab.c" /* yacc.c:1648 */ break; case 12: -#line 467 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 468 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = (yyvsp[-2].number); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0); } -#line 2031 "y.tab.c" /* yacc.c:1648 */ +#line 2050 "y.tab.c" /* yacc.c:1648 */ break; case 13: -#line 473 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 474 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.filename = (yyvsp[-2].word); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_output_direction, redir, REDIR_VARASSIGN); } -#line 2041 "y.tab.c" /* yacc.c:1648 */ +#line 2060 "y.tab.c" /* yacc.c:1648 */ break; case 14: -#line 479 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 480 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.filename = (yyvsp[-2].word); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_input_direction, redir, REDIR_VARASSIGN); } -#line 2051 "y.tab.c" /* yacc.c:1648 */ +#line 2070 "y.tab.c" /* yacc.c:1648 */ break; case 15: -#line 485 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 486 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 1; redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0); } -#line 2061 "y.tab.c" /* yacc.c:1648 */ +#line 2080 "y.tab.c" /* yacc.c:1648 */ break; case 16: -#line 491 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 492 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = (yyvsp[-2].number); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0); } -#line 2071 "y.tab.c" /* yacc.c:1648 */ +#line 2090 "y.tab.c" /* yacc.c:1648 */ break; case 17: -#line 497 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 498 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.filename = (yyvsp[-2].word); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_appending_to, redir, REDIR_VARASSIGN); } -#line 2081 "y.tab.c" /* yacc.c:1648 */ +#line 2100 "y.tab.c" /* yacc.c:1648 */ break; case 18: -#line 503 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 504 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 1; redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_output_force, redir, 0); } -#line 2091 "y.tab.c" /* yacc.c:1648 */ +#line 2110 "y.tab.c" /* yacc.c:1648 */ break; case 19: -#line 509 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 510 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = (yyvsp[-2].number); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_output_force, redir, 0); } -#line 2101 "y.tab.c" /* yacc.c:1648 */ +#line 2120 "y.tab.c" /* yacc.c:1648 */ break; case 20: -#line 515 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 516 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.filename = (yyvsp[-2].word); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_output_force, redir, REDIR_VARASSIGN); } -#line 2111 "y.tab.c" /* yacc.c:1648 */ +#line 2130 "y.tab.c" /* yacc.c:1648 */ break; case 21: -#line 521 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 522 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 0; redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_input_output, redir, 0); } -#line 2121 "y.tab.c" /* yacc.c:1648 */ +#line 2140 "y.tab.c" /* yacc.c:1648 */ break; case 22: -#line 527 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 528 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = (yyvsp[-2].number); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_input_output, redir, 0); } -#line 2131 "y.tab.c" /* yacc.c:1648 */ +#line 2150 "y.tab.c" /* yacc.c:1648 */ break; case 23: -#line 533 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 534 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.filename = (yyvsp[-2].word); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_input_output, redir, REDIR_VARASSIGN); } -#line 2141 "y.tab.c" /* yacc.c:1648 */ +#line 2160 "y.tab.c" /* yacc.c:1648 */ break; case 24: -#line 539 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 540 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 0; redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); push_heredoc ((yyval.redirect)); } -#line 2152 "y.tab.c" /* yacc.c:1648 */ +#line 2171 "y.tab.c" /* yacc.c:1648 */ break; case 25: -#line 546 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 547 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = (yyvsp[-2].number); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); push_heredoc ((yyval.redirect)); } -#line 2163 "y.tab.c" /* yacc.c:1648 */ +#line 2182 "y.tab.c" /* yacc.c:1648 */ break; case 26: -#line 553 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 554 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.filename = (yyvsp[-2].word); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); push_heredoc ((yyval.redirect)); } -#line 2174 "y.tab.c" /* yacc.c:1648 */ +#line 2193 "y.tab.c" /* yacc.c:1648 */ break; case 27: -#line 560 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 561 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 0; redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); push_heredoc ((yyval.redirect)); } -#line 2185 "y.tab.c" /* yacc.c:1648 */ +#line 2204 "y.tab.c" /* yacc.c:1648 */ break; case 28: -#line 567 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 568 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = (yyvsp[-2].number); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); push_heredoc ((yyval.redirect)); } -#line 2196 "y.tab.c" /* yacc.c:1648 */ +#line 2215 "y.tab.c" /* yacc.c:1648 */ break; case 29: -#line 574 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 575 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.filename = (yyvsp[-2].word); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); push_heredoc ((yyval.redirect)); } -#line 2207 "y.tab.c" /* yacc.c:1648 */ +#line 2226 "y.tab.c" /* yacc.c:1648 */ break; case 30: -#line 581 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 582 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 0; redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0); } -#line 2217 "y.tab.c" /* yacc.c:1648 */ +#line 2236 "y.tab.c" /* yacc.c:1648 */ break; case 31: -#line 587 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 588 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = (yyvsp[-2].number); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0); } -#line 2227 "y.tab.c" /* yacc.c:1648 */ +#line 2246 "y.tab.c" /* yacc.c:1648 */ break; case 32: -#line 593 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 594 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.filename = (yyvsp[-2].word); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_reading_string, redir, REDIR_VARASSIGN); } -#line 2237 "y.tab.c" /* yacc.c:1648 */ +#line 2256 "y.tab.c" /* yacc.c:1648 */ break; case 33: -#line 599 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 600 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 0; redir.dest = (yyvsp[0].number); (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0); } -#line 2247 "y.tab.c" /* yacc.c:1648 */ +#line 2266 "y.tab.c" /* yacc.c:1648 */ break; case 34: -#line 605 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 606 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = (yyvsp[-2].number); redir.dest = (yyvsp[0].number); (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0); } -#line 2257 "y.tab.c" /* yacc.c:1648 */ +#line 2276 "y.tab.c" /* yacc.c:1648 */ break; case 35: -#line 611 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 612 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.filename = (yyvsp[-2].word); redir.dest = (yyvsp[0].number); (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, REDIR_VARASSIGN); } -#line 2267 "y.tab.c" /* yacc.c:1648 */ +#line 2286 "y.tab.c" /* yacc.c:1648 */ break; case 36: -#line 617 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 618 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 1; redir.dest = (yyvsp[0].number); (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0); } -#line 2277 "y.tab.c" /* yacc.c:1648 */ +#line 2296 "y.tab.c" /* yacc.c:1648 */ break; case 37: -#line 623 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 624 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = (yyvsp[-2].number); redir.dest = (yyvsp[0].number); (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0); } -#line 2287 "y.tab.c" /* yacc.c:1648 */ +#line 2306 "y.tab.c" /* yacc.c:1648 */ break; case 38: -#line 629 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 630 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.filename = (yyvsp[-2].word); redir.dest = (yyvsp[0].number); (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, REDIR_VARASSIGN); } -#line 2297 "y.tab.c" /* yacc.c:1648 */ +#line 2316 "y.tab.c" /* yacc.c:1648 */ break; case 39: -#line 635 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 636 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 0; redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0); } -#line 2307 "y.tab.c" /* yacc.c:1648 */ +#line 2326 "y.tab.c" /* yacc.c:1648 */ break; case 40: -#line 641 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 642 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = (yyvsp[-2].number); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0); } -#line 2317 "y.tab.c" /* yacc.c:1648 */ +#line 2336 "y.tab.c" /* yacc.c:1648 */ break; case 41: -#line 647 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 648 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.filename = (yyvsp[-2].word); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, REDIR_VARASSIGN); } -#line 2327 "y.tab.c" /* yacc.c:1648 */ +#line 2346 "y.tab.c" /* yacc.c:1648 */ break; case 42: -#line 653 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 654 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 1; redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0); } -#line 2337 "y.tab.c" /* yacc.c:1648 */ +#line 2356 "y.tab.c" /* yacc.c:1648 */ break; case 43: -#line 659 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 660 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = (yyvsp[-2].number); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0); } -#line 2347 "y.tab.c" /* yacc.c:1648 */ +#line 2366 "y.tab.c" /* yacc.c:1648 */ break; case 44: -#line 665 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 666 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.filename = (yyvsp[-2].word); redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, REDIR_VARASSIGN); } -#line 2357 "y.tab.c" /* yacc.c:1648 */ +#line 2376 "y.tab.c" /* yacc.c:1648 */ break; case 45: -#line 671 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 672 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 1; redir.dest = 0; (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); } -#line 2367 "y.tab.c" /* yacc.c:1648 */ +#line 2386 "y.tab.c" /* yacc.c:1648 */ break; case 46: -#line 677 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 678 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = (yyvsp[-2].number); redir.dest = 0; (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); } -#line 2377 "y.tab.c" /* yacc.c:1648 */ +#line 2396 "y.tab.c" /* yacc.c:1648 */ break; case 47: -#line 683 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 684 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.filename = (yyvsp[-2].word); redir.dest = 0; (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); } -#line 2387 "y.tab.c" /* yacc.c:1648 */ +#line 2406 "y.tab.c" /* yacc.c:1648 */ break; case 48: -#line 689 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 690 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 0; redir.dest = 0; (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); } -#line 2397 "y.tab.c" /* yacc.c:1648 */ +#line 2416 "y.tab.c" /* yacc.c:1648 */ break; case 49: -#line 695 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 696 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = (yyvsp[-2].number); redir.dest = 0; (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); } -#line 2407 "y.tab.c" /* yacc.c:1648 */ +#line 2426 "y.tab.c" /* yacc.c:1648 */ break; case 50: -#line 701 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 702 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.filename = (yyvsp[-2].word); redir.dest = 0; (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); } -#line 2417 "y.tab.c" /* yacc.c:1648 */ +#line 2436 "y.tab.c" /* yacc.c:1648 */ break; case 51: -#line 707 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 708 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 1; redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_err_and_out, redir, 0); } -#line 2427 "y.tab.c" /* yacc.c:1648 */ +#line 2446 "y.tab.c" /* yacc.c:1648 */ break; case 52: -#line 713 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 714 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { source.dest = 1; redir.filename = (yyvsp[0].word); (yyval.redirect) = make_redirection (source, r_append_err_and_out, redir, 0); } -#line 2437 "y.tab.c" /* yacc.c:1648 */ +#line 2456 "y.tab.c" /* yacc.c:1648 */ break; case 53: -#line 721 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 722 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.element).word = (yyvsp[0].word); (yyval.element).redirect = 0; } -#line 2443 "y.tab.c" /* yacc.c:1648 */ +#line 2462 "y.tab.c" /* yacc.c:1648 */ break; case 54: -#line 723 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 724 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.element).word = (yyvsp[0].word); (yyval.element).redirect = 0; } -#line 2449 "y.tab.c" /* yacc.c:1648 */ +#line 2468 "y.tab.c" /* yacc.c:1648 */ break; case 55: -#line 725 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 726 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.element).redirect = (yyvsp[0].redirect); (yyval.element).word = 0; } -#line 2455 "y.tab.c" /* yacc.c:1648 */ +#line 2474 "y.tab.c" /* yacc.c:1648 */ break; case 56: -#line 729 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 730 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.redirect) = (yyvsp[0].redirect); } -#line 2463 "y.tab.c" /* yacc.c:1648 */ +#line 2482 "y.tab.c" /* yacc.c:1648 */ break; case 57: -#line 733 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 734 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { register REDIRECT *t; @@ -2472,35 +2491,35 @@ yyreduce: t->next = (yyvsp[0].redirect); (yyval.redirect) = (yyvsp[-1].redirect); } -#line 2476 "y.tab.c" /* yacc.c:1648 */ +#line 2495 "y.tab.c" /* yacc.c:1648 */ break; case 58: -#line 744 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 745 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_simple_command ((yyvsp[0].element), (COMMAND *)NULL); } -#line 2482 "y.tab.c" /* yacc.c:1648 */ +#line 2501 "y.tab.c" /* yacc.c:1648 */ break; case 59: -#line 746 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 747 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_simple_command ((yyvsp[0].element), (yyvsp[-1].command)); } -#line 2488 "y.tab.c" /* yacc.c:1648 */ +#line 2507 "y.tab.c" /* yacc.c:1648 */ break; case 60: -#line 750 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 751 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = clean_simple_command ((yyvsp[0].command)); } -#line 2494 "y.tab.c" /* yacc.c:1648 */ +#line 2513 "y.tab.c" /* yacc.c:1648 */ break; case 61: -#line 752 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 753 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 2500 "y.tab.c" /* yacc.c:1648 */ +#line 2519 "y.tab.c" /* yacc.c:1648 */ break; case 62: -#line 754 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 755 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { COMMAND *tc; @@ -2516,306 +2535,324 @@ yyreduce: tc->redirects = (yyvsp[0].redirect); (yyval.command) = (yyvsp[-1].command); } -#line 2520 "y.tab.c" /* yacc.c:1648 */ +#line 2539 "y.tab.c" /* yacc.c:1648 */ break; case 63: -#line 770 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 771 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 2526 "y.tab.c" /* yacc.c:1648 */ +#line 2545 "y.tab.c" /* yacc.c:1648 */ break; case 64: -#line 772 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 773 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 2532 "y.tab.c" /* yacc.c:1648 */ +#line 2551 "y.tab.c" /* yacc.c:1648 */ break; case 65: -#line 776 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 777 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 2538 "y.tab.c" /* yacc.c:1648 */ +#line 2557 "y.tab.c" /* yacc.c:1648 */ break; case 66: -#line 778 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 779 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 2544 "y.tab.c" /* yacc.c:1648 */ +#line 2563 "y.tab.c" /* yacc.c:1648 */ break; case 67: -#line 780 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 781 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_while_command ((yyvsp[-3].command), (yyvsp[-1].command)); } -#line 2550 "y.tab.c" /* yacc.c:1648 */ +#line 2569 "y.tab.c" /* yacc.c:1648 */ break; case 68: -#line 782 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 783 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_until_command ((yyvsp[-3].command), (yyvsp[-1].command)); } -#line 2556 "y.tab.c" /* yacc.c:1648 */ +#line 2575 "y.tab.c" /* yacc.c:1648 */ break; case 69: -#line 784 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 785 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 2562 "y.tab.c" /* yacc.c:1648 */ +#line 2581 "y.tab.c" /* yacc.c:1648 */ break; case 70: -#line 786 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 787 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 2568 "y.tab.c" /* yacc.c:1648 */ +#line 2587 "y.tab.c" /* yacc.c:1648 */ break; case 71: -#line 788 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 789 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 2574 "y.tab.c" /* yacc.c:1648 */ +#line 2593 "y.tab.c" /* yacc.c:1648 */ break; case 72: -#line 790 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 791 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 2580 "y.tab.c" /* yacc.c:1648 */ +#line 2599 "y.tab.c" /* yacc.c:1648 */ break; case 73: -#line 792 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 793 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 2586 "y.tab.c" /* yacc.c:1648 */ +#line 2605 "y.tab.c" /* yacc.c:1648 */ break; case 74: -#line 794 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 795 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 2592 "y.tab.c" /* yacc.c:1648 */ +#line 2611 "y.tab.c" /* yacc.c:1648 */ break; case 75: -#line 796 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 797 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 2598 "y.tab.c" /* yacc.c:1648 */ +#line 2617 "y.tab.c" /* yacc.c:1648 */ break; case 76: -#line 800 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 801 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_for_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2607 "y.tab.c" /* yacc.c:1648 */ +#line 2626 "y.tab.c" /* yacc.c:1648 */ break; case 77: -#line 805 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 806 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_for_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2616 "y.tab.c" /* yacc.c:1648 */ +#line 2635 "y.tab.c" /* yacc.c:1648 */ break; case 78: -#line 810 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 811 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_for_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2625 "y.tab.c" /* yacc.c:1648 */ +#line 2644 "y.tab.c" /* yacc.c:1648 */ break; case 79: -#line 815 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 816 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_for_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2634 "y.tab.c" /* yacc.c:1648 */ +#line 2653 "y.tab.c" /* yacc.c:1648 */ break; case 80: -#line 820 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 821 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_for_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2643 "y.tab.c" /* yacc.c:1648 */ +#line 2662 "y.tab.c" /* yacc.c:1648 */ break; case 81: -#line 825 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 826 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_for_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2652 "y.tab.c" /* yacc.c:1648 */ +#line 2671 "y.tab.c" /* yacc.c:1648 */ break; case 82: -#line 830 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 831 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_for_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2661 "y.tab.c" /* yacc.c:1648 */ +#line 2680 "y.tab.c" /* yacc.c:1648 */ break; case 83: -#line 835 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 836 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_for_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2670 "y.tab.c" /* yacc.c:1648 */ +#line 2689 "y.tab.c" /* yacc.c:1648 */ break; case 84: -#line 842 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 843 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_arith_for_command ((yyvsp[-5].word_list), (yyvsp[-1].command), arith_for_lineno); if ((yyval.command) == 0) YYERROR; if (word_top > 0) word_top--; } -#line 2680 "y.tab.c" /* yacc.c:1648 */ +#line 2699 "y.tab.c" /* yacc.c:1648 */ break; case 85: -#line 848 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 849 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_arith_for_command ((yyvsp[-5].word_list), (yyvsp[-1].command), arith_for_lineno); if ((yyval.command) == 0) YYERROR; if (word_top > 0) word_top--; } -#line 2690 "y.tab.c" /* yacc.c:1648 */ +#line 2709 "y.tab.c" /* yacc.c:1648 */ break; case 86: -#line 854 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 855 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_arith_for_command ((yyvsp[-3].word_list), (yyvsp[-1].command), arith_for_lineno); if ((yyval.command) == 0) YYERROR; if (word_top > 0) word_top--; } -#line 2700 "y.tab.c" /* yacc.c:1648 */ +#line 2719 "y.tab.c" /* yacc.c:1648 */ break; case 87: -#line 860 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 861 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_arith_for_command ((yyvsp[-3].word_list), (yyvsp[-1].command), arith_for_lineno); if ((yyval.command) == 0) YYERROR; if (word_top > 0) word_top--; } -#line 2710 "y.tab.c" /* yacc.c:1648 */ +#line 2729 "y.tab.c" /* yacc.c:1648 */ break; case 88: -#line 868 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 869 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_select_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2719 "y.tab.c" /* yacc.c:1648 */ +#line 2738 "y.tab.c" /* yacc.c:1648 */ break; case 89: -#line 873 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 874 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_select_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2728 "y.tab.c" /* yacc.c:1648 */ +#line 2747 "y.tab.c" /* yacc.c:1648 */ break; case 90: -#line 878 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 879 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_select_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2737 "y.tab.c" /* yacc.c:1648 */ +#line 2756 "y.tab.c" /* yacc.c:1648 */ break; case 91: -#line 883 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 884 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_select_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2746 "y.tab.c" /* yacc.c:1648 */ +#line 2765 "y.tab.c" /* yacc.c:1648 */ break; case 92: -#line 888 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 889 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_select_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2755 "y.tab.c" /* yacc.c:1648 */ +#line 2774 "y.tab.c" /* yacc.c:1648 */ break; case 93: -#line 893 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 894 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_select_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2764 "y.tab.c" /* yacc.c:1648 */ +#line 2783 "y.tab.c" /* yacc.c:1648 */ break; case 94: -#line 900 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 899 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { - (yyval.command) = make_case_command ((yyvsp[-4].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); + (yyval.command) = make_select_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2773 "y.tab.c" /* yacc.c:1648 */ +#line 2792 "y.tab.c" /* yacc.c:1648 */ break; case 95: -#line 905 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 904 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { - (yyval.command) = make_case_command ((yyvsp[-5].word), (yyvsp[-2].pattern), word_lineno[word_top]); + (yyval.command) = make_select_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2782 "y.tab.c" /* yacc.c:1648 */ +#line 2801 "y.tab.c" /* yacc.c:1648 */ break; case 96: -#line 910 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 911 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { - (yyval.command) = make_case_command ((yyvsp[-4].word), (yyvsp[-1].pattern), word_lineno[word_top]); + (yyval.command) = make_case_command ((yyvsp[-4].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); if (word_top > 0) word_top--; } -#line 2791 "y.tab.c" /* yacc.c:1648 */ +#line 2810 "y.tab.c" /* yacc.c:1648 */ break; case 97: -#line 917 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ - { (yyval.command) = make_function_def ((yyvsp[-4].word), (yyvsp[0].command), function_dstart, function_bstart); } -#line 2797 "y.tab.c" /* yacc.c:1648 */ +#line 916 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + { + (yyval.command) = make_case_command ((yyvsp[-5].word), (yyvsp[-2].pattern), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +#line 2819 "y.tab.c" /* yacc.c:1648 */ break; case 98: -#line 920 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ - { (yyval.command) = make_function_def ((yyvsp[-4].word), (yyvsp[0].command), function_dstart, function_bstart); } -#line 2803 "y.tab.c" /* yacc.c:1648 */ +#line 921 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + { + (yyval.command) = make_case_command ((yyvsp[-4].word), (yyvsp[-1].pattern), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +#line 2828 "y.tab.c" /* yacc.c:1648 */ break; case 99: -#line 923 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ - { (yyval.command) = make_function_def ((yyvsp[-2].word), (yyvsp[0].command), function_dstart, function_bstart); } -#line 2809 "y.tab.c" /* yacc.c:1648 */ +#line 928 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + { (yyval.command) = make_function_def ((yyvsp[-4].word), (yyvsp[0].command), function_dstart, function_bstart); } +#line 2834 "y.tab.c" /* yacc.c:1648 */ break; case 100: -#line 927 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ - { (yyval.command) = (yyvsp[0].command); } -#line 2815 "y.tab.c" /* yacc.c:1648 */ +#line 931 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + { (yyval.command) = make_function_def ((yyvsp[-4].word), (yyvsp[0].command), function_dstart, function_bstart); } +#line 2840 "y.tab.c" /* yacc.c:1648 */ break; case 101: -#line 929 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ +#line 934 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + { (yyval.command) = make_function_def ((yyvsp[-2].word), (yyvsp[0].command), function_dstart, function_bstart); } +#line 2846 "y.tab.c" /* yacc.c:1648 */ + break; + + case 102: +#line 938 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + { (yyval.command) = (yyvsp[0].command); } +#line 2852 "y.tab.c" /* yacc.c:1648 */ + break; + + case 103: +#line 940 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { COMMAND *tc; @@ -2844,29 +2881,29 @@ yyreduce: tc->redirects = (yyvsp[0].redirect); (yyval.command) = (yyvsp[-1].command); } -#line 2848 "y.tab.c" /* yacc.c:1648 */ +#line 2885 "y.tab.c" /* yacc.c:1648 */ break; - case 102: -#line 960 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 104: +#line 971 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_subshell_command ((yyvsp[-1].command)); (yyval.command)->flags |= CMD_WANT_SUBSHELL; } -#line 2857 "y.tab.c" /* yacc.c:1648 */ +#line 2894 "y.tab.c" /* yacc.c:1648 */ break; - case 103: -#line 967 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 105: +#line 978 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_coproc_command ("COPROC", (yyvsp[0].command)); (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; } -#line 2866 "y.tab.c" /* yacc.c:1648 */ +#line 2903 "y.tab.c" /* yacc.c:1648 */ break; - case 104: -#line 972 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 106: +#line 983 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { COMMAND *tc; @@ -2883,20 +2920,20 @@ yyreduce: (yyval.command) = make_coproc_command ("COPROC", (yyvsp[-1].command)); (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; } -#line 2887 "y.tab.c" /* yacc.c:1648 */ +#line 2924 "y.tab.c" /* yacc.c:1648 */ break; - case 105: -#line 989 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 107: +#line 1000 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_coproc_command ((yyvsp[-1].word)->word, (yyvsp[0].command)); (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; } -#line 2896 "y.tab.c" /* yacc.c:1648 */ +#line 2933 "y.tab.c" /* yacc.c:1648 */ break; - case 106: -#line 994 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 108: +#line 1005 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { COMMAND *tc; @@ -2913,240 +2950,240 @@ yyreduce: (yyval.command) = make_coproc_command ((yyvsp[-2].word)->word, (yyvsp[-1].command)); (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; } -#line 2917 "y.tab.c" /* yacc.c:1648 */ +#line 2954 "y.tab.c" /* yacc.c:1648 */ break; - case 107: -#line 1011 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 109: +#line 1022 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[0].command))); (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; } -#line 2926 "y.tab.c" /* yacc.c:1648 */ +#line 2963 "y.tab.c" /* yacc.c:1648 */ break; - case 108: -#line 1018 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 110: +#line 1029 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_if_command ((yyvsp[-3].command), (yyvsp[-1].command), (COMMAND *)NULL); } -#line 2932 "y.tab.c" /* yacc.c:1648 */ +#line 2969 "y.tab.c" /* yacc.c:1648 */ break; - case 109: -#line 1020 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 111: +#line 1031 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_if_command ((yyvsp[-5].command), (yyvsp[-3].command), (yyvsp[-1].command)); } -#line 2938 "y.tab.c" /* yacc.c:1648 */ +#line 2975 "y.tab.c" /* yacc.c:1648 */ break; - case 110: -#line 1022 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 112: +#line 1033 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_if_command ((yyvsp[-4].command), (yyvsp[-2].command), (yyvsp[-1].command)); } -#line 2944 "y.tab.c" /* yacc.c:1648 */ +#line 2981 "y.tab.c" /* yacc.c:1648 */ break; - case 111: -#line 1027 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 113: +#line 1038 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_group_command ((yyvsp[-1].command)); } -#line 2950 "y.tab.c" /* yacc.c:1648 */ +#line 2987 "y.tab.c" /* yacc.c:1648 */ break; - case 112: -#line 1031 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 114: +#line 1042 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_arith_command ((yyvsp[0].word_list)); } -#line 2956 "y.tab.c" /* yacc.c:1648 */ +#line 2993 "y.tab.c" /* yacc.c:1648 */ break; - case 113: -#line 1035 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 115: +#line 1046 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[-1].command); } -#line 2962 "y.tab.c" /* yacc.c:1648 */ +#line 2999 "y.tab.c" /* yacc.c:1648 */ break; - case 114: -#line 1039 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 116: +#line 1050 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_if_command ((yyvsp[-2].command), (yyvsp[0].command), (COMMAND *)NULL); } -#line 2968 "y.tab.c" /* yacc.c:1648 */ +#line 3005 "y.tab.c" /* yacc.c:1648 */ break; - case 115: -#line 1041 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 117: +#line 1052 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_if_command ((yyvsp[-4].command), (yyvsp[-2].command), (yyvsp[0].command)); } -#line 2974 "y.tab.c" /* yacc.c:1648 */ +#line 3011 "y.tab.c" /* yacc.c:1648 */ break; - case 116: -#line 1043 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 118: +#line 1054 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = make_if_command ((yyvsp[-3].command), (yyvsp[-1].command), (yyvsp[0].command)); } -#line 2980 "y.tab.c" /* yacc.c:1648 */ +#line 3017 "y.tab.c" /* yacc.c:1648 */ break; - case 118: -#line 1048 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 120: +#line 1059 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyvsp[0].pattern)->next = (yyvsp[-1].pattern); (yyval.pattern) = (yyvsp[0].pattern); } -#line 2986 "y.tab.c" /* yacc.c:1648 */ +#line 3023 "y.tab.c" /* yacc.c:1648 */ break; - case 119: -#line 1052 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 121: +#line 1063 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (yyvsp[0].command)); } -#line 2992 "y.tab.c" /* yacc.c:1648 */ +#line 3029 "y.tab.c" /* yacc.c:1648 */ break; - case 120: -#line 1054 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 122: +#line 1065 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (COMMAND *)NULL); } -#line 2998 "y.tab.c" /* yacc.c:1648 */ +#line 3035 "y.tab.c" /* yacc.c:1648 */ break; - case 121: -#line 1056 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 123: +#line 1067 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (yyvsp[0].command)); } -#line 3004 "y.tab.c" /* yacc.c:1648 */ +#line 3041 "y.tab.c" /* yacc.c:1648 */ break; - case 122: -#line 1058 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 124: +#line 1069 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (COMMAND *)NULL); } -#line 3010 "y.tab.c" /* yacc.c:1648 */ +#line 3047 "y.tab.c" /* yacc.c:1648 */ break; - case 123: -#line 1062 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 125: +#line 1073 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.pattern) = (yyvsp[-1].pattern); } -#line 3016 "y.tab.c" /* yacc.c:1648 */ +#line 3053 "y.tab.c" /* yacc.c:1648 */ break; - case 124: -#line 1064 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 126: +#line 1075 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } -#line 3022 "y.tab.c" /* yacc.c:1648 */ +#line 3059 "y.tab.c" /* yacc.c:1648 */ break; - case 125: -#line 1066 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 127: +#line 1077 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyvsp[-1].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[-1].pattern); } -#line 3028 "y.tab.c" /* yacc.c:1648 */ +#line 3065 "y.tab.c" /* yacc.c:1648 */ break; - case 126: -#line 1068 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 128: +#line 1079 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyvsp[-1].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } -#line 3034 "y.tab.c" /* yacc.c:1648 */ +#line 3071 "y.tab.c" /* yacc.c:1648 */ break; - case 127: -#line 1070 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 129: +#line 1081 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyvsp[-1].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[-1].pattern); } -#line 3040 "y.tab.c" /* yacc.c:1648 */ +#line 3077 "y.tab.c" /* yacc.c:1648 */ break; - case 128: -#line 1072 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 130: +#line 1083 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyvsp[-1].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } -#line 3046 "y.tab.c" /* yacc.c:1648 */ +#line 3083 "y.tab.c" /* yacc.c:1648 */ break; - case 129: -#line 1076 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 131: +#line 1087 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.word_list) = make_word_list ((yyvsp[0].word), (WORD_LIST *)NULL); } -#line 3052 "y.tab.c" /* yacc.c:1648 */ +#line 3089 "y.tab.c" /* yacc.c:1648 */ break; - case 130: -#line 1078 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 132: +#line 1089 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.word_list) = make_word_list ((yyvsp[0].word), (yyvsp[-2].word_list)); } -#line 3058 "y.tab.c" /* yacc.c:1648 */ +#line 3095 "y.tab.c" /* yacc.c:1648 */ break; - case 131: -#line 1087 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 133: +#line 1098 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); if (need_here_doc) gather_here_documents (); } -#line 3068 "y.tab.c" /* yacc.c:1648 */ +#line 3105 "y.tab.c" /* yacc.c:1648 */ break; - case 133: -#line 1096 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 135: +#line 1107 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 3076 "y.tab.c" /* yacc.c:1648 */ +#line 3113 "y.tab.c" /* yacc.c:1648 */ break; - case 135: -#line 1103 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 137: +#line 1114 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { if ((yyvsp[-2].command)->type == cm_connection) (yyval.command) = connect_async_list ((yyvsp[-2].command), (COMMAND *)NULL, '&'); else (yyval.command) = command_connect ((yyvsp[-2].command), (COMMAND *)NULL, '&'); } -#line 3087 "y.tab.c" /* yacc.c:1648 */ +#line 3124 "y.tab.c" /* yacc.c:1648 */ break; - case 137: -#line 1114 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 139: +#line 1125 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), AND_AND); } -#line 3093 "y.tab.c" /* yacc.c:1648 */ +#line 3130 "y.tab.c" /* yacc.c:1648 */ break; - case 138: -#line 1116 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 140: +#line 1127 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), OR_OR); } -#line 3099 "y.tab.c" /* yacc.c:1648 */ +#line 3136 "y.tab.c" /* yacc.c:1648 */ break; - case 139: -#line 1118 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 141: +#line 1129 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { if ((yyvsp[-3].command)->type == cm_connection) (yyval.command) = connect_async_list ((yyvsp[-3].command), (yyvsp[0].command), '&'); else (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '&'); } -#line 3110 "y.tab.c" /* yacc.c:1648 */ +#line 3147 "y.tab.c" /* yacc.c:1648 */ break; - case 140: -#line 1125 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 142: +#line 1136 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';'); } -#line 3116 "y.tab.c" /* yacc.c:1648 */ +#line 3153 "y.tab.c" /* yacc.c:1648 */ break; - case 141: -#line 1127 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 143: +#line 1138 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';'); } -#line 3122 "y.tab.c" /* yacc.c:1648 */ +#line 3159 "y.tab.c" /* yacc.c:1648 */ break; - case 142: -#line 1129 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 144: +#line 1140 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 3128 "y.tab.c" /* yacc.c:1648 */ +#line 3165 "y.tab.c" /* yacc.c:1648 */ break; - case 145: -#line 1137 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 147: +#line 1148 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.number) = '\n'; } -#line 3134 "y.tab.c" /* yacc.c:1648 */ +#line 3171 "y.tab.c" /* yacc.c:1648 */ break; - case 146: -#line 1139 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 148: +#line 1150 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.number) = ';'; } -#line 3140 "y.tab.c" /* yacc.c:1648 */ +#line 3177 "y.tab.c" /* yacc.c:1648 */ break; - case 147: -#line 1141 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 149: +#line 1152 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.number) = yacc_EOF; } -#line 3146 "y.tab.c" /* yacc.c:1648 */ +#line 3183 "y.tab.c" /* yacc.c:1648 */ break; - case 150: -#line 1155 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 152: +#line 1166 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); if (need_here_doc) @@ -3159,11 +3196,11 @@ yyreduce: YYACCEPT; } } -#line 3163 "y.tab.c" /* yacc.c:1648 */ +#line 3200 "y.tab.c" /* yacc.c:1648 */ break; - case 151: -#line 1168 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 153: +#line 1179 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { if ((yyvsp[-1].command)->type == cm_connection) (yyval.command) = connect_async_list ((yyvsp[-1].command), (COMMAND *)NULL, '&'); @@ -3179,11 +3216,11 @@ yyreduce: YYACCEPT; } } -#line 3183 "y.tab.c" /* yacc.c:1648 */ +#line 3220 "y.tab.c" /* yacc.c:1648 */ break; - case 152: -#line 1184 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 154: +#line 1195 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[-1].command); if (need_here_doc) @@ -3196,72 +3233,72 @@ yyreduce: YYACCEPT; } } -#line 3200 "y.tab.c" /* yacc.c:1648 */ +#line 3237 "y.tab.c" /* yacc.c:1648 */ break; - case 153: -#line 1199 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 155: +#line 1210 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), AND_AND); } -#line 3206 "y.tab.c" /* yacc.c:1648 */ +#line 3243 "y.tab.c" /* yacc.c:1648 */ break; - case 154: -#line 1201 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 156: +#line 1212 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), OR_OR); } -#line 3212 "y.tab.c" /* yacc.c:1648 */ +#line 3249 "y.tab.c" /* yacc.c:1648 */ break; - case 155: -#line 1203 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 157: +#line 1214 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { if ((yyvsp[-2].command)->type == cm_connection) (yyval.command) = connect_async_list ((yyvsp[-2].command), (yyvsp[0].command), '&'); else (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), '&'); } -#line 3223 "y.tab.c" /* yacc.c:1648 */ +#line 3260 "y.tab.c" /* yacc.c:1648 */ break; - case 156: -#line 1210 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 158: +#line 1221 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), ';'); } -#line 3229 "y.tab.c" /* yacc.c:1648 */ +#line 3266 "y.tab.c" /* yacc.c:1648 */ break; - case 157: -#line 1213 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 159: +#line 1224 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 3235 "y.tab.c" /* yacc.c:1648 */ +#line 3272 "y.tab.c" /* yacc.c:1648 */ break; - case 158: -#line 1217 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 160: +#line 1228 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 3241 "y.tab.c" /* yacc.c:1648 */ +#line 3278 "y.tab.c" /* yacc.c:1648 */ break; - case 159: -#line 1219 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 161: +#line 1230 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { if ((yyvsp[0].command)) (yyvsp[0].command)->flags ^= CMD_INVERT_RETURN; /* toggle */ (yyval.command) = (yyvsp[0].command); } -#line 3251 "y.tab.c" /* yacc.c:1648 */ +#line 3288 "y.tab.c" /* yacc.c:1648 */ break; - case 160: -#line 1225 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 162: +#line 1236 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { if ((yyvsp[0].command)) (yyvsp[0].command)->flags |= (yyvsp[-1].number); (yyval.command) = (yyvsp[0].command); } -#line 3261 "y.tab.c" /* yacc.c:1648 */ +#line 3298 "y.tab.c" /* yacc.c:1648 */ break; - case 161: -#line 1231 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 163: +#line 1242 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { ELEMENT x; @@ -3281,11 +3318,11 @@ yyreduce: token_to_read = ';'; parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */ } -#line 3285 "y.tab.c" /* yacc.c:1648 */ +#line 3322 "y.tab.c" /* yacc.c:1648 */ break; - case 162: -#line 1251 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 164: +#line 1262 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { ELEMENT x; @@ -3306,17 +3343,17 @@ yyreduce: token_to_read = ';'; parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */ } -#line 3310 "y.tab.c" /* yacc.c:1648 */ +#line 3347 "y.tab.c" /* yacc.c:1648 */ break; - case 163: -#line 1274 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 165: +#line 1285 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '|'); } -#line 3316 "y.tab.c" /* yacc.c:1648 */ +#line 3353 "y.tab.c" /* yacc.c:1648 */ break; - case 164: -#line 1276 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 166: +#line 1287 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ COMMAND *tc; @@ -3339,35 +3376,35 @@ yyreduce: (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '|'); } -#line 3343 "y.tab.c" /* yacc.c:1648 */ +#line 3380 "y.tab.c" /* yacc.c:1648 */ break; - case 165: -#line 1299 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 167: +#line 1310 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.command) = (yyvsp[0].command); } -#line 3349 "y.tab.c" /* yacc.c:1648 */ +#line 3386 "y.tab.c" /* yacc.c:1648 */ break; - case 166: -#line 1303 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 168: +#line 1314 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.number) = CMD_TIME_PIPELINE; } -#line 3355 "y.tab.c" /* yacc.c:1648 */ +#line 3392 "y.tab.c" /* yacc.c:1648 */ break; - case 167: -#line 1305 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 169: +#line 1316 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } -#line 3361 "y.tab.c" /* yacc.c:1648 */ +#line 3398 "y.tab.c" /* yacc.c:1648 */ break; - case 168: -#line 1307 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ + case 170: +#line 1318 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1648 */ { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } -#line 3367 "y.tab.c" /* yacc.c:1648 */ +#line 3404 "y.tab.c" /* yacc.c:1648 */ break; -#line 3371 "y.tab.c" /* yacc.c:1648 */ +#line 3408 "y.tab.c" /* yacc.c:1648 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3595,7 +3632,7 @@ yyreturn: #endif return yyresult; } -#line 1309 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1907 */ +#line 1320 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1907 */ /* Initial size to allocate for tokens, and the @@ -5310,7 +5347,11 @@ special_case_tokens (tokstr) { /* Posix grammar rule 6 */ if ((last_read_token == WORD) && +#if defined (SELECT_COMMAND) ((token_before_that == FOR) || (token_before_that == CASE) || (token_before_that == SELECT)) && +#else + ((token_before_that == FOR) || (token_before_that == CASE)) && +#endif (tokstr[0] == 'i' && tokstr[1] == 'n' && tokstr[2] == 0)) { if (token_before_that == CASE) |