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