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, NULL,
131 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
132 NOLINE, (OP*)NULL, (ps[(1) - (1)].val.opval),
138 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
143 { (yyval.opval) = (OP*)NULL; ;}
148 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
153 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
154 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
160 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
161 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
167 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
168 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
174 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
175 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
181 { (yyval.opval) = newFOROP(0, NULL, (line_t)IVAL((ps[(2) - (3)].val.i_tkval)),
182 (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
183 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first->op_sibling,'w');
189 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), scope((ps[(1) - (3)].val.opval))); ;}
194 { (yyval.opval) = (OP*)NULL; ;}
199 { ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = scope((ps[(2) - (2)].val.opval));
200 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
206 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
207 (yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)), scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
208 PL_hints |= HINT_BLOCK_SCOPE;
209 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
210 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
211 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
217 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
218 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
219 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
220 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
221 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
222 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
228 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
229 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
230 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
231 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
232 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
233 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
239 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
240 newWHENOP((ps[(4) - (6)].val.opval), scope((ps[(6) - (6)].val.opval)))); ;}
245 { (yyval.opval) = newWHENOP(0, scope((ps[(2) - (2)].val.opval))); ;}
250 { (yyval.opval) = (OP*)NULL; ;}
255 { (yyval.opval) = scope((ps[(2) - (2)].val.opval));
256 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
263 PL_parser->copline = (line_t)IVAL((ps[(2) - (9)].val.i_tkval));
264 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
265 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
266 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
267 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))));
268 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
269 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
270 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
271 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
278 PL_parser->copline = (line_t)IVAL((ps[(2) - (9)].val.i_tkval));
279 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
280 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
281 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
282 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))));
283 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
284 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
285 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
286 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
293 (yyval.opval) = block_end((ps[(4) - (10)].val.ival),
294 innerop = newFOROP(0, PVAL((ps[(1) - (10)].val.p_tkval)), (line_t)IVAL((ps[(2) - (10)].val.i_tkval)),
295 (ps[(5) - (10)].val.opval), (ps[(7) - (10)].val.opval), (ps[(9) - (10)].val.opval), (ps[(10) - (10)].val.opval)));
296 TOKEN_GETMAD((ps[(1) - (10)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
297 TOKEN_GETMAD((ps[(2) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
298 TOKEN_GETMAD((ps[(3) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'d');
299 TOKEN_GETMAD((ps[(6) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
300 TOKEN_GETMAD((ps[(8) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
307 (yyval.opval) = block_end((ps[(5) - (9)].val.ival),
308 innerop = newFOROP(0, PVAL((ps[(1) - (9)].val.p_tkval)), (line_t)IVAL((ps[(2) - (9)].val.i_tkval)),
309 mod((ps[(3) - (9)].val.opval), OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
310 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
311 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
312 TOKEN_GETMAD((ps[(4) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
313 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
320 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
321 innerop = newFOROP(0, PVAL((ps[(1) - (8)].val.p_tkval)), (line_t)IVAL((ps[(2) - (8)].val.i_tkval)),
322 (OP*)NULL, (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
323 TOKEN_GETMAD((ps[(1) - (8)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
324 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
325 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
326 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
333 PL_parser->copline = (line_t)IVAL((ps[(2) - (12)].val.i_tkval));
334 forop = newSTATEOP(0, PVAL((ps[(1) - (12)].val.p_tkval)),
335 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
336 IVAL((ps[(2) - (12)].val.i_tkval)), scalar((ps[(7) - (12)].val.opval)),
337 (ps[(12) - (12)].val.opval), (ps[(10) - (12)].val.opval), (ps[(9) - (12)].val.ival)));
339 forop = newUNOP(OP_NULL, 0, append_elem(OP_LINESEQ,
341 CopLABEL_alloc(((ps[(1) - (12)].val.p_tkval))->tk_lval.pval),
342 ((ps[(5) - (12)].val.opval) ? (ps[(5) - (12)].val.opval) : newOP(OP_NULL, 0)) ),
345 token_getmad((ps[(2) - (12)].val.i_tkval),forop,'3');
346 token_getmad((ps[(3) - (12)].val.i_tkval),forop,'(');
347 token_getmad((ps[(6) - (12)].val.i_tkval),forop,'1');
348 token_getmad((ps[(8) - (12)].val.i_tkval),forop,'2');
349 token_getmad((ps[(11) - (12)].val.i_tkval),forop,')');
350 token_getmad((ps[(1) - (12)].val.p_tkval),forop,'L');
352 if ((ps[(5) - (12)].val.opval)) {
353 forop = append_elem(OP_LINESEQ,
354 newSTATEOP(0, CopLABEL_alloc((ps[(1) - (12)].val.p_tkval)), (ps[(5) - (12)].val.opval)),
360 (yyval.opval) = block_end((ps[(4) - (12)].val.ival), forop); ;}
365 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)),
366 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
367 NOLINE, (OP*)NULL, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval), 0));
368 TOKEN_GETMAD((ps[(1) - (3)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
373 { PL_parser->copline = (line_t) IVAL((ps[(2) - (8)].val.i_tkval));
374 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
375 newSTATEOP(0, PVAL((ps[(1) - (8)].val.p_tkval)),
376 newGIVENOP((ps[(6) - (8)].val.opval), scope((ps[(8) - (8)].val.opval)),
377 (PADOFFSET) (ps[(5) - (8)].val.ival)) )); ;}
382 { (yyval.ival) = (PL_min_intro_pending &&
383 PL_max_intro_pending >= PL_min_intro_pending);
389 { (yyval.opval) = (OP*)NULL; ;}
395 (void)scan_num("1", &tmplval);
396 (yyval.opval) = tmplval.opval; ;}
401 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
406 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
411 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
416 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
425 (yyval.p_tkval) = newTOKEN(OP_NULL, tmplval, 0);
427 (yyval.p_tkval) = NULL;
434 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
439 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
444 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
449 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
454 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
459 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
464 { (yyval.opval) = newOP(OP_NULL,0);
465 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
472 CV *fmtcv = PL_compcv;
473 SvREFCNT_inc_simple_void(PL_compcv);
475 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
476 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
477 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
478 token_free((ps[(1) - (4)].val.i_tkval));
480 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
481 (yyval.opval) = (OP*)NULL;
483 if (CvOUTSIDE(fmtcv) && !CvUNIQUE(CvOUTSIDE(fmtcv))) {
484 SvREFCNT_inc_simple_void(fmtcv);
485 pad_add_anon((SV*)fmtcv, OP_NULL);
492 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
497 { (yyval.opval) = (OP*)NULL; ;}
502 { SvREFCNT_inc_simple_void(PL_compcv);
504 (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));
505 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
507 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));
508 (yyval.opval) = (OP*)NULL;
515 { SvREFCNT_inc_simple_void(PL_compcv);
518 OP* o = newSVOP(OP_ANONCODE, 0,
519 (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)));
520 (yyval.opval) = newOP(OP_NULL,0);
521 op_getmad(o,(yyval.opval),'&');
522 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
523 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
524 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
525 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
526 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
527 (ps[(6) - (6)].val.opval)->op_madprop = 0;
530 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));
531 (yyval.opval) = (OP*)NULL;
538 { (yyval.ival) = start_subparse(FALSE, 0);
539 SAVEFREESV(PL_compcv); ;}
544 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
545 SAVEFREESV(PL_compcv); ;}
550 { (yyval.ival) = start_subparse(TRUE, 0);
551 SAVEFREESV(PL_compcv); ;}
556 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
557 if (strEQ(name, "BEGIN") || strEQ(name, "END")
558 || strEQ(name, "INIT") || strEQ(name, "CHECK")
559 || strEQ(name, "UNITCHECK"))
560 CvSPECIAL_on(PL_compcv);
561 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
566 { (yyval.opval) = (OP*)NULL; ;}
571 { (yyval.opval) = (OP*)NULL; ;}
576 { (yyval.opval) = (ps[(2) - (2)].val.opval);
577 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
583 { (yyval.opval) = IF_MAD(
587 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
593 { (yyval.opval) = (ps[(2) - (2)].val.opval);
594 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
600 { (yyval.opval) = IF_MAD(
604 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
610 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
615 { (yyval.opval) = IF_MAD(
619 PL_parser->expect = XSTATE;
620 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
628 (yyval.opval) = package((ps[(3) - (4)].val.opval));
629 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
630 if ((ps[(2) - (4)].val.opval))
631 package_version((ps[(2) - (4)].val.opval));
632 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
634 package((ps[(3) - (4)].val.opval));
635 if ((ps[(2) - (4)].val.opval))
636 package_version((ps[(2) - (4)].val.opval));
637 (yyval.opval) = (OP*)NULL;
645 int save_3_latefree = (ps[(3) - (5)].val.opval)->op_latefree;
646 (ps[(3) - (5)].val.opval)->op_latefree = 1;
647 package((ps[(3) - (5)].val.opval));
648 (ps[(3) - (5)].val.opval)->op_latefree = save_3_latefree;
649 if ((ps[(2) - (5)].val.opval)) {
650 int save_2_latefree = (ps[(2) - (5)].val.opval)->op_latefree;
651 (ps[(2) - (5)].val.opval)->op_latefree = 1;
652 package_version((ps[(2) - (5)].val.opval));
653 (ps[(2) - (5)].val.opval)->op_latefree = save_2_latefree;
660 { if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
661 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
662 (yyval.opval) = block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval));
663 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
664 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
665 op_free((ps[(3) - (8)].val.opval));
666 if ((ps[(2) - (8)].val.opval))
667 op_free((ps[(2) - (8)].val.opval));
673 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
678 { SvREFCNT_inc_simple_void(PL_compcv);
680 (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));
681 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
682 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
683 if (PL_parser->rsfp_filters &&
684 AvFILLp(PL_parser->rsfp_filters) >= 0)
685 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
687 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));
688 (yyval.opval) = (OP*)NULL;
695 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
696 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
702 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
703 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
709 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
710 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
718 OP* op = newNULLLIST();
719 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
720 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
722 (yyval.opval) = (ps[(1) - (2)].val.opval);
730 OP* term = (ps[(3) - (3)].val.opval);
732 term = newUNOP(OP_NULL, 0, term);
733 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
735 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
741 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
742 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
743 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
749 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
750 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
751 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
752 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
753 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
759 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
761 prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
762 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
763 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
764 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
765 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
771 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
772 append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
773 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
774 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
780 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
782 prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
783 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
789 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
791 prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
792 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
793 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
794 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
800 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
801 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
807 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
808 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
809 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
810 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
816 { SvREFCNT_inc_simple_void(PL_compcv);
817 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
822 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
824 prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
830 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
831 PL_parser->expect = XOPERATOR;
832 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
833 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
834 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
840 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
841 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
842 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
848 { (yyval.opval) = newBINOP(OP_AELEM, 0,
849 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
850 scalar((ps[(4) - (5)].val.opval)));
851 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
852 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
853 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
859 { (yyval.opval) = newBINOP(OP_AELEM, 0,
860 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
861 scalar((ps[(3) - (4)].val.opval)));
862 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
863 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
869 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
870 PL_parser->expect = XOPERATOR;
871 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
872 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
873 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
879 { (yyval.opval) = newBINOP(OP_HELEM, 0,
880 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
881 jmaybe((ps[(4) - (6)].val.opval)));
882 PL_parser->expect = XOPERATOR;
883 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
884 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
885 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
886 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
892 { (yyval.opval) = newBINOP(OP_HELEM, 0,
893 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
894 jmaybe((ps[(3) - (5)].val.opval)));
895 PL_parser->expect = XOPERATOR;
896 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
897 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
898 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
904 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
905 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
906 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
907 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
908 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
914 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
915 append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
916 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
917 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
918 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
919 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
925 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
926 append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
927 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
928 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
929 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
935 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
936 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
937 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
938 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
944 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
945 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
946 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
947 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
948 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
954 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
955 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
956 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
957 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
958 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
964 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (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 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
979 scalar((ps[(1) - (3)].val.opval));
980 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
981 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
987 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
988 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
994 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
995 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1001 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1002 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1008 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1009 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1015 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1016 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1022 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1023 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1030 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1033 op = (UNOP*)(yyval.opval);
1034 op = (UNOP*)op->op_first; /* get to flop */
1035 op = (UNOP*)op->op_first; /* get to flip */
1036 op = (UNOP*)op->op_first; /* get to range */
1037 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1044 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1045 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1051 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1052 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1058 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1059 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1065 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1066 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1067 ((yyval.opval)->op_type == OP_NOT
1068 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1075 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1076 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1082 { (yyval.opval) = IF_MAD(
1083 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1084 (ps[(2) - (2)].val.opval)
1086 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1091 #line 1002 "perly.y"
1092 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1093 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1098 #line 1006 "perly.y"
1099 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1100 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1105 #line 1010 "perly.y"
1106 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1107 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1108 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1113 #line 1015 "perly.y"
1114 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1115 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1116 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1121 #line 1020 "perly.y"
1122 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1123 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1124 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1129 #line 1025 "perly.y"
1130 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1131 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1132 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1137 #line 1034 "perly.y"
1138 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1139 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1140 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1145 #line 1039 "perly.y"
1146 { (yyval.opval) = newANONLIST((OP*)NULL);
1147 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1148 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1153 #line 1044 "perly.y"
1154 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1155 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1156 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1157 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1162 #line 1050 "perly.y"
1163 { (yyval.opval) = newANONHASH((OP*)NULL);
1164 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1165 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1166 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1171 #line 1056 "perly.y"
1172 { SvREFCNT_inc_simple_void(PL_compcv);
1173 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1174 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1175 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1176 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1181 #line 1067 "perly.y"
1182 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1183 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1188 #line 1071 "perly.y"
1189 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
1190 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1195 #line 1075 "perly.y"
1196 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1197 OPf_SPECIAL|OPf_STACKED,
1198 prepend_elem(OP_LIST,
1200 (OPpENTERSUB_AMPER<<8),
1201 scalar((ps[(2) - (4)].val.opval))
1202 )),(OP*)NULL)); dep();
1203 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1204 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1205 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1210 #line 1087 "perly.y"
1211 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1212 OPf_SPECIAL|OPf_STACKED,
1213 append_elem(OP_LIST,
1214 (ps[(4) - (5)].val.opval),
1216 (OPpENTERSUB_AMPER<<8),
1217 scalar((ps[(2) - (5)].val.opval))
1219 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1220 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1221 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1226 #line 1100 "perly.y"
1227 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1228 prepend_elem(OP_LIST,
1229 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1230 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1231 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1232 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1237 #line 1108 "perly.y"
1238 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1239 prepend_elem(OP_LIST,
1240 (ps[(4) - (5)].val.opval),
1241 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1242 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1243 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1244 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1249 #line 1124 "perly.y"
1250 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1251 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1252 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1257 #line 1129 "perly.y"
1258 { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
1259 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1264 #line 1133 "perly.y"
1265 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1269 #line 1135 "perly.y"
1270 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1271 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1276 #line 1139 "perly.y"
1277 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1278 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1279 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1284 #line 1144 "perly.y"
1285 { (yyval.opval) = sawparens(newNULLLIST());
1286 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1287 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1292 #line 1149 "perly.y"
1293 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1297 #line 1151 "perly.y"
1298 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1302 #line 1153 "perly.y"
1303 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1307 #line 1155 "perly.y"
1308 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1312 #line 1157 "perly.y"
1313 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1317 #line 1159 "perly.y"
1318 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1322 #line 1161 "perly.y"
1323 { (yyval.opval) = prepend_elem(OP_ASLICE,
1324 newOP(OP_PUSHMARK, 0),
1325 newLISTOP(OP_ASLICE, 0,
1326 list((ps[(3) - (4)].val.opval)),
1327 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1328 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1329 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1334 #line 1170 "perly.y"
1335 { (yyval.opval) = prepend_elem(OP_HSLICE,
1336 newOP(OP_PUSHMARK, 0),
1337 newLISTOP(OP_HSLICE, 0,
1338 list((ps[(3) - (5)].val.opval)),
1339 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1340 PL_parser->expect = XOPERATOR;
1341 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1342 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1343 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1348 #line 1181 "perly.y"
1349 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1353 #line 1183 "perly.y"
1354 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1358 #line 1185 "perly.y"
1359 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1360 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1361 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1366 #line 1190 "perly.y"
1368 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1369 append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1371 OP* op = (yyval.opval);
1372 if (op->op_type == OP_CONST) { /* defeat const fold */
1373 op = (OP*)op->op_madprop->mad_val;
1375 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1376 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1382 #line 1203 "perly.y"
1383 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1384 append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1385 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1390 #line 1208 "perly.y"
1391 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1392 PL_hints |= HINT_BLOCK_SCOPE;
1393 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1398 #line 1213 "perly.y"
1399 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1400 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1405 #line 1217 "perly.y"
1406 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1407 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1412 #line 1221 "perly.y"
1413 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1414 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1419 #line 1225 "perly.y"
1420 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1421 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1426 #line 1229 "perly.y"
1427 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1428 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1433 #line 1233 "perly.y"
1434 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1435 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1440 #line 1237 "perly.y"
1441 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1442 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1447 #line 1241 "perly.y"
1448 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1452 #line 1243 "perly.y"
1453 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1454 append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1458 #line 1246 "perly.y"
1459 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1460 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1465 #line 1250 "perly.y"
1466 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1467 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1468 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1469 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1474 #line 1256 "perly.y"
1475 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1476 scalar((ps[(1) - (1)].val.opval))); ;}
1480 #line 1259 "perly.y"
1481 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1482 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1483 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1485 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1486 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1487 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1492 #line 1268 "perly.y"
1493 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1494 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1495 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1496 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1501 #line 1274 "perly.y"
1502 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1503 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1504 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1509 #line 1281 "perly.y"
1511 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1512 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1513 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1518 #line 1291 "perly.y"
1519 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1521 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1522 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1523 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1529 #line 1299 "perly.y"
1530 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1531 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1536 #line 1306 "perly.y"
1537 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1538 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1539 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1544 #line 1311 "perly.y"
1545 { (yyval.opval) = sawparens(newNULLLIST());
1546 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1547 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1552 #line 1316 "perly.y"
1553 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1557 #line 1318 "perly.y"
1558 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1562 #line 1320 "perly.y"
1563 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1567 #line 1325 "perly.y"
1568 { (yyval.opval) = (OP*)NULL; ;}
1572 #line 1327 "perly.y"
1573 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1577 #line 1331 "perly.y"
1578 { (yyval.opval) = (OP*)NULL; ;}
1582 #line 1333 "perly.y"
1583 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1587 #line 1335 "perly.y"
1590 OP* op = newNULLLIST();
1591 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
1592 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
1594 (yyval.opval) = (ps[(1) - (2)].val.opval);
1601 #line 1350 "perly.y"
1602 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1606 #line 1354 "perly.y"
1607 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1608 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1613 #line 1360 "perly.y"
1614 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1615 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1620 #line 1366 "perly.y"
1621 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1622 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1627 #line 1372 "perly.y"
1628 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1629 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1634 #line 1378 "perly.y"
1635 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1636 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1641 #line 1384 "perly.y"
1642 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1643 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1648 #line 1391 "perly.y"
1649 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1653 #line 1393 "perly.y"
1654 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1658 #line 1395 "perly.y"
1659 { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
1663 #line 1398 "perly.y"
1664 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1668 /* Line 1267 of yacc.c. */