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(op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval)), (ps[(1) - (2)].val.opval));
112 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
113 PL_pad_reset_pending = TRUE;
114 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
115 PL_hints |= HINT_BLOCK_SCOPE;
121 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
127 PL_pad_reset_pending = TRUE;
128 (yyval.opval) = (ps[(1) - (1)].val.opval);
134 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
135 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
140 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
145 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
151 if (PVAL((ps[(1) - (2)].val.p_tkval))) {
152 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), newOP(OP_NULL, 0));
153 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),(yyval.opval),'L');
154 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first,';');
157 (yyval.opval) = IF_MAD(
160 PL_parser->copline = NOLINE;
161 TOKEN_FREE((ps[(1) - (2)].val.p_tkval));
162 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
164 PL_parser->expect = XSTATE;
171 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)), (ps[(2) - (3)].val.opval));
172 PL_parser->expect = XSTATE;
174 /* sideff might already have a nexstate */
175 OP* op = ((LISTOP*)(yyval.opval))->op_first;
177 while (op->op_sibling &&
178 op->op_sibling->op_type == OP_NEXTSTATE)
180 token_getmad((ps[(1) - (3)].val.p_tkval),op,'L');
181 token_getmad((ps[(3) - (3)].val.i_tkval),op,';');
189 { (yyval.opval) = newSTATEOP(0, NULL,
190 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
191 NOLINE, (OP*)NULL, (ps[(1) - (1)].val.opval),
197 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
202 { (yyval.opval) = (OP*)NULL; ;}
207 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
212 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
213 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
219 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
220 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
226 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
227 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
233 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
234 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
240 { (yyval.opval) = newFOROP(0, NULL, (line_t)IVAL((ps[(2) - (3)].val.i_tkval)),
241 (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
242 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first->op_sibling,'w');
248 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), scope((ps[(1) - (3)].val.opval))); ;}
253 { (yyval.opval) = (OP*)NULL; ;}
258 { ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = scope((ps[(2) - (2)].val.opval));
259 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
265 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
266 (yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)), scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
267 PL_hints |= HINT_BLOCK_SCOPE;
268 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
269 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
270 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
276 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
277 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
278 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
279 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
280 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
281 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
287 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
288 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
289 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
290 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
291 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
292 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
298 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
299 newWHENOP((ps[(4) - (6)].val.opval), scope((ps[(6) - (6)].val.opval)))); ;}
304 { (yyval.opval) = newWHENOP(0, scope((ps[(2) - (2)].val.opval))); ;}
309 { (yyval.opval) = (OP*)NULL; ;}
314 { (yyval.opval) = scope((ps[(2) - (2)].val.opval));
315 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
322 PL_parser->copline = (line_t)IVAL((ps[(2) - (9)].val.i_tkval));
323 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
324 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
325 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
326 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))));
327 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
328 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
329 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
330 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
337 PL_parser->copline = (line_t)IVAL((ps[(2) - (9)].val.i_tkval));
338 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
339 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
340 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
341 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))));
342 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
343 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
344 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
345 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
352 (yyval.opval) = block_end((ps[(4) - (10)].val.ival),
353 innerop = newFOROP(0, PVAL((ps[(1) - (10)].val.p_tkval)), (line_t)IVAL((ps[(2) - (10)].val.i_tkval)),
354 (ps[(5) - (10)].val.opval), (ps[(7) - (10)].val.opval), (ps[(9) - (10)].val.opval), (ps[(10) - (10)].val.opval)));
355 TOKEN_GETMAD((ps[(1) - (10)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
356 TOKEN_GETMAD((ps[(2) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
357 TOKEN_GETMAD((ps[(3) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'d');
358 TOKEN_GETMAD((ps[(6) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
359 TOKEN_GETMAD((ps[(8) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
366 (yyval.opval) = block_end((ps[(5) - (9)].val.ival),
367 innerop = newFOROP(0, PVAL((ps[(1) - (9)].val.p_tkval)), (line_t)IVAL((ps[(2) - (9)].val.i_tkval)),
368 mod((ps[(3) - (9)].val.opval), OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
369 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
370 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
371 TOKEN_GETMAD((ps[(4) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
372 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
379 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
380 innerop = newFOROP(0, PVAL((ps[(1) - (8)].val.p_tkval)), (line_t)IVAL((ps[(2) - (8)].val.i_tkval)),
381 (OP*)NULL, (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
382 TOKEN_GETMAD((ps[(1) - (8)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
383 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
384 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
385 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
392 PL_parser->copline = (line_t)IVAL((ps[(2) - (12)].val.i_tkval));
393 forop = newSTATEOP(0, PVAL((ps[(1) - (12)].val.p_tkval)),
394 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
395 IVAL((ps[(2) - (12)].val.i_tkval)), scalar((ps[(7) - (12)].val.opval)),
396 (ps[(12) - (12)].val.opval), (ps[(10) - (12)].val.opval), (ps[(9) - (12)].val.ival)));
398 forop = newUNOP(OP_NULL, 0, op_append_elem(OP_LINESEQ,
400 CopLABEL_alloc(((ps[(1) - (12)].val.p_tkval))->tk_lval.pval),
401 ((ps[(5) - (12)].val.opval) ? (ps[(5) - (12)].val.opval) : newOP(OP_NULL, 0)) ),
404 token_getmad((ps[(2) - (12)].val.i_tkval),forop,'3');
405 token_getmad((ps[(3) - (12)].val.i_tkval),forop,'(');
406 token_getmad((ps[(6) - (12)].val.i_tkval),forop,'1');
407 token_getmad((ps[(8) - (12)].val.i_tkval),forop,'2');
408 token_getmad((ps[(11) - (12)].val.i_tkval),forop,')');
409 token_getmad((ps[(1) - (12)].val.p_tkval),forop,'L');
411 if ((ps[(5) - (12)].val.opval)) {
412 forop = op_append_elem(OP_LINESEQ,
413 newSTATEOP(0, CopLABEL_alloc((ps[(1) - (12)].val.p_tkval)), (ps[(5) - (12)].val.opval)),
419 (yyval.opval) = block_end((ps[(4) - (12)].val.ival), forop); ;}
424 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)),
425 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
426 NOLINE, (OP*)NULL, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval), 0));
427 TOKEN_GETMAD((ps[(1) - (3)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
432 { PL_parser->copline = (line_t) IVAL((ps[(2) - (8)].val.i_tkval));
433 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
434 newSTATEOP(0, PVAL((ps[(1) - (8)].val.p_tkval)),
435 newGIVENOP((ps[(6) - (8)].val.opval), scope((ps[(8) - (8)].val.opval)),
436 (PADOFFSET) (ps[(5) - (8)].val.ival)) )); ;}
441 { (yyval.ival) = (PL_min_intro_pending &&
442 PL_max_intro_pending >= PL_min_intro_pending);
448 { (yyval.opval) = (OP*)NULL; ;}
454 (void)scan_num("1", &tmplval);
455 (yyval.opval) = tmplval.opval; ;}
460 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
465 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
470 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
475 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
484 (yyval.p_tkval) = newTOKEN(OP_NULL, tmplval, 0);
486 (yyval.p_tkval) = NULL;
493 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
498 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
503 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
508 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
513 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
518 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
523 { (yyval.opval) = newOP(OP_NULL,0);
524 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
531 CV *fmtcv = PL_compcv;
532 SvREFCNT_inc_simple_void(PL_compcv);
534 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
535 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
536 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
537 token_free((ps[(1) - (4)].val.i_tkval));
539 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
540 (yyval.opval) = (OP*)NULL;
542 if (CvOUTSIDE(fmtcv) && !CvUNIQUE(CvOUTSIDE(fmtcv))) {
543 SvREFCNT_inc_simple_void(fmtcv);
544 pad_add_anon((SV*)fmtcv, OP_NULL);
551 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
556 { (yyval.opval) = (OP*)NULL; ;}
561 { SvREFCNT_inc_simple_void(PL_compcv);
563 (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));
564 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
566 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));
567 (yyval.opval) = (OP*)NULL;
574 { SvREFCNT_inc_simple_void(PL_compcv);
577 OP* o = newSVOP(OP_ANONCODE, 0,
578 (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)));
579 (yyval.opval) = newOP(OP_NULL,0);
580 op_getmad(o,(yyval.opval),'&');
581 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
582 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
583 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
584 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
585 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
586 (ps[(6) - (6)].val.opval)->op_madprop = 0;
589 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));
590 (yyval.opval) = (OP*)NULL;
597 { (yyval.ival) = start_subparse(FALSE, 0);
598 SAVEFREESV(PL_compcv); ;}
603 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
604 SAVEFREESV(PL_compcv); ;}
609 { (yyval.ival) = start_subparse(TRUE, 0);
610 SAVEFREESV(PL_compcv); ;}
615 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
616 if (strEQ(name, "BEGIN") || strEQ(name, "END")
617 || strEQ(name, "INIT") || strEQ(name, "CHECK")
618 || strEQ(name, "UNITCHECK"))
619 CvSPECIAL_on(PL_compcv);
620 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
625 { (yyval.opval) = (OP*)NULL; ;}
630 { (yyval.opval) = (OP*)NULL; ;}
635 { (yyval.opval) = (ps[(2) - (2)].val.opval);
636 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
642 { (yyval.opval) = IF_MAD(
646 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
652 { (yyval.opval) = (ps[(2) - (2)].val.opval);
653 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
659 { (yyval.opval) = IF_MAD(
663 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
669 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
674 { (yyval.opval) = IF_MAD(
678 PL_parser->expect = XSTATE;
679 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
687 (yyval.opval) = package((ps[(3) - (4)].val.opval));
688 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
689 if ((ps[(2) - (4)].val.opval))
690 package_version((ps[(2) - (4)].val.opval));
691 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
693 package((ps[(3) - (4)].val.opval));
694 if ((ps[(2) - (4)].val.opval))
695 package_version((ps[(2) - (4)].val.opval));
696 (yyval.opval) = (OP*)NULL;
704 int save_3_latefree = (ps[(3) - (5)].val.opval)->op_latefree;
705 (ps[(3) - (5)].val.opval)->op_latefree = 1;
706 package((ps[(3) - (5)].val.opval));
707 (ps[(3) - (5)].val.opval)->op_latefree = save_3_latefree;
708 if ((ps[(2) - (5)].val.opval)) {
709 int save_2_latefree = (ps[(2) - (5)].val.opval)->op_latefree;
710 (ps[(2) - (5)].val.opval)->op_latefree = 1;
711 package_version((ps[(2) - (5)].val.opval));
712 (ps[(2) - (5)].val.opval)->op_latefree = save_2_latefree;
719 { if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
720 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
721 (yyval.opval) = block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval));
722 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
723 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
724 op_free((ps[(3) - (8)].val.opval));
725 if ((ps[(2) - (8)].val.opval))
726 op_free((ps[(2) - (8)].val.opval));
732 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
737 { SvREFCNT_inc_simple_void(PL_compcv);
739 (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));
740 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
741 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
742 if (PL_parser->rsfp_filters &&
743 AvFILLp(PL_parser->rsfp_filters) >= 0)
744 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
746 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));
747 (yyval.opval) = (OP*)NULL;
754 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
755 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
761 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
762 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
768 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
769 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
777 OP* op = newNULLLIST();
778 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
779 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
781 (yyval.opval) = (ps[(1) - (2)].val.opval);
789 OP* term = (ps[(3) - (3)].val.opval);
791 term = newUNOP(OP_NULL, 0, term);
792 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
794 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
800 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
801 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
802 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
808 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
809 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
810 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
811 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
812 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
818 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
819 op_append_elem(OP_LIST,
820 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
821 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
822 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
823 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
824 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
830 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
831 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
832 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
833 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
839 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
840 op_append_elem(OP_LIST,
841 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
842 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
848 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
849 op_append_elem(OP_LIST,
850 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
851 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
852 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
853 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
859 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
860 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
866 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
867 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
868 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
869 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
875 { SvREFCNT_inc_simple_void(PL_compcv);
876 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
881 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
882 op_append_elem(OP_LIST,
883 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
889 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
890 PL_parser->expect = XOPERATOR;
891 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
892 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
893 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
899 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
900 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
901 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
907 { (yyval.opval) = newBINOP(OP_AELEM, 0,
908 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
909 scalar((ps[(4) - (5)].val.opval)));
910 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
911 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
912 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
918 { (yyval.opval) = newBINOP(OP_AELEM, 0,
919 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
920 scalar((ps[(3) - (4)].val.opval)));
921 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
922 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
928 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
929 PL_parser->expect = XOPERATOR;
930 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
931 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
932 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
938 { (yyval.opval) = newBINOP(OP_HELEM, 0,
939 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
940 jmaybe((ps[(4) - (6)].val.opval)));
941 PL_parser->expect = XOPERATOR;
942 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
943 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
944 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
945 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
951 { (yyval.opval) = newBINOP(OP_HELEM, 0,
952 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
953 jmaybe((ps[(3) - (5)].val.opval)));
954 PL_parser->expect = XOPERATOR;
955 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
956 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
957 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
963 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
964 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
965 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
966 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
967 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
973 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
974 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
975 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
976 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
977 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
978 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
984 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
985 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
986 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
987 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
988 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
994 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
995 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
996 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
997 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1003 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
1004 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
1005 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
1006 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
1007 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
1013 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval));
1014 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1015 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1021 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
1022 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
1023 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
1024 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
1025 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
1031 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
1032 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1038 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1039 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1045 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
1046 scalar((ps[(1) - (3)].val.opval));
1047 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
1048 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1054 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1055 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1061 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1062 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1068 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1069 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1075 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1076 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1081 #line 1000 "perly.y"
1082 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1083 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1088 #line 1004 "perly.y"
1089 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1090 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1095 #line 1008 "perly.y"
1097 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1100 op = (UNOP*)(yyval.opval);
1101 op = (UNOP*)op->op_first; /* get to flop */
1102 op = (UNOP*)op->op_first; /* get to flip */
1103 op = (UNOP*)op->op_first; /* get to range */
1104 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1110 #line 1020 "perly.y"
1111 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1112 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1117 #line 1024 "perly.y"
1118 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1119 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1124 #line 1028 "perly.y"
1125 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1126 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1131 #line 1032 "perly.y"
1132 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1133 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1134 ((yyval.opval)->op_type == OP_NOT
1135 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1141 #line 1042 "perly.y"
1142 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1143 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1148 #line 1046 "perly.y"
1149 { (yyval.opval) = IF_MAD(
1150 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1151 (ps[(2) - (2)].val.opval)
1153 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1158 #line 1053 "perly.y"
1159 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1160 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1165 #line 1057 "perly.y"
1166 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1167 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1172 #line 1061 "perly.y"
1173 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1174 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1175 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1180 #line 1066 "perly.y"
1181 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1182 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1183 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1188 #line 1071 "perly.y"
1189 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1190 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1191 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1196 #line 1076 "perly.y"
1197 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1198 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1199 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1204 #line 1085 "perly.y"
1205 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1206 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1207 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1212 #line 1090 "perly.y"
1213 { (yyval.opval) = newANONLIST((OP*)NULL);
1214 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1215 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1220 #line 1095 "perly.y"
1221 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1222 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1223 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1224 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1229 #line 1101 "perly.y"
1230 { (yyval.opval) = newANONHASH((OP*)NULL);
1231 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1232 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1233 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1238 #line 1107 "perly.y"
1239 { SvREFCNT_inc_simple_void(PL_compcv);
1240 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1241 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1242 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1243 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1248 #line 1118 "perly.y"
1249 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1250 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1255 #line 1122 "perly.y"
1256 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
1257 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1262 #line 1126 "perly.y"
1263 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1264 OPf_SPECIAL|OPf_STACKED,
1265 op_prepend_elem(OP_LIST,
1267 (OPpENTERSUB_AMPER<<8),
1268 scalar((ps[(2) - (4)].val.opval))
1269 )),(OP*)NULL)); dep();
1270 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1271 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1272 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1277 #line 1138 "perly.y"
1278 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1279 OPf_SPECIAL|OPf_STACKED,
1280 op_append_elem(OP_LIST,
1281 (ps[(4) - (5)].val.opval),
1283 (OPpENTERSUB_AMPER<<8),
1284 scalar((ps[(2) - (5)].val.opval))
1286 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1287 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1288 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1293 #line 1151 "perly.y"
1294 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1295 op_prepend_elem(OP_LIST,
1296 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1297 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1298 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1299 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1304 #line 1159 "perly.y"
1305 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1306 op_prepend_elem(OP_LIST,
1307 (ps[(4) - (5)].val.opval),
1308 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1309 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1310 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1311 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1316 #line 1175 "perly.y"
1317 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1318 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1319 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1324 #line 1180 "perly.y"
1325 { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
1326 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1331 #line 1184 "perly.y"
1332 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1336 #line 1186 "perly.y"
1337 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1338 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1343 #line 1190 "perly.y"
1344 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1345 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1346 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1351 #line 1195 "perly.y"
1352 { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
1356 #line 1197 "perly.y"
1357 { (yyval.opval) = sawparens(newNULLLIST());
1358 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1359 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1364 #line 1202 "perly.y"
1365 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1369 #line 1204 "perly.y"
1370 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1374 #line 1206 "perly.y"
1375 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1379 #line 1208 "perly.y"
1380 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1384 #line 1210 "perly.y"
1385 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1389 #line 1212 "perly.y"
1390 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1394 #line 1214 "perly.y"
1395 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1396 newOP(OP_PUSHMARK, 0),
1397 newLISTOP(OP_ASLICE, 0,
1398 list((ps[(3) - (4)].val.opval)),
1399 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1400 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1401 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1406 #line 1223 "perly.y"
1407 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1408 newOP(OP_PUSHMARK, 0),
1409 newLISTOP(OP_HSLICE, 0,
1410 list((ps[(3) - (5)].val.opval)),
1411 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1412 PL_parser->expect = XOPERATOR;
1413 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1414 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1415 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1420 #line 1234 "perly.y"
1421 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1425 #line 1236 "perly.y"
1426 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1430 #line 1238 "perly.y"
1431 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1432 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1433 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1438 #line 1243 "perly.y"
1440 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1441 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1443 OP* op = (yyval.opval);
1444 if (op->op_type == OP_CONST) { /* defeat const fold */
1445 op = (OP*)op->op_madprop->mad_val;
1447 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1448 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1454 #line 1256 "perly.y"
1455 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1456 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1457 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1462 #line 1261 "perly.y"
1463 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1464 PL_hints |= HINT_BLOCK_SCOPE;
1465 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1470 #line 1266 "perly.y"
1471 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1472 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1477 #line 1270 "perly.y"
1478 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1479 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1484 #line 1274 "perly.y"
1485 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1486 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1491 #line 1278 "perly.y"
1492 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1493 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1498 #line 1282 "perly.y"
1499 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1500 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1505 #line 1286 "perly.y"
1506 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1507 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1512 #line 1290 "perly.y"
1513 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1514 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1519 #line 1294 "perly.y"
1520 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1524 #line 1296 "perly.y"
1525 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1526 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1530 #line 1299 "perly.y"
1531 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1532 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1537 #line 1303 "perly.y"
1538 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1539 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1540 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1541 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1546 #line 1309 "perly.y"
1547 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1548 scalar((ps[(1) - (1)].val.opval))); ;}
1552 #line 1312 "perly.y"
1553 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1554 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1555 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1557 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1558 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1559 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1564 #line 1321 "perly.y"
1565 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1566 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1567 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1568 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1573 #line 1327 "perly.y"
1574 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1575 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1576 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1581 #line 1334 "perly.y"
1583 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1584 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1585 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1590 #line 1344 "perly.y"
1591 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1593 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1594 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1595 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1601 #line 1352 "perly.y"
1602 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1603 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1608 #line 1359 "perly.y"
1609 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1610 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1611 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1616 #line 1364 "perly.y"
1617 { (yyval.opval) = sawparens(newNULLLIST());
1618 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1619 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1624 #line 1369 "perly.y"
1625 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1629 #line 1371 "perly.y"
1630 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1634 #line 1373 "perly.y"
1635 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1639 #line 1378 "perly.y"
1640 { (yyval.opval) = (OP*)NULL; ;}
1644 #line 1380 "perly.y"
1645 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1649 #line 1384 "perly.y"
1650 { (yyval.opval) = (OP*)NULL; ;}
1654 #line 1386 "perly.y"
1655 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1659 #line 1390 "perly.y"
1660 { (yyval.i_tkval) = (ps[(1) - (1)].val.i_tkval); ;}
1664 #line 1392 "perly.y"
1665 { munge_qwlist_to_paren_list((ps[(1) - (1)].val.opval)); ;}
1669 #line 1394 "perly.y"
1670 { (yyval.i_tkval) = (ps[(3) - (3)].val.i_tkval); ;}
1674 #line 1400 "perly.y"
1675 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1679 #line 1404 "perly.y"
1680 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1681 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1686 #line 1410 "perly.y"
1687 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1688 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1693 #line 1416 "perly.y"
1694 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1695 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1700 #line 1422 "perly.y"
1701 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1702 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1707 #line 1428 "perly.y"
1708 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1709 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1714 #line 1434 "perly.y"
1715 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1716 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1721 #line 1441 "perly.y"
1722 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1726 #line 1443 "perly.y"
1727 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1731 #line 1445 "perly.y"
1732 { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
1736 #line 1448 "perly.y"
1737 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1741 /* Line 1267 of yacc.c. */