1 extern char *malloc(), *realloc();
23 # define PRIVATEREF 261
49 # define HASHBRACK 287
66 #define yyclearin yychar = -1
67 #define yyerrok yyerrflag = 0
71 #define YYMAXDEPTH 150
73 YYSTYPE yylval, yyval;
74 # define YYERRCODE 256
172 109, 106, 107, 164, 92, 104, 231, 105, 150, 92,
173 21, 241, 68, 106, 107, 152, 230, 80, 25, 74,
174 76, 242, 243, 82, 84, 56, 26, 93, 94, 326,
175 31, 319, 134, 56, 58, 61, 69, 37, 157, 57,
176 30, 104, 29, 317, 300, 92, 117, 119, 121, 131,
177 246, 135, 299, 93, 94, 93, 16, 298, 79, 125,
178 264, 59, 14, 11, 12, 13, 95, 104, 154, 104,
179 155, 92, 212, 92, 71, 159, 123, 161, 83, 81,
180 75, 166, 158, 168, 160, 170, 26, 163, 38, 270,
181 167, 126, 169, 200, 171, 172, 173, 174, 217, 260,
182 73, 205, 222, 312, 239, 156, 31, 89, 124, 56,
183 58, 61, 26, 37, 89, 57, 30, 3, 29, 89,
184 26, 89, 89, 32, 72, 201, 89, 329, 100, 101,
185 93, 94, 213, 214, 215, 216, 327, 59, 220, 100,
186 101, 93, 94, 95, 104, 322, 89, 225, 92, 99,
187 98, 97, 96, 123, 95, 104, 318, 316, 306, 92,
188 67, 26, 26, 26, 38, 89, 280, 233, 297, 31,
189 294, 237, 56, 58, 61, 267, 37, 290, 57, 30,
190 320, 29, 245, 26, 223, 124, 89, 14, 11, 12,
191 13, 100, 101, 93, 94, 265, 26, 282, 256, 32,
192 59, 301, 98, 97, 96, 221, 95, 104, 176, 257,
193 258, 92, 206, 100, 261, 93, 94, 89, 234, 162,
194 236, 151, 100, 101, 93, 94, 269, 38, 95, 104,
195 273, 275, 295, 92, 283, 96, 284, 95, 104, 286,
196 139, 288, 92, 289, 204, 291, 141, 202, 158, 138,
197 66, 137, 89, 24, 54, 65, 46, 53, 66, 26,
198 199, 208, 32, 18, 19, 22, 23, 268, 129, 296,
199 20, 49, 70, 51, 52, 63, 149, 89, 287, 302,
200 60, 48, 36, 45, 39, 62, 310, 209, 325, 56,
201 50, 89, 266, 203, 8, 33, 7, 34, 35, 314,
202 313, 204, 211, 315, 202, 276, 244, 56, 89, 89,
203 31, 128, 2, 56, 58, 61, 324, 37, 274, 57,
204 30, 25, 29, 9, 240, 165, 328, 89, 330, 24,
205 54, 65, 46, 53, 66, 17, 87, 88, 85, 86,
206 331, 59, 308, 309, 56, 311, 55, 49, 78, 51,
207 52, 63, 235, 47, 41, 89, 60, 48, 36, 45,
208 39, 62, 44, 42, 43, 15, 50, 10, 38, 323,
209 5, 33, 210, 34, 35, 31, 207, 90, 56, 58,
210 61, 6, 37, 272, 57, 30, 4, 29, 1, 100,
211 101, 93, 94, 54, 65, 46, 53, 66, 0, 0,
212 26, 97, 96, 32, 95, 104, 59, 0, 0, 92,
213 49, 0, 51, 52, 63, 0, 0, 0, 28, 60,
214 48, 36, 45, 39, 62, 227, 0, 0, 229, 50,
215 232, 0, 152, 38, 33, 31, 34, 35, 56, 58,
216 61, 0, 37, 0, 57, 30, 0, 29, 108, 110,
217 111, 112, 113, 114, 115, 0, 0, 238, 64, 0,
218 0, 263, 0, 0, 0, 26, 59, 0, 32, 87,
219 88, 85, 86, 0, 0, 0, 0, 0, 0, 0,
220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
221 0, 0, 31, 38, 0, 56, 58, 61, 0, 37,
222 0, 57, 30, 0, 29, 279, 0, 281, 0, 0,
223 0, 0, 0, 0, 271, 140, 143, 144, 145, 146,
224 147, 148, 0, 59, 153, 26, 0, 0, 32, 0,
225 0, 285, 0, 293, 54, 65, 46, 53, 66, 0,
226 0, 0, 0, 0, 0, 0, 277, 0, 0, 278,
227 38, 49, 262, 51, 52, 63, 0, 0, 0, 307,
228 60, 48, 36, 45, 39, 62, 91, 303, 103, 304,
229 50, 0, 0, 0, 0, 33, 0, 34, 35, 0,
230 0, 0, 26, 0, 0, 32, 0, 0, 0, 0,
231 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,
232 65, 46, 53, 66, 0, 0, 0, 0, 0, 0,
233 228, 0, 0, 0, 0, 0, 49, 0, 51, 52,
234 63, 0, 0, 0, 0, 60, 48, 36, 45, 39,
235 62, 0, 0, 0, 0, 50, 0, 0, 0, 0,
236 33, 31, 34, 35, 56, 58, 61, 40, 37, 259,
237 57, 30, 0, 29, 0, 0, 0, 0, 0, 54,
238 65, 46, 53, 66, 0, 0, 0, 0, 77, 0,
239 0, 0, 59, 0, 0, 0, 49, 0, 51, 52,
240 63, 0, 0, 0, 0, 60, 48, 36, 45, 39,
241 62, 0, 0, 127, 0, 50, 133, 0, 0, 38,
242 33, 0, 34, 35, 142, 142, 142, 142, 142, 142,
243 0, 0, 0, 142, 0, 0, 54, 65, 46, 53,
244 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
245 0, 26, 0, 49, 32, 51, 52, 63, 0, 103,
246 0, 0, 60, 48, 36, 45, 39, 62, 0, 0,
247 0, 0, 50, 0, 0, 0, 0, 33, 31, 34,
248 35, 56, 58, 61, 0, 37, 224, 57, 30, 0,
249 29, 0, 0, 0, 0, 0, 218, 0, 0, 0,
250 102, 0, 0, 0, 100, 101, 93, 94, 0, 59,
251 0, 0, 0, 0, 99, 98, 97, 96, 0, 95,
252 104, 0, 0, 0, 92, 0, 0, 0, 0, 0,
253 0, 0, 0, 0, 31, 0, 38, 56, 58, 61,
254 0, 37, 219, 57, 30, 0, 29, 0, 0, 0,
255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
256 0, 0, 0, 0, 0, 59, 0, 0, 26, 0,
257 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,
258 0, 0, 0, 0, 0, 54, 65, 46, 53, 66,
259 0, 31, 38, 0, 56, 58, 61, 0, 37, 0,
260 57, 30, 49, 29, 51, 52, 63, 0, 0, 0,
261 0, 60, 48, 36, 45, 39, 62, 0, 0, 192,
262 0, 50, 59, 0, 26, 0, 33, 32, 34, 35,
263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
264 0, 0, 0, 0, 0, 0, 0, 0, 0, 38,
265 0, 31, 0, 0, 56, 58, 61, 0, 37, 0,
266 57, 30, 0, 29, 0, 0, 0, 0, 0, 0,
267 0, 102, 0, 0, 321, 100, 101, 93, 94, 190,
268 0, 26, 59, 0, 32, 99, 98, 97, 96, 0,
269 95, 104, 0, 0, 91, 92, 103, 0, 0, 0,
270 0, 0, 54, 65, 46, 53, 66, 0, 0, 38,
271 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
272 0, 51, 52, 63, 0, 0, 0, 0, 60, 48,
273 36, 45, 39, 62, 0, 0, 0, 255, 50, 0,
274 91, 26, 103, 33, 32, 34, 35, 0, 0, 0,
275 0, 0, 0, 0, 0, 0, 0, 0, 54, 65,
276 46, 53, 66, 0, 31, 0, 0, 56, 58, 61,
277 0, 37, 0, 57, 30, 49, 29, 51, 52, 63,
278 0, 0, 0, 0, 60, 48, 36, 45, 39, 62,
279 0, 0, 188, 0, 50, 59, 0, 0, 0, 33,
280 0, 34, 35, 0, 0, 0, 0, 0, 0, 0,
281 0, 0, 0, 0, 0, 54, 65, 46, 53, 66,
282 0, 0, 38, 0, 0, 0, 0, 0, 0, 0,
283 0, 0, 49, 0, 51, 52, 63, 91, 0, 103,
284 0, 60, 48, 36, 45, 39, 62, 0, 0, 0,
285 0, 50, 0, 0, 26, 0, 33, 32, 34, 35,
286 0, 0, 31, 0, 0, 56, 58, 61, 0, 37,
287 0, 57, 30, 0, 29, 54, 65, 46, 53, 66,
288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
289 186, 0, 49, 59, 51, 52, 63, 0, 0, 0,
290 0, 60, 48, 36, 45, 39, 62, 0, 102, 0,
291 0, 50, 100, 101, 93, 94, 33, 0, 34, 35,
292 38, 0, 99, 98, 97, 96, 0, 95, 104, 0,
293 0, 0, 92, 0, 0, 31, 0, 0, 56, 58,
294 61, 0, 37, 0, 57, 30, 0, 29, 0, 0,
295 0, 0, 26, 0, 102, 32, 0, 0, 100, 101,
296 93, 94, 0, 184, 0, 0, 59, 0, 99, 98,
297 97, 96, 0, 95, 104, 0, 0, 0, 92, 0,
298 0, 0, 0, 0, 0, 0, 0, 0, 54, 65,
299 46, 53, 66, 38, 0, 0, 0, 0, 0, 0,
300 0, 0, 0, 0, 0, 49, 0, 51, 52, 63,
301 0, 0, 0, 0, 60, 48, 36, 45, 39, 62,
302 0, 0, 0, 0, 50, 26, 0, 0, 32, 33,
303 0, 34, 35, 31, 0, 0, 56, 58, 61, 0,
304 37, 0, 57, 30, 0, 29, 0, 0, 0, 0,
305 0, 102, 0, 0, 0, 100, 101, 93, 94, 0,
306 0, 182, 0, 0, 59, 99, 98, 97, 96, 0,
307 95, 104, 0, 0, 0, 92, 0, 0, 0, 0,
308 0, 0, 0, 0, 0, 0, 54, 65, 46, 53,
309 66, 38, 0, 0, 0, 0, 0, 0, 0, 0,
310 0, 0, 0, 49, 0, 51, 52, 63, 0, 0,
311 0, 0, 60, 48, 36, 45, 39, 62, 0, 0,
312 0, 0, 50, 26, 0, 0, 32, 33, 0, 34,
313 35, 0, 0, 0, 0, 0, 31, 0, 0, 56,
314 58, 61, 0, 37, 0, 57, 30, 0, 29, 0,
315 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,
316 65, 46, 53, 66, 180, 0, 0, 59, 0, 0,
317 0, 0, 0, 0, 0, 0, 49, 0, 51, 52,
318 63, 0, 0, 0, 0, 60, 48, 36, 45, 39,
319 62, 0, 0, 0, 38, 50, 0, 0, 0, 0,
320 33, 0, 34, 35, 31, 0, 0, 56, 58, 61,
321 0, 37, 0, 57, 30, 0, 29, 0, 0, 0,
322 0, 0, 0, 0, 0, 0, 26, 0, 0, 32,
323 0, 0, 178, 0, 0, 59, 0, 0, 0, 0,
324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
325 0, 0, 0, 0, 0, 0, 0, 54, 65, 46,
326 53, 66, 38, 0, 0, 0, 0, 0, 0, 0,
327 0, 0, 0, 0, 49, 0, 51, 52, 63, 0,
328 0, 0, 0, 60, 48, 36, 45, 39, 62, 0,
329 0, 0, 0, 50, 26, 0, 0, 32, 33, 0,
330 34, 35, 0, 0, 0, 0, 0, 31, 0, 0,
331 56, 58, 61, 0, 37, 0, 57, 30, 0, 29,
332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
333 0, 0, 0, 122, 0, 0, 0, 0, 59, 0,
334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
336 54, 65, 46, 53, 66, 38, 0, 0, 0, 0,
337 0, 0, 0, 0, 0, 0, 0, 49, 0, 51,
338 52, 63, 0, 0, 0, 0, 60, 48, 36, 45,
339 39, 62, 0, 0, 0, 0, 50, 26, 0, 0,
340 32, 33, 31, 34, 35, 56, 58, 61, 0, 37,
341 0, 57, 30, 0, 29, 0, 0, 0, 0, 0,
342 0, 0, 0, 0, 0, 0, 0, 0, 54, 65,
343 46, 53, 66, 59, 0, 0, 0, 0, 0, 0,
344 0, 0, 0, 0, 0, 49, 0, 51, 52, 63,
345 0, 0, 0, 0, 60, 48, 36, 45, 39, 62,
346 38, 0, 120, 0, 50, 0, 0, 0, 0, 33,
347 0, 34, 35, 0, 0, 0, 0, 0, 31, 0,
348 0, 56, 58, 61, 0, 37, 118, 57, 30, 0,
349 29, 0, 26, 0, 0, 32, 0, 0, 0, 0,
350 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,
351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
353 0, 54, 65, 46, 53, 66, 38, 0, 0, 0,
354 0, 0, 0, 0, 0, 0, 0, 0, 49, 0,
355 51, 52, 63, 0, 0, 0, 0, 60, 48, 36,
356 45, 39, 62, 0, 0, 0, 0, 50, 26, 0,
357 0, 32, 33, 31, 34, 35, 56, 58, 61, 0,
358 37, 0, 57, 30, 0, 29, 0, 0, 0, 0,
359 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
360 0, 0, 0, 0, 59, 0, 0, 0, 0, 0,
361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
362 0, 0, 0, 0, 0, 0, 54, 65, 46, 53,
363 66, 38, 0, 0, 0, 0, 0, 0, 0, 0,
364 0, 0, 0, 49, 0, 51, 52, 63, 0, 0,
365 0, 0, 60, 48, 36, 45, 39, 62, 0, 0,
366 0, 0, 50, 26, 0, 0, 32, 33, 31, 34,
367 35, 56, 58, 61, 0, 37, 0, 57, 30, 0,
368 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
369 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,
370 0, 0, 54, 65, 46, 53, 66, 0, 0, 0,
371 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
372 0, 51, 52, 63, 0, 0, 38, 0, 60, 48,
373 36, 45, 39, 62, 0, 0, 0, 0, 50, 0,
374 0, 0, 0, 33, 0, 34, 35, 0, 0, 0,
375 0, 0, 0, 0, 0, 0, 0, 0, 26, 27,
376 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,
377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
379 0, 0, 0, 0, 0, 0, 116, 54, 65, 46,
380 53, 66, 0, 0, 0, 0, 0, 0, 130, 0,
381 136, 0, 0, 0, 49, 0, 51, 52, 63, 0,
382 0, 0, 0, 60, 48, 36, 45, 39, 62, 0,
383 0, 0, 0, 50, 0, 0, 0, 0, 33, 0,
384 34, 35, 0, 0, 0, 0, 0, 0, 0, 175,
385 0, 177, 179, 181, 183, 185, 187, 189, 191, 193,
386 194, 195, 196, 197, 198, 0, 0, 0, 0, 0,
387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
389 0, 0, 132, 65, 46, 53, 66, 0, 0, 226,
390 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
391 0, 51, 52, 63, 0, 0, 0, 0, 60, 48,
392 36, 45, 39, 62, 0, 0, 0, 0, 50, 0,
393 0, 0, 0, 33, 0, 34, 35, 0, 247, 0,
394 248, 0, 249, 0, 250, 0, 251, 0, 252, 0,
395 253, 0, 254, 0, 0, 0, 0, 0, 0, 0,
396 0, 0, 175, 0, 0, 0, 175, 0, 0, 175,
397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
401 0, 0, 0, 0, 0, 292, 0, 0, 0, 0,
402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
403 0, 0, 0, 0, 0, 0, 0, 0, 305 };
406 -1000, -1000, -1000, -200, -1000, -1000, -1000, -1000, -1000, -3,
407 -1000, -97, -221, 15, -1000, -1000, -1000, 65, 60, 40,
408 308, -255, 39, 38, -1000, 70, -1000, 1056, -289, 1820,
409 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1725, 1649, 1554,
410 -15, -1000, -1000, -32, -1000, 271, -1000, 228, 1915, -225,
411 1820, 211, 209, 200, -1000, -1000, -11, -11, -11, -11,
412 -11, -11, 1820, 181, -281, -11, -1000, -37, -1000, -37,
413 46, -1000, -1000, 1820, -37, 1820, -37, 179, 73, -1000,
414 -37, 1820, -37, 1820, -37, 1820, 1820, 1820, 1820, 1820,
415 -1000, 1820, 1451, 1383, 1280, 1182, 1109, 1011, 898, 838,
416 1820, 1820, 1820, 1820, 1820, 2, -1000, -1000, -301, -1000,
417 -301, -301, -301, -301, -1000, -1000, -228, 260, 10, 168,
418 -1000, 243, -53, 1820, 1820, 1820, 1820, -25, 253, 781,
419 -228, -1000, 165, 62, -1000, -1000, -228, 143, 725, 1820,
420 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 136, -1000,
421 78, 1820, -272, 1820, -1000, -1000, -1000, 126, 78, -255,
422 311, -255, 1820, 203, 45, -1000, -1000, 283, -249, 265,
423 -249, 78, 78, 78, 78, 1056, -75, 1056, 1820, -295,
424 1820, -290, 1820, -226, 1820, -254, 1820, -151, 1820, -57,
425 1820, 110, 1820, -88, -228, -66, -140, 959, -295, 158,
426 1820, 1820, 608, 8, -1000, 1820, 459, -1000, -1000, 402,
427 -1000, -65, -1000, 102, 233, 82, 208, 1820, -34, -1000,
428 260, 342, 277, -1000, -1000, 264, 505, -1000, 136, 125,
429 1820, 157, -1000, -37, -1000, -37, -1000, 260, -37, 1820,
430 -37, -1000, -37, 137, -37, -1000, -1000, 1056, 1056, 1056,
431 1056, 1056, 1056, 1056, 1056, 1820, 1820, 77, 173, -1000,
432 1820, 75, -1000, -68, -1000, -1000, -73, -1000, -81, 142,
433 1820, -1000, -1000, 260, -1000, 260, -1000, -1000, 1820, 117,
434 -1000, -1000, 1820, -255, -255, -37, -255, 44, -249, -1000,
435 1820, -249, 676, 116, -1000, -82, 63, -1000, -1000, -1000,
436 -1000, -94, 121, -1000, -1000, 913, -1000, 104, -1000, -1000,
437 -255, -1000, 73, -1000, 247, -1000, -1000, -1000, -1000, -1000,
438 -96, -1000, -1000, -1000, 95, -37, 86, -37, -249, -1000,
442 0, 388, 386, 381, 377, 293, 376, 372, 0, 117,
443 370, 367, 365, 3, 11, 8, 2039, 418, 647, 364,
444 363, 362, 354, 353, 325, 276, 458, 38, 346, 323,
448 0, 31, 1, 8, 4, 9, 9, 9, 10, 10,
449 10, 10, 24, 24, 24, 24, 24, 24, 14, 14,
450 14, 12, 12, 12, 12, 30, 30, 11, 11, 11,
451 11, 11, 11, 11, 11, 13, 13, 27, 27, 29,
452 29, 2, 2, 2, 3, 3, 32, 33, 33, 15,
453 15, 28, 28, 28, 28, 28, 28, 28, 28, 16,
454 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
455 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
456 16, 16, 17, 17, 17, 17, 17, 17, 17, 17,
457 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
458 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
459 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
460 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
461 17, 17, 17, 17, 17, 17, 25, 25, 23, 18,
462 19, 20, 21, 22, 26, 26, 26, 26, 5, 5,
466 0, 1, 5, 9, 1, 1, 5, 5, 5, 2,
467 5, 7, 3, 3, 7, 7, 7, 7, 1, 5,
468 13, 13, 13, 9, 9, 1, 5, 15, 15, 11,
469 11, 17, 15, 21, 7, 1, 2, 1, 2, 1,
470 2, 3, 3, 3, 7, 5, 7, 7, 5, 7,
471 2, 7, 11, 9, 13, 13, 7, 5, 9, 7,
472 9, 9, 9, 9, 9, 9, 9, 9, 7, 7,
473 7, 7, 7, 7, 7, 7, 7, 7, 7, 11,
474 7, 3, 5, 5, 5, 5, 5, 5, 5, 5,
475 5, 5, 7, 5, 7, 5, 7, 7, 3, 3,
476 9, 11, 3, 3, 3, 11, 13, 13, 11, 9,
477 11, 13, 17, 3, 3, 7, 9, 5, 5, 9,
478 11, 9, 11, 3, 5, 3, 5, 5, 3, 7,
479 7, 9, 9, 13, 2, 2, 1, 3, 5, 5,
480 5, 5, 5, 5, 3, 3, 3, 3, 5, 3,
484 -1000, -1, -31, -9, -2, -10, -3, -32, -33, -29,
485 -11, 263, 264, 265, 262, -12, 59, -24, 266, 267,
486 273, -8, 268, 269, 256, -15, 123, -16, -17, 45,
487 43, 33, 126, 298, 300, 301, 285, 40, 91, 287,
488 -18, -22, -20, -19, -21, 286, 259, -23, 284, 274,
489 293, 276, 277, 260, 257, -28, 36, 42, 37, 64,
490 283, 38, 288, 278, -26, 258, 261, 257, -8, 257,
491 257, 59, 59, 40, -8, 40, -8, -18, 40, -30,
492 272, 40, -8, 40, -8, 268, 269, 266, 267, 44,
493 -4, 61, 299, 281, 282, 294, 292, 291, 290, 289,
494 279, 280, 275, 63, 295, 296, 302, 303, -17, -8,
495 -17, -17, -17, -17, -17, -17, -16, -15, 41, -15,
496 93, -15, 59, 91, 123, 91, 123, -18, 40, 40,
497 -16, -8, 257, -18, 257, -8, -16, 40, 40, 40,
498 -26, 257, -18, -26, -26, -26, -26, -26, -26, -25,
499 -15, 40, 296, -26, -8, -8, 59, -27, -15, -8,
500 -15, -8, 40, -15, -13, -24, -8, -15, -8, -15,
501 -8, -15, -15, -15, -15, -16, -9, -16, 61, -16,
502 61, -16, 61, -16, 61, -16, 61, -16, 61, -16,
503 61, -16, 61, -16, -16, -16, -16, -16, -16, 258,
504 91, 123, 44, -5, 41, 91, 44, -6, 93, 44,
505 -7, 59, 125, -15, -15, -15, -15, 123, -18, 41,
506 -15, 40, 40, 41, 41, -15, -16, -25, -26, -25,
507 288, 278, -25, 41, -30, 41, -30, -15, -5, 59,
508 41, -14, 270, 271, 41, -14, 125, -16, -16, -16,
509 -16, -16, -16, -16, -16, 58, 40, -15, -15, 41,
510 91, -15, 93, 59, 125, 93, 59, 93, 59, -15,
511 123, -5, 41, -15, 41, -15, 41, 41, 44, -25,
512 41, -25, 40, -8, -8, -5, -8, -27, -8, -8,
513 40, -8, -16, -25, 93, 59, -15, 93, 125, 125,
514 125, 59, -15, -5, -5, -16, 41, -25, -30, -30,
515 -8, -30, 59, -14, -15, -14, 41, 125, 93, 125,
516 59, 41, 41, -30, -13, 41, 125, 41, -8, 41,
520 1, -2, 5, -2, 6, 7, 41, 42, 43, 0,
521 9, 0, 0, 0, 40, 8, 10, 0, 0, 0,
522 0, -2, 0, 0, 12, 13, 4, 50, 81, 0,
523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
524 -2, 99, 102, 103, 104, 0, 113, 114, 0, 123,
525 125, 128, 0, 0, -2, 135, 0, 0, 0, 0,
526 0, 0, 136, 0, 0, 0, 147, 0, 45, 0,
527 0, 48, 11, 37, 0, 0, 0, 0, -2, 34,
528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
529 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
530 0, 0, 0, 0, 0, 0, 87, 88, 82, 146,
531 83, 84, 85, 86, -2, -2, 91, 0, 93, 0,
532 95, 0, 0, 0, 0, 0, 0, 0, 0, 0,
533 117, 118, 134, 98, 124, 126, 127, 0, 0, 0,
534 139, 144, 145, 143, 141, 140, 142, 138, 136, 57,
535 137, 136, 0, 136, 44, 46, 47, 0, 38, 25,
536 0, 25, 0, 13, 0, 36, 26, 0, 18, 0,
537 18, 14, 15, 16, 17, 49, 39, 59, 0, 68,
538 0, 69, 0, 70, 0, 71, 0, 74, 0, 75,
539 0, 77, 0, 78, -2, -2, -2, 0, 80, 0,
540 0, 0, 0, 92, 149, 0, 0, 94, 151, 0,
541 96, 0, 97, 0, 0, 0, 0, 0, 0, 115,
542 0, 0, 0, 129, 130, 0, 0, 51, 136, 0,
543 136, 0, 56, 0, 29, 0, 30, 0, 0, 37,
544 0, 23, 0, 0, 0, 24, 3, 60, 61, 62,
545 63, 64, 65, 66, 67, 0, 136, 0, 0, 148,
546 0, 0, 150, 0, 153, 100, 0, 109, 0, 0,
547 0, 116, 119, 0, 121, 0, 131, 132, 0, 0,
548 58, 53, 136, 25, 25, 0, 25, 0, 18, 19,
549 0, 18, 79, 0, 101, 0, 0, 108, 152, 105,
550 110, 0, 0, 120, 122, 0, 52, 0, 27, 28,
551 25, 32, -2, 21, 0, 22, 55, 106, 107, 111,
552 0, 133, 54, 31, 0, 0, 0, 0, 18, 112,
554 typedef struct { char *t_name; int t_val; } yytoktype;
556 # define YYDEBUG 0 /* don't allow debugging */
619 "-unknown-", -1 /* ends search */
624 "-no such reduction-",
625 "prog : /* empty */",
627 "block : '{' remember lineseq '}'",
628 "remember : /* empty */",
629 "lineseq : /* empty */",
630 "lineseq : lineseq decl",
631 "lineseq : lineseq line",
635 "line : label sideff ';'",
638 "sideff : expr IF expr",
639 "sideff : expr UNLESS expr",
640 "sideff : expr WHILE expr",
641 "sideff : expr UNTIL expr",
642 "else : /* empty */",
644 "else : ELSIF '(' expr ')' block else",
645 "cond : IF '(' expr ')' block else",
646 "cond : UNLESS '(' expr ')' block else",
647 "cond : IF block block else",
648 "cond : UNLESS block block else",
649 "cont : /* empty */",
650 "cont : CONTINUE block",
651 "loop : label WHILE '(' texpr ')' block cont",
652 "loop : label UNTIL '(' expr ')' block cont",
653 "loop : label WHILE block block cont",
654 "loop : label UNTIL block block cont",
655 "loop : label FOR scalar '(' expr crp block cont",
656 "loop : label FOR '(' expr crp block cont",
657 "loop : label FOR '(' nexpr ';' texpr ';' nexpr ')' block",
658 "loop : label block cont",
659 "nexpr : /* empty */",
661 "texpr : /* empty */",
663 "label : /* empty */",
668 "format : FORMAT WORD block",
669 "format : FORMAT block",
670 "subrout : SUB WORD block",
671 "package : PACKAGE WORD ';'",
672 "package : PACKAGE ';'",
673 "expr : expr ',' sexpr",
675 "listop : LSTOP indirob listexpr",
676 "listop : FUNC '(' indirob listexpr ')'",
677 "listop : indirob ARROW LSTOP listexpr",
678 "listop : indirob ARROW FUNC '(' listexpr ')'",
679 "listop : term ARROW METHOD '(' listexpr ')'",
680 "listop : METHOD indirob listexpr",
681 "listop : LSTOP listexpr",
682 "listop : FUNC '(' listexpr ')'",
683 "sexpr : sexpr '=' sexpr",
684 "sexpr : sexpr POWOP '=' sexpr",
685 "sexpr : sexpr MULOP '=' sexpr",
686 "sexpr : sexpr ADDOP '=' sexpr",
687 "sexpr : sexpr SHIFTOP '=' sexpr",
688 "sexpr : sexpr BITANDOP '=' sexpr",
689 "sexpr : sexpr BITOROP '=' sexpr",
690 "sexpr : sexpr ANDAND '=' sexpr",
691 "sexpr : sexpr OROR '=' sexpr",
692 "sexpr : sexpr POWOP sexpr",
693 "sexpr : sexpr MULOP sexpr",
694 "sexpr : sexpr ADDOP sexpr",
695 "sexpr : sexpr SHIFTOP sexpr",
696 "sexpr : sexpr RELOP sexpr",
697 "sexpr : sexpr EQOP sexpr",
698 "sexpr : sexpr BITANDOP sexpr",
699 "sexpr : sexpr BITOROP sexpr",
700 "sexpr : sexpr DOTDOT sexpr",
701 "sexpr : sexpr ANDAND sexpr",
702 "sexpr : sexpr OROR sexpr",
703 "sexpr : sexpr '?' sexpr ':' sexpr",
704 "sexpr : sexpr MATCHOP sexpr",
710 "term : REFGEN term",
711 "term : term POSTINC",
712 "term : term POSTDEC",
713 "term : PREINC term",
714 "term : PREDEC term",
715 "term : LOCAL sexpr",
716 "term : '(' expr crp",
718 "term : '[' expr crb",
720 "term : HASHBRACK expr crhb",
721 "term : HASHBRACK ';' '}'",
724 "term : scalar '[' expr ']'",
725 "term : term ARROW '[' expr ']'",
729 "term : scalar '{' expr ';' '}'",
730 "term : term ARROW '{' expr ';' '}'",
731 "term : '(' expr crp '[' expr ']'",
732 "term : '(' ')' '[' expr ']'",
733 "term : ary '[' expr ']'",
734 "term : ary '{' expr ';' '}'",
735 "term : DELETE scalar '{' expr ';' '}'",
736 "term : DELETE '(' scalar '{' expr ';' '}' ')'",
739 "term : amper '(' ')'",
740 "term : amper '(' expr crp",
743 "term : DO WORD '(' ')'",
744 "term : DO WORD '(' expr crp",
745 "term : DO scalar '(' ')'",
746 "term : DO scalar '(' expr crp",
748 "term : LOOPEX WORD",
750 "term : UNIOP block",
751 "term : UNIOP sexpr",
753 "term : FUNC0 '(' ')'",
754 "term : FUNC1 '(' ')'",
755 "term : FUNC1 '(' expr ')'",
756 "term : PMFUNC '(' sexpr ')'",
757 "term : PMFUNC '(' sexpr ',' sexpr ')'",
760 "listexpr : /* empty */",
762 "amper : '&' indirob",
763 "scalar : '$' indirob",
766 "arylen : DOLSHARP indirob",
767 "star : '*' indirob",
771 "indirob : PRIVATEREF",
776 "crhb : ',' ';' '}'",
780 #line 1 "/usr/lib/yaccpar"
781 /* @(#)yaccpar 1.10 89/04/04 SMI; from S5R3 1.10 */
784 ** Skeleton parser driver for yacc output
788 ** yacc user known macros and defines
790 #define YYERROR goto yyerrlab
791 #define YYACCEPT { free(yys); free(yyv); return(0); }
792 #define YYABORT { free(yys); free(yyv); return(1); }
793 #define YYBACKUP( newtoken, newvalue )\
795 if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\
797 yyerror( "syntax error - cannot backup" );\
805 #define YYRECOVERING() (!!yyerrflag)
807 # define YYDEBUG 1 /* make debugging available */
811 ** user known globals
813 int yydebug; /* set to 1 to get debugging */
816 ** driver internal defines
818 #define YYFLAG (-1000)
821 ** static variables used by the parser
823 static YYSTYPE *yyv; /* value stack */
824 static int *yys; /* state stack */
826 static YYSTYPE *yypv; /* top of value stack */
827 static int *yyps; /* top of state stack */
829 static int yystate; /* current state */
830 static int yytmp; /* extra var (lasts between blocks) */
832 int yynerrs; /* number of errors */
834 int yyerrflag; /* error recovery flag */
835 int yychar; /* current input token number */
839 ** yyparse - return 0 if worked, 1 if syntax error not recovered from
844 register YYSTYPE *yypvt; /* top of value stack for $vars */
845 unsigned yymaxdepth = YYMAXDEPTH;
848 ** Initialize externals - yyparse may be called more than once
850 yyv = (YYSTYPE*)malloc(yymaxdepth*sizeof(YYSTYPE));
851 yys = (int*)malloc(yymaxdepth*sizeof(int));
854 yyerror( "out of memory" );
867 register YYSTYPE *yy_pv; /* top of value stack */
868 register int *yy_ps; /* top of state stack */
869 register int yy_state; /* current state */
870 register int yy_n; /* internal state number info */
873 ** get globals into registers.
874 ** branch to here only if YYBACKUP was called.
883 ** get globals into registers.
884 ** either we just started, or we just finished a reduction
892 ** top of for (;;) loop while no reductions done
896 ** put a state and value onto the stacks
900 ** if debugging, look up token value in list of value vs.
901 ** name pairs. 0 and negative (-1) are special values.
902 ** Note: linear search is used since time is not a real
903 ** consideration while debugging.
909 (void)printf( "State %d, token ", yy_state );
911 (void)printf( "end-of-file\n" );
912 else if ( yychar < 0 )
913 (void)printf( "-none-\n" );
916 for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
919 if ( yytoks[yy_i].t_val == yychar )
922 (void)printf( "%s\n", yytoks[yy_i].t_name );
926 if ( ++yy_ps >= &yys[ yymaxdepth ] ) /* room on stack? */
929 ** reallocate and recover. Note that pointers
930 ** have to be reset, or bad things will happen
932 int yyps_index = (yy_ps - yys);
933 int yypv_index = (yy_pv - yyv);
934 int yypvt_index = (yypvt - yyv);
935 yymaxdepth += YYMAXDEPTH;
936 yyv = (YYSTYPE*)realloc((char*)yyv,
937 yymaxdepth * sizeof(YYSTYPE));
938 yys = (int*)realloc((char*)yys,
939 yymaxdepth * sizeof(int));
942 yyerror( "yacc stack overflow" );
945 yy_ps = yys + yyps_index;
946 yy_pv = yyv + yypv_index;
947 yypvt = yyv + yypvt_index;
953 ** we have a new state - find out what to do
956 if ( ( yy_n = yypact[ yy_state ] ) <= YYFLAG )
957 goto yydefault; /* simple state */
960 ** if debugging, need to mark whether new token grabbed
964 if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
965 yychar = 0; /* reached EOF */
967 if ( yydebug && yytmp )
971 (void)printf( " *** Received token " );
973 (void)printf( "end-of-file\n" );
974 else if ( yychar < 0 )
975 (void)printf( "-none-\n" );
978 for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
981 if ( yytoks[yy_i].t_val == yychar )
984 (void)printf( "%s\n", yytoks[yy_i].t_name );
988 if ( ( ( yy_n += yychar ) < 0 ) || ( yy_n >= YYLAST ) )
990 if ( yychk[ yy_n = yyact[ yy_n ] ] == yychar ) /*valid shift*/
1001 if ( ( yy_n = yydef[ yy_state ] ) == -2 )
1006 if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
1007 yychar = 0; /* reached EOF */
1009 if ( yydebug && yytmp )
1013 (void)printf( " *** Received token " );
1015 (void)printf( "end-of-file\n" );
1016 else if ( yychar < 0 )
1017 (void)printf( "-none-\n" );
1021 yytoks[yy_i].t_val >= 0;
1024 if ( yytoks[yy_i].t_val
1030 (void)printf( "%s\n", yytoks[yy_i].t_name );
1033 #endif /* YYDEBUG */
1035 ** look through exception table
1038 register int *yyxi = yyexca;
1040 while ( ( *yyxi != -1 ) ||
1041 ( yyxi[1] != yy_state ) )
1045 while ( ( *(yyxi += 2) >= 0 ) &&
1046 ( *yyxi != yychar ) )
1048 if ( ( yy_n = yyxi[1] ) < 0 )
1054 ** check for syntax error
1056 if ( yy_n == 0 ) /* have an error */
1058 /* no worry about speed here! */
1059 switch ( yyerrflag )
1061 case 0: /* new error */
1062 yyerror( "syntax error" );
1066 ** get globals into registers.
1067 ** we have a user generated syntax type error
1075 case 2: /* incompletely recovered error */
1079 ** find state where "error" is a legal
1082 while ( yy_ps >= yys )
1084 yy_n = yypact[ *yy_ps ] + YYERRCODE;
1085 if ( yy_n >= 0 && yy_n < YYLAST &&
1086 yychk[yyact[yy_n]] == YYERRCODE) {
1088 ** simulate shift of "error"
1090 yy_state = yyact[ yy_n ];
1094 ** current state has no shift on
1095 ** "error", pop stack
1098 # define _POP_ "Error recovery pops state %d, uncovers state %d\n"
1100 (void)printf( _POP_, *yy_ps,
1108 ** there is no state on stack with "error" as
1109 ** a valid shift. give up.
1112 case 3: /* no shift yet; eat a token */
1115 ** if debugging, look up token in list of
1116 ** pairs. 0 and negative shouldn't occur,
1117 ** but since timing doesn't matter when
1118 ** debugging, it doesn't hurt to leave the
1125 (void)printf( "Error recovery discards " );
1127 (void)printf( "token end-of-file\n" );
1128 else if ( yychar < 0 )
1129 (void)printf( "token -none-\n" );
1133 yytoks[yy_i].t_val >= 0;
1136 if ( yytoks[yy_i].t_val
1142 (void)printf( "token %s\n",
1143 yytoks[yy_i].t_name );
1146 #endif /* YYDEBUG */
1147 if ( yychar == 0 ) /* reached EOF. quit */
1152 }/* end if ( yy_n == 0 ) */
1154 ** reduction by production yy_n
1155 ** put stack tops, etc. so things right after switch
1159 ** if debugging, print the string that is the user's
1160 ** specification of the reduction which is just about
1164 (void)printf( "Reduce by (%d) \"%s\"\n",
1165 yy_n, yyreds[ yy_n ] );
1167 yytmp = yy_n; /* value to switch over */
1168 yypvt = yy_pv; /* $vars top of value stack */
1170 ** Look in goto table for next state
1171 ** Sorry about using yy_state here as temporary
1172 ** register variable, but why not, if it works...
1173 ** If yyr2[ yy_n ] doesn't have the low order bit
1174 ** set, then there is no action to be done for
1175 ** this reduction. So, no saving & unsaving of
1176 ** registers done. The only difference between the
1177 ** code just after the if and the body of the if is
1178 ** the goto yy_stack in the body. This way the test
1179 ** can be made before the choice of what to do is needed.
1182 /* length of production doubled with extra bit */
1183 register int yy_len = yyr2[ yy_n ];
1185 if ( !( yy_len & 01 ) )
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 ||
1193 yyact[ yy_state ] ] != -yy_n )
1195 yy_state = yyact[ yypgo[ yy_n ] ];
1200 yyval = ( yy_pv -= yy_len )[1]; /* $$ = $1 */
1201 yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
1202 *( yy_ps -= yy_len ) + 1;
1203 if ( yy_state >= YYLAST ||
1204 yychk[ yy_state = yyact[ yy_state ] ] != -yy_n )
1206 yy_state = yyact[ yypgo[ yy_n ] ];
1209 /* save until reenter driver code */
1215 ** code supplied by user is placed in this switch
1221 # line 100 "perly.y"
1223 #if defined(YYDEBUG) && defined(DEBUGGING)
1224 yydebug = (debug & 1);
1229 # line 107 "perly.y"
1231 eval_root = newUNOP(OP_LEAVEEVAL, 0, yypvt[-0].opval);
1232 eval_start = linklist(eval_root);
1233 eval_root->op_next = 0;
1237 main_root = block_head(yypvt[-0].opval, &main_start);
1240 # line 119 "perly.y"
1241 { yyval.opval = scalarseq(yypvt[-1].opval);
1242 if (copline > (line_t)yypvt[-3].ival)
1243 copline = yypvt[-3].ival;
1244 leave_scope(yypvt[-2].ival);
1245 pad_leavemy(comppadnamefill);
1246 expect = XBLOCK; } break;
1248 # line 128 "perly.y"
1249 { yyval.ival = savestack_ix; SAVEINT(comppadnamefill); } break;
1251 # line 132 "perly.y"
1252 { yyval.opval = Nullop; } break;
1254 # line 134 "perly.y"
1255 { yyval.opval = yypvt[-1].opval; } break;
1257 # line 136 "perly.y"
1258 { yyval.opval = append_list(OP_LINESEQ, yypvt[-1].opval, yypvt[-0].opval); pad_reset(); } break;
1260 # line 140 "perly.y"
1261 { yyval.opval = newSTATEOP(0, yypvt[-1].pval, yypvt[-0].opval); } break;
1263 # line 143 "perly.y"
1264 { if (yypvt[-1].pval != Nullch) {
1265 yyval.opval = newSTATEOP(0, yypvt[-1].pval, newOP(OP_NULL, 0));
1268 yyval.opval = Nullop;
1271 expect = XBLOCK; } break;
1273 # line 152 "perly.y"
1274 { yyval.opval = newSTATEOP(0, yypvt[-2].pval, yypvt[-1].opval);
1275 expect = XBLOCK; } break;
1277 # line 157 "perly.y"
1278 { yyval.opval = Nullop; } break;
1280 # line 159 "perly.y"
1281 { yyval.opval = yypvt[-0].opval; } break;
1283 # line 161 "perly.y"
1284 { yyval.opval = newLOGOP(OP_AND, 0, yypvt[-0].opval, yypvt[-2].opval); } break;
1286 # line 163 "perly.y"
1287 { yyval.opval = newLOGOP(OP_OR, 0, yypvt[-0].opval, yypvt[-2].opval); } break;
1289 # line 165 "perly.y"
1290 { yyval.opval = newLOOPOP(0, 1, scalar(yypvt[-0].opval), yypvt[-2].opval); } break;
1292 # line 167 "perly.y"
1293 { yyval.opval = newLOOPOP(0, 1, invert(scalar(yypvt[-0].opval)), yypvt[-2].opval);} break;
1295 # line 171 "perly.y"
1296 { yyval.opval = Nullop; } break;
1298 # line 173 "perly.y"
1299 { yyval.opval = scope(yypvt[-0].opval); } break;
1301 # line 175 "perly.y"
1302 { copline = yypvt[-5].ival;
1303 yyval.opval = newCONDOP(0, yypvt[-3].opval, scope(yypvt[-1].opval), yypvt[-0].opval); } break;
1305 # line 180 "perly.y"
1306 { copline = yypvt[-5].ival;
1307 yyval.opval = newCONDOP(0, yypvt[-3].opval, scope(yypvt[-1].opval), yypvt[-0].opval); } break;
1309 # line 183 "perly.y"
1310 { copline = yypvt[-5].ival;
1311 yyval.opval = newCONDOP(0,
1312 invert(scalar(yypvt[-3].opval)), scope(yypvt[-1].opval), yypvt[-0].opval); } break;
1314 # line 187 "perly.y"
1315 { copline = yypvt[-3].ival;
1316 yyval.opval = newCONDOP(0, scope(yypvt[-2].opval), scope(yypvt[-1].opval), yypvt[-0].opval); } break;
1318 # line 190 "perly.y"
1319 { copline = yypvt[-3].ival;
1320 yyval.opval = newCONDOP(0, invert(scalar(scope(yypvt[-2].opval))),
1321 scope(yypvt[-1].opval), yypvt[-0].opval); } break;
1323 # line 196 "perly.y"
1324 { yyval.opval = Nullop; } break;
1326 # line 198 "perly.y"
1327 { yyval.opval = scope(yypvt[-0].opval); } break;
1329 # line 202 "perly.y"
1330 { copline = yypvt[-5].ival;
1331 yyval.opval = newSTATEOP(0, yypvt[-6].pval,
1332 newWHILEOP(0, 1, Nullop, yypvt[-3].opval, yypvt[-1].opval, yypvt[-0].opval) ); } break;
1334 # line 206 "perly.y"
1335 { copline = yypvt[-5].ival;
1336 yyval.opval = newSTATEOP(0, yypvt[-6].pval,
1337 newWHILEOP(0, 1, Nullop,
1338 invert(scalar(yypvt[-3].opval)), yypvt[-1].opval, yypvt[-0].opval) ); } break;
1340 # line 211 "perly.y"
1341 { copline = yypvt[-3].ival;
1342 yyval.opval = newSTATEOP(0, yypvt[-4].pval,
1343 newWHILEOP(0, 1, Nullop,
1344 scope(yypvt[-2].opval), yypvt[-1].opval, yypvt[-0].opval) ); } break;
1346 # line 216 "perly.y"
1347 { copline = yypvt[-3].ival;
1348 yyval.opval = newSTATEOP(0, yypvt[-4].pval,
1349 newWHILEOP(0, 1, Nullop,
1350 invert(scalar(scope(yypvt[-2].opval))), yypvt[-1].opval, yypvt[-0].opval)); } break;
1352 # line 221 "perly.y"
1353 { yyval.opval = newFOROP(0, yypvt[-7].pval, yypvt[-6].ival, ref(yypvt[-5].opval, OP_ENTERLOOP),
1354 yypvt[-3].opval, yypvt[-1].opval, yypvt[-0].opval); } break;
1356 # line 224 "perly.y"
1357 { yyval.opval = newFOROP(0, yypvt[-6].pval, yypvt[-5].ival, Nullop, yypvt[-3].opval, yypvt[-1].opval, yypvt[-0].opval); } break;
1359 # line 227 "perly.y"
1360 { copline = yypvt[-8].ival;
1361 yyval.opval = append_elem(OP_LINESEQ,
1362 newSTATEOP(0, yypvt[-9].pval, scalar(yypvt[-6].opval)),
1363 newSTATEOP(0, yypvt[-9].pval,
1364 newWHILEOP(0, 1, Nullop,
1365 scalar(yypvt[-4].opval), yypvt[-0].opval, scalar(yypvt[-2].opval)) )); } break;
1367 # line 234 "perly.y"
1368 { yyval.opval = newSTATEOP(0,
1369 yypvt[-2].pval, newWHILEOP(0, 1, Nullop, Nullop, yypvt[-1].opval, yypvt[-0].opval)); } break;
1371 # line 239 "perly.y"
1372 { yyval.opval = Nullop; } break;
1374 # line 244 "perly.y"
1375 { (void)scan_num("1"); yyval.opval = yylval.opval; } break;
1377 # line 249 "perly.y"
1378 { yyval.pval = Nullch; } break;
1380 # line 254 "perly.y"
1381 { yyval.ival = 0; } break;
1383 # line 256 "perly.y"
1384 { yyval.ival = 0; } break;
1386 # line 258 "perly.y"
1387 { yyval.ival = 0; } break;
1389 # line 262 "perly.y"
1390 { newFORM(yypvt[-2].ival, yypvt[-1].opval, yypvt[-0].opval); } break;
1392 # line 264 "perly.y"
1393 { newFORM(yypvt[-1].ival, Nullop, yypvt[-0].opval); } break;
1395 # line 268 "perly.y"
1396 { newSUB(yypvt[-2].ival, yypvt[-1].opval, yypvt[-0].opval); } break;
1398 # line 272 "perly.y"
1399 { package(yypvt[-1].opval); } break;
1401 # line 274 "perly.y"
1402 { package(Nullop); } break;
1404 # line 278 "perly.y"
1405 { yyval.opval = append_elem(OP_LIST, yypvt[-2].opval, yypvt[-0].opval); } break;
1407 # line 283 "perly.y"
1408 { yyval.opval = convert(yypvt[-2].ival, OPf_STACKED,
1409 prepend_elem(OP_LIST, newGVREF(yypvt[-1].opval), yypvt[-0].opval) ); } break;
1411 # line 286 "perly.y"
1412 { yyval.opval = convert(yypvt[-4].ival, OPf_STACKED,
1413 prepend_elem(OP_LIST, newGVREF(yypvt[-2].opval), yypvt[-1].opval) ); } break;
1415 # line 289 "perly.y"
1416 { yyval.opval = convert(yypvt[-1].ival, OPf_STACKED,
1417 prepend_elem(OP_LIST, newGVREF(yypvt[-3].opval), yypvt[-0].opval) ); } break;
1419 # line 292 "perly.y"
1420 { yyval.opval = convert(yypvt[-3].ival, OPf_STACKED,
1421 prepend_elem(OP_LIST, newGVREF(yypvt[-5].opval), yypvt[-1].opval) ); } break;
1423 # line 295 "perly.y"
1424 { yyval.opval = convert(OP_ENTERSUBR, OPf_STACKED|OPf_SPECIAL,
1425 prepend_elem(OP_LIST, newMETHOD(yypvt[-5].opval,yypvt[-3].opval), yypvt[-1].opval)); } break;
1427 # line 298 "perly.y"
1428 { yyval.opval = convert(OP_ENTERSUBR, OPf_STACKED|OPf_SPECIAL,
1429 prepend_elem(OP_LIST, newMETHOD(yypvt[-1].opval,yypvt[-2].opval), yypvt[-0].opval)); } break;
1431 # line 301 "perly.y"
1432 { yyval.opval = convert(yypvt[-1].ival, 0, yypvt[-0].opval); } break;
1434 # line 303 "perly.y"
1435 { yyval.opval = convert(yypvt[-3].ival, 0, yypvt[-1].opval); } break;
1437 # line 307 "perly.y"
1438 { yyval.opval = newASSIGNOP(OPf_STACKED, yypvt[-2].opval, yypvt[-0].opval); } break;
1440 # line 309 "perly.y"
1441 { yyval.opval = newBINOP(yypvt[-2].ival, OPf_STACKED,
1442 ref(scalar(yypvt[-3].opval), yypvt[-2].ival), scalar(yypvt[-0].opval)); } break;
1444 # line 312 "perly.y"
1445 { yyval.opval = newBINOP(yypvt[-2].ival, OPf_STACKED,
1446 ref(scalar(yypvt[-3].opval), yypvt[-2].ival), scalar(yypvt[-0].opval)); } break;
1448 # line 315 "perly.y"
1449 { yyval.opval = newBINOP(yypvt[-2].ival, OPf_STACKED,
1450 ref(scalar(yypvt[-3].opval), yypvt[-2].ival), scalar(yypvt[-0].opval));} break;
1452 # line 318 "perly.y"
1453 { yyval.opval = newBINOP(yypvt[-2].ival, OPf_STACKED,
1454 ref(scalar(yypvt[-3].opval), yypvt[-2].ival), scalar(yypvt[-0].opval)); } break;
1456 # line 321 "perly.y"
1457 { yyval.opval = newBINOP(yypvt[-2].ival, OPf_STACKED,
1458 ref(scalar(yypvt[-3].opval), yypvt[-2].ival), scalar(yypvt[-0].opval)); } break;
1460 # line 324 "perly.y"
1461 { yyval.opval = newBINOP(yypvt[-2].ival, OPf_STACKED,
1462 ref(scalar(yypvt[-3].opval), yypvt[-2].ival), scalar(yypvt[-0].opval)); } break;
1464 # line 327 "perly.y"
1465 { yyval.opval = newLOGOP(OP_ANDASSIGN, 0,
1466 ref(scalar(yypvt[-3].opval), OP_ANDASSIGN),
1467 newUNOP(OP_SASSIGN, 0, scalar(yypvt[-0].opval))); } break;
1469 # line 331 "perly.y"
1470 { yyval.opval = newLOGOP(OP_ORASSIGN, 0,
1471 ref(scalar(yypvt[-3].opval), OP_ORASSIGN),
1472 newUNOP(OP_SASSIGN, 0, scalar(yypvt[-0].opval))); } break;
1474 # line 337 "perly.y"
1475 { yyval.opval = newBINOP(yypvt[-1].ival, 0, scalar(yypvt[-2].opval), scalar(yypvt[-0].opval)); } break;
1477 # line 339 "perly.y"
1478 { if (yypvt[-1].ival != OP_REPEAT)
1479 scalar(yypvt[-2].opval);
1480 yyval.opval = newBINOP(yypvt[-1].ival, 0, yypvt[-2].opval, scalar(yypvt[-0].opval)); } break;
1482 # line 343 "perly.y"
1483 { yyval.opval = newBINOP(yypvt[-1].ival, 0, scalar(yypvt[-2].opval), scalar(yypvt[-0].opval)); } break;
1485 # line 345 "perly.y"
1486 { yyval.opval = newBINOP(yypvt[-1].ival, 0, scalar(yypvt[-2].opval), scalar(yypvt[-0].opval)); } break;
1488 # line 347 "perly.y"
1489 { yyval.opval = newBINOP(yypvt[-1].ival, 0, scalar(yypvt[-2].opval), scalar(yypvt[-0].opval)); } break;
1491 # line 349 "perly.y"
1492 { yyval.opval = newBINOP(yypvt[-1].ival, 0, scalar(yypvt[-2].opval), scalar(yypvt[-0].opval)); } break;
1494 # line 351 "perly.y"
1495 { yyval.opval = newBINOP(yypvt[-1].ival, 0, scalar(yypvt[-2].opval), scalar(yypvt[-0].opval)); } break;
1497 # line 353 "perly.y"
1498 { yyval.opval = newBINOP(yypvt[-1].ival, 0, scalar(yypvt[-2].opval), scalar(yypvt[-0].opval)); } break;
1500 # line 355 "perly.y"
1501 { yyval.opval = newRANGE(yypvt[-1].ival, scalar(yypvt[-2].opval), scalar(yypvt[-0].opval));} break;
1503 # line 357 "perly.y"
1504 { yyval.opval = newLOGOP(OP_AND, 0, yypvt[-2].opval, yypvt[-0].opval); } break;
1506 # line 359 "perly.y"
1507 { yyval.opval = newLOGOP(OP_OR, 0, yypvt[-2].opval, yypvt[-0].opval); } break;
1509 # line 361 "perly.y"
1510 { yyval.opval = newCONDOP(0, yypvt[-4].opval, yypvt[-2].opval, yypvt[-0].opval); } break;
1512 # line 363 "perly.y"
1513 { yyval.opval = bind_match(yypvt[-1].ival, yypvt[-2].opval, yypvt[-0].opval); } break;
1515 # line 365 "perly.y"
1516 { yyval.opval = yypvt[-0].opval; } break;
1518 # line 369 "perly.y"
1519 { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yypvt[-0].opval)); } break;
1521 # line 371 "perly.y"
1522 { yyval.opval = yypvt[-0].opval; } break;
1524 # line 373 "perly.y"
1525 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yypvt[-0].opval)); } break;
1527 # line 375 "perly.y"
1528 { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yypvt[-0].opval));} break;
1530 # line 377 "perly.y"
1531 { yyval.opval = newUNOP(OP_REFGEN, 0, ref(yypvt[-0].opval, OP_REFGEN)); } break;
1533 # line 379 "perly.y"
1534 { yyval.opval = newUNOP(OP_POSTINC, 0,
1535 ref(scalar(yypvt[-1].opval), OP_POSTINC)); } break;
1537 # line 382 "perly.y"
1538 { yyval.opval = newUNOP(OP_POSTDEC, 0,
1539 ref(scalar(yypvt[-1].opval), OP_POSTDEC)); } break;
1541 # line 385 "perly.y"
1542 { yyval.opval = newUNOP(OP_PREINC, 0,
1543 ref(scalar(yypvt[-0].opval), OP_PREINC)); } break;
1545 # line 388 "perly.y"
1546 { yyval.opval = newUNOP(OP_PREDEC, 0,
1547 ref(scalar(yypvt[-0].opval), OP_PREDEC)); } break;
1549 # line 391 "perly.y"
1550 { yyval.opval = localize(yypvt[-0].opval,yypvt[-1].ival); } break;
1552 # line 393 "perly.y"
1553 { yyval.opval = sawparens(yypvt[-1].opval); } break;
1555 # line 395 "perly.y"
1556 { yyval.opval = newNULLLIST(); } break;
1558 # line 397 "perly.y"
1559 { yyval.opval = newANONLIST(yypvt[-1].opval); } break;
1561 # line 399 "perly.y"
1562 { yyval.opval = newANONLIST(Nullop); } break;
1564 # line 401 "perly.y"
1565 { yyval.opval = newANONHASH(yypvt[-1].opval); } break;
1567 # line 403 "perly.y"
1568 { yyval.opval = newANONHASH(Nullop); } break;
1570 # line 405 "perly.y"
1571 { yyval.opval = yypvt[-0].opval; } break;
1573 # line 407 "perly.y"
1574 { yyval.opval = yypvt[-0].opval; } break;
1576 # line 409 "perly.y"
1577 { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yypvt[-3].opval), scalar(yypvt[-1].opval)); } break;
1579 # line 411 "perly.y"
1580 { yyval.opval = newBINOP(OP_AELEM, 0,
1581 scalar(ref(newAVREF(yypvt[-4].opval),OP_RV2AV)),
1582 scalar(yypvt[-1].opval));} break;
1584 # line 415 "perly.y"
1585 { yyval.opval = yypvt[-0].opval; } break;
1587 # line 417 "perly.y"
1588 { yyval.opval = yypvt[-0].opval; } break;
1590 # line 419 "perly.y"
1591 { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yypvt[-0].opval, OP_AV2ARYLEN));} break;
1593 # line 421 "perly.y"
1594 { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yypvt[-4].opval), jmaybe(yypvt[-2].opval));
1595 expect = XOPERATOR; } break;
1597 # line 424 "perly.y"
1598 { yyval.opval = newBINOP(OP_HELEM, 0,
1599 scalar(ref(newHVREF(yypvt[-5].opval),OP_RV2HV)),
1600 jmaybe(yypvt[-2].opval));
1601 expect = XOPERATOR; } break;
1603 # line 429 "perly.y"
1604 { yyval.opval = newSLICEOP(0, yypvt[-1].opval, yypvt[-4].opval); } break;
1606 # line 431 "perly.y"
1607 { yyval.opval = newSLICEOP(0, yypvt[-1].opval, Nullop); } break;
1609 # line 433 "perly.y"
1610 { yyval.opval = prepend_elem(OP_ASLICE,
1611 newOP(OP_PUSHMARK, 0),
1613 newLISTOP(OP_ASLICE, 0,
1614 list(yypvt[-1].opval),
1615 ref(yypvt[-3].opval, OP_ASLICE)))); } break;
1617 # line 440 "perly.y"
1618 { yyval.opval = prepend_elem(OP_HSLICE,
1619 newOP(OP_PUSHMARK, 0),
1621 newLISTOP(OP_HSLICE, 0,
1622 list(yypvt[-2].opval),
1623 ref(oopsHV(yypvt[-4].opval), OP_HSLICE))));
1624 expect = XOPERATOR; } break;
1626 # line 448 "perly.y"
1627 { yyval.opval = newBINOP(OP_DELETE, 0, oopsHV(yypvt[-4].opval), jmaybe(yypvt[-2].opval));
1628 expect = XOPERATOR; } break;
1630 # line 451 "perly.y"
1631 { yyval.opval = newBINOP(OP_DELETE, 0, oopsHV(yypvt[-5].opval), jmaybe(yypvt[-3].opval));
1632 expect = XOPERATOR; } break;
1634 # line 454 "perly.y"
1635 { yyval.opval = yypvt[-0].opval; } break;
1637 # line 456 "perly.y"
1638 { yyval.opval = newUNOP(OP_ENTERSUBR, 0,
1639 scalar(yypvt[-0].opval)); } break;
1641 # line 459 "perly.y"
1642 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_STACKED, scalar(yypvt[-2].opval)); } break;
1644 # line 461 "perly.y"
1645 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_STACKED,
1646 list(prepend_elem(OP_LIST, scalar(yypvt[-3].opval), yypvt[-1].opval))); } break;
1648 # line 464 "perly.y"
1649 { yyval.opval = newUNOP(OP_DOFILE, 0, scalar(yypvt[-0].opval));
1650 allgvs = TRUE;} break;
1652 # line 467 "perly.y"
1653 { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yypvt[-0].opval)); } break;
1655 # line 469 "perly.y"
1656 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_SPECIAL|OPf_STACKED,
1657 list(prepend_elem(OP_LIST,
1658 scalar(newCVREF(scalar(yypvt[-2].opval))), newNULLLIST()))); } break;
1660 # line 473 "perly.y"
1661 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_SPECIAL|OPf_STACKED,
1662 list(prepend_elem(OP_LIST,
1663 scalar(newCVREF(scalar(yypvt[-3].opval))),
1664 yypvt[-1].opval))); } break;
1666 # line 478 "perly.y"
1667 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_SPECIAL|OPf_STACKED,
1668 list(prepend_elem(OP_LIST,
1669 scalar(newCVREF(scalar(yypvt[-2].opval))), newNULLLIST())));} break;
1671 # line 482 "perly.y"
1672 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_SPECIAL|OPf_STACKED,
1673 list(prepend_elem(OP_LIST,
1674 scalar(newCVREF(scalar(yypvt[-3].opval))),
1675 yypvt[-1].opval))); } break;
1677 # line 487 "perly.y"
1678 { yyval.opval = newOP(yypvt[-0].ival, OPf_SPECIAL); } break;
1680 # line 489 "perly.y"
1681 { yyval.opval = newPVOP(yypvt[-1].ival, 0,
1682 savestr(SvPVnx(((SVOP*)yypvt[-0].opval)->op_sv)));
1683 op_free(yypvt[-0].opval); } break;
1685 # line 493 "perly.y"
1686 { yyval.opval = newOP(yypvt[-0].ival, 0); } break;
1688 # line 495 "perly.y"
1689 { yyval.opval = newUNOP(yypvt[-1].ival, 0, yypvt[-0].opval); } break;
1691 # line 497 "perly.y"
1692 { yyval.opval = newUNOP(yypvt[-1].ival, 0, yypvt[-0].opval); } break;
1694 # line 499 "perly.y"
1695 { yyval.opval = newOP(yypvt[-0].ival, 0); } break;
1697 # line 501 "perly.y"
1698 { yyval.opval = newOP(yypvt[-2].ival, 0); } break;
1700 # line 503 "perly.y"
1701 { yyval.opval = newOP(yypvt[-2].ival, OPf_SPECIAL); } break;
1703 # line 505 "perly.y"
1704 { yyval.opval = newUNOP(yypvt[-3].ival, 0, yypvt[-1].opval); } break;
1706 # line 507 "perly.y"
1707 { yyval.opval = pmruntime(yypvt[-3].opval, yypvt[-1].opval, Nullop); } break;
1709 # line 509 "perly.y"
1710 { yyval.opval = pmruntime(yypvt[-5].opval, yypvt[-3].opval, yypvt[-1].opval); } break;
1712 # line 515 "perly.y"
1713 { yyval.opval = newNULLLIST(); } break;
1715 # line 517 "perly.y"
1716 { yyval.opval = yypvt[-0].opval; } break;
1718 # line 521 "perly.y"
1719 { yyval.opval = newCVREF(yypvt[-0].opval); } break;
1721 # line 525 "perly.y"
1722 { yyval.opval = newSVREF(yypvt[-0].opval); } break;
1724 # line 529 "perly.y"
1725 { yyval.opval = newAVREF(yypvt[-0].opval); } break;
1727 # line 533 "perly.y"
1728 { yyval.opval = newHVREF(yypvt[-0].opval); } break;
1730 # line 537 "perly.y"
1731 { yyval.opval = newAVREF(yypvt[-0].opval); } break;
1733 # line 541 "perly.y"
1734 { yyval.opval = newGVREF(yypvt[-0].opval); } break;
1736 # line 545 "perly.y"
1737 { yyval.opval = scalar(yypvt[-0].opval); } break;
1739 # line 547 "perly.y"
1740 { yyval.opval = scalar(yypvt[-0].opval); } break;
1742 # line 549 "perly.y"
1743 { yyval.opval = scalar(scope(yypvt[-0].opval)); } break;
1745 # line 552 "perly.y"
1746 { yyval.opval = yypvt[-0].opval; } break;
1748 # line 556 "perly.y"
1749 { yyval.ival = 1; } break;
1751 # line 558 "perly.y"
1752 { yyval.ival = 0; } break;
1754 # line 562 "perly.y"
1755 { yyval.ival = 1; } break;
1757 # line 564 "perly.y"
1758 { yyval.ival = 0; } break;
1760 # line 568 "perly.y"
1761 { yyval.ival = 1; } break;
1763 # line 570 "perly.y"
1764 { yyval.ival = 0; } break;
1766 goto yystack; /* reset registers in driver code */