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)));
18 PL_compiling.cop_seq = 0;
26 parser->expect = XTERM;
33 PL_eval_root = (ps[(3) - (3)].val.opval);
41 parser->expect = XBLOCK;
48 PL_pad_reset_pending = TRUE;
49 PL_eval_root = (ps[(3) - (3)].val.opval);
52 parser->yychar = YYEOF;
59 parser->expect = XSTATE;
66 PL_pad_reset_pending = TRUE;
67 PL_eval_root = (ps[(3) - (3)].val.opval);
70 parser->yychar = YYEOF;
77 parser->expect = XSTATE;
84 PL_pad_reset_pending = TRUE;
85 PL_eval_root = (ps[(3) - (3)].val.opval);
88 parser->yychar = YYEOF;
95 parser->expect = XSTATE;
102 PL_eval_root = (ps[(3) - (3)].val.opval);
109 { if (parser->copline > (line_t)(ps[(1) - (4)].val.ival))
110 parser->copline = (line_t)(ps[(1) - (4)].val.ival);
111 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
117 { if (parser->copline > (line_t)(ps[(1) - (7)].val.ival))
118 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
119 (yyval.opval) = block_end((ps[(2) - (7)].val.ival), (ps[(5) - (7)].val.opval));
125 { (yyval.ival) = block_start(TRUE);
126 parser->parsed_sub = 0; ;}
131 { if (parser->copline > (line_t)(ps[(1) - (4)].val.ival))
132 parser->copline = (line_t)(ps[(1) - (4)].val.ival);
133 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
139 { (yyval.ival) = block_start(FALSE);
140 parser->parsed_sub = 0; ;}
145 { (yyval.opval) = (OP*)NULL; ;}
150 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
151 PL_pad_reset_pending = TRUE;
152 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
153 PL_hints |= HINT_BLOCK_SCOPE;
159 { (yyval.opval) = (OP*)NULL; ;}
164 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
165 PL_pad_reset_pending = TRUE;
166 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
167 PL_hints |= HINT_BLOCK_SCOPE;
174 (yyval.opval) = (ps[(1) - (1)].val.opval) ? newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval)) : NULL;
180 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
186 (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));
193 (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));
199 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
205 CV *fmtcv = PL_compcv;
206 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
207 (yyval.opval) = (OP*)NULL;
208 if (CvOUTSIDE(fmtcv) && !CvEVAL(CvOUTSIDE(fmtcv))) {
209 SvREFCNT_inc_simple_void(fmtcv);
210 pad_add_anon(fmtcv, OP_NULL);
212 parser->parsed_sub = 1;
219 if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) {
220 const char *const name =
221 SvPV_nolen_const(((SVOP*)(ps[(2) - (3)].val.opval))->op_sv);
222 if (strEQ(name, "BEGIN") || strEQ(name, "END")
223 || strEQ(name, "INIT") || strEQ(name, "CHECK")
224 || strEQ(name, "UNITCHECK"))
225 CvSPECIAL_on(PL_compcv);
228 /* State subs inside anonymous subs need to be
229 clonable themselves. */
230 if (CvANON(CvOUTSIDE(PL_compcv))
231 || CvCLONE(CvOUTSIDE(PL_compcv))
232 || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST(
234 ))[(ps[(2) - (3)].val.opval)->op_targ]))
235 CvCLONE_on(PL_compcv);
237 parser->in_my_stash = NULL;
244 SvREFCNT_inc_simple_void(PL_compcv);
245 (ps[(2) - (7)].val.opval)->op_type == OP_CONST
246 ? 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))
247 : 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))
249 (yyval.opval) = (OP*)NULL;
251 parser->parsed_sub = 1;
258 package((ps[(3) - (4)].val.opval));
259 if ((ps[(2) - (4)].val.opval))
260 package_version((ps[(2) - (4)].val.opval));
261 (yyval.opval) = (OP*)NULL;
267 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
273 SvREFCNT_inc_simple_void(PL_compcv);
274 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));
275 parser->parsed_sub = 1;
276 (yyval.opval) = (OP*)NULL;
283 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
284 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
285 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
292 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
293 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
294 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
301 const PADOFFSET offset = pad_findmy_pvs("$_", 0);
302 (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
303 newGIVENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)),
305 || PAD_COMPNAME_FLAGS_isOUR(offset)
308 parser->copline = (line_t)(ps[(1) - (6)].val.ival);
314 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;}
319 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;}
325 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
326 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
327 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
328 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
335 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
336 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
337 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
338 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
344 { parser->expect = XTERM; ;}
349 { parser->expect = XTERM; ;}
355 OP *initop = (ps[(4) - (13)].val.opval);
356 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
357 scalar((ps[(7) - (13)].val.opval)), (ps[(13) - (13)].val.opval), (ps[(11) - (13)].val.opval), (ps[(10) - (13)].val.ival));
359 forop = op_prepend_elem(OP_LINESEQ, initop,
360 op_append_elem(OP_LINESEQ,
361 newOP(OP_UNSTACK, OPf_SPECIAL),
364 PL_hints |= HINT_BLOCK_SCOPE;
365 (yyval.opval) = block_end((ps[(3) - (13)].val.ival), forop);
366 parser->copline = (line_t)(ps[(1) - (13)].val.ival);
373 (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)));
374 parser->copline = (line_t)(ps[(1) - (9)].val.ival);
381 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
382 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
383 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
389 { parser->in_my = 0; (yyval.opval) = my((ps[(5) - (5)].val.opval)); ;}
395 (yyval.opval) = block_end(
396 (ps[(4) - (11)].val.ival),
399 newUNOP(OP_REFGEN, 0,
400 (ps[(6) - (11)].val.opval)),
402 (ps[(8) - (11)].val.opval), (ps[(10) - (11)].val.opval), (ps[(11) - (11)].val.opval))
404 parser->copline = (line_t)(ps[(1) - (11)].val.ival);
411 (yyval.opval) = block_end((ps[(5) - (9)].val.ival), newFOROP(
412 0, op_lvalue(newUNOP(OP_REFGEN, 0,
413 (ps[(3) - (9)].val.opval)),
414 OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
415 parser->copline = (line_t)(ps[(1) - (9)].val.ival);
422 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
423 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
424 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
431 /* a block is a loop that happens once */
432 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
433 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
440 package((ps[(3) - (5)].val.opval));
441 if ((ps[(2) - (5)].val.opval)) {
442 package_version((ps[(2) - (5)].val.opval));
450 /* a block is a loop that happens once */
451 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
452 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
453 if (parser->copline > (line_t)(ps[(4) - (8)].val.ival))
454 parser->copline = (line_t)(ps[(4) - (8)].val.ival);
461 (yyval.opval) = (ps[(1) - (2)].val.opval);
468 (yyval.opval) = (OP*)NULL;
469 parser->copline = NOLINE;
476 if ((ps[(2) - (2)].val.opval)) {
477 OP *term = (ps[(2) - (2)].val.opval);
478 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term);
481 list = (ps[(1) - (2)].val.opval);
483 if (parser->copline == NOLINE)
484 parser->copline = CopLINE(PL_curcop)-1;
485 else parser->copline--;
486 (yyval.opval) = newSTATEOP(0, NULL,
487 op_convert_list(OP_FORMLINE, 0, list));
493 { (yyval.opval) = NULL; ;}
498 { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); ;}
503 { (yyval.opval) = (OP*)NULL; ;}
508 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
513 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
518 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
523 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); ;}
528 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
533 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
534 parser->copline = (line_t)(ps[(2) - (3)].val.ival); ;}
539 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
544 { (yyval.opval) = (OP*)NULL; ;}
550 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
551 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
557 { parser->copline = (line_t)(ps[(1) - (6)].val.ival);
558 (yyval.opval) = newCONDOP(0,
559 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
560 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
561 PL_hints |= HINT_BLOCK_SCOPE;
567 { (yyval.opval) = (OP*)NULL; ;}
572 { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); ;}
577 { (yyval.ival) = (PL_min_intro_pending &&
578 PL_max_intro_pending >= PL_min_intro_pending);
584 { (yyval.opval) = (OP*)NULL; ;}
590 (void)scan_num("1", &tmplval);
591 (yyval.opval) = tmplval.opval; ;}
596 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
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); intro_my(); ;}
616 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
621 { (yyval.opval) = (OP*)NULL; ;}
626 { (yyval.ival) = start_subparse(FALSE, 0);
627 SAVEFREESV(PL_compcv); ;}
632 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
633 SAVEFREESV(PL_compcv); ;}
638 { (yyval.ival) = start_subparse(TRUE, 0);
639 SAVEFREESV(PL_compcv); ;}
644 { (yyval.opval) = (OP*)NULL; ;}
649 { (yyval.opval) = (OP*)NULL; ;}
654 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
659 { (yyval.opval) = (OP*)NULL; ;}
664 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
669 { (yyval.opval) = (OP*)NULL; ;}
674 { (yyval.opval) = (OP*)NULL; ;}
680 if (!FEATURE_SIGNATURES_IS_ENABLED)
681 Perl_croak(aTHX_ "Experimental "
682 "subroutine signatures not enabled");
683 Perl_ck_warner_d(aTHX_
684 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
685 "The signatures feature is experimental");
686 (yyval.opval) = parse_subsignature();
693 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval),
694 newSTATEOP(0, NULL, sawparens(newNULLLIST())));
695 parser->expect = XBLOCK;
702 if (parser->copline > (line_t)(ps[(3) - (5)].val.ival))
703 parser->copline = (line_t)(ps[(3) - (5)].val.ival);
704 (yyval.opval) = block_end((ps[(1) - (5)].val.ival),
705 op_append_list(OP_LINESEQ, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)));
711 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
716 { (yyval.opval) = (OP*)NULL; ;}
721 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
726 { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
731 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
736 { (yyval.opval) = (ps[(1) - (2)].val.opval); ;}
742 OP* term = (ps[(3) - (3)].val.opval);
743 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
749 { (yyval.opval) = op_convert_list((ps[(1) - (3)].val.ival), OPf_STACKED,
750 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
756 { (yyval.opval) = op_convert_list((ps[(1) - (5)].val.ival), OPf_STACKED,
757 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
763 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
764 op_append_elem(OP_LIST,
765 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
766 newMETHOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
772 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
773 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
774 newMETHOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
780 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
781 op_append_elem(OP_LIST,
782 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
783 newMETHOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
789 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
790 op_append_elem(OP_LIST,
791 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
792 newMETHOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
798 { (yyval.opval) = op_convert_list((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
803 { (yyval.opval) = op_convert_list((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
808 { SvREFCNT_inc_simple_void(PL_compcv);
809 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
814 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
815 op_append_elem(OP_LIST,
816 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
822 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); ;}
827 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
833 { (yyval.opval) = newBINOP(OP_AELEM, 0,
834 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
835 scalar((ps[(4) - (5)].val.opval)));
841 { (yyval.opval) = newBINOP(OP_AELEM, 0,
842 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
843 scalar((ps[(3) - (4)].val.opval)));
849 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
855 { (yyval.opval) = newBINOP(OP_HELEM, 0,
856 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
857 jmaybe((ps[(4) - (6)].val.opval))); ;}
862 { (yyval.opval) = newBINOP(OP_HELEM, 0,
863 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
864 jmaybe((ps[(3) - (5)].val.opval))); ;}
869 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
870 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); ;}
875 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
876 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
877 newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); ;}
882 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
883 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
884 newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); ;}
889 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
890 newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); ;}
895 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); ;}
900 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); ;}
905 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); ;}
910 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); ;}
915 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
920 { if ((ps[(2) - (3)].val.ival) != OP_REPEAT)
921 scalar((ps[(1) - (3)].val.opval));
922 (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (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) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
958 { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
963 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
968 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
973 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
978 { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
983 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); ;}
988 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
993 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
998 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
1003 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1004 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); ;}
1009 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1010 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));;}
1015 { (yyval.opval) = op_convert_list(OP_JOIN, 0,
1022 (ps[(1) - (2)].val.opval)
1029 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1030 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); ;}
1035 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1036 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); ;}
1041 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); ;}
1046 { (yyval.opval) = newANONLIST((OP*)NULL);;}
1051 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); ;}
1056 { (yyval.opval) = newANONHASH((OP*)NULL); ;}
1061 { SvREFCNT_inc_simple_void(PL_compcv);
1062 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
1067 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));;}
1072 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));;}
1077 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
1082 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN)); ;}
1087 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1092 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;}
1097 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
1102 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1107 { (yyval.opval) = sawparens(newNULLLIST()); ;}
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) = (ps[(1) - (1)].val.opval); ;}
1132 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1137 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1142 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1143 newOP(OP_PUSHMARK, 0),
1144 newLISTOP(OP_ASLICE, 0,
1145 list((ps[(3) - (4)].val.opval)),
1146 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1147 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1148 (yyval.opval)->op_private |=
1149 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1155 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1156 newOP(OP_PUSHMARK, 0),
1157 newLISTOP(OP_KVASLICE, 0,
1158 list((ps[(3) - (4)].val.opval)),
1159 ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE)));
1160 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1161 (yyval.opval)->op_private |=
1162 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1168 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1169 newOP(OP_PUSHMARK, 0),
1170 newLISTOP(OP_HSLICE, 0,
1171 list((ps[(3) - (5)].val.opval)),
1172 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1173 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1174 (yyval.opval)->op_private |=
1175 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1181 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1182 newOP(OP_PUSHMARK, 0),
1183 newLISTOP(OP_KVHSLICE, 0,
1184 list((ps[(3) - (5)].val.opval)),
1185 ref((ps[(1) - (5)].val.opval), OP_KVHSLICE)));
1186 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1187 (yyval.opval)->op_private |=
1188 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1194 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1199 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1204 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1211 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1212 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1218 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1219 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1225 { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); ;}
1230 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
1235 { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); ;}
1240 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1241 scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); ;}
1246 { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); ;}
1251 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL);
1252 PL_hints |= HINT_BLOCK_SCOPE; ;}
1257 { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
1262 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
1267 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
1272 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
1277 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
1282 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); ;}
1287 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); ;}
1292 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1297 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1298 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1303 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
1308 { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);;}
1313 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1318 { (yyval.opval) = (ps[(1) - (3)].val.opval); ;}
1323 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1328 { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT)
1329 ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1330 : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); ;}
1335 { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
1341 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1342 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1343 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1345 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1346 SAVEFREESV(PL_compcv);
1353 #line 1001 "perly.y"
1354 { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival)); ;}
1358 #line 1005 "perly.y"
1360 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1361 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1366 #line 1014 "perly.y"
1367 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); ;}
1371 #line 1016 "perly.y"
1372 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;}
1376 #line 1021 "perly.y"
1377 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
1381 #line 1023 "perly.y"
1382 { (yyval.opval) = sawparens(newNULLLIST()); ;}
1386 #line 1026 "perly.y"
1387 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1391 #line 1028 "perly.y"
1392 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1396 #line 1030 "perly.y"
1397 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1401 #line 1035 "perly.y"
1402 { (yyval.opval) = (OP*)NULL; ;}
1406 #line 1037 "perly.y"
1407 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1411 #line 1041 "perly.y"
1412 { (yyval.opval) = (OP*)NULL; ;}
1416 #line 1043 "perly.y"
1417 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1421 #line 1049 "perly.y"
1422 { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1426 #line 1062 "perly.y"
1427 { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
1431 #line 1066 "perly.y"
1432 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); ;}
1436 #line 1070 "perly.y"
1437 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1438 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1443 #line 1076 "perly.y"
1444 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1445 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1450 #line 1082 "perly.y"
1451 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); ;}
1455 #line 1084 "perly.y"
1456 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
1460 #line 1088 "perly.y"
1461 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); ;}
1465 #line 1093 "perly.y"
1466 { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); ;}
1470 #line 1098 "perly.y"
1471 { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); ;}
1475 #line 1103 "perly.y"
1476 { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); ;}
1480 #line 1108 "perly.y"
1481 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1485 #line 1110 "perly.y"
1486 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1490 #line 1112 "perly.y"
1491 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1495 #line 1115 "perly.y"
1496 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1500 /* Line 1267 of yacc.c. */
1506 * 483e652a7d8fe19f0ca9b30539b01d530f0fa872a8b4cfab025c589aa581d7d2 perly.y
1507 * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl