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 1006 "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 1010 "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 1014 "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 1018 "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 1028 "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 1032 "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 1039 "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 1043 "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 1047 "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 1052 "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 1057 "perly.y"
1214 { (yyval.opval) = convert(OP_JOIN, 0,
1221 (ps[(1) - (2)].val.opval)
1223 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1228 #line 1069 "perly.y"
1229 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1230 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1231 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1236 #line 1074 "perly.y"
1237 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1238 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1239 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1244 #line 1083 "perly.y"
1245 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1246 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1247 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1252 #line 1088 "perly.y"
1253 { (yyval.opval) = newANONLIST((OP*)NULL);
1254 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1255 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1260 #line 1093 "perly.y"
1261 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1262 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1263 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1264 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1269 #line 1099 "perly.y"
1270 { (yyval.opval) = newANONHASH((OP*)NULL);
1271 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1272 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1273 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1278 #line 1105 "perly.y"
1279 { SvREFCNT_inc_simple_void(PL_compcv);
1280 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1281 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1282 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1283 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1288 #line 1116 "perly.y"
1289 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1290 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1295 #line 1120 "perly.y"
1296 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));
1297 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1302 #line 1124 "perly.y"
1303 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1304 OPf_SPECIAL|OPf_STACKED,
1305 op_prepend_elem(OP_LIST,
1307 (OPpENTERSUB_AMPER<<8),
1308 scalar((ps[(2) - (4)].val.opval))
1309 )),(OP*)NULL)); dep();
1310 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1311 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1312 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1317 #line 1136 "perly.y"
1318 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1319 OPf_SPECIAL|OPf_STACKED,
1320 op_append_elem(OP_LIST,
1321 (ps[(4) - (5)].val.opval),
1323 (OPpENTERSUB_AMPER<<8),
1324 scalar((ps[(2) - (5)].val.opval))
1326 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1327 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1328 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1333 #line 1149 "perly.y"
1334 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1335 op_prepend_elem(OP_LIST,
1336 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1337 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1338 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1339 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1344 #line 1157 "perly.y"
1345 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1346 op_prepend_elem(OP_LIST,
1347 (ps[(4) - (5)].val.opval),
1348 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1349 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1350 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1351 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1356 #line 1173 "perly.y"
1357 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1358 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1359 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1364 #line 1178 "perly.y"
1365 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN));
1366 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1371 #line 1182 "perly.y"
1372 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1376 #line 1184 "perly.y"
1377 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1378 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1383 #line 1188 "perly.y"
1384 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1385 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1386 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1391 #line 1193 "perly.y"
1392 { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
1396 #line 1195 "perly.y"
1397 { (yyval.opval) = sawparens(newNULLLIST());
1398 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1399 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1404 #line 1200 "perly.y"
1405 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1409 #line 1202 "perly.y"
1410 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1414 #line 1204 "perly.y"
1415 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1419 #line 1206 "perly.y"
1420 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1424 #line 1208 "perly.y"
1425 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1429 #line 1210 "perly.y"
1430 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1434 #line 1212 "perly.y"
1435 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1436 newOP(OP_PUSHMARK, 0),
1437 newLISTOP(OP_ASLICE, 0,
1438 list((ps[(3) - (4)].val.opval)),
1439 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
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 1224 "perly.y"
1450 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1451 newOP(OP_PUSHMARK, 0),
1452 newLISTOP(OP_KVASLICE, 0,
1453 list((ps[(3) - (4)].val.opval)),
1454 ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE)));
1455 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1456 (yyval.opval)->op_private |=
1457 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1458 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1459 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1464 #line 1236 "perly.y"
1465 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1466 newOP(OP_PUSHMARK, 0),
1467 newLISTOP(OP_HSLICE, 0,
1468 list((ps[(3) - (5)].val.opval)),
1469 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1470 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1471 (yyval.opval)->op_private |=
1472 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1473 PL_parser->expect = XOPERATOR;
1474 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1475 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1476 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1481 #line 1250 "perly.y"
1482 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1483 newOP(OP_PUSHMARK, 0),
1484 newLISTOP(OP_KVHSLICE, 0,
1485 list((ps[(3) - (5)].val.opval)),
1486 ref((ps[(1) - (5)].val.opval), OP_KVHSLICE)));
1487 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1488 (yyval.opval)->op_private |=
1489 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1490 PL_parser->expect = XOPERATOR;
1491 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1492 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1493 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1498 #line 1264 "perly.y"
1499 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1503 #line 1266 "perly.y"
1504 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1508 #line 1268 "perly.y"
1509 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1510 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1511 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1516 #line 1273 "perly.y"
1518 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1519 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1521 OP* op = (yyval.opval);
1522 if (op->op_type == OP_CONST) { /* defeat const fold */
1523 op = (OP*)op->op_madprop->mad_val;
1525 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1526 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1532 #line 1286 "perly.y"
1533 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1534 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1535 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1540 #line 1291 "perly.y"
1541 { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval));
1542 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'$');
1547 #line 1295 "perly.y"
1548 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval));
1549 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'@');
1554 #line 1299 "perly.y"
1555 { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval));
1556 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'%');
1561 #line 1303 "perly.y"
1562 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1563 scalar(newCVREF(IVAL((ps[(3) - (4)].val.i_tkval)),(ps[(1) - (4)].val.opval))));
1564 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'&');
1569 #line 1308 "perly.y"
1570 { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval));
1571 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'*');
1576 #line 1312 "perly.y"
1577 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1578 PL_hints |= HINT_BLOCK_SCOPE;
1579 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1584 #line 1317 "perly.y"
1585 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1586 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1591 #line 1321 "perly.y"
1592 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1593 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1598 #line 1325 "perly.y"
1599 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1600 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1605 #line 1329 "perly.y"
1606 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1607 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1612 #line 1333 "perly.y"
1613 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1614 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1619 #line 1337 "perly.y"
1620 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1621 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1626 #line 1341 "perly.y"
1627 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1628 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1633 #line 1345 "perly.y"
1634 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1638 #line 1347 "perly.y"
1639 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1640 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1644 #line 1350 "perly.y"
1645 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1646 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1651 #line 1354 "perly.y"
1652 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1653 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1654 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1655 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1660 #line 1360 "perly.y"
1661 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1665 #line 1362 "perly.y"
1666 { (yyval.opval) = (ps[(1) - (3)].val.opval);
1667 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1668 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1673 #line 1367 "perly.y"
1674 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1675 scalar((ps[(1) - (1)].val.opval))); ;}
1679 #line 1370 "perly.y"
1680 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1681 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1682 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1684 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1685 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1686 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1691 #line 1379 "perly.y"
1692 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1693 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1694 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1695 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1700 #line 1385 "perly.y"
1702 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1703 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1704 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1706 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1707 SAVEFREESV(PL_compcv);
1714 #line 1396 "perly.y"
1715 { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival));
1716 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1717 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1722 #line 1403 "perly.y"
1724 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1725 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1726 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1731 #line 1413 "perly.y"
1732 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1734 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1735 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1736 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1742 #line 1421 "perly.y"
1743 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1744 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1749 #line 1428 "perly.y"
1750 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1751 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1752 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1757 #line 1433 "perly.y"
1758 { (yyval.opval) = sawparens(newNULLLIST());
1759 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1760 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1765 #line 1438 "perly.y"
1766 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1770 #line 1440 "perly.y"
1771 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1775 #line 1442 "perly.y"
1776 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1780 #line 1447 "perly.y"
1781 { (yyval.opval) = (OP*)NULL; ;}
1785 #line 1449 "perly.y"
1786 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1790 #line 1453 "perly.y"
1791 { (yyval.opval) = (OP*)NULL; ;}
1795 #line 1455 "perly.y"
1796 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1800 #line 1461 "perly.y"
1801 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1805 #line 1465 "perly.y"
1806 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1807 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1812 #line 1471 "perly.y"
1813 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1814 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1819 #line 1477 "perly.y"
1820 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1821 if ((yyval.opval)) (yyval.opval)->op_private |= IVAL((ps[(1) - (2)].val.i_tkval));
1822 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1827 #line 1484 "perly.y"
1828 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1829 if ((yyval.opval)) (yyval.opval)->op_private |= IVAL((ps[(1) - (2)].val.i_tkval));
1830 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1835 #line 1491 "perly.y"
1836 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1837 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1842 #line 1497 "perly.y"
1843 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1844 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1849 #line 1504 "perly.y"
1850 { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval));
1851 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'@');
1856 #line 1511 "perly.y"
1857 { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval));
1858 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'@');
1863 #line 1518 "perly.y"
1864 { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval));
1865 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'*');
1870 #line 1525 "perly.y"
1871 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1875 #line 1527 "perly.y"
1876 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1880 #line 1529 "perly.y"
1881 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1885 #line 1532 "perly.y"
1886 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1890 /* Line 1267 of yacc.c. */
1896 * 020be75832dcc7c18bd88434c3ba0e24a136dc093c4b8bf2cef9efa5875c9a29 perly.y
1897 * 5c9d2a0262457fe9b70073fc8ad6c188f812f38ad57712b7e2f53daa01b297cc regen_perly.pl