1 /* -*- buffer-read-only: t -*-
2 !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
3 This file is built by regen_perly.pl from perly.y.
4 Any changes made here will be lost!
10 PL_parser->expect = XSTATE;
17 newPROG(block_end((ps[(3) - (4)].val.ival),(ps[(4) - (4)].val.opval)));
25 parser->expect = XTERM;
32 PL_eval_root = (ps[(3) - (3)].val.opval);
40 parser->expect = XBLOCK;
47 PL_pad_reset_pending = TRUE;
48 PL_eval_root = (ps[(3) - (3)].val.opval);
51 parser->yychar = YYEOF;
58 parser->expect = XSTATE;
65 PL_pad_reset_pending = TRUE;
66 PL_eval_root = (ps[(3) - (3)].val.opval);
69 parser->yychar = YYEOF;
76 parser->expect = XSTATE;
83 PL_pad_reset_pending = TRUE;
84 PL_eval_root = (ps[(3) - (3)].val.opval);
87 parser->yychar = YYEOF;
94 parser->expect = XSTATE;
101 PL_eval_root = (ps[(3) - (3)].val.opval);
108 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
109 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
110 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
111 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
112 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
118 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (7)].val.i_tkval)))
119 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
120 (yyval.opval) = block_end((ps[(2) - (7)].val.ival), (ps[(5) - (7)].val.opval));
121 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'{');
122 TOKEN_GETMAD((ps[(7) - (7)].val.i_tkval),(yyval.opval),'}');
128 { (yyval.ival) = block_start(TRUE); ;}
133 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
134 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
135 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
136 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
137 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
143 { (yyval.ival) = block_start(FALSE); ;}
148 { (yyval.opval) = (OP*)NULL; ;}
153 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
154 PL_pad_reset_pending = TRUE;
155 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
156 PL_hints |= HINT_BLOCK_SCOPE;
162 { (yyval.opval) = (OP*)NULL; ;}
167 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
168 PL_pad_reset_pending = TRUE;
169 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
170 PL_hints |= HINT_BLOCK_SCOPE;
177 if((ps[(1) - (1)].val.opval)) {
178 (yyval.opval) = newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval));
180 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), NULL);
187 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
193 (yyval.opval) = newSTATEOP(SvUTF8(((SVOP*)(ps[(1) - (2)].val.p_tkval))->op_sv),
194 savepv(SvPVX(((SVOP*)(ps[(1) - (2)].val.p_tkval))->op_sv)), (ps[(2) - (2)].val.opval));
195 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),
196 (ps[(2) - (2)].val.opval) ? cLISTOPx((yyval.opval))->op_first : (yyval.opval), 'L');
203 (yyval.opval) = newSTATEOP(SvUTF8(((SVOP*)(ps[(1) - (2)].val.p_tkval))->op_sv),
204 savepv(SvPVX(((SVOP*)(ps[(1) - (2)].val.p_tkval))->op_sv)), (ps[(2) - (2)].val.opval));
205 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval), cLISTOPx((yyval.opval))->op_first, 'L');
211 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
217 (yyval.opval) = newOP(OP_NULL,0);
218 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
225 CV *fmtcv = PL_compcv;
227 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
228 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
229 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
230 token_free((ps[(1) - (4)].val.i_tkval));
232 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
233 (yyval.opval) = (OP*)NULL;
235 if (CvOUTSIDE(fmtcv) && !CvEVAL(CvOUTSIDE(fmtcv))) {
236 SvREFCNT_inc_simple_void(fmtcv);
237 pad_add_anon(fmtcv, OP_NULL);
245 SvREFCNT_inc_simple_void(PL_compcv);
248 OP* o = newSVOP(OP_ANONCODE, 0,
249 (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)));
250 (yyval.opval) = newOP(OP_NULL,0);
251 op_getmad(o,(yyval.opval),'&');
252 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
253 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
254 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
255 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
256 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
257 (ps[(6) - (6)].val.opval)->op_madprop = 0;
260 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));
261 (yyval.opval) = (OP*)NULL;
269 /* Unimplemented "my sub foo { }" */
270 SvREFCNT_inc_simple_void(PL_compcv);
272 (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));
273 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
275 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));
276 (yyval.opval) = (OP*)NULL;
285 (yyval.opval) = package((ps[(3) - (4)].val.opval));
286 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
287 if ((ps[(2) - (4)].val.opval))
288 package_version((ps[(2) - (4)].val.opval));
289 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
291 package((ps[(3) - (4)].val.opval));
292 if ((ps[(2) - (4)].val.opval))
293 package_version((ps[(2) - (4)].val.opval));
294 (yyval.opval) = (OP*)NULL;
301 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
307 SvREFCNT_inc_simple_void(PL_compcv);
309 (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));
310 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
311 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
312 if (PL_parser->rsfp_filters &&
313 AvFILLp(PL_parser->rsfp_filters) >= 0)
314 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
316 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));
317 (yyval.opval) = (OP*)NULL;
325 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
326 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
327 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
328 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
329 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
330 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
337 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
338 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
339 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
340 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
341 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
342 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
349 const PADOFFSET offset = pad_findmy_pvs("$_", 0);
350 (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
351 newGIVENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)),
353 || PAD_COMPNAME_FLAGS_isOUR(offset)
356 PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
362 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;}
367 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;}
373 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
374 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
375 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
376 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
377 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
378 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
379 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
386 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
387 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
388 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
389 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
390 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
391 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
392 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
399 OP *initop = IF_MAD((ps[(4) - (11)].val.opval) ? (ps[(4) - (11)].val.opval) : newOP(OP_NULL, 0), (ps[(4) - (11)].val.opval));
400 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
401 scalar((ps[(6) - (11)].val.opval)), (ps[(11) - (11)].val.opval), (ps[(9) - (11)].val.opval), (ps[(8) - (11)].val.ival));
403 forop = op_prepend_elem(OP_LINESEQ, initop,
404 op_append_elem(OP_LINESEQ,
405 newOP(OP_UNSTACK, OPf_SPECIAL),
408 DO_MAD({ forop = newUNOP(OP_NULL, 0, forop); })
409 (yyval.opval) = block_end((ps[(3) - (11)].val.ival), forop);
410 TOKEN_GETMAD((ps[(1) - (11)].val.i_tkval),(yyval.opval),'3');
411 TOKEN_GETMAD((ps[(2) - (11)].val.i_tkval),(yyval.opval),'(');
412 TOKEN_GETMAD((ps[(5) - (11)].val.i_tkval),(yyval.opval),'1');
413 TOKEN_GETMAD((ps[(7) - (11)].val.i_tkval),(yyval.opval),'2');
414 TOKEN_GETMAD((ps[(10) - (11)].val.i_tkval),(yyval.opval),')');
415 PL_parser->copline = (line_t)IVAL((ps[(1) - (11)].val.i_tkval));
422 (yyval.opval) = block_end((ps[(3) - (9)].val.ival), newFOROP(0, (ps[(4) - (9)].val.opval), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
423 TOKEN_GETMAD((ps[(1) - (9)].val.i_tkval),(yyval.opval),'W');
424 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),(yyval.opval),'d');
425 TOKEN_GETMAD((ps[(5) - (9)].val.i_tkval),(yyval.opval),'(');
426 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),(yyval.opval),')');
427 PL_parser->copline = (line_t)IVAL((ps[(1) - (9)].val.i_tkval));
434 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
435 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
436 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
437 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),(yyval.opval),'(');
438 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),(yyval.opval),')');
439 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
446 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
447 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
448 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'W');
449 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
450 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
451 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
458 /* a block is a loop that happens once */
459 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
460 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
467 package((ps[(3) - (5)].val.opval));
468 if ((ps[(2) - (5)].val.opval)) {
469 package_version((ps[(2) - (5)].val.opval));
477 /* a block is a loop that happens once */
478 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
479 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
480 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
481 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
482 if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
483 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
490 PL_parser->expect = XSTATE;
491 (yyval.opval) = (ps[(1) - (2)].val.opval);
492 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
499 PL_parser->expect = XSTATE;
500 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), (OP*)NULL);
501 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
502 PL_parser->copline = NOLINE;
509 if ((ps[(2) - (2)].val.opval)) {
510 OP *term = (ps[(2) - (2)].val.opval);
511 DO_MAD(term = newUNOP(OP_NULL, 0, term));
512 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term);
516 OP *op = newNULLLIST();
517 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
519 list = (ps[(1) - (2)].val.opval);
522 if (PL_parser->copline == NOLINE)
523 PL_parser->copline = CopLINE(PL_curcop)-1;
524 else PL_parser->copline--;
525 (yyval.opval) = newSTATEOP(0, NULL,
526 convert(OP_FORMLINE, 0, list));
532 { (yyval.opval) = NULL; ;}
537 { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); ;}
542 { (yyval.opval) = (OP*)NULL; ;}
547 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
552 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
553 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
559 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
560 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
566 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
567 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
573 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
574 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
580 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
581 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
582 PL_parser->copline = (line_t)IVAL((ps[(2) - (3)].val.i_tkval));
588 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
593 { (yyval.opval) = (OP*)NULL; ;}
599 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
600 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
601 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
607 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
608 (yyval.opval) = newCONDOP(0,
609 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
610 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
611 PL_hints |= HINT_BLOCK_SCOPE;
612 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
613 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
614 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
620 { (yyval.opval) = (OP*)NULL; ;}
626 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
627 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
633 { (yyval.ival) = (PL_min_intro_pending &&
634 PL_max_intro_pending >= PL_min_intro_pending);
640 { (yyval.opval) = (OP*)NULL; ;}
646 (void)scan_num("1", &tmplval);
647 (yyval.opval) = tmplval.opval; ;}
652 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
657 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
662 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
667 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
672 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
677 { (yyval.opval) = (OP*)NULL; ;}
682 { (yyval.ival) = start_subparse(FALSE, 0);
683 SAVEFREESV(PL_compcv); ;}
688 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
689 SAVEFREESV(PL_compcv); ;}
694 { (yyval.ival) = start_subparse(TRUE, 0);
695 SAVEFREESV(PL_compcv); ;}
700 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
701 if (strEQ(name, "BEGIN") || strEQ(name, "END")
702 || strEQ(name, "INIT") || strEQ(name, "CHECK")
703 || strEQ(name, "UNITCHECK"))
704 CvSPECIAL_on(PL_compcv);
705 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
710 { (yyval.opval) = (OP*)NULL; ;}
715 { (yyval.opval) = (OP*)NULL; ;}
720 { (yyval.opval) = (ps[(2) - (2)].val.opval);
721 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
727 { (yyval.opval) = IF_MAD(
731 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
737 { (yyval.opval) = (ps[(2) - (2)].val.opval);
738 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
744 { (yyval.opval) = IF_MAD(
748 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
754 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
759 { (yyval.opval) = IF_MAD(
763 PL_parser->expect = XSTATE;
764 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
770 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
771 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
777 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
778 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
784 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
785 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
793 OP* op = newNULLLIST();
794 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
795 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
797 (yyval.opval) = (ps[(1) - (2)].val.opval);
805 OP* term = (ps[(3) - (3)].val.opval);
807 term = newUNOP(OP_NULL, 0, term);
808 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
810 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
816 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
817 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
818 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
824 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
825 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
826 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
827 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
828 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
834 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
835 op_append_elem(OP_LIST,
836 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
837 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
838 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
839 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
840 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
846 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
847 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
848 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
849 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
855 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
856 op_append_elem(OP_LIST,
857 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
858 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
864 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
865 op_append_elem(OP_LIST,
866 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
867 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
868 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
869 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
875 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
876 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
882 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
883 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
884 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
885 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
891 { SvREFCNT_inc_simple_void(PL_compcv);
892 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
897 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
898 op_append_elem(OP_LIST,
899 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
905 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
906 PL_parser->expect = XOPERATOR;
907 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
908 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
909 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
915 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
916 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
917 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
923 { (yyval.opval) = newBINOP(OP_AELEM, 0,
924 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
925 scalar((ps[(4) - (5)].val.opval)));
926 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
927 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
928 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
934 { (yyval.opval) = newBINOP(OP_AELEM, 0,
935 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
936 scalar((ps[(3) - (4)].val.opval)));
937 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
938 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
944 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
945 PL_parser->expect = XOPERATOR;
946 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
947 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
948 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
954 { (yyval.opval) = newBINOP(OP_HELEM, 0,
955 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
956 jmaybe((ps[(4) - (6)].val.opval)));
957 PL_parser->expect = XOPERATOR;
958 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
959 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
960 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
961 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
967 { (yyval.opval) = newBINOP(OP_HELEM, 0,
968 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
969 jmaybe((ps[(3) - (5)].val.opval)));
970 PL_parser->expect = XOPERATOR;
971 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
972 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
973 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
979 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
980 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
981 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
982 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
983 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
989 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
990 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
991 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
992 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
993 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
994 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1000 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1001 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
1002 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
1003 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1004 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1010 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1011 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
1012 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1013 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1019 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
1020 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
1021 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
1022 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
1023 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
1029 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval));
1030 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1031 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1037 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
1038 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
1039 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
1040 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
1041 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
1047 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (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 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
1062 scalar((ps[(1) - (3)].val.opval));
1063 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
1064 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1070 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1071 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1077 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1078 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1084 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1085 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1091 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1092 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1098 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1099 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1105 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1106 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1113 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1116 op = (UNOP*)(yyval.opval);
1117 op = (UNOP*)op->op_first; /* get to flop */
1118 op = (UNOP*)op->op_first; /* get to flip */
1119 op = (UNOP*)op->op_first; /* get to range */
1120 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1127 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1128 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1134 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1135 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1141 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1142 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1147 #line 1002 "perly.y"
1148 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1149 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1150 ((yyval.opval)->op_type == OP_NOT
1151 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1157 #line 1012 "perly.y"
1158 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1159 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1164 #line 1016 "perly.y"
1165 { (yyval.opval) = IF_MAD(
1166 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1167 (ps[(2) - (2)].val.opval)
1169 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1174 #line 1023 "perly.y"
1175 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1176 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1181 #line 1027 "perly.y"
1182 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1183 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1188 #line 1031 "perly.y"
1189 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1190 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1191 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1196 #line 1036 "perly.y"
1197 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1198 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1199 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1204 #line 1041 "perly.y"
1205 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1206 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1207 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1212 #line 1046 "perly.y"
1213 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1214 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1215 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1220 #line 1055 "perly.y"
1221 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1222 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1223 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1228 #line 1060 "perly.y"
1229 { (yyval.opval) = newANONLIST((OP*)NULL);
1230 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1231 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1236 #line 1065 "perly.y"
1237 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1238 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1239 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1240 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1245 #line 1071 "perly.y"
1246 { (yyval.opval) = newANONHASH((OP*)NULL);
1247 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1248 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1249 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1254 #line 1077 "perly.y"
1255 { SvREFCNT_inc_simple_void(PL_compcv);
1256 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1257 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1258 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1259 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1264 #line 1088 "perly.y"
1265 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1266 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1271 #line 1092 "perly.y"
1272 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));
1273 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1278 #line 1096 "perly.y"
1279 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1280 OPf_SPECIAL|OPf_STACKED,
1281 op_prepend_elem(OP_LIST,
1283 (OPpENTERSUB_AMPER<<8),
1284 scalar((ps[(2) - (4)].val.opval))
1285 )),(OP*)NULL)); dep();
1286 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1287 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1288 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1293 #line 1108 "perly.y"
1294 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1295 OPf_SPECIAL|OPf_STACKED,
1296 op_append_elem(OP_LIST,
1297 (ps[(4) - (5)].val.opval),
1299 (OPpENTERSUB_AMPER<<8),
1300 scalar((ps[(2) - (5)].val.opval))
1302 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1303 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1304 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1309 #line 1121 "perly.y"
1310 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1311 op_prepend_elem(OP_LIST,
1312 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1313 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1314 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1315 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1320 #line 1129 "perly.y"
1321 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1322 op_prepend_elem(OP_LIST,
1323 (ps[(4) - (5)].val.opval),
1324 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1325 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1326 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1327 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1332 #line 1145 "perly.y"
1333 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1334 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1335 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1340 #line 1150 "perly.y"
1341 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN));
1342 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1347 #line 1154 "perly.y"
1348 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1352 #line 1156 "perly.y"
1353 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1354 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1359 #line 1160 "perly.y"
1360 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1361 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1362 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1367 #line 1165 "perly.y"
1368 { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
1372 #line 1167 "perly.y"
1373 { (yyval.opval) = sawparens(newNULLLIST());
1374 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1375 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1380 #line 1172 "perly.y"
1381 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1385 #line 1174 "perly.y"
1386 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1390 #line 1176 "perly.y"
1391 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1395 #line 1178 "perly.y"
1396 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1400 #line 1180 "perly.y"
1401 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1405 #line 1182 "perly.y"
1406 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1410 #line 1184 "perly.y"
1411 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1412 newOP(OP_PUSHMARK, 0),
1413 newLISTOP(OP_ASLICE, 0,
1414 list((ps[(3) - (4)].val.opval)),
1415 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1416 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1417 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1422 #line 1193 "perly.y"
1423 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1424 newOP(OP_PUSHMARK, 0),
1425 newLISTOP(OP_HSLICE, 0,
1426 list((ps[(3) - (5)].val.opval)),
1427 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1428 PL_parser->expect = XOPERATOR;
1429 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1430 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1431 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1436 #line 1204 "perly.y"
1437 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1441 #line 1206 "perly.y"
1442 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1446 #line 1208 "perly.y"
1447 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1448 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1449 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1454 #line 1213 "perly.y"
1456 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1457 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1459 OP* op = (yyval.opval);
1460 if (op->op_type == OP_CONST) { /* defeat const fold */
1461 op = (OP*)op->op_madprop->mad_val;
1463 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1464 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1470 #line 1226 "perly.y"
1471 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1472 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1473 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1478 #line 1231 "perly.y"
1479 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1480 PL_hints |= HINT_BLOCK_SCOPE;
1481 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1486 #line 1236 "perly.y"
1487 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1488 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1493 #line 1240 "perly.y"
1494 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1495 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1500 #line 1244 "perly.y"
1501 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1502 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1507 #line 1248 "perly.y"
1508 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1509 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1514 #line 1252 "perly.y"
1515 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1516 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1521 #line 1256 "perly.y"
1522 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1523 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1528 #line 1260 "perly.y"
1529 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1530 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1535 #line 1264 "perly.y"
1536 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1540 #line 1266 "perly.y"
1541 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1542 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1546 #line 1269 "perly.y"
1547 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1548 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1553 #line 1273 "perly.y"
1554 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1555 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1556 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1557 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1562 #line 1279 "perly.y"
1563 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1567 #line 1281 "perly.y"
1568 { (yyval.opval) = (ps[(1) - (3)].val.opval);
1569 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1570 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1575 #line 1286 "perly.y"
1576 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1577 scalar((ps[(1) - (1)].val.opval))); ;}
1581 #line 1289 "perly.y"
1582 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1583 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1584 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1586 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1587 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1588 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1593 #line 1298 "perly.y"
1594 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1595 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1596 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1597 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1602 #line 1304 "perly.y"
1604 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1605 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1606 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1608 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1609 SAVEFREESV(PL_compcv);
1616 #line 1315 "perly.y"
1617 { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival));
1618 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1619 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1624 #line 1322 "perly.y"
1626 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1627 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1628 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1633 #line 1332 "perly.y"
1634 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1636 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1637 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1638 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1644 #line 1340 "perly.y"
1645 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1646 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1651 #line 1347 "perly.y"
1652 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1653 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1654 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1659 #line 1352 "perly.y"
1660 { (yyval.opval) = sawparens(newNULLLIST());
1661 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1662 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1667 #line 1357 "perly.y"
1668 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1672 #line 1359 "perly.y"
1673 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1677 #line 1361 "perly.y"
1678 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1682 #line 1366 "perly.y"
1683 { (yyval.opval) = (OP*)NULL; ;}
1687 #line 1368 "perly.y"
1688 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1692 #line 1372 "perly.y"
1693 { (yyval.opval) = (OP*)NULL; ;}
1697 #line 1374 "perly.y"
1698 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1702 #line 1380 "perly.y"
1703 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1707 #line 1384 "perly.y"
1708 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1709 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1714 #line 1390 "perly.y"
1715 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1716 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1721 #line 1396 "perly.y"
1722 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1723 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1728 #line 1402 "perly.y"
1729 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1730 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1735 #line 1408 "perly.y"
1736 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1737 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1742 #line 1414 "perly.y"
1743 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1744 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1749 #line 1421 "perly.y"
1750 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1754 #line 1423 "perly.y"
1755 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1759 #line 1425 "perly.y"
1760 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1764 #line 1428 "perly.y"
1765 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1769 /* Line 1267 of yacc.c. */
1775 * 580d1bac82838fb0ae1e092010e776fb247f0d4cb68834a166507fae86707700 perly.y
1776 * 4a3ced51fe6585f6ec59e65e1ffd74bc976c498b0e6992eaab337219fee72e51 regen_perly.pl