1 /* -*- buffer-read-only: t -*-
2 !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
3 This file is built by regen_perly.pl from perly.y.
4 Any changes made here will be lost!
8 #line 118 "perly.y" /* yacc.c:1646 */
10 parser->expect = XSTATE;
16 #line 122 "perly.y" /* yacc.c:1646 */
18 newPROG(block_end((ps[-1].val.ival),(ps[0].val.opval)));
19 PL_compiling.cop_seq = 0;
26 #line 128 "perly.y" /* yacc.c:1646 */
28 parser->expect = XTERM;
34 #line 132 "perly.y" /* yacc.c:1646 */
36 PL_eval_root = (ps[0].val.opval);
43 #line 137 "perly.y" /* yacc.c:1646 */
45 parser->expect = XBLOCK;
51 #line 141 "perly.y" /* yacc.c:1646 */
53 PL_pad_reset_pending = TRUE;
54 PL_eval_root = (ps[0].val.opval);
57 parser->yychar = YYEOF;
63 #line 149 "perly.y" /* yacc.c:1646 */
65 parser->expect = XSTATE;
71 #line 153 "perly.y" /* yacc.c:1646 */
73 PL_pad_reset_pending = TRUE;
74 PL_eval_root = (ps[0].val.opval);
77 parser->yychar = YYEOF;
83 #line 161 "perly.y" /* yacc.c:1646 */
85 parser->expect = XSTATE;
91 #line 165 "perly.y" /* yacc.c:1646 */
93 PL_pad_reset_pending = TRUE;
94 PL_eval_root = (ps[0].val.opval);
97 parser->yychar = YYEOF;
103 #line 173 "perly.y" /* yacc.c:1646 */
105 parser->expect = XSTATE;
111 #line 177 "perly.y" /* yacc.c:1646 */
113 PL_eval_root = (ps[0].val.opval);
120 #line 185 "perly.y" /* yacc.c:1646 */
121 { if (parser->copline > (line_t)(ps[-3].val.ival))
122 parser->copline = (line_t)(ps[-3].val.ival);
123 (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval));
129 #line 193 "perly.y" /* yacc.c:1646 */
130 { if (parser->copline > (line_t)(ps[-6].val.ival))
131 parser->copline = (line_t)(ps[-6].val.ival);
132 (yyval.opval) = block_end((ps[-5].val.ival), (ps[-2].val.opval));
138 #line 200 "perly.y" /* yacc.c:1646 */
139 { (yyval.ival) = block_start(TRUE);
140 parser->parsed_sub = 0; }
145 #line 205 "perly.y" /* yacc.c:1646 */
146 { if (parser->copline > (line_t)(ps[-3].val.ival))
147 parser->copline = (line_t)(ps[-3].val.ival);
148 (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval));
154 #line 212 "perly.y" /* yacc.c:1646 */
155 { (yyval.ival) = block_start(FALSE);
156 parser->parsed_sub = 0; }
161 #line 218 "perly.y" /* yacc.c:1646 */
162 { (yyval.opval) = (OP*)NULL; }
167 #line 220 "perly.y" /* yacc.c:1646 */
168 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval));
169 PL_pad_reset_pending = TRUE;
170 if ((ps[-1].val.opval) && (ps[0].val.opval))
171 PL_hints |= HINT_BLOCK_SCOPE;
177 #line 229 "perly.y" /* yacc.c:1646 */
178 { (yyval.opval) = (OP*)NULL; }
183 #line 231 "perly.y" /* yacc.c:1646 */
184 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval));
185 PL_pad_reset_pending = TRUE;
186 if ((ps[-1].val.opval) && (ps[0].val.opval))
187 PL_hints |= HINT_BLOCK_SCOPE;
193 #line 240 "perly.y" /* yacc.c:1646 */
195 (yyval.opval) = (ps[0].val.opval) ? newSTATEOP(0, NULL, (ps[0].val.opval)) : NULL;
201 #line 244 "perly.y" /* yacc.c:1646 */
202 { (yyval.opval) = (ps[0].val.opval); }
207 #line 248 "perly.y" /* yacc.c:1646 */
209 (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[-1].val.pval)[strlen((ps[-1].val.pval))+1], (ps[-1].val.pval), (ps[0].val.opval));
215 #line 252 "perly.y" /* yacc.c:1646 */
217 (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[-1].val.pval)[strlen((ps[-1].val.pval))+1], (ps[-1].val.pval), (ps[0].val.opval));
223 #line 259 "perly.y" /* yacc.c:1646 */
224 { (yyval.opval) = (ps[0].val.opval); }
229 #line 261 "perly.y" /* yacc.c:1646 */
231 CV *fmtcv = PL_compcv;
232 newFORM((ps[-2].val.ival), (ps[-1].val.opval), (ps[0].val.opval));
233 (yyval.opval) = (OP*)NULL;
234 if (CvOUTSIDE(fmtcv) && !CvEVAL(CvOUTSIDE(fmtcv))) {
235 pad_add_weakref(fmtcv);
237 parser->parsed_sub = 1;
243 #line 271 "perly.y" /* yacc.c:1646 */
245 if ((ps[-1].val.opval)->op_type == OP_CONST) {
246 const char *const name =
247 SvPV_nolen_const(((SVOP*)(ps[-1].val.opval))->op_sv);
248 if (strEQ(name, "BEGIN") || strEQ(name, "END")
249 || strEQ(name, "INIT") || strEQ(name, "CHECK")
250 || strEQ(name, "UNITCHECK"))
251 CvSPECIAL_on(PL_compcv);
254 /* State subs inside anonymous subs need to be
255 clonable themselves. */
256 if (CvANON(CvOUTSIDE(PL_compcv))
257 || CvCLONE(CvOUTSIDE(PL_compcv))
258 || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST(
260 ))[(ps[-1].val.opval)->op_targ]))
261 CvCLONE_on(PL_compcv);
263 parser->in_my_stash = NULL;
269 #line 293 "perly.y" /* yacc.c:1646 */
271 SvREFCNT_inc_simple_void(PL_compcv);
272 (ps[-5].val.opval)->op_type == OP_CONST
273 ? newATTRSUB((ps[-4].val.ival), (ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval))
274 : newMYSUB((ps[-4].val.ival), (ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval))
276 (yyval.opval) = (OP*)NULL;
278 parser->parsed_sub = 1;
284 #line 304 "perly.y" /* yacc.c:1646 */
286 if ((ps[-1].val.opval)->op_type == OP_CONST) {
287 const char *const name =
288 SvPV_nolen_const(((SVOP*)(ps[-1].val.opval))->op_sv);
289 if (strEQ(name, "BEGIN") || strEQ(name, "END")
290 || strEQ(name, "INIT") || strEQ(name, "CHECK")
291 || strEQ(name, "UNITCHECK"))
292 CvSPECIAL_on(PL_compcv);
295 /* State subs inside anonymous subs need to be
296 clonable themselves. */
297 if (CvANON(CvOUTSIDE(PL_compcv))
298 || CvCLONE(CvOUTSIDE(PL_compcv))
299 || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST(
301 ))[(ps[-1].val.opval)->op_targ]))
302 CvCLONE_on(PL_compcv);
304 parser->in_my_stash = NULL;
310 #line 326 "perly.y" /* yacc.c:1646 */
313 if (parser->copline > (line_t)(ps[-2].val.ival))
314 parser->copline = (line_t)(ps[-2].val.ival);
315 body = block_end((ps[-5].val.ival),
316 op_append_list(OP_LINESEQ, (ps[-4].val.opval), (ps[-1].val.opval)));
318 SvREFCNT_inc_simple_void(PL_compcv);
319 (ps[-8].val.opval)->op_type == OP_CONST
320 ? newATTRSUB((ps[-7].val.ival), (ps[-8].val.opval), NULL, (ps[-3].val.opval), body)
321 : newMYSUB((ps[-7].val.ival), (ps[-8].val.opval), NULL, (ps[-3].val.opval), body)
323 (yyval.opval) = (OP*)NULL;
325 parser->parsed_sub = 1;
331 #line 343 "perly.y" /* yacc.c:1646 */
333 package((ps[-1].val.opval));
334 if ((ps[-2].val.opval))
335 package_version((ps[-2].val.opval));
336 (yyval.opval) = (OP*)NULL;
342 #line 350 "perly.y" /* yacc.c:1646 */
343 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
348 #line 352 "perly.y" /* yacc.c:1646 */
350 SvREFCNT_inc_simple_void(PL_compcv);
351 utilize((ps[-6].val.ival), (ps[-5].val.ival), (ps[-3].val.opval), (ps[-2].val.opval), (ps[-1].val.opval));
352 parser->parsed_sub = 1;
353 (yyval.opval) = (OP*)NULL;
359 #line 359 "perly.y" /* yacc.c:1646 */
361 (yyval.opval) = block_end((ps[-4].val.ival),
362 newCONDOP(0, (ps[-3].val.opval), op_scope((ps[-1].val.opval)), (ps[0].val.opval)));
363 parser->copline = (line_t)(ps[-6].val.ival);
369 #line 365 "perly.y" /* yacc.c:1646 */
371 (yyval.opval) = block_end((ps[-4].val.ival),
372 newCONDOP(0, (ps[-3].val.opval), (ps[0].val.opval), op_scope((ps[-1].val.opval))));
373 parser->copline = (line_t)(ps[-6].val.ival);
379 #line 371 "perly.y" /* yacc.c:1646 */
381 (yyval.opval) = block_end((ps[-3].val.ival), newGIVENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)), 0));
382 parser->copline = (line_t)(ps[-5].val.ival);
388 #line 376 "perly.y" /* yacc.c:1646 */
389 { (yyval.opval) = block_end((ps[-3].val.ival), newWHENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)))); }
394 #line 378 "perly.y" /* yacc.c:1646 */
395 { (yyval.opval) = newWHENOP(0, op_scope((ps[0].val.opval))); }
400 #line 380 "perly.y" /* yacc.c:1646 */
402 (yyval.opval) = block_end((ps[-5].val.ival),
403 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
404 (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival)));
405 parser->copline = (line_t)(ps[-7].val.ival);
411 #line 387 "perly.y" /* yacc.c:1646 */
413 (yyval.opval) = block_end((ps[-5].val.ival),
414 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
415 (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival)));
416 parser->copline = (line_t)(ps[-7].val.ival);
422 #line 394 "perly.y" /* yacc.c:1646 */
423 { parser->expect = XTERM; }
428 #line 396 "perly.y" /* yacc.c:1646 */
429 { parser->expect = XTERM; }
434 #line 399 "perly.y" /* yacc.c:1646 */
436 OP *initop = (ps[-9].val.opval);
437 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
438 scalar((ps[-6].val.opval)), (ps[0].val.opval), (ps[-2].val.opval), (ps[-3].val.ival));
440 forop = op_prepend_elem(OP_LINESEQ, initop,
441 op_append_elem(OP_LINESEQ,
442 newOP(OP_UNSTACK, OPf_SPECIAL),
445 PL_hints |= HINT_BLOCK_SCOPE;
446 (yyval.opval) = block_end((ps[-10].val.ival), forop);
447 parser->copline = (line_t)(ps[-12].val.ival);
453 #line 414 "perly.y" /* yacc.c:1646 */
455 (yyval.opval) = block_end((ps[-6].val.ival), newFOROP(0, (ps[-5].val.opval), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)));
456 parser->copline = (line_t)(ps[-8].val.ival);
462 #line 419 "perly.y" /* yacc.c:1646 */
464 (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0,
465 op_lvalue((ps[-6].val.opval), OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)));
466 parser->copline = (line_t)(ps[-7].val.ival);
472 #line 425 "perly.y" /* yacc.c:1646 */
473 { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
478 #line 427 "perly.y" /* yacc.c:1646 */
480 (yyval.opval) = block_end(
484 newUNOP(OP_REFGEN, 0,
487 (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))
489 parser->copline = (line_t)(ps[-9].val.ival);
495 #line 440 "perly.y" /* yacc.c:1646 */
497 (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(
498 0, op_lvalue(newUNOP(OP_REFGEN, 0,
500 OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)));
501 parser->copline = (line_t)(ps[-8].val.ival);
507 #line 448 "perly.y" /* yacc.c:1646 */
509 (yyval.opval) = block_end((ps[-4].val.ival),
510 newFOROP(0, (OP*)NULL, (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)));
511 parser->copline = (line_t)(ps[-6].val.ival);
517 #line 454 "perly.y" /* yacc.c:1646 */
519 /* a block is a loop that happens once */
520 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
521 (OP*)NULL, (ps[-1].val.opval), (ps[0].val.opval), 0);
527 #line 460 "perly.y" /* yacc.c:1646 */
529 package((ps[-2].val.opval));
530 if ((ps[-3].val.opval)) {
531 package_version((ps[-3].val.opval));
538 #line 467 "perly.y" /* yacc.c:1646 */
540 /* a block is a loop that happens once */
541 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
542 (OP*)NULL, block_end((ps[-3].val.ival), (ps[-1].val.opval)), (OP*)NULL, 0);
543 if (parser->copline > (line_t)(ps[-4].val.ival))
544 parser->copline = (line_t)(ps[-4].val.ival);
550 #line 475 "perly.y" /* yacc.c:1646 */
552 (yyval.opval) = (ps[-1].val.opval);
558 #line 479 "perly.y" /* yacc.c:1646 */
560 (yyval.opval) = (OP*)NULL;
561 parser->copline = NOLINE;
567 #line 487 "perly.y" /* yacc.c:1646 */
569 if ((ps[0].val.opval)) {
570 OP *term = (ps[0].val.opval);
571 list = op_append_elem(OP_LIST, (ps[-1].val.opval), term);
574 list = (ps[-1].val.opval);
576 if (parser->copline == NOLINE)
577 parser->copline = CopLINE(PL_curcop)-1;
578 else parser->copline--;
579 (yyval.opval) = newSTATEOP(0, NULL,
580 op_convert_list(OP_FORMLINE, 0, list));
586 #line 504 "perly.y" /* yacc.c:1646 */
587 { (yyval.opval) = NULL; }
592 #line 506 "perly.y" /* yacc.c:1646 */
593 { (yyval.opval) = op_unscope((ps[-1].val.opval)); }
598 #line 511 "perly.y" /* yacc.c:1646 */
599 { (yyval.opval) = (OP*)NULL; }
604 #line 513 "perly.y" /* yacc.c:1646 */
605 { (yyval.opval) = (ps[0].val.opval); }
610 #line 515 "perly.y" /* yacc.c:1646 */
611 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[0].val.opval), (ps[-2].val.opval)); }
616 #line 517 "perly.y" /* yacc.c:1646 */
617 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[0].val.opval), (ps[-2].val.opval)); }
622 #line 519 "perly.y" /* yacc.c:1646 */
623 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[0].val.opval)), (ps[-2].val.opval)); }
628 #line 521 "perly.y" /* yacc.c:1646 */
629 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[0].val.opval), (ps[-2].val.opval)); }
634 #line 523 "perly.y" /* yacc.c:1646 */
635 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[0].val.opval), (ps[-2].val.opval), (OP*)NULL);
636 parser->copline = (line_t)(ps[-1].val.ival); }
641 #line 526 "perly.y" /* yacc.c:1646 */
642 { (yyval.opval) = newWHENOP((ps[0].val.opval), op_scope((ps[-2].val.opval))); }
647 #line 531 "perly.y" /* yacc.c:1646 */
648 { (yyval.opval) = (OP*)NULL; }
653 #line 533 "perly.y" /* yacc.c:1646 */
655 ((ps[0].val.opval))->op_flags |= OPf_PARENS;
656 (yyval.opval) = op_scope((ps[0].val.opval));
662 #line 538 "perly.y" /* yacc.c:1646 */
663 { parser->copline = (line_t)(ps[-5].val.ival);
664 (yyval.opval) = newCONDOP(0,
665 newSTATEOP(OPf_SPECIAL,NULL,(ps[-3].val.opval)),
666 op_scope((ps[-1].val.opval)), (ps[0].val.opval));
667 PL_hints |= HINT_BLOCK_SCOPE;
673 #line 548 "perly.y" /* yacc.c:1646 */
674 { (yyval.opval) = (OP*)NULL; }
679 #line 550 "perly.y" /* yacc.c:1646 */
680 { (yyval.opval) = op_scope((ps[0].val.opval)); }
685 #line 555 "perly.y" /* yacc.c:1646 */
686 { (yyval.ival) = (PL_min_intro_pending &&
687 PL_max_intro_pending >= PL_min_intro_pending);
693 #line 561 "perly.y" /* yacc.c:1646 */
694 { (yyval.opval) = (OP*)NULL; }
699 #line 567 "perly.y" /* yacc.c:1646 */
701 (void)scan_num("1", &tmplval);
702 (yyval.opval) = tmplval.opval; }
707 #line 575 "perly.y" /* yacc.c:1646 */
708 { (yyval.opval) = invert(scalar((ps[0].val.opval))); }
713 #line 580 "perly.y" /* yacc.c:1646 */
714 { (yyval.opval) = (ps[0].val.opval); intro_my(); }
719 #line 584 "perly.y" /* yacc.c:1646 */
720 { (yyval.opval) = (ps[0].val.opval); intro_my(); }
725 #line 587 "perly.y" /* yacc.c:1646 */
726 { (yyval.opval) = (ps[0].val.opval); }
731 #line 588 "perly.y" /* yacc.c:1646 */
732 { (yyval.opval) = (OP*)NULL; }
737 #line 592 "perly.y" /* yacc.c:1646 */
738 { (yyval.ival) = start_subparse(FALSE, 0);
739 SAVEFREESV(PL_compcv); }
744 #line 598 "perly.y" /* yacc.c:1646 */
745 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
746 SAVEFREESV(PL_compcv); }
751 #line 603 "perly.y" /* yacc.c:1646 */
752 { (yyval.ival) = start_subparse(TRUE, 0);
753 SAVEFREESV(PL_compcv); }
758 #line 614 "perly.y" /* yacc.c:1646 */
759 { (yyval.opval) = (OP*)NULL; }
764 #line 620 "perly.y" /* yacc.c:1646 */
765 { (yyval.opval) = (OP*)NULL; }
770 #line 622 "perly.y" /* yacc.c:1646 */
771 { (yyval.opval) = (ps[0].val.opval); }
776 #line 624 "perly.y" /* yacc.c:1646 */
777 { (yyval.opval) = (OP*)NULL; }
782 #line 629 "perly.y" /* yacc.c:1646 */
783 { (yyval.opval) = (ps[0].val.opval); }
788 #line 631 "perly.y" /* yacc.c:1646 */
789 { (yyval.opval) = (OP*)NULL; }
794 #line 642 "perly.y" /* yacc.c:1646 */
795 { parser->in_my = 0; (yyval.opval) = (OP*)NULL; }
800 #line 644 "perly.y" /* yacc.c:1646 */
801 { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); }
806 #line 649 "perly.y" /* yacc.c:1646 */
807 { (yyval.ival) = '@'; }
812 #line 651 "perly.y" /* yacc.c:1646 */
813 { (yyval.ival) = '%'; }
818 #line 655 "perly.y" /* yacc.c:1646 */
820 I32 sigil = (ps[-2].val.ival);
821 OP *var = (ps[-1].val.opval);
822 OP *defexpr = (ps[0].val.opval);
824 if (parser->sig_slurpy)
825 yyerror("Multiple slurpy parameters not allowed");
826 parser->sig_slurpy = (char)sigil;
829 yyerror("A slurpy parameter may not have "
832 (yyval.opval) = var ? newSTATEOP(0, NULL, var) : (OP*)NULL;
838 #line 674 "perly.y" /* yacc.c:1646 */
839 { (yyval.opval) = (OP*)NULL; }
844 #line 676 "perly.y" /* yacc.c:1646 */
845 { (yyval.opval) = newOP(OP_NULL, 0); }
850 #line 678 "perly.y" /* yacc.c:1646 */
851 { (yyval.opval) = (ps[0].val.opval); }
856 #line 684 "perly.y" /* yacc.c:1646 */
858 OP *var = (ps[-1].val.opval);
859 OP *defexpr = (ps[0].val.opval);
861 if (parser->sig_slurpy)
862 yyerror("Slurpy parameter not last");
867 parser->sig_optelems++;
869 if ( defexpr->op_type == OP_NULL
870 && !(defexpr->op_flags & OPf_KIDS))
872 /* handle '$=' special case */
874 yyerror("Optional parameter "
875 "lacks default expression");
879 /* a normal '=default' expression */
880 OP *defop = (OP*)alloc_LOGOP(OP_ARGDEFELEM,
883 /* re-purpose op_targ to hold @_ index */
885 (PADOFFSET)(parser->sig_elems - 1);
888 var->op_flags |= OPf_STACKED;
889 (void)op_sibling_splice(var,
894 var = newUNOP(OP_NULL, 0, defop);
897 /* NB: normally the first child of a
898 * logop is executed before the logop,
899 * and it pushes a boolean result
900 * ready for the logop. For ARGDEFELEM,
901 * the op itself does the boolean
902 * calculation, so set the first op to
905 var->op_next = defop;
906 defexpr->op_next = var;
910 if (parser->sig_optelems)
911 yyerror("Mandatory parameter "
912 "follows optional parameter");
915 (yyval.opval) = var ? newSTATEOP(0, NULL, var) : (OP*)NULL;
921 #line 749 "perly.y" /* yacc.c:1646 */
922 { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); }
927 #line 751 "perly.y" /* yacc.c:1646 */
928 { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); }
933 #line 757 "perly.y" /* yacc.c:1646 */
934 { (yyval.opval) = (ps[-1].val.opval); }
939 #line 759 "perly.y" /* yacc.c:1646 */
941 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-2].val.opval), (ps[0].val.opval));
947 #line 763 "perly.y" /* yacc.c:1646 */
948 { (yyval.opval) = (ps[0].val.opval); }
953 #line 768 "perly.y" /* yacc.c:1646 */
954 { (yyval.opval) = (OP*)NULL; }
959 #line 770 "perly.y" /* yacc.c:1646 */
960 { (yyval.opval) = (ps[0].val.opval); }
965 #line 774 "perly.y" /* yacc.c:1646 */
968 SAVEIV(parser->sig_elems);
969 SAVEIV(parser->sig_optelems);
970 SAVEI8(parser->sig_slurpy);
971 parser->sig_elems = 0;
972 parser->sig_optelems = 0;
973 parser->sig_slurpy = 0;
974 parser->in_my = KEY_sigvar;
980 #line 786 "perly.y" /* yacc.c:1646 */
982 OP *sigops = (ps[-1].val.opval);
986 assert(FEATURE_SIGNATURES_IS_ENABLED);
988 /* We shouldn't get here otherwise */
989 Perl_ck_warner_d(aTHX_
990 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
991 "The signatures feature is experimental");
993 aux = (UNOP_AUX_item*)PerlMemShared_malloc(
994 sizeof(UNOP_AUX_item) * 3);
995 aux[0].iv = parser->sig_elems;
996 aux[1].iv = parser->sig_optelems;
997 aux[2].iv = parser->sig_slurpy;
998 check = newUNOP_AUX(OP_ARGCHECK, 0, NULL, aux);
999 sigops = op_prepend_elem(OP_LINESEQ, check, sigops);
1000 sigops = op_prepend_elem(OP_LINESEQ,
1001 newSTATEOP(0, NULL, NULL),
1003 /* a nextstate at the end handles context
1004 * correctly for an empty sub body */
1005 (yyval.opval) = op_append_elem(OP_LINESEQ,
1007 newSTATEOP(0, NULL, NULL));
1010 parser->expect = XATTRBLOCK;
1017 #line 824 "perly.y" /* yacc.c:1646 */
1018 { (yyval.opval) = (OP*)NULL; }
1023 #line 829 "perly.y" /* yacc.c:1646 */
1024 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1029 #line 831 "perly.y" /* yacc.c:1646 */
1030 { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1035 #line 833 "perly.y" /* yacc.c:1646 */
1036 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1041 #line 839 "perly.y" /* yacc.c:1646 */
1042 { (yyval.opval) = (ps[-1].val.opval); }
1047 #line 841 "perly.y" /* yacc.c:1646 */
1049 OP* term = (ps[0].val.opval);
1050 (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term);
1056 #line 850 "perly.y" /* yacc.c:1646 */
1057 { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED,
1058 op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) );
1064 #line 854 "perly.y" /* yacc.c:1646 */
1065 { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED,
1066 op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) );
1072 #line 858 "perly.y" /* yacc.c:1646 */
1073 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1074 op_append_elem(OP_LIST,
1075 op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)),
1076 newMETHOP(OP_METHOD, 0, (ps[-3].val.opval))));
1082 #line 864 "perly.y" /* yacc.c:1646 */
1083 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1084 op_append_elem(OP_LIST, scalar((ps[-2].val.opval)),
1085 newMETHOP(OP_METHOD, 0, (ps[0].val.opval))));
1091 #line 869 "perly.y" /* yacc.c:1646 */
1092 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1093 op_append_elem(OP_LIST,
1094 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)),
1095 newMETHOP(OP_METHOD, 0, (ps[-2].val.opval))));
1101 #line 875 "perly.y" /* yacc.c:1646 */
1102 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1103 op_append_elem(OP_LIST,
1104 op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)),
1105 newMETHOP(OP_METHOD, 0, (ps[-4].val.opval))));
1111 #line 881 "perly.y" /* yacc.c:1646 */
1112 { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1117 #line 883 "perly.y" /* yacc.c:1646 */
1118 { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
1123 #line 885 "perly.y" /* yacc.c:1646 */
1124 { SvREFCNT_inc_simple_void(PL_compcv);
1125 (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, (OP*)NULL, (ps[0].val.opval)); }
1130 #line 888 "perly.y" /* yacc.c:1646 */
1131 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1132 op_append_elem(OP_LIST,
1133 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval)));
1139 #line 903 "perly.y" /* yacc.c:1646 */
1140 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); }
1145 #line 905 "perly.y" /* yacc.c:1646 */
1146 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval)));
1152 #line 908 "perly.y" /* yacc.c:1646 */
1153 { (yyval.opval) = newBINOP(OP_AELEM, 0,
1154 ref(newAVREF((ps[-4].val.opval)),OP_RV2AV),
1155 scalar((ps[-1].val.opval)));
1161 #line 913 "perly.y" /* yacc.c:1646 */
1162 { (yyval.opval) = newBINOP(OP_AELEM, 0,
1163 ref(newAVREF((ps[-3].val.opval)),OP_RV2AV),
1164 scalar((ps[-1].val.opval)));
1170 #line 918 "perly.y" /* yacc.c:1646 */
1171 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval)));
1177 #line 921 "perly.y" /* yacc.c:1646 */
1178 { (yyval.opval) = newBINOP(OP_HELEM, 0,
1179 ref(newHVREF((ps[-5].val.opval)),OP_RV2HV),
1180 jmaybe((ps[-2].val.opval))); }
1185 #line 925 "perly.y" /* yacc.c:1646 */
1186 { (yyval.opval) = newBINOP(OP_HELEM, 0,
1187 ref(newHVREF((ps[-4].val.opval)),OP_RV2HV),
1188 jmaybe((ps[-2].val.opval))); }
1193 #line 929 "perly.y" /* yacc.c:1646 */
1194 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1195 newCVREF(0, scalar((ps[-3].val.opval)))); }
1200 #line 932 "perly.y" /* yacc.c:1646 */
1201 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1202 op_append_elem(OP_LIST, (ps[-1].val.opval),
1203 newCVREF(0, scalar((ps[-4].val.opval))))); }
1208 #line 937 "perly.y" /* yacc.c:1646 */
1209 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1210 op_append_elem(OP_LIST, (ps[-1].val.opval),
1211 newCVREF(0, scalar((ps[-3].val.opval))))); }
1216 #line 941 "perly.y" /* yacc.c:1646 */
1217 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1218 newCVREF(0, scalar((ps[-2].val.opval)))); }
1223 #line 944 "perly.y" /* yacc.c:1646 */
1224 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); }
1229 #line 946 "perly.y" /* yacc.c:1646 */
1230 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); }
1235 #line 948 "perly.y" /* yacc.c:1646 */
1236 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (OP*)NULL); }
1241 #line 953 "perly.y" /* yacc.c:1646 */
1242 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); }
1247 #line 955 "perly.y" /* yacc.c:1646 */
1248 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1253 #line 957 "perly.y" /* yacc.c:1646 */
1254 { if ((ps[-1].val.ival) != OP_REPEAT)
1255 scalar((ps[-2].val.opval));
1256 (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval)));
1262 #line 962 "perly.y" /* yacc.c:1646 */
1263 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1268 #line 964 "perly.y" /* yacc.c:1646 */
1269 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1274 #line 966 "perly.y" /* yacc.c:1646 */
1275 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1280 #line 968 "perly.y" /* yacc.c:1646 */
1281 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1286 #line 970 "perly.y" /* yacc.c:1646 */
1287 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1292 #line 972 "perly.y" /* yacc.c:1646 */
1293 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1298 #line 974 "perly.y" /* yacc.c:1646 */
1299 { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1304 #line 976 "perly.y" /* yacc.c:1646 */
1305 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1310 #line 978 "perly.y" /* yacc.c:1646 */
1311 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1316 #line 980 "perly.y" /* yacc.c:1646 */
1317 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1322 #line 982 "perly.y" /* yacc.c:1646 */
1323 { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
1328 #line 987 "perly.y" /* yacc.c:1646 */
1329 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); }
1334 #line 989 "perly.y" /* yacc.c:1646 */
1335 { (yyval.opval) = (ps[0].val.opval); }
1340 #line 992 "perly.y" /* yacc.c:1646 */
1341 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
1346 #line 994 "perly.y" /* yacc.c:1646 */
1347 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); }
1352 #line 996 "perly.y" /* yacc.c:1646 */
1353 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1354 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); }
1359 #line 999 "perly.y" /* yacc.c:1646 */
1360 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1361 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));}
1366 #line 1002 "perly.y" /* yacc.c:1646 */
1367 { (yyval.opval) = op_convert_list(OP_JOIN, 0,
1381 #line 1013 "perly.y" /* yacc.c:1646 */
1382 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1383 op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); }
1388 #line 1016 "perly.y" /* yacc.c:1646 */
1389 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1390 op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); }
1395 #line 1023 "perly.y" /* yacc.c:1646 */
1396 { (yyval.opval) = newANONLIST((ps[-1].val.opval)); }
1401 #line 1025 "perly.y" /* yacc.c:1646 */
1402 { (yyval.opval) = newANONLIST((OP*)NULL);}
1407 #line 1027 "perly.y" /* yacc.c:1646 */
1408 { (yyval.opval) = newANONHASH((ps[-2].val.opval)); }
1413 #line 1029 "perly.y" /* yacc.c:1646 */
1414 { (yyval.opval) = newANONHASH((OP*)NULL); }
1419 #line 1031 "perly.y" /* yacc.c:1646 */
1420 { SvREFCNT_inc_simple_void(PL_compcv);
1421 (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); }
1426 #line 1034 "perly.y" /* yacc.c:1646 */
1429 if (parser->copline > (line_t)(ps[-2].val.ival))
1430 parser->copline = (line_t)(ps[-2].val.ival);
1431 body = block_end((ps[-5].val.ival),
1432 op_append_list(OP_LINESEQ, (ps[-4].val.opval), (ps[-1].val.opval)));
1433 SvREFCNT_inc_simple_void(PL_compcv);
1434 (yyval.opval) = newANONATTRSUB((ps[-6].val.ival), NULL, (ps[-3].val.opval), body);
1440 #line 1048 "perly.y" /* yacc.c:1646 */
1441 { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));}
1446 #line 1050 "perly.y" /* yacc.c:1646 */
1447 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));}
1452 #line 1058 "perly.y" /* yacc.c:1646 */
1453 { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); }
1458 #line 1060 "perly.y" /* yacc.c:1646 */
1459 { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); }
1464 #line 1062 "perly.y" /* yacc.c:1646 */
1465 { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); }
1470 #line 1064 "perly.y" /* yacc.c:1646 */
1471 { (yyval.opval) = (ps[0].val.opval); }
1476 #line 1066 "perly.y" /* yacc.c:1646 */
1477 { (yyval.opval) = localize((ps[0].val.opval),0); }
1482 #line 1068 "perly.y" /* yacc.c:1646 */
1483 { (yyval.opval) = sawparens((ps[-1].val.opval)); }
1488 #line 1070 "perly.y" /* yacc.c:1646 */
1489 { (yyval.opval) = (ps[0].val.opval); }
1494 #line 1072 "perly.y" /* yacc.c:1646 */
1495 { (yyval.opval) = sawparens(newNULLLIST()); }
1500 #line 1074 "perly.y" /* yacc.c:1646 */
1501 { (yyval.opval) = (ps[0].val.opval); }
1506 #line 1076 "perly.y" /* yacc.c:1646 */
1507 { (yyval.opval) = (ps[0].val.opval); }
1512 #line 1078 "perly.y" /* yacc.c:1646 */
1513 { (yyval.opval) = (ps[0].val.opval); }
1518 #line 1080 "perly.y" /* yacc.c:1646 */
1519 { (yyval.opval) = (ps[0].val.opval); }
1524 #line 1082 "perly.y" /* yacc.c:1646 */
1525 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));}
1530 #line 1084 "perly.y" /* yacc.c:1646 */
1531 { (yyval.opval) = (ps[0].val.opval); }
1536 #line 1086 "perly.y" /* yacc.c:1646 */
1537 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1538 newOP(OP_PUSHMARK, 0),
1539 newLISTOP(OP_ASLICE, 0,
1540 list((ps[-1].val.opval)),
1541 ref((ps[-3].val.opval), OP_ASLICE)));
1542 if ((yyval.opval) && (ps[-3].val.opval))
1543 (yyval.opval)->op_private |=
1544 (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
1550 #line 1096 "perly.y" /* yacc.c:1646 */
1551 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1552 newOP(OP_PUSHMARK, 0),
1553 newLISTOP(OP_KVASLICE, 0,
1554 list((ps[-1].val.opval)),
1555 ref(oopsAV((ps[-3].val.opval)), OP_KVASLICE)));
1556 if ((yyval.opval) && (ps[-3].val.opval))
1557 (yyval.opval)->op_private |=
1558 (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
1564 #line 1106 "perly.y" /* yacc.c:1646 */
1565 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1566 newOP(OP_PUSHMARK, 0),
1567 newLISTOP(OP_HSLICE, 0,
1568 list((ps[-2].val.opval)),
1569 ref(oopsHV((ps[-4].val.opval)), OP_HSLICE)));
1570 if ((yyval.opval) && (ps[-4].val.opval))
1571 (yyval.opval)->op_private |=
1572 (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
1578 #line 1116 "perly.y" /* yacc.c:1646 */
1579 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1580 newOP(OP_PUSHMARK, 0),
1581 newLISTOP(OP_KVHSLICE, 0,
1582 list((ps[-2].val.opval)),
1583 ref((ps[-4].val.opval), OP_KVHSLICE)));
1584 if ((yyval.opval) && (ps[-4].val.opval))
1585 (yyval.opval)->op_private |=
1586 (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
1592 #line 1126 "perly.y" /* yacc.c:1646 */
1593 { (yyval.opval) = (ps[0].val.opval); }
1598 #line 1128 "perly.y" /* yacc.c:1646 */
1599 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); }
1604 #line 1130 "perly.y" /* yacc.c:1646 */
1605 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval)));
1611 #line 1133 "perly.y" /* yacc.c:1646 */
1613 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1614 op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval))));
1620 #line 1138 "perly.y" /* yacc.c:1646 */
1621 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1622 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval))));
1628 #line 1142 "perly.y" /* yacc.c:1646 */
1629 { (yyval.opval) = newSVREF((ps[-3].val.opval)); }
1634 #line 1144 "perly.y" /* yacc.c:1646 */
1635 { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
1640 #line 1146 "perly.y" /* yacc.c:1646 */
1641 { (yyval.opval) = newHVREF((ps[-3].val.opval)); }
1646 #line 1148 "perly.y" /* yacc.c:1646 */
1647 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1648 scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); }
1653 #line 1151 "perly.y" /* yacc.c:1646 */
1654 { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); }
1659 #line 1153 "perly.y" /* yacc.c:1646 */
1660 { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL);
1661 PL_hints |= HINT_BLOCK_SCOPE; }
1666 #line 1156 "perly.y" /* yacc.c:1646 */
1667 { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); }
1672 #line 1158 "perly.y" /* yacc.c:1646 */
1673 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
1678 #line 1160 "perly.y" /* yacc.c:1646 */
1679 { (yyval.opval) = newOP((ps[0].val.ival), 0); }
1684 #line 1162 "perly.y" /* yacc.c:1646 */
1685 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1690 #line 1164 "perly.y" /* yacc.c:1646 */
1691 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1696 #line 1166 "perly.y" /* yacc.c:1646 */
1697 { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); }
1702 #line 1168 "perly.y" /* yacc.c:1646 */
1703 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); }
1708 #line 1170 "perly.y" /* yacc.c:1646 */
1709 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
1714 #line 1172 "perly.y" /* yacc.c:1646 */
1715 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1716 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); }
1721 #line 1175 "perly.y" /* yacc.c:1646 */
1722 { (yyval.opval) = newOP((ps[0].val.ival), 0); }
1727 #line 1177 "perly.y" /* yacc.c:1646 */
1728 { (yyval.opval) = newOP((ps[-2].val.ival), 0);}
1733 #line 1179 "perly.y" /* yacc.c:1646 */
1734 { (yyval.opval) = (ps[0].val.opval); }
1739 #line 1181 "perly.y" /* yacc.c:1646 */
1740 { (yyval.opval) = (ps[-2].val.opval); }
1745 #line 1183 "perly.y" /* yacc.c:1646 */
1746 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
1751 #line 1185 "perly.y" /* yacc.c:1646 */
1752 { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT)
1753 ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1754 : newOP((ps[-2].val.ival), OPf_SPECIAL); }
1759 #line 1189 "perly.y" /* yacc.c:1646 */
1760 { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
1765 #line 1191 "perly.y" /* yacc.c:1646 */
1767 if ( (ps[0].val.opval)->op_type != OP_TRANS
1768 && (ps[0].val.opval)->op_type != OP_TRANSR
1769 && (((PMOP*)(ps[0].val.opval))->op_pmflags & PMf_HAS_CV))
1771 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1772 SAVEFREESV(PL_compcv);
1780 #line 1202 "perly.y" /* yacc.c:1646 */
1781 { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); }
1786 #line 1206 "perly.y" /* yacc.c:1646 */
1788 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1789 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1795 #line 1215 "perly.y" /* yacc.c:1646 */
1796 { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); }
1801 #line 1217 "perly.y" /* yacc.c:1646 */
1802 { (yyval.opval) = localize((ps[0].val.opval),1); }
1807 #line 1219 "perly.y" /* yacc.c:1646 */
1808 { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); }
1813 #line 1224 "perly.y" /* yacc.c:1646 */
1814 { (yyval.opval) = sawparens((ps[-1].val.opval)); }
1819 #line 1226 "perly.y" /* yacc.c:1646 */
1820 { (yyval.opval) = sawparens(newNULLLIST()); }
1825 #line 1229 "perly.y" /* yacc.c:1646 */
1826 { (yyval.opval) = (ps[0].val.opval); }
1831 #line 1231 "perly.y" /* yacc.c:1646 */
1832 { (yyval.opval) = (ps[0].val.opval); }
1837 #line 1233 "perly.y" /* yacc.c:1646 */
1838 { (yyval.opval) = (ps[0].val.opval); }
1843 #line 1238 "perly.y" /* yacc.c:1646 */
1844 { (yyval.opval) = (OP*)NULL; }
1849 #line 1240 "perly.y" /* yacc.c:1646 */
1850 { (yyval.opval) = (ps[0].val.opval); }
1855 #line 1244 "perly.y" /* yacc.c:1646 */
1856 { (yyval.opval) = (OP*)NULL; }
1861 #line 1246 "perly.y" /* yacc.c:1646 */
1862 { (yyval.opval) = (ps[0].val.opval); }
1867 #line 1250 "perly.y" /* yacc.c:1646 */
1868 { (yyval.opval) = (OP*)NULL; }
1873 #line 1252 "perly.y" /* yacc.c:1646 */
1874 { (yyval.opval) = (ps[0].val.opval); }
1879 #line 1258 "perly.y" /* yacc.c:1646 */
1880 { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
1885 #line 1275 "perly.y" /* yacc.c:1646 */
1886 { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); }
1891 #line 1279 "perly.y" /* yacc.c:1646 */
1892 { (yyval.opval) = newSVREF((ps[0].val.opval)); }
1897 #line 1283 "perly.y" /* yacc.c:1646 */
1898 { (yyval.opval) = newAVREF((ps[0].val.opval));
1899 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
1905 #line 1289 "perly.y" /* yacc.c:1646 */
1906 { (yyval.opval) = newHVREF((ps[0].val.opval));
1907 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
1913 #line 1295 "perly.y" /* yacc.c:1646 */
1914 { (yyval.opval) = newAVREF((ps[0].val.opval)); }
1919 #line 1297 "perly.y" /* yacc.c:1646 */
1920 { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
1925 #line 1301 "perly.y" /* yacc.c:1646 */
1926 { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); }
1931 #line 1306 "perly.y" /* yacc.c:1646 */
1932 { (yyval.opval) = newAVREF((ps[-2].val.opval)); }
1937 #line 1311 "perly.y" /* yacc.c:1646 */
1938 { (yyval.opval) = newHVREF((ps[-2].val.opval)); }
1943 #line 1316 "perly.y" /* yacc.c:1646 */
1944 { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); }
1949 #line 1321 "perly.y" /* yacc.c:1646 */
1950 { (yyval.opval) = scalar((ps[0].val.opval)); }
1955 #line 1323 "perly.y" /* yacc.c:1646 */
1956 { (yyval.opval) = scalar((ps[0].val.opval)); }
1961 #line 1325 "perly.y" /* yacc.c:1646 */
1962 { (yyval.opval) = op_scope((ps[0].val.opval)); }
1967 #line 1328 "perly.y" /* yacc.c:1646 */
1968 { (yyval.opval) = (ps[0].val.opval); }
1978 * 1a8fc0f841dee6e563463a6b91bf9c410b47437c760f485a16d87ade3d66bf1d perly.y
1979 * 3e1dff60f26df8933d7aed0c0e87177a0f022c14800c0707eb62a7db4196ac98 regen_perly.pl