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) = 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) = 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) = 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) = 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) = 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) = 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) = 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, 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, 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, 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, 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, NULL,
521 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, NULL,
542 NULL, block_end((ps[-3].val.ival), (ps[-1].val.opval)), 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) = 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) = 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, NULL, (ps[0].val.opval), (ps[-2].val.opval), 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) = 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) = 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) = 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) = 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) = NULL; }
764 #line 620 "perly.y" /* yacc.c:1646 */
765 { (yyval.opval) = 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) = 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) = NULL; }
794 #line 642 "perly.y" /* yacc.c:1646 */
795 { parser->in_my = 0; (yyval.opval) = NULL; }
800 #line 644 "perly.y" /* yacc.c:1646 */
801 { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); }
806 #line 649 "perly.y" /* yacc.c:1646 */
807 { (yyval.ival) = '@'; }
812 #line 651 "perly.y" /* yacc.c:1646 */
813 { (yyval.ival) = '%'; }
818 #line 655 "perly.y" /* yacc.c:1646 */
820 I32 sigil = (ps[-2].val.ival);
821 OP *var = (ps[-1].val.opval);
822 OP *defexpr = (ps[0].val.opval);
824 if (parser->sig_slurpy)
825 yyerror("Multiple slurpy parameters not allowed");
826 parser->sig_slurpy = (char)sigil;
829 yyerror("A slurpy parameter may not have "
832 (yyval.opval) = var ? newSTATEOP(0, NULL, var) : NULL;
838 #line 674 "perly.y" /* yacc.c:1646 */
839 { (yyval.opval) = NULL; }
844 #line 676 "perly.y" /* yacc.c:1646 */
845 { (yyval.opval) = newOP(OP_NULL, 0); }
850 #line 678 "perly.y" /* yacc.c:1646 */
851 { (yyval.opval) = (ps[0].val.opval); }
856 #line 684 "perly.y" /* yacc.c:1646 */
858 OP *var = (ps[-1].val.opval);
859 OP *defexpr = (ps[0].val.opval);
861 if (parser->sig_slurpy)
862 yyerror("Slurpy parameter not last");
867 parser->sig_optelems++;
869 if ( defexpr->op_type == OP_NULL
870 && !(defexpr->op_flags & OPf_KIDS))
872 /* handle '$=' special case */
874 yyerror("Optional parameter "
875 "lacks default expression");
879 /* a normal '=default' expression */
880 OP *defop = (OP*)alloc_LOGOP(OP_ARGDEFELEM,
883 /* re-purpose op_targ to hold @_ index */
885 (PADOFFSET)(parser->sig_elems - 1);
888 var->op_flags |= OPf_STACKED;
889 (void)op_sibling_splice(var,
894 var = newUNOP(OP_NULL, 0, defop);
897 /* NB: normally the first child of a
898 * logop is executed before the logop,
899 * and it pushes a boolean result
900 * ready for the logop. For ARGDEFELEM,
901 * the op itself does the boolean
902 * calculation, so set the first op to
905 var->op_next = defop;
906 defexpr->op_next = var;
910 if (parser->sig_optelems)
911 yyerror("Mandatory parameter "
912 "follows optional parameter");
915 (yyval.opval) = var ? newSTATEOP(0, NULL, var) : NULL;
921 #line 749 "perly.y" /* yacc.c:1646 */
922 { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); }
927 #line 751 "perly.y" /* yacc.c:1646 */
928 { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); }
933 #line 757 "perly.y" /* yacc.c:1646 */
934 { (yyval.opval) = (ps[-1].val.opval); }
939 #line 759 "perly.y" /* yacc.c:1646 */
941 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-2].val.opval), (ps[0].val.opval));
947 #line 763 "perly.y" /* yacc.c:1646 */
948 { (yyval.opval) = (ps[0].val.opval); }
953 #line 768 "perly.y" /* yacc.c:1646 */
954 { (yyval.opval) = NULL; }
959 #line 770 "perly.y" /* yacc.c:1646 */
960 { (yyval.opval) = (ps[0].val.opval); }
965 #line 774 "perly.y" /* yacc.c:1646 */
968 SAVEIV(parser->sig_elems);
969 SAVEIV(parser->sig_optelems);
970 SAVEI8(parser->sig_slurpy);
971 parser->sig_elems = 0;
972 parser->sig_optelems = 0;
973 parser->sig_slurpy = 0;
974 parser->in_my = KEY_sigvar;
980 #line 786 "perly.y" /* yacc.c:1646 */
982 OP *sigops = (ps[-1].val.opval);
986 if (!parser->error_count) {
987 assert(FEATURE_SIGNATURES_IS_ENABLED);
990 /* We shouldn't get here otherwise */
991 Perl_ck_warner_d(aTHX_
992 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
993 "The signatures feature is experimental");
995 aux = (UNOP_AUX_item*)PerlMemShared_malloc(
996 sizeof(UNOP_AUX_item) * 3);
997 aux[0].iv = parser->sig_elems;
998 aux[1].iv = parser->sig_optelems;
999 aux[2].iv = parser->sig_slurpy;
1000 check = newUNOP_AUX(OP_ARGCHECK, 0, NULL, aux);
1001 sigops = op_prepend_elem(OP_LINESEQ, check, sigops);
1002 sigops = op_prepend_elem(OP_LINESEQ,
1003 newSTATEOP(0, NULL, NULL),
1005 /* a nextstate at the end handles context
1006 * correctly for an empty sub body */
1007 (yyval.opval) = op_append_elem(OP_LINESEQ,
1009 newSTATEOP(0, NULL, NULL));
1012 parser->expect = XATTRBLOCK;
1019 #line 826 "perly.y" /* yacc.c:1646 */
1020 { (yyval.opval) = NULL; }
1025 #line 831 "perly.y" /* yacc.c:1646 */
1026 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1031 #line 833 "perly.y" /* yacc.c:1646 */
1032 { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1037 #line 835 "perly.y" /* yacc.c:1646 */
1038 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1043 #line 841 "perly.y" /* yacc.c:1646 */
1044 { (yyval.opval) = (ps[-1].val.opval); }
1049 #line 843 "perly.y" /* yacc.c:1646 */
1051 OP* term = (ps[0].val.opval);
1052 (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term);
1058 #line 852 "perly.y" /* yacc.c:1646 */
1059 { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED,
1060 op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) );
1066 #line 856 "perly.y" /* yacc.c:1646 */
1067 { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED,
1068 op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) );
1074 #line 860 "perly.y" /* yacc.c:1646 */
1075 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1076 op_append_elem(OP_LIST,
1077 op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)),
1078 newMETHOP(OP_METHOD, 0, (ps[-3].val.opval))));
1084 #line 866 "perly.y" /* yacc.c:1646 */
1085 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1086 op_append_elem(OP_LIST, scalar((ps[-2].val.opval)),
1087 newMETHOP(OP_METHOD, 0, (ps[0].val.opval))));
1093 #line 871 "perly.y" /* yacc.c:1646 */
1094 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1095 op_append_elem(OP_LIST,
1096 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)),
1097 newMETHOP(OP_METHOD, 0, (ps[-2].val.opval))));
1103 #line 877 "perly.y" /* yacc.c:1646 */
1104 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1105 op_append_elem(OP_LIST,
1106 op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)),
1107 newMETHOP(OP_METHOD, 0, (ps[-4].val.opval))));
1113 #line 883 "perly.y" /* yacc.c:1646 */
1114 { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1119 #line 885 "perly.y" /* yacc.c:1646 */
1120 { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
1125 #line 887 "perly.y" /* yacc.c:1646 */
1126 { SvREFCNT_inc_simple_void(PL_compcv);
1127 (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, NULL, (ps[0].val.opval)); }
1132 #line 890 "perly.y" /* yacc.c:1646 */
1133 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1134 op_append_elem(OP_LIST,
1135 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval)));
1141 #line 905 "perly.y" /* yacc.c:1646 */
1142 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); }
1147 #line 907 "perly.y" /* yacc.c:1646 */
1148 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval)));
1154 #line 910 "perly.y" /* yacc.c:1646 */
1155 { (yyval.opval) = newBINOP(OP_AELEM, 0,
1156 ref(newAVREF((ps[-4].val.opval)),OP_RV2AV),
1157 scalar((ps[-1].val.opval)));
1163 #line 915 "perly.y" /* yacc.c:1646 */
1164 { (yyval.opval) = newBINOP(OP_AELEM, 0,
1165 ref(newAVREF((ps[-3].val.opval)),OP_RV2AV),
1166 scalar((ps[-1].val.opval)));
1172 #line 920 "perly.y" /* yacc.c:1646 */
1173 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval)));
1179 #line 923 "perly.y" /* yacc.c:1646 */
1180 { (yyval.opval) = newBINOP(OP_HELEM, 0,
1181 ref(newHVREF((ps[-5].val.opval)),OP_RV2HV),
1182 jmaybe((ps[-2].val.opval))); }
1187 #line 927 "perly.y" /* yacc.c:1646 */
1188 { (yyval.opval) = newBINOP(OP_HELEM, 0,
1189 ref(newHVREF((ps[-4].val.opval)),OP_RV2HV),
1190 jmaybe((ps[-2].val.opval))); }
1195 #line 931 "perly.y" /* yacc.c:1646 */
1196 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1197 newCVREF(0, scalar((ps[-3].val.opval)))); }
1202 #line 934 "perly.y" /* yacc.c:1646 */
1203 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1204 op_append_elem(OP_LIST, (ps[-1].val.opval),
1205 newCVREF(0, scalar((ps[-4].val.opval))))); }
1210 #line 939 "perly.y" /* yacc.c:1646 */
1211 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1212 op_append_elem(OP_LIST, (ps[-1].val.opval),
1213 newCVREF(0, scalar((ps[-3].val.opval))))); }
1218 #line 943 "perly.y" /* yacc.c:1646 */
1219 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1220 newCVREF(0, scalar((ps[-2].val.opval)))); }
1225 #line 946 "perly.y" /* yacc.c:1646 */
1226 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); }
1231 #line 948 "perly.y" /* yacc.c:1646 */
1232 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); }
1237 #line 950 "perly.y" /* yacc.c:1646 */
1238 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); }
1243 #line 955 "perly.y" /* yacc.c:1646 */
1244 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); }
1249 #line 957 "perly.y" /* yacc.c:1646 */
1250 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1255 #line 959 "perly.y" /* yacc.c:1646 */
1256 { if ((ps[-1].val.ival) != OP_REPEAT)
1257 scalar((ps[-2].val.opval));
1258 (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval)));
1264 #line 964 "perly.y" /* yacc.c:1646 */
1265 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1270 #line 966 "perly.y" /* yacc.c:1646 */
1271 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1276 #line 968 "perly.y" /* yacc.c:1646 */
1277 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1282 #line 970 "perly.y" /* yacc.c:1646 */
1283 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1288 #line 972 "perly.y" /* yacc.c:1646 */
1289 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1294 #line 974 "perly.y" /* yacc.c:1646 */
1295 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1300 #line 976 "perly.y" /* yacc.c:1646 */
1301 { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1306 #line 978 "perly.y" /* yacc.c:1646 */
1307 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1312 #line 980 "perly.y" /* yacc.c:1646 */
1313 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1318 #line 982 "perly.y" /* yacc.c:1646 */
1319 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1324 #line 984 "perly.y" /* yacc.c:1646 */
1325 { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
1330 #line 989 "perly.y" /* yacc.c:1646 */
1331 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); }
1336 #line 991 "perly.y" /* yacc.c:1646 */
1337 { (yyval.opval) = (ps[0].val.opval); }
1342 #line 994 "perly.y" /* yacc.c:1646 */
1343 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
1348 #line 996 "perly.y" /* yacc.c:1646 */
1349 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); }
1354 #line 998 "perly.y" /* yacc.c:1646 */
1355 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1356 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); }
1361 #line 1001 "perly.y" /* yacc.c:1646 */
1362 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1363 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));}
1368 #line 1004 "perly.y" /* yacc.c:1646 */
1369 { (yyval.opval) = op_convert_list(OP_JOIN, 0,
1383 #line 1015 "perly.y" /* yacc.c:1646 */
1384 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1385 op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); }
1390 #line 1018 "perly.y" /* yacc.c:1646 */
1391 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1392 op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); }
1397 #line 1025 "perly.y" /* yacc.c:1646 */
1398 { (yyval.opval) = newANONLIST((ps[-1].val.opval)); }
1403 #line 1027 "perly.y" /* yacc.c:1646 */
1404 { (yyval.opval) = newANONLIST(NULL);}
1409 #line 1029 "perly.y" /* yacc.c:1646 */
1410 { (yyval.opval) = newANONHASH((ps[-2].val.opval)); }
1415 #line 1031 "perly.y" /* yacc.c:1646 */
1416 { (yyval.opval) = newANONHASH(NULL); }
1421 #line 1033 "perly.y" /* yacc.c:1646 */
1422 { SvREFCNT_inc_simple_void(PL_compcv);
1423 (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); }
1428 #line 1036 "perly.y" /* yacc.c:1646 */
1431 if (parser->copline > (line_t)(ps[-2].val.ival))
1432 parser->copline = (line_t)(ps[-2].val.ival);
1433 body = block_end((ps[-5].val.ival),
1434 op_append_list(OP_LINESEQ, (ps[-4].val.opval), (ps[-1].val.opval)));
1435 SvREFCNT_inc_simple_void(PL_compcv);
1436 (yyval.opval) = newANONATTRSUB((ps[-6].val.ival), NULL, (ps[-3].val.opval), body);
1442 #line 1050 "perly.y" /* yacc.c:1646 */
1443 { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));}
1448 #line 1052 "perly.y" /* yacc.c:1646 */
1449 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));}
1454 #line 1060 "perly.y" /* yacc.c:1646 */
1455 { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); }
1460 #line 1062 "perly.y" /* yacc.c:1646 */
1461 { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); }
1466 #line 1064 "perly.y" /* yacc.c:1646 */
1467 { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); }
1472 #line 1066 "perly.y" /* yacc.c:1646 */
1473 { (yyval.opval) = (ps[0].val.opval); }
1478 #line 1068 "perly.y" /* yacc.c:1646 */
1479 { (yyval.opval) = localize((ps[0].val.opval),0); }
1484 #line 1070 "perly.y" /* yacc.c:1646 */
1485 { (yyval.opval) = sawparens((ps[-1].val.opval)); }
1490 #line 1072 "perly.y" /* yacc.c:1646 */
1491 { (yyval.opval) = (ps[0].val.opval); }
1496 #line 1074 "perly.y" /* yacc.c:1646 */
1497 { (yyval.opval) = sawparens(newNULLLIST()); }
1502 #line 1076 "perly.y" /* yacc.c:1646 */
1503 { (yyval.opval) = (ps[0].val.opval); }
1508 #line 1078 "perly.y" /* yacc.c:1646 */
1509 { (yyval.opval) = (ps[0].val.opval); }
1514 #line 1080 "perly.y" /* yacc.c:1646 */
1515 { (yyval.opval) = (ps[0].val.opval); }
1520 #line 1082 "perly.y" /* yacc.c:1646 */
1521 { (yyval.opval) = (ps[0].val.opval); }
1526 #line 1084 "perly.y" /* yacc.c:1646 */
1527 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));}
1532 #line 1086 "perly.y" /* yacc.c:1646 */
1533 { (yyval.opval) = (ps[0].val.opval); }
1538 #line 1088 "perly.y" /* yacc.c:1646 */
1539 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1540 newOP(OP_PUSHMARK, 0),
1541 newLISTOP(OP_ASLICE, 0,
1542 list((ps[-1].val.opval)),
1543 ref((ps[-3].val.opval), OP_ASLICE)));
1544 if ((yyval.opval) && (ps[-3].val.opval))
1545 (yyval.opval)->op_private |=
1546 (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
1552 #line 1098 "perly.y" /* yacc.c:1646 */
1553 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1554 newOP(OP_PUSHMARK, 0),
1555 newLISTOP(OP_KVASLICE, 0,
1556 list((ps[-1].val.opval)),
1557 ref(oopsAV((ps[-3].val.opval)), OP_KVASLICE)));
1558 if ((yyval.opval) && (ps[-3].val.opval))
1559 (yyval.opval)->op_private |=
1560 (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
1566 #line 1108 "perly.y" /* yacc.c:1646 */
1567 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1568 newOP(OP_PUSHMARK, 0),
1569 newLISTOP(OP_HSLICE, 0,
1570 list((ps[-2].val.opval)),
1571 ref(oopsHV((ps[-4].val.opval)), OP_HSLICE)));
1572 if ((yyval.opval) && (ps[-4].val.opval))
1573 (yyval.opval)->op_private |=
1574 (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
1580 #line 1118 "perly.y" /* yacc.c:1646 */
1581 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1582 newOP(OP_PUSHMARK, 0),
1583 newLISTOP(OP_KVHSLICE, 0,
1584 list((ps[-2].val.opval)),
1585 ref((ps[-4].val.opval), OP_KVHSLICE)));
1586 if ((yyval.opval) && (ps[-4].val.opval))
1587 (yyval.opval)->op_private |=
1588 (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
1594 #line 1128 "perly.y" /* yacc.c:1646 */
1595 { (yyval.opval) = (ps[0].val.opval); }
1600 #line 1130 "perly.y" /* yacc.c:1646 */
1601 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); }
1606 #line 1132 "perly.y" /* yacc.c:1646 */
1607 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval)));
1613 #line 1135 "perly.y" /* yacc.c:1646 */
1615 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1616 op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval))));
1622 #line 1140 "perly.y" /* yacc.c:1646 */
1623 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1624 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval))));
1630 #line 1144 "perly.y" /* yacc.c:1646 */
1631 { (yyval.opval) = newSVREF((ps[-3].val.opval)); }
1636 #line 1146 "perly.y" /* yacc.c:1646 */
1637 { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
1642 #line 1148 "perly.y" /* yacc.c:1646 */
1643 { (yyval.opval) = newHVREF((ps[-3].val.opval)); }
1648 #line 1150 "perly.y" /* yacc.c:1646 */
1649 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1650 scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); }
1655 #line 1153 "perly.y" /* yacc.c:1646 */
1656 { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); }
1661 #line 1155 "perly.y" /* yacc.c:1646 */
1662 { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL);
1663 PL_hints |= HINT_BLOCK_SCOPE; }
1668 #line 1158 "perly.y" /* yacc.c:1646 */
1669 { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); }
1674 #line 1160 "perly.y" /* yacc.c:1646 */
1675 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
1680 #line 1162 "perly.y" /* yacc.c:1646 */
1681 { (yyval.opval) = newOP((ps[0].val.ival), 0); }
1686 #line 1164 "perly.y" /* yacc.c:1646 */
1687 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1692 #line 1166 "perly.y" /* yacc.c:1646 */
1693 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1698 #line 1168 "perly.y" /* yacc.c:1646 */
1699 { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); }
1704 #line 1170 "perly.y" /* yacc.c:1646 */
1705 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); }
1710 #line 1172 "perly.y" /* yacc.c:1646 */
1711 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
1716 #line 1174 "perly.y" /* yacc.c:1646 */
1717 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1718 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); }
1723 #line 1177 "perly.y" /* yacc.c:1646 */
1724 { (yyval.opval) = newOP((ps[0].val.ival), 0); }
1729 #line 1179 "perly.y" /* yacc.c:1646 */
1730 { (yyval.opval) = newOP((ps[-2].val.ival), 0);}
1735 #line 1181 "perly.y" /* yacc.c:1646 */
1736 { (yyval.opval) = (ps[0].val.opval); }
1741 #line 1183 "perly.y" /* yacc.c:1646 */
1742 { (yyval.opval) = (ps[-2].val.opval); }
1747 #line 1185 "perly.y" /* yacc.c:1646 */
1748 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
1753 #line 1187 "perly.y" /* yacc.c:1646 */
1754 { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT)
1755 ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1756 : newOP((ps[-2].val.ival), OPf_SPECIAL); }
1761 #line 1191 "perly.y" /* yacc.c:1646 */
1762 { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
1767 #line 1193 "perly.y" /* yacc.c:1646 */
1769 if ( (ps[0].val.opval)->op_type != OP_TRANS
1770 && (ps[0].val.opval)->op_type != OP_TRANSR
1771 && (((PMOP*)(ps[0].val.opval))->op_pmflags & PMf_HAS_CV))
1773 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1774 SAVEFREESV(PL_compcv);
1782 #line 1204 "perly.y" /* yacc.c:1646 */
1783 { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); }
1788 #line 1208 "perly.y" /* yacc.c:1646 */
1790 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1791 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1797 #line 1217 "perly.y" /* yacc.c:1646 */
1798 { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); }
1803 #line 1219 "perly.y" /* yacc.c:1646 */
1804 { (yyval.opval) = localize((ps[0].val.opval),1); }
1809 #line 1221 "perly.y" /* yacc.c:1646 */
1810 { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); }
1815 #line 1226 "perly.y" /* yacc.c:1646 */
1816 { (yyval.opval) = sawparens((ps[-1].val.opval)); }
1821 #line 1228 "perly.y" /* yacc.c:1646 */
1822 { (yyval.opval) = sawparens(newNULLLIST()); }
1827 #line 1231 "perly.y" /* yacc.c:1646 */
1828 { (yyval.opval) = (ps[0].val.opval); }
1833 #line 1233 "perly.y" /* yacc.c:1646 */
1834 { (yyval.opval) = (ps[0].val.opval); }
1839 #line 1235 "perly.y" /* yacc.c:1646 */
1840 { (yyval.opval) = (ps[0].val.opval); }
1845 #line 1240 "perly.y" /* yacc.c:1646 */
1846 { (yyval.opval) = NULL; }
1851 #line 1242 "perly.y" /* yacc.c:1646 */
1852 { (yyval.opval) = (ps[0].val.opval); }
1857 #line 1246 "perly.y" /* yacc.c:1646 */
1858 { (yyval.opval) = NULL; }
1863 #line 1248 "perly.y" /* yacc.c:1646 */
1864 { (yyval.opval) = (ps[0].val.opval); }
1869 #line 1252 "perly.y" /* yacc.c:1646 */
1870 { (yyval.opval) = NULL; }
1875 #line 1254 "perly.y" /* yacc.c:1646 */
1876 { (yyval.opval) = (ps[0].val.opval); }
1881 #line 1260 "perly.y" /* yacc.c:1646 */
1882 { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
1887 #line 1277 "perly.y" /* yacc.c:1646 */
1888 { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); }
1893 #line 1281 "perly.y" /* yacc.c:1646 */
1894 { (yyval.opval) = newSVREF((ps[0].val.opval)); }
1899 #line 1285 "perly.y" /* yacc.c:1646 */
1900 { (yyval.opval) = newAVREF((ps[0].val.opval));
1901 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
1907 #line 1291 "perly.y" /* yacc.c:1646 */
1908 { (yyval.opval) = newHVREF((ps[0].val.opval));
1909 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
1915 #line 1297 "perly.y" /* yacc.c:1646 */
1916 { (yyval.opval) = newAVREF((ps[0].val.opval)); }
1921 #line 1299 "perly.y" /* yacc.c:1646 */
1922 { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
1927 #line 1303 "perly.y" /* yacc.c:1646 */
1928 { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); }
1933 #line 1308 "perly.y" /* yacc.c:1646 */
1934 { (yyval.opval) = newAVREF((ps[-2].val.opval)); }
1939 #line 1313 "perly.y" /* yacc.c:1646 */
1940 { (yyval.opval) = newHVREF((ps[-2].val.opval)); }
1945 #line 1318 "perly.y" /* yacc.c:1646 */
1946 { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); }
1951 #line 1323 "perly.y" /* yacc.c:1646 */
1952 { (yyval.opval) = scalar((ps[0].val.opval)); }
1957 #line 1325 "perly.y" /* yacc.c:1646 */
1958 { (yyval.opval) = scalar((ps[0].val.opval)); }
1963 #line 1327 "perly.y" /* yacc.c:1646 */
1964 { (yyval.opval) = op_scope((ps[0].val.opval)); }
1969 #line 1330 "perly.y" /* yacc.c:1646 */
1970 { (yyval.opval) = (ps[0].val.opval); }
1980 * 5646c76b3536061de3b69eb5df829f5643d09247aa0d249bf2d2e050594b3679 perly.y
1981 * 3e1dff60f26df8933d7aed0c0e87177a0f022c14800c0707eb62a7db4196ac98 regen_perly.pl