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);
244 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(2) - (3)].val.opval))->op_sv);
245 if (strEQ(name, "BEGIN") || strEQ(name, "END")
246 || strEQ(name, "INIT") || strEQ(name, "CHECK")
247 || strEQ(name, "UNITCHECK"))
248 CvSPECIAL_on(PL_compcv);
249 PL_parser->in_my = 0;
250 PL_parser->in_my_stash = NULL;
257 SvREFCNT_inc_simple_void(PL_compcv);
260 OP* o = newSVOP(OP_ANONCODE, 0,
261 (SV*)newATTRSUB((ps[(3) - (7)].val.ival), (ps[(2) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
262 (yyval.opval) = newOP(OP_NULL,0);
263 op_getmad(o,(yyval.opval),'&');
264 op_getmad((ps[(2) - (7)].val.opval),(yyval.opval),'n');
265 op_getmad((ps[(5) - (7)].val.opval),(yyval.opval),'s');
266 op_getmad((ps[(6) - (7)].val.opval),(yyval.opval),'a');
267 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'d');
268 append_madprops((ps[(7) - (7)].val.opval)->op_madprop, (yyval.opval), 0);
269 (ps[(7) - (7)].val.opval)->op_madprop = 0;
272 newATTRSUB((ps[(3) - (7)].val.ival), (ps[(2) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval));
273 (yyval.opval) = (OP*)NULL;
282 /* Unimplemented "my sub foo { }" */
283 SvREFCNT_inc_simple_void(PL_compcv);
285 (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));
286 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
288 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));
289 (yyval.opval) = (OP*)NULL;
298 (yyval.opval) = package((ps[(3) - (4)].val.opval));
299 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
300 if ((ps[(2) - (4)].val.opval))
301 package_version((ps[(2) - (4)].val.opval));
302 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
304 package((ps[(3) - (4)].val.opval));
305 if ((ps[(2) - (4)].val.opval))
306 package_version((ps[(2) - (4)].val.opval));
307 (yyval.opval) = (OP*)NULL;
314 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
320 SvREFCNT_inc_simple_void(PL_compcv);
322 (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));
323 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
324 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
325 if (PL_parser->rsfp_filters &&
326 AvFILLp(PL_parser->rsfp_filters) >= 0)
327 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
329 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));
330 (yyval.opval) = (OP*)NULL;
338 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
339 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
340 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
341 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
342 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
343 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
350 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
351 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
352 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
353 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
354 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
355 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
362 const PADOFFSET offset = pad_findmy_pvs("$_", 0);
363 (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
364 newGIVENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)),
366 || PAD_COMPNAME_FLAGS_isOUR(offset)
369 PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
375 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;}
380 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;}
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 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
400 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
401 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
402 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
403 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
404 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
405 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
412 OP *initop = IF_MAD((ps[(4) - (11)].val.opval) ? (ps[(4) - (11)].val.opval) : newOP(OP_NULL, 0), (ps[(4) - (11)].val.opval));
413 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
414 scalar((ps[(6) - (11)].val.opval)), (ps[(11) - (11)].val.opval), (ps[(9) - (11)].val.opval), (ps[(8) - (11)].val.ival));
416 forop = op_prepend_elem(OP_LINESEQ, initop,
417 op_append_elem(OP_LINESEQ,
418 newOP(OP_UNSTACK, OPf_SPECIAL),
421 DO_MAD({ forop = newUNOP(OP_NULL, 0, forop); })
422 (yyval.opval) = block_end((ps[(3) - (11)].val.ival), forop);
423 TOKEN_GETMAD((ps[(1) - (11)].val.i_tkval),(yyval.opval),'3');
424 TOKEN_GETMAD((ps[(2) - (11)].val.i_tkval),(yyval.opval),'(');
425 TOKEN_GETMAD((ps[(5) - (11)].val.i_tkval),(yyval.opval),'1');
426 TOKEN_GETMAD((ps[(7) - (11)].val.i_tkval),(yyval.opval),'2');
427 TOKEN_GETMAD((ps[(10) - (11)].val.i_tkval),(yyval.opval),')');
428 PL_parser->copline = (line_t)IVAL((ps[(1) - (11)].val.i_tkval));
435 (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)));
436 TOKEN_GETMAD((ps[(1) - (9)].val.i_tkval),(yyval.opval),'W');
437 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),(yyval.opval),'d');
438 TOKEN_GETMAD((ps[(5) - (9)].val.i_tkval),(yyval.opval),'(');
439 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),(yyval.opval),')');
440 PL_parser->copline = (line_t)IVAL((ps[(1) - (9)].val.i_tkval));
447 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
448 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
449 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
450 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),(yyval.opval),'(');
451 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),(yyval.opval),')');
452 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
459 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
460 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
461 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'W');
462 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
463 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
464 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
471 /* a block is a loop that happens once */
472 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
473 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
480 package((ps[(3) - (5)].val.opval));
481 if ((ps[(2) - (5)].val.opval)) {
482 package_version((ps[(2) - (5)].val.opval));
490 /* a block is a loop that happens once */
491 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
492 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
493 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
494 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
495 if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
496 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
503 PL_parser->expect = XSTATE;
504 (yyval.opval) = (ps[(1) - (2)].val.opval);
505 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
512 PL_parser->expect = XSTATE;
513 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), (OP*)NULL);
514 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
515 PL_parser->copline = NOLINE;
522 if ((ps[(2) - (2)].val.opval)) {
523 OP *term = (ps[(2) - (2)].val.opval);
524 DO_MAD(term = newUNOP(OP_NULL, 0, term));
525 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term);
529 OP *op = newNULLLIST();
530 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
532 list = (ps[(1) - (2)].val.opval);
535 if (PL_parser->copline == NOLINE)
536 PL_parser->copline = CopLINE(PL_curcop)-1;
537 else PL_parser->copline--;
538 (yyval.opval) = newSTATEOP(0, NULL,
539 convert(OP_FORMLINE, 0, list));
545 { (yyval.opval) = NULL; ;}
550 { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); ;}
555 { (yyval.opval) = (OP*)NULL; ;}
560 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
565 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
566 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
572 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
573 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
579 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
580 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
586 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
587 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
593 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
594 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
595 PL_parser->copline = (line_t)IVAL((ps[(2) - (3)].val.i_tkval));
601 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
606 { (yyval.opval) = (OP*)NULL; ;}
612 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
613 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
614 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
620 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
621 (yyval.opval) = newCONDOP(0,
622 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
623 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
624 PL_hints |= HINT_BLOCK_SCOPE;
625 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
626 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
627 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
633 { (yyval.opval) = (OP*)NULL; ;}
639 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
640 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
646 { (yyval.ival) = (PL_min_intro_pending &&
647 PL_max_intro_pending >= PL_min_intro_pending);
653 { (yyval.opval) = (OP*)NULL; ;}
659 (void)scan_num("1", &tmplval);
660 (yyval.opval) = tmplval.opval; ;}
665 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
670 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
675 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
680 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
685 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
690 { (yyval.opval) = (OP*)NULL; ;}
695 { (yyval.ival) = start_subparse(FALSE, 0);
696 SAVEFREESV(PL_compcv); ;}
701 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
702 SAVEFREESV(PL_compcv); ;}
707 { (yyval.ival) = start_subparse(TRUE, 0);
708 SAVEFREESV(PL_compcv); ;}
713 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
714 if (strEQ(name, "BEGIN") || strEQ(name, "END")
715 || strEQ(name, "INIT") || strEQ(name, "CHECK")
716 || strEQ(name, "UNITCHECK"))
717 CvSPECIAL_on(PL_compcv);
718 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
723 { (yyval.opval) = (OP*)NULL; ;}
728 { (yyval.opval) = (OP*)NULL; ;}
733 { (yyval.opval) = (ps[(2) - (2)].val.opval);
734 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
740 { (yyval.opval) = IF_MAD(
744 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
750 { (yyval.opval) = (ps[(2) - (2)].val.opval);
751 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
757 { (yyval.opval) = IF_MAD(
761 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
767 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
772 { (yyval.opval) = IF_MAD(
776 PL_parser->expect = XSTATE;
777 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
783 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
784 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
790 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
791 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
797 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
798 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
806 OP* op = newNULLLIST();
807 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
808 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
810 (yyval.opval) = (ps[(1) - (2)].val.opval);
818 OP* term = (ps[(3) - (3)].val.opval);
820 term = newUNOP(OP_NULL, 0, term);
821 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
823 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
829 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
830 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
831 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
837 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
838 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
839 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
840 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
841 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
847 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
848 op_append_elem(OP_LIST,
849 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
850 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
851 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
852 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
853 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
859 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
860 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
861 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
862 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
868 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
869 op_append_elem(OP_LIST,
870 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
871 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
877 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
878 op_append_elem(OP_LIST,
879 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
880 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
881 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
882 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
888 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
889 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
895 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
896 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
897 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
898 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
904 { SvREFCNT_inc_simple_void(PL_compcv);
905 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
910 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
911 op_append_elem(OP_LIST,
912 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
918 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
919 PL_parser->expect = XOPERATOR;
920 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
921 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
922 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
928 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
929 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
930 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
936 { (yyval.opval) = newBINOP(OP_AELEM, 0,
937 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
938 scalar((ps[(4) - (5)].val.opval)));
939 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
940 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
941 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
947 { (yyval.opval) = newBINOP(OP_AELEM, 0,
948 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
949 scalar((ps[(3) - (4)].val.opval)));
950 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
951 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
957 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), 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) = newBINOP(OP_HELEM, 0,
968 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
969 jmaybe((ps[(4) - (6)].val.opval)));
970 PL_parser->expect = XOPERATOR;
971 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
972 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
973 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
974 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
980 { (yyval.opval) = newBINOP(OP_HELEM, 0,
981 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
982 jmaybe((ps[(3) - (5)].val.opval)));
983 PL_parser->expect = XOPERATOR;
984 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
985 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
986 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
992 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
993 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
994 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
995 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
996 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1002 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1003 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
1004 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
1005 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
1006 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1007 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1013 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1014 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
1015 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
1016 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1017 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1023 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1024 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
1025 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1026 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1032 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
1033 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
1034 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
1035 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
1036 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
1042 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval));
1043 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1044 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1050 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
1051 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
1052 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
1053 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
1054 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
1060 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
1061 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1067 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1068 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1074 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
1075 scalar((ps[(1) - (3)].val.opval));
1076 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
1077 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1083 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1084 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1090 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1091 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1097 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1098 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1104 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1105 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1111 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1112 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1118 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1119 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1126 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1129 op = (UNOP*)(yyval.opval);
1130 op = (UNOP*)op->op_first; /* get to flop */
1131 op = (UNOP*)op->op_first; /* get to flip */
1132 op = (UNOP*)op->op_first; /* get to range */
1133 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1139 #line 1000 "perly.y"
1140 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1141 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1146 #line 1004 "perly.y"
1147 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1148 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1153 #line 1008 "perly.y"
1154 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1155 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1160 #line 1012 "perly.y"
1161 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1162 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1163 ((yyval.opval)->op_type == OP_NOT
1164 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1170 #line 1022 "perly.y"
1171 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1172 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1177 #line 1026 "perly.y"
1178 { (yyval.opval) = IF_MAD(
1179 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1180 (ps[(2) - (2)].val.opval)
1182 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1187 #line 1033 "perly.y"
1188 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1189 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1194 #line 1037 "perly.y"
1195 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1196 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1201 #line 1041 "perly.y"
1202 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1203 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1204 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1209 #line 1046 "perly.y"
1210 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1211 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1212 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1217 #line 1051 "perly.y"
1218 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1219 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1220 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1225 #line 1056 "perly.y"
1226 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1227 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1228 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1233 #line 1065 "perly.y"
1234 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1235 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1236 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1241 #line 1070 "perly.y"
1242 { (yyval.opval) = newANONLIST((OP*)NULL);
1243 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1244 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1249 #line 1075 "perly.y"
1250 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1251 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1252 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1253 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1258 #line 1081 "perly.y"
1259 { (yyval.opval) = newANONHASH((OP*)NULL);
1260 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1261 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1262 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1267 #line 1087 "perly.y"
1268 { SvREFCNT_inc_simple_void(PL_compcv);
1269 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1270 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1271 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1272 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1277 #line 1098 "perly.y"
1278 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1279 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1284 #line 1102 "perly.y"
1285 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));
1286 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1291 #line 1106 "perly.y"
1292 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1293 OPf_SPECIAL|OPf_STACKED,
1294 op_prepend_elem(OP_LIST,
1296 (OPpENTERSUB_AMPER<<8),
1297 scalar((ps[(2) - (4)].val.opval))
1298 )),(OP*)NULL)); dep();
1299 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1300 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1301 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1306 #line 1118 "perly.y"
1307 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1308 OPf_SPECIAL|OPf_STACKED,
1309 op_append_elem(OP_LIST,
1310 (ps[(4) - (5)].val.opval),
1312 (OPpENTERSUB_AMPER<<8),
1313 scalar((ps[(2) - (5)].val.opval))
1315 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1316 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1317 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1322 #line 1131 "perly.y"
1323 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1324 op_prepend_elem(OP_LIST,
1325 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1326 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1327 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1328 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1333 #line 1139 "perly.y"
1334 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1335 op_prepend_elem(OP_LIST,
1336 (ps[(4) - (5)].val.opval),
1337 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1338 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1339 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1340 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1345 #line 1155 "perly.y"
1346 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1347 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1348 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1353 #line 1160 "perly.y"
1354 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN));
1355 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1360 #line 1164 "perly.y"
1361 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1365 #line 1166 "perly.y"
1366 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1367 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1372 #line 1170 "perly.y"
1373 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1374 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1375 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1380 #line 1175 "perly.y"
1381 { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
1385 #line 1177 "perly.y"
1386 { (yyval.opval) = sawparens(newNULLLIST());
1387 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1388 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1393 #line 1182 "perly.y"
1394 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1398 #line 1184 "perly.y"
1399 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1403 #line 1186 "perly.y"
1404 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1408 #line 1188 "perly.y"
1409 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1413 #line 1190 "perly.y"
1414 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1418 #line 1192 "perly.y"
1419 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1423 #line 1194 "perly.y"
1424 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1425 newOP(OP_PUSHMARK, 0),
1426 newLISTOP(OP_ASLICE, 0,
1427 list((ps[(3) - (4)].val.opval)),
1428 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1429 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1430 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1435 #line 1203 "perly.y"
1436 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1437 newOP(OP_PUSHMARK, 0),
1438 newLISTOP(OP_HSLICE, 0,
1439 list((ps[(3) - (5)].val.opval)),
1440 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1441 PL_parser->expect = XOPERATOR;
1442 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1443 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1444 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1449 #line 1214 "perly.y"
1450 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1454 #line 1216 "perly.y"
1455 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1459 #line 1218 "perly.y"
1460 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1461 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1462 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1467 #line 1223 "perly.y"
1469 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1470 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1472 OP* op = (yyval.opval);
1473 if (op->op_type == OP_CONST) { /* defeat const fold */
1474 op = (OP*)op->op_madprop->mad_val;
1476 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1477 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1483 #line 1236 "perly.y"
1484 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1485 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1486 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1491 #line 1241 "perly.y"
1492 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1493 PL_hints |= HINT_BLOCK_SCOPE;
1494 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1499 #line 1246 "perly.y"
1500 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1501 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1506 #line 1250 "perly.y"
1507 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1508 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1513 #line 1254 "perly.y"
1514 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1515 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1520 #line 1258 "perly.y"
1521 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1522 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1527 #line 1262 "perly.y"
1528 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1529 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1534 #line 1266 "perly.y"
1535 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1536 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1541 #line 1270 "perly.y"
1542 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1543 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1548 #line 1274 "perly.y"
1549 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1553 #line 1276 "perly.y"
1554 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1555 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1559 #line 1279 "perly.y"
1560 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1561 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1566 #line 1283 "perly.y"
1567 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1568 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1569 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1570 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1575 #line 1289 "perly.y"
1576 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1580 #line 1291 "perly.y"
1581 { (yyval.opval) = (ps[(1) - (3)].val.opval);
1582 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1583 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1588 #line 1296 "perly.y"
1589 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1590 scalar((ps[(1) - (1)].val.opval))); ;}
1594 #line 1299 "perly.y"
1595 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1596 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1597 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1599 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1600 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1601 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1606 #line 1308 "perly.y"
1607 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1608 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1609 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1610 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1615 #line 1314 "perly.y"
1617 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1618 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1619 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1621 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1622 SAVEFREESV(PL_compcv);
1629 #line 1325 "perly.y"
1630 { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival));
1631 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1632 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1637 #line 1332 "perly.y"
1639 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1640 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1641 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1646 #line 1342 "perly.y"
1647 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1649 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1650 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1651 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1657 #line 1350 "perly.y"
1658 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1659 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1664 #line 1357 "perly.y"
1665 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1666 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1667 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1672 #line 1362 "perly.y"
1673 { (yyval.opval) = sawparens(newNULLLIST());
1674 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1675 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1680 #line 1367 "perly.y"
1681 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1685 #line 1369 "perly.y"
1686 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1690 #line 1371 "perly.y"
1691 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1695 #line 1376 "perly.y"
1696 { (yyval.opval) = (OP*)NULL; ;}
1700 #line 1378 "perly.y"
1701 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1705 #line 1382 "perly.y"
1706 { (yyval.opval) = (OP*)NULL; ;}
1710 #line 1384 "perly.y"
1711 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1715 #line 1390 "perly.y"
1716 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1720 #line 1394 "perly.y"
1721 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1722 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1727 #line 1400 "perly.y"
1728 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1729 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1734 #line 1406 "perly.y"
1735 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1736 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1741 #line 1412 "perly.y"
1742 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1743 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1748 #line 1418 "perly.y"
1749 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1750 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1755 #line 1424 "perly.y"
1756 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1757 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1762 #line 1431 "perly.y"
1763 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1767 #line 1433 "perly.y"
1768 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1772 #line 1435 "perly.y"
1773 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1777 #line 1438 "perly.y"
1778 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1782 /* Line 1267 of yacc.c. */
1788 * 3e01d5213d0f6a4dd26b90cfb22baf8eaf3c89d8ae0025fdc9e06ec1f871e826 perly.y
1789 * 4a3ced51fe6585f6ec59e65e1ffd74bc976c498b0e6992eaab337219fee72e51 regen_perly.pl