]>
Commit | Line | Data |
---|---|---|
de1cd0d5 AB |
1 | BASH PATCH REPORT |
2 | ================= | |
3 | ||
4 | Bash-Release: 5.2 | |
5 | Patch-ID: bash52-018 | |
6 | ||
7 | Bug-Reported-by: Todd Stein <toddbstein@gmail.com> | |
8 | Eduardo A . Bustamante López <dualbus@gmail.com> | |
9 | Bug-Reference-ID: | |
10 | <Y/SHWg7/+sc19k7P@system76-pc> | |
11 | Bug-Reference-URL: https://savannah.gnu.org/support/?110745 | |
12 | https://lists.gnu.org/archive/html/bug-bash/2023-02/msg00141.html | |
13 | ||
14 | Bug-Description: | |
15 | ||
16 | There are two problems with returning tokens to yyparse() when the shell | |
17 | encounters a syntax error or when it reads EOF. | |
18 | ||
19 | When reading a WORD token, the parser has to return the correct value to | |
20 | yyparse. Previous versions returned a value < 0, which the bash parser | |
21 | translated into YYERRCODE for bison, and in newer versions of bison, the | |
22 | appropriate reset actions didn't happen. We should return YYUNDEF, which | |
23 | bison uses for `invalid token'. Since we can return a token < 0 for both | |
24 | invalid tokens and EOF, the bash tokenizer needs to differentiate between | |
25 | those two cases. | |
26 | ||
27 | Patch (apply with `patch -p0'): | |
28 | ||
29 | *** ../bash-5.2-patched/parse.y 2022-12-13 12:09:02.000000000 -0500 | |
30 | --- parse.y 2023-11-08 14:29:13.000000000 -0500 | |
31 | *************** | |
32 | *** 453,456 **** | |
33 | --- 453,471 ---- | |
34 | } | |
35 | } | |
36 | + | error YYEOF | |
37 | + { | |
38 | + global_command = (COMMAND *)NULL; | |
39 | + if (last_command_exit_value == 0) | |
40 | + last_command_exit_value = EX_BADUSAGE; /* force error return */ | |
41 | + if (interactive && parse_and_execute_level == 0) | |
42 | + { | |
43 | + handle_eof_input_unit (); | |
44 | + YYACCEPT; | |
45 | + } | |
46 | + else | |
47 | + { | |
48 | + YYABORT; | |
49 | + } | |
50 | + } | |
51 | | yacc_EOF | |
52 | { | |
53 | *************** | |
54 | *** 2898,2904 **** | |
55 | if (current_token < 0) | |
56 | #if defined (YYERRCODE) && !defined (YYUNDEF) | |
57 | ! current_token = YYERRCODE; | |
58 | #else | |
59 | ! current_token = YYerror; | |
60 | #endif | |
61 | ||
62 | --- 2913,2919 ---- | |
63 | if (current_token < 0) | |
64 | #if defined (YYERRCODE) && !defined (YYUNDEF) | |
65 | ! current_token = EOF_Reached ? YYEOF : YYERRCODE; | |
66 | #else | |
67 | ! current_token = EOF_Reached ? YYEOF : YYUNDEF; | |
68 | #endif | |
69 | ||
70 | *************** | |
71 | *** 3695,3698 **** | |
72 | --- 3711,3715 ---- | |
73 | parser_error (start_lineno, _("unexpected EOF while looking for matching `%c'"), close); | |
74 | EOF_Reached = 1; /* XXX */ | |
75 | + parser_state |= PST_NOERROR; /* avoid redundant error message */ | |
76 | return (&matched_pair_error); | |
77 | } | |
78 | *************** | |
79 | *** 4157,4160 **** | |
80 | --- 4172,4176 ---- | |
81 | ||
82 | /* yyparse() has already called yyerror() and reset_parser() */ | |
83 | + parser_state |= PST_NOERROR; | |
84 | return (&matched_pair_error); | |
85 | } | |
86 | ||
87 | *** /Users/chet/src/bash/bash-5.2-patched/y.tab.c 2022-12-13 12:09:02.000000000 -0500 | |
88 | --- y.tab.c 2023-11-08 14:38:01.000000000 -0500 | |
89 | *************** | |
90 | *** 993,997 **** | |
91 | ||
92 | /* YYFINAL -- State number of the termination state. */ | |
93 | ! #define YYFINAL 121 | |
94 | /* YYLAST -- Last index in YYTABLE. */ | |
95 | #define YYLAST 740 | |
96 | --- 993,997 ---- | |
97 | ||
98 | /* YYFINAL -- State number of the termination state. */ | |
99 | ! #define YYFINAL 122 | |
100 | /* YYLAST -- Last index in YYTABLE. */ | |
101 | #define YYLAST 740 | |
102 | *************** | |
103 | *** 1002,1008 **** | |
104 | #define YYNNTS 38 | |
105 | /* YYNRULES -- Number of rules. */ | |
106 | ! #define YYNRULES 174 | |
107 | /* YYNSTATES -- Number of states. */ | |
108 | ! #define YYNSTATES 349 | |
109 | ||
110 | /* YYMAXUTOK -- Last valid token kind. */ | |
111 | --- 1002,1008 ---- | |
112 | #define YYNNTS 38 | |
113 | /* YYNRULES -- Number of rules. */ | |
114 | ! #define YYNRULES 175 | |
115 | /* YYNSTATES -- Number of states. */ | |
116 | ! #define YYNSTATES 350 | |
117 | ||
118 | /* YYMAXUTOK -- Last valid token kind. */ | |
119 | *************** | |
120 | *** 1058,1079 **** | |
121 | static const yytype_int16 yyrline[] = | |
122 | { | |
123 | ! 0, 395, 395, 406, 414, 423, 438, 455, 465, 467, | |
124 | ! 471, 477, 483, 489, 495, 501, 507, 513, 519, 525, | |
125 | ! 531, 537, 543, 549, 555, 561, 568, 575, 582, 589, | |
126 | ! 596, 603, 609, 615, 621, 627, 633, 639, 645, 651, | |
127 | ! 657, 663, 669, 675, 681, 687, 693, 699, 705, 711, | |
128 | ! 717, 723, 729, 735, 743, 745, 747, 751, 755, 766, | |
129 | ! 768, 772, 774, 776, 792, 794, 798, 800, 802, 804, | |
130 | ! 806, 808, 810, 812, 814, 816, 818, 822, 827, 832, | |
131 | ! 837, 842, 847, 852, 857, 864, 870, 876, 882, 890, | |
132 | ! 895, 900, 905, 910, 915, 920, 925, 932, 937, 942, | |
133 | ! 949, 951, 953, 955, 959, 961, 992, 999, 1003, 1009, | |
134 | ! 1014, 1031, 1036, 1053, 1060, 1062, 1064, 1069, 1073, 1077, | |
135 | ! 1081, 1083, 1085, 1089, 1090, 1094, 1096, 1098, 1100, 1104, | |
136 | ! 1106, 1108, 1110, 1112, 1114, 1118, 1120, 1129, 1135, 1141, | |
137 | ! 1142, 1149, 1153, 1155, 1157, 1164, 1166, 1173, 1177, 1178, | |
138 | ! 1181, 1183, 1185, 1189, 1190, 1199, 1214, 1232, 1249, 1251, | |
139 | ! 1253, 1260, 1263, 1267, 1269, 1275, 1281, 1301, 1324, 1326, | |
140 | ! 1349, 1353, 1355, 1357, 1359 | |
141 | }; | |
142 | #endif | |
143 | --- 1058,1079 ---- | |
144 | static const yytype_int16 yyrline[] = | |
145 | { | |
146 | ! 0, 395, 395, 406, 414, 423, 438, 455, 470, 480, | |
147 | ! 482, 486, 492, 498, 504, 510, 516, 522, 528, 534, | |
148 | ! 540, 546, 552, 558, 564, 570, 576, 583, 590, 597, | |
149 | ! 604, 611, 618, 624, 630, 636, 642, 648, 654, 660, | |
150 | ! 666, 672, 678, 684, 690, 696, 702, 708, 714, 720, | |
151 | ! 726, 732, 738, 744, 750, 758, 760, 762, 766, 770, | |
152 | ! 781, 783, 787, 789, 791, 807, 809, 813, 815, 817, | |
153 | ! 819, 821, 823, 825, 827, 829, 831, 833, 837, 842, | |
154 | ! 847, 852, 857, 862, 867, 872, 879, 885, 891, 897, | |
155 | ! 905, 910, 915, 920, 925, 930, 935, 940, 947, 952, | |
156 | ! 957, 964, 966, 968, 970, 974, 976, 1007, 1014, 1018, | |
157 | ! 1024, 1029, 1046, 1051, 1068, 1075, 1077, 1079, 1084, 1088, | |
158 | ! 1092, 1096, 1098, 1100, 1104, 1105, 1109, 1111, 1113, 1115, | |
159 | ! 1119, 1121, 1123, 1125, 1127, 1129, 1133, 1135, 1144, 1150, | |
160 | ! 1156, 1157, 1164, 1168, 1170, 1172, 1179, 1181, 1188, 1192, | |
161 | ! 1193, 1196, 1198, 1200, 1204, 1205, 1214, 1229, 1247, 1264, | |
162 | ! 1266, 1268, 1275, 1278, 1282, 1284, 1290, 1296, 1316, 1339, | |
163 | ! 1341, 1364, 1368, 1370, 1372, 1374 | |
164 | }; | |
165 | #endif | |
166 | *************** | |
167 | *** 1120,1124 **** | |
168 | #endif | |
169 | ||
170 | ! #define YYPACT_NINF (-152) | |
171 | ||
172 | #define yypact_value_is_default(Yyn) \ | |
173 | --- 1120,1124 ---- | |
174 | #endif | |
175 | ||
176 | ! #define YYPACT_NINF (-125) | |
177 | ||
178 | #define yypact_value_is_default(Yyn) \ | |
179 | *************** | |
180 | *** 1134,1172 **** | |
181 | static const yytype_int16 yypact[] = | |
182 | { | |
183 | ! 328, 80, -152, -11, -1, 3, -152, -152, 15, 637, | |
184 | ! -5, 433, 149, -28, -152, 187, 684, -152, 18, 28, | |
185 | ! 130, 38, 139, 50, 52, 60, 65, 74, -152, -152, | |
186 | ! -152, 89, 104, -152, -152, 97, -152, -152, 246, -152, | |
187 | ! 670, -152, -152, -152, -152, -152, -152, -152, -152, -152, | |
188 | ! -152, -152, -152, 146, 211, -152, 1, 433, -152, -152, | |
189 | ! 135, 484, -152, 59, 61, 90, 167, 171, 10, 71, | |
190 | ! 246, 670, 144, -152, -152, -152, -152, -152, 165, -152, | |
191 | ! 142, 179, 192, 140, 194, 160, 227, 245, 252, 253, | |
192 | ! 260, 261, 262, 162, 269, 178, 270, 272, 273, 274, | |
193 | ! 277, -152, -152, -152, -152, -152, -152, -152, -152, -152, | |
194 | ! -152, -152, -152, -152, -152, 168, 379, -152, -152, 173, | |
195 | ! 244, -152, -152, -152, -152, 670, -152, -152, -152, -152, | |
196 | ! -152, 535, 535, -152, -152, -152, -152, -152, -152, -152, | |
197 | ! 205, -152, 14, -152, 36, -152, -152, -152, -152, 84, | |
198 | ! -152, -152, -152, 249, 670, -152, 670, 670, -152, -152, | |
199 | ! -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, | |
200 | ! -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, | |
201 | ! -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, | |
202 | ! -152, -152, -152, -152, 484, 484, 203, 203, 586, 586, | |
203 | ! 145, -152, -152, -152, -152, -152, -152, 0, -152, 119, | |
204 | ! -152, 291, 248, 66, 88, -152, 119, -152, 296, 297, | |
205 | ! 35, -152, 670, 670, 35, -152, -152, 1, 1, -152, | |
206 | ! -152, -152, 306, 484, 484, 484, 484, 484, 305, 169, | |
207 | ! -152, 7, -152, -152, 302, -152, 131, -152, 265, -152, | |
208 | ! -152, -152, -152, -152, -152, 304, 131, -152, 266, -152, | |
209 | ! -152, -152, 35, -152, 313, 317, -152, -152, -152, 225, | |
210 | ! 225, 225, -152, -152, -152, -152, 206, 25, -152, -152, | |
211 | ! 307, -42, 319, 276, -152, -152, -152, 95, -152, 322, | |
212 | ! 283, 332, 284, -152, -152, 102, -152, -152, -152, -152, | |
213 | ! -152, -152, -152, -152, 45, 323, -152, -152, -152, 106, | |
214 | ! -152, -152, -152, -152, -152, -152, 109, -152, -152, 264, | |
215 | ! -152, -152, -152, 484, -152, -152, 333, 293, -152, -152, | |
216 | ! 338, 300, -152, -152, -152, 484, 345, 303, -152, -152, | |
217 | ! 346, 309, -152, -152, -152, -152, -152, -152, -152 | |
218 | }; | |
219 | ||
220 | --- 1134,1172 ---- | |
221 | static const yytype_int16 yypact[] = | |
222 | { | |
223 | ! 329, 27, -125, 8, 81, 10, -125, -125, 16, 38, | |
224 | ! 0, 434, -5, -16, -125, 670, 684, -125, 33, 43, | |
225 | ! 62, 63, 71, 69, 94, 105, 108, 116, -125, -125, | |
226 | ! -125, 125, 139, -125, -125, 111, -125, -125, 626, -125, | |
227 | ! 648, -125, -125, -125, -125, -125, -125, -125, -125, -125, | |
228 | ! -125, -125, -125, 5, -21, -125, -15, 434, -125, -125, | |
229 | ! -125, 196, 485, -125, 157, 2, 180, 207, 222, 227, | |
230 | ! 638, 626, 648, 224, -125, -125, -125, -125, -125, 219, | |
231 | ! -125, 185, 223, 228, 140, 230, 161, 232, 233, 234, | |
232 | ! 236, 241, 248, 249, 162, 250, 163, 251, 254, 256, | |
233 | ! 257, 258, -125, -125, -125, -125, -125, -125, -125, -125, | |
234 | ! -125, -125, -125, -125, -125, -125, 225, 380, -125, -125, | |
235 | ! 229, 231, -125, -125, -125, -125, 648, -125, -125, -125, | |
236 | ! -125, -125, 536, 536, -125, -125, -125, -125, -125, -125, | |
237 | ! -125, 214, -125, -7, -125, 85, -125, -125, -125, -125, | |
238 | ! 89, -125, -125, -125, 235, 648, -125, 648, 648, -125, | |
239 | ! -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, | |
240 | ! -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, | |
241 | ! -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, | |
242 | ! -125, -125, -125, -125, -125, 485, 485, 138, 138, 587, | |
243 | ! 587, 17, -125, -125, -125, -125, -125, -125, 88, -125, | |
244 | ! 122, -125, 274, 238, 100, 101, -125, 122, -125, 276, | |
245 | ! 278, 260, -125, 648, 648, 260, -125, -125, -15, -15, | |
246 | ! -125, -125, -125, 287, 485, 485, 485, 485, 485, 290, | |
247 | ! 164, -125, 26, -125, -125, 285, -125, 131, -125, 242, | |
248 | ! -125, -125, -125, -125, -125, -125, 288, 131, -125, 243, | |
249 | ! -125, -125, -125, 260, -125, 297, 302, -125, -125, -125, | |
250 | ! 152, 152, 152, -125, -125, -125, -125, 170, 61, -125, | |
251 | ! -125, 281, -36, 293, 252, -125, -125, -125, 102, -125, | |
252 | ! 298, 255, 300, 262, -125, -125, 103, -125, -125, -125, | |
253 | ! -125, -125, -125, -125, -125, -33, 296, -125, -125, -125, | |
254 | ! 110, -125, -125, -125, -125, -125, -125, 112, -125, -125, | |
255 | ! 189, -125, -125, -125, 485, -125, -125, 310, 267, -125, | |
256 | ! -125, 314, 275, -125, -125, -125, 485, 318, 277, -125, | |
257 | ! -125, 320, 279, -125, -125, -125, -125, -125, -125, -125 | |
258 | }; | |
259 | ||
260 | *************** | |
261 | *** 1176,1214 **** | |
262 | static const yytype_uint8 yydefact[] = | |
263 | { | |
264 | ! 0, 0, 153, 0, 0, 0, 153, 153, 0, 0, | |
265 | ! 0, 0, 171, 54, 55, 0, 0, 118, 0, 0, | |
266 | ! 0, 0, 0, 0, 0, 0, 0, 0, 153, 4, | |
267 | ! 7, 0, 0, 153, 153, 0, 56, 59, 61, 170, | |
268 | ! 62, 66, 76, 70, 67, 64, 72, 3, 65, 71, | |
269 | ! 73, 74, 75, 0, 155, 162, 163, 0, 5, 6, | |
270 | ! 0, 0, 153, 153, 0, 153, 0, 0, 0, 54, | |
271 | ! 113, 109, 0, 151, 150, 152, 167, 164, 172, 173, | |
272 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
273 | ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
274 | ! 0, 16, 25, 40, 34, 49, 31, 43, 37, 46, | |
275 | ! 28, 52, 53, 22, 19, 0, 0, 10, 11, 0, | |
276 | ! 0, 1, 54, 60, 57, 63, 148, 149, 2, 153, | |
277 | ! 153, 156, 157, 153, 153, 166, 165, 153, 154, 137, | |
278 | ! 138, 147, 0, 153, 0, 153, 153, 153, 153, 0, | |
279 | ! 153, 153, 153, 153, 104, 102, 111, 110, 119, 174, | |
280 | ! 153, 18, 27, 42, 36, 51, 33, 45, 39, 48, | |
281 | ! 30, 24, 21, 14, 15, 17, 26, 41, 35, 50, | |
282 | ! 32, 44, 38, 47, 29, 23, 20, 12, 13, 107, | |
283 | ! 108, 117, 106, 58, 0, 0, 160, 161, 0, 0, | |
284 | ! 0, 153, 153, 153, 153, 153, 153, 0, 153, 0, | |
285 | ! 153, 0, 0, 0, 0, 153, 0, 153, 0, 0, | |
286 | ! 0, 153, 105, 112, 0, 158, 159, 169, 168, 153, | |
287 | ! 153, 114, 0, 0, 0, 140, 141, 139, 0, 123, | |
288 | ! 153, 0, 153, 153, 0, 8, 0, 153, 0, 87, | |
289 | ! 88, 153, 153, 153, 153, 0, 0, 153, 0, 68, | |
290 | ! 69, 103, 0, 100, 0, 0, 116, 142, 143, 144, | |
291 | ! 145, 146, 99, 129, 131, 133, 124, 0, 97, 135, | |
292 | ! 0, 0, 0, 0, 77, 9, 153, 0, 78, 0, | |
293 | ! 0, 0, 0, 89, 153, 0, 90, 101, 115, 153, | |
294 | ! 130, 132, 134, 98, 0, 0, 153, 79, 80, 0, | |
295 | ! 153, 153, 85, 86, 91, 92, 0, 153, 153, 120, | |
296 | ! 153, 136, 125, 126, 153, 153, 0, 0, 153, 153, | |
297 | ! 0, 0, 153, 122, 127, 128, 0, 0, 83, 84, | |
298 | ! 0, 0, 95, 96, 121, 81, 82, 93, 94 | |
299 | }; | |
300 | ||
301 | --- 1176,1214 ---- | |
302 | static const yytype_uint8 yydefact[] = | |
303 | { | |
304 | ! 0, 0, 154, 0, 0, 0, 154, 154, 0, 0, | |
305 | ! 0, 0, 172, 55, 56, 0, 0, 119, 0, 0, | |
306 | ! 0, 0, 0, 0, 0, 0, 0, 0, 154, 4, | |
307 | ! 8, 0, 0, 154, 154, 0, 57, 60, 62, 171, | |
308 | ! 63, 67, 77, 71, 68, 65, 73, 3, 66, 72, | |
309 | ! 74, 75, 76, 0, 156, 163, 164, 0, 7, 5, | |
310 | ! 6, 0, 0, 154, 154, 0, 154, 0, 0, 0, | |
311 | ! 55, 114, 110, 0, 152, 151, 153, 168, 165, 173, | |
312 | ! 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
313 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
314 | ! 0, 0, 17, 26, 41, 35, 50, 32, 44, 38, | |
315 | ! 47, 29, 53, 54, 23, 20, 0, 0, 11, 12, | |
316 | ! 0, 0, 1, 55, 61, 58, 64, 149, 150, 2, | |
317 | ! 154, 154, 157, 158, 154, 154, 167, 166, 154, 155, | |
318 | ! 138, 139, 148, 0, 154, 0, 154, 154, 154, 154, | |
319 | ! 0, 154, 154, 154, 154, 105, 103, 112, 111, 120, | |
320 | ! 175, 154, 19, 28, 43, 37, 52, 34, 46, 40, | |
321 | ! 49, 31, 25, 22, 15, 16, 18, 27, 42, 36, | |
322 | ! 51, 33, 45, 39, 48, 30, 24, 21, 13, 14, | |
323 | ! 108, 109, 118, 107, 59, 0, 0, 161, 162, 0, | |
324 | ! 0, 0, 154, 154, 154, 154, 154, 154, 0, 154, | |
325 | ! 0, 154, 0, 0, 0, 0, 154, 0, 154, 0, | |
326 | ! 0, 0, 154, 106, 113, 0, 159, 160, 170, 169, | |
327 | ! 154, 154, 115, 0, 0, 0, 141, 142, 140, 0, | |
328 | ! 124, 154, 0, 154, 154, 0, 9, 0, 154, 0, | |
329 | ! 88, 89, 154, 154, 154, 154, 0, 0, 154, 0, | |
330 | ! 69, 70, 104, 0, 101, 0, 0, 117, 143, 144, | |
331 | ! 145, 146, 147, 100, 130, 132, 134, 125, 0, 98, | |
332 | ! 136, 0, 0, 0, 0, 78, 10, 154, 0, 79, | |
333 | ! 0, 0, 0, 0, 90, 154, 0, 91, 102, 116, | |
334 | ! 154, 131, 133, 135, 99, 0, 0, 154, 80, 81, | |
335 | ! 0, 154, 154, 86, 87, 92, 93, 0, 154, 154, | |
336 | ! 121, 154, 137, 126, 127, 154, 154, 0, 0, 154, | |
337 | ! 154, 0, 0, 154, 123, 128, 129, 0, 0, 84, | |
338 | ! 85, 0, 0, 96, 97, 122, 82, 83, 94, 95 | |
339 | }; | |
340 | ||
341 | *************** | |
342 | *** 1216,1223 **** | |
343 | static const yytype_int16 yypgoto[] = | |
344 | { | |
345 | ! -152, -152, 112, -29, -14, -64, 360, -152, -8, -152, | |
346 | ! -152, -152, -152, -152, -151, -152, -152, -152, -152, -152, | |
347 | ! -152, -152, 13, -152, 136, -152, 98, -2, -152, 30, | |
348 | ! -152, -54, -26, -152, -123, 6, 78, -152 | |
349 | }; | |
350 | ||
351 | --- 1216,1223 ---- | |
352 | static const yytype_int16 yypgoto[] = | |
353 | { | |
354 | ! -125, -125, 126, -25, -28, -65, 335, -125, -8, -125, | |
355 | ! -125, -125, -125, -125, -96, -125, -125, -125, -125, -125, | |
356 | ! -125, -125, 28, -125, 109, -125, 68, -2, -125, -11, | |
357 | ! -125, -54, -26, -125, -124, 6, 34, -125 | |
358 | }; | |
359 | ||
360 | *************** | |
361 | *** 1225,1232 **** | |
362 | static const yytype_int16 yydefgoto[] = | |
363 | { | |
364 | ! 0, 35, 246, 36, 37, 125, 38, 39, 40, 41, | |
365 | ! 42, 43, 44, 45, 155, 46, 47, 48, 49, 50, | |
366 | ! 51, 52, 232, 238, 239, 240, 281, 120, 139, 140, | |
367 | ! 128, 76, 61, 53, 54, 141, 56, 57 | |
368 | }; | |
369 | ||
370 | --- 1225,1232 ---- | |
371 | static const yytype_int16 yydefgoto[] = | |
372 | { | |
373 | ! 0, 35, 247, 36, 37, 126, 38, 39, 40, 41, | |
374 | ! 42, 43, 44, 45, 156, 46, 47, 48, 49, 50, | |
375 | ! 51, 52, 233, 239, 240, 241, 282, 121, 140, 141, | |
376 | ! 129, 77, 62, 53, 54, 142, 56, 57 | |
377 | }; | |
378 | ||
379 | *************** | |
380 | *** 1236,1390 **** | |
381 | static const yytype_int16 yytable[] = | |
382 | { | |
383 | ! 60, 71, 116, 135, 66, 67, 55, 157, 196, 197, | |
384 | ! 147, 124, 305, 2, 242, 62, 278, 77, 3, 306, | |
385 | ! 4, 5, 6, 7, 123, 63, 115, 72, 10, 65, | |
386 | ! 64, 119, 80, 279, 303, 206, 142, 144, 2, 149, | |
387 | ! 17, 68, 124, 3, 101, 4, 5, 6, 7, 133, | |
388 | ! 208, 279, 138, 10, 102, 134, 123, 209, 243, 138, | |
389 | ! 154, 156, 152, 136, 106, 17, 138, 280, 33, 261, | |
390 | ! 153, 225, 226, 263, 2, 145, 110, 138, 111, 3, | |
391 | ! 251, 4, 5, 6, 7, 280, 112, 138, 138, 10, | |
392 | ! 222, 113, 223, 33, 210, 34, 193, 121, 215, 305, | |
393 | ! 114, 17, 253, 194, 195, 216, 320, 198, 199, 310, | |
394 | ! 143, 297, 73, 74, 75, 117, 317, 207, 138, 146, | |
395 | ! 324, 213, 214, 328, 252, 124, 220, 124, 193, 33, | |
396 | ! 118, 34, 58, 59, 224, 200, 138, 55, 55, 137, | |
397 | ! 138, 148, 217, 211, 212, 245, 254, 138, 218, 219, | |
398 | ! 229, 230, 231, 311, 138, 247, 103, 285, 138, 104, | |
399 | ! 318, 138, 257, 158, 325, 107, 163, 329, 108, 164, | |
400 | ! 73, 74, 75, 78, 79, 233, 234, 235, 236, 237, | |
401 | ! 241, 150, 73, 74, 75, 151, 167, 105, 177, 168, | |
402 | ! 159, 178, 286, 193, 193, 262, 109, 165, 126, 127, | |
403 | ! 55, 55, 294, 160, 181, 161, 244, 182, 248, 273, | |
404 | ! 274, 275, 154, 255, 277, 258, 154, 169, 162, 179, | |
405 | ! 166, 287, 81, 82, 83, 84, 85, 264, 265, 189, | |
406 | ! 86, 295, 191, 87, 88, 183, 129, 130, 201, 202, | |
407 | ! 282, 283, 89, 90, 129, 130, 300, 301, 302, 289, | |
408 | ! 290, 291, 292, 170, 154, 203, 204, 205, 201, 202, | |
409 | ! 309, 131, 132, 267, 268, 269, 270, 271, 316, 332, | |
410 | ! 230, 171, 122, 14, 15, 16, 227, 228, 172, 173, | |
411 | ! 323, 18, 19, 20, 21, 22, 174, 175, 176, 23, | |
412 | ! 24, 25, 26, 27, 335, 180, 184, 319, 185, 186, | |
413 | ! 187, 31, 32, 188, 322, 192, 249, 250, 326, 327, | |
414 | ! 221, 259, 260, 266, 272, 330, 331, 284, 334, 293, | |
415 | ! 298, 299, 336, 337, 288, 296, 340, 341, 256, 1, | |
416 | ! 344, 2, 333, 279, 307, 308, 3, 312, 4, 5, | |
417 | ! 6, 7, 313, 315, 8, 9, 10, 314, 338, 321, | |
418 | ! 11, 12, 339, 342, 13, 14, 15, 16, 17, 343, | |
419 | ! 345, 347, 346, 18, 19, 20, 21, 22, 348, 70, | |
420 | ! 0, 23, 24, 25, 26, 27, 276, 28, 304, 0, | |
421 | ! 29, 30, 2, 31, 32, 0, 33, 3, 34, 4, | |
422 | ! 5, 6, 7, 0, 0, 8, 9, 10, 0, 0, | |
423 | ! 0, 11, 12, 0, 0, 13, 14, 15, 16, 17, | |
424 | 0, 0, 0, 0, 18, 19, 20, 21, 22, 0, | |
425 | ! 0, 0, 23, 24, 25, 26, 27, 0, 0, 0, | |
426 | ! 0, 138, 0, 0, 31, 32, 2, 33, 0, 34, | |
427 | ! 190, 3, 0, 4, 5, 6, 7, 0, 0, 8, | |
428 | ! 9, 10, 0, 0, 0, 11, 12, 0, 0, 13, | |
429 | ! 14, 15, 16, 17, 0, 0, 0, 0, 18, 19, | |
430 | ! 20, 21, 22, 0, 0, 0, 23, 24, 25, 26, | |
431 | ! 27, 0, 0, 0, 73, 74, 75, 2, 31, 32, | |
432 | ! 0, 33, 3, 34, 4, 5, 6, 7, 0, 0, | |
433 | 8, 9, 10, 0, 0, 0, 11, 12, 0, 0, | |
434 | 13, 14, 15, 16, 17, 0, 0, 0, 0, 18, | |
435 | 19, 20, 21, 22, 0, 0, 0, 23, 24, 25, | |
436 | ! 26, 27, 0, 0, 0, 0, 138, 0, 2, 31, | |
437 | 32, 0, 33, 3, 34, 4, 5, 6, 7, 0, | |
438 | 0, 8, 9, 10, 0, 0, 0, 11, 12, 0, | |
439 | 0, 13, 14, 15, 16, 17, 0, 0, 0, 0, | |
440 | 18, 19, 20, 21, 22, 0, 0, 0, 23, 24, | |
441 | ! 25, 26, 27, 0, 0, 0, 0, 0, 0, 2, | |
442 | 31, 32, 0, 33, 3, 34, 4, 5, 6, 7, | |
443 | ! 0, 0, 8, 9, 10, 0, 0, 0, 0, 0, | |
444 | 0, 0, 13, 14, 15, 16, 17, 0, 0, 0, | |
445 | 0, 18, 19, 20, 21, 22, 0, 0, 0, 23, | |
446 | ! 24, 25, 26, 27, 0, 0, 0, 0, 138, 0, | |
447 | 2, 31, 32, 0, 33, 3, 34, 4, 5, 6, | |
448 | ! 7, 0, 0, 0, 0, 10, 0, 0, 0, 0, | |
449 | ! 0, 0, 0, 69, 14, 15, 16, 17, 0, 0, | |
450 | 0, 0, 18, 19, 20, 21, 22, 0, 0, 0, | |
451 | ! 23, 24, 25, 26, 27, 0, 0, 0, 0, 0, | |
452 | ! 0, 0, 31, 32, 0, 33, 0, 34, 15, 16, | |
453 | ! 0, 0, 0, 0, 0, 18, 19, 20, 21, 22, | |
454 | ! 0, 0, 0, 23, 24, 25, 26, 27, 0, 91, | |
455 | ! 92, 93, 94, 95, 0, 31, 32, 96, 0, 0, | |
456 | ! 97, 98, 0, 0, 0, 0, 0, 0, 0, 99, | |
457 | ! 100 | |
458 | }; | |
459 | ||
460 | static const yytype_int16 yycheck[] = | |
461 | { | |
462 | ! 2, 9, 28, 57, 6, 7, 0, 71, 131, 132, | |
463 | ! 64, 40, 54, 3, 14, 26, 9, 11, 8, 61, | |
464 | ! 10, 11, 12, 13, 38, 26, 28, 32, 18, 26, | |
465 | ! 31, 33, 60, 26, 9, 21, 62, 63, 3, 65, | |
466 | ! 30, 26, 71, 8, 26, 10, 11, 12, 13, 48, | |
467 | ! 14, 26, 52, 18, 26, 54, 70, 21, 58, 52, | |
468 | ! 68, 69, 52, 57, 26, 30, 52, 60, 58, 220, | |
469 | ! 60, 194, 195, 224, 3, 14, 26, 52, 26, 8, | |
470 | ! 14, 10, 11, 12, 13, 60, 26, 52, 52, 18, | |
471 | ! 154, 26, 156, 58, 58, 60, 125, 0, 14, 54, | |
472 | ! 26, 30, 14, 129, 130, 21, 61, 133, 134, 14, | |
473 | ! 51, 262, 51, 52, 53, 26, 14, 143, 52, 58, | |
474 | ! 14, 147, 148, 14, 58, 154, 152, 156, 157, 58, | |
475 | ! 26, 60, 52, 53, 160, 137, 52, 131, 132, 4, | |
476 | ! 52, 51, 58, 145, 146, 26, 58, 52, 150, 151, | |
477 | ! 5, 6, 7, 58, 52, 209, 26, 26, 52, 29, | |
478 | ! 58, 52, 216, 19, 58, 26, 26, 58, 29, 29, | |
479 | ! 51, 52, 53, 24, 25, 201, 202, 203, 204, 205, | |
480 | ! 206, 14, 51, 52, 53, 14, 26, 57, 26, 29, | |
481 | ! 25, 29, 246, 222, 223, 221, 57, 57, 52, 53, | |
482 | ! 194, 195, 256, 61, 26, 26, 208, 29, 210, 40, | |
483 | ! 41, 42, 220, 215, 240, 217, 224, 57, 26, 57, | |
484 | ! 26, 247, 35, 36, 37, 38, 39, 229, 230, 61, | |
485 | ! 43, 257, 59, 46, 47, 57, 33, 34, 33, 34, | |
486 | ! 242, 243, 55, 56, 33, 34, 40, 41, 42, 251, | |
487 | ! 252, 253, 254, 26, 262, 50, 51, 52, 33, 34, | |
488 | ! 286, 50, 51, 233, 234, 235, 236, 237, 294, 5, | |
489 | ! 6, 26, 26, 27, 28, 29, 198, 199, 26, 26, | |
490 | ! 306, 35, 36, 37, 38, 39, 26, 26, 26, 43, | |
491 | ! 44, 45, 46, 47, 320, 26, 26, 299, 26, 26, | |
492 | ! 26, 55, 56, 26, 306, 61, 15, 59, 310, 311, | |
493 | ! 61, 15, 15, 7, 9, 317, 318, 15, 320, 15, | |
494 | ! 7, 4, 324, 325, 59, 59, 328, 329, 216, 1, | |
495 | ! 332, 3, 319, 26, 15, 59, 8, 15, 10, 11, | |
496 | ! 12, 13, 59, 59, 16, 17, 18, 15, 15, 26, | |
497 | ! 22, 23, 59, 15, 26, 27, 28, 29, 30, 59, | |
498 | ! 15, 15, 59, 35, 36, 37, 38, 39, 59, 9, | |
499 | ! -1, 43, 44, 45, 46, 47, 240, 49, 280, -1, | |
500 | ! 52, 53, 3, 55, 56, -1, 58, 8, 60, 10, | |
501 | ! 11, 12, 13, -1, -1, 16, 17, 18, -1, -1, | |
502 | ! -1, 22, 23, -1, -1, 26, 27, 28, 29, 30, | |
503 | -1, -1, -1, -1, 35, 36, 37, 38, 39, -1, | |
504 | ! -1, -1, 43, 44, 45, 46, 47, -1, -1, -1, | |
505 | ! -1, 52, -1, -1, 55, 56, 3, 58, -1, 60, | |
506 | ! 61, 8, -1, 10, 11, 12, 13, -1, -1, 16, | |
507 | ! 17, 18, -1, -1, -1, 22, 23, -1, -1, 26, | |
508 | ! 27, 28, 29, 30, -1, -1, -1, -1, 35, 36, | |
509 | ! 37, 38, 39, -1, -1, -1, 43, 44, 45, 46, | |
510 | ! 47, -1, -1, -1, 51, 52, 53, 3, 55, 56, | |
511 | ! -1, 58, 8, 60, 10, 11, 12, 13, -1, -1, | |
512 | 16, 17, 18, -1, -1, -1, 22, 23, -1, -1, | |
513 | 26, 27, 28, 29, 30, -1, -1, -1, -1, 35, | |
514 | 36, 37, 38, 39, -1, -1, -1, 43, 44, 45, | |
515 | ! 46, 47, -1, -1, -1, -1, 52, -1, 3, 55, | |
516 | 56, -1, 58, 8, 60, 10, 11, 12, 13, -1, | |
517 | -1, 16, 17, 18, -1, -1, -1, 22, 23, -1, | |
518 | -1, 26, 27, 28, 29, 30, -1, -1, -1, -1, | |
519 | 35, 36, 37, 38, 39, -1, -1, -1, 43, 44, | |
520 | ! 45, 46, 47, -1, -1, -1, -1, -1, -1, 3, | |
521 | 55, 56, -1, 58, 8, 60, 10, 11, 12, 13, | |
522 | ! -1, -1, 16, 17, 18, -1, -1, -1, -1, -1, | |
523 | -1, -1, 26, 27, 28, 29, 30, -1, -1, -1, | |
524 | -1, 35, 36, 37, 38, 39, -1, -1, -1, 43, | |
525 | ! 44, 45, 46, 47, -1, -1, -1, -1, 52, -1, | |
526 | 3, 55, 56, -1, 58, 8, 60, 10, 11, 12, | |
527 | ! 13, -1, -1, -1, -1, 18, -1, -1, -1, -1, | |
528 | -1, -1, -1, 26, 27, 28, 29, 30, -1, -1, | |
529 | -1, -1, 35, 36, 37, 38, 39, -1, -1, -1, | |
530 | ! 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, | |
531 | ! -1, -1, 55, 56, -1, 58, -1, 60, 28, 29, | |
532 | ! -1, -1, -1, -1, -1, 35, 36, 37, 38, 39, | |
533 | ! -1, -1, -1, 43, 44, 45, 46, 47, -1, 35, | |
534 | 36, 37, 38, 39, -1, 55, 56, 43, -1, -1, | |
535 | 46, 47, -1, -1, -1, -1, -1, -1, -1, 55, | |
536 | --- 1236,1390 ---- | |
537 | static const yytype_int16 yytable[] = | |
538 | { | |
539 | ! 61, 72, 117, 136, 67, 68, 55, 158, 197, 198, | |
540 | ! 124, 148, 130, 131, 207, 125, 146, 78, 306, 79, | |
541 | ! 80, 306, 230, 231, 232, 307, 116, 58, 321, 132, | |
542 | ! 133, 120, 73, 134, 63, 279, 66, 143, 145, 135, | |
543 | ! 150, 2, 69, 124, 81, 139, 3, 125, 4, 5, | |
544 | ! 6, 7, 280, 74, 75, 76, 10, 127, 128, 102, | |
545 | ! 147, 155, 157, 137, 70, 14, 15, 16, 17, 103, | |
546 | ! 304, 226, 227, 18, 19, 20, 21, 22, 139, 59, | |
547 | ! 60, 23, 24, 25, 26, 27, 281, 280, 104, 107, | |
548 | ! 223, 105, 224, 31, 32, 111, 33, 108, 34, 209, | |
549 | ! 109, 194, 243, 216, 195, 196, 210, 64, 199, 200, | |
550 | ! 217, 122, 65, 139, 252, 254, 311, 318, 208, 106, | |
551 | ! 112, 281, 214, 215, 325, 262, 329, 221, 110, 264, | |
552 | ! 125, 113, 125, 194, 114, 225, 201, 139, 55, 55, | |
553 | ! 139, 139, 115, 211, 212, 213, 244, 218, 246, 219, | |
554 | ! 220, 118, 139, 139, 139, 139, 248, 286, 253, 255, | |
555 | ! 312, 319, 139, 258, 139, 119, 164, 298, 326, 165, | |
556 | ! 330, 130, 131, 74, 75, 76, 234, 235, 236, 237, | |
557 | ! 238, 242, 74, 75, 76, 202, 203, 168, 178, 182, | |
558 | ! 169, 179, 183, 287, 333, 231, 263, 166, 194, 194, | |
559 | ! 138, 55, 55, 295, 274, 275, 276, 245, 144, 249, | |
560 | ! 301, 302, 303, 155, 256, 278, 259, 155, 170, 180, | |
561 | ! 184, 151, 288, 268, 269, 270, 271, 272, 265, 266, | |
562 | ! 2, 149, 296, 228, 229, 3, 152, 4, 5, 6, | |
563 | ! 7, 283, 284, 159, 160, 10, 161, 202, 203, 162, | |
564 | ! 290, 291, 292, 293, 163, 155, 167, 17, 171, 172, | |
565 | ! 173, 310, 174, 2, 204, 205, 206, 175, 3, 317, | |
566 | ! 4, 5, 6, 7, 176, 177, 181, 185, 10, 153, | |
567 | ! 186, 324, 187, 188, 189, 33, 190, 154, 192, 250, | |
568 | ! 17, 260, 193, 261, 267, 336, 222, 251, 320, 273, | |
569 | ! 285, 289, 297, 294, 299, 323, 300, 280, 308, 327, | |
570 | ! 328, 309, 139, 313, 314, 315, 331, 332, 33, 335, | |
571 | ! 34, 316, 322, 337, 338, 339, 340, 341, 342, 343, | |
572 | ! 1, 345, 2, 346, 344, 348, 347, 3, 349, 4, | |
573 | ! 5, 6, 7, 257, 71, 8, 9, 10, 334, 305, | |
574 | ! 277, 11, 12, 0, 0, 13, 14, 15, 16, 17, | |
575 | 0, 0, 0, 0, 18, 19, 20, 21, 22, 0, | |
576 | ! 0, 0, 23, 24, 25, 26, 27, 0, 28, 0, | |
577 | ! 0, 29, 30, 2, 31, 32, 0, 33, 3, 34, | |
578 | ! 4, 5, 6, 7, 0, 0, 8, 9, 10, 0, | |
579 | ! 0, 0, 11, 12, 0, 0, 13, 14, 15, 16, | |
580 | ! 17, 0, 0, 0, 0, 18, 19, 20, 21, 22, | |
581 | ! 0, 0, 0, 23, 24, 25, 26, 27, 0, 0, | |
582 | ! 0, 0, 139, 0, 0, 31, 32, 2, 33, 0, | |
583 | ! 34, 191, 3, 0, 4, 5, 6, 7, 0, 0, | |
584 | 8, 9, 10, 0, 0, 0, 11, 12, 0, 0, | |
585 | 13, 14, 15, 16, 17, 0, 0, 0, 0, 18, | |
586 | 19, 20, 21, 22, 0, 0, 0, 23, 24, 25, | |
587 | ! 26, 27, 0, 0, 0, 74, 75, 76, 2, 31, | |
588 | 32, 0, 33, 3, 34, 4, 5, 6, 7, 0, | |
589 | 0, 8, 9, 10, 0, 0, 0, 11, 12, 0, | |
590 | 0, 13, 14, 15, 16, 17, 0, 0, 0, 0, | |
591 | 18, 19, 20, 21, 22, 0, 0, 0, 23, 24, | |
592 | ! 25, 26, 27, 0, 0, 0, 0, 139, 0, 2, | |
593 | 31, 32, 0, 33, 3, 34, 4, 5, 6, 7, | |
594 | ! 0, 0, 8, 9, 10, 0, 0, 0, 11, 12, | |
595 | 0, 0, 13, 14, 15, 16, 17, 0, 0, 0, | |
596 | 0, 18, 19, 20, 21, 22, 0, 0, 0, 23, | |
597 | ! 24, 25, 26, 27, 0, 0, 0, 0, 0, 0, | |
598 | 2, 31, 32, 0, 33, 3, 34, 4, 5, 6, | |
599 | ! 7, 0, 0, 8, 9, 10, 0, 0, 0, 0, | |
600 | ! 0, 0, 0, 13, 14, 15, 16, 17, 0, 0, | |
601 | 0, 0, 18, 19, 20, 21, 22, 0, 0, 0, | |
602 | ! 23, 24, 25, 26, 27, 0, 0, 0, 0, 139, | |
603 | ! 0, 2, 31, 32, 0, 33, 3, 34, 4, 5, | |
604 | ! 6, 7, 123, 14, 15, 16, 10, 0, 0, 0, | |
605 | ! 0, 18, 19, 20, 21, 22, 0, 0, 17, 23, | |
606 | ! 24, 25, 26, 27, 0, 0, 15, 16, 0, 0, | |
607 | ! 0, 31, 32, 18, 19, 20, 21, 22, 0, 0, | |
608 | ! 0, 23, 24, 25, 26, 27, 33, 0, 34, 0, | |
609 | ! 0, 0, 0, 31, 32, 82, 83, 84, 85, 86, | |
610 | ! 0, 0, 0, 87, 0, 0, 88, 89, 0, 92, | |
611 | ! 93, 94, 95, 96, 0, 90, 91, 97, 0, 0, | |
612 | ! 98, 99, 0, 0, 0, 0, 0, 0, 0, 100, | |
613 | ! 101 | |
614 | }; | |
615 | ||
616 | static const yytype_int16 yycheck[] = | |
617 | { | |
618 | ! 2, 9, 28, 57, 6, 7, 0, 72, 132, 133, | |
619 | ! 38, 65, 33, 34, 21, 40, 14, 11, 54, 24, | |
620 | ! 25, 54, 5, 6, 7, 61, 28, 0, 61, 50, | |
621 | ! 51, 33, 32, 48, 26, 9, 26, 63, 64, 54, | |
622 | ! 66, 3, 26, 71, 60, 52, 8, 72, 10, 11, | |
623 | ! 12, 13, 26, 51, 52, 53, 18, 52, 53, 26, | |
624 | ! 58, 69, 70, 57, 26, 27, 28, 29, 30, 26, | |
625 | ! 9, 195, 196, 35, 36, 37, 38, 39, 52, 52, | |
626 | ! 53, 43, 44, 45, 46, 47, 60, 26, 26, 26, | |
627 | ! 155, 29, 157, 55, 56, 26, 58, 26, 60, 14, | |
628 | ! 29, 126, 14, 14, 130, 131, 21, 26, 134, 135, | |
629 | ! 21, 0, 31, 52, 14, 14, 14, 14, 144, 57, | |
630 | ! 26, 60, 148, 149, 14, 221, 14, 153, 57, 225, | |
631 | ! 155, 26, 157, 158, 26, 161, 138, 52, 132, 133, | |
632 | ! 52, 52, 26, 58, 146, 147, 58, 58, 26, 151, | |
633 | ! 152, 26, 52, 52, 52, 52, 210, 26, 58, 58, | |
634 | ! 58, 58, 52, 217, 52, 26, 26, 263, 58, 29, | |
635 | ! 58, 33, 34, 51, 52, 53, 202, 203, 204, 205, | |
636 | ! 206, 207, 51, 52, 53, 33, 34, 26, 26, 26, | |
637 | ! 29, 29, 29, 247, 5, 6, 222, 57, 223, 224, | |
638 | ! 4, 195, 196, 257, 40, 41, 42, 209, 51, 211, | |
639 | ! 40, 41, 42, 221, 216, 241, 218, 225, 57, 57, | |
640 | ! 57, 14, 248, 234, 235, 236, 237, 238, 230, 231, | |
641 | ! 3, 51, 258, 199, 200, 8, 14, 10, 11, 12, | |
642 | ! 13, 243, 244, 19, 25, 18, 61, 33, 34, 26, | |
643 | ! 252, 253, 254, 255, 26, 263, 26, 30, 26, 26, | |
644 | ! 26, 287, 26, 3, 50, 51, 52, 26, 8, 295, | |
645 | ! 10, 11, 12, 13, 26, 26, 26, 26, 18, 52, | |
646 | ! 26, 307, 26, 26, 26, 58, 61, 60, 59, 15, | |
647 | ! 30, 15, 61, 15, 7, 321, 61, 59, 300, 9, | |
648 | ! 15, 59, 59, 15, 7, 307, 4, 26, 15, 311, | |
649 | ! 312, 59, 52, 15, 59, 15, 318, 319, 58, 321, | |
650 | ! 60, 59, 26, 325, 326, 15, 59, 329, 330, 15, | |
651 | ! 1, 333, 3, 15, 59, 15, 59, 8, 59, 10, | |
652 | ! 11, 12, 13, 217, 9, 16, 17, 18, 320, 281, | |
653 | ! 241, 22, 23, -1, -1, 26, 27, 28, 29, 30, | |
654 | -1, -1, -1, -1, 35, 36, 37, 38, 39, -1, | |
655 | ! -1, -1, 43, 44, 45, 46, 47, -1, 49, -1, | |
656 | ! -1, 52, 53, 3, 55, 56, -1, 58, 8, 60, | |
657 | ! 10, 11, 12, 13, -1, -1, 16, 17, 18, -1, | |
658 | ! -1, -1, 22, 23, -1, -1, 26, 27, 28, 29, | |
659 | ! 30, -1, -1, -1, -1, 35, 36, 37, 38, 39, | |
660 | ! -1, -1, -1, 43, 44, 45, 46, 47, -1, -1, | |
661 | ! -1, -1, 52, -1, -1, 55, 56, 3, 58, -1, | |
662 | ! 60, 61, 8, -1, 10, 11, 12, 13, -1, -1, | |
663 | 16, 17, 18, -1, -1, -1, 22, 23, -1, -1, | |
664 | 26, 27, 28, 29, 30, -1, -1, -1, -1, 35, | |
665 | 36, 37, 38, 39, -1, -1, -1, 43, 44, 45, | |
666 | ! 46, 47, -1, -1, -1, 51, 52, 53, 3, 55, | |
667 | 56, -1, 58, 8, 60, 10, 11, 12, 13, -1, | |
668 | -1, 16, 17, 18, -1, -1, -1, 22, 23, -1, | |
669 | -1, 26, 27, 28, 29, 30, -1, -1, -1, -1, | |
670 | 35, 36, 37, 38, 39, -1, -1, -1, 43, 44, | |
671 | ! 45, 46, 47, -1, -1, -1, -1, 52, -1, 3, | |
672 | 55, 56, -1, 58, 8, 60, 10, 11, 12, 13, | |
673 | ! -1, -1, 16, 17, 18, -1, -1, -1, 22, 23, | |
674 | -1, -1, 26, 27, 28, 29, 30, -1, -1, -1, | |
675 | -1, 35, 36, 37, 38, 39, -1, -1, -1, 43, | |
676 | ! 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, | |
677 | 3, 55, 56, -1, 58, 8, 60, 10, 11, 12, | |
678 | ! 13, -1, -1, 16, 17, 18, -1, -1, -1, -1, | |
679 | -1, -1, -1, 26, 27, 28, 29, 30, -1, -1, | |
680 | -1, -1, 35, 36, 37, 38, 39, -1, -1, -1, | |
681 | ! 43, 44, 45, 46, 47, -1, -1, -1, -1, 52, | |
682 | ! -1, 3, 55, 56, -1, 58, 8, 60, 10, 11, | |
683 | ! 12, 13, 26, 27, 28, 29, 18, -1, -1, -1, | |
684 | ! -1, 35, 36, 37, 38, 39, -1, -1, 30, 43, | |
685 | ! 44, 45, 46, 47, -1, -1, 28, 29, -1, -1, | |
686 | ! -1, 55, 56, 35, 36, 37, 38, 39, -1, -1, | |
687 | ! -1, 43, 44, 45, 46, 47, 58, -1, 60, -1, | |
688 | ! -1, -1, -1, 55, 56, 35, 36, 37, 38, 39, | |
689 | ! -1, -1, -1, 43, -1, -1, 46, 47, -1, 35, | |
690 | 36, 37, 38, 39, -1, 55, 56, 43, -1, -1, | |
691 | 46, 47, -1, -1, -1, -1, -1, -1, -1, 55, | |
692 | *************** | |
693 | *** 1401,1434 **** | |
694 | 53, 55, 56, 58, 60, 63, 65, 66, 68, 69, | |
695 | 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, | |
696 | ! 81, 82, 83, 95, 96, 97, 98, 99, 52, 53, | |
697 | ! 89, 94, 26, 26, 31, 26, 89, 89, 26, 26, | |
698 | ! 68, 70, 32, 51, 52, 53, 93, 97, 24, 25, | |
699 | ! 60, 35, 36, 37, 38, 39, 43, 46, 47, 55, | |
700 | ! 56, 35, 36, 37, 38, 39, 43, 46, 47, 55, | |
701 | ! 56, 26, 26, 26, 29, 57, 26, 26, 29, 57, | |
702 | ! 26, 26, 26, 26, 26, 89, 94, 26, 26, 89, | |
703 | ! 89, 0, 26, 66, 65, 67, 52, 53, 92, 33, | |
704 | ! 34, 50, 51, 48, 54, 93, 97, 4, 52, 90, | |
705 | ! 91, 97, 94, 51, 94, 14, 58, 93, 51, 94, | |
706 | ! 14, 14, 52, 60, 70, 76, 70, 67, 19, 25, | |
707 | ! 61, 26, 26, 26, 29, 57, 26, 26, 29, 57, | |
708 | ! 26, 26, 26, 26, 26, 26, 26, 26, 29, 57, | |
709 | ! 26, 26, 29, 57, 26, 26, 26, 26, 26, 61, | |
710 | ! 61, 59, 61, 65, 94, 94, 96, 96, 94, 94, | |
711 | ! 89, 33, 34, 50, 51, 52, 21, 94, 14, 21, | |
712 | ! 58, 89, 89, 94, 94, 14, 21, 58, 89, 89, | |
713 | ! 94, 61, 67, 67, 94, 96, 96, 98, 98, 5, | |
714 | ! 6, 7, 84, 94, 94, 94, 94, 94, 85, 86, | |
715 | ! 87, 94, 14, 58, 89, 26, 64, 93, 89, 15, | |
716 | ! 59, 14, 58, 14, 58, 89, 64, 93, 89, 15, | |
717 | ! 15, 76, 94, 76, 89, 89, 7, 91, 91, 91, | |
718 | ! 91, 91, 9, 40, 41, 42, 86, 94, 9, 26, | |
719 | ! 60, 88, 89, 89, 15, 26, 93, 94, 59, 89, | |
720 | ! 89, 89, 89, 15, 93, 94, 59, 76, 7, 4, | |
721 | ! 40, 41, 42, 9, 88, 54, 61, 15, 59, 94, | |
722 | ! 14, 58, 15, 59, 15, 59, 94, 14, 58, 89, | |
723 | ! 61, 26, 89, 94, 14, 58, 89, 89, 14, 58, | |
724 | ! 89, 89, 5, 84, 89, 94, 89, 89, 15, 59, | |
725 | ! 89, 89, 15, 59, 89, 15, 59, 15, 59 | |
726 | }; | |
727 | ||
728 | --- 1401,1434 ---- | |
729 | 53, 55, 56, 58, 60, 63, 65, 66, 68, 69, | |
730 | 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, | |
731 | ! 81, 82, 83, 95, 96, 97, 98, 99, 0, 52, | |
732 | ! 53, 89, 94, 26, 26, 31, 26, 89, 89, 26, | |
733 | ! 26, 68, 70, 32, 51, 52, 53, 93, 97, 24, | |
734 | ! 25, 60, 35, 36, 37, 38, 39, 43, 46, 47, | |
735 | ! 55, 56, 35, 36, 37, 38, 39, 43, 46, 47, | |
736 | ! 55, 56, 26, 26, 26, 29, 57, 26, 26, 29, | |
737 | ! 57, 26, 26, 26, 26, 26, 89, 94, 26, 26, | |
738 | ! 89, 89, 0, 26, 66, 65, 67, 52, 53, 92, | |
739 | ! 33, 34, 50, 51, 48, 54, 93, 97, 4, 52, | |
740 | ! 90, 91, 97, 94, 51, 94, 14, 58, 93, 51, | |
741 | ! 94, 14, 14, 52, 60, 70, 76, 70, 67, 19, | |
742 | ! 25, 61, 26, 26, 26, 29, 57, 26, 26, 29, | |
743 | ! 57, 26, 26, 26, 26, 26, 26, 26, 26, 29, | |
744 | ! 57, 26, 26, 29, 57, 26, 26, 26, 26, 26, | |
745 | ! 61, 61, 59, 61, 65, 94, 94, 96, 96, 94, | |
746 | ! 94, 89, 33, 34, 50, 51, 52, 21, 94, 14, | |
747 | ! 21, 58, 89, 89, 94, 94, 14, 21, 58, 89, | |
748 | ! 89, 94, 61, 67, 67, 94, 96, 96, 98, 98, | |
749 | ! 5, 6, 7, 84, 94, 94, 94, 94, 94, 85, | |
750 | ! 86, 87, 94, 14, 58, 89, 26, 64, 93, 89, | |
751 | ! 15, 59, 14, 58, 14, 58, 89, 64, 93, 89, | |
752 | ! 15, 15, 76, 94, 76, 89, 89, 7, 91, 91, | |
753 | ! 91, 91, 91, 9, 40, 41, 42, 86, 94, 9, | |
754 | ! 26, 60, 88, 89, 89, 15, 26, 93, 94, 59, | |
755 | ! 89, 89, 89, 89, 15, 93, 94, 59, 76, 7, | |
756 | ! 4, 40, 41, 42, 9, 88, 54, 61, 15, 59, | |
757 | ! 94, 14, 58, 15, 59, 15, 59, 94, 14, 58, | |
758 | ! 89, 61, 26, 89, 94, 14, 58, 89, 89, 14, | |
759 | ! 58, 89, 89, 5, 84, 89, 94, 89, 89, 15, | |
760 | ! 59, 89, 89, 15, 59, 89, 15, 59, 15, 59 | |
761 | }; | |
762 | ||
763 | *************** | |
764 | *** 1436,1457 **** | |
765 | static const yytype_int8 yyr1[] = | |
766 | { | |
767 | ! 0, 62, 63, 63, 63, 63, 63, 63, 64, 64, | |
768 | ! 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
769 | 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
770 | 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
771 | 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
772 | ! 65, 65, 65, 65, 66, 66, 66, 67, 67, 68, | |
773 | ! 68, 69, 69, 69, 69, 69, 70, 70, 70, 70, | |
774 | ! 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, | |
775 | ! 71, 71, 71, 71, 71, 72, 72, 72, 72, 73, | |
776 | ! 73, 73, 73, 73, 73, 73, 73, 74, 74, 74, | |
777 | ! 75, 75, 75, 75, 76, 76, 77, 78, 78, 79, | |
778 | ! 79, 79, 79, 79, 80, 80, 80, 81, 82, 83, | |
779 | ! 84, 84, 84, 85, 85, 86, 86, 86, 86, 87, | |
780 | ! 87, 87, 87, 87, 87, 88, 88, 89, 89, 90, | |
781 | ! 90, 90, 91, 91, 91, 91, 91, 91, 92, 92, | |
782 | ! 93, 93, 93, 94, 94, 95, 95, 95, 96, 96, | |
783 | ! 96, 96, 96, 97, 97, 97, 97, 97, 98, 98, | |
784 | ! 98, 99, 99, 99, 99 | |
785 | }; | |
786 | ||
787 | --- 1436,1457 ---- | |
788 | static const yytype_int8 yyr1[] = | |
789 | { | |
790 | ! 0, 62, 63, 63, 63, 63, 63, 63, 63, 64, | |
791 | ! 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
792 | 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
793 | 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
794 | 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
795 | ! 65, 65, 65, 65, 65, 66, 66, 66, 67, 67, | |
796 | ! 68, 68, 69, 69, 69, 69, 69, 70, 70, 70, | |
797 | ! 70, 70, 70, 70, 70, 70, 70, 70, 71, 71, | |
798 | ! 71, 71, 71, 71, 71, 71, 72, 72, 72, 72, | |
799 | ! 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, | |
800 | ! 74, 75, 75, 75, 75, 76, 76, 77, 78, 78, | |
801 | ! 79, 79, 79, 79, 79, 80, 80, 80, 81, 82, | |
802 | ! 83, 84, 84, 84, 85, 85, 86, 86, 86, 86, | |
803 | ! 87, 87, 87, 87, 87, 87, 88, 88, 89, 89, | |
804 | ! 90, 90, 90, 91, 91, 91, 91, 91, 91, 92, | |
805 | ! 92, 93, 93, 93, 94, 94, 95, 95, 95, 96, | |
806 | ! 96, 96, 96, 96, 97, 97, 97, 97, 97, 98, | |
807 | ! 98, 98, 99, 99, 99, 99 | |
808 | }; | |
809 | ||
810 | *************** | |
811 | *** 1459,1480 **** | |
812 | static const yytype_int8 yyr2[] = | |
813 | { | |
814 | ! 0, 2, 2, 1, 1, 2, 2, 1, 1, 2, | |
815 | ! 2, 2, 3, 3, 3, 3, 2, 3, 3, 2, | |
816 | 3, 3, 2, 3, 3, 2, 3, 3, 2, 3, | |
817 | 3, 2, 3, 3, 2, 3, 3, 2, 3, 3, | |
818 | ! 2, 3, 3, 2, 3, 3, 2, 3, 3, 2, | |
819 | ! 3, 3, 2, 2, 1, 1, 1, 1, 2, 1, | |
820 | ! 2, 1, 1, 2, 1, 1, 1, 1, 5, 5, | |
821 | ! 1, 1, 1, 1, 1, 1, 1, 6, 6, 7, | |
822 | ! 7, 10, 10, 9, 9, 7, 7, 5, 5, 6, | |
823 | ! 6, 7, 7, 10, 10, 9, 9, 6, 7, 6, | |
824 | ! 5, 6, 3, 5, 1, 2, 3, 3, 3, 2, | |
825 | ! 3, 3, 4, 2, 5, 7, 6, 3, 1, 3, | |
826 | ! 4, 6, 5, 1, 2, 4, 4, 5, 5, 2, | |
827 | ! 3, 2, 3, 2, 3, 1, 3, 2, 2, 3, | |
828 | ! 3, 3, 4, 4, 4, 4, 4, 1, 1, 1, | |
829 | ! 1, 1, 1, 0, 2, 1, 2, 2, 4, 4, | |
830 | ! 3, 3, 1, 1, 2, 2, 2, 2, 4, 4, | |
831 | ! 1, 1, 2, 2, 3 | |
832 | }; | |
833 | ||
834 | --- 1459,1480 ---- | |
835 | static const yytype_int8 yyr2[] = | |
836 | { | |
837 | ! 0, 2, 2, 1, 1, 2, 2, 2, 1, 1, | |
838 | ! 2, 2, 2, 3, 3, 3, 3, 2, 3, 3, | |
839 | ! 2, 3, 3, 2, 3, 3, 2, 3, 3, 2, | |
840 | 3, 3, 2, 3, 3, 2, 3, 3, 2, 3, | |
841 | 3, 2, 3, 3, 2, 3, 3, 2, 3, 3, | |
842 | ! 2, 3, 3, 2, 2, 1, 1, 1, 1, 2, | |
843 | ! 1, 2, 1, 1, 2, 1, 1, 1, 1, 5, | |
844 | ! 5, 1, 1, 1, 1, 1, 1, 1, 6, 6, | |
845 | ! 7, 7, 10, 10, 9, 9, 7, 7, 5, 5, | |
846 | ! 6, 6, 7, 7, 10, 10, 9, 9, 6, 7, | |
847 | ! 6, 5, 6, 3, 5, 1, 2, 3, 3, 3, | |
848 | ! 2, 3, 3, 4, 2, 5, 7, 6, 3, 1, | |
849 | ! 3, 4, 6, 5, 1, 2, 4, 4, 5, 5, | |
850 | ! 2, 3, 2, 3, 2, 3, 1, 3, 2, 2, | |
851 | ! 3, 3, 3, 4, 4, 4, 4, 4, 1, 1, | |
852 | ! 1, 1, 1, 1, 0, 2, 1, 2, 2, 4, | |
853 | ! 4, 3, 3, 1, 1, 2, 2, 2, 2, 4, | |
854 | ! 4, 1, 1, 2, 2, 3 | |
855 | }; | |
856 | ||
857 | *************** | |
858 | *** 2019,2025 **** | |
859 | break; | |
860 | ||
861 | ! case 7: /* inputunit: yacc_EOF */ | |
862 | #line 456 "/usr/local/src/chet/src/bash/src/parse.y" | |
863 | { | |
864 | /* Case of EOF seen by itself. Do ignoreeof or | |
865 | not. */ | |
866 | --- 2019,2044 ---- | |
867 | break; | |
868 | ||
869 | ! case 7: /* inputunit: error $end */ | |
870 | #line 456 "/usr/local/src/chet/src/bash/src/parse.y" | |
871 | { | |
872 | + global_command = (COMMAND *)NULL; | |
873 | + if (last_command_exit_value == 0) | |
874 | + last_command_exit_value = EX_BADUSAGE; /* force error return */ | |
875 | + if (interactive && parse_and_execute_level == 0) | |
876 | + { | |
877 | + handle_eof_input_unit (); | |
878 | + YYACCEPT; | |
879 | + } | |
880 | + else | |
881 | + { | |
882 | + YYABORT; | |
883 | + } | |
884 | + } | |
885 | + #line 2038 "y.tab.c" | |
886 | + break; | |
887 | + | |
888 | + case 8: /* inputunit: yacc_EOF */ | |
889 | + #line 471 "/usr/local/src/chet/src/bash/src/parse.y" | |
890 | + { | |
891 | /* Case of EOF seen by itself. Do ignoreeof or | |
892 | not. */ | |
893 | *************** | |
894 | *** 2028,2048 **** | |
895 | YYACCEPT; | |
896 | } | |
897 | ! #line 2031 "y.tab.c" | |
898 | break; | |
899 | ||
900 | ! case 8: /* word_list: WORD */ | |
901 | ! #line 466 "/usr/local/src/chet/src/bash/src/parse.y" | |
902 | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (WORD_LIST *)NULL); } | |
903 | ! #line 2037 "y.tab.c" | |
904 | break; | |
905 | ||
906 | ! case 9: /* word_list: word_list WORD */ | |
907 | ! #line 468 "/usr/local/src/chet/src/bash/src/parse.y" | |
908 | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (yyvsp[-1].word_list)); } | |
909 | ! #line 2043 "y.tab.c" | |
910 | break; | |
911 | ||
912 | ! case 10: /* redirection: '>' WORD */ | |
913 | ! #line 472 "/usr/local/src/chet/src/bash/src/parse.y" | |
914 | { | |
915 | source.dest = 1; | |
916 | --- 2047,2067 ---- | |
917 | YYACCEPT; | |
918 | } | |
919 | ! #line 2050 "y.tab.c" | |
920 | break; | |
921 | ||
922 | ! case 9: /* word_list: WORD */ | |
923 | ! #line 481 "/usr/local/src/chet/src/bash/src/parse.y" | |
924 | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (WORD_LIST *)NULL); } | |
925 | ! #line 2056 "y.tab.c" | |
926 | break; | |
927 | ||
928 | ! case 10: /* word_list: word_list WORD */ | |
929 | ! #line 483 "/usr/local/src/chet/src/bash/src/parse.y" | |
930 | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (yyvsp[-1].word_list)); } | |
931 | ! #line 2062 "y.tab.c" | |
932 | break; | |
933 | ||
934 | ! case 11: /* redirection: '>' WORD */ | |
935 | ! #line 487 "/usr/local/src/chet/src/bash/src/parse.y" | |
936 | { | |
937 | source.dest = 1; | |
938 | *************** | |
939 | *** 2050,2058 **** | |
940 | (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0); | |
941 | } | |
942 | ! #line 2053 "y.tab.c" | |
943 | break; | |
944 | ||
945 | ! case 11: /* redirection: '<' WORD */ | |
946 | ! #line 478 "/usr/local/src/chet/src/bash/src/parse.y" | |
947 | { | |
948 | source.dest = 0; | |
949 | --- 2069,2077 ---- | |
950 | (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0); | |
951 | } | |
952 | ! #line 2072 "y.tab.c" | |
953 | break; | |
954 | ||
955 | ! case 12: /* redirection: '<' WORD */ | |
956 | ! #line 493 "/usr/local/src/chet/src/bash/src/parse.y" | |
957 | { | |
958 | source.dest = 0; | |
959 | *************** | |
960 | *** 2060,2068 **** | |
961 | (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0); | |
962 | } | |
963 | ! #line 2063 "y.tab.c" | |
964 | break; | |
965 | ||
966 | ! case 12: /* redirection: NUMBER '>' WORD */ | |
967 | ! #line 484 "/usr/local/src/chet/src/bash/src/parse.y" | |
968 | { | |
969 | source.dest = (yyvsp[-2].number); | |
970 | --- 2079,2087 ---- | |
971 | (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0); | |
972 | } | |
973 | ! #line 2082 "y.tab.c" | |
974 | break; | |
975 | ||
976 | ! case 13: /* redirection: NUMBER '>' WORD */ | |
977 | ! #line 499 "/usr/local/src/chet/src/bash/src/parse.y" | |
978 | { | |
979 | source.dest = (yyvsp[-2].number); | |
980 | *************** | |
981 | *** 2070,2078 **** | |
982 | (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0); | |
983 | } | |
984 | ! #line 2073 "y.tab.c" | |
985 | break; | |
986 | ||
987 | ! case 13: /* redirection: NUMBER '<' WORD */ | |
988 | ! #line 490 "/usr/local/src/chet/src/bash/src/parse.y" | |
989 | { | |
990 | source.dest = (yyvsp[-2].number); | |
991 | --- 2089,2097 ---- | |
992 | (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0); | |
993 | } | |
994 | ! #line 2092 "y.tab.c" | |
995 | break; | |
996 | ||
997 | ! case 14: /* redirection: NUMBER '<' WORD */ | |
998 | ! #line 505 "/usr/local/src/chet/src/bash/src/parse.y" | |
999 | { | |
1000 | source.dest = (yyvsp[-2].number); | |
1001 | *************** | |
1002 | *** 2080,2088 **** | |
1003 | (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0); | |
1004 | } | |
1005 | ! #line 2083 "y.tab.c" | |
1006 | break; | |
1007 | ||
1008 | ! case 14: /* redirection: REDIR_WORD '>' WORD */ | |
1009 | ! #line 496 "/usr/local/src/chet/src/bash/src/parse.y" | |
1010 | { | |
1011 | source.filename = (yyvsp[-2].word); | |
1012 | --- 2099,2107 ---- | |
1013 | (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0); | |
1014 | } | |
1015 | ! #line 2102 "y.tab.c" | |
1016 | break; | |
1017 | ||
1018 | ! case 15: /* redirection: REDIR_WORD '>' WORD */ | |
1019 | ! #line 511 "/usr/local/src/chet/src/bash/src/parse.y" | |
1020 | { | |
1021 | source.filename = (yyvsp[-2].word); | |
1022 | *************** | |
1023 | *** 2090,2098 **** | |
1024 | (yyval.redirect) = make_redirection (source, r_output_direction, redir, REDIR_VARASSIGN); | |
1025 | } | |
1026 | ! #line 2093 "y.tab.c" | |
1027 | break; | |
1028 | ||
1029 | ! case 15: /* redirection: REDIR_WORD '<' WORD */ | |
1030 | ! #line 502 "/usr/local/src/chet/src/bash/src/parse.y" | |
1031 | { | |
1032 | source.filename = (yyvsp[-2].word); | |
1033 | --- 2109,2117 ---- | |
1034 | (yyval.redirect) = make_redirection (source, r_output_direction, redir, REDIR_VARASSIGN); | |
1035 | } | |
1036 | ! #line 2112 "y.tab.c" | |
1037 | break; | |
1038 | ||
1039 | ! case 16: /* redirection: REDIR_WORD '<' WORD */ | |
1040 | ! #line 517 "/usr/local/src/chet/src/bash/src/parse.y" | |
1041 | { | |
1042 | source.filename = (yyvsp[-2].word); | |
1043 | *************** | |
1044 | *** 2100,2108 **** | |
1045 | (yyval.redirect) = make_redirection (source, r_input_direction, redir, REDIR_VARASSIGN); | |
1046 | } | |
1047 | ! #line 2103 "y.tab.c" | |
1048 | break; | |
1049 | ||
1050 | ! case 16: /* redirection: GREATER_GREATER WORD */ | |
1051 | ! #line 508 "/usr/local/src/chet/src/bash/src/parse.y" | |
1052 | { | |
1053 | source.dest = 1; | |
1054 | --- 2119,2127 ---- | |
1055 | (yyval.redirect) = make_redirection (source, r_input_direction, redir, REDIR_VARASSIGN); | |
1056 | } | |
1057 | ! #line 2122 "y.tab.c" | |
1058 | break; | |
1059 | ||
1060 | ! case 17: /* redirection: GREATER_GREATER WORD */ | |
1061 | ! #line 523 "/usr/local/src/chet/src/bash/src/parse.y" | |
1062 | { | |
1063 | source.dest = 1; | |
1064 | *************** | |
1065 | *** 2110,2118 **** | |
1066 | (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0); | |
1067 | } | |
1068 | ! #line 2113 "y.tab.c" | |
1069 | break; | |
1070 | ||
1071 | ! case 17: /* redirection: NUMBER GREATER_GREATER WORD */ | |
1072 | ! #line 514 "/usr/local/src/chet/src/bash/src/parse.y" | |
1073 | { | |
1074 | source.dest = (yyvsp[-2].number); | |
1075 | --- 2129,2137 ---- | |
1076 | (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0); | |
1077 | } | |
1078 | ! #line 2132 "y.tab.c" | |
1079 | break; | |
1080 | ||
1081 | ! case 18: /* redirection: NUMBER GREATER_GREATER WORD */ | |
1082 | ! #line 529 "/usr/local/src/chet/src/bash/src/parse.y" | |
1083 | { | |
1084 | source.dest = (yyvsp[-2].number); | |
1085 | *************** | |
1086 | *** 2120,2128 **** | |
1087 | (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0); | |
1088 | } | |
1089 | ! #line 2123 "y.tab.c" | |
1090 | break; | |
1091 | ||
1092 | ! case 18: /* redirection: REDIR_WORD GREATER_GREATER WORD */ | |
1093 | ! #line 520 "/usr/local/src/chet/src/bash/src/parse.y" | |
1094 | { | |
1095 | source.filename = (yyvsp[-2].word); | |
1096 | --- 2139,2147 ---- | |
1097 | (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0); | |
1098 | } | |
1099 | ! #line 2142 "y.tab.c" | |
1100 | break; | |
1101 | ||
1102 | ! case 19: /* redirection: REDIR_WORD GREATER_GREATER WORD */ | |
1103 | ! #line 535 "/usr/local/src/chet/src/bash/src/parse.y" | |
1104 | { | |
1105 | source.filename = (yyvsp[-2].word); | |
1106 | *************** | |
1107 | *** 2130,2138 **** | |
1108 | (yyval.redirect) = make_redirection (source, r_appending_to, redir, REDIR_VARASSIGN); | |
1109 | } | |
1110 | ! #line 2133 "y.tab.c" | |
1111 | break; | |
1112 | ||
1113 | ! case 19: /* redirection: GREATER_BAR WORD */ | |
1114 | ! #line 526 "/usr/local/src/chet/src/bash/src/parse.y" | |
1115 | { | |
1116 | source.dest = 1; | |
1117 | --- 2149,2157 ---- | |
1118 | (yyval.redirect) = make_redirection (source, r_appending_to, redir, REDIR_VARASSIGN); | |
1119 | } | |
1120 | ! #line 2152 "y.tab.c" | |
1121 | break; | |
1122 | ||
1123 | ! case 20: /* redirection: GREATER_BAR WORD */ | |
1124 | ! #line 541 "/usr/local/src/chet/src/bash/src/parse.y" | |
1125 | { | |
1126 | source.dest = 1; | |
1127 | *************** | |
1128 | *** 2140,2148 **** | |
1129 | (yyval.redirect) = make_redirection (source, r_output_force, redir, 0); | |
1130 | } | |
1131 | ! #line 2143 "y.tab.c" | |
1132 | break; | |
1133 | ||
1134 | ! case 20: /* redirection: NUMBER GREATER_BAR WORD */ | |
1135 | ! #line 532 "/usr/local/src/chet/src/bash/src/parse.y" | |
1136 | { | |
1137 | source.dest = (yyvsp[-2].number); | |
1138 | --- 2159,2167 ---- | |
1139 | (yyval.redirect) = make_redirection (source, r_output_force, redir, 0); | |
1140 | } | |
1141 | ! #line 2162 "y.tab.c" | |
1142 | break; | |
1143 | ||
1144 | ! case 21: /* redirection: NUMBER GREATER_BAR WORD */ | |
1145 | ! #line 547 "/usr/local/src/chet/src/bash/src/parse.y" | |
1146 | { | |
1147 | source.dest = (yyvsp[-2].number); | |
1148 | *************** | |
1149 | *** 2150,2158 **** | |
1150 | (yyval.redirect) = make_redirection (source, r_output_force, redir, 0); | |
1151 | } | |
1152 | ! #line 2153 "y.tab.c" | |
1153 | break; | |
1154 | ||
1155 | ! case 21: /* redirection: REDIR_WORD GREATER_BAR WORD */ | |
1156 | ! #line 538 "/usr/local/src/chet/src/bash/src/parse.y" | |
1157 | { | |
1158 | source.filename = (yyvsp[-2].word); | |
1159 | --- 2169,2177 ---- | |
1160 | (yyval.redirect) = make_redirection (source, r_output_force, redir, 0); | |
1161 | } | |
1162 | ! #line 2172 "y.tab.c" | |
1163 | break; | |
1164 | ||
1165 | ! case 22: /* redirection: REDIR_WORD GREATER_BAR WORD */ | |
1166 | ! #line 553 "/usr/local/src/chet/src/bash/src/parse.y" | |
1167 | { | |
1168 | source.filename = (yyvsp[-2].word); | |
1169 | *************** | |
1170 | *** 2160,2168 **** | |
1171 | (yyval.redirect) = make_redirection (source, r_output_force, redir, REDIR_VARASSIGN); | |
1172 | } | |
1173 | ! #line 2163 "y.tab.c" | |
1174 | break; | |
1175 | ||
1176 | ! case 22: /* redirection: LESS_GREATER WORD */ | |
1177 | ! #line 544 "/usr/local/src/chet/src/bash/src/parse.y" | |
1178 | { | |
1179 | source.dest = 0; | |
1180 | --- 2179,2187 ---- | |
1181 | (yyval.redirect) = make_redirection (source, r_output_force, redir, REDIR_VARASSIGN); | |
1182 | } | |
1183 | ! #line 2182 "y.tab.c" | |
1184 | break; | |
1185 | ||
1186 | ! case 23: /* redirection: LESS_GREATER WORD */ | |
1187 | ! #line 559 "/usr/local/src/chet/src/bash/src/parse.y" | |
1188 | { | |
1189 | source.dest = 0; | |
1190 | *************** | |
1191 | *** 2170,2178 **** | |
1192 | (yyval.redirect) = make_redirection (source, r_input_output, redir, 0); | |
1193 | } | |
1194 | ! #line 2173 "y.tab.c" | |
1195 | break; | |
1196 | ||
1197 | ! case 23: /* redirection: NUMBER LESS_GREATER WORD */ | |
1198 | ! #line 550 "/usr/local/src/chet/src/bash/src/parse.y" | |
1199 | { | |
1200 | source.dest = (yyvsp[-2].number); | |
1201 | --- 2189,2197 ---- | |
1202 | (yyval.redirect) = make_redirection (source, r_input_output, redir, 0); | |
1203 | } | |
1204 | ! #line 2192 "y.tab.c" | |
1205 | break; | |
1206 | ||
1207 | ! case 24: /* redirection: NUMBER LESS_GREATER WORD */ | |
1208 | ! #line 565 "/usr/local/src/chet/src/bash/src/parse.y" | |
1209 | { | |
1210 | source.dest = (yyvsp[-2].number); | |
1211 | *************** | |
1212 | *** 2180,2188 **** | |
1213 | (yyval.redirect) = make_redirection (source, r_input_output, redir, 0); | |
1214 | } | |
1215 | ! #line 2183 "y.tab.c" | |
1216 | break; | |
1217 | ||
1218 | ! case 24: /* redirection: REDIR_WORD LESS_GREATER WORD */ | |
1219 | ! #line 556 "/usr/local/src/chet/src/bash/src/parse.y" | |
1220 | { | |
1221 | source.filename = (yyvsp[-2].word); | |
1222 | --- 2199,2207 ---- | |
1223 | (yyval.redirect) = make_redirection (source, r_input_output, redir, 0); | |
1224 | } | |
1225 | ! #line 2202 "y.tab.c" | |
1226 | break; | |
1227 | ||
1228 | ! case 25: /* redirection: REDIR_WORD LESS_GREATER WORD */ | |
1229 | ! #line 571 "/usr/local/src/chet/src/bash/src/parse.y" | |
1230 | { | |
1231 | source.filename = (yyvsp[-2].word); | |
1232 | *************** | |
1233 | *** 2190,2198 **** | |
1234 | (yyval.redirect) = make_redirection (source, r_input_output, redir, REDIR_VARASSIGN); | |
1235 | } | |
1236 | ! #line 2193 "y.tab.c" | |
1237 | break; | |
1238 | ||
1239 | ! case 25: /* redirection: LESS_LESS WORD */ | |
1240 | ! #line 562 "/usr/local/src/chet/src/bash/src/parse.y" | |
1241 | { | |
1242 | source.dest = 0; | |
1243 | --- 2209,2217 ---- | |
1244 | (yyval.redirect) = make_redirection (source, r_input_output, redir, REDIR_VARASSIGN); | |
1245 | } | |
1246 | ! #line 2212 "y.tab.c" | |
1247 | break; | |
1248 | ||
1249 | ! case 26: /* redirection: LESS_LESS WORD */ | |
1250 | ! #line 577 "/usr/local/src/chet/src/bash/src/parse.y" | |
1251 | { | |
1252 | source.dest = 0; | |
1253 | *************** | |
1254 | *** 2201,2209 **** | |
1255 | push_heredoc ((yyval.redirect)); | |
1256 | } | |
1257 | ! #line 2204 "y.tab.c" | |
1258 | break; | |
1259 | ||
1260 | ! case 26: /* redirection: NUMBER LESS_LESS WORD */ | |
1261 | ! #line 569 "/usr/local/src/chet/src/bash/src/parse.y" | |
1262 | { | |
1263 | source.dest = (yyvsp[-2].number); | |
1264 | --- 2220,2228 ---- | |
1265 | push_heredoc ((yyval.redirect)); | |
1266 | } | |
1267 | ! #line 2223 "y.tab.c" | |
1268 | break; | |
1269 | ||
1270 | ! case 27: /* redirection: NUMBER LESS_LESS WORD */ | |
1271 | ! #line 584 "/usr/local/src/chet/src/bash/src/parse.y" | |
1272 | { | |
1273 | source.dest = (yyvsp[-2].number); | |
1274 | *************** | |
1275 | *** 2212,2220 **** | |
1276 | push_heredoc ((yyval.redirect)); | |
1277 | } | |
1278 | ! #line 2215 "y.tab.c" | |
1279 | break; | |
1280 | ||
1281 | ! case 27: /* redirection: REDIR_WORD LESS_LESS WORD */ | |
1282 | ! #line 576 "/usr/local/src/chet/src/bash/src/parse.y" | |
1283 | { | |
1284 | source.filename = (yyvsp[-2].word); | |
1285 | --- 2231,2239 ---- | |
1286 | push_heredoc ((yyval.redirect)); | |
1287 | } | |
1288 | ! #line 2234 "y.tab.c" | |
1289 | break; | |
1290 | ||
1291 | ! case 28: /* redirection: REDIR_WORD LESS_LESS WORD */ | |
1292 | ! #line 591 "/usr/local/src/chet/src/bash/src/parse.y" | |
1293 | { | |
1294 | source.filename = (yyvsp[-2].word); | |
1295 | *************** | |
1296 | *** 2223,2231 **** | |
1297 | push_heredoc ((yyval.redirect)); | |
1298 | } | |
1299 | ! #line 2226 "y.tab.c" | |
1300 | break; | |
1301 | ||
1302 | ! case 28: /* redirection: LESS_LESS_MINUS WORD */ | |
1303 | ! #line 583 "/usr/local/src/chet/src/bash/src/parse.y" | |
1304 | { | |
1305 | source.dest = 0; | |
1306 | --- 2242,2250 ---- | |
1307 | push_heredoc ((yyval.redirect)); | |
1308 | } | |
1309 | ! #line 2245 "y.tab.c" | |
1310 | break; | |
1311 | ||
1312 | ! case 29: /* redirection: LESS_LESS_MINUS WORD */ | |
1313 | ! #line 598 "/usr/local/src/chet/src/bash/src/parse.y" | |
1314 | { | |
1315 | source.dest = 0; | |
1316 | *************** | |
1317 | *** 2234,2242 **** | |
1318 | push_heredoc ((yyval.redirect)); | |
1319 | } | |
1320 | ! #line 2237 "y.tab.c" | |
1321 | break; | |
1322 | ||
1323 | ! case 29: /* redirection: NUMBER LESS_LESS_MINUS WORD */ | |
1324 | ! #line 590 "/usr/local/src/chet/src/bash/src/parse.y" | |
1325 | { | |
1326 | source.dest = (yyvsp[-2].number); | |
1327 | --- 2253,2261 ---- | |
1328 | push_heredoc ((yyval.redirect)); | |
1329 | } | |
1330 | ! #line 2256 "y.tab.c" | |
1331 | break; | |
1332 | ||
1333 | ! case 30: /* redirection: NUMBER LESS_LESS_MINUS WORD */ | |
1334 | ! #line 605 "/usr/local/src/chet/src/bash/src/parse.y" | |
1335 | { | |
1336 | source.dest = (yyvsp[-2].number); | |
1337 | *************** | |
1338 | *** 2245,2253 **** | |
1339 | push_heredoc ((yyval.redirect)); | |
1340 | } | |
1341 | ! #line 2248 "y.tab.c" | |
1342 | break; | |
1343 | ||
1344 | ! case 30: /* redirection: REDIR_WORD LESS_LESS_MINUS WORD */ | |
1345 | ! #line 597 "/usr/local/src/chet/src/bash/src/parse.y" | |
1346 | { | |
1347 | source.filename = (yyvsp[-2].word); | |
1348 | --- 2264,2272 ---- | |
1349 | push_heredoc ((yyval.redirect)); | |
1350 | } | |
1351 | ! #line 2267 "y.tab.c" | |
1352 | break; | |
1353 | ||
1354 | ! case 31: /* redirection: REDIR_WORD LESS_LESS_MINUS WORD */ | |
1355 | ! #line 612 "/usr/local/src/chet/src/bash/src/parse.y" | |
1356 | { | |
1357 | source.filename = (yyvsp[-2].word); | |
1358 | *************** | |
1359 | *** 2256,2264 **** | |
1360 | push_heredoc ((yyval.redirect)); | |
1361 | } | |
1362 | ! #line 2259 "y.tab.c" | |
1363 | break; | |
1364 | ||
1365 | ! case 31: /* redirection: LESS_LESS_LESS WORD */ | |
1366 | ! #line 604 "/usr/local/src/chet/src/bash/src/parse.y" | |
1367 | { | |
1368 | source.dest = 0; | |
1369 | --- 2275,2283 ---- | |
1370 | push_heredoc ((yyval.redirect)); | |
1371 | } | |
1372 | ! #line 2278 "y.tab.c" | |
1373 | break; | |
1374 | ||
1375 | ! case 32: /* redirection: LESS_LESS_LESS WORD */ | |
1376 | ! #line 619 "/usr/local/src/chet/src/bash/src/parse.y" | |
1377 | { | |
1378 | source.dest = 0; | |
1379 | *************** | |
1380 | *** 2266,2274 **** | |
1381 | (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0); | |
1382 | } | |
1383 | ! #line 2269 "y.tab.c" | |
1384 | break; | |
1385 | ||
1386 | ! case 32: /* redirection: NUMBER LESS_LESS_LESS WORD */ | |
1387 | ! #line 610 "/usr/local/src/chet/src/bash/src/parse.y" | |
1388 | { | |
1389 | source.dest = (yyvsp[-2].number); | |
1390 | --- 2285,2293 ---- | |
1391 | (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0); | |
1392 | } | |
1393 | ! #line 2288 "y.tab.c" | |
1394 | break; | |
1395 | ||
1396 | ! case 33: /* redirection: NUMBER LESS_LESS_LESS WORD */ | |
1397 | ! #line 625 "/usr/local/src/chet/src/bash/src/parse.y" | |
1398 | { | |
1399 | source.dest = (yyvsp[-2].number); | |
1400 | *************** | |
1401 | *** 2276,2284 **** | |
1402 | (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0); | |
1403 | } | |
1404 | ! #line 2279 "y.tab.c" | |
1405 | break; | |
1406 | ||
1407 | ! case 33: /* redirection: REDIR_WORD LESS_LESS_LESS WORD */ | |
1408 | ! #line 616 "/usr/local/src/chet/src/bash/src/parse.y" | |
1409 | { | |
1410 | source.filename = (yyvsp[-2].word); | |
1411 | --- 2295,2303 ---- | |
1412 | (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0); | |
1413 | } | |
1414 | ! #line 2298 "y.tab.c" | |
1415 | break; | |
1416 | ||
1417 | ! case 34: /* redirection: REDIR_WORD LESS_LESS_LESS WORD */ | |
1418 | ! #line 631 "/usr/local/src/chet/src/bash/src/parse.y" | |
1419 | { | |
1420 | source.filename = (yyvsp[-2].word); | |
1421 | *************** | |
1422 | *** 2286,2294 **** | |
1423 | (yyval.redirect) = make_redirection (source, r_reading_string, redir, REDIR_VARASSIGN); | |
1424 | } | |
1425 | ! #line 2289 "y.tab.c" | |
1426 | break; | |
1427 | ||
1428 | ! case 34: /* redirection: LESS_AND NUMBER */ | |
1429 | ! #line 622 "/usr/local/src/chet/src/bash/src/parse.y" | |
1430 | { | |
1431 | source.dest = 0; | |
1432 | --- 2305,2313 ---- | |
1433 | (yyval.redirect) = make_redirection (source, r_reading_string, redir, REDIR_VARASSIGN); | |
1434 | } | |
1435 | ! #line 2308 "y.tab.c" | |
1436 | break; | |
1437 | ||
1438 | ! case 35: /* redirection: LESS_AND NUMBER */ | |
1439 | ! #line 637 "/usr/local/src/chet/src/bash/src/parse.y" | |
1440 | { | |
1441 | source.dest = 0; | |
1442 | *************** | |
1443 | *** 2296,2304 **** | |
1444 | (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0); | |
1445 | } | |
1446 | ! #line 2299 "y.tab.c" | |
1447 | break; | |
1448 | ||
1449 | ! case 35: /* redirection: NUMBER LESS_AND NUMBER */ | |
1450 | ! #line 628 "/usr/local/src/chet/src/bash/src/parse.y" | |
1451 | { | |
1452 | source.dest = (yyvsp[-2].number); | |
1453 | --- 2315,2323 ---- | |
1454 | (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0); | |
1455 | } | |
1456 | ! #line 2318 "y.tab.c" | |
1457 | break; | |
1458 | ||
1459 | ! case 36: /* redirection: NUMBER LESS_AND NUMBER */ | |
1460 | ! #line 643 "/usr/local/src/chet/src/bash/src/parse.y" | |
1461 | { | |
1462 | source.dest = (yyvsp[-2].number); | |
1463 | *************** | |
1464 | *** 2306,2314 **** | |
1465 | (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0); | |
1466 | } | |
1467 | ! #line 2309 "y.tab.c" | |
1468 | break; | |
1469 | ||
1470 | ! case 36: /* redirection: REDIR_WORD LESS_AND NUMBER */ | |
1471 | ! #line 634 "/usr/local/src/chet/src/bash/src/parse.y" | |
1472 | { | |
1473 | source.filename = (yyvsp[-2].word); | |
1474 | --- 2325,2333 ---- | |
1475 | (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0); | |
1476 | } | |
1477 | ! #line 2328 "y.tab.c" | |
1478 | break; | |
1479 | ||
1480 | ! case 37: /* redirection: REDIR_WORD LESS_AND NUMBER */ | |
1481 | ! #line 649 "/usr/local/src/chet/src/bash/src/parse.y" | |
1482 | { | |
1483 | source.filename = (yyvsp[-2].word); | |
1484 | *************** | |
1485 | *** 2316,2324 **** | |
1486 | (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, REDIR_VARASSIGN); | |
1487 | } | |
1488 | ! #line 2319 "y.tab.c" | |
1489 | break; | |
1490 | ||
1491 | ! case 37: /* redirection: GREATER_AND NUMBER */ | |
1492 | ! #line 640 "/usr/local/src/chet/src/bash/src/parse.y" | |
1493 | { | |
1494 | source.dest = 1; | |
1495 | --- 2335,2343 ---- | |
1496 | (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, REDIR_VARASSIGN); | |
1497 | } | |
1498 | ! #line 2338 "y.tab.c" | |
1499 | break; | |
1500 | ||
1501 | ! case 38: /* redirection: GREATER_AND NUMBER */ | |
1502 | ! #line 655 "/usr/local/src/chet/src/bash/src/parse.y" | |
1503 | { | |
1504 | source.dest = 1; | |
1505 | *************** | |
1506 | *** 2326,2334 **** | |
1507 | (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0); | |
1508 | } | |
1509 | ! #line 2329 "y.tab.c" | |
1510 | break; | |
1511 | ||
1512 | ! case 38: /* redirection: NUMBER GREATER_AND NUMBER */ | |
1513 | ! #line 646 "/usr/local/src/chet/src/bash/src/parse.y" | |
1514 | { | |
1515 | source.dest = (yyvsp[-2].number); | |
1516 | --- 2345,2353 ---- | |
1517 | (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0); | |
1518 | } | |
1519 | ! #line 2348 "y.tab.c" | |
1520 | break; | |
1521 | ||
1522 | ! case 39: /* redirection: NUMBER GREATER_AND NUMBER */ | |
1523 | ! #line 661 "/usr/local/src/chet/src/bash/src/parse.y" | |
1524 | { | |
1525 | source.dest = (yyvsp[-2].number); | |
1526 | *************** | |
1527 | *** 2336,2344 **** | |
1528 | (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0); | |
1529 | } | |
1530 | ! #line 2339 "y.tab.c" | |
1531 | break; | |
1532 | ||
1533 | ! case 39: /* redirection: REDIR_WORD GREATER_AND NUMBER */ | |
1534 | ! #line 652 "/usr/local/src/chet/src/bash/src/parse.y" | |
1535 | { | |
1536 | source.filename = (yyvsp[-2].word); | |
1537 | --- 2355,2363 ---- | |
1538 | (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0); | |
1539 | } | |
1540 | ! #line 2358 "y.tab.c" | |
1541 | break; | |
1542 | ||
1543 | ! case 40: /* redirection: REDIR_WORD GREATER_AND NUMBER */ | |
1544 | ! #line 667 "/usr/local/src/chet/src/bash/src/parse.y" | |
1545 | { | |
1546 | source.filename = (yyvsp[-2].word); | |
1547 | *************** | |
1548 | *** 2346,2354 **** | |
1549 | (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, REDIR_VARASSIGN); | |
1550 | } | |
1551 | ! #line 2349 "y.tab.c" | |
1552 | break; | |
1553 | ||
1554 | ! case 40: /* redirection: LESS_AND WORD */ | |
1555 | ! #line 658 "/usr/local/src/chet/src/bash/src/parse.y" | |
1556 | { | |
1557 | source.dest = 0; | |
1558 | --- 2365,2373 ---- | |
1559 | (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, REDIR_VARASSIGN); | |
1560 | } | |
1561 | ! #line 2368 "y.tab.c" | |
1562 | break; | |
1563 | ||
1564 | ! case 41: /* redirection: LESS_AND WORD */ | |
1565 | ! #line 673 "/usr/local/src/chet/src/bash/src/parse.y" | |
1566 | { | |
1567 | source.dest = 0; | |
1568 | *************** | |
1569 | *** 2356,2364 **** | |
1570 | (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0); | |
1571 | } | |
1572 | ! #line 2359 "y.tab.c" | |
1573 | break; | |
1574 | ||
1575 | ! case 41: /* redirection: NUMBER LESS_AND WORD */ | |
1576 | ! #line 664 "/usr/local/src/chet/src/bash/src/parse.y" | |
1577 | { | |
1578 | source.dest = (yyvsp[-2].number); | |
1579 | --- 2375,2383 ---- | |
1580 | (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0); | |
1581 | } | |
1582 | ! #line 2378 "y.tab.c" | |
1583 | break; | |
1584 | ||
1585 | ! case 42: /* redirection: NUMBER LESS_AND WORD */ | |
1586 | ! #line 679 "/usr/local/src/chet/src/bash/src/parse.y" | |
1587 | { | |
1588 | source.dest = (yyvsp[-2].number); | |
1589 | *************** | |
1590 | *** 2366,2374 **** | |
1591 | (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0); | |
1592 | } | |
1593 | ! #line 2369 "y.tab.c" | |
1594 | break; | |
1595 | ||
1596 | ! case 42: /* redirection: REDIR_WORD LESS_AND WORD */ | |
1597 | ! #line 670 "/usr/local/src/chet/src/bash/src/parse.y" | |
1598 | { | |
1599 | source.filename = (yyvsp[-2].word); | |
1600 | --- 2385,2393 ---- | |
1601 | (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0); | |
1602 | } | |
1603 | ! #line 2388 "y.tab.c" | |
1604 | break; | |
1605 | ||
1606 | ! case 43: /* redirection: REDIR_WORD LESS_AND WORD */ | |
1607 | ! #line 685 "/usr/local/src/chet/src/bash/src/parse.y" | |
1608 | { | |
1609 | source.filename = (yyvsp[-2].word); | |
1610 | *************** | |
1611 | *** 2376,2384 **** | |
1612 | (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, REDIR_VARASSIGN); | |
1613 | } | |
1614 | ! #line 2379 "y.tab.c" | |
1615 | break; | |
1616 | ||
1617 | ! case 43: /* redirection: GREATER_AND WORD */ | |
1618 | ! #line 676 "/usr/local/src/chet/src/bash/src/parse.y" | |
1619 | { | |
1620 | source.dest = 1; | |
1621 | --- 2395,2403 ---- | |
1622 | (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, REDIR_VARASSIGN); | |
1623 | } | |
1624 | ! #line 2398 "y.tab.c" | |
1625 | break; | |
1626 | ||
1627 | ! case 44: /* redirection: GREATER_AND WORD */ | |
1628 | ! #line 691 "/usr/local/src/chet/src/bash/src/parse.y" | |
1629 | { | |
1630 | source.dest = 1; | |
1631 | *************** | |
1632 | *** 2386,2394 **** | |
1633 | (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0); | |
1634 | } | |
1635 | ! #line 2389 "y.tab.c" | |
1636 | break; | |
1637 | ||
1638 | ! case 44: /* redirection: NUMBER GREATER_AND WORD */ | |
1639 | ! #line 682 "/usr/local/src/chet/src/bash/src/parse.y" | |
1640 | { | |
1641 | source.dest = (yyvsp[-2].number); | |
1642 | --- 2405,2413 ---- | |
1643 | (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0); | |
1644 | } | |
1645 | ! #line 2408 "y.tab.c" | |
1646 | break; | |
1647 | ||
1648 | ! case 45: /* redirection: NUMBER GREATER_AND WORD */ | |
1649 | ! #line 697 "/usr/local/src/chet/src/bash/src/parse.y" | |
1650 | { | |
1651 | source.dest = (yyvsp[-2].number); | |
1652 | *************** | |
1653 | *** 2396,2404 **** | |
1654 | (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0); | |
1655 | } | |
1656 | ! #line 2399 "y.tab.c" | |
1657 | break; | |
1658 | ||
1659 | ! case 45: /* redirection: REDIR_WORD GREATER_AND WORD */ | |
1660 | ! #line 688 "/usr/local/src/chet/src/bash/src/parse.y" | |
1661 | { | |
1662 | source.filename = (yyvsp[-2].word); | |
1663 | --- 2415,2423 ---- | |
1664 | (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0); | |
1665 | } | |
1666 | ! #line 2418 "y.tab.c" | |
1667 | break; | |
1668 | ||
1669 | ! case 46: /* redirection: REDIR_WORD GREATER_AND WORD */ | |
1670 | ! #line 703 "/usr/local/src/chet/src/bash/src/parse.y" | |
1671 | { | |
1672 | source.filename = (yyvsp[-2].word); | |
1673 | *************** | |
1674 | *** 2406,2414 **** | |
1675 | (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, REDIR_VARASSIGN); | |
1676 | } | |
1677 | ! #line 2409 "y.tab.c" | |
1678 | break; | |
1679 | ||
1680 | ! case 46: /* redirection: GREATER_AND '-' */ | |
1681 | ! #line 694 "/usr/local/src/chet/src/bash/src/parse.y" | |
1682 | { | |
1683 | source.dest = 1; | |
1684 | --- 2425,2433 ---- | |
1685 | (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, REDIR_VARASSIGN); | |
1686 | } | |
1687 | ! #line 2428 "y.tab.c" | |
1688 | break; | |
1689 | ||
1690 | ! case 47: /* redirection: GREATER_AND '-' */ | |
1691 | ! #line 709 "/usr/local/src/chet/src/bash/src/parse.y" | |
1692 | { | |
1693 | source.dest = 1; | |
1694 | *************** | |
1695 | *** 2416,2424 **** | |
1696 | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); | |
1697 | } | |
1698 | ! #line 2419 "y.tab.c" | |
1699 | break; | |
1700 | ||
1701 | ! case 47: /* redirection: NUMBER GREATER_AND '-' */ | |
1702 | ! #line 700 "/usr/local/src/chet/src/bash/src/parse.y" | |
1703 | { | |
1704 | source.dest = (yyvsp[-2].number); | |
1705 | --- 2435,2443 ---- | |
1706 | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); | |
1707 | } | |
1708 | ! #line 2438 "y.tab.c" | |
1709 | break; | |
1710 | ||
1711 | ! case 48: /* redirection: NUMBER GREATER_AND '-' */ | |
1712 | ! #line 715 "/usr/local/src/chet/src/bash/src/parse.y" | |
1713 | { | |
1714 | source.dest = (yyvsp[-2].number); | |
1715 | *************** | |
1716 | *** 2426,2434 **** | |
1717 | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); | |
1718 | } | |
1719 | ! #line 2429 "y.tab.c" | |
1720 | break; | |
1721 | ||
1722 | ! case 48: /* redirection: REDIR_WORD GREATER_AND '-' */ | |
1723 | ! #line 706 "/usr/local/src/chet/src/bash/src/parse.y" | |
1724 | { | |
1725 | source.filename = (yyvsp[-2].word); | |
1726 | --- 2445,2453 ---- | |
1727 | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); | |
1728 | } | |
1729 | ! #line 2448 "y.tab.c" | |
1730 | break; | |
1731 | ||
1732 | ! case 49: /* redirection: REDIR_WORD GREATER_AND '-' */ | |
1733 | ! #line 721 "/usr/local/src/chet/src/bash/src/parse.y" | |
1734 | { | |
1735 | source.filename = (yyvsp[-2].word); | |
1736 | *************** | |
1737 | *** 2436,2444 **** | |
1738 | (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); | |
1739 | } | |
1740 | ! #line 2439 "y.tab.c" | |
1741 | break; | |
1742 | ||
1743 | ! case 49: /* redirection: LESS_AND '-' */ | |
1744 | ! #line 712 "/usr/local/src/chet/src/bash/src/parse.y" | |
1745 | { | |
1746 | source.dest = 0; | |
1747 | --- 2455,2463 ---- | |
1748 | (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); | |
1749 | } | |
1750 | ! #line 2458 "y.tab.c" | |
1751 | break; | |
1752 | ||
1753 | ! case 50: /* redirection: LESS_AND '-' */ | |
1754 | ! #line 727 "/usr/local/src/chet/src/bash/src/parse.y" | |
1755 | { | |
1756 | source.dest = 0; | |
1757 | *************** | |
1758 | *** 2446,2454 **** | |
1759 | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); | |
1760 | } | |
1761 | ! #line 2449 "y.tab.c" | |
1762 | break; | |
1763 | ||
1764 | ! case 50: /* redirection: NUMBER LESS_AND '-' */ | |
1765 | ! #line 718 "/usr/local/src/chet/src/bash/src/parse.y" | |
1766 | { | |
1767 | source.dest = (yyvsp[-2].number); | |
1768 | --- 2465,2473 ---- | |
1769 | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); | |
1770 | } | |
1771 | ! #line 2468 "y.tab.c" | |
1772 | break; | |
1773 | ||
1774 | ! case 51: /* redirection: NUMBER LESS_AND '-' */ | |
1775 | ! #line 733 "/usr/local/src/chet/src/bash/src/parse.y" | |
1776 | { | |
1777 | source.dest = (yyvsp[-2].number); | |
1778 | *************** | |
1779 | *** 2456,2464 **** | |
1780 | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); | |
1781 | } | |
1782 | ! #line 2459 "y.tab.c" | |
1783 | break; | |
1784 | ||
1785 | ! case 51: /* redirection: REDIR_WORD LESS_AND '-' */ | |
1786 | ! #line 724 "/usr/local/src/chet/src/bash/src/parse.y" | |
1787 | { | |
1788 | source.filename = (yyvsp[-2].word); | |
1789 | --- 2475,2483 ---- | |
1790 | (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); | |
1791 | } | |
1792 | ! #line 2478 "y.tab.c" | |
1793 | break; | |
1794 | ||
1795 | ! case 52: /* redirection: REDIR_WORD LESS_AND '-' */ | |
1796 | ! #line 739 "/usr/local/src/chet/src/bash/src/parse.y" | |
1797 | { | |
1798 | source.filename = (yyvsp[-2].word); | |
1799 | *************** | |
1800 | *** 2466,2474 **** | |
1801 | (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); | |
1802 | } | |
1803 | ! #line 2469 "y.tab.c" | |
1804 | break; | |
1805 | ||
1806 | ! case 52: /* redirection: AND_GREATER WORD */ | |
1807 | ! #line 730 "/usr/local/src/chet/src/bash/src/parse.y" | |
1808 | { | |
1809 | source.dest = 1; | |
1810 | --- 2485,2493 ---- | |
1811 | (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); | |
1812 | } | |
1813 | ! #line 2488 "y.tab.c" | |
1814 | break; | |
1815 | ||
1816 | ! case 53: /* redirection: AND_GREATER WORD */ | |
1817 | ! #line 745 "/usr/local/src/chet/src/bash/src/parse.y" | |
1818 | { | |
1819 | source.dest = 1; | |
1820 | *************** | |
1821 | *** 2476,2484 **** | |
1822 | (yyval.redirect) = make_redirection (source, r_err_and_out, redir, 0); | |
1823 | } | |
1824 | ! #line 2479 "y.tab.c" | |
1825 | break; | |
1826 | ||
1827 | ! case 53: /* redirection: AND_GREATER_GREATER WORD */ | |
1828 | ! #line 736 "/usr/local/src/chet/src/bash/src/parse.y" | |
1829 | { | |
1830 | source.dest = 1; | |
1831 | --- 2495,2503 ---- | |
1832 | (yyval.redirect) = make_redirection (source, r_err_and_out, redir, 0); | |
1833 | } | |
1834 | ! #line 2498 "y.tab.c" | |
1835 | break; | |
1836 | ||
1837 | ! case 54: /* redirection: AND_GREATER_GREATER WORD */ | |
1838 | ! #line 751 "/usr/local/src/chet/src/bash/src/parse.y" | |
1839 | { | |
1840 | source.dest = 1; | |
1841 | *************** | |
1842 | *** 2486,2520 **** | |
1843 | (yyval.redirect) = make_redirection (source, r_append_err_and_out, redir, 0); | |
1844 | } | |
1845 | ! #line 2489 "y.tab.c" | |
1846 | break; | |
1847 | ||
1848 | ! case 54: /* simple_command_element: WORD */ | |
1849 | ! #line 744 "/usr/local/src/chet/src/bash/src/parse.y" | |
1850 | { (yyval.element).word = (yyvsp[0].word); (yyval.element).redirect = 0; } | |
1851 | ! #line 2495 "y.tab.c" | |
1852 | break; | |
1853 | ||
1854 | ! case 55: /* simple_command_element: ASSIGNMENT_WORD */ | |
1855 | ! #line 746 "/usr/local/src/chet/src/bash/src/parse.y" | |
1856 | { (yyval.element).word = (yyvsp[0].word); (yyval.element).redirect = 0; } | |
1857 | ! #line 2501 "y.tab.c" | |
1858 | break; | |
1859 | ||
1860 | ! case 56: /* simple_command_element: redirection */ | |
1861 | ! #line 748 "/usr/local/src/chet/src/bash/src/parse.y" | |
1862 | { (yyval.element).redirect = (yyvsp[0].redirect); (yyval.element).word = 0; } | |
1863 | ! #line 2507 "y.tab.c" | |
1864 | break; | |
1865 | ||
1866 | ! case 57: /* redirection_list: redirection */ | |
1867 | ! #line 752 "/usr/local/src/chet/src/bash/src/parse.y" | |
1868 | { | |
1869 | (yyval.redirect) = (yyvsp[0].redirect); | |
1870 | } | |
1871 | ! #line 2515 "y.tab.c" | |
1872 | break; | |
1873 | ||
1874 | ! case 58: /* redirection_list: redirection_list redirection */ | |
1875 | ! #line 756 "/usr/local/src/chet/src/bash/src/parse.y" | |
1876 | { | |
1877 | register REDIRECT *t; | |
1878 | --- 2505,2539 ---- | |
1879 | (yyval.redirect) = make_redirection (source, r_append_err_and_out, redir, 0); | |
1880 | } | |
1881 | ! #line 2508 "y.tab.c" | |
1882 | break; | |
1883 | ||
1884 | ! case 55: /* simple_command_element: WORD */ | |
1885 | ! #line 759 "/usr/local/src/chet/src/bash/src/parse.y" | |
1886 | { (yyval.element).word = (yyvsp[0].word); (yyval.element).redirect = 0; } | |
1887 | ! #line 2514 "y.tab.c" | |
1888 | break; | |
1889 | ||
1890 | ! case 56: /* simple_command_element: ASSIGNMENT_WORD */ | |
1891 | ! #line 761 "/usr/local/src/chet/src/bash/src/parse.y" | |
1892 | { (yyval.element).word = (yyvsp[0].word); (yyval.element).redirect = 0; } | |
1893 | ! #line 2520 "y.tab.c" | |
1894 | break; | |
1895 | ||
1896 | ! case 57: /* simple_command_element: redirection */ | |
1897 | ! #line 763 "/usr/local/src/chet/src/bash/src/parse.y" | |
1898 | { (yyval.element).redirect = (yyvsp[0].redirect); (yyval.element).word = 0; } | |
1899 | ! #line 2526 "y.tab.c" | |
1900 | break; | |
1901 | ||
1902 | ! case 58: /* redirection_list: redirection */ | |
1903 | ! #line 767 "/usr/local/src/chet/src/bash/src/parse.y" | |
1904 | { | |
1905 | (yyval.redirect) = (yyvsp[0].redirect); | |
1906 | } | |
1907 | ! #line 2534 "y.tab.c" | |
1908 | break; | |
1909 | ||
1910 | ! case 59: /* redirection_list: redirection_list redirection */ | |
1911 | ! #line 771 "/usr/local/src/chet/src/bash/src/parse.y" | |
1912 | { | |
1913 | register REDIRECT *t; | |
1914 | *************** | |
1915 | *** 2525,2557 **** | |
1916 | (yyval.redirect) = (yyvsp[-1].redirect); | |
1917 | } | |
1918 | ! #line 2528 "y.tab.c" | |
1919 | break; | |
1920 | ||
1921 | ! case 59: /* simple_command: simple_command_element */ | |
1922 | ! #line 767 "/usr/local/src/chet/src/bash/src/parse.y" | |
1923 | { (yyval.command) = make_simple_command ((yyvsp[0].element), (COMMAND *)NULL); } | |
1924 | ! #line 2534 "y.tab.c" | |
1925 | break; | |
1926 | ||
1927 | ! case 60: /* simple_command: simple_command simple_command_element */ | |
1928 | ! #line 769 "/usr/local/src/chet/src/bash/src/parse.y" | |
1929 | { (yyval.command) = make_simple_command ((yyvsp[0].element), (yyvsp[-1].command)); } | |
1930 | ! #line 2540 "y.tab.c" | |
1931 | break; | |
1932 | ||
1933 | ! case 61: /* command: simple_command */ | |
1934 | ! #line 773 "/usr/local/src/chet/src/bash/src/parse.y" | |
1935 | { (yyval.command) = clean_simple_command ((yyvsp[0].command)); } | |
1936 | ! #line 2546 "y.tab.c" | |
1937 | break; | |
1938 | ||
1939 | ! case 62: /* command: shell_command */ | |
1940 | ! #line 775 "/usr/local/src/chet/src/bash/src/parse.y" | |
1941 | { (yyval.command) = (yyvsp[0].command); } | |
1942 | ! #line 2552 "y.tab.c" | |
1943 | break; | |
1944 | ||
1945 | ! case 63: /* command: shell_command redirection_list */ | |
1946 | ! #line 777 "/usr/local/src/chet/src/bash/src/parse.y" | |
1947 | { | |
1948 | COMMAND *tc; | |
1949 | --- 2544,2576 ---- | |
1950 | (yyval.redirect) = (yyvsp[-1].redirect); | |
1951 | } | |
1952 | ! #line 2547 "y.tab.c" | |
1953 | break; | |
1954 | ||
1955 | ! case 60: /* simple_command: simple_command_element */ | |
1956 | ! #line 782 "/usr/local/src/chet/src/bash/src/parse.y" | |
1957 | { (yyval.command) = make_simple_command ((yyvsp[0].element), (COMMAND *)NULL); } | |
1958 | ! #line 2553 "y.tab.c" | |
1959 | break; | |
1960 | ||
1961 | ! case 61: /* simple_command: simple_command simple_command_element */ | |
1962 | ! #line 784 "/usr/local/src/chet/src/bash/src/parse.y" | |
1963 | { (yyval.command) = make_simple_command ((yyvsp[0].element), (yyvsp[-1].command)); } | |
1964 | ! #line 2559 "y.tab.c" | |
1965 | break; | |
1966 | ||
1967 | ! case 62: /* command: simple_command */ | |
1968 | ! #line 788 "/usr/local/src/chet/src/bash/src/parse.y" | |
1969 | { (yyval.command) = clean_simple_command ((yyvsp[0].command)); } | |
1970 | ! #line 2565 "y.tab.c" | |
1971 | break; | |
1972 | ||
1973 | ! case 63: /* command: shell_command */ | |
1974 | ! #line 790 "/usr/local/src/chet/src/bash/src/parse.y" | |
1975 | { (yyval.command) = (yyvsp[0].command); } | |
1976 | ! #line 2571 "y.tab.c" | |
1977 | break; | |
1978 | ||
1979 | ! case 64: /* command: shell_command redirection_list */ | |
1980 | ! #line 792 "/usr/local/src/chet/src/bash/src/parse.y" | |
1981 | { | |
1982 | COMMAND *tc; | |
1983 | *************** | |
1984 | *** 2569,2727 **** | |
1985 | (yyval.command) = (yyvsp[-1].command); | |
1986 | } | |
1987 | ! #line 2572 "y.tab.c" | |
1988 | break; | |
1989 | ||
1990 | ! case 64: /* command: function_def */ | |
1991 | ! #line 793 "/usr/local/src/chet/src/bash/src/parse.y" | |
1992 | { (yyval.command) = (yyvsp[0].command); } | |
1993 | ! #line 2578 "y.tab.c" | |
1994 | break; | |
1995 | ||
1996 | ! case 65: /* command: coproc */ | |
1997 | ! #line 795 "/usr/local/src/chet/src/bash/src/parse.y" | |
1998 | { (yyval.command) = (yyvsp[0].command); } | |
1999 | ! #line 2584 "y.tab.c" | |
2000 | break; | |
2001 | ||
2002 | ! case 66: /* shell_command: for_command */ | |
2003 | ! #line 799 "/usr/local/src/chet/src/bash/src/parse.y" | |
2004 | { (yyval.command) = (yyvsp[0].command); } | |
2005 | ! #line 2590 "y.tab.c" | |
2006 | break; | |
2007 | ||
2008 | ! case 67: /* shell_command: case_command */ | |
2009 | ! #line 801 "/usr/local/src/chet/src/bash/src/parse.y" | |
2010 | { (yyval.command) = (yyvsp[0].command); } | |
2011 | ! #line 2596 "y.tab.c" | |
2012 | break; | |
2013 | ||
2014 | ! case 68: /* shell_command: WHILE compound_list DO compound_list DONE */ | |
2015 | ! #line 803 "/usr/local/src/chet/src/bash/src/parse.y" | |
2016 | { (yyval.command) = make_while_command ((yyvsp[-3].command), (yyvsp[-1].command)); } | |
2017 | ! #line 2602 "y.tab.c" | |
2018 | break; | |
2019 | ||
2020 | ! case 69: /* shell_command: UNTIL compound_list DO compound_list DONE */ | |
2021 | ! #line 805 "/usr/local/src/chet/src/bash/src/parse.y" | |
2022 | { (yyval.command) = make_until_command ((yyvsp[-3].command), (yyvsp[-1].command)); } | |
2023 | ! #line 2608 "y.tab.c" | |
2024 | break; | |
2025 | ||
2026 | ! case 70: /* shell_command: select_command */ | |
2027 | ! #line 807 "/usr/local/src/chet/src/bash/src/parse.y" | |
2028 | { (yyval.command) = (yyvsp[0].command); } | |
2029 | ! #line 2614 "y.tab.c" | |
2030 | break; | |
2031 | ||
2032 | ! case 71: /* shell_command: if_command */ | |
2033 | ! #line 809 "/usr/local/src/chet/src/bash/src/parse.y" | |
2034 | { (yyval.command) = (yyvsp[0].command); } | |
2035 | ! #line 2620 "y.tab.c" | |
2036 | break; | |
2037 | ||
2038 | ! case 72: /* shell_command: subshell */ | |
2039 | ! #line 811 "/usr/local/src/chet/src/bash/src/parse.y" | |
2040 | { (yyval.command) = (yyvsp[0].command); } | |
2041 | ! #line 2626 "y.tab.c" | |
2042 | break; | |
2043 | ||
2044 | ! case 73: /* shell_command: group_command */ | |
2045 | ! #line 813 "/usr/local/src/chet/src/bash/src/parse.y" | |
2046 | { (yyval.command) = (yyvsp[0].command); } | |
2047 | ! #line 2632 "y.tab.c" | |
2048 | break; | |
2049 | ||
2050 | ! case 74: /* shell_command: arith_command */ | |
2051 | ! #line 815 "/usr/local/src/chet/src/bash/src/parse.y" | |
2052 | { (yyval.command) = (yyvsp[0].command); } | |
2053 | ! #line 2638 "y.tab.c" | |
2054 | break; | |
2055 | ||
2056 | ! case 75: /* shell_command: cond_command */ | |
2057 | ! #line 817 "/usr/local/src/chet/src/bash/src/parse.y" | |
2058 | { (yyval.command) = (yyvsp[0].command); } | |
2059 | ! #line 2644 "y.tab.c" | |
2060 | break; | |
2061 | ||
2062 | ! case 76: /* shell_command: arith_for_command */ | |
2063 | ! #line 819 "/usr/local/src/chet/src/bash/src/parse.y" | |
2064 | { (yyval.command) = (yyvsp[0].command); } | |
2065 | ! #line 2650 "y.tab.c" | |
2066 | break; | |
2067 | ||
2068 | ! case 77: /* for_command: FOR WORD newline_list DO compound_list DONE */ | |
2069 | ! #line 823 "/usr/local/src/chet/src/bash/src/parse.y" | |
2070 | { | |
2071 | (yyval.command) = make_for_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2072 | if (word_top > 0) word_top--; | |
2073 | } | |
2074 | ! #line 2659 "y.tab.c" | |
2075 | break; | |
2076 | ||
2077 | ! case 78: /* for_command: FOR WORD newline_list '{' compound_list '}' */ | |
2078 | ! #line 828 "/usr/local/src/chet/src/bash/src/parse.y" | |
2079 | { | |
2080 | (yyval.command) = make_for_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2081 | if (word_top > 0) word_top--; | |
2082 | } | |
2083 | ! #line 2668 "y.tab.c" | |
2084 | break; | |
2085 | ||
2086 | ! case 79: /* for_command: FOR WORD ';' newline_list DO compound_list DONE */ | |
2087 | ! #line 833 "/usr/local/src/chet/src/bash/src/parse.y" | |
2088 | { | |
2089 | (yyval.command) = make_for_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2090 | if (word_top > 0) word_top--; | |
2091 | } | |
2092 | ! #line 2677 "y.tab.c" | |
2093 | break; | |
2094 | ||
2095 | ! case 80: /* for_command: FOR WORD ';' newline_list '{' compound_list '}' */ | |
2096 | ! #line 838 "/usr/local/src/chet/src/bash/src/parse.y" | |
2097 | { | |
2098 | (yyval.command) = make_for_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2099 | if (word_top > 0) word_top--; | |
2100 | } | |
2101 | ! #line 2686 "y.tab.c" | |
2102 | break; | |
2103 | ||
2104 | ! case 81: /* for_command: FOR WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE */ | |
2105 | ! #line 843 "/usr/local/src/chet/src/bash/src/parse.y" | |
2106 | { | |
2107 | (yyval.command) = make_for_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); | |
2108 | if (word_top > 0) word_top--; | |
2109 | } | |
2110 | ! #line 2695 "y.tab.c" | |
2111 | break; | |
2112 | ||
2113 | ! case 82: /* for_command: FOR WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}' */ | |
2114 | ! #line 848 "/usr/local/src/chet/src/bash/src/parse.y" | |
2115 | { | |
2116 | (yyval.command) = make_for_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); | |
2117 | if (word_top > 0) word_top--; | |
2118 | } | |
2119 | ! #line 2704 "y.tab.c" | |
2120 | break; | |
2121 | ||
2122 | ! case 83: /* for_command: FOR WORD newline_list IN list_terminator newline_list DO compound_list DONE */ | |
2123 | ! #line 853 "/usr/local/src/chet/src/bash/src/parse.y" | |
2124 | { | |
2125 | (yyval.command) = make_for_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); | |
2126 | if (word_top > 0) word_top--; | |
2127 | } | |
2128 | ! #line 2713 "y.tab.c" | |
2129 | break; | |
2130 | ||
2131 | ! case 84: /* for_command: FOR WORD newline_list IN list_terminator newline_list '{' compound_list '}' */ | |
2132 | ! #line 858 "/usr/local/src/chet/src/bash/src/parse.y" | |
2133 | { | |
2134 | (yyval.command) = make_for_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); | |
2135 | if (word_top > 0) word_top--; | |
2136 | } | |
2137 | ! #line 2722 "y.tab.c" | |
2138 | break; | |
2139 | ||
2140 | ! case 85: /* arith_for_command: FOR ARITH_FOR_EXPRS list_terminator newline_list DO compound_list DONE */ | |
2141 | ! #line 865 "/usr/local/src/chet/src/bash/src/parse.y" | |
2142 | { | |
2143 | (yyval.command) = make_arith_for_command ((yyvsp[-5].word_list), (yyvsp[-1].command), arith_for_lineno); | |
2144 | --- 2588,2746 ---- | |
2145 | (yyval.command) = (yyvsp[-1].command); | |
2146 | } | |
2147 | ! #line 2591 "y.tab.c" | |
2148 | break; | |
2149 | ||
2150 | ! case 65: /* command: function_def */ | |
2151 | ! #line 808 "/usr/local/src/chet/src/bash/src/parse.y" | |
2152 | { (yyval.command) = (yyvsp[0].command); } | |
2153 | ! #line 2597 "y.tab.c" | |
2154 | break; | |
2155 | ||
2156 | ! case 66: /* command: coproc */ | |
2157 | ! #line 810 "/usr/local/src/chet/src/bash/src/parse.y" | |
2158 | { (yyval.command) = (yyvsp[0].command); } | |
2159 | ! #line 2603 "y.tab.c" | |
2160 | break; | |
2161 | ||
2162 | ! case 67: /* shell_command: for_command */ | |
2163 | ! #line 814 "/usr/local/src/chet/src/bash/src/parse.y" | |
2164 | { (yyval.command) = (yyvsp[0].command); } | |
2165 | ! #line 2609 "y.tab.c" | |
2166 | break; | |
2167 | ||
2168 | ! case 68: /* shell_command: case_command */ | |
2169 | ! #line 816 "/usr/local/src/chet/src/bash/src/parse.y" | |
2170 | { (yyval.command) = (yyvsp[0].command); } | |
2171 | ! #line 2615 "y.tab.c" | |
2172 | break; | |
2173 | ||
2174 | ! case 69: /* shell_command: WHILE compound_list DO compound_list DONE */ | |
2175 | ! #line 818 "/usr/local/src/chet/src/bash/src/parse.y" | |
2176 | { (yyval.command) = make_while_command ((yyvsp[-3].command), (yyvsp[-1].command)); } | |
2177 | ! #line 2621 "y.tab.c" | |
2178 | break; | |
2179 | ||
2180 | ! case 70: /* shell_command: UNTIL compound_list DO compound_list DONE */ | |
2181 | ! #line 820 "/usr/local/src/chet/src/bash/src/parse.y" | |
2182 | { (yyval.command) = make_until_command ((yyvsp[-3].command), (yyvsp[-1].command)); } | |
2183 | ! #line 2627 "y.tab.c" | |
2184 | break; | |
2185 | ||
2186 | ! case 71: /* shell_command: select_command */ | |
2187 | ! #line 822 "/usr/local/src/chet/src/bash/src/parse.y" | |
2188 | { (yyval.command) = (yyvsp[0].command); } | |
2189 | ! #line 2633 "y.tab.c" | |
2190 | break; | |
2191 | ||
2192 | ! case 72: /* shell_command: if_command */ | |
2193 | ! #line 824 "/usr/local/src/chet/src/bash/src/parse.y" | |
2194 | { (yyval.command) = (yyvsp[0].command); } | |
2195 | ! #line 2639 "y.tab.c" | |
2196 | break; | |
2197 | ||
2198 | ! case 73: /* shell_command: subshell */ | |
2199 | ! #line 826 "/usr/local/src/chet/src/bash/src/parse.y" | |
2200 | { (yyval.command) = (yyvsp[0].command); } | |
2201 | ! #line 2645 "y.tab.c" | |
2202 | break; | |
2203 | ||
2204 | ! case 74: /* shell_command: group_command */ | |
2205 | ! #line 828 "/usr/local/src/chet/src/bash/src/parse.y" | |
2206 | { (yyval.command) = (yyvsp[0].command); } | |
2207 | ! #line 2651 "y.tab.c" | |
2208 | break; | |
2209 | ||
2210 | ! case 75: /* shell_command: arith_command */ | |
2211 | ! #line 830 "/usr/local/src/chet/src/bash/src/parse.y" | |
2212 | { (yyval.command) = (yyvsp[0].command); } | |
2213 | ! #line 2657 "y.tab.c" | |
2214 | break; | |
2215 | ||
2216 | ! case 76: /* shell_command: cond_command */ | |
2217 | ! #line 832 "/usr/local/src/chet/src/bash/src/parse.y" | |
2218 | { (yyval.command) = (yyvsp[0].command); } | |
2219 | ! #line 2663 "y.tab.c" | |
2220 | break; | |
2221 | ||
2222 | ! case 77: /* shell_command: arith_for_command */ | |
2223 | ! #line 834 "/usr/local/src/chet/src/bash/src/parse.y" | |
2224 | { (yyval.command) = (yyvsp[0].command); } | |
2225 | ! #line 2669 "y.tab.c" | |
2226 | break; | |
2227 | ||
2228 | ! case 78: /* for_command: FOR WORD newline_list DO compound_list DONE */ | |
2229 | ! #line 838 "/usr/local/src/chet/src/bash/src/parse.y" | |
2230 | { | |
2231 | (yyval.command) = make_for_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2232 | if (word_top > 0) word_top--; | |
2233 | } | |
2234 | ! #line 2678 "y.tab.c" | |
2235 | break; | |
2236 | ||
2237 | ! case 79: /* for_command: FOR WORD newline_list '{' compound_list '}' */ | |
2238 | ! #line 843 "/usr/local/src/chet/src/bash/src/parse.y" | |
2239 | { | |
2240 | (yyval.command) = make_for_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2241 | if (word_top > 0) word_top--; | |
2242 | } | |
2243 | ! #line 2687 "y.tab.c" | |
2244 | break; | |
2245 | ||
2246 | ! case 80: /* for_command: FOR WORD ';' newline_list DO compound_list DONE */ | |
2247 | ! #line 848 "/usr/local/src/chet/src/bash/src/parse.y" | |
2248 | { | |
2249 | (yyval.command) = make_for_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2250 | if (word_top > 0) word_top--; | |
2251 | } | |
2252 | ! #line 2696 "y.tab.c" | |
2253 | break; | |
2254 | ||
2255 | ! case 81: /* for_command: FOR WORD ';' newline_list '{' compound_list '}' */ | |
2256 | ! #line 853 "/usr/local/src/chet/src/bash/src/parse.y" | |
2257 | { | |
2258 | (yyval.command) = make_for_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2259 | if (word_top > 0) word_top--; | |
2260 | } | |
2261 | ! #line 2705 "y.tab.c" | |
2262 | break; | |
2263 | ||
2264 | ! case 82: /* for_command: FOR WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE */ | |
2265 | ! #line 858 "/usr/local/src/chet/src/bash/src/parse.y" | |
2266 | { | |
2267 | (yyval.command) = make_for_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); | |
2268 | if (word_top > 0) word_top--; | |
2269 | } | |
2270 | ! #line 2714 "y.tab.c" | |
2271 | break; | |
2272 | ||
2273 | ! case 83: /* for_command: FOR WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}' */ | |
2274 | ! #line 863 "/usr/local/src/chet/src/bash/src/parse.y" | |
2275 | { | |
2276 | (yyval.command) = make_for_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); | |
2277 | if (word_top > 0) word_top--; | |
2278 | } | |
2279 | ! #line 2723 "y.tab.c" | |
2280 | break; | |
2281 | ||
2282 | ! case 84: /* for_command: FOR WORD newline_list IN list_terminator newline_list DO compound_list DONE */ | |
2283 | ! #line 868 "/usr/local/src/chet/src/bash/src/parse.y" | |
2284 | { | |
2285 | (yyval.command) = make_for_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); | |
2286 | if (word_top > 0) word_top--; | |
2287 | } | |
2288 | ! #line 2732 "y.tab.c" | |
2289 | break; | |
2290 | ||
2291 | ! case 85: /* for_command: FOR WORD newline_list IN list_terminator newline_list '{' compound_list '}' */ | |
2292 | ! #line 873 "/usr/local/src/chet/src/bash/src/parse.y" | |
2293 | { | |
2294 | (yyval.command) = make_for_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); | |
2295 | if (word_top > 0) word_top--; | |
2296 | } | |
2297 | ! #line 2741 "y.tab.c" | |
2298 | break; | |
2299 | ||
2300 | ! case 86: /* arith_for_command: FOR ARITH_FOR_EXPRS list_terminator newline_list DO compound_list DONE */ | |
2301 | ! #line 880 "/usr/local/src/chet/src/bash/src/parse.y" | |
2302 | { | |
2303 | (yyval.command) = make_arith_for_command ((yyvsp[-5].word_list), (yyvsp[-1].command), arith_for_lineno); | |
2304 | *************** | |
2305 | *** 2729,2737 **** | |
2306 | if (word_top > 0) word_top--; | |
2307 | } | |
2308 | ! #line 2732 "y.tab.c" | |
2309 | break; | |
2310 | ||
2311 | ! case 86: /* arith_for_command: FOR ARITH_FOR_EXPRS list_terminator newline_list '{' compound_list '}' */ | |
2312 | ! #line 871 "/usr/local/src/chet/src/bash/src/parse.y" | |
2313 | { | |
2314 | (yyval.command) = make_arith_for_command ((yyvsp[-5].word_list), (yyvsp[-1].command), arith_for_lineno); | |
2315 | --- 2748,2756 ---- | |
2316 | if (word_top > 0) word_top--; | |
2317 | } | |
2318 | ! #line 2751 "y.tab.c" | |
2319 | break; | |
2320 | ||
2321 | ! case 87: /* arith_for_command: FOR ARITH_FOR_EXPRS list_terminator newline_list '{' compound_list '}' */ | |
2322 | ! #line 886 "/usr/local/src/chet/src/bash/src/parse.y" | |
2323 | { | |
2324 | (yyval.command) = make_arith_for_command ((yyvsp[-5].word_list), (yyvsp[-1].command), arith_for_lineno); | |
2325 | *************** | |
2326 | *** 2739,2747 **** | |
2327 | if (word_top > 0) word_top--; | |
2328 | } | |
2329 | ! #line 2742 "y.tab.c" | |
2330 | break; | |
2331 | ||
2332 | ! case 87: /* arith_for_command: FOR ARITH_FOR_EXPRS DO compound_list DONE */ | |
2333 | ! #line 877 "/usr/local/src/chet/src/bash/src/parse.y" | |
2334 | { | |
2335 | (yyval.command) = make_arith_for_command ((yyvsp[-3].word_list), (yyvsp[-1].command), arith_for_lineno); | |
2336 | --- 2758,2766 ---- | |
2337 | if (word_top > 0) word_top--; | |
2338 | } | |
2339 | ! #line 2761 "y.tab.c" | |
2340 | break; | |
2341 | ||
2342 | ! case 88: /* arith_for_command: FOR ARITH_FOR_EXPRS DO compound_list DONE */ | |
2343 | ! #line 892 "/usr/local/src/chet/src/bash/src/parse.y" | |
2344 | { | |
2345 | (yyval.command) = make_arith_for_command ((yyvsp[-3].word_list), (yyvsp[-1].command), arith_for_lineno); | |
2346 | *************** | |
2347 | *** 2749,2757 **** | |
2348 | if (word_top > 0) word_top--; | |
2349 | } | |
2350 | ! #line 2752 "y.tab.c" | |
2351 | break; | |
2352 | ||
2353 | ! case 88: /* arith_for_command: FOR ARITH_FOR_EXPRS '{' compound_list '}' */ | |
2354 | ! #line 883 "/usr/local/src/chet/src/bash/src/parse.y" | |
2355 | { | |
2356 | (yyval.command) = make_arith_for_command ((yyvsp[-3].word_list), (yyvsp[-1].command), arith_for_lineno); | |
2357 | --- 2768,2776 ---- | |
2358 | if (word_top > 0) word_top--; | |
2359 | } | |
2360 | ! #line 2771 "y.tab.c" | |
2361 | break; | |
2362 | ||
2363 | ! case 89: /* arith_for_command: FOR ARITH_FOR_EXPRS '{' compound_list '}' */ | |
2364 | ! #line 898 "/usr/local/src/chet/src/bash/src/parse.y" | |
2365 | { | |
2366 | (yyval.command) = make_arith_for_command ((yyvsp[-3].word_list), (yyvsp[-1].command), arith_for_lineno); | |
2367 | *************** | |
2368 | *** 2759,2896 **** | |
2369 | if (word_top > 0) word_top--; | |
2370 | } | |
2371 | ! #line 2762 "y.tab.c" | |
2372 | break; | |
2373 | ||
2374 | ! case 89: /* select_command: SELECT WORD newline_list DO compound_list DONE */ | |
2375 | ! #line 891 "/usr/local/src/chet/src/bash/src/parse.y" | |
2376 | { | |
2377 | (yyval.command) = make_select_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2378 | if (word_top > 0) word_top--; | |
2379 | } | |
2380 | ! #line 2771 "y.tab.c" | |
2381 | break; | |
2382 | ||
2383 | ! case 90: /* select_command: SELECT WORD newline_list '{' compound_list '}' */ | |
2384 | ! #line 896 "/usr/local/src/chet/src/bash/src/parse.y" | |
2385 | { | |
2386 | (yyval.command) = make_select_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2387 | if (word_top > 0) word_top--; | |
2388 | } | |
2389 | ! #line 2780 "y.tab.c" | |
2390 | break; | |
2391 | ||
2392 | ! case 91: /* select_command: SELECT WORD ';' newline_list DO compound_list DONE */ | |
2393 | ! #line 901 "/usr/local/src/chet/src/bash/src/parse.y" | |
2394 | { | |
2395 | (yyval.command) = make_select_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2396 | if (word_top > 0) word_top--; | |
2397 | } | |
2398 | ! #line 2789 "y.tab.c" | |
2399 | break; | |
2400 | ||
2401 | ! case 92: /* select_command: SELECT WORD ';' newline_list '{' compound_list '}' */ | |
2402 | ! #line 906 "/usr/local/src/chet/src/bash/src/parse.y" | |
2403 | { | |
2404 | (yyval.command) = make_select_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2405 | if (word_top > 0) word_top--; | |
2406 | } | |
2407 | ! #line 2798 "y.tab.c" | |
2408 | break; | |
2409 | ||
2410 | ! case 93: /* select_command: SELECT WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE */ | |
2411 | ! #line 911 "/usr/local/src/chet/src/bash/src/parse.y" | |
2412 | { | |
2413 | (yyval.command) = make_select_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); | |
2414 | if (word_top > 0) word_top--; | |
2415 | } | |
2416 | ! #line 2807 "y.tab.c" | |
2417 | break; | |
2418 | ||
2419 | ! case 94: /* select_command: SELECT WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}' */ | |
2420 | ! #line 916 "/usr/local/src/chet/src/bash/src/parse.y" | |
2421 | { | |
2422 | (yyval.command) = make_select_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); | |
2423 | if (word_top > 0) word_top--; | |
2424 | } | |
2425 | ! #line 2816 "y.tab.c" | |
2426 | break; | |
2427 | ||
2428 | ! case 95: /* select_command: SELECT WORD newline_list IN list_terminator newline_list DO compound_list DONE */ | |
2429 | ! #line 921 "/usr/local/src/chet/src/bash/src/parse.y" | |
2430 | { | |
2431 | (yyval.command) = make_select_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); | |
2432 | if (word_top > 0) word_top--; | |
2433 | } | |
2434 | ! #line 2825 "y.tab.c" | |
2435 | break; | |
2436 | ||
2437 | ! case 96: /* select_command: SELECT WORD newline_list IN list_terminator newline_list '{' compound_list '}' */ | |
2438 | ! #line 926 "/usr/local/src/chet/src/bash/src/parse.y" | |
2439 | { | |
2440 | (yyval.command) = make_select_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); | |
2441 | if (word_top > 0) word_top--; | |
2442 | } | |
2443 | ! #line 2834 "y.tab.c" | |
2444 | break; | |
2445 | ||
2446 | ! case 97: /* case_command: CASE WORD newline_list IN newline_list ESAC */ | |
2447 | ! #line 933 "/usr/local/src/chet/src/bash/src/parse.y" | |
2448 | { | |
2449 | (yyval.command) = make_case_command ((yyvsp[-4].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); | |
2450 | if (word_top > 0) word_top--; | |
2451 | } | |
2452 | ! #line 2843 "y.tab.c" | |
2453 | break; | |
2454 | ||
2455 | ! case 98: /* case_command: CASE WORD newline_list IN case_clause_sequence newline_list ESAC */ | |
2456 | ! #line 938 "/usr/local/src/chet/src/bash/src/parse.y" | |
2457 | { | |
2458 | (yyval.command) = make_case_command ((yyvsp[-5].word), (yyvsp[-2].pattern), word_lineno[word_top]); | |
2459 | if (word_top > 0) word_top--; | |
2460 | } | |
2461 | ! #line 2852 "y.tab.c" | |
2462 | break; | |
2463 | ||
2464 | ! case 99: /* case_command: CASE WORD newline_list IN case_clause ESAC */ | |
2465 | ! #line 943 "/usr/local/src/chet/src/bash/src/parse.y" | |
2466 | { | |
2467 | (yyval.command) = make_case_command ((yyvsp[-4].word), (yyvsp[-1].pattern), word_lineno[word_top]); | |
2468 | if (word_top > 0) word_top--; | |
2469 | } | |
2470 | ! #line 2861 "y.tab.c" | |
2471 | break; | |
2472 | ||
2473 | ! case 100: /* function_def: WORD '(' ')' newline_list function_body */ | |
2474 | ! #line 950 "/usr/local/src/chet/src/bash/src/parse.y" | |
2475 | { (yyval.command) = make_function_def ((yyvsp[-4].word), (yyvsp[0].command), function_dstart, function_bstart); } | |
2476 | ! #line 2867 "y.tab.c" | |
2477 | break; | |
2478 | ||
2479 | ! case 101: /* function_def: FUNCTION WORD '(' ')' newline_list function_body */ | |
2480 | ! #line 952 "/usr/local/src/chet/src/bash/src/parse.y" | |
2481 | { (yyval.command) = make_function_def ((yyvsp[-4].word), (yyvsp[0].command), function_dstart, function_bstart); } | |
2482 | ! #line 2873 "y.tab.c" | |
2483 | break; | |
2484 | ||
2485 | ! case 102: /* function_def: FUNCTION WORD function_body */ | |
2486 | ! #line 954 "/usr/local/src/chet/src/bash/src/parse.y" | |
2487 | { (yyval.command) = make_function_def ((yyvsp[-1].word), (yyvsp[0].command), function_dstart, function_bstart); } | |
2488 | ! #line 2879 "y.tab.c" | |
2489 | break; | |
2490 | ||
2491 | ! case 103: /* function_def: FUNCTION WORD '\n' newline_list function_body */ | |
2492 | ! #line 956 "/usr/local/src/chet/src/bash/src/parse.y" | |
2493 | { (yyval.command) = make_function_def ((yyvsp[-3].word), (yyvsp[0].command), function_dstart, function_bstart); } | |
2494 | ! #line 2885 "y.tab.c" | |
2495 | break; | |
2496 | ||
2497 | ! case 104: /* function_body: shell_command */ | |
2498 | ! #line 960 "/usr/local/src/chet/src/bash/src/parse.y" | |
2499 | { (yyval.command) = (yyvsp[0].command); } | |
2500 | ! #line 2891 "y.tab.c" | |
2501 | break; | |
2502 | ||
2503 | ! case 105: /* function_body: shell_command redirection_list */ | |
2504 | ! #line 962 "/usr/local/src/chet/src/bash/src/parse.y" | |
2505 | { | |
2506 | COMMAND *tc; | |
2507 | --- 2778,2915 ---- | |
2508 | if (word_top > 0) word_top--; | |
2509 | } | |
2510 | ! #line 2781 "y.tab.c" | |
2511 | break; | |
2512 | ||
2513 | ! case 90: /* select_command: SELECT WORD newline_list DO compound_list DONE */ | |
2514 | ! #line 906 "/usr/local/src/chet/src/bash/src/parse.y" | |
2515 | { | |
2516 | (yyval.command) = make_select_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2517 | if (word_top > 0) word_top--; | |
2518 | } | |
2519 | ! #line 2790 "y.tab.c" | |
2520 | break; | |
2521 | ||
2522 | ! case 91: /* select_command: SELECT WORD newline_list '{' compound_list '}' */ | |
2523 | ! #line 911 "/usr/local/src/chet/src/bash/src/parse.y" | |
2524 | { | |
2525 | (yyval.command) = make_select_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2526 | if (word_top > 0) word_top--; | |
2527 | } | |
2528 | ! #line 2799 "y.tab.c" | |
2529 | break; | |
2530 | ||
2531 | ! case 92: /* select_command: SELECT WORD ';' newline_list DO compound_list DONE */ | |
2532 | ! #line 916 "/usr/local/src/chet/src/bash/src/parse.y" | |
2533 | { | |
2534 | (yyval.command) = make_select_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2535 | if (word_top > 0) word_top--; | |
2536 | } | |
2537 | ! #line 2808 "y.tab.c" | |
2538 | break; | |
2539 | ||
2540 | ! case 93: /* select_command: SELECT WORD ';' newline_list '{' compound_list '}' */ | |
2541 | ! #line 921 "/usr/local/src/chet/src/bash/src/parse.y" | |
2542 | { | |
2543 | (yyval.command) = make_select_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); | |
2544 | if (word_top > 0) word_top--; | |
2545 | } | |
2546 | ! #line 2817 "y.tab.c" | |
2547 | break; | |
2548 | ||
2549 | ! case 94: /* select_command: SELECT WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE */ | |
2550 | ! #line 926 "/usr/local/src/chet/src/bash/src/parse.y" | |
2551 | { | |
2552 | (yyval.command) = make_select_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); | |
2553 | if (word_top > 0) word_top--; | |
2554 | } | |
2555 | ! #line 2826 "y.tab.c" | |
2556 | break; | |
2557 | ||
2558 | ! case 95: /* select_command: SELECT WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}' */ | |
2559 | ! #line 931 "/usr/local/src/chet/src/bash/src/parse.y" | |
2560 | { | |
2561 | (yyval.command) = make_select_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); | |
2562 | if (word_top > 0) word_top--; | |
2563 | } | |
2564 | ! #line 2835 "y.tab.c" | |
2565 | break; | |
2566 | ||
2567 | ! case 96: /* select_command: SELECT WORD newline_list IN list_terminator newline_list DO compound_list DONE */ | |
2568 | ! #line 936 "/usr/local/src/chet/src/bash/src/parse.y" | |
2569 | { | |
2570 | (yyval.command) = make_select_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); | |
2571 | if (word_top > 0) word_top--; | |
2572 | } | |
2573 | ! #line 2844 "y.tab.c" | |
2574 | break; | |
2575 | ||
2576 | ! case 97: /* select_command: SELECT WORD newline_list IN list_terminator newline_list '{' compound_list '}' */ | |
2577 | ! #line 941 "/usr/local/src/chet/src/bash/src/parse.y" | |
2578 | { | |
2579 | (yyval.command) = make_select_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); | |
2580 | if (word_top > 0) word_top--; | |
2581 | } | |
2582 | ! #line 2853 "y.tab.c" | |
2583 | break; | |
2584 | ||
2585 | ! case 98: /* case_command: CASE WORD newline_list IN newline_list ESAC */ | |
2586 | ! #line 948 "/usr/local/src/chet/src/bash/src/parse.y" | |
2587 | { | |
2588 | (yyval.command) = make_case_command ((yyvsp[-4].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); | |
2589 | if (word_top > 0) word_top--; | |
2590 | } | |
2591 | ! #line 2862 "y.tab.c" | |
2592 | break; | |
2593 | ||
2594 | ! case 99: /* case_command: CASE WORD newline_list IN case_clause_sequence newline_list ESAC */ | |
2595 | ! #line 953 "/usr/local/src/chet/src/bash/src/parse.y" | |
2596 | { | |
2597 | (yyval.command) = make_case_command ((yyvsp[-5].word), (yyvsp[-2].pattern), word_lineno[word_top]); | |
2598 | if (word_top > 0) word_top--; | |
2599 | } | |
2600 | ! #line 2871 "y.tab.c" | |
2601 | break; | |
2602 | ||
2603 | ! case 100: /* case_command: CASE WORD newline_list IN case_clause ESAC */ | |
2604 | ! #line 958 "/usr/local/src/chet/src/bash/src/parse.y" | |
2605 | { | |
2606 | (yyval.command) = make_case_command ((yyvsp[-4].word), (yyvsp[-1].pattern), word_lineno[word_top]); | |
2607 | if (word_top > 0) word_top--; | |
2608 | } | |
2609 | ! #line 2880 "y.tab.c" | |
2610 | break; | |
2611 | ||
2612 | ! case 101: /* function_def: WORD '(' ')' newline_list function_body */ | |
2613 | ! #line 965 "/usr/local/src/chet/src/bash/src/parse.y" | |
2614 | { (yyval.command) = make_function_def ((yyvsp[-4].word), (yyvsp[0].command), function_dstart, function_bstart); } | |
2615 | ! #line 2886 "y.tab.c" | |
2616 | break; | |
2617 | ||
2618 | ! case 102: /* function_def: FUNCTION WORD '(' ')' newline_list function_body */ | |
2619 | ! #line 967 "/usr/local/src/chet/src/bash/src/parse.y" | |
2620 | { (yyval.command) = make_function_def ((yyvsp[-4].word), (yyvsp[0].command), function_dstart, function_bstart); } | |
2621 | ! #line 2892 "y.tab.c" | |
2622 | break; | |
2623 | ||
2624 | ! case 103: /* function_def: FUNCTION WORD function_body */ | |
2625 | ! #line 969 "/usr/local/src/chet/src/bash/src/parse.y" | |
2626 | { (yyval.command) = make_function_def ((yyvsp[-1].word), (yyvsp[0].command), function_dstart, function_bstart); } | |
2627 | ! #line 2898 "y.tab.c" | |
2628 | break; | |
2629 | ||
2630 | ! case 104: /* function_def: FUNCTION WORD '\n' newline_list function_body */ | |
2631 | ! #line 971 "/usr/local/src/chet/src/bash/src/parse.y" | |
2632 | { (yyval.command) = make_function_def ((yyvsp[-3].word), (yyvsp[0].command), function_dstart, function_bstart); } | |
2633 | ! #line 2904 "y.tab.c" | |
2634 | break; | |
2635 | ||
2636 | ! case 105: /* function_body: shell_command */ | |
2637 | ! #line 975 "/usr/local/src/chet/src/bash/src/parse.y" | |
2638 | { (yyval.command) = (yyvsp[0].command); } | |
2639 | ! #line 2910 "y.tab.c" | |
2640 | break; | |
2641 | ||
2642 | ! case 106: /* function_body: shell_command redirection_list */ | |
2643 | ! #line 977 "/usr/local/src/chet/src/bash/src/parse.y" | |
2644 | { | |
2645 | COMMAND *tc; | |
2646 | *************** | |
2647 | *** 2921,2963 **** | |
2648 | (yyval.command) = (yyvsp[-1].command); | |
2649 | } | |
2650 | ! #line 2924 "y.tab.c" | |
2651 | break; | |
2652 | ||
2653 | ! case 106: /* subshell: '(' compound_list ')' */ | |
2654 | ! #line 993 "/usr/local/src/chet/src/bash/src/parse.y" | |
2655 | { | |
2656 | (yyval.command) = make_subshell_command ((yyvsp[-1].command)); | |
2657 | (yyval.command)->flags |= CMD_WANT_SUBSHELL; | |
2658 | } | |
2659 | ! #line 2933 "y.tab.c" | |
2660 | break; | |
2661 | ||
2662 | ! case 107: /* comsub: DOLPAREN compound_list ')' */ | |
2663 | ! #line 1000 "/usr/local/src/chet/src/bash/src/parse.y" | |
2664 | { | |
2665 | (yyval.command) = (yyvsp[-1].command); | |
2666 | } | |
2667 | ! #line 2941 "y.tab.c" | |
2668 | break; | |
2669 | ||
2670 | ! case 108: /* comsub: DOLPAREN newline_list ')' */ | |
2671 | ! #line 1004 "/usr/local/src/chet/src/bash/src/parse.y" | |
2672 | { | |
2673 | (yyval.command) = (COMMAND *)NULL; | |
2674 | } | |
2675 | ! #line 2949 "y.tab.c" | |
2676 | break; | |
2677 | ||
2678 | ! case 109: /* coproc: COPROC shell_command */ | |
2679 | ! #line 1010 "/usr/local/src/chet/src/bash/src/parse.y" | |
2680 | { | |
2681 | (yyval.command) = make_coproc_command ("COPROC", (yyvsp[0].command)); | |
2682 | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; | |
2683 | } | |
2684 | ! #line 2958 "y.tab.c" | |
2685 | break; | |
2686 | ||
2687 | ! case 110: /* coproc: COPROC shell_command redirection_list */ | |
2688 | ! #line 1015 "/usr/local/src/chet/src/bash/src/parse.y" | |
2689 | { | |
2690 | COMMAND *tc; | |
2691 | --- 2940,2982 ---- | |
2692 | (yyval.command) = (yyvsp[-1].command); | |
2693 | } | |
2694 | ! #line 2943 "y.tab.c" | |
2695 | break; | |
2696 | ||
2697 | ! case 107: /* subshell: '(' compound_list ')' */ | |
2698 | ! #line 1008 "/usr/local/src/chet/src/bash/src/parse.y" | |
2699 | { | |
2700 | (yyval.command) = make_subshell_command ((yyvsp[-1].command)); | |
2701 | (yyval.command)->flags |= CMD_WANT_SUBSHELL; | |
2702 | } | |
2703 | ! #line 2952 "y.tab.c" | |
2704 | break; | |
2705 | ||
2706 | ! case 108: /* comsub: DOLPAREN compound_list ')' */ | |
2707 | ! #line 1015 "/usr/local/src/chet/src/bash/src/parse.y" | |
2708 | { | |
2709 | (yyval.command) = (yyvsp[-1].command); | |
2710 | } | |
2711 | ! #line 2960 "y.tab.c" | |
2712 | break; | |
2713 | ||
2714 | ! case 109: /* comsub: DOLPAREN newline_list ')' */ | |
2715 | ! #line 1019 "/usr/local/src/chet/src/bash/src/parse.y" | |
2716 | { | |
2717 | (yyval.command) = (COMMAND *)NULL; | |
2718 | } | |
2719 | ! #line 2968 "y.tab.c" | |
2720 | break; | |
2721 | ||
2722 | ! case 110: /* coproc: COPROC shell_command */ | |
2723 | ! #line 1025 "/usr/local/src/chet/src/bash/src/parse.y" | |
2724 | { | |
2725 | (yyval.command) = make_coproc_command ("COPROC", (yyvsp[0].command)); | |
2726 | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; | |
2727 | } | |
2728 | ! #line 2977 "y.tab.c" | |
2729 | break; | |
2730 | ||
2731 | ! case 111: /* coproc: COPROC shell_command redirection_list */ | |
2732 | ! #line 1030 "/usr/local/src/chet/src/bash/src/parse.y" | |
2733 | { | |
2734 | COMMAND *tc; | |
2735 | *************** | |
2736 | *** 2976,2993 **** | |
2737 | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; | |
2738 | } | |
2739 | ! #line 2979 "y.tab.c" | |
2740 | break; | |
2741 | ||
2742 | ! case 111: /* coproc: COPROC WORD shell_command */ | |
2743 | ! #line 1032 "/usr/local/src/chet/src/bash/src/parse.y" | |
2744 | { | |
2745 | (yyval.command) = make_coproc_command ((yyvsp[-1].word)->word, (yyvsp[0].command)); | |
2746 | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; | |
2747 | } | |
2748 | ! #line 2988 "y.tab.c" | |
2749 | break; | |
2750 | ||
2751 | ! case 112: /* coproc: COPROC WORD shell_command redirection_list */ | |
2752 | ! #line 1037 "/usr/local/src/chet/src/bash/src/parse.y" | |
2753 | { | |
2754 | COMMAND *tc; | |
2755 | --- 2995,3012 ---- | |
2756 | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; | |
2757 | } | |
2758 | ! #line 2998 "y.tab.c" | |
2759 | break; | |
2760 | ||
2761 | ! case 112: /* coproc: COPROC WORD shell_command */ | |
2762 | ! #line 1047 "/usr/local/src/chet/src/bash/src/parse.y" | |
2763 | { | |
2764 | (yyval.command) = make_coproc_command ((yyvsp[-1].word)->word, (yyvsp[0].command)); | |
2765 | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; | |
2766 | } | |
2767 | ! #line 3007 "y.tab.c" | |
2768 | break; | |
2769 | ||
2770 | ! case 113: /* coproc: COPROC WORD shell_command redirection_list */ | |
2771 | ! #line 1052 "/usr/local/src/chet/src/bash/src/parse.y" | |
2772 | { | |
2773 | COMMAND *tc; | |
2774 | *************** | |
2775 | *** 3006,3155 **** | |
2776 | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; | |
2777 | } | |
2778 | ! #line 3009 "y.tab.c" | |
2779 | break; | |
2780 | ||
2781 | ! case 113: /* coproc: COPROC simple_command */ | |
2782 | ! #line 1054 "/usr/local/src/chet/src/bash/src/parse.y" | |
2783 | { | |
2784 | (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[0].command))); | |
2785 | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; | |
2786 | } | |
2787 | ! #line 3018 "y.tab.c" | |
2788 | break; | |
2789 | ||
2790 | ! case 114: /* if_command: IF compound_list THEN compound_list FI */ | |
2791 | ! #line 1061 "/usr/local/src/chet/src/bash/src/parse.y" | |
2792 | { (yyval.command) = make_if_command ((yyvsp[-3].command), (yyvsp[-1].command), (COMMAND *)NULL); } | |
2793 | ! #line 3024 "y.tab.c" | |
2794 | break; | |
2795 | ||
2796 | ! case 115: /* if_command: IF compound_list THEN compound_list ELSE compound_list FI */ | |
2797 | ! #line 1063 "/usr/local/src/chet/src/bash/src/parse.y" | |
2798 | { (yyval.command) = make_if_command ((yyvsp[-5].command), (yyvsp[-3].command), (yyvsp[-1].command)); } | |
2799 | ! #line 3030 "y.tab.c" | |
2800 | break; | |
2801 | ||
2802 | ! case 116: /* if_command: IF compound_list THEN compound_list elif_clause FI */ | |
2803 | ! #line 1065 "/usr/local/src/chet/src/bash/src/parse.y" | |
2804 | { (yyval.command) = make_if_command ((yyvsp[-4].command), (yyvsp[-2].command), (yyvsp[-1].command)); } | |
2805 | ! #line 3036 "y.tab.c" | |
2806 | break; | |
2807 | ||
2808 | ! case 117: /* group_command: '{' compound_list '}' */ | |
2809 | ! #line 1070 "/usr/local/src/chet/src/bash/src/parse.y" | |
2810 | { (yyval.command) = make_group_command ((yyvsp[-1].command)); } | |
2811 | ! #line 3042 "y.tab.c" | |
2812 | break; | |
2813 | ||
2814 | ! case 118: /* arith_command: ARITH_CMD */ | |
2815 | ! #line 1074 "/usr/local/src/chet/src/bash/src/parse.y" | |
2816 | { (yyval.command) = make_arith_command ((yyvsp[0].word_list)); } | |
2817 | ! #line 3048 "y.tab.c" | |
2818 | break; | |
2819 | ||
2820 | ! case 119: /* cond_command: COND_START COND_CMD COND_END */ | |
2821 | ! #line 1078 "/usr/local/src/chet/src/bash/src/parse.y" | |
2822 | { (yyval.command) = (yyvsp[-1].command); } | |
2823 | ! #line 3054 "y.tab.c" | |
2824 | break; | |
2825 | ||
2826 | ! case 120: /* elif_clause: ELIF compound_list THEN compound_list */ | |
2827 | ! #line 1082 "/usr/local/src/chet/src/bash/src/parse.y" | |
2828 | { (yyval.command) = make_if_command ((yyvsp[-2].command), (yyvsp[0].command), (COMMAND *)NULL); } | |
2829 | ! #line 3060 "y.tab.c" | |
2830 | break; | |
2831 | ||
2832 | ! case 121: /* elif_clause: ELIF compound_list THEN compound_list ELSE compound_list */ | |
2833 | ! #line 1084 "/usr/local/src/chet/src/bash/src/parse.y" | |
2834 | { (yyval.command) = make_if_command ((yyvsp[-4].command), (yyvsp[-2].command), (yyvsp[0].command)); } | |
2835 | ! #line 3066 "y.tab.c" | |
2836 | break; | |
2837 | ||
2838 | ! case 122: /* elif_clause: ELIF compound_list THEN compound_list elif_clause */ | |
2839 | ! #line 1086 "/usr/local/src/chet/src/bash/src/parse.y" | |
2840 | { (yyval.command) = make_if_command ((yyvsp[-3].command), (yyvsp[-1].command), (yyvsp[0].command)); } | |
2841 | ! #line 3072 "y.tab.c" | |
2842 | break; | |
2843 | ||
2844 | ! case 124: /* case_clause: case_clause_sequence pattern_list */ | |
2845 | ! #line 1091 "/usr/local/src/chet/src/bash/src/parse.y" | |
2846 | { (yyvsp[0].pattern)->next = (yyvsp[-1].pattern); (yyval.pattern) = (yyvsp[0].pattern); } | |
2847 | ! #line 3078 "y.tab.c" | |
2848 | break; | |
2849 | ||
2850 | ! case 125: /* pattern_list: newline_list pattern ')' compound_list */ | |
2851 | ! #line 1095 "/usr/local/src/chet/src/bash/src/parse.y" | |
2852 | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (yyvsp[0].command)); } | |
2853 | ! #line 3084 "y.tab.c" | |
2854 | break; | |
2855 | ||
2856 | ! case 126: /* pattern_list: newline_list pattern ')' newline_list */ | |
2857 | ! #line 1097 "/usr/local/src/chet/src/bash/src/parse.y" | |
2858 | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (COMMAND *)NULL); } | |
2859 | ! #line 3090 "y.tab.c" | |
2860 | break; | |
2861 | ||
2862 | ! case 127: /* pattern_list: newline_list '(' pattern ')' compound_list */ | |
2863 | ! #line 1099 "/usr/local/src/chet/src/bash/src/parse.y" | |
2864 | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (yyvsp[0].command)); } | |
2865 | ! #line 3096 "y.tab.c" | |
2866 | break; | |
2867 | ||
2868 | ! case 128: /* pattern_list: newline_list '(' pattern ')' newline_list */ | |
2869 | ! #line 1101 "/usr/local/src/chet/src/bash/src/parse.y" | |
2870 | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (COMMAND *)NULL); } | |
2871 | ! #line 3102 "y.tab.c" | |
2872 | break; | |
2873 | ||
2874 | ! case 129: /* case_clause_sequence: pattern_list SEMI_SEMI */ | |
2875 | ! #line 1105 "/usr/local/src/chet/src/bash/src/parse.y" | |
2876 | { (yyval.pattern) = (yyvsp[-1].pattern); } | |
2877 | ! #line 3108 "y.tab.c" | |
2878 | break; | |
2879 | ||
2880 | ! case 130: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_SEMI */ | |
2881 | ! #line 1107 "/usr/local/src/chet/src/bash/src/parse.y" | |
2882 | { (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } | |
2883 | ! #line 3114 "y.tab.c" | |
2884 | break; | |
2885 | ||
2886 | ! case 131: /* case_clause_sequence: pattern_list SEMI_AND */ | |
2887 | ! #line 1109 "/usr/local/src/chet/src/bash/src/parse.y" | |
2888 | { (yyvsp[-1].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[-1].pattern); } | |
2889 | ! #line 3120 "y.tab.c" | |
2890 | break; | |
2891 | ||
2892 | ! case 132: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_AND */ | |
2893 | ! #line 1111 "/usr/local/src/chet/src/bash/src/parse.y" | |
2894 | { (yyvsp[-1].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } | |
2895 | ! #line 3126 "y.tab.c" | |
2896 | break; | |
2897 | ||
2898 | ! case 133: /* case_clause_sequence: pattern_list SEMI_SEMI_AND */ | |
2899 | ! #line 1113 "/usr/local/src/chet/src/bash/src/parse.y" | |
2900 | { (yyvsp[-1].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[-1].pattern); } | |
2901 | ! #line 3132 "y.tab.c" | |
2902 | break; | |
2903 | ||
2904 | ! case 134: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_SEMI_AND */ | |
2905 | ! #line 1115 "/usr/local/src/chet/src/bash/src/parse.y" | |
2906 | { (yyvsp[-1].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } | |
2907 | ! #line 3138 "y.tab.c" | |
2908 | break; | |
2909 | ||
2910 | ! case 135: /* pattern: WORD */ | |
2911 | ! #line 1119 "/usr/local/src/chet/src/bash/src/parse.y" | |
2912 | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (WORD_LIST *)NULL); } | |
2913 | ! #line 3144 "y.tab.c" | |
2914 | break; | |
2915 | ||
2916 | ! case 136: /* pattern: pattern '|' WORD */ | |
2917 | ! #line 1121 "/usr/local/src/chet/src/bash/src/parse.y" | |
2918 | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (yyvsp[-2].word_list)); } | |
2919 | ! #line 3150 "y.tab.c" | |
2920 | break; | |
2921 | ||
2922 | ! case 137: /* compound_list: newline_list list0 */ | |
2923 | ! #line 1130 "/usr/local/src/chet/src/bash/src/parse.y" | |
2924 | { | |
2925 | (yyval.command) = (yyvsp[0].command); | |
2926 | --- 3025,3174 ---- | |
2927 | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; | |
2928 | } | |
2929 | ! #line 3028 "y.tab.c" | |
2930 | break; | |
2931 | ||
2932 | ! case 114: /* coproc: COPROC simple_command */ | |
2933 | ! #line 1069 "/usr/local/src/chet/src/bash/src/parse.y" | |
2934 | { | |
2935 | (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[0].command))); | |
2936 | (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; | |
2937 | } | |
2938 | ! #line 3037 "y.tab.c" | |
2939 | break; | |
2940 | ||
2941 | ! case 115: /* if_command: IF compound_list THEN compound_list FI */ | |
2942 | ! #line 1076 "/usr/local/src/chet/src/bash/src/parse.y" | |
2943 | { (yyval.command) = make_if_command ((yyvsp[-3].command), (yyvsp[-1].command), (COMMAND *)NULL); } | |
2944 | ! #line 3043 "y.tab.c" | |
2945 | break; | |
2946 | ||
2947 | ! case 116: /* if_command: IF compound_list THEN compound_list ELSE compound_list FI */ | |
2948 | ! #line 1078 "/usr/local/src/chet/src/bash/src/parse.y" | |
2949 | { (yyval.command) = make_if_command ((yyvsp[-5].command), (yyvsp[-3].command), (yyvsp[-1].command)); } | |
2950 | ! #line 3049 "y.tab.c" | |
2951 | break; | |
2952 | ||
2953 | ! case 117: /* if_command: IF compound_list THEN compound_list elif_clause FI */ | |
2954 | ! #line 1080 "/usr/local/src/chet/src/bash/src/parse.y" | |
2955 | { (yyval.command) = make_if_command ((yyvsp[-4].command), (yyvsp[-2].command), (yyvsp[-1].command)); } | |
2956 | ! #line 3055 "y.tab.c" | |
2957 | break; | |
2958 | ||
2959 | ! case 118: /* group_command: '{' compound_list '}' */ | |
2960 | ! #line 1085 "/usr/local/src/chet/src/bash/src/parse.y" | |
2961 | { (yyval.command) = make_group_command ((yyvsp[-1].command)); } | |
2962 | ! #line 3061 "y.tab.c" | |
2963 | break; | |
2964 | ||
2965 | ! case 119: /* arith_command: ARITH_CMD */ | |
2966 | ! #line 1089 "/usr/local/src/chet/src/bash/src/parse.y" | |
2967 | { (yyval.command) = make_arith_command ((yyvsp[0].word_list)); } | |
2968 | ! #line 3067 "y.tab.c" | |
2969 | break; | |
2970 | ||
2971 | ! case 120: /* cond_command: COND_START COND_CMD COND_END */ | |
2972 | ! #line 1093 "/usr/local/src/chet/src/bash/src/parse.y" | |
2973 | { (yyval.command) = (yyvsp[-1].command); } | |
2974 | ! #line 3073 "y.tab.c" | |
2975 | break; | |
2976 | ||
2977 | ! case 121: /* elif_clause: ELIF compound_list THEN compound_list */ | |
2978 | ! #line 1097 "/usr/local/src/chet/src/bash/src/parse.y" | |
2979 | { (yyval.command) = make_if_command ((yyvsp[-2].command), (yyvsp[0].command), (COMMAND *)NULL); } | |
2980 | ! #line 3079 "y.tab.c" | |
2981 | break; | |
2982 | ||
2983 | ! case 122: /* elif_clause: ELIF compound_list THEN compound_list ELSE compound_list */ | |
2984 | ! #line 1099 "/usr/local/src/chet/src/bash/src/parse.y" | |
2985 | { (yyval.command) = make_if_command ((yyvsp[-4].command), (yyvsp[-2].command), (yyvsp[0].command)); } | |
2986 | ! #line 3085 "y.tab.c" | |
2987 | break; | |
2988 | ||
2989 | ! case 123: /* elif_clause: ELIF compound_list THEN compound_list elif_clause */ | |
2990 | ! #line 1101 "/usr/local/src/chet/src/bash/src/parse.y" | |
2991 | { (yyval.command) = make_if_command ((yyvsp[-3].command), (yyvsp[-1].command), (yyvsp[0].command)); } | |
2992 | ! #line 3091 "y.tab.c" | |
2993 | break; | |
2994 | ||
2995 | ! case 125: /* case_clause: case_clause_sequence pattern_list */ | |
2996 | ! #line 1106 "/usr/local/src/chet/src/bash/src/parse.y" | |
2997 | { (yyvsp[0].pattern)->next = (yyvsp[-1].pattern); (yyval.pattern) = (yyvsp[0].pattern); } | |
2998 | ! #line 3097 "y.tab.c" | |
2999 | break; | |
3000 | ||
3001 | ! case 126: /* pattern_list: newline_list pattern ')' compound_list */ | |
3002 | ! #line 1110 "/usr/local/src/chet/src/bash/src/parse.y" | |
3003 | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (yyvsp[0].command)); } | |
3004 | ! #line 3103 "y.tab.c" | |
3005 | break; | |
3006 | ||
3007 | ! case 127: /* pattern_list: newline_list pattern ')' newline_list */ | |
3008 | ! #line 1112 "/usr/local/src/chet/src/bash/src/parse.y" | |
3009 | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (COMMAND *)NULL); } | |
3010 | ! #line 3109 "y.tab.c" | |
3011 | break; | |
3012 | ||
3013 | ! case 128: /* pattern_list: newline_list '(' pattern ')' compound_list */ | |
3014 | ! #line 1114 "/usr/local/src/chet/src/bash/src/parse.y" | |
3015 | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (yyvsp[0].command)); } | |
3016 | ! #line 3115 "y.tab.c" | |
3017 | break; | |
3018 | ||
3019 | ! case 129: /* pattern_list: newline_list '(' pattern ')' newline_list */ | |
3020 | ! #line 1116 "/usr/local/src/chet/src/bash/src/parse.y" | |
3021 | { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (COMMAND *)NULL); } | |
3022 | ! #line 3121 "y.tab.c" | |
3023 | break; | |
3024 | ||
3025 | ! case 130: /* case_clause_sequence: pattern_list SEMI_SEMI */ | |
3026 | ! #line 1120 "/usr/local/src/chet/src/bash/src/parse.y" | |
3027 | { (yyval.pattern) = (yyvsp[-1].pattern); } | |
3028 | ! #line 3127 "y.tab.c" | |
3029 | break; | |
3030 | ||
3031 | ! case 131: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_SEMI */ | |
3032 | ! #line 1122 "/usr/local/src/chet/src/bash/src/parse.y" | |
3033 | { (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } | |
3034 | ! #line 3133 "y.tab.c" | |
3035 | break; | |
3036 | ||
3037 | ! case 132: /* case_clause_sequence: pattern_list SEMI_AND */ | |
3038 | ! #line 1124 "/usr/local/src/chet/src/bash/src/parse.y" | |
3039 | { (yyvsp[-1].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[-1].pattern); } | |
3040 | ! #line 3139 "y.tab.c" | |
3041 | break; | |
3042 | ||
3043 | ! case 133: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_AND */ | |
3044 | ! #line 1126 "/usr/local/src/chet/src/bash/src/parse.y" | |
3045 | { (yyvsp[-1].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } | |
3046 | ! #line 3145 "y.tab.c" | |
3047 | break; | |
3048 | ||
3049 | ! case 134: /* case_clause_sequence: pattern_list SEMI_SEMI_AND */ | |
3050 | ! #line 1128 "/usr/local/src/chet/src/bash/src/parse.y" | |
3051 | { (yyvsp[-1].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[-1].pattern); } | |
3052 | ! #line 3151 "y.tab.c" | |
3053 | break; | |
3054 | ||
3055 | ! case 135: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_SEMI_AND */ | |
3056 | ! #line 1130 "/usr/local/src/chet/src/bash/src/parse.y" | |
3057 | { (yyvsp[-1].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } | |
3058 | ! #line 3157 "y.tab.c" | |
3059 | break; | |
3060 | ||
3061 | ! case 136: /* pattern: WORD */ | |
3062 | ! #line 1134 "/usr/local/src/chet/src/bash/src/parse.y" | |
3063 | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (WORD_LIST *)NULL); } | |
3064 | ! #line 3163 "y.tab.c" | |
3065 | break; | |
3066 | ||
3067 | ! case 137: /* pattern: pattern '|' WORD */ | |
3068 | ! #line 1136 "/usr/local/src/chet/src/bash/src/parse.y" | |
3069 | { (yyval.word_list) = make_word_list ((yyvsp[0].word), (yyvsp[-2].word_list)); } | |
3070 | ! #line 3169 "y.tab.c" | |
3071 | break; | |
3072 | ||
3073 | ! case 138: /* compound_list: newline_list list0 */ | |
3074 | ! #line 1145 "/usr/local/src/chet/src/bash/src/parse.y" | |
3075 | { | |
3076 | (yyval.command) = (yyvsp[0].command); | |
3077 | *************** | |
3078 | *** 3157,3173 **** | |
3079 | gather_here_documents (); | |
3080 | } | |
3081 | ! #line 3160 "y.tab.c" | |
3082 | break; | |
3083 | ||
3084 | ! case 138: /* compound_list: newline_list list1 */ | |
3085 | ! #line 1136 "/usr/local/src/chet/src/bash/src/parse.y" | |
3086 | { | |
3087 | (yyval.command) = (yyvsp[0].command); | |
3088 | } | |
3089 | ! #line 3168 "y.tab.c" | |
3090 | break; | |
3091 | ||
3092 | ! case 140: /* list0: list1 '&' newline_list */ | |
3093 | ! #line 1143 "/usr/local/src/chet/src/bash/src/parse.y" | |
3094 | { | |
3095 | if ((yyvsp[-2].command)->type == cm_connection) | |
3096 | --- 3176,3192 ---- | |
3097 | gather_here_documents (); | |
3098 | } | |
3099 | ! #line 3179 "y.tab.c" | |
3100 | break; | |
3101 | ||
3102 | ! case 139: /* compound_list: newline_list list1 */ | |
3103 | ! #line 1151 "/usr/local/src/chet/src/bash/src/parse.y" | |
3104 | { | |
3105 | (yyval.command) = (yyvsp[0].command); | |
3106 | } | |
3107 | ! #line 3187 "y.tab.c" | |
3108 | break; | |
3109 | ||
3110 | ! case 141: /* list0: list1 '&' newline_list */ | |
3111 | ! #line 1158 "/usr/local/src/chet/src/bash/src/parse.y" | |
3112 | { | |
3113 | if ((yyvsp[-2].command)->type == cm_connection) | |
3114 | *************** | |
3115 | *** 3176,3196 **** | |
3116 | (yyval.command) = command_connect ((yyvsp[-2].command), (COMMAND *)NULL, '&'); | |
3117 | } | |
3118 | ! #line 3179 "y.tab.c" | |
3119 | break; | |
3120 | ||
3121 | ! case 142: /* list1: list1 AND_AND newline_list list1 */ | |
3122 | ! #line 1154 "/usr/local/src/chet/src/bash/src/parse.y" | |
3123 | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), AND_AND); } | |
3124 | ! #line 3185 "y.tab.c" | |
3125 | break; | |
3126 | ||
3127 | ! case 143: /* list1: list1 OR_OR newline_list list1 */ | |
3128 | ! #line 1156 "/usr/local/src/chet/src/bash/src/parse.y" | |
3129 | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), OR_OR); } | |
3130 | ! #line 3191 "y.tab.c" | |
3131 | break; | |
3132 | ||
3133 | ! case 144: /* list1: list1 '&' newline_list list1 */ | |
3134 | ! #line 1158 "/usr/local/src/chet/src/bash/src/parse.y" | |
3135 | { | |
3136 | if ((yyvsp[-3].command)->type == cm_connection) | |
3137 | --- 3195,3215 ---- | |
3138 | (yyval.command) = command_connect ((yyvsp[-2].command), (COMMAND *)NULL, '&'); | |
3139 | } | |
3140 | ! #line 3198 "y.tab.c" | |
3141 | break; | |
3142 | ||
3143 | ! case 143: /* list1: list1 AND_AND newline_list list1 */ | |
3144 | ! #line 1169 "/usr/local/src/chet/src/bash/src/parse.y" | |
3145 | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), AND_AND); } | |
3146 | ! #line 3204 "y.tab.c" | |
3147 | break; | |
3148 | ||
3149 | ! case 144: /* list1: list1 OR_OR newline_list list1 */ | |
3150 | ! #line 1171 "/usr/local/src/chet/src/bash/src/parse.y" | |
3151 | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), OR_OR); } | |
3152 | ! #line 3210 "y.tab.c" | |
3153 | break; | |
3154 | ||
3155 | ! case 145: /* list1: list1 '&' newline_list list1 */ | |
3156 | ! #line 1173 "/usr/local/src/chet/src/bash/src/parse.y" | |
3157 | { | |
3158 | if ((yyvsp[-3].command)->type == cm_connection) | |
3159 | *************** | |
3160 | *** 3199,3213 **** | |
3161 | (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '&'); | |
3162 | } | |
3163 | ! #line 3202 "y.tab.c" | |
3164 | break; | |
3165 | ||
3166 | ! case 145: /* list1: list1 ';' newline_list list1 */ | |
3167 | ! #line 1165 "/usr/local/src/chet/src/bash/src/parse.y" | |
3168 | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';'); } | |
3169 | ! #line 3208 "y.tab.c" | |
3170 | break; | |
3171 | ||
3172 | ! case 146: /* list1: list1 '\n' newline_list list1 */ | |
3173 | ! #line 1167 "/usr/local/src/chet/src/bash/src/parse.y" | |
3174 | { | |
3175 | if (parser_state & PST_CMDSUBST) | |
3176 | --- 3218,3232 ---- | |
3177 | (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '&'); | |
3178 | } | |
3179 | ! #line 3221 "y.tab.c" | |
3180 | break; | |
3181 | ||
3182 | ! case 146: /* list1: list1 ';' newline_list list1 */ | |
3183 | ! #line 1180 "/usr/local/src/chet/src/bash/src/parse.y" | |
3184 | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';'); } | |
3185 | ! #line 3227 "y.tab.c" | |
3186 | break; | |
3187 | ||
3188 | ! case 147: /* list1: list1 '\n' newline_list list1 */ | |
3189 | ! #line 1182 "/usr/local/src/chet/src/bash/src/parse.y" | |
3190 | { | |
3191 | if (parser_state & PST_CMDSUBST) | |
3192 | *************** | |
3193 | *** 3216,3248 **** | |
3194 | (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';'); | |
3195 | } | |
3196 | ! #line 3219 "y.tab.c" | |
3197 | break; | |
3198 | ||
3199 | ! case 147: /* list1: pipeline_command */ | |
3200 | ! #line 1174 "/usr/local/src/chet/src/bash/src/parse.y" | |
3201 | { (yyval.command) = (yyvsp[0].command); } | |
3202 | ! #line 3225 "y.tab.c" | |
3203 | break; | |
3204 | ||
3205 | ! case 150: /* list_terminator: '\n' */ | |
3206 | ! #line 1182 "/usr/local/src/chet/src/bash/src/parse.y" | |
3207 | { (yyval.number) = '\n'; } | |
3208 | ! #line 3231 "y.tab.c" | |
3209 | break; | |
3210 | ||
3211 | ! case 151: /* list_terminator: ';' */ | |
3212 | ! #line 1184 "/usr/local/src/chet/src/bash/src/parse.y" | |
3213 | { (yyval.number) = ';'; } | |
3214 | ! #line 3237 "y.tab.c" | |
3215 | break; | |
3216 | ||
3217 | ! case 152: /* list_terminator: yacc_EOF */ | |
3218 | ! #line 1186 "/usr/local/src/chet/src/bash/src/parse.y" | |
3219 | { (yyval.number) = yacc_EOF; } | |
3220 | ! #line 3243 "y.tab.c" | |
3221 | break; | |
3222 | ||
3223 | ! case 155: /* simple_list: simple_list1 */ | |
3224 | ! #line 1200 "/usr/local/src/chet/src/bash/src/parse.y" | |
3225 | { | |
3226 | (yyval.command) = (yyvsp[0].command); | |
3227 | --- 3235,3267 ---- | |
3228 | (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';'); | |
3229 | } | |
3230 | ! #line 3238 "y.tab.c" | |
3231 | break; | |
3232 | ||
3233 | ! case 148: /* list1: pipeline_command */ | |
3234 | ! #line 1189 "/usr/local/src/chet/src/bash/src/parse.y" | |
3235 | { (yyval.command) = (yyvsp[0].command); } | |
3236 | ! #line 3244 "y.tab.c" | |
3237 | break; | |
3238 | ||
3239 | ! case 151: /* list_terminator: '\n' */ | |
3240 | ! #line 1197 "/usr/local/src/chet/src/bash/src/parse.y" | |
3241 | { (yyval.number) = '\n'; } | |
3242 | ! #line 3250 "y.tab.c" | |
3243 | break; | |
3244 | ||
3245 | ! case 152: /* list_terminator: ';' */ | |
3246 | ! #line 1199 "/usr/local/src/chet/src/bash/src/parse.y" | |
3247 | { (yyval.number) = ';'; } | |
3248 | ! #line 3256 "y.tab.c" | |
3249 | break; | |
3250 | ||
3251 | ! case 153: /* list_terminator: yacc_EOF */ | |
3252 | ! #line 1201 "/usr/local/src/chet/src/bash/src/parse.y" | |
3253 | { (yyval.number) = yacc_EOF; } | |
3254 | ! #line 3262 "y.tab.c" | |
3255 | break; | |
3256 | ||
3257 | ! case 156: /* simple_list: simple_list1 */ | |
3258 | ! #line 1215 "/usr/local/src/chet/src/bash/src/parse.y" | |
3259 | { | |
3260 | (yyval.command) = (yyvsp[0].command); | |
3261 | *************** | |
3262 | *** 3259,3267 **** | |
3263 | } | |
3264 | } | |
3265 | ! #line 3262 "y.tab.c" | |
3266 | break; | |
3267 | ||
3268 | ! case 156: /* simple_list: simple_list1 '&' */ | |
3269 | ! #line 1215 "/usr/local/src/chet/src/bash/src/parse.y" | |
3270 | { | |
3271 | if ((yyvsp[-1].command)->type == cm_connection) | |
3272 | --- 3278,3286 ---- | |
3273 | } | |
3274 | } | |
3275 | ! #line 3281 "y.tab.c" | |
3276 | break; | |
3277 | ||
3278 | ! case 157: /* simple_list: simple_list1 '&' */ | |
3279 | ! #line 1230 "/usr/local/src/chet/src/bash/src/parse.y" | |
3280 | { | |
3281 | if ((yyvsp[-1].command)->type == cm_connection) | |
3282 | *************** | |
3283 | *** 3281,3289 **** | |
3284 | } | |
3285 | } | |
3286 | ! #line 3284 "y.tab.c" | |
3287 | break; | |
3288 | ||
3289 | ! case 157: /* simple_list: simple_list1 ';' */ | |
3290 | ! #line 1233 "/usr/local/src/chet/src/bash/src/parse.y" | |
3291 | { | |
3292 | (yyval.command) = (yyvsp[-1].command); | |
3293 | --- 3300,3308 ---- | |
3294 | } | |
3295 | } | |
3296 | ! #line 3303 "y.tab.c" | |
3297 | break; | |
3298 | ||
3299 | ! case 158: /* simple_list: simple_list1 ';' */ | |
3300 | ! #line 1248 "/usr/local/src/chet/src/bash/src/parse.y" | |
3301 | { | |
3302 | (yyval.command) = (yyvsp[-1].command); | |
3303 | *************** | |
3304 | *** 3300,3320 **** | |
3305 | } | |
3306 | } | |
3307 | ! #line 3303 "y.tab.c" | |
3308 | break; | |
3309 | ||
3310 | ! case 158: /* simple_list1: simple_list1 AND_AND newline_list simple_list1 */ | |
3311 | ! #line 1250 "/usr/local/src/chet/src/bash/src/parse.y" | |
3312 | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), AND_AND); } | |
3313 | ! #line 3309 "y.tab.c" | |
3314 | break; | |
3315 | ||
3316 | ! case 159: /* simple_list1: simple_list1 OR_OR newline_list simple_list1 */ | |
3317 | ! #line 1252 "/usr/local/src/chet/src/bash/src/parse.y" | |
3318 | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), OR_OR); } | |
3319 | ! #line 3315 "y.tab.c" | |
3320 | break; | |
3321 | ||
3322 | ! case 160: /* simple_list1: simple_list1 '&' simple_list1 */ | |
3323 | ! #line 1254 "/usr/local/src/chet/src/bash/src/parse.y" | |
3324 | { | |
3325 | if ((yyvsp[-2].command)->type == cm_connection) | |
3326 | --- 3319,3339 ---- | |
3327 | } | |
3328 | } | |
3329 | ! #line 3322 "y.tab.c" | |
3330 | break; | |
3331 | ||
3332 | ! case 159: /* simple_list1: simple_list1 AND_AND newline_list simple_list1 */ | |
3333 | ! #line 1265 "/usr/local/src/chet/src/bash/src/parse.y" | |
3334 | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), AND_AND); } | |
3335 | ! #line 3328 "y.tab.c" | |
3336 | break; | |
3337 | ||
3338 | ! case 160: /* simple_list1: simple_list1 OR_OR newline_list simple_list1 */ | |
3339 | ! #line 1267 "/usr/local/src/chet/src/bash/src/parse.y" | |
3340 | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), OR_OR); } | |
3341 | ! #line 3334 "y.tab.c" | |
3342 | break; | |
3343 | ||
3344 | ! case 161: /* simple_list1: simple_list1 '&' simple_list1 */ | |
3345 | ! #line 1269 "/usr/local/src/chet/src/bash/src/parse.y" | |
3346 | { | |
3347 | if ((yyvsp[-2].command)->type == cm_connection) | |
3348 | *************** | |
3349 | *** 3323,3349 **** | |
3350 | (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), '&'); | |
3351 | } | |
3352 | ! #line 3326 "y.tab.c" | |
3353 | break; | |
3354 | ||
3355 | ! case 161: /* simple_list1: simple_list1 ';' simple_list1 */ | |
3356 | ! #line 1261 "/usr/local/src/chet/src/bash/src/parse.y" | |
3357 | { (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), ';'); } | |
3358 | ! #line 3332 "y.tab.c" | |
3359 | break; | |
3360 | ||
3361 | ! case 162: /* simple_list1: pipeline_command */ | |
3362 | ! #line 1264 "/usr/local/src/chet/src/bash/src/parse.y" | |
3363 | { (yyval.command) = (yyvsp[0].command); } | |
3364 | ! #line 3338 "y.tab.c" | |
3365 | break; | |
3366 | ||
3367 | ! case 163: /* pipeline_command: pipeline */ | |
3368 | ! #line 1268 "/usr/local/src/chet/src/bash/src/parse.y" | |
3369 | { (yyval.command) = (yyvsp[0].command); } | |
3370 | ! #line 3344 "y.tab.c" | |
3371 | break; | |
3372 | ||
3373 | ! case 164: /* pipeline_command: BANG pipeline_command */ | |
3374 | ! #line 1270 "/usr/local/src/chet/src/bash/src/parse.y" | |
3375 | { | |
3376 | if ((yyvsp[0].command)) | |
3377 | --- 3342,3368 ---- | |
3378 | (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), '&'); | |
3379 | } | |
3380 | ! #line 3345 "y.tab.c" | |
3381 | break; | |
3382 | ||
3383 | ! case 162: /* simple_list1: simple_list1 ';' simple_list1 */ | |
3384 | ! #line 1276 "/usr/local/src/chet/src/bash/src/parse.y" | |
3385 | { (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), ';'); } | |
3386 | ! #line 3351 "y.tab.c" | |
3387 | break; | |
3388 | ||
3389 | ! case 163: /* simple_list1: pipeline_command */ | |
3390 | ! #line 1279 "/usr/local/src/chet/src/bash/src/parse.y" | |
3391 | { (yyval.command) = (yyvsp[0].command); } | |
3392 | ! #line 3357 "y.tab.c" | |
3393 | break; | |
3394 | ||
3395 | ! case 164: /* pipeline_command: pipeline */ | |
3396 | ! #line 1283 "/usr/local/src/chet/src/bash/src/parse.y" | |
3397 | { (yyval.command) = (yyvsp[0].command); } | |
3398 | ! #line 3363 "y.tab.c" | |
3399 | break; | |
3400 | ||
3401 | ! case 165: /* pipeline_command: BANG pipeline_command */ | |
3402 | ! #line 1285 "/usr/local/src/chet/src/bash/src/parse.y" | |
3403 | { | |
3404 | if ((yyvsp[0].command)) | |
3405 | *************** | |
3406 | *** 3351,3359 **** | |
3407 | (yyval.command) = (yyvsp[0].command); | |
3408 | } | |
3409 | ! #line 3354 "y.tab.c" | |
3410 | break; | |
3411 | ||
3412 | ! case 165: /* pipeline_command: timespec pipeline_command */ | |
3413 | ! #line 1276 "/usr/local/src/chet/src/bash/src/parse.y" | |
3414 | { | |
3415 | if ((yyvsp[0].command)) | |
3416 | --- 3370,3378 ---- | |
3417 | (yyval.command) = (yyvsp[0].command); | |
3418 | } | |
3419 | ! #line 3373 "y.tab.c" | |
3420 | break; | |
3421 | ||
3422 | ! case 166: /* pipeline_command: timespec pipeline_command */ | |
3423 | ! #line 1291 "/usr/local/src/chet/src/bash/src/parse.y" | |
3424 | { | |
3425 | if ((yyvsp[0].command)) | |
3426 | *************** | |
3427 | *** 3361,3369 **** | |
3428 | (yyval.command) = (yyvsp[0].command); | |
3429 | } | |
3430 | ! #line 3364 "y.tab.c" | |
3431 | break; | |
3432 | ||
3433 | ! case 166: /* pipeline_command: timespec list_terminator */ | |
3434 | ! #line 1282 "/usr/local/src/chet/src/bash/src/parse.y" | |
3435 | { | |
3436 | ELEMENT x; | |
3437 | --- 3380,3388 ---- | |
3438 | (yyval.command) = (yyvsp[0].command); | |
3439 | } | |
3440 | ! #line 3383 "y.tab.c" | |
3441 | break; | |
3442 | ||
3443 | ! case 167: /* pipeline_command: timespec list_terminator */ | |
3444 | ! #line 1297 "/usr/local/src/chet/src/bash/src/parse.y" | |
3445 | { | |
3446 | ELEMENT x; | |
3447 | *************** | |
3448 | *** 3385,3393 **** | |
3449 | parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */ | |
3450 | } | |
3451 | ! #line 3388 "y.tab.c" | |
3452 | break; | |
3453 | ||
3454 | ! case 167: /* pipeline_command: BANG list_terminator */ | |
3455 | ! #line 1302 "/usr/local/src/chet/src/bash/src/parse.y" | |
3456 | { | |
3457 | ELEMENT x; | |
3458 | --- 3404,3412 ---- | |
3459 | parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */ | |
3460 | } | |
3461 | ! #line 3407 "y.tab.c" | |
3462 | break; | |
3463 | ||
3464 | ! case 168: /* pipeline_command: BANG list_terminator */ | |
3465 | ! #line 1317 "/usr/local/src/chet/src/bash/src/parse.y" | |
3466 | { | |
3467 | ELEMENT x; | |
3468 | *************** | |
3469 | *** 3410,3424 **** | |
3470 | parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */ | |
3471 | } | |
3472 | ! #line 3413 "y.tab.c" | |
3473 | break; | |
3474 | ||
3475 | ! case 168: /* pipeline: pipeline '|' newline_list pipeline */ | |
3476 | ! #line 1325 "/usr/local/src/chet/src/bash/src/parse.y" | |
3477 | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '|'); } | |
3478 | ! #line 3419 "y.tab.c" | |
3479 | break; | |
3480 | ||
3481 | ! case 169: /* pipeline: pipeline BAR_AND newline_list pipeline */ | |
3482 | ! #line 1327 "/usr/local/src/chet/src/bash/src/parse.y" | |
3483 | { | |
3484 | /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ | |
3485 | --- 3429,3443 ---- | |
3486 | parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */ | |
3487 | } | |
3488 | ! #line 3432 "y.tab.c" | |
3489 | break; | |
3490 | ||
3491 | ! case 169: /* pipeline: pipeline '|' newline_list pipeline */ | |
3492 | ! #line 1340 "/usr/local/src/chet/src/bash/src/parse.y" | |
3493 | { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '|'); } | |
3494 | ! #line 3438 "y.tab.c" | |
3495 | break; | |
3496 | ||
3497 | ! case 170: /* pipeline: pipeline BAR_AND newline_list pipeline */ | |
3498 | ! #line 1342 "/usr/local/src/chet/src/bash/src/parse.y" | |
3499 | { | |
3500 | /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ | |
3501 | *************** | |
3502 | *** 3443,3481 **** | |
3503 | (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '|'); | |
3504 | } | |
3505 | ! #line 3446 "y.tab.c" | |
3506 | break; | |
3507 | ||
3508 | ! case 170: /* pipeline: command */ | |
3509 | ! #line 1350 "/usr/local/src/chet/src/bash/src/parse.y" | |
3510 | { (yyval.command) = (yyvsp[0].command); } | |
3511 | ! #line 3452 "y.tab.c" | |
3512 | break; | |
3513 | ||
3514 | ! case 171: /* timespec: TIME */ | |
3515 | ! #line 1354 "/usr/local/src/chet/src/bash/src/parse.y" | |
3516 | { (yyval.number) = CMD_TIME_PIPELINE; } | |
3517 | ! #line 3458 "y.tab.c" | |
3518 | break; | |
3519 | ||
3520 | ! case 172: /* timespec: TIME TIMEOPT */ | |
3521 | ! #line 1356 "/usr/local/src/chet/src/bash/src/parse.y" | |
3522 | { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } | |
3523 | ! #line 3464 "y.tab.c" | |
3524 | break; | |
3525 | ||
3526 | ! case 173: /* timespec: TIME TIMEIGN */ | |
3527 | ! #line 1358 "/usr/local/src/chet/src/bash/src/parse.y" | |
3528 | { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } | |
3529 | ! #line 3470 "y.tab.c" | |
3530 | break; | |
3531 | ||
3532 | ! case 174: /* timespec: TIME TIMEOPT TIMEIGN */ | |
3533 | ! #line 1360 "/usr/local/src/chet/src/bash/src/parse.y" | |
3534 | { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } | |
3535 | ! #line 3476 "y.tab.c" | |
3536 | break; | |
3537 | ||
3538 | ||
3539 | ! #line 3480 "y.tab.c" | |
3540 | ||
3541 | default: break; | |
3542 | --- 3462,3500 ---- | |
3543 | (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '|'); | |
3544 | } | |
3545 | ! #line 3465 "y.tab.c" | |
3546 | break; | |
3547 | ||
3548 | ! case 171: /* pipeline: command */ | |
3549 | ! #line 1365 "/usr/local/src/chet/src/bash/src/parse.y" | |
3550 | { (yyval.command) = (yyvsp[0].command); } | |
3551 | ! #line 3471 "y.tab.c" | |
3552 | break; | |
3553 | ||
3554 | ! case 172: /* timespec: TIME */ | |
3555 | ! #line 1369 "/usr/local/src/chet/src/bash/src/parse.y" | |
3556 | { (yyval.number) = CMD_TIME_PIPELINE; } | |
3557 | ! #line 3477 "y.tab.c" | |
3558 | break; | |
3559 | ||
3560 | ! case 173: /* timespec: TIME TIMEOPT */ | |
3561 | ! #line 1371 "/usr/local/src/chet/src/bash/src/parse.y" | |
3562 | { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } | |
3563 | ! #line 3483 "y.tab.c" | |
3564 | break; | |
3565 | ||
3566 | ! case 174: /* timespec: TIME TIMEIGN */ | |
3567 | ! #line 1373 "/usr/local/src/chet/src/bash/src/parse.y" | |
3568 | { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } | |
3569 | ! #line 3489 "y.tab.c" | |
3570 | break; | |
3571 | ||
3572 | ! case 175: /* timespec: TIME TIMEOPT TIMEIGN */ | |
3573 | ! #line 1375 "/usr/local/src/chet/src/bash/src/parse.y" | |
3574 | { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } | |
3575 | ! #line 3495 "y.tab.c" | |
3576 | break; | |
3577 | ||
3578 | ||
3579 | ! #line 3499 "y.tab.c" | |
3580 | ||
3581 | default: break; | |
3582 | *************** | |
3583 | *** 3670,3674 **** | |
3584 | } | |
3585 | ||
3586 | ! #line 1362 "/usr/local/src/chet/src/bash/src/parse.y" | |
3587 | ||
3588 | ||
3589 | --- 3689,3693 ---- | |
3590 | } | |
3591 | ||
3592 | ! #line 1377 "/usr/local/src/chet/src/bash/src/parse.y" | |
3593 | ||
3594 | ||
3595 | *************** | |
3596 | *** 5209,5215 **** | |
3597 | if (current_token < 0) | |
3598 | #if defined (YYERRCODE) && !defined (YYUNDEF) | |
3599 | ! current_token = YYERRCODE; | |
3600 | #else | |
3601 | ! current_token = YYerror; | |
3602 | #endif | |
3603 | ||
3604 | --- 5228,5234 ---- | |
3605 | if (current_token < 0) | |
3606 | #if defined (YYERRCODE) && !defined (YYUNDEF) | |
3607 | ! current_token = EOF_Reached ? YYEOF : YYERRCODE; | |
3608 | #else | |
3609 | ! current_token = EOF_Reached ? YYEOF : YYUNDEF; | |
3610 | #endif | |
3611 | ||
3612 | *************** | |
3613 | *** 6006,6009 **** | |
3614 | --- 6026,6030 ---- | |
3615 | parser_error (start_lineno, _("unexpected EOF while looking for matching `%c'"), close); | |
3616 | EOF_Reached = 1; /* XXX */ | |
3617 | + parser_state |= PST_NOERROR; /* avoid redundant error message */ | |
3618 | return (&matched_pair_error); | |
3619 | } | |
3620 | *************** | |
3621 | *** 6468,6471 **** | |
3622 | --- 6487,6491 ---- | |
3623 | ||
3624 | /* yyparse() has already called yyerror() and reset_parser() */ | |
3625 | + parser_state |= PST_NOERROR; | |
3626 | return (&matched_pair_error); | |
3627 | } | |
3628 | ||
3629 | *** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 | |
3630 | --- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 | |
3631 | *************** | |
3632 | *** 26,30 **** | |
3633 | looks for to find the patch level (for the sccs version string). */ | |
3634 | ||
3635 | ! #define PATCHLEVEL 17 | |
3636 | ||
3637 | #endif /* _PATCHLEVEL_H_ */ | |
3638 | --- 26,30 ---- | |
3639 | looks for to find the patch level (for the sccs version string). */ | |
3640 | ||
3641 | ! #define PATCHLEVEL 18 | |
3642 | ||
3643 | #endif /* _PATCHLEVEL_H_ */ |