4 PL_parser->expect = XSTATE;
11 newPROG(block_end((ps[(3) - (4)].val.ival),(ps[(4) - (4)].val.opval)));
19 parser->expect = XTERM;
26 PL_eval_root = (ps[(3) - (3)].val.opval);
34 parser->expect = XBLOCK;
41 PL_pad_reset_pending = TRUE;
42 PL_eval_root = (ps[(3) - (3)].val.opval);
45 parser->yychar = YYEOF;
52 parser->expect = XSTATE;
59 PL_pad_reset_pending = TRUE;
60 PL_eval_root = (ps[(3) - (3)].val.opval);
63 parser->yychar = YYEOF;
70 parser->expect = XSTATE;
77 PL_pad_reset_pending = TRUE;
78 PL_eval_root = (ps[(3) - (3)].val.opval);
81 parser->yychar = YYEOF;
88 parser->expect = XSTATE;
95 PL_eval_root = (ps[(3) - (3)].val.opval);
102 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
103 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
104 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
105 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
106 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
112 { (yyval.ival) = block_start(TRUE); ;}
117 { (yyval.ival) = (I32) Perl_allocmy(aTHX_ STR_WITH_LEN("$_"), 0); ;}
122 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
123 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
124 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
125 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
126 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
132 { (yyval.ival) = block_start(FALSE); ;}
137 { (yyval.opval) = (OP*)NULL; ;}
142 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
143 PL_pad_reset_pending = TRUE;
144 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
145 PL_hints |= HINT_BLOCK_SCOPE;
152 if((ps[(1) - (1)].val.opval)) {
153 (yyval.opval) = newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval));
155 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), NULL);
162 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
168 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
169 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),
170 (ps[(2) - (2)].val.opval) ? cLISTOPx((yyval.opval))->op_first : (yyval.opval), 'L');
177 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
178 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval), cLISTOPx((yyval.opval))->op_first, 'L');
184 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
190 (yyval.opval) = newOP(OP_NULL,0);
191 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
198 CV *fmtcv = PL_compcv;
199 SvREFCNT_inc_simple_void(PL_compcv);
201 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
202 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
203 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
204 token_free((ps[(1) - (4)].val.i_tkval));
206 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
207 (yyval.opval) = (OP*)NULL;
209 if (CvOUTSIDE(fmtcv) && !CvUNIQUE(CvOUTSIDE(fmtcv))) {
210 SvREFCNT_inc_simple_void(fmtcv);
211 pad_add_anon((SV*)fmtcv, OP_NULL);
219 SvREFCNT_inc_simple_void(PL_compcv);
222 OP* o = newSVOP(OP_ANONCODE, 0,
223 (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)));
224 (yyval.opval) = newOP(OP_NULL,0);
225 op_getmad(o,(yyval.opval),'&');
226 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
227 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
228 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
229 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
230 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
231 (ps[(6) - (6)].val.opval)->op_madprop = 0;
234 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));
235 (yyval.opval) = (OP*)NULL;
243 /* Unimplemented "my sub foo { }" */
244 SvREFCNT_inc_simple_void(PL_compcv);
246 (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));
247 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
249 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));
250 (yyval.opval) = (OP*)NULL;
259 (yyval.opval) = package((ps[(3) - (4)].val.opval));
260 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
261 if ((ps[(2) - (4)].val.opval))
262 package_version((ps[(2) - (4)].val.opval));
263 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
265 package((ps[(3) - (4)].val.opval));
266 if ((ps[(2) - (4)].val.opval))
267 package_version((ps[(2) - (4)].val.opval));
268 (yyval.opval) = (OP*)NULL;
275 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
281 SvREFCNT_inc_simple_void(PL_compcv);
283 (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));
284 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
285 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
286 if (PL_parser->rsfp_filters &&
287 AvFILLp(PL_parser->rsfp_filters) >= 0)
288 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
290 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));
291 (yyval.opval) = (OP*)NULL;
299 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
300 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
301 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
302 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
303 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
304 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
311 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
312 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
313 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
314 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
315 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
316 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
323 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
324 newGIVENOP((ps[(5) - (7)].val.opval), op_scope((ps[(7) - (7)].val.opval)), (PADOFFSET)(ps[(4) - (7)].val.ival)));
325 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
331 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;}
336 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;}
342 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
343 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
344 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
345 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
346 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
347 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
348 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
355 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
356 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
357 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
358 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
359 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
360 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
361 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
368 OP *initop = IF_MAD((ps[(4) - (11)].val.opval) ? (ps[(4) - (11)].val.opval) : newOP(OP_NULL, 0), (ps[(4) - (11)].val.opval));
369 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
370 scalar((ps[(6) - (11)].val.opval)), (ps[(11) - (11)].val.opval), (ps[(9) - (11)].val.opval), (ps[(8) - (11)].val.ival));
372 forop = op_prepend_elem(OP_LINESEQ, initop,
373 op_append_elem(OP_LINESEQ,
374 newOP(OP_UNSTACK, OPf_SPECIAL),
377 DO_MAD({ forop = newUNOP(OP_NULL, 0, forop); })
378 (yyval.opval) = block_end((ps[(3) - (11)].val.ival), forop);
379 TOKEN_GETMAD((ps[(1) - (11)].val.i_tkval),(yyval.opval),'3');
380 TOKEN_GETMAD((ps[(2) - (11)].val.i_tkval),(yyval.opval),'(');
381 TOKEN_GETMAD((ps[(5) - (11)].val.i_tkval),(yyval.opval),'1');
382 TOKEN_GETMAD((ps[(7) - (11)].val.i_tkval),(yyval.opval),'2');
383 TOKEN_GETMAD((ps[(10) - (11)].val.i_tkval),(yyval.opval),')');
384 PL_parser->copline = (line_t)IVAL((ps[(1) - (11)].val.i_tkval));
391 (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)));
392 TOKEN_GETMAD((ps[(1) - (9)].val.i_tkval),(yyval.opval),'W');
393 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),(yyval.opval),'d');
394 TOKEN_GETMAD((ps[(5) - (9)].val.i_tkval),(yyval.opval),'(');
395 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),(yyval.opval),')');
396 PL_parser->copline = (line_t)IVAL((ps[(1) - (9)].val.i_tkval));
403 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
404 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
405 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
406 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),(yyval.opval),'(');
407 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),(yyval.opval),')');
408 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
415 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
416 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
417 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'W');
418 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
419 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
420 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
427 /* a block is a loop that happens once */
428 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
429 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
436 int save_3_latefree = (ps[(3) - (5)].val.opval)->op_latefree;
437 (ps[(3) - (5)].val.opval)->op_latefree = 1;
438 package((ps[(3) - (5)].val.opval));
439 (ps[(3) - (5)].val.opval)->op_latefree = save_3_latefree;
440 if ((ps[(2) - (5)].val.opval)) {
441 int save_2_latefree = (ps[(2) - (5)].val.opval)->op_latefree;
442 (ps[(2) - (5)].val.opval)->op_latefree = 1;
443 package_version((ps[(2) - (5)].val.opval));
444 (ps[(2) - (5)].val.opval)->op_latefree = save_2_latefree;
452 /* a block is a loop that happens once */
453 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
454 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
455 op_free((ps[(3) - (8)].val.opval));
456 if ((ps[(2) - (8)].val.opval))
457 op_free((ps[(2) - (8)].val.opval));
458 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
459 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
460 if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
461 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
468 PL_parser->expect = XSTATE;
469 (yyval.opval) = (ps[(1) - (2)].val.opval);
470 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
477 PL_parser->expect = XSTATE;
478 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), (OP*)NULL);
479 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
480 PL_parser->copline = NOLINE;
486 { (yyval.opval) = (OP*)NULL; ;}
491 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
496 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
497 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
503 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
504 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
510 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
511 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
517 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
518 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
524 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
525 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
526 PL_parser->copline = (line_t)IVAL((ps[(2) - (3)].val.i_tkval));
532 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
537 { (yyval.opval) = (OP*)NULL; ;}
543 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
544 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
545 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
551 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
552 (yyval.opval) = newCONDOP(0,
553 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
554 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
555 PL_hints |= HINT_BLOCK_SCOPE;
556 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
557 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
558 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
564 { (yyval.opval) = (OP*)NULL; ;}
570 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
571 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
577 { (yyval.ival) = (PL_min_intro_pending &&
578 PL_max_intro_pending >= PL_min_intro_pending);
584 { (yyval.opval) = (OP*)NULL; ;}
590 (void)scan_num("1", &tmplval);
591 (yyval.opval) = tmplval.opval; ;}
596 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
601 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
606 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
611 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
616 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
621 { (yyval.opval) = (OP*)NULL; ;}
626 { (yyval.ival) = start_subparse(FALSE, 0);
627 SAVEFREESV(PL_compcv); ;}
632 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
633 SAVEFREESV(PL_compcv); ;}
638 { (yyval.ival) = start_subparse(TRUE, 0);
639 SAVEFREESV(PL_compcv); ;}
644 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
645 if (strEQ(name, "BEGIN") || strEQ(name, "END")
646 || strEQ(name, "INIT") || strEQ(name, "CHECK")
647 || strEQ(name, "UNITCHECK"))
648 CvSPECIAL_on(PL_compcv);
649 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
654 { (yyval.opval) = (OP*)NULL; ;}
659 { (yyval.opval) = (OP*)NULL; ;}
664 { (yyval.opval) = (ps[(2) - (2)].val.opval);
665 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
671 { (yyval.opval) = IF_MAD(
675 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
681 { (yyval.opval) = (ps[(2) - (2)].val.opval);
682 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
688 { (yyval.opval) = IF_MAD(
692 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
698 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
703 { (yyval.opval) = IF_MAD(
707 PL_parser->expect = XSTATE;
708 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
714 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
715 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
721 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
722 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
728 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
729 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
737 OP* op = newNULLLIST();
738 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
739 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
741 (yyval.opval) = (ps[(1) - (2)].val.opval);
749 OP* term = (ps[(3) - (3)].val.opval);
751 term = newUNOP(OP_NULL, 0, term);
752 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
754 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
760 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
761 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
762 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
768 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
769 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
770 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
771 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
772 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
778 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
779 op_append_elem(OP_LIST,
780 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
781 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
782 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
783 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
784 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
790 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
791 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
792 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
793 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
799 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
800 op_append_elem(OP_LIST,
801 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
802 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
808 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
809 op_append_elem(OP_LIST,
810 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
811 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
812 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
813 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
819 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
820 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
826 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
827 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
828 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
829 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
835 { SvREFCNT_inc_simple_void(PL_compcv);
836 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
841 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
842 op_append_elem(OP_LIST,
843 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
849 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
850 PL_parser->expect = XOPERATOR;
851 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
852 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
853 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
859 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
860 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
861 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
867 { (yyval.opval) = newBINOP(OP_AELEM, 0,
868 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
869 scalar((ps[(4) - (5)].val.opval)));
870 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
871 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
872 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
878 { (yyval.opval) = newBINOP(OP_AELEM, 0,
879 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
880 scalar((ps[(3) - (4)].val.opval)));
881 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
882 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
888 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
889 PL_parser->expect = XOPERATOR;
890 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
891 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
892 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
898 { (yyval.opval) = newBINOP(OP_HELEM, 0,
899 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
900 jmaybe((ps[(4) - (6)].val.opval)));
901 PL_parser->expect = XOPERATOR;
902 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
903 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
904 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
905 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
911 { (yyval.opval) = newBINOP(OP_HELEM, 0,
912 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
913 jmaybe((ps[(3) - (5)].val.opval)));
914 PL_parser->expect = XOPERATOR;
915 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
916 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
917 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
923 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
924 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
925 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
926 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
927 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
933 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
934 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
935 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
936 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
937 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
938 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
944 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
945 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
946 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
947 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
948 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
954 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
955 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
956 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
957 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
963 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
964 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
965 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
966 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
967 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
973 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval));
974 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
975 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
981 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
982 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
983 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
984 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
985 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
991 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
992 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
998 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
999 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1005 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
1006 scalar((ps[(1) - (3)].val.opval));
1007 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
1008 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1014 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1015 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1021 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1022 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1028 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1029 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1035 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1036 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1042 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1043 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1049 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1050 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1057 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1060 op = (UNOP*)(yyval.opval);
1061 op = (UNOP*)op->op_first; /* get to flop */
1062 op = (UNOP*)op->op_first; /* get to flip */
1063 op = (UNOP*)op->op_first; /* get to range */
1064 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1071 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1072 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1078 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1079 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1085 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1086 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1092 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1093 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1094 ((yyval.opval)->op_type == OP_NOT
1095 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1102 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1103 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1109 { (yyval.opval) = IF_MAD(
1110 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1111 (ps[(2) - (2)].val.opval)
1113 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1119 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1120 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1126 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1127 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1133 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1134 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1135 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1141 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1142 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1143 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1149 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1150 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1151 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1156 #line 1003 "perly.y"
1157 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1158 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1159 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1164 #line 1012 "perly.y"
1165 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1166 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1167 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1172 #line 1017 "perly.y"
1173 { (yyval.opval) = newANONLIST((OP*)NULL);
1174 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1175 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1180 #line 1022 "perly.y"
1181 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1182 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1183 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1184 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1189 #line 1028 "perly.y"
1190 { (yyval.opval) = newANONHASH((OP*)NULL);
1191 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1192 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1193 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1198 #line 1034 "perly.y"
1199 { SvREFCNT_inc_simple_void(PL_compcv);
1200 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1201 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1202 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1203 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1208 #line 1045 "perly.y"
1209 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1210 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1215 #line 1049 "perly.y"
1216 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));
1217 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1222 #line 1053 "perly.y"
1223 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1224 OPf_SPECIAL|OPf_STACKED,
1225 op_prepend_elem(OP_LIST,
1227 (OPpENTERSUB_AMPER<<8),
1228 scalar((ps[(2) - (4)].val.opval))
1229 )),(OP*)NULL)); dep();
1230 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1231 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1232 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1237 #line 1065 "perly.y"
1238 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1239 OPf_SPECIAL|OPf_STACKED,
1240 op_append_elem(OP_LIST,
1241 (ps[(4) - (5)].val.opval),
1243 (OPpENTERSUB_AMPER<<8),
1244 scalar((ps[(2) - (5)].val.opval))
1246 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1247 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1248 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1253 #line 1078 "perly.y"
1254 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1255 op_prepend_elem(OP_LIST,
1256 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1257 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1258 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1259 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1264 #line 1086 "perly.y"
1265 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1266 op_prepend_elem(OP_LIST,
1267 (ps[(4) - (5)].val.opval),
1268 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1269 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1270 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1271 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1276 #line 1102 "perly.y"
1277 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1278 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1279 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1284 #line 1107 "perly.y"
1285 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN));
1286 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1291 #line 1111 "perly.y"
1292 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1296 #line 1113 "perly.y"
1297 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1298 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1303 #line 1117 "perly.y"
1304 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1305 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1306 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1311 #line 1122 "perly.y"
1312 { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
1316 #line 1124 "perly.y"
1317 { (yyval.opval) = sawparens(newNULLLIST());
1318 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1319 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1324 #line 1129 "perly.y"
1325 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1329 #line 1131 "perly.y"
1330 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1334 #line 1133 "perly.y"
1335 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1339 #line 1135 "perly.y"
1340 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1344 #line 1137 "perly.y"
1345 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1349 #line 1139 "perly.y"
1350 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1354 #line 1141 "perly.y"
1355 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1356 newOP(OP_PUSHMARK, 0),
1357 newLISTOP(OP_ASLICE, 0,
1358 list((ps[(3) - (4)].val.opval)),
1359 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1360 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1361 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1366 #line 1150 "perly.y"
1367 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1368 newOP(OP_PUSHMARK, 0),
1369 newLISTOP(OP_HSLICE, 0,
1370 list((ps[(3) - (5)].val.opval)),
1371 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1372 PL_parser->expect = XOPERATOR;
1373 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1374 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1375 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1380 #line 1161 "perly.y"
1381 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1385 #line 1163 "perly.y"
1386 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1390 #line 1165 "perly.y"
1391 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1392 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1393 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1398 #line 1170 "perly.y"
1400 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1401 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1403 OP* op = (yyval.opval);
1404 if (op->op_type == OP_CONST) { /* defeat const fold */
1405 op = (OP*)op->op_madprop->mad_val;
1407 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1408 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1414 #line 1183 "perly.y"
1415 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1416 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1417 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1422 #line 1188 "perly.y"
1423 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1424 PL_hints |= HINT_BLOCK_SCOPE;
1425 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1430 #line 1193 "perly.y"
1431 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1432 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1437 #line 1197 "perly.y"
1438 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1439 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1444 #line 1201 "perly.y"
1445 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1446 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1451 #line 1205 "perly.y"
1452 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1453 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1458 #line 1209 "perly.y"
1459 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1460 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1465 #line 1213 "perly.y"
1466 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1467 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1472 #line 1217 "perly.y"
1473 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1474 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1479 #line 1221 "perly.y"
1480 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1484 #line 1223 "perly.y"
1485 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1486 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1490 #line 1226 "perly.y"
1491 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1492 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1497 #line 1230 "perly.y"
1498 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1499 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1500 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1501 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1506 #line 1236 "perly.y"
1507 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1508 scalar((ps[(1) - (1)].val.opval))); ;}
1512 #line 1239 "perly.y"
1513 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1514 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1515 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1517 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1518 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1519 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1524 #line 1248 "perly.y"
1525 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1526 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1527 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1528 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1533 #line 1254 "perly.y"
1534 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1535 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1536 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1541 #line 1261 "perly.y"
1543 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1544 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1545 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1550 #line 1271 "perly.y"
1551 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1553 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1554 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1555 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1561 #line 1279 "perly.y"
1562 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1563 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1568 #line 1286 "perly.y"
1569 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1570 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1571 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1576 #line 1291 "perly.y"
1577 { (yyval.opval) = sawparens(newNULLLIST());
1578 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1579 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1584 #line 1296 "perly.y"
1585 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1589 #line 1298 "perly.y"
1590 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1594 #line 1300 "perly.y"
1595 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1599 #line 1305 "perly.y"
1600 { (yyval.opval) = (OP*)NULL; ;}
1604 #line 1307 "perly.y"
1605 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1609 #line 1311 "perly.y"
1610 { (yyval.opval) = (OP*)NULL; ;}
1614 #line 1313 "perly.y"
1615 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1619 #line 1317 "perly.y"
1620 { (yyval.i_tkval) = (ps[(1) - (1)].val.i_tkval); ;}
1624 #line 1319 "perly.y"
1625 { munge_qwlist_to_paren_list((ps[(1) - (1)].val.opval)); ;}
1629 #line 1321 "perly.y"
1630 { (yyval.i_tkval) = (ps[(3) - (3)].val.i_tkval); ;}
1634 #line 1327 "perly.y"
1635 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1639 #line 1331 "perly.y"
1640 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1641 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1646 #line 1337 "perly.y"
1647 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1648 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1653 #line 1343 "perly.y"
1654 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1655 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1660 #line 1349 "perly.y"
1661 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1662 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1667 #line 1355 "perly.y"
1668 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1669 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1674 #line 1361 "perly.y"
1675 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1676 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1681 #line 1368 "perly.y"
1682 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1686 #line 1370 "perly.y"
1687 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1691 #line 1372 "perly.y"
1692 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1696 #line 1375 "perly.y"
1697 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1701 /* Line 1267 of yacc.c. */