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);
383 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
384 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
385 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
392 /* a block is a loop that happens once */
393 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
394 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
401 package((ps[(3) - (5)].val.opval));
402 if ((ps[(2) - (5)].val.opval)) {
403 package_version((ps[(2) - (5)].val.opval));
411 /* a block is a loop that happens once */
412 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
413 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
414 if (parser->copline > (line_t)(ps[(4) - (8)].val.ival))
415 parser->copline = (line_t)(ps[(4) - (8)].val.ival);
422 (yyval.opval) = (ps[(1) - (2)].val.opval);
429 (yyval.opval) = (OP*)NULL;
430 parser->copline = NOLINE;
437 if ((ps[(2) - (2)].val.opval)) {
438 OP *term = (ps[(2) - (2)].val.opval);
439 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term);
442 list = (ps[(1) - (2)].val.opval);
444 if (parser->copline == NOLINE)
445 parser->copline = CopLINE(PL_curcop)-1;
446 else parser->copline--;
447 (yyval.opval) = newSTATEOP(0, NULL,
448 convert(OP_FORMLINE, 0, list));
454 { (yyval.opval) = NULL; ;}
459 { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); ;}
464 { (yyval.opval) = (OP*)NULL; ;}
469 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
474 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
479 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
484 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); ;}
489 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
494 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
495 parser->copline = (line_t)(ps[(2) - (3)].val.ival); ;}
500 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
505 { (yyval.opval) = (OP*)NULL; ;}
511 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
512 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
518 { parser->copline = (line_t)(ps[(1) - (6)].val.ival);
519 (yyval.opval) = newCONDOP(0,
520 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
521 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
522 PL_hints |= HINT_BLOCK_SCOPE;
528 { (yyval.opval) = (OP*)NULL; ;}
533 { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); ;}
538 { (yyval.ival) = (PL_min_intro_pending &&
539 PL_max_intro_pending >= PL_min_intro_pending);
545 { (yyval.opval) = (OP*)NULL; ;}
551 (void)scan_num("1", &tmplval);
552 (yyval.opval) = tmplval.opval; ;}
557 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
562 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
567 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
572 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
577 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
582 { (yyval.opval) = (OP*)NULL; ;}
587 { (yyval.ival) = start_subparse(FALSE, 0);
588 SAVEFREESV(PL_compcv); ;}
593 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
594 SAVEFREESV(PL_compcv); ;}
599 { (yyval.ival) = start_subparse(TRUE, 0);
600 SAVEFREESV(PL_compcv); ;}
605 { (yyval.opval) = (OP*)NULL; ;}
610 { (yyval.opval) = (OP*)NULL; ;}
615 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
620 { (yyval.opval) = (OP*)NULL; ;}
625 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
630 { (yyval.opval) = (OP*)NULL; ;}
635 { (yyval.opval) = (OP*)NULL; ;}
641 if (!FEATURE_SIGNATURES_IS_ENABLED)
642 Perl_croak(aTHX_ "Experimental "
643 "subroutine signatures not enabled");
644 Perl_ck_warner_d(aTHX_
645 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
646 "The signatures feature is experimental");
647 (yyval.opval) = parse_subsignature();
654 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval),
655 newSTATEOP(0, NULL, sawparens(newNULLLIST())));
656 parser->expect = XBLOCK;
663 if (parser->copline > (line_t)(ps[(3) - (5)].val.ival))
664 parser->copline = (line_t)(ps[(3) - (5)].val.ival);
665 (yyval.opval) = block_end((ps[(1) - (5)].val.ival),
666 op_append_list(OP_LINESEQ, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)));
672 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
677 { (yyval.opval) = (OP*)NULL; ;}
682 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
687 { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
692 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
697 { (yyval.opval) = (ps[(1) - (2)].val.opval); ;}
703 OP* term = (ps[(3) - (3)].val.opval);
704 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
710 { (yyval.opval) = convert((ps[(1) - (3)].val.ival), OPf_STACKED,
711 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
717 { (yyval.opval) = convert((ps[(1) - (5)].val.ival), OPf_STACKED,
718 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
724 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
725 op_append_elem(OP_LIST,
726 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
727 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
733 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
734 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
735 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
741 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
742 op_append_elem(OP_LIST,
743 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
744 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
750 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
751 op_append_elem(OP_LIST,
752 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
753 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
759 { (yyval.opval) = convert((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
764 { (yyval.opval) = convert((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
769 { SvREFCNT_inc_simple_void(PL_compcv);
770 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
775 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
776 op_append_elem(OP_LIST,
777 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
783 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); ;}
788 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
794 { (yyval.opval) = newBINOP(OP_AELEM, 0,
795 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
796 scalar((ps[(4) - (5)].val.opval)));
802 { (yyval.opval) = newBINOP(OP_AELEM, 0,
803 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
804 scalar((ps[(3) - (4)].val.opval)));
810 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
816 { (yyval.opval) = newBINOP(OP_HELEM, 0,
817 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
818 jmaybe((ps[(4) - (6)].val.opval))); ;}
823 { (yyval.opval) = newBINOP(OP_HELEM, 0,
824 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
825 jmaybe((ps[(3) - (5)].val.opval))); ;}
830 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
831 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); ;}
836 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
837 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
838 newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); ;}
843 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
844 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
845 newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); ;}
850 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
851 newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); ;}
856 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); ;}
861 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); ;}
866 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); ;}
871 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); ;}
876 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
881 { if ((ps[(2) - (3)].val.ival) != OP_REPEAT)
882 scalar((ps[(1) - (3)].val.opval));
883 (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
889 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
894 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
899 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
904 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((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 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
919 { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
924 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
929 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
934 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
939 { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
944 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); ;}
949 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
954 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
959 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
964 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
965 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); ;}
970 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
971 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));;}
976 { (yyval.opval) = convert(OP_JOIN, 0,
983 (ps[(1) - (2)].val.opval)
990 { (yyval.opval) = newUNOP(OP_PREINC, 0,
991 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); ;}
996 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
997 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); ;}
1002 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); ;}
1007 { (yyval.opval) = newANONLIST((OP*)NULL);;}
1012 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); ;}
1017 { (yyval.opval) = newANONHASH((OP*)NULL); ;}
1022 { SvREFCNT_inc_simple_void(PL_compcv);
1023 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
1028 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));;}
1033 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));;}
1038 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
1043 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN)); ;}
1048 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1053 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;}
1058 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
1063 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1068 { (yyval.opval) = sawparens(newNULLLIST()); ;}
1073 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1078 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1083 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1088 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1093 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1098 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1103 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1104 newOP(OP_PUSHMARK, 0),
1105 newLISTOP(OP_ASLICE, 0,
1106 list((ps[(3) - (4)].val.opval)),
1107 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1108 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1109 (yyval.opval)->op_private |=
1110 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1116 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1117 newOP(OP_PUSHMARK, 0),
1118 newLISTOP(OP_KVASLICE, 0,
1119 list((ps[(3) - (4)].val.opval)),
1120 ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE)));
1121 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1122 (yyval.opval)->op_private |=
1123 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1129 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1130 newOP(OP_PUSHMARK, 0),
1131 newLISTOP(OP_HSLICE, 0,
1132 list((ps[(3) - (5)].val.opval)),
1133 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1134 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1135 (yyval.opval)->op_private |=
1136 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1142 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1143 newOP(OP_PUSHMARK, 0),
1144 newLISTOP(OP_KVHSLICE, 0,
1145 list((ps[(3) - (5)].val.opval)),
1146 ref((ps[(1) - (5)].val.opval), OP_KVHSLICE)));
1147 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1148 (yyval.opval)->op_private |=
1149 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1155 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1160 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1165 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1172 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1173 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1179 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1180 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1186 { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); ;}
1191 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
1196 { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); ;}
1201 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1202 scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); ;}
1207 { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); ;}
1212 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL);
1213 PL_hints |= HINT_BLOCK_SCOPE; ;}
1218 { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
1223 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
1228 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
1233 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
1238 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
1243 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); ;}
1248 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); ;}
1253 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1258 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1259 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1264 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
1269 { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);;}
1274 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1279 { (yyval.opval) = (ps[(1) - (3)].val.opval); ;}
1284 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1289 { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT)
1290 ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1291 : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); ;}
1296 { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
1302 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1303 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1304 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1306 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1307 SAVEFREESV(PL_compcv);
1315 { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival)); ;}
1321 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1322 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1328 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); ;}
1333 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;}
1338 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
1343 { (yyval.opval) = sawparens(newNULLLIST()); ;}
1348 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1353 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1358 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1362 #line 1004 "perly.y"
1363 { (yyval.opval) = (OP*)NULL; ;}
1367 #line 1006 "perly.y"
1368 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1372 #line 1010 "perly.y"
1373 { (yyval.opval) = (OP*)NULL; ;}
1377 #line 1012 "perly.y"
1378 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1382 #line 1018 "perly.y"
1383 { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1387 #line 1022 "perly.y"
1388 { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
1392 #line 1026 "perly.y"
1393 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); ;}
1397 #line 1030 "perly.y"
1398 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1399 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1404 #line 1036 "perly.y"
1405 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1406 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1411 #line 1042 "perly.y"
1412 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); ;}
1416 #line 1044 "perly.y"
1417 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
1421 #line 1048 "perly.y"
1422 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); ;}
1426 #line 1053 "perly.y"
1427 { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); ;}
1431 #line 1058 "perly.y"
1432 { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); ;}
1436 #line 1063 "perly.y"
1437 { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); ;}
1441 #line 1068 "perly.y"
1442 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1446 #line 1070 "perly.y"
1447 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1451 #line 1072 "perly.y"
1452 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1456 #line 1075 "perly.y"
1457 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1461 /* Line 1267 of yacc.c. */
1467 * 39b6174c4729deec2a6ee4698d7dcd6496acb0a8f063daf726d1f853d4dcb54e perly.y
1468 * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl