1 extern char *malloc(), *realloc();
4 /* $RCSfile: a2p.y,v $$Revision: 4.0.1.2 $$Date: 92/06/08 16:13:03 $
6 * Copyright (c) 1991, Larry Wall
8 * You may distribute under the terms of either the GNU General Public
9 * License or the Artistic License, as specified in the README file.
12 * Revision 4.0.1.2 92/06/08 16:13:03 lwall
13 * patch20: in a2p, getline should allow variable to be array element
15 * Revision 4.0.1.1 91/06/07 12:12:41 lwall
16 * patch4: new copyright notice
18 * Revision 4.0 91/03/20 01:57:21 lwall
78 #define yyclearin yychar = -1
79 #define yyerrok yyerrflag = 0
83 #define YYMAXDEPTH 150
88 YYSTYPE yylval, yyval;
89 # define YYERRCODE 256
103 63, 44, 156, 32, 50, 31, 222, 73, 74, 75,
104 210, 53, 45, 46, 124, 49, 86, 307, 104, 158,
105 74, 75, 52, 54, 53, 302, 126, 271, 306, 265,
106 106, 107, 270, 245, 51, 157, 269, 21, 56, 92,
107 2, 131, 55, 20, 48, 72, 19, 90, 69, 132,
108 47, 196, 241, 102, 100, 272, 195, 193, 109, 110,
109 111, 112, 253, 76, 79, 252, 72, 139, 15, 77,
110 237, 68, 78, 311, 236, 160, 66, 64, 309, 65,
111 293, 67, 187, 174, 255, 139, 198, 184, 183, 130,
112 68, 80, 179, 129, 5, 66, 64, 71, 65, 128,
113 67, 68, 286, 214, 199, 212, 66, 211, 105, 103,
114 99, 67, 98, 97, 96, 95, 71, 108, 94, 89,
115 88, 152, 87, 4, 153, 10, 9, 200, 69, 14,
116 177, 178, 239, 140, 13, 3, 136, 137, 127, 1,
117 0, 0, 0, 185, 186, 0, 72, 69, 151, 0,
118 0, 154, 0, 0, 0, 0, 0, 0, 69, 0,
119 0, 0, 0, 204, 205, 72, 0, 106, 107, 0,
120 0, 0, 0, 0, 175, 176, 72, 213, 0, 215,
121 76, 0, 140, 0, 0, 0, 77, 0, 0, 78,
122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
123 0, 0, 0, 230, 231, 232, 233, 234, 235, 0,
124 206, 207, 0, 0, 0, 0, 244, 0, 0, 0,
125 159, 106, 107, 34, 35, 0, 162, 163, 37, 39,
126 170, 0, 171, 173, 248, 166, 165, 164, 167, 168,
127 33, 172, 42, 43, 41, 161, 36, 169, 44, 18,
128 247, 27, 44, 38, 40, 54, 53, 249, 28, 45,
129 46, 29, 30, 45, 46, 54, 53, 54, 53, 0,
130 282, 18, 18, 238, 284, 285, 242, 243, 289, 290,
131 54, 53, 240, 91, 54, 53, 0, 299, 300, 54,
132 53, 0, 304, 0, 0, 6, 7, 8, 18, 0,
133 0, 298, 0, 113, 114, 115, 116, 63, 70, 18,
134 32, 310, 31, 313, 312, 315, 314, 316, 0, 18,
135 0, 0, 303, 0, 247, 0, 158, 70, 201, 202,
136 203, 0, 133, 135, 91, 91, 308, 287, 247, 141,
137 143, 144, 145, 146, 147, 149, 91, 0, 0, 91,
138 0, 301, 0, 0, 0, 18, 18, 0, 0, 0,
139 63, 0, 0, 32, 0, 31, 0, 0, 0, 0,
140 0, 0, 0, 0, 0, 0, 0, 0, 181, 158,
141 0, 0, 0, 0, 0, 0, 0, 0, 141, 0,
142 174, 0, 305, 0, 0, 0, 0, 0, 0, 0,
143 0, 0, 0, 0, 0, 0, 0, 0, 91, 91,
144 63, 0, 208, 32, 209, 31, 0, 0, 0, 0,
145 0, 0, 0, 0, 0, 0, 0, 0, 0, 158,
146 0, 219, 220, 0, 221, 0, 223, 225, 226, 227,
147 228, 229, 0, 174, 0, 274, 0, 0, 0, 0,
148 0, 0, 0, 0, 0, 0, 0, 18, 18, 0,
149 246, 0, 0, 0, 0, 0, 0, 0, 0, 0,
150 0, 0, 63, 0, 0, 32, 0, 31, 0, 0,
151 0, 0, 266, 0, 0, 0, 267, 268, 0, 0,
152 0, 158, 0, 174, 0, 217, 275, 0, 276, 0,
153 0, 0, 0, 0, 278, 0, 279, 0, 280, 0,
154 281, 0, 0, 0, 0, 0, 0, 0, 18, 0,
155 0, 0, 0, 0, 0, 0, 0, 159, 0, 0,
156 34, 35, 18, 162, 163, 37, 39, 170, 0, 171,
157 173, 0, 166, 165, 164, 167, 168, 33, 172, 42,
158 43, 41, 0, 36, 169, 174, 0, 216, 27, 44,
159 38, 40, 0, 0, 0, 28, 0, 0, 29, 30,
160 45, 46, 63, 0, 0, 32, 0, 31, 0, 0,
161 159, 0, 0, 34, 35, 0, 162, 163, 37, 39,
162 170, 0, 171, 173, 0, 166, 165, 164, 167, 168,
163 33, 172, 42, 43, 41, 0, 36, 169, 0, 0,
164 0, 27, 44, 38, 40, 0, 0, 0, 28, 0,
165 0, 29, 30, 45, 46, 0, 25, 0, 0, 32,
166 159, 31, 0, 34, 35, 0, 162, 163, 37, 39,
167 170, 0, 171, 173, 0, 166, 165, 164, 167, 168,
168 33, 172, 42, 43, 41, 0, 36, 169, 0, 0,
169 0, 27, 44, 38, 40, 0, 0, 0, 28, 0,
170 0, 29, 30, 45, 46, 63, 0, 0, 32, 0,
171 31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
172 0, 0, 159, 0, 158, 34, 35, 0, 162, 163,
173 37, 39, 170, 0, 171, 173, 0, 166, 165, 164,
174 167, 168, 33, 172, 42, 43, 41, 0, 36, 169,
175 0, 0, 0, 27, 44, 38, 40, 0, 0, 0,
176 28, 0, 0, 29, 30, 45, 46, 63, 0, 0,
177 32, 0, 31, 0, 0, 0, 0, 0, 0, 0,
178 0, 0, 0, 0, 0, 0, 158, 0, 174, 0,
179 197, 0, 0, 0, 0, 0, 0, 0, 0, 0,
180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
181 0, 0, 63, 0, 0, 32, 138, 31, 0, 0,
182 0, 0, 0, 0, 0, 34, 35, 0, 162, 163,
183 37, 39, 59, 0, 58, 0, 0, 166, 165, 164,
184 167, 168, 33, 0, 42, 43, 41, 0, 36, 169,
185 174, 0, 155, 27, 44, 38, 40, 0, 0, 0,
186 28, 0, 0, 29, 30, 45, 46, 0, 0, 0,
187 0, 0, 0, 0, 0, 24, 0, 106, 107, 34,
188 35, 0, 0, 0, 37, 39, 0, 0, 0, 0,
189 0, 0, 0, 0, 0, 0, 33, 0, 42, 43,
190 41, 0, 36, 0, 0, 0, 0, 27, 44, 38,
191 40, 0, 0, 0, 28, 0, 26, 29, 30, 45,
192 46, 0, 0, 0, 0, 159, 0, 0, 34, 35,
193 0, 162, 163, 37, 39, 170, 0, 171, 173, 0,
194 166, 165, 164, 167, 168, 33, 172, 42, 43, 41,
195 63, 36, 169, 32, 0, 31, 27, 44, 38, 40,
196 0, 0, 0, 28, 0, 0, 29, 30, 45, 46,
197 59, 0, 58, 0, 0, 0, 0, 0, 0, 0,
198 0, 0, 0, 0, 0, 0, 0, 159, 0, 0,
199 34, 35, 0, 162, 163, 37, 39, 170, 0, 171,
200 173, 0, 166, 165, 164, 167, 168, 33, 172, 42,
201 43, 41, 0, 36, 169, 23, 0, 0, 27, 44,
202 38, 40, 0, 0, 0, 28, 0, 0, 29, 30,
203 45, 46, 0, 0, 62, 34, 35, 0, 0, 0,
204 37, 39, 0, 0, 0, 81, 82, 62, 62, 85,
205 0, 0, 33, 0, 42, 43, 41, 0, 36, 0,
206 0, 0, 62, 27, 44, 38, 40, 60, 57, 0,
207 28, 0, 0, 29, 30, 45, 46, 0, 0, 0,
208 62, 62, 62, 62, 62, 62, 25, 62, 0, 32,
209 0, 31, 0, 0, 0, 0, 0, 0, 0, 0,
210 0, 0, 0, 0, 0, 0, 0, 62, 0, 0,
211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
212 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,
213 62, 62, 62, 0, 0, 0, 0, 0, 0, 0,
214 0, 0, 180, 0, 0, 0, 0, 0, 0, 62,
215 63, 62, 0, 32, 0, 31, 0, 62, 0, 62,
216 62, 62, 62, 62, 0, 62, 0, 0, 0, 12,
217 0, 0, 0, 34, 35, 0, 0, 62, 37, 39,
218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
219 33, 0, 42, 43, 41, 62, 36, 62, 0, 0,
220 0, 27, 44, 38, 40, 60, 57, 0, 28, 0,
221 0, 29, 30, 45, 46, 0, 0, 0, 0, 0,
222 0, 0, 0, 0, 62, 62, 0, 0, 0, 0,
223 0, 0, 0, 0, 0, 62, 62, 62, 0, 62,
224 0, 62, 62, 62, 62, 62, 0, 0, 0, 0,
225 0, 0, 0, 22, 0, 0, 0, 0, 0, 0,
226 0, 0, 62, 0, 0, 0, 0, 0, 0, 0,
227 0, 0, 61, 0, 0, 0, 0, 0, 0, 0,
228 0, 0, 62, 62, 62, 83, 84, 0, 0, 0,
229 0, 62, 62, 0, 62, 62, 62, 62, 0, 0,
230 101, 0, 0, 16, 17, 24, 0, 0, 0, 34,
231 35, 0, 0, 0, 37, 39, 0, 0, 118, 119,
232 120, 121, 122, 123, 0, 125, 33, 0, 42, 43,
233 41, 11, 36, 0, 0, 0, 0, 27, 44, 38,
234 40, 0, 0, 0, 28, 61, 26, 29, 30, 45,
235 46, 0, 25, 0, 0, 32, 0, 31, 0, 0,
236 0, 0, 0, 0, 0, 0, 0, 61, 61, 61,
237 61, 288, 0, 34, 35, 0, 0, 0, 37, 39,
238 0, 0, 0, 0, 0, 0, 0, 61, 0, 61,
239 33, 0, 42, 43, 41, 61, 36, 61, 61, 61,
240 61, 61, 25, 61, 0, 32, 0, 31, 28, 0,
241 0, 29, 30, 45, 46, 61, 0, 0, 0, 0,
242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
243 0, 0, 0, 218, 0, 61, 0, 0, 0, 0,
244 0, 0, 0, 0, 63, 263, 0, 32, 264, 31,
245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
246 0, 0, 61, 61, 0, 0, 0, 0, 0, 0,
247 0, 0, 0, 61, 61, 61, 0, 61, 0, 61,
248 61, 61, 61, 61, 0, 0, 63, 261, 0, 32,
249 262, 31, 0, 0, 0, 0, 0, 0, 0, 0,
250 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
252 61, 61, 61, 0, 0, 0, 0, 0, 0, 61,
253 61, 0, 61, 61, 61, 61, 63, 259, 0, 32,
254 260, 31, 0, 0, 0, 0, 0, 0, 0, 0,
255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
257 0, 24, 0, 0, 0, 34, 35, 0, 0, 0,
258 37, 39, 63, 257, 0, 32, 258, 31, 0, 0,
259 0, 0, 33, 0, 42, 43, 41, 0, 36, 0,
260 0, 0, 0, 27, 44, 38, 40, 0, 0, 0,
261 28, 0, 26, 29, 30, 45, 46, 0, 0, 0,
262 0, 24, 0, 0, 0, 34, 35, 0, 0, 0,
263 37, 39, 63, 251, 0, 32, 250, 31, 0, 0,
264 0, 0, 33, 0, 42, 43, 41, 0, 36, 0,
265 0, 0, 0, 27, 44, 38, 40, 0, 0, 0,
266 28, 0, 26, 29, 30, 45, 46, 34, 35, 0,
267 0, 0, 37, 39, 0, 0, 63, 0, 0, 32,
268 0, 31, 0, 0, 33, 0, 42, 43, 41, 0,
269 36, 0, 0, 0, 0, 27, 44, 38, 40, 0,
270 0, 0, 28, 0, 0, 29, 30, 45, 46, 34,
271 35, 0, 0, 0, 37, 39, 0, 0, 0, 0,
272 0, 0, 142, 0, 0, 32, 33, 31, 42, 43,
273 41, 0, 36, 0, 0, 0, 0, 27, 44, 38,
274 40, 0, 0, 0, 28, 0, 0, 29, 30, 45,
275 46, 0, 0, 0, 0, 0, 0, 0, 0, 34,
276 35, 0, 0, 0, 37, 39, 63, 297, 0, 32,
277 0, 31, 0, 0, 0, 0, 33, 0, 42, 43,
278 41, 0, 36, 0, 0, 0, 0, 27, 44, 38,
279 40, 0, 0, 0, 28, 0, 0, 29, 30, 45,
280 46, 0, 0, 0, 0, 34, 35, 0, 0, 0,
281 37, 39, 63, 296, 0, 32, 0, 31, 0, 0,
282 0, 0, 33, 0, 42, 43, 41, 0, 36, 0,
283 0, 0, 0, 27, 44, 38, 40, 0, 0, 0,
284 28, 0, 0, 29, 30, 45, 46, 0, 0, 0,
285 0, 0, 0, 0, 0, 34, 35, 0, 0, 0,
286 37, 39, 63, 295, 0, 32, 0, 31, 0, 0,
287 0, 0, 33, 0, 42, 43, 41, 0, 36, 0,
288 0, 0, 0, 27, 44, 38, 40, 0, 0, 0,
289 28, 0, 0, 29, 30, 45, 46, 106, 107, 34,
290 35, 0, 0, 0, 37, 39, 63, 294, 0, 32,
291 0, 31, 0, 0, 0, 0, 33, 0, 42, 43,
292 41, 0, 36, 0, 0, 0, 0, 27, 44, 38,
293 40, 0, 0, 0, 28, 0, 0, 29, 30, 45,
294 46, 24, 0, 0, 0, 34, 35, 0, 0, 0,
295 37, 39, 63, 292, 0, 32, 0, 31, 0, 0,
296 0, 0, 33, 0, 42, 43, 41, 0, 36, 0,
297 0, 0, 0, 27, 44, 38, 40, 0, 0, 0,
298 28, 0, 26, 29, 30, 45, 46, 0, 0, 34,
299 35, 0, 0, 0, 37, 39, 63, 291, 0, 32,
300 0, 31, 0, 0, 0, 0, 33, 0, 42, 43,
301 41, 0, 36, 0, 0, 0, 0, 27, 44, 38,
302 40, 0, 0, 0, 28, 0, 0, 29, 30, 45,
303 46, 0, 0, 0, 0, 34, 35, 0, 0, 63,
304 37, 39, 32, 0, 31, 0, 0, 0, 0, 0,
305 0, 0, 33, 0, 42, 43, 41, 0, 36, 0,
306 0, 0, 0, 27, 44, 38, 40, 0, 0, 0,
307 28, 0, 0, 29, 30, 45, 46, 0, 0, 0,
308 0, 0, 0, 0, 0, 34, 35, 0, 0, 0,
309 37, 39, 283, 63, 0, 0, 32, 0, 31, 0,
310 0, 0, 33, 0, 42, 43, 41, 0, 36, 0,
311 0, 0, 0, 27, 44, 38, 40, 0, 0, 0,
312 28, 0, 0, 29, 30, 45, 46, 0, 0, 34,
313 35, 0, 0, 0, 37, 39, 63, 273, 0, 32,
314 0, 31, 0, 0, 0, 0, 33, 0, 42, 43,
315 41, 0, 36, 0, 0, 0, 0, 27, 44, 38,
316 40, 0, 0, 0, 28, 0, 0, 29, 30, 45,
317 46, 0, 0, 0, 0, 34, 35, 0, 0, 0,
318 37, 39, 63, 256, 0, 32, 0, 31, 0, 0,
319 0, 0, 33, 0, 42, 43, 41, 0, 36, 0,
320 0, 0, 0, 27, 44, 38, 40, 0, 0, 0,
321 28, 0, 0, 29, 30, 45, 46, 0, 0, 34,
322 35, 0, 0, 0, 37, 39, 63, 254, 0, 32,
323 0, 31, 0, 0, 0, 0, 33, 0, 42, 43,
324 41, 0, 36, 0, 0, 0, 0, 27, 44, 38,
325 40, 0, 0, 0, 28, 0, 0, 29, 30, 45,
326 46, 0, 34, 35, 0, 0, 0, 37, 39, 0,
327 0, 0, 63, 0, 0, 32, 0, 31, 0, 33,
328 0, 42, 43, 41, 0, 36, 0, 0, 0, 0,
329 27, 44, 38, 40, 0, 0, 0, 28, 0, 0,
330 29, 30, 45, 46, 0, 0, 0, 0, 0, 0,
331 0, 0, 277, 0, 0, 63, 34, 35, 32, 194,
332 31, 37, 39, 0, 0, 0, 0, 0, 0, 0,
333 0, 0, 0, 33, 0, 42, 43, 41, 0, 36,
334 0, 0, 0, 0, 27, 44, 38, 40, 0, 0,
335 0, 28, 0, 0, 29, 30, 45, 46, 63, 34,
336 35, 32, 192, 31, 37, 39, 0, 0, 0, 0,
337 0, 0, 0, 0, 0, 0, 33, 0, 42, 43,
338 41, 0, 36, 0, 0, 0, 0, 27, 44, 38,
339 40, 0, 0, 0, 28, 0, 0, 29, 30, 45,
340 46, 0, 0, 0, 63, 34, 35, 32, 191, 31,
341 37, 39, 0, 0, 0, 0, 0, 0, 0, 0,
342 0, 0, 33, 0, 42, 43, 41, 0, 36, 0,
343 0, 0, 0, 27, 44, 38, 40, 0, 0, 0,
344 28, 0, 0, 29, 30, 45, 46, 0, 63, 34,
345 35, 32, 190, 31, 37, 39, 0, 0, 0, 0,
346 0, 0, 0, 0, 0, 0, 33, 0, 42, 43,
347 41, 0, 36, 0, 0, 0, 0, 27, 44, 38,
348 40, 0, 0, 0, 28, 0, 0, 29, 30, 45,
349 46, 224, 0, 0, 63, 34, 35, 32, 189, 31,
350 37, 39, 0, 0, 0, 0, 0, 0, 0, 0,
351 0, 0, 33, 0, 42, 43, 41, 0, 36, 0,
352 0, 0, 0, 27, 44, 38, 40, 0, 0, 0,
353 28, 0, 0, 29, 30, 45, 46, 63, 34, 35,
354 32, 188, 31, 37, 39, 0, 0, 0, 0, 0,
355 0, 0, 0, 0, 0, 33, 0, 42, 43, 41,
356 0, 36, 0, 0, 0, 0, 27, 44, 38, 40,
357 0, 0, 0, 28, 0, 0, 29, 30, 45, 46,
358 0, 34, 35, 0, 0, 0, 37, 39, 63, 182,
359 0, 32, 0, 31, 0, 0, 0, 0, 33, 0,
360 42, 43, 41, 0, 36, 0, 0, 0, 0, 27,
361 44, 38, 40, 0, 0, 0, 28, 0, 0, 29,
362 30, 45, 46, 0, 0, 0, 0, 34, 35, 0,
363 0, 0, 37, 39, 63, 0, 0, 32, 0, 31,
364 0, 0, 0, 0, 33, 0, 42, 43, 41, 0,
365 36, 0, 0, 0, 0, 27, 44, 38, 40, 0,
366 0, 0, 28, 0, 0, 29, 30, 45, 46, 0,
367 0, 34, 35, 0, 0, 0, 37, 39, 0, 0,
368 63, 0, 0, 32, 0, 31, 0, 0, 33, 0,
369 42, 43, 41, 0, 36, 0, 0, 0, 0, 27,
370 44, 38, 40, 0, 0, 0, 28, 0, 0, 29,
371 30, 45, 46, 0, 0, 0, 0, 34, 35, 0,
372 0, 0, 37, 39, 63, 0, 0, 32, 138, 31,
373 0, 0, 0, 0, 33, 0, 42, 43, 41, 0,
374 36, 0, 0, 0, 0, 27, 44, 38, 40, 0,
375 0, 0, 28, 0, 0, 29, 30, 45, 46, 0,
376 34, 35, 0, 0, 0, 37, 39, 63, 134, 0,
377 32, 0, 31, 0, 0, 0, 0, 33, 0, 42,
378 43, 41, 0, 36, 0, 0, 0, 0, 27, 44,
379 38, 40, 0, 0, 0, 28, 0, 0, 29, 30,
380 45, 46, 0, 0, 0, 0, 0, 0, 0, 0,
381 0, 34, 35, 0, 0, 63, 37, 39, 32, 0,
382 31, 0, 0, 0, 0, 0, 0, 0, 33, 0,
383 42, 43, 41, 0, 36, 0, 0, 0, 0, 27,
384 44, 38, 40, 0, 0, 0, 28, 0, 0, 29,
385 30, 45, 46, 150, 0, 0, 0, 34, 35, 0,
386 0, 63, 37, 39, 32, 0, 31, 0, 0, 0,
387 0, 0, 0, 0, 33, 0, 42, 43, 41, 0,
388 36, 0, 0, 0, 0, 27, 44, 38, 40, 0,
389 0, 0, 28, 0, 0, 29, 30, 45, 46, 148,
390 0, 0, 0, 34, 35, 0, 0, 93, 37, 39,
391 32, 0, 31, 0, 0, 0, 0, 0, 0, 0,
392 33, 0, 42, 43, 41, 0, 36, 0, 0, 0,
393 0, 27, 44, 38, 40, 0, 0, 0, 28, 0,
394 0, 29, 30, 45, 46, 0, 0, 34, 35, 0,
395 0, 0, 37, 39, 0, 0, 0, 0, 0, 0,
396 0, 0, 0, 0, 33, 0, 42, 43, 41, 0,
397 36, 0, 0, 0, 0, 27, 44, 38, 40, 0,
398 0, 0, 28, 0, 0, 29, 30, 45, 46, 0,
399 34, 35, 0, 0, 0, 37, 39, 0, 0, 0,
400 0, 0, 0, 0, 0, 0, 0, 33, 0, 42,
401 43, 41, 0, 36, 0, 0, 0, 0, 27, 44,
402 38, 40, 0, 0, 0, 28, 0, 0, 29, 30,
403 45, 46, 0, 0, 117, 0, 0, 0, 34, 35,
404 0, 0, 0, 37, 39, 0, 0, 0, 0, 0,
405 0, 0, 0, 0, 0, 33, 0, 42, 43, 41,
406 0, 36, 0, 0, 0, 0, 27, 44, 38, 40,
407 0, 0, 0, 28, 0, 0, 29, 30, 45, 46,
408 0, 0, 0, 0, 34, 35, 0, 0, 0, 37,
409 39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
410 0, 33, 0, 42, 43, 41, 0, 36, 0, 0,
411 0, 0, 27, 44, 38, 40, 0, 0, 0, 28,
412 0, 0, 29, 30, 45, 46, 0, 0, 0, 0,
413 34, 35, 0, 0, 0, 37, 39, 0, 0, 0,
414 0, 0, 0, 0, 0, 0, 0, 33, 0, 42,
415 43, 41, 0, 36, 0, 0, 0, 0, 27, 44,
416 38, 40, 0, 0, 0, 28, 0, 0, 29, 30,
420 -1000, -1000, 35, 1016, -1000, -1000, -1000, -1000, -1000, -1000,
421 -79, -271, -1000, -1000, -227, -22, -81, -85, 880, -1000,
422 -1000, -1000, 53, -281, -1000, 1332, 1332, -1000, -1000, -291,
423 -291, 2791, 2791, -44, 82, 80, 79, 2837, 78, 75,
424 74, 73, 72, 70, -37, -1000, 2791, 35, -1000, 69,
425 -231, -1000, 1332, -1000, -1000, -1000, -1000, 2791, 2791, 2791,
426 2745, 53, -293, 1332, 2791, 2791, 2791, 2791, 2791, 2791,
427 -278, 2791, -254, 1332, -1000, -1000, 58, 52, 48, 0,
428 -1000, -1000, -1000, -46, -46, -11, 2791, 2697, 2837, 2837,
429 -1000, 2654, 23, 1652, 2791, 2791, 2791, 2791, 2610, 2564,
430 2837, -67, -231, 2837, 697, -1000, -1000, -1000, -266, 586,
431 586, -231, -231, 1080, 1080, 1080, 1080, -1000, 64, 64,
432 -46, -46, -46, -46, -1000, 34, -291, -266, -1000, -1000,
433 -1000, -1000, 2791, 1080, -1000, 2518, 47, 46, -1000, -1000,
434 41, 742, 1652, 2467, 2424, 2378, 2334, 2288, 13, 2245,
435 12, -42, 635, 45, -1000, -1000, -1000, 68, -1000, -1000,
436 -1000, 2791, 2837, 2837, -1000, -1000, 2791, -1000, 2791, -282,
437 67, 65, -1000, 63, -1000, -1000, -279, 432, 370, 2791,
438 -1000, 1080, -1000, -1000, -1000, 1606, 1606, -1000, 2791, -286,
439 2791, 2202, 2791, 2791, 2791, 2791, -1000, -1000, -1000, -1000,
440 -1000, -1000, -1000, -1000, -231, -231, 8, 8, 2791, 2791,
441 -39, 1332, 1332, -40, 532, -231, -1000, -1000, 53, 2791,
442 2791, 1562, 21, 2156, 43, 2112, 1512, 1466, 1416, 1374,
443 -94, -231, -231, -231, -231, -231, 2791, -1000, -1000, -1000,
444 2791, 2791, -5, -9, -245, -4, 2066, -1000, 320, 35,
445 2791, -1000, 2023, -1000, -1000, -1000, -1000, -1000, 2791, -1000,
446 2791, -1000, 2791, -1000, 2791, -1000, 2791, 2791, 1969, -1000,
447 -1000, 62, 1282, -1000, -1000, 1926, 1882, 39, 1836, 1792,
448 1742, 1696, -231, -1000, -40, -40, 1332, -34, 532, -40,
449 -231, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 267, -243,
450 -1000, -24, 532, 37, -1000, -1000, -1000, -1000, 32, -1000,
451 -40, -1000, -40, -1000, -40, -1000, -1000 };
454 0, 139, 40, 135, 134, 4, 18, 129, 126, 125,
455 124, 47, 64, 245, 46, 43, 37, 1223, 985, 39,
456 123, 108, 104, 2, 35, 75, 33, 74 };
459 0, 1, 4, 7, 7, 3, 3, 8, 8, 8,
460 8, 8, 8, 10, 9, 9, 12, 12, 12, 12,
461 16, 16, 16, 16, 15, 15, 15, 15, 14, 14,
462 14, 14, 13, 13, 13, 17, 17, 17, 17, 17,
463 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
464 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
465 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
466 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
467 17, 18, 18, 18, 18, 11, 11, 11, 19, 19,
468 19, 2, 2, 20, 20, 20, 20, 5, 5, 21,
469 21, 22, 22, 22, 22, 6, 6, 23, 23, 23,
470 23, 26, 26, 24, 24, 24, 24, 24, 24, 24,
471 24, 24, 24, 24, 24, 24, 27, 27, 27, 25,
472 25, 25, 25, 25, 25, 25, 25 };
475 0, 5, 13, 11, 5, 7, 1, 3, 11, 21,
476 9, 2, 2, 3, 3, 7, 2, 2, 2, 2,
477 7, 9, 9, 5, 7, 7, 7, 7, 7, 7,
478 3, 7, 3, 5, 7, 3, 3, 3, 7, 7,
479 7, 7, 7, 7, 7, 11, 5, 5, 5, 5,
480 5, 5, 7, 3, 5, 7, 9, 7, 9, 3,
481 7, 9, 9, 9, 5, 17, 13, 17, 17, 13,
482 13, 13, 13, 13, 13, 13, 13, 17, 17, 17,
483 17, 3, 9, 3, 5, 2, 2, 1, 9, 9,
484 7, 5, 1, 3, 3, 3, 3, 5, 1, 3,
485 3, 5, 5, 5, 5, 5, 1, 7, 5, 5,
486 2, 2, 1, 2, 9, 5, 9, 5, 3, 3,
487 3, 5, 3, 3, 5, 11, 3, 3, 3, 13,
488 19, 13, 15, 21, 19, 13, 11 };
491 -1000, -1, -2, -3, -20, 59, 260, 261, 262, -8,
492 -9, 285, 123, -4, -7, -12, 257, 258, -13, -14,
493 -15, -16, -17, -18, 259, 40, 300, 291, 298, 301,
494 302, 45, 43, 280, 263, 264, 286, 268, 293, 269,
495 294, 284, 282, 283, 292, 303, 304, -2, 123, 286,
496 -5, 261, 44, 290, 289, 123, 123, 296, 62, 60,
497 295, -17, -18, 40, 43, 45, 42, 47, 37, 94,
498 274, 63, 112, 288, 301, 302, -16, -15, -14, -12,
499 -12, -18, -18, -17, -17, -18, 60, 40, 40, 40,
500 -11, -13, -19, 40, 40, 40, 40, 40, 40, 40,
501 91, -17, -5, 40, -6, -21, 261, 262, -12, -5,
502 -5, -5, -5, -13, -13, -13, -13, 259, -17, -17,
503 -17, -17, -17, -17, 292, -17, 280, -12, 41, 41,
504 41, 41, 60, -13, 41, -13, -11, -11, 44, 44,
505 -19, -13, 40, -13, -13, -13, -13, -13, 259, -13,
506 259, -11, -6, -10, -11, 125, -23, -24, 59, 260,
507 -25, -13, 266, 267, 277, 276, 275, 278, 279, 287,
508 270, 272, 281, 273, 123, -12, -12, -6, -6, 58,
509 -18, -13, 41, 41, 41, -5, -5, 41, 44, 44,
510 44, 44, 44, 44, 44, 44, 93, 125, 41, -22,
511 59, 260, 261, 262, -5, -5, -11, -11, -13, -13,
512 292, 40, 40, -5, 40, -5, 125, 125, -17, -13,
513 -13, -13, 292, -13, 259, -13, -13, -13, -13, -13,
514 -5, -5, -5, -5, -5, -5, -27, 62, 265, 124,
515 -27, 91, -12, -12, -23, -26, -13, -24, -6, -2,
516 44, 41, 44, 41, 41, 41, 41, 41, 44, 41,
517 44, 41, 44, 41, 44, 123, -13, -13, -13, 41,
518 41, 272, 59, 41, 125, -13, -13, 259, -13, -13,
519 -13, -13, -5, 93, -5, -5, 40, -12, 59, -5,
520 -5, 41, 41, 41, 41, 41, 41, 41, -6, -23,
521 -23, -12, 59, -26, -23, 125, 271, 41, -26, 41,
522 -5, 41, -5, -23, -5, -23, -23 };
525 92, -2, 6, 1, 91, 93, 94, 95, 96, 92,
526 7, 0, 98, 11, 12, 14, 0, 0, 16, 17,
527 18, 19, 32, 35, 30, 0, 0, 36, 37, 0,
528 0, 0, 0, 53, 59, 0, 0, 87, 0, 0,
529 0, 0, 0, 0, 81, 83, 0, 5, 98, 0,
530 106, 4, 0, 98, 98, 98, 98, 0, 0, 0,
531 0, 33, 35, 0, 0, 0, 0, 0, 0, 0,
532 0, 0, 0, 0, 46, 47, 19, 18, 17, 0,
533 23, 48, 49, 50, 51, 54, 0, 0, 87, 87,
534 64, 85, 86, 0, 0, 0, 0, 0, 0, 0,
535 87, 84, 106, 87, 0, 97, 99, 100, 15, 0,
536 0, 106, 106, 24, 25, 26, 28, 29, 38, 39,
537 40, 41, 42, 43, 44, 0, 57, 34, 20, 27,
538 31, 52, 0, 55, 60, 0, 0, 0, 98, 98,
539 0, 16, 0, 0, 0, 0, 0, 0, 0, 0,
540 0, 0, 0, 0, 13, 10, 105, 0, 98, 98,
541 110, 113, 87, 87, 118, 119, 120, 122, 123, 0,
542 0, 0, 98, 0, 98, 21, 22, 0, 0, 0,
543 58, 56, 61, 62, 63, 0, 0, 90, 0, 0,
544 0, 0, 0, 0, 0, 0, 82, 8, 98, 98,
545 98, 98, 98, 98, 108, 109, 115, 117, 121, 124,
546 0, 0, 0, 0, 112, 106, 92, 3, 45, 88,
547 89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
548 0, 107, 101, 102, 103, 104, 0, 126, 127, 128,
549 0, 0, 0, 0, 0, 0, 113, 111, 0, 2,
550 0, 66, 0, 69, 70, 71, 72, 73, 0, 74,
551 0, 75, 0, 76, 0, 98, 114, 116, 0, 98,
552 98, 0, 0, 98, 98, 0, 0, 0, 0, 0,
553 0, 0, 106, 125, 0, 0, 0, 0, 112, 0,
554 136, 65, 67, 68, 77, 78, 79, 80, 0, 129,
555 131, 0, 112, 0, 135, 9, 98, 132, 0, 98,
556 0, 98, 0, 130, 0, 134, 133 };
557 typedef struct { char *t_name; int t_val; } yytoktype;
559 # define YYDEBUG 0 /* don't allow debugging */
624 "-unknown-", -1 /* ends search */
629 "-no such reduction-",
630 "program : junk hunks",
631 "begin : BEGIN '{' maybe states '}' junk",
632 "end : END '{' maybe states '}'",
634 "hunks : hunks hunk junk",
635 "hunks : /* empty */",
637 "hunk : patpat '{' maybe states '}'",
638 "hunk : FUNCTION USERFUN '(' arg_list ')' maybe '{' maybe states '}'",
639 "hunk : '{' maybe states '}'",
642 "arg_list : expr_list",
644 "patpat : cond ',' cond",
648 "cond : compound_cond",
649 "compound_cond : '(' compound_cond ')'",
650 "compound_cond : cond ANDAND maybe cond",
651 "compound_cond : cond OROR maybe cond",
652 "compound_cond : NOT cond",
653 "rel : expr RELOP expr",
654 "rel : expr '>' expr",
655 "rel : expr '<' expr",
657 "match : expr MATCHOP expr",
658 "match : expr MATCHOP REGEX",
660 "match : '(' match ')'",
663 "expr : variable ASGNOP cond",
667 "term : term '+' term",
668 "term : term '-' term",
669 "term : term '*' term",
670 "term : term '/' term",
671 "term : term '%' term",
672 "term : term '^' term",
673 "term : term IN VAR",
674 "term : term '?' term ':' term",
675 "term : variable INCR",
676 "term : variable DECR",
677 "term : INCR variable",
678 "term : DECR variable",
681 "term : '(' cond ')'",
683 "term : GETLINE variable",
684 "term : GETLINE '<' expr",
685 "term : GETLINE variable '<' expr",
686 "term : term 'p' GETLINE",
687 "term : term 'p' GETLINE variable",
689 "term : FUN1 '(' ')'",
690 "term : FUN1 '(' expr ')'",
691 "term : FUNN '(' expr_list ')'",
692 "term : USERFUN '(' expr_list ')'",
693 "term : SPRINTF expr_list",
694 "term : SUBSTR '(' expr ',' expr ',' expr ')'",
695 "term : SUBSTR '(' expr ',' expr ')'",
696 "term : SPLIT '(' expr ',' VAR ',' expr ')'",
697 "term : SPLIT '(' expr ',' VAR ',' REGEX ')'",
698 "term : SPLIT '(' expr ',' VAR ')'",
699 "term : INDEX '(' expr ',' expr ')'",
700 "term : MATCH '(' expr ',' REGEX ')'",
701 "term : MATCH '(' expr ',' expr ')'",
702 "term : SUB '(' expr ',' expr ')'",
703 "term : SUB '(' REGEX ',' expr ')'",
704 "term : GSUB '(' expr ',' expr ')'",
705 "term : GSUB '(' REGEX ',' expr ')'",
706 "term : SUB '(' expr ',' expr ',' expr ')'",
707 "term : SUB '(' REGEX ',' expr ',' expr ')'",
708 "term : GSUB '(' expr ',' expr ',' expr ')'",
709 "term : GSUB '(' REGEX ',' expr ',' expr ')'",
711 "variable : VAR '[' expr_list ']'",
713 "variable : VFIELD term",
716 "expr_list : /* empty */",
717 "clist : expr ',' maybe expr",
718 "clist : clist ',' maybe expr",
719 "clist : '(' clist ')'",
720 "junk : junk hunksep",
721 "junk : /* empty */",
726 "maybe : maybe nlstuff",
727 "maybe : /* empty */",
730 "separator : ';' maybe",
731 "separator : SEMINEW maybe",
732 "separator : NEWLINE maybe",
733 "separator : COMMENT maybe",
734 "states : states statement",
735 "states : /* empty */",
736 "statement : simple separator maybe",
737 "statement : ';' maybe",
738 "statement : SEMINEW maybe",
739 "statement : compound",
741 "simpnull : /* empty */",
743 "simple : PRINT expr_list redir expr",
744 "simple : PRINT expr_list",
745 "simple : PRINTF expr_list redir expr",
746 "simple : PRINTF expr_list",
750 "simple : EXIT expr",
754 "simple : DELETE VAR '[' expr ']'",
758 "compound : IF '(' cond ')' maybe statement",
759 "compound : IF '(' cond ')' maybe statement ELSE maybe statement",
760 "compound : WHILE '(' cond ')' maybe statement",
761 "compound : DO maybe statement WHILE '(' cond ')'",
762 "compound : FOR '(' simpnull ';' cond ';' simpnull ')' maybe statement",
763 "compound : FOR '(' simpnull ';' ';' simpnull ')' maybe statement",
764 "compound : FOR '(' expr ')' maybe statement",
765 "compound : '{' maybe states '}' maybe",
768 #line 1 "/usr/lib/yaccpar"
769 /* @(#)yaccpar 1.10 89/04/04 SMI; from S5R3 1.10 */
772 ** Skeleton parser driver for yacc output
776 ** yacc user known macros and defines
778 #define YYERROR goto yyerrlab
779 #define YYACCEPT { free(yys); free(yyv); return(0); }
780 #define YYABORT { free(yys); free(yyv); return(1); }
781 #define YYBACKUP( newtoken, newvalue )\
783 if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\
785 yyerror( "syntax error - cannot backup" );\
793 #define YYRECOVERING() (!!yyerrflag)
795 # define YYDEBUG 1 /* make debugging available */
799 ** user known globals
801 int yydebug; /* set to 1 to get debugging */
804 ** driver internal defines
806 #define YYFLAG (-1000)
809 ** static variables used by the parser
811 static YYSTYPE *yyv; /* value stack */
812 static int *yys; /* state stack */
814 static YYSTYPE *yypv; /* top of value stack */
815 static int *yyps; /* top of state stack */
817 static int yystate; /* current state */
818 static int yytmp; /* extra var (lasts between blocks) */
820 int yynerrs; /* number of errors */
822 int yyerrflag; /* error recovery flag */
823 int yychar; /* current input token number */
827 ** yyparse - return 0 if worked, 1 if syntax error not recovered from
832 register YYSTYPE *yypvt; /* top of value stack for $vars */
833 unsigned yymaxdepth = YYMAXDEPTH;
836 ** Initialize externals - yyparse may be called more than once
838 yyv = (YYSTYPE*)malloc(yymaxdepth*sizeof(YYSTYPE));
839 yys = (int*)malloc(yymaxdepth*sizeof(int));
842 yyerror( "out of memory" );
855 register YYSTYPE *yy_pv; /* top of value stack */
856 register int *yy_ps; /* top of state stack */
857 register int yy_state; /* current state */
858 register int yy_n; /* internal state number info */
861 ** get globals into registers.
862 ** branch to here only if YYBACKUP was called.
871 ** get globals into registers.
872 ** either we just started, or we just finished a reduction
880 ** top of for (;;) loop while no reductions done
884 ** put a state and value onto the stacks
888 ** if debugging, look up token value in list of value vs.
889 ** name pairs. 0 and negative (-1) are special values.
890 ** Note: linear search is used since time is not a real
891 ** consideration while debugging.
897 (void)printf( "State %d, token ", yy_state );
899 (void)printf( "end-of-file\n" );
900 else if ( yychar < 0 )
901 (void)printf( "-none-\n" );
904 for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
907 if ( yytoks[yy_i].t_val == yychar )
910 (void)printf( "%s\n", yytoks[yy_i].t_name );
914 if ( ++yy_ps >= &yys[ yymaxdepth ] ) /* room on stack? */
917 ** reallocate and recover. Note that pointers
918 ** have to be reset, or bad things will happen
920 int yyps_index = (yy_ps - yys);
921 int yypv_index = (yy_pv - yyv);
922 int yypvt_index = (yypvt - yyv);
923 yymaxdepth += YYMAXDEPTH;
924 yyv = (YYSTYPE*)realloc((char*)yyv,
925 yymaxdepth * sizeof(YYSTYPE));
926 yys = (int*)realloc((char*)yys,
927 yymaxdepth * sizeof(int));
930 yyerror( "yacc stack overflow" );
933 yy_ps = yys + yyps_index;
934 yy_pv = yyv + yypv_index;
935 yypvt = yyv + yypvt_index;
941 ** we have a new state - find out what to do
944 if ( ( yy_n = yypact[ yy_state ] ) <= YYFLAG )
945 goto yydefault; /* simple state */
948 ** if debugging, need to mark whether new token grabbed
952 if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
953 yychar = 0; /* reached EOF */
955 if ( yydebug && yytmp )
959 (void)printf( "Received token " );
961 (void)printf( "end-of-file\n" );
962 else if ( yychar < 0 )
963 (void)printf( "-none-\n" );
966 for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
969 if ( yytoks[yy_i].t_val == yychar )
972 (void)printf( "%s\n", yytoks[yy_i].t_name );
976 if ( ( ( yy_n += yychar ) < 0 ) || ( yy_n >= YYLAST ) )
978 if ( yychk[ yy_n = yyact[ yy_n ] ] == yychar ) /*valid shift*/
989 if ( ( yy_n = yydef[ yy_state ] ) == -2 )
994 if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
995 yychar = 0; /* reached EOF */
997 if ( yydebug && yytmp )
1001 (void)printf( "Received token " );
1003 (void)printf( "end-of-file\n" );
1004 else if ( yychar < 0 )
1005 (void)printf( "-none-\n" );
1009 yytoks[yy_i].t_val >= 0;
1012 if ( yytoks[yy_i].t_val
1018 (void)printf( "%s\n", yytoks[yy_i].t_name );
1021 #endif /* YYDEBUG */
1023 ** look through exception table
1026 register int *yyxi = yyexca;
1028 while ( ( *yyxi != -1 ) ||
1029 ( yyxi[1] != yy_state ) )
1033 while ( ( *(yyxi += 2) >= 0 ) &&
1034 ( *yyxi != yychar ) )
1036 if ( ( yy_n = yyxi[1] ) < 0 )
1042 ** check for syntax error
1044 if ( yy_n == 0 ) /* have an error */
1046 /* no worry about speed here! */
1047 switch ( yyerrflag )
1049 case 0: /* new error */
1050 yyerror( "syntax error" );
1054 ** get globals into registers.
1055 ** we have a user generated syntax type error
1063 case 2: /* incompletely recovered error */
1067 ** find state where "error" is a legal
1070 while ( yy_ps >= yys )
1072 yy_n = yypact[ *yy_ps ] + YYERRCODE;
1073 if ( yy_n >= 0 && yy_n < YYLAST &&
1074 yychk[yyact[yy_n]] == YYERRCODE) {
1076 ** simulate shift of "error"
1078 yy_state = yyact[ yy_n ];
1082 ** current state has no shift on
1083 ** "error", pop stack
1086 # define _POP_ "Error recovery pops state %d, uncovers state %d\n"
1088 (void)printf( _POP_, *yy_ps,
1096 ** there is no state on stack with "error" as
1097 ** a valid shift. give up.
1100 case 3: /* no shift yet; eat a token */
1103 ** if debugging, look up token in list of
1104 ** pairs. 0 and negative shouldn't occur,
1105 ** but since timing doesn't matter when
1106 ** debugging, it doesn't hurt to leave the
1113 (void)printf( "Error recovery discards " );
1115 (void)printf( "token end-of-file\n" );
1116 else if ( yychar < 0 )
1117 (void)printf( "token -none-\n" );
1121 yytoks[yy_i].t_val >= 0;
1124 if ( yytoks[yy_i].t_val
1130 (void)printf( "token %s\n",
1131 yytoks[yy_i].t_name );
1134 #endif /* YYDEBUG */
1135 if ( yychar == 0 ) /* reached EOF. quit */
1140 }/* end if ( yy_n == 0 ) */
1142 ** reduction by production yy_n
1143 ** put stack tops, etc. so things right after switch
1147 ** if debugging, print the string that is the user's
1148 ** specification of the reduction which is just about
1152 (void)printf( "Reduce by (%d) \"%s\"\n",
1153 yy_n, yyreds[ yy_n ] );
1155 yytmp = yy_n; /* value to switch over */
1156 yypvt = yy_pv; /* $vars top of value stack */
1158 ** Look in goto table for next state
1159 ** Sorry about using yy_state here as temporary
1160 ** register variable, but why not, if it works...
1161 ** If yyr2[ yy_n ] doesn't have the low order bit
1162 ** set, then there is no action to be done for
1163 ** this reduction. So, no saving & unsaving of
1164 ** registers done. The only difference between the
1165 ** code just after the if and the body of the if is
1166 ** the goto yy_stack in the body. This way the test
1167 ** can be made before the choice of what to do is needed.
1170 /* length of production doubled with extra bit */
1171 register int yy_len = yyr2[ yy_n ];
1173 if ( !( yy_len & 01 ) )
1176 yyval = ( yy_pv -= yy_len )[1]; /* $$ = $1 */
1177 yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
1178 *( yy_ps -= yy_len ) + 1;
1179 if ( yy_state >= YYLAST ||
1181 yyact[ yy_state ] ] != -yy_n )
1183 yy_state = yyact[ yypgo[ yy_n ] ];
1188 yyval = ( yy_pv -= yy_len )[1]; /* $$ = $1 */
1189 yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
1190 *( yy_ps -= yy_len ) + 1;
1191 if ( yy_state >= YYLAST ||
1192 yychk[ yy_state = yyact[ yy_state ] ] != -yy_n )
1194 yy_state = yyact[ yypgo[ yy_n ] ];
1197 /* save until reenter driver code */
1203 ** code supplied by user is placed in this switch
1210 { root = oper4(OPROG,yypvt[-1],begins,yypvt[-0],ends); } break;
1213 { begins = oper4(OJUNK,begins,yypvt[-3],yypvt[-2],yypvt[-0]); in_begin = FALSE;
1214 yyval = Nullop; } break;
1217 { ends = oper3(OJUNK,ends,yypvt[-2],yypvt[-1]); yyval = Nullop; } break;
1220 { yyval = yypvt[-1]; } break;
1223 { yyval = oper3(OHUNKS,yypvt[-2],yypvt[-1],yypvt[-0]); } break;
1226 { yyval = Nullop; } break;
1229 { yyval = oper1(OHUNK,yypvt[-0]); need_entire = TRUE; } break;
1232 { yyval = oper2(OHUNK,yypvt[-4],oper2(OJUNK,yypvt[-2],yypvt[-1])); } break;
1235 { fixfargs(yypvt[-8],yypvt[-6],0); yyval = oper5(OUSERDEF,yypvt[-8],yypvt[-6],yypvt[-4],yypvt[-2],yypvt[-1]); } break;
1238 { yyval = oper2(OHUNK,Nullop,oper2(OJUNK,yypvt[-2],yypvt[-1])); } break;
1241 { yyval = rememberargs(yyval); } break;
1244 { yyval = oper1(OPAT,yypvt[-0]); } break;
1247 { yyval = oper2(ORANGE,yypvt[-2],yypvt[-0]); } break;
1250 { yyval = oper1(OCPAREN,yypvt[-1]); } break;
1253 { yyval = oper3(OCANDAND,yypvt[-3],yypvt[-1],yypvt[-0]); } break;
1256 { yyval = oper3(OCOROR,yypvt[-3],yypvt[-1],yypvt[-0]); } break;
1259 { yyval = oper1(OCNOT,yypvt[-0]); } break;
1262 { yyval = oper3(ORELOP,yypvt[-1],yypvt[-2],yypvt[-0]); } break;
1265 { yyval = oper3(ORELOP,string(">",1),yypvt[-2],yypvt[-0]); } break;
1268 { yyval = oper3(ORELOP,string("<",1),yypvt[-2],yypvt[-0]); } break;
1271 { yyval = oper1(ORPAREN,yypvt[-1]); } break;
1274 { yyval = oper3(OMATCHOP,yypvt[-1],yypvt[-2],yypvt[-0]); } break;
1277 { yyval = oper3(OMATCHOP,yypvt[-1],yypvt[-2],oper1(OREGEX,yypvt[-0])); } break;
1280 { yyval = oper1(OREGEX,yypvt[-0]); } break;
1283 { yyval = oper1(OMPAREN,yypvt[-1]); } break;
1286 { yyval = yypvt[-0]; } break;
1289 { yyval = oper2(OCONCAT,yypvt[-1],yypvt[-0]); } break;
1292 { yyval = oper3(OASSIGN,yypvt[-1],yypvt[-2],yypvt[-0]);
1293 if ((ops[yypvt[-2]].ival & 255) == OFLD)
1295 if ((ops[yypvt[-2]].ival & 255) == OVFLD)
1300 { yyval = yypvt[-0]; } break;
1303 { yyval = oper1(ONUM,yypvt[-0]); } break;
1306 { yyval = oper1(OSTR,yypvt[-0]); } break;
1309 { yyval = oper2(OADD,yypvt[-2],yypvt[-0]); } break;
1312 { yyval = oper2(OSUBTRACT,yypvt[-2],yypvt[-0]); } break;
1315 { yyval = oper2(OMULT,yypvt[-2],yypvt[-0]); } break;
1318 { yyval = oper2(ODIV,yypvt[-2],yypvt[-0]); } break;
1321 { yyval = oper2(OMOD,yypvt[-2],yypvt[-0]); } break;
1324 { yyval = oper2(OPOW,yypvt[-2],yypvt[-0]); } break;
1327 { yyval = oper2(ODEFINED,aryrefarg(yypvt[-0]),yypvt[-2]); } break;
1330 { yyval = oper3(OCOND,yypvt[-4],yypvt[-2],yypvt[-0]); } break;
1333 { yyval = oper1(OPOSTINCR,yypvt[-1]); } break;
1336 { yyval = oper1(OPOSTDECR,yypvt[-1]); } break;
1339 { yyval = oper1(OPREINCR,yypvt[-0]); } break;
1342 { yyval = oper1(OPREDECR,yypvt[-0]); } break;
1345 { yyval = oper1(OUMINUS,yypvt[-0]); } break;
1348 { yyval = oper1(OUPLUS,yypvt[-0]); } break;
1351 { yyval = oper1(OPAREN,yypvt[-1]); } break;
1354 { yyval = oper0(OGETLINE); } break;
1357 { yyval = oper1(OGETLINE,yypvt[-0]); } break;
1360 { yyval = oper3(OGETLINE,Nullop,string("<",1),yypvt[-0]);
1361 if (ops[yypvt[-0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break;
1364 { yyval = oper3(OGETLINE,yypvt[-2],string("<",1),yypvt[-0]);
1365 if (ops[yypvt[-0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break;
1368 { yyval = oper3(OGETLINE,Nullop,string("|",1),yypvt[-2]);
1369 if (ops[yypvt[-2]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break;
1372 { yyval = oper3(OGETLINE,yypvt[-0],string("|",1),yypvt[-3]);
1373 if (ops[yypvt[-3]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break;
1376 { yyval = oper0(yypvt[-0]); need_entire = do_chop = TRUE; } break;
1379 { yyval = oper1(yypvt[-2],Nullop); need_entire = do_chop = TRUE; } break;
1382 { yyval = oper1(yypvt[-3],yypvt[-1]); } break;
1385 { yyval = oper1(yypvt[-3],yypvt[-1]); } break;
1388 { yyval = oper2(OUSERFUN,yypvt[-3],yypvt[-1]); } break;
1391 { yyval = oper1(OSPRINTF,yypvt[-0]); } break;
1394 { yyval = oper3(OSUBSTR,yypvt[-5],yypvt[-3],yypvt[-1]); } break;
1397 { yyval = oper2(OSUBSTR,yypvt[-3],yypvt[-1]); } break;
1400 { yyval = oper3(OSPLIT,yypvt[-5],aryrefarg(numary(yypvt[-3])),yypvt[-1]); } break;
1403 { yyval = oper3(OSPLIT,yypvt[-5],aryrefarg(numary(yypvt[-3])),oper1(OREGEX,yypvt[-1]));} break;
1406 { yyval = oper2(OSPLIT,yypvt[-3],aryrefarg(numary(yypvt[-1]))); } break;
1409 { yyval = oper2(OINDEX,yypvt[-3],yypvt[-1]); } break;
1412 { yyval = oper2(OMATCH,yypvt[-3],oper1(OREGEX,yypvt[-1])); } break;
1415 { yyval = oper2(OMATCH,yypvt[-3],yypvt[-1]); } break;
1418 { yyval = oper2(OSUB,yypvt[-3],yypvt[-1]); } break;
1421 { yyval = oper2(OSUB,oper1(OREGEX,yypvt[-3]),yypvt[-1]); } break;
1424 { yyval = oper2(OGSUB,yypvt[-3],yypvt[-1]); } break;
1427 { yyval = oper2(OGSUB,oper1(OREGEX,yypvt[-3]),yypvt[-1]); } break;
1430 { yyval = oper3(OSUB,yypvt[-5],yypvt[-3],yypvt[-1]); } break;
1433 { yyval = oper3(OSUB,oper1(OREGEX,yypvt[-5]),yypvt[-3],yypvt[-1]); } break;
1436 { yyval = oper3(OGSUB,yypvt[-5],yypvt[-3],yypvt[-1]); } break;
1439 { yyval = oper3(OGSUB,oper1(OREGEX,yypvt[-5]),yypvt[-3],yypvt[-1]); } break;
1442 { yyval = oper1(OVAR,yypvt[-0]); } break;
1445 { yyval = oper2(OVAR,aryrefarg(yypvt[-3]),yypvt[-1]); } break;
1448 { yyval = oper1(OFLD,yypvt[-0]); } break;
1451 { yyval = oper1(OVFLD,yypvt[-0]); } break;
1454 { yyval = Nullop; } break;
1457 { yyval = oper3(OCOMMA,yypvt[-3],yypvt[-1],yypvt[-0]); } break;
1460 { yyval = oper3(OCOMMA,yypvt[-3],yypvt[-1],yypvt[-0]); } break;
1463 { yyval = yypvt[-1]; } break;
1466 { yyval = oper2(OJUNK,yypvt[-1],yypvt[-0]); } break;
1469 { yyval = Nullop; } break;
1472 { yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); } break;
1475 { yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); } break;
1478 { yyval = oper0(ONEWLINE); } break;
1481 { yyval = oper1(OCOMMENT,yypvt[-0]); } break;
1484 { yyval = oper2(OJUNK,yypvt[-1],yypvt[-0]); } break;
1487 { yyval = Nullop; } break;
1490 { yyval = oper0(ONEWLINE); } break;
1493 { yyval = oper1(OCOMMENT,yypvt[-0]); } break;
1496 { yyval = oper2(OJUNK,oper0(OSEMICOLON),yypvt[-0]); } break;
1499 { yyval = oper2(OJUNK,oper0(OSNEWLINE),yypvt[-0]); } break;
1502 { yyval = oper2(OJUNK,oper0(OSNEWLINE),yypvt[-0]); } break;
1505 { yyval = oper2(OJUNK,oper1(OSCOMMENT,yypvt[-1]),yypvt[-0]); } break;
1508 { yyval = oper2(OSTATES,yypvt[-1],yypvt[-0]); } break;
1511 { yyval = Nullop; } break;
1514 { yyval = oper2(OJUNK,oper2(OSTATE,yypvt[-2],yypvt[-1]),yypvt[-0]); } break;
1517 { yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSEMICOLON),yypvt[-0])); } break;
1520 { yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSNEWLINE),yypvt[-0])); } break;
1523 { yyval = Nullop; } break;
1526 { yyval = oper3(OPRINT,yypvt[-2],yypvt[-1],yypvt[-0]);
1528 saw_ORS = saw_OFS = TRUE;
1529 if (!yypvt[-2]) need_entire = TRUE;
1530 if (ops[yypvt[-0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break;
1533 { yyval = oper1(OPRINT,yypvt[-0]);
1534 if (!yypvt[-0]) need_entire = TRUE;
1535 saw_ORS = saw_OFS = TRUE;
1539 { yyval = oper3(OPRINTF,yypvt[-2],yypvt[-1],yypvt[-0]);
1541 if (!yypvt[-2]) need_entire = TRUE;
1542 if (ops[yypvt[-0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break;
1545 { yyval = oper1(OPRINTF,yypvt[-0]);
1546 if (!yypvt[-0]) need_entire = TRUE;
1550 { yyval = oper0(OBREAK); } break;
1553 { yyval = oper0(ONEXT); } break;
1556 { yyval = oper0(OEXIT); } break;
1559 { yyval = oper1(OEXIT,yypvt[-0]); } break;
1562 { yyval = oper0(OCONTINUE); } break;
1565 { yyval = oper0(ORETURN); } break;
1568 { yyval = oper1(ORETURN,yypvt[-0]); } break;
1571 { yyval = oper2(ODELETE,aryrefarg(yypvt[-3]),yypvt[-1]); } break;
1574 { yyval = oper1(OREDIR,string(">",1)); } break;
1577 { yyval = oper1(OREDIR,string(">>",2)); } break;
1580 { yyval = oper1(OREDIR,string("|",1)); } break;
1583 { yyval = oper2(OIF,yypvt[-3],bl(yypvt[-0],yypvt[-1])); } break;
1586 { yyval = oper3(OIF,yypvt[-6],bl(yypvt[-3],yypvt[-4]),bl(yypvt[-0],yypvt[-1])); } break;
1589 { yyval = oper2(OWHILE,yypvt[-3],bl(yypvt[-0],yypvt[-1])); } break;
1592 { yyval = oper2(ODO,bl(yypvt[-4],yypvt[-5]),yypvt[-1]); } break;
1595 { yyval = oper4(OFOR,yypvt[-7],yypvt[-5],yypvt[-3],bl(yypvt[-0],yypvt[-1])); } break;
1598 { yyval = oper4(OFOR,yypvt[-6],string("",0),yypvt[-3],bl(yypvt[-0],yypvt[-1])); } break;
1601 { yyval = oper2(OFORIN,yypvt[-3],bl(yypvt[-0],yypvt[-1])); } break;
1604 { yyval = oper3(OBLOCK,oper2(OJUNK,yypvt[-3],yypvt[-2]),Nullop,yypvt[-0]); } break;
1606 goto yystack; /* reset registers in driver code */