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[(3) - (4)].val.opval));
610 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
611 if ((ps[(2) - (4)].val.opval))
612 package_version((ps[(2) - (4)].val.opval));
613 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
615 package((ps[(3) - (4)].val.opval));
616 if ((ps[(2) - (4)].val.opval))
617 package_version((ps[(2) - (4)].val.opval));
618 (yyval.opval) = (OP*)NULL;
625 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
630 { SvREFCNT_inc_simple_void(PL_compcv);
632 (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));
633 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
634 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
635 if (PL_parser->rsfp_filters &&
636 AvFILLp(PL_parser->rsfp_filters) >= 0)
637 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
639 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));
640 (yyval.opval) = (OP*)NULL;
647 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
648 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
654 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
655 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
661 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
662 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
670 OP* op = newNULLLIST();
671 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
672 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
674 (yyval.opval) = (ps[(1) - (2)].val.opval);
682 OP* term = (ps[(3) - (3)].val.opval);
684 term = newUNOP(OP_NULL, 0, term);
685 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
687 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
693 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
694 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
695 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
701 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
702 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
703 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
704 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
705 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
711 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
713 prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
714 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
715 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
716 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
717 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
723 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
724 append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
725 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
726 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
732 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
734 prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
735 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
741 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
743 prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
744 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
745 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
746 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
752 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
753 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
759 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
760 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
761 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
762 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
768 { SvREFCNT_inc_simple_void(PL_compcv);
769 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
774 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
776 prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
782 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
783 PL_parser->expect = XOPERATOR;
784 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
785 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
786 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
792 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
793 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
794 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
800 { (yyval.opval) = newBINOP(OP_AELEM, 0,
801 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
802 scalar((ps[(4) - (5)].val.opval)));
803 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
804 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
805 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
811 { (yyval.opval) = newBINOP(OP_AELEM, 0,
812 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
813 scalar((ps[(3) - (4)].val.opval)));
814 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
815 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
821 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
822 PL_parser->expect = XOPERATOR;
823 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
824 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
825 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
831 { (yyval.opval) = newBINOP(OP_HELEM, 0,
832 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
833 jmaybe((ps[(4) - (6)].val.opval)));
834 PL_parser->expect = XOPERATOR;
835 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
836 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
837 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
838 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
844 { (yyval.opval) = newBINOP(OP_HELEM, 0,
845 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
846 jmaybe((ps[(3) - (5)].val.opval)));
847 PL_parser->expect = XOPERATOR;
848 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
849 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
850 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
856 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
857 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
858 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
859 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
860 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
866 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
867 append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
868 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
869 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
870 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
871 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
877 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
878 append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
879 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
880 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
881 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
887 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
888 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
889 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
890 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
896 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
897 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
898 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
899 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
900 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
906 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
907 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
908 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
909 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
910 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
916 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
917 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
923 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
924 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
930 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
931 scalar((ps[(1) - (3)].val.opval));
932 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
933 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
939 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
940 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
946 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
947 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
953 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
954 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
960 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
961 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
967 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
968 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
974 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
975 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
982 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
985 op = (UNOP*)(yyval.opval);
986 op = (UNOP*)op->op_first; /* get to flop */
987 op = (UNOP*)op->op_first; /* get to flip */
988 op = (UNOP*)op->op_first; /* get to range */
989 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
996 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
997 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1003 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1004 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1010 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1011 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1017 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1018 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1019 ((yyval.opval)->op_type == OP_NOT
1020 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1027 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1028 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1034 { (yyval.opval) = IF_MAD(
1035 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1036 (ps[(2) - (2)].val.opval)
1038 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1044 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1045 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1051 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1052 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1058 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1059 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1060 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1066 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1067 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1068 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1074 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1075 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1076 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1082 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1083 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1084 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1090 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1091 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1092 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1097 #line 1000 "perly.y"
1098 { (yyval.opval) = newANONLIST((OP*)NULL);
1099 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1100 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1105 #line 1005 "perly.y"
1106 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1107 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1108 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1109 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1114 #line 1011 "perly.y"
1115 { (yyval.opval) = newANONHASH((OP*)NULL);
1116 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1117 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1118 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1123 #line 1017 "perly.y"
1124 { SvREFCNT_inc_simple_void(PL_compcv);
1125 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1126 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1127 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1128 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1133 #line 1028 "perly.y"
1134 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1135 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1140 #line 1032 "perly.y"
1141 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
1142 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1147 #line 1036 "perly.y"
1148 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1149 OPf_SPECIAL|OPf_STACKED,
1150 prepend_elem(OP_LIST,
1152 (OPpENTERSUB_AMPER<<8),
1153 scalar((ps[(2) - (4)].val.opval))
1154 )),(OP*)NULL)); dep();
1155 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1156 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1157 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1162 #line 1048 "perly.y"
1163 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1164 OPf_SPECIAL|OPf_STACKED,
1165 append_elem(OP_LIST,
1166 (ps[(4) - (5)].val.opval),
1168 (OPpENTERSUB_AMPER<<8),
1169 scalar((ps[(2) - (5)].val.opval))
1171 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1172 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1173 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1178 #line 1061 "perly.y"
1179 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1180 prepend_elem(OP_LIST,
1181 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1182 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1183 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1184 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1189 #line 1069 "perly.y"
1190 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1191 prepend_elem(OP_LIST,
1192 (ps[(4) - (5)].val.opval),
1193 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1194 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1195 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1196 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1201 #line 1085 "perly.y"
1202 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1203 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1204 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1209 #line 1090 "perly.y"
1210 { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
1211 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1216 #line 1094 "perly.y"
1217 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1221 #line 1096 "perly.y"
1222 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1223 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1228 #line 1100 "perly.y"
1229 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1230 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1231 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1236 #line 1105 "perly.y"
1237 { (yyval.opval) = sawparens(newNULLLIST());
1238 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1239 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1244 #line 1110 "perly.y"
1245 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1249 #line 1112 "perly.y"
1250 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1254 #line 1114 "perly.y"
1255 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1259 #line 1116 "perly.y"
1260 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1264 #line 1118 "perly.y"
1265 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1269 #line 1120 "perly.y"
1270 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1274 #line 1122 "perly.y"
1275 { (yyval.opval) = prepend_elem(OP_ASLICE,
1276 newOP(OP_PUSHMARK, 0),
1277 newLISTOP(OP_ASLICE, 0,
1278 list((ps[(3) - (4)].val.opval)),
1279 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1280 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1281 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1286 #line 1131 "perly.y"
1287 { (yyval.opval) = prepend_elem(OP_HSLICE,
1288 newOP(OP_PUSHMARK, 0),
1289 newLISTOP(OP_HSLICE, 0,
1290 list((ps[(3) - (5)].val.opval)),
1291 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1292 PL_parser->expect = XOPERATOR;
1293 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1294 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1295 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1300 #line 1142 "perly.y"
1301 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1305 #line 1144 "perly.y"
1306 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1310 #line 1146 "perly.y"
1311 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1312 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1313 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1318 #line 1151 "perly.y"
1320 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1321 append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1323 OP* op = (yyval.opval);
1324 if (op->op_type == OP_CONST) { /* defeat const fold */
1325 op = (OP*)op->op_madprop->mad_val;
1327 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1328 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1334 #line 1164 "perly.y"
1335 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1336 append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1337 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1342 #line 1169 "perly.y"
1343 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1344 PL_hints |= HINT_BLOCK_SCOPE;
1345 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1350 #line 1174 "perly.y"
1351 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1352 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1357 #line 1178 "perly.y"
1358 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1359 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1364 #line 1182 "perly.y"
1365 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1366 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1371 #line 1186 "perly.y"
1372 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1373 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1378 #line 1190 "perly.y"
1379 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1380 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1385 #line 1194 "perly.y"
1386 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1387 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1392 #line 1198 "perly.y"
1393 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1394 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1399 #line 1202 "perly.y"
1400 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1404 #line 1204 "perly.y"
1405 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1406 append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1410 #line 1207 "perly.y"
1411 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1412 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1417 #line 1211 "perly.y"
1418 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1419 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1420 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1421 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1426 #line 1217 "perly.y"
1427 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1428 scalar((ps[(1) - (1)].val.opval))); ;}
1432 #line 1220 "perly.y"
1433 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1434 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1435 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1437 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1438 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1439 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1444 #line 1229 "perly.y"
1445 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1446 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1447 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1448 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1453 #line 1235 "perly.y"
1454 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1455 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1456 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1461 #line 1242 "perly.y"
1463 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1464 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1465 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1470 #line 1251 "perly.y"
1471 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1473 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1474 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1475 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1481 #line 1259 "perly.y"
1482 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1483 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1488 #line 1266 "perly.y"
1489 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1490 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1491 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1496 #line 1271 "perly.y"
1497 { (yyval.opval) = sawparens(newNULLLIST());
1498 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1499 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1504 #line 1276 "perly.y"
1505 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1509 #line 1278 "perly.y"
1510 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1514 #line 1280 "perly.y"
1515 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1519 #line 1285 "perly.y"
1520 { (yyval.opval) = (OP*)NULL; ;}
1524 #line 1287 "perly.y"
1525 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1529 #line 1291 "perly.y"
1530 { (yyval.opval) = (OP*)NULL; ;}
1534 #line 1293 "perly.y"
1535 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1539 #line 1295 "perly.y"
1542 OP* op = newNULLLIST();
1543 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
1544 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
1546 (yyval.opval) = (ps[(1) - (2)].val.opval);
1553 #line 1310 "perly.y"
1554 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1558 #line 1314 "perly.y"
1559 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1560 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1565 #line 1320 "perly.y"
1566 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1567 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1572 #line 1326 "perly.y"
1573 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1574 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1579 #line 1332 "perly.y"
1580 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1581 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1586 #line 1338 "perly.y"
1587 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1588 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1593 #line 1344 "perly.y"
1594 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1595 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1600 #line 1351 "perly.y"
1601 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1605 #line 1353 "perly.y"
1606 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1610 #line 1355 "perly.y"
1611 { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
1615 #line 1358 "perly.y"
1616 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1620 /* Line 1267 of yacc.c. */