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 { (yyval.ival) = block_start(TRUE); ;}
123 { (yyval.ival) = (I32) Perl_allocmy(aTHX_ STR_WITH_LEN("$_"), 0); ;}
128 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
129 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
130 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
131 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
132 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
138 { (yyval.ival) = block_start(FALSE); ;}
143 { (yyval.opval) = (OP*)NULL; ;}
148 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
149 PL_pad_reset_pending = TRUE;
150 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
151 PL_hints |= HINT_BLOCK_SCOPE;
158 if((ps[(1) - (1)].val.opval)) {
159 (yyval.opval) = newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval));
161 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), NULL);
168 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
174 (yyval.opval) = newSTATEOP(SvUTF8(((SVOP*)(ps[(1) - (2)].val.p_tkval))->op_sv),
175 savepv(SvPVX(((SVOP*)(ps[(1) - (2)].val.p_tkval))->op_sv)), (ps[(2) - (2)].val.opval));
176 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),
177 (ps[(2) - (2)].val.opval) ? cLISTOPx((yyval.opval))->op_first : (yyval.opval), 'L');
184 (yyval.opval) = newSTATEOP(SvUTF8(((SVOP*)(ps[(1) - (2)].val.p_tkval))->op_sv),
185 savepv(SvPVX(((SVOP*)(ps[(1) - (2)].val.p_tkval))->op_sv)), (ps[(2) - (2)].val.opval));
186 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval), cLISTOPx((yyval.opval))->op_first, 'L');
192 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
198 (yyval.opval) = newOP(OP_NULL,0);
199 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
206 CV *fmtcv = PL_compcv;
207 SvREFCNT_inc_simple_void(PL_compcv);
209 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
210 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
211 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
212 token_free((ps[(1) - (4)].val.i_tkval));
214 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
215 (yyval.opval) = (OP*)NULL;
217 if (CvOUTSIDE(fmtcv) && !CvUNIQUE(CvOUTSIDE(fmtcv))) {
218 SvREFCNT_inc_simple_void(fmtcv);
219 pad_add_anon(fmtcv, OP_NULL);
227 SvREFCNT_inc_simple_void(PL_compcv);
230 OP* o = newSVOP(OP_ANONCODE, 0,
231 (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)));
232 (yyval.opval) = newOP(OP_NULL,0);
233 op_getmad(o,(yyval.opval),'&');
234 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
235 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
236 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
237 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
238 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
239 (ps[(6) - (6)].val.opval)->op_madprop = 0;
242 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));
243 (yyval.opval) = (OP*)NULL;
251 /* Unimplemented "my sub foo { }" */
252 SvREFCNT_inc_simple_void(PL_compcv);
254 (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));
255 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
257 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));
258 (yyval.opval) = (OP*)NULL;
267 (yyval.opval) = package((ps[(3) - (4)].val.opval));
268 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
269 if ((ps[(2) - (4)].val.opval))
270 package_version((ps[(2) - (4)].val.opval));
271 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
273 package((ps[(3) - (4)].val.opval));
274 if ((ps[(2) - (4)].val.opval))
275 package_version((ps[(2) - (4)].val.opval));
276 (yyval.opval) = (OP*)NULL;
283 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
289 SvREFCNT_inc_simple_void(PL_compcv);
291 (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));
292 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
293 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
294 if (PL_parser->rsfp_filters &&
295 AvFILLp(PL_parser->rsfp_filters) >= 0)
296 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
298 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));
299 (yyval.opval) = (OP*)NULL;
307 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
308 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
309 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
310 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
311 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
312 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
319 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
320 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
321 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
322 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
323 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
324 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
331 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
332 newGIVENOP((ps[(5) - (7)].val.opval), op_scope((ps[(7) - (7)].val.opval)), (PADOFFSET)(ps[(4) - (7)].val.ival)));
333 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
339 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;}
344 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;}
350 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
351 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
352 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
353 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
354 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
355 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
356 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
363 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
364 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
365 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
366 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
367 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
368 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
369 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
376 OP *initop = IF_MAD((ps[(4) - (11)].val.opval) ? (ps[(4) - (11)].val.opval) : newOP(OP_NULL, 0), (ps[(4) - (11)].val.opval));
377 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
378 scalar((ps[(6) - (11)].val.opval)), (ps[(11) - (11)].val.opval), (ps[(9) - (11)].val.opval), (ps[(8) - (11)].val.ival));
380 forop = op_prepend_elem(OP_LINESEQ, initop,
381 op_append_elem(OP_LINESEQ,
382 newOP(OP_UNSTACK, OPf_SPECIAL),
385 DO_MAD({ forop = newUNOP(OP_NULL, 0, forop); })
386 (yyval.opval) = block_end((ps[(3) - (11)].val.ival), forop);
387 TOKEN_GETMAD((ps[(1) - (11)].val.i_tkval),(yyval.opval),'3');
388 TOKEN_GETMAD((ps[(2) - (11)].val.i_tkval),(yyval.opval),'(');
389 TOKEN_GETMAD((ps[(5) - (11)].val.i_tkval),(yyval.opval),'1');
390 TOKEN_GETMAD((ps[(7) - (11)].val.i_tkval),(yyval.opval),'2');
391 TOKEN_GETMAD((ps[(10) - (11)].val.i_tkval),(yyval.opval),')');
392 PL_parser->copline = (line_t)IVAL((ps[(1) - (11)].val.i_tkval));
399 (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)));
400 TOKEN_GETMAD((ps[(1) - (9)].val.i_tkval),(yyval.opval),'W');
401 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),(yyval.opval),'d');
402 TOKEN_GETMAD((ps[(5) - (9)].val.i_tkval),(yyval.opval),'(');
403 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),(yyval.opval),')');
404 PL_parser->copline = (line_t)IVAL((ps[(1) - (9)].val.i_tkval));
411 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
412 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
413 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
414 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),(yyval.opval),'(');
415 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),(yyval.opval),')');
416 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
423 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
424 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
425 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'W');
426 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
427 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
428 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
435 /* a block is a loop that happens once */
436 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
437 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
444 int save_3_latefree = (ps[(3) - (5)].val.opval)->op_latefree;
445 (ps[(3) - (5)].val.opval)->op_latefree = 1;
446 package((ps[(3) - (5)].val.opval));
447 (ps[(3) - (5)].val.opval)->op_latefree = save_3_latefree;
448 if ((ps[(2) - (5)].val.opval)) {
449 int save_2_latefree = (ps[(2) - (5)].val.opval)->op_latefree;
450 (ps[(2) - (5)].val.opval)->op_latefree = 1;
451 package_version((ps[(2) - (5)].val.opval));
452 (ps[(2) - (5)].val.opval)->op_latefree = save_2_latefree;
460 /* a block is a loop that happens once */
461 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
462 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
463 op_free((ps[(3) - (8)].val.opval));
464 if ((ps[(2) - (8)].val.opval))
465 op_free((ps[(2) - (8)].val.opval));
466 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
467 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
468 if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
469 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
476 PL_parser->expect = XSTATE;
477 (yyval.opval) = (ps[(1) - (2)].val.opval);
478 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
485 PL_parser->expect = XSTATE;
486 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), (OP*)NULL);
487 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
488 PL_parser->copline = NOLINE;
494 { (yyval.opval) = (OP*)NULL; ;}
499 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
504 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
505 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
511 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
512 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
518 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
519 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
525 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
526 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
532 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
533 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
534 PL_parser->copline = (line_t)IVAL((ps[(2) - (3)].val.i_tkval));
540 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
545 { (yyval.opval) = (OP*)NULL; ;}
551 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
552 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
553 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
559 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
560 (yyval.opval) = newCONDOP(0,
561 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
562 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
563 PL_hints |= HINT_BLOCK_SCOPE;
564 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
565 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
566 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
572 { (yyval.opval) = (OP*)NULL; ;}
578 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
579 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
585 { (yyval.ival) = (PL_min_intro_pending &&
586 PL_max_intro_pending >= PL_min_intro_pending);
592 { (yyval.opval) = (OP*)NULL; ;}
598 (void)scan_num("1", &tmplval);
599 (yyval.opval) = tmplval.opval; ;}
604 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
609 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
614 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
619 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
624 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
629 { (yyval.opval) = (OP*)NULL; ;}
634 { (yyval.ival) = start_subparse(FALSE, 0);
635 SAVEFREESV(PL_compcv); ;}
640 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
641 SAVEFREESV(PL_compcv); ;}
646 { (yyval.ival) = start_subparse(TRUE, 0);
647 SAVEFREESV(PL_compcv); ;}
652 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
653 if (strEQ(name, "BEGIN") || strEQ(name, "END")
654 || strEQ(name, "INIT") || strEQ(name, "CHECK")
655 || strEQ(name, "UNITCHECK"))
656 CvSPECIAL_on(PL_compcv);
657 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
662 { (yyval.opval) = (OP*)NULL; ;}
667 { (yyval.opval) = (OP*)NULL; ;}
672 { (yyval.opval) = (ps[(2) - (2)].val.opval);
673 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
679 { (yyval.opval) = IF_MAD(
683 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
689 { (yyval.opval) = (ps[(2) - (2)].val.opval);
690 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
696 { (yyval.opval) = IF_MAD(
700 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
706 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
711 { (yyval.opval) = IF_MAD(
715 PL_parser->expect = XSTATE;
716 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
722 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
723 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
729 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
730 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
736 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
737 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
745 OP* op = newNULLLIST();
746 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
747 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
749 (yyval.opval) = (ps[(1) - (2)].val.opval);
757 OP* term = (ps[(3) - (3)].val.opval);
759 term = newUNOP(OP_NULL, 0, term);
760 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
762 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
768 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
769 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
770 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
776 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
777 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
778 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
779 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
780 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
786 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
787 op_append_elem(OP_LIST,
788 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
789 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
790 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
791 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
792 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
798 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
799 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
800 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
801 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
807 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
808 op_append_elem(OP_LIST,
809 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
810 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
816 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
817 op_append_elem(OP_LIST,
818 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
819 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
820 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
821 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
827 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
828 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
834 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
835 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
836 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
837 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
843 { SvREFCNT_inc_simple_void(PL_compcv);
844 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
849 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
850 op_append_elem(OP_LIST,
851 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
857 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
858 PL_parser->expect = XOPERATOR;
859 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
860 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
861 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
867 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
868 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
869 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
875 { (yyval.opval) = newBINOP(OP_AELEM, 0,
876 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
877 scalar((ps[(4) - (5)].val.opval)));
878 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
879 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
880 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
886 { (yyval.opval) = newBINOP(OP_AELEM, 0,
887 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
888 scalar((ps[(3) - (4)].val.opval)));
889 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
890 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
896 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
897 PL_parser->expect = XOPERATOR;
898 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
899 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
900 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
906 { (yyval.opval) = newBINOP(OP_HELEM, 0,
907 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
908 jmaybe((ps[(4) - (6)].val.opval)));
909 PL_parser->expect = XOPERATOR;
910 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
911 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
912 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
913 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
919 { (yyval.opval) = newBINOP(OP_HELEM, 0,
920 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
921 jmaybe((ps[(3) - (5)].val.opval)));
922 PL_parser->expect = XOPERATOR;
923 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
924 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
925 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
931 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
932 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
933 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
934 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
935 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
941 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
942 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
943 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
944 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
945 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
946 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
952 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
953 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
954 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
955 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
956 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
962 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
963 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
964 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
965 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
971 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
972 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
973 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
974 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
975 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
981 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval));
982 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
983 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
989 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
990 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
991 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
992 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
993 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
999 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
1000 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1006 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1007 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1013 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
1014 scalar((ps[(1) - (3)].val.opval));
1015 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
1016 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1022 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1023 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1029 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1030 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1036 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1037 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1043 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1044 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1050 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1051 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1057 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1058 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1065 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1068 op = (UNOP*)(yyval.opval);
1069 op = (UNOP*)op->op_first; /* get to flop */
1070 op = (UNOP*)op->op_first; /* get to flip */
1071 op = (UNOP*)op->op_first; /* get to range */
1072 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1079 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1080 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1086 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1087 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1093 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1094 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1100 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1101 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1102 ((yyval.opval)->op_type == OP_NOT
1103 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1110 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1111 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1117 { (yyval.opval) = IF_MAD(
1118 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1119 (ps[(2) - (2)].val.opval)
1121 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1127 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1128 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1134 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1135 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1141 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1142 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1143 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1149 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1150 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1151 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1157 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1158 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1159 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1164 #line 1003 "perly.y"
1165 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1166 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1167 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1172 #line 1012 "perly.y"
1173 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1174 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1175 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1180 #line 1017 "perly.y"
1181 { (yyval.opval) = newANONLIST((OP*)NULL);
1182 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1183 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1188 #line 1022 "perly.y"
1189 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1190 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1191 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1192 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1197 #line 1028 "perly.y"
1198 { (yyval.opval) = newANONHASH((OP*)NULL);
1199 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1200 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1201 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1206 #line 1034 "perly.y"
1207 { SvREFCNT_inc_simple_void(PL_compcv);
1208 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1209 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1210 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1211 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1216 #line 1045 "perly.y"
1217 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1218 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1223 #line 1049 "perly.y"
1224 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));
1225 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1230 #line 1053 "perly.y"
1231 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1232 OPf_SPECIAL|OPf_STACKED,
1233 op_prepend_elem(OP_LIST,
1235 (OPpENTERSUB_AMPER<<8),
1236 scalar((ps[(2) - (4)].val.opval))
1237 )),(OP*)NULL)); dep();
1238 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1239 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1240 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1245 #line 1065 "perly.y"
1246 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1247 OPf_SPECIAL|OPf_STACKED,
1248 op_append_elem(OP_LIST,
1249 (ps[(4) - (5)].val.opval),
1251 (OPpENTERSUB_AMPER<<8),
1252 scalar((ps[(2) - (5)].val.opval))
1254 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1255 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1256 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1261 #line 1078 "perly.y"
1262 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1263 op_prepend_elem(OP_LIST,
1264 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1265 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1266 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1267 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1272 #line 1086 "perly.y"
1273 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1274 op_prepend_elem(OP_LIST,
1275 (ps[(4) - (5)].val.opval),
1276 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1277 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1278 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1279 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1284 #line 1102 "perly.y"
1285 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1286 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1287 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1292 #line 1107 "perly.y"
1293 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN));
1294 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1299 #line 1111 "perly.y"
1300 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1304 #line 1113 "perly.y"
1305 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1306 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1311 #line 1117 "perly.y"
1312 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1313 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1314 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1319 #line 1122 "perly.y"
1320 { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
1324 #line 1124 "perly.y"
1325 { (yyval.opval) = sawparens(newNULLLIST());
1326 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1327 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1332 #line 1129 "perly.y"
1333 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1337 #line 1131 "perly.y"
1338 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1342 #line 1133 "perly.y"
1343 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1347 #line 1135 "perly.y"
1348 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1352 #line 1137 "perly.y"
1353 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1357 #line 1139 "perly.y"
1358 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1362 #line 1141 "perly.y"
1363 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1364 newOP(OP_PUSHMARK, 0),
1365 newLISTOP(OP_ASLICE, 0,
1366 list((ps[(3) - (4)].val.opval)),
1367 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1368 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1369 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1374 #line 1150 "perly.y"
1375 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1376 newOP(OP_PUSHMARK, 0),
1377 newLISTOP(OP_HSLICE, 0,
1378 list((ps[(3) - (5)].val.opval)),
1379 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1380 PL_parser->expect = XOPERATOR;
1381 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1382 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1383 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1388 #line 1161 "perly.y"
1389 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1393 #line 1163 "perly.y"
1394 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1398 #line 1165 "perly.y"
1399 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1400 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1401 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1406 #line 1170 "perly.y"
1408 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1409 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1411 OP* op = (yyval.opval);
1412 if (op->op_type == OP_CONST) { /* defeat const fold */
1413 op = (OP*)op->op_madprop->mad_val;
1415 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1416 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1422 #line 1183 "perly.y"
1423 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1424 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1425 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1430 #line 1188 "perly.y"
1431 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1432 PL_hints |= HINT_BLOCK_SCOPE;
1433 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1438 #line 1193 "perly.y"
1439 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1440 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1445 #line 1197 "perly.y"
1446 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1447 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1452 #line 1201 "perly.y"
1453 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1454 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1459 #line 1205 "perly.y"
1460 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1461 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1466 #line 1209 "perly.y"
1467 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1468 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1473 #line 1213 "perly.y"
1474 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1475 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1480 #line 1217 "perly.y"
1481 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1482 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1487 #line 1221 "perly.y"
1488 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1492 #line 1223 "perly.y"
1493 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1494 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1498 #line 1226 "perly.y"
1499 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1500 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1505 #line 1230 "perly.y"
1506 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1507 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1508 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1509 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1514 #line 1236 "perly.y"
1515 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1519 #line 1238 "perly.y"
1520 { (yyval.opval) = (ps[(1) - (3)].val.opval);
1521 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1522 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1527 #line 1243 "perly.y"
1528 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1529 scalar((ps[(1) - (1)].val.opval))); ;}
1533 #line 1246 "perly.y"
1534 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1535 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1536 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1538 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1539 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1540 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1545 #line 1255 "perly.y"
1546 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1547 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1548 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1549 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1554 #line 1261 "perly.y"
1555 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1556 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1557 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1562 #line 1268 "perly.y"
1564 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1565 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1566 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1571 #line 1278 "perly.y"
1572 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1574 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1575 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1576 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1582 #line 1286 "perly.y"
1583 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1584 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1589 #line 1293 "perly.y"
1590 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1591 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1592 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1597 #line 1298 "perly.y"
1598 { (yyval.opval) = sawparens(newNULLLIST());
1599 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1600 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1605 #line 1303 "perly.y"
1606 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1610 #line 1305 "perly.y"
1611 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1615 #line 1307 "perly.y"
1616 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1620 #line 1312 "perly.y"
1621 { (yyval.opval) = (OP*)NULL; ;}
1625 #line 1314 "perly.y"
1626 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1630 #line 1318 "perly.y"
1631 { (yyval.opval) = (OP*)NULL; ;}
1635 #line 1320 "perly.y"
1636 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1640 #line 1326 "perly.y"
1641 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1645 #line 1330 "perly.y"
1646 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1647 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1652 #line 1336 "perly.y"
1653 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1654 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1659 #line 1342 "perly.y"
1660 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1661 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1666 #line 1348 "perly.y"
1667 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1668 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1673 #line 1354 "perly.y"
1674 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1675 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1680 #line 1360 "perly.y"
1681 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1682 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1687 #line 1367 "perly.y"
1688 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1692 #line 1369 "perly.y"
1693 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1697 #line 1371 "perly.y"
1698 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1702 #line 1374 "perly.y"
1703 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1710 * ff01d43de6f749eba3bfeffd39928772fe7e1bebe039506b8465c05941209aa8 perly.y
1711 * 53f57d7143a42b3c008841a14d158bcf9cab64b2904b07ef5e95051fe9a8a875 regen_perly.pl