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