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)IVAL((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)IVAL((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) IVAL((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');
464 CV *fmtcv = PL_compcv;
465 SvREFCNT_inc_simple_void(PL_compcv);
467 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
468 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
469 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
470 token_free((ps[(1) - (4)].val.i_tkval));
472 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
473 (yyval.opval) = (OP*)NULL;
475 if (CvOUTSIDE(fmtcv) && !CvUNIQUE(CvOUTSIDE(fmtcv))) {
476 SvREFCNT_inc_simple_void(fmtcv);
477 pad_add_anon((SV*)fmtcv, OP_NULL);
484 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
489 { (yyval.opval) = (OP*)NULL; ;}
494 { SvREFCNT_inc_simple_void(PL_compcv);
496 (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));
497 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
499 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));
500 (yyval.opval) = (OP*)NULL;
507 { SvREFCNT_inc_simple_void(PL_compcv);
510 OP* o = newSVOP(OP_ANONCODE, 0,
511 (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)));
512 (yyval.opval) = newOP(OP_NULL,0);
513 op_getmad(o,(yyval.opval),'&');
514 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
515 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
516 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
517 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
518 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
519 (ps[(6) - (6)].val.opval)->op_madprop = 0;
522 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));
523 (yyval.opval) = (OP*)NULL;
530 { (yyval.ival) = start_subparse(FALSE, 0);
531 SAVEFREESV(PL_compcv); ;}
536 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
537 SAVEFREESV(PL_compcv); ;}
542 { (yyval.ival) = start_subparse(TRUE, 0);
543 SAVEFREESV(PL_compcv); ;}
548 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
549 if (strEQ(name, "BEGIN") || strEQ(name, "END")
550 || strEQ(name, "INIT") || strEQ(name, "CHECK")
551 || strEQ(name, "UNITCHECK"))
552 CvSPECIAL_on(PL_compcv);
553 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
558 { (yyval.opval) = (OP*)NULL; ;}
563 { (yyval.opval) = (OP*)NULL; ;}
568 { (yyval.opval) = (ps[(2) - (2)].val.opval);
569 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
575 { (yyval.opval) = IF_MAD(
579 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
585 { (yyval.opval) = (ps[(2) - (2)].val.opval);
586 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
592 { (yyval.opval) = IF_MAD(
596 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
602 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
607 { (yyval.opval) = IF_MAD(
611 PL_parser->expect = XSTATE;
612 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
620 (yyval.opval) = package((ps[(3) - (4)].val.opval));
621 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
622 if ((ps[(2) - (4)].val.opval))
623 package_version((ps[(2) - (4)].val.opval));
624 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
626 package((ps[(3) - (4)].val.opval));
627 if ((ps[(2) - (4)].val.opval))
628 package_version((ps[(2) - (4)].val.opval));
629 (yyval.opval) = (OP*)NULL;
636 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
641 { SvREFCNT_inc_simple_void(PL_compcv);
643 (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));
644 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
645 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
646 if (PL_parser->rsfp_filters &&
647 AvFILLp(PL_parser->rsfp_filters) >= 0)
648 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
650 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));
651 (yyval.opval) = (OP*)NULL;
658 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
659 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
665 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
666 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
672 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
673 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
681 OP* op = newNULLLIST();
682 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
683 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
685 (yyval.opval) = (ps[(1) - (2)].val.opval);
693 OP* term = (ps[(3) - (3)].val.opval);
695 term = newUNOP(OP_NULL, 0, term);
696 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
698 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
704 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
705 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
706 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
712 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
713 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
714 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
715 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
716 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
722 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
724 prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
725 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
726 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
727 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
728 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
734 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
735 append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
736 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
737 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
743 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
745 prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
746 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
752 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
754 prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
755 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
756 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
757 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
763 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
764 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
770 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
771 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
772 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
773 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
779 { SvREFCNT_inc_simple_void(PL_compcv);
780 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
785 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
787 prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
793 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
794 PL_parser->expect = XOPERATOR;
795 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
796 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
797 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
803 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
804 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
805 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
811 { (yyval.opval) = newBINOP(OP_AELEM, 0,
812 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
813 scalar((ps[(4) - (5)].val.opval)));
814 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
815 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
816 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
822 { (yyval.opval) = newBINOP(OP_AELEM, 0,
823 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
824 scalar((ps[(3) - (4)].val.opval)));
825 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
826 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
832 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
833 PL_parser->expect = XOPERATOR;
834 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
835 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
836 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
842 { (yyval.opval) = newBINOP(OP_HELEM, 0,
843 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
844 jmaybe((ps[(4) - (6)].val.opval)));
845 PL_parser->expect = XOPERATOR;
846 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
847 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
848 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
849 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
855 { (yyval.opval) = newBINOP(OP_HELEM, 0,
856 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
857 jmaybe((ps[(3) - (5)].val.opval)));
858 PL_parser->expect = XOPERATOR;
859 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
860 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
861 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
867 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
868 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
869 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
870 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
871 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
877 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
878 append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
879 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
880 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
881 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
882 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
888 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
889 append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
890 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
891 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
892 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
898 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
899 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
900 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
901 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
907 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
908 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
909 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
910 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
911 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
917 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
918 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
919 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
920 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
921 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
927 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (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 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
942 scalar((ps[(1) - (3)].val.opval));
943 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
944 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
950 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
951 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
957 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
958 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
964 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
965 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
971 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
972 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
978 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
979 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
985 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
986 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
993 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
996 op = (UNOP*)(yyval.opval);
997 op = (UNOP*)op->op_first; /* get to flop */
998 op = (UNOP*)op->op_first; /* get to flip */
999 op = (UNOP*)op->op_first; /* get to range */
1000 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1007 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1008 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1014 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1015 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1021 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1022 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1028 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1029 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1030 ((yyval.opval)->op_type == OP_NOT
1031 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1038 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1039 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1045 { (yyval.opval) = IF_MAD(
1046 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1047 (ps[(2) - (2)].val.opval)
1049 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1055 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1056 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1062 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1063 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1069 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1070 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1071 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1077 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1078 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1079 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1085 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1086 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1087 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1093 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1094 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1095 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1100 #line 1004 "perly.y"
1101 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1102 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1103 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1108 #line 1009 "perly.y"
1109 { (yyval.opval) = newANONLIST((OP*)NULL);
1110 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1111 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1116 #line 1014 "perly.y"
1117 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1118 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1119 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1120 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1125 #line 1020 "perly.y"
1126 { (yyval.opval) = newANONHASH((OP*)NULL);
1127 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1128 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1129 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1134 #line 1026 "perly.y"
1135 { SvREFCNT_inc_simple_void(PL_compcv);
1136 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1137 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1138 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1139 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1144 #line 1037 "perly.y"
1145 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1146 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1151 #line 1041 "perly.y"
1152 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
1153 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1158 #line 1045 "perly.y"
1159 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1160 OPf_SPECIAL|OPf_STACKED,
1161 prepend_elem(OP_LIST,
1163 (OPpENTERSUB_AMPER<<8),
1164 scalar((ps[(2) - (4)].val.opval))
1165 )),(OP*)NULL)); dep();
1166 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1167 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1168 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1173 #line 1057 "perly.y"
1174 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1175 OPf_SPECIAL|OPf_STACKED,
1176 append_elem(OP_LIST,
1177 (ps[(4) - (5)].val.opval),
1179 (OPpENTERSUB_AMPER<<8),
1180 scalar((ps[(2) - (5)].val.opval))
1182 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1183 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1184 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1189 #line 1070 "perly.y"
1190 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1191 prepend_elem(OP_LIST,
1192 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1193 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1194 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1195 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1200 #line 1078 "perly.y"
1201 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1202 prepend_elem(OP_LIST,
1203 (ps[(4) - (5)].val.opval),
1204 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1205 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1206 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1207 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1212 #line 1094 "perly.y"
1213 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1214 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1215 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1220 #line 1099 "perly.y"
1221 { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
1222 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1227 #line 1103 "perly.y"
1228 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1232 #line 1105 "perly.y"
1233 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1234 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1239 #line 1109 "perly.y"
1240 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1241 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1242 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1247 #line 1114 "perly.y"
1248 { (yyval.opval) = sawparens(newNULLLIST());
1249 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1250 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1255 #line 1119 "perly.y"
1256 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1260 #line 1121 "perly.y"
1261 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1265 #line 1123 "perly.y"
1266 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1270 #line 1125 "perly.y"
1271 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1275 #line 1127 "perly.y"
1276 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1280 #line 1129 "perly.y"
1281 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1285 #line 1131 "perly.y"
1286 { (yyval.opval) = prepend_elem(OP_ASLICE,
1287 newOP(OP_PUSHMARK, 0),
1288 newLISTOP(OP_ASLICE, 0,
1289 list((ps[(3) - (4)].val.opval)),
1290 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1291 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1292 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1297 #line 1140 "perly.y"
1298 { (yyval.opval) = prepend_elem(OP_HSLICE,
1299 newOP(OP_PUSHMARK, 0),
1300 newLISTOP(OP_HSLICE, 0,
1301 list((ps[(3) - (5)].val.opval)),
1302 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1303 PL_parser->expect = XOPERATOR;
1304 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1305 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1306 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1311 #line 1151 "perly.y"
1312 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1316 #line 1153 "perly.y"
1317 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1321 #line 1155 "perly.y"
1322 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1323 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1324 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1329 #line 1160 "perly.y"
1331 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1332 append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1334 OP* op = (yyval.opval);
1335 if (op->op_type == OP_CONST) { /* defeat const fold */
1336 op = (OP*)op->op_madprop->mad_val;
1338 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1339 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1345 #line 1173 "perly.y"
1346 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1347 append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1348 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1353 #line 1178 "perly.y"
1354 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1355 PL_hints |= HINT_BLOCK_SCOPE;
1356 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1361 #line 1183 "perly.y"
1362 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1363 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1368 #line 1187 "perly.y"
1369 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1370 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1375 #line 1191 "perly.y"
1376 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1377 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1382 #line 1195 "perly.y"
1383 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1384 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1389 #line 1199 "perly.y"
1390 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1391 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1396 #line 1203 "perly.y"
1397 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1398 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1403 #line 1207 "perly.y"
1404 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1405 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1410 #line 1211 "perly.y"
1411 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1415 #line 1213 "perly.y"
1416 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1417 append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1421 #line 1216 "perly.y"
1422 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1423 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1428 #line 1220 "perly.y"
1429 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1430 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1431 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1432 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1437 #line 1226 "perly.y"
1438 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1439 scalar((ps[(1) - (1)].val.opval))); ;}
1443 #line 1229 "perly.y"
1444 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1445 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1446 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1448 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1449 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1450 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1455 #line 1238 "perly.y"
1456 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1457 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1458 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1459 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1464 #line 1244 "perly.y"
1465 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1466 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1467 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1472 #line 1251 "perly.y"
1474 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1475 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1476 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1481 #line 1261 "perly.y"
1482 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1484 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1485 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1486 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1492 #line 1269 "perly.y"
1493 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1494 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1499 #line 1276 "perly.y"
1500 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1501 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1502 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1507 #line 1281 "perly.y"
1508 { (yyval.opval) = sawparens(newNULLLIST());
1509 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1510 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1515 #line 1286 "perly.y"
1516 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1520 #line 1288 "perly.y"
1521 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1525 #line 1290 "perly.y"
1526 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1530 #line 1295 "perly.y"
1531 { (yyval.opval) = (OP*)NULL; ;}
1535 #line 1297 "perly.y"
1536 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1540 #line 1301 "perly.y"
1541 { (yyval.opval) = (OP*)NULL; ;}
1545 #line 1303 "perly.y"
1546 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1550 #line 1305 "perly.y"
1553 OP* op = newNULLLIST();
1554 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
1555 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
1557 (yyval.opval) = (ps[(1) - (2)].val.opval);
1564 #line 1320 "perly.y"
1565 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1569 #line 1324 "perly.y"
1570 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1571 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1576 #line 1330 "perly.y"
1577 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1578 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1583 #line 1336 "perly.y"
1584 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1585 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1590 #line 1342 "perly.y"
1591 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1592 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1597 #line 1348 "perly.y"
1598 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1599 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1604 #line 1354 "perly.y"
1605 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1606 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1611 #line 1361 "perly.y"
1612 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1616 #line 1363 "perly.y"
1617 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1621 #line 1365 "perly.y"
1622 { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
1626 #line 1368 "perly.y"
1627 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}