3 { (yyval.ival) = (ps[(2) - (2)].val.ival); ;}
9 PL_eval_root = (ps[(2) - (2)].val.opval);
12 parser->yychar = YYEOF;
19 parser->expect = XSTATE;
26 PL_eval_root = (ps[(3) - (4)].val.opval);
34 assert(parser->yychar == YYEMPTY);
35 assert(parser->bufptr != SvPVX(parser->linestr));
36 assert(parser->bufptr[-1] == '}');
38 parser->lex_brackstack[parser->lex_brackets++] =
40 parser->expect = XSTATE;
41 parser->yychar = YYEOF;
48 { (yyval.ival) = 0; ;}
53 { (yyval.ival) = (ps[(1) - (2)].val.ival); newPROG(block_end((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval))); ;}
58 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
59 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
60 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
61 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
62 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
68 { (yyval.ival) = block_start(TRUE); ;}
73 { (yyval.ival) = (I32) Perl_allocmy(aTHX_ STR_WITH_LEN("$_"), 0); ;}
79 PL_parser->expect = XSTATE; (yyval.ival) = block_start(TRUE);
85 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
86 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
87 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
88 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
89 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
95 { (yyval.ival) = block_start(FALSE); ;}
100 { (yyval.opval) = (OP*)NULL; ;}
106 (yyval.opval) = IF_MAD(
107 append_list(OP_LINESEQ,
108 (LISTOP*)(ps[(1) - (2)].val.opval), (LISTOP*)(ps[(2) - (2)].val.opval)),
109 (ps[(1) - (2)].val.opval));
115 { (yyval.opval) = append_list(OP_LINESEQ,
116 (LISTOP*)(ps[(1) - (2)].val.opval), (LISTOP*)(ps[(2) - (2)].val.opval));
117 PL_pad_reset_pending = TRUE;
118 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
119 PL_hints |= HINT_BLOCK_SCOPE;
125 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
131 PL_pad_reset_pending = TRUE;
132 (yyval.opval) = (ps[(1) - (1)].val.opval);
138 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
139 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
144 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
149 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
155 if (PVAL((ps[(1) - (2)].val.p_tkval))) {
156 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), newOP(OP_NULL, 0));
157 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),(yyval.opval),'L');
158 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first,';');
161 (yyval.opval) = IF_MAD(
164 PL_parser->copline = NOLINE;
165 TOKEN_FREE((ps[(1) - (2)].val.p_tkval));
166 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
168 PL_parser->expect = XSTATE;
175 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)), (ps[(2) - (3)].val.opval));
176 PL_parser->expect = XSTATE;
178 /* sideff might already have a nexstate */
179 OP* op = ((LISTOP*)(yyval.opval))->op_first;
181 while (op->op_sibling &&
182 op->op_sibling->op_type == OP_NEXTSTATE)
184 token_getmad((ps[(1) - (3)].val.p_tkval),op,'L');
185 token_getmad((ps[(3) - (3)].val.i_tkval),op,';');
193 { (yyval.opval) = newSTATEOP(0, NULL,
194 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
195 NOLINE, (OP*)NULL, (ps[(1) - (1)].val.opval),
201 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
206 { (yyval.opval) = (OP*)NULL; ;}
211 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
216 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
217 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
223 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
224 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
230 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
231 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
237 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
238 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
244 { (yyval.opval) = newFOROP(0, NULL, (line_t)IVAL((ps[(2) - (3)].val.i_tkval)),
245 (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
246 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first->op_sibling,'w');
252 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), scope((ps[(1) - (3)].val.opval))); ;}
257 { (yyval.opval) = (OP*)NULL; ;}
262 { ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = scope((ps[(2) - (2)].val.opval));
263 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
269 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
270 (yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)), scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
271 PL_hints |= HINT_BLOCK_SCOPE;
272 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
273 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
274 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
280 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
281 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
282 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
283 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
284 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
285 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
291 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
292 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
293 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
294 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
295 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
296 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
302 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
303 newWHENOP((ps[(4) - (6)].val.opval), scope((ps[(6) - (6)].val.opval)))); ;}
308 { (yyval.opval) = newWHENOP(0, scope((ps[(2) - (2)].val.opval))); ;}
313 { (yyval.opval) = (OP*)NULL; ;}
318 { (yyval.opval) = scope((ps[(2) - (2)].val.opval));
319 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
326 PL_parser->copline = (line_t)IVAL((ps[(2) - (9)].val.i_tkval));
327 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
328 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
329 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
330 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))));
331 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
332 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
333 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
334 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
341 PL_parser->copline = (line_t)IVAL((ps[(2) - (9)].val.i_tkval));
342 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
343 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
344 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
345 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))));
346 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
347 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
348 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
349 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
356 (yyval.opval) = block_end((ps[(4) - (10)].val.ival),
357 innerop = newFOROP(0, PVAL((ps[(1) - (10)].val.p_tkval)), (line_t)IVAL((ps[(2) - (10)].val.i_tkval)),
358 (ps[(5) - (10)].val.opval), (ps[(7) - (10)].val.opval), (ps[(9) - (10)].val.opval), (ps[(10) - (10)].val.opval)));
359 TOKEN_GETMAD((ps[(1) - (10)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
360 TOKEN_GETMAD((ps[(2) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
361 TOKEN_GETMAD((ps[(3) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'d');
362 TOKEN_GETMAD((ps[(6) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
363 TOKEN_GETMAD((ps[(8) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
370 (yyval.opval) = block_end((ps[(5) - (9)].val.ival),
371 innerop = newFOROP(0, PVAL((ps[(1) - (9)].val.p_tkval)), (line_t)IVAL((ps[(2) - (9)].val.i_tkval)),
372 mod((ps[(3) - (9)].val.opval), OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
373 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
374 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
375 TOKEN_GETMAD((ps[(4) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
376 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
383 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
384 innerop = newFOROP(0, PVAL((ps[(1) - (8)].val.p_tkval)), (line_t)IVAL((ps[(2) - (8)].val.i_tkval)),
385 (OP*)NULL, (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
386 TOKEN_GETMAD((ps[(1) - (8)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
387 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
388 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
389 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
396 PL_parser->copline = (line_t)IVAL((ps[(2) - (12)].val.i_tkval));
397 forop = newSTATEOP(0, PVAL((ps[(1) - (12)].val.p_tkval)),
398 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
399 IVAL((ps[(2) - (12)].val.i_tkval)), scalar((ps[(7) - (12)].val.opval)),
400 (ps[(12) - (12)].val.opval), (ps[(10) - (12)].val.opval), (ps[(9) - (12)].val.ival)));
402 forop = newUNOP(OP_NULL, 0, append_elem(OP_LINESEQ,
404 CopLABEL_alloc(((ps[(1) - (12)].val.p_tkval))->tk_lval.pval),
405 ((ps[(5) - (12)].val.opval) ? (ps[(5) - (12)].val.opval) : newOP(OP_NULL, 0)) ),
408 token_getmad((ps[(2) - (12)].val.i_tkval),forop,'3');
409 token_getmad((ps[(3) - (12)].val.i_tkval),forop,'(');
410 token_getmad((ps[(6) - (12)].val.i_tkval),forop,'1');
411 token_getmad((ps[(8) - (12)].val.i_tkval),forop,'2');
412 token_getmad((ps[(11) - (12)].val.i_tkval),forop,')');
413 token_getmad((ps[(1) - (12)].val.p_tkval),forop,'L');
415 if ((ps[(5) - (12)].val.opval)) {
416 forop = append_elem(OP_LINESEQ,
417 newSTATEOP(0, CopLABEL_alloc((ps[(1) - (12)].val.p_tkval)), (ps[(5) - (12)].val.opval)),
423 (yyval.opval) = block_end((ps[(4) - (12)].val.ival), forop); ;}
428 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)),
429 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
430 NOLINE, (OP*)NULL, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval), 0));
431 TOKEN_GETMAD((ps[(1) - (3)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
436 { PL_parser->copline = (line_t) IVAL((ps[(2) - (8)].val.i_tkval));
437 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
438 newSTATEOP(0, PVAL((ps[(1) - (8)].val.p_tkval)),
439 newGIVENOP((ps[(6) - (8)].val.opval), scope((ps[(8) - (8)].val.opval)),
440 (PADOFFSET) (ps[(5) - (8)].val.ival)) )); ;}
445 { (yyval.ival) = (PL_min_intro_pending &&
446 PL_max_intro_pending >= PL_min_intro_pending);
452 { (yyval.opval) = (OP*)NULL; ;}
458 (void)scan_num("1", &tmplval);
459 (yyval.opval) = tmplval.opval; ;}
464 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
469 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
474 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
479 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
488 (yyval.p_tkval) = newTOKEN(OP_NULL, tmplval, 0);
490 (yyval.p_tkval) = NULL;
497 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
502 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
507 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
512 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
517 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
522 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
527 { (yyval.opval) = newOP(OP_NULL,0);
528 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
535 CV *fmtcv = PL_compcv;
536 SvREFCNT_inc_simple_void(PL_compcv);
538 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
539 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
540 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
541 token_free((ps[(1) - (4)].val.i_tkval));
543 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
544 (yyval.opval) = (OP*)NULL;
546 if (CvOUTSIDE(fmtcv) && !CvUNIQUE(CvOUTSIDE(fmtcv))) {
547 SvREFCNT_inc_simple_void(fmtcv);
548 pad_add_anon((SV*)fmtcv, OP_NULL);
555 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
560 { (yyval.opval) = (OP*)NULL; ;}
565 { SvREFCNT_inc_simple_void(PL_compcv);
567 (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));
568 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
570 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));
571 (yyval.opval) = (OP*)NULL;
578 { SvREFCNT_inc_simple_void(PL_compcv);
581 OP* o = newSVOP(OP_ANONCODE, 0,
582 (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)));
583 (yyval.opval) = newOP(OP_NULL,0);
584 op_getmad(o,(yyval.opval),'&');
585 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
586 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
587 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
588 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
589 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
590 (ps[(6) - (6)].val.opval)->op_madprop = 0;
593 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));
594 (yyval.opval) = (OP*)NULL;
601 { (yyval.ival) = start_subparse(FALSE, 0);
602 SAVEFREESV(PL_compcv); ;}
607 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
608 SAVEFREESV(PL_compcv); ;}
613 { (yyval.ival) = start_subparse(TRUE, 0);
614 SAVEFREESV(PL_compcv); ;}
619 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
620 if (strEQ(name, "BEGIN") || strEQ(name, "END")
621 || strEQ(name, "INIT") || strEQ(name, "CHECK")
622 || strEQ(name, "UNITCHECK"))
623 CvSPECIAL_on(PL_compcv);
624 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
629 { (yyval.opval) = (OP*)NULL; ;}
634 { (yyval.opval) = (OP*)NULL; ;}
639 { (yyval.opval) = (ps[(2) - (2)].val.opval);
640 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
646 { (yyval.opval) = IF_MAD(
650 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
656 { (yyval.opval) = (ps[(2) - (2)].val.opval);
657 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
663 { (yyval.opval) = IF_MAD(
667 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
673 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
678 { (yyval.opval) = IF_MAD(
682 PL_parser->expect = XSTATE;
683 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
691 (yyval.opval) = package((ps[(3) - (4)].val.opval));
692 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
693 if ((ps[(2) - (4)].val.opval))
694 package_version((ps[(2) - (4)].val.opval));
695 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
697 package((ps[(3) - (4)].val.opval));
698 if ((ps[(2) - (4)].val.opval))
699 package_version((ps[(2) - (4)].val.opval));
700 (yyval.opval) = (OP*)NULL;
708 int save_3_latefree = (ps[(3) - (5)].val.opval)->op_latefree;
709 (ps[(3) - (5)].val.opval)->op_latefree = 1;
710 package((ps[(3) - (5)].val.opval));
711 (ps[(3) - (5)].val.opval)->op_latefree = save_3_latefree;
712 if ((ps[(2) - (5)].val.opval)) {
713 int save_2_latefree = (ps[(2) - (5)].val.opval)->op_latefree;
714 (ps[(2) - (5)].val.opval)->op_latefree = 1;
715 package_version((ps[(2) - (5)].val.opval));
716 (ps[(2) - (5)].val.opval)->op_latefree = save_2_latefree;
723 { if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
724 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
725 (yyval.opval) = block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval));
726 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
727 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
728 op_free((ps[(3) - (8)].val.opval));
729 if ((ps[(2) - (8)].val.opval))
730 op_free((ps[(2) - (8)].val.opval));
736 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
741 { SvREFCNT_inc_simple_void(PL_compcv);
743 (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));
744 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
745 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
746 if (PL_parser->rsfp_filters &&
747 AvFILLp(PL_parser->rsfp_filters) >= 0)
748 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
750 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));
751 (yyval.opval) = (OP*)NULL;
758 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
759 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
765 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
766 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
772 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
773 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
781 OP* op = newNULLLIST();
782 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
783 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
785 (yyval.opval) = (ps[(1) - (2)].val.opval);
793 OP* term = (ps[(3) - (3)].val.opval);
795 term = newUNOP(OP_NULL, 0, term);
796 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
798 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
804 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
805 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
806 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
812 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
813 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
814 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
815 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
816 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
822 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
824 prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
825 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
826 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
827 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
828 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
834 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
835 append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
836 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
837 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
843 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
845 prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
846 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
852 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
854 prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
855 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
856 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
857 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
863 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
864 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
870 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
871 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
872 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
873 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
879 { SvREFCNT_inc_simple_void(PL_compcv);
880 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
885 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
887 prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
893 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
894 PL_parser->expect = XOPERATOR;
895 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
896 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
897 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
903 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
904 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
905 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
911 { (yyval.opval) = newBINOP(OP_AELEM, 0,
912 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
913 scalar((ps[(4) - (5)].val.opval)));
914 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
915 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
916 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
922 { (yyval.opval) = newBINOP(OP_AELEM, 0,
923 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
924 scalar((ps[(3) - (4)].val.opval)));
925 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
926 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
932 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
933 PL_parser->expect = XOPERATOR;
934 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
935 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
936 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
942 { (yyval.opval) = newBINOP(OP_HELEM, 0,
943 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
944 jmaybe((ps[(4) - (6)].val.opval)));
945 PL_parser->expect = XOPERATOR;
946 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
947 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
948 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
949 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
955 { (yyval.opval) = newBINOP(OP_HELEM, 0,
956 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
957 jmaybe((ps[(3) - (5)].val.opval)));
958 PL_parser->expect = XOPERATOR;
959 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
960 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
961 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
967 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
968 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
969 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
970 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
971 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
977 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
978 append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
979 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
980 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
981 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
982 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
988 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
989 append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
990 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
991 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
992 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
998 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
999 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
1000 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1001 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1007 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
1008 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
1009 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
1010 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
1011 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
1017 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval));
1018 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1019 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1025 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
1026 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
1027 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
1028 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
1029 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
1035 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
1036 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1042 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1043 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1049 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
1050 scalar((ps[(1) - (3)].val.opval));
1051 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
1052 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1058 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1059 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1065 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1066 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1072 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1073 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1078 #line 1000 "perly.y"
1079 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1080 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1085 #line 1004 "perly.y"
1086 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1087 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1092 #line 1008 "perly.y"
1093 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1094 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1099 #line 1012 "perly.y"
1101 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1104 op = (UNOP*)(yyval.opval);
1105 op = (UNOP*)op->op_first; /* get to flop */
1106 op = (UNOP*)op->op_first; /* get to flip */
1107 op = (UNOP*)op->op_first; /* get to range */
1108 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1114 #line 1024 "perly.y"
1115 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1116 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1121 #line 1028 "perly.y"
1122 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1123 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1128 #line 1032 "perly.y"
1129 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1130 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1135 #line 1036 "perly.y"
1136 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1137 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1138 ((yyval.opval)->op_type == OP_NOT
1139 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1145 #line 1046 "perly.y"
1146 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1147 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1152 #line 1050 "perly.y"
1153 { (yyval.opval) = IF_MAD(
1154 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1155 (ps[(2) - (2)].val.opval)
1157 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1162 #line 1057 "perly.y"
1163 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1164 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1169 #line 1061 "perly.y"
1170 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1171 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1176 #line 1065 "perly.y"
1177 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1178 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1179 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1184 #line 1070 "perly.y"
1185 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1186 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1187 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1192 #line 1075 "perly.y"
1193 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1194 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1195 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1200 #line 1080 "perly.y"
1201 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1202 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1203 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1208 #line 1089 "perly.y"
1209 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1210 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1211 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1216 #line 1094 "perly.y"
1217 { (yyval.opval) = newANONLIST((OP*)NULL);
1218 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1219 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1224 #line 1099 "perly.y"
1225 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1226 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1227 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1228 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1233 #line 1105 "perly.y"
1234 { (yyval.opval) = newANONHASH((OP*)NULL);
1235 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1236 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1237 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1242 #line 1111 "perly.y"
1243 { SvREFCNT_inc_simple_void(PL_compcv);
1244 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1245 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1246 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1247 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1252 #line 1122 "perly.y"
1253 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1254 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1259 #line 1126 "perly.y"
1260 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
1261 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1266 #line 1130 "perly.y"
1267 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1268 OPf_SPECIAL|OPf_STACKED,
1269 prepend_elem(OP_LIST,
1271 (OPpENTERSUB_AMPER<<8),
1272 scalar((ps[(2) - (4)].val.opval))
1273 )),(OP*)NULL)); dep();
1274 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1275 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1276 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1281 #line 1142 "perly.y"
1282 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1283 OPf_SPECIAL|OPf_STACKED,
1284 append_elem(OP_LIST,
1285 (ps[(4) - (5)].val.opval),
1287 (OPpENTERSUB_AMPER<<8),
1288 scalar((ps[(2) - (5)].val.opval))
1290 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1291 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1292 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1297 #line 1155 "perly.y"
1298 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1299 prepend_elem(OP_LIST,
1300 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1301 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1302 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1303 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1308 #line 1163 "perly.y"
1309 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1310 prepend_elem(OP_LIST,
1311 (ps[(4) - (5)].val.opval),
1312 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1313 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1314 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1315 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1320 #line 1179 "perly.y"
1321 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1322 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1323 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1328 #line 1184 "perly.y"
1329 { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
1330 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1335 #line 1188 "perly.y"
1336 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1340 #line 1190 "perly.y"
1341 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1342 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1347 #line 1194 "perly.y"
1348 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1349 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1350 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1355 #line 1199 "perly.y"
1356 { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
1360 #line 1201 "perly.y"
1361 { (yyval.opval) = sawparens(newNULLLIST());
1362 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1363 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1368 #line 1206 "perly.y"
1369 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1373 #line 1208 "perly.y"
1374 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1378 #line 1210 "perly.y"
1379 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1383 #line 1212 "perly.y"
1384 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1388 #line 1214 "perly.y"
1389 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1393 #line 1216 "perly.y"
1394 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1398 #line 1218 "perly.y"
1399 { (yyval.opval) = prepend_elem(OP_ASLICE,
1400 newOP(OP_PUSHMARK, 0),
1401 newLISTOP(OP_ASLICE, 0,
1402 list((ps[(3) - (4)].val.opval)),
1403 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1404 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1405 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1410 #line 1227 "perly.y"
1411 { (yyval.opval) = prepend_elem(OP_HSLICE,
1412 newOP(OP_PUSHMARK, 0),
1413 newLISTOP(OP_HSLICE, 0,
1414 list((ps[(3) - (5)].val.opval)),
1415 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1416 PL_parser->expect = XOPERATOR;
1417 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1418 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1419 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1424 #line 1238 "perly.y"
1425 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1429 #line 1240 "perly.y"
1430 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1434 #line 1242 "perly.y"
1435 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1436 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1437 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1442 #line 1247 "perly.y"
1444 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1445 append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1447 OP* op = (yyval.opval);
1448 if (op->op_type == OP_CONST) { /* defeat const fold */
1449 op = (OP*)op->op_madprop->mad_val;
1451 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1452 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1458 #line 1260 "perly.y"
1459 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1460 append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1461 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1466 #line 1265 "perly.y"
1467 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1468 PL_hints |= HINT_BLOCK_SCOPE;
1469 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1474 #line 1270 "perly.y"
1475 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1476 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1481 #line 1274 "perly.y"
1482 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1483 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1488 #line 1278 "perly.y"
1489 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1490 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1495 #line 1282 "perly.y"
1496 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1497 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1502 #line 1286 "perly.y"
1503 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1504 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1509 #line 1290 "perly.y"
1510 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1511 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1516 #line 1294 "perly.y"
1517 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1518 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1523 #line 1298 "perly.y"
1524 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1528 #line 1300 "perly.y"
1529 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1530 append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1534 #line 1303 "perly.y"
1535 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1536 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1541 #line 1307 "perly.y"
1542 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1543 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1544 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1545 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1550 #line 1313 "perly.y"
1551 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1552 scalar((ps[(1) - (1)].val.opval))); ;}
1556 #line 1316 "perly.y"
1557 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1558 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1559 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1561 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1562 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1563 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1568 #line 1325 "perly.y"
1569 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1570 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1571 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1572 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1577 #line 1331 "perly.y"
1578 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1579 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1580 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1585 #line 1338 "perly.y"
1587 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1588 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1589 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1594 #line 1348 "perly.y"
1595 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1597 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1598 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1599 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1605 #line 1356 "perly.y"
1606 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1607 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1612 #line 1363 "perly.y"
1613 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1614 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1615 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1620 #line 1368 "perly.y"
1621 { (yyval.opval) = sawparens(newNULLLIST());
1622 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1623 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1628 #line 1373 "perly.y"
1629 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1633 #line 1375 "perly.y"
1634 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1638 #line 1377 "perly.y"
1639 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1643 #line 1382 "perly.y"
1644 { (yyval.opval) = (OP*)NULL; ;}
1648 #line 1384 "perly.y"
1649 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1653 #line 1388 "perly.y"
1654 { (yyval.opval) = (OP*)NULL; ;}
1658 #line 1390 "perly.y"
1659 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1663 #line 1394 "perly.y"
1664 { (yyval.i_tkval) = (ps[(1) - (1)].val.i_tkval); ;}
1668 #line 1396 "perly.y"
1669 { munge_qwlist_to_paren_list((ps[(1) - (1)].val.opval)); ;}
1673 #line 1398 "perly.y"
1674 { (yyval.i_tkval) = (ps[(3) - (3)].val.i_tkval); ;}
1678 #line 1404 "perly.y"
1679 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1683 #line 1408 "perly.y"
1684 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1685 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1690 #line 1414 "perly.y"
1691 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1692 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1697 #line 1420 "perly.y"
1698 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1699 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1704 #line 1426 "perly.y"
1705 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1706 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1711 #line 1432 "perly.y"
1712 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1713 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1718 #line 1438 "perly.y"
1719 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1720 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1725 #line 1445 "perly.y"
1726 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1730 #line 1447 "perly.y"
1731 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1735 #line 1449 "perly.y"
1736 { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
1740 #line 1452 "perly.y"
1741 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1745 /* Line 1267 of yacc.c. */