3 { (yyval.ival) = (ps[(1) - (2)].val.ival); newPROG(block_end((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval))); ;}
8 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
9 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
10 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
11 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
12 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
18 { (yyval.ival) = block_start(TRUE); ;}
23 { (yyval.ival) = (I32) allocmy("$_"); ;}
29 PL_parser->expect = XSTATE; (yyval.ival) = block_start(TRUE);
35 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
36 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
37 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
38 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
39 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
45 { (yyval.ival) = block_start(FALSE); ;}
50 { (yyval.opval) = (OP*)NULL; ;}
56 (yyval.opval) = IF_MAD(
57 append_list(OP_LINESEQ,
58 (LISTOP*)(ps[(1) - (2)].val.opval), (LISTOP*)(ps[(2) - (2)].val.opval)),
59 (ps[(1) - (2)].val.opval));
65 { (yyval.opval) = append_list(OP_LINESEQ,
66 (LISTOP*)(ps[(1) - (2)].val.opval), (LISTOP*)(ps[(2) - (2)].val.opval));
67 PL_pad_reset_pending = TRUE;
68 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
69 PL_hints |= HINT_BLOCK_SCOPE;
75 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
76 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
81 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
86 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
92 if (PVAL((ps[(1) - (2)].val.p_tkval))) {
93 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), newOP(OP_NULL, 0));
94 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),(yyval.opval),'L');
95 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first,';');
98 (yyval.opval) = IF_MAD(
101 PL_parser->copline = NOLINE;
102 TOKEN_FREE((ps[(1) - (2)].val.p_tkval));
103 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
105 PL_parser->expect = XSTATE;
112 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)), (ps[(2) - (3)].val.opval));
113 PL_parser->expect = XSTATE;
115 /* sideff might already have a nexstate */
116 OP* op = ((LISTOP*)(yyval.opval))->op_first;
118 while (op->op_sibling &&
119 op->op_sibling->op_type == OP_NEXTSTATE)
121 token_getmad((ps[(1) - (3)].val.p_tkval),op,'L');
122 token_getmad((ps[(3) - (3)].val.i_tkval),op,';');
130 { (yyval.opval) = (OP*)NULL; ;}
135 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
140 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
141 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
147 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
148 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
154 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
155 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
161 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
162 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
168 { (yyval.opval) = newFOROP(0, NULL, (line_t)IVAL((ps[(2) - (3)].val.i_tkval)),
169 (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
170 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first->op_sibling,'w');
176 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), scope((ps[(1) - (3)].val.opval))); ;}
181 { (yyval.opval) = (OP*)NULL; ;}
186 { ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = scope((ps[(2) - (2)].val.opval));
187 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
193 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
194 (yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)), scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
195 PL_hints |= HINT_BLOCK_SCOPE;
196 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
197 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
198 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
204 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
205 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
206 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
207 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
208 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
209 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
215 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
216 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
217 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
218 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
219 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
220 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
226 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
227 newWHENOP((ps[(4) - (6)].val.opval), scope((ps[(6) - (6)].val.opval)))); ;}
232 { (yyval.opval) = newWHENOP(0, scope((ps[(2) - (2)].val.opval))); ;}
237 { (yyval.opval) = (OP*)NULL; ;}
242 { (yyval.opval) = scope((ps[(2) - (2)].val.opval));
243 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
250 PL_parser->copline = (line_t)(ps[(2) - (9)].val.i_tkval);
251 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
252 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
253 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
254 IVAL((ps[(2) - (9)].val.i_tkval)), (ps[(5) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval), (ps[(7) - (9)].val.ival))));
255 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
256 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
257 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
258 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
265 PL_parser->copline = (line_t)(ps[(2) - (9)].val.i_tkval);
266 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
267 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
268 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
269 IVAL((ps[(2) - (9)].val.i_tkval)), (ps[(5) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval), (ps[(7) - (9)].val.ival))));
270 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
271 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
272 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
273 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
280 (yyval.opval) = block_end((ps[(4) - (10)].val.ival),
281 innerop = newFOROP(0, PVAL((ps[(1) - (10)].val.p_tkval)), (line_t)IVAL((ps[(2) - (10)].val.i_tkval)),
282 (ps[(5) - (10)].val.opval), (ps[(7) - (10)].val.opval), (ps[(9) - (10)].val.opval), (ps[(10) - (10)].val.opval)));
283 TOKEN_GETMAD((ps[(1) - (10)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
284 TOKEN_GETMAD((ps[(2) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
285 TOKEN_GETMAD((ps[(3) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'d');
286 TOKEN_GETMAD((ps[(6) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
287 TOKEN_GETMAD((ps[(8) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
294 (yyval.opval) = block_end((ps[(5) - (9)].val.ival),
295 innerop = newFOROP(0, PVAL((ps[(1) - (9)].val.p_tkval)), (line_t)IVAL((ps[(2) - (9)].val.i_tkval)),
296 mod((ps[(3) - (9)].val.opval), OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
297 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
298 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
299 TOKEN_GETMAD((ps[(4) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
300 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
307 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
308 innerop = newFOROP(0, PVAL((ps[(1) - (8)].val.p_tkval)), (line_t)IVAL((ps[(2) - (8)].val.i_tkval)),
309 (OP*)NULL, (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
310 TOKEN_GETMAD((ps[(1) - (8)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
311 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
312 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
313 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
320 PL_parser->copline = (line_t)IVAL((ps[(2) - (12)].val.i_tkval));
321 forop = newSTATEOP(0, PVAL((ps[(1) - (12)].val.p_tkval)),
322 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
323 IVAL((ps[(2) - (12)].val.i_tkval)), scalar((ps[(7) - (12)].val.opval)),
324 (ps[(12) - (12)].val.opval), (ps[(10) - (12)].val.opval), (ps[(9) - (12)].val.ival)));
326 forop = newUNOP(OP_NULL, 0, append_elem(OP_LINESEQ,
328 CopLABEL_alloc(((ps[(1) - (12)].val.p_tkval))->tk_lval.pval),
329 ((ps[(5) - (12)].val.opval) ? (ps[(5) - (12)].val.opval) : newOP(OP_NULL, 0)) ),
332 token_getmad((ps[(2) - (12)].val.i_tkval),forop,'3');
333 token_getmad((ps[(3) - (12)].val.i_tkval),forop,'(');
334 token_getmad((ps[(6) - (12)].val.i_tkval),forop,'1');
335 token_getmad((ps[(8) - (12)].val.i_tkval),forop,'2');
336 token_getmad((ps[(11) - (12)].val.i_tkval),forop,')');
337 token_getmad((ps[(1) - (12)].val.p_tkval),forop,'L');
339 if ((ps[(5) - (12)].val.opval)) {
340 forop = append_elem(OP_LINESEQ,
341 newSTATEOP(0, CopLABEL_alloc((ps[(1) - (12)].val.p_tkval)), (ps[(5) - (12)].val.opval)),
347 (yyval.opval) = block_end((ps[(4) - (12)].val.ival), forop); ;}
352 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)),
353 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
354 NOLINE, (OP*)NULL, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval), 0));
355 TOKEN_GETMAD((ps[(1) - (3)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
360 { PL_parser->copline = (line_t) (ps[(2) - (8)].val.i_tkval);
361 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
362 newSTATEOP(0, PVAL((ps[(1) - (8)].val.p_tkval)),
363 newGIVENOP((ps[(6) - (8)].val.opval), scope((ps[(8) - (8)].val.opval)),
364 (PADOFFSET) (ps[(5) - (8)].val.ival)) )); ;}
369 { (yyval.ival) = (PL_min_intro_pending &&
370 PL_max_intro_pending >= PL_min_intro_pending);
376 { (yyval.opval) = (OP*)NULL; ;}
382 (void)scan_num("1", &tmplval);
383 (yyval.opval) = tmplval.opval; ;}
388 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
393 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
398 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
403 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
412 (yyval.p_tkval) = newTOKEN(OP_NULL, tmplval, 0);
414 (yyval.p_tkval) = NULL;
421 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
426 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
431 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
436 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
441 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
446 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
451 { (yyval.opval) = newOP(OP_NULL,0);
452 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
458 { SvREFCNT_inc_simple_void(PL_compcv);
460 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
461 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
462 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
463 token_free((ps[(1) - (4)].val.i_tkval));
465 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
466 (yyval.opval) = (OP*)NULL;
473 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
478 { (yyval.opval) = (OP*)NULL; ;}
483 { SvREFCNT_inc_simple_void(PL_compcv);
485 (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));
486 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
488 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));
489 (yyval.opval) = (OP*)NULL;
496 { SvREFCNT_inc_simple_void(PL_compcv);
499 OP* o = newSVOP(OP_ANONCODE, 0,
500 (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)));
501 (yyval.opval) = newOP(OP_NULL,0);
502 op_getmad(o,(yyval.opval),'&');
503 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
504 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
505 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
506 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
507 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
508 (ps[(6) - (6)].val.opval)->op_madprop = 0;
511 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));
512 (yyval.opval) = (OP*)NULL;
519 { (yyval.ival) = start_subparse(FALSE, 0);
520 SAVEFREESV(PL_compcv); ;}
525 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
526 SAVEFREESV(PL_compcv); ;}
531 { (yyval.ival) = start_subparse(TRUE, 0);
532 SAVEFREESV(PL_compcv); ;}
537 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
538 if (strEQ(name, "BEGIN") || strEQ(name, "END")
539 || strEQ(name, "INIT") || strEQ(name, "CHECK")
540 || strEQ(name, "UNITCHECK"))
541 CvSPECIAL_on(PL_compcv);
542 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
547 { (yyval.opval) = (OP*)NULL; ;}
552 { (yyval.opval) = (OP*)NULL; ;}
557 { (yyval.opval) = (ps[(2) - (2)].val.opval);
558 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
564 { (yyval.opval) = IF_MAD(
568 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
574 { (yyval.opval) = (ps[(2) - (2)].val.opval);
575 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
581 { (yyval.opval) = IF_MAD(
585 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
591 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
596 { (yyval.opval) = IF_MAD(
600 PL_parser->expect = XSTATE;
601 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
609 (yyval.opval) = package((ps[(2) - (3)].val.opval));
610 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
611 token_getmad((ps[(3) - (3)].val.i_tkval),(yyval.opval),';');
613 package((ps[(2) - (3)].val.opval));
614 (yyval.opval) = (OP*)NULL;
621 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
626 { SvREFCNT_inc_simple_void(PL_compcv);
628 (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));
629 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
630 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
631 if (PL_parser->rsfp_filters &&
632 AvFILLp(PL_parser->rsfp_filters) >= 0)
633 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
635 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));
636 (yyval.opval) = (OP*)NULL;
643 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
644 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
650 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
651 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
657 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
658 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
666 OP* op = newNULLLIST();
667 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
668 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
670 (yyval.opval) = (ps[(1) - (2)].val.opval);
678 OP* term = (ps[(3) - (3)].val.opval);
680 term = newUNOP(OP_NULL, 0, term);
681 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
683 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
689 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
690 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
691 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
697 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
698 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
699 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
700 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
701 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
707 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
709 prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
710 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
711 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
712 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
713 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
719 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
720 append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
721 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
722 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
728 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
730 prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
731 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
737 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
739 prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
740 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
741 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
742 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
748 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
749 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
755 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
756 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
757 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
758 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
764 { SvREFCNT_inc_simple_void(PL_compcv);
765 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
770 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
772 prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
778 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
779 PL_parser->expect = XOPERATOR;
780 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
781 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
782 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
788 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
789 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
790 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
796 { (yyval.opval) = newBINOP(OP_AELEM, 0,
797 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
798 scalar((ps[(4) - (5)].val.opval)));
799 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
800 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
801 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
807 { (yyval.opval) = newBINOP(OP_AELEM, 0,
808 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
809 scalar((ps[(3) - (4)].val.opval)));
810 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
811 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
817 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
818 PL_parser->expect = XOPERATOR;
819 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
820 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
821 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
827 { (yyval.opval) = newBINOP(OP_HELEM, 0,
828 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
829 jmaybe((ps[(4) - (6)].val.opval)));
830 PL_parser->expect = XOPERATOR;
831 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
832 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
833 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
834 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
840 { (yyval.opval) = newBINOP(OP_HELEM, 0,
841 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
842 jmaybe((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) = newUNOP(OP_ENTERSUB, OPf_STACKED,
853 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
854 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
855 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
856 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
862 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
863 append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
864 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
865 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
866 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
867 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
873 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
874 append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
875 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
876 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
877 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
883 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
884 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
885 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
886 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
892 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
893 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
894 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
895 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
896 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
902 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
903 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
904 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
905 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
906 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
912 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
913 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
919 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
920 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
926 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
927 scalar((ps[(1) - (3)].val.opval));
928 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
929 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
935 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
936 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
942 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
943 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
949 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
950 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
956 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
957 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
963 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
964 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
970 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
971 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
978 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
981 op = (UNOP*)(yyval.opval);
982 op = (UNOP*)op->op_first; /* get to flop */
983 op = (UNOP*)op->op_first; /* get to flip */
984 op = (UNOP*)op->op_first; /* get to range */
985 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
992 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
993 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
999 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1000 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1006 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1007 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1013 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1014 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1015 ((yyval.opval)->op_type == OP_NOT
1016 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1023 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1024 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1030 { (yyval.opval) = IF_MAD(
1031 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1032 (ps[(2) - (2)].val.opval)
1034 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1040 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1041 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1047 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1048 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1054 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1055 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1056 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1062 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1063 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1064 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1070 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1071 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1072 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1078 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1079 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1080 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1086 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1087 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1088 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1094 { (yyval.opval) = newANONLIST((OP*)NULL);
1095 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1096 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1101 #line 1001 "perly.y"
1102 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1103 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1104 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1105 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1110 #line 1007 "perly.y"
1111 { (yyval.opval) = newANONHASH((OP*)NULL);
1112 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1113 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1114 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1119 #line 1013 "perly.y"
1120 { SvREFCNT_inc_simple_void(PL_compcv);
1121 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1122 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1123 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1124 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1129 #line 1024 "perly.y"
1130 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1131 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1136 #line 1028 "perly.y"
1137 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
1138 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1143 #line 1032 "perly.y"
1144 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1145 OPf_SPECIAL|OPf_STACKED,
1146 prepend_elem(OP_LIST,
1148 (OPpENTERSUB_AMPER<<8),
1149 scalar((ps[(2) - (4)].val.opval))
1150 )),(OP*)NULL)); dep();
1151 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1152 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1153 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1158 #line 1044 "perly.y"
1159 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1160 OPf_SPECIAL|OPf_STACKED,
1161 append_elem(OP_LIST,
1162 (ps[(4) - (5)].val.opval),
1164 (OPpENTERSUB_AMPER<<8),
1165 scalar((ps[(2) - (5)].val.opval))
1167 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1168 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1169 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1174 #line 1057 "perly.y"
1175 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1176 prepend_elem(OP_LIST,
1177 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1178 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1179 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1180 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1185 #line 1065 "perly.y"
1186 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1187 prepend_elem(OP_LIST,
1188 (ps[(4) - (5)].val.opval),
1189 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1190 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1191 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1192 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1197 #line 1081 "perly.y"
1198 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1199 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1200 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1205 #line 1086 "perly.y"
1206 { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
1207 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1212 #line 1090 "perly.y"
1213 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1217 #line 1092 "perly.y"
1218 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1219 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1224 #line 1096 "perly.y"
1225 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1226 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1227 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1232 #line 1101 "perly.y"
1233 { (yyval.opval) = sawparens(newNULLLIST());
1234 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1235 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1240 #line 1106 "perly.y"
1241 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1245 #line 1108 "perly.y"
1246 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1250 #line 1110 "perly.y"
1251 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1255 #line 1112 "perly.y"
1256 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1260 #line 1114 "perly.y"
1261 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1265 #line 1116 "perly.y"
1266 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1270 #line 1118 "perly.y"
1271 { (yyval.opval) = prepend_elem(OP_ASLICE,
1272 newOP(OP_PUSHMARK, 0),
1273 newLISTOP(OP_ASLICE, 0,
1274 list((ps[(3) - (4)].val.opval)),
1275 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1276 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1277 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1282 #line 1127 "perly.y"
1283 { (yyval.opval) = prepend_elem(OP_HSLICE,
1284 newOP(OP_PUSHMARK, 0),
1285 newLISTOP(OP_HSLICE, 0,
1286 list((ps[(3) - (5)].val.opval)),
1287 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1288 PL_parser->expect = XOPERATOR;
1289 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1290 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1291 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1296 #line 1138 "perly.y"
1297 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1301 #line 1140 "perly.y"
1302 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1306 #line 1142 "perly.y"
1307 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1308 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1309 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1314 #line 1147 "perly.y"
1316 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1317 append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1319 OP* op = (yyval.opval);
1320 if (op->op_type == OP_CONST) { /* defeat const fold */
1321 op = (OP*)op->op_madprop->mad_val;
1323 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1324 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1330 #line 1160 "perly.y"
1331 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1332 append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1333 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1338 #line 1165 "perly.y"
1339 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1340 PL_hints |= HINT_BLOCK_SCOPE;
1341 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1346 #line 1170 "perly.y"
1347 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1348 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1353 #line 1174 "perly.y"
1354 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1355 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1360 #line 1178 "perly.y"
1361 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1362 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1367 #line 1182 "perly.y"
1368 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1369 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1374 #line 1186 "perly.y"
1375 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1376 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1381 #line 1190 "perly.y"
1382 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1383 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1388 #line 1194 "perly.y"
1389 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1390 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1395 #line 1198 "perly.y"
1396 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1400 #line 1200 "perly.y"
1401 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1402 append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1406 #line 1203 "perly.y"
1407 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1408 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1413 #line 1207 "perly.y"
1414 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1415 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1416 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1417 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1422 #line 1213 "perly.y"
1423 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1424 scalar((ps[(1) - (1)].val.opval))); ;}
1428 #line 1216 "perly.y"
1429 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1430 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1431 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1433 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1434 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1435 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1440 #line 1225 "perly.y"
1441 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1442 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1443 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1444 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1449 #line 1231 "perly.y"
1450 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1451 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1452 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1457 #line 1238 "perly.y"
1459 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1460 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1461 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1466 #line 1247 "perly.y"
1467 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1469 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1470 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1471 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1477 #line 1255 "perly.y"
1478 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1479 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1484 #line 1262 "perly.y"
1485 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1486 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1487 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1492 #line 1267 "perly.y"
1493 { (yyval.opval) = sawparens(newNULLLIST());
1494 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1495 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1500 #line 1272 "perly.y"
1501 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1505 #line 1274 "perly.y"
1506 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1510 #line 1276 "perly.y"
1511 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1515 #line 1281 "perly.y"
1516 { (yyval.opval) = (OP*)NULL; ;}
1520 #line 1283 "perly.y"
1521 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1525 #line 1287 "perly.y"
1526 { (yyval.opval) = (OP*)NULL; ;}
1530 #line 1289 "perly.y"
1531 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1535 #line 1291 "perly.y"
1538 OP* op = newNULLLIST();
1539 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
1540 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
1542 (yyval.opval) = (ps[(1) - (2)].val.opval);
1549 #line 1306 "perly.y"
1550 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1554 #line 1310 "perly.y"
1555 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1556 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1561 #line 1316 "perly.y"
1562 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1563 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1568 #line 1322 "perly.y"
1569 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1570 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1575 #line 1328 "perly.y"
1576 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1577 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1582 #line 1334 "perly.y"
1583 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1584 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1589 #line 1340 "perly.y"
1590 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1591 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1596 #line 1347 "perly.y"
1597 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1601 #line 1349 "perly.y"
1602 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1606 #line 1351 "perly.y"
1607 { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
1611 #line 1354 "perly.y"
1612 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}