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),';');
608 package((ps[(3) - (4)].val.opval));
609 if ((ps[(2) - (4)].val.opval)) {
610 package_version((ps[(2) - (4)].val.opval));
612 (yyval.opval) = (OP*)NULL;
618 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
623 { SvREFCNT_inc_simple_void(PL_compcv);
625 (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));
626 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
627 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
628 if (PL_parser->rsfp_filters &&
629 AvFILLp(PL_parser->rsfp_filters) >= 0)
630 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
632 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 (yyval.opval) = (OP*)NULL;
640 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
641 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
647 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 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(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
655 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
663 OP* op = newNULLLIST();
664 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
665 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
667 (yyval.opval) = (ps[(1) - (2)].val.opval);
675 OP* term = (ps[(3) - (3)].val.opval);
677 term = newUNOP(OP_NULL, 0, term);
678 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
680 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
686 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
687 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
688 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
694 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
695 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
696 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
697 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
698 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
704 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
706 prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
707 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
708 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
709 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
710 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
716 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
717 append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
718 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
719 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
725 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
727 prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
728 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
734 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
736 prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
737 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
738 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
739 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
745 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
746 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
752 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
753 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
754 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
755 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
761 { SvREFCNT_inc_simple_void(PL_compcv);
762 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
767 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
769 prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
775 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
776 PL_parser->expect = XOPERATOR;
777 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
778 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
779 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
785 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
786 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
787 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
793 { (yyval.opval) = newBINOP(OP_AELEM, 0,
794 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
795 scalar((ps[(4) - (5)].val.opval)));
796 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
797 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
798 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
804 { (yyval.opval) = newBINOP(OP_AELEM, 0,
805 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
806 scalar((ps[(3) - (4)].val.opval)));
807 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
808 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
814 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
815 PL_parser->expect = XOPERATOR;
816 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
817 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
818 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
824 { (yyval.opval) = newBINOP(OP_HELEM, 0,
825 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
826 jmaybe((ps[(4) - (6)].val.opval)));
827 PL_parser->expect = XOPERATOR;
828 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
829 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
830 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
831 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
837 { (yyval.opval) = newBINOP(OP_HELEM, 0,
838 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
839 jmaybe((ps[(3) - (5)].val.opval)));
840 PL_parser->expect = XOPERATOR;
841 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
842 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
843 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
849 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
850 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
851 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
852 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
853 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
859 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
860 append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
861 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
862 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
863 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
864 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
870 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
871 append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
872 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
873 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
874 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
880 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
881 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
882 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
883 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
889 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
890 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
891 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
892 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
893 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
899 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
900 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
901 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
902 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
903 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
909 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
910 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
916 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
917 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
923 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
924 scalar((ps[(1) - (3)].val.opval));
925 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
926 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
932 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((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');
975 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
978 op = (UNOP*)(yyval.opval);
979 op = (UNOP*)op->op_first; /* get to flop */
980 op = (UNOP*)op->op_first; /* get to flip */
981 op = (UNOP*)op->op_first; /* get to range */
982 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
989 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
990 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
996 { (yyval.opval) = newLOGOP(OP_OR, 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_DOR, 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) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1011 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
1012 ((yyval.opval)->op_type == OP_NOT
1013 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1020 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1021 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1027 { (yyval.opval) = IF_MAD(
1028 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1029 (ps[(2) - (2)].val.opval)
1031 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
1037 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1038 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1044 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1045 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1051 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1052 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1053 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1059 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1060 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1061 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
1067 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1068 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1069 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1075 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1076 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1077 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1083 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1084 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1085 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
1091 { (yyval.opval) = newANONLIST((OP*)NULL);
1092 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1093 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
1099 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1100 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1101 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1102 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
1107 #line 1004 "perly.y"
1108 { (yyval.opval) = newANONHASH((OP*)NULL);
1109 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1110 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1111 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
1116 #line 1010 "perly.y"
1117 { SvREFCNT_inc_simple_void(PL_compcv);
1118 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1119 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1120 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1121 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
1126 #line 1021 "perly.y"
1127 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1128 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1133 #line 1025 "perly.y"
1134 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
1135 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
1140 #line 1029 "perly.y"
1141 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1142 OPf_SPECIAL|OPf_STACKED,
1143 prepend_elem(OP_LIST,
1145 (OPpENTERSUB_AMPER<<8),
1146 scalar((ps[(2) - (4)].val.opval))
1147 )),(OP*)NULL)); dep();
1148 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1149 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1150 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1155 #line 1041 "perly.y"
1156 { (yyval.opval) = newUNOP(OP_ENTERSUB,
1157 OPf_SPECIAL|OPf_STACKED,
1158 append_elem(OP_LIST,
1159 (ps[(4) - (5)].val.opval),
1161 (OPpENTERSUB_AMPER<<8),
1162 scalar((ps[(2) - (5)].val.opval))
1164 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1165 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1166 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1171 #line 1054 "perly.y"
1172 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1173 prepend_elem(OP_LIST,
1174 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1175 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1176 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1177 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1182 #line 1062 "perly.y"
1183 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1184 prepend_elem(OP_LIST,
1185 (ps[(4) - (5)].val.opval),
1186 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1187 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1188 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1189 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
1194 #line 1078 "perly.y"
1195 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1196 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1197 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
1202 #line 1083 "perly.y"
1203 { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
1204 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1209 #line 1087 "perly.y"
1210 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1214 #line 1089 "perly.y"
1215 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1216 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
1221 #line 1093 "perly.y"
1222 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1223 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1224 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1229 #line 1098 "perly.y"
1230 { (yyval.opval) = sawparens(newNULLLIST());
1231 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1232 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1237 #line 1103 "perly.y"
1238 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1242 #line 1105 "perly.y"
1243 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1247 #line 1107 "perly.y"
1248 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1252 #line 1109 "perly.y"
1253 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1257 #line 1111 "perly.y"
1258 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
1262 #line 1113 "perly.y"
1263 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1267 #line 1115 "perly.y"
1268 { (yyval.opval) = prepend_elem(OP_ASLICE,
1269 newOP(OP_PUSHMARK, 0),
1270 newLISTOP(OP_ASLICE, 0,
1271 list((ps[(3) - (4)].val.opval)),
1272 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1273 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1274 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
1279 #line 1124 "perly.y"
1280 { (yyval.opval) = prepend_elem(OP_HSLICE,
1281 newOP(OP_PUSHMARK, 0),
1282 newLISTOP(OP_HSLICE, 0,
1283 list((ps[(3) - (5)].val.opval)),
1284 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1285 PL_parser->expect = XOPERATOR;
1286 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1287 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1288 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
1293 #line 1135 "perly.y"
1294 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1298 #line 1137 "perly.y"
1299 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
1303 #line 1139 "perly.y"
1304 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1305 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1306 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1311 #line 1144 "perly.y"
1313 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1314 append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1316 OP* op = (yyval.opval);
1317 if (op->op_type == OP_CONST) { /* defeat const fold */
1318 op = (OP*)op->op_madprop->mad_val;
1320 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1321 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
1327 #line 1157 "perly.y"
1328 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1329 append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1330 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1335 #line 1162 "perly.y"
1336 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
1337 PL_hints |= HINT_BLOCK_SCOPE;
1338 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1343 #line 1167 "perly.y"
1344 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1345 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1350 #line 1171 "perly.y"
1351 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1352 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1357 #line 1175 "perly.y"
1358 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1359 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1364 #line 1179 "perly.y"
1365 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1366 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1371 #line 1183 "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 1187 "perly.y"
1379 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1380 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1385 #line 1191 "perly.y"
1386 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1387 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1392 #line 1195 "perly.y"
1393 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1397 #line 1197 "perly.y"
1398 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1399 append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
1403 #line 1200 "perly.y"
1404 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1405 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1410 #line 1204 "perly.y"
1411 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1412 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1413 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1414 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1419 #line 1210 "perly.y"
1420 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1421 scalar((ps[(1) - (1)].val.opval))); ;}
1425 #line 1213 "perly.y"
1426 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1427 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1428 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
1430 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1431 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1432 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1437 #line 1222 "perly.y"
1438 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1439 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1440 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1441 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1446 #line 1228 "perly.y"
1447 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1448 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1449 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
1454 #line 1235 "perly.y"
1456 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1457 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1458 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
1463 #line 1244 "perly.y"
1464 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
1466 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1467 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1468 (ps[(3) - (3)].val.opval)->op_madprop = 0;
1474 #line 1252 "perly.y"
1475 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1476 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
1481 #line 1259 "perly.y"
1482 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1483 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1484 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
1489 #line 1264 "perly.y"
1490 { (yyval.opval) = sawparens(newNULLLIST());
1491 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1492 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
1497 #line 1269 "perly.y"
1498 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1502 #line 1271 "perly.y"
1503 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1507 #line 1273 "perly.y"
1508 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1512 #line 1278 "perly.y"
1513 { (yyval.opval) = (OP*)NULL; ;}
1517 #line 1280 "perly.y"
1518 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1522 #line 1284 "perly.y"
1523 { (yyval.opval) = (OP*)NULL; ;}
1527 #line 1286 "perly.y"
1528 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1532 #line 1288 "perly.y"
1535 OP* op = newNULLLIST();
1536 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
1537 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
1539 (yyval.opval) = (ps[(1) - (2)].val.opval);
1546 #line 1303 "perly.y"
1547 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1551 #line 1307 "perly.y"
1552 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1553 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
1558 #line 1313 "perly.y"
1559 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1560 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
1565 #line 1319 "perly.y"
1566 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1567 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
1572 #line 1325 "perly.y"
1573 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1574 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
1579 #line 1331 "perly.y"
1580 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1581 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
1586 #line 1337 "perly.y"
1587 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1588 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
1593 #line 1344 "perly.y"
1594 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1598 #line 1346 "perly.y"
1599 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1603 #line 1348 "perly.y"
1604 { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
1608 #line 1351 "perly.y"
1609 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1613 /* Line 1267 of yacc.c. */