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 (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); intro_my(); }
654 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
659 { (yyval.opval) = (OP*)NULL; }
664 { (yyval.ival) = start_subparse(FALSE, 0);
665 SAVEFREESV(PL_compcv); }
670 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
671 SAVEFREESV(PL_compcv); }
676 { (yyval.ival) = start_subparse(TRUE, 0);
677 SAVEFREESV(PL_compcv); }
682 { (yyval.opval) = (OP*)NULL; }
687 { (yyval.opval) = (OP*)NULL; }
692 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
697 { (yyval.opval) = (OP*)NULL; }
702 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
707 { (yyval.opval) = (OP*)NULL; }
713 /* We shouldn't get here otherwise */
714 assert(FEATURE_SIGNATURES_IS_ENABLED);
716 Perl_ck_warner_d(aTHX_
717 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
718 "The signatures feature is experimental");
719 (yyval.opval) = parse_subsignature();
726 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval),
727 newSTATEOP(0, NULL, sawparens(newNULLLIST())));
728 parser->expect = XATTRBLOCK;
734 { (yyval.opval) = (OP*)NULL; }
739 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
744 { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
749 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
754 { (yyval.opval) = (ps[(1) - (2)].val.opval); }
760 OP* term = (ps[(3) - (3)].val.opval);
761 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
767 { (yyval.opval) = op_convert_list((ps[(1) - (3)].val.ival), OPf_STACKED,
768 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
774 { (yyval.opval) = op_convert_list((ps[(1) - (5)].val.ival), OPf_STACKED,
775 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
781 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
782 op_append_elem(OP_LIST,
783 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
784 newMETHOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
790 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
791 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
792 newMETHOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
798 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
799 op_append_elem(OP_LIST,
800 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
801 newMETHOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
807 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
808 op_append_elem(OP_LIST,
809 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
810 newMETHOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
816 { (yyval.opval) = op_convert_list((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
821 { (yyval.opval) = op_convert_list((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); }
826 { SvREFCNT_inc_simple_void(PL_compcv);
827 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); }
832 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
833 op_append_elem(OP_LIST,
834 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
840 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); }
845 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
851 { (yyval.opval) = newBINOP(OP_AELEM, 0,
852 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
853 scalar((ps[(4) - (5)].val.opval)));
859 { (yyval.opval) = newBINOP(OP_AELEM, 0,
860 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
861 scalar((ps[(3) - (4)].val.opval)));
867 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
873 { (yyval.opval) = newBINOP(OP_HELEM, 0,
874 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
875 jmaybe((ps[(4) - (6)].val.opval))); }
880 { (yyval.opval) = newBINOP(OP_HELEM, 0,
881 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
882 jmaybe((ps[(3) - (5)].val.opval))); }
887 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
888 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); }
893 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
894 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
895 newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); }
900 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
901 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
902 newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); }
907 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
908 newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); }
913 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); }
918 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); }
923 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); }
928 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); }
933 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
938 { if ((ps[(2) - (3)].val.ival) != OP_REPEAT)
939 scalar((ps[(1) - (3)].val.opval));
940 (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (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) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
976 { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
981 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
986 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
991 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
996 { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
1001 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); }
1006 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
1011 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); }
1016 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, scalar((ps[(2) - (2)].val.opval))); }
1021 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1022 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); }
1027 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1028 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));}
1033 { (yyval.opval) = op_convert_list(OP_JOIN, 0,
1040 (ps[(1) - (2)].val.opval)
1047 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1048 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); }
1053 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1054 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); }
1059 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); }
1064 { (yyval.opval) = newANONLIST((OP*)NULL);}
1069 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); }
1074 { (yyval.opval) = newANONHASH((OP*)NULL); }
1079 { SvREFCNT_inc_simple_void(PL_compcv);
1080 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); }
1087 if (parser->copline > (line_t)(ps[(6) - (8)].val.ival))
1088 parser->copline = (line_t)(ps[(6) - (8)].val.ival);
1089 body = block_end((ps[(3) - (8)].val.ival),
1090 op_append_list(OP_LINESEQ, (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval)));
1091 SvREFCNT_inc_simple_void(PL_compcv);
1092 (yyval.opval) = newANONATTRSUB((ps[(2) - (8)].val.ival), NULL, (ps[(5) - (8)].val.opval), body);
1098 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));}
1103 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));}
1108 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); }
1113 { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[(2) - (2)].val.opval)); }
1118 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1123 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); }
1128 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); }
1133 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1138 { (yyval.opval) = sawparens(newNULLLIST()); }
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) = (ps[(1) - (1)].val.opval); }
1163 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));}
1168 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1173 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1174 newOP(OP_PUSHMARK, 0),
1175 newLISTOP(OP_ASLICE, 0,
1176 list((ps[(3) - (4)].val.opval)),
1177 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1178 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1179 (yyval.opval)->op_private |=
1180 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1186 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1187 newOP(OP_PUSHMARK, 0),
1188 newLISTOP(OP_KVASLICE, 0,
1189 list((ps[(3) - (4)].val.opval)),
1190 ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE)));
1191 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1192 (yyval.opval)->op_private |=
1193 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1199 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1200 newOP(OP_PUSHMARK, 0),
1201 newLISTOP(OP_HSLICE, 0,
1202 list((ps[(3) - (5)].val.opval)),
1203 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1204 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1205 (yyval.opval)->op_private |=
1206 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1212 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1213 newOP(OP_PUSHMARK, 0),
1214 newLISTOP(OP_KVHSLICE, 0,
1215 list((ps[(3) - (5)].val.opval)),
1216 ref((ps[(1) - (5)].val.opval), OP_KVHSLICE)));
1217 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1218 (yyval.opval)->op_private |=
1219 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1225 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1230 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); }
1235 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1242 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1243 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1249 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1250 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1256 { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); }
1261 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); }
1266 { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); }
1271 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1272 scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); }
1277 { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); }
1282 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL);
1283 PL_hints |= HINT_BLOCK_SCOPE; }
1288 { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); }
1293 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); }
1298 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); }
1303 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
1308 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
1313 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); }
1318 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); }
1322 #line 1000 "perly.y"
1323 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); }
1327 #line 1002 "perly.y"
1328 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1329 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); }
1333 #line 1005 "perly.y"
1334 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); }
1338 #line 1007 "perly.y"
1339 { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);}
1343 #line 1009 "perly.y"
1344 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1348 #line 1011 "perly.y"
1349 { (yyval.opval) = (ps[(1) - (3)].val.opval); }
1353 #line 1013 "perly.y"
1354 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); }
1358 #line 1015 "perly.y"
1359 { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT)
1360 ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1361 : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); }
1365 #line 1019 "perly.y"
1366 { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); }
1370 #line 1021 "perly.y"
1372 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1373 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1374 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1376 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1377 SAVEFREESV(PL_compcv);
1384 #line 1032 "perly.y"
1385 { (yyval.opval) = pmruntime((ps[(1) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), 1, (ps[(2) - (6)].val.ival)); }
1389 #line 1036 "perly.y"
1391 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1392 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1397 #line 1045 "perly.y"
1398 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); }
1402 #line 1047 "perly.y"
1403 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); }
1407 #line 1052 "perly.y"
1408 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); }
1412 #line 1054 "perly.y"
1413 { (yyval.opval) = sawparens(newNULLLIST()); }
1417 #line 1057 "perly.y"
1418 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1422 #line 1059 "perly.y"
1423 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1427 #line 1061 "perly.y"
1428 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1432 #line 1066 "perly.y"
1433 { (yyval.opval) = (OP*)NULL; }
1437 #line 1068 "perly.y"
1438 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1442 #line 1072 "perly.y"
1443 { (yyval.opval) = (OP*)NULL; }
1447 #line 1074 "perly.y"
1448 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1452 #line 1078 "perly.y"
1453 { (yyval.opval) = (OP*)NULL; }
1457 #line 1080 "perly.y"
1458 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
1462 #line 1086 "perly.y"
1463 { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); }
1467 #line 1099 "perly.y"
1468 { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); }
1472 #line 1103 "perly.y"
1473 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); }
1477 #line 1107 "perly.y"
1478 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1479 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1484 #line 1113 "perly.y"
1485 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1486 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1491 #line 1119 "perly.y"
1492 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); }
1496 #line 1121 "perly.y"
1497 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); }
1501 #line 1125 "perly.y"
1502 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); }
1506 #line 1130 "perly.y"
1507 { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); }
1511 #line 1135 "perly.y"
1512 { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); }
1516 #line 1140 "perly.y"
1517 { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); }
1521 #line 1145 "perly.y"
1522 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); }
1526 #line 1147 "perly.y"
1527 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); }
1531 #line 1149 "perly.y"
1532 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); }
1536 #line 1152 "perly.y"
1537 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1544 * a0bc910627eeeffe8245b9a63dd97238e2e6b27b544be36b37d078cf6aba699b perly.y
1545 * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl