Avoid a possible race condition where a parallel make might
[p5sagit/p5-mst-13.2.git] / perly.act
CommitLineData
0de566d7 1case 2:
4098b6bb 2#line 143 "perly.y"
1654d593 3 { (yyval.ival) = (ps[(1) - (2)].val.ival); newPROG(block_end((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval))); ;}
0de566d7 4 break;
5
6 case 3:
4098b6bb 7#line 148 "perly.y"
53a7735b 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));
1654d593 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),'}');
f05e27e5 13 ;}
0de566d7 14 break;
15
16 case 4:
4098b6bb 17#line 157 "perly.y"
9a9798c2 18 { (yyval.ival) = block_start(TRUE); ;}
0de566d7 19 break;
20
21 case 5:
4098b6bb 22#line 161 "perly.y"
d6447115 23 { (yyval.ival) = (I32) Perl_allocmy(aTHX_ STR_WITH_LEN("$_"), 0); ;}
0d863452 24 break;
25
26 case 6:
4098b6bb 27#line 165 "perly.y"
0de566d7 28 {
53a7735b 29 PL_parser->expect = XSTATE; (yyval.ival) = block_start(TRUE);
0de566d7 30 ;}
31 break;
32
0d863452 33 case 7:
4098b6bb 34#line 172 "perly.y"
53a7735b 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));
1654d593 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),'}');
f05e27e5 40 ;}
0de566d7 41 break;
42
0d863452 43 case 8:
4098b6bb 44#line 181 "perly.y"
9a9798c2 45 { (yyval.ival) = block_start(FALSE); ;}
0de566d7 46 break;
47
0d863452 48 case 9:
4098b6bb 49#line 186 "perly.y"
bcabcc50 50 { (yyval.opval) = (OP*)NULL; ;}
0de566d7 51 break;
52
503de470 53 case 10:
4098b6bb 54#line 188 "perly.y"
f05e27e5 55 {
56 (yyval.opval) = IF_MAD(
57 append_list(OP_LINESEQ,
1654d593 58 (LISTOP*)(ps[(1) - (2)].val.opval), (LISTOP*)(ps[(2) - (2)].val.opval)),
59 (ps[(1) - (2)].val.opval));
f05e27e5 60 ;}
0de566d7 61 break;
62
503de470 63 case 11:
4098b6bb 64#line 195 "perly.y"
503de470 65 { (yyval.opval) = append_list(OP_LINESEQ,
66 (LISTOP*)(ps[(1) - (2)].val.opval), (LISTOP*)(ps[(2) - (2)].val.opval));
500bedb6 67 PL_pad_reset_pending = TRUE;
503de470 68 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
69 PL_hints |= HINT_BLOCK_SCOPE;
70 ;}
500bedb6 71 break;
72
503de470 73 case 12:
4098b6bb 74#line 205 "perly.y"
1654d593 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'); ;}
0d863452 77 break;
78
503de470 79 case 14:
4098b6bb 80#line 209 "perly.y"
1654d593 81 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0d863452 82 break;
83
503de470 84 case 15:
4098b6bb 85#line 211 "perly.y"
1654d593 86 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
0de566d7 87 break;
88
503de470 89 case 16:
4098b6bb 90#line 213 "perly.y"
f05e27e5 91 {
1654d593 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,';');
f05e27e5 96 }
97 else {
98 (yyval.opval) = IF_MAD(
99 newOP(OP_NULL, 0),
bcabcc50 100 (OP*)NULL);
53a7735b 101 PL_parser->copline = NOLINE;
1654d593 102 TOKEN_FREE((ps[(1) - (2)].val.p_tkval));
103 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
f05e27e5 104 }
53a7735b 105 PL_parser->expect = XSTATE;
f05e27e5 106 ;}
0de566d7 107 break;
108
503de470 109 case 17:
4098b6bb 110#line 230 "perly.y"
f05e27e5 111 {
1654d593 112 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)), (ps[(2) - (3)].val.opval));
53a7735b 113 PL_parser->expect = XSTATE;
035e2bcc 114 DO_MAD({
f05e27e5 115 /* sideff might already have a nexstate */
116 OP* op = ((LISTOP*)(yyval.opval))->op_first;
117 if (op) {
118 while (op->op_sibling &&
119 op->op_sibling->op_type == OP_NEXTSTATE)
120 op = op->op_sibling;
1654d593 121 token_getmad((ps[(1) - (3)].val.p_tkval),op,'L');
122 token_getmad((ps[(3) - (3)].val.i_tkval),op,';');
f05e27e5 123 }
035e2bcc 124 })
f05e27e5 125 ;}
0de566d7 126 break;
127
503de470 128 case 18:
4098b6bb 129#line 246 "perly.y"
130 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
0de566d7 131 break;
132
503de470 133 case 19:
4098b6bb 134#line 251 "perly.y"
135 { (yyval.opval) = (OP*)NULL; ;}
0de566d7 136 break;
137
503de470 138 case 20:
4098b6bb 139#line 253 "perly.y"
140 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
141 break;
142
143 case 21:
144#line 255 "perly.y"
1654d593 145 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
146 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
f05e27e5 147 ;}
0de566d7 148 break;
149
4098b6bb 150 case 22:
151#line 259 "perly.y"
1654d593 152 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
153 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
f05e27e5 154 ;}
0de566d7 155 break;
156
4098b6bb 157 case 23:
158#line 263 "perly.y"
1654d593 159 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
160 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
f05e27e5 161 ;}
0de566d7 162 break;
163
4098b6bb 164 case 24:
165#line 267 "perly.y"
1654d593 166 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
167 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
f05e27e5 168 ;}
0de566d7 169 break;
170
4098b6bb 171 case 25:
172#line 271 "perly.y"
1a9a51d4 173 { (yyval.opval) = newFOROP(0, NULL, (line_t)IVAL((ps[(2) - (3)].val.i_tkval)),
bcabcc50 174 (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
1654d593 175 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first->op_sibling,'w');
f05e27e5 176 ;}
0de566d7 177 break;
178
4098b6bb 179 case 26:
180#line 276 "perly.y"
f20dcd76 181 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), scope((ps[(1) - (3)].val.opval))); ;}
0de566d7 182 break;
183
4098b6bb 184 case 27:
185#line 281 "perly.y"
f20dcd76 186 { (yyval.opval) = (OP*)NULL; ;}
187 break;
188
4098b6bb 189 case 28:
190#line 283 "perly.y"
1654d593 191 { ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = scope((ps[(2) - (2)].val.opval));
192 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 193 ;}
0de566d7 194 break;
195
4098b6bb 196 case 29:
197#line 287 "perly.y"
53a7735b 198 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
f6f3a1fe 199 (yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)), scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
f05e27e5 200 PL_hints |= HINT_BLOCK_SCOPE;
1654d593 201 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
202 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
203 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
f05e27e5 204 ;}
0de566d7 205 break;
206
4098b6bb 207 case 30:
208#line 298 "perly.y"
53a7735b 209 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
1654d593 210 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
211 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
212 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
213 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
214 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
f05e27e5 215 ;}
0de566d7 216 break;
217
4098b6bb 218 case 31:
219#line 306 "perly.y"
53a7735b 220 { PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
1654d593 221 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
222 newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
223 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
224 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
225 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
f05e27e5 226 ;}
0de566d7 227 break;
228
4098b6bb 229 case 32:
230#line 317 "perly.y"
1654d593 231 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
232 newWHENOP((ps[(4) - (6)].val.opval), scope((ps[(6) - (6)].val.opval)))); ;}
0d863452 233 break;
234
4098b6bb 235 case 33:
236#line 320 "perly.y"
1654d593 237 { (yyval.opval) = newWHENOP(0, scope((ps[(2) - (2)].val.opval))); ;}
0d863452 238 break;
239
4098b6bb 240 case 34:
241#line 325 "perly.y"
bcabcc50 242 { (yyval.opval) = (OP*)NULL; ;}
0de566d7 243 break;
244
4098b6bb 245 case 35:
246#line 327 "perly.y"
1654d593 247 { (yyval.opval) = scope((ps[(2) - (2)].val.opval));
248 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 249 ;}
0de566d7 250 break;
251
4098b6bb 252 case 36:
253#line 334 "perly.y"
f05e27e5 254 { OP *innerop;
23527818 255 PL_parser->copline = (line_t)IVAL((ps[(2) - (9)].val.i_tkval));
1654d593 256 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
257 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
bcabcc50 258 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
1654d593 259 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))));
260 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
261 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
262 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
263 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
f05e27e5 264 ;}
0de566d7 265 break;
266
4098b6bb 267 case 37:
268#line 347 "perly.y"
f05e27e5 269 { OP *innerop;
23527818 270 PL_parser->copline = (line_t)IVAL((ps[(2) - (9)].val.i_tkval));
1654d593 271 (yyval.opval) = block_end((ps[(4) - (9)].val.ival),
272 newSTATEOP(0, PVAL((ps[(1) - (9)].val.p_tkval)),
bcabcc50 273 innerop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
1654d593 274 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))));
275 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),innerop,'L');
276 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),innerop,'W');
277 TOKEN_GETMAD((ps[(3) - (9)].val.i_tkval),innerop,'(');
278 TOKEN_GETMAD((ps[(6) - (9)].val.i_tkval),innerop,')');
f05e27e5 279 ;}
0de566d7 280 break;
281
4098b6bb 282 case 38:
283#line 359 "perly.y"
f05e27e5 284 { OP *innerop;
1654d593 285 (yyval.opval) = block_end((ps[(4) - (10)].val.ival),
286 innerop = newFOROP(0, PVAL((ps[(1) - (10)].val.p_tkval)), (line_t)IVAL((ps[(2) - (10)].val.i_tkval)),
287 (ps[(5) - (10)].val.opval), (ps[(7) - (10)].val.opval), (ps[(9) - (10)].val.opval), (ps[(10) - (10)].val.opval)));
288 TOKEN_GETMAD((ps[(1) - (10)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
289 TOKEN_GETMAD((ps[(2) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
290 TOKEN_GETMAD((ps[(3) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'d');
291 TOKEN_GETMAD((ps[(6) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
292 TOKEN_GETMAD((ps[(8) - (10)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
f05e27e5 293 ;}
0de566d7 294 break;
295
4098b6bb 296 case 39:
297#line 370 "perly.y"
f05e27e5 298 { OP *innerop;
1654d593 299 (yyval.opval) = block_end((ps[(5) - (9)].val.ival),
300 innerop = newFOROP(0, PVAL((ps[(1) - (9)].val.p_tkval)), (line_t)IVAL((ps[(2) - (9)].val.i_tkval)),
301 mod((ps[(3) - (9)].val.opval), OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
302 TOKEN_GETMAD((ps[(1) - (9)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
303 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
304 TOKEN_GETMAD((ps[(4) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
305 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
f05e27e5 306 ;}
0de566d7 307 break;
308
4098b6bb 309 case 40:
310#line 380 "perly.y"
f05e27e5 311 { OP *innerop;
1654d593 312 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
313 innerop = newFOROP(0, PVAL((ps[(1) - (8)].val.p_tkval)), (line_t)IVAL((ps[(2) - (8)].val.i_tkval)),
bcabcc50 314 (OP*)NULL, (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
1654d593 315 TOKEN_GETMAD((ps[(1) - (8)].val.p_tkval),((LISTOP*)innerop)->op_first,'L');
316 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'W');
317 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,'(');
318 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),((LISTOP*)innerop)->op_first->op_sibling,')');
f05e27e5 319 ;}
0de566d7 320 break;
321
4098b6bb 322 case 41:
323#line 392 "perly.y"
0de566d7 324 { OP *forop;
53a7735b 325 PL_parser->copline = (line_t)IVAL((ps[(2) - (12)].val.i_tkval));
1654d593 326 forop = newSTATEOP(0, PVAL((ps[(1) - (12)].val.p_tkval)),
bcabcc50 327 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
1654d593 328 IVAL((ps[(2) - (12)].val.i_tkval)), scalar((ps[(7) - (12)].val.opval)),
329 (ps[(12) - (12)].val.opval), (ps[(10) - (12)].val.opval), (ps[(9) - (12)].val.ival)));
f05e27e5 330#ifdef MAD
f05e27e5 331 forop = newUNOP(OP_NULL, 0, append_elem(OP_LINESEQ,
332 newSTATEOP(0,
63031daf 333 CopLABEL_alloc(((ps[(1) - (12)].val.p_tkval))->tk_lval.pval),
700f8fa5 334 ((ps[(5) - (12)].val.opval) ? (ps[(5) - (12)].val.opval) : newOP(OP_NULL, 0)) ),
f05e27e5 335 forop));
336
1654d593 337 token_getmad((ps[(2) - (12)].val.i_tkval),forop,'3');
338 token_getmad((ps[(3) - (12)].val.i_tkval),forop,'(');
339 token_getmad((ps[(6) - (12)].val.i_tkval),forop,'1');
340 token_getmad((ps[(8) - (12)].val.i_tkval),forop,'2');
341 token_getmad((ps[(11) - (12)].val.i_tkval),forop,')');
342 token_getmad((ps[(1) - (12)].val.p_tkval),forop,'L');
f05e27e5 343#else
1654d593 344 if ((ps[(5) - (12)].val.opval)) {
0de566d7 345 forop = append_elem(OP_LINESEQ,
63031daf 346 newSTATEOP(0, CopLABEL_alloc((ps[(1) - (12)].val.p_tkval)), (ps[(5) - (12)].val.opval)),
0de566d7 347 forop);
348 }
349
f05e27e5 350
351#endif
1654d593 352 (yyval.opval) = block_end((ps[(4) - (12)].val.ival), forop); ;}
0de566d7 353 break;
354
4098b6bb 355 case 42:
356#line 422 "perly.y"
1654d593 357 { (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)),
bcabcc50 358 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
359 NOLINE, (OP*)NULL, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval), 0));
1654d593 360 TOKEN_GETMAD((ps[(1) - (3)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
0de566d7 361 break;
362
4098b6bb 363 case 43:
364#line 430 "perly.y"
23527818 365 { PL_parser->copline = (line_t) IVAL((ps[(2) - (8)].val.i_tkval));
1654d593 366 (yyval.opval) = block_end((ps[(4) - (8)].val.ival),
367 newSTATEOP(0, PVAL((ps[(1) - (8)].val.p_tkval)),
368 newGIVENOP((ps[(6) - (8)].val.opval), scope((ps[(8) - (8)].val.opval)),
369 (PADOFFSET) (ps[(5) - (8)].val.ival)) )); ;}
0d863452 370 break;
371
4098b6bb 372 case 44:
373#line 439 "perly.y"
9a9798c2 374 { (yyval.ival) = (PL_min_intro_pending &&
a034e688 375 PL_max_intro_pending >= PL_min_intro_pending);
376 intro_my(); ;}
0de566d7 377 break;
378
4098b6bb 379 case 45:
380#line 445 "perly.y"
bcabcc50 381 { (yyval.opval) = (OP*)NULL; ;}
0de566d7 382 break;
383
4098b6bb 384 case 47:
385#line 451 "perly.y"
f05e27e5 386 { YYSTYPE tmplval;
387 (void)scan_num("1", &tmplval);
388 (yyval.opval) = tmplval.opval; ;}
0de566d7 389 break;
390
503de470 391 case 49:
4098b6bb 392#line 459 "perly.y"
393 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
0de566d7 394 break;
395
503de470 396 case 50:
4098b6bb 397#line 464 "perly.y"
1654d593 398 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
0de566d7 399 break;
400
503de470 401 case 51:
4098b6bb 402#line 468 "perly.y"
f20dcd76 403 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
404 break;
405
406 case 52:
4098b6bb 407#line 472 "perly.y"
408 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
409 break;
410
411 case 53:
412#line 477 "perly.y"
f05e27e5 413 {
414#ifdef MAD
415 YYSTYPE tmplval;
1a9a51d4 416 tmplval.pval = NULL;
f05e27e5 417 (yyval.p_tkval) = newTOKEN(OP_NULL, tmplval, 0);
418#else
1a9a51d4 419 (yyval.p_tkval) = NULL;
f05e27e5 420#endif
421 ;}
0de566d7 422 break;
423
0d863452 424 case 55:
4098b6bb 425#line 491 "perly.y"
1654d593 426 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7 427 break;
428
0d863452 429 case 56:
4098b6bb 430#line 493 "perly.y"
1654d593 431 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7 432 break;
433
0d863452 434 case 57:
4098b6bb 435#line 495 "perly.y"
1654d593 436 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7 437 break;
438
0d863452 439 case 58:
4098b6bb 440#line 497 "perly.y"
1654d593 441 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7 442 break;
443
0d863452 444 case 59:
4098b6bb 445#line 499 "perly.y"
f20dcd76 446 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
447 break;
448
449 case 60:
4098b6bb 450#line 504 "perly.y"
451 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
452 break;
453
454 case 61:
455#line 508 "perly.y"
f05e27e5 456 { (yyval.opval) = newOP(OP_NULL,0);
1654d593 457 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
f05e27e5 458 ;}
0de566d7 459 break;
460
4098b6bb 461 case 62:
462#line 514 "perly.y"
421f30ed 463 {
464 CV *fmtcv = PL_compcv;
465 SvREFCNT_inc_simple_void(PL_compcv);
f05e27e5 466#ifdef MAD
1654d593 467 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
468 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
469 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
470 token_free((ps[(1) - (4)].val.i_tkval));
f05e27e5 471#else
1654d593 472 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
bcabcc50 473 (yyval.opval) = (OP*)NULL;
f05e27e5 474#endif
421f30ed 475 if (CvOUTSIDE(fmtcv) && !CvUNIQUE(CvOUTSIDE(fmtcv))) {
476 SvREFCNT_inc_simple_void(fmtcv);
477 pad_add_anon((SV*)fmtcv, OP_NULL);
478 }
f05e27e5 479 ;}
0de566d7 480 break;
481
4098b6bb 482 case 63:
421f30ed 483#line 533 "perly.y"
1654d593 484 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7 485 break;
486
4098b6bb 487 case 64:
421f30ed 488#line 534 "perly.y"
bcabcc50 489 { (yyval.opval) = (OP*)NULL; ;}
0de566d7 490 break;
491
4098b6bb 492 case 65:
421f30ed 493#line 539 "perly.y"
5a5094bd 494 { SvREFCNT_inc_simple_void(PL_compcv);
f05e27e5 495#ifdef MAD
1654d593 496 (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));
497 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
f05e27e5 498#else
1654d593 499 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));
bcabcc50 500 (yyval.opval) = (OP*)NULL;
f05e27e5 501#endif
502 ;}
503 break;
504
4098b6bb 505 case 66:
421f30ed 506#line 552 "perly.y"
5a5094bd 507 { SvREFCNT_inc_simple_void(PL_compcv);
f05e27e5 508#ifdef MAD
035e2bcc 509 {
510 OP* o = newSVOP(OP_ANONCODE, 0,
511 (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)));
512 (yyval.opval) = newOP(OP_NULL,0);
513 op_getmad(o,(yyval.opval),'&');
514 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
515 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
516 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
517 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
518 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
519 (ps[(6) - (6)].val.opval)->op_madprop = 0;
520 }
f05e27e5 521#else
1654d593 522 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));
bcabcc50 523 (yyval.opval) = (OP*)NULL;
f05e27e5 524#endif
525 ;}
526 break;
527
4098b6bb 528 case 67:
421f30ed 529#line 574 "perly.y"
2af555bf 530 { (yyval.ival) = start_subparse(FALSE, 0);
a8ff2fa6 531 SAVEFREESV(PL_compcv); ;}
0de566d7 532 break;
533
4098b6bb 534 case 68:
421f30ed 535#line 580 "perly.y"
2af555bf 536 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
a8ff2fa6 537 SAVEFREESV(PL_compcv); ;}
500bedb6 538 break;
539
4098b6bb 540 case 69:
421f30ed 541#line 585 "perly.y"
2af555bf 542 { (yyval.ival) = start_subparse(TRUE, 0);
543 SAVEFREESV(PL_compcv); ;}
544 break;
545
4098b6bb 546 case 70:
421f30ed 547#line 590 "perly.y"
1654d593 548 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
0de566d7 549 if (strEQ(name, "BEGIN") || strEQ(name, "END")
3c10abe3 550 || strEQ(name, "INIT") || strEQ(name, "CHECK")
551 || strEQ(name, "UNITCHECK"))
0de566d7 552 CvSPECIAL_on(PL_compcv);
1654d593 553 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7 554 break;
555
4098b6bb 556 case 71:
421f30ed 557#line 600 "perly.y"
bcabcc50 558 { (yyval.opval) = (OP*)NULL; ;}
0de566d7 559 break;
560
4098b6bb 561 case 73:
421f30ed 562#line 606 "perly.y"
bcabcc50 563 { (yyval.opval) = (OP*)NULL; ;}
0de566d7 564 break;
565
4098b6bb 566 case 74:
421f30ed 567#line 608 "perly.y"
1654d593 568 { (yyval.opval) = (ps[(2) - (2)].val.opval);
569 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
f05e27e5 570 ;}
0de566d7 571 break;
572
4098b6bb 573 case 75:
421f30ed 574#line 612 "perly.y"
f05e27e5 575 { (yyval.opval) = IF_MAD(
576 newOP(OP_NULL, 0),
bcabcc50 577 (OP*)NULL
f05e27e5 578 );
1654d593 579 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
f05e27e5 580 ;}
0de566d7 581 break;
582
4098b6bb 583 case 76:
421f30ed 584#line 622 "perly.y"
1654d593 585 { (yyval.opval) = (ps[(2) - (2)].val.opval);
586 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
f05e27e5 587 ;}
0de566d7 588 break;
589
4098b6bb 590 case 77:
421f30ed 591#line 626 "perly.y"
f05e27e5 592 { (yyval.opval) = IF_MAD(
593 newOP(OP_NULL, 0),
bcabcc50 594 (OP*)NULL
f05e27e5 595 );
1654d593 596 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
f05e27e5 597 ;}
0de566d7 598 break;
599
4098b6bb 600 case 78:
421f30ed 601#line 635 "perly.y"
1654d593 602 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7 603 break;
604
4098b6bb 605 case 79:
421f30ed 606#line 636 "perly.y"
f05e27e5 607 { (yyval.opval) = IF_MAD(
608 newOP(OP_NULL,0),
bcabcc50 609 (OP*)NULL
f05e27e5 610 );
53a7735b 611 PL_parser->expect = XSTATE;
1654d593 612 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
f05e27e5 613 ;}
0de566d7 614 break;
615
4098b6bb 616 case 80:
421f30ed 617#line 646 "perly.y"
f05e27e5 618 {
0f811330 619#ifdef MAD
620 (yyval.opval) = package((ps[(3) - (4)].val.opval));
621 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
622 if ((ps[(2) - (4)].val.opval))
623 package_version((ps[(2) - (4)].val.opval));
624 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
625#else
6fa4d285 626 package((ps[(3) - (4)].val.opval));
0f811330 627 if ((ps[(2) - (4)].val.opval))
628 package_version((ps[(2) - (4)].val.opval));
bcabcc50 629 (yyval.opval) = (OP*)NULL;
0f811330 630#endif
f05e27e5 631 ;}
0de566d7 632 break;
633
4098b6bb 634 case 81:
421f30ed 635#line 663 "perly.y"
f05e27e5 636 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
0de566d7 637 break;
638
4098b6bb 639 case 82:
421f30ed 640#line 665 "perly.y"
5a5094bd 641 { SvREFCNT_inc_simple_void(PL_compcv);
f05e27e5 642#ifdef MAD
1654d593 643 (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));
644 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
645 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
5486870f 646 if (PL_parser->rsfp_filters &&
647 AvFILLp(PL_parser->rsfp_filters) >= 0)
a22f28a4 648 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
f05e27e5 649#else
1654d593 650 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));
bcabcc50 651 (yyval.opval) = (OP*)NULL;
f05e27e5 652#endif
653 ;}
500bedb6 654 break;
655
4098b6bb 656 case 83:
421f30ed 657#line 682 "perly.y"
1654d593 658 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
659 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 660 ;}
0de566d7 661 break;
662
4098b6bb 663 case 84:
421f30ed 664#line 686 "perly.y"
1654d593 665 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
666 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 667 ;}
0de566d7 668 break;
669
4098b6bb 670 case 85:
421f30ed 671#line 690 "perly.y"
1654d593 672 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
673 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 674 ;}
0de566d7 675 break;
676
4098b6bb 677 case 87:
421f30ed 678#line 698 "perly.y"
f05e27e5 679 {
680#ifdef MAD
681 OP* op = newNULLLIST();
1654d593 682 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
683 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
f05e27e5 684#else
1654d593 685 (yyval.opval) = (ps[(1) - (2)].val.opval);
f05e27e5 686#endif
687 ;}
0de566d7 688 break;
689
4098b6bb 690 case 88:
421f30ed 691#line 708 "perly.y"
f05e27e5 692 {
1654d593 693 OP* term = (ps[(3) - (3)].val.opval);
f05e27e5 694 DO_MAD(
29522234 695 term = newUNOP(OP_NULL, 0, term);
1654d593 696 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
f05e27e5 697 )
1654d593 698 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
f05e27e5 699 ;}
0de566d7 700 break;
701
4098b6bb 702 case 90:
421f30ed 703#line 721 "perly.y"
1654d593 704 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
705 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
706 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 707 ;}
0de566d7 708 break;
709
4098b6bb 710 case 91:
421f30ed 711#line 726 "perly.y"
1654d593 712 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
713 prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
714 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
715 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
716 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
f05e27e5 717 ;}
0de566d7 718 break;
719
4098b6bb 720 case 92:
421f30ed 721#line 733 "perly.y"
9a9798c2 722 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
0de566d7 723 append_elem(OP_LIST,
1654d593 724 prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
725 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
726 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
727 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
728 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
f05e27e5 729 ;}
0de566d7 730 break;
731
4098b6bb 732 case 93:
421f30ed 733#line 742 "perly.y"
9a9798c2 734 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
1654d593 735 append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
736 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
737 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
f05e27e5 738 ;}
0de566d7 739 break;
740
4098b6bb 741 case 94:
421f30ed 742#line 748 "perly.y"
f05e27e5 743 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
744 append_elem(OP_LIST,
1654d593 745 prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
746 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
f05e27e5 747 ;}
0de566d7 748 break;
749
4098b6bb 750 case 95:
421f30ed 751#line 754 "perly.y"
f05e27e5 752 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
753 append_elem(OP_LIST,
1654d593 754 prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
755 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
756 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
757 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
f05e27e5 758 ;}
0de566d7 759 break;
760
4098b6bb 761 case 96:
421f30ed 762#line 762 "perly.y"
1654d593 763 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
764 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 765 ;}
0de566d7 766 break;
767
4098b6bb 768 case 97:
421f30ed 769#line 766 "perly.y"
1654d593 770 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
771 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
772 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
773 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
f05e27e5 774 ;}
0de566d7 775 break;
776
4098b6bb 777 case 98:
421f30ed 778#line 772 "perly.y"
5a5094bd 779 { SvREFCNT_inc_simple_void(PL_compcv);
bcabcc50 780 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
0de566d7 781 break;
782
4098b6bb 783 case 99:
421f30ed 784#line 775 "perly.y"
f05e27e5 785 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
786 append_elem(OP_LIST,
1654d593 787 prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
f05e27e5 788 ;}
0de566d7 789 break;
790
4098b6bb 791 case 102:
421f30ed 792#line 790 "perly.y"
1654d593 793 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
53a7735b 794 PL_parser->expect = XOPERATOR;
1654d593 795 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
796 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
797 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
f05e27e5 798 ;}
0de566d7 799 break;
800
4098b6bb 801 case 103:
421f30ed 802#line 797 "perly.y"
1654d593 803 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
804 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
805 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
f05e27e5 806 ;}
0de566d7 807 break;
808
4098b6bb 809 case 104:
421f30ed 810#line 802 "perly.y"
f05e27e5 811 { (yyval.opval) = newBINOP(OP_AELEM, 0,
1654d593 812 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
813 scalar((ps[(4) - (5)].val.opval)));
814 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
815 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
816 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
f05e27e5 817 ;}
0de566d7 818 break;
819
4098b6bb 820 case 105:
421f30ed 821#line 810 "perly.y"
f05e27e5 822 { (yyval.opval) = newBINOP(OP_AELEM, 0,
1654d593 823 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
824 scalar((ps[(3) - (4)].val.opval)));
825 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
826 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
f05e27e5 827 ;}
0de566d7 828 break;
829
4098b6bb 830 case 106:
421f30ed 831#line 817 "perly.y"
1654d593 832 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
53a7735b 833 PL_parser->expect = XOPERATOR;
1654d593 834 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
835 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
836 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
f05e27e5 837 ;}
0de566d7 838 break;
839
4098b6bb 840 case 107:
421f30ed 841#line 824 "perly.y"
f05e27e5 842 { (yyval.opval) = newBINOP(OP_HELEM, 0,
1654d593 843 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
844 jmaybe((ps[(4) - (6)].val.opval)));
53a7735b 845 PL_parser->expect = XOPERATOR;
1654d593 846 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
847 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
848 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
849 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
f05e27e5 850 ;}
0de566d7 851 break;
852
4098b6bb 853 case 108:
421f30ed 854#line 834 "perly.y"
f05e27e5 855 { (yyval.opval) = newBINOP(OP_HELEM, 0,
1654d593 856 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
857 jmaybe((ps[(3) - (5)].val.opval)));
53a7735b 858 PL_parser->expect = XOPERATOR;
1654d593 859 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
860 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
861 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
f05e27e5 862 ;}
0de566d7 863 break;
864
4098b6bb 865 case 109:
421f30ed 866#line 843 "perly.y"
9a9798c2 867 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1654d593 868 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
869 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
870 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
871 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
f05e27e5 872 ;}
0de566d7 873 break;
874
4098b6bb 875 case 110:
421f30ed 876#line 850 "perly.y"
9a9798c2 877 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1654d593 878 append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
879 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
880 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
881 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
882 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
f05e27e5 883 ;}
0de566d7 884 break;
885
4098b6bb 886 case 111:
421f30ed 887#line 859 "perly.y"
f05e27e5 888 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1654d593 889 append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
890 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
891 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
892 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
f05e27e5 893 ;}
0de566d7 894 break;
895
4098b6bb 896 case 112:
421f30ed 897#line 866 "perly.y"
f05e27e5 898 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1654d593 899 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
900 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
901 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
f05e27e5 902 ;}
0de566d7 903 break;
904
4098b6bb 905 case 113:
421f30ed 906#line 872 "perly.y"
1654d593 907 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
908 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
909 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
910 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
911 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
f05e27e5 912 ;}
0de566d7 913 break;
914
4098b6bb 915 case 114:
421f30ed 916#line 879 "perly.y"
bcabcc50 917 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
1654d593 918 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
919 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
920 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
921 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
f05e27e5 922 ;}
0de566d7 923 break;
924
4098b6bb 925 case 115:
421f30ed 926#line 889 "perly.y"
1654d593 927 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
928 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 929 ;}
0de566d7 930 break;
931
4098b6bb 932 case 116:
421f30ed 933#line 893 "perly.y"
1654d593 934 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
935 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 936 ;}
0de566d7 937 break;
938
4098b6bb 939 case 117:
421f30ed 940#line 897 "perly.y"
1654d593 941 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
942 scalar((ps[(1) - (3)].val.opval));
943 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
944 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 945 ;}
0de566d7 946 break;
947
0d863452 948 case 118:
421f30ed 949#line 903 "perly.y"
1654d593 950 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
951 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 952 ;}
0de566d7 953 break;
954
0d863452 955 case 119:
421f30ed 956#line 907 "perly.y"
1654d593 957 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
958 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 959 ;}
0de566d7 960 break;
961
0d863452 962 case 120:
421f30ed 963#line 911 "perly.y"
1654d593 964 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
965 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 966 ;}
0de566d7 967 break;
968
0d863452 969 case 121:
421f30ed 970#line 915 "perly.y"
1654d593 971 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
972 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 973 ;}
0de566d7 974 break;
975
0d863452 976 case 122:
421f30ed 977#line 919 "perly.y"
f20dcd76 978 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
979 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
980 ;}
981 break;
982
983 case 123:
421f30ed 984#line 923 "perly.y"
4098b6bb 985 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
986 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
987 ;}
988 break;
989
990 case 124:
421f30ed 991#line 927 "perly.y"
f05e27e5 992 {
1654d593 993 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
035e2bcc 994 DO_MAD({
f05e27e5 995 UNOP *op;
996 op = (UNOP*)(yyval.opval);
997 op = (UNOP*)op->op_first; /* get to flop */
998 op = (UNOP*)op->op_first; /* get to flip */
999 op = (UNOP*)op->op_first; /* get to range */
1654d593 1000 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
035e2bcc 1001 })
f05e27e5 1002 ;}
0de566d7 1003 break;
1004
4098b6bb 1005 case 125:
421f30ed 1006#line 939 "perly.y"
1654d593 1007 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1008 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1009 ;}
0de566d7 1010 break;
1011
4098b6bb 1012 case 126:
421f30ed 1013#line 943 "perly.y"
1654d593 1014 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1015 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1016 ;}
0de566d7 1017 break;
1018
4098b6bb 1019 case 127:
421f30ed 1020#line 947 "perly.y"
1654d593 1021 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1022 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1023 ;}
0de566d7 1024 break;
1025
4098b6bb 1026 case 128:
421f30ed 1027#line 951 "perly.y"
1654d593 1028 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1029 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
f05e27e5 1030 ((yyval.opval)->op_type == OP_NOT
1031 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1032 '~');
1033 ;}
500bedb6 1034 break;
1035
4098b6bb 1036 case 129:
421f30ed 1037#line 961 "perly.y"
1654d593 1038 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1039 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1040 ;}
0de566d7 1041 break;
1042
4098b6bb 1043 case 130:
421f30ed 1044#line 965 "perly.y"
f05e27e5 1045 { (yyval.opval) = IF_MAD(
1654d593 1046 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1047 (ps[(2) - (2)].val.opval)
f05e27e5 1048 );
1654d593 1049 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
f05e27e5 1050 ;}
0de566d7 1051 break;
1052
4098b6bb 1053 case 131:
421f30ed 1054#line 972 "perly.y"
1654d593 1055 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1056 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1057 ;}
0de566d7 1058 break;
1059
4098b6bb 1060 case 132:
421f30ed 1061#line 976 "perly.y"
1654d593 1062 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1063 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1064 ;}
0de566d7 1065 break;
1066
4098b6bb 1067 case 133:
421f30ed 1068#line 980 "perly.y"
f05e27e5 1069 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1654d593 1070 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1071 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1072 ;}
0de566d7 1073 break;
1074
4098b6bb 1075 case 134:
421f30ed 1076#line 985 "perly.y"
f05e27e5 1077 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1654d593 1078 mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1079 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1080 ;}
0de566d7 1081 break;
1082
4098b6bb 1083 case 135:
421f30ed 1084#line 990 "perly.y"
f05e27e5 1085 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1654d593 1086 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1087 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1088 ;}
0de566d7 1089 break;
1090
4098b6bb 1091 case 136:
421f30ed 1092#line 995 "perly.y"
f05e27e5 1093 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1654d593 1094 mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1095 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1096 ;}
0de566d7 1097 break;
1098
4098b6bb 1099 case 137:
421f30ed 1100#line 1004 "perly.y"
1654d593 1101 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1102 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1103 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
f05e27e5 1104 ;}
0de566d7 1105 break;
1106
4098b6bb 1107 case 138:
421f30ed 1108#line 1009 "perly.y"
bcabcc50 1109 { (yyval.opval) = newANONLIST((OP*)NULL);
1654d593 1110 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1111 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
f05e27e5 1112 ;}
0de566d7 1113 break;
1114
4098b6bb 1115 case 139:
421f30ed 1116#line 1014 "perly.y"
1654d593 1117 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1118 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1119 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1120 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
f05e27e5 1121 ;}
0de566d7 1122 break;
1123
4098b6bb 1124 case 140:
421f30ed 1125#line 1020 "perly.y"
bcabcc50 1126 { (yyval.opval) = newANONHASH((OP*)NULL);
1654d593 1127 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1128 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1129 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
f05e27e5 1130 ;}
9a9798c2 1131 break;
1132
4098b6bb 1133 case 141:
421f30ed 1134#line 1026 "perly.y"
5a5094bd 1135 { SvREFCNT_inc_simple_void(PL_compcv);
1654d593 1136 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1137 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1138 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1139 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
f05e27e5 1140 ;}
9a9798c2 1141 break;
1142
4098b6bb 1143 case 142:
421f30ed 1144#line 1037 "perly.y"
1654d593 1145 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1146 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1147 ;}
1148 break;
1149
4098b6bb 1150 case 143:
421f30ed 1151#line 1041 "perly.y"
1654d593 1152 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
1153 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
f05e27e5 1154 ;}
1155 break;
1156
4098b6bb 1157 case 144:
421f30ed 1158#line 1045 "perly.y"
9a9798c2 1159 { (yyval.opval) = newUNOP(OP_ENTERSUB,
0de566d7 1160 OPf_SPECIAL|OPf_STACKED,
1161 prepend_elem(OP_LIST,
1162 scalar(newCVREF(
1163 (OPpENTERSUB_AMPER<<8),
1654d593 1164 scalar((ps[(2) - (4)].val.opval))
bcabcc50 1165 )),(OP*)NULL)); dep();
1654d593 1166 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1167 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1168 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
f05e27e5 1169 ;}
0de566d7 1170 break;
1171
4098b6bb 1172 case 145:
421f30ed 1173#line 1057 "perly.y"
9a9798c2 1174 { (yyval.opval) = newUNOP(OP_ENTERSUB,
0de566d7 1175 OPf_SPECIAL|OPf_STACKED,
1176 append_elem(OP_LIST,
1654d593 1177 (ps[(4) - (5)].val.opval),
0de566d7 1178 scalar(newCVREF(
1179 (OPpENTERSUB_AMPER<<8),
1654d593 1180 scalar((ps[(2) - (5)].val.opval))
f05e27e5 1181 )))); dep();
1654d593 1182 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1183 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1184 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
f05e27e5 1185 ;}
0de566d7 1186 break;
1187
4098b6bb 1188 case 146:
421f30ed 1189#line 1070 "perly.y"
9a9798c2 1190 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
0de566d7 1191 prepend_elem(OP_LIST,
bcabcc50 1192 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1654d593 1193 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1194 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1195 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
f05e27e5 1196 ;}
0de566d7 1197 break;
1198
4098b6bb 1199 case 147:
421f30ed 1200#line 1078 "perly.y"
9a9798c2 1201 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
1202 prepend_elem(OP_LIST,
1654d593 1203 (ps[(4) - (5)].val.opval),
1204 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1205 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1206 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1207 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
f05e27e5 1208 ;}
0de566d7 1209 break;
1210
4098b6bb 1211 case 152:
421f30ed 1212#line 1094 "perly.y"
1654d593 1213 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1214 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1215 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
f05e27e5 1216 ;}
0de566d7 1217 break;
1218
4098b6bb 1219 case 153:
421f30ed 1220#line 1099 "perly.y"
1654d593 1221 { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
1222 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1223 ;}
0de566d7 1224 break;
1225
4098b6bb 1226 case 154:
421f30ed 1227#line 1103 "perly.y"
1654d593 1228 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7 1229 break;
1230
4098b6bb 1231 case 155:
421f30ed 1232#line 1105 "perly.y"
1654d593 1233 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
dde83331 1234 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
f05e27e5 1235 ;}
0de566d7 1236 break;
1237
4098b6bb 1238 case 156:
421f30ed 1239#line 1109 "perly.y"
1654d593 1240 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1241 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1242 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
f05e27e5 1243 ;}
0de566d7 1244 break;
1245
4098b6bb 1246 case 157:
421f30ed 1247#line 1114 "perly.y"
f05e27e5 1248 { (yyval.opval) = sawparens(newNULLLIST());
1654d593 1249 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1250 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
f05e27e5 1251 ;}
0de566d7 1252 break;
1253
0d863452 1254 case 158:
421f30ed 1255#line 1119 "perly.y"
1654d593 1256 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7 1257 break;
1258
0d863452 1259 case 159:
421f30ed 1260#line 1121 "perly.y"
1654d593 1261 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7 1262 break;
1263
0d863452 1264 case 160:
421f30ed 1265#line 1123 "perly.y"
f20dcd76 1266 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
500bedb6 1267 break;
1268
0d863452 1269 case 161:
421f30ed 1270#line 1125 "perly.y"
4098b6bb 1271 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7 1272 break;
1273
718a7425 1274 case 162:
421f30ed 1275#line 1127 "perly.y"
4098b6bb 1276 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
f20dcd76 1277 break;
1278
1279 case 163:
421f30ed 1280#line 1129 "perly.y"
4098b6bb 1281 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1282 break;
1283
1284 case 164:
421f30ed 1285#line 1131 "perly.y"
f05e27e5 1286 { (yyval.opval) = prepend_elem(OP_ASLICE,
1287 newOP(OP_PUSHMARK, 0),
1288 newLISTOP(OP_ASLICE, 0,
1654d593 1289 list((ps[(3) - (4)].val.opval)),
1290 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1291 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1292 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
f05e27e5 1293 ;}
0de566d7 1294 break;
1295
4098b6bb 1296 case 165:
421f30ed 1297#line 1140 "perly.y"
f05e27e5 1298 { (yyval.opval) = prepend_elem(OP_HSLICE,
1299 newOP(OP_PUSHMARK, 0),
1300 newLISTOP(OP_HSLICE, 0,
1654d593 1301 list((ps[(3) - (5)].val.opval)),
1302 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
53a7735b 1303 PL_parser->expect = XOPERATOR;
1654d593 1304 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1305 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1306 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
f05e27e5 1307 ;}
0de566d7 1308 break;
1309
4098b6bb 1310 case 166:
421f30ed 1311#line 1151 "perly.y"
1654d593 1312 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7 1313 break;
1314
4098b6bb 1315 case 167:
421f30ed 1316#line 1153 "perly.y"
1654d593 1317 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
0de566d7 1318 break;
1319
4098b6bb 1320 case 168:
421f30ed 1321#line 1155 "perly.y"
1654d593 1322 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1323 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1324 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
f05e27e5 1325 ;}
0de566d7 1326 break;
1327
4098b6bb 1328 case 169:
421f30ed 1329#line 1160 "perly.y"
f05e27e5 1330 {
1331 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1654d593 1332 append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
035e2bcc 1333 DO_MAD({
f05e27e5 1334 OP* op = (yyval.opval);
1335 if (op->op_type == OP_CONST) { /* defeat const fold */
1336 op = (OP*)op->op_madprop->mad_val;
1337 }
1654d593 1338 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1339 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
035e2bcc 1340 })
f05e27e5 1341 ;}
0de566d7 1342 break;
1343
4098b6bb 1344 case 170:
421f30ed 1345#line 1173 "perly.y"
f05e27e5 1346 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1654d593 1347 append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1348 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1349 ;}
0de566d7 1350 break;
1351
4098b6bb 1352 case 171:
421f30ed 1353#line 1178 "perly.y"
1654d593 1354 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
f05e27e5 1355 PL_hints |= HINT_BLOCK_SCOPE;
1654d593 1356 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1357 ;}
0de566d7 1358 break;
1359
4098b6bb 1360 case 172:
421f30ed 1361#line 1183 "perly.y"
1654d593 1362 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1363 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1364 ;}
0de566d7 1365 break;
1366
4098b6bb 1367 case 173:
421f30ed 1368#line 1187 "perly.y"
1654d593 1369 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1370 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1371 ;}
0de566d7 1372 break;
1373
4098b6bb 1374 case 174:
421f30ed 1375#line 1191 "perly.y"
1654d593 1376 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1377 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1378 ;}
0de566d7 1379 break;
1380
4098b6bb 1381 case 175:
421f30ed 1382#line 1195 "perly.y"
1654d593 1383 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1384 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1385 ;}
0de566d7 1386 break;
1387
4098b6bb 1388 case 176:
421f30ed 1389#line 1199 "perly.y"
1654d593 1390 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1391 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1392 ;}
0de566d7 1393 break;
1394
4098b6bb 1395 case 177:
421f30ed 1396#line 1203 "perly.y"
d2fdf8fd 1397 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1398 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
1399 ;}
0de566d7 1400 break;
1401
4098b6bb 1402 case 178:
421f30ed 1403#line 1207 "perly.y"
d2fdf8fd 1404 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1405 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1406 ;}
0de566d7 1407 break;
1408
4098b6bb 1409 case 179:
421f30ed 1410#line 1211 "perly.y"
1654d593 1411 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
0de566d7 1412 break;
1413
4098b6bb 1414 case 180:
421f30ed 1415#line 1213 "perly.y"
f05e27e5 1416 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1654d593 1417 append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
0de566d7 1418 break;
1419
4098b6bb 1420 case 181:
421f30ed 1421#line 1216 "perly.y"
1654d593 1422 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1423 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1424 ;}
0de566d7 1425 break;
1426
4098b6bb 1427 case 182:
421f30ed 1428#line 1220 "perly.y"
1654d593 1429 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
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),')');
f05e27e5 1433 ;}
0de566d7 1434 break;
1435
4098b6bb 1436 case 183:
421f30ed 1437#line 1226 "perly.y"
f05e27e5 1438 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1654d593 1439 scalar((ps[(1) - (1)].val.opval))); ;}
0de566d7 1440 break;
1441
4098b6bb 1442 case 184:
421f30ed 1443#line 1229 "perly.y"
1654d593 1444 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1445 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1446 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
f05e27e5 1447
1654d593 1448 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1449 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1450 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
f05e27e5 1451 ;}
0de566d7 1452 break;
1453
4098b6bb 1454 case 185:
421f30ed 1455#line 1238 "perly.y"
1654d593 1456 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1457 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1458 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1459 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
f05e27e5 1460 ;}
0de566d7 1461 break;
1462
4098b6bb 1463 case 186:
421f30ed 1464#line 1244 "perly.y"
1654d593 1465 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1466 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1467 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
f05e27e5 1468 ;}
0de566d7 1469 break;
1470
4098b6bb 1471 case 189:
421f30ed 1472#line 1251 "perly.y"
be25f609 1473 {
1474 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1475 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
950f2ea2 1476 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
be25f609 1477 ;}
1478 break;
1479
4098b6bb 1480 case 191:
421f30ed 1481#line 1261 "perly.y"
1654d593 1482 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
f05e27e5 1483 DO_MAD(
1654d593 1484 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1485 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1486 (ps[(3) - (3)].val.opval)->op_madprop = 0;
f05e27e5 1487 )
1488 ;}
0de566d7 1489 break;
1490
4098b6bb 1491 case 192:
421f30ed 1492#line 1269 "perly.y"
1654d593 1493 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1494 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
f05e27e5 1495 ;}
0de566d7 1496 break;
1497
4098b6bb 1498 case 193:
421f30ed 1499#line 1276 "perly.y"
1654d593 1500 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1501 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1502 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
f05e27e5 1503 ;}
0de566d7 1504 break;
1505
4098b6bb 1506 case 194:
421f30ed 1507#line 1281 "perly.y"
f05e27e5 1508 { (yyval.opval) = sawparens(newNULLLIST());
1654d593 1509 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1510 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
f05e27e5 1511 ;}
0de566d7 1512 break;
1513
718a7425 1514 case 195:
421f30ed 1515#line 1286 "perly.y"
f20dcd76 1516 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7 1517 break;
1518
718a7425 1519 case 196:
421f30ed 1520#line 1288 "perly.y"
4098b6bb 1521 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7 1522 break;
1523
718a7425 1524 case 197:
421f30ed 1525#line 1290 "perly.y"
f20dcd76 1526 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
2af555bf 1527 break;
1528
718a7425 1529 case 198:
421f30ed 1530#line 1295 "perly.y"
f20dcd76 1531 { (yyval.opval) = (OP*)NULL; ;}
be25f609 1532 break;
1533
1534 case 199:
421f30ed 1535#line 1297 "perly.y"
f20dcd76 1536 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1537 break;
1538
1539 case 200:
421f30ed 1540#line 1301 "perly.y"
4098b6bb 1541 { (yyval.opval) = (OP*)NULL; ;}
1542 break;
1543
1544 case 201:
421f30ed 1545#line 1303 "perly.y"
4098b6bb 1546 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1547 break;
1548
1549 case 202:
421f30ed 1550#line 1305 "perly.y"
f05e27e5 1551 {
1552#ifdef MAD
1553 OP* op = newNULLLIST();
1654d593 1554 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
1555 (yyval.opval) = append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
f05e27e5 1556#else
1654d593 1557 (yyval.opval) = (ps[(1) - (2)].val.opval);
f05e27e5 1558#endif
1559
1560 ;}
0de566d7 1561 break;
1562
4098b6bb 1563 case 203:
421f30ed 1564#line 1320 "perly.y"
12bd6ede 1565 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
0de566d7 1566 break;
1567
4098b6bb 1568 case 204:
421f30ed 1569#line 1324 "perly.y"
1654d593 1570 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1571 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
f05e27e5 1572 ;}
0de566d7 1573 break;
1574
4098b6bb 1575 case 205:
421f30ed 1576#line 1330 "perly.y"
1654d593 1577 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1578 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
f05e27e5 1579 ;}
0de566d7 1580 break;
1581
4098b6bb 1582 case 206:
421f30ed 1583#line 1336 "perly.y"
1654d593 1584 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1585 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
f05e27e5 1586 ;}
0de566d7 1587 break;
1588
4098b6bb 1589 case 207:
421f30ed 1590#line 1342 "perly.y"
1654d593 1591 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1592 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
f05e27e5 1593 ;}
500bedb6 1594 break;
1595
4098b6bb 1596 case 208:
421f30ed 1597#line 1348 "perly.y"
1654d593 1598 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1599 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
f05e27e5 1600 ;}
a72a1c8b 1601 break;
1602
4098b6bb 1603 case 209:
421f30ed 1604#line 1354 "perly.y"
1654d593 1605 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1606 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
f05e27e5 1607 ;}
a72a1c8b 1608 break;
1609
4098b6bb 1610 case 210:
421f30ed 1611#line 1361 "perly.y"
503de470 1612 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1613 break;
1614
4098b6bb 1615 case 211:
421f30ed 1616#line 1363 "perly.y"
1654d593 1617 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
3cd0a11a 1618 break;
1619
4098b6bb 1620 case 212:
421f30ed 1621#line 1365 "perly.y"
1654d593 1622 { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
f05e27e5 1623 break;
1624
4098b6bb 1625 case 213:
421f30ed 1626#line 1368 "perly.y"
1654d593 1627 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
f05e27e5 1628 break;
1629
20515881 1630 default: break;
0de566d7 1631