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 = 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 */
884 defop->op_targ = PL_parser->sig_elems - 1;
887 var->op_flags |= OPf_STACKED;
888 (void)op_sibling_splice(var,
893 var = newUNOP(OP_NULL, 0, defop);
896 /* NB: normally the first child of a
897 * logop is executed before the logop,
898 * and it pushes a boolean result
899 * ready for the logop. For ARGDEFELEM,
900 * the op itself does the boolean
901 * calculation, so set the first op to
904 var->op_next = defop;
905 defexpr->op_next = var;
909 if (PL_parser->sig_optelems)
910 yyerror("Mandatory parameter "
911 "follows optional parameter");
914 (yyval.opval) = var ? newSTATEOP(0, NULL, var) : (OP*)NULL;
920 #line 748 "perly.y" /* yacc.c:1646 */
921 { parser->expect = XSIGVAR; (yyval.opval) = (ps[0].val.opval); }
926 #line 750 "perly.y" /* yacc.c:1646 */
927 { parser->expect = XSIGVAR; (yyval.opval) = (ps[0].val.opval); }
932 #line 756 "perly.y" /* yacc.c:1646 */
933 { (yyval.opval) = (ps[-1].val.opval); }
938 #line 758 "perly.y" /* yacc.c:1646 */
940 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-2].val.opval), (ps[0].val.opval));
946 #line 762 "perly.y" /* yacc.c:1646 */
947 { (yyval.opval) = (ps[0].val.opval); }
952 #line 767 "perly.y" /* yacc.c:1646 */
953 { (yyval.opval) = (OP*)NULL; }
958 #line 769 "perly.y" /* yacc.c:1646 */
959 { (yyval.opval) = (ps[0].val.opval); }
964 #line 773 "perly.y" /* yacc.c:1646 */
967 SAVEINT(PL_parser->sig_elems);
968 SAVEINT(PL_parser->sig_optelems);
969 SAVEI8(PL_parser->sig_slurpy);
970 PL_parser->sig_elems = 0;
971 PL_parser->sig_optelems = 0;
972 PL_parser->sig_slurpy = 0;
973 parser->expect = XSIGVAR;
979 #line 785 "perly.y" /* yacc.c:1646 */
981 OP *sigops = (ps[-1].val.opval);
985 assert(FEATURE_SIGNATURES_IS_ENABLED);
987 /* We shouldn't get here otherwise */
988 Perl_ck_warner_d(aTHX_
989 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
990 "The signatures feature is experimental");
992 aux = (UNOP_AUX_item*)PerlMemShared_malloc(
993 sizeof(UNOP_AUX_item) * 3);
994 aux[0].uv = PL_parser->sig_elems;
995 aux[1].uv = PL_parser->sig_optelems;
996 aux[2].iv = PL_parser->sig_slurpy;
997 check = newUNOP_AUX(OP_ARGCHECK, 0, NULL, aux);
998 sigops = op_prepend_elem(OP_LINESEQ, check, sigops);
999 sigops = op_prepend_elem(OP_LINESEQ,
1000 newSTATEOP(0, NULL, NULL),
1002 /* a nextstate at the end handles context
1003 * correctly for an empty sub body */
1004 (yyval.opval) = op_append_elem(OP_LINESEQ,
1006 newSTATEOP(0, NULL, NULL));
1008 parser->expect = XATTRBLOCK;
1015 #line 822 "perly.y" /* yacc.c:1646 */
1016 { (yyval.opval) = (OP*)NULL; }
1021 #line 827 "perly.y" /* yacc.c:1646 */
1022 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1027 #line 829 "perly.y" /* yacc.c:1646 */
1028 { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1033 #line 831 "perly.y" /* yacc.c:1646 */
1034 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1039 #line 837 "perly.y" /* yacc.c:1646 */
1040 { (yyval.opval) = (ps[-1].val.opval); }
1045 #line 839 "perly.y" /* yacc.c:1646 */
1047 OP* term = (ps[0].val.opval);
1048 (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term);
1054 #line 848 "perly.y" /* yacc.c:1646 */
1055 { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED,
1056 op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) );
1062 #line 852 "perly.y" /* yacc.c:1646 */
1063 { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED,
1064 op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) );
1070 #line 856 "perly.y" /* yacc.c:1646 */
1071 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1072 op_append_elem(OP_LIST,
1073 op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)),
1074 newMETHOP(OP_METHOD, 0, (ps[-3].val.opval))));
1080 #line 862 "perly.y" /* yacc.c:1646 */
1081 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1082 op_append_elem(OP_LIST, scalar((ps[-2].val.opval)),
1083 newMETHOP(OP_METHOD, 0, (ps[0].val.opval))));
1089 #line 867 "perly.y" /* yacc.c:1646 */
1090 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1091 op_append_elem(OP_LIST,
1092 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)),
1093 newMETHOP(OP_METHOD, 0, (ps[-2].val.opval))));
1099 #line 873 "perly.y" /* yacc.c:1646 */
1100 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1101 op_append_elem(OP_LIST,
1102 op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)),
1103 newMETHOP(OP_METHOD, 0, (ps[-4].val.opval))));
1109 #line 879 "perly.y" /* yacc.c:1646 */
1110 { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1115 #line 881 "perly.y" /* yacc.c:1646 */
1116 { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
1121 #line 883 "perly.y" /* yacc.c:1646 */
1122 { SvREFCNT_inc_simple_void(PL_compcv);
1123 (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, (OP*)NULL, (ps[0].val.opval)); }
1128 #line 886 "perly.y" /* yacc.c:1646 */
1129 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1130 op_append_elem(OP_LIST,
1131 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval)));
1137 #line 901 "perly.y" /* yacc.c:1646 */
1138 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); }
1143 #line 903 "perly.y" /* yacc.c:1646 */
1144 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval)));
1150 #line 906 "perly.y" /* yacc.c:1646 */
1151 { (yyval.opval) = newBINOP(OP_AELEM, 0,
1152 ref(newAVREF((ps[-4].val.opval)),OP_RV2AV),
1153 scalar((ps[-1].val.opval)));
1159 #line 911 "perly.y" /* yacc.c:1646 */
1160 { (yyval.opval) = newBINOP(OP_AELEM, 0,
1161 ref(newAVREF((ps[-3].val.opval)),OP_RV2AV),
1162 scalar((ps[-1].val.opval)));
1168 #line 916 "perly.y" /* yacc.c:1646 */
1169 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval)));
1175 #line 919 "perly.y" /* yacc.c:1646 */
1176 { (yyval.opval) = newBINOP(OP_HELEM, 0,
1177 ref(newHVREF((ps[-5].val.opval)),OP_RV2HV),
1178 jmaybe((ps[-2].val.opval))); }
1183 #line 923 "perly.y" /* yacc.c:1646 */
1184 { (yyval.opval) = newBINOP(OP_HELEM, 0,
1185 ref(newHVREF((ps[-4].val.opval)),OP_RV2HV),
1186 jmaybe((ps[-2].val.opval))); }
1191 #line 927 "perly.y" /* yacc.c:1646 */
1192 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1193 newCVREF(0, scalar((ps[-3].val.opval)))); }
1198 #line 930 "perly.y" /* yacc.c:1646 */
1199 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1200 op_append_elem(OP_LIST, (ps[-1].val.opval),
1201 newCVREF(0, scalar((ps[-4].val.opval))))); }
1206 #line 935 "perly.y" /* yacc.c:1646 */
1207 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1208 op_append_elem(OP_LIST, (ps[-1].val.opval),
1209 newCVREF(0, scalar((ps[-3].val.opval))))); }
1214 #line 939 "perly.y" /* yacc.c:1646 */
1215 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1216 newCVREF(0, scalar((ps[-2].val.opval)))); }
1221 #line 942 "perly.y" /* yacc.c:1646 */
1222 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); }
1227 #line 944 "perly.y" /* yacc.c:1646 */
1228 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); }
1233 #line 946 "perly.y" /* yacc.c:1646 */
1234 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (OP*)NULL); }
1239 #line 951 "perly.y" /* yacc.c:1646 */
1240 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); }
1245 #line 953 "perly.y" /* yacc.c:1646 */
1246 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1251 #line 955 "perly.y" /* yacc.c:1646 */
1252 { if ((ps[-1].val.ival) != OP_REPEAT)
1253 scalar((ps[-2].val.opval));
1254 (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval)));
1260 #line 960 "perly.y" /* yacc.c:1646 */
1261 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1266 #line 962 "perly.y" /* yacc.c:1646 */
1267 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1272 #line 964 "perly.y" /* yacc.c:1646 */
1273 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1278 #line 966 "perly.y" /* yacc.c:1646 */
1279 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1284 #line 968 "perly.y" /* yacc.c:1646 */
1285 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1290 #line 970 "perly.y" /* yacc.c:1646 */
1291 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1296 #line 972 "perly.y" /* yacc.c:1646 */
1297 { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1302 #line 974 "perly.y" /* yacc.c:1646 */
1303 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1308 #line 976 "perly.y" /* yacc.c:1646 */
1309 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1314 #line 978 "perly.y" /* yacc.c:1646 */
1315 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1320 #line 980 "perly.y" /* yacc.c:1646 */
1321 { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
1326 #line 985 "perly.y" /* yacc.c:1646 */
1327 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); }
1332 #line 987 "perly.y" /* yacc.c:1646 */
1333 { (yyval.opval) = (ps[0].val.opval); }
1338 #line 990 "perly.y" /* yacc.c:1646 */
1339 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
1344 #line 992 "perly.y" /* yacc.c:1646 */
1345 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); }
1350 #line 994 "perly.y" /* yacc.c:1646 */
1351 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1352 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); }
1357 #line 997 "perly.y" /* yacc.c:1646 */
1358 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1359 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));}
1364 #line 1000 "perly.y" /* yacc.c:1646 */
1365 { (yyval.opval) = op_convert_list(OP_JOIN, 0,
1379 #line 1011 "perly.y" /* yacc.c:1646 */
1380 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1381 op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); }
1386 #line 1014 "perly.y" /* yacc.c:1646 */
1387 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1388 op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); }
1393 #line 1021 "perly.y" /* yacc.c:1646 */
1394 { (yyval.opval) = newANONLIST((ps[-1].val.opval)); }
1399 #line 1023 "perly.y" /* yacc.c:1646 */
1400 { (yyval.opval) = newANONLIST((OP*)NULL);}
1405 #line 1025 "perly.y" /* yacc.c:1646 */
1406 { (yyval.opval) = newANONHASH((ps[-2].val.opval)); }
1411 #line 1027 "perly.y" /* yacc.c:1646 */
1412 { (yyval.opval) = newANONHASH((OP*)NULL); }
1417 #line 1029 "perly.y" /* yacc.c:1646 */
1418 { SvREFCNT_inc_simple_void(PL_compcv);
1419 (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); }
1424 #line 1032 "perly.y" /* yacc.c:1646 */
1427 if (parser->copline > (line_t)(ps[-2].val.ival))
1428 parser->copline = (line_t)(ps[-2].val.ival);
1429 body = block_end((ps[-5].val.ival),
1430 op_append_list(OP_LINESEQ, (ps[-4].val.opval), (ps[-1].val.opval)));
1431 SvREFCNT_inc_simple_void(PL_compcv);
1432 (yyval.opval) = newANONATTRSUB((ps[-6].val.ival), NULL, (ps[-3].val.opval), body);
1438 #line 1046 "perly.y" /* yacc.c:1646 */
1439 { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));}
1444 #line 1048 "perly.y" /* yacc.c:1646 */
1445 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));}
1450 #line 1056 "perly.y" /* yacc.c:1646 */
1451 { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); }
1456 #line 1058 "perly.y" /* yacc.c:1646 */
1457 { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); }
1462 #line 1060 "perly.y" /* yacc.c:1646 */
1463 { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); }
1468 #line 1062 "perly.y" /* yacc.c:1646 */
1469 { (yyval.opval) = (ps[0].val.opval); }
1474 #line 1064 "perly.y" /* yacc.c:1646 */
1475 { (yyval.opval) = localize((ps[0].val.opval),0); }
1480 #line 1066 "perly.y" /* yacc.c:1646 */
1481 { (yyval.opval) = sawparens((ps[-1].val.opval)); }
1486 #line 1068 "perly.y" /* yacc.c:1646 */
1487 { (yyval.opval) = (ps[0].val.opval); }
1492 #line 1070 "perly.y" /* yacc.c:1646 */
1493 { (yyval.opval) = sawparens(newNULLLIST()); }
1498 #line 1072 "perly.y" /* yacc.c:1646 */
1499 { (yyval.opval) = (ps[0].val.opval); }
1504 #line 1074 "perly.y" /* yacc.c:1646 */
1505 { (yyval.opval) = (ps[0].val.opval); }
1510 #line 1076 "perly.y" /* yacc.c:1646 */
1511 { (yyval.opval) = (ps[0].val.opval); }
1516 #line 1078 "perly.y" /* yacc.c:1646 */
1517 { (yyval.opval) = (ps[0].val.opval); }
1522 #line 1080 "perly.y" /* yacc.c:1646 */
1523 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));}
1528 #line 1082 "perly.y" /* yacc.c:1646 */
1529 { (yyval.opval) = (ps[0].val.opval); }
1534 #line 1084 "perly.y" /* yacc.c:1646 */
1535 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1536 newOP(OP_PUSHMARK, 0),
1537 newLISTOP(OP_ASLICE, 0,
1538 list((ps[-1].val.opval)),
1539 ref((ps[-3].val.opval), OP_ASLICE)));
1540 if ((yyval.opval) && (ps[-3].val.opval))
1541 (yyval.opval)->op_private |=
1542 (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
1548 #line 1094 "perly.y" /* yacc.c:1646 */
1549 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1550 newOP(OP_PUSHMARK, 0),
1551 newLISTOP(OP_KVASLICE, 0,
1552 list((ps[-1].val.opval)),
1553 ref(oopsAV((ps[-3].val.opval)), OP_KVASLICE)));
1554 if ((yyval.opval) && (ps[-3].val.opval))
1555 (yyval.opval)->op_private |=
1556 (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
1562 #line 1104 "perly.y" /* yacc.c:1646 */
1563 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1564 newOP(OP_PUSHMARK, 0),
1565 newLISTOP(OP_HSLICE, 0,
1566 list((ps[-2].val.opval)),
1567 ref(oopsHV((ps[-4].val.opval)), OP_HSLICE)));
1568 if ((yyval.opval) && (ps[-4].val.opval))
1569 (yyval.opval)->op_private |=
1570 (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
1576 #line 1114 "perly.y" /* yacc.c:1646 */
1577 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1578 newOP(OP_PUSHMARK, 0),
1579 newLISTOP(OP_KVHSLICE, 0,
1580 list((ps[-2].val.opval)),
1581 ref((ps[-4].val.opval), OP_KVHSLICE)));
1582 if ((yyval.opval) && (ps[-4].val.opval))
1583 (yyval.opval)->op_private |=
1584 (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
1590 #line 1124 "perly.y" /* yacc.c:1646 */
1591 { (yyval.opval) = (ps[0].val.opval); }
1596 #line 1126 "perly.y" /* yacc.c:1646 */
1597 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); }
1602 #line 1128 "perly.y" /* yacc.c:1646 */
1603 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval)));
1609 #line 1131 "perly.y" /* yacc.c:1646 */
1611 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1612 op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval))));
1618 #line 1136 "perly.y" /* yacc.c:1646 */
1619 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1620 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval))));
1626 #line 1140 "perly.y" /* yacc.c:1646 */
1627 { (yyval.opval) = newSVREF((ps[-3].val.opval)); }
1632 #line 1142 "perly.y" /* yacc.c:1646 */
1633 { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
1638 #line 1144 "perly.y" /* yacc.c:1646 */
1639 { (yyval.opval) = newHVREF((ps[-3].val.opval)); }
1644 #line 1146 "perly.y" /* yacc.c:1646 */
1645 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1646 scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); }
1651 #line 1149 "perly.y" /* yacc.c:1646 */
1652 { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); }
1657 #line 1151 "perly.y" /* yacc.c:1646 */
1658 { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL);
1659 PL_hints |= HINT_BLOCK_SCOPE; }
1664 #line 1154 "perly.y" /* yacc.c:1646 */
1665 { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); }
1670 #line 1156 "perly.y" /* yacc.c:1646 */
1671 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
1676 #line 1158 "perly.y" /* yacc.c:1646 */
1677 { (yyval.opval) = newOP((ps[0].val.ival), 0); }
1682 #line 1160 "perly.y" /* yacc.c:1646 */
1683 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1688 #line 1162 "perly.y" /* yacc.c:1646 */
1689 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1694 #line 1164 "perly.y" /* yacc.c:1646 */
1695 { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); }
1700 #line 1166 "perly.y" /* yacc.c:1646 */
1701 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); }
1706 #line 1168 "perly.y" /* yacc.c:1646 */
1707 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
1712 #line 1170 "perly.y" /* yacc.c:1646 */
1713 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1714 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); }
1719 #line 1173 "perly.y" /* yacc.c:1646 */
1720 { (yyval.opval) = newOP((ps[0].val.ival), 0); }
1725 #line 1175 "perly.y" /* yacc.c:1646 */
1726 { (yyval.opval) = newOP((ps[-2].val.ival), 0);}
1731 #line 1177 "perly.y" /* yacc.c:1646 */
1732 { (yyval.opval) = (ps[0].val.opval); }
1737 #line 1179 "perly.y" /* yacc.c:1646 */
1738 { (yyval.opval) = (ps[-2].val.opval); }
1743 #line 1181 "perly.y" /* yacc.c:1646 */
1744 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
1749 #line 1183 "perly.y" /* yacc.c:1646 */
1750 { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT)
1751 ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1752 : newOP((ps[-2].val.ival), OPf_SPECIAL); }
1757 #line 1187 "perly.y" /* yacc.c:1646 */
1758 { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
1763 #line 1189 "perly.y" /* yacc.c:1646 */
1765 if ( (ps[0].val.opval)->op_type != OP_TRANS
1766 && (ps[0].val.opval)->op_type != OP_TRANSR
1767 && (((PMOP*)(ps[0].val.opval))->op_pmflags & PMf_HAS_CV))
1769 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1770 SAVEFREESV(PL_compcv);
1778 #line 1200 "perly.y" /* yacc.c:1646 */
1779 { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); }
1784 #line 1204 "perly.y" /* yacc.c:1646 */
1786 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1787 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1793 #line 1213 "perly.y" /* yacc.c:1646 */
1794 { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); }
1799 #line 1215 "perly.y" /* yacc.c:1646 */
1800 { (yyval.opval) = localize((ps[0].val.opval),1); }
1805 #line 1217 "perly.y" /* yacc.c:1646 */
1806 { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); }
1811 #line 1222 "perly.y" /* yacc.c:1646 */
1812 { (yyval.opval) = sawparens((ps[-1].val.opval)); }
1817 #line 1224 "perly.y" /* yacc.c:1646 */
1818 { (yyval.opval) = sawparens(newNULLLIST()); }
1823 #line 1227 "perly.y" /* yacc.c:1646 */
1824 { (yyval.opval) = (ps[0].val.opval); }
1829 #line 1229 "perly.y" /* yacc.c:1646 */
1830 { (yyval.opval) = (ps[0].val.opval); }
1835 #line 1231 "perly.y" /* yacc.c:1646 */
1836 { (yyval.opval) = (ps[0].val.opval); }
1841 #line 1236 "perly.y" /* yacc.c:1646 */
1842 { (yyval.opval) = (OP*)NULL; }
1847 #line 1238 "perly.y" /* yacc.c:1646 */
1848 { (yyval.opval) = (ps[0].val.opval); }
1853 #line 1242 "perly.y" /* yacc.c:1646 */
1854 { (yyval.opval) = (OP*)NULL; }
1859 #line 1244 "perly.y" /* yacc.c:1646 */
1860 { (yyval.opval) = (ps[0].val.opval); }
1865 #line 1248 "perly.y" /* yacc.c:1646 */
1866 { (yyval.opval) = (OP*)NULL; }
1871 #line 1250 "perly.y" /* yacc.c:1646 */
1872 { (yyval.opval) = (ps[0].val.opval); }
1877 #line 1256 "perly.y" /* yacc.c:1646 */
1878 { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
1883 #line 1273 "perly.y" /* yacc.c:1646 */
1884 { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); }
1889 #line 1277 "perly.y" /* yacc.c:1646 */
1890 { (yyval.opval) = newSVREF((ps[0].val.opval)); }
1895 #line 1281 "perly.y" /* yacc.c:1646 */
1896 { (yyval.opval) = newAVREF((ps[0].val.opval));
1897 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
1903 #line 1287 "perly.y" /* yacc.c:1646 */
1904 { (yyval.opval) = newHVREF((ps[0].val.opval));
1905 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
1911 #line 1293 "perly.y" /* yacc.c:1646 */
1912 { (yyval.opval) = newAVREF((ps[0].val.opval)); }
1917 #line 1295 "perly.y" /* yacc.c:1646 */
1918 { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
1923 #line 1299 "perly.y" /* yacc.c:1646 */
1924 { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); }
1929 #line 1304 "perly.y" /* yacc.c:1646 */
1930 { (yyval.opval) = newAVREF((ps[-2].val.opval)); }
1935 #line 1309 "perly.y" /* yacc.c:1646 */
1936 { (yyval.opval) = newHVREF((ps[-2].val.opval)); }
1941 #line 1314 "perly.y" /* yacc.c:1646 */
1942 { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); }
1947 #line 1319 "perly.y" /* yacc.c:1646 */
1948 { (yyval.opval) = scalar((ps[0].val.opval)); }
1953 #line 1321 "perly.y" /* yacc.c:1646 */
1954 { (yyval.opval) = scalar((ps[0].val.opval)); }
1959 #line 1323 "perly.y" /* yacc.c:1646 */
1960 { (yyval.opval) = op_scope((ps[0].val.opval)); }
1965 #line 1326 "perly.y" /* yacc.c:1646 */
1966 { (yyval.opval) = (ps[0].val.opval); }
1976 * 6deb43709ef5dcefc6a8b7059606df5a86eae75b6a769e7451f39368b1de5d9d perly.y
1977 * 3e1dff60f26df8933d7aed0c0e87177a0f022c14800c0707eb62a7db4196ac98 regen_perly.pl