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 PL_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 (PL_parser->copline > (line_t)(ps[(1) - (4)].val.ival))
109 PL_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 (PL_parser->copline > (line_t)(ps[(1) - (7)].val.ival))
117 PL_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 (PL_parser->copline > (line_t)(ps[(1) - (4)].val.ival))
130 PL_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);
232 PL_parser->in_my = 0;
233 PL_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 PL_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 PL_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 PL_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 PL_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 PL_parser->copline = (line_t)(ps[(1) - (8)].val.ival);
339 OP *initop = (ps[(4) - (11)].val.opval);
340 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
341 scalar((ps[(6) - (11)].val.opval)), (ps[(11) - (11)].val.opval), (ps[(9) - (11)].val.opval), (ps[(8) - (11)].val.ival));
343 forop = op_prepend_elem(OP_LINESEQ, initop,
344 op_append_elem(OP_LINESEQ,
345 newOP(OP_UNSTACK, OPf_SPECIAL),
348 (yyval.opval) = block_end((ps[(3) - (11)].val.ival), forop);
349 PL_parser->copline = (line_t)(ps[(1) - (11)].val.ival);
356 (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)));
357 PL_parser->copline = (line_t)(ps[(1) - (9)].val.ival);
364 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
365 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
366 PL_parser->copline = (line_t)(ps[(1) - (8)].val.ival);
373 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
374 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
375 PL_parser->copline = (line_t)(ps[(1) - (7)].val.ival);
382 /* a block is a loop that happens once */
383 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
384 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
391 package((ps[(3) - (5)].val.opval));
392 if ((ps[(2) - (5)].val.opval)) {
393 package_version((ps[(2) - (5)].val.opval));
401 /* a block is a loop that happens once */
402 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
403 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
404 if (PL_parser->copline > (line_t)(ps[(4) - (8)].val.ival))
405 PL_parser->copline = (line_t)(ps[(4) - (8)].val.ival);
412 PL_parser->expect = XSTATE;
413 (yyval.opval) = (ps[(1) - (2)].val.opval);
420 PL_parser->expect = XSTATE;
421 (yyval.opval) = (OP*)NULL;
422 PL_parser->copline = NOLINE;
429 if ((ps[(2) - (2)].val.opval)) {
430 OP *term = (ps[(2) - (2)].val.opval);
431 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term);
434 list = (ps[(1) - (2)].val.opval);
436 if (PL_parser->copline == NOLINE)
437 PL_parser->copline = CopLINE(PL_curcop)-1;
438 else PL_parser->copline--;
439 (yyval.opval) = newSTATEOP(0, NULL,
440 convert(OP_FORMLINE, 0, list));
446 { (yyval.opval) = NULL; }
451 { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); }
456 { (yyval.opval) = (OP*)NULL; }
461 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
466 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
471 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
476 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); }
481 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
486 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
487 PL_parser->copline = (line_t)(ps[(2) - (3)].val.ival); }
492 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); }
497 { (yyval.opval) = (OP*)NULL; }
503 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
504 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
510 { PL_parser->copline = (line_t)(ps[(1) - (6)].val.ival);
511 (yyval.opval) = newCONDOP(0,
512 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
513 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
514 PL_hints |= HINT_BLOCK_SCOPE;
520 { (yyval.opval) = (OP*)NULL; }
525 { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); }
530 { (yyval.ival) = (PL_min_intro_pending &&
531 PL_max_intro_pending >= PL_min_intro_pending);
537 { (yyval.opval) = (OP*)NULL; }
543 (void)scan_num("1", &tmplval);
544 (yyval.opval) = tmplval.opval; }
549 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); }
554 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
559 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
564 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
569 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
574 { (yyval.opval) = (OP*)NULL; }
579 { (yyval.ival) = start_subparse(FALSE, 0);
580 SAVEFREESV(PL_compcv); }
585 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
586 SAVEFREESV(PL_compcv); }
591 { (yyval.ival) = start_subparse(TRUE, 0);
592 SAVEFREESV(PL_compcv); }
597 { (yyval.opval) = (OP*)NULL; }
602 { (yyval.opval) = (OP*)NULL; }
607 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
612 { (yyval.opval) = (OP*)NULL; }
617 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
622 { (yyval.opval) = (OP*)NULL; }
627 { (yyval.opval) = (OP*)NULL; }
633 if (!FEATURE_SIGNATURES_IS_ENABLED)
634 Perl_croak(aTHX_ "Experimental "
635 "subroutine signatures not enabled");
636 Perl_ck_warner_d(aTHX_
637 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
638 "The signatures feature is experimental");
639 (yyval.opval) = parse_subsignature();
646 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval),
647 newSTATEOP(0, NULL, sawparens(newNULLLIST())));
648 PL_parser->expect = XBLOCK;
655 if (PL_parser->copline > (line_t)(ps[(3) - (5)].val.ival))
656 PL_parser->copline = (line_t)(ps[(3) - (5)].val.ival);
657 (yyval.opval) = block_end((ps[(1) - (5)].val.ival),
658 op_append_list(OP_LINESEQ, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)));
664 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
669 { (yyval.opval) = (OP*)NULL;
670 PL_parser->expect = XSTATE;
676 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
681 { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
686 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
691 { (yyval.opval) = (ps[(1) - (2)].val.opval); }
697 OP* term = (ps[(3) - (3)].val.opval);
698 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
704 { (yyval.opval) = convert((ps[(1) - (3)].val.ival), OPf_STACKED,
705 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
711 { (yyval.opval) = convert((ps[(1) - (5)].val.ival), OPf_STACKED,
712 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
718 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
719 op_append_elem(OP_LIST,
720 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
721 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
727 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
728 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
729 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
735 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
736 op_append_elem(OP_LIST,
737 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
738 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
744 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
745 op_append_elem(OP_LIST,
746 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
747 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
753 { (yyval.opval) = convert((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
758 { (yyval.opval) = convert((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); }
763 { SvREFCNT_inc_simple_void(PL_compcv);
764 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); }
769 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
770 op_append_elem(OP_LIST,
771 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
777 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
778 PL_parser->expect = XOPERATOR;
784 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
790 { (yyval.opval) = newBINOP(OP_AELEM, 0,
791 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
792 scalar((ps[(4) - (5)].val.opval)));
798 { (yyval.opval) = newBINOP(OP_AELEM, 0,
799 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
800 scalar((ps[(3) - (4)].val.opval)));
806 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
807 PL_parser->expect = XOPERATOR;
813 { (yyval.opval) = newBINOP(OP_HELEM, 0,
814 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
815 jmaybe((ps[(4) - (6)].val.opval)));
816 PL_parser->expect = XOPERATOR;
822 { (yyval.opval) = newBINOP(OP_HELEM, 0,
823 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
824 jmaybe((ps[(3) - (5)].val.opval)));
825 PL_parser->expect = XOPERATOR;
831 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
832 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); }
837 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
838 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
839 newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); }
844 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
845 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
846 newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); }
851 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
852 newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); }
857 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); }
862 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); }
867 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); }
872 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); }
877 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
882 { if ((ps[(2) - (3)].val.ival) != OP_REPEAT)
883 scalar((ps[(1) - (3)].val.opval));
884 (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
890 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
895 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
900 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
905 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
910 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
915 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
920 { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
925 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
930 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
935 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
940 { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
945 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); }
950 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
955 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); }
960 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); }
965 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
966 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); }
971 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
972 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));}
977 { (yyval.opval) = convert(OP_JOIN, 0,
984 (ps[(1) - (2)].val.opval)
991 { (yyval.opval) = newUNOP(OP_PREINC, 0,
992 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); }
997 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
998 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); }
1003 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); }
1008 { (yyval.opval) = newANONLIST((OP*)NULL);}
1013 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); }
1018 { (yyval.opval) = newANONHASH((OP*)NULL); }
1023 { SvREFCNT_inc_simple_void(PL_compcv);
1024 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); }
1029 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));}
1034 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));}
1039 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); }
1044 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN)); }
1049 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1054 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); }
1059 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); }
1064 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1069 { (yyval.opval) = sawparens(newNULLLIST()); }
1074 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1079 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1084 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1089 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1094 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));}
1099 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1104 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1105 newOP(OP_PUSHMARK, 0),
1106 newLISTOP(OP_ASLICE, 0,
1107 list((ps[(3) - (4)].val.opval)),
1108 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1109 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1110 (yyval.opval)->op_private |=
1111 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1117 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1118 newOP(OP_PUSHMARK, 0),
1119 newLISTOP(OP_KVASLICE, 0,
1120 list((ps[(3) - (4)].val.opval)),
1121 ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE)));
1122 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1123 (yyval.opval)->op_private |=
1124 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1130 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1131 newOP(OP_PUSHMARK, 0),
1132 newLISTOP(OP_HSLICE, 0,
1133 list((ps[(3) - (5)].val.opval)),
1134 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1135 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1136 (yyval.opval)->op_private |=
1137 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1138 PL_parser->expect = XOPERATOR;
1144 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1145 newOP(OP_PUSHMARK, 0),
1146 newLISTOP(OP_KVHSLICE, 0,
1147 list((ps[(3) - (5)].val.opval)),
1148 ref((ps[(1) - (5)].val.opval), OP_KVHSLICE)));
1149 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1150 (yyval.opval)->op_private |=
1151 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1152 PL_parser->expect = XOPERATOR;
1158 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1163 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); }
1168 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1175 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1176 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1182 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1183 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1189 { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); }
1194 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); }
1199 { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); }
1204 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1205 scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); }
1210 { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); }
1215 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL);
1216 PL_hints |= HINT_BLOCK_SCOPE; }
1221 { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); }
1226 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); }
1231 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); }
1236 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
1241 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
1246 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); }
1251 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); }
1256 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); }
1261 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1262 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); }
1267 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); }
1272 { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);}
1277 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1282 { (yyval.opval) = (ps[(1) - (3)].val.opval); }
1287 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); }
1292 { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT)
1293 ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1294 : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); }
1299 { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); }
1305 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1306 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1307 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1309 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1310 SAVEFREESV(PL_compcv);
1318 { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival)); }
1324 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1325 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1331 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); }
1336 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); }
1341 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); }
1345 #line 1001 "perly.y"
1346 { (yyval.opval) = sawparens(newNULLLIST()); }
1350 #line 1004 "perly.y"
1351 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1355 #line 1006 "perly.y"
1356 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1360 #line 1008 "perly.y"
1361 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1365 #line 1013 "perly.y"
1366 { (yyval.opval) = (OP*)NULL; }
1370 #line 1015 "perly.y"
1371 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1375 #line 1019 "perly.y"
1376 { (yyval.opval) = (OP*)NULL; }
1380 #line 1021 "perly.y"
1381 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1385 #line 1027 "perly.y"
1386 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); }
1390 #line 1031 "perly.y"
1391 { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); }
1395 #line 1035 "perly.y"
1396 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); }
1400 #line 1039 "perly.y"
1401 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1402 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1407 #line 1045 "perly.y"
1408 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1409 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1414 #line 1051 "perly.y"
1415 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); }
1419 #line 1053 "perly.y"
1420 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); }
1424 #line 1057 "perly.y"
1425 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); }
1429 #line 1062 "perly.y"
1430 { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); }
1434 #line 1067 "perly.y"
1435 { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); }
1439 #line 1072 "perly.y"
1440 { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); }
1444 #line 1077 "perly.y"
1445 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); }
1449 #line 1079 "perly.y"
1450 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); }
1454 #line 1081 "perly.y"
1455 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); }
1459 #line 1084 "perly.y"
1460 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1467 * 7e6c275bbd1dbc800c205a8a8b0cd785e4859f94976ee7372149598471f16f81 perly.y
1468 * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl