3 { (yyval.ival) = (ps[(2) - (2)].val.ival); ;}
9 parser->expect = XSTATE;
16 PL_eval_root = (ps[(3) - (3)].val.opval);
19 parser->yychar = YYEOF;
26 parser->expect = XSTATE;
33 PL_eval_root = (ps[(3) - (3)].val.opval);
40 { (yyval.ival) = (ps[(1) - (2)].val.ival); newPROG(block_end((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval))); ;}
45 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
46 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
47 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
48 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
49 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
55 { (yyval.ival) = block_start(TRUE); ;}
60 { (yyval.ival) = (I32) Perl_allocmy(aTHX_ STR_WITH_LEN("$_"), 0); ;}
66 PL_parser->expect = XSTATE; (yyval.ival) = block_start(TRUE);
72 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
73 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
74 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
75 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
76 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
82 { (yyval.ival) = block_start(FALSE); ;}
87 { (yyval.opval) = (OP*)NULL; ;}
93 (yyval.opval) = IF_MAD(op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval)), (ps[(1) - (2)].val.opval));
99 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
100 PL_pad_reset_pending = TRUE;
101 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
102 PL_hints |= HINT_BLOCK_SCOPE;
108 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
114 PL_pad_reset_pending = TRUE;
115 (yyval.opval) = (ps[(1) - (1)].val.opval);
121 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
122 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
127 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
132 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
138 if (PVAL((ps[(1) - (2)].val.p_tkval))) {
139 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), newOP(OP_NULL, 0));
140 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),(yyval.opval),'L');
141 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first,';');
144 (yyval.opval) = IF_MAD(
147 PL_parser->copline = NOLINE;
148 TOKEN_FREE((ps[(1) - (2)].val.p_tkval));
149 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
151 PL_parser->expect = XSTATE;
158 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)), (ps[(2) - (3)].val.opval));
159 PL_parser->expect = XSTATE;
161 /* sideff might already have a nexstate */
162 OP* op = ((LISTOP*)(yyval.opval))->op_first;
164 while (op->op_sibling &&
165 op->op_sibling->op_type == OP_NEXTSTATE)
167 token_getmad((ps[(1) - (3)].val.p_tkval),op,'L');
168 token_getmad((ps[(3) - (3)].val.i_tkval),op,';');
176 { (yyval.opval) = newSTATEOP(0, NULL,
177 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
178 NOLINE, (OP*)NULL, (ps[(1) - (1)].val.opval),
184 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
189 { (yyval.opval) = (OP*)NULL; ;}
194 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
199 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
200 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
206 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
207 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
213 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
214 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
220 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
221 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
227 { (yyval.opval) = newFOROP(0, NULL, (line_t)IVAL((ps[(2) - (3)].val.i_tkval)),
228 (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
229 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first->op_sibling,'w');
235 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), scope((ps[(1) - (3)].val.opval))); ;}
240 { (yyval.opval) = (OP*)NULL; ;}
245 { ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = scope((ps[(2) - (2)].val.opval));
246 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
252 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
253 (yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)), scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
254 PL_hints |= HINT_BLOCK_SCOPE;
255 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
256 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
257 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
263 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
264 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
265 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
266 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
267 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
268 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
274 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
275 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
276 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
277 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
278 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
279 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
285 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
286 newWHENOP((ps[(4) - (6)].val.opval), scope((ps[(6) - (6)].val.opval)))); ;}
291 { (yyval.opval) = newWHENOP(0, scope((ps[(2) - (2)].val.opval))); ;}
296 { (yyval.opval) = (OP*)NULL; ;}
301 { (yyval.opval) = scope((ps[(2) - (2)].val.opval));
302 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
309 PL_parser->copline = (line_t)IVAL((ps[(2) - (9)].val.i_tkval));
310 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
311 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
312 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
313 IVAL((ps[(2) - (9)].val.i_tkval)), (ps[(5) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval), (ps[(7) - (9)].val.ival))));
314 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
315 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
316 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
317 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
324 PL_parser->copline = (line_t)IVAL((ps[(2) - (9)].val.i_tkval));
325 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
326 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
327 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
328 IVAL((ps[(2) - (9)].val.i_tkval)), (ps[(5) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval), (ps[(7) - (9)].val.ival))));
329 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
330 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
331 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
332 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
339 (yyval.opval) = block_end((ps[(4) - (10)].val.ival),
340 innerop = newFOROP(0, PVAL((ps[(1) - (10)].val.p_tkval)), (line_t)IVAL((ps[(2) - (10)].val.i_tkval)),
341 (ps[(5) - (10)].val.opval), (ps[(7) - (10)].val.opval), (ps[(9) - (10)].val.opval), (ps[(10) - (10)].val.opval)));
342 TOKEN_GETMAD((ps[(1) - (10)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
343 TOKEN_GETMAD((ps[(2) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
344 TOKEN_GETMAD((ps[(3) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'d');
345 TOKEN_GETMAD((ps[(6) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
346 TOKEN_GETMAD((ps[(8) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
353 (yyval.opval) = block_end((ps[(5) - (9)].val.ival),
354 innerop = newFOROP(0, PVAL((ps[(1) - (9)].val.p_tkval)), (line_t)IVAL((ps[(2) - (9)].val.i_tkval)),
355 mod((ps[(3) - (9)].val.opval), OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
356 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
357 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
358 TOKEN_GETMAD((ps[(4) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
359 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
366 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
367 innerop = newFOROP(0, PVAL((ps[(1) - (8)].val.p_tkval)), (line_t)IVAL((ps[(2) - (8)].val.i_tkval)),
368 (OP*)NULL, (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
369 TOKEN_GETMAD((ps[(1) - (8)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
370 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
371 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
372 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
379 PL_parser->copline = (line_t)IVAL((ps[(2) - (12)].val.i_tkval));
380 forop = newSTATEOP(0, PVAL((ps[(1) - (12)].val.p_tkval)),
381 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
382 IVAL((ps[(2) - (12)].val.i_tkval)), scalar((ps[(7) - (12)].val.opval)),
383 (ps[(12) - (12)].val.opval), (ps[(10) - (12)].val.opval), (ps[(9) - (12)].val.ival)));
385 forop = newUNOP(OP_NULL, 0, op_append_elem(OP_LINESEQ,
387 CopLABEL_alloc(((ps[(1) - (12)].val.p_tkval))->tk_lval.pval),
388 ((ps[(5) - (12)].val.opval) ? (ps[(5) - (12)].val.opval) : newOP(OP_NULL, 0)) ),
391 token_getmad((ps[(2) - (12)].val.i_tkval),forop,'3');
392 token_getmad((ps[(3) - (12)].val.i_tkval),forop,'(');
393 token_getmad((ps[(6) - (12)].val.i_tkval),forop,'1');
394 token_getmad((ps[(8) - (12)].val.i_tkval),forop,'2');
395 token_getmad((ps[(11) - (12)].val.i_tkval),forop,')');
396 token_getmad((ps[(1) - (12)].val.p_tkval),forop,'L');
398 if ((ps[(5) - (12)].val.opval)) {
399 forop = op_append_elem(OP_LINESEQ,
400 newSTATEOP(0, CopLABEL_alloc((ps[(1) - (12)].val.p_tkval)), (ps[(5) - (12)].val.opval)),
406 (yyval.opval) = block_end((ps[(4) - (12)].val.ival), forop); ;}
411 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)),
412 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
413 NOLINE, (OP*)NULL, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval), 0));
414 TOKEN_GETMAD((ps[(1) - (3)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
419 { PL_parser->copline = (line_t) IVAL((ps[(2) - (8)].val.i_tkval));
420 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
421 newSTATEOP(0, PVAL((ps[(1) - (8)].val.p_tkval)),
422 newGIVENOP((ps[(6) - (8)].val.opval), scope((ps[(8) - (8)].val.opval)),
423 (PADOFFSET) (ps[(5) - (8)].val.ival)) )); ;}
428 { (yyval.ival) = (PL_min_intro_pending &&
429 PL_max_intro_pending >= PL_min_intro_pending);
435 { (yyval.opval) = (OP*)NULL; ;}
441 (void)scan_num("1", &tmplval);
442 (yyval.opval) = tmplval.opval; ;}
447 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
452 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
457 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
462 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
471 (yyval.p_tkval) = newTOKEN(OP_NULL, tmplval, 0);
473 (yyval.p_tkval) = NULL;
480 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
485 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
490 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
495 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
500 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
505 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
510 { (yyval.opval) = newOP(OP_NULL,0);
511 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
518 CV *fmtcv = PL_compcv;
519 SvREFCNT_inc_simple_void(PL_compcv);
521 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
522 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
523 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
524 token_free((ps[(1) - (4)].val.i_tkval));
526 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
527 (yyval.opval) = (OP*)NULL;
529 if (CvOUTSIDE(fmtcv) && !CvUNIQUE(CvOUTSIDE(fmtcv))) {
530 SvREFCNT_inc_simple_void(fmtcv);
531 pad_add_anon((SV*)fmtcv, OP_NULL);
538 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
543 { (yyval.opval) = (OP*)NULL; ;}
548 { SvREFCNT_inc_simple_void(PL_compcv);
550 (yyval.opval) = newMYSUB((ps[(2) - (6)].val.ival), (ps[(3) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), (ps[(6) - (6)].val.opval));
551 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
553 newMYSUB((ps[(2) - (6)].val.ival), (ps[(3) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), (ps[(6) - (6)].val.opval));
554 (yyval.opval) = (OP*)NULL;
561 { SvREFCNT_inc_simple_void(PL_compcv);
564 OP* o = newSVOP(OP_ANONCODE, 0,
565 (SV*)newATTRSUB((ps[(2) - (6)].val.ival), (ps[(3) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), (ps[(6) - (6)].val.opval)));
566 (yyval.opval) = newOP(OP_NULL,0);
567 op_getmad(o,(yyval.opval),'&');
568 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
569 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
570 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
571 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
572 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
573 (ps[(6) - (6)].val.opval)->op_madprop = 0;
576 newATTRSUB((ps[(2) - (6)].val.ival), (ps[(3) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), (ps[(6) - (6)].val.opval));
577 (yyval.opval) = (OP*)NULL;
584 { (yyval.ival) = start_subparse(FALSE, 0);
585 SAVEFREESV(PL_compcv); ;}
590 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
591 SAVEFREESV(PL_compcv); ;}
596 { (yyval.ival) = start_subparse(TRUE, 0);
597 SAVEFREESV(PL_compcv); ;}
602 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
603 if (strEQ(name, "BEGIN") || strEQ(name, "END")
604 || strEQ(name, "INIT") || strEQ(name, "CHECK")
605 || strEQ(name, "UNITCHECK"))
606 CvSPECIAL_on(PL_compcv);
607 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
612 { (yyval.opval) = (OP*)NULL; ;}
617 { (yyval.opval) = (OP*)NULL; ;}
622 { (yyval.opval) = (ps[(2) - (2)].val.opval);
623 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
629 { (yyval.opval) = IF_MAD(
633 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
639 { (yyval.opval) = (ps[(2) - (2)].val.opval);
640 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
646 { (yyval.opval) = IF_MAD(
650 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
656 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
661 { (yyval.opval) = IF_MAD(
665 PL_parser->expect = XSTATE;
666 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
674 (yyval.opval) = package((ps[(3) - (4)].val.opval));
675 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
676 if ((ps[(2) - (4)].val.opval))
677 package_version((ps[(2) - (4)].val.opval));
678 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
680 package((ps[(3) - (4)].val.opval));
681 if ((ps[(2) - (4)].val.opval))
682 package_version((ps[(2) - (4)].val.opval));
683 (yyval.opval) = (OP*)NULL;
691 int save_3_latefree = (ps[(3) - (5)].val.opval)->op_latefree;
692 (ps[(3) - (5)].val.opval)->op_latefree = 1;
693 package((ps[(3) - (5)].val.opval));
694 (ps[(3) - (5)].val.opval)->op_latefree = save_3_latefree;
695 if ((ps[(2) - (5)].val.opval)) {
696 int save_2_latefree = (ps[(2) - (5)].val.opval)->op_latefree;
697 (ps[(2) - (5)].val.opval)->op_latefree = 1;
698 package_version((ps[(2) - (5)].val.opval));
699 (ps[(2) - (5)].val.opval)->op_latefree = save_2_latefree;
706 { if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
707 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
708 (yyval.opval) = block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval));
709 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
710 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
711 op_free((ps[(3) - (8)].val.opval));
712 if ((ps[(2) - (8)].val.opval))
713 op_free((ps[(2) - (8)].val.opval));
719 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
724 { SvREFCNT_inc_simple_void(PL_compcv);
726 (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));
727 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
728 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
729 if (PL_parser->rsfp_filters &&
730 AvFILLp(PL_parser->rsfp_filters) >= 0)
731 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
733 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));
734 (yyval.opval) = (OP*)NULL;
741 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
742 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
748 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
749 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
755 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
756 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
764 OP* op = newNULLLIST();
765 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
766 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
768 (yyval.opval) = (ps[(1) - (2)].val.opval);
776 OP* term = (ps[(3) - (3)].val.opval);
778 term = newUNOP(OP_NULL, 0, term);
779 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
781 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
787 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
788 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
789 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
795 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
796 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
797 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
798 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
799 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
805 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
806 op_append_elem(OP_LIST,
807 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
808 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
809 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
810 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
811 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
817 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
818 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
819 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
820 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
826 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
827 op_append_elem(OP_LIST,
828 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
829 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
835 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
836 op_append_elem(OP_LIST,
837 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
838 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
839 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
840 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
846 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
847 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
853 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
854 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
855 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
856 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
862 { SvREFCNT_inc_simple_void(PL_compcv);
863 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
868 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
869 op_append_elem(OP_LIST,
870 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
876 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
877 PL_parser->expect = XOPERATOR;
878 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
879 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
880 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
886 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
887 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
888 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
894 { (yyval.opval) = newBINOP(OP_AELEM, 0,
895 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
896 scalar((ps[(4) - (5)].val.opval)));
897 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
898 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
899 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
905 { (yyval.opval) = newBINOP(OP_AELEM, 0,
906 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
907 scalar((ps[(3) - (4)].val.opval)));
908 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
909 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
915 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
916 PL_parser->expect = XOPERATOR;
917 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
918 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
919 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
925 { (yyval.opval) = newBINOP(OP_HELEM, 0,
926 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
927 jmaybe((ps[(4) - (6)].val.opval)));
928 PL_parser->expect = XOPERATOR;
929 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
930 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
931 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
932 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
938 { (yyval.opval) = newBINOP(OP_HELEM, 0,
939 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
940 jmaybe((ps[(3) - (5)].val.opval)));
941 PL_parser->expect = XOPERATOR;
942 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
943 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
944 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
950 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
951 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
952 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
953 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
954 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
960 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
961 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
962 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
963 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
964 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
965 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
971 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
972 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
973 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
974 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
975 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
981 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
982 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
983 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
984 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
990 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
991 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
992 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
993 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
994 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
1000 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval));
1001 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1002 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1008 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
1009 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
1010 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
1011 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
1012 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
1018 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
1019 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1025 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1026 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1032 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
1033 scalar((ps[(1) - (3)].val.opval));
1034 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
1035 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1041 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1042 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1048 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1049 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1055 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1056 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1062 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1063 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1069 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1070 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1076 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1077 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1084 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1087 op = (UNOP*)(yyval.opval);
1088 op = (UNOP*)op->op_first; /* get to flop */
1089 op = (UNOP*)op->op_first; /* get to flip */
1090 op = (UNOP*)op->op_first; /* get to range */
1091 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1097 #line 1008 "perly.y"
1098 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1099 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1104 #line 1012 "perly.y"
1105 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1106 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1111 #line 1016 "perly.y"
1112 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1113 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1118 #line 1020 "perly.y"
1119 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1120 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1121 ((yyval.opval)->op_type == OP_NOT
1122 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1128 #line 1030 "perly.y"
1129 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1130 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1135 #line 1034 "perly.y"
1136 { (yyval.opval) = IF_MAD(
1137 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1138 (ps[(2) - (2)].val.opval)
1140 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1145 #line 1041 "perly.y"
1146 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1147 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1152 #line 1045 "perly.y"
1153 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1154 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1159 #line 1049 "perly.y"
1160 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1161 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1162 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1167 #line 1054 "perly.y"
1168 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1169 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1170 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1175 #line 1059 "perly.y"
1176 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1177 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1178 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1183 #line 1064 "perly.y"
1184 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1185 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1186 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1191 #line 1073 "perly.y"
1192 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1193 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1194 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1199 #line 1078 "perly.y"
1200 { (yyval.opval) = newANONLIST((OP*)NULL);
1201 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1202 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1207 #line 1083 "perly.y"
1208 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1209 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1210 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1211 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1216 #line 1089 "perly.y"
1217 { (yyval.opval) = newANONHASH((OP*)NULL);
1218 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1219 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1220 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1225 #line 1095 "perly.y"
1226 { SvREFCNT_inc_simple_void(PL_compcv);
1227 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1228 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1229 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1230 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1235 #line 1106 "perly.y"
1236 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1237 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1242 #line 1110 "perly.y"
1243 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
1244 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1249 #line 1114 "perly.y"
1250 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1251 OPf_SPECIAL|OPf_STACKED,
1252 op_prepend_elem(OP_LIST,
1254 (OPpENTERSUB_AMPER<<8),
1255 scalar((ps[(2) - (4)].val.opval))
1256 )),(OP*)NULL)); dep();
1257 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1258 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1259 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1264 #line 1126 "perly.y"
1265 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1266 OPf_SPECIAL|OPf_STACKED,
1267 op_append_elem(OP_LIST,
1268 (ps[(4) - (5)].val.opval),
1270 (OPpENTERSUB_AMPER<<8),
1271 scalar((ps[(2) - (5)].val.opval))
1273 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1274 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1275 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1280 #line 1139 "perly.y"
1281 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1282 op_prepend_elem(OP_LIST,
1283 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1284 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1285 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1286 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1291 #line 1147 "perly.y"
1292 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1293 op_prepend_elem(OP_LIST,
1294 (ps[(4) - (5)].val.opval),
1295 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1296 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1297 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1298 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1303 #line 1163 "perly.y"
1304 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1305 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1306 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1311 #line 1168 "perly.y"
1312 { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
1313 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1318 #line 1172 "perly.y"
1319 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1323 #line 1174 "perly.y"
1324 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1325 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1330 #line 1178 "perly.y"
1331 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1332 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1333 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1338 #line 1183 "perly.y"
1339 { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
1343 #line 1185 "perly.y"
1344 { (yyval.opval) = sawparens(newNULLLIST());
1345 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1346 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1351 #line 1190 "perly.y"
1352 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1356 #line 1192 "perly.y"
1357 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1361 #line 1194 "perly.y"
1362 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1366 #line 1196 "perly.y"
1367 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1371 #line 1198 "perly.y"
1372 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1376 #line 1200 "perly.y"
1377 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1381 #line 1202 "perly.y"
1382 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1383 newOP(OP_PUSHMARK, 0),
1384 newLISTOP(OP_ASLICE, 0,
1385 list((ps[(3) - (4)].val.opval)),
1386 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1387 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1388 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1393 #line 1211 "perly.y"
1394 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1395 newOP(OP_PUSHMARK, 0),
1396 newLISTOP(OP_HSLICE, 0,
1397 list((ps[(3) - (5)].val.opval)),
1398 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1399 PL_parser->expect = XOPERATOR;
1400 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1401 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1402 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1407 #line 1222 "perly.y"
1408 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1412 #line 1224 "perly.y"
1413 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1417 #line 1226 "perly.y"
1418 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1419 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1420 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1425 #line 1231 "perly.y"
1427 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1428 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1430 OP* op = (yyval.opval);
1431 if (op->op_type == OP_CONST) { /* defeat const fold */
1432 op = (OP*)op->op_madprop->mad_val;
1434 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1435 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1441 #line 1244 "perly.y"
1442 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1443 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1444 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1449 #line 1249 "perly.y"
1450 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1451 PL_hints |= HINT_BLOCK_SCOPE;
1452 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1457 #line 1254 "perly.y"
1458 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1459 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1464 #line 1258 "perly.y"
1465 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1466 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1471 #line 1262 "perly.y"
1472 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1473 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1478 #line 1266 "perly.y"
1479 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1480 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1485 #line 1270 "perly.y"
1486 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1487 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1492 #line 1274 "perly.y"
1493 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1494 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1499 #line 1278 "perly.y"
1500 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1501 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1506 #line 1282 "perly.y"
1507 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1511 #line 1284 "perly.y"
1512 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1513 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1517 #line 1287 "perly.y"
1518 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1519 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1524 #line 1291 "perly.y"
1525 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1526 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1527 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1528 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1533 #line 1297 "perly.y"
1534 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1535 scalar((ps[(1) - (1)].val.opval))); ;}
1539 #line 1300 "perly.y"
1540 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1541 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1542 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1544 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1545 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1546 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1551 #line 1309 "perly.y"
1552 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1553 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1554 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1555 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1560 #line 1315 "perly.y"
1561 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1562 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1563 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1568 #line 1322 "perly.y"
1570 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1571 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1572 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1577 #line 1332 "perly.y"
1578 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1580 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1581 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1582 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1588 #line 1340 "perly.y"
1589 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1590 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1595 #line 1347 "perly.y"
1596 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1597 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1598 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1603 #line 1352 "perly.y"
1604 { (yyval.opval) = sawparens(newNULLLIST());
1605 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1606 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1611 #line 1357 "perly.y"
1612 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1616 #line 1359 "perly.y"
1617 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1621 #line 1361 "perly.y"
1622 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1626 #line 1366 "perly.y"
1627 { (yyval.opval) = (OP*)NULL; ;}
1631 #line 1368 "perly.y"
1632 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1636 #line 1372 "perly.y"
1637 { (yyval.opval) = (OP*)NULL; ;}
1641 #line 1374 "perly.y"
1642 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1646 #line 1378 "perly.y"
1647 { (yyval.i_tkval) = (ps[(1) - (1)].val.i_tkval); ;}
1651 #line 1380 "perly.y"
1652 { munge_qwlist_to_paren_list((ps[(1) - (1)].val.opval)); ;}
1656 #line 1382 "perly.y"
1657 { (yyval.i_tkval) = (ps[(3) - (3)].val.i_tkval); ;}
1661 #line 1388 "perly.y"
1662 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1666 #line 1392 "perly.y"
1667 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1668 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1673 #line 1398 "perly.y"
1674 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1675 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1680 #line 1404 "perly.y"
1681 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1682 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1687 #line 1410 "perly.y"
1688 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1689 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1694 #line 1416 "perly.y"
1695 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1696 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1701 #line 1422 "perly.y"
1702 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1703 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1708 #line 1429 "perly.y"
1709 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1713 #line 1431 "perly.y"
1714 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1718 #line 1433 "perly.y"
1719 { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
1723 #line 1436 "perly.y"
1724 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1728 /* Line 1267 of yacc.c. */