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) Perl_allocmy(aTHX_ STR_WITH_LEN("$_"), 0); ;}
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) = (OP*)NULL; ;}
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) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
135 { (yyval.opval) = (OP*)NULL; ;}
140 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
145 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
146 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
152 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
153 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
159 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
160 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
166 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
167 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
173 { (yyval.opval) = newFOROP(0, NULL, (line_t)IVAL((ps[(2) - (3)].val.i_tkval)),
174 (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
175 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first->op_sibling,'w');
181 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), scope((ps[(1) - (3)].val.opval))); ;}
186 { (yyval.opval) = (OP*)NULL; ;}
191 { ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = scope((ps[(2) - (2)].val.opval));
192 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
198 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
199 (yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)), scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
200 PL_hints |= HINT_BLOCK_SCOPE;
201 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
202 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
203 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
209 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
210 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
211 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
212 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
213 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
214 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
220 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
221 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
222 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
223 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
224 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
225 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
231 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
232 newWHENOP((ps[(4) - (6)].val.opval), scope((ps[(6) - (6)].val.opval)))); ;}
237 { (yyval.opval) = newWHENOP(0, scope((ps[(2) - (2)].val.opval))); ;}
242 { (yyval.opval) = (OP*)NULL; ;}
247 { (yyval.opval) = scope((ps[(2) - (2)].val.opval));
248 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
255 PL_parser->copline = (line_t)(ps[(2) - (9)].val.i_tkval);
256 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
257 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
258 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
259 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))));
260 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
261 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
262 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
263 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
270 PL_parser->copline = (line_t)(ps[(2) - (9)].val.i_tkval);
271 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
272 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
273 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
274 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))));
275 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
276 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
277 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
278 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
285 (yyval.opval) = block_end((ps[(4) - (10)].val.ival),
286 innerop = newFOROP(0, PVAL((ps[(1) - (10)].val.p_tkval)), (line_t)IVAL((ps[(2) - (10)].val.i_tkval)),
287 (ps[(5) - (10)].val.opval), (ps[(7) - (10)].val.opval), (ps[(9) - (10)].val.opval), (ps[(10) - (10)].val.opval)));
288 TOKEN_GETMAD((ps[(1) - (10)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
289 TOKEN_GETMAD((ps[(2) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
290 TOKEN_GETMAD((ps[(3) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'d');
291 TOKEN_GETMAD((ps[(6) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
292 TOKEN_GETMAD((ps[(8) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
299 (yyval.opval) = block_end((ps[(5) - (9)].val.ival),
300 innerop = newFOROP(0, PVAL((ps[(1) - (9)].val.p_tkval)), (line_t)IVAL((ps[(2) - (9)].val.i_tkval)),
301 mod((ps[(3) - (9)].val.opval), OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
302 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
303 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
304 TOKEN_GETMAD((ps[(4) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
305 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
312 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
313 innerop = newFOROP(0, PVAL((ps[(1) - (8)].val.p_tkval)), (line_t)IVAL((ps[(2) - (8)].val.i_tkval)),
314 (OP*)NULL, (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
315 TOKEN_GETMAD((ps[(1) - (8)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
316 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
317 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
318 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
325 PL_parser->copline = (line_t)IVAL((ps[(2) - (12)].val.i_tkval));
326 forop = newSTATEOP(0, PVAL((ps[(1) - (12)].val.p_tkval)),
327 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
328 IVAL((ps[(2) - (12)].val.i_tkval)), scalar((ps[(7) - (12)].val.opval)),
329 (ps[(12) - (12)].val.opval), (ps[(10) - (12)].val.opval), (ps[(9) - (12)].val.ival)));
331 forop = newUNOP(OP_NULL, 0, append_elem(OP_LINESEQ,
333 CopLABEL_alloc(((ps[(1) - (12)].val.p_tkval))->tk_lval.pval),
334 ((ps[(5) - (12)].val.opval) ? (ps[(5) - (12)].val.opval) : newOP(OP_NULL, 0)) ),
337 token_getmad((ps[(2) - (12)].val.i_tkval),forop,'3');
338 token_getmad((ps[(3) - (12)].val.i_tkval),forop,'(');
339 token_getmad((ps[(6) - (12)].val.i_tkval),forop,'1');
340 token_getmad((ps[(8) - (12)].val.i_tkval),forop,'2');
341 token_getmad((ps[(11) - (12)].val.i_tkval),forop,')');
342 token_getmad((ps[(1) - (12)].val.p_tkval),forop,'L');
344 if ((ps[(5) - (12)].val.opval)) {
345 forop = append_elem(OP_LINESEQ,
346 newSTATEOP(0, CopLABEL_alloc((ps[(1) - (12)].val.p_tkval)), (ps[(5) - (12)].val.opval)),
352 (yyval.opval) = block_end((ps[(4) - (12)].val.ival), forop); ;}
357 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)),
358 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
359 NOLINE, (OP*)NULL, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval), 0));
360 TOKEN_GETMAD((ps[(1) - (3)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
365 { PL_parser->copline = (line_t) (ps[(2) - (8)].val.i_tkval);
366 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
367 newSTATEOP(0, PVAL((ps[(1) - (8)].val.p_tkval)),
368 newGIVENOP((ps[(6) - (8)].val.opval), scope((ps[(8) - (8)].val.opval)),
369 (PADOFFSET) (ps[(5) - (8)].val.ival)) )); ;}
374 { (yyval.ival) = (PL_min_intro_pending &&
375 PL_max_intro_pending >= PL_min_intro_pending);
381 { (yyval.opval) = (OP*)NULL; ;}
387 (void)scan_num("1", &tmplval);
388 (yyval.opval) = tmplval.opval; ;}
393 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
398 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
403 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
408 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
417 (yyval.p_tkval) = newTOKEN(OP_NULL, tmplval, 0);
419 (yyval.p_tkval) = NULL;
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) = (ps[(1) - (1)].val.opval); ;}
451 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
456 { (yyval.opval) = newOP(OP_NULL,0);
457 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
463 { SvREFCNT_inc_simple_void(PL_compcv);
465 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
466 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
467 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
468 token_free((ps[(1) - (4)].val.i_tkval));
470 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
471 (yyval.opval) = (OP*)NULL;
478 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
483 { (yyval.opval) = (OP*)NULL; ;}
488 { SvREFCNT_inc_simple_void(PL_compcv);
490 (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));
491 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
493 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));
494 (yyval.opval) = (OP*)NULL;
501 { SvREFCNT_inc_simple_void(PL_compcv);
504 OP* o = newSVOP(OP_ANONCODE, 0,
505 (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)));
506 (yyval.opval) = newOP(OP_NULL,0);
507 op_getmad(o,(yyval.opval),'&');
508 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
509 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
510 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
511 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
512 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
513 (ps[(6) - (6)].val.opval)->op_madprop = 0;
516 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));
517 (yyval.opval) = (OP*)NULL;
524 { (yyval.ival) = start_subparse(FALSE, 0);
525 SAVEFREESV(PL_compcv); ;}
530 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
531 SAVEFREESV(PL_compcv); ;}
536 { (yyval.ival) = start_subparse(TRUE, 0);
537 SAVEFREESV(PL_compcv); ;}
542 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
543 if (strEQ(name, "BEGIN") || strEQ(name, "END")
544 || strEQ(name, "INIT") || strEQ(name, "CHECK")
545 || strEQ(name, "UNITCHECK"))
546 CvSPECIAL_on(PL_compcv);
547 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
552 { (yyval.opval) = (OP*)NULL; ;}
557 { (yyval.opval) = (OP*)NULL; ;}
562 { (yyval.opval) = (ps[(2) - (2)].val.opval);
563 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
569 { (yyval.opval) = IF_MAD(
573 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
579 { (yyval.opval) = (ps[(2) - (2)].val.opval);
580 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
586 { (yyval.opval) = IF_MAD(
590 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
596 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
601 { (yyval.opval) = IF_MAD(
605 PL_parser->expect = XSTATE;
606 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
614 (yyval.opval) = package((ps[(3) - (4)].val.opval));
615 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
616 if ((ps[(2) - (4)].val.opval))
617 package_version((ps[(2) - (4)].val.opval));
618 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
620 package((ps[(3) - (4)].val.opval));
621 if ((ps[(2) - (4)].val.opval))
622 package_version((ps[(2) - (4)].val.opval));
623 (yyval.opval) = (OP*)NULL;
630 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
635 { SvREFCNT_inc_simple_void(PL_compcv);
637 (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));
638 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
639 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
640 if (PL_parser->rsfp_filters &&
641 AvFILLp(PL_parser->rsfp_filters) >= 0)
642 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
644 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));
645 (yyval.opval) = (OP*)NULL;
652 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
653 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
659 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
660 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
666 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
667 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
675 OP* op = newNULLLIST();
676 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
677 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
679 (yyval.opval) = (ps[(1) - (2)].val.opval);
687 OP* term = (ps[(3) - (3)].val.opval);
689 term = newUNOP(OP_NULL, 0, term);
690 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
692 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
698 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
699 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
700 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
706 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
707 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
708 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
709 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
710 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
716 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
718 prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
719 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
720 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
721 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
722 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
728 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
729 append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
730 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
731 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
737 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
739 prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
740 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
746 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
748 prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
749 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
750 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
751 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
757 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
758 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
764 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
765 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
766 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
767 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
773 { SvREFCNT_inc_simple_void(PL_compcv);
774 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
779 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
781 prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
787 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
788 PL_parser->expect = XOPERATOR;
789 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
790 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
791 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
797 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
798 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
799 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
805 { (yyval.opval) = newBINOP(OP_AELEM, 0,
806 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
807 scalar((ps[(4) - (5)].val.opval)));
808 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
809 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
810 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
816 { (yyval.opval) = newBINOP(OP_AELEM, 0,
817 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
818 scalar((ps[(3) - (4)].val.opval)));
819 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
820 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
826 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
827 PL_parser->expect = XOPERATOR;
828 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
829 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
830 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
836 { (yyval.opval) = newBINOP(OP_HELEM, 0,
837 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
838 jmaybe((ps[(4) - (6)].val.opval)));
839 PL_parser->expect = XOPERATOR;
840 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
841 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
842 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
843 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
849 { (yyval.opval) = newBINOP(OP_HELEM, 0,
850 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
851 jmaybe((ps[(3) - (5)].val.opval)));
852 PL_parser->expect = XOPERATOR;
853 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
854 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
855 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
861 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
862 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
863 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
864 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
865 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
871 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
872 append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
873 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
874 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
875 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
876 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
882 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
883 append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
884 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
885 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
886 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
892 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
893 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
894 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
895 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
901 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
902 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
903 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
904 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
905 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
911 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
912 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
913 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
914 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
915 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
921 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
922 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
928 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
929 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
935 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
936 scalar((ps[(1) - (3)].val.opval));
937 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (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');
972 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
973 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
979 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
980 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
987 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
990 op = (UNOP*)(yyval.opval);
991 op = (UNOP*)op->op_first; /* get to flop */
992 op = (UNOP*)op->op_first; /* get to flip */
993 op = (UNOP*)op->op_first; /* get to range */
994 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1001 { (yyval.opval) = newLOGOP(OP_AND, 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) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1009 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1015 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1016 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1022 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1023 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1024 ((yyval.opval)->op_type == OP_NOT
1025 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1032 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1033 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1039 { (yyval.opval) = IF_MAD(
1040 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1041 (ps[(2) - (2)].val.opval)
1043 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1049 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1050 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1056 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1057 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1063 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1064 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1065 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1071 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1072 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1073 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1079 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1080 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1081 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1087 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1088 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1089 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1095 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1096 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1097 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1102 #line 1003 "perly.y"
1103 { (yyval.opval) = newANONLIST((OP*)NULL);
1104 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1105 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1110 #line 1008 "perly.y"
1111 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1112 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1113 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1114 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1119 #line 1014 "perly.y"
1120 { (yyval.opval) = newANONHASH((OP*)NULL);
1121 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1122 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1123 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1128 #line 1020 "perly.y"
1129 { SvREFCNT_inc_simple_void(PL_compcv);
1130 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1131 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1132 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1133 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1138 #line 1031 "perly.y"
1139 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1140 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1145 #line 1035 "perly.y"
1146 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
1147 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1152 #line 1039 "perly.y"
1153 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1154 OPf_SPECIAL|OPf_STACKED,
1155 prepend_elem(OP_LIST,
1157 (OPpENTERSUB_AMPER<<8),
1158 scalar((ps[(2) - (4)].val.opval))
1159 )),(OP*)NULL)); dep();
1160 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1161 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1162 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1167 #line 1051 "perly.y"
1168 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1169 OPf_SPECIAL|OPf_STACKED,
1170 append_elem(OP_LIST,
1171 (ps[(4) - (5)].val.opval),
1173 (OPpENTERSUB_AMPER<<8),
1174 scalar((ps[(2) - (5)].val.opval))
1176 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1177 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1178 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1183 #line 1064 "perly.y"
1184 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1185 prepend_elem(OP_LIST,
1186 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1187 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1188 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1189 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1194 #line 1072 "perly.y"
1195 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1196 prepend_elem(OP_LIST,
1197 (ps[(4) - (5)].val.opval),
1198 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1199 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1200 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1201 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1206 #line 1088 "perly.y"
1207 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1208 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1209 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1214 #line 1093 "perly.y"
1215 { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
1216 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1221 #line 1097 "perly.y"
1222 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1226 #line 1099 "perly.y"
1227 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1228 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1233 #line 1103 "perly.y"
1234 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1235 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1236 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1241 #line 1108 "perly.y"
1242 { (yyval.opval) = sawparens(newNULLLIST());
1243 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1244 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1249 #line 1113 "perly.y"
1250 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1254 #line 1115 "perly.y"
1255 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1259 #line 1117 "perly.y"
1260 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1264 #line 1119 "perly.y"
1265 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1269 #line 1121 "perly.y"
1270 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1274 #line 1123 "perly.y"
1275 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1279 #line 1125 "perly.y"
1280 { (yyval.opval) = prepend_elem(OP_ASLICE,
1281 newOP(OP_PUSHMARK, 0),
1282 newLISTOP(OP_ASLICE, 0,
1283 list((ps[(3) - (4)].val.opval)),
1284 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1285 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1286 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1291 #line 1134 "perly.y"
1292 { (yyval.opval) = prepend_elem(OP_HSLICE,
1293 newOP(OP_PUSHMARK, 0),
1294 newLISTOP(OP_HSLICE, 0,
1295 list((ps[(3) - (5)].val.opval)),
1296 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1297 PL_parser->expect = XOPERATOR;
1298 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1299 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1300 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1305 #line 1145 "perly.y"
1306 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1310 #line 1147 "perly.y"
1311 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1315 #line 1149 "perly.y"
1316 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1317 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1318 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1323 #line 1154 "perly.y"
1325 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1326 append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1328 OP* op = (yyval.opval);
1329 if (op->op_type == OP_CONST) { /* defeat const fold */
1330 op = (OP*)op->op_madprop->mad_val;
1332 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1333 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1339 #line 1167 "perly.y"
1340 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1341 append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1342 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1347 #line 1172 "perly.y"
1348 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1349 PL_hints |= HINT_BLOCK_SCOPE;
1350 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1355 #line 1177 "perly.y"
1356 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1357 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1362 #line 1181 "perly.y"
1363 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1364 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1369 #line 1185 "perly.y"
1370 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1371 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1376 #line 1189 "perly.y"
1377 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1378 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1383 #line 1193 "perly.y"
1384 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1385 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1390 #line 1197 "perly.y"
1391 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1392 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1397 #line 1201 "perly.y"
1398 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1399 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1404 #line 1205 "perly.y"
1405 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1409 #line 1207 "perly.y"
1410 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1411 append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1415 #line 1210 "perly.y"
1416 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1417 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1422 #line 1214 "perly.y"
1423 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1424 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1425 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1426 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1431 #line 1220 "perly.y"
1432 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1433 scalar((ps[(1) - (1)].val.opval))); ;}
1437 #line 1223 "perly.y"
1438 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1439 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1440 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1442 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1443 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1444 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1449 #line 1232 "perly.y"
1450 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1451 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1452 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1453 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1458 #line 1238 "perly.y"
1459 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1460 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1461 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1466 #line 1245 "perly.y"
1468 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1469 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1470 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1475 #line 1255 "perly.y"
1476 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1478 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1479 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1480 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1486 #line 1263 "perly.y"
1487 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1488 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1493 #line 1270 "perly.y"
1494 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1495 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1496 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1501 #line 1275 "perly.y"
1502 { (yyval.opval) = sawparens(newNULLLIST());
1503 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1504 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1509 #line 1280 "perly.y"
1510 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1514 #line 1282 "perly.y"
1515 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1519 #line 1284 "perly.y"
1520 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1524 #line 1289 "perly.y"
1525 { (yyval.opval) = (OP*)NULL; ;}
1529 #line 1291 "perly.y"
1530 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1534 #line 1295 "perly.y"
1535 { (yyval.opval) = (OP*)NULL; ;}
1539 #line 1297 "perly.y"
1540 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1544 #line 1299 "perly.y"
1547 OP* op = newNULLLIST();
1548 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
1549 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
1551 (yyval.opval) = (ps[(1) - (2)].val.opval);
1558 #line 1314 "perly.y"
1559 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1563 #line 1318 "perly.y"
1564 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1565 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1570 #line 1324 "perly.y"
1571 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1572 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1577 #line 1330 "perly.y"
1578 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1579 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1584 #line 1336 "perly.y"
1585 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1586 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1591 #line 1342 "perly.y"
1592 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1593 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1598 #line 1348 "perly.y"
1599 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1600 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1605 #line 1355 "perly.y"
1606 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1610 #line 1357 "perly.y"
1611 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1615 #line 1359 "perly.y"
1616 { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
1620 #line 1362 "perly.y"
1621 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}