perl/Module-Build-Tiny: update to 0.051 for Perl 5.36 and 5.38
[oi-userland.git] / components / shell / bash / patches / bash52-018.patch
blobd93f112816c0162f55b65e6630daa1e4ea337dfc
1 BASH PATCH REPORT
2 =================
4 Bash-Release: 5.2
5 Patch-ID: bash52-018
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
14 Bug-Description:
16 There are two problems with returning tokens to yyparse() when the shell
17 encounters a syntax error or when it reads EOF.
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.
27 Patch (apply with `patch -p0'):
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 ----
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
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
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
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);
78 ***************
79 *** 4157,4160 ****
80 --- 4172,4176 ----
82 /* yyparse() has already called yyerror() and reset_parser() */
83 + parser_state |= PST_NOERROR;
84 return (&matched_pair_error);
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 ****
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 ----
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
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
118 /* YYMAXUTOK -- Last valid token kind. */
119 ***************
120 *** 1058,1079 ****
121 static const yytype_int16 yyrline[] =
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
142 #endif
143 --- 1058,1079 ----
144 static const yytype_int16 yyrline[] =
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
165 #endif
166 ***************
167 *** 1120,1124 ****
168 #endif
170 ! #define YYPACT_NINF (-152)
172 #define yypact_value_is_default(Yyn) \
173 --- 1120,1124 ----
174 #endif
176 ! #define YYPACT_NINF (-125)
178 #define yypact_value_is_default(Yyn) \
179 ***************
180 *** 1134,1172 ****
181 static const yytype_int16 yypact[] =
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
220 --- 1134,1172 ----
221 static const yytype_int16 yypact[] =
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
260 ***************
261 *** 1176,1214 ****
262 static const yytype_uint8 yydefact[] =
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
301 --- 1176,1214 ----
302 static const yytype_uint8 yydefact[] =
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
341 ***************
342 *** 1216,1223 ****
343 static const yytype_int16 yypgoto[] =
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
351 --- 1216,1223 ----
352 static const yytype_int16 yypgoto[] =
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
360 ***************
361 *** 1225,1232 ****
362 static const yytype_int16 yydefgoto[] =
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
370 --- 1225,1232 ----
371 static const yytype_int16 yydefgoto[] =
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
379 ***************
380 *** 1236,1390 ****
381 static const yytype_int16 yytable[] =
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
460 static const yytype_int16 yycheck[] =
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[] =
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
616 static const yytype_int16 yycheck[] =
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
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
763 ***************
764 *** 1436,1457 ****
765 static const yytype_int8 yyr1[] =
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
787 --- 1436,1457 ----
788 static const yytype_int8 yyr1[] =
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
810 ***************
811 *** 1459,1480 ****
812 static const yytype_int8 yyr2[] =
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
834 --- 1459,1480 ----
835 static const yytype_int8 yyr2[] =
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
857 ***************
858 *** 2019,2025 ****
859 break;
861 ! case 7: /* inputunit: yacc_EOF */
862 #line 456 "/usr/local/src/chet/src/bash/src/parse.y"
864 /* Case of EOF seen by itself. Do ignoreeof or
865 not. */
866 --- 2019,2044 ----
867 break;
869 ! case 7: /* inputunit: error $end */
870 #line 456 "/usr/local/src/chet/src/bash/src/parse.y"
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)
877 + handle_eof_input_unit ();
878 + YYACCEPT;
880 + else
882 + YYABORT;
885 + #line 2038 "y.tab.c"
886 + break;
888 + case 8: /* inputunit: yacc_EOF */
889 + #line 471 "/usr/local/src/chet/src/bash/src/parse.y"
891 /* Case of EOF seen by itself. Do ignoreeof or
892 not. */
893 ***************
894 *** 2028,2048 ****
895 YYACCEPT;
897 ! #line 2031 "y.tab.c"
898 break;
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;
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;
912 ! case 10: /* redirection: '>' WORD */
913 ! #line 472 "/usr/local/src/chet/src/bash/src/parse.y"
915 source.dest = 1;
916 --- 2047,2067 ----
917 YYACCEPT;
919 ! #line 2050 "y.tab.c"
920 break;
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;
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;
934 ! case 11: /* redirection: '>' WORD */
935 ! #line 487 "/usr/local/src/chet/src/bash/src/parse.y"
937 source.dest = 1;
938 ***************
939 *** 2050,2058 ****
940 (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0);
942 ! #line 2053 "y.tab.c"
943 break;
945 ! case 11: /* redirection: '<' WORD */
946 ! #line 478 "/usr/local/src/chet/src/bash/src/parse.y"
948 source.dest = 0;
949 --- 2069,2077 ----
950 (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0);
952 ! #line 2072 "y.tab.c"
953 break;
955 ! case 12: /* redirection: '<' WORD */
956 ! #line 493 "/usr/local/src/chet/src/bash/src/parse.y"
958 source.dest = 0;
959 ***************
960 *** 2060,2068 ****
961 (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0);
963 ! #line 2063 "y.tab.c"
964 break;
966 ! case 12: /* redirection: NUMBER '>' WORD */
967 ! #line 484 "/usr/local/src/chet/src/bash/src/parse.y"
969 source.dest = (yyvsp[-2].number);
970 --- 2079,2087 ----
971 (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0);
973 ! #line 2082 "y.tab.c"
974 break;
976 ! case 13: /* redirection: NUMBER '>' WORD */
977 ! #line 499 "/usr/local/src/chet/src/bash/src/parse.y"
979 source.dest = (yyvsp[-2].number);
980 ***************
981 *** 2070,2078 ****
982 (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0);
984 ! #line 2073 "y.tab.c"
985 break;
987 ! case 13: /* redirection: NUMBER '<' WORD */
988 ! #line 490 "/usr/local/src/chet/src/bash/src/parse.y"
990 source.dest = (yyvsp[-2].number);
991 --- 2089,2097 ----
992 (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0);
994 ! #line 2092 "y.tab.c"
995 break;
997 ! case 14: /* redirection: NUMBER '<' WORD */
998 ! #line 505 "/usr/local/src/chet/src/bash/src/parse.y"
1000 source.dest = (yyvsp[-2].number);
1001 ***************
1002 *** 2080,2088 ****
1003 (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0);
1005 ! #line 2083 "y.tab.c"
1006 break;
1008 ! case 14: /* redirection: REDIR_WORD '>' WORD */
1009 ! #line 496 "/usr/local/src/chet/src/bash/src/parse.y"
1011 source.filename = (yyvsp[-2].word);
1012 --- 2099,2107 ----
1013 (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0);
1015 ! #line 2102 "y.tab.c"
1016 break;
1018 ! case 15: /* redirection: REDIR_WORD '>' WORD */
1019 ! #line 511 "/usr/local/src/chet/src/bash/src/parse.y"
1021 source.filename = (yyvsp[-2].word);
1022 ***************
1023 *** 2090,2098 ****
1024 (yyval.redirect) = make_redirection (source, r_output_direction, redir, REDIR_VARASSIGN);
1026 ! #line 2093 "y.tab.c"
1027 break;
1029 ! case 15: /* redirection: REDIR_WORD '<' WORD */
1030 ! #line 502 "/usr/local/src/chet/src/bash/src/parse.y"
1032 source.filename = (yyvsp[-2].word);
1033 --- 2109,2117 ----
1034 (yyval.redirect) = make_redirection (source, r_output_direction, redir, REDIR_VARASSIGN);
1036 ! #line 2112 "y.tab.c"
1037 break;
1039 ! case 16: /* redirection: REDIR_WORD '<' WORD */
1040 ! #line 517 "/usr/local/src/chet/src/bash/src/parse.y"
1042 source.filename = (yyvsp[-2].word);
1043 ***************
1044 *** 2100,2108 ****
1045 (yyval.redirect) = make_redirection (source, r_input_direction, redir, REDIR_VARASSIGN);
1047 ! #line 2103 "y.tab.c"
1048 break;
1050 ! case 16: /* redirection: GREATER_GREATER WORD */
1051 ! #line 508 "/usr/local/src/chet/src/bash/src/parse.y"
1053 source.dest = 1;
1054 --- 2119,2127 ----
1055 (yyval.redirect) = make_redirection (source, r_input_direction, redir, REDIR_VARASSIGN);
1057 ! #line 2122 "y.tab.c"
1058 break;
1060 ! case 17: /* redirection: GREATER_GREATER WORD */
1061 ! #line 523 "/usr/local/src/chet/src/bash/src/parse.y"
1063 source.dest = 1;
1064 ***************
1065 *** 2110,2118 ****
1066 (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0);
1068 ! #line 2113 "y.tab.c"
1069 break;
1071 ! case 17: /* redirection: NUMBER GREATER_GREATER WORD */
1072 ! #line 514 "/usr/local/src/chet/src/bash/src/parse.y"
1074 source.dest = (yyvsp[-2].number);
1075 --- 2129,2137 ----
1076 (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0);
1078 ! #line 2132 "y.tab.c"
1079 break;
1081 ! case 18: /* redirection: NUMBER GREATER_GREATER WORD */
1082 ! #line 529 "/usr/local/src/chet/src/bash/src/parse.y"
1084 source.dest = (yyvsp[-2].number);
1085 ***************
1086 *** 2120,2128 ****
1087 (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0);
1089 ! #line 2123 "y.tab.c"
1090 break;
1092 ! case 18: /* redirection: REDIR_WORD GREATER_GREATER WORD */
1093 ! #line 520 "/usr/local/src/chet/src/bash/src/parse.y"
1095 source.filename = (yyvsp[-2].word);
1096 --- 2139,2147 ----
1097 (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0);
1099 ! #line 2142 "y.tab.c"
1100 break;
1102 ! case 19: /* redirection: REDIR_WORD GREATER_GREATER WORD */
1103 ! #line 535 "/usr/local/src/chet/src/bash/src/parse.y"
1105 source.filename = (yyvsp[-2].word);
1106 ***************
1107 *** 2130,2138 ****
1108 (yyval.redirect) = make_redirection (source, r_appending_to, redir, REDIR_VARASSIGN);
1110 ! #line 2133 "y.tab.c"
1111 break;
1113 ! case 19: /* redirection: GREATER_BAR WORD */
1114 ! #line 526 "/usr/local/src/chet/src/bash/src/parse.y"
1116 source.dest = 1;
1117 --- 2149,2157 ----
1118 (yyval.redirect) = make_redirection (source, r_appending_to, redir, REDIR_VARASSIGN);
1120 ! #line 2152 "y.tab.c"
1121 break;
1123 ! case 20: /* redirection: GREATER_BAR WORD */
1124 ! #line 541 "/usr/local/src/chet/src/bash/src/parse.y"
1126 source.dest = 1;
1127 ***************
1128 *** 2140,2148 ****
1129 (yyval.redirect) = make_redirection (source, r_output_force, redir, 0);
1131 ! #line 2143 "y.tab.c"
1132 break;
1134 ! case 20: /* redirection: NUMBER GREATER_BAR WORD */
1135 ! #line 532 "/usr/local/src/chet/src/bash/src/parse.y"
1137 source.dest = (yyvsp[-2].number);
1138 --- 2159,2167 ----
1139 (yyval.redirect) = make_redirection (source, r_output_force, redir, 0);
1141 ! #line 2162 "y.tab.c"
1142 break;
1144 ! case 21: /* redirection: NUMBER GREATER_BAR WORD */
1145 ! #line 547 "/usr/local/src/chet/src/bash/src/parse.y"
1147 source.dest = (yyvsp[-2].number);
1148 ***************
1149 *** 2150,2158 ****
1150 (yyval.redirect) = make_redirection (source, r_output_force, redir, 0);
1152 ! #line 2153 "y.tab.c"
1153 break;
1155 ! case 21: /* redirection: REDIR_WORD GREATER_BAR WORD */
1156 ! #line 538 "/usr/local/src/chet/src/bash/src/parse.y"
1158 source.filename = (yyvsp[-2].word);
1159 --- 2169,2177 ----
1160 (yyval.redirect) = make_redirection (source, r_output_force, redir, 0);
1162 ! #line 2172 "y.tab.c"
1163 break;
1165 ! case 22: /* redirection: REDIR_WORD GREATER_BAR WORD */
1166 ! #line 553 "/usr/local/src/chet/src/bash/src/parse.y"
1168 source.filename = (yyvsp[-2].word);
1169 ***************
1170 *** 2160,2168 ****
1171 (yyval.redirect) = make_redirection (source, r_output_force, redir, REDIR_VARASSIGN);
1173 ! #line 2163 "y.tab.c"
1174 break;
1176 ! case 22: /* redirection: LESS_GREATER WORD */
1177 ! #line 544 "/usr/local/src/chet/src/bash/src/parse.y"
1179 source.dest = 0;
1180 --- 2179,2187 ----
1181 (yyval.redirect) = make_redirection (source, r_output_force, redir, REDIR_VARASSIGN);
1183 ! #line 2182 "y.tab.c"
1184 break;
1186 ! case 23: /* redirection: LESS_GREATER WORD */
1187 ! #line 559 "/usr/local/src/chet/src/bash/src/parse.y"
1189 source.dest = 0;
1190 ***************
1191 *** 2170,2178 ****
1192 (yyval.redirect) = make_redirection (source, r_input_output, redir, 0);
1194 ! #line 2173 "y.tab.c"
1195 break;
1197 ! case 23: /* redirection: NUMBER LESS_GREATER WORD */
1198 ! #line 550 "/usr/local/src/chet/src/bash/src/parse.y"
1200 source.dest = (yyvsp[-2].number);
1201 --- 2189,2197 ----
1202 (yyval.redirect) = make_redirection (source, r_input_output, redir, 0);
1204 ! #line 2192 "y.tab.c"
1205 break;
1207 ! case 24: /* redirection: NUMBER LESS_GREATER WORD */
1208 ! #line 565 "/usr/local/src/chet/src/bash/src/parse.y"
1210 source.dest = (yyvsp[-2].number);
1211 ***************
1212 *** 2180,2188 ****
1213 (yyval.redirect) = make_redirection (source, r_input_output, redir, 0);
1215 ! #line 2183 "y.tab.c"
1216 break;
1218 ! case 24: /* redirection: REDIR_WORD LESS_GREATER WORD */
1219 ! #line 556 "/usr/local/src/chet/src/bash/src/parse.y"
1221 source.filename = (yyvsp[-2].word);
1222 --- 2199,2207 ----
1223 (yyval.redirect) = make_redirection (source, r_input_output, redir, 0);
1225 ! #line 2202 "y.tab.c"
1226 break;
1228 ! case 25: /* redirection: REDIR_WORD LESS_GREATER WORD */
1229 ! #line 571 "/usr/local/src/chet/src/bash/src/parse.y"
1231 source.filename = (yyvsp[-2].word);
1232 ***************
1233 *** 2190,2198 ****
1234 (yyval.redirect) = make_redirection (source, r_input_output, redir, REDIR_VARASSIGN);
1236 ! #line 2193 "y.tab.c"
1237 break;
1239 ! case 25: /* redirection: LESS_LESS WORD */
1240 ! #line 562 "/usr/local/src/chet/src/bash/src/parse.y"
1242 source.dest = 0;
1243 --- 2209,2217 ----
1244 (yyval.redirect) = make_redirection (source, r_input_output, redir, REDIR_VARASSIGN);
1246 ! #line 2212 "y.tab.c"
1247 break;
1249 ! case 26: /* redirection: LESS_LESS WORD */
1250 ! #line 577 "/usr/local/src/chet/src/bash/src/parse.y"
1252 source.dest = 0;
1253 ***************
1254 *** 2201,2209 ****
1255 push_heredoc ((yyval.redirect));
1257 ! #line 2204 "y.tab.c"
1258 break;
1260 ! case 26: /* redirection: NUMBER LESS_LESS WORD */
1261 ! #line 569 "/usr/local/src/chet/src/bash/src/parse.y"
1263 source.dest = (yyvsp[-2].number);
1264 --- 2220,2228 ----
1265 push_heredoc ((yyval.redirect));
1267 ! #line 2223 "y.tab.c"
1268 break;
1270 ! case 27: /* redirection: NUMBER LESS_LESS WORD */
1271 ! #line 584 "/usr/local/src/chet/src/bash/src/parse.y"
1273 source.dest = (yyvsp[-2].number);
1274 ***************
1275 *** 2212,2220 ****
1276 push_heredoc ((yyval.redirect));
1278 ! #line 2215 "y.tab.c"
1279 break;
1281 ! case 27: /* redirection: REDIR_WORD LESS_LESS WORD */
1282 ! #line 576 "/usr/local/src/chet/src/bash/src/parse.y"
1284 source.filename = (yyvsp[-2].word);
1285 --- 2231,2239 ----
1286 push_heredoc ((yyval.redirect));
1288 ! #line 2234 "y.tab.c"
1289 break;
1291 ! case 28: /* redirection: REDIR_WORD LESS_LESS WORD */
1292 ! #line 591 "/usr/local/src/chet/src/bash/src/parse.y"
1294 source.filename = (yyvsp[-2].word);
1295 ***************
1296 *** 2223,2231 ****
1297 push_heredoc ((yyval.redirect));
1299 ! #line 2226 "y.tab.c"
1300 break;
1302 ! case 28: /* redirection: LESS_LESS_MINUS WORD */
1303 ! #line 583 "/usr/local/src/chet/src/bash/src/parse.y"
1305 source.dest = 0;
1306 --- 2242,2250 ----
1307 push_heredoc ((yyval.redirect));
1309 ! #line 2245 "y.tab.c"
1310 break;
1312 ! case 29: /* redirection: LESS_LESS_MINUS WORD */
1313 ! #line 598 "/usr/local/src/chet/src/bash/src/parse.y"
1315 source.dest = 0;
1316 ***************
1317 *** 2234,2242 ****
1318 push_heredoc ((yyval.redirect));
1320 ! #line 2237 "y.tab.c"
1321 break;
1323 ! case 29: /* redirection: NUMBER LESS_LESS_MINUS WORD */
1324 ! #line 590 "/usr/local/src/chet/src/bash/src/parse.y"
1326 source.dest = (yyvsp[-2].number);
1327 --- 2253,2261 ----
1328 push_heredoc ((yyval.redirect));
1330 ! #line 2256 "y.tab.c"
1331 break;
1333 ! case 30: /* redirection: NUMBER LESS_LESS_MINUS WORD */
1334 ! #line 605 "/usr/local/src/chet/src/bash/src/parse.y"
1336 source.dest = (yyvsp[-2].number);
1337 ***************
1338 *** 2245,2253 ****
1339 push_heredoc ((yyval.redirect));
1341 ! #line 2248 "y.tab.c"
1342 break;
1344 ! case 30: /* redirection: REDIR_WORD LESS_LESS_MINUS WORD */
1345 ! #line 597 "/usr/local/src/chet/src/bash/src/parse.y"
1347 source.filename = (yyvsp[-2].word);
1348 --- 2264,2272 ----
1349 push_heredoc ((yyval.redirect));
1351 ! #line 2267 "y.tab.c"
1352 break;
1354 ! case 31: /* redirection: REDIR_WORD LESS_LESS_MINUS WORD */
1355 ! #line 612 "/usr/local/src/chet/src/bash/src/parse.y"
1357 source.filename = (yyvsp[-2].word);
1358 ***************
1359 *** 2256,2264 ****
1360 push_heredoc ((yyval.redirect));
1362 ! #line 2259 "y.tab.c"
1363 break;
1365 ! case 31: /* redirection: LESS_LESS_LESS WORD */
1366 ! #line 604 "/usr/local/src/chet/src/bash/src/parse.y"
1368 source.dest = 0;
1369 --- 2275,2283 ----
1370 push_heredoc ((yyval.redirect));
1372 ! #line 2278 "y.tab.c"
1373 break;
1375 ! case 32: /* redirection: LESS_LESS_LESS WORD */
1376 ! #line 619 "/usr/local/src/chet/src/bash/src/parse.y"
1378 source.dest = 0;
1379 ***************
1380 *** 2266,2274 ****
1381 (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0);
1383 ! #line 2269 "y.tab.c"
1384 break;
1386 ! case 32: /* redirection: NUMBER LESS_LESS_LESS WORD */
1387 ! #line 610 "/usr/local/src/chet/src/bash/src/parse.y"
1389 source.dest = (yyvsp[-2].number);
1390 --- 2285,2293 ----
1391 (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0);
1393 ! #line 2288 "y.tab.c"
1394 break;
1396 ! case 33: /* redirection: NUMBER LESS_LESS_LESS WORD */
1397 ! #line 625 "/usr/local/src/chet/src/bash/src/parse.y"
1399 source.dest = (yyvsp[-2].number);
1400 ***************
1401 *** 2276,2284 ****
1402 (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0);
1404 ! #line 2279 "y.tab.c"
1405 break;
1407 ! case 33: /* redirection: REDIR_WORD LESS_LESS_LESS WORD */
1408 ! #line 616 "/usr/local/src/chet/src/bash/src/parse.y"
1410 source.filename = (yyvsp[-2].word);
1411 --- 2295,2303 ----
1412 (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0);
1414 ! #line 2298 "y.tab.c"
1415 break;
1417 ! case 34: /* redirection: REDIR_WORD LESS_LESS_LESS WORD */
1418 ! #line 631 "/usr/local/src/chet/src/bash/src/parse.y"
1420 source.filename = (yyvsp[-2].word);
1421 ***************
1422 *** 2286,2294 ****
1423 (yyval.redirect) = make_redirection (source, r_reading_string, redir, REDIR_VARASSIGN);
1425 ! #line 2289 "y.tab.c"
1426 break;
1428 ! case 34: /* redirection: LESS_AND NUMBER */
1429 ! #line 622 "/usr/local/src/chet/src/bash/src/parse.y"
1431 source.dest = 0;
1432 --- 2305,2313 ----
1433 (yyval.redirect) = make_redirection (source, r_reading_string, redir, REDIR_VARASSIGN);
1435 ! #line 2308 "y.tab.c"
1436 break;
1438 ! case 35: /* redirection: LESS_AND NUMBER */
1439 ! #line 637 "/usr/local/src/chet/src/bash/src/parse.y"
1441 source.dest = 0;
1442 ***************
1443 *** 2296,2304 ****
1444 (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0);
1446 ! #line 2299 "y.tab.c"
1447 break;
1449 ! case 35: /* redirection: NUMBER LESS_AND NUMBER */
1450 ! #line 628 "/usr/local/src/chet/src/bash/src/parse.y"
1452 source.dest = (yyvsp[-2].number);
1453 --- 2315,2323 ----
1454 (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0);
1456 ! #line 2318 "y.tab.c"
1457 break;
1459 ! case 36: /* redirection: NUMBER LESS_AND NUMBER */
1460 ! #line 643 "/usr/local/src/chet/src/bash/src/parse.y"
1462 source.dest = (yyvsp[-2].number);
1463 ***************
1464 *** 2306,2314 ****
1465 (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0);
1467 ! #line 2309 "y.tab.c"
1468 break;
1470 ! case 36: /* redirection: REDIR_WORD LESS_AND NUMBER */
1471 ! #line 634 "/usr/local/src/chet/src/bash/src/parse.y"
1473 source.filename = (yyvsp[-2].word);
1474 --- 2325,2333 ----
1475 (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0);
1477 ! #line 2328 "y.tab.c"
1478 break;
1480 ! case 37: /* redirection: REDIR_WORD LESS_AND NUMBER */
1481 ! #line 649 "/usr/local/src/chet/src/bash/src/parse.y"
1483 source.filename = (yyvsp[-2].word);
1484 ***************
1485 *** 2316,2324 ****
1486 (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, REDIR_VARASSIGN);
1488 ! #line 2319 "y.tab.c"
1489 break;
1491 ! case 37: /* redirection: GREATER_AND NUMBER */
1492 ! #line 640 "/usr/local/src/chet/src/bash/src/parse.y"
1494 source.dest = 1;
1495 --- 2335,2343 ----
1496 (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, REDIR_VARASSIGN);
1498 ! #line 2338 "y.tab.c"
1499 break;
1501 ! case 38: /* redirection: GREATER_AND NUMBER */
1502 ! #line 655 "/usr/local/src/chet/src/bash/src/parse.y"
1504 source.dest = 1;
1505 ***************
1506 *** 2326,2334 ****
1507 (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0);
1509 ! #line 2329 "y.tab.c"
1510 break;
1512 ! case 38: /* redirection: NUMBER GREATER_AND NUMBER */
1513 ! #line 646 "/usr/local/src/chet/src/bash/src/parse.y"
1515 source.dest = (yyvsp[-2].number);
1516 --- 2345,2353 ----
1517 (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0);
1519 ! #line 2348 "y.tab.c"
1520 break;
1522 ! case 39: /* redirection: NUMBER GREATER_AND NUMBER */
1523 ! #line 661 "/usr/local/src/chet/src/bash/src/parse.y"
1525 source.dest = (yyvsp[-2].number);
1526 ***************
1527 *** 2336,2344 ****
1528 (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0);
1530 ! #line 2339 "y.tab.c"
1531 break;
1533 ! case 39: /* redirection: REDIR_WORD GREATER_AND NUMBER */
1534 ! #line 652 "/usr/local/src/chet/src/bash/src/parse.y"
1536 source.filename = (yyvsp[-2].word);
1537 --- 2355,2363 ----
1538 (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0);
1540 ! #line 2358 "y.tab.c"
1541 break;
1543 ! case 40: /* redirection: REDIR_WORD GREATER_AND NUMBER */
1544 ! #line 667 "/usr/local/src/chet/src/bash/src/parse.y"
1546 source.filename = (yyvsp[-2].word);
1547 ***************
1548 *** 2346,2354 ****
1549 (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, REDIR_VARASSIGN);
1551 ! #line 2349 "y.tab.c"
1552 break;
1554 ! case 40: /* redirection: LESS_AND WORD */
1555 ! #line 658 "/usr/local/src/chet/src/bash/src/parse.y"
1557 source.dest = 0;
1558 --- 2365,2373 ----
1559 (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, REDIR_VARASSIGN);
1561 ! #line 2368 "y.tab.c"
1562 break;
1564 ! case 41: /* redirection: LESS_AND WORD */
1565 ! #line 673 "/usr/local/src/chet/src/bash/src/parse.y"
1567 source.dest = 0;
1568 ***************
1569 *** 2356,2364 ****
1570 (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0);
1572 ! #line 2359 "y.tab.c"
1573 break;
1575 ! case 41: /* redirection: NUMBER LESS_AND WORD */
1576 ! #line 664 "/usr/local/src/chet/src/bash/src/parse.y"
1578 source.dest = (yyvsp[-2].number);
1579 --- 2375,2383 ----
1580 (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0);
1582 ! #line 2378 "y.tab.c"
1583 break;
1585 ! case 42: /* redirection: NUMBER LESS_AND WORD */
1586 ! #line 679 "/usr/local/src/chet/src/bash/src/parse.y"
1588 source.dest = (yyvsp[-2].number);
1589 ***************
1590 *** 2366,2374 ****
1591 (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0);
1593 ! #line 2369 "y.tab.c"
1594 break;
1596 ! case 42: /* redirection: REDIR_WORD LESS_AND WORD */
1597 ! #line 670 "/usr/local/src/chet/src/bash/src/parse.y"
1599 source.filename = (yyvsp[-2].word);
1600 --- 2385,2393 ----
1601 (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0);
1603 ! #line 2388 "y.tab.c"
1604 break;
1606 ! case 43: /* redirection: REDIR_WORD LESS_AND WORD */
1607 ! #line 685 "/usr/local/src/chet/src/bash/src/parse.y"
1609 source.filename = (yyvsp[-2].word);
1610 ***************
1611 *** 2376,2384 ****
1612 (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, REDIR_VARASSIGN);
1614 ! #line 2379 "y.tab.c"
1615 break;
1617 ! case 43: /* redirection: GREATER_AND WORD */
1618 ! #line 676 "/usr/local/src/chet/src/bash/src/parse.y"
1620 source.dest = 1;
1621 --- 2395,2403 ----
1622 (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, REDIR_VARASSIGN);
1624 ! #line 2398 "y.tab.c"
1625 break;
1627 ! case 44: /* redirection: GREATER_AND WORD */
1628 ! #line 691 "/usr/local/src/chet/src/bash/src/parse.y"
1630 source.dest = 1;
1631 ***************
1632 *** 2386,2394 ****
1633 (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0);
1635 ! #line 2389 "y.tab.c"
1636 break;
1638 ! case 44: /* redirection: NUMBER GREATER_AND WORD */
1639 ! #line 682 "/usr/local/src/chet/src/bash/src/parse.y"
1641 source.dest = (yyvsp[-2].number);
1642 --- 2405,2413 ----
1643 (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0);
1645 ! #line 2408 "y.tab.c"
1646 break;
1648 ! case 45: /* redirection: NUMBER GREATER_AND WORD */
1649 ! #line 697 "/usr/local/src/chet/src/bash/src/parse.y"
1651 source.dest = (yyvsp[-2].number);
1652 ***************
1653 *** 2396,2404 ****
1654 (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0);
1656 ! #line 2399 "y.tab.c"
1657 break;
1659 ! case 45: /* redirection: REDIR_WORD GREATER_AND WORD */
1660 ! #line 688 "/usr/local/src/chet/src/bash/src/parse.y"
1662 source.filename = (yyvsp[-2].word);
1663 --- 2415,2423 ----
1664 (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0);
1666 ! #line 2418 "y.tab.c"
1667 break;
1669 ! case 46: /* redirection: REDIR_WORD GREATER_AND WORD */
1670 ! #line 703 "/usr/local/src/chet/src/bash/src/parse.y"
1672 source.filename = (yyvsp[-2].word);
1673 ***************
1674 *** 2406,2414 ****
1675 (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, REDIR_VARASSIGN);
1677 ! #line 2409 "y.tab.c"
1678 break;
1680 ! case 46: /* redirection: GREATER_AND '-' */
1681 ! #line 694 "/usr/local/src/chet/src/bash/src/parse.y"
1683 source.dest = 1;
1684 --- 2425,2433 ----
1685 (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, REDIR_VARASSIGN);
1687 ! #line 2428 "y.tab.c"
1688 break;
1690 ! case 47: /* redirection: GREATER_AND '-' */
1691 ! #line 709 "/usr/local/src/chet/src/bash/src/parse.y"
1693 source.dest = 1;
1694 ***************
1695 *** 2416,2424 ****
1696 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1698 ! #line 2419 "y.tab.c"
1699 break;
1701 ! case 47: /* redirection: NUMBER GREATER_AND '-' */
1702 ! #line 700 "/usr/local/src/chet/src/bash/src/parse.y"
1704 source.dest = (yyvsp[-2].number);
1705 --- 2435,2443 ----
1706 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1708 ! #line 2438 "y.tab.c"
1709 break;
1711 ! case 48: /* redirection: NUMBER GREATER_AND '-' */
1712 ! #line 715 "/usr/local/src/chet/src/bash/src/parse.y"
1714 source.dest = (yyvsp[-2].number);
1715 ***************
1716 *** 2426,2434 ****
1717 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1719 ! #line 2429 "y.tab.c"
1720 break;
1722 ! case 48: /* redirection: REDIR_WORD GREATER_AND '-' */
1723 ! #line 706 "/usr/local/src/chet/src/bash/src/parse.y"
1725 source.filename = (yyvsp[-2].word);
1726 --- 2445,2453 ----
1727 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1729 ! #line 2448 "y.tab.c"
1730 break;
1732 ! case 49: /* redirection: REDIR_WORD GREATER_AND '-' */
1733 ! #line 721 "/usr/local/src/chet/src/bash/src/parse.y"
1735 source.filename = (yyvsp[-2].word);
1736 ***************
1737 *** 2436,2444 ****
1738 (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN);
1740 ! #line 2439 "y.tab.c"
1741 break;
1743 ! case 49: /* redirection: LESS_AND '-' */
1744 ! #line 712 "/usr/local/src/chet/src/bash/src/parse.y"
1746 source.dest = 0;
1747 --- 2455,2463 ----
1748 (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN);
1750 ! #line 2458 "y.tab.c"
1751 break;
1753 ! case 50: /* redirection: LESS_AND '-' */
1754 ! #line 727 "/usr/local/src/chet/src/bash/src/parse.y"
1756 source.dest = 0;
1757 ***************
1758 *** 2446,2454 ****
1759 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1761 ! #line 2449 "y.tab.c"
1762 break;
1764 ! case 50: /* redirection: NUMBER LESS_AND '-' */
1765 ! #line 718 "/usr/local/src/chet/src/bash/src/parse.y"
1767 source.dest = (yyvsp[-2].number);
1768 --- 2465,2473 ----
1769 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1771 ! #line 2468 "y.tab.c"
1772 break;
1774 ! case 51: /* redirection: NUMBER LESS_AND '-' */
1775 ! #line 733 "/usr/local/src/chet/src/bash/src/parse.y"
1777 source.dest = (yyvsp[-2].number);
1778 ***************
1779 *** 2456,2464 ****
1780 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1782 ! #line 2459 "y.tab.c"
1783 break;
1785 ! case 51: /* redirection: REDIR_WORD LESS_AND '-' */
1786 ! #line 724 "/usr/local/src/chet/src/bash/src/parse.y"
1788 source.filename = (yyvsp[-2].word);
1789 --- 2475,2483 ----
1790 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1792 ! #line 2478 "y.tab.c"
1793 break;
1795 ! case 52: /* redirection: REDIR_WORD LESS_AND '-' */
1796 ! #line 739 "/usr/local/src/chet/src/bash/src/parse.y"
1798 source.filename = (yyvsp[-2].word);
1799 ***************
1800 *** 2466,2474 ****
1801 (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN);
1803 ! #line 2469 "y.tab.c"
1804 break;
1806 ! case 52: /* redirection: AND_GREATER WORD */
1807 ! #line 730 "/usr/local/src/chet/src/bash/src/parse.y"
1809 source.dest = 1;
1810 --- 2485,2493 ----
1811 (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN);
1813 ! #line 2488 "y.tab.c"
1814 break;
1816 ! case 53: /* redirection: AND_GREATER WORD */
1817 ! #line 745 "/usr/local/src/chet/src/bash/src/parse.y"
1819 source.dest = 1;
1820 ***************
1821 *** 2476,2484 ****
1822 (yyval.redirect) = make_redirection (source, r_err_and_out, redir, 0);
1824 ! #line 2479 "y.tab.c"
1825 break;
1827 ! case 53: /* redirection: AND_GREATER_GREATER WORD */
1828 ! #line 736 "/usr/local/src/chet/src/bash/src/parse.y"
1830 source.dest = 1;
1831 --- 2495,2503 ----
1832 (yyval.redirect) = make_redirection (source, r_err_and_out, redir, 0);
1834 ! #line 2498 "y.tab.c"
1835 break;
1837 ! case 54: /* redirection: AND_GREATER_GREATER WORD */
1838 ! #line 751 "/usr/local/src/chet/src/bash/src/parse.y"
1840 source.dest = 1;
1841 ***************
1842 *** 2486,2520 ****
1843 (yyval.redirect) = make_redirection (source, r_append_err_and_out, redir, 0);
1845 ! #line 2489 "y.tab.c"
1846 break;
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;
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;
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;
1866 ! case 57: /* redirection_list: redirection */
1867 ! #line 752 "/usr/local/src/chet/src/bash/src/parse.y"
1869 (yyval.redirect) = (yyvsp[0].redirect);
1871 ! #line 2515 "y.tab.c"
1872 break;
1874 ! case 58: /* redirection_list: redirection_list redirection */
1875 ! #line 756 "/usr/local/src/chet/src/bash/src/parse.y"
1877 register REDIRECT *t;
1878 --- 2505,2539 ----
1879 (yyval.redirect) = make_redirection (source, r_append_err_and_out, redir, 0);
1881 ! #line 2508 "y.tab.c"
1882 break;
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;
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;
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;
1902 ! case 58: /* redirection_list: redirection */
1903 ! #line 767 "/usr/local/src/chet/src/bash/src/parse.y"
1905 (yyval.redirect) = (yyvsp[0].redirect);
1907 ! #line 2534 "y.tab.c"
1908 break;
1910 ! case 59: /* redirection_list: redirection_list redirection */
1911 ! #line 771 "/usr/local/src/chet/src/bash/src/parse.y"
1913 register REDIRECT *t;
1914 ***************
1915 *** 2525,2557 ****
1916 (yyval.redirect) = (yyvsp[-1].redirect);
1918 ! #line 2528 "y.tab.c"
1919 break;
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;
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;
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;
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;
1945 ! case 63: /* command: shell_command redirection_list */
1946 ! #line 777 "/usr/local/src/chet/src/bash/src/parse.y"
1948 COMMAND *tc;
1949 --- 2544,2576 ----
1950 (yyval.redirect) = (yyvsp[-1].redirect);
1952 ! #line 2547 "y.tab.c"
1953 break;
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;
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;
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;
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;
1979 ! case 64: /* command: shell_command redirection_list */
1980 ! #line 792 "/usr/local/src/chet/src/bash/src/parse.y"
1982 COMMAND *tc;
1983 ***************
1984 *** 2569,2727 ****
1985 (yyval.command) = (yyvsp[-1].command);
1987 ! #line 2572 "y.tab.c"
1988 break;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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"
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--;
2074 ! #line 2659 "y.tab.c"
2075 break;
2077 ! case 78: /* for_command: FOR WORD newline_list '{' compound_list '}' */
2078 ! #line 828 "/usr/local/src/chet/src/bash/src/parse.y"
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--;
2083 ! #line 2668 "y.tab.c"
2084 break;
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"
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--;
2092 ! #line 2677 "y.tab.c"
2093 break;
2095 ! case 80: /* for_command: FOR WORD ';' newline_list '{' compound_list '}' */
2096 ! #line 838 "/usr/local/src/chet/src/bash/src/parse.y"
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--;
2101 ! #line 2686 "y.tab.c"
2102 break;
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"
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--;
2110 ! #line 2695 "y.tab.c"
2111 break;
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"
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--;
2119 ! #line 2704 "y.tab.c"
2120 break;
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"
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--;
2128 ! #line 2713 "y.tab.c"
2129 break;
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"
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--;
2137 ! #line 2722 "y.tab.c"
2138 break;
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"
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);
2147 ! #line 2591 "y.tab.c"
2148 break;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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"
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--;
2234 ! #line 2678 "y.tab.c"
2235 break;
2237 ! case 79: /* for_command: FOR WORD newline_list '{' compound_list '}' */
2238 ! #line 843 "/usr/local/src/chet/src/bash/src/parse.y"
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--;
2243 ! #line 2687 "y.tab.c"
2244 break;
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"
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--;
2252 ! #line 2696 "y.tab.c"
2253 break;
2255 ! case 81: /* for_command: FOR WORD ';' newline_list '{' compound_list '}' */
2256 ! #line 853 "/usr/local/src/chet/src/bash/src/parse.y"
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--;
2261 ! #line 2705 "y.tab.c"
2262 break;
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"
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--;
2270 ! #line 2714 "y.tab.c"
2271 break;
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"
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--;
2279 ! #line 2723 "y.tab.c"
2280 break;
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"
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--;
2288 ! #line 2732 "y.tab.c"
2289 break;
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"
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--;
2297 ! #line 2741 "y.tab.c"
2298 break;
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"
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--;
2308 ! #line 2732 "y.tab.c"
2309 break;
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"
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--;
2318 ! #line 2751 "y.tab.c"
2319 break;
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"
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--;
2329 ! #line 2742 "y.tab.c"
2330 break;
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"
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--;
2339 ! #line 2761 "y.tab.c"
2340 break;
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"
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--;
2350 ! #line 2752 "y.tab.c"
2351 break;
2353 ! case 88: /* arith_for_command: FOR ARITH_FOR_EXPRS '{' compound_list '}' */
2354 ! #line 883 "/usr/local/src/chet/src/bash/src/parse.y"
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--;
2360 ! #line 2771 "y.tab.c"
2361 break;
2363 ! case 89: /* arith_for_command: FOR ARITH_FOR_EXPRS '{' compound_list '}' */
2364 ! #line 898 "/usr/local/src/chet/src/bash/src/parse.y"
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--;
2371 ! #line 2762 "y.tab.c"
2372 break;
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"
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--;
2380 ! #line 2771 "y.tab.c"
2381 break;
2383 ! case 90: /* select_command: SELECT WORD newline_list '{' compound_list '}' */
2384 ! #line 896 "/usr/local/src/chet/src/bash/src/parse.y"
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--;
2389 ! #line 2780 "y.tab.c"
2390 break;
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"
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--;
2398 ! #line 2789 "y.tab.c"
2399 break;
2401 ! case 92: /* select_command: SELECT WORD ';' newline_list '{' compound_list '}' */
2402 ! #line 906 "/usr/local/src/chet/src/bash/src/parse.y"
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--;
2407 ! #line 2798 "y.tab.c"
2408 break;
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"
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--;
2416 ! #line 2807 "y.tab.c"
2417 break;
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"
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--;
2425 ! #line 2816 "y.tab.c"
2426 break;
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"
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--;
2434 ! #line 2825 "y.tab.c"
2435 break;
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"
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--;
2443 ! #line 2834 "y.tab.c"
2444 break;
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"
2449 (yyval.command) = make_case_command ((yyvsp[-4].word), (PATTERN_LIST *)NULL, word_lineno[word_top]);
2450 if (word_top > 0) word_top--;
2452 ! #line 2843 "y.tab.c"
2453 break;
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"
2458 (yyval.command) = make_case_command ((yyvsp[-5].word), (yyvsp[-2].pattern), word_lineno[word_top]);
2459 if (word_top > 0) word_top--;
2461 ! #line 2852 "y.tab.c"
2462 break;
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"
2467 (yyval.command) = make_case_command ((yyvsp[-4].word), (yyvsp[-1].pattern), word_lineno[word_top]);
2468 if (word_top > 0) word_top--;
2470 ! #line 2861 "y.tab.c"
2471 break;
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;
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;
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;
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;
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;
2503 ! case 105: /* function_body: shell_command redirection_list */
2504 ! #line 962 "/usr/local/src/chet/src/bash/src/parse.y"
2506 COMMAND *tc;
2507 --- 2778,2915 ----
2508 if (word_top > 0) word_top--;
2510 ! #line 2781 "y.tab.c"
2511 break;
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"
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--;
2519 ! #line 2790 "y.tab.c"
2520 break;
2522 ! case 91: /* select_command: SELECT WORD newline_list '{' compound_list '}' */
2523 ! #line 911 "/usr/local/src/chet/src/bash/src/parse.y"
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--;
2528 ! #line 2799 "y.tab.c"
2529 break;
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"
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--;
2537 ! #line 2808 "y.tab.c"
2538 break;
2540 ! case 93: /* select_command: SELECT WORD ';' newline_list '{' compound_list '}' */
2541 ! #line 921 "/usr/local/src/chet/src/bash/src/parse.y"
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--;
2546 ! #line 2817 "y.tab.c"
2547 break;
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"
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--;
2555 ! #line 2826 "y.tab.c"
2556 break;
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"
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--;
2564 ! #line 2835 "y.tab.c"
2565 break;
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"
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--;
2573 ! #line 2844 "y.tab.c"
2574 break;
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"
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--;
2582 ! #line 2853 "y.tab.c"
2583 break;
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"
2588 (yyval.command) = make_case_command ((yyvsp[-4].word), (PATTERN_LIST *)NULL, word_lineno[word_top]);
2589 if (word_top > 0) word_top--;
2591 ! #line 2862 "y.tab.c"
2592 break;
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"
2597 (yyval.command) = make_case_command ((yyvsp[-5].word), (yyvsp[-2].pattern), word_lineno[word_top]);
2598 if (word_top > 0) word_top--;
2600 ! #line 2871 "y.tab.c"
2601 break;
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"
2606 (yyval.command) = make_case_command ((yyvsp[-4].word), (yyvsp[-1].pattern), word_lineno[word_top]);
2607 if (word_top > 0) word_top--;
2609 ! #line 2880 "y.tab.c"
2610 break;
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;
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;
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;
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;
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;
2642 ! case 106: /* function_body: shell_command redirection_list */
2643 ! #line 977 "/usr/local/src/chet/src/bash/src/parse.y"
2645 COMMAND *tc;
2646 ***************
2647 *** 2921,2963 ****
2648 (yyval.command) = (yyvsp[-1].command);
2650 ! #line 2924 "y.tab.c"
2651 break;
2653 ! case 106: /* subshell: '(' compound_list ')' */
2654 ! #line 993 "/usr/local/src/chet/src/bash/src/parse.y"
2656 (yyval.command) = make_subshell_command ((yyvsp[-1].command));
2657 (yyval.command)->flags |= CMD_WANT_SUBSHELL;
2659 ! #line 2933 "y.tab.c"
2660 break;
2662 ! case 107: /* comsub: DOLPAREN compound_list ')' */
2663 ! #line 1000 "/usr/local/src/chet/src/bash/src/parse.y"
2665 (yyval.command) = (yyvsp[-1].command);
2667 ! #line 2941 "y.tab.c"
2668 break;
2670 ! case 108: /* comsub: DOLPAREN newline_list ')' */
2671 ! #line 1004 "/usr/local/src/chet/src/bash/src/parse.y"
2673 (yyval.command) = (COMMAND *)NULL;
2675 ! #line 2949 "y.tab.c"
2676 break;
2678 ! case 109: /* coproc: COPROC shell_command */
2679 ! #line 1010 "/usr/local/src/chet/src/bash/src/parse.y"
2681 (yyval.command) = make_coproc_command ("COPROC", (yyvsp[0].command));
2682 (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
2684 ! #line 2958 "y.tab.c"
2685 break;
2687 ! case 110: /* coproc: COPROC shell_command redirection_list */
2688 ! #line 1015 "/usr/local/src/chet/src/bash/src/parse.y"
2690 COMMAND *tc;
2691 --- 2940,2982 ----
2692 (yyval.command) = (yyvsp[-1].command);
2694 ! #line 2943 "y.tab.c"
2695 break;
2697 ! case 107: /* subshell: '(' compound_list ')' */
2698 ! #line 1008 "/usr/local/src/chet/src/bash/src/parse.y"
2700 (yyval.command) = make_subshell_command ((yyvsp[-1].command));
2701 (yyval.command)->flags |= CMD_WANT_SUBSHELL;
2703 ! #line 2952 "y.tab.c"
2704 break;
2706 ! case 108: /* comsub: DOLPAREN compound_list ')' */
2707 ! #line 1015 "/usr/local/src/chet/src/bash/src/parse.y"
2709 (yyval.command) = (yyvsp[-1].command);
2711 ! #line 2960 "y.tab.c"
2712 break;
2714 ! case 109: /* comsub: DOLPAREN newline_list ')' */
2715 ! #line 1019 "/usr/local/src/chet/src/bash/src/parse.y"
2717 (yyval.command) = (COMMAND *)NULL;
2719 ! #line 2968 "y.tab.c"
2720 break;
2722 ! case 110: /* coproc: COPROC shell_command */
2723 ! #line 1025 "/usr/local/src/chet/src/bash/src/parse.y"
2725 (yyval.command) = make_coproc_command ("COPROC", (yyvsp[0].command));
2726 (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
2728 ! #line 2977 "y.tab.c"
2729 break;
2731 ! case 111: /* coproc: COPROC shell_command redirection_list */
2732 ! #line 1030 "/usr/local/src/chet/src/bash/src/parse.y"
2734 COMMAND *tc;
2735 ***************
2736 *** 2976,2993 ****
2737 (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
2739 ! #line 2979 "y.tab.c"
2740 break;
2742 ! case 111: /* coproc: COPROC WORD shell_command */
2743 ! #line 1032 "/usr/local/src/chet/src/bash/src/parse.y"
2745 (yyval.command) = make_coproc_command ((yyvsp[-1].word)->word, (yyvsp[0].command));
2746 (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
2748 ! #line 2988 "y.tab.c"
2749 break;
2751 ! case 112: /* coproc: COPROC WORD shell_command redirection_list */
2752 ! #line 1037 "/usr/local/src/chet/src/bash/src/parse.y"
2754 COMMAND *tc;
2755 --- 2995,3012 ----
2756 (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
2758 ! #line 2998 "y.tab.c"
2759 break;
2761 ! case 112: /* coproc: COPROC WORD shell_command */
2762 ! #line 1047 "/usr/local/src/chet/src/bash/src/parse.y"
2764 (yyval.command) = make_coproc_command ((yyvsp[-1].word)->word, (yyvsp[0].command));
2765 (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
2767 ! #line 3007 "y.tab.c"
2768 break;
2770 ! case 113: /* coproc: COPROC WORD shell_command redirection_list */
2771 ! #line 1052 "/usr/local/src/chet/src/bash/src/parse.y"
2773 COMMAND *tc;
2774 ***************
2775 *** 3006,3155 ****
2776 (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
2778 ! #line 3009 "y.tab.c"
2779 break;
2781 ! case 113: /* coproc: COPROC simple_command */
2782 ! #line 1054 "/usr/local/src/chet/src/bash/src/parse.y"
2784 (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[0].command)));
2785 (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
2787 ! #line 3018 "y.tab.c"
2788 break;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
2922 ! case 137: /* compound_list: newline_list list0 */
2923 ! #line 1130 "/usr/local/src/chet/src/bash/src/parse.y"
2925 (yyval.command) = (yyvsp[0].command);
2926 --- 3025,3174 ----
2927 (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
2929 ! #line 3028 "y.tab.c"
2930 break;
2932 ! case 114: /* coproc: COPROC simple_command */
2933 ! #line 1069 "/usr/local/src/chet/src/bash/src/parse.y"
2935 (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[0].command)));
2936 (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
2938 ! #line 3037 "y.tab.c"
2939 break;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
3073 ! case 138: /* compound_list: newline_list list0 */
3074 ! #line 1145 "/usr/local/src/chet/src/bash/src/parse.y"
3076 (yyval.command) = (yyvsp[0].command);
3077 ***************
3078 *** 3157,3173 ****
3079 gather_here_documents ();
3081 ! #line 3160 "y.tab.c"
3082 break;
3084 ! case 138: /* compound_list: newline_list list1 */
3085 ! #line 1136 "/usr/local/src/chet/src/bash/src/parse.y"
3087 (yyval.command) = (yyvsp[0].command);
3089 ! #line 3168 "y.tab.c"
3090 break;
3092 ! case 140: /* list0: list1 '&' newline_list */
3093 ! #line 1143 "/usr/local/src/chet/src/bash/src/parse.y"
3095 if ((yyvsp[-2].command)->type == cm_connection)
3096 --- 3176,3192 ----
3097 gather_here_documents ();
3099 ! #line 3179 "y.tab.c"
3100 break;
3102 ! case 139: /* compound_list: newline_list list1 */
3103 ! #line 1151 "/usr/local/src/chet/src/bash/src/parse.y"
3105 (yyval.command) = (yyvsp[0].command);
3107 ! #line 3187 "y.tab.c"
3108 break;
3110 ! case 141: /* list0: list1 '&' newline_list */
3111 ! #line 1158 "/usr/local/src/chet/src/bash/src/parse.y"
3113 if ((yyvsp[-2].command)->type == cm_connection)
3114 ***************
3115 *** 3176,3196 ****
3116 (yyval.command) = command_connect ((yyvsp[-2].command), (COMMAND *)NULL, '&');
3118 ! #line 3179 "y.tab.c"
3119 break;
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;
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;
3133 ! case 144: /* list1: list1 '&' newline_list list1 */
3134 ! #line 1158 "/usr/local/src/chet/src/bash/src/parse.y"
3136 if ((yyvsp[-3].command)->type == cm_connection)
3137 --- 3195,3215 ----
3138 (yyval.command) = command_connect ((yyvsp[-2].command), (COMMAND *)NULL, '&');
3140 ! #line 3198 "y.tab.c"
3141 break;
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;
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;
3155 ! case 145: /* list1: list1 '&' newline_list list1 */
3156 ! #line 1173 "/usr/local/src/chet/src/bash/src/parse.y"
3158 if ((yyvsp[-3].command)->type == cm_connection)
3159 ***************
3160 *** 3199,3213 ****
3161 (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '&');
3163 ! #line 3202 "y.tab.c"
3164 break;
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;
3172 ! case 146: /* list1: list1 '\n' newline_list list1 */
3173 ! #line 1167 "/usr/local/src/chet/src/bash/src/parse.y"
3175 if (parser_state & PST_CMDSUBST)
3176 --- 3218,3232 ----
3177 (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '&');
3179 ! #line 3221 "y.tab.c"
3180 break;
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;
3188 ! case 147: /* list1: list1 '\n' newline_list list1 */
3189 ! #line 1182 "/usr/local/src/chet/src/bash/src/parse.y"
3191 if (parser_state & PST_CMDSUBST)
3192 ***************
3193 *** 3216,3248 ****
3194 (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';');
3196 ! #line 3219 "y.tab.c"
3197 break;
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;
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;
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;
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;
3223 ! case 155: /* simple_list: simple_list1 */
3224 ! #line 1200 "/usr/local/src/chet/src/bash/src/parse.y"
3226 (yyval.command) = (yyvsp[0].command);
3227 --- 3235,3267 ----
3228 (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';');
3230 ! #line 3238 "y.tab.c"
3231 break;
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;
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;
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;
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;
3257 ! case 156: /* simple_list: simple_list1 */
3258 ! #line 1215 "/usr/local/src/chet/src/bash/src/parse.y"
3260 (yyval.command) = (yyvsp[0].command);
3261 ***************
3262 *** 3259,3267 ****
3265 ! #line 3262 "y.tab.c"
3266 break;
3268 ! case 156: /* simple_list: simple_list1 '&' */
3269 ! #line 1215 "/usr/local/src/chet/src/bash/src/parse.y"
3271 if ((yyvsp[-1].command)->type == cm_connection)
3272 --- 3278,3286 ----
3275 ! #line 3281 "y.tab.c"
3276 break;
3278 ! case 157: /* simple_list: simple_list1 '&' */
3279 ! #line 1230 "/usr/local/src/chet/src/bash/src/parse.y"
3281 if ((yyvsp[-1].command)->type == cm_connection)
3282 ***************
3283 *** 3281,3289 ****
3286 ! #line 3284 "y.tab.c"
3287 break;
3289 ! case 157: /* simple_list: simple_list1 ';' */
3290 ! #line 1233 "/usr/local/src/chet/src/bash/src/parse.y"
3292 (yyval.command) = (yyvsp[-1].command);
3293 --- 3300,3308 ----
3296 ! #line 3303 "y.tab.c"
3297 break;
3299 ! case 158: /* simple_list: simple_list1 ';' */
3300 ! #line 1248 "/usr/local/src/chet/src/bash/src/parse.y"
3302 (yyval.command) = (yyvsp[-1].command);
3303 ***************
3304 *** 3300,3320 ****
3307 ! #line 3303 "y.tab.c"
3308 break;
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;
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;
3322 ! case 160: /* simple_list1: simple_list1 '&' simple_list1 */
3323 ! #line 1254 "/usr/local/src/chet/src/bash/src/parse.y"
3325 if ((yyvsp[-2].command)->type == cm_connection)
3326 --- 3319,3339 ----
3329 ! #line 3322 "y.tab.c"
3330 break;
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;
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;
3344 ! case 161: /* simple_list1: simple_list1 '&' simple_list1 */
3345 ! #line 1269 "/usr/local/src/chet/src/bash/src/parse.y"
3347 if ((yyvsp[-2].command)->type == cm_connection)
3348 ***************
3349 *** 3323,3349 ****
3350 (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), '&');
3352 ! #line 3326 "y.tab.c"
3353 break;
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;
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;
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;
3373 ! case 164: /* pipeline_command: BANG pipeline_command */
3374 ! #line 1270 "/usr/local/src/chet/src/bash/src/parse.y"
3376 if ((yyvsp[0].command))
3377 --- 3342,3368 ----
3378 (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), '&');
3380 ! #line 3345 "y.tab.c"
3381 break;
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;
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;
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;
3401 ! case 165: /* pipeline_command: BANG pipeline_command */
3402 ! #line 1285 "/usr/local/src/chet/src/bash/src/parse.y"
3404 if ((yyvsp[0].command))
3405 ***************
3406 *** 3351,3359 ****
3407 (yyval.command) = (yyvsp[0].command);
3409 ! #line 3354 "y.tab.c"
3410 break;
3412 ! case 165: /* pipeline_command: timespec pipeline_command */
3413 ! #line 1276 "/usr/local/src/chet/src/bash/src/parse.y"
3415 if ((yyvsp[0].command))
3416 --- 3370,3378 ----
3417 (yyval.command) = (yyvsp[0].command);
3419 ! #line 3373 "y.tab.c"
3420 break;
3422 ! case 166: /* pipeline_command: timespec pipeline_command */
3423 ! #line 1291 "/usr/local/src/chet/src/bash/src/parse.y"
3425 if ((yyvsp[0].command))
3426 ***************
3427 *** 3361,3369 ****
3428 (yyval.command) = (yyvsp[0].command);
3430 ! #line 3364 "y.tab.c"
3431 break;
3433 ! case 166: /* pipeline_command: timespec list_terminator */
3434 ! #line 1282 "/usr/local/src/chet/src/bash/src/parse.y"
3436 ELEMENT x;
3437 --- 3380,3388 ----
3438 (yyval.command) = (yyvsp[0].command);
3440 ! #line 3383 "y.tab.c"
3441 break;
3443 ! case 167: /* pipeline_command: timespec list_terminator */
3444 ! #line 1297 "/usr/local/src/chet/src/bash/src/parse.y"
3446 ELEMENT x;
3447 ***************
3448 *** 3385,3393 ****
3449 parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */
3451 ! #line 3388 "y.tab.c"
3452 break;
3454 ! case 167: /* pipeline_command: BANG list_terminator */
3455 ! #line 1302 "/usr/local/src/chet/src/bash/src/parse.y"
3457 ELEMENT x;
3458 --- 3404,3412 ----
3459 parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */
3461 ! #line 3407 "y.tab.c"
3462 break;
3464 ! case 168: /* pipeline_command: BANG list_terminator */
3465 ! #line 1317 "/usr/local/src/chet/src/bash/src/parse.y"
3467 ELEMENT x;
3468 ***************
3469 *** 3410,3424 ****
3470 parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */
3472 ! #line 3413 "y.tab.c"
3473 break;
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;
3481 ! case 169: /* pipeline: pipeline BAR_AND newline_list pipeline */
3482 ! #line 1327 "/usr/local/src/chet/src/bash/src/parse.y"
3484 /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */
3485 --- 3429,3443 ----
3486 parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */
3488 ! #line 3432 "y.tab.c"
3489 break;
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;
3497 ! case 170: /* pipeline: pipeline BAR_AND newline_list pipeline */
3498 ! #line 1342 "/usr/local/src/chet/src/bash/src/parse.y"
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), '|');
3505 ! #line 3446 "y.tab.c"
3506 break;
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;
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;
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;
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;
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;
3539 ! #line 3480 "y.tab.c"
3541 default: break;
3542 --- 3462,3500 ----
3543 (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '|');
3545 ! #line 3465 "y.tab.c"
3546 break;
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;
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;
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;
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;
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;
3579 ! #line 3499 "y.tab.c"
3581 default: break;
3582 ***************
3583 *** 3670,3674 ****
3586 ! #line 1362 "/usr/local/src/chet/src/bash/src/parse.y"
3589 --- 3689,3693 ----
3592 ! #line 1377 "/usr/local/src/chet/src/bash/src/parse.y"
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
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
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);
3620 ***************
3621 *** 6468,6471 ****
3622 --- 6487,6491 ----
3624 /* yyparse() has already called yyerror() and reset_parser() */
3625 + parser_state |= PST_NOERROR;
3626 return (&matched_pair_error);
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). */
3635 ! #define PATCHLEVEL 17
3637 #endif /* _PATCHLEVEL_H_ */
3638 --- 26,30 ----
3639 looks for to find the patch level (for the sccs version string). */
3641 ! #define PATCHLEVEL 18
3643 #endif /* _PATCHLEVEL_H_ */