Switch from byacc to bison and simplify the perly.* regeneration
[p5sagit/p5-mst-13.2.git] / perly.act
1 case 2:
2 #line 88 "perly.y"
3     { yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); ;}
4     break;
5
6   case 3:
7 #line 93 "perly.y"
8     { if (PL_copline > (line_t)yyvsp[-3].ival)
9                               PL_copline = (line_t)yyvsp[-3].ival;
10                           yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); ;}
11     break;
12
13   case 4:
14 #line 99 "perly.y"
15     { yyval.ival = block_start(TRUE); ;}
16     break;
17
18   case 5:
19 #line 103 "perly.y"
20     {
21                     PL_expect = XSTATE; yyval.ival = block_start(TRUE);
22                 ;}
23     break;
24
25   case 6:
26 #line 110 "perly.y"
27     { if (PL_copline > (line_t)yyvsp[-3].ival)
28                               PL_copline = (line_t)yyvsp[-3].ival;
29                           yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); ;}
30     break;
31
32   case 7:
33 #line 116 "perly.y"
34     { yyval.ival = block_start(FALSE); ;}
35     break;
36
37   case 8:
38 #line 121 "perly.y"
39     { yyval.opval = Nullop; ;}
40     break;
41
42   case 9:
43 #line 123 "perly.y"
44     { yyval.opval = yyvsp[-1].opval; ;}
45     break;
46
47   case 10:
48 #line 125 "perly.y"
49     {   yyval.opval = append_list(OP_LINESEQ,
50                                 (LISTOP*)yyvsp[-1].opval, (LISTOP*)yyvsp[0].opval);
51                             PL_pad_reset_pending = TRUE;
52                             if (yyvsp[-1].opval && yyvsp[0].opval) PL_hints |= HINT_BLOCK_SCOPE; ;}
53     break;
54
55   case 11:
56 #line 133 "perly.y"
57     { yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); ;}
58     break;
59
60   case 13:
61 #line 136 "perly.y"
62     { if (yyvsp[-1].pval != Nullch) {
63                               yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
64                             }
65                             else {
66                               yyval.opval = Nullop;
67                               PL_copline = NOLINE;
68                             }
69                             PL_expect = XSTATE; ;}
70     break;
71
72   case 14:
73 #line 145 "perly.y"
74     { yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
75                           PL_expect = XSTATE; ;}
76     break;
77
78   case 15:
79 #line 151 "perly.y"
80     { yyval.opval = Nullop; ;}
81     break;
82
83   case 16:
84 #line 153 "perly.y"
85     { yyval.opval = yyvsp[0].opval; ;}
86     break;
87
88   case 17:
89 #line 155 "perly.y"
90     { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); ;}
91     break;
92
93   case 18:
94 #line 157 "perly.y"
95     { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); ;}
96     break;
97
98   case 19:
99 #line 159 "perly.y"
100     { yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); ;}
101     break;
102
103   case 20:
104 #line 161 "perly.y"
105     { yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);;}
106     break;
107
108   case 21:
109 #line 163 "perly.y"
110     { yyval.opval = newFOROP(0, Nullch, (line_t)yyvsp[-1].ival,
111                                         Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); ;}
112     break;
113
114   case 22:
115 #line 169 "perly.y"
116     { yyval.opval = Nullop; ;}
117     break;
118
119   case 23:
120 #line 171 "perly.y"
121     { (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); ;}
122     break;
123
124   case 24:
125 #line 173 "perly.y"
126     { PL_copline = (line_t)yyvsp[-5].ival;
127                             yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval);
128                             PL_hints |= HINT_BLOCK_SCOPE; ;}
129     break;
130
131   case 25:
132 #line 180 "perly.y"
133     { PL_copline = (line_t)yyvsp[-6].ival;
134                             yyval.opval = block_end(yyvsp[-4].ival,
135                                    newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); ;}
136     break;
137
138   case 26:
139 #line 184 "perly.y"
140     { PL_copline = (line_t)yyvsp[-6].ival;
141                             yyval.opval = block_end(yyvsp[-4].ival,
142                                    newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); ;}
143     break;
144
145   case 27:
146 #line 191 "perly.y"
147     { yyval.opval = Nullop; ;}
148     break;
149
150   case 28:
151 #line 193 "perly.y"
152     { yyval.opval = scope(yyvsp[0].opval); ;}
153     break;
154
155   case 29:
156 #line 198 "perly.y"
157     { PL_copline = (line_t)yyvsp[-6].ival;
158                             yyval.opval = block_end(yyvsp[-4].ival,
159                                    newSTATEOP(0, yyvsp[-7].pval,
160                                      newWHILEOP(0, 1, (LOOP*)Nullop,
161                                                 yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); ;}
162     break;
163
164   case 30:
165 #line 204 "perly.y"
166     { PL_copline = (line_t)yyvsp[-6].ival;
167                             yyval.opval = block_end(yyvsp[-4].ival,
168                                    newSTATEOP(0, yyvsp[-7].pval,
169                                      newWHILEOP(0, 1, (LOOP*)Nullop,
170                                                 yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); ;}
171     break;
172
173   case 31:
174 #line 210 "perly.y"
175     { yyval.opval = block_end(yyvsp[-6].ival,
176                                  newFOROP(0, yyvsp[-9].pval, (line_t)yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); ;}
177     break;
178
179   case 32:
180 #line 213 "perly.y"
181     { yyval.opval = block_end(yyvsp[-4].ival,
182                                  newFOROP(0, yyvsp[-8].pval, (line_t)yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
183                                           yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); ;}
184     break;
185
186   case 33:
187 #line 217 "perly.y"
188     { yyval.opval = block_end(yyvsp[-4].ival,
189                                  newFOROP(0, yyvsp[-7].pval, (line_t)yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); ;}
190     break;
191
192   case 34:
193 #line 221 "perly.y"
194     { OP *forop;
195                           PL_copline = (line_t)yyvsp[-9].ival;
196                           forop = newSTATEOP(0, yyvsp[-10].pval,
197                                             newWHILEOP(0, 1, (LOOP*)Nullop,
198                                                 yyvsp[-9].ival, scalar(yyvsp[-4].opval),
199                                                 yyvsp[0].opval, yyvsp[-2].opval));
200                           if (yyvsp[-6].opval) {
201                                 forop = append_elem(OP_LINESEQ,
202                                         newSTATEOP(0, (yyvsp[-10].pval?savepv(yyvsp[-10].pval):Nullch),
203                                                    yyvsp[-6].opval),
204                                         forop);
205                           }
206
207                           yyval.opval = block_end(yyvsp[-7].ival, forop); ;}
208     break;
209
210   case 35:
211 #line 236 "perly.y"
212     { yyval.opval = newSTATEOP(0, yyvsp[-2].pval,
213                                  newWHILEOP(0, 1, (LOOP*)Nullop,
214                                             NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); ;}
215     break;
216
217   case 36:
218 #line 243 "perly.y"
219     { yyval.opval = Nullop; ;}
220     break;
221
222   case 38:
223 #line 249 "perly.y"
224     { (void)scan_num("1", &yylval); yyval.opval = yylval.opval; ;}
225     break;
226
227   case 40:
228 #line 255 "perly.y"
229     { yyval.opval = invert(scalar(yyvsp[0].opval)); ;}
230     break;
231
232   case 41:
233 #line 260 "perly.y"
234     { yyval.opval = yyvsp[0].opval; intro_my(); ;}
235     break;
236
237   case 42:
238 #line 264 "perly.y"
239     { yyval.opval = yyvsp[0].opval; intro_my(); ;}
240     break;
241
242   case 43:
243 #line 268 "perly.y"
244     { yyval.opval = yyvsp[0].opval; intro_my(); ;}
245     break;
246
247   case 44:
248 #line 272 "perly.y"
249     { yyval.opval = yyvsp[0].opval; intro_my(); ;}
250     break;
251
252   case 45:
253 #line 277 "perly.y"
254     { yyval.pval = Nullch; ;}
255     break;
256
257   case 47:
258 #line 283 "perly.y"
259     { yyval.ival = 0; ;}
260     break;
261
262   case 48:
263 #line 285 "perly.y"
264     { yyval.ival = 0; ;}
265     break;
266
267   case 49:
268 #line 287 "perly.y"
269     { yyval.ival = 0; ;}
270     break;
271
272   case 50:
273 #line 289 "perly.y"
274     { yyval.ival = 0; ;}
275     break;
276
277   case 51:
278 #line 291 "perly.y"
279     { yyval.ival = 0; ;}
280     break;
281
282   case 52:
283 #line 295 "perly.y"
284     { newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); ;}
285     break;
286
287   case 53:
288 #line 298 "perly.y"
289     { yyval.opval = yyvsp[0].opval; ;}
290     break;
291
292   case 54:
293 #line 299 "perly.y"
294     { yyval.opval = Nullop; ;}
295     break;
296
297   case 55:
298 #line 304 "perly.y"
299     { newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
300     break;
301
302   case 56:
303 #line 309 "perly.y"
304     { newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
305     break;
306
307   case 57:
308 #line 313 "perly.y"
309     { yyval.ival = start_subparse(FALSE, 0); ;}
310     break;
311
312   case 58:
313 #line 317 "perly.y"
314     { yyval.ival = start_subparse(FALSE, CVf_ANON); ;}
315     break;
316
317   case 59:
318 #line 321 "perly.y"
319     { yyval.ival = start_subparse(TRUE, 0); ;}
320     break;
321
322   case 60:
323 #line 325 "perly.y"
324     { STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a);
325                           if (strEQ(name, "BEGIN") || strEQ(name, "END")
326                               || strEQ(name, "INIT") || strEQ(name, "CHECK"))
327                               CvSPECIAL_on(PL_compcv);
328                           yyval.opval = yyvsp[0].opval; ;}
329     break;
330
331   case 61:
332 #line 334 "perly.y"
333     { yyval.opval = Nullop; ;}
334     break;
335
336   case 63:
337 #line 340 "perly.y"
338     { yyval.opval = Nullop; ;}
339     break;
340
341   case 64:
342 #line 342 "perly.y"
343     { yyval.opval = yyvsp[0].opval; ;}
344     break;
345
346   case 65:
347 #line 344 "perly.y"
348     { yyval.opval = Nullop; ;}
349     break;
350
351   case 66:
352 #line 349 "perly.y"
353     { yyval.opval = yyvsp[0].opval; ;}
354     break;
355
356   case 67:
357 #line 351 "perly.y"
358     { yyval.opval = Nullop; ;}
359     break;
360
361   case 68:
362 #line 355 "perly.y"
363     { yyval.opval = yyvsp[0].opval; ;}
364     break;
365
366   case 69:
367 #line 356 "perly.y"
368     { yyval.opval = Nullop; PL_expect = XSTATE; ;}
369     break;
370
371   case 70:
372 #line 360 "perly.y"
373     { package(yyvsp[-1].opval); ;}
374     break;
375
376   case 71:
377 #line 364 "perly.y"
378     { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
379     break;
380
381   case 72:
382 #line 366 "perly.y"
383     { utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); ;}
384     break;
385
386   case 73:
387 #line 371 "perly.y"
388     { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
389     break;
390
391   case 74:
392 #line 373 "perly.y"
393     { yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
394     break;
395
396   case 75:
397 #line 375 "perly.y"
398     { yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
399     break;
400
401   case 77:
402 #line 381 "perly.y"
403     { yyval.opval = yyvsp[-1].opval; ;}
404     break;
405
406   case 78:
407 #line 383 "perly.y"
408     { yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); ;}
409     break;
410
411   case 80:
412 #line 389 "perly.y"
413     { yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
414                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); ;}
415     break;
416
417   case 81:
418 #line 392 "perly.y"
419     { yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
420                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); ;}
421     break;
422
423   case 82:
424 #line 395 "perly.y"
425     { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
426                                 append_elem(OP_LIST,
427                                     prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval),
428                                     newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); ;}
429     break;
430
431   case 83:
432 #line 400 "perly.y"
433     { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
434                                 append_elem(OP_LIST, scalar(yyvsp[-2].opval),
435                                     newUNOP(OP_METHOD, 0, yyvsp[0].opval))); ;}
436     break;
437
438   case 84:
439 #line 404 "perly.y"
440     { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
441                                 append_elem(OP_LIST,
442                                     prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval),
443                                     newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); ;}
444     break;
445
446   case 85:
447 #line 409 "perly.y"
448     { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
449                                 append_elem(OP_LIST,
450                                     prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval),
451                                     newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); ;}
452     break;
453
454   case 86:
455 #line 414 "perly.y"
456     { yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); ;}
457     break;
458
459   case 87:
460 #line 416 "perly.y"
461     { yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); ;}
462     break;
463
464   case 88:
465 #line 418 "perly.y"
466     { yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); ;}
467     break;
468
469   case 89:
470 #line 420 "perly.y"
471     { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
472                                  append_elem(OP_LIST,
473                                    prepend_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval), yyvsp[-4].opval)); ;}
474     break;
475
476   case 92:
477 #line 434 "perly.y"
478     { yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval));
479                             PL_expect = XOPERATOR; ;}
480     break;
481
482   case 93:
483 #line 437 "perly.y"
484     { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); ;}
485     break;
486
487   case 94:
488 #line 439 "perly.y"
489     { yyval.opval = newBINOP(OP_AELEM, 0,
490                                         ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
491                                         scalar(yyvsp[-1].opval));;}
492     break;
493
494   case 95:
495 #line 443 "perly.y"
496     { yyval.opval = newBINOP(OP_AELEM, 0,
497                                         ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
498                                         scalar(yyvsp[-1].opval));;}
499     break;
500
501   case 96:
502 #line 447 "perly.y"
503     { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
504                             PL_expect = XOPERATOR; ;}
505     break;
506
507   case 97:
508 #line 450 "perly.y"
509     { yyval.opval = newBINOP(OP_HELEM, 0,
510                                         ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
511                                         jmaybe(yyvsp[-2].opval));
512                             PL_expect = XOPERATOR; ;}
513     break;
514
515   case 98:
516 #line 455 "perly.y"
517     { yyval.opval = newBINOP(OP_HELEM, 0,
518                                         ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
519                                         jmaybe(yyvsp[-2].opval));
520                             PL_expect = XOPERATOR; ;}
521     break;
522
523   case 99:
524 #line 460 "perly.y"
525     { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
526                                    newCVREF(0, scalar(yyvsp[-3].opval))); ;}
527     break;
528
529   case 100:
530 #line 463 "perly.y"
531     { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
532                                    append_elem(OP_LIST, yyvsp[-1].opval,
533                                        newCVREF(0, scalar(yyvsp[-4].opval)))); ;}
534     break;
535
536   case 101:
537 #line 468 "perly.y"
538     { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
539                                    append_elem(OP_LIST, yyvsp[-1].opval,
540                                                newCVREF(0, scalar(yyvsp[-3].opval)))); ;}
541     break;
542
543   case 102:
544 #line 472 "perly.y"
545     { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
546                                    newCVREF(0, scalar(yyvsp[-2].opval))); ;}
547     break;
548
549   case 103:
550 #line 478 "perly.y"
551     { yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); ;}
552     break;
553
554   case 104:
555 #line 480 "perly.y"
556     { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
557     break;
558
559   case 105:
560 #line 482 "perly.y"
561     {   if (yyvsp[-1].ival != OP_REPEAT)
562                                 scalar(yyvsp[-2].opval);
563                             yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); ;}
564     break;
565
566   case 106:
567 #line 486 "perly.y"
568     { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
569     break;
570
571   case 107:
572 #line 488 "perly.y"
573     { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
574     break;
575
576   case 108:
577 #line 490 "perly.y"
578     { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
579     break;
580
581   case 109:
582 #line 492 "perly.y"
583     { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
584     break;
585
586   case 110:
587 #line 494 "perly.y"
588     { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
589     break;
590
591   case 111:
592 #line 496 "perly.y"
593     { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
594     break;
595
596   case 112:
597 #line 498 "perly.y"
598     { yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));;}
599     break;
600
601   case 113:
602 #line 500 "perly.y"
603     { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
604     break;
605
606   case 114:
607 #line 502 "perly.y"
608     { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
609     break;
610
611   case 115:
612 #line 504 "perly.y"
613     { yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
614     break;
615
616   case 116:
617 #line 506 "perly.y"
618     { yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); ;}
619     break;
620
621   case 117:
622 #line 511 "perly.y"
623     { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); ;}
624     break;
625
626   case 118:
627 #line 513 "perly.y"
628     { yyval.opval = yyvsp[0].opval; ;}
629     break;
630
631   case 119:
632 #line 515 "perly.y"
633     { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); ;}
634     break;
635
636   case 120:
637 #line 517 "perly.y"
638     { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));;}
639     break;
640
641   case 121:
642 #line 519 "perly.y"
643     { yyval.opval = newUNOP(OP_POSTINC, 0,
644                                         mod(scalar(yyvsp[-1].opval), OP_POSTINC)); ;}
645     break;
646
647   case 122:
648 #line 522 "perly.y"
649     { yyval.opval = newUNOP(OP_POSTDEC, 0,
650                                         mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); ;}
651     break;
652
653   case 123:
654 #line 525 "perly.y"
655     { yyval.opval = newUNOP(OP_PREINC, 0,
656                                         mod(scalar(yyvsp[0].opval), OP_PREINC)); ;}
657     break;
658
659   case 124:
660 #line 528 "perly.y"
661     { yyval.opval = newUNOP(OP_PREDEC, 0,
662                                         mod(scalar(yyvsp[0].opval), OP_PREDEC)); ;}
663     break;
664
665   case 125:
666 #line 535 "perly.y"
667     { yyval.opval = newANONLIST(yyvsp[-1].opval); ;}
668     break;
669
670   case 126:
671 #line 537 "perly.y"
672     { yyval.opval = newANONLIST(Nullop); ;}
673     break;
674
675   case 127:
676 #line 539 "perly.y"
677     { yyval.opval = newANONHASH(yyvsp[-2].opval); ;}
678     break;
679
680   case 128:
681 #line 541 "perly.y"
682     { yyval.opval = newANONHASH(Nullop); ;}
683     break;
684
685   case 129:
686 #line 543 "perly.y"
687     { yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
688     break;
689
690   case 130:
691 #line 549 "perly.y"
692     { yyval.opval = dofile(yyvsp[0].opval); ;}
693     break;
694
695   case 131:
696 #line 551 "perly.y"
697     { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); ;}
698     break;
699
700   case 132:
701 #line 553 "perly.y"
702     { yyval.opval = newUNOP(OP_ENTERSUB,
703                             OPf_SPECIAL|OPf_STACKED,
704                             prepend_elem(OP_LIST,
705                                 scalar(newCVREF(
706                                     (OPpENTERSUB_AMPER<<8),
707                                     scalar(yyvsp[-2].opval)
708                                 )),Nullop)); dep();;}
709     break;
710
711   case 133:
712 #line 561 "perly.y"
713     { yyval.opval = newUNOP(OP_ENTERSUB,
714                             OPf_SPECIAL|OPf_STACKED,
715                             append_elem(OP_LIST,
716                                 yyvsp[-1].opval,
717                                 scalar(newCVREF(
718                                     (OPpENTERSUB_AMPER<<8),
719                                     scalar(yyvsp[-3].opval)
720                                 )))); dep();;}
721     break;
722
723   case 134:
724 #line 570 "perly.y"
725     { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
726                             prepend_elem(OP_LIST,
727                                 scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();;}
728     break;
729
730   case 135:
731 #line 574 "perly.y"
732     { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
733                             prepend_elem(OP_LIST,
734                                 yyvsp[-1].opval,
735                                 scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();;}
736     break;
737
738   case 140:
739 #line 586 "perly.y"
740     { yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); ;}
741     break;
742
743   case 141:
744 #line 588 "perly.y"
745     { yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); ;}
746     break;
747
748   case 142:
749 #line 590 "perly.y"
750     { yyval.opval = yyvsp[0].opval; ;}
751     break;
752
753   case 143:
754 #line 592 "perly.y"
755     { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); ;}
756     break;
757
758   case 144:
759 #line 594 "perly.y"
760     { yyval.opval = sawparens(yyvsp[-1].opval); ;}
761     break;
762
763   case 145:
764 #line 596 "perly.y"
765     { yyval.opval = sawparens(newNULLLIST()); ;}
766     break;
767
768   case 146:
769 #line 598 "perly.y"
770     { yyval.opval = yyvsp[0].opval; ;}
771     break;
772
773   case 147:
774 #line 600 "perly.y"
775     { yyval.opval = yyvsp[0].opval; ;}
776     break;
777
778   case 148:
779 #line 602 "perly.y"
780     { yyval.opval = yyvsp[0].opval; ;}
781     break;
782
783   case 149:
784 #line 604 "perly.y"
785     { yyval.opval = yyvsp[0].opval; ;}
786     break;
787
788   case 150:
789 #line 606 "perly.y"
790     { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));;}
791     break;
792
793   case 151:
794 #line 608 "perly.y"
795     { yyval.opval = yyvsp[0].opval; ;}
796     break;
797
798   case 152:
799 #line 610 "perly.y"
800     { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); ;}
801     break;
802
803   case 153:
804 #line 612 "perly.y"
805     { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); ;}
806     break;
807
808   case 154:
809 #line 614 "perly.y"
810     { yyval.opval = prepend_elem(OP_ASLICE,
811                                 newOP(OP_PUSHMARK, 0),
812                                     newLISTOP(OP_ASLICE, 0,
813                                         list(yyvsp[-1].opval),
814                                         ref(yyvsp[-3].opval, OP_ASLICE))); ;}
815     break;
816
817   case 155:
818 #line 620 "perly.y"
819     { yyval.opval = prepend_elem(OP_HSLICE,
820                                 newOP(OP_PUSHMARK, 0),
821                                     newLISTOP(OP_HSLICE, 0,
822                                         list(yyvsp[-2].opval),
823                                         ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
824                             PL_expect = XOPERATOR; ;}
825     break;
826
827   case 156:
828 #line 627 "perly.y"
829     { yyval.opval = yyvsp[0].opval; ;}
830     break;
831
832   case 157:
833 #line 629 "perly.y"
834     { yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); ;}
835     break;
836
837   case 158:
838 #line 631 "perly.y"
839     { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); ;}
840     break;
841
842   case 159:
843 #line 633 "perly.y"
844     { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
845                             append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); ;}
846     break;
847
848   case 160:
849 #line 636 "perly.y"
850     { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
851                             append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); ;}
852     break;
853
854   case 161:
855 #line 639 "perly.y"
856     { yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
857                             PL_hints |= HINT_BLOCK_SCOPE; ;}
858     break;
859
860   case 162:
861 #line 642 "perly.y"
862     { yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); ;}
863     break;
864
865   case 163:
866 #line 644 "perly.y"
867     { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); ;}
868     break;
869
870   case 164:
871 #line 646 "perly.y"
872     { yyval.opval = newOP(yyvsp[0].ival, 0); ;}
873     break;
874
875   case 165:
876 #line 648 "perly.y"
877     { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); ;}
878     break;
879
880   case 166:
881 #line 650 "perly.y"
882     { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); ;}
883     break;
884
885   case 167:
886 #line 652 "perly.y"
887     { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
888                             append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); ;}
889     break;
890
891   case 168:
892 #line 655 "perly.y"
893     { yyval.opval = newOP(yyvsp[0].ival, 0); ;}
894     break;
895
896   case 169:
897 #line 657 "perly.y"
898     { yyval.opval = newOP(yyvsp[-2].ival, 0); ;}
899     break;
900
901   case 170:
902 #line 659 "perly.y"
903     { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
904                                 scalar(yyvsp[0].opval)); ;}
905     break;
906
907   case 171:
908 #line 662 "perly.y"
909     { yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); ;}
910     break;
911
912   case 172:
913 #line 664 "perly.y"
914     { yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); ;}
915     break;
916
917   case 173:
918 #line 666 "perly.y"
919     { yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); ;}
920     break;
921
922   case 174:
923 #line 668 "perly.y"
924     { yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); ;}
925     break;
926
927   case 177:
928 #line 675 "perly.y"
929     { yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); ;}
930     break;
931
932   case 178:
933 #line 677 "perly.y"
934     { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); ;}
935     break;
936
937   case 179:
938 #line 682 "perly.y"
939     { yyval.opval = sawparens(yyvsp[-1].opval); ;}
940     break;
941
942   case 180:
943 #line 684 "perly.y"
944     { yyval.opval = sawparens(newNULLLIST()); ;}
945     break;
946
947   case 181:
948 #line 686 "perly.y"
949     { yyval.opval = yyvsp[0].opval; ;}
950     break;
951
952   case 182:
953 #line 688 "perly.y"
954     { yyval.opval = yyvsp[0].opval; ;}
955     break;
956
957   case 183:
958 #line 690 "perly.y"
959     { yyval.opval = yyvsp[0].opval; ;}
960     break;
961
962   case 184:
963 #line 695 "perly.y"
964     { yyval.opval = Nullop; ;}
965     break;
966
967   case 185:
968 #line 697 "perly.y"
969     { yyval.opval = yyvsp[0].opval; ;}
970     break;
971
972   case 186:
973 #line 701 "perly.y"
974     { yyval.opval = Nullop; ;}
975     break;
976
977   case 187:
978 #line 703 "perly.y"
979     { yyval.opval = yyvsp[0].opval; ;}
980     break;
981
982   case 188:
983 #line 705 "perly.y"
984     { yyval.opval = yyvsp[-1].opval; ;}
985     break;
986
987   case 189:
988 #line 711 "perly.y"
989     { PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); ;}
990     break;
991
992   case 190:
993 #line 715 "perly.y"
994     { yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); ;}
995     break;
996
997   case 191:
998 #line 719 "perly.y"
999     { yyval.opval = newSVREF(yyvsp[0].opval); ;}
1000     break;
1001
1002   case 192:
1003 #line 723 "perly.y"
1004     { yyval.opval = newAVREF(yyvsp[0].opval); ;}
1005     break;
1006
1007   case 193:
1008 #line 727 "perly.y"
1009     { yyval.opval = newHVREF(yyvsp[0].opval); ;}
1010     break;
1011
1012   case 194:
1013 #line 731 "perly.y"
1014     { yyval.opval = newAVREF(yyvsp[0].opval); ;}
1015     break;
1016
1017   case 195:
1018 #line 735 "perly.y"
1019     { yyval.opval = newGVREF(0,yyvsp[0].opval); ;}
1020     break;
1021
1022   case 196:
1023 #line 740 "perly.y"
1024     { yyval.opval = scalar(yyvsp[0].opval); ;}
1025     break;
1026
1027   case 197:
1028 #line 742 "perly.y"
1029     { yyval.opval = scalar(yyvsp[0].opval);  ;}
1030     break;
1031
1032   case 198:
1033 #line 744 "perly.y"
1034     { yyval.opval = scope(yyvsp[0].opval); ;}
1035     break;
1036
1037   case 199:
1038 #line 747 "perly.y"
1039     { yyval.opval = yyvsp[0].opval; ;}
1040     break;
1041
1042
1043