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); ;}
130 { if (parser->copline > (line_t)(ps[(1) - (4)].val.ival))
131 parser->copline = (line_t)(ps[(1) - (4)].val.ival);
132 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
138 { (yyval.ival) = block_start(FALSE); ;}
143 { (yyval.opval) = (OP*)NULL; ;}
148 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
149 PL_pad_reset_pending = TRUE;
150 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
151 PL_hints |= HINT_BLOCK_SCOPE;
157 { (yyval.opval) = (OP*)NULL; ;}
162 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
163 PL_pad_reset_pending = TRUE;
164 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
165 PL_hints |= HINT_BLOCK_SCOPE;
172 (yyval.opval) = (ps[(1) - (1)].val.opval) ? newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval)) : NULL;
178 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
184 (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));
191 (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));
197 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
203 CV *fmtcv = PL_compcv;
204 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
205 (yyval.opval) = (OP*)NULL;
206 if (CvOUTSIDE(fmtcv) && !CvEVAL(CvOUTSIDE(fmtcv))) {
207 SvREFCNT_inc_simple_void(fmtcv);
208 pad_add_anon(fmtcv, OP_NULL);
216 if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) {
217 const char *const name =
218 SvPV_nolen_const(((SVOP*)(ps[(2) - (3)].val.opval))->op_sv);
219 if (strEQ(name, "BEGIN") || strEQ(name, "END")
220 || strEQ(name, "INIT") || strEQ(name, "CHECK")
221 || strEQ(name, "UNITCHECK"))
222 CvSPECIAL_on(PL_compcv);
225 /* State subs inside anonymous subs need to be
226 clonable themselves. */
227 if (CvANON(CvOUTSIDE(PL_compcv))
228 || CvCLONE(CvOUTSIDE(PL_compcv))
229 || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST(
231 ))[(ps[(2) - (3)].val.opval)->op_targ]))
232 CvCLONE_on(PL_compcv);
234 parser->in_my_stash = NULL;
241 SvREFCNT_inc_simple_void(PL_compcv);
242 (ps[(2) - (7)].val.opval)->op_type == OP_CONST
243 ? 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))
244 : 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))
246 (yyval.opval) = (OP*)NULL;
254 package((ps[(3) - (4)].val.opval));
255 if ((ps[(2) - (4)].val.opval))
256 package_version((ps[(2) - (4)].val.opval));
257 (yyval.opval) = (OP*)NULL;
263 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
269 SvREFCNT_inc_simple_void(PL_compcv);
270 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));
271 (yyval.opval) = (OP*)NULL;
278 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
279 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
280 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
287 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
288 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
289 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
296 const PADOFFSET offset = pad_findmy_pvs("$_", 0);
297 (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
298 newGIVENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)),
300 || PAD_COMPNAME_FLAGS_isOUR(offset)
303 parser->copline = (line_t)(ps[(1) - (6)].val.ival);
309 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;}
314 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;}
320 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
321 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
322 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
323 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
330 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
331 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
332 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
333 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
339 { parser->expect = XTERM; ;}
344 { parser->expect = XTERM; ;}
350 OP *initop = (ps[(4) - (13)].val.opval);
351 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
352 scalar((ps[(7) - (13)].val.opval)), (ps[(13) - (13)].val.opval), (ps[(11) - (13)].val.opval), (ps[(10) - (13)].val.ival));
354 forop = op_prepend_elem(OP_LINESEQ, initop,
355 op_append_elem(OP_LINESEQ,
356 newOP(OP_UNSTACK, OPf_SPECIAL),
359 (yyval.opval) = block_end((ps[(3) - (13)].val.ival), forop);
360 parser->copline = (line_t)(ps[(1) - (13)].val.ival);
367 (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)));
368 parser->copline = (line_t)(ps[(1) - (9)].val.ival);
375 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
376 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
377 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
383 { parser->in_my = 0; (yyval.opval) = my((ps[(5) - (5)].val.opval)); ;}
389 (yyval.opval) = block_end(
390 (ps[(4) - (11)].val.ival),
393 newUNOP(OP_REFGEN, 0,
394 (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 (ps[(3) - (9)].val.opval)),
408 OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
409 parser->copline = (line_t)(ps[(1) - (9)].val.ival);
416 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
417 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
418 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
425 /* a block is a loop that happens once */
426 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
427 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
434 package((ps[(3) - (5)].val.opval));
435 if ((ps[(2) - (5)].val.opval)) {
436 package_version((ps[(2) - (5)].val.opval));
444 /* a block is a loop that happens once */
445 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
446 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
447 if (parser->copline > (line_t)(ps[(4) - (8)].val.ival))
448 parser->copline = (line_t)(ps[(4) - (8)].val.ival);
455 (yyval.opval) = (ps[(1) - (2)].val.opval);
462 (yyval.opval) = (OP*)NULL;
463 parser->copline = NOLINE;
470 if ((ps[(2) - (2)].val.opval)) {
471 OP *term = (ps[(2) - (2)].val.opval);
472 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term);
475 list = (ps[(1) - (2)].val.opval);
477 if (parser->copline == NOLINE)
478 parser->copline = CopLINE(PL_curcop)-1;
479 else parser->copline--;
480 (yyval.opval) = newSTATEOP(0, NULL,
481 op_convert_list(OP_FORMLINE, 0, list));
487 { (yyval.opval) = NULL; ;}
492 { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); ;}
497 { (yyval.opval) = (OP*)NULL; ;}
502 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
507 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
512 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
517 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); ;}
522 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
527 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
528 parser->copline = (line_t)(ps[(2) - (3)].val.ival); ;}
533 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
538 { (yyval.opval) = (OP*)NULL; ;}
544 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
545 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
551 { parser->copline = (line_t)(ps[(1) - (6)].val.ival);
552 (yyval.opval) = newCONDOP(0,
553 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
554 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
555 PL_hints |= HINT_BLOCK_SCOPE;
561 { (yyval.opval) = (OP*)NULL; ;}
566 { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); ;}
571 { (yyval.ival) = (PL_min_intro_pending &&
572 PL_max_intro_pending >= PL_min_intro_pending);
578 { (yyval.opval) = (OP*)NULL; ;}
584 (void)scan_num("1", &tmplval);
585 (yyval.opval) = tmplval.opval; ;}
590 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
595 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
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); ;}
615 { (yyval.opval) = (OP*)NULL; ;}
620 { (yyval.ival) = start_subparse(FALSE, 0);
621 SAVEFREESV(PL_compcv); ;}
626 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
627 SAVEFREESV(PL_compcv); ;}
632 { (yyval.ival) = start_subparse(TRUE, 0);
633 SAVEFREESV(PL_compcv); ;}
638 { (yyval.opval) = (OP*)NULL; ;}
643 { (yyval.opval) = (OP*)NULL; ;}
648 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
653 { (yyval.opval) = (OP*)NULL; ;}
658 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
663 { (yyval.opval) = (OP*)NULL; ;}
668 { (yyval.opval) = (OP*)NULL; ;}
674 if (!FEATURE_SIGNATURES_IS_ENABLED)
675 Perl_croak(aTHX_ "Experimental "
676 "subroutine signatures not enabled");
677 Perl_ck_warner_d(aTHX_
678 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
679 "The signatures feature is experimental");
680 (yyval.opval) = parse_subsignature();
687 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval),
688 newSTATEOP(0, NULL, sawparens(newNULLLIST())));
689 parser->expect = XBLOCK;
696 if (parser->copline > (line_t)(ps[(3) - (5)].val.ival))
697 parser->copline = (line_t)(ps[(3) - (5)].val.ival);
698 (yyval.opval) = block_end((ps[(1) - (5)].val.ival),
699 op_append_list(OP_LINESEQ, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)));
705 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
710 { (yyval.opval) = (OP*)NULL; ;}
715 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
720 { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
725 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
730 { (yyval.opval) = (ps[(1) - (2)].val.opval); ;}
736 OP* term = (ps[(3) - (3)].val.opval);
737 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
743 { (yyval.opval) = op_convert_list((ps[(1) - (3)].val.ival), OPf_STACKED,
744 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
750 { (yyval.opval) = op_convert_list((ps[(1) - (5)].val.ival), OPf_STACKED,
751 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
757 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
758 op_append_elem(OP_LIST,
759 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
760 newMETHOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
766 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
767 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
768 newMETHOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
774 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
775 op_append_elem(OP_LIST,
776 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
777 newMETHOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
783 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
784 op_append_elem(OP_LIST,
785 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
786 newMETHOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
792 { (yyval.opval) = op_convert_list((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
797 { (yyval.opval) = op_convert_list((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
802 { SvREFCNT_inc_simple_void(PL_compcv);
803 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
808 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
809 op_append_elem(OP_LIST,
810 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
816 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); ;}
821 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
827 { (yyval.opval) = newBINOP(OP_AELEM, 0,
828 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
829 scalar((ps[(4) - (5)].val.opval)));
835 { (yyval.opval) = newBINOP(OP_AELEM, 0,
836 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
837 scalar((ps[(3) - (4)].val.opval)));
843 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
849 { (yyval.opval) = newBINOP(OP_HELEM, 0,
850 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
851 jmaybe((ps[(4) - (6)].val.opval))); ;}
856 { (yyval.opval) = newBINOP(OP_HELEM, 0,
857 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
858 jmaybe((ps[(3) - (5)].val.opval))); ;}
863 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
864 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); ;}
869 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
870 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
871 newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); ;}
876 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
877 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
878 newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); ;}
883 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
884 newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); ;}
889 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); ;}
894 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); ;}
899 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); ;}
904 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); ;}
909 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
914 { if ((ps[(2) - (3)].val.ival) != OP_REPEAT)
915 scalar((ps[(1) - (3)].val.opval));
916 (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
922 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((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) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
957 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
962 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
967 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
972 { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
977 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); ;}
982 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
987 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
992 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
997 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
998 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); ;}
1003 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1004 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));;}
1009 { (yyval.opval) = op_convert_list(OP_JOIN, 0,
1016 (ps[(1) - (2)].val.opval)
1023 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1024 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); ;}
1029 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1030 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); ;}
1035 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); ;}
1040 { (yyval.opval) = newANONLIST((OP*)NULL);;}
1045 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); ;}
1050 { (yyval.opval) = newANONHASH((OP*)NULL); ;}
1055 { SvREFCNT_inc_simple_void(PL_compcv);
1056 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
1061 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));;}
1066 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));;}
1071 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
1076 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN)); ;}
1081 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1086 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;}
1091 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
1096 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1101 { (yyval.opval) = sawparens(newNULLLIST()); ;}
1106 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
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) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1131 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1136 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1137 newOP(OP_PUSHMARK, 0),
1138 newLISTOP(OP_ASLICE, 0,
1139 list((ps[(3) - (4)].val.opval)),
1140 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1141 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1142 (yyval.opval)->op_private |=
1143 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1149 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1150 newOP(OP_PUSHMARK, 0),
1151 newLISTOP(OP_KVASLICE, 0,
1152 list((ps[(3) - (4)].val.opval)),
1153 ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE)));
1154 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1155 (yyval.opval)->op_private |=
1156 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1162 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1163 newOP(OP_PUSHMARK, 0),
1164 newLISTOP(OP_HSLICE, 0,
1165 list((ps[(3) - (5)].val.opval)),
1166 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1167 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1168 (yyval.opval)->op_private |=
1169 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1175 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1176 newOP(OP_PUSHMARK, 0),
1177 newLISTOP(OP_KVHSLICE, 0,
1178 list((ps[(3) - (5)].val.opval)),
1179 ref((ps[(1) - (5)].val.opval), OP_KVHSLICE)));
1180 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1181 (yyval.opval)->op_private |=
1182 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1188 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1193 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1198 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1205 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1206 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1212 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1213 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1219 { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); ;}
1224 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
1229 { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); ;}
1234 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1235 scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); ;}
1240 { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); ;}
1245 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL);
1246 PL_hints |= HINT_BLOCK_SCOPE; ;}
1251 { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
1256 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
1261 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
1266 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
1271 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
1276 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); ;}
1281 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); ;}
1286 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1291 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1292 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1297 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
1302 { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);;}
1307 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1312 { (yyval.opval) = (ps[(1) - (3)].val.opval); ;}
1317 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1322 { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT)
1323 ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1324 : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); ;}
1329 { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
1335 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1336 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1337 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1339 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1340 SAVEFREESV(PL_compcv);
1348 { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival)); ;}
1354 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1355 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1360 #line 1008 "perly.y"
1361 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); ;}
1365 #line 1010 "perly.y"
1366 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;}
1370 #line 1015 "perly.y"
1371 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
1375 #line 1017 "perly.y"
1376 { (yyval.opval) = sawparens(newNULLLIST()); ;}
1380 #line 1020 "perly.y"
1381 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1385 #line 1022 "perly.y"
1386 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1390 #line 1024 "perly.y"
1391 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1395 #line 1029 "perly.y"
1396 { (yyval.opval) = (OP*)NULL; ;}
1400 #line 1031 "perly.y"
1401 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1405 #line 1035 "perly.y"
1406 { (yyval.opval) = (OP*)NULL; ;}
1410 #line 1037 "perly.y"
1411 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1415 #line 1043 "perly.y"
1416 { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1420 #line 1056 "perly.y"
1421 { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
1425 #line 1060 "perly.y"
1426 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); ;}
1430 #line 1064 "perly.y"
1431 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1432 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1437 #line 1070 "perly.y"
1438 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1439 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1444 #line 1076 "perly.y"
1445 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); ;}
1449 #line 1078 "perly.y"
1450 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
1454 #line 1082 "perly.y"
1455 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); ;}
1459 #line 1087 "perly.y"
1460 { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); ;}
1464 #line 1092 "perly.y"
1465 { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); ;}
1469 #line 1097 "perly.y"
1470 { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); ;}
1474 #line 1102 "perly.y"
1475 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1479 #line 1104 "perly.y"
1480 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1484 #line 1106 "perly.y"
1485 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1489 #line 1109 "perly.y"
1490 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1494 /* Line 1267 of yacc.c. */
1500 * aa8cc2f0979e92f76ac0fbc21000e975a6a443beed009e907eddb57f3d8dbe6a perly.y
1501 * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl