6 files added
2 files modified
| | |
| | | LIBS = -lc -lsocket -lgen |
| | | |
| | | # -z redlocsym -- let's shrink the SHT_SYMTAB as much as we can |
| | | LDFLAGS = $(LD_Z_REDLOCSYM) |
| | | LDFLAGS = $(LD_Z_REDLOCSYM) |
| | | |
| | | COMPONENT_PREP_ACTION = ( cd $(@D); autoconf -f -i ) |
| | | |
New file |
| | |
| | | BASH PATCH REPORT |
| | | ================= |
| | | |
| | | Bash-Release: 5.2 |
| | | Patch-ID: bash52-016 |
| | | |
| | | Bug-Reported-by: F G <frank.graziano@gmail.com> |
| | | Bug-Reference-ID: <CAOhYt35M5VctK+xAPu=Gy_UzzGmHedWPJE4q+kL4UHF_6Nb1kA@mail.gmail.com> |
| | | Bug-Reference-URL: |
| | | |
| | | Bug-Description: |
| | | |
| | | If an expression in an arithmetic for loop expands to NULL, the shell |
| | | would crash. |
| | | |
| | | Patch (apply with `patch -p0'): |
| | | |
| | | *** ../bash-5.2-patched/execute_cmd.c Thu Feb 23 14:15:05 2023 |
| | | --- execute_cmd.c Mon Feb 27 17:53:08 2023 |
| | | *************** |
| | | *** 3051,3055 **** |
| | | if (l->next) |
| | | free (expr); |
| | | ! new = make_word_list (make_word (temp), (WORD_LIST *)NULL); |
| | | free (temp); |
| | | |
| | | --- 3051,3055 ---- |
| | | if (l->next) |
| | | free (expr); |
| | | ! new = make_word_list (make_word (temp ? temp : ""), (WORD_LIST *)NULL); |
| | | free (temp); |
| | | |
| | | *** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 |
| | | --- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 |
| | | *************** |
| | | *** 26,30 **** |
| | | looks for to find the patch level (for the sccs version string). */ |
| | | |
| | | ! #define PATCHLEVEL 15 |
| | | |
| | | #endif /* _PATCHLEVEL_H_ */ |
| | | --- 26,30 ---- |
| | | looks for to find the patch level (for the sccs version string). */ |
| | | |
| | | ! #define PATCHLEVEL 16 |
| | | |
| | | #endif /* _PATCHLEVEL_H_ */ |
New file |
| | |
| | | BASH PATCH REPORT |
| | | ================= |
| | | |
| | | Bash-Release: 5.2 |
| | | Patch-ID: bash52-017 |
| | | |
| | | Bug-Reported-by: Dan Church <h3xx@gmx.com> |
| | | Bug-Reference-ID: <1a8fd1d6-a3ac-9a67-78eb-b9a7435304c8@gmx.com> |
| | | Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2022-12/msg00076.html |
| | | |
| | | Bug-Description: |
| | | |
| | | In certain cases, using the `.' builtin in a subshell would optimize away |
| | | the rest of the commands in the subshell. |
| | | |
| | | Patch (apply with `patch -p0'): |
| | | |
| | | *** ../bash-5.2-patched/builtins/evalfile.c 2019-07-20 16:16:08.000000000 -0400 |
| | | --- builtins/evalfile.c 2022-12-22 12:13:08.000000000 -0500 |
| | | *************** |
| | | *** 267,271 **** |
| | | |
| | | /* set the flags to be passed to parse_and_execute */ |
| | | ! pflags = SEVAL_RESETLINE; |
| | | pflags |= (flags & FEVAL_HISTORY) ? 0 : SEVAL_NOHIST; |
| | | |
| | | --- 267,271 ---- |
| | | |
| | | /* set the flags to be passed to parse_and_execute */ |
| | | ! pflags = SEVAL_RESETLINE|SEVAL_NOOPTIMIZE; |
| | | pflags |= (flags & FEVAL_HISTORY) ? 0 : SEVAL_NOHIST; |
| | | |
| | | *** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 |
| | | --- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 |
| | | *************** |
| | | *** 26,30 **** |
| | | looks for to find the patch level (for the sccs version string). */ |
| | | |
| | | ! #define PATCHLEVEL 16 |
| | | |
| | | #endif /* _PATCHLEVEL_H_ */ |
| | | --- 26,30 ---- |
| | | looks for to find the patch level (for the sccs version string). */ |
| | | |
| | | ! #define PATCHLEVEL 17 |
| | | |
| | | #endif /* _PATCHLEVEL_H_ */ |
New file |
| | |
| | | BASH PATCH REPORT |
| | | ================= |
| | | |
| | | Bash-Release: 5.2 |
| | | Patch-ID: bash52-018 |
| | | |
| | | Bug-Reported-by: Todd Stein <toddbstein@gmail.com> |
| | | Eduardo A . Bustamante López <dualbus@gmail.com> |
| | | Bug-Reference-ID: |
| | | <Y/SHWg7/+sc19k7P@system76-pc> |
| | | Bug-Reference-URL: https://savannah.gnu.org/support/?110745 |
| | | https://lists.gnu.org/archive/html/bug-bash/2023-02/msg00141.html |
| | | |
| | | Bug-Description: |
| | | |
| | | There are two problems with returning tokens to yyparse() when the shell |
| | | encounters a syntax error or when it reads EOF. |
| | | |
| | | When reading a WORD token, the parser has to return the correct value to |
| | | yyparse. Previous versions returned a value < 0, which the bash parser |
| | | translated into YYERRCODE for bison, and in newer versions of bison, the |
| | | appropriate reset actions didn't happen. We should return YYUNDEF, which |
| | | bison uses for `invalid token'. Since we can return a token < 0 for both |
| | | invalid tokens and EOF, the bash tokenizer needs to differentiate between |
| | | those two cases. |
| | | |
| | | Patch (apply with `patch -p0'): |
| | | |
| | | *** ../bash-5.2-patched/parse.y 2022-12-13 12:09:02.000000000 -0500 |
| | | --- parse.y 2023-11-08 14:29:13.000000000 -0500 |
| | | *************** |
| | | *** 453,456 **** |
| | | --- 453,471 ---- |
| | | } |
| | | } |
| | | + | error YYEOF |
| | | + { |
| | | + global_command = (COMMAND *)NULL; |
| | | + if (last_command_exit_value == 0) |
| | | + last_command_exit_value = EX_BADUSAGE; /* force error return */ |
| | | + if (interactive && parse_and_execute_level == 0) |
| | | + { |
| | | + handle_eof_input_unit (); |
| | | + YYACCEPT; |
| | | + } |
| | | + else |
| | | + { |
| | | + YYABORT; |
| | | + } |
| | | + } |
| | | | yacc_EOF |
| | | { |
| | | *************** |
| | | *** 2898,2904 **** |
| | | if (current_token < 0) |
| | | #if defined (YYERRCODE) && !defined (YYUNDEF) |
| | | ! current_token = YYERRCODE; |
| | | #else |
| | | ! current_token = YYerror; |
| | | #endif |
| | | |
| | | --- 2913,2919 ---- |
| | | if (current_token < 0) |
| | | #if defined (YYERRCODE) && !defined (YYUNDEF) |
| | | ! current_token = EOF_Reached ? YYEOF : YYERRCODE; |
| | | #else |
| | | ! current_token = EOF_Reached ? YYEOF : YYUNDEF; |
| | | #endif |
| | | |
| | | *************** |
| | | *** 3695,3698 **** |
| | | --- 3711,3715 ---- |
| | | parser_error (start_lineno, _("unexpected EOF while looking for matching `%c'"), close); |
| | | EOF_Reached = 1; /* XXX */ |
| | | + parser_state |= PST_NOERROR; /* avoid redundant error message */ |
| | | return (&matched_pair_error); |
| | | } |
| | | *************** |
| | | *** 4157,4160 **** |
| | | --- 4172,4176 ---- |
| | | |
| | | /* yyparse() has already called yyerror() and reset_parser() */ |
| | | + parser_state |= PST_NOERROR; |
| | | return (&matched_pair_error); |
| | | } |
| | | |
| | | *** /Users/chet/src/bash/bash-5.2-patched/y.tab.c 2022-12-13 12:09:02.000000000 -0500 |
| | | --- y.tab.c 2023-11-08 14:38:01.000000000 -0500 |
| | | *************** |
| | | *** 993,997 **** |
| | | |
| | | /* YYFINAL -- State number of the termination state. */ |
| | | ! #define YYFINAL 121 |
| | | /* YYLAST -- Last index in YYTABLE. */ |
| | | #define YYLAST 740 |
| | | --- 993,997 ---- |
| | | |
| | | /* YYFINAL -- State number of the termination state. */ |
| | | ! #define YYFINAL 122 |
| | | /* YYLAST -- Last index in YYTABLE. */ |
| | | #define YYLAST 740 |
| | | *************** |
| | | *** 1002,1008 **** |
| | | #define YYNNTS 38 |
| | | /* YYNRULES -- Number of rules. */ |
| | | ! #define YYNRULES 174 |
| | | /* YYNSTATES -- Number of states. */ |
| | | ! #define YYNSTATES 349 |
| | | |
| | | /* YYMAXUTOK -- Last valid token kind. */ |
| | | --- 1002,1008 ---- |
| | | #define YYNNTS 38 |
| | | /* YYNRULES -- Number of rules. */ |
| | | ! #define YYNRULES 175 |
| | | /* YYNSTATES -- Number of states. */ |
| | | ! #define YYNSTATES 350 |
| | | |
| | | /* YYMAXUTOK -- Last valid token kind. */ |
| | | *************** |
| | | *** 1058,1079 **** |
| | | static const yytype_int16 yyrline[] = |
| | | { |
| | | ! 0, 395, 395, 406, 414, 423, 438, 455, 465, 467, |
| | | ! 471, 477, 483, 489, 495, 501, 507, 513, 519, 525, |
| | | ! 531, 537, 543, 549, 555, 561, 568, 575, 582, 589, |
| | | ! 596, 603, 609, 615, 621, 627, 633, 639, 645, 651, |
| | | ! 657, 663, 669, 675, 681, 687, 693, 699, 705, 711, |
| | | ! 717, 723, 729, 735, 743, 745, 747, 751, 755, 766, |
| | | ! 768, 772, 774, 776, 792, 794, 798, 800, 802, 804, |
| | | ! 806, 808, 810, 812, 814, 816, 818, 822, 827, 832, |
| | | ! 837, 842, 847, 852, 857, 864, 870, 876, 882, 890, |
| | | ! 895, 900, 905, 910, 915, 920, 925, 932, 937, 942, |
| | | ! 949, 951, 953, 955, 959, 961, 992, 999, 1003, 1009, |
| | | ! 1014, 1031, 1036, 1053, 1060, 1062, 1064, 1069, 1073, 1077, |
| | | ! 1081, 1083, 1085, 1089, 1090, 1094, 1096, 1098, 1100, 1104, |
| | | ! 1106, 1108, 1110, 1112, 1114, 1118, 1120, 1129, 1135, 1141, |
| | | ! 1142, 1149, 1153, 1155, 1157, 1164, 1166, 1173, 1177, 1178, |
| | | ! 1181, 1183, 1185, 1189, 1190, 1199, 1214, 1232, 1249, 1251, |
| | | ! 1253, 1260, 1263, 1267, 1269, 1275, 1281, 1301, 1324, 1326, |
| | | ! 1349, 1353, 1355, 1357, 1359 |
| | | }; |
| | | #endif |
| | | --- 1058,1079 ---- |
| | | static const yytype_int16 yyrline[] = |
| | | { |
| | | ! 0, 395, 395, 406, 414, 423, 438, 455, 470, 480, |
| | | ! 482, 486, 492, 498, 504, 510, 516, 522, 528, 534, |
| | | ! 540, 546, 552, 558, 564, 570, 576, 583, 590, 597, |
| | | ! 604, 611, 618, 624, 630, 636, 642, 648, 654, 660, |
| | | ! 666, 672, 678, 684, 690, 696, 702, 708, 714, 720, |
| | | ! 726, 732, 738, 744, 750, 758, 760, 762, 766, 770, |
| | | ! 781, 783, 787, 789, 791, 807, 809, 813, 815, 817, |
| | | ! 819, 821, 823, 825, 827, 829, 831, 833, 837, 842, |
| | | ! 847, 852, 857, 862, 867, 872, 879, 885, 891, 897, |
| | | ! 905, 910, 915, 920, 925, 930, 935, 940, 947, 952, |
| | | ! 957, 964, 966, 968, 970, 974, 976, 1007, 1014, 1018, |
| | | ! 1024, 1029, 1046, 1051, 1068, 1075, 1077, 1079, 1084, 1088, |
| | | ! 1092, 1096, 1098, 1100, 1104, 1105, 1109, 1111, 1113, 1115, |
| | | ! 1119, 1121, 1123, 1125, 1127, 1129, 1133, 1135, 1144, 1150, |
| | | ! 1156, 1157, 1164, 1168, 1170, 1172, 1179, 1181, 1188, 1192, |
| | | ! 1193, 1196, 1198, 1200, 1204, 1205, 1214, 1229, 1247, 1264, |
| | | ! 1266, 1268, 1275, 1278, 1282, 1284, 1290, 1296, 1316, 1339, |
| | | ! 1341, 1364, 1368, 1370, 1372, 1374 |
| | | }; |
| | | #endif |
| | | *************** |
| | | *** 1120,1124 **** |
| | | #endif |
| | | |
| | | ! #define YYPACT_NINF (-152) |
| | | |
| | | #define yypact_value_is_default(Yyn) \ |
| | | --- 1120,1124 ---- |
| | | #endif |
| | | |
| | | ! #define YYPACT_NINF (-125) |
| | | |
| | | #define yypact_value_is_default(Yyn) \ |
| | | *************** |
| | | *** 1134,1172 **** |
| | | static const yytype_int16 yypact[] = |
| | | { |
| | | ! 328, 80, -152, -11, -1, 3, -152, -152, 15, 637, |
| | | ! -5, 433, 149, -28, -152, 187, 684, -152, 18, 28, |
| | | ! 130, 38, 139, 50, 52, 60, 65, 74, -152, -152, |
| | | ! -152, 89, 104, -152, -152, 97, -152, -152, 246, -152, |
| | | ! 670, -152, -152, -152, -152, -152, -152, -152, -152, -152, |
| | | ! -152, -152, -152, 146, 211, -152, 1, 433, -152, -152, |
| | | ! 135, 484, -152, 59, 61, 90, 167, 171, 10, 71, |
| | | ! 246, 670, 144, -152, -152, -152, -152, -152, 165, -152, |
| | | ! 142, 179, 192, 140, 194, 160, 227, 245, 252, 253, |
| | | ! 260, 261, 262, 162, 269, 178, 270, 272, 273, 274, |
| | | ! 277, -152, -152, -152, -152, -152, -152, -152, -152, -152, |
| | | ! -152, -152, -152, -152, -152, 168, 379, -152, -152, 173, |
| | | ! 244, -152, -152, -152, -152, 670, -152, -152, -152, -152, |
| | | ! -152, 535, 535, -152, -152, -152, -152, -152, -152, -152, |
| | | ! 205, -152, 14, -152, 36, -152, -152, -152, -152, 84, |
| | | ! -152, -152, -152, 249, 670, -152, 670, 670, -152, -152, |
| | | ! -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, |
| | | ! -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, |
| | | ! -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, |
| | | ! -152, -152, -152, -152, 484, 484, 203, 203, 586, 586, |
| | | ! 145, -152, -152, -152, -152, -152, -152, 0, -152, 119, |
| | | ! -152, 291, 248, 66, 88, -152, 119, -152, 296, 297, |
| | | ! 35, -152, 670, 670, 35, -152, -152, 1, 1, -152, |
| | | ! -152, -152, 306, 484, 484, 484, 484, 484, 305, 169, |
| | | ! -152, 7, -152, -152, 302, -152, 131, -152, 265, -152, |
| | | ! -152, -152, -152, -152, -152, 304, 131, -152, 266, -152, |
| | | ! -152, -152, 35, -152, 313, 317, -152, -152, -152, 225, |
| | | ! 225, 225, -152, -152, -152, -152, 206, 25, -152, -152, |
| | | ! 307, -42, 319, 276, -152, -152, -152, 95, -152, 322, |
| | | ! 283, 332, 284, -152, -152, 102, -152, -152, -152, -152, |
| | | ! -152, -152, -152, -152, 45, 323, -152, -152, -152, 106, |
| | | ! -152, -152, -152, -152, -152, -152, 109, -152, -152, 264, |
| | | ! -152, -152, -152, 484, -152, -152, 333, 293, -152, -152, |
| | | ! 338, 300, -152, -152, -152, 484, 345, 303, -152, -152, |
| | | ! 346, 309, -152, -152, -152, -152, -152, -152, -152 |
| | | }; |
| | | |
| | | --- 1134,1172 ---- |
| | | static const yytype_int16 yypact[] = |
| | | { |
| | | ! 329, 27, -125, 8, 81, 10, -125, -125, 16, 38, |
| | | ! 0, 434, -5, -16, -125, 670, 684, -125, 33, 43, |
| | | ! 62, 63, 71, 69, 94, 105, 108, 116, -125, -125, |
| | | ! -125, 125, 139, -125, -125, 111, -125, -125, 626, -125, |
| | | ! 648, -125, -125, -125, -125, -125, -125, -125, -125, -125, |
| | | ! -125, -125, -125, 5, -21, -125, -15, 434, -125, -125, |
| | | ! -125, 196, 485, -125, 157, 2, 180, 207, 222, 227, |
| | | ! 638, 626, 648, 224, -125, -125, -125, -125, -125, 219, |
| | | ! -125, 185, 223, 228, 140, 230, 161, 232, 233, 234, |
| | | ! 236, 241, 248, 249, 162, 250, 163, 251, 254, 256, |
| | | ! 257, 258, -125, -125, -125, -125, -125, -125, -125, -125, |
| | | ! -125, -125, -125, -125, -125, -125, 225, 380, -125, -125, |
| | | ! 229, 231, -125, -125, -125, -125, 648, -125, -125, -125, |
| | | ! -125, -125, 536, 536, -125, -125, -125, -125, -125, -125, |
| | | ! -125, 214, -125, -7, -125, 85, -125, -125, -125, -125, |
| | | ! 89, -125, -125, -125, 235, 648, -125, 648, 648, -125, |
| | | ! -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, |
| | | ! -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, |
| | | ! -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, |
| | | ! -125, -125, -125, -125, -125, 485, 485, 138, 138, 587, |
| | | ! 587, 17, -125, -125, -125, -125, -125, -125, 88, -125, |
| | | ! 122, -125, 274, 238, 100, 101, -125, 122, -125, 276, |
| | | ! 278, 260, -125, 648, 648, 260, -125, -125, -15, -15, |
| | | ! -125, -125, -125, 287, 485, 485, 485, 485, 485, 290, |
| | | ! 164, -125, 26, -125, -125, 285, -125, 131, -125, 242, |
| | | ! -125, -125, -125, -125, -125, -125, 288, 131, -125, 243, |
| | | ! -125, -125, -125, 260, -125, 297, 302, -125, -125, -125, |
| | | ! 152, 152, 152, -125, -125, -125, -125, 170, 61, -125, |
| | | ! -125, 281, -36, 293, 252, -125, -125, -125, 102, -125, |
| | | ! 298, 255, 300, 262, -125, -125, 103, -125, -125, -125, |
| | | ! -125, -125, -125, -125, -125, -33, 296, -125, -125, -125, |
| | | ! 110, -125, -125, -125, -125, -125, -125, 112, -125, -125, |
| | | ! 189, -125, -125, -125, 485, -125, -125, 310, 267, -125, |
| | | ! -125, 314, 275, -125, -125, -125, 485, 318, 277, -125, |
| | | ! -125, 320, 279, -125, -125, -125, -125, -125, -125, -125 |
| | | }; |
| | | |
| | | *************** |
| | | *** 1176,1214 **** |
| | | static const yytype_uint8 yydefact[] = |
| | | { |
| | | ! 0, 0, 153, 0, 0, 0, 153, 153, 0, 0, |
| | | ! 0, 0, 171, 54, 55, 0, 0, 118, 0, 0, |
| | | ! 0, 0, 0, 0, 0, 0, 0, 0, 153, 4, |
| | | ! 7, 0, 0, 153, 153, 0, 56, 59, 61, 170, |
| | | ! 62, 66, 76, 70, 67, 64, 72, 3, 65, 71, |
| | | ! 73, 74, 75, 0, 155, 162, 163, 0, 5, 6, |
| | | ! 0, 0, 153, 153, 0, 153, 0, 0, 0, 54, |
| | | ! 113, 109, 0, 151, 150, 152, 167, 164, 172, 173, |
| | | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| | | ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| | | ! 0, 16, 25, 40, 34, 49, 31, 43, 37, 46, |
| | | ! 28, 52, 53, 22, 19, 0, 0, 10, 11, 0, |
| | | ! 0, 1, 54, 60, 57, 63, 148, 149, 2, 153, |
| | | ! 153, 156, 157, 153, 153, 166, 165, 153, 154, 137, |
| | | ! 138, 147, 0, 153, 0, 153, 153, 153, 153, 0, |
| | | ! 153, 153, 153, 153, 104, 102, 111, 110, 119, 174, |
| | | ! 153, 18, 27, 42, 36, 51, 33, 45, 39, 48, |
| | | ! 30, 24, 21, 14, 15, 17, 26, 41, 35, 50, |
| | | ! 32, 44, 38, 47, 29, 23, 20, 12, 13, 107, |
| | | ! 108, 117, 106, 58, 0, 0, 160, 161, 0, 0, |
| | | ! 0, 153, 153, 153, 153, 153, 153, 0, 153, 0, |
| | | ! 153, 0, 0, 0, 0, 153, 0, 153, 0, 0, |
| | | ! 0, 153, 105, 112, 0, 158, 159, 169, 168, 153, |
| | | ! 153, 114, 0, 0, 0, 140, 141, 139, 0, 123, |
| | | ! 153, 0, 153, 153, 0, 8, 0, 153, 0, 87, |
| | | ! 88, 153, 153, 153, 153, 0, 0, 153, 0, 68, |
| | | ! 69, 103, 0, 100, 0, 0, 116, 142, 143, 144, |
| | | ! 145, 146, 99, 129, 131, 133, 124, 0, 97, 135, |
| | | ! 0, 0, 0, 0, 77, 9, 153, 0, 78, 0, |
| | | ! 0, 0, 0, 89, 153, 0, 90, 101, 115, 153, |
| | | ! 130, 132, 134, 98, 0, 0, 153, 79, 80, 0, |
| | | ! 153, 153, 85, 86, 91, 92, 0, 153, 153, 120, |
| | | ! 153, 136, 125, 126, 153, 153, 0, 0, 153, 153, |
| | | ! 0, 0, 153, 122, 127, 128, 0, 0, 83, 84, |
| | | ! 0, 0, 95, 96, 121, 81, 82, 93, 94 |
| | | }; |
| | | |
| | | --- 1176,1214 ---- |
| | | static const yytype_uint8 yydefact[] = |
| | | { |
| | | ! 0, 0, 154, 0, 0, 0, 154, 154, 0, 0, |
| | | ! 0, 0, 172, 55, 56, 0, 0, 119, 0, 0, |
| | | ! 0, 0, 0, 0, 0, 0, 0, 0, 154, 4, |
| | | ! 8, 0, 0, 154, 154, 0, 57, 60, 62, 171, |
| | | ! 63, 67, 77, 71, 68, 65, 73, 3, 66, 72, |
| | | ! 74, 75, 76, 0, 156, 163, 164, 0, 7, 5, |
| | | ! 6, 0, 0, 154, 154, 0, 154, 0, 0, 0, |
| | | ! 55, 114, 110, 0, 152, 151, 153, 168, 165, 173, |
| | | ! 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| | | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| | | ! 0, 0, 17, 26, 41, 35, 50, 32, 44, 38, |
| | | ! 47, 29, 53, 54, 23, 20, 0, 0, 11, 12, |
| | | ! 0, 0, 1, 55, 61, 58, 64, 149, 150, 2, |
| | | ! 154, 154, 157, 158, 154, 154, 167, 166, 154, 155, |
| | | ! 138, 139, 148, 0, 154, 0, 154, 154, 154, 154, |
| | | ! 0, 154, 154, 154, 154, 105, 103, 112, 111, 120, |
| | | ! 175, 154, 19, 28, 43, 37, 52, 34, 46, 40, |
| | | ! 49, 31, 25, 22, 15, 16, 18, 27, 42, 36, |
| | | ! 51, 33, 45, 39, 48, 30, 24, 21, 13, 14, |
| | | ! 108, 109, 118, 107, 59, 0, 0, 161, 162, 0, |
| | | ! 0, 0, 154, 154, 154, 154, 154, 154, 0, 154, |
| | | ! 0, 154, 0, 0, 0, 0, 154, 0, 154, 0, |
| | | ! 0, 0, 154, 106, 113, 0, 159, 160, 170, 169, |
| | | ! 154, 154, 115, 0, 0, 0, 141, 142, 140, 0, |
| | | ! 124, 154, 0, 154, 154, 0, 9, 0, 154, 0, |
| | | ! 88, 89, 154, 154, 154, 154, 0, 0, 154, 0, |
| | | ! 69, 70, 104, 0, 101, 0, 0, 117, 143, 144, |
| | | ! 145, 146, 147, 100, 130, 132, 134, 125, 0, 98, |
| | | ! 136, 0, 0, 0, 0, 78, 10, 154, 0, 79, |
| | | ! 0, 0, 0, 0, 90, 154, 0, 91, 102, 116, |
| | | ! 154, 131, 133, 135, 99, 0, 0, 154, 80, 81, |
| | | ! 0, 154, 154, 86, 87, 92, 93, 0, 154, 154, |
| | | ! 121, 154, 137, 126, 127, 154, 154, 0, 0, 154, |
| | | ! 154, 0, 0, 154, 123, 128, 129, 0, 0, 84, |
| | | ! 85, 0, 0, 96, 97, 122, 82, 83, 94, 95 |
| | | }; |
| | | |
| | | *************** |
| | | *** 1216,1223 **** |
| | | static const yytype_int16 yypgoto[] = |
| | | { |
| | | ! -152, -152, 112, -29, -14, -64, 360, -152, -8, -152, |
| | | ! -152, -152, -152, -152, -151, -152, -152, -152, -152, -152, |
| | | ! -152, -152, 13, -152, 136, -152, 98, -2, -152, 30, |
| | | ! -152, -54, -26, -152, -123, 6, 78, -152 |
| | | }; |
| | | |
| | | --- 1216,1223 ---- |
| | | static const yytype_int16 yypgoto[] = |
| | | { |
| | | ! -125, -125, 126, -25, -28, -65, 335, -125, -8, -125, |
| | | ! -125, -125, -125, -125, -96, -125, -125, -125, -125, -125, |
| | | ! -125, -125, 28, -125, 109, -125, 68, -2, -125, -11, |
| | | ! -125, -54, -26, -125, -124, 6, 34, -125 |
| | | }; |
| | | |
| | | *************** |
| | | *** 1225,1232 **** |
| | | static const yytype_int16 yydefgoto[] = |
| | | { |
| | | ! 0, 35, 246, 36, 37, 125, 38, 39, 40, 41, |
| | | ! 42, 43, 44, 45, 155, 46, 47, 48, 49, 50, |
| | | ! 51, 52, 232, 238, 239, 240, 281, 120, 139, 140, |
| | | ! 128, 76, 61, 53, 54, 141, 56, 57 |
| | | }; |
| | | |
| | | --- 1225,1232 ---- |
| | | static const yytype_int16 yydefgoto[] = |
| | | { |
| | | ! 0, 35, 247, 36, 37, 126, 38, 39, 40, 41, |
| | | ! 42, 43, 44, 45, 156, 46, 47, 48, 49, 50, |
| | | ! 51, 52, 233, 239, 240, 241, 282, 121, 140, 141, |
| | | ! 129, 77, 62, 53, 54, 142, 56, 57 |
| | | }; |
| | | |
| | | *************** |
| | | *** 1236,1390 **** |
| | | static const yytype_int16 yytable[] = |
| | | { |
| | | ! 60, 71, 116, 135, 66, 67, 55, 157, 196, 197, |
| | | ! 147, 124, 305, 2, 242, 62, 278, 77, 3, 306, |
| | | ! 4, 5, 6, 7, 123, 63, 115, 72, 10, 65, |
| | | ! 64, 119, 80, 279, 303, 206, 142, 144, 2, 149, |
| | | ! 17, 68, 124, 3, 101, 4, 5, 6, 7, 133, |
| | | ! 208, 279, 138, 10, 102, 134, 123, 209, 243, 138, |
| | | ! 154, 156, 152, 136, 106, 17, 138, 280, 33, 261, |
| | | ! 153, 225, 226, 263, 2, 145, 110, 138, 111, 3, |
| | | ! 251, 4, 5, 6, 7, 280, 112, 138, 138, 10, |
| | | ! 222, 113, 223, 33, 210, 34, 193, 121, 215, 305, |
| | | ! 114, 17, 253, 194, 195, 216, 320, 198, 199, 310, |
| | | ! 143, 297, 73, 74, 75, 117, 317, 207, 138, 146, |
| | | ! 324, 213, 214, 328, 252, 124, 220, 124, 193, 33, |
| | | ! 118, 34, 58, 59, 224, 200, 138, 55, 55, 137, |
| | | ! 138, 148, 217, 211, 212, 245, 254, 138, 218, 219, |
| | | ! 229, 230, 231, 311, 138, 247, 103, 285, 138, 104, |
| | | ! 318, 138, 257, 158, 325, 107, 163, 329, 108, 164, |
| | | ! 73, 74, 75, 78, 79, 233, 234, 235, 236, 237, |
| | | ! 241, 150, 73, 74, 75, 151, 167, 105, 177, 168, |
| | | ! 159, 178, 286, 193, 193, 262, 109, 165, 126, 127, |
| | | ! 55, 55, 294, 160, 181, 161, 244, 182, 248, 273, |
| | | ! 274, 275, 154, 255, 277, 258, 154, 169, 162, 179, |
| | | ! 166, 287, 81, 82, 83, 84, 85, 264, 265, 189, |
| | | ! 86, 295, 191, 87, 88, 183, 129, 130, 201, 202, |
| | | ! 282, 283, 89, 90, 129, 130, 300, 301, 302, 289, |
| | | ! 290, 291, 292, 170, 154, 203, 204, 205, 201, 202, |
| | | ! 309, 131, 132, 267, 268, 269, 270, 271, 316, 332, |
| | | ! 230, 171, 122, 14, 15, 16, 227, 228, 172, 173, |
| | | ! 323, 18, 19, 20, 21, 22, 174, 175, 176, 23, |
| | | ! 24, 25, 26, 27, 335, 180, 184, 319, 185, 186, |
| | | ! 187, 31, 32, 188, 322, 192, 249, 250, 326, 327, |
| | | ! 221, 259, 260, 266, 272, 330, 331, 284, 334, 293, |
| | | ! 298, 299, 336, 337, 288, 296, 340, 341, 256, 1, |
| | | ! 344, 2, 333, 279, 307, 308, 3, 312, 4, 5, |
| | | ! 6, 7, 313, 315, 8, 9, 10, 314, 338, 321, |
| | | ! 11, 12, 339, 342, 13, 14, 15, 16, 17, 343, |
| | | ! 345, 347, 346, 18, 19, 20, 21, 22, 348, 70, |
| | | ! 0, 23, 24, 25, 26, 27, 276, 28, 304, 0, |
| | | ! 29, 30, 2, 31, 32, 0, 33, 3, 34, 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, 138, 0, 0, 31, 32, 2, 33, 0, 34, |
| | | ! 190, 3, 0, 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, 73, 74, 75, 2, 31, 32, |
| | | ! 0, 33, 3, 34, 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, 138, 0, 2, 31, |
| | | 32, 0, 33, 3, 34, 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, 0, 2, |
| | | 31, 32, 0, 33, 3, 34, 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, 0, 138, 0, |
| | | 2, 31, 32, 0, 33, 3, 34, 4, 5, 6, |
| | | ! 7, 0, 0, 0, 0, 10, 0, 0, 0, 0, |
| | | ! 0, 0, 0, 69, 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, 0, 31, 32, 0, 33, 0, 34, 15, 16, |
| | | ! 0, 0, 0, 0, 0, 18, 19, 20, 21, 22, |
| | | ! 0, 0, 0, 23, 24, 25, 26, 27, 0, 91, |
| | | ! 92, 93, 94, 95, 0, 31, 32, 96, 0, 0, |
| | | ! 97, 98, 0, 0, 0, 0, 0, 0, 0, 99, |
| | | ! 100 |
| | | }; |
| | | |
| | | static const yytype_int16 yycheck[] = |
| | | { |
| | | ! 2, 9, 28, 57, 6, 7, 0, 71, 131, 132, |
| | | ! 64, 40, 54, 3, 14, 26, 9, 11, 8, 61, |
| | | ! 10, 11, 12, 13, 38, 26, 28, 32, 18, 26, |
| | | ! 31, 33, 60, 26, 9, 21, 62, 63, 3, 65, |
| | | ! 30, 26, 71, 8, 26, 10, 11, 12, 13, 48, |
| | | ! 14, 26, 52, 18, 26, 54, 70, 21, 58, 52, |
| | | ! 68, 69, 52, 57, 26, 30, 52, 60, 58, 220, |
| | | ! 60, 194, 195, 224, 3, 14, 26, 52, 26, 8, |
| | | ! 14, 10, 11, 12, 13, 60, 26, 52, 52, 18, |
| | | ! 154, 26, 156, 58, 58, 60, 125, 0, 14, 54, |
| | | ! 26, 30, 14, 129, 130, 21, 61, 133, 134, 14, |
| | | ! 51, 262, 51, 52, 53, 26, 14, 143, 52, 58, |
| | | ! 14, 147, 148, 14, 58, 154, 152, 156, 157, 58, |
| | | ! 26, 60, 52, 53, 160, 137, 52, 131, 132, 4, |
| | | ! 52, 51, 58, 145, 146, 26, 58, 52, 150, 151, |
| | | ! 5, 6, 7, 58, 52, 209, 26, 26, 52, 29, |
| | | ! 58, 52, 216, 19, 58, 26, 26, 58, 29, 29, |
| | | ! 51, 52, 53, 24, 25, 201, 202, 203, 204, 205, |
| | | ! 206, 14, 51, 52, 53, 14, 26, 57, 26, 29, |
| | | ! 25, 29, 246, 222, 223, 221, 57, 57, 52, 53, |
| | | ! 194, 195, 256, 61, 26, 26, 208, 29, 210, 40, |
| | | ! 41, 42, 220, 215, 240, 217, 224, 57, 26, 57, |
| | | ! 26, 247, 35, 36, 37, 38, 39, 229, 230, 61, |
| | | ! 43, 257, 59, 46, 47, 57, 33, 34, 33, 34, |
| | | ! 242, 243, 55, 56, 33, 34, 40, 41, 42, 251, |
| | | ! 252, 253, 254, 26, 262, 50, 51, 52, 33, 34, |
| | | ! 286, 50, 51, 233, 234, 235, 236, 237, 294, 5, |
| | | ! 6, 26, 26, 27, 28, 29, 198, 199, 26, 26, |
| | | ! 306, 35, 36, 37, 38, 39, 26, 26, 26, 43, |
| | | ! 44, 45, 46, 47, 320, 26, 26, 299, 26, 26, |
| | | ! 26, 55, 56, 26, 306, 61, 15, 59, 310, 311, |
| | | ! 61, 15, 15, 7, 9, 317, 318, 15, 320, 15, |
| | | ! 7, 4, 324, 325, 59, 59, 328, 329, 216, 1, |
| | | ! 332, 3, 319, 26, 15, 59, 8, 15, 10, 11, |
| | | ! 12, 13, 59, 59, 16, 17, 18, 15, 15, 26, |
| | | ! 22, 23, 59, 15, 26, 27, 28, 29, 30, 59, |
| | | ! 15, 15, 59, 35, 36, 37, 38, 39, 59, 9, |
| | | ! -1, 43, 44, 45, 46, 47, 240, 49, 280, -1, |
| | | ! 52, 53, 3, 55, 56, -1, 58, 8, 60, 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, 52, -1, -1, 55, 56, 3, 58, -1, 60, |
| | | ! 61, 8, -1, 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, 52, 53, 3, 55, 56, |
| | | ! -1, 58, 8, 60, 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, 52, -1, 3, 55, |
| | | 56, -1, 58, 8, 60, 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, -1, 3, |
| | | 55, 56, -1, 58, 8, 60, 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, -1, 52, -1, |
| | | 3, 55, 56, -1, 58, 8, 60, 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, -1, 55, 56, -1, 58, -1, 60, 28, 29, |
| | | ! -1, -1, -1, -1, -1, 35, 36, 37, 38, 39, |
| | | ! -1, -1, -1, 43, 44, 45, 46, 47, -1, 35, |
| | | 36, 37, 38, 39, -1, 55, 56, 43, -1, -1, |
| | | 46, 47, -1, -1, -1, -1, -1, -1, -1, 55, |
| | | --- 1236,1390 ---- |
| | | static const yytype_int16 yytable[] = |
| | | { |
| | | ! 61, 72, 117, 136, 67, 68, 55, 158, 197, 198, |
| | | ! 124, 148, 130, 131, 207, 125, 146, 78, 306, 79, |
| | | ! 80, 306, 230, 231, 232, 307, 116, 58, 321, 132, |
| | | ! 133, 120, 73, 134, 63, 279, 66, 143, 145, 135, |
| | | ! 150, 2, 69, 124, 81, 139, 3, 125, 4, 5, |
| | | ! 6, 7, 280, 74, 75, 76, 10, 127, 128, 102, |
| | | ! 147, 155, 157, 137, 70, 14, 15, 16, 17, 103, |
| | | ! 304, 226, 227, 18, 19, 20, 21, 22, 139, 59, |
| | | ! 60, 23, 24, 25, 26, 27, 281, 280, 104, 107, |
| | | ! 223, 105, 224, 31, 32, 111, 33, 108, 34, 209, |
| | | ! 109, 194, 243, 216, 195, 196, 210, 64, 199, 200, |
| | | ! 217, 122, 65, 139, 252, 254, 311, 318, 208, 106, |
| | | ! 112, 281, 214, 215, 325, 262, 329, 221, 110, 264, |
| | | ! 125, 113, 125, 194, 114, 225, 201, 139, 55, 55, |
| | | ! 139, 139, 115, 211, 212, 213, 244, 218, 246, 219, |
| | | ! 220, 118, 139, 139, 139, 139, 248, 286, 253, 255, |
| | | ! 312, 319, 139, 258, 139, 119, 164, 298, 326, 165, |
| | | ! 330, 130, 131, 74, 75, 76, 234, 235, 236, 237, |
| | | ! 238, 242, 74, 75, 76, 202, 203, 168, 178, 182, |
| | | ! 169, 179, 183, 287, 333, 231, 263, 166, 194, 194, |
| | | ! 138, 55, 55, 295, 274, 275, 276, 245, 144, 249, |
| | | ! 301, 302, 303, 155, 256, 278, 259, 155, 170, 180, |
| | | ! 184, 151, 288, 268, 269, 270, 271, 272, 265, 266, |
| | | ! 2, 149, 296, 228, 229, 3, 152, 4, 5, 6, |
| | | ! 7, 283, 284, 159, 160, 10, 161, 202, 203, 162, |
| | | ! 290, 291, 292, 293, 163, 155, 167, 17, 171, 172, |
| | | ! 173, 310, 174, 2, 204, 205, 206, 175, 3, 317, |
| | | ! 4, 5, 6, 7, 176, 177, 181, 185, 10, 153, |
| | | ! 186, 324, 187, 188, 189, 33, 190, 154, 192, 250, |
| | | ! 17, 260, 193, 261, 267, 336, 222, 251, 320, 273, |
| | | ! 285, 289, 297, 294, 299, 323, 300, 280, 308, 327, |
| | | ! 328, 309, 139, 313, 314, 315, 331, 332, 33, 335, |
| | | ! 34, 316, 322, 337, 338, 339, 340, 341, 342, 343, |
| | | ! 1, 345, 2, 346, 344, 348, 347, 3, 349, 4, |
| | | ! 5, 6, 7, 257, 71, 8, 9, 10, 334, 305, |
| | | ! 277, 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, 28, 0, |
| | | ! 0, 29, 30, 2, 31, 32, 0, 33, 3, 34, |
| | | ! 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, 139, 0, 0, 31, 32, 2, 33, 0, |
| | | ! 34, 191, 3, 0, 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, 74, 75, 76, 2, 31, |
| | | 32, 0, 33, 3, 34, 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, 139, 0, 2, |
| | | 31, 32, 0, 33, 3, 34, 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, 0, |
| | | 2, 31, 32, 0, 33, 3, 34, 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, 0, 139, |
| | | ! 0, 2, 31, 32, 0, 33, 3, 34, 4, 5, |
| | | ! 6, 7, 123, 14, 15, 16, 10, 0, 0, 0, |
| | | ! 0, 18, 19, 20, 21, 22, 0, 0, 17, 23, |
| | | ! 24, 25, 26, 27, 0, 0, 15, 16, 0, 0, |
| | | ! 0, 31, 32, 18, 19, 20, 21, 22, 0, 0, |
| | | ! 0, 23, 24, 25, 26, 27, 33, 0, 34, 0, |
| | | ! 0, 0, 0, 31, 32, 82, 83, 84, 85, 86, |
| | | ! 0, 0, 0, 87, 0, 0, 88, 89, 0, 92, |
| | | ! 93, 94, 95, 96, 0, 90, 91, 97, 0, 0, |
| | | ! 98, 99, 0, 0, 0, 0, 0, 0, 0, 100, |
| | | ! 101 |
| | | }; |
| | | |
| | | static const yytype_int16 yycheck[] = |
| | | { |
| | | ! 2, 9, 28, 57, 6, 7, 0, 72, 132, 133, |
| | | ! 38, 65, 33, 34, 21, 40, 14, 11, 54, 24, |
| | | ! 25, 54, 5, 6, 7, 61, 28, 0, 61, 50, |
| | | ! 51, 33, 32, 48, 26, 9, 26, 63, 64, 54, |
| | | ! 66, 3, 26, 71, 60, 52, 8, 72, 10, 11, |
| | | ! 12, 13, 26, 51, 52, 53, 18, 52, 53, 26, |
| | | ! 58, 69, 70, 57, 26, 27, 28, 29, 30, 26, |
| | | ! 9, 195, 196, 35, 36, 37, 38, 39, 52, 52, |
| | | ! 53, 43, 44, 45, 46, 47, 60, 26, 26, 26, |
| | | ! 155, 29, 157, 55, 56, 26, 58, 26, 60, 14, |
| | | ! 29, 126, 14, 14, 130, 131, 21, 26, 134, 135, |
| | | ! 21, 0, 31, 52, 14, 14, 14, 14, 144, 57, |
| | | ! 26, 60, 148, 149, 14, 221, 14, 153, 57, 225, |
| | | ! 155, 26, 157, 158, 26, 161, 138, 52, 132, 133, |
| | | ! 52, 52, 26, 58, 146, 147, 58, 58, 26, 151, |
| | | ! 152, 26, 52, 52, 52, 52, 210, 26, 58, 58, |
| | | ! 58, 58, 52, 217, 52, 26, 26, 263, 58, 29, |
| | | ! 58, 33, 34, 51, 52, 53, 202, 203, 204, 205, |
| | | ! 206, 207, 51, 52, 53, 33, 34, 26, 26, 26, |
| | | ! 29, 29, 29, 247, 5, 6, 222, 57, 223, 224, |
| | | ! 4, 195, 196, 257, 40, 41, 42, 209, 51, 211, |
| | | ! 40, 41, 42, 221, 216, 241, 218, 225, 57, 57, |
| | | ! 57, 14, 248, 234, 235, 236, 237, 238, 230, 231, |
| | | ! 3, 51, 258, 199, 200, 8, 14, 10, 11, 12, |
| | | ! 13, 243, 244, 19, 25, 18, 61, 33, 34, 26, |
| | | ! 252, 253, 254, 255, 26, 263, 26, 30, 26, 26, |
| | | ! 26, 287, 26, 3, 50, 51, 52, 26, 8, 295, |
| | | ! 10, 11, 12, 13, 26, 26, 26, 26, 18, 52, |
| | | ! 26, 307, 26, 26, 26, 58, 61, 60, 59, 15, |
| | | ! 30, 15, 61, 15, 7, 321, 61, 59, 300, 9, |
| | | ! 15, 59, 59, 15, 7, 307, 4, 26, 15, 311, |
| | | ! 312, 59, 52, 15, 59, 15, 318, 319, 58, 321, |
| | | ! 60, 59, 26, 325, 326, 15, 59, 329, 330, 15, |
| | | ! 1, 333, 3, 15, 59, 15, 59, 8, 59, 10, |
| | | ! 11, 12, 13, 217, 9, 16, 17, 18, 320, 281, |
| | | ! 241, 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, 49, -1, |
| | | ! -1, 52, 53, 3, 55, 56, -1, 58, 8, 60, |
| | | ! 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, 52, -1, -1, 55, 56, 3, 58, -1, |
| | | ! 60, 61, 8, -1, 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, 52, 53, 3, 55, |
| | | 56, -1, 58, 8, 60, 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, 52, -1, 3, |
| | | 55, 56, -1, 58, 8, 60, 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, -1, |
| | | 3, 55, 56, -1, 58, 8, 60, 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, -1, 52, |
| | | ! -1, 3, 55, 56, -1, 58, 8, 60, 10, 11, |
| | | ! 12, 13, 26, 27, 28, 29, 18, -1, -1, -1, |
| | | ! -1, 35, 36, 37, 38, 39, -1, -1, 30, 43, |
| | | ! 44, 45, 46, 47, -1, -1, 28, 29, -1, -1, |
| | | ! -1, 55, 56, 35, 36, 37, 38, 39, -1, -1, |
| | | ! -1, 43, 44, 45, 46, 47, 58, -1, 60, -1, |
| | | ! -1, -1, -1, 55, 56, 35, 36, 37, 38, 39, |
| | | ! -1, -1, -1, 43, -1, -1, 46, 47, -1, 35, |
| | | 36, 37, 38, 39, -1, 55, 56, 43, -1, -1, |
| | | 46, 47, -1, -1, -1, -1, -1, -1, -1, 55, |
| | | *************** |
| | | *** 1401,1434 **** |
| | | 53, 55, 56, 58, 60, 63, 65, 66, 68, 69, |
| | | 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, |
| | | ! 81, 82, 83, 95, 96, 97, 98, 99, 52, 53, |
| | | ! 89, 94, 26, 26, 31, 26, 89, 89, 26, 26, |
| | | ! 68, 70, 32, 51, 52, 53, 93, 97, 24, 25, |
| | | ! 60, 35, 36, 37, 38, 39, 43, 46, 47, 55, |
| | | ! 56, 35, 36, 37, 38, 39, 43, 46, 47, 55, |
| | | ! 56, 26, 26, 26, 29, 57, 26, 26, 29, 57, |
| | | ! 26, 26, 26, 26, 26, 89, 94, 26, 26, 89, |
| | | ! 89, 0, 26, 66, 65, 67, 52, 53, 92, 33, |
| | | ! 34, 50, 51, 48, 54, 93, 97, 4, 52, 90, |
| | | ! 91, 97, 94, 51, 94, 14, 58, 93, 51, 94, |
| | | ! 14, 14, 52, 60, 70, 76, 70, 67, 19, 25, |
| | | ! 61, 26, 26, 26, 29, 57, 26, 26, 29, 57, |
| | | ! 26, 26, 26, 26, 26, 26, 26, 26, 29, 57, |
| | | ! 26, 26, 29, 57, 26, 26, 26, 26, 26, 61, |
| | | ! 61, 59, 61, 65, 94, 94, 96, 96, 94, 94, |
| | | ! 89, 33, 34, 50, 51, 52, 21, 94, 14, 21, |
| | | ! 58, 89, 89, 94, 94, 14, 21, 58, 89, 89, |
| | | ! 94, 61, 67, 67, 94, 96, 96, 98, 98, 5, |
| | | ! 6, 7, 84, 94, 94, 94, 94, 94, 85, 86, |
| | | ! 87, 94, 14, 58, 89, 26, 64, 93, 89, 15, |
| | | ! 59, 14, 58, 14, 58, 89, 64, 93, 89, 15, |
| | | ! 15, 76, 94, 76, 89, 89, 7, 91, 91, 91, |
| | | ! 91, 91, 9, 40, 41, 42, 86, 94, 9, 26, |
| | | ! 60, 88, 89, 89, 15, 26, 93, 94, 59, 89, |
| | | ! 89, 89, 89, 15, 93, 94, 59, 76, 7, 4, |
| | | ! 40, 41, 42, 9, 88, 54, 61, 15, 59, 94, |
| | | ! 14, 58, 15, 59, 15, 59, 94, 14, 58, 89, |
| | | ! 61, 26, 89, 94, 14, 58, 89, 89, 14, 58, |
| | | ! 89, 89, 5, 84, 89, 94, 89, 89, 15, 59, |
| | | ! 89, 89, 15, 59, 89, 15, 59, 15, 59 |
| | | }; |
| | | |
| | | --- 1401,1434 ---- |
| | | 53, 55, 56, 58, 60, 63, 65, 66, 68, 69, |
| | | 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, |
| | | ! 81, 82, 83, 95, 96, 97, 98, 99, 0, 52, |
| | | ! 53, 89, 94, 26, 26, 31, 26, 89, 89, 26, |
| | | ! 26, 68, 70, 32, 51, 52, 53, 93, 97, 24, |
| | | ! 25, 60, 35, 36, 37, 38, 39, 43, 46, 47, |
| | | ! 55, 56, 35, 36, 37, 38, 39, 43, 46, 47, |
| | | ! 55, 56, 26, 26, 26, 29, 57, 26, 26, 29, |
| | | ! 57, 26, 26, 26, 26, 26, 89, 94, 26, 26, |
| | | ! 89, 89, 0, 26, 66, 65, 67, 52, 53, 92, |
| | | ! 33, 34, 50, 51, 48, 54, 93, 97, 4, 52, |
| | | ! 90, 91, 97, 94, 51, 94, 14, 58, 93, 51, |
| | | ! 94, 14, 14, 52, 60, 70, 76, 70, 67, 19, |
| | | ! 25, 61, 26, 26, 26, 29, 57, 26, 26, 29, |
| | | ! 57, 26, 26, 26, 26, 26, 26, 26, 26, 29, |
| | | ! 57, 26, 26, 29, 57, 26, 26, 26, 26, 26, |
| | | ! 61, 61, 59, 61, 65, 94, 94, 96, 96, 94, |
| | | ! 94, 89, 33, 34, 50, 51, 52, 21, 94, 14, |
| | | ! 21, 58, 89, 89, 94, 94, 14, 21, 58, 89, |
| | | ! 89, 94, 61, 67, 67, 94, 96, 96, 98, 98, |
| | | ! 5, 6, 7, 84, 94, 94, 94, 94, 94, 85, |
| | | ! 86, 87, 94, 14, 58, 89, 26, 64, 93, 89, |
| | | ! 15, 59, 14, 58, 14, 58, 89, 64, 93, 89, |
| | | ! 15, 15, 76, 94, 76, 89, 89, 7, 91, 91, |
| | | ! 91, 91, 91, 9, 40, 41, 42, 86, 94, 9, |
| | | ! 26, 60, 88, 89, 89, 15, 26, 93, 94, 59, |
| | | ! 89, 89, 89, 89, 15, 93, 94, 59, 76, 7, |
| | | ! 4, 40, 41, 42, 9, 88, 54, 61, 15, 59, |
| | | ! 94, 14, 58, 15, 59, 15, 59, 94, 14, 58, |
| | | ! 89, 61, 26, 89, 94, 14, 58, 89, 89, 14, |
| | | ! 58, 89, 89, 5, 84, 89, 94, 89, 89, 15, |
| | | ! 59, 89, 89, 15, 59, 89, 15, 59, 15, 59 |
| | | }; |
| | | |
| | | *************** |
| | | *** 1436,1457 **** |
| | | static const yytype_int8 yyr1[] = |
| | | { |
| | | ! 0, 62, 63, 63, 63, 63, 63, 63, 64, 64, |
| | | ! 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, |
| | | 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, |
| | | 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, |
| | | 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, |
| | | ! 65, 65, 65, 65, 66, 66, 66, 67, 67, 68, |
| | | ! 68, 69, 69, 69, 69, 69, 70, 70, 70, 70, |
| | | ! 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, |
| | | ! 71, 71, 71, 71, 71, 72, 72, 72, 72, 73, |
| | | ! 73, 73, 73, 73, 73, 73, 73, 74, 74, 74, |
| | | ! 75, 75, 75, 75, 76, 76, 77, 78, 78, 79, |
| | | ! 79, 79, 79, 79, 80, 80, 80, 81, 82, 83, |
| | | ! 84, 84, 84, 85, 85, 86, 86, 86, 86, 87, |
| | | ! 87, 87, 87, 87, 87, 88, 88, 89, 89, 90, |
| | | ! 90, 90, 91, 91, 91, 91, 91, 91, 92, 92, |
| | | ! 93, 93, 93, 94, 94, 95, 95, 95, 96, 96, |
| | | ! 96, 96, 96, 97, 97, 97, 97, 97, 98, 98, |
| | | ! 98, 99, 99, 99, 99 |
| | | }; |
| | | |
| | | --- 1436,1457 ---- |
| | | static const yytype_int8 yyr1[] = |
| | | { |
| | | ! 0, 62, 63, 63, 63, 63, 63, 63, 63, 64, |
| | | ! 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, |
| | | 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, |
| | | 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, |
| | | 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, |
| | | ! 65, 65, 65, 65, 65, 66, 66, 66, 67, 67, |
| | | ! 68, 68, 69, 69, 69, 69, 69, 70, 70, 70, |
| | | ! 70, 70, 70, 70, 70, 70, 70, 70, 71, 71, |
| | | ! 71, 71, 71, 71, 71, 71, 72, 72, 72, 72, |
| | | ! 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, |
| | | ! 74, 75, 75, 75, 75, 76, 76, 77, 78, 78, |
| | | ! 79, 79, 79, 79, 79, 80, 80, 80, 81, 82, |
| | | ! 83, 84, 84, 84, 85, 85, 86, 86, 86, 86, |
| | | ! 87, 87, 87, 87, 87, 87, 88, 88, 89, 89, |
| | | ! 90, 90, 90, 91, 91, 91, 91, 91, 91, 92, |
| | | ! 92, 93, 93, 93, 94, 94, 95, 95, 95, 96, |
| | | ! 96, 96, 96, 96, 97, 97, 97, 97, 97, 98, |
| | | ! 98, 98, 99, 99, 99, 99 |
| | | }; |
| | | |
| | | *************** |
| | | *** 1459,1480 **** |
| | | static const yytype_int8 yyr2[] = |
| | | { |
| | | ! 0, 2, 2, 1, 1, 2, 2, 1, 1, 2, |
| | | ! 2, 2, 3, 3, 3, 3, 2, 3, 3, 2, |
| | | 3, 3, 2, 3, 3, 2, 3, 3, 2, 3, |
| | | 3, 2, 3, 3, 2, 3, 3, 2, 3, 3, |
| | | ! 2, 3, 3, 2, 3, 3, 2, 3, 3, 2, |
| | | ! 3, 3, 2, 2, 1, 1, 1, 1, 2, 1, |
| | | ! 2, 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, 9, 9, 6, 7, 6, |
| | | ! 5, 6, 3, 5, 1, 2, 3, 3, 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, 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, 2, 3 |
| | | }; |
| | | |
| | | --- 1459,1480 ---- |
| | | static const yytype_int8 yyr2[] = |
| | | { |
| | | ! 0, 2, 2, 1, 1, 2, 2, 2, 1, 1, |
| | | ! 2, 2, 2, 3, 3, 3, 3, 2, 3, 3, |
| | | ! 2, 3, 3, 2, 3, 3, 2, 3, 3, 2, |
| | | 3, 3, 2, 3, 3, 2, 3, 3, 2, 3, |
| | | 3, 2, 3, 3, 2, 3, 3, 2, 3, 3, |
| | | ! 2, 3, 3, 2, 2, 1, 1, 1, 1, 2, |
| | | ! 1, 2, 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, 9, 9, 6, 7, |
| | | ! 6, 5, 6, 3, 5, 1, 2, 3, 3, 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, 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, 2, 3 |
| | | }; |
| | | |
| | | *************** |
| | | *** 2019,2025 **** |
| | | break; |
| | | |
| | | ! case 7: /* inputunit: yacc_EOF */ |
| | | #line 456 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | /* Case of EOF seen by itself. Do ignoreeof or |
| | | not. */ |
| | | --- 2019,2044 ---- |
| | | break; |
| | | |
| | | ! case 7: /* inputunit: error $end */ |
| | | #line 456 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | + global_command = (COMMAND *)NULL; |
| | | + if (last_command_exit_value == 0) |
| | | + last_command_exit_value = EX_BADUSAGE; /* force error return */ |
| | | + if (interactive && parse_and_execute_level == 0) |
| | | + { |
| | | + handle_eof_input_unit (); |
| | | + YYACCEPT; |
| | | + } |
| | | + else |
| | | + { |
| | | + YYABORT; |
| | | + } |
| | | + } |
| | | + #line 2038 "y.tab.c" |
| | | + break; |
| | | + |
| | | + case 8: /* inputunit: yacc_EOF */ |
| | | + #line 471 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | + { |
| | | /* Case of EOF seen by itself. Do ignoreeof or |
| | | not. */ |
| | | *************** |
| | | *** 2028,2048 **** |
| | | YYACCEPT; |
| | | } |
| | | ! #line 2031 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 8: /* word_list: WORD */ |
| | | ! #line 466 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (WORD_LIST *)NULL); } |
| | | ! #line 2037 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 9: /* word_list: word_list WORD */ |
| | | ! #line 468 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (yyvsp[-1].word_list)); } |
| | | ! #line 2043 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 10: /* redirection: '>' WORD */ |
| | | ! #line 472 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | --- 2047,2067 ---- |
| | | YYACCEPT; |
| | | } |
| | | ! #line 2050 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 9: /* word_list: WORD */ |
| | | ! #line 481 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (WORD_LIST *)NULL); } |
| | | ! #line 2056 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 10: /* word_list: word_list WORD */ |
| | | ! #line 483 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (yyvsp[-1].word_list)); } |
| | | ! #line 2062 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 11: /* redirection: '>' WORD */ |
| | | ! #line 487 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | *************** |
| | | *** 2050,2058 **** |
| | | (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0); |
| | | } |
| | | ! #line 2053 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 11: /* redirection: '<' WORD */ |
| | | ! #line 478 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | --- 2069,2077 ---- |
| | | (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0); |
| | | } |
| | | ! #line 2072 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 12: /* redirection: '<' WORD */ |
| | | ! #line 493 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | *************** |
| | | *** 2060,2068 **** |
| | | (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0); |
| | | } |
| | | ! #line 2063 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 12: /* redirection: NUMBER '>' WORD */ |
| | | ! #line 484 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | --- 2079,2087 ---- |
| | | (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0); |
| | | } |
| | | ! #line 2082 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 13: /* redirection: NUMBER '>' WORD */ |
| | | ! #line 499 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | *************** |
| | | *** 2070,2078 **** |
| | | (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0); |
| | | } |
| | | ! #line 2073 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 13: /* redirection: NUMBER '<' WORD */ |
| | | ! #line 490 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | --- 2089,2097 ---- |
| | | (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0); |
| | | } |
| | | ! #line 2092 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 14: /* redirection: NUMBER '<' WORD */ |
| | | ! #line 505 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | *************** |
| | | *** 2080,2088 **** |
| | | (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0); |
| | | } |
| | | ! #line 2083 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 14: /* redirection: REDIR_WORD '>' WORD */ |
| | | ! #line 496 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | --- 2099,2107 ---- |
| | | (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0); |
| | | } |
| | | ! #line 2102 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 15: /* redirection: REDIR_WORD '>' WORD */ |
| | | ! #line 511 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | *************** |
| | | *** 2090,2098 **** |
| | | (yyval.redirect) = make_redirection (source, r_output_direction, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2093 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 15: /* redirection: REDIR_WORD '<' WORD */ |
| | | ! #line 502 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | --- 2109,2117 ---- |
| | | (yyval.redirect) = make_redirection (source, r_output_direction, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2112 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 16: /* redirection: REDIR_WORD '<' WORD */ |
| | | ! #line 517 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | *************** |
| | | *** 2100,2108 **** |
| | | (yyval.redirect) = make_redirection (source, r_input_direction, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2103 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 16: /* redirection: GREATER_GREATER WORD */ |
| | | ! #line 508 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | --- 2119,2127 ---- |
| | | (yyval.redirect) = make_redirection (source, r_input_direction, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2122 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 17: /* redirection: GREATER_GREATER WORD */ |
| | | ! #line 523 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | *************** |
| | | *** 2110,2118 **** |
| | | (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0); |
| | | } |
| | | ! #line 2113 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 17: /* redirection: NUMBER GREATER_GREATER WORD */ |
| | | ! #line 514 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | --- 2129,2137 ---- |
| | | (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0); |
| | | } |
| | | ! #line 2132 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 18: /* redirection: NUMBER GREATER_GREATER WORD */ |
| | | ! #line 529 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | *************** |
| | | *** 2120,2128 **** |
| | | (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0); |
| | | } |
| | | ! #line 2123 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 18: /* redirection: REDIR_WORD GREATER_GREATER WORD */ |
| | | ! #line 520 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | --- 2139,2147 ---- |
| | | (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0); |
| | | } |
| | | ! #line 2142 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 19: /* redirection: REDIR_WORD GREATER_GREATER WORD */ |
| | | ! #line 535 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | *************** |
| | | *** 2130,2138 **** |
| | | (yyval.redirect) = make_redirection (source, r_appending_to, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2133 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 19: /* redirection: GREATER_BAR WORD */ |
| | | ! #line 526 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | --- 2149,2157 ---- |
| | | (yyval.redirect) = make_redirection (source, r_appending_to, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2152 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 20: /* redirection: GREATER_BAR WORD */ |
| | | ! #line 541 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | *************** |
| | | *** 2140,2148 **** |
| | | (yyval.redirect) = make_redirection (source, r_output_force, redir, 0); |
| | | } |
| | | ! #line 2143 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 20: /* redirection: NUMBER GREATER_BAR WORD */ |
| | | ! #line 532 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | --- 2159,2167 ---- |
| | | (yyval.redirect) = make_redirection (source, r_output_force, redir, 0); |
| | | } |
| | | ! #line 2162 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 21: /* redirection: NUMBER GREATER_BAR WORD */ |
| | | ! #line 547 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | *************** |
| | | *** 2150,2158 **** |
| | | (yyval.redirect) = make_redirection (source, r_output_force, redir, 0); |
| | | } |
| | | ! #line 2153 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 21: /* redirection: REDIR_WORD GREATER_BAR WORD */ |
| | | ! #line 538 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | --- 2169,2177 ---- |
| | | (yyval.redirect) = make_redirection (source, r_output_force, redir, 0); |
| | | } |
| | | ! #line 2172 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 22: /* redirection: REDIR_WORD GREATER_BAR WORD */ |
| | | ! #line 553 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | *************** |
| | | *** 2160,2168 **** |
| | | (yyval.redirect) = make_redirection (source, r_output_force, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2163 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 22: /* redirection: LESS_GREATER WORD */ |
| | | ! #line 544 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | --- 2179,2187 ---- |
| | | (yyval.redirect) = make_redirection (source, r_output_force, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2182 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 23: /* redirection: LESS_GREATER WORD */ |
| | | ! #line 559 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | *************** |
| | | *** 2170,2178 **** |
| | | (yyval.redirect) = make_redirection (source, r_input_output, redir, 0); |
| | | } |
| | | ! #line 2173 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 23: /* redirection: NUMBER LESS_GREATER WORD */ |
| | | ! #line 550 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | --- 2189,2197 ---- |
| | | (yyval.redirect) = make_redirection (source, r_input_output, redir, 0); |
| | | } |
| | | ! #line 2192 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 24: /* redirection: NUMBER LESS_GREATER WORD */ |
| | | ! #line 565 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | *************** |
| | | *** 2180,2188 **** |
| | | (yyval.redirect) = make_redirection (source, r_input_output, redir, 0); |
| | | } |
| | | ! #line 2183 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 24: /* redirection: REDIR_WORD LESS_GREATER WORD */ |
| | | ! #line 556 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | --- 2199,2207 ---- |
| | | (yyval.redirect) = make_redirection (source, r_input_output, redir, 0); |
| | | } |
| | | ! #line 2202 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 25: /* redirection: REDIR_WORD LESS_GREATER WORD */ |
| | | ! #line 571 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | *************** |
| | | *** 2190,2198 **** |
| | | (yyval.redirect) = make_redirection (source, r_input_output, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2193 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 25: /* redirection: LESS_LESS WORD */ |
| | | ! #line 562 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | --- 2209,2217 ---- |
| | | (yyval.redirect) = make_redirection (source, r_input_output, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2212 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 26: /* redirection: LESS_LESS WORD */ |
| | | ! #line 577 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | *************** |
| | | *** 2201,2209 **** |
| | | push_heredoc ((yyval.redirect)); |
| | | } |
| | | ! #line 2204 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 26: /* redirection: NUMBER LESS_LESS WORD */ |
| | | ! #line 569 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | --- 2220,2228 ---- |
| | | push_heredoc ((yyval.redirect)); |
| | | } |
| | | ! #line 2223 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 27: /* redirection: NUMBER LESS_LESS WORD */ |
| | | ! #line 584 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | *************** |
| | | *** 2212,2220 **** |
| | | push_heredoc ((yyval.redirect)); |
| | | } |
| | | ! #line 2215 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 27: /* redirection: REDIR_WORD LESS_LESS WORD */ |
| | | ! #line 576 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | --- 2231,2239 ---- |
| | | push_heredoc ((yyval.redirect)); |
| | | } |
| | | ! #line 2234 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 28: /* redirection: REDIR_WORD LESS_LESS WORD */ |
| | | ! #line 591 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | *************** |
| | | *** 2223,2231 **** |
| | | push_heredoc ((yyval.redirect)); |
| | | } |
| | | ! #line 2226 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 28: /* redirection: LESS_LESS_MINUS WORD */ |
| | | ! #line 583 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | --- 2242,2250 ---- |
| | | push_heredoc ((yyval.redirect)); |
| | | } |
| | | ! #line 2245 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 29: /* redirection: LESS_LESS_MINUS WORD */ |
| | | ! #line 598 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | *************** |
| | | *** 2234,2242 **** |
| | | push_heredoc ((yyval.redirect)); |
| | | } |
| | | ! #line 2237 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 29: /* redirection: NUMBER LESS_LESS_MINUS WORD */ |
| | | ! #line 590 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | --- 2253,2261 ---- |
| | | push_heredoc ((yyval.redirect)); |
| | | } |
| | | ! #line 2256 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 30: /* redirection: NUMBER LESS_LESS_MINUS WORD */ |
| | | ! #line 605 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | *************** |
| | | *** 2245,2253 **** |
| | | push_heredoc ((yyval.redirect)); |
| | | } |
| | | ! #line 2248 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 30: /* redirection: REDIR_WORD LESS_LESS_MINUS WORD */ |
| | | ! #line 597 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | --- 2264,2272 ---- |
| | | push_heredoc ((yyval.redirect)); |
| | | } |
| | | ! #line 2267 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 31: /* redirection: REDIR_WORD LESS_LESS_MINUS WORD */ |
| | | ! #line 612 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | *************** |
| | | *** 2256,2264 **** |
| | | push_heredoc ((yyval.redirect)); |
| | | } |
| | | ! #line 2259 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 31: /* redirection: LESS_LESS_LESS WORD */ |
| | | ! #line 604 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | --- 2275,2283 ---- |
| | | push_heredoc ((yyval.redirect)); |
| | | } |
| | | ! #line 2278 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 32: /* redirection: LESS_LESS_LESS WORD */ |
| | | ! #line 619 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | *************** |
| | | *** 2266,2274 **** |
| | | (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0); |
| | | } |
| | | ! #line 2269 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 32: /* redirection: NUMBER LESS_LESS_LESS WORD */ |
| | | ! #line 610 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | --- 2285,2293 ---- |
| | | (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0); |
| | | } |
| | | ! #line 2288 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 33: /* redirection: NUMBER LESS_LESS_LESS WORD */ |
| | | ! #line 625 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | *************** |
| | | *** 2276,2284 **** |
| | | (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0); |
| | | } |
| | | ! #line 2279 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 33: /* redirection: REDIR_WORD LESS_LESS_LESS WORD */ |
| | | ! #line 616 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | --- 2295,2303 ---- |
| | | (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0); |
| | | } |
| | | ! #line 2298 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 34: /* redirection: REDIR_WORD LESS_LESS_LESS WORD */ |
| | | ! #line 631 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | *************** |
| | | *** 2286,2294 **** |
| | | (yyval.redirect) = make_redirection (source, r_reading_string, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2289 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 34: /* redirection: LESS_AND NUMBER */ |
| | | ! #line 622 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | --- 2305,2313 ---- |
| | | (yyval.redirect) = make_redirection (source, r_reading_string, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2308 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 35: /* redirection: LESS_AND NUMBER */ |
| | | ! #line 637 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | *************** |
| | | *** 2296,2304 **** |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0); |
| | | } |
| | | ! #line 2299 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 35: /* redirection: NUMBER LESS_AND NUMBER */ |
| | | ! #line 628 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | --- 2315,2323 ---- |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0); |
| | | } |
| | | ! #line 2318 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 36: /* redirection: NUMBER LESS_AND NUMBER */ |
| | | ! #line 643 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | *************** |
| | | *** 2306,2314 **** |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0); |
| | | } |
| | | ! #line 2309 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 36: /* redirection: REDIR_WORD LESS_AND NUMBER */ |
| | | ! #line 634 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | --- 2325,2333 ---- |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0); |
| | | } |
| | | ! #line 2328 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 37: /* redirection: REDIR_WORD LESS_AND NUMBER */ |
| | | ! #line 649 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | *************** |
| | | *** 2316,2324 **** |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2319 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 37: /* redirection: GREATER_AND NUMBER */ |
| | | ! #line 640 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | --- 2335,2343 ---- |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2338 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 38: /* redirection: GREATER_AND NUMBER */ |
| | | ! #line 655 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | *************** |
| | | *** 2326,2334 **** |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0); |
| | | } |
| | | ! #line 2329 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 38: /* redirection: NUMBER GREATER_AND NUMBER */ |
| | | ! #line 646 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | --- 2345,2353 ---- |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0); |
| | | } |
| | | ! #line 2348 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 39: /* redirection: NUMBER GREATER_AND NUMBER */ |
| | | ! #line 661 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | *************** |
| | | *** 2336,2344 **** |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0); |
| | | } |
| | | ! #line 2339 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 39: /* redirection: REDIR_WORD GREATER_AND NUMBER */ |
| | | ! #line 652 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | --- 2355,2363 ---- |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0); |
| | | } |
| | | ! #line 2358 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 40: /* redirection: REDIR_WORD GREATER_AND NUMBER */ |
| | | ! #line 667 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | *************** |
| | | *** 2346,2354 **** |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2349 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 40: /* redirection: LESS_AND WORD */ |
| | | ! #line 658 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | --- 2365,2373 ---- |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2368 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 41: /* redirection: LESS_AND WORD */ |
| | | ! #line 673 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | *************** |
| | | *** 2356,2364 **** |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0); |
| | | } |
| | | ! #line 2359 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 41: /* redirection: NUMBER LESS_AND WORD */ |
| | | ! #line 664 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | --- 2375,2383 ---- |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0); |
| | | } |
| | | ! #line 2378 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 42: /* redirection: NUMBER LESS_AND WORD */ |
| | | ! #line 679 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | *************** |
| | | *** 2366,2374 **** |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0); |
| | | } |
| | | ! #line 2369 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 42: /* redirection: REDIR_WORD LESS_AND WORD */ |
| | | ! #line 670 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | --- 2385,2393 ---- |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0); |
| | | } |
| | | ! #line 2388 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 43: /* redirection: REDIR_WORD LESS_AND WORD */ |
| | | ! #line 685 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | *************** |
| | | *** 2376,2384 **** |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2379 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 43: /* redirection: GREATER_AND WORD */ |
| | | ! #line 676 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | --- 2395,2403 ---- |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2398 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 44: /* redirection: GREATER_AND WORD */ |
| | | ! #line 691 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | *************** |
| | | *** 2386,2394 **** |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0); |
| | | } |
| | | ! #line 2389 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 44: /* redirection: NUMBER GREATER_AND WORD */ |
| | | ! #line 682 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | --- 2405,2413 ---- |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0); |
| | | } |
| | | ! #line 2408 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 45: /* redirection: NUMBER GREATER_AND WORD */ |
| | | ! #line 697 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | *************** |
| | | *** 2396,2404 **** |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0); |
| | | } |
| | | ! #line 2399 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 45: /* redirection: REDIR_WORD GREATER_AND WORD */ |
| | | ! #line 688 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | --- 2415,2423 ---- |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0); |
| | | } |
| | | ! #line 2418 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 46: /* redirection: REDIR_WORD GREATER_AND WORD */ |
| | | ! #line 703 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | *************** |
| | | *** 2406,2414 **** |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2409 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 46: /* redirection: GREATER_AND '-' */ |
| | | ! #line 694 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | --- 2425,2433 ---- |
| | | (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2428 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 47: /* redirection: GREATER_AND '-' */ |
| | | ! #line 709 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | *************** |
| | | *** 2416,2424 **** |
| | | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); |
| | | } |
| | | ! #line 2419 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 47: /* redirection: NUMBER GREATER_AND '-' */ |
| | | ! #line 700 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | --- 2435,2443 ---- |
| | | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); |
| | | } |
| | | ! #line 2438 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 48: /* redirection: NUMBER GREATER_AND '-' */ |
| | | ! #line 715 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | *************** |
| | | *** 2426,2434 **** |
| | | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); |
| | | } |
| | | ! #line 2429 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 48: /* redirection: REDIR_WORD GREATER_AND '-' */ |
| | | ! #line 706 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | --- 2445,2453 ---- |
| | | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); |
| | | } |
| | | ! #line 2448 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 49: /* redirection: REDIR_WORD GREATER_AND '-' */ |
| | | ! #line 721 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | *************** |
| | | *** 2436,2444 **** |
| | | (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2439 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 49: /* redirection: LESS_AND '-' */ |
| | | ! #line 712 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | --- 2455,2463 ---- |
| | | (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2458 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 50: /* redirection: LESS_AND '-' */ |
| | | ! #line 727 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 0; |
| | | *************** |
| | | *** 2446,2454 **** |
| | | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); |
| | | } |
| | | ! #line 2449 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 50: /* redirection: NUMBER LESS_AND '-' */ |
| | | ! #line 718 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | --- 2465,2473 ---- |
| | | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); |
| | | } |
| | | ! #line 2468 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 51: /* redirection: NUMBER LESS_AND '-' */ |
| | | ! #line 733 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = (yyvsp[-2].number); |
| | | *************** |
| | | *** 2456,2464 **** |
| | | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); |
| | | } |
| | | ! #line 2459 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 51: /* redirection: REDIR_WORD LESS_AND '-' */ |
| | | ! #line 724 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | --- 2475,2483 ---- |
| | | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); |
| | | } |
| | | ! #line 2478 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 52: /* redirection: REDIR_WORD LESS_AND '-' */ |
| | | ! #line 739 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.filename = (yyvsp[-2].word); |
| | | *************** |
| | | *** 2466,2474 **** |
| | | (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2469 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 52: /* redirection: AND_GREATER WORD */ |
| | | ! #line 730 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | --- 2485,2493 ---- |
| | | (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); |
| | | } |
| | | ! #line 2488 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 53: /* redirection: AND_GREATER WORD */ |
| | | ! #line 745 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | *************** |
| | | *** 2476,2484 **** |
| | | (yyval.redirect) = make_redirection (source, r_err_and_out, redir, 0); |
| | | } |
| | | ! #line 2479 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 53: /* redirection: AND_GREATER_GREATER WORD */ |
| | | ! #line 736 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | --- 2495,2503 ---- |
| | | (yyval.redirect) = make_redirection (source, r_err_and_out, redir, 0); |
| | | } |
| | | ! #line 2498 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 54: /* redirection: AND_GREATER_GREATER WORD */ |
| | | ! #line 751 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | source.dest = 1; |
| | | *************** |
| | | *** 2486,2520 **** |
| | | (yyval.redirect) = make_redirection (source, r_append_err_and_out, redir, 0); |
| | | } |
| | | ! #line 2489 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 54: /* simple_command_element: WORD */ |
| | | ! #line 744 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.element).word = (yyvsp[0].word); (yyval.element).redirect = 0; } |
| | | ! #line 2495 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 55: /* simple_command_element: ASSIGNMENT_WORD */ |
| | | ! #line 746 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.element).word = (yyvsp[0].word); (yyval.element).redirect = 0; } |
| | | ! #line 2501 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 56: /* simple_command_element: redirection */ |
| | | ! #line 748 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.element).redirect = (yyvsp[0].redirect); (yyval.element).word = 0; } |
| | | ! #line 2507 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 57: /* redirection_list: redirection */ |
| | | ! #line 752 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.redirect) = (yyvsp[0].redirect); |
| | | } |
| | | ! #line 2515 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 58: /* redirection_list: redirection_list redirection */ |
| | | ! #line 756 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | register REDIRECT *t; |
| | | --- 2505,2539 ---- |
| | | (yyval.redirect) = make_redirection (source, r_append_err_and_out, redir, 0); |
| | | } |
| | | ! #line 2508 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 55: /* simple_command_element: WORD */ |
| | | ! #line 759 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.element).word = (yyvsp[0].word); (yyval.element).redirect = 0; } |
| | | ! #line 2514 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 56: /* simple_command_element: ASSIGNMENT_WORD */ |
| | | ! #line 761 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.element).word = (yyvsp[0].word); (yyval.element).redirect = 0; } |
| | | ! #line 2520 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 57: /* simple_command_element: redirection */ |
| | | ! #line 763 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.element).redirect = (yyvsp[0].redirect); (yyval.element).word = 0; } |
| | | ! #line 2526 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 58: /* redirection_list: redirection */ |
| | | ! #line 767 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.redirect) = (yyvsp[0].redirect); |
| | | } |
| | | ! #line 2534 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 59: /* redirection_list: redirection_list redirection */ |
| | | ! #line 771 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | register REDIRECT *t; |
| | | *************** |
| | | *** 2525,2557 **** |
| | | (yyval.redirect) = (yyvsp[-1].redirect); |
| | | } |
| | | ! #line 2528 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 59: /* simple_command: simple_command_element */ |
| | | ! #line 767 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_simple_command ((yyvsp[0].element), (COMMAND *)NULL); } |
| | | ! #line 2534 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 60: /* simple_command: simple_command simple_command_element */ |
| | | ! #line 769 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_simple_command ((yyvsp[0].element), (yyvsp[-1].command)); } |
| | | ! #line 2540 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 61: /* command: simple_command */ |
| | | ! #line 773 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = clean_simple_command ((yyvsp[0].command)); } |
| | | ! #line 2546 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 62: /* command: shell_command */ |
| | | ! #line 775 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2552 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 63: /* command: shell_command redirection_list */ |
| | | ! #line 777 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | COMMAND *tc; |
| | | --- 2544,2576 ---- |
| | | (yyval.redirect) = (yyvsp[-1].redirect); |
| | | } |
| | | ! #line 2547 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 60: /* simple_command: simple_command_element */ |
| | | ! #line 782 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_simple_command ((yyvsp[0].element), (COMMAND *)NULL); } |
| | | ! #line 2553 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 61: /* simple_command: simple_command simple_command_element */ |
| | | ! #line 784 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_simple_command ((yyvsp[0].element), (yyvsp[-1].command)); } |
| | | ! #line 2559 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 62: /* command: simple_command */ |
| | | ! #line 788 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = clean_simple_command ((yyvsp[0].command)); } |
| | | ! #line 2565 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 63: /* command: shell_command */ |
| | | ! #line 790 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2571 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 64: /* command: shell_command redirection_list */ |
| | | ! #line 792 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | COMMAND *tc; |
| | | *************** |
| | | *** 2569,2727 **** |
| | | (yyval.command) = (yyvsp[-1].command); |
| | | } |
| | | ! #line 2572 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 64: /* command: function_def */ |
| | | ! #line 793 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2578 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 65: /* command: coproc */ |
| | | ! #line 795 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2584 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 66: /* shell_command: for_command */ |
| | | ! #line 799 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2590 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 67: /* shell_command: case_command */ |
| | | ! #line 801 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2596 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 68: /* shell_command: WHILE compound_list DO compound_list DONE */ |
| | | ! #line 803 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_while_command ((yyvsp[-3].command), (yyvsp[-1].command)); } |
| | | ! #line 2602 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 69: /* shell_command: UNTIL compound_list DO compound_list DONE */ |
| | | ! #line 805 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_until_command ((yyvsp[-3].command), (yyvsp[-1].command)); } |
| | | ! #line 2608 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 70: /* shell_command: select_command */ |
| | | ! #line 807 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2614 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 71: /* shell_command: if_command */ |
| | | ! #line 809 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2620 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 72: /* shell_command: subshell */ |
| | | ! #line 811 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2626 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 73: /* shell_command: group_command */ |
| | | ! #line 813 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2632 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 74: /* shell_command: arith_command */ |
| | | ! #line 815 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2638 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 75: /* shell_command: cond_command */ |
| | | ! #line 817 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2644 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 76: /* shell_command: arith_for_command */ |
| | | ! #line 819 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2650 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 77: /* for_command: FOR WORD newline_list DO compound_list DONE */ |
| | | ! #line 823 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2659 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 78: /* for_command: FOR WORD newline_list '{' compound_list '}' */ |
| | | ! #line 828 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2668 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 79: /* for_command: FOR WORD ';' newline_list DO compound_list DONE */ |
| | | ! #line 833 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2677 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 80: /* for_command: FOR WORD ';' newline_list '{' compound_list '}' */ |
| | | ! #line 838 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2686 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 81: /* for_command: FOR WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE */ |
| | | ! #line 843 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2695 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 82: /* for_command: FOR WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}' */ |
| | | ! #line 848 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2704 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 83: /* for_command: FOR WORD newline_list IN list_terminator newline_list DO compound_list DONE */ |
| | | ! #line 853 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2713 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 84: /* for_command: FOR WORD newline_list IN list_terminator newline_list '{' compound_list '}' */ |
| | | ! #line 858 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2722 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 85: /* arith_for_command: FOR ARITH_FOR_EXPRS list_terminator newline_list DO compound_list DONE */ |
| | | ! #line 865 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_arith_for_command ((yyvsp[-5].word_list), (yyvsp[-1].command), arith_for_lineno); |
| | | --- 2588,2746 ---- |
| | | (yyval.command) = (yyvsp[-1].command); |
| | | } |
| | | ! #line 2591 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 65: /* command: function_def */ |
| | | ! #line 808 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2597 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 66: /* command: coproc */ |
| | | ! #line 810 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2603 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 67: /* shell_command: for_command */ |
| | | ! #line 814 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2609 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 68: /* shell_command: case_command */ |
| | | ! #line 816 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2615 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 69: /* shell_command: WHILE compound_list DO compound_list DONE */ |
| | | ! #line 818 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_while_command ((yyvsp[-3].command), (yyvsp[-1].command)); } |
| | | ! #line 2621 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 70: /* shell_command: UNTIL compound_list DO compound_list DONE */ |
| | | ! #line 820 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_until_command ((yyvsp[-3].command), (yyvsp[-1].command)); } |
| | | ! #line 2627 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 71: /* shell_command: select_command */ |
| | | ! #line 822 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2633 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 72: /* shell_command: if_command */ |
| | | ! #line 824 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2639 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 73: /* shell_command: subshell */ |
| | | ! #line 826 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2645 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 74: /* shell_command: group_command */ |
| | | ! #line 828 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2651 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 75: /* shell_command: arith_command */ |
| | | ! #line 830 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2657 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 76: /* shell_command: cond_command */ |
| | | ! #line 832 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2663 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 77: /* shell_command: arith_for_command */ |
| | | ! #line 834 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2669 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 78: /* for_command: FOR WORD newline_list DO compound_list DONE */ |
| | | ! #line 838 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2678 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 79: /* for_command: FOR WORD newline_list '{' compound_list '}' */ |
| | | ! #line 843 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2687 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 80: /* for_command: FOR WORD ';' newline_list DO compound_list DONE */ |
| | | ! #line 848 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2696 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 81: /* for_command: FOR WORD ';' newline_list '{' compound_list '}' */ |
| | | ! #line 853 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2705 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 82: /* for_command: FOR WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE */ |
| | | ! #line 858 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2714 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 83: /* for_command: FOR WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}' */ |
| | | ! #line 863 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2723 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 84: /* for_command: FOR WORD newline_list IN list_terminator newline_list DO compound_list DONE */ |
| | | ! #line 868 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2732 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 85: /* for_command: FOR WORD newline_list IN list_terminator newline_list '{' compound_list '}' */ |
| | | ! #line 873 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2741 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 86: /* arith_for_command: FOR ARITH_FOR_EXPRS list_terminator newline_list DO compound_list DONE */ |
| | | ! #line 880 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_arith_for_command ((yyvsp[-5].word_list), (yyvsp[-1].command), arith_for_lineno); |
| | | *************** |
| | | *** 2729,2737 **** |
| | | if (word_top > 0) word_top--; |
| | | } |
| | | ! #line 2732 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 86: /* arith_for_command: FOR ARITH_FOR_EXPRS list_terminator newline_list '{' compound_list '}' */ |
| | | ! #line 871 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_arith_for_command ((yyvsp[-5].word_list), (yyvsp[-1].command), arith_for_lineno); |
| | | --- 2748,2756 ---- |
| | | if (word_top > 0) word_top--; |
| | | } |
| | | ! #line 2751 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 87: /* arith_for_command: FOR ARITH_FOR_EXPRS list_terminator newline_list '{' compound_list '}' */ |
| | | ! #line 886 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_arith_for_command ((yyvsp[-5].word_list), (yyvsp[-1].command), arith_for_lineno); |
| | | *************** |
| | | *** 2739,2747 **** |
| | | if (word_top > 0) word_top--; |
| | | } |
| | | ! #line 2742 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 87: /* arith_for_command: FOR ARITH_FOR_EXPRS DO compound_list DONE */ |
| | | ! #line 877 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_arith_for_command ((yyvsp[-3].word_list), (yyvsp[-1].command), arith_for_lineno); |
| | | --- 2758,2766 ---- |
| | | if (word_top > 0) word_top--; |
| | | } |
| | | ! #line 2761 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 88: /* arith_for_command: FOR ARITH_FOR_EXPRS DO compound_list DONE */ |
| | | ! #line 892 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_arith_for_command ((yyvsp[-3].word_list), (yyvsp[-1].command), arith_for_lineno); |
| | | *************** |
| | | *** 2749,2757 **** |
| | | if (word_top > 0) word_top--; |
| | | } |
| | | ! #line 2752 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 88: /* arith_for_command: FOR ARITH_FOR_EXPRS '{' compound_list '}' */ |
| | | ! #line 883 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_arith_for_command ((yyvsp[-3].word_list), (yyvsp[-1].command), arith_for_lineno); |
| | | --- 2768,2776 ---- |
| | | if (word_top > 0) word_top--; |
| | | } |
| | | ! #line 2771 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 89: /* arith_for_command: FOR ARITH_FOR_EXPRS '{' compound_list '}' */ |
| | | ! #line 898 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_arith_for_command ((yyvsp[-3].word_list), (yyvsp[-1].command), arith_for_lineno); |
| | | *************** |
| | | *** 2759,2896 **** |
| | | if (word_top > 0) word_top--; |
| | | } |
| | | ! #line 2762 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 89: /* select_command: SELECT WORD newline_list DO compound_list DONE */ |
| | | ! #line 891 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2771 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 90: /* select_command: SELECT WORD newline_list '{' compound_list '}' */ |
| | | ! #line 896 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2780 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 91: /* select_command: SELECT WORD ';' newline_list DO compound_list DONE */ |
| | | ! #line 901 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2789 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 92: /* select_command: SELECT WORD ';' newline_list '{' compound_list '}' */ |
| | | ! #line 906 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2798 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 93: /* select_command: SELECT WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE */ |
| | | ! #line 911 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2807 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 94: /* select_command: SELECT WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}' */ |
| | | ! #line 916 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2816 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 95: /* select_command: SELECT WORD newline_list IN list_terminator newline_list DO compound_list DONE */ |
| | | ! #line 921 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2825 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 96: /* select_command: SELECT WORD newline_list IN list_terminator newline_list '{' compound_list '}' */ |
| | | ! #line 926 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2834 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 97: /* case_command: CASE WORD newline_list IN newline_list ESAC */ |
| | | ! #line 933 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_case_command ((yyvsp[-4].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); |
| | | if (word_top > 0) word_top--; |
| | | } |
| | | ! #line 2843 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 98: /* case_command: CASE WORD newline_list IN case_clause_sequence newline_list ESAC */ |
| | | ! #line 938 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_case_command ((yyvsp[-5].word), (yyvsp[-2].pattern), word_lineno[word_top]); |
| | | if (word_top > 0) word_top--; |
| | | } |
| | | ! #line 2852 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 99: /* case_command: CASE WORD newline_list IN case_clause ESAC */ |
| | | ! #line 943 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_case_command ((yyvsp[-4].word), (yyvsp[-1].pattern), word_lineno[word_top]); |
| | | if (word_top > 0) word_top--; |
| | | } |
| | | ! #line 2861 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 100: /* function_def: WORD '(' ')' newline_list function_body */ |
| | | ! #line 950 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_function_def ((yyvsp[-4].word), (yyvsp[0].command), function_dstart, function_bstart); } |
| | | ! #line 2867 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 101: /* function_def: FUNCTION WORD '(' ')' newline_list function_body */ |
| | | ! #line 952 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_function_def ((yyvsp[-4].word), (yyvsp[0].command), function_dstart, function_bstart); } |
| | | ! #line 2873 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 102: /* function_def: FUNCTION WORD function_body */ |
| | | ! #line 954 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_function_def ((yyvsp[-1].word), (yyvsp[0].command), function_dstart, function_bstart); } |
| | | ! #line 2879 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 103: /* function_def: FUNCTION WORD '\n' newline_list function_body */ |
| | | ! #line 956 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_function_def ((yyvsp[-3].word), (yyvsp[0].command), function_dstart, function_bstart); } |
| | | ! #line 2885 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 104: /* function_body: shell_command */ |
| | | ! #line 960 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2891 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 105: /* function_body: shell_command redirection_list */ |
| | | ! #line 962 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | COMMAND *tc; |
| | | --- 2778,2915 ---- |
| | | if (word_top > 0) word_top--; |
| | | } |
| | | ! #line 2781 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 90: /* select_command: SELECT WORD newline_list DO compound_list DONE */ |
| | | ! #line 906 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2790 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 91: /* select_command: SELECT WORD newline_list '{' compound_list '}' */ |
| | | ! #line 911 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2799 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 92: /* select_command: SELECT WORD ';' newline_list DO compound_list DONE */ |
| | | ! #line 916 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2808 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 93: /* select_command: SELECT WORD ';' newline_list '{' compound_list '}' */ |
| | | ! #line 921 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2817 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 94: /* select_command: SELECT WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE */ |
| | | ! #line 926 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2826 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 95: /* select_command: SELECT WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}' */ |
| | | ! #line 931 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2835 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 96: /* select_command: SELECT WORD newline_list IN list_terminator newline_list DO compound_list DONE */ |
| | | ! #line 936 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2844 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 97: /* select_command: SELECT WORD newline_list IN list_terminator newline_list '{' compound_list '}' */ |
| | | ! #line 941 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (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 2853 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 98: /* case_command: CASE WORD newline_list IN newline_list ESAC */ |
| | | ! #line 948 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_case_command ((yyvsp[-4].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); |
| | | if (word_top > 0) word_top--; |
| | | } |
| | | ! #line 2862 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 99: /* case_command: CASE WORD newline_list IN case_clause_sequence newline_list ESAC */ |
| | | ! #line 953 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_case_command ((yyvsp[-5].word), (yyvsp[-2].pattern), word_lineno[word_top]); |
| | | if (word_top > 0) word_top--; |
| | | } |
| | | ! #line 2871 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 100: /* case_command: CASE WORD newline_list IN case_clause ESAC */ |
| | | ! #line 958 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_case_command ((yyvsp[-4].word), (yyvsp[-1].pattern), word_lineno[word_top]); |
| | | if (word_top > 0) word_top--; |
| | | } |
| | | ! #line 2880 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 101: /* function_def: WORD '(' ')' newline_list function_body */ |
| | | ! #line 965 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_function_def ((yyvsp[-4].word), (yyvsp[0].command), function_dstart, function_bstart); } |
| | | ! #line 2886 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 102: /* function_def: FUNCTION WORD '(' ')' newline_list function_body */ |
| | | ! #line 967 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_function_def ((yyvsp[-4].word), (yyvsp[0].command), function_dstart, function_bstart); } |
| | | ! #line 2892 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 103: /* function_def: FUNCTION WORD function_body */ |
| | | ! #line 969 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_function_def ((yyvsp[-1].word), (yyvsp[0].command), function_dstart, function_bstart); } |
| | | ! #line 2898 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 104: /* function_def: FUNCTION WORD '\n' newline_list function_body */ |
| | | ! #line 971 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_function_def ((yyvsp[-3].word), (yyvsp[0].command), function_dstart, function_bstart); } |
| | | ! #line 2904 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 105: /* function_body: shell_command */ |
| | | ! #line 975 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 2910 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 106: /* function_body: shell_command redirection_list */ |
| | | ! #line 977 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | COMMAND *tc; |
| | | *************** |
| | | *** 2921,2963 **** |
| | | (yyval.command) = (yyvsp[-1].command); |
| | | } |
| | | ! #line 2924 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 106: /* subshell: '(' compound_list ')' */ |
| | | ! #line 993 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_subshell_command ((yyvsp[-1].command)); |
| | | (yyval.command)->flags |= CMD_WANT_SUBSHELL; |
| | | } |
| | | ! #line 2933 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 107: /* comsub: DOLPAREN compound_list ')' */ |
| | | ! #line 1000 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = (yyvsp[-1].command); |
| | | } |
| | | ! #line 2941 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 108: /* comsub: DOLPAREN newline_list ')' */ |
| | | ! #line 1004 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = (COMMAND *)NULL; |
| | | } |
| | | ! #line 2949 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 109: /* coproc: COPROC shell_command */ |
| | | ! #line 1010 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_coproc_command ("COPROC", (yyvsp[0].command)); |
| | | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; |
| | | } |
| | | ! #line 2958 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 110: /* coproc: COPROC shell_command redirection_list */ |
| | | ! #line 1015 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | COMMAND *tc; |
| | | --- 2940,2982 ---- |
| | | (yyval.command) = (yyvsp[-1].command); |
| | | } |
| | | ! #line 2943 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 107: /* subshell: '(' compound_list ')' */ |
| | | ! #line 1008 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_subshell_command ((yyvsp[-1].command)); |
| | | (yyval.command)->flags |= CMD_WANT_SUBSHELL; |
| | | } |
| | | ! #line 2952 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 108: /* comsub: DOLPAREN compound_list ')' */ |
| | | ! #line 1015 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = (yyvsp[-1].command); |
| | | } |
| | | ! #line 2960 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 109: /* comsub: DOLPAREN newline_list ')' */ |
| | | ! #line 1019 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = (COMMAND *)NULL; |
| | | } |
| | | ! #line 2968 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 110: /* coproc: COPROC shell_command */ |
| | | ! #line 1025 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_coproc_command ("COPROC", (yyvsp[0].command)); |
| | | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; |
| | | } |
| | | ! #line 2977 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 111: /* coproc: COPROC shell_command redirection_list */ |
| | | ! #line 1030 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | COMMAND *tc; |
| | | *************** |
| | | *** 2976,2993 **** |
| | | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; |
| | | } |
| | | ! #line 2979 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 111: /* coproc: COPROC WORD shell_command */ |
| | | ! #line 1032 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_coproc_command ((yyvsp[-1].word)->word, (yyvsp[0].command)); |
| | | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; |
| | | } |
| | | ! #line 2988 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 112: /* coproc: COPROC WORD shell_command redirection_list */ |
| | | ! #line 1037 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | COMMAND *tc; |
| | | --- 2995,3012 ---- |
| | | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; |
| | | } |
| | | ! #line 2998 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 112: /* coproc: COPROC WORD shell_command */ |
| | | ! #line 1047 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_coproc_command ((yyvsp[-1].word)->word, (yyvsp[0].command)); |
| | | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; |
| | | } |
| | | ! #line 3007 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 113: /* coproc: COPROC WORD shell_command redirection_list */ |
| | | ! #line 1052 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | COMMAND *tc; |
| | | *************** |
| | | *** 3006,3155 **** |
| | | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; |
| | | } |
| | | ! #line 3009 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 113: /* coproc: COPROC simple_command */ |
| | | ! #line 1054 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[0].command))); |
| | | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; |
| | | } |
| | | ! #line 3018 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 114: /* if_command: IF compound_list THEN compound_list FI */ |
| | | ! #line 1061 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_if_command ((yyvsp[-3].command), (yyvsp[-1].command), (COMMAND *)NULL); } |
| | | ! #line 3024 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 115: /* if_command: IF compound_list THEN compound_list ELSE compound_list FI */ |
| | | ! #line 1063 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_if_command ((yyvsp[-5].command), (yyvsp[-3].command), (yyvsp[-1].command)); } |
| | | ! #line 3030 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 116: /* if_command: IF compound_list THEN compound_list elif_clause FI */ |
| | | ! #line 1065 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_if_command ((yyvsp[-4].command), (yyvsp[-2].command), (yyvsp[-1].command)); } |
| | | ! #line 3036 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 117: /* group_command: '{' compound_list '}' */ |
| | | ! #line 1070 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_group_command ((yyvsp[-1].command)); } |
| | | ! #line 3042 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 118: /* arith_command: ARITH_CMD */ |
| | | ! #line 1074 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_arith_command ((yyvsp[0].word_list)); } |
| | | ! #line 3048 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 119: /* cond_command: COND_START COND_CMD COND_END */ |
| | | ! #line 1078 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[-1].command); } |
| | | ! #line 3054 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 120: /* elif_clause: ELIF compound_list THEN compound_list */ |
| | | ! #line 1082 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_if_command ((yyvsp[-2].command), (yyvsp[0].command), (COMMAND *)NULL); } |
| | | ! #line 3060 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 121: /* elif_clause: ELIF compound_list THEN compound_list ELSE compound_list */ |
| | | ! #line 1084 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_if_command ((yyvsp[-4].command), (yyvsp[-2].command), (yyvsp[0].command)); } |
| | | ! #line 3066 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 122: /* elif_clause: ELIF compound_list THEN compound_list elif_clause */ |
| | | ! #line 1086 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_if_command ((yyvsp[-3].command), (yyvsp[-1].command), (yyvsp[0].command)); } |
| | | ! #line 3072 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 124: /* case_clause: case_clause_sequence pattern_list */ |
| | | ! #line 1091 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyvsp[0].pattern)->next = (yyvsp[-1].pattern); (yyval.pattern) = (yyvsp[0].pattern); } |
| | | ! #line 3078 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 125: /* pattern_list: newline_list pattern ')' compound_list */ |
| | | ! #line 1095 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (yyvsp[0].command)); } |
| | | ! #line 3084 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 126: /* pattern_list: newline_list pattern ')' newline_list */ |
| | | ! #line 1097 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (COMMAND *)NULL); } |
| | | ! #line 3090 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 127: /* pattern_list: newline_list '(' pattern ')' compound_list */ |
| | | ! #line 1099 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (yyvsp[0].command)); } |
| | | ! #line 3096 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 128: /* pattern_list: newline_list '(' pattern ')' newline_list */ |
| | | ! #line 1101 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (COMMAND *)NULL); } |
| | | ! #line 3102 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 129: /* case_clause_sequence: pattern_list SEMI_SEMI */ |
| | | ! #line 1105 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.pattern) = (yyvsp[-1].pattern); } |
| | | ! #line 3108 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 130: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_SEMI */ |
| | | ! #line 1107 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } |
| | | ! #line 3114 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 131: /* case_clause_sequence: pattern_list SEMI_AND */ |
| | | ! #line 1109 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyvsp[-1].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[-1].pattern); } |
| | | ! #line 3120 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 132: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_AND */ |
| | | ! #line 1111 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyvsp[-1].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } |
| | | ! #line 3126 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 133: /* case_clause_sequence: pattern_list SEMI_SEMI_AND */ |
| | | ! #line 1113 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyvsp[-1].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[-1].pattern); } |
| | | ! #line 3132 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 134: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_SEMI_AND */ |
| | | ! #line 1115 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyvsp[-1].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } |
| | | ! #line 3138 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 135: /* pattern: WORD */ |
| | | ! #line 1119 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (WORD_LIST *)NULL); } |
| | | ! #line 3144 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 136: /* pattern: pattern '|' WORD */ |
| | | ! #line 1121 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (yyvsp[-2].word_list)); } |
| | | ! #line 3150 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 137: /* compound_list: newline_list list0 */ |
| | | ! #line 1130 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = (yyvsp[0].command); |
| | | --- 3025,3174 ---- |
| | | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; |
| | | } |
| | | ! #line 3028 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 114: /* coproc: COPROC simple_command */ |
| | | ! #line 1069 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[0].command))); |
| | | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; |
| | | } |
| | | ! #line 3037 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 115: /* if_command: IF compound_list THEN compound_list FI */ |
| | | ! #line 1076 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_if_command ((yyvsp[-3].command), (yyvsp[-1].command), (COMMAND *)NULL); } |
| | | ! #line 3043 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 116: /* if_command: IF compound_list THEN compound_list ELSE compound_list FI */ |
| | | ! #line 1078 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_if_command ((yyvsp[-5].command), (yyvsp[-3].command), (yyvsp[-1].command)); } |
| | | ! #line 3049 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 117: /* if_command: IF compound_list THEN compound_list elif_clause FI */ |
| | | ! #line 1080 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_if_command ((yyvsp[-4].command), (yyvsp[-2].command), (yyvsp[-1].command)); } |
| | | ! #line 3055 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 118: /* group_command: '{' compound_list '}' */ |
| | | ! #line 1085 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_group_command ((yyvsp[-1].command)); } |
| | | ! #line 3061 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 119: /* arith_command: ARITH_CMD */ |
| | | ! #line 1089 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_arith_command ((yyvsp[0].word_list)); } |
| | | ! #line 3067 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 120: /* cond_command: COND_START COND_CMD COND_END */ |
| | | ! #line 1093 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[-1].command); } |
| | | ! #line 3073 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 121: /* elif_clause: ELIF compound_list THEN compound_list */ |
| | | ! #line 1097 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_if_command ((yyvsp[-2].command), (yyvsp[0].command), (COMMAND *)NULL); } |
| | | ! #line 3079 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 122: /* elif_clause: ELIF compound_list THEN compound_list ELSE compound_list */ |
| | | ! #line 1099 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_if_command ((yyvsp[-4].command), (yyvsp[-2].command), (yyvsp[0].command)); } |
| | | ! #line 3085 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 123: /* elif_clause: ELIF compound_list THEN compound_list elif_clause */ |
| | | ! #line 1101 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = make_if_command ((yyvsp[-3].command), (yyvsp[-1].command), (yyvsp[0].command)); } |
| | | ! #line 3091 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 125: /* case_clause: case_clause_sequence pattern_list */ |
| | | ! #line 1106 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyvsp[0].pattern)->next = (yyvsp[-1].pattern); (yyval.pattern) = (yyvsp[0].pattern); } |
| | | ! #line 3097 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 126: /* pattern_list: newline_list pattern ')' compound_list */ |
| | | ! #line 1110 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (yyvsp[0].command)); } |
| | | ! #line 3103 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 127: /* pattern_list: newline_list pattern ')' newline_list */ |
| | | ! #line 1112 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (COMMAND *)NULL); } |
| | | ! #line 3109 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 128: /* pattern_list: newline_list '(' pattern ')' compound_list */ |
| | | ! #line 1114 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (yyvsp[0].command)); } |
| | | ! #line 3115 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 129: /* pattern_list: newline_list '(' pattern ')' newline_list */ |
| | | ! #line 1116 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (COMMAND *)NULL); } |
| | | ! #line 3121 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 130: /* case_clause_sequence: pattern_list SEMI_SEMI */ |
| | | ! #line 1120 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.pattern) = (yyvsp[-1].pattern); } |
| | | ! #line 3127 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 131: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_SEMI */ |
| | | ! #line 1122 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } |
| | | ! #line 3133 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 132: /* case_clause_sequence: pattern_list SEMI_AND */ |
| | | ! #line 1124 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyvsp[-1].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[-1].pattern); } |
| | | ! #line 3139 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 133: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_AND */ |
| | | ! #line 1126 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyvsp[-1].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } |
| | | ! #line 3145 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 134: /* case_clause_sequence: pattern_list SEMI_SEMI_AND */ |
| | | ! #line 1128 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyvsp[-1].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[-1].pattern); } |
| | | ! #line 3151 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 135: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_SEMI_AND */ |
| | | ! #line 1130 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyvsp[-1].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } |
| | | ! #line 3157 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 136: /* pattern: WORD */ |
| | | ! #line 1134 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (WORD_LIST *)NULL); } |
| | | ! #line 3163 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 137: /* pattern: pattern '|' WORD */ |
| | | ! #line 1136 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (yyvsp[-2].word_list)); } |
| | | ! #line 3169 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 138: /* compound_list: newline_list list0 */ |
| | | ! #line 1145 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = (yyvsp[0].command); |
| | | *************** |
| | | *** 3157,3173 **** |
| | | gather_here_documents (); |
| | | } |
| | | ! #line 3160 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 138: /* compound_list: newline_list list1 */ |
| | | ! #line 1136 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = (yyvsp[0].command); |
| | | } |
| | | ! #line 3168 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 140: /* list0: list1 '&' newline_list */ |
| | | ! #line 1143 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | if ((yyvsp[-2].command)->type == cm_connection) |
| | | --- 3176,3192 ---- |
| | | gather_here_documents (); |
| | | } |
| | | ! #line 3179 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 139: /* compound_list: newline_list list1 */ |
| | | ! #line 1151 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = (yyvsp[0].command); |
| | | } |
| | | ! #line 3187 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 141: /* list0: list1 '&' newline_list */ |
| | | ! #line 1158 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | if ((yyvsp[-2].command)->type == cm_connection) |
| | | *************** |
| | | *** 3176,3196 **** |
| | | (yyval.command) = command_connect ((yyvsp[-2].command), (COMMAND *)NULL, '&'); |
| | | } |
| | | ! #line 3179 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 142: /* list1: list1 AND_AND newline_list list1 */ |
| | | ! #line 1154 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), AND_AND); } |
| | | ! #line 3185 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 143: /* list1: list1 OR_OR newline_list list1 */ |
| | | ! #line 1156 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), OR_OR); } |
| | | ! #line 3191 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 144: /* list1: list1 '&' newline_list list1 */ |
| | | ! #line 1158 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | if ((yyvsp[-3].command)->type == cm_connection) |
| | | --- 3195,3215 ---- |
| | | (yyval.command) = command_connect ((yyvsp[-2].command), (COMMAND *)NULL, '&'); |
| | | } |
| | | ! #line 3198 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 143: /* list1: list1 AND_AND newline_list list1 */ |
| | | ! #line 1169 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), AND_AND); } |
| | | ! #line 3204 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 144: /* list1: list1 OR_OR newline_list list1 */ |
| | | ! #line 1171 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), OR_OR); } |
| | | ! #line 3210 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 145: /* list1: list1 '&' newline_list list1 */ |
| | | ! #line 1173 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | if ((yyvsp[-3].command)->type == cm_connection) |
| | | *************** |
| | | *** 3199,3213 **** |
| | | (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '&'); |
| | | } |
| | | ! #line 3202 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 145: /* list1: list1 ';' newline_list list1 */ |
| | | ! #line 1165 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';'); } |
| | | ! #line 3208 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 146: /* list1: list1 '\n' newline_list list1 */ |
| | | ! #line 1167 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | if (parser_state & PST_CMDSUBST) |
| | | --- 3218,3232 ---- |
| | | (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '&'); |
| | | } |
| | | ! #line 3221 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 146: /* list1: list1 ';' newline_list list1 */ |
| | | ! #line 1180 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';'); } |
| | | ! #line 3227 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 147: /* list1: list1 '\n' newline_list list1 */ |
| | | ! #line 1182 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | if (parser_state & PST_CMDSUBST) |
| | | *************** |
| | | *** 3216,3248 **** |
| | | (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';'); |
| | | } |
| | | ! #line 3219 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 147: /* list1: pipeline_command */ |
| | | ! #line 1174 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 3225 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 150: /* list_terminator: '\n' */ |
| | | ! #line 1182 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.number) = '\n'; } |
| | | ! #line 3231 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 151: /* list_terminator: ';' */ |
| | | ! #line 1184 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.number) = ';'; } |
| | | ! #line 3237 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 152: /* list_terminator: yacc_EOF */ |
| | | ! #line 1186 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.number) = yacc_EOF; } |
| | | ! #line 3243 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 155: /* simple_list: simple_list1 */ |
| | | ! #line 1200 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = (yyvsp[0].command); |
| | | --- 3235,3267 ---- |
| | | (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';'); |
| | | } |
| | | ! #line 3238 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 148: /* list1: pipeline_command */ |
| | | ! #line 1189 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 3244 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 151: /* list_terminator: '\n' */ |
| | | ! #line 1197 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.number) = '\n'; } |
| | | ! #line 3250 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 152: /* list_terminator: ';' */ |
| | | ! #line 1199 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.number) = ';'; } |
| | | ! #line 3256 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 153: /* list_terminator: yacc_EOF */ |
| | | ! #line 1201 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.number) = yacc_EOF; } |
| | | ! #line 3262 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 156: /* simple_list: simple_list1 */ |
| | | ! #line 1215 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = (yyvsp[0].command); |
| | | *************** |
| | | *** 3259,3267 **** |
| | | } |
| | | } |
| | | ! #line 3262 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 156: /* simple_list: simple_list1 '&' */ |
| | | ! #line 1215 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | if ((yyvsp[-1].command)->type == cm_connection) |
| | | --- 3278,3286 ---- |
| | | } |
| | | } |
| | | ! #line 3281 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 157: /* simple_list: simple_list1 '&' */ |
| | | ! #line 1230 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | if ((yyvsp[-1].command)->type == cm_connection) |
| | | *************** |
| | | *** 3281,3289 **** |
| | | } |
| | | } |
| | | ! #line 3284 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 157: /* simple_list: simple_list1 ';' */ |
| | | ! #line 1233 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = (yyvsp[-1].command); |
| | | --- 3300,3308 ---- |
| | | } |
| | | } |
| | | ! #line 3303 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 158: /* simple_list: simple_list1 ';' */ |
| | | ! #line 1248 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | (yyval.command) = (yyvsp[-1].command); |
| | | *************** |
| | | *** 3300,3320 **** |
| | | } |
| | | } |
| | | ! #line 3303 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 158: /* simple_list1: simple_list1 AND_AND newline_list simple_list1 */ |
| | | ! #line 1250 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), AND_AND); } |
| | | ! #line 3309 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 159: /* simple_list1: simple_list1 OR_OR newline_list simple_list1 */ |
| | | ! #line 1252 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), OR_OR); } |
| | | ! #line 3315 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 160: /* simple_list1: simple_list1 '&' simple_list1 */ |
| | | ! #line 1254 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | if ((yyvsp[-2].command)->type == cm_connection) |
| | | --- 3319,3339 ---- |
| | | } |
| | | } |
| | | ! #line 3322 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 159: /* simple_list1: simple_list1 AND_AND newline_list simple_list1 */ |
| | | ! #line 1265 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), AND_AND); } |
| | | ! #line 3328 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 160: /* simple_list1: simple_list1 OR_OR newline_list simple_list1 */ |
| | | ! #line 1267 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), OR_OR); } |
| | | ! #line 3334 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 161: /* simple_list1: simple_list1 '&' simple_list1 */ |
| | | ! #line 1269 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | if ((yyvsp[-2].command)->type == cm_connection) |
| | | *************** |
| | | *** 3323,3349 **** |
| | | (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), '&'); |
| | | } |
| | | ! #line 3326 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 161: /* simple_list1: simple_list1 ';' simple_list1 */ |
| | | ! #line 1261 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), ';'); } |
| | | ! #line 3332 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 162: /* simple_list1: pipeline_command */ |
| | | ! #line 1264 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 3338 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 163: /* pipeline_command: pipeline */ |
| | | ! #line 1268 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 3344 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 164: /* pipeline_command: BANG pipeline_command */ |
| | | ! #line 1270 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | if ((yyvsp[0].command)) |
| | | --- 3342,3368 ---- |
| | | (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), '&'); |
| | | } |
| | | ! #line 3345 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 162: /* simple_list1: simple_list1 ';' simple_list1 */ |
| | | ! #line 1276 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), ';'); } |
| | | ! #line 3351 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 163: /* simple_list1: pipeline_command */ |
| | | ! #line 1279 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 3357 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 164: /* pipeline_command: pipeline */ |
| | | ! #line 1283 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 3363 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 165: /* pipeline_command: BANG pipeline_command */ |
| | | ! #line 1285 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | if ((yyvsp[0].command)) |
| | | *************** |
| | | *** 3351,3359 **** |
| | | (yyval.command) = (yyvsp[0].command); |
| | | } |
| | | ! #line 3354 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 165: /* pipeline_command: timespec pipeline_command */ |
| | | ! #line 1276 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | if ((yyvsp[0].command)) |
| | | --- 3370,3378 ---- |
| | | (yyval.command) = (yyvsp[0].command); |
| | | } |
| | | ! #line 3373 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 166: /* pipeline_command: timespec pipeline_command */ |
| | | ! #line 1291 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | if ((yyvsp[0].command)) |
| | | *************** |
| | | *** 3361,3369 **** |
| | | (yyval.command) = (yyvsp[0].command); |
| | | } |
| | | ! #line 3364 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 166: /* pipeline_command: timespec list_terminator */ |
| | | ! #line 1282 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | ELEMENT x; |
| | | --- 3380,3388 ---- |
| | | (yyval.command) = (yyvsp[0].command); |
| | | } |
| | | ! #line 3383 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 167: /* pipeline_command: timespec list_terminator */ |
| | | ! #line 1297 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | ELEMENT x; |
| | | *************** |
| | | *** 3385,3393 **** |
| | | parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */ |
| | | } |
| | | ! #line 3388 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 167: /* pipeline_command: BANG list_terminator */ |
| | | ! #line 1302 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | ELEMENT x; |
| | | --- 3404,3412 ---- |
| | | parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */ |
| | | } |
| | | ! #line 3407 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 168: /* pipeline_command: BANG list_terminator */ |
| | | ! #line 1317 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | ELEMENT x; |
| | | *************** |
| | | *** 3410,3424 **** |
| | | parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */ |
| | | } |
| | | ! #line 3413 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 168: /* pipeline: pipeline '|' newline_list pipeline */ |
| | | ! #line 1325 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '|'); } |
| | | ! #line 3419 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 169: /* pipeline: pipeline BAR_AND newline_list pipeline */ |
| | | ! #line 1327 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ |
| | | --- 3429,3443 ---- |
| | | parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */ |
| | | } |
| | | ! #line 3432 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 169: /* pipeline: pipeline '|' newline_list pipeline */ |
| | | ! #line 1340 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '|'); } |
| | | ! #line 3438 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 170: /* pipeline: pipeline BAR_AND newline_list pipeline */ |
| | | ! #line 1342 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { |
| | | /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ |
| | | *************** |
| | | *** 3443,3481 **** |
| | | (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '|'); |
| | | } |
| | | ! #line 3446 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 170: /* pipeline: command */ |
| | | ! #line 1350 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 3452 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 171: /* timespec: TIME */ |
| | | ! #line 1354 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.number) = CMD_TIME_PIPELINE; } |
| | | ! #line 3458 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 172: /* timespec: TIME TIMEOPT */ |
| | | ! #line 1356 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } |
| | | ! #line 3464 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 173: /* timespec: TIME TIMEIGN */ |
| | | ! #line 1358 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } |
| | | ! #line 3470 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 174: /* timespec: TIME TIMEOPT TIMEIGN */ |
| | | ! #line 1360 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } |
| | | ! #line 3476 "y.tab.c" |
| | | break; |
| | | |
| | | |
| | | ! #line 3480 "y.tab.c" |
| | | |
| | | default: break; |
| | | --- 3462,3500 ---- |
| | | (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '|'); |
| | | } |
| | | ! #line 3465 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 171: /* pipeline: command */ |
| | | ! #line 1365 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.command) = (yyvsp[0].command); } |
| | | ! #line 3471 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 172: /* timespec: TIME */ |
| | | ! #line 1369 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.number) = CMD_TIME_PIPELINE; } |
| | | ! #line 3477 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 173: /* timespec: TIME TIMEOPT */ |
| | | ! #line 1371 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } |
| | | ! #line 3483 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 174: /* timespec: TIME TIMEIGN */ |
| | | ! #line 1373 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } |
| | | ! #line 3489 "y.tab.c" |
| | | break; |
| | | |
| | | ! case 175: /* timespec: TIME TIMEOPT TIMEIGN */ |
| | | ! #line 1375 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } |
| | | ! #line 3495 "y.tab.c" |
| | | break; |
| | | |
| | | |
| | | ! #line 3499 "y.tab.c" |
| | | |
| | | default: break; |
| | | *************** |
| | | *** 3670,3674 **** |
| | | } |
| | | |
| | | ! #line 1362 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | |
| | | |
| | | --- 3689,3693 ---- |
| | | } |
| | | |
| | | ! #line 1377 "/usr/local/src/chet/src/bash/src/parse.y" |
| | | |
| | | |
| | | *************** |
| | | *** 5209,5215 **** |
| | | if (current_token < 0) |
| | | #if defined (YYERRCODE) && !defined (YYUNDEF) |
| | | ! current_token = YYERRCODE; |
| | | #else |
| | | ! current_token = YYerror; |
| | | #endif |
| | | |
| | | --- 5228,5234 ---- |
| | | if (current_token < 0) |
| | | #if defined (YYERRCODE) && !defined (YYUNDEF) |
| | | ! current_token = EOF_Reached ? YYEOF : YYERRCODE; |
| | | #else |
| | | ! current_token = EOF_Reached ? YYEOF : YYUNDEF; |
| | | #endif |
| | | |
| | | *************** |
| | | *** 6006,6009 **** |
| | | --- 6026,6030 ---- |
| | | parser_error (start_lineno, _("unexpected EOF while looking for matching `%c'"), close); |
| | | EOF_Reached = 1; /* XXX */ |
| | | + parser_state |= PST_NOERROR; /* avoid redundant error message */ |
| | | return (&matched_pair_error); |
| | | } |
| | | *************** |
| | | *** 6468,6471 **** |
| | | --- 6487,6491 ---- |
| | | |
| | | /* yyparse() has already called yyerror() and reset_parser() */ |
| | | + parser_state |= PST_NOERROR; |
| | | return (&matched_pair_error); |
| | | } |
| | | |
| | | *** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 |
| | | --- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 |
| | | *************** |
| | | *** 26,30 **** |
| | | looks for to find the patch level (for the sccs version string). */ |
| | | |
| | | ! #define PATCHLEVEL 17 |
| | | |
| | | #endif /* _PATCHLEVEL_H_ */ |
| | | --- 26,30 ---- |
| | | looks for to find the patch level (for the sccs version string). */ |
| | | |
| | | ! #define PATCHLEVEL 18 |
| | | |
| | | #endif /* _PATCHLEVEL_H_ */ |
New file |
| | |
| | | BASH PATCH REPORT |
| | | ================= |
| | | |
| | | Bash-Release: 5.2 |
| | | Patch-ID: bash52-019 |
| | | |
| | | Bug-Reported-by: Steffen Nurpmeso <steffen@sdaoden.eu> |
| | | Bug-Reference-ID: <20230116233547.2jFxL%steffen@sdaoden.eu> |
| | | Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2023-01/msg00057.html |
| | | |
| | | Bug-Description: |
| | | |
| | | There are some cases where the shell reaped a background (asynchronous) job |
| | | and would incorrectly try to set the terminal's process group back to the |
| | | shell's. In these cases it never set the terminal process group to that |
| | | jobs's process group initially, so resetting it is incorrect. |
| | | |
| | | Patch (apply with `patch -p0'): |
| | | |
| | | *** ../bash-5.2-patched/jobs.c 2022-12-13 12:09:02.000000000 -0500 |
| | | --- jobs.c 2023-10-26 12:12:10.000000000 -0400 |
| | | *************** |
| | | *** 3078,3084 **** |
| | | subshell. Make sure subst.c:command_substitute uses the same |
| | | conditions to determine whether or not it should undo this and |
| | | ! give the terminal to pipeline_pgrp. */ |
| | | ! |
| | | if ((flags & JWAIT_NOTERM) == 0 && running_in_background == 0 && |
| | | (subshell_environment & (SUBSHELL_ASYNC|SUBSHELL_PIPE)) == 0) |
| | | give_terminal_to (shell_pgrp, 0); |
| | | --- 3036,3046 ---- |
| | | subshell. Make sure subst.c:command_substitute uses the same |
| | | conditions to determine whether or not it should undo this and |
| | | ! give the terminal to pipeline_pgrp. We don't give the terminal |
| | | ! back to shell_pgrp if an async job in the background exits because |
| | | ! we never gave it to that job in the first place. An async job in |
| | | ! the foreground is one we started in the background and foregrounded |
| | | ! with `fg', and gave it the terminal. */ |
| | | if ((flags & JWAIT_NOTERM) == 0 && running_in_background == 0 && |
| | | + (job == NO_JOB || IS_ASYNC (job) == 0 || IS_FOREGROUND (job)) && |
| | | (subshell_environment & (SUBSHELL_ASYNC|SUBSHELL_PIPE)) == 0) |
| | | give_terminal_to (shell_pgrp, 0); |
| | | *************** |
| | | *** 3624,3627 **** |
| | | --- 3599,3603 ---- |
| | | get_tty_state (); |
| | | save_stty = shell_tty_info; |
| | | + jobs[job]->flags &= ~J_ASYNC; /* no longer async */ |
| | | /* Give the terminal to this job. */ |
| | | if (IS_JOBCONTROL (job)) |
| | | |
| | | *** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 |
| | | --- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 |
| | | *************** |
| | | *** 26,30 **** |
| | | looks for to find the patch level (for the sccs version string). */ |
| | | |
| | | ! #define PATCHLEVEL 18 |
| | | |
| | | #endif /* _PATCHLEVEL_H_ */ |
| | | --- 26,30 ---- |
| | | looks for to find the patch level (for the sccs version string). */ |
| | | |
| | | ! #define PATCHLEVEL 19 |
| | | |
| | | #endif /* _PATCHLEVEL_H_ */ |
New file |
| | |
| | | BASH PATCH REPORT |
| | | ================= |
| | | |
| | | Bash-Release: 5.2 |
| | | Patch-ID: bash52-020 |
| | | |
| | | Bug-Reported-by: Dima Korobskiy <dkroot2@gmail.com> |
| | | Bug-Reference-ID: <16664c2d-40ec-df33-b932-83db06e39a82@gmail.com> |
| | | Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2023-08/msg00125.html |
| | | |
| | | Bug-Description: |
| | | |
| | | The parser did not allow `time' to appear as the first reserved word in a |
| | | command substitution. |
| | | |
| | | Patch (apply with `patch -p0'): |
| | | |
| | | *** ../bash-5.2-patched/parse.y Tue Dec 13 12:53:21 2022 |
| | | --- parse.y Fri Sep 1 10:36:28 2023 |
| | | *************** |
| | | *** 3151,3154 **** |
| | | --- 3151,3155 ---- |
| | | case TIMEOPT: /* time -p time pipeline */ |
| | | case TIMEIGN: /* time -p -- ... */ |
| | | + case DOLPAREN: |
| | | return 1; |
| | | default: |
| | | *** ../bash-5.2-patched/y.tab.c Tue Dec 13 12:53:21 2022 |
| | | --- y.tab.c Fri Sep 1 10:36:44 2023 |
| | | *************** |
| | | *** 5466,5469 **** |
| | | --- 5466,5470 ---- |
| | | case TIMEOPT: /* time -p time pipeline */ |
| | | case TIMEIGN: /* time -p -- ... */ |
| | | + case DOLPAREN: |
| | | return 1; |
| | | default: |
| | | |
| | | *** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 |
| | | --- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 |
| | | *************** |
| | | *** 26,30 **** |
| | | looks for to find the patch level (for the sccs version string). */ |
| | | |
| | | ! #define PATCHLEVEL 19 |
| | | |
| | | #endif /* _PATCHLEVEL_H_ */ |
| | | --- 26,30 ---- |
| | | looks for to find the patch level (for the sccs version string). */ |
| | | |
| | | ! #define PATCHLEVEL 20 |
| | | |
| | | #endif /* _PATCHLEVEL_H_ */ |
New file |
| | |
| | | BASH PATCH REPORT |
| | | ================= |
| | | |
| | | Bash-Release: 5.2 |
| | | Patch-ID: bash52-021 |
| | | |
| | | Bug-Reported-by: Norbert Lange <nolange79@gmail.com> |
| | | Bug-Reference-ID: <CADYdroPZFdVZSL6KkhqkAPgKKopbsLQVSm7_TvLCwadL2=UAWw@mail.gmail.com> |
| | | Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2022-12/msg00046.html |
| | | |
| | | Bug-Description: |
| | | |
| | | There is an off-by-one error that causes command substitutions to fail when |
| | | they appear in a word expansion inside a here-document. |
| | | |
| | | Patch (apply with `patch -p0'): |
| | | |
| | | *** ../bash-5.2-patched/subst.c 2022-12-13 12:08:58.000000000 -0500 |
| | | --- subst.c 2022-12-14 09:09:53.000000000 -0500 |
| | | *************** |
| | | *** 1694,1698 **** |
| | | CHECK_STRING_OVERRUN (i, si, slen, c); |
| | | |
| | | ! tlen = si - i - 1; |
| | | RESIZE_MALLOCED_BUFFER (result, result_index, tlen + 4, result_size, 64); |
| | | result[result_index++] = c; |
| | | --- 1699,1703 ---- |
| | | CHECK_STRING_OVERRUN (i, si, slen, c); |
| | | |
| | | ! tlen = si - i - 2; |
| | | RESIZE_MALLOCED_BUFFER (result, result_index, tlen + 4, result_size, 64); |
| | | result[result_index++] = c; |
| | | *************** |
| | | *** 1714,1718 **** |
| | | CHECK_STRING_OVERRUN (i, si, slen, c); |
| | | |
| | | ! tlen = si - i - 1; |
| | | RESIZE_MALLOCED_BUFFER (result, result_index, tlen + 4, result_size, 64); |
| | | result[result_index++] = c; |
| | | --- 1719,1723 ---- |
| | | CHECK_STRING_OVERRUN (i, si, slen, c); |
| | | |
| | | ! tlen = si - i - 2; |
| | | RESIZE_MALLOCED_BUFFER (result, result_index, tlen + 4, result_size, 64); |
| | | result[result_index++] = c; |
| | | |
| | | *** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 |
| | | --- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 |
| | | *************** |
| | | *** 26,30 **** |
| | | looks for to find the patch level (for the sccs version string). */ |
| | | |
| | | ! #define PATCHLEVEL 20 |
| | | |
| | | #endif /* _PATCHLEVEL_H_ */ |
| | | --- 26,30 ---- |
| | | looks for to find the patch level (for the sccs version string). */ |
| | | |
| | | ! #define PATCHLEVEL 21 |
| | | |
| | | #endif /* _PATCHLEVEL_H_ */ |
| | |
| | | { |
| | | "dependencies": [ |
| | | "SUNWcs", |
| | | "library/ncurses", |
| | | "shell/ksh93", |
| | | "system/library" |