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!
10 parser->expect = XSTATE;
17 newPROG(block_end((ps[(3) - (4)].val.ival),(ps[(4) - (4)].val.opval)));
25 parser->expect = XTERM;
32 PL_eval_root = (ps[(3) - (3)].val.opval);
40 parser->expect = XBLOCK;
47 PL_pad_reset_pending = TRUE;
48 PL_eval_root = (ps[(3) - (3)].val.opval);
51 parser->yychar = YYEOF;
58 parser->expect = XSTATE;
65 PL_pad_reset_pending = TRUE;
66 PL_eval_root = (ps[(3) - (3)].val.opval);
69 parser->yychar = YYEOF;
76 parser->expect = XSTATE;
83 PL_pad_reset_pending = TRUE;
84 PL_eval_root = (ps[(3) - (3)].val.opval);
87 parser->yychar = YYEOF;
94 parser->expect = XSTATE;
101 PL_eval_root = (ps[(3) - (3)].val.opval);
108 { if (parser->copline > (line_t)(ps[(1) - (4)].val.ival))
109 parser->copline = (line_t)(ps[(1) - (4)].val.ival);
110 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
116 { if (parser->copline > (line_t)(ps[(1) - (7)].val.ival))
117 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
118 (yyval.opval) = block_end((ps[(2) - (7)].val.ival), (ps[(5) - (7)].val.opval));
124 { (yyval.ival) = block_start(TRUE); ;}
129 { if (parser->copline > (line_t)(ps[(1) - (4)].val.ival))
130 parser->copline = (line_t)(ps[(1) - (4)].val.ival);
131 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
137 { (yyval.ival) = block_start(FALSE); ;}
142 { (yyval.opval) = (OP*)NULL; ;}
147 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
148 PL_pad_reset_pending = TRUE;
149 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
150 PL_hints |= HINT_BLOCK_SCOPE;
156 { (yyval.opval) = (OP*)NULL; ;}
161 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
162 PL_pad_reset_pending = TRUE;
163 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
164 PL_hints |= HINT_BLOCK_SCOPE;
171 (yyval.opval) = (ps[(1) - (1)].val.opval) ? newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval)) : NULL;
177 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
183 (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[(1) - (2)].val.pval)[strlen((ps[(1) - (2)].val.pval))+1], (ps[(1) - (2)].val.pval), (ps[(2) - (2)].val.opval));
190 (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[(1) - (2)].val.pval)[strlen((ps[(1) - (2)].val.pval))+1], (ps[(1) - (2)].val.pval), (ps[(2) - (2)].val.opval));
196 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
202 CV *fmtcv = PL_compcv;
203 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
204 (yyval.opval) = (OP*)NULL;
205 if (CvOUTSIDE(fmtcv) && !CvEVAL(CvOUTSIDE(fmtcv))) {
206 SvREFCNT_inc_simple_void(fmtcv);
207 pad_add_anon(fmtcv, OP_NULL);
215 if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) {
216 const char *const name =
217 SvPV_nolen_const(((SVOP*)(ps[(2) - (3)].val.opval))->op_sv);
218 if (strEQ(name, "BEGIN") || strEQ(name, "END")
219 || strEQ(name, "INIT") || strEQ(name, "CHECK")
220 || strEQ(name, "UNITCHECK"))
221 CvSPECIAL_on(PL_compcv);
224 /* State subs inside anonymous subs need to be
225 clonable themselves. */
226 if (CvANON(CvOUTSIDE(PL_compcv))
227 || CvCLONE(CvOUTSIDE(PL_compcv))
228 || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST(
230 ))[(ps[(2) - (3)].val.opval)->op_targ]))
231 CvCLONE_on(PL_compcv);
233 parser->in_my_stash = NULL;
240 SvREFCNT_inc_simple_void(PL_compcv);
241 (ps[(2) - (7)].val.opval)->op_type == OP_CONST
242 ? newATTRSUB((ps[(3) - (7)].val.ival), (ps[(2) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval))
243 : newMYSUB((ps[(3) - (7)].val.ival), (ps[(2) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval))
245 (yyval.opval) = (OP*)NULL;
253 package((ps[(3) - (4)].val.opval));
254 if ((ps[(2) - (4)].val.opval))
255 package_version((ps[(2) - (4)].val.opval));
256 (yyval.opval) = (OP*)NULL;
262 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
268 SvREFCNT_inc_simple_void(PL_compcv);
269 utilize((ps[(1) - (7)].val.ival), (ps[(2) - (7)].val.ival), (ps[(4) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval));
270 (yyval.opval) = (OP*)NULL;
277 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
278 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
279 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
286 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
287 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
288 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
295 const PADOFFSET offset = pad_findmy_pvs("$_", 0);
296 (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
297 newGIVENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)),
299 || PAD_COMPNAME_FLAGS_isOUR(offset)
302 parser->copline = (line_t)(ps[(1) - (6)].val.ival);
308 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;}
313 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;}
319 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
320 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
321 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
322 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
329 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
330 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
331 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
332 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
338 { parser->expect = XTERM; ;}
343 { parser->expect = XTERM; ;}
349 OP *initop = (ps[(4) - (13)].val.opval);
350 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
351 scalar((ps[(7) - (13)].val.opval)), (ps[(13) - (13)].val.opval), (ps[(11) - (13)].val.opval), (ps[(10) - (13)].val.ival));
353 forop = op_prepend_elem(OP_LINESEQ, initop,
354 op_append_elem(OP_LINESEQ,
355 newOP(OP_UNSTACK, OPf_SPECIAL),
358 (yyval.opval) = block_end((ps[(3) - (13)].val.ival), forop);
359 parser->copline = (line_t)(ps[(1) - (13)].val.ival);
366 (yyval.opval) = block_end((ps[(3) - (9)].val.ival), newFOROP(0, (ps[(4) - (9)].val.opval), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
367 parser->copline = (line_t)(ps[(1) - (9)].val.ival);
374 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
375 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
376 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
382 { parser->in_my = 0; (yyval.opval) = my((ps[(5) - (5)].val.opval)); ;}
388 (yyval.opval) = block_end(
389 (ps[(4) - (11)].val.ival),
392 newUNOP(OP_REFGEN, 0,
393 op_lvalue((ps[(6) - (11)].val.opval),
396 (ps[(8) - (11)].val.opval), (ps[(10) - (11)].val.opval), (ps[(11) - (11)].val.opval))
398 parser->copline = (line_t)(ps[(1) - (11)].val.ival);
405 (yyval.opval) = block_end((ps[(5) - (9)].val.ival), newFOROP(
406 0, op_lvalue(newUNOP(OP_REFGEN, 0,
407 op_lvalue((ps[(3) - (9)].val.opval),
409 OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
410 parser->copline = (line_t)(ps[(1) - (9)].val.ival);
417 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
418 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
419 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
426 /* a block is a loop that happens once */
427 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
428 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
435 package((ps[(3) - (5)].val.opval));
436 if ((ps[(2) - (5)].val.opval)) {
437 package_version((ps[(2) - (5)].val.opval));
445 /* a block is a loop that happens once */
446 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
447 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
448 if (parser->copline > (line_t)(ps[(4) - (8)].val.ival))
449 parser->copline = (line_t)(ps[(4) - (8)].val.ival);
456 (yyval.opval) = (ps[(1) - (2)].val.opval);
463 (yyval.opval) = (OP*)NULL;
464 parser->copline = NOLINE;
471 if ((ps[(2) - (2)].val.opval)) {
472 OP *term = (ps[(2) - (2)].val.opval);
473 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term);
476 list = (ps[(1) - (2)].val.opval);
478 if (parser->copline == NOLINE)
479 parser->copline = CopLINE(PL_curcop)-1;
480 else parser->copline--;
481 (yyval.opval) = newSTATEOP(0, NULL,
482 convert(OP_FORMLINE, 0, list));
488 { (yyval.opval) = NULL; ;}
493 { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); ;}
498 { (yyval.opval) = (OP*)NULL; ;}
503 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
508 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
513 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
518 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); ;}
523 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
528 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
529 parser->copline = (line_t)(ps[(2) - (3)].val.ival); ;}
534 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
539 { (yyval.opval) = (OP*)NULL; ;}
545 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
546 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
552 { parser->copline = (line_t)(ps[(1) - (6)].val.ival);
553 (yyval.opval) = newCONDOP(0,
554 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
555 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
556 PL_hints |= HINT_BLOCK_SCOPE;
562 { (yyval.opval) = (OP*)NULL; ;}
567 { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); ;}
572 { (yyval.ival) = (PL_min_intro_pending &&
573 PL_max_intro_pending >= PL_min_intro_pending);
579 { (yyval.opval) = (OP*)NULL; ;}
585 (void)scan_num("1", &tmplval);
586 (yyval.opval) = tmplval.opval; ;}
591 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
596 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
601 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
606 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
611 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
616 { (yyval.opval) = (OP*)NULL; ;}
621 { (yyval.ival) = start_subparse(FALSE, 0);
622 SAVEFREESV(PL_compcv); ;}
627 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
628 SAVEFREESV(PL_compcv); ;}
633 { (yyval.ival) = start_subparse(TRUE, 0);
634 SAVEFREESV(PL_compcv); ;}
639 { (yyval.opval) = (OP*)NULL; ;}
644 { (yyval.opval) = (OP*)NULL; ;}
649 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
654 { (yyval.opval) = (OP*)NULL; ;}
659 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
664 { (yyval.opval) = (OP*)NULL; ;}
669 { (yyval.opval) = (OP*)NULL; ;}
675 if (!FEATURE_SIGNATURES_IS_ENABLED)
676 Perl_croak(aTHX_ "Experimental "
677 "subroutine signatures not enabled");
678 Perl_ck_warner_d(aTHX_
679 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
680 "The signatures feature is experimental");
681 (yyval.opval) = parse_subsignature();
688 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval),
689 newSTATEOP(0, NULL, sawparens(newNULLLIST())));
690 parser->expect = XBLOCK;
697 if (parser->copline > (line_t)(ps[(3) - (5)].val.ival))
698 parser->copline = (line_t)(ps[(3) - (5)].val.ival);
699 (yyval.opval) = block_end((ps[(1) - (5)].val.ival),
700 op_append_list(OP_LINESEQ, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)));
706 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
711 { (yyval.opval) = (OP*)NULL; ;}
716 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
721 { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
726 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
731 { (yyval.opval) = (ps[(1) - (2)].val.opval); ;}
737 OP* term = (ps[(3) - (3)].val.opval);
738 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
744 { (yyval.opval) = convert((ps[(1) - (3)].val.ival), OPf_STACKED,
745 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
751 { (yyval.opval) = convert((ps[(1) - (5)].val.ival), OPf_STACKED,
752 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
758 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
759 op_append_elem(OP_LIST,
760 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
761 newMETHOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
767 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
768 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
769 newMETHOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
775 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
776 op_append_elem(OP_LIST,
777 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
778 newMETHOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
784 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
785 op_append_elem(OP_LIST,
786 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
787 newMETHOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
793 { (yyval.opval) = convert((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
798 { (yyval.opval) = convert((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
803 { SvREFCNT_inc_simple_void(PL_compcv);
804 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
809 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
810 op_append_elem(OP_LIST,
811 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
817 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); ;}
822 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
828 { (yyval.opval) = newBINOP(OP_AELEM, 0,
829 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
830 scalar((ps[(4) - (5)].val.opval)));
836 { (yyval.opval) = newBINOP(OP_AELEM, 0,
837 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
838 scalar((ps[(3) - (4)].val.opval)));
844 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
850 { (yyval.opval) = newBINOP(OP_HELEM, 0,
851 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
852 jmaybe((ps[(4) - (6)].val.opval))); ;}
857 { (yyval.opval) = newBINOP(OP_HELEM, 0,
858 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
859 jmaybe((ps[(3) - (5)].val.opval))); ;}
864 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
865 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); ;}
870 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
871 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
872 newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); ;}
877 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
878 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
879 newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); ;}
884 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
885 newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); ;}
890 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); ;}
895 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); ;}
900 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); ;}
905 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); ;}
910 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
915 { if ((ps[(2) - (3)].val.ival) != OP_REPEAT)
916 scalar((ps[(1) - (3)].val.opval));
917 (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
923 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
928 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
933 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
938 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
943 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
948 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
953 { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
958 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
963 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
968 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
973 { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
978 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); ;}
983 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
988 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
993 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
998 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
999 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); ;}
1004 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1005 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));;}
1010 { (yyval.opval) = convert(OP_JOIN, 0,
1017 (ps[(1) - (2)].val.opval)
1024 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1025 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); ;}
1030 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1031 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); ;}
1036 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); ;}
1041 { (yyval.opval) = newANONLIST((OP*)NULL);;}
1046 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); ;}
1051 { (yyval.opval) = newANONHASH((OP*)NULL); ;}
1056 { SvREFCNT_inc_simple_void(PL_compcv);
1057 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
1062 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));;}
1067 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));;}
1072 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
1077 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN)); ;}
1082 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1087 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;}
1092 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
1097 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1102 { (yyval.opval) = sawparens(newNULLLIST()); ;}
1107 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1112 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1117 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1122 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1127 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1132 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1137 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1138 newOP(OP_PUSHMARK, 0),
1139 newLISTOP(OP_ASLICE, 0,
1140 list((ps[(3) - (4)].val.opval)),
1141 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1142 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1143 (yyval.opval)->op_private |=
1144 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1150 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1151 newOP(OP_PUSHMARK, 0),
1152 newLISTOP(OP_KVASLICE, 0,
1153 list((ps[(3) - (4)].val.opval)),
1154 ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE)));
1155 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1156 (yyval.opval)->op_private |=
1157 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1163 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1164 newOP(OP_PUSHMARK, 0),
1165 newLISTOP(OP_HSLICE, 0,
1166 list((ps[(3) - (5)].val.opval)),
1167 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1168 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1169 (yyval.opval)->op_private |=
1170 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1176 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1177 newOP(OP_PUSHMARK, 0),
1178 newLISTOP(OP_KVHSLICE, 0,
1179 list((ps[(3) - (5)].val.opval)),
1180 ref((ps[(1) - (5)].val.opval), OP_KVHSLICE)));
1181 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1182 (yyval.opval)->op_private |=
1183 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1189 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1194 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1199 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1206 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1207 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1213 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1214 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1220 { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); ;}
1225 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
1230 { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); ;}
1235 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1236 scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); ;}
1241 { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); ;}
1246 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL);
1247 PL_hints |= HINT_BLOCK_SCOPE; ;}
1252 { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
1257 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
1262 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
1267 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
1272 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
1277 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); ;}
1282 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); ;}
1287 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1292 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1293 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1298 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
1303 { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);;}
1308 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1313 { (yyval.opval) = (ps[(1) - (3)].val.opval); ;}
1318 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1323 { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT)
1324 ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1325 : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); ;}
1330 { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
1336 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1337 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1338 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1340 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1341 SAVEFREESV(PL_compcv);
1349 { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival)); ;}
1353 #line 1000 "perly.y"
1355 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1356 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1361 #line 1009 "perly.y"
1362 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); ;}
1366 #line 1011 "perly.y"
1367 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;}
1371 #line 1016 "perly.y"
1372 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
1376 #line 1018 "perly.y"
1377 { (yyval.opval) = sawparens(newNULLLIST()); ;}
1381 #line 1021 "perly.y"
1382 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1386 #line 1023 "perly.y"
1387 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1391 #line 1025 "perly.y"
1392 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1396 #line 1030 "perly.y"
1397 { (yyval.opval) = (OP*)NULL; ;}
1401 #line 1032 "perly.y"
1402 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1406 #line 1036 "perly.y"
1407 { (yyval.opval) = (OP*)NULL; ;}
1411 #line 1038 "perly.y"
1412 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1416 #line 1044 "perly.y"
1417 { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1421 #line 1057 "perly.y"
1422 { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
1426 #line 1061 "perly.y"
1427 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); ;}
1431 #line 1065 "perly.y"
1432 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1433 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1438 #line 1071 "perly.y"
1439 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1440 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1445 #line 1077 "perly.y"
1446 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); ;}
1450 #line 1079 "perly.y"
1451 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
1455 #line 1083 "perly.y"
1456 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); ;}
1460 #line 1088 "perly.y"
1461 { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); ;}
1465 #line 1093 "perly.y"
1466 { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); ;}
1470 #line 1098 "perly.y"
1471 { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); ;}
1475 #line 1103 "perly.y"
1476 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1480 #line 1105 "perly.y"
1481 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1485 #line 1107 "perly.y"
1486 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1490 #line 1110 "perly.y"
1491 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1495 /* Line 1267 of yacc.c. */
1501 * e00865c409632c145afdedc53ed48cbd223351eb895754d2775ff66a5aae8533 perly.y
1502 * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl