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 pad_add_weakref(fmtcv);
211 parser->parsed_sub = 1;
218 if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) {
219 const char *const name =
220 SvPV_nolen_const(((SVOP*)(ps[(2) - (3)].val.opval))->op_sv);
221 if (strEQ(name, "BEGIN") || strEQ(name, "END")
222 || strEQ(name, "INIT") || strEQ(name, "CHECK")
223 || strEQ(name, "UNITCHECK"))
224 CvSPECIAL_on(PL_compcv);
227 /* State subs inside anonymous subs need to be
228 clonable themselves. */
229 if (CvANON(CvOUTSIDE(PL_compcv))
230 || CvCLONE(CvOUTSIDE(PL_compcv))
231 || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST(
233 ))[(ps[(2) - (3)].val.opval)->op_targ]))
234 CvCLONE_on(PL_compcv);
236 parser->in_my_stash = NULL;
243 SvREFCNT_inc_simple_void(PL_compcv);
244 (ps[(2) - (7)].val.opval)->op_type == OP_CONST
245 ? 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))
246 : 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))
248 (yyval.opval) = (OP*)NULL;
250 parser->parsed_sub = 1;
257 package((ps[(3) - (4)].val.opval));
258 if ((ps[(2) - (4)].val.opval))
259 package_version((ps[(2) - (4)].val.opval));
260 (yyval.opval) = (OP*)NULL;
266 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
272 SvREFCNT_inc_simple_void(PL_compcv);
273 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));
274 parser->parsed_sub = 1;
275 (yyval.opval) = (OP*)NULL;
282 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
283 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
284 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
291 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
292 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
293 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
300 const PADOFFSET offset = pad_findmy_pvs("$_", 0);
301 (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
302 newGIVENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)),
304 || PAD_COMPNAME_FLAGS_isOUR(offset)
307 parser->copline = (line_t)(ps[(1) - (6)].val.ival);
313 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;}
318 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;}
324 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
325 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
326 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
327 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
334 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
335 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
336 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
337 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
343 { parser->expect = XTERM; ;}
348 { parser->expect = XTERM; ;}
354 OP *initop = (ps[(4) - (13)].val.opval);
355 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
356 scalar((ps[(7) - (13)].val.opval)), (ps[(13) - (13)].val.opval), (ps[(11) - (13)].val.opval), (ps[(10) - (13)].val.ival));
358 forop = op_prepend_elem(OP_LINESEQ, initop,
359 op_append_elem(OP_LINESEQ,
360 newOP(OP_UNSTACK, OPf_SPECIAL),
363 PL_hints |= HINT_BLOCK_SCOPE;
364 (yyval.opval) = block_end((ps[(3) - (13)].val.ival), forop);
365 parser->copline = (line_t)(ps[(1) - (13)].val.ival);
372 (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)));
373 parser->copline = (line_t)(ps[(1) - (9)].val.ival);
380 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
381 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
382 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
388 { parser->in_my = 0; (yyval.opval) = my((ps[(5) - (5)].val.opval)); ;}
394 (yyval.opval) = block_end(
395 (ps[(4) - (11)].val.ival),
398 newUNOP(OP_REFGEN, 0,
399 (ps[(6) - (11)].val.opval)),
401 (ps[(8) - (11)].val.opval), (ps[(10) - (11)].val.opval), (ps[(11) - (11)].val.opval))
403 parser->copline = (line_t)(ps[(1) - (11)].val.ival);
410 (yyval.opval) = block_end((ps[(5) - (9)].val.ival), newFOROP(
411 0, op_lvalue(newUNOP(OP_REFGEN, 0,
412 (ps[(3) - (9)].val.opval)),
413 OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
414 parser->copline = (line_t)(ps[(1) - (9)].val.ival);
421 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
422 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
423 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
430 /* a block is a loop that happens once */
431 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
432 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
439 package((ps[(3) - (5)].val.opval));
440 if ((ps[(2) - (5)].val.opval)) {
441 package_version((ps[(2) - (5)].val.opval));
449 /* a block is a loop that happens once */
450 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
451 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
452 if (parser->copline > (line_t)(ps[(4) - (8)].val.ival))
453 parser->copline = (line_t)(ps[(4) - (8)].val.ival);
460 (yyval.opval) = (ps[(1) - (2)].val.opval);
467 (yyval.opval) = (OP*)NULL;
468 parser->copline = NOLINE;
475 if ((ps[(2) - (2)].val.opval)) {
476 OP *term = (ps[(2) - (2)].val.opval);
477 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term);
480 list = (ps[(1) - (2)].val.opval);
482 if (parser->copline == NOLINE)
483 parser->copline = CopLINE(PL_curcop)-1;
484 else parser->copline--;
485 (yyval.opval) = newSTATEOP(0, NULL,
486 op_convert_list(OP_FORMLINE, 0, list));
492 { (yyval.opval) = NULL; ;}
497 { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); ;}
502 { (yyval.opval) = (OP*)NULL; ;}
507 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
512 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
517 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
522 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); ;}
527 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
532 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
533 parser->copline = (line_t)(ps[(2) - (3)].val.ival); ;}
538 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
543 { (yyval.opval) = (OP*)NULL; ;}
549 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
550 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
556 { parser->copline = (line_t)(ps[(1) - (6)].val.ival);
557 (yyval.opval) = newCONDOP(0,
558 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
559 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
560 PL_hints |= HINT_BLOCK_SCOPE;
566 { (yyval.opval) = (OP*)NULL; ;}
571 { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); ;}
576 { (yyval.ival) = (PL_min_intro_pending &&
577 PL_max_intro_pending >= PL_min_intro_pending);
583 { (yyval.opval) = (OP*)NULL; ;}
589 (void)scan_num("1", &tmplval);
590 (yyval.opval) = tmplval.opval; ;}
595 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
600 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
605 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
610 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
615 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
620 { (yyval.opval) = (OP*)NULL; ;}
625 { (yyval.ival) = start_subparse(FALSE, 0);
626 SAVEFREESV(PL_compcv); ;}
631 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
632 SAVEFREESV(PL_compcv); ;}
637 { (yyval.ival) = start_subparse(TRUE, 0);
638 SAVEFREESV(PL_compcv); ;}
643 { (yyval.opval) = (OP*)NULL; ;}
648 { (yyval.opval) = (OP*)NULL; ;}
653 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
658 { (yyval.opval) = (OP*)NULL; ;}
663 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
668 { (yyval.opval) = (OP*)NULL; ;}
673 { (yyval.opval) = (OP*)NULL; ;}
679 if (!FEATURE_SIGNATURES_IS_ENABLED)
680 Perl_croak(aTHX_ "Experimental "
681 "subroutine signatures not enabled");
682 Perl_ck_warner_d(aTHX_
683 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
684 "The signatures feature is experimental");
685 (yyval.opval) = parse_subsignature();
692 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval),
693 newSTATEOP(0, NULL, sawparens(newNULLLIST())));
694 parser->expect = XBLOCK;
701 if (parser->copline > (line_t)(ps[(3) - (5)].val.ival))
702 parser->copline = (line_t)(ps[(3) - (5)].val.ival);
703 (yyval.opval) = block_end((ps[(1) - (5)].val.ival),
704 op_append_list(OP_LINESEQ, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)));
710 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
715 { (yyval.opval) = (OP*)NULL; ;}
720 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
725 { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
730 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
735 { (yyval.opval) = (ps[(1) - (2)].val.opval); ;}
741 OP* term = (ps[(3) - (3)].val.opval);
742 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
748 { (yyval.opval) = op_convert_list((ps[(1) - (3)].val.ival), OPf_STACKED,
749 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
755 { (yyval.opval) = op_convert_list((ps[(1) - (5)].val.ival), OPf_STACKED,
756 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
762 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
763 op_append_elem(OP_LIST,
764 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
765 newMETHOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
771 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
772 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
773 newMETHOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
779 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
780 op_append_elem(OP_LIST,
781 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
782 newMETHOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
788 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
789 op_append_elem(OP_LIST,
790 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
791 newMETHOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
797 { (yyval.opval) = op_convert_list((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
802 { (yyval.opval) = op_convert_list((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
807 { SvREFCNT_inc_simple_void(PL_compcv);
808 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
813 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
814 op_append_elem(OP_LIST,
815 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
821 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); ;}
826 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
832 { (yyval.opval) = newBINOP(OP_AELEM, 0,
833 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
834 scalar((ps[(4) - (5)].val.opval)));
840 { (yyval.opval) = newBINOP(OP_AELEM, 0,
841 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
842 scalar((ps[(3) - (4)].val.opval)));
848 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
854 { (yyval.opval) = newBINOP(OP_HELEM, 0,
855 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
856 jmaybe((ps[(4) - (6)].val.opval))); ;}
861 { (yyval.opval) = newBINOP(OP_HELEM, 0,
862 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
863 jmaybe((ps[(3) - (5)].val.opval))); ;}
868 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
869 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); ;}
874 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
875 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
876 newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); ;}
881 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
882 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
883 newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); ;}
888 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
889 newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); ;}
894 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); ;}
899 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); ;}
904 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); ;}
909 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); ;}
914 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
919 { if ((ps[(2) - (3)].val.ival) != OP_REPEAT)
920 scalar((ps[(1) - (3)].val.opval));
921 (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
927 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
932 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
937 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
942 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
947 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
952 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
957 { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
962 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
967 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
972 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
977 { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
982 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); ;}
987 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
992 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
997 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
1002 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1003 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); ;}
1008 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1009 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));;}
1014 { (yyval.opval) = op_convert_list(OP_JOIN, 0,
1021 (ps[(1) - (2)].val.opval)
1028 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1029 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); ;}
1034 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1035 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); ;}
1040 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); ;}
1045 { (yyval.opval) = newANONLIST((OP*)NULL);;}
1050 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); ;}
1055 { (yyval.opval) = newANONHASH((OP*)NULL); ;}
1060 { SvREFCNT_inc_simple_void(PL_compcv);
1061 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
1066 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));;}
1071 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));;}
1076 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
1081 { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[(2) - (2)].val.opval)); ;}
1086 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1091 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;}
1096 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
1101 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1106 { (yyval.opval) = sawparens(newNULLLIST()); ;}
1111 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1116 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1121 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1126 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1131 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1136 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1141 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1142 newOP(OP_PUSHMARK, 0),
1143 newLISTOP(OP_ASLICE, 0,
1144 list((ps[(3) - (4)].val.opval)),
1145 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1146 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1147 (yyval.opval)->op_private |=
1148 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1154 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1155 newOP(OP_PUSHMARK, 0),
1156 newLISTOP(OP_KVASLICE, 0,
1157 list((ps[(3) - (4)].val.opval)),
1158 ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE)));
1159 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1160 (yyval.opval)->op_private |=
1161 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1167 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1168 newOP(OP_PUSHMARK, 0),
1169 newLISTOP(OP_HSLICE, 0,
1170 list((ps[(3) - (5)].val.opval)),
1171 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1172 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1173 (yyval.opval)->op_private |=
1174 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1180 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1181 newOP(OP_PUSHMARK, 0),
1182 newLISTOP(OP_KVHSLICE, 0,
1183 list((ps[(3) - (5)].val.opval)),
1184 ref((ps[(1) - (5)].val.opval), OP_KVHSLICE)));
1185 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1186 (yyval.opval)->op_private |=
1187 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1193 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1198 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1203 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1210 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1211 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1217 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1218 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1224 { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); ;}
1229 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
1234 { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); ;}
1239 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1240 scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); ;}
1245 { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); ;}
1250 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL);
1251 PL_hints |= HINT_BLOCK_SCOPE; ;}
1256 { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
1261 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
1266 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
1271 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
1276 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
1281 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); ;}
1286 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); ;}
1291 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1296 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1297 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1302 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
1307 { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);;}
1312 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1317 { (yyval.opval) = (ps[(1) - (3)].val.opval); ;}
1322 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1327 { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT)
1328 ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1329 : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); ;}
1334 { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
1340 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1341 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1342 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1344 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1345 SAVEFREESV(PL_compcv);
1352 #line 1000 "perly.y"
1353 { (yyval.opval) = pmruntime((ps[(1) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), 1, (ps[(2) - (6)].val.ival)); ;}
1357 #line 1004 "perly.y"
1359 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1360 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1365 #line 1013 "perly.y"
1366 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); ;}
1370 #line 1015 "perly.y"
1371 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;}
1375 #line 1020 "perly.y"
1376 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
1380 #line 1022 "perly.y"
1381 { (yyval.opval) = sawparens(newNULLLIST()); ;}
1385 #line 1025 "perly.y"
1386 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1390 #line 1027 "perly.y"
1391 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1395 #line 1029 "perly.y"
1396 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1400 #line 1034 "perly.y"
1401 { (yyval.opval) = (OP*)NULL; ;}
1405 #line 1036 "perly.y"
1406 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1410 #line 1040 "perly.y"
1411 { (yyval.opval) = (OP*)NULL; ;}
1415 #line 1042 "perly.y"
1416 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1420 #line 1046 "perly.y"
1421 { (yyval.opval) = (OP*)NULL; ;}
1425 #line 1048 "perly.y"
1426 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
1430 #line 1054 "perly.y"
1431 { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1435 #line 1067 "perly.y"
1436 { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
1440 #line 1071 "perly.y"
1441 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); ;}
1445 #line 1075 "perly.y"
1446 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1447 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1452 #line 1081 "perly.y"
1453 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1454 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1459 #line 1087 "perly.y"
1460 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); ;}
1464 #line 1089 "perly.y"
1465 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
1469 #line 1093 "perly.y"
1470 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); ;}
1474 #line 1098 "perly.y"
1475 { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); ;}
1479 #line 1103 "perly.y"
1480 { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); ;}
1484 #line 1108 "perly.y"
1485 { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); ;}
1489 #line 1113 "perly.y"
1490 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1494 #line 1115 "perly.y"
1495 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1499 #line 1117 "perly.y"
1500 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1504 #line 1120 "perly.y"
1505 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1509 /* Line 1267 of yacc.c. */
1515 * 81b73d4c51279b9e4fa0d1b9ab2f7c591e93f1b1ef1e34c64bbc4836629ce193 perly.y
1516 * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl