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),
134 TOKEN_GETMAD((ps[(1) - (1)].val.opval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
139 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
144 { (yyval.opval) = (OP*)NULL; ;}
149 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
154 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
155 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
161 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
162 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
168 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
169 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
175 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
176 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
182 { (yyval.opval) = newFOROP(0, NULL, (line_t)IVAL((ps[(2) - (3)].val.i_tkval)),
183 (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
184 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first->op_sibling,'w');
190 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), scope((ps[(1) - (3)].val.opval))); ;}
195 { (yyval.opval) = (OP*)NULL; ;}
200 { ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = scope((ps[(2) - (2)].val.opval));
201 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
207 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
208 (yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)), scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
209 PL_hints |= HINT_BLOCK_SCOPE;
210 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
211 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
212 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
218 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
219 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
220 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
221 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
222 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
223 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
229 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
230 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
231 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
232 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
233 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
234 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
240 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
241 newWHENOP((ps[(4) - (6)].val.opval), scope((ps[(6) - (6)].val.opval)))); ;}
246 { (yyval.opval) = newWHENOP(0, scope((ps[(2) - (2)].val.opval))); ;}
251 { (yyval.opval) = (OP*)NULL; ;}
256 { (yyval.opval) = scope((ps[(2) - (2)].val.opval));
257 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
264 PL_parser->copline = (line_t)IVAL((ps[(2) - (9)].val.i_tkval));
265 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
266 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
267 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
268 IVAL((ps[(2) - (9)].val.i_tkval)), (ps[(5) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval), (ps[(7) - (9)].val.ival))));
269 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
270 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
271 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
272 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
279 PL_parser->copline = (line_t)IVAL((ps[(2) - (9)].val.i_tkval));
280 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
281 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
282 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
283 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))));
284 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
285 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
286 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
287 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
294 (yyval.opval) = block_end((ps[(4) - (10)].val.ival),
295 innerop = newFOROP(0, PVAL((ps[(1) - (10)].val.p_tkval)), (line_t)IVAL((ps[(2) - (10)].val.i_tkval)),
296 (ps[(5) - (10)].val.opval), (ps[(7) - (10)].val.opval), (ps[(9) - (10)].val.opval), (ps[(10) - (10)].val.opval)));
297 TOKEN_GETMAD((ps[(1) - (10)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
298 TOKEN_GETMAD((ps[(2) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
299 TOKEN_GETMAD((ps[(3) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'d');
300 TOKEN_GETMAD((ps[(6) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
301 TOKEN_GETMAD((ps[(8) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
308 (yyval.opval) = block_end((ps[(5) - (9)].val.ival),
309 innerop = newFOROP(0, PVAL((ps[(1) - (9)].val.p_tkval)), (line_t)IVAL((ps[(2) - (9)].val.i_tkval)),
310 mod((ps[(3) - (9)].val.opval), OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
311 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
312 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
313 TOKEN_GETMAD((ps[(4) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
314 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
321 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
322 innerop = newFOROP(0, PVAL((ps[(1) - (8)].val.p_tkval)), (line_t)IVAL((ps[(2) - (8)].val.i_tkval)),
323 (OP*)NULL, (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
324 TOKEN_GETMAD((ps[(1) - (8)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
325 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
326 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
327 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
334 PL_parser->copline = (line_t)IVAL((ps[(2) - (12)].val.i_tkval));
335 forop = newSTATEOP(0, PVAL((ps[(1) - (12)].val.p_tkval)),
336 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
337 IVAL((ps[(2) - (12)].val.i_tkval)), scalar((ps[(7) - (12)].val.opval)),
338 (ps[(12) - (12)].val.opval), (ps[(10) - (12)].val.opval), (ps[(9) - (12)].val.ival)));
340 forop = newUNOP(OP_NULL, 0, append_elem(OP_LINESEQ,
342 CopLABEL_alloc(((ps[(1) - (12)].val.p_tkval))->tk_lval.pval),
343 ((ps[(5) - (12)].val.opval) ? (ps[(5) - (12)].val.opval) : newOP(OP_NULL, 0)) ),
346 token_getmad((ps[(2) - (12)].val.i_tkval),forop,'3');
347 token_getmad((ps[(3) - (12)].val.i_tkval),forop,'(');
348 token_getmad((ps[(6) - (12)].val.i_tkval),forop,'1');
349 token_getmad((ps[(8) - (12)].val.i_tkval),forop,'2');
350 token_getmad((ps[(11) - (12)].val.i_tkval),forop,')');
351 token_getmad((ps[(1) - (12)].val.p_tkval),forop,'L');
353 if ((ps[(5) - (12)].val.opval)) {
354 forop = append_elem(OP_LINESEQ,
355 newSTATEOP(0, CopLABEL_alloc((ps[(1) - (12)].val.p_tkval)), (ps[(5) - (12)].val.opval)),
361 (yyval.opval) = block_end((ps[(4) - (12)].val.ival), forop); ;}
366 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)),
367 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
368 NOLINE, (OP*)NULL, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval), 0));
369 TOKEN_GETMAD((ps[(1) - (3)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
374 { PL_parser->copline = (line_t) IVAL((ps[(2) - (8)].val.i_tkval));
375 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
376 newSTATEOP(0, PVAL((ps[(1) - (8)].val.p_tkval)),
377 newGIVENOP((ps[(6) - (8)].val.opval), scope((ps[(8) - (8)].val.opval)),
378 (PADOFFSET) (ps[(5) - (8)].val.ival)) )); ;}
383 { (yyval.ival) = (PL_min_intro_pending &&
384 PL_max_intro_pending >= PL_min_intro_pending);
390 { (yyval.opval) = (OP*)NULL; ;}
396 (void)scan_num("1", &tmplval);
397 (yyval.opval) = tmplval.opval; ;}
402 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
407 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
412 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
417 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
426 (yyval.p_tkval) = newTOKEN(OP_NULL, tmplval, 0);
428 (yyval.p_tkval) = NULL;
435 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
440 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
445 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
450 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
455 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
460 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
465 { (yyval.opval) = newOP(OP_NULL,0);
466 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
473 CV *fmtcv = PL_compcv;
474 SvREFCNT_inc_simple_void(PL_compcv);
476 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
477 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
478 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
479 token_free((ps[(1) - (4)].val.i_tkval));
481 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
482 (yyval.opval) = (OP*)NULL;
484 if (CvOUTSIDE(fmtcv) && !CvUNIQUE(CvOUTSIDE(fmtcv))) {
485 SvREFCNT_inc_simple_void(fmtcv);
486 pad_add_anon((SV*)fmtcv, OP_NULL);
493 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
498 { (yyval.opval) = (OP*)NULL; ;}
503 { SvREFCNT_inc_simple_void(PL_compcv);
505 (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));
506 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
508 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));
509 (yyval.opval) = (OP*)NULL;
516 { SvREFCNT_inc_simple_void(PL_compcv);
519 OP* o = newSVOP(OP_ANONCODE, 0,
520 (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)));
521 (yyval.opval) = newOP(OP_NULL,0);
522 op_getmad(o,(yyval.opval),'&');
523 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
524 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
525 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
526 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
527 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
528 (ps[(6) - (6)].val.opval)->op_madprop = 0;
531 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));
532 (yyval.opval) = (OP*)NULL;
539 { (yyval.ival) = start_subparse(FALSE, 0);
540 SAVEFREESV(PL_compcv); ;}
545 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
546 SAVEFREESV(PL_compcv); ;}
551 { (yyval.ival) = start_subparse(TRUE, 0);
552 SAVEFREESV(PL_compcv); ;}
557 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
558 if (strEQ(name, "BEGIN") || strEQ(name, "END")
559 || strEQ(name, "INIT") || strEQ(name, "CHECK")
560 || strEQ(name, "UNITCHECK"))
561 CvSPECIAL_on(PL_compcv);
562 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
567 { (yyval.opval) = (OP*)NULL; ;}
572 { (yyval.opval) = (OP*)NULL; ;}
577 { (yyval.opval) = (ps[(2) - (2)].val.opval);
578 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
584 { (yyval.opval) = IF_MAD(
588 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
594 { (yyval.opval) = (ps[(2) - (2)].val.opval);
595 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
601 { (yyval.opval) = IF_MAD(
605 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
611 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
616 { (yyval.opval) = IF_MAD(
620 PL_parser->expect = XSTATE;
621 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
629 (yyval.opval) = package((ps[(3) - (4)].val.opval));
630 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
631 if ((ps[(2) - (4)].val.opval))
632 package_version((ps[(2) - (4)].val.opval));
633 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
635 package((ps[(3) - (4)].val.opval));
636 if ((ps[(2) - (4)].val.opval))
637 package_version((ps[(2) - (4)].val.opval));
638 (yyval.opval) = (OP*)NULL;
646 int save_3_latefree = (ps[(3) - (5)].val.opval)->op_latefree;
647 (ps[(3) - (5)].val.opval)->op_latefree = 1;
648 package((ps[(3) - (5)].val.opval));
649 (ps[(3) - (5)].val.opval)->op_latefree = save_3_latefree;
650 if ((ps[(2) - (5)].val.opval)) {
651 int save_2_latefree = (ps[(2) - (5)].val.opval)->op_latefree;
652 (ps[(2) - (5)].val.opval)->op_latefree = 1;
653 package_version((ps[(2) - (5)].val.opval));
654 (ps[(2) - (5)].val.opval)->op_latefree = save_2_latefree;
661 { if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
662 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
663 (yyval.opval) = block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval));
664 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
665 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
666 op_free((ps[(3) - (8)].val.opval));
667 if ((ps[(2) - (8)].val.opval))
668 op_free((ps[(2) - (8)].val.opval));
674 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
679 { SvREFCNT_inc_simple_void(PL_compcv);
681 (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));
682 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
683 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
684 if (PL_parser->rsfp_filters &&
685 AvFILLp(PL_parser->rsfp_filters) >= 0)
686 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
688 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));
689 (yyval.opval) = (OP*)NULL;
696 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
697 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
703 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
704 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
710 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
711 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
719 OP* op = newNULLLIST();
720 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
721 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
723 (yyval.opval) = (ps[(1) - (2)].val.opval);
731 OP* term = (ps[(3) - (3)].val.opval);
733 term = newUNOP(OP_NULL, 0, term);
734 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
736 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
742 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
743 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
744 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
750 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
751 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
752 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
753 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
754 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
760 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
762 prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
763 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
764 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
765 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
766 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
772 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
773 append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
774 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
775 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
781 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
783 prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
784 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
790 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
792 prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
793 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
794 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
795 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
801 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
802 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
808 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
809 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
810 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
811 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
817 { SvREFCNT_inc_simple_void(PL_compcv);
818 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
823 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
825 prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
831 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
832 PL_parser->expect = XOPERATOR;
833 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
834 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
835 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
841 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
842 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
843 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
849 { (yyval.opval) = newBINOP(OP_AELEM, 0,
850 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
851 scalar((ps[(4) - (5)].val.opval)));
852 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
853 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
854 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
860 { (yyval.opval) = newBINOP(OP_AELEM, 0,
861 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
862 scalar((ps[(3) - (4)].val.opval)));
863 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
864 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
870 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
871 PL_parser->expect = XOPERATOR;
872 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
873 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
874 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
880 { (yyval.opval) = newBINOP(OP_HELEM, 0,
881 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
882 jmaybe((ps[(4) - (6)].val.opval)));
883 PL_parser->expect = XOPERATOR;
884 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
885 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
886 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
887 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
893 { (yyval.opval) = newBINOP(OP_HELEM, 0,
894 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
895 jmaybe((ps[(3) - (5)].val.opval)));
896 PL_parser->expect = XOPERATOR;
897 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
898 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
899 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
905 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
906 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
907 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
908 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
909 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
915 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
916 append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
917 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
918 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
919 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
920 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
926 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
927 append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
928 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
929 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
930 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
936 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
937 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
938 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
939 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
945 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
946 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
947 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
948 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
949 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
955 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
956 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
957 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
958 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
959 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
965 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (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 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
980 scalar((ps[(1) - (3)].val.opval));
981 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
982 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
988 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
989 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
995 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
996 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1002 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1003 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1009 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1010 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1016 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1017 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1023 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1024 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1031 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1034 op = (UNOP*)(yyval.opval);
1035 op = (UNOP*)op->op_first; /* get to flop */
1036 op = (UNOP*)op->op_first; /* get to flip */
1037 op = (UNOP*)op->op_first; /* get to range */
1038 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1045 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1046 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1052 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1053 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1059 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1060 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1066 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1067 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1068 ((yyval.opval)->op_type == OP_NOT
1069 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1076 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1077 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1083 { (yyval.opval) = IF_MAD(
1084 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1085 (ps[(2) - (2)].val.opval)
1087 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1092 #line 1003 "perly.y"
1093 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1094 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1099 #line 1007 "perly.y"
1100 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1101 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1106 #line 1011 "perly.y"
1107 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1108 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1109 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1114 #line 1016 "perly.y"
1115 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1116 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1117 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1122 #line 1021 "perly.y"
1123 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1124 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1125 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1130 #line 1026 "perly.y"
1131 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1132 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1133 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1138 #line 1035 "perly.y"
1139 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1140 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1141 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1146 #line 1040 "perly.y"
1147 { (yyval.opval) = newANONLIST((OP*)NULL);
1148 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1149 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1154 #line 1045 "perly.y"
1155 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1156 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1157 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1158 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1163 #line 1051 "perly.y"
1164 { (yyval.opval) = newANONHASH((OP*)NULL);
1165 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1166 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1167 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1172 #line 1057 "perly.y"
1173 { SvREFCNT_inc_simple_void(PL_compcv);
1174 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1175 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1176 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1177 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1182 #line 1068 "perly.y"
1183 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1184 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1189 #line 1072 "perly.y"
1190 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
1191 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1196 #line 1076 "perly.y"
1197 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1198 OPf_SPECIAL|OPf_STACKED,
1199 prepend_elem(OP_LIST,
1201 (OPpENTERSUB_AMPER<<8),
1202 scalar((ps[(2) - (4)].val.opval))
1203 )),(OP*)NULL)); dep();
1204 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1205 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1206 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1211 #line 1088 "perly.y"
1212 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1213 OPf_SPECIAL|OPf_STACKED,
1214 append_elem(OP_LIST,
1215 (ps[(4) - (5)].val.opval),
1217 (OPpENTERSUB_AMPER<<8),
1218 scalar((ps[(2) - (5)].val.opval))
1220 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1221 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1222 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1227 #line 1101 "perly.y"
1228 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1229 prepend_elem(OP_LIST,
1230 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1231 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1232 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1233 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1238 #line 1109 "perly.y"
1239 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1240 prepend_elem(OP_LIST,
1241 (ps[(4) - (5)].val.opval),
1242 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1243 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1244 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1245 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1250 #line 1125 "perly.y"
1251 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1252 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1253 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1258 #line 1130 "perly.y"
1259 { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
1260 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1265 #line 1134 "perly.y"
1266 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1270 #line 1136 "perly.y"
1271 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1272 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1277 #line 1140 "perly.y"
1278 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1279 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1280 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1285 #line 1145 "perly.y"
1286 { (yyval.opval) = sawparens(newNULLLIST());
1287 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1288 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1293 #line 1150 "perly.y"
1294 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1298 #line 1152 "perly.y"
1299 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1303 #line 1154 "perly.y"
1304 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1308 #line 1156 "perly.y"
1309 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1313 #line 1158 "perly.y"
1314 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1318 #line 1160 "perly.y"
1319 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1323 #line 1162 "perly.y"
1324 { (yyval.opval) = prepend_elem(OP_ASLICE,
1325 newOP(OP_PUSHMARK, 0),
1326 newLISTOP(OP_ASLICE, 0,
1327 list((ps[(3) - (4)].val.opval)),
1328 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1329 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1330 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1335 #line 1171 "perly.y"
1336 { (yyval.opval) = prepend_elem(OP_HSLICE,
1337 newOP(OP_PUSHMARK, 0),
1338 newLISTOP(OP_HSLICE, 0,
1339 list((ps[(3) - (5)].val.opval)),
1340 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1341 PL_parser->expect = XOPERATOR;
1342 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1343 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1344 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1349 #line 1182 "perly.y"
1350 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1354 #line 1184 "perly.y"
1355 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1359 #line 1186 "perly.y"
1360 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1361 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1362 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1367 #line 1191 "perly.y"
1369 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1370 append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1372 OP* op = (yyval.opval);
1373 if (op->op_type == OP_CONST) { /* defeat const fold */
1374 op = (OP*)op->op_madprop->mad_val;
1376 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1377 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1383 #line 1204 "perly.y"
1384 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1385 append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1386 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1391 #line 1209 "perly.y"
1392 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1393 PL_hints |= HINT_BLOCK_SCOPE;
1394 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1399 #line 1214 "perly.y"
1400 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1401 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1406 #line 1218 "perly.y"
1407 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1408 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1413 #line 1222 "perly.y"
1414 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1415 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1420 #line 1226 "perly.y"
1421 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1422 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1427 #line 1230 "perly.y"
1428 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1429 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1434 #line 1234 "perly.y"
1435 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1436 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1441 #line 1238 "perly.y"
1442 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1443 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1448 #line 1242 "perly.y"
1449 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1453 #line 1244 "perly.y"
1454 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1455 append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1459 #line 1247 "perly.y"
1460 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1461 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1466 #line 1251 "perly.y"
1467 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1468 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1469 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1470 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1475 #line 1257 "perly.y"
1476 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1477 scalar((ps[(1) - (1)].val.opval))); ;}
1481 #line 1260 "perly.y"
1482 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1483 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1484 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1486 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1487 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1488 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1493 #line 1269 "perly.y"
1494 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1495 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1496 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1497 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1502 #line 1275 "perly.y"
1503 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1504 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1505 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1510 #line 1282 "perly.y"
1512 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1513 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1514 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1519 #line 1292 "perly.y"
1520 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1522 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1523 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1524 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1530 #line 1300 "perly.y"
1531 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1532 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1537 #line 1307 "perly.y"
1538 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1539 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1540 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1545 #line 1312 "perly.y"
1546 { (yyval.opval) = sawparens(newNULLLIST());
1547 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1548 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1553 #line 1317 "perly.y"
1554 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1558 #line 1319 "perly.y"
1559 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1563 #line 1321 "perly.y"
1564 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1568 #line 1326 "perly.y"
1569 { (yyval.opval) = (OP*)NULL; ;}
1573 #line 1328 "perly.y"
1574 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1578 #line 1332 "perly.y"
1579 { (yyval.opval) = (OP*)NULL; ;}
1583 #line 1334 "perly.y"
1584 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1588 #line 1336 "perly.y"
1591 OP* op = newNULLLIST();
1592 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
1593 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
1595 (yyval.opval) = (ps[(1) - (2)].val.opval);
1602 #line 1351 "perly.y"
1603 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1607 #line 1355 "perly.y"
1608 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1609 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1614 #line 1361 "perly.y"
1615 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1616 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1621 #line 1367 "perly.y"
1622 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1623 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1628 #line 1373 "perly.y"
1629 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1630 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1635 #line 1379 "perly.y"
1636 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1637 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1642 #line 1385 "perly.y"
1643 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1644 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1649 #line 1392 "perly.y"
1650 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1654 #line 1394 "perly.y"
1655 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1659 #line 1396 "perly.y"
1660 { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
1664 #line 1399 "perly.y"
1665 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1669 /* Line 1267 of yacc.c. */