4 PL_parser->expect = XSTATE;
11 newPROG(block_end((ps[(3) - (4)].val.ival),(ps[(4) - (4)].val.opval)));
19 parser->expect = XBLOCK;
26 PL_pad_reset_pending = TRUE;
27 PL_eval_root = (ps[(3) - (3)].val.opval);
30 parser->yychar = YYEOF;
37 parser->expect = XSTATE;
44 PL_pad_reset_pending = TRUE;
45 PL_eval_root = (ps[(3) - (3)].val.opval);
48 parser->yychar = YYEOF;
55 parser->expect = XSTATE;
62 PL_pad_reset_pending = TRUE;
63 PL_eval_root = (ps[(3) - (3)].val.opval);
66 parser->yychar = YYEOF;
73 parser->expect = XSTATE;
80 PL_eval_root = (ps[(3) - (3)].val.opval);
87 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
88 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
89 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
90 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
91 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
97 { (yyval.ival) = block_start(TRUE); ;}
102 { (yyval.ival) = (I32) Perl_allocmy(aTHX_ STR_WITH_LEN("$_"), 0); ;}
107 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
108 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
109 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
110 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
111 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
117 { (yyval.ival) = block_start(FALSE); ;}
122 { (yyval.opval) = (OP*)NULL; ;}
127 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
128 PL_pad_reset_pending = TRUE;
129 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
130 PL_hints |= HINT_BLOCK_SCOPE;
137 if (PVAL((ps[(1) - (2)].val.p_tkval)) || (ps[(2) - (2)].val.opval)) {
138 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
139 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),
140 (ps[(2) - (2)].val.opval) ? cLISTOPx((yyval.opval))->op_first : (yyval.opval), 'L');
142 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), (ps[(2) - (2)].val.opval));
149 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
155 (yyval.opval) = newOP(OP_NULL,0);
156 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
163 CV *fmtcv = PL_compcv;
164 SvREFCNT_inc_simple_void(PL_compcv);
166 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
167 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
168 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
169 token_free((ps[(1) - (4)].val.i_tkval));
171 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
172 (yyval.opval) = (OP*)NULL;
174 if (CvOUTSIDE(fmtcv) && !CvUNIQUE(CvOUTSIDE(fmtcv))) {
175 SvREFCNT_inc_simple_void(fmtcv);
176 pad_add_anon((SV*)fmtcv, OP_NULL);
184 SvREFCNT_inc_simple_void(PL_compcv);
187 OP* o = newSVOP(OP_ANONCODE, 0,
188 (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)));
189 (yyval.opval) = newOP(OP_NULL,0);
190 op_getmad(o,(yyval.opval),'&');
191 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
192 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
193 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
194 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
195 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
196 (ps[(6) - (6)].val.opval)->op_madprop = 0;
199 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));
200 (yyval.opval) = (OP*)NULL;
208 /* Unimplemented "my sub foo { }" */
209 SvREFCNT_inc_simple_void(PL_compcv);
211 (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));
212 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
214 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));
215 (yyval.opval) = (OP*)NULL;
224 (yyval.opval) = package((ps[(3) - (4)].val.opval));
225 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
226 if ((ps[(2) - (4)].val.opval))
227 package_version((ps[(2) - (4)].val.opval));
228 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
230 package((ps[(3) - (4)].val.opval));
231 if ((ps[(2) - (4)].val.opval))
232 package_version((ps[(2) - (4)].val.opval));
233 (yyval.opval) = (OP*)NULL;
240 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
246 SvREFCNT_inc_simple_void(PL_compcv);
248 (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));
249 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
250 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
251 if (PL_parser->rsfp_filters &&
252 AvFILLp(PL_parser->rsfp_filters) >= 0)
253 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
255 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));
256 (yyval.opval) = (OP*)NULL;
264 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
265 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
266 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
267 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
268 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
269 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
276 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
277 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
278 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
279 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
280 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
281 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
288 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
289 newGIVENOP((ps[(5) - (7)].val.opval), op_scope((ps[(7) - (7)].val.opval)), (PADOFFSET)(ps[(4) - (7)].val.ival)));
290 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
296 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;}
301 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;}
307 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
308 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
309 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
310 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
311 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
312 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
313 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
320 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
321 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
322 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
323 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
324 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
325 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
326 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
333 OP *initop = IF_MAD((ps[(4) - (11)].val.opval) ? (ps[(4) - (11)].val.opval) : newOP(OP_NULL, 0), (ps[(4) - (11)].val.opval));
334 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
335 scalar((ps[(6) - (11)].val.opval)), (ps[(11) - (11)].val.opval), (ps[(9) - (11)].val.opval), (ps[(8) - (11)].val.ival));
337 forop = op_prepend_elem(OP_LINESEQ, initop,
338 op_append_elem(OP_LINESEQ,
339 newOP(OP_UNSTACK, OPf_SPECIAL),
342 DO_MAD({ forop = newUNOP(OP_NULL, 0, forop); })
343 (yyval.opval) = block_end((ps[(3) - (11)].val.ival), forop);
344 TOKEN_GETMAD((ps[(1) - (11)].val.i_tkval),(yyval.opval),'3');
345 TOKEN_GETMAD((ps[(2) - (11)].val.i_tkval),(yyval.opval),'(');
346 TOKEN_GETMAD((ps[(5) - (11)].val.i_tkval),(yyval.opval),'1');
347 TOKEN_GETMAD((ps[(7) - (11)].val.i_tkval),(yyval.opval),'2');
348 TOKEN_GETMAD((ps[(10) - (11)].val.i_tkval),(yyval.opval),')');
349 PL_parser->copline = (line_t)IVAL((ps[(1) - (11)].val.i_tkval));
356 (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)));
357 TOKEN_GETMAD((ps[(1) - (9)].val.i_tkval),(yyval.opval),'W');
358 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),(yyval.opval),'d');
359 TOKEN_GETMAD((ps[(5) - (9)].val.i_tkval),(yyval.opval),'(');
360 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),(yyval.opval),')');
361 PL_parser->copline = (line_t)IVAL((ps[(1) - (9)].val.i_tkval));
368 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
369 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
370 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
371 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),(yyval.opval),'(');
372 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),(yyval.opval),')');
373 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
380 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
381 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
382 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'W');
383 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
384 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
385 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
392 /* a block is a loop that happens once */
393 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
394 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
401 int save_3_latefree = (ps[(3) - (5)].val.opval)->op_latefree;
402 (ps[(3) - (5)].val.opval)->op_latefree = 1;
403 package((ps[(3) - (5)].val.opval));
404 (ps[(3) - (5)].val.opval)->op_latefree = save_3_latefree;
405 if ((ps[(2) - (5)].val.opval)) {
406 int save_2_latefree = (ps[(2) - (5)].val.opval)->op_latefree;
407 (ps[(2) - (5)].val.opval)->op_latefree = 1;
408 package_version((ps[(2) - (5)].val.opval));
409 (ps[(2) - (5)].val.opval)->op_latefree = save_2_latefree;
417 /* a block is a loop that happens once */
418 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
419 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
420 op_free((ps[(3) - (8)].val.opval));
421 if ((ps[(2) - (8)].val.opval))
422 op_free((ps[(2) - (8)].val.opval));
423 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
424 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
425 if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
426 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
433 PL_parser->expect = XSTATE;
434 (yyval.opval) = (ps[(1) - (2)].val.opval);
435 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
442 PL_parser->expect = XSTATE;
443 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), (OP*)NULL);
444 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
445 PL_parser->copline = NOLINE;
451 { (yyval.opval) = (OP*)NULL; ;}
456 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
461 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
462 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
468 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
469 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
475 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
476 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
482 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
483 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
489 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
490 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
491 PL_parser->copline = (line_t)IVAL((ps[(2) - (3)].val.i_tkval));
497 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
502 { (yyval.opval) = (OP*)NULL; ;}
508 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
509 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
510 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
516 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
517 (yyval.opval) = newCONDOP(0,
518 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
519 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
520 PL_hints |= HINT_BLOCK_SCOPE;
521 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
522 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
523 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
529 { (yyval.opval) = (OP*)NULL; ;}
535 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
536 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
542 { (yyval.ival) = (PL_min_intro_pending &&
543 PL_max_intro_pending >= PL_min_intro_pending);
549 { (yyval.opval) = (OP*)NULL; ;}
555 (void)scan_num("1", &tmplval);
556 (yyval.opval) = tmplval.opval; ;}
561 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
566 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
571 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
576 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
585 (yyval.p_tkval) = newTOKEN(OP_NULL, tmplval, 0);
587 (yyval.p_tkval) = NULL;
594 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
599 { (yyval.opval) = (OP*)NULL; ;}
604 { (yyval.ival) = start_subparse(FALSE, 0);
605 SAVEFREESV(PL_compcv); ;}
610 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
611 SAVEFREESV(PL_compcv); ;}
616 { (yyval.ival) = start_subparse(TRUE, 0);
617 SAVEFREESV(PL_compcv); ;}
622 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
623 if (strEQ(name, "BEGIN") || strEQ(name, "END")
624 || strEQ(name, "INIT") || strEQ(name, "CHECK")
625 || strEQ(name, "UNITCHECK"))
626 CvSPECIAL_on(PL_compcv);
627 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
632 { (yyval.opval) = (OP*)NULL; ;}
637 { (yyval.opval) = (OP*)NULL; ;}
642 { (yyval.opval) = (ps[(2) - (2)].val.opval);
643 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
649 { (yyval.opval) = IF_MAD(
653 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
659 { (yyval.opval) = (ps[(2) - (2)].val.opval);
660 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
666 { (yyval.opval) = IF_MAD(
670 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
676 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
681 { (yyval.opval) = IF_MAD(
685 PL_parser->expect = XSTATE;
686 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
692 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
693 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
699 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
700 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
706 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
707 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
715 OP* op = newNULLLIST();
716 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
717 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
719 (yyval.opval) = (ps[(1) - (2)].val.opval);
727 OP* term = (ps[(3) - (3)].val.opval);
729 term = newUNOP(OP_NULL, 0, term);
730 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
732 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
738 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
739 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
740 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
746 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
747 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
748 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
749 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
750 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
756 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
757 op_append_elem(OP_LIST,
758 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
759 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
760 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
761 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
762 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
768 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
769 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
770 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
771 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
777 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
778 op_append_elem(OP_LIST,
779 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
780 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
786 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
787 op_append_elem(OP_LIST,
788 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
789 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
790 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
791 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
797 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
798 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
804 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
805 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
806 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
807 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
813 { SvREFCNT_inc_simple_void(PL_compcv);
814 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
819 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
820 op_append_elem(OP_LIST,
821 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
827 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
828 PL_parser->expect = XOPERATOR;
829 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
830 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
831 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
837 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
838 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
839 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
845 { (yyval.opval) = newBINOP(OP_AELEM, 0,
846 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
847 scalar((ps[(4) - (5)].val.opval)));
848 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
849 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
850 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
856 { (yyval.opval) = newBINOP(OP_AELEM, 0,
857 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
858 scalar((ps[(3) - (4)].val.opval)));
859 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
860 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
866 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
867 PL_parser->expect = XOPERATOR;
868 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
869 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
870 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
876 { (yyval.opval) = newBINOP(OP_HELEM, 0,
877 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
878 jmaybe((ps[(4) - (6)].val.opval)));
879 PL_parser->expect = XOPERATOR;
880 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
881 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
882 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
883 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
889 { (yyval.opval) = newBINOP(OP_HELEM, 0,
890 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
891 jmaybe((ps[(3) - (5)].val.opval)));
892 PL_parser->expect = XOPERATOR;
893 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
894 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
895 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
901 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
902 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
903 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
904 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
905 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
911 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
912 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
913 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
914 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
915 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
916 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
922 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
923 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
924 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
925 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
926 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
932 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
933 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
934 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
935 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
941 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
942 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
943 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
944 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
945 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
951 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval));
952 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
953 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
959 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
960 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
961 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
962 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
963 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
969 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
970 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
976 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
977 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
983 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
984 scalar((ps[(1) - (3)].val.opval));
985 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
986 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
992 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
993 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
999 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1000 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1006 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1007 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1013 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1014 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1020 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1021 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1027 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1028 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1035 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1038 op = (UNOP*)(yyval.opval);
1039 op = (UNOP*)op->op_first; /* get to flop */
1040 op = (UNOP*)op->op_first; /* get to flip */
1041 op = (UNOP*)op->op_first; /* get to range */
1042 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
1049 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1050 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1056 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1057 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1063 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1064 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1070 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1071 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1072 ((yyval.opval)->op_type == OP_NOT
1073 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1080 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1081 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1087 { (yyval.opval) = IF_MAD(
1088 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1089 (ps[(2) - (2)].val.opval)
1091 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1097 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1098 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1104 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1105 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1111 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1112 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1113 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1119 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1120 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1121 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1127 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1128 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1129 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1135 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1136 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1137 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1142 #line 1005 "perly.y"
1143 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1144 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1145 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1150 #line 1010 "perly.y"
1151 { (yyval.opval) = newANONLIST((OP*)NULL);
1152 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1153 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1158 #line 1015 "perly.y"
1159 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1160 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1161 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1162 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1167 #line 1021 "perly.y"
1168 { (yyval.opval) = newANONHASH((OP*)NULL);
1169 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1170 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1171 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1176 #line 1027 "perly.y"
1177 { SvREFCNT_inc_simple_void(PL_compcv);
1178 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1179 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1180 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1181 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1186 #line 1038 "perly.y"
1187 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1188 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1193 #line 1042 "perly.y"
1194 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));
1195 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1200 #line 1046 "perly.y"
1201 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1202 OPf_SPECIAL|OPf_STACKED,
1203 op_prepend_elem(OP_LIST,
1205 (OPpENTERSUB_AMPER<<8),
1206 scalar((ps[(2) - (4)].val.opval))
1207 )),(OP*)NULL)); dep();
1208 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1209 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1210 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1215 #line 1058 "perly.y"
1216 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1217 OPf_SPECIAL|OPf_STACKED,
1218 op_append_elem(OP_LIST,
1219 (ps[(4) - (5)].val.opval),
1221 (OPpENTERSUB_AMPER<<8),
1222 scalar((ps[(2) - (5)].val.opval))
1224 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1225 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1226 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1231 #line 1071 "perly.y"
1232 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1233 op_prepend_elem(OP_LIST,
1234 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1235 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1236 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1237 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1242 #line 1079 "perly.y"
1243 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1244 op_prepend_elem(OP_LIST,
1245 (ps[(4) - (5)].val.opval),
1246 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1247 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1248 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1249 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1254 #line 1095 "perly.y"
1255 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1256 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1257 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1262 #line 1100 "perly.y"
1263 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN));
1264 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1269 #line 1104 "perly.y"
1270 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1274 #line 1106 "perly.y"
1275 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1276 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1281 #line 1110 "perly.y"
1282 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1283 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1284 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1289 #line 1115 "perly.y"
1290 { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
1294 #line 1117 "perly.y"
1295 { (yyval.opval) = sawparens(newNULLLIST());
1296 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1297 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1302 #line 1122 "perly.y"
1303 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1307 #line 1124 "perly.y"
1308 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1312 #line 1126 "perly.y"
1313 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1317 #line 1128 "perly.y"
1318 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1322 #line 1130 "perly.y"
1323 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1327 #line 1132 "perly.y"
1328 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1332 #line 1134 "perly.y"
1333 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1334 newOP(OP_PUSHMARK, 0),
1335 newLISTOP(OP_ASLICE, 0,
1336 list((ps[(3) - (4)].val.opval)),
1337 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1338 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1339 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1344 #line 1143 "perly.y"
1345 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1346 newOP(OP_PUSHMARK, 0),
1347 newLISTOP(OP_HSLICE, 0,
1348 list((ps[(3) - (5)].val.opval)),
1349 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1350 PL_parser->expect = XOPERATOR;
1351 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1352 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1353 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1358 #line 1154 "perly.y"
1359 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1363 #line 1156 "perly.y"
1364 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1368 #line 1158 "perly.y"
1369 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1370 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1371 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1376 #line 1163 "perly.y"
1378 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1379 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1381 OP* op = (yyval.opval);
1382 if (op->op_type == OP_CONST) { /* defeat const fold */
1383 op = (OP*)op->op_madprop->mad_val;
1385 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1386 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1392 #line 1176 "perly.y"
1393 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1394 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1395 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1400 #line 1181 "perly.y"
1401 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1402 PL_hints |= HINT_BLOCK_SCOPE;
1403 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1408 #line 1186 "perly.y"
1409 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1410 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1415 #line 1190 "perly.y"
1416 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1417 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1422 #line 1194 "perly.y"
1423 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1424 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1429 #line 1198 "perly.y"
1430 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1431 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1436 #line 1202 "perly.y"
1437 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1438 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1443 #line 1206 "perly.y"
1444 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1445 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1450 #line 1210 "perly.y"
1451 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1452 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1457 #line 1214 "perly.y"
1458 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1462 #line 1216 "perly.y"
1463 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1464 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1468 #line 1219 "perly.y"
1469 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1470 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1475 #line 1223 "perly.y"
1476 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1477 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1478 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1479 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1484 #line 1229 "perly.y"
1485 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1486 scalar((ps[(1) - (1)].val.opval))); ;}
1490 #line 1232 "perly.y"
1491 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1492 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1493 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1495 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1496 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1497 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1502 #line 1241 "perly.y"
1503 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1504 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1505 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1506 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1511 #line 1247 "perly.y"
1512 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1513 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1514 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1519 #line 1254 "perly.y"
1521 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1522 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1523 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1528 #line 1264 "perly.y"
1529 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1531 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1532 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1533 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1539 #line 1272 "perly.y"
1540 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1541 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1546 #line 1279 "perly.y"
1547 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1548 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1549 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1554 #line 1284 "perly.y"
1555 { (yyval.opval) = sawparens(newNULLLIST());
1556 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1557 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1562 #line 1289 "perly.y"
1563 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1567 #line 1291 "perly.y"
1568 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1572 #line 1293 "perly.y"
1573 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1577 #line 1298 "perly.y"
1578 { (yyval.opval) = (OP*)NULL; ;}
1582 #line 1300 "perly.y"
1583 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1587 #line 1304 "perly.y"
1588 { (yyval.opval) = (OP*)NULL; ;}
1592 #line 1306 "perly.y"
1593 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1597 #line 1310 "perly.y"
1598 { (yyval.i_tkval) = (ps[(1) - (1)].val.i_tkval); ;}
1602 #line 1312 "perly.y"
1603 { munge_qwlist_to_paren_list((ps[(1) - (1)].val.opval)); ;}
1607 #line 1314 "perly.y"
1608 { (yyval.i_tkval) = (ps[(3) - (3)].val.i_tkval); ;}
1612 #line 1320 "perly.y"
1613 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1617 #line 1324 "perly.y"
1618 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1619 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1624 #line 1330 "perly.y"
1625 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1626 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1631 #line 1336 "perly.y"
1632 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1633 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1638 #line 1342 "perly.y"
1639 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1640 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1645 #line 1348 "perly.y"
1646 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1647 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1652 #line 1354 "perly.y"
1653 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1654 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1659 #line 1361 "perly.y"
1660 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1664 #line 1363 "perly.y"
1665 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1669 #line 1365 "perly.y"
1670 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
1674 #line 1368 "perly.y"
1675 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1679 /* Line 1267 of yacc.c. */