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)IVAL((ps[(1) - (4)].val.i_tkval)))
109 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
110 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
111 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
112 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
118 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (7)].val.i_tkval)))
119 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
120 (yyval.opval) = block_end((ps[(2) - (7)].val.ival), (ps[(5) - (7)].val.opval));
121 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'{');
122 TOKEN_GETMAD((ps[(7) - (7)].val.i_tkval),(yyval.opval),'}');
128 { (yyval.ival) = block_start(TRUE); ;}
133 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
134 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
135 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
136 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
137 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
143 { (yyval.ival) = block_start(FALSE); ;}
148 { (yyval.opval) = (OP*)NULL; ;}
153 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
154 PL_pad_reset_pending = TRUE;
155 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
156 PL_hints |= HINT_BLOCK_SCOPE;
162 { (yyval.opval) = (OP*)NULL; ;}
167 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
168 PL_pad_reset_pending = TRUE;
169 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
170 PL_hints |= HINT_BLOCK_SCOPE;
177 if((ps[(1) - (1)].val.opval)) {
178 (yyval.opval) = newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval));
180 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), NULL);
187 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
193 (yyval.opval) = newSTATEOP(SVf_UTF8
194 * PVAL((ps[(1) - (2)].val.p_tkval))[strlen(PVAL((ps[(1) - (2)].val.p_tkval)))+1],
195 PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
196 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),
197 (ps[(2) - (2)].val.opval) ? cLISTOPx((yyval.opval))->op_first : (yyval.opval), 'L');
204 (yyval.opval) = newSTATEOP(SVf_UTF8
205 * PVAL((ps[(1) - (2)].val.p_tkval))[strlen(PVAL((ps[(1) - (2)].val.p_tkval)))+1],
206 PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
207 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval), cLISTOPx((yyval.opval))->op_first, 'L');
213 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
219 (yyval.opval) = newOP(OP_NULL,0);
220 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
227 CV *fmtcv = PL_compcv;
229 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
230 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
231 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
232 token_free((ps[(1) - (4)].val.i_tkval));
234 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
235 (yyval.opval) = (OP*)NULL;
237 if (CvOUTSIDE(fmtcv) && !CvEVAL(CvOUTSIDE(fmtcv))) {
238 SvREFCNT_inc_simple_void(fmtcv);
239 pad_add_anon(fmtcv, OP_NULL);
247 if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) {
248 const char *const name =
249 SvPV_nolen_const(((SVOP*)(ps[(2) - (3)].val.opval))->op_sv);
250 if (strEQ(name, "BEGIN") || strEQ(name, "END")
251 || strEQ(name, "INIT") || strEQ(name, "CHECK")
252 || strEQ(name, "UNITCHECK"))
253 CvSPECIAL_on(PL_compcv);
256 /* State subs inside anonymous subs need to be
257 clonable themselves. */
258 if (CvANON(CvOUTSIDE(PL_compcv))
259 || CvCLONE(CvOUTSIDE(PL_compcv))
260 || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST(
262 ))[(ps[(2) - (3)].val.opval)->op_targ]))
263 CvCLONE_on(PL_compcv);
264 PL_parser->in_my = 0;
265 PL_parser->in_my_stash = NULL;
272 SvREFCNT_inc_simple_void(PL_compcv);
275 OP* o = newSVOP(OP_ANONCODE, 0,
278 (ps[(2) - (7)].val.opval)->op_type == OP_CONST
279 ? 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))
280 : 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))
283 (yyval.opval) = newOP(OP_NULL,0);
284 op_getmad(o,(yyval.opval),'&');
285 op_getmad((ps[(2) - (7)].val.opval),(yyval.opval),'n');
286 op_getmad((ps[(5) - (7)].val.opval),(yyval.opval),'s');
287 op_getmad((ps[(6) - (7)].val.opval),(yyval.opval),'a');
288 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'d');
289 append_madprops((ps[(7) - (7)].val.opval)->op_madprop, (yyval.opval), 0);
290 (ps[(7) - (7)].val.opval)->op_madprop = 0;
294 (yyval.opval) = (OP*)NULL;
304 (yyval.opval) = package((ps[(3) - (4)].val.opval));
305 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
306 if ((ps[(2) - (4)].val.opval))
307 package_version((ps[(2) - (4)].val.opval));
308 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
310 package((ps[(3) - (4)].val.opval));
311 if ((ps[(2) - (4)].val.opval))
312 package_version((ps[(2) - (4)].val.opval));
313 (yyval.opval) = (OP*)NULL;
320 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
326 SvREFCNT_inc_simple_void(PL_compcv);
328 (yyval.opval) = utilize(IVAL((ps[(1) - (7)].val.i_tkval)), (ps[(2) - (7)].val.ival), (ps[(4) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval));
329 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
330 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
331 if (PL_parser->rsfp_filters &&
332 AvFILLp(PL_parser->rsfp_filters) >= 0)
333 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
335 utilize(IVAL((ps[(1) - (7)].val.i_tkval)), (ps[(2) - (7)].val.ival), (ps[(4) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval));
336 (yyval.opval) = (OP*)NULL;
344 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
345 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
346 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
347 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
348 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
349 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
356 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
357 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
358 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
359 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
360 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
361 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
368 const PADOFFSET offset = pad_findmy_pvs("$_", 0);
369 (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
370 newGIVENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)),
372 || PAD_COMPNAME_FLAGS_isOUR(offset)
375 PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
381 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;}
386 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;}
392 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
393 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
394 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
395 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
396 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
397 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
398 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
405 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
406 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
407 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
408 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
409 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
410 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
411 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
418 OP *initop = IF_MAD((ps[(4) - (11)].val.opval) ? (ps[(4) - (11)].val.opval) : newOP(OP_NULL, 0), (ps[(4) - (11)].val.opval));
419 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
420 scalar((ps[(6) - (11)].val.opval)), (ps[(11) - (11)].val.opval), (ps[(9) - (11)].val.opval), (ps[(8) - (11)].val.ival));
422 forop = op_prepend_elem(OP_LINESEQ, initop,
423 op_append_elem(OP_LINESEQ,
424 newOP(OP_UNSTACK, OPf_SPECIAL),
427 DO_MAD({ forop = newUNOP(OP_NULL, 0, forop); })
428 (yyval.opval) = block_end((ps[(3) - (11)].val.ival), forop);
429 TOKEN_GETMAD((ps[(1) - (11)].val.i_tkval),(yyval.opval),'3');
430 TOKEN_GETMAD((ps[(2) - (11)].val.i_tkval),(yyval.opval),'(');
431 TOKEN_GETMAD((ps[(5) - (11)].val.i_tkval),(yyval.opval),'1');
432 TOKEN_GETMAD((ps[(7) - (11)].val.i_tkval),(yyval.opval),'2');
433 TOKEN_GETMAD((ps[(10) - (11)].val.i_tkval),(yyval.opval),')');
434 PL_parser->copline = (line_t)IVAL((ps[(1) - (11)].val.i_tkval));
441 (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)));
442 TOKEN_GETMAD((ps[(1) - (9)].val.i_tkval),(yyval.opval),'W');
443 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),(yyval.opval),'d');
444 TOKEN_GETMAD((ps[(5) - (9)].val.i_tkval),(yyval.opval),'(');
445 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),(yyval.opval),')');
446 PL_parser->copline = (line_t)IVAL((ps[(1) - (9)].val.i_tkval));
453 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
454 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
455 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
456 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),(yyval.opval),'(');
457 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),(yyval.opval),')');
458 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
465 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
466 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
467 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'W');
468 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
469 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
470 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
477 /* a block is a loop that happens once */
478 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
479 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
486 package((ps[(3) - (5)].val.opval));
487 if ((ps[(2) - (5)].val.opval)) {
488 package_version((ps[(2) - (5)].val.opval));
496 /* a block is a loop that happens once */
497 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
498 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
499 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
500 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
501 if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
502 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
509 PL_parser->expect = XSTATE;
510 (yyval.opval) = (ps[(1) - (2)].val.opval);
511 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
518 PL_parser->expect = XSTATE;
519 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), (OP*)NULL);
520 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
521 PL_parser->copline = NOLINE;
528 if ((ps[(2) - (2)].val.opval)) {
529 OP *term = (ps[(2) - (2)].val.opval);
530 DO_MAD(term = newUNOP(OP_NULL, 0, term));
531 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term);
535 OP *op = newNULLLIST();
536 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
538 list = (ps[(1) - (2)].val.opval);
541 if (PL_parser->copline == NOLINE)
542 PL_parser->copline = CopLINE(PL_curcop)-1;
543 else PL_parser->copline--;
544 (yyval.opval) = newSTATEOP(0, NULL,
545 convert(OP_FORMLINE, 0, list));
551 { (yyval.opval) = NULL; ;}
556 { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); ;}
561 { (yyval.opval) = (OP*)NULL; ;}
566 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
571 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
572 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
578 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
579 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
585 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
586 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
592 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
593 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
599 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
600 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
601 PL_parser->copline = (line_t)IVAL((ps[(2) - (3)].val.i_tkval));
607 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
612 { (yyval.opval) = (OP*)NULL; ;}
618 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
619 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
620 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
626 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
627 (yyval.opval) = newCONDOP(0,
628 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
629 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
630 PL_hints |= HINT_BLOCK_SCOPE;
631 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
632 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
633 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
639 { (yyval.opval) = (OP*)NULL; ;}
645 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
646 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
652 { (yyval.ival) = (PL_min_intro_pending &&
653 PL_max_intro_pending >= PL_min_intro_pending);
659 { (yyval.opval) = (OP*)NULL; ;}
665 (void)scan_num("1", &tmplval);
666 (yyval.opval) = tmplval.opval; ;}
671 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
676 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
681 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
686 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
691 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
696 { (yyval.opval) = (OP*)NULL; ;}
701 { (yyval.ival) = start_subparse(FALSE, 0);
702 SAVEFREESV(PL_compcv); ;}
707 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
708 SAVEFREESV(PL_compcv); ;}
713 { (yyval.ival) = start_subparse(TRUE, 0);
714 SAVEFREESV(PL_compcv); ;}
719 { (yyval.opval) = (OP*)NULL; ;}
724 { (yyval.opval) = (OP*)NULL; ;}
729 { (yyval.opval) = (ps[(2) - (2)].val.opval);
730 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
736 { (yyval.opval) = IF_MAD(
740 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
746 { (yyval.opval) = (ps[(2) - (2)].val.opval);
747 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
753 { (yyval.opval) = IF_MAD(
757 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
763 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
768 { (yyval.opval) = IF_MAD(
772 PL_parser->expect = XSTATE;
773 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
779 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
780 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
786 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
787 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
793 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
794 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
802 OP* op = newNULLLIST();
803 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
804 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
806 (yyval.opval) = (ps[(1) - (2)].val.opval);
814 OP* term = (ps[(3) - (3)].val.opval);
816 term = newUNOP(OP_NULL, 0, term);
817 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
819 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
825 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
826 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
827 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
833 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
834 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
835 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
836 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
837 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
843 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
844 op_append_elem(OP_LIST,
845 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
846 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
847 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
848 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
849 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
855 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
856 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
857 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
858 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
864 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
865 op_append_elem(OP_LIST,
866 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
867 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
873 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
874 op_append_elem(OP_LIST,
875 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
876 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
877 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
878 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
884 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
885 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
891 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
892 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
893 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
894 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
900 { SvREFCNT_inc_simple_void(PL_compcv);
901 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
906 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
907 op_append_elem(OP_LIST,
908 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
914 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
915 PL_parser->expect = XOPERATOR;
916 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
917 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
918 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
924 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
925 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
926 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
932 { (yyval.opval) = newBINOP(OP_AELEM, 0,
933 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
934 scalar((ps[(4) - (5)].val.opval)));
935 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
936 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
937 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
943 { (yyval.opval) = newBINOP(OP_AELEM, 0,
944 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
945 scalar((ps[(3) - (4)].val.opval)));
946 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
947 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
953 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
954 PL_parser->expect = XOPERATOR;
955 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
956 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
957 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
963 { (yyval.opval) = newBINOP(OP_HELEM, 0,
964 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
965 jmaybe((ps[(4) - (6)].val.opval)));
966 PL_parser->expect = XOPERATOR;
967 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
968 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
969 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
970 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
976 { (yyval.opval) = newBINOP(OP_HELEM, 0,
977 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
978 jmaybe((ps[(3) - (5)].val.opval)));
979 PL_parser->expect = XOPERATOR;
980 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
981 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
982 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
988 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
989 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
990 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
991 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
992 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
998 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
999 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
1000 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
1001 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
1002 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1003 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1009 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1010 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
1011 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
1012 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1013 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1019 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1020 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
1021 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1022 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1028 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
1029 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
1030 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
1031 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
1032 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
1038 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval));
1039 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1040 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1046 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
1047 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
1048 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
1049 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
1050 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
1056 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
1057 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1063 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1064 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1070 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
1071 scalar((ps[(1) - (3)].val.opval));
1072 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
1073 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1079 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1080 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1086 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1087 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1093 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1094 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1100 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1101 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1107 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1108 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1114 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1115 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1122 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1125 op = (UNOP*)(yyval.opval);
1126 op = (UNOP*)op->op_first; /* get to flop */
1127 op = (UNOP*)op->op_first; /* get to flip */
1128 op = (UNOP*)op->op_first; /* get to range */
1129 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1135 #line 1005 "perly.y"
1136 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1137 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1142 #line 1009 "perly.y"
1143 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1144 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1149 #line 1013 "perly.y"
1150 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1151 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1156 #line 1017 "perly.y"
1157 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1158 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1159 ((yyval.opval)->op_type == OP_NOT
1160 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1166 #line 1027 "perly.y"
1167 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1168 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1173 #line 1031 "perly.y"
1174 { (yyval.opval) = IF_MAD(
1175 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1176 (ps[(2) - (2)].val.opval)
1178 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1183 #line 1038 "perly.y"
1184 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1185 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1190 #line 1042 "perly.y"
1191 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1192 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1197 #line 1046 "perly.y"
1198 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1199 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1200 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1205 #line 1051 "perly.y"
1206 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1207 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1208 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1213 #line 1056 "perly.y"
1214 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1215 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1216 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1221 #line 1061 "perly.y"
1222 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1223 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1224 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1229 #line 1070 "perly.y"
1230 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1231 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1232 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1237 #line 1075 "perly.y"
1238 { (yyval.opval) = newANONLIST((OP*)NULL);
1239 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1240 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1245 #line 1080 "perly.y"
1246 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1247 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1248 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1249 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1254 #line 1086 "perly.y"
1255 { (yyval.opval) = newANONHASH((OP*)NULL);
1256 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1257 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1258 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1263 #line 1092 "perly.y"
1264 { SvREFCNT_inc_simple_void(PL_compcv);
1265 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1266 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1267 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1268 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1273 #line 1103 "perly.y"
1274 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1275 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1280 #line 1107 "perly.y"
1281 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));
1282 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1287 #line 1111 "perly.y"
1288 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1289 OPf_SPECIAL|OPf_STACKED,
1290 op_prepend_elem(OP_LIST,
1292 (OPpENTERSUB_AMPER<<8),
1293 scalar((ps[(2) - (4)].val.opval))
1294 )),(OP*)NULL)); dep();
1295 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1296 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1297 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1302 #line 1123 "perly.y"
1303 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1304 OPf_SPECIAL|OPf_STACKED,
1305 op_append_elem(OP_LIST,
1306 (ps[(4) - (5)].val.opval),
1308 (OPpENTERSUB_AMPER<<8),
1309 scalar((ps[(2) - (5)].val.opval))
1311 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1312 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1313 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1318 #line 1136 "perly.y"
1319 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1320 op_prepend_elem(OP_LIST,
1321 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1322 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1323 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1324 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1329 #line 1144 "perly.y"
1330 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1331 op_prepend_elem(OP_LIST,
1332 (ps[(4) - (5)].val.opval),
1333 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1334 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1335 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1336 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1341 #line 1160 "perly.y"
1342 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1343 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1344 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1349 #line 1165 "perly.y"
1350 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN));
1351 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1356 #line 1169 "perly.y"
1357 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1361 #line 1171 "perly.y"
1362 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1363 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1368 #line 1175 "perly.y"
1369 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1370 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1371 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1376 #line 1180 "perly.y"
1377 { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
1381 #line 1182 "perly.y"
1382 { (yyval.opval) = sawparens(newNULLLIST());
1383 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1384 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1389 #line 1187 "perly.y"
1390 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1394 #line 1189 "perly.y"
1395 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1399 #line 1191 "perly.y"
1400 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1404 #line 1193 "perly.y"
1405 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1409 #line 1195 "perly.y"
1410 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1414 #line 1197 "perly.y"
1415 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1419 #line 1199 "perly.y"
1420 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1421 newOP(OP_PUSHMARK, 0),
1422 newLISTOP(OP_ASLICE, 0,
1423 list((ps[(3) - (4)].val.opval)),
1424 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1425 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1426 (yyval.opval)->op_private |=
1427 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1428 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1429 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1434 #line 1211 "perly.y"
1435 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1436 newOP(OP_PUSHMARK, 0),
1437 newLISTOP(OP_KVASLICE, 0,
1438 list((ps[(3) - (4)].val.opval)),
1439 ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE)));
1440 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1441 (yyval.opval)->op_private |=
1442 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1443 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1444 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1449 #line 1223 "perly.y"
1450 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1451 newOP(OP_PUSHMARK, 0),
1452 newLISTOP(OP_HSLICE, 0,
1453 list((ps[(3) - (5)].val.opval)),
1454 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1455 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1456 (yyval.opval)->op_private |=
1457 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1458 PL_parser->expect = XOPERATOR;
1459 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1460 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1461 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1466 #line 1237 "perly.y"
1467 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1468 newOP(OP_PUSHMARK, 0),
1469 newLISTOP(OP_KVHSLICE, 0,
1470 list((ps[(3) - (5)].val.opval)),
1471 ref((ps[(1) - (5)].val.opval), OP_KVHSLICE)));
1472 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1473 (yyval.opval)->op_private |=
1474 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1475 PL_parser->expect = XOPERATOR;
1476 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1477 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1478 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1483 #line 1251 "perly.y"
1484 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1488 #line 1253 "perly.y"
1489 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1493 #line 1255 "perly.y"
1494 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1495 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1496 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1501 #line 1260 "perly.y"
1503 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1504 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1506 OP* op = (yyval.opval);
1507 if (op->op_type == OP_CONST) { /* defeat const fold */
1508 op = (OP*)op->op_madprop->mad_val;
1510 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1511 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1517 #line 1273 "perly.y"
1518 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1519 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1520 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1525 #line 1278 "perly.y"
1526 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1527 PL_hints |= HINT_BLOCK_SCOPE;
1528 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1533 #line 1283 "perly.y"
1534 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1535 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1540 #line 1287 "perly.y"
1541 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1542 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1547 #line 1291 "perly.y"
1548 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1549 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1554 #line 1295 "perly.y"
1555 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1556 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1561 #line 1299 "perly.y"
1562 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1563 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1568 #line 1303 "perly.y"
1569 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1570 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1575 #line 1307 "perly.y"
1576 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1577 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1582 #line 1311 "perly.y"
1583 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1587 #line 1313 "perly.y"
1588 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1589 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1593 #line 1316 "perly.y"
1594 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1595 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1600 #line 1320 "perly.y"
1601 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1602 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1603 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1604 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1609 #line 1326 "perly.y"
1610 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1614 #line 1328 "perly.y"
1615 { (yyval.opval) = (ps[(1) - (3)].val.opval);
1616 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1617 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1622 #line 1333 "perly.y"
1623 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1624 scalar((ps[(1) - (1)].val.opval))); ;}
1628 #line 1336 "perly.y"
1629 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1630 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1631 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1633 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1634 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1635 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1640 #line 1345 "perly.y"
1641 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1642 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1643 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1644 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1649 #line 1351 "perly.y"
1651 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1652 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1653 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1655 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1656 SAVEFREESV(PL_compcv);
1663 #line 1362 "perly.y"
1664 { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival));
1665 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1666 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1671 #line 1369 "perly.y"
1673 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1674 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1675 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1680 #line 1379 "perly.y"
1681 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1683 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1684 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1685 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1691 #line 1387 "perly.y"
1692 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1693 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1698 #line 1394 "perly.y"
1699 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1700 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1701 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1706 #line 1399 "perly.y"
1707 { (yyval.opval) = sawparens(newNULLLIST());
1708 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1709 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1714 #line 1404 "perly.y"
1715 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1719 #line 1406 "perly.y"
1720 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1724 #line 1408 "perly.y"
1725 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1729 #line 1413 "perly.y"
1730 { (yyval.opval) = (OP*)NULL; ;}
1734 #line 1415 "perly.y"
1735 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1739 #line 1419 "perly.y"
1740 { (yyval.opval) = (OP*)NULL; ;}
1744 #line 1421 "perly.y"
1745 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1749 #line 1427 "perly.y"
1750 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1754 #line 1431 "perly.y"
1755 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1756 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1761 #line 1437 "perly.y"
1762 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1763 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1768 #line 1443 "perly.y"
1769 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1770 if ((yyval.opval)) (yyval.opval)->op_private |= IVAL((ps[(1) - (2)].val.i_tkval));
1771 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1776 #line 1450 "perly.y"
1777 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1778 if ((yyval.opval)) (yyval.opval)->op_private |= IVAL((ps[(1) - (2)].val.i_tkval));
1779 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1784 #line 1457 "perly.y"
1785 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1786 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1791 #line 1463 "perly.y"
1792 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1793 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1798 #line 1470 "perly.y"
1799 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1803 #line 1472 "perly.y"
1804 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1808 #line 1474 "perly.y"
1809 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1813 #line 1477 "perly.y"
1814 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1818 /* Line 1267 of yacc.c. */
1824 * 5b290f371f373fb17e073f602c676e436e9d457a1d4db67d192e3cfa0eeb36d7 perly.y
1825 * 5c9d2a0262457fe9b70073fc8ad6c188f812f38ad57712b7e2f53daa01b297cc regen_perly.pl