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 package((ps[(3) - (5)].val.opval));
647 if ((ps[(2) - (5)].val.opval))
648 package_version((ps[(2) - (5)].val.opval));
654 { if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
655 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
656 (yyval.opval) = block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval));
657 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
658 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
664 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
669 { SvREFCNT_inc_simple_void(PL_compcv);
671 (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));
672 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
673 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
674 if (PL_parser->rsfp_filters &&
675 AvFILLp(PL_parser->rsfp_filters) >= 0)
676 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
678 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));
679 (yyval.opval) = (OP*)NULL;
686 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
687 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
693 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
694 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
700 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
701 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
709 OP* op = newNULLLIST();
710 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
711 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
713 (yyval.opval) = (ps[(1) - (2)].val.opval);
721 OP* term = (ps[(3) - (3)].val.opval);
723 term = newUNOP(OP_NULL, 0, term);
724 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
726 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
732 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
733 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
734 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
740 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
741 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
742 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
743 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
744 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
750 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
752 prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
753 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
754 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
755 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
756 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
762 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
763 append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
764 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
765 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
771 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
773 prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
774 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
780 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
782 prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
783 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
784 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
785 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
791 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
792 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
798 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
799 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
800 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
801 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
807 { SvREFCNT_inc_simple_void(PL_compcv);
808 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
813 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
815 prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
821 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
822 PL_parser->expect = XOPERATOR;
823 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
824 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
825 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
831 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
832 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
833 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
839 { (yyval.opval) = newBINOP(OP_AELEM, 0,
840 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
841 scalar((ps[(4) - (5)].val.opval)));
842 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
843 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
844 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
850 { (yyval.opval) = newBINOP(OP_AELEM, 0,
851 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
852 scalar((ps[(3) - (4)].val.opval)));
853 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
854 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
860 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
861 PL_parser->expect = XOPERATOR;
862 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
863 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
864 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
870 { (yyval.opval) = newBINOP(OP_HELEM, 0,
871 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
872 jmaybe((ps[(4) - (6)].val.opval)));
873 PL_parser->expect = XOPERATOR;
874 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
875 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
876 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
877 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
883 { (yyval.opval) = newBINOP(OP_HELEM, 0,
884 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
885 jmaybe((ps[(3) - (5)].val.opval)));
886 PL_parser->expect = XOPERATOR;
887 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
888 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
889 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
895 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
896 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
897 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
898 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
899 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
905 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
906 append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
907 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
908 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
909 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
910 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
916 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
917 append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
918 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
919 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
920 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
926 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
927 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
928 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
929 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
935 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
936 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
937 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
938 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
939 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
945 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
946 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
947 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
948 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
949 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
955 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
956 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
962 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
963 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
969 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
970 scalar((ps[(1) - (3)].val.opval));
971 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (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');
992 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
993 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
999 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1000 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1006 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1007 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1013 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1014 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1021 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1024 op = (UNOP*)(yyval.opval);
1025 op = (UNOP*)op->op_first; /* get to flop */
1026 op = (UNOP*)op->op_first; /* get to flip */
1027 op = (UNOP*)op->op_first; /* get to range */
1028 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1035 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1036 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1042 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1043 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1049 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1050 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1056 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1057 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1058 ((yyval.opval)->op_type == OP_NOT
1059 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1066 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1067 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1073 { (yyval.opval) = IF_MAD(
1074 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1075 (ps[(2) - (2)].val.opval)
1077 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1083 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1084 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1090 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1091 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1096 #line 1001 "perly.y"
1097 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1098 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1099 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1104 #line 1006 "perly.y"
1105 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1106 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1107 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1112 #line 1011 "perly.y"
1113 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1114 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1115 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1120 #line 1016 "perly.y"
1121 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1122 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1123 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1128 #line 1025 "perly.y"
1129 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1130 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1131 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1136 #line 1030 "perly.y"
1137 { (yyval.opval) = newANONLIST((OP*)NULL);
1138 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1139 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1144 #line 1035 "perly.y"
1145 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1146 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1147 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1148 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1153 #line 1041 "perly.y"
1154 { (yyval.opval) = newANONHASH((OP*)NULL);
1155 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1156 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1157 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1162 #line 1047 "perly.y"
1163 { SvREFCNT_inc_simple_void(PL_compcv);
1164 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1165 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1166 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1167 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1172 #line 1058 "perly.y"
1173 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1174 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1179 #line 1062 "perly.y"
1180 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
1181 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1186 #line 1066 "perly.y"
1187 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1188 OPf_SPECIAL|OPf_STACKED,
1189 prepend_elem(OP_LIST,
1191 (OPpENTERSUB_AMPER<<8),
1192 scalar((ps[(2) - (4)].val.opval))
1193 )),(OP*)NULL)); dep();
1194 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1195 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1196 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1201 #line 1078 "perly.y"
1202 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1203 OPf_SPECIAL|OPf_STACKED,
1204 append_elem(OP_LIST,
1205 (ps[(4) - (5)].val.opval),
1207 (OPpENTERSUB_AMPER<<8),
1208 scalar((ps[(2) - (5)].val.opval))
1210 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1211 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1212 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1217 #line 1091 "perly.y"
1218 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1219 prepend_elem(OP_LIST,
1220 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1221 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1222 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1223 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1228 #line 1099 "perly.y"
1229 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1230 prepend_elem(OP_LIST,
1231 (ps[(4) - (5)].val.opval),
1232 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1233 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1234 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1235 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1240 #line 1115 "perly.y"
1241 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1242 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1243 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1248 #line 1120 "perly.y"
1249 { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
1250 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1255 #line 1124 "perly.y"
1256 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1260 #line 1126 "perly.y"
1261 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1262 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1267 #line 1130 "perly.y"
1268 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1269 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1270 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1275 #line 1135 "perly.y"
1276 { (yyval.opval) = sawparens(newNULLLIST());
1277 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1278 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1283 #line 1140 "perly.y"
1284 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1288 #line 1142 "perly.y"
1289 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1293 #line 1144 "perly.y"
1294 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1298 #line 1146 "perly.y"
1299 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1303 #line 1148 "perly.y"
1304 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1308 #line 1150 "perly.y"
1309 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1313 #line 1152 "perly.y"
1314 { (yyval.opval) = prepend_elem(OP_ASLICE,
1315 newOP(OP_PUSHMARK, 0),
1316 newLISTOP(OP_ASLICE, 0,
1317 list((ps[(3) - (4)].val.opval)),
1318 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1319 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1320 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1325 #line 1161 "perly.y"
1326 { (yyval.opval) = prepend_elem(OP_HSLICE,
1327 newOP(OP_PUSHMARK, 0),
1328 newLISTOP(OP_HSLICE, 0,
1329 list((ps[(3) - (5)].val.opval)),
1330 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1331 PL_parser->expect = XOPERATOR;
1332 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1333 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1334 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1339 #line 1172 "perly.y"
1340 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1344 #line 1174 "perly.y"
1345 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1349 #line 1176 "perly.y"
1350 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1351 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1352 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1357 #line 1181 "perly.y"
1359 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1360 append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1362 OP* op = (yyval.opval);
1363 if (op->op_type == OP_CONST) { /* defeat const fold */
1364 op = (OP*)op->op_madprop->mad_val;
1366 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1367 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1373 #line 1194 "perly.y"
1374 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1375 append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1376 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1381 #line 1199 "perly.y"
1382 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1383 PL_hints |= HINT_BLOCK_SCOPE;
1384 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1389 #line 1204 "perly.y"
1390 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1391 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1396 #line 1208 "perly.y"
1397 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1398 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1403 #line 1212 "perly.y"
1404 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1405 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1410 #line 1216 "perly.y"
1411 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1412 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1417 #line 1220 "perly.y"
1418 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1419 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1424 #line 1224 "perly.y"
1425 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1426 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1431 #line 1228 "perly.y"
1432 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1433 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1438 #line 1232 "perly.y"
1439 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1443 #line 1234 "perly.y"
1444 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1445 append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1449 #line 1237 "perly.y"
1450 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1451 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1456 #line 1241 "perly.y"
1457 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1458 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1459 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1460 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1465 #line 1247 "perly.y"
1466 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1467 scalar((ps[(1) - (1)].val.opval))); ;}
1471 #line 1250 "perly.y"
1472 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1473 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1474 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1476 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1477 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1478 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1483 #line 1259 "perly.y"
1484 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1485 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1486 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1487 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1492 #line 1265 "perly.y"
1493 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1494 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1495 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1500 #line 1272 "perly.y"
1502 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1503 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1504 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1509 #line 1282 "perly.y"
1510 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1512 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1513 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1514 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1520 #line 1290 "perly.y"
1521 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1522 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1527 #line 1297 "perly.y"
1528 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1529 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1530 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1535 #line 1302 "perly.y"
1536 { (yyval.opval) = sawparens(newNULLLIST());
1537 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1538 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1543 #line 1307 "perly.y"
1544 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1548 #line 1309 "perly.y"
1549 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1553 #line 1311 "perly.y"
1554 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1558 #line 1316 "perly.y"
1559 { (yyval.opval) = (OP*)NULL; ;}
1563 #line 1318 "perly.y"
1564 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1568 #line 1322 "perly.y"
1569 { (yyval.opval) = (OP*)NULL; ;}
1573 #line 1324 "perly.y"
1574 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1578 #line 1326 "perly.y"
1581 OP* op = newNULLLIST();
1582 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
1583 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
1585 (yyval.opval) = (ps[(1) - (2)].val.opval);
1592 #line 1341 "perly.y"
1593 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1597 #line 1345 "perly.y"
1598 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1599 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1604 #line 1351 "perly.y"
1605 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1606 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1611 #line 1357 "perly.y"
1612 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1613 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1618 #line 1363 "perly.y"
1619 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1620 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1625 #line 1369 "perly.y"
1626 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1627 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1632 #line 1375 "perly.y"
1633 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1634 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1639 #line 1382 "perly.y"
1640 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1644 #line 1384 "perly.y"
1645 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1649 #line 1386 "perly.y"
1650 { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
1654 #line 1389 "perly.y"
1655 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1659 /* Line 1267 of yacc.c. */