This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Enable v (verbose) switch on -Dp to display the top 8 elements
[perl5.git] / perly.act
CommitLineData
0de566d7
DM
1case 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