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) && !CvEVAL(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 package((ps[(3) - (5)].val.opval));
445 if ((ps[(2) - (5)].val.opval)) {
446 package_version((ps[(2) - (5)].val.opval));
454 /* a block is a loop that happens once */
455 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
456 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
457 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
458 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
459 if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
460 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
467 PL_parser->expect = XSTATE;
468 (yyval.opval) = (ps[(1) - (2)].val.opval);
469 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
476 PL_parser->expect = XSTATE;
477 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), (OP*)NULL);
478 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
479 PL_parser->copline = NOLINE;
485 { (yyval.opval) = (OP*)NULL; ;}
490 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
495 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
496 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
502 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
503 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
509 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
510 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
516 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
517 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
523 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
524 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
525 PL_parser->copline = (line_t)IVAL((ps[(2) - (3)].val.i_tkval));
531 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
536 { (yyval.opval) = (OP*)NULL; ;}
542 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
543 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
544 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
550 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
551 (yyval.opval) = newCONDOP(0,
552 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
553 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
554 PL_hints |= HINT_BLOCK_SCOPE;
555 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
556 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
557 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
563 { (yyval.opval) = (OP*)NULL; ;}
569 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
570 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
576 { (yyval.ival) = (PL_min_intro_pending &&
577 PL_max_intro_pending >= PL_min_intro_pending);
583 { (yyval.opval) = (OP*)NULL; ;}
589 (void)scan_num("1", &tmplval);
590 (yyval.opval) = tmplval.opval; ;}
595 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
600 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
605 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
610 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
615 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
620 { (yyval.opval) = (OP*)NULL; ;}
625 { (yyval.ival) = start_subparse(FALSE, 0);
626 SAVEFREESV(PL_compcv); ;}
631 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
632 SAVEFREESV(PL_compcv); ;}
637 { (yyval.ival) = start_subparse(TRUE, 0);
638 SAVEFREESV(PL_compcv); ;}
643 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
644 if (strEQ(name, "BEGIN") || strEQ(name, "END")
645 || strEQ(name, "INIT") || strEQ(name, "CHECK")
646 || strEQ(name, "UNITCHECK"))
647 CvSPECIAL_on(PL_compcv);
648 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
653 { (yyval.opval) = (OP*)NULL; ;}
658 { (yyval.opval) = (OP*)NULL; ;}
663 { (yyval.opval) = (ps[(2) - (2)].val.opval);
664 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
670 { (yyval.opval) = IF_MAD(
674 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
680 { (yyval.opval) = (ps[(2) - (2)].val.opval);
681 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
687 { (yyval.opval) = IF_MAD(
691 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
697 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
702 { (yyval.opval) = IF_MAD(
706 PL_parser->expect = XSTATE;
707 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
713 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
714 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
720 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
721 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
727 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
728 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
736 OP* op = newNULLLIST();
737 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
738 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
740 (yyval.opval) = (ps[(1) - (2)].val.opval);
748 OP* term = (ps[(3) - (3)].val.opval);
750 term = newUNOP(OP_NULL, 0, term);
751 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
753 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
759 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
760 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
761 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
767 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
768 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
769 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
770 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
771 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
777 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
778 op_append_elem(OP_LIST,
779 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
780 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
781 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
782 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
783 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
789 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
790 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
791 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
792 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
798 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
799 op_append_elem(OP_LIST,
800 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
801 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
807 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
808 op_append_elem(OP_LIST,
809 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
810 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
811 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
812 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
818 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
819 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
825 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
826 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
827 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
828 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
834 { SvREFCNT_inc_simple_void(PL_compcv);
835 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
840 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
841 op_append_elem(OP_LIST,
842 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
848 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
849 PL_parser->expect = XOPERATOR;
850 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
851 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
852 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
858 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
859 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
860 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
866 { (yyval.opval) = newBINOP(OP_AELEM, 0,
867 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
868 scalar((ps[(4) - (5)].val.opval)));
869 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
870 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
871 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
877 { (yyval.opval) = newBINOP(OP_AELEM, 0,
878 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
879 scalar((ps[(3) - (4)].val.opval)));
880 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
881 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
887 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
888 PL_parser->expect = XOPERATOR;
889 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
890 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
891 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
897 { (yyval.opval) = newBINOP(OP_HELEM, 0,
898 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
899 jmaybe((ps[(4) - (6)].val.opval)));
900 PL_parser->expect = XOPERATOR;
901 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
902 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
903 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
904 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
910 { (yyval.opval) = newBINOP(OP_HELEM, 0,
911 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
912 jmaybe((ps[(3) - (5)].val.opval)));
913 PL_parser->expect = XOPERATOR;
914 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
915 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
916 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
922 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
923 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
924 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
925 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
926 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
932 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
933 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
934 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
935 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
936 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
937 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
943 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
944 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
945 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
946 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
947 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
953 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
954 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
955 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
956 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
962 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
963 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
964 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
965 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
966 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
972 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval));
973 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
974 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
980 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
981 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
982 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
983 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
984 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
990 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
991 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
997 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
998 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1004 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
1005 scalar((ps[(1) - (3)].val.opval));
1006 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
1007 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1013 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1014 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1020 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1021 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1027 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1028 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1034 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1035 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1041 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1042 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1048 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1049 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1056 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1059 op = (UNOP*)(yyval.opval);
1060 op = (UNOP*)op->op_first; /* get to flop */
1061 op = (UNOP*)op->op_first; /* get to flip */
1062 op = (UNOP*)op->op_first; /* get to range */
1063 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1070 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1071 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1077 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1078 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1084 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1085 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1091 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1092 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1093 ((yyval.opval)->op_type == OP_NOT
1094 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1101 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1102 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1108 { (yyval.opval) = IF_MAD(
1109 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1110 (ps[(2) - (2)].val.opval)
1112 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1118 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1119 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1125 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1126 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1132 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1133 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1134 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1140 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1141 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1142 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1148 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1149 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1150 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1156 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1157 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1158 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1163 #line 1003 "perly.y"
1164 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1165 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1166 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1171 #line 1008 "perly.y"
1172 { (yyval.opval) = newANONLIST((OP*)NULL);
1173 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1174 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1179 #line 1013 "perly.y"
1180 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1181 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1182 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1183 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1188 #line 1019 "perly.y"
1189 { (yyval.opval) = newANONHASH((OP*)NULL);
1190 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1191 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1192 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1197 #line 1025 "perly.y"
1198 { SvREFCNT_inc_simple_void(PL_compcv);
1199 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1200 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1201 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1202 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1207 #line 1036 "perly.y"
1208 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1209 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1214 #line 1040 "perly.y"
1215 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));
1216 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1221 #line 1044 "perly.y"
1222 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1223 OPf_SPECIAL|OPf_STACKED,
1224 op_prepend_elem(OP_LIST,
1226 (OPpENTERSUB_AMPER<<8),
1227 scalar((ps[(2) - (4)].val.opval))
1228 )),(OP*)NULL)); dep();
1229 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1230 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1231 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1236 #line 1056 "perly.y"
1237 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1238 OPf_SPECIAL|OPf_STACKED,
1239 op_append_elem(OP_LIST,
1240 (ps[(4) - (5)].val.opval),
1242 (OPpENTERSUB_AMPER<<8),
1243 scalar((ps[(2) - (5)].val.opval))
1245 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1246 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1247 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1252 #line 1069 "perly.y"
1253 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1254 op_prepend_elem(OP_LIST,
1255 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1256 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1257 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1258 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1263 #line 1077 "perly.y"
1264 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1265 op_prepend_elem(OP_LIST,
1266 (ps[(4) - (5)].val.opval),
1267 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1268 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1269 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1270 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1275 #line 1093 "perly.y"
1276 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1277 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1278 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1283 #line 1098 "perly.y"
1284 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN));
1285 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1290 #line 1102 "perly.y"
1291 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1295 #line 1104 "perly.y"
1296 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1297 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1302 #line 1108 "perly.y"
1303 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1304 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1305 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1310 #line 1113 "perly.y"
1311 { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
1315 #line 1115 "perly.y"
1316 { (yyval.opval) = sawparens(newNULLLIST());
1317 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1318 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1323 #line 1120 "perly.y"
1324 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1328 #line 1122 "perly.y"
1329 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1333 #line 1124 "perly.y"
1334 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1338 #line 1126 "perly.y"
1339 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1343 #line 1128 "perly.y"
1344 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1348 #line 1130 "perly.y"
1349 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1353 #line 1132 "perly.y"
1354 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1355 newOP(OP_PUSHMARK, 0),
1356 newLISTOP(OP_ASLICE, 0,
1357 list((ps[(3) - (4)].val.opval)),
1358 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1359 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1360 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1365 #line 1141 "perly.y"
1366 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1367 newOP(OP_PUSHMARK, 0),
1368 newLISTOP(OP_HSLICE, 0,
1369 list((ps[(3) - (5)].val.opval)),
1370 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1371 PL_parser->expect = XOPERATOR;
1372 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1373 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1374 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1379 #line 1152 "perly.y"
1380 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1384 #line 1154 "perly.y"
1385 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1389 #line 1156 "perly.y"
1390 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1391 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1392 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1397 #line 1161 "perly.y"
1399 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1400 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1402 OP* op = (yyval.opval);
1403 if (op->op_type == OP_CONST) { /* defeat const fold */
1404 op = (OP*)op->op_madprop->mad_val;
1406 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1407 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1413 #line 1174 "perly.y"
1414 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1415 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1416 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1421 #line 1179 "perly.y"
1422 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1423 PL_hints |= HINT_BLOCK_SCOPE;
1424 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1429 #line 1184 "perly.y"
1430 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1431 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1436 #line 1188 "perly.y"
1437 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1438 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1443 #line 1192 "perly.y"
1444 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1445 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1450 #line 1196 "perly.y"
1451 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1452 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1457 #line 1200 "perly.y"
1458 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1459 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1464 #line 1204 "perly.y"
1465 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1466 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1471 #line 1208 "perly.y"
1472 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1473 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1478 #line 1212 "perly.y"
1479 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1483 #line 1214 "perly.y"
1484 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1485 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1489 #line 1217 "perly.y"
1490 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1491 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1496 #line 1221 "perly.y"
1497 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1498 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1499 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1500 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1505 #line 1227 "perly.y"
1506 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1510 #line 1229 "perly.y"
1511 { (yyval.opval) = (ps[(1) - (3)].val.opval);
1512 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1513 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1518 #line 1234 "perly.y"
1519 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1520 scalar((ps[(1) - (1)].val.opval))); ;}
1524 #line 1237 "perly.y"
1525 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1526 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1527 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1529 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1530 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1531 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1536 #line 1246 "perly.y"
1537 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1538 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1539 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1540 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1545 #line 1252 "perly.y"
1547 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1548 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1549 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1551 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1552 SAVEFREESV(PL_compcv);
1559 #line 1263 "perly.y"
1560 { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival));
1561 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1562 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1567 #line 1270 "perly.y"
1569 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1570 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1571 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1576 #line 1280 "perly.y"
1577 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1579 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1580 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1581 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1587 #line 1288 "perly.y"
1588 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1589 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1594 #line 1295 "perly.y"
1595 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1596 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1597 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1602 #line 1300 "perly.y"
1603 { (yyval.opval) = sawparens(newNULLLIST());
1604 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1605 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.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 1309 "perly.y"
1621 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1625 #line 1314 "perly.y"
1626 { (yyval.opval) = (OP*)NULL; ;}
1630 #line 1316 "perly.y"
1631 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1635 #line 1320 "perly.y"
1636 { (yyval.opval) = (OP*)NULL; ;}
1640 #line 1322 "perly.y"
1641 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1645 #line 1328 "perly.y"
1646 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1650 #line 1332 "perly.y"
1651 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1652 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1657 #line 1338 "perly.y"
1658 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1659 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1664 #line 1344 "perly.y"
1665 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1666 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1671 #line 1350 "perly.y"
1672 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1673 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1678 #line 1356 "perly.y"
1679 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1680 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1685 #line 1362 "perly.y"
1686 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1687 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1692 #line 1369 "perly.y"
1693 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1697 #line 1371 "perly.y"
1698 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1702 #line 1373 "perly.y"
1703 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1707 #line 1376 "perly.y"
1708 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1712 /* Line 1267 of yacc.c. */
1718 * 017d1ce591fb32d5be2885c489b8b219c35b98bec901eb4a58e82f01d7a52622 perly.y
1719 * 38f866dcd8341ad3c0810347587113eb2c6ac7d4f33bdab75b020efce92865be regen_perly.pl