7 Bug-Reported-by: Todd Stein <toddbstein@gmail.com>
8 Eduardo A . Bustamante López <dualbus@gmail.com>
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
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
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
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)
43 + handle_eof_input_unit ();
55 if (current_token < 0)
56 #if defined (YYERRCODE) && !defined (YYUNDEF)
57 ! current_token = YYERRCODE;
59 ! current_token = YYerror;
63 if (current_token < 0)
64 #if defined (YYERRCODE) && !defined (YYUNDEF)
65 ! current_token = EOF_Reached ? YYEOF : YYERRCODE;
67 ! current_token = EOF_Reached ? YYEOF : YYUNDEF;
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);
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
92 /* YYFINAL -- State number of the termination state. */
94 /* YYLAST -- Last index in YYTABLE. */
98 /* YYFINAL -- State number of the termination state. */
100 /* YYLAST -- Last index in YYTABLE. */
105 /* YYNRULES -- Number of rules. */
106 ! #define YYNRULES 174
107 /* YYNSTATES -- Number of states. */
108 ! #define YYNSTATES 349
110 /* YYMAXUTOK -- Last valid token kind. */
113 /* YYNRULES -- Number of rules. */
114 ! #define YYNRULES 175
115 /* YYNSTATES -- Number of states. */
116 ! #define YYNSTATES 350
118 /* YYMAXUTOK -- Last valid token kind. */
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
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
170 ! #define YYPACT_NINF (-152)
172 #define yypact_value_is_default(Yyn) \
176 ! #define YYPACT_NINF (-125)
178 #define yypact_value_is_default(Yyn) \
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
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
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
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
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
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
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
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
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,
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,
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,
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,
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
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
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,
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
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,
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,
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
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 ();
885 + #line 2038 "y.tab.c"
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
897 ! #line 2031 "y.tab.c"
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"
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"
912 ! case 10: /* redirection: '>' WORD */
913 ! #line 472 "/usr/local/src/chet/src/bash/src/parse.y"
919 ! #line 2050 "y.tab.c"
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"
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"
934 ! case 11: /* redirection: '>' WORD */
935 ! #line 487 "/usr/local/src/chet/src/bash/src/parse.y"
940 (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0);
942 ! #line 2053 "y.tab.c"
945 ! case 11: /* redirection: '<' WORD */
946 ! #line 478 "/usr/local/src/chet/src/bash/src/parse.y"
950 (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0);
952 ! #line 2072 "y.tab.c"
955 ! case 12: /* redirection: '<' WORD */
956 ! #line 493 "/usr/local/src/chet/src/bash/src/parse.y"
961 (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0);
963 ! #line 2063 "y.tab.c"
966 ! case 12: /* redirection: NUMBER '>' WORD */
967 ! #line 484 "/usr/local/src/chet/src/bash/src/parse.y"
969 source.dest = (yyvsp[-2].number);
971 (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0);
973 ! #line 2082 "y.tab.c"
976 ! case 13: /* redirection: NUMBER '>' WORD */
977 ! #line 499 "/usr/local/src/chet/src/bash/src/parse.y"
979 source.dest = (yyvsp[-2].number);
982 (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0);
984 ! #line 2073 "y.tab.c"
987 ! case 13: /* redirection: NUMBER '<' WORD */
988 ! #line 490 "/usr/local/src/chet/src/bash/src/parse.y"
990 source.dest = (yyvsp[-2].number);
992 (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0);
994 ! #line 2092 "y.tab.c"
997 ! case 14: /* redirection: NUMBER '<' WORD */
998 ! #line 505 "/usr/local/src/chet/src/bash/src/parse.y"
1000 source.dest = (yyvsp[-2].number);
1003 (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0);
1005 ! #line 2083 "y.tab.c"
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);
1013 (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0);
1015 ! #line 2102 "y.tab.c"
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);
1024 (yyval.redirect) = make_redirection (source, r_output_direction, redir, REDIR_VARASSIGN);
1026 ! #line 2093 "y.tab.c"
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);
1034 (yyval.redirect) = make_redirection (source, r_output_direction, redir, REDIR_VARASSIGN);
1036 ! #line 2112 "y.tab.c"
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);
1045 (yyval.redirect) = make_redirection (source, r_input_direction, redir, REDIR_VARASSIGN);
1047 ! #line 2103 "y.tab.c"
1050 ! case 16: /* redirection: GREATER_GREATER WORD */
1051 ! #line 508 "/usr/local/src/chet/src/bash/src/parse.y"
1055 (yyval.redirect) = make_redirection (source, r_input_direction, redir, REDIR_VARASSIGN);
1057 ! #line 2122 "y.tab.c"
1060 ! case 17: /* redirection: GREATER_GREATER WORD */
1061 ! #line 523 "/usr/local/src/chet/src/bash/src/parse.y"
1066 (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0);
1068 ! #line 2113 "y.tab.c"
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);
1076 (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0);
1078 ! #line 2132 "y.tab.c"
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);
1087 (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0);
1089 ! #line 2123 "y.tab.c"
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);
1097 (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0);
1099 ! #line 2142 "y.tab.c"
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);
1108 (yyval.redirect) = make_redirection (source, r_appending_to, redir, REDIR_VARASSIGN);
1110 ! #line 2133 "y.tab.c"
1113 ! case 19: /* redirection: GREATER_BAR WORD */
1114 ! #line 526 "/usr/local/src/chet/src/bash/src/parse.y"
1118 (yyval.redirect) = make_redirection (source, r_appending_to, redir, REDIR_VARASSIGN);
1120 ! #line 2152 "y.tab.c"
1123 ! case 20: /* redirection: GREATER_BAR WORD */
1124 ! #line 541 "/usr/local/src/chet/src/bash/src/parse.y"
1129 (yyval.redirect) = make_redirection (source, r_output_force, redir, 0);
1131 ! #line 2143 "y.tab.c"
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);
1139 (yyval.redirect) = make_redirection (source, r_output_force, redir, 0);
1141 ! #line 2162 "y.tab.c"
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);
1150 (yyval.redirect) = make_redirection (source, r_output_force, redir, 0);
1152 ! #line 2153 "y.tab.c"
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);
1160 (yyval.redirect) = make_redirection (source, r_output_force, redir, 0);
1162 ! #line 2172 "y.tab.c"
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);
1171 (yyval.redirect) = make_redirection (source, r_output_force, redir, REDIR_VARASSIGN);
1173 ! #line 2163 "y.tab.c"
1176 ! case 22: /* redirection: LESS_GREATER WORD */
1177 ! #line 544 "/usr/local/src/chet/src/bash/src/parse.y"
1181 (yyval.redirect) = make_redirection (source, r_output_force, redir, REDIR_VARASSIGN);
1183 ! #line 2182 "y.tab.c"
1186 ! case 23: /* redirection: LESS_GREATER WORD */
1187 ! #line 559 "/usr/local/src/chet/src/bash/src/parse.y"
1192 (yyval.redirect) = make_redirection (source, r_input_output, redir, 0);
1194 ! #line 2173 "y.tab.c"
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);
1202 (yyval.redirect) = make_redirection (source, r_input_output, redir, 0);
1204 ! #line 2192 "y.tab.c"
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);
1213 (yyval.redirect) = make_redirection (source, r_input_output, redir, 0);
1215 ! #line 2183 "y.tab.c"
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);
1223 (yyval.redirect) = make_redirection (source, r_input_output, redir, 0);
1225 ! #line 2202 "y.tab.c"
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);
1234 (yyval.redirect) = make_redirection (source, r_input_output, redir, REDIR_VARASSIGN);
1236 ! #line 2193 "y.tab.c"
1239 ! case 25: /* redirection: LESS_LESS WORD */
1240 ! #line 562 "/usr/local/src/chet/src/bash/src/parse.y"
1244 (yyval.redirect) = make_redirection (source, r_input_output, redir, REDIR_VARASSIGN);
1246 ! #line 2212 "y.tab.c"
1249 ! case 26: /* redirection: LESS_LESS WORD */
1250 ! #line 577 "/usr/local/src/chet/src/bash/src/parse.y"
1255 push_heredoc ((yyval.redirect));
1257 ! #line 2204 "y.tab.c"
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);
1265 push_heredoc ((yyval.redirect));
1267 ! #line 2223 "y.tab.c"
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);
1276 push_heredoc ((yyval.redirect));
1278 ! #line 2215 "y.tab.c"
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);
1286 push_heredoc ((yyval.redirect));
1288 ! #line 2234 "y.tab.c"
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);
1297 push_heredoc ((yyval.redirect));
1299 ! #line 2226 "y.tab.c"
1302 ! case 28: /* redirection: LESS_LESS_MINUS WORD */
1303 ! #line 583 "/usr/local/src/chet/src/bash/src/parse.y"
1307 push_heredoc ((yyval.redirect));
1309 ! #line 2245 "y.tab.c"
1312 ! case 29: /* redirection: LESS_LESS_MINUS WORD */
1313 ! #line 598 "/usr/local/src/chet/src/bash/src/parse.y"
1318 push_heredoc ((yyval.redirect));
1320 ! #line 2237 "y.tab.c"
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);
1328 push_heredoc ((yyval.redirect));
1330 ! #line 2256 "y.tab.c"
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);
1339 push_heredoc ((yyval.redirect));
1341 ! #line 2248 "y.tab.c"
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);
1349 push_heredoc ((yyval.redirect));
1351 ! #line 2267 "y.tab.c"
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);
1360 push_heredoc ((yyval.redirect));
1362 ! #line 2259 "y.tab.c"
1365 ! case 31: /* redirection: LESS_LESS_LESS WORD */
1366 ! #line 604 "/usr/local/src/chet/src/bash/src/parse.y"
1370 push_heredoc ((yyval.redirect));
1372 ! #line 2278 "y.tab.c"
1375 ! case 32: /* redirection: LESS_LESS_LESS WORD */
1376 ! #line 619 "/usr/local/src/chet/src/bash/src/parse.y"
1381 (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0);
1383 ! #line 2269 "y.tab.c"
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);
1391 (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0);
1393 ! #line 2288 "y.tab.c"
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);
1402 (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0);
1404 ! #line 2279 "y.tab.c"
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);
1412 (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0);
1414 ! #line 2298 "y.tab.c"
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);
1423 (yyval.redirect) = make_redirection (source, r_reading_string, redir, REDIR_VARASSIGN);
1425 ! #line 2289 "y.tab.c"
1428 ! case 34: /* redirection: LESS_AND NUMBER */
1429 ! #line 622 "/usr/local/src/chet/src/bash/src/parse.y"
1433 (yyval.redirect) = make_redirection (source, r_reading_string, redir, REDIR_VARASSIGN);
1435 ! #line 2308 "y.tab.c"
1438 ! case 35: /* redirection: LESS_AND NUMBER */
1439 ! #line 637 "/usr/local/src/chet/src/bash/src/parse.y"
1444 (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0);
1446 ! #line 2299 "y.tab.c"
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);
1454 (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0);
1456 ! #line 2318 "y.tab.c"
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);
1465 (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0);
1467 ! #line 2309 "y.tab.c"
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);
1475 (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0);
1477 ! #line 2328 "y.tab.c"
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);
1486 (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, REDIR_VARASSIGN);
1488 ! #line 2319 "y.tab.c"
1491 ! case 37: /* redirection: GREATER_AND NUMBER */
1492 ! #line 640 "/usr/local/src/chet/src/bash/src/parse.y"
1496 (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, REDIR_VARASSIGN);
1498 ! #line 2338 "y.tab.c"
1501 ! case 38: /* redirection: GREATER_AND NUMBER */
1502 ! #line 655 "/usr/local/src/chet/src/bash/src/parse.y"
1507 (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0);
1509 ! #line 2329 "y.tab.c"
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);
1517 (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0);
1519 ! #line 2348 "y.tab.c"
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);
1528 (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0);
1530 ! #line 2339 "y.tab.c"
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);
1538 (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0);
1540 ! #line 2358 "y.tab.c"
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);
1549 (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, REDIR_VARASSIGN);
1551 ! #line 2349 "y.tab.c"
1554 ! case 40: /* redirection: LESS_AND WORD */
1555 ! #line 658 "/usr/local/src/chet/src/bash/src/parse.y"
1559 (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, REDIR_VARASSIGN);
1561 ! #line 2368 "y.tab.c"
1564 ! case 41: /* redirection: LESS_AND WORD */
1565 ! #line 673 "/usr/local/src/chet/src/bash/src/parse.y"
1570 (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0);
1572 ! #line 2359 "y.tab.c"
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);
1580 (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0);
1582 ! #line 2378 "y.tab.c"
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);
1591 (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0);
1593 ! #line 2369 "y.tab.c"
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);
1601 (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0);
1603 ! #line 2388 "y.tab.c"
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);
1612 (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, REDIR_VARASSIGN);
1614 ! #line 2379 "y.tab.c"
1617 ! case 43: /* redirection: GREATER_AND WORD */
1618 ! #line 676 "/usr/local/src/chet/src/bash/src/parse.y"
1622 (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, REDIR_VARASSIGN);
1624 ! #line 2398 "y.tab.c"
1627 ! case 44: /* redirection: GREATER_AND WORD */
1628 ! #line 691 "/usr/local/src/chet/src/bash/src/parse.y"
1633 (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0);
1635 ! #line 2389 "y.tab.c"
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);
1643 (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0);
1645 ! #line 2408 "y.tab.c"
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);
1654 (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0);
1656 ! #line 2399 "y.tab.c"
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);
1664 (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0);
1666 ! #line 2418 "y.tab.c"
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);
1675 (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, REDIR_VARASSIGN);
1677 ! #line 2409 "y.tab.c"
1680 ! case 46: /* redirection: GREATER_AND '-' */
1681 ! #line 694 "/usr/local/src/chet/src/bash/src/parse.y"
1685 (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, REDIR_VARASSIGN);
1687 ! #line 2428 "y.tab.c"
1690 ! case 47: /* redirection: GREATER_AND '-' */
1691 ! #line 709 "/usr/local/src/chet/src/bash/src/parse.y"
1696 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1698 ! #line 2419 "y.tab.c"
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);
1706 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1708 ! #line 2438 "y.tab.c"
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);
1717 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1719 ! #line 2429 "y.tab.c"
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);
1727 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1729 ! #line 2448 "y.tab.c"
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);
1738 (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN);
1740 ! #line 2439 "y.tab.c"
1743 ! case 49: /* redirection: LESS_AND '-' */
1744 ! #line 712 "/usr/local/src/chet/src/bash/src/parse.y"
1748 (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN);
1750 ! #line 2458 "y.tab.c"
1753 ! case 50: /* redirection: LESS_AND '-' */
1754 ! #line 727 "/usr/local/src/chet/src/bash/src/parse.y"
1759 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1761 ! #line 2449 "y.tab.c"
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);
1769 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1771 ! #line 2468 "y.tab.c"
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);
1780 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1782 ! #line 2459 "y.tab.c"
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);
1790 (yyval.redirect) = make_redirection (source, r_close_this, redir, 0);
1792 ! #line 2478 "y.tab.c"
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);
1801 (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN);
1803 ! #line 2469 "y.tab.c"
1806 ! case 52: /* redirection: AND_GREATER WORD */
1807 ! #line 730 "/usr/local/src/chet/src/bash/src/parse.y"
1811 (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN);
1813 ! #line 2488 "y.tab.c"
1816 ! case 53: /* redirection: AND_GREATER WORD */
1817 ! #line 745 "/usr/local/src/chet/src/bash/src/parse.y"
1822 (yyval.redirect) = make_redirection (source, r_err_and_out, redir, 0);
1824 ! #line 2479 "y.tab.c"
1827 ! case 53: /* redirection: AND_GREATER_GREATER WORD */
1828 ! #line 736 "/usr/local/src/chet/src/bash/src/parse.y"
1832 (yyval.redirect) = make_redirection (source, r_err_and_out, redir, 0);
1834 ! #line 2498 "y.tab.c"
1837 ! case 54: /* redirection: AND_GREATER_GREATER WORD */
1838 ! #line 751 "/usr/local/src/chet/src/bash/src/parse.y"
1843 (yyval.redirect) = make_redirection (source, r_append_err_and_out, redir, 0);
1845 ! #line 2489 "y.tab.c"
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"
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"
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"
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"
1874 ! case 58: /* redirection_list: redirection_list redirection */
1875 ! #line 756 "/usr/local/src/chet/src/bash/src/parse.y"
1877 register REDIRECT *t;
1879 (yyval.redirect) = make_redirection (source, r_append_err_and_out, redir, 0);
1881 ! #line 2508 "y.tab.c"
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"
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"
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"
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"
1910 ! case 59: /* redirection_list: redirection_list redirection */
1911 ! #line 771 "/usr/local/src/chet/src/bash/src/parse.y"
1913 register REDIRECT *t;
1916 (yyval.redirect) = (yyvsp[-1].redirect);
1918 ! #line 2528 "y.tab.c"
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"
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"
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"
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"
1945 ! case 63: /* command: shell_command redirection_list */
1946 ! #line 777 "/usr/local/src/chet/src/bash/src/parse.y"
1950 (yyval.redirect) = (yyvsp[-1].redirect);
1952 ! #line 2547 "y.tab.c"
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"
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"
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"
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"
1979 ! case 64: /* command: shell_command redirection_list */
1980 ! #line 792 "/usr/local/src/chet/src/bash/src/parse.y"
1985 (yyval.command) = (yyvsp[-1].command);
1987 ! #line 2572 "y.tab.c"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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);
2145 (yyval.command) = (yyvsp[-1].command);
2147 ! #line 2591 "y.tab.c"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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);
2306 if (word_top > 0) word_top--;
2308 ! #line 2732 "y.tab.c"
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);
2316 if (word_top > 0) word_top--;
2318 ! #line 2751 "y.tab.c"
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);
2327 if (word_top > 0) word_top--;
2329 ! #line 2742 "y.tab.c"
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);
2337 if (word_top > 0) word_top--;
2339 ! #line 2761 "y.tab.c"
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);
2348 if (word_top > 0) word_top--;
2350 ! #line 2752 "y.tab.c"
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);
2358 if (word_top > 0) word_top--;
2360 ! #line 2771 "y.tab.c"
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);
2369 if (word_top > 0) word_top--;
2371 ! #line 2762 "y.tab.c"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
2503 ! case 105: /* function_body: shell_command redirection_list */
2504 ! #line 962 "/usr/local/src/chet/src/bash/src/parse.y"
2508 if (word_top > 0) word_top--;
2510 ! #line 2781 "y.tab.c"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
2642 ! case 106: /* function_body: shell_command redirection_list */
2643 ! #line 977 "/usr/local/src/chet/src/bash/src/parse.y"
2648 (yyval.command) = (yyvsp[-1].command);
2650 ! #line 2924 "y.tab.c"
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"
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"
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"
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"
2687 ! case 110: /* coproc: COPROC shell_command redirection_list */
2688 ! #line 1015 "/usr/local/src/chet/src/bash/src/parse.y"
2692 (yyval.command) = (yyvsp[-1].command);
2694 ! #line 2943 "y.tab.c"
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"
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"
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"
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"
2731 ! case 111: /* coproc: COPROC shell_command redirection_list */
2732 ! #line 1030 "/usr/local/src/chet/src/bash/src/parse.y"
2737 (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
2739 ! #line 2979 "y.tab.c"
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"
2751 ! case 112: /* coproc: COPROC WORD shell_command redirection_list */
2752 ! #line 1037 "/usr/local/src/chet/src/bash/src/parse.y"
2756 (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
2758 ! #line 2998 "y.tab.c"
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"
2770 ! case 113: /* coproc: COPROC WORD shell_command redirection_list */
2771 ! #line 1052 "/usr/local/src/chet/src/bash/src/parse.y"
2776 (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
2778 ! #line 3009 "y.tab.c"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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);
2927 (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
2929 ! #line 3028 "y.tab.c"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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);
3079 gather_here_documents ();
3081 ! #line 3160 "y.tab.c"
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"
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)
3097 gather_here_documents ();
3099 ! #line 3179 "y.tab.c"
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"
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)
3116 (yyval.command) = command_connect ((yyvsp[-2].command), (COMMAND *)NULL, '&');
3118 ! #line 3179 "y.tab.c"
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"
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"
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)
3138 (yyval.command) = command_connect ((yyvsp[-2].command), (COMMAND *)NULL, '&');
3140 ! #line 3198 "y.tab.c"
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"
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"
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)
3161 (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '&');
3163 ! #line 3202 "y.tab.c"
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"
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)
3177 (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '&');
3179 ! #line 3221 "y.tab.c"
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"
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)
3194 (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';');
3196 ! #line 3219 "y.tab.c"
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"
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"
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"
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"
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);
3228 (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';');
3230 ! #line 3238 "y.tab.c"
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"
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"
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"
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"
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);
3265 ! #line 3262 "y.tab.c"
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)
3275 ! #line 3281 "y.tab.c"
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)
3286 ! #line 3284 "y.tab.c"
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);
3296 ! #line 3303 "y.tab.c"
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);
3307 ! #line 3303 "y.tab.c"
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"
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"
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)
3329 ! #line 3322 "y.tab.c"
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"
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"
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)
3350 (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), '&');
3352 ! #line 3326 "y.tab.c"
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"
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"
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"
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))
3378 (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), '&');
3380 ! #line 3345 "y.tab.c"
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"
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"
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"
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))
3407 (yyval.command) = (yyvsp[0].command);
3409 ! #line 3354 "y.tab.c"
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))
3417 (yyval.command) = (yyvsp[0].command);
3419 ! #line 3373 "y.tab.c"
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))
3428 (yyval.command) = (yyvsp[0].command);
3430 ! #line 3364 "y.tab.c"
3433 ! case 166: /* pipeline_command: timespec list_terminator */
3434 ! #line 1282 "/usr/local/src/chet/src/bash/src/parse.y"
3438 (yyval.command) = (yyvsp[0].command);
3440 ! #line 3383 "y.tab.c"
3443 ! case 167: /* pipeline_command: timespec list_terminator */
3444 ! #line 1297 "/usr/local/src/chet/src/bash/src/parse.y"
3449 parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */
3451 ! #line 3388 "y.tab.c"
3454 ! case 167: /* pipeline_command: BANG list_terminator */
3455 ! #line 1302 "/usr/local/src/chet/src/bash/src/parse.y"
3459 parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */
3461 ! #line 3407 "y.tab.c"
3464 ! case 168: /* pipeline_command: BANG list_terminator */
3465 ! #line 1317 "/usr/local/src/chet/src/bash/src/parse.y"
3470 parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */
3472 ! #line 3413 "y.tab.c"
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"
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 */
3486 parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */
3488 ! #line 3432 "y.tab.c"
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"
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 */
3503 (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '|');
3505 ! #line 3446 "y.tab.c"
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"
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"
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"
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"
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"
3539 ! #line 3480 "y.tab.c"
3543 (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '|');
3545 ! #line 3465 "y.tab.c"
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"
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"
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"
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"
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"
3579 ! #line 3499 "y.tab.c"
3586 ! #line 1362 "/usr/local/src/chet/src/bash/src/parse.y"
3592 ! #line 1377 "/usr/local/src/chet/src/bash/src/parse.y"
3597 if (current_token < 0)
3598 #if defined (YYERRCODE) && !defined (YYUNDEF)
3599 ! current_token = YYERRCODE;
3601 ! current_token = YYerror;
3605 if (current_token < 0)
3606 #if defined (YYERRCODE) && !defined (YYUNDEF)
3607 ! current_token = EOF_Reached ? YYEOF : YYERRCODE;
3609 ! current_token = EOF_Reached ? YYEOF : YYUNDEF;
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);
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
3633 looks for to find the patch level (for the sccs version string). */
3635 ! #define PATCHLEVEL 17
3637 #endif /* _PATCHLEVEL_H_ */
3639 looks for to find the patch level (for the sccs version string). */
3641 ! #define PATCHLEVEL 18
3643 #endif /* _PATCHLEVEL_H_ */