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 if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) {
258 const char *const name =
259 SvPV_nolen_const(((SVOP*)(ps[(2) - (3)].val.opval))->op_sv);
260 if (strEQ(name, "BEGIN") || strEQ(name, "END")
261 || strEQ(name, "INIT") || strEQ(name, "CHECK")
262 || strEQ(name, "UNITCHECK"))
263 CvSPECIAL_on(PL_compcv);
266 /* State subs inside anonymous subs need to be
267 clonable themselves. */
268 if (CvANON(CvOUTSIDE(PL_compcv))
269 || CvCLONE(CvOUTSIDE(PL_compcv))
270 || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST(
272 ))[(ps[(2) - (3)].val.opval)->op_targ]))
273 CvCLONE_on(PL_compcv);
275 parser->in_my_stash = NULL;
283 if (parser->copline > (line_t)(ps[(8) - (10)].val.ival))
284 parser->copline = (line_t)(ps[(8) - (10)].val.ival);
285 body = block_end((ps[(5) - (10)].val.ival),
286 op_append_list(OP_LINESEQ, (ps[(6) - (10)].val.opval), (ps[(9) - (10)].val.opval)));
288 SvREFCNT_inc_simple_void(PL_compcv);
289 (ps[(2) - (10)].val.opval)->op_type == OP_CONST
290 ? newATTRSUB((ps[(3) - (10)].val.ival), (ps[(2) - (10)].val.opval), NULL, (ps[(7) - (10)].val.opval), body)
291 : newMYSUB((ps[(3) - (10)].val.ival), (ps[(2) - (10)].val.opval), NULL, (ps[(7) - (10)].val.opval), body)
293 (yyval.opval) = (OP*)NULL;
295 parser->parsed_sub = 1;
302 package((ps[(3) - (4)].val.opval));
303 if ((ps[(2) - (4)].val.opval))
304 package_version((ps[(2) - (4)].val.opval));
305 (yyval.opval) = (OP*)NULL;
311 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
317 SvREFCNT_inc_simple_void(PL_compcv);
318 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));
319 parser->parsed_sub = 1;
320 (yyval.opval) = (OP*)NULL;
327 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
328 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
329 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
336 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
337 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
338 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
345 const PADOFFSET offset = pad_findmy_pvs("$_", 0);
346 (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
347 newGIVENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)),
349 || PAD_COMPNAME_FLAGS_isOUR(offset)
352 parser->copline = (line_t)(ps[(1) - (6)].val.ival);
358 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); }
363 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); }
369 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
370 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
371 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
372 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
379 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
380 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
381 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
382 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
388 { parser->expect = XTERM; }
393 { parser->expect = XTERM; }
399 OP *initop = (ps[(4) - (13)].val.opval);
400 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
401 scalar((ps[(7) - (13)].val.opval)), (ps[(13) - (13)].val.opval), (ps[(11) - (13)].val.opval), (ps[(10) - (13)].val.ival));
403 forop = op_prepend_elem(OP_LINESEQ, initop,
404 op_append_elem(OP_LINESEQ,
405 newOP(OP_UNSTACK, OPf_SPECIAL),
408 PL_hints |= HINT_BLOCK_SCOPE;
409 (yyval.opval) = block_end((ps[(3) - (13)].val.ival), forop);
410 parser->copline = (line_t)(ps[(1) - (13)].val.ival);
417 (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)));
418 parser->copline = (line_t)(ps[(1) - (9)].val.ival);
425 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
426 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
427 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
433 { parser->in_my = 0; (yyval.opval) = my((ps[(5) - (5)].val.opval)); }
439 (yyval.opval) = block_end(
440 (ps[(4) - (11)].val.ival),
443 newUNOP(OP_REFGEN, 0,
444 (ps[(6) - (11)].val.opval)),
446 (ps[(8) - (11)].val.opval), (ps[(10) - (11)].val.opval), (ps[(11) - (11)].val.opval))
448 parser->copline = (line_t)(ps[(1) - (11)].val.ival);
455 (yyval.opval) = block_end((ps[(5) - (9)].val.ival), newFOROP(
456 0, op_lvalue(newUNOP(OP_REFGEN, 0,
457 (ps[(3) - (9)].val.opval)),
458 OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
459 parser->copline = (line_t)(ps[(1) - (9)].val.ival);
466 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
467 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
468 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
475 /* a block is a loop that happens once */
476 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
477 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
484 package((ps[(3) - (5)].val.opval));
485 if ((ps[(2) - (5)].val.opval)) {
486 package_version((ps[(2) - (5)].val.opval));
494 /* a block is a loop that happens once */
495 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
496 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
497 if (parser->copline > (line_t)(ps[(4) - (8)].val.ival))
498 parser->copline = (line_t)(ps[(4) - (8)].val.ival);
505 (yyval.opval) = (ps[(1) - (2)].val.opval);
512 (yyval.opval) = (OP*)NULL;
513 parser->copline = NOLINE;
520 if ((ps[(2) - (2)].val.opval)) {
521 OP *term = (ps[(2) - (2)].val.opval);
522 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term);
525 list = (ps[(1) - (2)].val.opval);
527 if (parser->copline == NOLINE)
528 parser->copline = CopLINE(PL_curcop)-1;
529 else parser->copline--;
530 (yyval.opval) = newSTATEOP(0, NULL,
531 op_convert_list(OP_FORMLINE, 0, list));
537 { (yyval.opval) = NULL; }
542 { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); }
547 { (yyval.opval) = (OP*)NULL; }
552 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
557 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
562 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
567 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); }
572 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
577 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
578 parser->copline = (line_t)(ps[(2) - (3)].val.ival); }
583 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); }
588 { (yyval.opval) = (OP*)NULL; }
594 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
595 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
601 { parser->copline = (line_t)(ps[(1) - (6)].val.ival);
602 (yyval.opval) = newCONDOP(0,
603 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
604 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
605 PL_hints |= HINT_BLOCK_SCOPE;
611 { (yyval.opval) = (OP*)NULL; }
616 { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); }
621 { (yyval.ival) = (PL_min_intro_pending &&
622 PL_max_intro_pending >= PL_min_intro_pending);
628 { (yyval.opval) = (OP*)NULL; }
634 (void)scan_num("1", &tmplval);
635 (yyval.opval) = tmplval.opval; }
640 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); }
645 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
650 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
655 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
660 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
665 { (yyval.opval) = (OP*)NULL; }
670 { (yyval.ival) = start_subparse(FALSE, 0);
671 SAVEFREESV(PL_compcv); }
676 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
677 SAVEFREESV(PL_compcv); }
682 { (yyval.ival) = start_subparse(TRUE, 0);
683 SAVEFREESV(PL_compcv); }
688 { (yyval.opval) = (OP*)NULL; }
693 { (yyval.opval) = (OP*)NULL; }
698 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
703 { (yyval.opval) = (OP*)NULL; }
708 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
713 { (yyval.opval) = (OP*)NULL; }
719 /* We shouldn't get here otherwise */
720 assert(FEATURE_SIGNATURES_IS_ENABLED);
722 Perl_ck_warner_d(aTHX_
723 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
724 "The signatures feature is experimental");
725 (yyval.opval) = parse_subsignature();
732 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval),
733 newSTATEOP(0, NULL, sawparens(newNULLLIST())));
734 parser->expect = XATTRBLOCK;
740 { (yyval.opval) = (OP*)NULL; }
745 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
750 { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
755 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
760 { (yyval.opval) = (ps[(1) - (2)].val.opval); }
766 OP* term = (ps[(3) - (3)].val.opval);
767 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
773 { (yyval.opval) = op_convert_list((ps[(1) - (3)].val.ival), OPf_STACKED,
774 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
780 { (yyval.opval) = op_convert_list((ps[(1) - (5)].val.ival), OPf_STACKED,
781 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
787 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
788 op_append_elem(OP_LIST,
789 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
790 newMETHOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
796 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
797 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
798 newMETHOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
804 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
805 op_append_elem(OP_LIST,
806 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
807 newMETHOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
813 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
814 op_append_elem(OP_LIST,
815 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
816 newMETHOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
822 { (yyval.opval) = op_convert_list((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
827 { (yyval.opval) = op_convert_list((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); }
832 { SvREFCNT_inc_simple_void(PL_compcv);
833 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); }
838 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
839 op_append_elem(OP_LIST,
840 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
846 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); }
851 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
857 { (yyval.opval) = newBINOP(OP_AELEM, 0,
858 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
859 scalar((ps[(4) - (5)].val.opval)));
865 { (yyval.opval) = newBINOP(OP_AELEM, 0,
866 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
867 scalar((ps[(3) - (4)].val.opval)));
873 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
879 { (yyval.opval) = newBINOP(OP_HELEM, 0,
880 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
881 jmaybe((ps[(4) - (6)].val.opval))); }
886 { (yyval.opval) = newBINOP(OP_HELEM, 0,
887 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
888 jmaybe((ps[(3) - (5)].val.opval))); }
893 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
894 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); }
899 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
900 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
901 newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); }
906 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
907 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
908 newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); }
913 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
914 newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); }
919 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); }
924 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); }
929 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); }
934 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); }
939 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
944 { if ((ps[(2) - (3)].val.ival) != OP_REPEAT)
945 scalar((ps[(1) - (3)].val.opval));
946 (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (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) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
962 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
967 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
972 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
977 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
982 { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
987 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
992 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
997 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
1002 { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
1007 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); }
1012 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
1017 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); }
1022 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); }
1027 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1028 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); }
1033 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1034 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));}
1039 { (yyval.opval) = op_convert_list(OP_JOIN, 0,
1046 (ps[(1) - (2)].val.opval)
1053 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1054 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); }
1059 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1060 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); }
1065 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); }
1070 { (yyval.opval) = newANONLIST((OP*)NULL);}
1075 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); }
1080 { (yyval.opval) = newANONHASH((OP*)NULL); }
1085 { SvREFCNT_inc_simple_void(PL_compcv);
1086 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); }
1093 if (parser->copline > (line_t)(ps[(6) - (8)].val.ival))
1094 parser->copline = (line_t)(ps[(6) - (8)].val.ival);
1095 body = block_end((ps[(3) - (8)].val.ival),
1096 op_append_list(OP_LINESEQ, (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval)));
1097 SvREFCNT_inc_simple_void(PL_compcv);
1098 (yyval.opval) = newANONATTRSUB((ps[(2) - (8)].val.ival), NULL, (ps[(5) - (8)].val.opval), body);
1104 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));}
1109 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));}
1114 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); }
1119 { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[(2) - (2)].val.opval)); }
1124 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1129 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); }
1134 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); }
1139 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1144 { (yyval.opval) = sawparens(newNULLLIST()); }
1149 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1154 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1159 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1164 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1169 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));}
1174 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1179 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1180 newOP(OP_PUSHMARK, 0),
1181 newLISTOP(OP_ASLICE, 0,
1182 list((ps[(3) - (4)].val.opval)),
1183 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1184 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1185 (yyval.opval)->op_private |=
1186 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1192 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1193 newOP(OP_PUSHMARK, 0),
1194 newLISTOP(OP_KVASLICE, 0,
1195 list((ps[(3) - (4)].val.opval)),
1196 ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE)));
1197 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1198 (yyval.opval)->op_private |=
1199 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1205 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1206 newOP(OP_PUSHMARK, 0),
1207 newLISTOP(OP_HSLICE, 0,
1208 list((ps[(3) - (5)].val.opval)),
1209 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1210 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1211 (yyval.opval)->op_private |=
1212 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1218 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1219 newOP(OP_PUSHMARK, 0),
1220 newLISTOP(OP_KVHSLICE, 0,
1221 list((ps[(3) - (5)].val.opval)),
1222 ref((ps[(1) - (5)].val.opval), OP_KVHSLICE)));
1223 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1224 (yyval.opval)->op_private |=
1225 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1231 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1236 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); }
1241 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1248 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1249 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1255 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1256 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1262 { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); }
1267 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); }
1272 { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); }
1277 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1278 scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); }
1283 { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); }
1288 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL);
1289 PL_hints |= HINT_BLOCK_SCOPE; }
1294 { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); }
1299 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); }
1304 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); }
1309 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
1313 #line 1000 "perly.y"
1314 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
1318 #line 1002 "perly.y"
1319 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); }
1323 #line 1004 "perly.y"
1324 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); }
1328 #line 1006 "perly.y"
1329 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); }
1333 #line 1008 "perly.y"
1334 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1335 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); }
1339 #line 1011 "perly.y"
1340 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); }
1344 #line 1013 "perly.y"
1345 { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);}
1349 #line 1015 "perly.y"
1350 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1354 #line 1017 "perly.y"
1355 { (yyval.opval) = (ps[(1) - (3)].val.opval); }
1359 #line 1019 "perly.y"
1360 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); }
1364 #line 1021 "perly.y"
1365 { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT)
1366 ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1367 : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); }
1371 #line 1025 "perly.y"
1372 { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); }
1376 #line 1027 "perly.y"
1378 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1379 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1380 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1382 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1383 SAVEFREESV(PL_compcv);
1390 #line 1038 "perly.y"
1391 { (yyval.opval) = pmruntime((ps[(1) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), 1, (ps[(2) - (6)].val.ival)); }
1395 #line 1042 "perly.y"
1397 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1398 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1403 #line 1051 "perly.y"
1404 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); }
1408 #line 1053 "perly.y"
1409 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); }
1413 #line 1058 "perly.y"
1414 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); }
1418 #line 1060 "perly.y"
1419 { (yyval.opval) = sawparens(newNULLLIST()); }
1423 #line 1063 "perly.y"
1424 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1428 #line 1065 "perly.y"
1429 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1433 #line 1067 "perly.y"
1434 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1438 #line 1072 "perly.y"
1439 { (yyval.opval) = (OP*)NULL; }
1443 #line 1074 "perly.y"
1444 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1448 #line 1078 "perly.y"
1449 { (yyval.opval) = (OP*)NULL; }
1453 #line 1080 "perly.y"
1454 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1458 #line 1084 "perly.y"
1459 { (yyval.opval) = (OP*)NULL; }
1463 #line 1086 "perly.y"
1464 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
1468 #line 1092 "perly.y"
1469 { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); }
1473 #line 1105 "perly.y"
1474 { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); }
1478 #line 1109 "perly.y"
1479 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); }
1483 #line 1113 "perly.y"
1484 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1485 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1490 #line 1119 "perly.y"
1491 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1492 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1497 #line 1125 "perly.y"
1498 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); }
1502 #line 1127 "perly.y"
1503 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); }
1507 #line 1131 "perly.y"
1508 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); }
1512 #line 1136 "perly.y"
1513 { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); }
1517 #line 1141 "perly.y"
1518 { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); }
1522 #line 1146 "perly.y"
1523 { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); }
1527 #line 1151 "perly.y"
1528 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); }
1532 #line 1153 "perly.y"
1533 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); }
1537 #line 1155 "perly.y"
1538 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); }
1542 #line 1158 "perly.y"
1543 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1550 * 12bc2d35e1af6b72fc94eb1621fe7f5c3e605bbacc097f6fd0e4598864ad9939 perly.y
1551 * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl