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 { (yyval.opval) = (OP*)NULL; }
800 #line 644 "perly.y" /* yacc.c:1646 */
801 { (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 (PL_parser->sig_slurpy)
825 yyerror("Multiple slurpy parameters not allowed");
826 PL_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 (PL_parser->sig_slurpy)
862 yyerror("Slurpy parameter not last");
864 PL_parser->sig_elems++;
867 PL_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)(PL_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 (PL_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->expect = XSIGVAR; (yyval.opval) = (ps[0].val.opval); }
927 #line 751 "perly.y" /* yacc.c:1646 */
928 { parser->expect = XSIGVAR; (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(PL_parser->sig_elems);
969 SAVEIV(PL_parser->sig_optelems);
970 SAVEI8(PL_parser->sig_slurpy);
971 PL_parser->sig_elems = 0;
972 PL_parser->sig_optelems = 0;
973 PL_parser->sig_slurpy = 0;
974 parser->expect = XSIGVAR;
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 = PL_parser->sig_elems;
996 aux[1].iv = PL_parser->sig_optelems;
997 aux[2].iv = PL_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));
1009 parser->expect = XATTRBLOCK;
1016 #line 823 "perly.y" /* yacc.c:1646 */
1017 { (yyval.opval) = (OP*)NULL; }
1022 #line 828 "perly.y" /* yacc.c:1646 */
1023 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1028 #line 830 "perly.y" /* yacc.c:1646 */
1029 { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1034 #line 832 "perly.y" /* yacc.c:1646 */
1035 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1040 #line 838 "perly.y" /* yacc.c:1646 */
1041 { (yyval.opval) = (ps[-1].val.opval); }
1046 #line 840 "perly.y" /* yacc.c:1646 */
1048 OP* term = (ps[0].val.opval);
1049 (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term);
1055 #line 849 "perly.y" /* yacc.c:1646 */
1056 { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED,
1057 op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) );
1063 #line 853 "perly.y" /* yacc.c:1646 */
1064 { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED,
1065 op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) );
1071 #line 857 "perly.y" /* yacc.c:1646 */
1072 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1073 op_append_elem(OP_LIST,
1074 op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)),
1075 newMETHOP(OP_METHOD, 0, (ps[-3].val.opval))));
1081 #line 863 "perly.y" /* yacc.c:1646 */
1082 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1083 op_append_elem(OP_LIST, scalar((ps[-2].val.opval)),
1084 newMETHOP(OP_METHOD, 0, (ps[0].val.opval))));
1090 #line 868 "perly.y" /* yacc.c:1646 */
1091 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1092 op_append_elem(OP_LIST,
1093 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)),
1094 newMETHOP(OP_METHOD, 0, (ps[-2].val.opval))));
1100 #line 874 "perly.y" /* yacc.c:1646 */
1101 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1102 op_append_elem(OP_LIST,
1103 op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)),
1104 newMETHOP(OP_METHOD, 0, (ps[-4].val.opval))));
1110 #line 880 "perly.y" /* yacc.c:1646 */
1111 { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1116 #line 882 "perly.y" /* yacc.c:1646 */
1117 { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
1122 #line 884 "perly.y" /* yacc.c:1646 */
1123 { SvREFCNT_inc_simple_void(PL_compcv);
1124 (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, (OP*)NULL, (ps[0].val.opval)); }
1129 #line 887 "perly.y" /* yacc.c:1646 */
1130 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1131 op_append_elem(OP_LIST,
1132 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval)));
1138 #line 902 "perly.y" /* yacc.c:1646 */
1139 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); }
1144 #line 904 "perly.y" /* yacc.c:1646 */
1145 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval)));
1151 #line 907 "perly.y" /* yacc.c:1646 */
1152 { (yyval.opval) = newBINOP(OP_AELEM, 0,
1153 ref(newAVREF((ps[-4].val.opval)),OP_RV2AV),
1154 scalar((ps[-1].val.opval)));
1160 #line 912 "perly.y" /* yacc.c:1646 */
1161 { (yyval.opval) = newBINOP(OP_AELEM, 0,
1162 ref(newAVREF((ps[-3].val.opval)),OP_RV2AV),
1163 scalar((ps[-1].val.opval)));
1169 #line 917 "perly.y" /* yacc.c:1646 */
1170 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval)));
1176 #line 920 "perly.y" /* yacc.c:1646 */
1177 { (yyval.opval) = newBINOP(OP_HELEM, 0,
1178 ref(newHVREF((ps[-5].val.opval)),OP_RV2HV),
1179 jmaybe((ps[-2].val.opval))); }
1184 #line 924 "perly.y" /* yacc.c:1646 */
1185 { (yyval.opval) = newBINOP(OP_HELEM, 0,
1186 ref(newHVREF((ps[-4].val.opval)),OP_RV2HV),
1187 jmaybe((ps[-2].val.opval))); }
1192 #line 928 "perly.y" /* yacc.c:1646 */
1193 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1194 newCVREF(0, scalar((ps[-3].val.opval)))); }
1199 #line 931 "perly.y" /* yacc.c:1646 */
1200 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1201 op_append_elem(OP_LIST, (ps[-1].val.opval),
1202 newCVREF(0, scalar((ps[-4].val.opval))))); }
1207 #line 936 "perly.y" /* yacc.c:1646 */
1208 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1209 op_append_elem(OP_LIST, (ps[-1].val.opval),
1210 newCVREF(0, scalar((ps[-3].val.opval))))); }
1215 #line 940 "perly.y" /* yacc.c:1646 */
1216 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1217 newCVREF(0, scalar((ps[-2].val.opval)))); }
1222 #line 943 "perly.y" /* yacc.c:1646 */
1223 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); }
1228 #line 945 "perly.y" /* yacc.c:1646 */
1229 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); }
1234 #line 947 "perly.y" /* yacc.c:1646 */
1235 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (OP*)NULL); }
1240 #line 952 "perly.y" /* yacc.c:1646 */
1241 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); }
1246 #line 954 "perly.y" /* yacc.c:1646 */
1247 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1252 #line 956 "perly.y" /* yacc.c:1646 */
1253 { if ((ps[-1].val.ival) != OP_REPEAT)
1254 scalar((ps[-2].val.opval));
1255 (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval)));
1261 #line 961 "perly.y" /* yacc.c:1646 */
1262 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1267 #line 963 "perly.y" /* yacc.c:1646 */
1268 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1273 #line 965 "perly.y" /* yacc.c:1646 */
1274 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1279 #line 967 "perly.y" /* yacc.c:1646 */
1280 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1285 #line 969 "perly.y" /* yacc.c:1646 */
1286 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1291 #line 971 "perly.y" /* yacc.c:1646 */
1292 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1297 #line 973 "perly.y" /* yacc.c:1646 */
1298 { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1303 #line 975 "perly.y" /* yacc.c:1646 */
1304 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1309 #line 977 "perly.y" /* yacc.c:1646 */
1310 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1315 #line 979 "perly.y" /* yacc.c:1646 */
1316 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1321 #line 981 "perly.y" /* yacc.c:1646 */
1322 { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
1327 #line 986 "perly.y" /* yacc.c:1646 */
1328 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); }
1333 #line 988 "perly.y" /* yacc.c:1646 */
1334 { (yyval.opval) = (ps[0].val.opval); }
1339 #line 991 "perly.y" /* yacc.c:1646 */
1340 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
1345 #line 993 "perly.y" /* yacc.c:1646 */
1346 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); }
1351 #line 995 "perly.y" /* yacc.c:1646 */
1352 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1353 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); }
1358 #line 998 "perly.y" /* yacc.c:1646 */
1359 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1360 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));}
1365 #line 1001 "perly.y" /* yacc.c:1646 */
1366 { (yyval.opval) = op_convert_list(OP_JOIN, 0,
1380 #line 1012 "perly.y" /* yacc.c:1646 */
1381 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1382 op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); }
1387 #line 1015 "perly.y" /* yacc.c:1646 */
1388 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1389 op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); }
1394 #line 1022 "perly.y" /* yacc.c:1646 */
1395 { (yyval.opval) = newANONLIST((ps[-1].val.opval)); }
1400 #line 1024 "perly.y" /* yacc.c:1646 */
1401 { (yyval.opval) = newANONLIST((OP*)NULL);}
1406 #line 1026 "perly.y" /* yacc.c:1646 */
1407 { (yyval.opval) = newANONHASH((ps[-2].val.opval)); }
1412 #line 1028 "perly.y" /* yacc.c:1646 */
1413 { (yyval.opval) = newANONHASH((OP*)NULL); }
1418 #line 1030 "perly.y" /* yacc.c:1646 */
1419 { SvREFCNT_inc_simple_void(PL_compcv);
1420 (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); }
1425 #line 1033 "perly.y" /* yacc.c:1646 */
1428 if (parser->copline > (line_t)(ps[-2].val.ival))
1429 parser->copline = (line_t)(ps[-2].val.ival);
1430 body = block_end((ps[-5].val.ival),
1431 op_append_list(OP_LINESEQ, (ps[-4].val.opval), (ps[-1].val.opval)));
1432 SvREFCNT_inc_simple_void(PL_compcv);
1433 (yyval.opval) = newANONATTRSUB((ps[-6].val.ival), NULL, (ps[-3].val.opval), body);
1439 #line 1047 "perly.y" /* yacc.c:1646 */
1440 { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));}
1445 #line 1049 "perly.y" /* yacc.c:1646 */
1446 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));}
1451 #line 1057 "perly.y" /* yacc.c:1646 */
1452 { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); }
1457 #line 1059 "perly.y" /* yacc.c:1646 */
1458 { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); }
1463 #line 1061 "perly.y" /* yacc.c:1646 */
1464 { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); }
1469 #line 1063 "perly.y" /* yacc.c:1646 */
1470 { (yyval.opval) = (ps[0].val.opval); }
1475 #line 1065 "perly.y" /* yacc.c:1646 */
1476 { (yyval.opval) = localize((ps[0].val.opval),0); }
1481 #line 1067 "perly.y" /* yacc.c:1646 */
1482 { (yyval.opval) = sawparens((ps[-1].val.opval)); }
1487 #line 1069 "perly.y" /* yacc.c:1646 */
1488 { (yyval.opval) = (ps[0].val.opval); }
1493 #line 1071 "perly.y" /* yacc.c:1646 */
1494 { (yyval.opval) = sawparens(newNULLLIST()); }
1499 #line 1073 "perly.y" /* yacc.c:1646 */
1500 { (yyval.opval) = (ps[0].val.opval); }
1505 #line 1075 "perly.y" /* yacc.c:1646 */
1506 { (yyval.opval) = (ps[0].val.opval); }
1511 #line 1077 "perly.y" /* yacc.c:1646 */
1512 { (yyval.opval) = (ps[0].val.opval); }
1517 #line 1079 "perly.y" /* yacc.c:1646 */
1518 { (yyval.opval) = (ps[0].val.opval); }
1523 #line 1081 "perly.y" /* yacc.c:1646 */
1524 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));}
1529 #line 1083 "perly.y" /* yacc.c:1646 */
1530 { (yyval.opval) = (ps[0].val.opval); }
1535 #line 1085 "perly.y" /* yacc.c:1646 */
1536 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1537 newOP(OP_PUSHMARK, 0),
1538 newLISTOP(OP_ASLICE, 0,
1539 list((ps[-1].val.opval)),
1540 ref((ps[-3].val.opval), OP_ASLICE)));
1541 if ((yyval.opval) && (ps[-3].val.opval))
1542 (yyval.opval)->op_private |=
1543 (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
1549 #line 1095 "perly.y" /* yacc.c:1646 */
1550 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1551 newOP(OP_PUSHMARK, 0),
1552 newLISTOP(OP_KVASLICE, 0,
1553 list((ps[-1].val.opval)),
1554 ref(oopsAV((ps[-3].val.opval)), OP_KVASLICE)));
1555 if ((yyval.opval) && (ps[-3].val.opval))
1556 (yyval.opval)->op_private |=
1557 (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
1563 #line 1105 "perly.y" /* yacc.c:1646 */
1564 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1565 newOP(OP_PUSHMARK, 0),
1566 newLISTOP(OP_HSLICE, 0,
1567 list((ps[-2].val.opval)),
1568 ref(oopsHV((ps[-4].val.opval)), OP_HSLICE)));
1569 if ((yyval.opval) && (ps[-4].val.opval))
1570 (yyval.opval)->op_private |=
1571 (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
1577 #line 1115 "perly.y" /* yacc.c:1646 */
1578 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1579 newOP(OP_PUSHMARK, 0),
1580 newLISTOP(OP_KVHSLICE, 0,
1581 list((ps[-2].val.opval)),
1582 ref((ps[-4].val.opval), OP_KVHSLICE)));
1583 if ((yyval.opval) && (ps[-4].val.opval))
1584 (yyval.opval)->op_private |=
1585 (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
1591 #line 1125 "perly.y" /* yacc.c:1646 */
1592 { (yyval.opval) = (ps[0].val.opval); }
1597 #line 1127 "perly.y" /* yacc.c:1646 */
1598 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); }
1603 #line 1129 "perly.y" /* yacc.c:1646 */
1604 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval)));
1610 #line 1132 "perly.y" /* yacc.c:1646 */
1612 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1613 op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval))));
1619 #line 1137 "perly.y" /* yacc.c:1646 */
1620 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1621 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval))));
1627 #line 1141 "perly.y" /* yacc.c:1646 */
1628 { (yyval.opval) = newSVREF((ps[-3].val.opval)); }
1633 #line 1143 "perly.y" /* yacc.c:1646 */
1634 { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
1639 #line 1145 "perly.y" /* yacc.c:1646 */
1640 { (yyval.opval) = newHVREF((ps[-3].val.opval)); }
1645 #line 1147 "perly.y" /* yacc.c:1646 */
1646 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1647 scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); }
1652 #line 1150 "perly.y" /* yacc.c:1646 */
1653 { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); }
1658 #line 1152 "perly.y" /* yacc.c:1646 */
1659 { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL);
1660 PL_hints |= HINT_BLOCK_SCOPE; }
1665 #line 1155 "perly.y" /* yacc.c:1646 */
1666 { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); }
1671 #line 1157 "perly.y" /* yacc.c:1646 */
1672 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
1677 #line 1159 "perly.y" /* yacc.c:1646 */
1678 { (yyval.opval) = newOP((ps[0].val.ival), 0); }
1683 #line 1161 "perly.y" /* yacc.c:1646 */
1684 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1689 #line 1163 "perly.y" /* yacc.c:1646 */
1690 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1695 #line 1165 "perly.y" /* yacc.c:1646 */
1696 { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); }
1701 #line 1167 "perly.y" /* yacc.c:1646 */
1702 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); }
1707 #line 1169 "perly.y" /* yacc.c:1646 */
1708 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
1713 #line 1171 "perly.y" /* yacc.c:1646 */
1714 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1715 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); }
1720 #line 1174 "perly.y" /* yacc.c:1646 */
1721 { (yyval.opval) = newOP((ps[0].val.ival), 0); }
1726 #line 1176 "perly.y" /* yacc.c:1646 */
1727 { (yyval.opval) = newOP((ps[-2].val.ival), 0);}
1732 #line 1178 "perly.y" /* yacc.c:1646 */
1733 { (yyval.opval) = (ps[0].val.opval); }
1738 #line 1180 "perly.y" /* yacc.c:1646 */
1739 { (yyval.opval) = (ps[-2].val.opval); }
1744 #line 1182 "perly.y" /* yacc.c:1646 */
1745 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
1750 #line 1184 "perly.y" /* yacc.c:1646 */
1751 { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT)
1752 ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1753 : newOP((ps[-2].val.ival), OPf_SPECIAL); }
1758 #line 1188 "perly.y" /* yacc.c:1646 */
1759 { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
1764 #line 1190 "perly.y" /* yacc.c:1646 */
1766 if ( (ps[0].val.opval)->op_type != OP_TRANS
1767 && (ps[0].val.opval)->op_type != OP_TRANSR
1768 && (((PMOP*)(ps[0].val.opval))->op_pmflags & PMf_HAS_CV))
1770 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1771 SAVEFREESV(PL_compcv);
1779 #line 1201 "perly.y" /* yacc.c:1646 */
1780 { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); }
1785 #line 1205 "perly.y" /* yacc.c:1646 */
1787 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1788 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1794 #line 1214 "perly.y" /* yacc.c:1646 */
1795 { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); }
1800 #line 1216 "perly.y" /* yacc.c:1646 */
1801 { (yyval.opval) = localize((ps[0].val.opval),1); }
1806 #line 1218 "perly.y" /* yacc.c:1646 */
1807 { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); }
1812 #line 1223 "perly.y" /* yacc.c:1646 */
1813 { (yyval.opval) = sawparens((ps[-1].val.opval)); }
1818 #line 1225 "perly.y" /* yacc.c:1646 */
1819 { (yyval.opval) = sawparens(newNULLLIST()); }
1824 #line 1228 "perly.y" /* yacc.c:1646 */
1825 { (yyval.opval) = (ps[0].val.opval); }
1830 #line 1230 "perly.y" /* yacc.c:1646 */
1831 { (yyval.opval) = (ps[0].val.opval); }
1836 #line 1232 "perly.y" /* yacc.c:1646 */
1837 { (yyval.opval) = (ps[0].val.opval); }
1842 #line 1237 "perly.y" /* yacc.c:1646 */
1843 { (yyval.opval) = (OP*)NULL; }
1848 #line 1239 "perly.y" /* yacc.c:1646 */
1849 { (yyval.opval) = (ps[0].val.opval); }
1854 #line 1243 "perly.y" /* yacc.c:1646 */
1855 { (yyval.opval) = (OP*)NULL; }
1860 #line 1245 "perly.y" /* yacc.c:1646 */
1861 { (yyval.opval) = (ps[0].val.opval); }
1866 #line 1249 "perly.y" /* yacc.c:1646 */
1867 { (yyval.opval) = (OP*)NULL; }
1872 #line 1251 "perly.y" /* yacc.c:1646 */
1873 { (yyval.opval) = (ps[0].val.opval); }
1878 #line 1257 "perly.y" /* yacc.c:1646 */
1879 { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
1884 #line 1274 "perly.y" /* yacc.c:1646 */
1885 { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); }
1890 #line 1278 "perly.y" /* yacc.c:1646 */
1891 { (yyval.opval) = newSVREF((ps[0].val.opval)); }
1896 #line 1282 "perly.y" /* yacc.c:1646 */
1897 { (yyval.opval) = newAVREF((ps[0].val.opval));
1898 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
1904 #line 1288 "perly.y" /* yacc.c:1646 */
1905 { (yyval.opval) = newHVREF((ps[0].val.opval));
1906 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
1912 #line 1294 "perly.y" /* yacc.c:1646 */
1913 { (yyval.opval) = newAVREF((ps[0].val.opval)); }
1918 #line 1296 "perly.y" /* yacc.c:1646 */
1919 { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
1924 #line 1300 "perly.y" /* yacc.c:1646 */
1925 { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); }
1930 #line 1305 "perly.y" /* yacc.c:1646 */
1931 { (yyval.opval) = newAVREF((ps[-2].val.opval)); }
1936 #line 1310 "perly.y" /* yacc.c:1646 */
1937 { (yyval.opval) = newHVREF((ps[-2].val.opval)); }
1942 #line 1315 "perly.y" /* yacc.c:1646 */
1943 { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); }
1948 #line 1320 "perly.y" /* yacc.c:1646 */
1949 { (yyval.opval) = scalar((ps[0].val.opval)); }
1954 #line 1322 "perly.y" /* yacc.c:1646 */
1955 { (yyval.opval) = scalar((ps[0].val.opval)); }
1960 #line 1324 "perly.y" /* yacc.c:1646 */
1961 { (yyval.opval) = op_scope((ps[0].val.opval)); }
1966 #line 1327 "perly.y" /* yacc.c:1646 */
1967 { (yyval.opval) = (ps[0].val.opval); }
1977 * 218308e5b4f3720eeeba65e3c85ff9d92b85ab8f32d53eb3cbdaa99790b03a63 perly.y
1978 * 3e1dff60f26df8933d7aed0c0e87177a0f022c14800c0707eb62a7db4196ac98 regen_perly.pl