This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
while (my $x ...) { ...; redo } shouldn't undef $x.
[perl5.git] / perly.act
CommitLineData
0de566d7 1case 2:
166f8a29 2#line 97 "perly.y"
a034e688 3 { yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); ;}
0de566d7
DM
4 break;
5
6 case 3:
166f8a29 7#line 102 "perly.y"
a034e688
DM
8 { if (PL_copline > (line_t)yyvsp[-3].ival)
9 PL_copline = (line_t)yyvsp[-3].ival;
10 yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); ;}
0de566d7
DM
11 break;
12
13 case 4:
166f8a29 14#line 108 "perly.y"
a034e688 15 { yyval.ival = block_start(TRUE); ;}
0de566d7
DM
16 break;
17
18 case 5:
166f8a29 19#line 112 "perly.y"
0de566d7 20 {
a034e688 21 PL_expect = XSTATE; yyval.ival = block_start(TRUE);
0de566d7
DM
22 ;}
23 break;
24
25 case 6:
166f8a29 26#line 119 "perly.y"
a034e688
DM
27 { if (PL_copline > (line_t)yyvsp[-3].ival)
28 PL_copline = (line_t)yyvsp[-3].ival;
29 yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); ;}
0de566d7
DM
30 break;
31
32 case 7:
166f8a29 33#line 125 "perly.y"
a034e688 34 { yyval.ival = block_start(FALSE); ;}
0de566d7
DM
35 break;
36
37 case 8:
166f8a29 38#line 129 "perly.y"
a034e688 39 { yyval.ival = PL_savestack_ix; ;}
0de566d7
DM
40 break;
41
42 case 9:
166f8a29 43#line 133 "perly.y"
a034e688 44 { yyval.opval = Nullop; ;}
0de566d7
DM
45 break;
46
47 case 10:
166f8a29 48#line 135 "perly.y"
a034e688 49 { yyval.opval = yyvsp[-1].opval; ;}
0de566d7
DM
50 break;
51
52 case 11:
166f8a29 53#line 137 "perly.y"
a034e688
DM
54 { LEAVE_SCOPE(yyvsp[-1].ival);
55 yyval.opval = append_list(OP_LINESEQ,
56 (LISTOP*)yyvsp[-2].opval, (LISTOP*)yyvsp[0].opval);
500bedb6 57 PL_pad_reset_pending = TRUE;
a034e688 58 if (yyvsp[-2].opval && yyvsp[0].opval) PL_hints |= HINT_BLOCK_SCOPE; ;}
500bedb6
DM
59 break;
60
61 case 12:
166f8a29 62#line 146 "perly.y"
a034e688 63 { yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); ;}
0de566d7
DM
64 break;
65
500bedb6 66 case 14:
166f8a29 67#line 149 "perly.y"
a034e688
DM
68 { if (yyvsp[-1].pval != Nullch) {
69 yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
0de566d7
DM
70 }
71 else {
a034e688 72 yyval.opval = Nullop;
0de566d7
DM
73 PL_copline = NOLINE;
74 }
75 PL_expect = XSTATE; ;}
76 break;
77
500bedb6 78 case 15:
166f8a29 79#line 158 "perly.y"
a034e688 80 { yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
0de566d7
DM
81 PL_expect = XSTATE; ;}
82 break;
83
500bedb6 84 case 16:
166f8a29 85#line 164 "perly.y"
a034e688 86 { yyval.opval = Nullop; ;}
0de566d7
DM
87 break;
88
500bedb6 89 case 17:
166f8a29 90#line 166 "perly.y"
a034e688 91 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
92 break;
93
500bedb6 94 case 18:
166f8a29 95#line 168 "perly.y"
a034e688 96 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); ;}
0de566d7
DM
97 break;
98
500bedb6 99 case 19:
166f8a29 100#line 170 "perly.y"
a034e688 101 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); ;}
0de566d7
DM
102 break;
103
500bedb6 104 case 20:
166f8a29 105#line 172 "perly.y"
a034e688 106 { yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); ;}
0de566d7
DM
107 break;
108
500bedb6 109 case 21:
166f8a29 110#line 174 "perly.y"
a034e688 111 { yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);;}
0de566d7
DM
112 break;
113
500bedb6 114 case 22:
166f8a29 115#line 176 "perly.y"
a034e688
DM
116 { yyval.opval = newFOROP(0, Nullch, (line_t)yyvsp[-1].ival,
117 Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); ;}
0de566d7
DM
118 break;
119
500bedb6 120 case 23:
166f8a29 121#line 182 "perly.y"
a034e688 122 { yyval.opval = Nullop; ;}
0de566d7
DM
123 break;
124
500bedb6 125 case 24:
166f8a29 126#line 184 "perly.y"
a034e688 127 { (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); ;}
0de566d7
DM
128 break;
129
500bedb6 130 case 25:
166f8a29 131#line 186 "perly.y"
a034e688
DM
132 { PL_copline = (line_t)yyvsp[-5].ival;
133 yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval);
0de566d7
DM
134 PL_hints |= HINT_BLOCK_SCOPE; ;}
135 break;
136
500bedb6 137 case 26:
166f8a29 138#line 193 "perly.y"
a034e688
DM
139 { PL_copline = (line_t)yyvsp[-6].ival;
140 yyval.opval = block_end(yyvsp[-4].ival,
141 newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); ;}
0de566d7
DM
142 break;
143
500bedb6 144 case 27:
166f8a29 145#line 197 "perly.y"
a034e688
DM
146 { PL_copline = (line_t)yyvsp[-6].ival;
147 yyval.opval = block_end(yyvsp[-4].ival,
148 newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); ;}
0de566d7
DM
149 break;
150
500bedb6 151 case 28:
166f8a29 152#line 204 "perly.y"
a034e688 153 { yyval.opval = Nullop; ;}
0de566d7
DM
154 break;
155
500bedb6 156 case 29:
166f8a29 157#line 206 "perly.y"
a034e688 158 { yyval.opval = scope(yyvsp[0].opval); ;}
0de566d7
DM
159 break;
160
500bedb6 161 case 30:
166f8a29 162#line 211 "perly.y"
a034e688
DM
163 { PL_copline = (line_t)yyvsp[-7].ival;
164 yyval.opval = block_end(yyvsp[-5].ival,
165 newSTATEOP(0, yyvsp[-8].pval,
0de566d7 166 newWHILEOP(0, 1, (LOOP*)Nullop,
a034e688 167 yyvsp[-7].ival, yyvsp[-4].opval, yyvsp[-1].opval, yyvsp[0].opval, yyvsp[-2].ival))); ;}
0de566d7
DM
168 break;
169
500bedb6 170 case 31:
166f8a29 171#line 217 "perly.y"
a034e688
DM
172 { PL_copline = (line_t)yyvsp[-7].ival;
173 yyval.opval = block_end(yyvsp[-5].ival,
174 newSTATEOP(0, yyvsp[-8].pval,
0de566d7 175 newWHILEOP(0, 1, (LOOP*)Nullop,
a034e688 176 yyvsp[-7].ival, yyvsp[-4].opval, yyvsp[-1].opval, yyvsp[0].opval, yyvsp[-2].ival))); ;}
0de566d7
DM
177 break;
178
500bedb6 179 case 32:
166f8a29 180#line 223 "perly.y"
a034e688
DM
181 { yyval.opval = block_end(yyvsp[-6].ival,
182 newFOROP(0, yyvsp[-9].pval, (line_t)yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); ;}
0de566d7
DM
183 break;
184
500bedb6 185 case 33:
166f8a29 186#line 226 "perly.y"
a034e688
DM
187 { yyval.opval = block_end(yyvsp[-4].ival,
188 newFOROP(0, yyvsp[-8].pval, (line_t)yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
189 yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); ;}
0de566d7
DM
190 break;
191
500bedb6 192 case 34:
166f8a29 193#line 230 "perly.y"
a034e688
DM
194 { yyval.opval = block_end(yyvsp[-4].ival,
195 newFOROP(0, yyvsp[-7].pval, (line_t)yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); ;}
0de566d7
DM
196 break;
197
500bedb6 198 case 35:
a034e688 199#line 235 "perly.y"
0de566d7 200 { OP *forop;
a034e688
DM
201 PL_copline = (line_t)yyvsp[-10].ival;
202 forop = newSTATEOP(0, yyvsp[-11].pval,
0de566d7 203 newWHILEOP(0, 1, (LOOP*)Nullop,
a034e688
DM
204 yyvsp[-10].ival, scalar(yyvsp[-5].opval),
205 yyvsp[0].opval, yyvsp[-2].opval, yyvsp[-3].ival));
206 if (yyvsp[-7].opval) {
0de566d7 207 forop = append_elem(OP_LINESEQ,
a034e688
DM
208 newSTATEOP(0, (yyvsp[-11].pval?savepv(yyvsp[-11].pval):Nullch),
209 yyvsp[-7].opval),
0de566d7
DM
210 forop);
211 }
212
a034e688 213 yyval.opval = block_end(yyvsp[-8].ival, forop); ;}
0de566d7
DM
214 break;
215
500bedb6 216 case 36:
a034e688
DM
217#line 250 "perly.y"
218 { yyval.opval = newSTATEOP(0, yyvsp[-2].pval,
0de566d7 219 newWHILEOP(0, 1, (LOOP*)Nullop,
a034e688 220 NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval, 0)); ;}
0de566d7
DM
221 break;
222
500bedb6 223 case 37:
a034e688
DM
224#line 257 "perly.y"
225 { yyval.ival = (PL_min_intro_pending &&
226 PL_max_intro_pending >= PL_min_intro_pending);
227 intro_my(); ;}
0de566d7
DM
228 break;
229
a034e688
DM
230 case 38:
231#line 263 "perly.y"
232 { yyval.opval = Nullop; ;}
0de566d7
DM
233 break;
234
a034e688
DM
235 case 40:
236#line 269 "perly.y"
237 { (void)scan_num("1", &yylval); yyval.opval = yylval.opval; ;}
0de566d7
DM
238 break;
239
240 case 42:
a034e688
DM
241#line 275 "perly.y"
242 { yyval.opval = invert(scalar(yyvsp[0].opval)); ;}
0de566d7
DM
243 break;
244
245 case 43:
a034e688
DM
246#line 280 "perly.y"
247 { yyval.opval = yyvsp[0].opval; intro_my(); ;}
0de566d7
DM
248 break;
249
250 case 44:
a034e688
DM
251#line 284 "perly.y"
252 { yyval.opval = yyvsp[0].opval; intro_my(); ;}
0de566d7
DM
253 break;
254
255 case 45:
a034e688
DM
256#line 288 "perly.y"
257 { yyval.opval = yyvsp[0].opval; intro_my(); ;}
0de566d7
DM
258 break;
259
500bedb6 260 case 46:
a034e688
DM
261#line 293 "perly.y"
262 { yyval.pval = Nullch; ;}
0de566d7
DM
263 break;
264
265 case 48:
a034e688
DM
266#line 299 "perly.y"
267 { yyval.ival = 0; ;}
0de566d7
DM
268 break;
269
270 case 49:
a034e688
DM
271#line 301 "perly.y"
272 { yyval.ival = 0; ;}
0de566d7
DM
273 break;
274
275 case 50:
a034e688
DM
276#line 303 "perly.y"
277 { yyval.ival = 0; ;}
0de566d7
DM
278 break;
279
280 case 51:
a034e688
DM
281#line 305 "perly.y"
282 { yyval.ival = 0; ;}
0de566d7
DM
283 break;
284
285 case 52:
a034e688
DM
286#line 307 "perly.y"
287 { yyval.ival = 0; ;}
0de566d7
DM
288 break;
289
290 case 53:
a034e688
DM
291#line 311 "perly.y"
292 { newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); ;}
0de566d7
DM
293 break;
294
295 case 54:
a034e688
DM
296#line 314 "perly.y"
297 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
298 break;
299
300 case 55:
a034e688
DM
301#line 315 "perly.y"
302 { yyval.opval = Nullop; ;}
0de566d7
DM
303 break;
304
305 case 56:
a034e688
DM
306#line 320 "perly.y"
307 { newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
0de566d7
DM
308 break;
309
310 case 57:
a034e688
DM
311#line 325 "perly.y"
312 { newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
0de566d7
DM
313 break;
314
315 case 58:
a034e688
DM
316#line 329 "perly.y"
317 { yyval.ival = start_subparse(FALSE, 0); ;}
0de566d7
DM
318 break;
319
320 case 59:
a034e688
DM
321#line 333 "perly.y"
322 { yyval.ival = start_subparse(FALSE, CVf_ANON); ;}
0de566d7
DM
323 break;
324
325 case 60:
a034e688
DM
326#line 337 "perly.y"
327 { yyval.ival = start_subparse(TRUE, 0); ;}
500bedb6
DM
328 break;
329
330 case 61:
a034e688
DM
331#line 341 "perly.y"
332 { STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a);
0de566d7
DM
333 if (strEQ(name, "BEGIN") || strEQ(name, "END")
334 || strEQ(name, "INIT") || strEQ(name, "CHECK"))
335 CvSPECIAL_on(PL_compcv);
a034e688 336 yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
337 break;
338
500bedb6 339 case 62:
a034e688
DM
340#line 350 "perly.y"
341 { yyval.opval = Nullop; ;}
0de566d7
DM
342 break;
343
344 case 64:
a034e688
DM
345#line 356 "perly.y"
346 { yyval.opval = Nullop; ;}
0de566d7
DM
347 break;
348
349 case 65:
a034e688
DM
350#line 358 "perly.y"
351 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
352 break;
353
354 case 66:
a034e688
DM
355#line 360 "perly.y"
356 { yyval.opval = Nullop; ;}
0de566d7
DM
357 break;
358
359 case 67:
a034e688
DM
360#line 365 "perly.y"
361 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
362 break;
363
364 case 68:
a034e688
DM
365#line 367 "perly.y"
366 { yyval.opval = Nullop; ;}
0de566d7
DM
367 break;
368
369 case 69:
a034e688
DM
370#line 371 "perly.y"
371 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
372 break;
373
374 case 70:
a034e688
DM
375#line 372 "perly.y"
376 { yyval.opval = Nullop; PL_expect = XSTATE; ;}
0de566d7
DM
377 break;
378
379 case 71:
a034e688
DM
380#line 376 "perly.y"
381 { package(yyvsp[-1].opval); ;}
0de566d7
DM
382 break;
383
384 case 72:
a034e688 385#line 380 "perly.y"
500bedb6 386 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
0de566d7
DM
387 break;
388
389 case 73:
a034e688
DM
390#line 382 "perly.y"
391 { utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); ;}
0de566d7
DM
392 break;
393
394 case 74:
a034e688
DM
395#line 387 "perly.y"
396 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
0de566d7
DM
397 break;
398
399 case 75:
a034e688
DM
400#line 389 "perly.y"
401 { yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
500bedb6
DM
402 break;
403
404 case 76:
a034e688
DM
405#line 391 "perly.y"
406 { yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
0de566d7
DM
407 break;
408
500bedb6 409 case 78:
a034e688
DM
410#line 397 "perly.y"
411 { yyval.opval = yyvsp[-1].opval; ;}
0de566d7
DM
412 break;
413
500bedb6 414 case 79:
a034e688
DM
415#line 399 "perly.y"
416 { yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); ;}
0de566d7
DM
417 break;
418
500bedb6 419 case 81:
a034e688
DM
420#line 405 "perly.y"
421 { yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
422 prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); ;}
0de566d7
DM
423 break;
424
500bedb6 425 case 82:
a034e688
DM
426#line 408 "perly.y"
427 { yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
428 prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); ;}
0de566d7
DM
429 break;
430
500bedb6 431 case 83:
a034e688
DM
432#line 411 "perly.y"
433 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
0de566d7 434 append_elem(OP_LIST,
a034e688
DM
435 prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval),
436 newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); ;}
0de566d7
DM
437 break;
438
500bedb6 439 case 84:
a034e688
DM
440#line 416 "perly.y"
441 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
442 append_elem(OP_LIST, scalar(yyvsp[-2].opval),
443 newUNOP(OP_METHOD, 0, yyvsp[0].opval))); ;}
0de566d7
DM
444 break;
445
500bedb6 446 case 85:
a034e688
DM
447#line 420 "perly.y"
448 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
0de566d7 449 append_elem(OP_LIST,
a034e688
DM
450 prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval),
451 newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); ;}
0de566d7
DM
452 break;
453
500bedb6 454 case 86:
a034e688
DM
455#line 425 "perly.y"
456 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
0de566d7 457 append_elem(OP_LIST,
a034e688
DM
458 prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval),
459 newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); ;}
0de566d7
DM
460 break;
461
500bedb6 462 case 87:
a034e688
DM
463#line 430 "perly.y"
464 { yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); ;}
0de566d7
DM
465 break;
466
500bedb6 467 case 88:
a034e688
DM
468#line 432 "perly.y"
469 { yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); ;}
0de566d7
DM
470 break;
471
500bedb6 472 case 89:
a034e688
DM
473#line 434 "perly.y"
474 { yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); ;}
0de566d7
DM
475 break;
476
500bedb6 477 case 90:
a034e688
DM
478#line 436 "perly.y"
479 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
0de566d7 480 append_elem(OP_LIST,
a034e688 481 prepend_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval), yyvsp[-4].opval)); ;}
0de566d7
DM
482 break;
483
500bedb6 484 case 93:
a034e688
DM
485#line 450 "perly.y"
486 { yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval));
0de566d7
DM
487 PL_expect = XOPERATOR; ;}
488 break;
489
500bedb6 490 case 94:
a034e688
DM
491#line 453 "perly.y"
492 { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); ;}
0de566d7
DM
493 break;
494
500bedb6 495 case 95:
a034e688
DM
496#line 455 "perly.y"
497 { yyval.opval = newBINOP(OP_AELEM, 0,
498 ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
499 scalar(yyvsp[-1].opval));;}
0de566d7
DM
500 break;
501
500bedb6 502 case 96:
a034e688
DM
503#line 459 "perly.y"
504 { yyval.opval = newBINOP(OP_AELEM, 0,
505 ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
506 scalar(yyvsp[-1].opval));;}
0de566d7
DM
507 break;
508
500bedb6 509 case 97:
a034e688
DM
510#line 463 "perly.y"
511 { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
0de566d7
DM
512 PL_expect = XOPERATOR; ;}
513 break;
514
500bedb6 515 case 98:
a034e688
DM
516#line 466 "perly.y"
517 { yyval.opval = newBINOP(OP_HELEM, 0,
518 ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
519 jmaybe(yyvsp[-2].opval));
0de566d7
DM
520 PL_expect = XOPERATOR; ;}
521 break;
522
500bedb6 523 case 99:
a034e688
DM
524#line 471 "perly.y"
525 { yyval.opval = newBINOP(OP_HELEM, 0,
526 ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
527 jmaybe(yyvsp[-2].opval));
0de566d7
DM
528 PL_expect = XOPERATOR; ;}
529 break;
530
500bedb6 531 case 100:
a034e688
DM
532#line 476 "perly.y"
533 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
534 newCVREF(0, scalar(yyvsp[-3].opval))); ;}
0de566d7
DM
535 break;
536
500bedb6 537 case 101:
a034e688
DM
538#line 479 "perly.y"
539 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
540 append_elem(OP_LIST, yyvsp[-1].opval,
541 newCVREF(0, scalar(yyvsp[-4].opval)))); ;}
0de566d7
DM
542 break;
543
500bedb6 544 case 102:
a034e688
DM
545#line 484 "perly.y"
546 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
547 append_elem(OP_LIST, yyvsp[-1].opval,
548 newCVREF(0, scalar(yyvsp[-3].opval)))); ;}
0de566d7
DM
549 break;
550
500bedb6 551 case 103:
a034e688
DM
552#line 488 "perly.y"
553 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
554 newCVREF(0, scalar(yyvsp[-2].opval))); ;}
0de566d7
DM
555 break;
556
500bedb6 557 case 104:
a034e688
DM
558#line 494 "perly.y"
559 { yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); ;}
0de566d7
DM
560 break;
561
500bedb6 562 case 105:
a034e688
DM
563#line 496 "perly.y"
564 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
0de566d7
DM
565 break;
566
500bedb6 567 case 106:
a034e688
DM
568#line 498 "perly.y"
569 { if (yyvsp[-1].ival != OP_REPEAT)
570 scalar(yyvsp[-2].opval);
571 yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); ;}
0de566d7
DM
572 break;
573
0de566d7 574 case 107:
a034e688
DM
575#line 502 "perly.y"
576 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
0de566d7
DM
577 break;
578
579 case 108:
a034e688
DM
580#line 504 "perly.y"
581 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
0de566d7
DM
582 break;
583
584 case 109:
a034e688
DM
585#line 506 "perly.y"
586 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
0de566d7
DM
587 break;
588
589 case 110:
a034e688
DM
590#line 508 "perly.y"
591 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
0de566d7
DM
592 break;
593
594 case 111:
a034e688
DM
595#line 510 "perly.y"
596 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
0de566d7
DM
597 break;
598
599 case 112:
a034e688
DM
600#line 512 "perly.y"
601 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
0de566d7
DM
602 break;
603
604 case 113:
a034e688
DM
605#line 514 "perly.y"
606 { yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));;}
0de566d7
DM
607 break;
608
609 case 114:
a034e688
DM
610#line 516 "perly.y"
611 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
0de566d7
DM
612 break;
613
614 case 115:
a034e688
DM
615#line 518 "perly.y"
616 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
0de566d7
DM
617 break;
618
619 case 116:
a034e688
DM
620#line 520 "perly.y"
621 { yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
0de566d7
DM
622 break;
623
624 case 117:
a034e688
DM
625#line 522 "perly.y"
626 { yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); ;}
0de566d7
DM
627 break;
628
629 case 118:
a034e688
DM
630#line 527 "perly.y"
631 { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); ;}
0de566d7
DM
632 break;
633
634 case 119:
a034e688
DM
635#line 529 "perly.y"
636 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
637 break;
638
639 case 120:
a034e688
DM
640#line 531 "perly.y"
641 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); ;}
0de566d7
DM
642 break;
643
644 case 121:
a034e688
DM
645#line 533 "perly.y"
646 { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));;}
500bedb6
DM
647 break;
648
649 case 122:
a034e688
DM
650#line 535 "perly.y"
651 { yyval.opval = newUNOP(OP_POSTINC, 0,
652 mod(scalar(yyvsp[-1].opval), OP_POSTINC)); ;}
0de566d7
DM
653 break;
654
500bedb6 655 case 123:
a034e688
DM
656#line 538 "perly.y"
657 { yyval.opval = newUNOP(OP_POSTDEC, 0,
658 mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); ;}
0de566d7
DM
659 break;
660
500bedb6 661 case 124:
a034e688
DM
662#line 541 "perly.y"
663 { yyval.opval = newUNOP(OP_PREINC, 0,
664 mod(scalar(yyvsp[0].opval), OP_PREINC)); ;}
0de566d7
DM
665 break;
666
500bedb6 667 case 125:
a034e688
DM
668#line 544 "perly.y"
669 { yyval.opval = newUNOP(OP_PREDEC, 0,
670 mod(scalar(yyvsp[0].opval), OP_PREDEC)); ;}
0de566d7
DM
671 break;
672
500bedb6 673 case 126:
a034e688
DM
674#line 551 "perly.y"
675 { yyval.opval = newANONLIST(yyvsp[-1].opval); ;}
0de566d7
DM
676 break;
677
500bedb6 678 case 127:
a034e688
DM
679#line 553 "perly.y"
680 { yyval.opval = newANONLIST(Nullop); ;}
0de566d7
DM
681 break;
682
500bedb6 683 case 128:
a034e688
DM
684#line 555 "perly.y"
685 { yyval.opval = newANONHASH(yyvsp[-2].opval); ;}
0de566d7
DM
686 break;
687
500bedb6 688 case 129:
a034e688
DM
689#line 557 "perly.y"
690 { yyval.opval = newANONHASH(Nullop); ;}
0de566d7
DM
691 break;
692
500bedb6 693 case 130:
a034e688
DM
694#line 559 "perly.y"
695 { yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
0de566d7
DM
696 break;
697
500bedb6 698 case 131:
a034e688
DM
699#line 565 "perly.y"
700 { yyval.opval = dofile(yyvsp[0].opval); ;}
0de566d7
DM
701 break;
702
500bedb6 703 case 132:
a034e688
DM
704#line 567 "perly.y"
705 { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); ;}
0de566d7
DM
706 break;
707
500bedb6 708 case 133:
a034e688
DM
709#line 569 "perly.y"
710 { yyval.opval = newUNOP(OP_ENTERSUB,
0de566d7
DM
711 OPf_SPECIAL|OPf_STACKED,
712 prepend_elem(OP_LIST,
713 scalar(newCVREF(
714 (OPpENTERSUB_AMPER<<8),
a034e688 715 scalar(yyvsp[-2].opval)
0de566d7
DM
716 )),Nullop)); dep();;}
717 break;
718
500bedb6 719 case 134:
a034e688
DM
720#line 577 "perly.y"
721 { yyval.opval = newUNOP(OP_ENTERSUB,
0de566d7
DM
722 OPf_SPECIAL|OPf_STACKED,
723 append_elem(OP_LIST,
a034e688 724 yyvsp[-1].opval,
0de566d7
DM
725 scalar(newCVREF(
726 (OPpENTERSUB_AMPER<<8),
a034e688 727 scalar(yyvsp[-3].opval)
0de566d7
DM
728 )))); dep();;}
729 break;
730
500bedb6 731 case 135:
a034e688
DM
732#line 586 "perly.y"
733 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
0de566d7 734 prepend_elem(OP_LIST,
a034e688 735 scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();;}
0de566d7
DM
736 break;
737
500bedb6 738 case 136:
a034e688
DM
739#line 590 "perly.y"
740 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
0de566d7 741 prepend_elem(OP_LIST,
a034e688
DM
742 yyvsp[-1].opval,
743 scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();;}
0de566d7
DM
744 break;
745
0de566d7 746 case 141:
a034e688
DM
747#line 602 "perly.y"
748 { yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); ;}
0de566d7
DM
749 break;
750
751 case 142:
a034e688
DM
752#line 604 "perly.y"
753 { yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); ;}
0de566d7
DM
754 break;
755
756 case 143:
a034e688
DM
757#line 606 "perly.y"
758 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
759 break;
760
761 case 144:
a034e688
DM
762#line 608 "perly.y"
763 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); ;}
0de566d7
DM
764 break;
765
766 case 145:
a034e688
DM
767#line 610 "perly.y"
768 { yyval.opval = sawparens(yyvsp[-1].opval); ;}
0de566d7
DM
769 break;
770
771 case 146:
a034e688
DM
772#line 612 "perly.y"
773 { yyval.opval = sawparens(newNULLLIST()); ;}
0de566d7
DM
774 break;
775
776 case 147:
a034e688
DM
777#line 614 "perly.y"
778 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
779 break;
780
781 case 148:
a034e688
DM
782#line 616 "perly.y"
783 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
784 break;
785
786 case 149:
a034e688
DM
787#line 618 "perly.y"
788 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
789 break;
790
791 case 150:
a034e688
DM
792#line 620 "perly.y"
793 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
794 break;
795
796 case 151:
a034e688
DM
797#line 622 "perly.y"
798 { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));;}
0de566d7
DM
799 break;
800
801 case 152:
a034e688
DM
802#line 624 "perly.y"
803 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
804 break;
805
806 case 153:
a034e688
DM
807#line 626 "perly.y"
808 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); ;}
0de566d7
DM
809 break;
810
811 case 154:
a034e688
DM
812#line 628 "perly.y"
813 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); ;}
500bedb6
DM
814 break;
815
816 case 155:
a034e688
DM
817#line 630 "perly.y"
818 { yyval.opval = prepend_elem(OP_ASLICE,
0de566d7
DM
819 newOP(OP_PUSHMARK, 0),
820 newLISTOP(OP_ASLICE, 0,
a034e688
DM
821 list(yyvsp[-1].opval),
822 ref(yyvsp[-3].opval, OP_ASLICE))); ;}
0de566d7
DM
823 break;
824
500bedb6 825 case 156:
a034e688
DM
826#line 636 "perly.y"
827 { yyval.opval = prepend_elem(OP_HSLICE,
0de566d7
DM
828 newOP(OP_PUSHMARK, 0),
829 newLISTOP(OP_HSLICE, 0,
a034e688
DM
830 list(yyvsp[-2].opval),
831 ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
0de566d7
DM
832 PL_expect = XOPERATOR; ;}
833 break;
834
500bedb6 835 case 157:
a034e688
DM
836#line 643 "perly.y"
837 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
838 break;
839
500bedb6 840 case 158:
a034e688
DM
841#line 645 "perly.y"
842 { yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); ;}
0de566d7
DM
843 break;
844
500bedb6 845 case 159:
a034e688
DM
846#line 647 "perly.y"
847 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); ;}
0de566d7
DM
848 break;
849
500bedb6 850 case 160:
a034e688
DM
851#line 649 "perly.y"
852 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
853 append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); ;}
0de566d7
DM
854 break;
855
500bedb6 856 case 161:
a034e688
DM
857#line 652 "perly.y"
858 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
859 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); ;}
0de566d7
DM
860 break;
861
500bedb6 862 case 162:
a034e688
DM
863#line 655 "perly.y"
864 { yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
0de566d7
DM
865 PL_hints |= HINT_BLOCK_SCOPE; ;}
866 break;
867
500bedb6 868 case 163:
a034e688
DM
869#line 658 "perly.y"
870 { yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); ;}
0de566d7
DM
871 break;
872
500bedb6 873 case 164:
a034e688
DM
874#line 660 "perly.y"
875 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); ;}
0de566d7
DM
876 break;
877
500bedb6 878 case 165:
a034e688
DM
879#line 662 "perly.y"
880 { yyval.opval = newOP(yyvsp[0].ival, 0); ;}
0de566d7
DM
881 break;
882
500bedb6 883 case 166:
a034e688
DM
884#line 664 "perly.y"
885 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); ;}
0de566d7
DM
886 break;
887
500bedb6 888 case 167:
a034e688
DM
889#line 666 "perly.y"
890 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); ;}
0de566d7
DM
891 break;
892
500bedb6 893 case 168:
a034e688
DM
894#line 668 "perly.y"
895 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
896 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); ;}
0de566d7
DM
897 break;
898
500bedb6 899 case 169:
a034e688
DM
900#line 671 "perly.y"
901 { yyval.opval = newOP(yyvsp[0].ival, 0); ;}
0de566d7
DM
902 break;
903
500bedb6 904 case 170:
a034e688
DM
905#line 673 "perly.y"
906 { yyval.opval = newOP(yyvsp[-2].ival, 0); ;}
0de566d7
DM
907 break;
908
500bedb6 909 case 171:
a034e688
DM
910#line 675 "perly.y"
911 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
912 scalar(yyvsp[0].opval)); ;}
0de566d7
DM
913 break;
914
500bedb6 915 case 172:
a034e688
DM
916#line 678 "perly.y"
917 { yyval.opval = yyvsp[-2].ival == OP_NOT ? newUNOP(yyvsp[-2].ival, 0, newSVOP(OP_CONST, 0, newSViv(0)))
918 : newOP(yyvsp[-2].ival, OPf_SPECIAL); ;}
0de566d7
DM
919 break;
920
500bedb6 921 case 173:
a034e688
DM
922#line 681 "perly.y"
923 { yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); ;}
0de566d7
DM
924 break;
925
500bedb6 926 case 174:
a034e688
DM
927#line 683 "perly.y"
928 { yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, 1); ;}
0de566d7
DM
929 break;
930
131b3ad0 931 case 177:
a034e688
DM
932#line 690 "perly.y"
933 { yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); ;}
0de566d7
DM
934 break;
935
0de566d7 936 case 178:
a034e688
DM
937#line 692 "perly.y"
938 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); ;}
0de566d7
DM
939 break;
940
941 case 179:
a034e688
DM
942#line 697 "perly.y"
943 { yyval.opval = sawparens(yyvsp[-1].opval); ;}
0de566d7
DM
944 break;
945
946 case 180:
a034e688
DM
947#line 699 "perly.y"
948 { yyval.opval = sawparens(newNULLLIST()); ;}
0de566d7
DM
949 break;
950
951 case 181:
a034e688
DM
952#line 701 "perly.y"
953 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
954 break;
955
956 case 182:
a034e688
DM
957#line 703 "perly.y"
958 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
959 break;
960
961 case 183:
a034e688
DM
962#line 705 "perly.y"
963 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
964 break;
965
966 case 184:
a034e688
DM
967#line 710 "perly.y"
968 { yyval.opval = Nullop; ;}
0de566d7
DM
969 break;
970
971 case 185:
a034e688
DM
972#line 712 "perly.y"
973 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
974 break;
975
976 case 186:
a034e688
DM
977#line 716 "perly.y"
978 { yyval.opval = Nullop; ;}
0de566d7
DM
979 break;
980
981 case 187:
a034e688
DM
982#line 718 "perly.y"
983 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
984 break;
985
986 case 188:
a034e688
DM
987#line 720 "perly.y"
988 { yyval.opval = yyvsp[-1].opval; ;}
0de566d7
DM
989 break;
990
991 case 189:
a034e688
DM
992#line 726 "perly.y"
993 { PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); ;}
0de566d7
DM
994 break;
995
996 case 190:
a034e688
DM
997#line 730 "perly.y"
998 { yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); ;}
0de566d7
DM
999 break;
1000
1001 case 191:
a034e688
DM
1002#line 734 "perly.y"
1003 { yyval.opval = newSVREF(yyvsp[0].opval); ;}
0de566d7
DM
1004 break;
1005
1006 case 192:
a034e688
DM
1007#line 738 "perly.y"
1008 { yyval.opval = newAVREF(yyvsp[0].opval); ;}
0de566d7
DM
1009 break;
1010
1011 case 193:
a034e688
DM
1012#line 742 "perly.y"
1013 { yyval.opval = newHVREF(yyvsp[0].opval); ;}
0de566d7
DM
1014 break;
1015
1016 case 194:
a034e688
DM
1017#line 746 "perly.y"
1018 { yyval.opval = newAVREF(yyvsp[0].opval); ;}
0de566d7
DM
1019 break;
1020
1021 case 195:
a034e688
DM
1022#line 750 "perly.y"
1023 { yyval.opval = newGVREF(0,yyvsp[0].opval); ;}
0de566d7
DM
1024 break;
1025
1026 case 196:
a034e688
DM
1027#line 755 "perly.y"
1028 { yyval.opval = scalar(yyvsp[0].opval); ;}
0de566d7
DM
1029 break;
1030
1031 case 197:
a034e688
DM
1032#line 757 "perly.y"
1033 { yyval.opval = scalar(yyvsp[0].opval); ;}
0de566d7
DM
1034 break;
1035
1036 case 198:
a034e688
DM
1037#line 759 "perly.y"
1038 { yyval.opval = scope(yyvsp[0].opval); ;}
500bedb6
DM
1039 break;
1040
131b3ad0 1041 case 199:
a034e688
DM
1042#line 762 "perly.y"
1043 { yyval.opval = yyvsp[0].opval; ;}
0de566d7
DM
1044 break;
1045
1046
1047