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