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 */
802 (yyval.opval) = (ps[0].val.opval);
803 PL_parser->in_my = 0;
809 #line 652 "perly.y" /* yacc.c:1646 */
810 { (yyval.ival) = '@'; }
815 #line 654 "perly.y" /* yacc.c:1646 */
816 { (yyval.ival) = '%'; }
821 #line 658 "perly.y" /* yacc.c:1646 */
823 I32 sigil = (ps[-2].val.ival);
824 OP *var = (ps[-1].val.opval);
825 OP *defexpr = (ps[0].val.opval);
826 int type = (sigil == '@' ? OP_PADAV : OP_PADHV);
828 if (PL_parser->sig_slurpy)
829 yyerror("Multiple slurpy parameters not allowed");
830 PL_parser->sig_slurpy = sigil;
833 yyerror("a slurpy parameter may not have "
840 var->op_ppaddr = PL_ppaddr[type];
841 var->op_flags = (OPf_WANT_LIST | OPf_MOD);
842 var->op_private = OPpLVAL_INTRO;
844 slice = PL_parser->sig_elems
845 ? op_prepend_elem(OP_ASLICE,
846 newOP(OP_PUSHMARK, 0),
847 newLISTOP(OP_ASLICE, 0,
850 newSViv(PL_parser->sig_elems)),
851 newUNOP(OP_AV2ARYLEN, 0,
852 ref(newUNOP(OP_RV2AV, 0,
853 newGVOP(OP_GV, 0, PL_defgv)),
855 ref(newUNOP(OP_RV2AV, 0,
856 newGVOP(OP_GV, 0, PL_defgv)),
858 : newUNOP(OP_RV2AV, 0, newGVOP(OP_GV, 0, PL_defgv));
859 (yyval.opval) = newSTATEOP(0, NULL,
860 newASSIGNOP(OPf_STACKED, var, 0, slice));
863 (yyval.opval) = (OP*)NULL;
869 #line 705 "perly.y" /* yacc.c:1646 */
870 { (yyval.opval) = (OP*)NULL; }
875 #line 707 "perly.y" /* yacc.c:1646 */
876 { (yyval.opval) = newOP(OP_NULL, 0); }
881 #line 709 "perly.y" /* yacc.c:1646 */
882 { (yyval.opval) = (ps[0].val.opval); }
887 #line 715 "perly.y" /* yacc.c:1646 */
889 OP *var = (ps[-1].val.opval);
890 OP *defexpr = (ps[0].val.opval);
894 if (PL_parser->sig_slurpy)
895 yyerror("Slurpy parameter not last");
897 PL_parser->sig_elems++;
900 var->op_type = OP_PADSV;
901 var->op_ppaddr = PL_ppaddr[OP_PADSV];
902 var->op_flags = (OPf_WANT_SCALAR | OPf_MOD);
903 var->op_private = OPpLVAL_INTRO;
907 argn = newBINOP(OP_AELEM, 0,
908 ref(newUNOP(OP_RV2AV, 0,
909 newGVOP(OP_GV, 0, PL_defgv)),
912 newSViv(PL_parser->sig_elems - 1)));
915 PL_parser->sig_optelems++;
916 /* is it '$var=undef', '$=' ? */
917 if ( ( defexpr->op_type == OP_NULL
918 || defexpr->op_type == OP_UNDEF)
919 && !(defexpr->op_flags & OPf_KIDS))
922 /* '$=' is legal, '$var=' isn't */
923 if (defexpr->op_type == OP_NULL)
924 yyerror("Optional parameter "
925 "lacks default expression");
935 scalar(newUNOP(OP_RV2AV, 0,
936 newGVOP(OP_GV, 0, PL_defgv))),
938 newSViv(PL_parser->sig_elems)));
941 ? newCONDOP(0, ge_op, argn, defexpr)
942 : newLOGOP(OP_OR, 0, ge_op, defexpr);
946 if (PL_parser->sig_optelems)
947 yyerror("Mandatory parameter "
948 "follows optional parameter");
953 expr = newASSIGNOP(OPf_STACKED, var, 0, expr);
955 (yyval.opval) = op_prepend_elem(OP_LINESEQ,
956 newSTATEOP(0, NULL, NULL),
959 (yyval.opval) = (OP*)NULL;
965 #line 793 "perly.y" /* yacc.c:1646 */
966 { parser->expect = XSIGVAR; (yyval.opval) = (ps[0].val.opval); }
971 #line 795 "perly.y" /* yacc.c:1646 */
972 { parser->expect = XSIGVAR; (yyval.opval) = (ps[0].val.opval); }
977 #line 801 "perly.y" /* yacc.c:1646 */
978 { (yyval.opval) = (ps[-1].val.opval); }
983 #line 803 "perly.y" /* yacc.c:1646 */
985 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-2].val.opval), (ps[0].val.opval));
991 #line 807 "perly.y" /* yacc.c:1646 */
992 { (yyval.opval) = (ps[0].val.opval); }
997 #line 812 "perly.y" /* yacc.c:1646 */
998 { (yyval.opval) = (OP*)NULL; }
1003 #line 814 "perly.y" /* yacc.c:1646 */
1004 { (yyval.opval) = (ps[0].val.opval); }
1009 #line 818 "perly.y" /* yacc.c:1646 */
1012 SAVEINT(PL_parser->sig_elems);
1013 SAVEINT(PL_parser->sig_optelems);
1014 SAVEI8(PL_parser->sig_slurpy);
1015 PL_parser->sig_elems = 0;
1016 PL_parser->sig_optelems = 0;
1017 PL_parser->sig_slurpy = 0;
1018 parser->expect = XSIGVAR;
1024 #line 830 "perly.y" /* yacc.c:1646 */
1026 OP *sigops = (ps[-1].val.opval);
1028 PL_parser->sig_elems - PL_parser->sig_optelems;
1030 assert(FEATURE_SIGNATURES_IS_ENABLED);
1032 /* We shouldn't get here otherwise */
1033 Perl_ck_warner_d(aTHX_
1034 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
1035 "The signatures feature is experimental");
1037 /* handle odd/even for %foo */
1038 if (PL_parser->sig_slurpy == '%') {
1041 (PL_parser->sig_elems & 1)
1044 newBINOP(OP_BIT_AND, 0,
1045 scalar(newUNOP(OP_RV2AV, 0,
1046 newGVOP(OP_GV, 0, PL_defgv))),
1047 newSVOP(OP_CONST, 0, newSViv(1))),
1048 op_convert_list(OP_DIE, 0,
1049 op_convert_list(OP_SPRINTF, 0,
1050 op_append_list(OP_LIST,
1051 newSVOP(OP_CONST, 0,
1052 newSVpvs("Odd name/value argument for subroutine at %s line %d.\n")),
1054 op_append_list(OP_LIST,
1055 newSVOP(OP_CONST, 0, newSViv(1)),
1056 newSVOP(OP_CONST, 0, newSViv(2))),
1057 newOP(OP_CALLER, 0))))));
1058 if (PL_parser->sig_optelems)
1059 chkop = newLOGOP(OP_AND, 0,
1061 scalar(newUNOP(OP_RV2AV, 0,
1062 newGVOP(OP_GV, 0, PL_defgv))),
1063 newSVOP(OP_CONST, 0,
1064 newSViv(PL_parser->sig_elems))),
1066 sigops = op_prepend_elem(OP_LINESEQ,
1071 sigops = op_prepend_elem(OP_LINESEQ,
1072 Perl_check_arity(aTHX_ min_arity,
1075 if (!PL_parser->sig_slurpy)
1076 sigops = op_prepend_elem(OP_LINESEQ,
1077 Perl_check_arity(aTHX_
1078 PL_parser->sig_elems, TRUE),
1081 (yyval.opval) = op_append_elem(OP_LINESEQ, sigops,
1082 newSTATEOP(0, NULL, NULL));
1084 parser->expect = XATTRBLOCK;
1091 #line 898 "perly.y" /* yacc.c:1646 */
1092 { (yyval.opval) = (OP*)NULL; }
1097 #line 903 "perly.y" /* yacc.c:1646 */
1098 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1103 #line 905 "perly.y" /* yacc.c:1646 */
1104 { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1109 #line 907 "perly.y" /* yacc.c:1646 */
1110 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1115 #line 913 "perly.y" /* yacc.c:1646 */
1116 { (yyval.opval) = (ps[-1].val.opval); }
1121 #line 915 "perly.y" /* yacc.c:1646 */
1123 OP* term = (ps[0].val.opval);
1124 (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term);
1130 #line 924 "perly.y" /* yacc.c:1646 */
1131 { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED,
1132 op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) );
1138 #line 928 "perly.y" /* yacc.c:1646 */
1139 { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED,
1140 op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) );
1146 #line 932 "perly.y" /* yacc.c:1646 */
1147 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1148 op_append_elem(OP_LIST,
1149 op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)),
1150 newMETHOP(OP_METHOD, 0, (ps[-3].val.opval))));
1156 #line 938 "perly.y" /* yacc.c:1646 */
1157 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1158 op_append_elem(OP_LIST, scalar((ps[-2].val.opval)),
1159 newMETHOP(OP_METHOD, 0, (ps[0].val.opval))));
1165 #line 943 "perly.y" /* yacc.c:1646 */
1166 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1167 op_append_elem(OP_LIST,
1168 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)),
1169 newMETHOP(OP_METHOD, 0, (ps[-2].val.opval))));
1175 #line 949 "perly.y" /* yacc.c:1646 */
1176 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1177 op_append_elem(OP_LIST,
1178 op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)),
1179 newMETHOP(OP_METHOD, 0, (ps[-4].val.opval))));
1185 #line 955 "perly.y" /* yacc.c:1646 */
1186 { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1191 #line 957 "perly.y" /* yacc.c:1646 */
1192 { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
1197 #line 959 "perly.y" /* yacc.c:1646 */
1198 { SvREFCNT_inc_simple_void(PL_compcv);
1199 (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, (OP*)NULL, (ps[0].val.opval)); }
1204 #line 962 "perly.y" /* yacc.c:1646 */
1205 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1206 op_append_elem(OP_LIST,
1207 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval)));
1213 #line 977 "perly.y" /* yacc.c:1646 */
1214 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); }
1219 #line 979 "perly.y" /* yacc.c:1646 */
1220 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval)));
1226 #line 982 "perly.y" /* yacc.c:1646 */
1227 { (yyval.opval) = newBINOP(OP_AELEM, 0,
1228 ref(newAVREF((ps[-4].val.opval)),OP_RV2AV),
1229 scalar((ps[-1].val.opval)));
1235 #line 987 "perly.y" /* yacc.c:1646 */
1236 { (yyval.opval) = newBINOP(OP_AELEM, 0,
1237 ref(newAVREF((ps[-3].val.opval)),OP_RV2AV),
1238 scalar((ps[-1].val.opval)));
1244 #line 992 "perly.y" /* yacc.c:1646 */
1245 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval)));
1251 #line 995 "perly.y" /* yacc.c:1646 */
1252 { (yyval.opval) = newBINOP(OP_HELEM, 0,
1253 ref(newHVREF((ps[-5].val.opval)),OP_RV2HV),
1254 jmaybe((ps[-2].val.opval))); }
1259 #line 999 "perly.y" /* yacc.c:1646 */
1260 { (yyval.opval) = newBINOP(OP_HELEM, 0,
1261 ref(newHVREF((ps[-4].val.opval)),OP_RV2HV),
1262 jmaybe((ps[-2].val.opval))); }
1267 #line 1003 "perly.y" /* yacc.c:1646 */
1268 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1269 newCVREF(0, scalar((ps[-3].val.opval)))); }
1274 #line 1006 "perly.y" /* yacc.c:1646 */
1275 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1276 op_append_elem(OP_LIST, (ps[-1].val.opval),
1277 newCVREF(0, scalar((ps[-4].val.opval))))); }
1282 #line 1011 "perly.y" /* yacc.c:1646 */
1283 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1284 op_append_elem(OP_LIST, (ps[-1].val.opval),
1285 newCVREF(0, scalar((ps[-3].val.opval))))); }
1290 #line 1015 "perly.y" /* yacc.c:1646 */
1291 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1292 newCVREF(0, scalar((ps[-2].val.opval)))); }
1297 #line 1018 "perly.y" /* yacc.c:1646 */
1298 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); }
1303 #line 1020 "perly.y" /* yacc.c:1646 */
1304 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); }
1309 #line 1022 "perly.y" /* yacc.c:1646 */
1310 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (OP*)NULL); }
1315 #line 1027 "perly.y" /* yacc.c:1646 */
1316 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); }
1321 #line 1029 "perly.y" /* yacc.c:1646 */
1322 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1327 #line 1031 "perly.y" /* yacc.c:1646 */
1328 { if ((ps[-1].val.ival) != OP_REPEAT)
1329 scalar((ps[-2].val.opval));
1330 (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval)));
1336 #line 1036 "perly.y" /* yacc.c:1646 */
1337 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1342 #line 1038 "perly.y" /* yacc.c:1646 */
1343 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1348 #line 1040 "perly.y" /* yacc.c:1646 */
1349 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1354 #line 1042 "perly.y" /* yacc.c:1646 */
1355 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1360 #line 1044 "perly.y" /* yacc.c:1646 */
1361 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1366 #line 1046 "perly.y" /* yacc.c:1646 */
1367 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1372 #line 1048 "perly.y" /* yacc.c:1646 */
1373 { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1378 #line 1050 "perly.y" /* yacc.c:1646 */
1379 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1384 #line 1052 "perly.y" /* yacc.c:1646 */
1385 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1390 #line 1054 "perly.y" /* yacc.c:1646 */
1391 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1396 #line 1056 "perly.y" /* yacc.c:1646 */
1397 { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
1402 #line 1061 "perly.y" /* yacc.c:1646 */
1403 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); }
1408 #line 1063 "perly.y" /* yacc.c:1646 */
1409 { (yyval.opval) = (ps[0].val.opval); }
1414 #line 1066 "perly.y" /* yacc.c:1646 */
1415 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
1420 #line 1068 "perly.y" /* yacc.c:1646 */
1421 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); }
1426 #line 1070 "perly.y" /* yacc.c:1646 */
1427 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1428 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); }
1433 #line 1073 "perly.y" /* yacc.c:1646 */
1434 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1435 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));}
1440 #line 1076 "perly.y" /* yacc.c:1646 */
1441 { (yyval.opval) = op_convert_list(OP_JOIN, 0,
1455 #line 1087 "perly.y" /* yacc.c:1646 */
1456 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1457 op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); }
1462 #line 1090 "perly.y" /* yacc.c:1646 */
1463 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1464 op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); }
1469 #line 1097 "perly.y" /* yacc.c:1646 */
1470 { (yyval.opval) = newANONLIST((ps[-1].val.opval)); }
1475 #line 1099 "perly.y" /* yacc.c:1646 */
1476 { (yyval.opval) = newANONLIST((OP*)NULL);}
1481 #line 1101 "perly.y" /* yacc.c:1646 */
1482 { (yyval.opval) = newANONHASH((ps[-2].val.opval)); }
1487 #line 1103 "perly.y" /* yacc.c:1646 */
1488 { (yyval.opval) = newANONHASH((OP*)NULL); }
1493 #line 1105 "perly.y" /* yacc.c:1646 */
1494 { SvREFCNT_inc_simple_void(PL_compcv);
1495 (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); }
1500 #line 1108 "perly.y" /* yacc.c:1646 */
1503 if (parser->copline > (line_t)(ps[-2].val.ival))
1504 parser->copline = (line_t)(ps[-2].val.ival);
1505 body = block_end((ps[-5].val.ival),
1506 op_append_list(OP_LINESEQ, (ps[-4].val.opval), (ps[-1].val.opval)));
1507 SvREFCNT_inc_simple_void(PL_compcv);
1508 (yyval.opval) = newANONATTRSUB((ps[-6].val.ival), NULL, (ps[-3].val.opval), body);
1514 #line 1122 "perly.y" /* yacc.c:1646 */
1515 { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));}
1520 #line 1124 "perly.y" /* yacc.c:1646 */
1521 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));}
1526 #line 1132 "perly.y" /* yacc.c:1646 */
1527 { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); }
1532 #line 1134 "perly.y" /* yacc.c:1646 */
1533 { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); }
1538 #line 1136 "perly.y" /* yacc.c:1646 */
1539 { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); }
1544 #line 1138 "perly.y" /* yacc.c:1646 */
1545 { (yyval.opval) = (ps[0].val.opval); }
1550 #line 1140 "perly.y" /* yacc.c:1646 */
1551 { (yyval.opval) = localize((ps[0].val.opval),0); }
1556 #line 1142 "perly.y" /* yacc.c:1646 */
1557 { (yyval.opval) = sawparens((ps[-1].val.opval)); }
1562 #line 1144 "perly.y" /* yacc.c:1646 */
1563 { (yyval.opval) = (ps[0].val.opval); }
1568 #line 1146 "perly.y" /* yacc.c:1646 */
1569 { (yyval.opval) = sawparens(newNULLLIST()); }
1574 #line 1148 "perly.y" /* yacc.c:1646 */
1575 { (yyval.opval) = (ps[0].val.opval); }
1580 #line 1150 "perly.y" /* yacc.c:1646 */
1581 { (yyval.opval) = (ps[0].val.opval); }
1586 #line 1152 "perly.y" /* yacc.c:1646 */
1587 { (yyval.opval) = (ps[0].val.opval); }
1592 #line 1154 "perly.y" /* yacc.c:1646 */
1593 { (yyval.opval) = (ps[0].val.opval); }
1598 #line 1156 "perly.y" /* yacc.c:1646 */
1599 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));}
1604 #line 1158 "perly.y" /* yacc.c:1646 */
1605 { (yyval.opval) = (ps[0].val.opval); }
1610 #line 1160 "perly.y" /* yacc.c:1646 */
1611 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1612 newOP(OP_PUSHMARK, 0),
1613 newLISTOP(OP_ASLICE, 0,
1614 list((ps[-1].val.opval)),
1615 ref((ps[-3].val.opval), OP_ASLICE)));
1616 if ((yyval.opval) && (ps[-3].val.opval))
1617 (yyval.opval)->op_private |=
1618 (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
1624 #line 1170 "perly.y" /* yacc.c:1646 */
1625 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1626 newOP(OP_PUSHMARK, 0),
1627 newLISTOP(OP_KVASLICE, 0,
1628 list((ps[-1].val.opval)),
1629 ref(oopsAV((ps[-3].val.opval)), OP_KVASLICE)));
1630 if ((yyval.opval) && (ps[-3].val.opval))
1631 (yyval.opval)->op_private |=
1632 (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
1638 #line 1180 "perly.y" /* yacc.c:1646 */
1639 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1640 newOP(OP_PUSHMARK, 0),
1641 newLISTOP(OP_HSLICE, 0,
1642 list((ps[-2].val.opval)),
1643 ref(oopsHV((ps[-4].val.opval)), OP_HSLICE)));
1644 if ((yyval.opval) && (ps[-4].val.opval))
1645 (yyval.opval)->op_private |=
1646 (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
1652 #line 1190 "perly.y" /* yacc.c:1646 */
1653 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1654 newOP(OP_PUSHMARK, 0),
1655 newLISTOP(OP_KVHSLICE, 0,
1656 list((ps[-2].val.opval)),
1657 ref((ps[-4].val.opval), OP_KVHSLICE)));
1658 if ((yyval.opval) && (ps[-4].val.opval))
1659 (yyval.opval)->op_private |=
1660 (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
1666 #line 1200 "perly.y" /* yacc.c:1646 */
1667 { (yyval.opval) = (ps[0].val.opval); }
1672 #line 1202 "perly.y" /* yacc.c:1646 */
1673 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); }
1678 #line 1204 "perly.y" /* yacc.c:1646 */
1679 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval)));
1685 #line 1207 "perly.y" /* yacc.c:1646 */
1687 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1688 op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval))));
1694 #line 1212 "perly.y" /* yacc.c:1646 */
1695 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1696 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval))));
1702 #line 1216 "perly.y" /* yacc.c:1646 */
1703 { (yyval.opval) = newSVREF((ps[-3].val.opval)); }
1708 #line 1218 "perly.y" /* yacc.c:1646 */
1709 { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
1714 #line 1220 "perly.y" /* yacc.c:1646 */
1715 { (yyval.opval) = newHVREF((ps[-3].val.opval)); }
1720 #line 1222 "perly.y" /* yacc.c:1646 */
1721 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1722 scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); }
1727 #line 1225 "perly.y" /* yacc.c:1646 */
1728 { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); }
1733 #line 1227 "perly.y" /* yacc.c:1646 */
1734 { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL);
1735 PL_hints |= HINT_BLOCK_SCOPE; }
1740 #line 1230 "perly.y" /* yacc.c:1646 */
1741 { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); }
1746 #line 1232 "perly.y" /* yacc.c:1646 */
1747 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
1752 #line 1234 "perly.y" /* yacc.c:1646 */
1753 { (yyval.opval) = newOP((ps[0].val.ival), 0); }
1758 #line 1236 "perly.y" /* yacc.c:1646 */
1759 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1764 #line 1238 "perly.y" /* yacc.c:1646 */
1765 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1770 #line 1240 "perly.y" /* yacc.c:1646 */
1771 { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); }
1776 #line 1242 "perly.y" /* yacc.c:1646 */
1777 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); }
1782 #line 1244 "perly.y" /* yacc.c:1646 */
1783 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
1788 #line 1246 "perly.y" /* yacc.c:1646 */
1789 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1790 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); }
1795 #line 1249 "perly.y" /* yacc.c:1646 */
1796 { (yyval.opval) = newOP((ps[0].val.ival), 0); }
1801 #line 1251 "perly.y" /* yacc.c:1646 */
1802 { (yyval.opval) = newOP((ps[-2].val.ival), 0);}
1807 #line 1253 "perly.y" /* yacc.c:1646 */
1808 { (yyval.opval) = (ps[0].val.opval); }
1813 #line 1255 "perly.y" /* yacc.c:1646 */
1814 { (yyval.opval) = (ps[-2].val.opval); }
1819 #line 1257 "perly.y" /* yacc.c:1646 */
1820 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
1825 #line 1259 "perly.y" /* yacc.c:1646 */
1826 { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT)
1827 ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1828 : newOP((ps[-2].val.ival), OPf_SPECIAL); }
1833 #line 1263 "perly.y" /* yacc.c:1646 */
1834 { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
1839 #line 1265 "perly.y" /* yacc.c:1646 */
1841 if ( (ps[0].val.opval)->op_type != OP_TRANS
1842 && (ps[0].val.opval)->op_type != OP_TRANSR
1843 && (((PMOP*)(ps[0].val.opval))->op_pmflags & PMf_HAS_CV))
1845 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1846 SAVEFREESV(PL_compcv);
1854 #line 1276 "perly.y" /* yacc.c:1646 */
1855 { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); }
1860 #line 1280 "perly.y" /* yacc.c:1646 */
1862 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1863 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1869 #line 1289 "perly.y" /* yacc.c:1646 */
1870 { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); }
1875 #line 1291 "perly.y" /* yacc.c:1646 */
1876 { (yyval.opval) = localize((ps[0].val.opval),1); }
1881 #line 1293 "perly.y" /* yacc.c:1646 */
1882 { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); }
1887 #line 1298 "perly.y" /* yacc.c:1646 */
1888 { (yyval.opval) = sawparens((ps[-1].val.opval)); }
1893 #line 1300 "perly.y" /* yacc.c:1646 */
1894 { (yyval.opval) = sawparens(newNULLLIST()); }
1899 #line 1303 "perly.y" /* yacc.c:1646 */
1900 { (yyval.opval) = (ps[0].val.opval); }
1905 #line 1305 "perly.y" /* yacc.c:1646 */
1906 { (yyval.opval) = (ps[0].val.opval); }
1911 #line 1307 "perly.y" /* yacc.c:1646 */
1912 { (yyval.opval) = (ps[0].val.opval); }
1917 #line 1312 "perly.y" /* yacc.c:1646 */
1918 { (yyval.opval) = (OP*)NULL; }
1923 #line 1314 "perly.y" /* yacc.c:1646 */
1924 { (yyval.opval) = (ps[0].val.opval); }
1929 #line 1318 "perly.y" /* yacc.c:1646 */
1930 { (yyval.opval) = (OP*)NULL; }
1935 #line 1320 "perly.y" /* yacc.c:1646 */
1936 { (yyval.opval) = (ps[0].val.opval); }
1941 #line 1324 "perly.y" /* yacc.c:1646 */
1942 { (yyval.opval) = (OP*)NULL; }
1947 #line 1326 "perly.y" /* yacc.c:1646 */
1948 { (yyval.opval) = (ps[0].val.opval); }
1953 #line 1332 "perly.y" /* yacc.c:1646 */
1954 { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
1959 #line 1349 "perly.y" /* yacc.c:1646 */
1960 { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); }
1965 #line 1353 "perly.y" /* yacc.c:1646 */
1966 { (yyval.opval) = newSVREF((ps[0].val.opval)); }
1971 #line 1357 "perly.y" /* yacc.c:1646 */
1972 { (yyval.opval) = newAVREF((ps[0].val.opval));
1973 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
1979 #line 1363 "perly.y" /* yacc.c:1646 */
1980 { (yyval.opval) = newHVREF((ps[0].val.opval));
1981 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
1987 #line 1369 "perly.y" /* yacc.c:1646 */
1988 { (yyval.opval) = newAVREF((ps[0].val.opval)); }
1993 #line 1371 "perly.y" /* yacc.c:1646 */
1994 { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
1999 #line 1375 "perly.y" /* yacc.c:1646 */
2000 { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); }
2005 #line 1380 "perly.y" /* yacc.c:1646 */
2006 { (yyval.opval) = newAVREF((ps[-2].val.opval)); }
2011 #line 1385 "perly.y" /* yacc.c:1646 */
2012 { (yyval.opval) = newHVREF((ps[-2].val.opval)); }
2017 #line 1390 "perly.y" /* yacc.c:1646 */
2018 { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); }
2023 #line 1395 "perly.y" /* yacc.c:1646 */
2024 { (yyval.opval) = scalar((ps[0].val.opval)); }
2029 #line 1397 "perly.y" /* yacc.c:1646 */
2030 { (yyval.opval) = scalar((ps[0].val.opval)); }
2035 #line 1399 "perly.y" /* yacc.c:1646 */
2036 { (yyval.opval) = op_scope((ps[0].val.opval)); }
2041 #line 1402 "perly.y" /* yacc.c:1646 */
2042 { (yyval.opval) = (ps[0].val.opval); }
2052 * 719f2ad40259ac9c064749d399f2c7d1e1131abbc8c1f1ec0558cac2d8f2bc4c perly.y
2053 * 3e1dff60f26df8933d7aed0c0e87177a0f022c14800c0707eb62a7db4196ac98 regen_perly.pl