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(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
175 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),
176 (ps[(2) - (2)].val.opval) ? cLISTOPx((yyval.opval))->op_first : (yyval.opval), 'L');
183 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
184 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval), cLISTOPx((yyval.opval))->op_first, 'L');
190 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
196 (yyval.opval) = newOP(OP_NULL,0);
197 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
204 CV *fmtcv = PL_compcv;
205 SvREFCNT_inc_simple_void(PL_compcv);
207 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
208 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
209 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
210 token_free((ps[(1) - (4)].val.i_tkval));
212 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
213 (yyval.opval) = (OP*)NULL;
215 if (CvOUTSIDE(fmtcv) && !CvUNIQUE(CvOUTSIDE(fmtcv))) {
216 SvREFCNT_inc_simple_void(fmtcv);
217 pad_add_anon(fmtcv, OP_NULL);
225 SvREFCNT_inc_simple_void(PL_compcv);
228 OP* o = newSVOP(OP_ANONCODE, 0,
229 (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)));
230 (yyval.opval) = newOP(OP_NULL,0);
231 op_getmad(o,(yyval.opval),'&');
232 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
233 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
234 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
235 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
236 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
237 (ps[(6) - (6)].val.opval)->op_madprop = 0;
240 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));
241 (yyval.opval) = (OP*)NULL;
249 /* Unimplemented "my sub foo { }" */
250 SvREFCNT_inc_simple_void(PL_compcv);
252 (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));
253 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
255 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));
256 (yyval.opval) = (OP*)NULL;
265 (yyval.opval) = package((ps[(3) - (4)].val.opval));
266 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
267 if ((ps[(2) - (4)].val.opval))
268 package_version((ps[(2) - (4)].val.opval));
269 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
271 package((ps[(3) - (4)].val.opval));
272 if ((ps[(2) - (4)].val.opval))
273 package_version((ps[(2) - (4)].val.opval));
274 (yyval.opval) = (OP*)NULL;
281 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
287 SvREFCNT_inc_simple_void(PL_compcv);
289 (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));
290 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
291 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
292 if (PL_parser->rsfp_filters &&
293 AvFILLp(PL_parser->rsfp_filters) >= 0)
294 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
296 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));
297 (yyval.opval) = (OP*)NULL;
305 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
306 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
307 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
308 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
309 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
310 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
317 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
318 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
319 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
320 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
321 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
322 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
329 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
330 newGIVENOP((ps[(5) - (7)].val.opval), op_scope((ps[(7) - (7)].val.opval)), (PADOFFSET)(ps[(4) - (7)].val.ival)));
331 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
337 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;}
342 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;}
348 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
349 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
350 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
351 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
352 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
353 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
354 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
361 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
362 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
363 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
364 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
365 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
366 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
367 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
374 OP *initop = IF_MAD((ps[(4) - (11)].val.opval) ? (ps[(4) - (11)].val.opval) : newOP(OP_NULL, 0), (ps[(4) - (11)].val.opval));
375 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
376 scalar((ps[(6) - (11)].val.opval)), (ps[(11) - (11)].val.opval), (ps[(9) - (11)].val.opval), (ps[(8) - (11)].val.ival));
378 forop = op_prepend_elem(OP_LINESEQ, initop,
379 op_append_elem(OP_LINESEQ,
380 newOP(OP_UNSTACK, OPf_SPECIAL),
383 DO_MAD({ forop = newUNOP(OP_NULL, 0, forop); })
384 (yyval.opval) = block_end((ps[(3) - (11)].val.ival), forop);
385 TOKEN_GETMAD((ps[(1) - (11)].val.i_tkval),(yyval.opval),'3');
386 TOKEN_GETMAD((ps[(2) - (11)].val.i_tkval),(yyval.opval),'(');
387 TOKEN_GETMAD((ps[(5) - (11)].val.i_tkval),(yyval.opval),'1');
388 TOKEN_GETMAD((ps[(7) - (11)].val.i_tkval),(yyval.opval),'2');
389 TOKEN_GETMAD((ps[(10) - (11)].val.i_tkval),(yyval.opval),')');
390 PL_parser->copline = (line_t)IVAL((ps[(1) - (11)].val.i_tkval));
397 (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)));
398 TOKEN_GETMAD((ps[(1) - (9)].val.i_tkval),(yyval.opval),'W');
399 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),(yyval.opval),'d');
400 TOKEN_GETMAD((ps[(5) - (9)].val.i_tkval),(yyval.opval),'(');
401 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),(yyval.opval),')');
402 PL_parser->copline = (line_t)IVAL((ps[(1) - (9)].val.i_tkval));
409 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
410 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
411 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
412 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),(yyval.opval),'(');
413 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),(yyval.opval),')');
414 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
421 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
422 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
423 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'W');
424 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
425 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
426 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
433 /* a block is a loop that happens once */
434 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
435 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
442 int save_3_latefree = (ps[(3) - (5)].val.opval)->op_latefree;
443 (ps[(3) - (5)].val.opval)->op_latefree = 1;
444 package((ps[(3) - (5)].val.opval));
445 (ps[(3) - (5)].val.opval)->op_latefree = save_3_latefree;
446 if ((ps[(2) - (5)].val.opval)) {
447 int save_2_latefree = (ps[(2) - (5)].val.opval)->op_latefree;
448 (ps[(2) - (5)].val.opval)->op_latefree = 1;
449 package_version((ps[(2) - (5)].val.opval));
450 (ps[(2) - (5)].val.opval)->op_latefree = save_2_latefree;
458 /* a block is a loop that happens once */
459 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
460 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
461 op_free((ps[(3) - (8)].val.opval));
462 if ((ps[(2) - (8)].val.opval))
463 op_free((ps[(2) - (8)].val.opval));
464 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
465 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
466 if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
467 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
474 PL_parser->expect = XSTATE;
475 (yyval.opval) = (ps[(1) - (2)].val.opval);
476 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
483 PL_parser->expect = XSTATE;
484 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), (OP*)NULL);
485 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
486 PL_parser->copline = NOLINE;
492 { (yyval.opval) = (OP*)NULL; ;}
497 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
502 { (yyval.opval) = newLOGOP(OP_AND, 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) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
510 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
516 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((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) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
524 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
530 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
531 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
532 PL_parser->copline = (line_t)IVAL((ps[(2) - (3)].val.i_tkval));
538 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
543 { (yyval.opval) = (OP*)NULL; ;}
549 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
550 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
551 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
557 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
558 (yyval.opval) = newCONDOP(0,
559 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
560 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
561 PL_hints |= HINT_BLOCK_SCOPE;
562 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
563 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
564 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
570 { (yyval.opval) = (OP*)NULL; ;}
576 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
577 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
583 { (yyval.ival) = (PL_min_intro_pending &&
584 PL_max_intro_pending >= PL_min_intro_pending);
590 { (yyval.opval) = (OP*)NULL; ;}
596 (void)scan_num("1", &tmplval);
597 (yyval.opval) = tmplval.opval; ;}
602 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
607 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
612 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
617 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
622 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
627 { (yyval.opval) = (OP*)NULL; ;}
632 { (yyval.ival) = start_subparse(FALSE, 0);
633 SAVEFREESV(PL_compcv); ;}
638 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
639 SAVEFREESV(PL_compcv); ;}
644 { (yyval.ival) = start_subparse(TRUE, 0);
645 SAVEFREESV(PL_compcv); ;}
650 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
651 if (strEQ(name, "BEGIN") || strEQ(name, "END")
652 || strEQ(name, "INIT") || strEQ(name, "CHECK")
653 || strEQ(name, "UNITCHECK"))
654 CvSPECIAL_on(PL_compcv);
655 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
660 { (yyval.opval) = (OP*)NULL; ;}
665 { (yyval.opval) = (OP*)NULL; ;}
670 { (yyval.opval) = (ps[(2) - (2)].val.opval);
671 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
677 { (yyval.opval) = IF_MAD(
681 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
687 { (yyval.opval) = (ps[(2) - (2)].val.opval);
688 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
694 { (yyval.opval) = IF_MAD(
698 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
704 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
709 { (yyval.opval) = IF_MAD(
713 PL_parser->expect = XSTATE;
714 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
720 { (yyval.opval) = newLOGOP(OP_AND, 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(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
728 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
734 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
735 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
743 OP* op = newNULLLIST();
744 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
745 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
747 (yyval.opval) = (ps[(1) - (2)].val.opval);
755 OP* term = (ps[(3) - (3)].val.opval);
757 term = newUNOP(OP_NULL, 0, term);
758 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
760 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
766 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
767 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
768 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
774 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
775 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
776 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
777 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
778 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
784 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
785 op_append_elem(OP_LIST,
786 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
787 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
788 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
789 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
790 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
796 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
797 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
798 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
799 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
805 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
806 op_append_elem(OP_LIST,
807 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
808 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
814 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
815 op_append_elem(OP_LIST,
816 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
817 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
818 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
819 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
825 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
826 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
832 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
833 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
834 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
835 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
841 { SvREFCNT_inc_simple_void(PL_compcv);
842 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
847 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
848 op_append_elem(OP_LIST,
849 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
855 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
856 PL_parser->expect = XOPERATOR;
857 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
858 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
859 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
865 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
866 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
867 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
873 { (yyval.opval) = newBINOP(OP_AELEM, 0,
874 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
875 scalar((ps[(4) - (5)].val.opval)));
876 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
877 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
878 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
884 { (yyval.opval) = newBINOP(OP_AELEM, 0,
885 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
886 scalar((ps[(3) - (4)].val.opval)));
887 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
888 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
894 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
895 PL_parser->expect = XOPERATOR;
896 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
897 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
898 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
904 { (yyval.opval) = newBINOP(OP_HELEM, 0,
905 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
906 jmaybe((ps[(4) - (6)].val.opval)));
907 PL_parser->expect = XOPERATOR;
908 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
909 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
910 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
911 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
917 { (yyval.opval) = newBINOP(OP_HELEM, 0,
918 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
919 jmaybe((ps[(3) - (5)].val.opval)));
920 PL_parser->expect = XOPERATOR;
921 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
922 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
923 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
929 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
930 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
931 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
932 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
933 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
939 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
940 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
941 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
942 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
943 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
944 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
950 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
951 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
952 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
953 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
954 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
960 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
961 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
962 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
963 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
969 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
970 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
971 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
972 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
973 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
979 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval));
980 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
981 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
987 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
988 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
989 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
990 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
991 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
997 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
998 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1004 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1005 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1011 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
1012 scalar((ps[(1) - (3)].val.opval));
1013 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (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');
1055 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1056 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1063 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1066 op = (UNOP*)(yyval.opval);
1067 op = (UNOP*)op->op_first; /* get to flop */
1068 op = (UNOP*)op->op_first; /* get to flip */
1069 op = (UNOP*)op->op_first; /* get to range */
1070 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1077 { (yyval.opval) = newLOGOP(OP_AND, 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_OR, 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) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1092 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1098 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1099 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1100 ((yyval.opval)->op_type == OP_NOT
1101 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1108 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1109 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1115 { (yyval.opval) = IF_MAD(
1116 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1117 (ps[(2) - (2)].val.opval)
1119 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1125 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1126 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1132 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1133 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1139 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1140 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1141 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1147 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1148 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1149 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1155 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1156 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1157 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1162 #line 1003 "perly.y"
1163 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1164 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1165 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1170 #line 1012 "perly.y"
1171 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1172 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1173 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1178 #line 1017 "perly.y"
1179 { (yyval.opval) = newANONLIST((OP*)NULL);
1180 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1181 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1186 #line 1022 "perly.y"
1187 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1188 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1189 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1190 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1195 #line 1028 "perly.y"
1196 { (yyval.opval) = newANONHASH((OP*)NULL);
1197 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1198 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1199 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1204 #line 1034 "perly.y"
1205 { SvREFCNT_inc_simple_void(PL_compcv);
1206 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1207 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1208 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1209 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1214 #line 1045 "perly.y"
1215 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1216 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1221 #line 1049 "perly.y"
1222 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));
1223 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1228 #line 1053 "perly.y"
1229 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1230 OPf_SPECIAL|OPf_STACKED,
1231 op_prepend_elem(OP_LIST,
1233 (OPpENTERSUB_AMPER<<8),
1234 scalar((ps[(2) - (4)].val.opval))
1235 )),(OP*)NULL)); dep();
1236 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1237 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1238 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1243 #line 1065 "perly.y"
1244 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1245 OPf_SPECIAL|OPf_STACKED,
1246 op_append_elem(OP_LIST,
1247 (ps[(4) - (5)].val.opval),
1249 (OPpENTERSUB_AMPER<<8),
1250 scalar((ps[(2) - (5)].val.opval))
1252 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1253 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1254 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1259 #line 1078 "perly.y"
1260 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1261 op_prepend_elem(OP_LIST,
1262 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1263 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1264 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1265 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1270 #line 1086 "perly.y"
1271 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1272 op_prepend_elem(OP_LIST,
1273 (ps[(4) - (5)].val.opval),
1274 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1275 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1276 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1277 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1282 #line 1102 "perly.y"
1283 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1284 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1285 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1290 #line 1107 "perly.y"
1291 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN));
1292 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1297 #line 1111 "perly.y"
1298 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1302 #line 1113 "perly.y"
1303 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1304 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1309 #line 1117 "perly.y"
1310 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1311 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1312 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1317 #line 1122 "perly.y"
1318 { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
1322 #line 1124 "perly.y"
1323 { (yyval.opval) = sawparens(newNULLLIST());
1324 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1325 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1330 #line 1129 "perly.y"
1331 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1335 #line 1131 "perly.y"
1336 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1340 #line 1133 "perly.y"
1341 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1345 #line 1135 "perly.y"
1346 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1350 #line 1137 "perly.y"
1351 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1355 #line 1139 "perly.y"
1356 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1360 #line 1141 "perly.y"
1361 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1362 newOP(OP_PUSHMARK, 0),
1363 newLISTOP(OP_ASLICE, 0,
1364 list((ps[(3) - (4)].val.opval)),
1365 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1366 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1367 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1372 #line 1150 "perly.y"
1373 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1374 newOP(OP_PUSHMARK, 0),
1375 newLISTOP(OP_HSLICE, 0,
1376 list((ps[(3) - (5)].val.opval)),
1377 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1378 PL_parser->expect = XOPERATOR;
1379 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1380 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1381 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1386 #line 1161 "perly.y"
1387 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1391 #line 1163 "perly.y"
1392 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1396 #line 1165 "perly.y"
1397 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1398 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1399 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1404 #line 1170 "perly.y"
1406 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1407 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1409 OP* op = (yyval.opval);
1410 if (op->op_type == OP_CONST) { /* defeat const fold */
1411 op = (OP*)op->op_madprop->mad_val;
1413 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1414 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1420 #line 1183 "perly.y"
1421 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1422 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1423 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1428 #line 1188 "perly.y"
1429 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1430 PL_hints |= HINT_BLOCK_SCOPE;
1431 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1436 #line 1193 "perly.y"
1437 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1438 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1443 #line 1197 "perly.y"
1444 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1445 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1450 #line 1201 "perly.y"
1451 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1452 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1457 #line 1205 "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 1209 "perly.y"
1465 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1466 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1471 #line 1213 "perly.y"
1472 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1473 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1478 #line 1217 "perly.y"
1479 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1480 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1485 #line 1221 "perly.y"
1486 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1490 #line 1223 "perly.y"
1491 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1492 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1496 #line 1226 "perly.y"
1497 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1498 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1503 #line 1230 "perly.y"
1504 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1505 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1506 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1507 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1512 #line 1236 "perly.y"
1513 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1517 #line 1238 "perly.y"
1518 { (yyval.opval) = (ps[(1) - (3)].val.opval);
1519 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1520 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1525 #line 1243 "perly.y"
1526 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1527 scalar((ps[(1) - (1)].val.opval))); ;}
1531 #line 1246 "perly.y"
1532 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1533 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1534 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1536 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1537 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1538 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1543 #line 1255 "perly.y"
1544 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1545 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1546 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1547 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1552 #line 1261 "perly.y"
1553 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1554 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1555 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1560 #line 1268 "perly.y"
1562 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1563 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1564 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1569 #line 1278 "perly.y"
1570 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1572 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1573 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1574 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1580 #line 1286 "perly.y"
1581 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1582 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1587 #line 1293 "perly.y"
1588 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1589 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1590 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1595 #line 1298 "perly.y"
1596 { (yyval.opval) = sawparens(newNULLLIST());
1597 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1598 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1603 #line 1303 "perly.y"
1604 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1608 #line 1305 "perly.y"
1609 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1613 #line 1307 "perly.y"
1614 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1618 #line 1312 "perly.y"
1619 { (yyval.opval) = (OP*)NULL; ;}
1623 #line 1314 "perly.y"
1624 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1628 #line 1318 "perly.y"
1629 { (yyval.opval) = (OP*)NULL; ;}
1633 #line 1320 "perly.y"
1634 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1638 #line 1324 "perly.y"
1639 { (yyval.i_tkval) = (ps[(1) - (1)].val.i_tkval); ;}
1643 #line 1326 "perly.y"
1644 { munge_qwlist_to_paren_list((ps[(1) - (1)].val.opval)); ;}
1648 #line 1328 "perly.y"
1649 { (yyval.i_tkval) = (ps[(3) - (3)].val.i_tkval); ;}
1653 #line 1334 "perly.y"
1654 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1658 #line 1338 "perly.y"
1659 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1660 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1665 #line 1344 "perly.y"
1666 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1667 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1672 #line 1350 "perly.y"
1673 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1674 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1679 #line 1356 "perly.y"
1680 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1681 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1686 #line 1362 "perly.y"
1687 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1688 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1693 #line 1368 "perly.y"
1694 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1695 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1700 #line 1375 "perly.y"
1701 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1705 #line 1377 "perly.y"
1706 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1710 #line 1379 "perly.y"
1711 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1715 #line 1382 "perly.y"
1716 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1720 /* Line 1267 of yacc.c. */
1726 * 653e5740260a91fc0511942c124de9498176ffc3862f4d9d4523d3bafbace9c6 perly.y
1727 * 53f57d7143a42b3c008841a14d158bcf9cab64b2904b07ef5e95051fe9a8a875 regen_perly.pl