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.opval) = Nullop; ;}
56 (yyval.opval) = IF_MAD(
57 append_list(OP_LINESEQ,
58 (LISTOP*)(ps[(1) - (2)].val.opval), (LISTOP*)(ps[(2) - (2)].val.opval)),
59 (ps[(1) - (2)].val.opval));
65 { (yyval.opval) = append_list(OP_LINESEQ,
66 (LISTOP*)(ps[(1) - (2)].val.opval), (LISTOP*)(ps[(2) - (2)].val.opval));
67 PL_pad_reset_pending = TRUE;
68 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
69 PL_hints |= HINT_BLOCK_SCOPE;
75 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
76 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
81 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
86 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
92 if (PVAL((ps[(1) - (2)].val.p_tkval))) {
93 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), newOP(OP_NULL, 0));
94 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),(yyval.opval),'L');
95 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first,';');
98 (yyval.opval) = IF_MAD(
101 PL_parser->copline = NOLINE;
102 TOKEN_FREE((ps[(1) - (2)].val.p_tkval));
103 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
105 PL_parser->expect = XSTATE;
112 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)), (ps[(2) - (3)].val.opval));
113 PL_parser->expect = XSTATE;
115 /* sideff might already have a nexstate */
116 OP* op = ((LISTOP*)(yyval.opval))->op_first;
118 while (op->op_sibling &&
119 op->op_sibling->op_type == OP_NEXTSTATE)
121 token_getmad((ps[(1) - (3)].val.p_tkval),op,'L');
122 token_getmad((ps[(3) - (3)].val.i_tkval),op,';');
130 { (yyval.opval) = Nullop; ;}
135 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
140 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
141 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
147 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
148 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
154 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
155 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
161 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
162 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
168 { (yyval.opval) = newFOROP(0, Nullch, (line_t)IVAL((ps[(2) - (3)].val.i_tkval)),
169 Nullop, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), Nullop);
170 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first->op_sibling,'w');
176 { (yyval.opval) = Nullop; ;}
181 { ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = scope((ps[(2) - (2)].val.opval));
182 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
188 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
189 (yyval.opval) = newCONDOP(0, (ps[(3) - (6)].val.opval), scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
190 PL_hints |= HINT_BLOCK_SCOPE;
191 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
192 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
193 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
199 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
200 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
201 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
202 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
203 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
204 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
210 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
211 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
212 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
213 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
214 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
215 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
221 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
222 newWHENOP((ps[(4) - (6)].val.opval), scope((ps[(6) - (6)].val.opval)))); ;}
227 { (yyval.opval) = newWHENOP(0, scope((ps[(2) - (2)].val.opval))); ;}
232 { (yyval.opval) = Nullop; ;}
237 { (yyval.opval) = scope((ps[(2) - (2)].val.opval));
238 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
245 PL_parser->copline = (line_t)(ps[(2) - (9)].val.i_tkval);
246 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
247 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
248 innerop = newWHILEOP(0, 1, (LOOP*)Nullop,
249 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))));
250 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
251 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
252 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
253 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
260 PL_parser->copline = (line_t)(ps[(2) - (9)].val.i_tkval);
261 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
262 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
263 innerop = newWHILEOP(0, 1, (LOOP*)Nullop,
264 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))));
265 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
266 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
267 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
268 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
275 (yyval.opval) = block_end((ps[(4) - (10)].val.ival),
276 innerop = newFOROP(0, PVAL((ps[(1) - (10)].val.p_tkval)), (line_t)IVAL((ps[(2) - (10)].val.i_tkval)),
277 (ps[(5) - (10)].val.opval), (ps[(7) - (10)].val.opval), (ps[(9) - (10)].val.opval), (ps[(10) - (10)].val.opval)));
278 TOKEN_GETMAD((ps[(1) - (10)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
279 TOKEN_GETMAD((ps[(2) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
280 TOKEN_GETMAD((ps[(3) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'d');
281 TOKEN_GETMAD((ps[(6) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
282 TOKEN_GETMAD((ps[(8) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
289 (yyval.opval) = block_end((ps[(5) - (9)].val.ival),
290 innerop = newFOROP(0, PVAL((ps[(1) - (9)].val.p_tkval)), (line_t)IVAL((ps[(2) - (9)].val.i_tkval)),
291 mod((ps[(3) - (9)].val.opval), OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
292 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
293 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
294 TOKEN_GETMAD((ps[(4) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
295 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
302 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
303 innerop = newFOROP(0, PVAL((ps[(1) - (8)].val.p_tkval)), (line_t)IVAL((ps[(2) - (8)].val.i_tkval)),
304 Nullop, (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
305 TOKEN_GETMAD((ps[(1) - (8)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
306 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
307 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
308 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
315 PL_parser->copline = (line_t)IVAL((ps[(2) - (12)].val.i_tkval));
316 forop = newSTATEOP(0, PVAL((ps[(1) - (12)].val.p_tkval)),
317 newWHILEOP(0, 1, (LOOP*)Nullop,
318 IVAL((ps[(2) - (12)].val.i_tkval)), scalar((ps[(7) - (12)].val.opval)),
319 (ps[(12) - (12)].val.opval), (ps[(10) - (12)].val.opval), (ps[(9) - (12)].val.ival)));
321 forop = newUNOP(OP_NULL, 0, append_elem(OP_LINESEQ,
323 CopLABEL_alloc(((ps[(1) - (12)].val.p_tkval))->tk_lval.pval),
324 ((ps[(5) - (12)].val.opval) ? (ps[(5) - (12)].val.opval) : newOP(OP_NULL, 0)) ),
327 token_getmad((ps[(2) - (12)].val.i_tkval),forop,'3');
328 token_getmad((ps[(3) - (12)].val.i_tkval),forop,'(');
329 token_getmad((ps[(6) - (12)].val.i_tkval),forop,'1');
330 token_getmad((ps[(8) - (12)].val.i_tkval),forop,'2');
331 token_getmad((ps[(11) - (12)].val.i_tkval),forop,')');
332 token_getmad((ps[(1) - (12)].val.p_tkval),forop,'L');
334 if ((ps[(5) - (12)].val.opval)) {
335 forop = append_elem(OP_LINESEQ,
336 newSTATEOP(0, CopLABEL_alloc((ps[(1) - (12)].val.p_tkval)), (ps[(5) - (12)].val.opval)),
342 (yyval.opval) = block_end((ps[(4) - (12)].val.ival), forop); ;}
347 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)),
348 newWHILEOP(0, 1, (LOOP*)Nullop,
349 NOLINE, Nullop, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval), 0));
350 TOKEN_GETMAD((ps[(1) - (3)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
355 { PL_parser->copline = (line_t) (ps[(2) - (8)].val.i_tkval);
356 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
357 newSTATEOP(0, PVAL((ps[(1) - (8)].val.p_tkval)),
358 newGIVENOP((ps[(6) - (8)].val.opval), scope((ps[(8) - (8)].val.opval)),
359 (PADOFFSET) (ps[(5) - (8)].val.ival)) )); ;}
364 { (yyval.ival) = (PL_min_intro_pending &&
365 PL_max_intro_pending >= PL_min_intro_pending);
371 { (yyval.opval) = Nullop; ;}
377 (void)scan_num("1", &tmplval);
378 (yyval.opval) = tmplval.opval; ;}
383 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
388 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
393 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
398 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
406 tmplval.pval = Nullch;
407 (yyval.p_tkval) = newTOKEN(OP_NULL, tmplval, 0);
409 (yyval.p_tkval) = Nullch;
416 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
421 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
426 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
431 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
436 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
441 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
446 { (yyval.opval) = newOP(OP_NULL,0);
447 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
453 { SvREFCNT_inc_simple_void(PL_compcv);
455 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
456 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
457 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
458 token_free((ps[(1) - (4)].val.i_tkval));
460 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
461 (yyval.opval) = Nullop;
468 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
473 { (yyval.opval) = Nullop; ;}
478 { SvREFCNT_inc_simple_void(PL_compcv);
480 (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));
481 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
483 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));
484 (yyval.opval) = Nullop;
491 { SvREFCNT_inc_simple_void(PL_compcv);
494 OP* o = newSVOP(OP_ANONCODE, 0,
495 (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)));
496 (yyval.opval) = newOP(OP_NULL,0);
497 op_getmad(o,(yyval.opval),'&');
498 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
499 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
500 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
501 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
502 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
503 (ps[(6) - (6)].val.opval)->op_madprop = 0;
506 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));
507 (yyval.opval) = Nullop;
514 { (yyval.ival) = start_subparse(FALSE, 0);
515 SAVEFREESV(PL_compcv); ;}
520 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
521 SAVEFREESV(PL_compcv); ;}
526 { (yyval.ival) = start_subparse(TRUE, 0);
527 SAVEFREESV(PL_compcv); ;}
532 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
533 if (strEQ(name, "BEGIN") || strEQ(name, "END")
534 || strEQ(name, "INIT") || strEQ(name, "CHECK")
535 || strEQ(name, "UNITCHECK"))
536 CvSPECIAL_on(PL_compcv);
537 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
542 { (yyval.opval) = Nullop; ;}
547 { (yyval.opval) = Nullop; ;}
552 { (yyval.opval) = (ps[(2) - (2)].val.opval);
553 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
559 { (yyval.opval) = IF_MAD(
563 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
569 { (yyval.opval) = (ps[(2) - (2)].val.opval);
570 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
576 { (yyval.opval) = IF_MAD(
580 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
586 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
591 { (yyval.opval) = IF_MAD(
595 PL_parser->expect = XSTATE;
596 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
604 (yyval.opval) = package((ps[(2) - (3)].val.opval));
605 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
606 token_getmad((ps[(3) - (3)].val.i_tkval),(yyval.opval),';');
608 package((ps[(2) - (3)].val.opval));
609 (yyval.opval) = Nullop;
616 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
621 { SvREFCNT_inc_simple_void(PL_compcv);
623 (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));
624 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
625 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
626 if (PL_parser->rsfp_filters &&
627 AvFILLp(PL_parser->rsfp_filters) >= 0)
628 append_madprops(newMADPROP('!', MAD_PV, "", 0), (yyval.opval), 0);
630 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));
631 (yyval.opval) = Nullop;
638 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
639 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
645 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
646 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
652 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
653 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
661 OP* op = newNULLLIST();
662 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
663 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
665 (yyval.opval) = (ps[(1) - (2)].val.opval);
673 OP* term = (ps[(3) - (3)].val.opval);
675 term = newUNOP(OP_NULL, 0, term);
676 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
678 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
684 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
685 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
686 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
692 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
693 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
694 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
695 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
696 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
702 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
704 prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
705 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
706 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
707 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
708 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
714 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
715 append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
716 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
717 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
723 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
725 prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
726 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
732 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
734 prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
735 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
736 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
737 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
743 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
744 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
750 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
751 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
752 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
753 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
759 { SvREFCNT_inc_simple_void(PL_compcv);
760 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, Nullop, (ps[(3) - (3)].val.opval)); ;}
765 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
767 prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
773 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
774 PL_parser->expect = XOPERATOR;
775 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
776 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
777 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
783 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
784 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
785 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
791 { (yyval.opval) = newBINOP(OP_AELEM, 0,
792 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
793 scalar((ps[(4) - (5)].val.opval)));
794 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
795 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
796 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
802 { (yyval.opval) = newBINOP(OP_AELEM, 0,
803 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
804 scalar((ps[(3) - (4)].val.opval)));
805 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
806 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
812 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
813 PL_parser->expect = XOPERATOR;
814 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
815 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
816 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
822 { (yyval.opval) = newBINOP(OP_HELEM, 0,
823 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
824 jmaybe((ps[(4) - (6)].val.opval)));
825 PL_parser->expect = XOPERATOR;
826 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
827 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
828 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
829 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
835 { (yyval.opval) = newBINOP(OP_HELEM, 0,
836 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
837 jmaybe((ps[(3) - (5)].val.opval)));
838 PL_parser->expect = XOPERATOR;
839 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
840 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
841 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
847 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
848 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
849 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
850 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
851 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
857 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
858 append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
859 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
860 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
861 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
862 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
868 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
869 append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
870 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
871 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
872 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
878 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
879 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
880 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
881 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
887 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
888 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
889 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
890 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
891 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
897 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), Nullop);
898 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
899 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
900 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
901 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
907 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
908 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
914 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
915 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
921 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
922 scalar((ps[(1) - (3)].val.opval));
923 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
924 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
930 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
931 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
937 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
938 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
944 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
945 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
951 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
952 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
958 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
959 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
965 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
966 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
973 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
976 op = (UNOP*)(yyval.opval);
977 op = (UNOP*)op->op_first; /* get to flop */
978 op = (UNOP*)op->op_first; /* get to flip */
979 op = (UNOP*)op->op_first; /* get to range */
980 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
987 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
988 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
994 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
995 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1001 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1002 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1008 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1009 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1010 ((yyval.opval)->op_type == OP_NOT
1011 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1018 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1019 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1025 { (yyval.opval) = IF_MAD(
1026 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1027 (ps[(2) - (2)].val.opval)
1029 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1035 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1036 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1042 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1043 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1049 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1050 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1051 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1057 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1058 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1059 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1065 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1066 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1067 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1073 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1074 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1075 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1081 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1082 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1083 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1089 { (yyval.opval) = newANONLIST(Nullop);
1090 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1091 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1097 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1098 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1099 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1100 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1105 #line 1000 "perly.y"
1106 { (yyval.opval) = newANONHASH(Nullop);
1107 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1108 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1109 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1114 #line 1006 "perly.y"
1115 { SvREFCNT_inc_simple_void(PL_compcv);
1116 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1117 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1118 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1119 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1124 #line 1017 "perly.y"
1125 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1126 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1131 #line 1021 "perly.y"
1132 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
1133 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1138 #line 1025 "perly.y"
1139 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1140 OPf_SPECIAL|OPf_STACKED,
1141 prepend_elem(OP_LIST,
1143 (OPpENTERSUB_AMPER<<8),
1144 scalar((ps[(2) - (4)].val.opval))
1146 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1147 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1148 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1153 #line 1037 "perly.y"
1154 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1155 OPf_SPECIAL|OPf_STACKED,
1156 append_elem(OP_LIST,
1157 (ps[(4) - (5)].val.opval),
1159 (OPpENTERSUB_AMPER<<8),
1160 scalar((ps[(2) - (5)].val.opval))
1162 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1163 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1164 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1169 #line 1050 "perly.y"
1170 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1171 prepend_elem(OP_LIST,
1172 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), Nullop)); dep();
1173 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1174 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1175 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1180 #line 1058 "perly.y"
1181 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1182 prepend_elem(OP_LIST,
1183 (ps[(4) - (5)].val.opval),
1184 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1185 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1186 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1187 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1192 #line 1074 "perly.y"
1193 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1194 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1195 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1200 #line 1079 "perly.y"
1201 { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
1202 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1207 #line 1083 "perly.y"
1208 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1212 #line 1085 "perly.y"
1213 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1214 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1219 #line 1089 "perly.y"
1220 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1221 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1222 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1227 #line 1094 "perly.y"
1228 { (yyval.opval) = sawparens(newNULLLIST());
1229 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1230 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1235 #line 1099 "perly.y"
1236 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1240 #line 1101 "perly.y"
1241 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1245 #line 1103 "perly.y"
1246 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1250 #line 1105 "perly.y"
1251 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1255 #line 1107 "perly.y"
1256 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1260 #line 1109 "perly.y"
1261 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1265 #line 1111 "perly.y"
1266 { (yyval.opval) = prepend_elem(OP_ASLICE,
1267 newOP(OP_PUSHMARK, 0),
1268 newLISTOP(OP_ASLICE, 0,
1269 list((ps[(3) - (4)].val.opval)),
1270 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1271 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1272 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1277 #line 1120 "perly.y"
1278 { (yyval.opval) = prepend_elem(OP_HSLICE,
1279 newOP(OP_PUSHMARK, 0),
1280 newLISTOP(OP_HSLICE, 0,
1281 list((ps[(3) - (5)].val.opval)),
1282 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1283 PL_parser->expect = XOPERATOR;
1284 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1285 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1286 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1291 #line 1131 "perly.y"
1292 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1296 #line 1133 "perly.y"
1297 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1301 #line 1135 "perly.y"
1302 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1303 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1304 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1309 #line 1140 "perly.y"
1311 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1312 append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1314 OP* op = (yyval.opval);
1315 if (op->op_type == OP_CONST) { /* defeat const fold */
1316 op = (OP*)op->op_madprop->mad_val;
1318 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1319 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1325 #line 1153 "perly.y"
1326 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1327 append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1328 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1333 #line 1158 "perly.y"
1334 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1335 PL_hints |= HINT_BLOCK_SCOPE;
1336 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1341 #line 1163 "perly.y"
1342 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1343 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1348 #line 1167 "perly.y"
1349 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1350 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1355 #line 1171 "perly.y"
1356 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1357 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1362 #line 1175 "perly.y"
1363 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1364 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1369 #line 1179 "perly.y"
1370 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1371 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1376 #line 1183 "perly.y"
1377 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1378 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1383 #line 1187 "perly.y"
1384 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1385 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1390 #line 1191 "perly.y"
1391 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1395 #line 1193 "perly.y"
1396 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1397 append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1401 #line 1196 "perly.y"
1402 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1403 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1408 #line 1200 "perly.y"
1409 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1410 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1411 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1412 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1417 #line 1206 "perly.y"
1418 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1419 scalar((ps[(1) - (1)].val.opval))); ;}
1423 #line 1209 "perly.y"
1424 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1425 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1426 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1428 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1429 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1430 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1435 #line 1218 "perly.y"
1436 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1437 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1438 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1439 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1444 #line 1224 "perly.y"
1445 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1446 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1447 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1452 #line 1234 "perly.y"
1453 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1455 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1456 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1457 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1463 #line 1242 "perly.y"
1464 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1465 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1470 #line 1249 "perly.y"
1471 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1472 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1473 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1478 #line 1254 "perly.y"
1479 { (yyval.opval) = sawparens(newNULLLIST());
1480 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1481 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1486 #line 1259 "perly.y"
1487 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1491 #line 1261 "perly.y"
1492 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1496 #line 1263 "perly.y"
1497 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1501 #line 1268 "perly.y"
1502 { (yyval.opval) = Nullop; ;}
1506 #line 1270 "perly.y"
1507 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1511 #line 1274 "perly.y"
1512 { (yyval.opval) = Nullop; ;}
1516 #line 1276 "perly.y"
1517 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1521 #line 1278 "perly.y"
1524 OP* op = newNULLLIST();
1525 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
1526 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
1528 (yyval.opval) = (ps[(1) - (2)].val.opval);
1535 #line 1293 "perly.y"
1536 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1540 #line 1297 "perly.y"
1541 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1542 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1547 #line 1303 "perly.y"
1548 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1549 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1554 #line 1309 "perly.y"
1555 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1556 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1561 #line 1315 "perly.y"
1562 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1563 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1568 #line 1321 "perly.y"
1569 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1570 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1575 #line 1327 "perly.y"
1576 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1577 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1582 #line 1334 "perly.y"
1583 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1587 #line 1336 "perly.y"
1588 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1592 #line 1338 "perly.y"
1593 { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
1597 #line 1341 "perly.y"
1598 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1602 /* Line 1267 of yacc.c. */