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 (PVAL((ps[(1) - (2)].val.p_tkval)) || (ps[(2) - (2)].val.opval)) {
153 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
154 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),
155 (ps[(2) - (2)].val.opval) ? cLISTOPx((yyval.opval))->op_first : (yyval.opval), 'L');
157 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), (ps[(2) - (2)].val.opval));
164 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
170 (yyval.opval) = newOP(OP_NULL,0);
171 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
178 CV *fmtcv = PL_compcv;
179 SvREFCNT_inc_simple_void(PL_compcv);
181 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
182 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
183 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
184 token_free((ps[(1) - (4)].val.i_tkval));
186 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
187 (yyval.opval) = (OP*)NULL;
189 if (CvOUTSIDE(fmtcv) && !CvUNIQUE(CvOUTSIDE(fmtcv))) {
190 SvREFCNT_inc_simple_void(fmtcv);
191 pad_add_anon((SV*)fmtcv, OP_NULL);
199 SvREFCNT_inc_simple_void(PL_compcv);
202 OP* o = newSVOP(OP_ANONCODE, 0,
203 (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)));
204 (yyval.opval) = newOP(OP_NULL,0);
205 op_getmad(o,(yyval.opval),'&');
206 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
207 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
208 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
209 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
210 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
211 (ps[(6) - (6)].val.opval)->op_madprop = 0;
214 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));
215 (yyval.opval) = (OP*)NULL;
223 /* Unimplemented "my sub foo { }" */
224 SvREFCNT_inc_simple_void(PL_compcv);
226 (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));
227 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
229 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));
230 (yyval.opval) = (OP*)NULL;
239 (yyval.opval) = package((ps[(3) - (4)].val.opval));
240 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
241 if ((ps[(2) - (4)].val.opval))
242 package_version((ps[(2) - (4)].val.opval));
243 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
245 package((ps[(3) - (4)].val.opval));
246 if ((ps[(2) - (4)].val.opval))
247 package_version((ps[(2) - (4)].val.opval));
248 (yyval.opval) = (OP*)NULL;
255 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
261 SvREFCNT_inc_simple_void(PL_compcv);
263 (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));
264 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
265 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
266 if (PL_parser->rsfp_filters &&
267 AvFILLp(PL_parser->rsfp_filters) >= 0)
268 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
270 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));
271 (yyval.opval) = (OP*)NULL;
279 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
280 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
281 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
282 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
283 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
284 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
291 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
292 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
293 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
294 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
295 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
296 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
303 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
304 newGIVENOP((ps[(5) - (7)].val.opval), op_scope((ps[(7) - (7)].val.opval)), (PADOFFSET)(ps[(4) - (7)].val.ival)));
305 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
311 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;}
316 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;}
322 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
323 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
324 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
325 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
326 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
327 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
328 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
335 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
336 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
337 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
338 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
339 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
340 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
341 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
348 OP *initop = IF_MAD((ps[(4) - (11)].val.opval) ? (ps[(4) - (11)].val.opval) : newOP(OP_NULL, 0), (ps[(4) - (11)].val.opval));
349 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
350 scalar((ps[(6) - (11)].val.opval)), (ps[(11) - (11)].val.opval), (ps[(9) - (11)].val.opval), (ps[(8) - (11)].val.ival));
352 forop = op_prepend_elem(OP_LINESEQ, initop,
353 op_append_elem(OP_LINESEQ,
354 newOP(OP_UNSTACK, OPf_SPECIAL),
357 DO_MAD({ forop = newUNOP(OP_NULL, 0, forop); })
358 (yyval.opval) = block_end((ps[(3) - (11)].val.ival), forop);
359 TOKEN_GETMAD((ps[(1) - (11)].val.i_tkval),(yyval.opval),'3');
360 TOKEN_GETMAD((ps[(2) - (11)].val.i_tkval),(yyval.opval),'(');
361 TOKEN_GETMAD((ps[(5) - (11)].val.i_tkval),(yyval.opval),'1');
362 TOKEN_GETMAD((ps[(7) - (11)].val.i_tkval),(yyval.opval),'2');
363 TOKEN_GETMAD((ps[(10) - (11)].val.i_tkval),(yyval.opval),')');
364 PL_parser->copline = (line_t)IVAL((ps[(1) - (11)].val.i_tkval));
371 (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)));
372 TOKEN_GETMAD((ps[(1) - (9)].val.i_tkval),(yyval.opval),'W');
373 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),(yyval.opval),'d');
374 TOKEN_GETMAD((ps[(5) - (9)].val.i_tkval),(yyval.opval),'(');
375 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),(yyval.opval),')');
376 PL_parser->copline = (line_t)IVAL((ps[(1) - (9)].val.i_tkval));
383 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
384 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
385 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
386 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),(yyval.opval),'(');
387 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),(yyval.opval),')');
388 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
395 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
396 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
397 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'W');
398 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
399 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
400 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
407 /* a block is a loop that happens once */
408 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
409 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
416 int save_3_latefree = (ps[(3) - (5)].val.opval)->op_latefree;
417 (ps[(3) - (5)].val.opval)->op_latefree = 1;
418 package((ps[(3) - (5)].val.opval));
419 (ps[(3) - (5)].val.opval)->op_latefree = save_3_latefree;
420 if ((ps[(2) - (5)].val.opval)) {
421 int save_2_latefree = (ps[(2) - (5)].val.opval)->op_latefree;
422 (ps[(2) - (5)].val.opval)->op_latefree = 1;
423 package_version((ps[(2) - (5)].val.opval));
424 (ps[(2) - (5)].val.opval)->op_latefree = save_2_latefree;
432 /* a block is a loop that happens once */
433 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
434 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
435 op_free((ps[(3) - (8)].val.opval));
436 if ((ps[(2) - (8)].val.opval))
437 op_free((ps[(2) - (8)].val.opval));
438 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
439 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
440 if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
441 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
448 PL_parser->expect = XSTATE;
449 (yyval.opval) = (ps[(1) - (2)].val.opval);
450 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
457 PL_parser->expect = XSTATE;
458 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), (OP*)NULL);
459 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
460 PL_parser->copline = NOLINE;
466 { (yyval.opval) = (OP*)NULL; ;}
471 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
476 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
477 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
483 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
484 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
490 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
491 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
497 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
498 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
504 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
505 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
506 PL_parser->copline = (line_t)IVAL((ps[(2) - (3)].val.i_tkval));
512 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
517 { (yyval.opval) = (OP*)NULL; ;}
523 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
524 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
525 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
531 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
532 (yyval.opval) = newCONDOP(0,
533 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
534 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
535 PL_hints |= HINT_BLOCK_SCOPE;
536 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
537 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
538 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
544 { (yyval.opval) = (OP*)NULL; ;}
550 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
551 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
557 { (yyval.ival) = (PL_min_intro_pending &&
558 PL_max_intro_pending >= PL_min_intro_pending);
564 { (yyval.opval) = (OP*)NULL; ;}
570 (void)scan_num("1", &tmplval);
571 (yyval.opval) = tmplval.opval; ;}
576 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
581 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
586 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
591 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
600 (yyval.p_tkval) = newTOKEN(OP_NULL, tmplval, 0);
602 (yyval.p_tkval) = NULL;
609 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
614 { (yyval.opval) = (OP*)NULL; ;}
619 { (yyval.ival) = start_subparse(FALSE, 0);
620 SAVEFREESV(PL_compcv); ;}
625 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
626 SAVEFREESV(PL_compcv); ;}
631 { (yyval.ival) = start_subparse(TRUE, 0);
632 SAVEFREESV(PL_compcv); ;}
637 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
638 if (strEQ(name, "BEGIN") || strEQ(name, "END")
639 || strEQ(name, "INIT") || strEQ(name, "CHECK")
640 || strEQ(name, "UNITCHECK"))
641 CvSPECIAL_on(PL_compcv);
642 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
647 { (yyval.opval) = (OP*)NULL; ;}
652 { (yyval.opval) = (OP*)NULL; ;}
657 { (yyval.opval) = (ps[(2) - (2)].val.opval);
658 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
664 { (yyval.opval) = IF_MAD(
668 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
674 { (yyval.opval) = (ps[(2) - (2)].val.opval);
675 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
681 { (yyval.opval) = IF_MAD(
685 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
691 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
696 { (yyval.opval) = IF_MAD(
700 PL_parser->expect = XSTATE;
701 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
707 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
708 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
714 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 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(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
722 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
730 OP* op = newNULLLIST();
731 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
732 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
734 (yyval.opval) = (ps[(1) - (2)].val.opval);
742 OP* term = (ps[(3) - (3)].val.opval);
744 term = newUNOP(OP_NULL, 0, term);
745 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
747 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
753 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
754 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
755 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
761 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
762 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
763 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
764 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
765 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
771 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
772 op_append_elem(OP_LIST,
773 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
774 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
775 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
776 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
777 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
783 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
784 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
785 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
786 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
792 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
793 op_append_elem(OP_LIST,
794 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
795 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
801 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
802 op_append_elem(OP_LIST,
803 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
804 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
805 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
806 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
812 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
813 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
819 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
820 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
821 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
822 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
828 { SvREFCNT_inc_simple_void(PL_compcv);
829 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
834 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
835 op_append_elem(OP_LIST,
836 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
842 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
843 PL_parser->expect = XOPERATOR;
844 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
845 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
846 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
852 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
853 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
854 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
860 { (yyval.opval) = newBINOP(OP_AELEM, 0,
861 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
862 scalar((ps[(4) - (5)].val.opval)));
863 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
864 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
865 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
871 { (yyval.opval) = newBINOP(OP_AELEM, 0,
872 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
873 scalar((ps[(3) - (4)].val.opval)));
874 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
875 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
881 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
882 PL_parser->expect = XOPERATOR;
883 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
884 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
885 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
891 { (yyval.opval) = newBINOP(OP_HELEM, 0,
892 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
893 jmaybe((ps[(4) - (6)].val.opval)));
894 PL_parser->expect = XOPERATOR;
895 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
896 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
897 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
898 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
904 { (yyval.opval) = newBINOP(OP_HELEM, 0,
905 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
906 jmaybe((ps[(3) - (5)].val.opval)));
907 PL_parser->expect = XOPERATOR;
908 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
909 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
910 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
916 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
917 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
918 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
919 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
920 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
926 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
927 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
928 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
929 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
930 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
931 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
937 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
938 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
939 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
940 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
941 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
947 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
948 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
949 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
950 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
956 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
957 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
958 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
959 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
960 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
966 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval));
967 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
968 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
974 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
975 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
976 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
977 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
978 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
984 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
985 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
991 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
992 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
998 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
999 scalar((ps[(1) - (3)].val.opval));
1000 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
1001 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1007 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((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');
1050 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1053 op = (UNOP*)(yyval.opval);
1054 op = (UNOP*)op->op_first; /* get to flop */
1055 op = (UNOP*)op->op_first; /* get to flip */
1056 op = (UNOP*)op->op_first; /* get to range */
1057 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1064 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1065 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1071 { (yyval.opval) = newLOGOP(OP_OR, 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_DOR, 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) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1086 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1087 ((yyval.opval)->op_type == OP_NOT
1088 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1095 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1096 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1102 { (yyval.opval) = IF_MAD(
1103 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1104 (ps[(2) - (2)].val.opval)
1106 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1112 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1113 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1119 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1120 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1126 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1127 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1128 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1134 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1135 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1136 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1141 #line 1000 "perly.y"
1142 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1143 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1144 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1149 #line 1005 "perly.y"
1150 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1151 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1152 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1157 #line 1014 "perly.y"
1158 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1159 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1160 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1165 #line 1019 "perly.y"
1166 { (yyval.opval) = newANONLIST((OP*)NULL);
1167 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1168 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1173 #line 1024 "perly.y"
1174 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1175 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1176 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1177 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1182 #line 1030 "perly.y"
1183 { (yyval.opval) = newANONHASH((OP*)NULL);
1184 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1185 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1186 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1191 #line 1036 "perly.y"
1192 { SvREFCNT_inc_simple_void(PL_compcv);
1193 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1194 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1195 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1196 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1201 #line 1047 "perly.y"
1202 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1203 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1208 #line 1051 "perly.y"
1209 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));
1210 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1215 #line 1055 "perly.y"
1216 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1217 OPf_SPECIAL|OPf_STACKED,
1218 op_prepend_elem(OP_LIST,
1220 (OPpENTERSUB_AMPER<<8),
1221 scalar((ps[(2) - (4)].val.opval))
1222 )),(OP*)NULL)); dep();
1223 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1224 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1225 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1230 #line 1067 "perly.y"
1231 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1232 OPf_SPECIAL|OPf_STACKED,
1233 op_append_elem(OP_LIST,
1234 (ps[(4) - (5)].val.opval),
1236 (OPpENTERSUB_AMPER<<8),
1237 scalar((ps[(2) - (5)].val.opval))
1239 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1240 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1241 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1246 #line 1080 "perly.y"
1247 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1248 op_prepend_elem(OP_LIST,
1249 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1250 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1251 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1252 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1257 #line 1088 "perly.y"
1258 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1259 op_prepend_elem(OP_LIST,
1260 (ps[(4) - (5)].val.opval),
1261 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1262 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1263 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1264 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1269 #line 1104 "perly.y"
1270 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1271 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1272 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1277 #line 1109 "perly.y"
1278 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN));
1279 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1284 #line 1113 "perly.y"
1285 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1289 #line 1115 "perly.y"
1290 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1291 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1296 #line 1119 "perly.y"
1297 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1298 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1299 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1304 #line 1124 "perly.y"
1305 { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
1309 #line 1126 "perly.y"
1310 { (yyval.opval) = sawparens(newNULLLIST());
1311 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1312 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1317 #line 1131 "perly.y"
1318 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1322 #line 1133 "perly.y"
1323 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1327 #line 1135 "perly.y"
1328 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1332 #line 1137 "perly.y"
1333 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1337 #line 1139 "perly.y"
1338 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1342 #line 1141 "perly.y"
1343 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1347 #line 1143 "perly.y"
1348 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1349 newOP(OP_PUSHMARK, 0),
1350 newLISTOP(OP_ASLICE, 0,
1351 list((ps[(3) - (4)].val.opval)),
1352 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1353 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1354 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1359 #line 1152 "perly.y"
1360 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1361 newOP(OP_PUSHMARK, 0),
1362 newLISTOP(OP_HSLICE, 0,
1363 list((ps[(3) - (5)].val.opval)),
1364 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1365 PL_parser->expect = XOPERATOR;
1366 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1367 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1368 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1373 #line 1163 "perly.y"
1374 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1378 #line 1165 "perly.y"
1379 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1383 #line 1167 "perly.y"
1384 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1385 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1386 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1391 #line 1172 "perly.y"
1393 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1394 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1396 OP* op = (yyval.opval);
1397 if (op->op_type == OP_CONST) { /* defeat const fold */
1398 op = (OP*)op->op_madprop->mad_val;
1400 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1401 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1407 #line 1185 "perly.y"
1408 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1409 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1410 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1415 #line 1190 "perly.y"
1416 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1417 PL_hints |= HINT_BLOCK_SCOPE;
1418 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1423 #line 1195 "perly.y"
1424 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1425 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1430 #line 1199 "perly.y"
1431 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1432 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1437 #line 1203 "perly.y"
1438 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1439 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1444 #line 1207 "perly.y"
1445 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1446 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1451 #line 1211 "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 1215 "perly.y"
1459 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1460 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1465 #line 1219 "perly.y"
1466 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1467 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1472 #line 1223 "perly.y"
1473 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1477 #line 1225 "perly.y"
1478 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1479 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1483 #line 1228 "perly.y"
1484 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1485 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1490 #line 1232 "perly.y"
1491 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1492 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1493 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1494 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1499 #line 1238 "perly.y"
1500 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1501 scalar((ps[(1) - (1)].val.opval))); ;}
1505 #line 1241 "perly.y"
1506 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1507 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1508 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1510 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1511 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1512 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1517 #line 1250 "perly.y"
1518 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1519 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1520 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1521 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1526 #line 1256 "perly.y"
1527 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1528 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1529 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1534 #line 1263 "perly.y"
1536 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1537 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1538 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1543 #line 1273 "perly.y"
1544 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1546 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1547 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1548 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1554 #line 1281 "perly.y"
1555 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1556 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1561 #line 1288 "perly.y"
1562 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1563 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1564 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1569 #line 1293 "perly.y"
1570 { (yyval.opval) = sawparens(newNULLLIST());
1571 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1572 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1577 #line 1298 "perly.y"
1578 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1582 #line 1300 "perly.y"
1583 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1587 #line 1302 "perly.y"
1588 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1592 #line 1307 "perly.y"
1593 { (yyval.opval) = (OP*)NULL; ;}
1597 #line 1309 "perly.y"
1598 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1602 #line 1313 "perly.y"
1603 { (yyval.opval) = (OP*)NULL; ;}
1607 #line 1315 "perly.y"
1608 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1612 #line 1319 "perly.y"
1613 { (yyval.i_tkval) = (ps[(1) - (1)].val.i_tkval); ;}
1617 #line 1321 "perly.y"
1618 { munge_qwlist_to_paren_list((ps[(1) - (1)].val.opval)); ;}
1622 #line 1323 "perly.y"
1623 { (yyval.i_tkval) = (ps[(3) - (3)].val.i_tkval); ;}
1627 #line 1329 "perly.y"
1628 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1632 #line 1333 "perly.y"
1633 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1634 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1639 #line 1339 "perly.y"
1640 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1641 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1646 #line 1345 "perly.y"
1647 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1648 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1653 #line 1351 "perly.y"
1654 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1655 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1660 #line 1357 "perly.y"
1661 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1662 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1667 #line 1363 "perly.y"
1668 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1669 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1674 #line 1370 "perly.y"
1675 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1679 #line 1372 "perly.y"
1680 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1684 #line 1374 "perly.y"
1685 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1689 #line 1377 "perly.y"
1690 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1694 /* Line 1267 of yacc.c. */