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