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), (ps[(7) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval))));
338 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
345 (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newGIVENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)), 0));
346 parser->copline = (line_t)(ps[(1) - (6)].val.ival);
352 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); }
357 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); }
363 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
364 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
365 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
366 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
373 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
374 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
375 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
376 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
382 { parser->expect = XTERM; }
387 { parser->expect = XTERM; }
393 OP *initop = (ps[(4) - (13)].val.opval);
394 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
395 scalar((ps[(7) - (13)].val.opval)), (ps[(13) - (13)].val.opval), (ps[(11) - (13)].val.opval), (ps[(10) - (13)].val.ival));
397 forop = op_prepend_elem(OP_LINESEQ, initop,
398 op_append_elem(OP_LINESEQ,
399 newOP(OP_UNSTACK, OPf_SPECIAL),
402 PL_hints |= HINT_BLOCK_SCOPE;
403 (yyval.opval) = block_end((ps[(3) - (13)].val.ival), forop);
404 parser->copline = (line_t)(ps[(1) - (13)].val.ival);
411 (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)));
412 parser->copline = (line_t)(ps[(1) - (9)].val.ival);
419 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
420 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
421 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
427 { parser->in_my = 0; (yyval.opval) = my((ps[(5) - (5)].val.opval)); }
433 (yyval.opval) = block_end(
434 (ps[(4) - (11)].val.ival),
437 newUNOP(OP_REFGEN, 0,
438 (ps[(6) - (11)].val.opval)),
440 (ps[(8) - (11)].val.opval), (ps[(10) - (11)].val.opval), (ps[(11) - (11)].val.opval))
442 parser->copline = (line_t)(ps[(1) - (11)].val.ival);
449 (yyval.opval) = block_end((ps[(5) - (9)].val.ival), newFOROP(
450 0, op_lvalue(newUNOP(OP_REFGEN, 0,
451 (ps[(3) - (9)].val.opval)),
452 OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
453 parser->copline = (line_t)(ps[(1) - (9)].val.ival);
460 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
461 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
462 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
469 /* a block is a loop that happens once */
470 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
471 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
478 package((ps[(3) - (5)].val.opval));
479 if ((ps[(2) - (5)].val.opval)) {
480 package_version((ps[(2) - (5)].val.opval));
488 /* a block is a loop that happens once */
489 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
490 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
491 if (parser->copline > (line_t)(ps[(4) - (8)].val.ival))
492 parser->copline = (line_t)(ps[(4) - (8)].val.ival);
499 (yyval.opval) = (ps[(1) - (2)].val.opval);
506 (yyval.opval) = (OP*)NULL;
507 parser->copline = NOLINE;
514 if ((ps[(2) - (2)].val.opval)) {
515 OP *term = (ps[(2) - (2)].val.opval);
516 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term);
519 list = (ps[(1) - (2)].val.opval);
521 if (parser->copline == NOLINE)
522 parser->copline = CopLINE(PL_curcop)-1;
523 else parser->copline--;
524 (yyval.opval) = newSTATEOP(0, NULL,
525 op_convert_list(OP_FORMLINE, 0, list));
531 { (yyval.opval) = NULL; }
536 { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); }
541 { (yyval.opval) = (OP*)NULL; }
546 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
551 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
556 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
561 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); }
566 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
571 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
572 parser->copline = (line_t)(ps[(2) - (3)].val.ival); }
577 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); }
582 { (yyval.opval) = (OP*)NULL; }
588 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
589 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
595 { parser->copline = (line_t)(ps[(1) - (6)].val.ival);
596 (yyval.opval) = newCONDOP(0,
597 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
598 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
599 PL_hints |= HINT_BLOCK_SCOPE;
605 { (yyval.opval) = (OP*)NULL; }
610 { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); }
615 { (yyval.ival) = (PL_min_intro_pending &&
616 PL_max_intro_pending >= PL_min_intro_pending);
622 { (yyval.opval) = (OP*)NULL; }
628 (void)scan_num("1", &tmplval);
629 (yyval.opval) = tmplval.opval; }
634 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); }
639 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
644 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
649 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
654 { (yyval.opval) = (OP*)NULL; }
659 { (yyval.ival) = start_subparse(FALSE, 0);
660 SAVEFREESV(PL_compcv); }
665 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
666 SAVEFREESV(PL_compcv); }
671 { (yyval.ival) = start_subparse(TRUE, 0);
672 SAVEFREESV(PL_compcv); }
677 { (yyval.opval) = (OP*)NULL; }
682 { (yyval.opval) = (OP*)NULL; }
687 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
692 { (yyval.opval) = (OP*)NULL; }
697 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
702 { (yyval.opval) = (OP*)NULL; }
708 /* We shouldn't get here otherwise */
709 assert(FEATURE_SIGNATURES_IS_ENABLED);
711 Perl_ck_warner_d(aTHX_
712 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
713 "The signatures feature is experimental");
714 (yyval.opval) = parse_subsignature();
721 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval),
722 newSTATEOP(0, NULL, sawparens(newNULLLIST())));
723 parser->expect = XATTRBLOCK;
729 { (yyval.opval) = (OP*)NULL; }
734 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
739 { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
744 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
749 { (yyval.opval) = (ps[(1) - (2)].val.opval); }
755 OP* term = (ps[(3) - (3)].val.opval);
756 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
762 { (yyval.opval) = op_convert_list((ps[(1) - (3)].val.ival), OPf_STACKED,
763 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
769 { (yyval.opval) = op_convert_list((ps[(1) - (5)].val.ival), OPf_STACKED,
770 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
776 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
777 op_append_elem(OP_LIST,
778 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
779 newMETHOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
785 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
786 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
787 newMETHOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
793 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
794 op_append_elem(OP_LIST,
795 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
796 newMETHOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
802 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
803 op_append_elem(OP_LIST,
804 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
805 newMETHOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
811 { (yyval.opval) = op_convert_list((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
816 { (yyval.opval) = op_convert_list((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); }
821 { SvREFCNT_inc_simple_void(PL_compcv);
822 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); }
827 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
828 op_append_elem(OP_LIST,
829 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
835 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); }
840 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
846 { (yyval.opval) = newBINOP(OP_AELEM, 0,
847 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
848 scalar((ps[(4) - (5)].val.opval)));
854 { (yyval.opval) = newBINOP(OP_AELEM, 0,
855 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
856 scalar((ps[(3) - (4)].val.opval)));
862 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
868 { (yyval.opval) = newBINOP(OP_HELEM, 0,
869 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
870 jmaybe((ps[(4) - (6)].val.opval))); }
875 { (yyval.opval) = newBINOP(OP_HELEM, 0,
876 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
877 jmaybe((ps[(3) - (5)].val.opval))); }
882 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
883 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); }
888 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
889 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
890 newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); }
895 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
896 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
897 newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); }
902 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
903 newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); }
908 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); }
913 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); }
918 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); }
923 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); }
928 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
933 { if ((ps[(2) - (3)].val.ival) != OP_REPEAT)
934 scalar((ps[(1) - (3)].val.opval));
935 (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (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) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
956 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
961 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
966 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
971 { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
976 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
981 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
986 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
991 { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
996 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); }
1001 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
1006 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); }
1011 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, scalar((ps[(2) - (2)].val.opval))); }
1016 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1017 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); }
1022 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1023 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));}
1028 { (yyval.opval) = op_convert_list(OP_JOIN, 0,
1035 (ps[(1) - (2)].val.opval)
1042 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1043 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); }
1048 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1049 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); }
1054 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); }
1059 { (yyval.opval) = newANONLIST((OP*)NULL);}
1064 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); }
1069 { (yyval.opval) = newANONHASH((OP*)NULL); }
1074 { SvREFCNT_inc_simple_void(PL_compcv);
1075 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); }
1082 if (parser->copline > (line_t)(ps[(6) - (8)].val.ival))
1083 parser->copline = (line_t)(ps[(6) - (8)].val.ival);
1084 body = block_end((ps[(3) - (8)].val.ival),
1085 op_append_list(OP_LINESEQ, (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval)));
1086 SvREFCNT_inc_simple_void(PL_compcv);
1087 (yyval.opval) = newANONATTRSUB((ps[(2) - (8)].val.ival), NULL, (ps[(5) - (8)].val.opval), body);
1093 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));}
1098 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));}
1103 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); }
1108 { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[(2) - (2)].val.opval)); }
1113 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1118 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); }
1123 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); }
1128 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1133 { (yyval.opval) = sawparens(newNULLLIST()); }
1138 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1143 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1148 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1153 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1158 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));}
1163 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1168 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1169 newOP(OP_PUSHMARK, 0),
1170 newLISTOP(OP_ASLICE, 0,
1171 list((ps[(3) - (4)].val.opval)),
1172 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1173 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1174 (yyval.opval)->op_private |=
1175 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1181 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1182 newOP(OP_PUSHMARK, 0),
1183 newLISTOP(OP_KVASLICE, 0,
1184 list((ps[(3) - (4)].val.opval)),
1185 ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE)));
1186 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1187 (yyval.opval)->op_private |=
1188 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1194 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1195 newOP(OP_PUSHMARK, 0),
1196 newLISTOP(OP_HSLICE, 0,
1197 list((ps[(3) - (5)].val.opval)),
1198 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1199 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1200 (yyval.opval)->op_private |=
1201 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1207 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1208 newOP(OP_PUSHMARK, 0),
1209 newLISTOP(OP_KVHSLICE, 0,
1210 list((ps[(3) - (5)].val.opval)),
1211 ref((ps[(1) - (5)].val.opval), OP_KVHSLICE)));
1212 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1213 (yyval.opval)->op_private |=
1214 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1220 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1225 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); }
1230 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1237 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1238 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1244 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1245 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1251 { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); }
1256 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); }
1261 { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); }
1266 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1267 scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); }
1272 { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); }
1277 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL);
1278 PL_hints |= HINT_BLOCK_SCOPE; }
1283 { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); }
1288 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); }
1293 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); }
1298 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
1303 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
1308 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); }
1313 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); }
1318 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); }
1323 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1324 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); }
1328 #line 1001 "perly.y"
1329 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); }
1333 #line 1003 "perly.y"
1334 { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);}
1338 #line 1005 "perly.y"
1339 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1343 #line 1007 "perly.y"
1344 { (yyval.opval) = (ps[(1) - (3)].val.opval); }
1348 #line 1009 "perly.y"
1349 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); }
1353 #line 1011 "perly.y"
1354 { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT)
1355 ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1356 : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); }
1360 #line 1015 "perly.y"
1361 { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); }
1365 #line 1017 "perly.y"
1367 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1368 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1369 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1371 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1372 SAVEFREESV(PL_compcv);
1379 #line 1028 "perly.y"
1380 { (yyval.opval) = pmruntime((ps[(1) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), 1, (ps[(2) - (6)].val.ival)); }
1384 #line 1032 "perly.y"
1386 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1387 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1392 #line 1041 "perly.y"
1393 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); }
1397 #line 1043 "perly.y"
1398 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); }
1402 #line 1048 "perly.y"
1403 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); }
1407 #line 1050 "perly.y"
1408 { (yyval.opval) = sawparens(newNULLLIST()); }
1412 #line 1053 "perly.y"
1413 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1417 #line 1055 "perly.y"
1418 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1422 #line 1057 "perly.y"
1423 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1427 #line 1062 "perly.y"
1428 { (yyval.opval) = (OP*)NULL; }
1432 #line 1064 "perly.y"
1433 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1437 #line 1068 "perly.y"
1438 { (yyval.opval) = (OP*)NULL; }
1442 #line 1070 "perly.y"
1443 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1447 #line 1074 "perly.y"
1448 { (yyval.opval) = (OP*)NULL; }
1452 #line 1076 "perly.y"
1453 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
1457 #line 1082 "perly.y"
1458 { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); }
1462 #line 1095 "perly.y"
1463 { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); }
1467 #line 1099 "perly.y"
1468 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); }
1472 #line 1103 "perly.y"
1473 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1474 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1479 #line 1109 "perly.y"
1480 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1481 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1486 #line 1115 "perly.y"
1487 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); }
1491 #line 1117 "perly.y"
1492 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); }
1496 #line 1121 "perly.y"
1497 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); }
1501 #line 1126 "perly.y"
1502 { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); }
1506 #line 1131 "perly.y"
1507 { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); }
1511 #line 1136 "perly.y"
1512 { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); }
1516 #line 1141 "perly.y"
1517 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); }
1521 #line 1143 "perly.y"
1522 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); }
1526 #line 1145 "perly.y"
1527 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); }
1531 #line 1148 "perly.y"
1532 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1539 * f6b41138394461b75dff7cc97a55c3e6682571cf7e66b977351d30f1534831b2 perly.y
1540 * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl