3 { (yyval.ival) = (ps[(1) - (2)].val.ival); newPROG(block_end((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval))); ;}
8 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
9 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
10 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
11 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
12 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
18 { (yyval.ival) = block_start(TRUE); ;}
23 { (yyval.ival) = (I32) allocmy("$_"); ;}
29 PL_parser->expect = XSTATE; (yyval.ival) = block_start(TRUE);
35 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
36 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
37 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
38 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
39 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
45 { (yyval.ival) = block_start(FALSE); ;}
50 { (yyval.ival) = PL_savestack_ix; ;}
55 { (yyval.opval) = Nullop; ;}
61 (yyval.opval) = IF_MAD(
62 append_list(OP_LINESEQ,
63 (LISTOP*)(ps[(1) - (2)].val.opval), (LISTOP*)(ps[(2) - (2)].val.opval)),
64 (ps[(1) - (2)].val.opval));
70 { LEAVE_SCOPE((ps[(2) - (3)].val.ival));
71 (yyval.opval) = append_list(OP_LINESEQ,
72 (LISTOP*)(ps[(1) - (3)].val.opval), (LISTOP*)(ps[(3) - (3)].val.opval));
73 PL_pad_reset_pending = TRUE;
74 if ((ps[(1) - (3)].val.opval) && (ps[(3) - (3)].val.opval)) PL_hints |= HINT_BLOCK_SCOPE; ;}
79 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
80 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
85 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
90 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
96 if (PVAL((ps[(1) - (2)].val.p_tkval))) {
97 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), newOP(OP_NULL, 0));
98 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),(yyval.opval),'L');
99 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first,';');
102 (yyval.opval) = IF_MAD(
105 PL_parser->copline = NOLINE;
106 TOKEN_FREE((ps[(1) - (2)].val.p_tkval));
107 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
109 PL_parser->expect = XSTATE;
116 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)), (ps[(2) - (3)].val.opval));
117 PL_parser->expect = XSTATE;
119 /* sideff might already have a nexstate */
120 OP* op = ((LISTOP*)(yyval.opval))->op_first;
122 while (op->op_sibling &&
123 op->op_sibling->op_type == OP_NEXTSTATE)
125 token_getmad((ps[(1) - (3)].val.p_tkval),op,'L');
126 token_getmad((ps[(3) - (3)].val.i_tkval),op,';');
134 { (yyval.opval) = Nullop; ;}
139 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
144 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
145 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
151 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
152 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
158 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
159 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
165 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
166 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
172 { (yyval.opval) = newFOROP(0, Nullch, (line_t)IVAL((ps[(2) - (3)].val.i_tkval)),
173 Nullop, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), Nullop);
174 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first->op_sibling,'w');
180 { (yyval.opval) = Nullop; ;}
185 { ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = scope((ps[(2) - (2)].val.opval));
186 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
192 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
193 (yyval.opval) = newCONDOP(0, (ps[(3) - (6)].val.opval), scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
194 PL_hints |= HINT_BLOCK_SCOPE;
195 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
196 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
197 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
203 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
204 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
205 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
206 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
207 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
208 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
214 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
215 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
216 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
217 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
218 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
219 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
225 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
226 newWHENOP((ps[(4) - (6)].val.opval), scope((ps[(6) - (6)].val.opval)))); ;}
231 { (yyval.opval) = newWHENOP(0, scope((ps[(2) - (2)].val.opval))); ;}
236 { (yyval.opval) = Nullop; ;}
241 { (yyval.opval) = scope((ps[(2) - (2)].val.opval));
242 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
249 PL_parser->copline = (line_t)(ps[(2) - (9)].val.i_tkval);
250 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
251 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
252 innerop = newWHILEOP(0, 1, (LOOP*)Nullop,
253 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))));
254 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
255 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
256 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
257 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
264 PL_parser->copline = (line_t)(ps[(2) - (9)].val.i_tkval);
265 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
266 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
267 innerop = newWHILEOP(0, 1, (LOOP*)Nullop,
268 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))));
269 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
270 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
271 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
272 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
279 (yyval.opval) = block_end((ps[(4) - (10)].val.ival),
280 innerop = newFOROP(0, PVAL((ps[(1) - (10)].val.p_tkval)), (line_t)IVAL((ps[(2) - (10)].val.i_tkval)),
281 (ps[(5) - (10)].val.opval), (ps[(7) - (10)].val.opval), (ps[(9) - (10)].val.opval), (ps[(10) - (10)].val.opval)));
282 TOKEN_GETMAD((ps[(1) - (10)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
283 TOKEN_GETMAD((ps[(2) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
284 TOKEN_GETMAD((ps[(3) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'d');
285 TOKEN_GETMAD((ps[(6) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
286 TOKEN_GETMAD((ps[(8) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
293 (yyval.opval) = block_end((ps[(5) - (9)].val.ival),
294 innerop = newFOROP(0, PVAL((ps[(1) - (9)].val.p_tkval)), (line_t)IVAL((ps[(2) - (9)].val.i_tkval)),
295 mod((ps[(3) - (9)].val.opval), OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
296 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
297 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
298 TOKEN_GETMAD((ps[(4) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
299 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
306 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
307 innerop = newFOROP(0, PVAL((ps[(1) - (8)].val.p_tkval)), (line_t)IVAL((ps[(2) - (8)].val.i_tkval)),
308 Nullop, (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
309 TOKEN_GETMAD((ps[(1) - (8)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
310 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
311 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
312 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
319 PL_parser->copline = (line_t)IVAL((ps[(2) - (12)].val.i_tkval));
320 forop = newSTATEOP(0, PVAL((ps[(1) - (12)].val.p_tkval)),
321 newWHILEOP(0, 1, (LOOP*)Nullop,
322 IVAL((ps[(2) - (12)].val.i_tkval)), scalar((ps[(7) - (12)].val.opval)),
323 (ps[(12) - (12)].val.opval), (ps[(10) - (12)].val.opval), (ps[(9) - (12)].val.ival)));
325 forop = newUNOP(OP_NULL, 0, append_elem(OP_LINESEQ,
327 CopLABEL_alloc(((ps[(1) - (12)].val.p_tkval))->tk_lval.pval),
328 ((ps[(5) - (12)].val.opval) ? (ps[(5) - (12)].val.opval) : newOP(OP_NULL, 0)) ),
331 token_getmad((ps[(2) - (12)].val.i_tkval),forop,'3');
332 token_getmad((ps[(3) - (12)].val.i_tkval),forop,'(');
333 token_getmad((ps[(6) - (12)].val.i_tkval),forop,'1');
334 token_getmad((ps[(8) - (12)].val.i_tkval),forop,'2');
335 token_getmad((ps[(11) - (12)].val.i_tkval),forop,')');
336 token_getmad((ps[(1) - (12)].val.p_tkval),forop,'L');
338 if ((ps[(5) - (12)].val.opval)) {
339 forop = append_elem(OP_LINESEQ,
340 newSTATEOP(0, CopLABEL_alloc((ps[(1) - (12)].val.p_tkval)), (ps[(5) - (12)].val.opval)),
346 (yyval.opval) = block_end((ps[(4) - (12)].val.ival), forop); ;}
351 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)),
352 newWHILEOP(0, 1, (LOOP*)Nullop,
353 NOLINE, Nullop, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval), 0));
354 TOKEN_GETMAD((ps[(1) - (3)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
359 { PL_parser->copline = (line_t) (ps[(2) - (8)].val.i_tkval);
360 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
361 newSTATEOP(0, PVAL((ps[(1) - (8)].val.p_tkval)),
362 newGIVENOP((ps[(6) - (8)].val.opval), scope((ps[(8) - (8)].val.opval)),
363 (PADOFFSET) (ps[(5) - (8)].val.ival)) )); ;}
368 { (yyval.ival) = (PL_min_intro_pending &&
369 PL_max_intro_pending >= PL_min_intro_pending);
375 { (yyval.opval) = Nullop; ;}
381 (void)scan_num("1", &tmplval);
382 (yyval.opval) = tmplval.opval; ;}
387 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
392 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
397 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
402 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
410 tmplval.pval = Nullch;
411 (yyval.p_tkval) = newTOKEN(OP_NULL, tmplval, 0);
413 (yyval.p_tkval) = Nullch;
420 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
425 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
430 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
435 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
440 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
445 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
450 { (yyval.opval) = newOP(OP_NULL,0);
451 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
457 { SvREFCNT_inc_simple_void(PL_compcv);
459 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
460 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
461 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
462 token_free((ps[(1) - (4)].val.i_tkval));
464 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
465 (yyval.opval) = Nullop;
472 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
477 { (yyval.opval) = Nullop; ;}
482 { SvREFCNT_inc_simple_void(PL_compcv);
484 (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));
485 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
487 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));
488 (yyval.opval) = Nullop;
495 { SvREFCNT_inc_simple_void(PL_compcv);
497 OP* o = newSVOP(OP_ANONCODE, 0,
498 (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)));
499 (yyval.opval) = newOP(OP_NULL,0);
500 op_getmad(o,(yyval.opval),'&');
501 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
502 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
503 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
504 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
505 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
506 (ps[(6) - (6)].val.opval)->op_madprop = 0;
508 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));
509 (yyval.opval) = Nullop;
516 { (yyval.ival) = start_subparse(FALSE, 0);
517 SAVEFREESV(PL_compcv); ;}
522 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
523 SAVEFREESV(PL_compcv); ;}
528 { (yyval.ival) = start_subparse(TRUE, 0);
529 SAVEFREESV(PL_compcv); ;}
534 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
535 if (strEQ(name, "BEGIN") || strEQ(name, "END")
536 || strEQ(name, "INIT") || strEQ(name, "CHECK")
537 || strEQ(name, "UNITCHECK"))
538 CvSPECIAL_on(PL_compcv);
539 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
544 { (yyval.opval) = Nullop; ;}
549 { (yyval.opval) = Nullop; ;}
554 { (yyval.opval) = (ps[(2) - (2)].val.opval);
555 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
561 { (yyval.opval) = IF_MAD(
565 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
571 { (yyval.opval) = (ps[(2) - (2)].val.opval);
572 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
578 { (yyval.opval) = IF_MAD(
582 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
588 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
593 { (yyval.opval) = IF_MAD(
597 PL_parser->expect = XSTATE;
598 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
606 (yyval.opval) = package((ps[(2) - (3)].val.opval));
607 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
608 token_getmad((ps[(3) - (3)].val.i_tkval),(yyval.opval),';');
610 package((ps[(2) - (3)].val.opval));
611 (yyval.opval) = Nullop;
618 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
623 { SvREFCNT_inc_simple_void(PL_compcv);
625 (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));
626 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
627 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
628 if (PL_parser->rsfp_filters &&
629 AvFILLp(PL_parser->rsfp_filters) >= 0)
630 append_madprops(newMADPROP('!', MAD_PV, "", 0), (yyval.opval), 0);
632 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));
633 (yyval.opval) = Nullop;
640 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
641 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
647 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
648 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
654 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
655 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
663 OP* op = newNULLLIST();
664 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
665 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
667 (yyval.opval) = (ps[(1) - (2)].val.opval);
675 OP* term = (ps[(3) - (3)].val.opval);
677 term = newUNOP(OP_NULL, 0, term);
678 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
680 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
686 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
687 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
688 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
694 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
695 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
696 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
697 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
698 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
704 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
706 prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
707 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
708 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
709 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
710 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
716 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
717 append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
718 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
719 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
725 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
727 prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
728 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
734 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
736 prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
737 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
738 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
739 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
745 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
746 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
752 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
753 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
754 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
755 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
761 { SvREFCNT_inc_simple_void(PL_compcv);
762 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, Nullop, (ps[(3) - (3)].val.opval)); ;}
767 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
769 prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
775 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
776 PL_parser->expect = XOPERATOR;
777 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
778 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
779 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
785 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
786 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
787 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
793 { (yyval.opval) = newBINOP(OP_AELEM, 0,
794 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
795 scalar((ps[(4) - (5)].val.opval)));
796 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
797 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
798 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
804 { (yyval.opval) = newBINOP(OP_AELEM, 0,
805 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
806 scalar((ps[(3) - (4)].val.opval)));
807 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
808 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
814 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
815 PL_parser->expect = XOPERATOR;
816 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
817 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
818 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
824 { (yyval.opval) = newBINOP(OP_HELEM, 0,
825 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
826 jmaybe((ps[(4) - (6)].val.opval)));
827 PL_parser->expect = XOPERATOR;
828 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
829 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
830 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
831 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
837 { (yyval.opval) = newBINOP(OP_HELEM, 0,
838 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
839 jmaybe((ps[(3) - (5)].val.opval)));
840 PL_parser->expect = XOPERATOR;
841 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
842 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
843 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
849 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
850 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
851 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
852 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
853 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
859 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
860 append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
861 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
862 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
863 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
864 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
870 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
871 append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
872 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
873 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
874 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
880 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
881 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
882 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
883 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
889 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
890 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
891 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
892 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
893 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
899 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), Nullop);
900 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
901 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
902 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
903 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
909 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
910 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
916 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
917 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
923 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
924 scalar((ps[(1) - (3)].val.opval));
925 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
926 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
932 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
933 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
939 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
940 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
946 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
947 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
953 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
954 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
960 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
961 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
967 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
968 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
975 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
978 op = (UNOP*)(yyval.opval);
979 op = (UNOP*)op->op_first; /* get to flop */
980 op = (UNOP*)op->op_first; /* get to flip */
981 op = (UNOP*)op->op_first; /* get to range */
982 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
989 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
990 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
996 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
997 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1003 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1004 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1010 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1011 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1012 ((yyval.opval)->op_type == OP_NOT
1013 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1020 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1021 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1027 { (yyval.opval) = IF_MAD(
1028 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1029 (ps[(2) - (2)].val.opval)
1031 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1037 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1038 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1044 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1045 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1051 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1052 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1053 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1059 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1060 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1061 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1067 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1068 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1069 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1075 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1076 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1077 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1083 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1084 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1085 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1091 { (yyval.opval) = newANONLIST(Nullop);
1092 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1093 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1099 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1100 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1101 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1102 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1107 #line 1000 "perly.y"
1108 { (yyval.opval) = newANONHASH(Nullop);
1109 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1110 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1111 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1116 #line 1006 "perly.y"
1117 { SvREFCNT_inc_simple_void(PL_compcv);
1118 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1119 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1120 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1121 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1126 #line 1017 "perly.y"
1127 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1128 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1133 #line 1021 "perly.y"
1134 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
1135 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1140 #line 1025 "perly.y"
1141 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1142 OPf_SPECIAL|OPf_STACKED,
1143 prepend_elem(OP_LIST,
1145 (OPpENTERSUB_AMPER<<8),
1146 scalar((ps[(2) - (4)].val.opval))
1148 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1149 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1150 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1155 #line 1037 "perly.y"
1156 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1157 OPf_SPECIAL|OPf_STACKED,
1158 append_elem(OP_LIST,
1159 (ps[(4) - (5)].val.opval),
1161 (OPpENTERSUB_AMPER<<8),
1162 scalar((ps[(2) - (5)].val.opval))
1164 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1165 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1166 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1171 #line 1050 "perly.y"
1172 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1173 prepend_elem(OP_LIST,
1174 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), Nullop)); dep();
1175 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1176 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1177 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1182 #line 1058 "perly.y"
1183 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1184 prepend_elem(OP_LIST,
1185 (ps[(4) - (5)].val.opval),
1186 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1187 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1188 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1189 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1194 #line 1074 "perly.y"
1195 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1196 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1197 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1202 #line 1079 "perly.y"
1203 { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
1204 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1209 #line 1083 "perly.y"
1210 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1214 #line 1085 "perly.y"
1215 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1216 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1221 #line 1089 "perly.y"
1222 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1223 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1224 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1229 #line 1094 "perly.y"
1230 { (yyval.opval) = sawparens(newNULLLIST());
1231 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1232 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1237 #line 1099 "perly.y"
1238 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1242 #line 1101 "perly.y"
1243 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1247 #line 1103 "perly.y"
1248 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1252 #line 1105 "perly.y"
1253 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1257 #line 1107 "perly.y"
1258 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1262 #line 1109 "perly.y"
1263 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1267 #line 1111 "perly.y"
1268 { (yyval.opval) = prepend_elem(OP_ASLICE,
1269 newOP(OP_PUSHMARK, 0),
1270 newLISTOP(OP_ASLICE, 0,
1271 list((ps[(3) - (4)].val.opval)),
1272 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1273 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1274 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1279 #line 1120 "perly.y"
1280 { (yyval.opval) = prepend_elem(OP_HSLICE,
1281 newOP(OP_PUSHMARK, 0),
1282 newLISTOP(OP_HSLICE, 0,
1283 list((ps[(3) - (5)].val.opval)),
1284 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1285 PL_parser->expect = XOPERATOR;
1286 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1287 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1288 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1293 #line 1131 "perly.y"
1294 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1298 #line 1133 "perly.y"
1299 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1303 #line 1135 "perly.y"
1304 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1305 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1306 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1311 #line 1140 "perly.y"
1313 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1314 append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1316 OP* op = (yyval.opval);
1317 if (op->op_type == OP_CONST) { /* defeat const fold */
1318 op = (OP*)op->op_madprop->mad_val;
1320 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1321 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1327 #line 1153 "perly.y"
1328 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1329 append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1330 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1335 #line 1158 "perly.y"
1336 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1337 PL_hints |= HINT_BLOCK_SCOPE;
1338 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1343 #line 1163 "perly.y"
1344 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1345 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1350 #line 1167 "perly.y"
1351 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1352 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1357 #line 1171 "perly.y"
1358 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1359 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1364 #line 1175 "perly.y"
1365 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1366 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1371 #line 1179 "perly.y"
1372 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1373 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1378 #line 1183 "perly.y"
1379 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1380 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1385 #line 1187 "perly.y"
1386 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1387 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1392 #line 1191 "perly.y"
1393 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1397 #line 1193 "perly.y"
1398 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1399 append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1403 #line 1196 "perly.y"
1404 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1405 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1410 #line 1200 "perly.y"
1411 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1412 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1413 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1414 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1419 #line 1206 "perly.y"
1420 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1421 scalar((ps[(1) - (1)].val.opval))); ;}
1425 #line 1209 "perly.y"
1426 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1427 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1428 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1430 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1431 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1432 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1437 #line 1218 "perly.y"
1438 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1439 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1440 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1441 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1446 #line 1224 "perly.y"
1447 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1448 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1449 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1454 #line 1234 "perly.y"
1455 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1457 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1458 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1459 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1465 #line 1242 "perly.y"
1466 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1467 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1472 #line 1249 "perly.y"
1473 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1474 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1475 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1480 #line 1254 "perly.y"
1481 { (yyval.opval) = sawparens(newNULLLIST());
1482 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1483 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1488 #line 1259 "perly.y"
1489 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1493 #line 1261 "perly.y"
1494 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1498 #line 1263 "perly.y"
1499 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1503 #line 1268 "perly.y"
1504 { (yyval.opval) = Nullop; ;}
1508 #line 1270 "perly.y"
1509 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1513 #line 1274 "perly.y"
1514 { (yyval.opval) = Nullop; ;}
1518 #line 1276 "perly.y"
1519 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1523 #line 1278 "perly.y"
1526 OP* op = newNULLLIST();
1527 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
1528 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
1530 (yyval.opval) = (ps[(1) - (2)].val.opval);
1537 #line 1293 "perly.y"
1538 { PL_in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1542 #line 1297 "perly.y"
1543 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1544 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1549 #line 1303 "perly.y"
1550 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1551 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1556 #line 1309 "perly.y"
1557 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1558 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1563 #line 1315 "perly.y"
1564 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1565 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1570 #line 1321 "perly.y"
1571 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1572 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1577 #line 1327 "perly.y"
1578 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1579 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1584 #line 1334 "perly.y"
1585 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1589 #line 1336 "perly.y"
1590 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1594 #line 1338 "perly.y"
1595 { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
1599 #line 1341 "perly.y"
1600 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1604 /* Line 1267 of yacc.c. */