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);
498 OP* o = newSVOP(OP_ANONCODE, 0,
499 (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)));
500 (yyval.opval) = newOP(OP_NULL,0);
501 op_getmad(o,(yyval.opval),'&');
502 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
503 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
504 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
505 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
506 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
507 (ps[(6) - (6)].val.opval)->op_madprop = 0;
510 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));
511 (yyval.opval) = Nullop;
518 { (yyval.ival) = start_subparse(FALSE, 0);
519 SAVEFREESV(PL_compcv); ;}
524 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
525 SAVEFREESV(PL_compcv); ;}
530 { (yyval.ival) = start_subparse(TRUE, 0);
531 SAVEFREESV(PL_compcv); ;}
536 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
537 if (strEQ(name, "BEGIN") || strEQ(name, "END")
538 || strEQ(name, "INIT") || strEQ(name, "CHECK")
539 || strEQ(name, "UNITCHECK"))
540 CvSPECIAL_on(PL_compcv);
541 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
546 { (yyval.opval) = Nullop; ;}
551 { (yyval.opval) = Nullop; ;}
556 { (yyval.opval) = (ps[(2) - (2)].val.opval);
557 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
563 { (yyval.opval) = IF_MAD(
567 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
573 { (yyval.opval) = (ps[(2) - (2)].val.opval);
574 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
580 { (yyval.opval) = IF_MAD(
584 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
590 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
595 { (yyval.opval) = IF_MAD(
599 PL_parser->expect = XSTATE;
600 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
608 (yyval.opval) = package((ps[(2) - (3)].val.opval));
609 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
610 token_getmad((ps[(3) - (3)].val.i_tkval),(yyval.opval),';');
612 package((ps[(2) - (3)].val.opval));
613 (yyval.opval) = Nullop;
620 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
625 { SvREFCNT_inc_simple_void(PL_compcv);
627 (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));
628 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
629 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
630 if (PL_parser->rsfp_filters &&
631 AvFILLp(PL_parser->rsfp_filters) >= 0)
632 append_madprops(newMADPROP('!', MAD_PV, "", 0), (yyval.opval), 0);
634 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));
635 (yyval.opval) = Nullop;
642 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
643 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
649 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
650 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
656 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
657 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
665 OP* op = newNULLLIST();
666 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
667 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
669 (yyval.opval) = (ps[(1) - (2)].val.opval);
677 OP* term = (ps[(3) - (3)].val.opval);
679 term = newUNOP(OP_NULL, 0, term);
680 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
682 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
688 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
689 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
690 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
696 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
697 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
698 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
699 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
700 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
706 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
708 prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
709 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
710 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
711 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
712 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
718 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
719 append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
720 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
721 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
727 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
729 prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
730 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
736 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
738 prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
739 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
740 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
741 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
747 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
748 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
754 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
755 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
756 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
757 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
763 { SvREFCNT_inc_simple_void(PL_compcv);
764 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, Nullop, (ps[(3) - (3)].val.opval)); ;}
769 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
771 prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
777 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
778 PL_parser->expect = XOPERATOR;
779 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
780 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
781 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
787 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
788 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
789 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
795 { (yyval.opval) = newBINOP(OP_AELEM, 0,
796 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
797 scalar((ps[(4) - (5)].val.opval)));
798 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
799 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
800 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
806 { (yyval.opval) = newBINOP(OP_AELEM, 0,
807 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
808 scalar((ps[(3) - (4)].val.opval)));
809 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
810 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
816 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
817 PL_parser->expect = XOPERATOR;
818 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
819 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
820 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
826 { (yyval.opval) = newBINOP(OP_HELEM, 0,
827 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
828 jmaybe((ps[(4) - (6)].val.opval)));
829 PL_parser->expect = XOPERATOR;
830 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
831 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
832 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
833 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
839 { (yyval.opval) = newBINOP(OP_HELEM, 0,
840 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
841 jmaybe((ps[(3) - (5)].val.opval)));
842 PL_parser->expect = XOPERATOR;
843 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
844 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
845 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
851 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
852 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
853 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
854 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
855 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
861 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
862 append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
863 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
864 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
865 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
866 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
872 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
873 append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
874 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
875 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
876 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
882 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
883 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
884 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
885 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
891 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
892 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
893 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
894 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
895 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
901 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), Nullop);
902 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
903 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
904 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
905 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
911 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
912 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
918 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
919 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
925 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
926 scalar((ps[(1) - (3)].val.opval));
927 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
928 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
934 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
935 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
941 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
942 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
948 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
949 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
955 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
956 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
962 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
963 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
969 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
970 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
977 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
980 op = (UNOP*)(yyval.opval);
981 op = (UNOP*)op->op_first; /* get to flop */
982 op = (UNOP*)op->op_first; /* get to flip */
983 op = (UNOP*)op->op_first; /* get to range */
984 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
991 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
992 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
998 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
999 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1005 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1006 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1012 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1013 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1014 ((yyval.opval)->op_type == OP_NOT
1015 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1022 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1023 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1029 { (yyval.opval) = IF_MAD(
1030 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1031 (ps[(2) - (2)].val.opval)
1033 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1039 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1040 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1046 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1047 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1053 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1054 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1055 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1061 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1062 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1063 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1069 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1070 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1071 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1077 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1078 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1079 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1085 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1086 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1087 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1093 { (yyval.opval) = newANONLIST(Nullop);
1094 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1095 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1101 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1102 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1103 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1104 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1109 #line 1002 "perly.y"
1110 { (yyval.opval) = newANONHASH(Nullop);
1111 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1112 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1113 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1118 #line 1008 "perly.y"
1119 { SvREFCNT_inc_simple_void(PL_compcv);
1120 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1121 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1122 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1123 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1128 #line 1019 "perly.y"
1129 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1130 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1135 #line 1023 "perly.y"
1136 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
1137 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1142 #line 1027 "perly.y"
1143 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1144 OPf_SPECIAL|OPf_STACKED,
1145 prepend_elem(OP_LIST,
1147 (OPpENTERSUB_AMPER<<8),
1148 scalar((ps[(2) - (4)].val.opval))
1150 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1151 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1152 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1157 #line 1039 "perly.y"
1158 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1159 OPf_SPECIAL|OPf_STACKED,
1160 append_elem(OP_LIST,
1161 (ps[(4) - (5)].val.opval),
1163 (OPpENTERSUB_AMPER<<8),
1164 scalar((ps[(2) - (5)].val.opval))
1166 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1167 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1168 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1173 #line 1052 "perly.y"
1174 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1175 prepend_elem(OP_LIST,
1176 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), Nullop)); dep();
1177 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1178 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1179 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1184 #line 1060 "perly.y"
1185 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1186 prepend_elem(OP_LIST,
1187 (ps[(4) - (5)].val.opval),
1188 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1189 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1190 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1191 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1196 #line 1076 "perly.y"
1197 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1198 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1199 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1204 #line 1081 "perly.y"
1205 { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
1206 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1211 #line 1085 "perly.y"
1212 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1216 #line 1087 "perly.y"
1217 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1218 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1223 #line 1091 "perly.y"
1224 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1225 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1226 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1231 #line 1096 "perly.y"
1232 { (yyval.opval) = sawparens(newNULLLIST());
1233 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1234 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1239 #line 1101 "perly.y"
1240 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1244 #line 1103 "perly.y"
1245 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1249 #line 1105 "perly.y"
1250 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1254 #line 1107 "perly.y"
1255 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1259 #line 1109 "perly.y"
1260 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1264 #line 1111 "perly.y"
1265 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1269 #line 1113 "perly.y"
1270 { (yyval.opval) = prepend_elem(OP_ASLICE,
1271 newOP(OP_PUSHMARK, 0),
1272 newLISTOP(OP_ASLICE, 0,
1273 list((ps[(3) - (4)].val.opval)),
1274 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1275 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1276 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1281 #line 1122 "perly.y"
1282 { (yyval.opval) = prepend_elem(OP_HSLICE,
1283 newOP(OP_PUSHMARK, 0),
1284 newLISTOP(OP_HSLICE, 0,
1285 list((ps[(3) - (5)].val.opval)),
1286 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1287 PL_parser->expect = XOPERATOR;
1288 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1289 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1290 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1295 #line 1133 "perly.y"
1296 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1300 #line 1135 "perly.y"
1301 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1305 #line 1137 "perly.y"
1306 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1307 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1308 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1313 #line 1142 "perly.y"
1315 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1316 append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1318 OP* op = (yyval.opval);
1319 if (op->op_type == OP_CONST) { /* defeat const fold */
1320 op = (OP*)op->op_madprop->mad_val;
1322 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1323 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1329 #line 1155 "perly.y"
1330 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1331 append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1332 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1337 #line 1160 "perly.y"
1338 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1339 PL_hints |= HINT_BLOCK_SCOPE;
1340 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1345 #line 1165 "perly.y"
1346 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1347 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1352 #line 1169 "perly.y"
1353 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1354 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1359 #line 1173 "perly.y"
1360 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1361 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1366 #line 1177 "perly.y"
1367 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1368 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1373 #line 1181 "perly.y"
1374 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1375 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1380 #line 1185 "perly.y"
1381 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1382 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1387 #line 1189 "perly.y"
1388 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1389 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1394 #line 1193 "perly.y"
1395 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1399 #line 1195 "perly.y"
1400 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1401 append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1405 #line 1198 "perly.y"
1406 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1407 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1412 #line 1202 "perly.y"
1413 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1414 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1415 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1416 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1421 #line 1208 "perly.y"
1422 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1423 scalar((ps[(1) - (1)].val.opval))); ;}
1427 #line 1211 "perly.y"
1428 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1429 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1430 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1432 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1433 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1434 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1439 #line 1220 "perly.y"
1440 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1441 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1442 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1443 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1448 #line 1226 "perly.y"
1449 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1450 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1451 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1456 #line 1236 "perly.y"
1457 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1459 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1460 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1461 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1467 #line 1244 "perly.y"
1468 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1469 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1474 #line 1251 "perly.y"
1475 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1476 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1477 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1482 #line 1256 "perly.y"
1483 { (yyval.opval) = sawparens(newNULLLIST());
1484 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1485 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1490 #line 1261 "perly.y"
1491 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1495 #line 1263 "perly.y"
1496 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1500 #line 1265 "perly.y"
1501 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1505 #line 1270 "perly.y"
1506 { (yyval.opval) = Nullop; ;}
1510 #line 1272 "perly.y"
1511 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1515 #line 1276 "perly.y"
1516 { (yyval.opval) = Nullop; ;}
1520 #line 1278 "perly.y"
1521 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1525 #line 1280 "perly.y"
1528 OP* op = newNULLLIST();
1529 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
1530 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
1532 (yyval.opval) = (ps[(1) - (2)].val.opval);
1539 #line 1295 "perly.y"
1540 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1544 #line 1299 "perly.y"
1545 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1546 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1551 #line 1305 "perly.y"
1552 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1553 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1558 #line 1311 "perly.y"
1559 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1560 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1565 #line 1317 "perly.y"
1566 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1567 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1572 #line 1323 "perly.y"
1573 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1574 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1579 #line 1329 "perly.y"
1580 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1581 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1586 #line 1336 "perly.y"
1587 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1591 #line 1338 "perly.y"
1592 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1596 #line 1340 "perly.y"
1597 { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
1601 #line 1343 "perly.y"
1602 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1606 /* Line 1267 of yacc.c. */