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 (ps[(6) - (11)].val.opval)),
395 (ps[(8) - (11)].val.opval), (ps[(10) - (11)].val.opval), (ps[(11) - (11)].val.opval))
397 parser->copline = (line_t)(ps[(1) - (11)].val.ival);
404 (yyval.opval) = block_end((ps[(5) - (9)].val.ival), newFOROP(
405 0, op_lvalue(newUNOP(OP_REFGEN, 0,
406 (ps[(3) - (9)].val.opval)),
407 OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
408 parser->copline = (line_t)(ps[(1) - (9)].val.ival);
415 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
416 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
417 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
424 /* a block is a loop that happens once */
425 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
426 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
433 package((ps[(3) - (5)].val.opval));
434 if ((ps[(2) - (5)].val.opval)) {
435 package_version((ps[(2) - (5)].val.opval));
443 /* a block is a loop that happens once */
444 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
445 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
446 if (parser->copline > (line_t)(ps[(4) - (8)].val.ival))
447 parser->copline = (line_t)(ps[(4) - (8)].val.ival);
454 (yyval.opval) = (ps[(1) - (2)].val.opval);
461 (yyval.opval) = (OP*)NULL;
462 parser->copline = NOLINE;
469 if ((ps[(2) - (2)].val.opval)) {
470 OP *term = (ps[(2) - (2)].val.opval);
471 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term);
474 list = (ps[(1) - (2)].val.opval);
476 if (parser->copline == NOLINE)
477 parser->copline = CopLINE(PL_curcop)-1;
478 else parser->copline--;
479 (yyval.opval) = newSTATEOP(0, NULL,
480 convert(OP_FORMLINE, 0, list));
486 { (yyval.opval) = NULL; ;}
491 { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); ;}
496 { (yyval.opval) = (OP*)NULL; ;}
501 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
506 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
511 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
516 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); ;}
521 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
526 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
527 parser->copline = (line_t)(ps[(2) - (3)].val.ival); ;}
532 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
537 { (yyval.opval) = (OP*)NULL; ;}
543 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
544 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
550 { parser->copline = (line_t)(ps[(1) - (6)].val.ival);
551 (yyval.opval) = newCONDOP(0,
552 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
553 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
554 PL_hints |= HINT_BLOCK_SCOPE;
560 { (yyval.opval) = (OP*)NULL; ;}
565 { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); ;}
570 { (yyval.ival) = (PL_min_intro_pending &&
571 PL_max_intro_pending >= PL_min_intro_pending);
577 { (yyval.opval) = (OP*)NULL; ;}
583 (void)scan_num("1", &tmplval);
584 (yyval.opval) = tmplval.opval; ;}
589 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
594 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
599 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
604 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
609 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
614 { (yyval.opval) = (OP*)NULL; ;}
619 { (yyval.ival) = start_subparse(FALSE, 0);
620 SAVEFREESV(PL_compcv); ;}
625 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
626 SAVEFREESV(PL_compcv); ;}
631 { (yyval.ival) = start_subparse(TRUE, 0);
632 SAVEFREESV(PL_compcv); ;}
637 { (yyval.opval) = (OP*)NULL; ;}
642 { (yyval.opval) = (OP*)NULL; ;}
647 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
652 { (yyval.opval) = (OP*)NULL; ;}
657 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
662 { (yyval.opval) = (OP*)NULL; ;}
667 { (yyval.opval) = (OP*)NULL; ;}
673 if (!FEATURE_SIGNATURES_IS_ENABLED)
674 Perl_croak(aTHX_ "Experimental "
675 "subroutine signatures not enabled");
676 Perl_ck_warner_d(aTHX_
677 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
678 "The signatures feature is experimental");
679 (yyval.opval) = parse_subsignature();
686 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval),
687 newSTATEOP(0, NULL, sawparens(newNULLLIST())));
688 parser->expect = XBLOCK;
695 if (parser->copline > (line_t)(ps[(3) - (5)].val.ival))
696 parser->copline = (line_t)(ps[(3) - (5)].val.ival);
697 (yyval.opval) = block_end((ps[(1) - (5)].val.ival),
698 op_append_list(OP_LINESEQ, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)));
704 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
709 { (yyval.opval) = (OP*)NULL; ;}
714 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
719 { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
724 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
729 { (yyval.opval) = (ps[(1) - (2)].val.opval); ;}
735 OP* term = (ps[(3) - (3)].val.opval);
736 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
742 { (yyval.opval) = convert((ps[(1) - (3)].val.ival), OPf_STACKED,
743 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
749 { (yyval.opval) = convert((ps[(1) - (5)].val.ival), OPf_STACKED,
750 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
756 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
757 op_append_elem(OP_LIST,
758 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
759 newMETHOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
765 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
766 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
767 newMETHOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
773 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
774 op_append_elem(OP_LIST,
775 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
776 newMETHOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
782 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
783 op_append_elem(OP_LIST,
784 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
785 newMETHOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
791 { (yyval.opval) = convert((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
796 { (yyval.opval) = convert((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
801 { SvREFCNT_inc_simple_void(PL_compcv);
802 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
807 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
808 op_append_elem(OP_LIST,
809 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
815 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); ;}
820 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
826 { (yyval.opval) = newBINOP(OP_AELEM, 0,
827 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
828 scalar((ps[(4) - (5)].val.opval)));
834 { (yyval.opval) = newBINOP(OP_AELEM, 0,
835 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
836 scalar((ps[(3) - (4)].val.opval)));
842 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
848 { (yyval.opval) = newBINOP(OP_HELEM, 0,
849 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
850 jmaybe((ps[(4) - (6)].val.opval))); ;}
855 { (yyval.opval) = newBINOP(OP_HELEM, 0,
856 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
857 jmaybe((ps[(3) - (5)].val.opval))); ;}
862 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
863 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); ;}
868 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
869 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
870 newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); ;}
875 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
876 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
877 newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); ;}
882 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
883 newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); ;}
888 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); ;}
893 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); ;}
898 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); ;}
903 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); ;}
908 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
913 { if ((ps[(2) - (3)].val.ival) != OP_REPEAT)
914 scalar((ps[(1) - (3)].val.opval));
915 (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
921 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
926 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
931 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
936 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
941 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
946 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
951 { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
956 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
961 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
966 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
971 { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
976 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); ;}
981 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
986 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
991 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
996 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
997 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); ;}
1002 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1003 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));;}
1008 { (yyval.opval) = convert(OP_JOIN, 0,
1015 (ps[(1) - (2)].val.opval)
1022 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1023 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); ;}
1028 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1029 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); ;}
1034 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); ;}
1039 { (yyval.opval) = newANONLIST((OP*)NULL);;}
1044 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); ;}
1049 { (yyval.opval) = newANONHASH((OP*)NULL); ;}
1054 { SvREFCNT_inc_simple_void(PL_compcv);
1055 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
1060 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));;}
1065 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));;}
1070 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
1075 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN)); ;}
1080 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1085 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;}
1090 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
1095 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1100 { (yyval.opval) = sawparens(newNULLLIST()); ;}
1105 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1110 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1115 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1120 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1125 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1130 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1135 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1136 newOP(OP_PUSHMARK, 0),
1137 newLISTOP(OP_ASLICE, 0,
1138 list((ps[(3) - (4)].val.opval)),
1139 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1140 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1141 (yyval.opval)->op_private |=
1142 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1148 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1149 newOP(OP_PUSHMARK, 0),
1150 newLISTOP(OP_KVASLICE, 0,
1151 list((ps[(3) - (4)].val.opval)),
1152 ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE)));
1153 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1154 (yyval.opval)->op_private |=
1155 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1161 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1162 newOP(OP_PUSHMARK, 0),
1163 newLISTOP(OP_HSLICE, 0,
1164 list((ps[(3) - (5)].val.opval)),
1165 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1166 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1167 (yyval.opval)->op_private |=
1168 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1174 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1175 newOP(OP_PUSHMARK, 0),
1176 newLISTOP(OP_KVHSLICE, 0,
1177 list((ps[(3) - (5)].val.opval)),
1178 ref((ps[(1) - (5)].val.opval), OP_KVHSLICE)));
1179 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1180 (yyval.opval)->op_private |=
1181 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1187 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1192 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1197 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1204 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1205 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1211 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1212 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1218 { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); ;}
1223 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
1228 { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); ;}
1233 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1234 scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); ;}
1239 { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); ;}
1244 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL);
1245 PL_hints |= HINT_BLOCK_SCOPE; ;}
1250 { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
1255 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
1260 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
1265 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
1270 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
1275 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); ;}
1280 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); ;}
1285 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1290 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1291 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1296 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
1301 { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);;}
1306 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1311 { (yyval.opval) = (ps[(1) - (3)].val.opval); ;}
1316 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1321 { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT)
1322 ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1323 : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); ;}
1328 { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
1334 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1335 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1336 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1338 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1339 SAVEFREESV(PL_compcv);
1347 { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival)); ;}
1353 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1354 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1359 #line 1007 "perly.y"
1360 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); ;}
1364 #line 1009 "perly.y"
1365 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;}
1369 #line 1014 "perly.y"
1370 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
1374 #line 1016 "perly.y"
1375 { (yyval.opval) = sawparens(newNULLLIST()); ;}
1379 #line 1019 "perly.y"
1380 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1384 #line 1021 "perly.y"
1385 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1389 #line 1023 "perly.y"
1390 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1394 #line 1028 "perly.y"
1395 { (yyval.opval) = (OP*)NULL; ;}
1399 #line 1030 "perly.y"
1400 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1404 #line 1034 "perly.y"
1405 { (yyval.opval) = (OP*)NULL; ;}
1409 #line 1036 "perly.y"
1410 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1414 #line 1042 "perly.y"
1415 { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1419 #line 1055 "perly.y"
1420 { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
1424 #line 1059 "perly.y"
1425 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); ;}
1429 #line 1063 "perly.y"
1430 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1431 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1436 #line 1069 "perly.y"
1437 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1438 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1443 #line 1075 "perly.y"
1444 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); ;}
1448 #line 1077 "perly.y"
1449 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
1453 #line 1081 "perly.y"
1454 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); ;}
1458 #line 1086 "perly.y"
1459 { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); ;}
1463 #line 1091 "perly.y"
1464 { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); ;}
1468 #line 1096 "perly.y"
1469 { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); ;}
1473 #line 1101 "perly.y"
1474 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1478 #line 1103 "perly.y"
1479 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1483 #line 1105 "perly.y"
1484 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1488 #line 1108 "perly.y"
1489 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1493 /* Line 1267 of yacc.c. */
1499 * 6943e6446c58ec52809f6821c15ff693b4d7c34f62c8a1b616279c2a66e3d62f perly.y
1500 * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl