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