This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
internally change "when" to "whereso"
[perl5.git] / perly.act
1 /* -*- buffer-read-only: t -*-
2    !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
3    This file is built by regen_perly.pl from perly.y.
4    Any changes made here will be lost!
5  */
6
7 case 2:
8 #line 118 "perly.y" /* yacc.c:1646  */
9     {
10                           parser->expect = XSTATE;
11                           (yyval.ival) = 0;
12                         }
13
14     break;
15
16   case 3:
17 #line 123 "perly.y" /* yacc.c:1646  */
18     {
19                           newPROG(block_end((ps[-1].val.ival),(ps[0].val.opval)));
20                           PL_compiling.cop_seq = 0;
21                           (yyval.ival) = 0;
22                         }
23
24     break;
25
26   case 4:
27 #line 129 "perly.y" /* yacc.c:1646  */
28     {
29                           parser->expect = XTERM;
30                           (yyval.ival) = 0;
31                         }
32
33     break;
34
35   case 5:
36 #line 134 "perly.y" /* yacc.c:1646  */
37     {
38                           PL_eval_root = (ps[0].val.opval);
39                           (yyval.ival) = 0;
40                         }
41
42     break;
43
44   case 6:
45 #line 139 "perly.y" /* yacc.c:1646  */
46     {
47                           parser->expect = XBLOCK;
48                           (yyval.ival) = 0;
49                         }
50
51     break;
52
53   case 7:
54 #line 144 "perly.y" /* yacc.c:1646  */
55     {
56                           PL_pad_reset_pending = TRUE;
57                           PL_eval_root = (ps[0].val.opval);
58                           (yyval.ival) = 0;
59                           yyunlex();
60                           parser->yychar = yytoken = YYEOF;
61                         }
62
63     break;
64
65   case 8:
66 #line 152 "perly.y" /* yacc.c:1646  */
67     {
68                           parser->expect = XSTATE;
69                           (yyval.ival) = 0;
70                         }
71
72     break;
73
74   case 9:
75 #line 157 "perly.y" /* yacc.c:1646  */
76     {
77                           PL_pad_reset_pending = TRUE;
78                           PL_eval_root = (ps[0].val.opval);
79                           (yyval.ival) = 0;
80                           yyunlex();
81                           parser->yychar = yytoken = YYEOF;
82                         }
83
84     break;
85
86   case 10:
87 #line 165 "perly.y" /* yacc.c:1646  */
88     {
89                           parser->expect = XSTATE;
90                           (yyval.ival) = 0;
91                         }
92
93     break;
94
95   case 11:
96 #line 170 "perly.y" /* yacc.c:1646  */
97     {
98                           PL_pad_reset_pending = TRUE;
99                           PL_eval_root = (ps[0].val.opval);
100                           (yyval.ival) = 0;
101                           yyunlex();
102                           parser->yychar = yytoken = YYEOF;
103                         }
104
105     break;
106
107   case 12:
108 #line 178 "perly.y" /* yacc.c:1646  */
109     {
110                           parser->expect = XSTATE;
111                           (yyval.ival) = 0;
112                         }
113
114     break;
115
116   case 13:
117 #line 183 "perly.y" /* yacc.c:1646  */
118     {
119                           PL_eval_root = (ps[0].val.opval);
120                           (yyval.ival) = 0;
121                         }
122
123     break;
124
125   case 14:
126 #line 191 "perly.y" /* yacc.c:1646  */
127     { if (parser->copline > (line_t)(ps[-3].val.ival))
128                               parser->copline = (line_t)(ps[-3].val.ival);
129                           (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval));
130                         }
131
132     break;
133
134   case 15:
135 #line 199 "perly.y" /* yacc.c:1646  */
136     { if (parser->copline > (line_t)(ps[-6].val.ival))
137                               parser->copline = (line_t)(ps[-6].val.ival);
138                           (yyval.opval) = block_end((ps[-5].val.ival), (ps[-2].val.opval));
139                         }
140
141     break;
142
143   case 16:
144 #line 206 "perly.y" /* yacc.c:1646  */
145     { (yyval.ival) = block_start(TRUE);
146                           parser->parsed_sub = 0; }
147
148     break;
149
150   case 17:
151 #line 211 "perly.y" /* yacc.c:1646  */
152     { if (parser->copline > (line_t)(ps[-3].val.ival))
153                               parser->copline = (line_t)(ps[-3].val.ival);
154                           (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval));
155                         }
156
157     break;
158
159   case 18:
160 #line 218 "perly.y" /* yacc.c:1646  */
161     { (yyval.ival) = block_start(FALSE);
162                           parser->parsed_sub = 0; }
163
164     break;
165
166   case 19:
167 #line 224 "perly.y" /* yacc.c:1646  */
168     { (yyval.opval) = NULL; }
169
170     break;
171
172   case 20:
173 #line 226 "perly.y" /* yacc.c:1646  */
174     {   (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval));
175                             PL_pad_reset_pending = TRUE;
176                             if ((ps[-1].val.opval) && (ps[0].val.opval))
177                                 PL_hints |= HINT_BLOCK_SCOPE;
178                         }
179
180     break;
181
182   case 21:
183 #line 235 "perly.y" /* yacc.c:1646  */
184     { (yyval.opval) = NULL; }
185
186     break;
187
188   case 22:
189 #line 237 "perly.y" /* yacc.c:1646  */
190     {   (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval));
191                             PL_pad_reset_pending = TRUE;
192                             if ((ps[-1].val.opval) && (ps[0].val.opval))
193                                 PL_hints |= HINT_BLOCK_SCOPE;
194                         }
195
196     break;
197
198   case 23:
199 #line 246 "perly.y" /* yacc.c:1646  */
200     {
201                           (yyval.opval) = (ps[0].val.opval) ? newSTATEOP(0, NULL, (ps[0].val.opval)) : NULL;
202                         }
203
204     break;
205
206   case 24:
207 #line 250 "perly.y" /* yacc.c:1646  */
208     { (yyval.opval) = (ps[0].val.opval); }
209
210     break;
211
212   case 25:
213 #line 254 "perly.y" /* yacc.c:1646  */
214     {
215                           (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[-1].val.pval)[strlen((ps[-1].val.pval))+1], (ps[-1].val.pval), (ps[0].val.opval));
216                         }
217
218     break;
219
220   case 26:
221 #line 258 "perly.y" /* yacc.c:1646  */
222     {
223                           (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[-1].val.pval)[strlen((ps[-1].val.pval))+1], (ps[-1].val.pval), (ps[0].val.opval));
224                         }
225
226     break;
227
228   case 27:
229 #line 265 "perly.y" /* yacc.c:1646  */
230     { (yyval.opval) = (ps[0].val.opval); }
231
232     break;
233
234   case 28:
235 #line 267 "perly.y" /* yacc.c:1646  */
236     {
237                           CV *fmtcv = PL_compcv;
238                           newFORM((ps[-2].val.ival), (ps[-1].val.opval), (ps[0].val.opval));
239                           (yyval.opval) = NULL;
240                           if (CvOUTSIDE(fmtcv) && !CvEVAL(CvOUTSIDE(fmtcv))) {
241                               pad_add_weakref(fmtcv);
242                           }
243                           parser->parsed_sub = 1;
244                         }
245
246     break;
247
248   case 29:
249 #line 277 "perly.y" /* yacc.c:1646  */
250     {
251                           if ((ps[-1].val.opval)->op_type == OP_CONST) {
252                             const char *const name =
253                                 SvPV_nolen_const(((SVOP*)(ps[-1].val.opval))->op_sv);
254                             if (strEQ(name, "BEGIN") || strEQ(name, "END")
255                               || strEQ(name, "INIT") || strEQ(name, "CHECK")
256                               || strEQ(name, "UNITCHECK"))
257                               CvSPECIAL_on(PL_compcv);
258                           }
259                           else
260                           /* State subs inside anonymous subs need to be
261                              clonable themselves. */
262                           if (CvANON(CvOUTSIDE(PL_compcv))
263                            || CvCLONE(CvOUTSIDE(PL_compcv))
264                            || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST(
265                                                 CvOUTSIDE(PL_compcv)
266                                              ))[(ps[-1].val.opval)->op_targ]))
267                               CvCLONE_on(PL_compcv);
268                           parser->in_my = 0;
269                           parser->in_my_stash = NULL;
270                         }
271
272     break;
273
274   case 30:
275 #line 299 "perly.y" /* yacc.c:1646  */
276     {
277                           SvREFCNT_inc_simple_void(PL_compcv);
278                           (ps[-5].val.opval)->op_type == OP_CONST
279                               ? newATTRSUB((ps[-4].val.ival), (ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval))
280                               : newMYSUB((ps[-4].val.ival), (ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval))
281                           ;
282                           (yyval.opval) = NULL;
283                           intro_my();
284                           parser->parsed_sub = 1;
285                         }
286
287     break;
288
289   case 31:
290 #line 310 "perly.y" /* yacc.c:1646  */
291     {
292                           if ((ps[-1].val.opval)->op_type == OP_CONST) {
293                             const char *const name =
294                                 SvPV_nolen_const(((SVOP*)(ps[-1].val.opval))->op_sv);
295                             if (strEQ(name, "BEGIN") || strEQ(name, "END")
296                               || strEQ(name, "INIT") || strEQ(name, "CHECK")
297                               || strEQ(name, "UNITCHECK"))
298                               CvSPECIAL_on(PL_compcv);
299                           }
300                           else
301                           /* State subs inside anonymous subs need to be
302                              clonable themselves. */
303                           if (CvANON(CvOUTSIDE(PL_compcv))
304                            || CvCLONE(CvOUTSIDE(PL_compcv))
305                            || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST(
306                                                 CvOUTSIDE(PL_compcv)
307                                              ))[(ps[-1].val.opval)->op_targ]))
308                               CvCLONE_on(PL_compcv);
309                           parser->in_my = 0;
310                           parser->in_my_stash = NULL;
311                         }
312
313     break;
314
315   case 32:
316 #line 332 "perly.y" /* yacc.c:1646  */
317     {
318                           OP *body;
319                           if (parser->copline > (line_t)(ps[-2].val.ival))
320                               parser->copline = (line_t)(ps[-2].val.ival);
321                           body = block_end((ps[-5].val.ival),
322                                 op_append_list(OP_LINESEQ, (ps[-4].val.opval), (ps[-1].val.opval)));
323
324                           SvREFCNT_inc_simple_void(PL_compcv);
325                           (ps[-8].val.opval)->op_type == OP_CONST
326                               ? newATTRSUB((ps[-7].val.ival), (ps[-8].val.opval), NULL, (ps[-3].val.opval), body)
327                               : newMYSUB((ps[-7].val.ival), (ps[-8].val.opval), NULL, (ps[-3].val.opval), body)
328                           ;
329                           (yyval.opval) = NULL;
330                           intro_my();
331                           parser->parsed_sub = 1;
332                         }
333
334     break;
335
336   case 33:
337 #line 349 "perly.y" /* yacc.c:1646  */
338     {
339                           package((ps[-1].val.opval));
340                           if ((ps[-2].val.opval))
341                               package_version((ps[-2].val.opval));
342                           (yyval.opval) = NULL;
343                         }
344
345     break;
346
347   case 34:
348 #line 356 "perly.y" /* yacc.c:1646  */
349     { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
350
351     break;
352
353   case 35:
354 #line 358 "perly.y" /* yacc.c:1646  */
355     {
356                           SvREFCNT_inc_simple_void(PL_compcv);
357                           utilize((ps[-6].val.ival), (ps[-5].val.ival), (ps[-3].val.opval), (ps[-2].val.opval), (ps[-1].val.opval));
358                           parser->parsed_sub = 1;
359                           (yyval.opval) = NULL;
360                         }
361
362     break;
363
364   case 36:
365 #line 365 "perly.y" /* yacc.c:1646  */
366     {
367                           (yyval.opval) = block_end((ps[-4].val.ival),
368                               newCONDOP(0, (ps[-3].val.opval), op_scope((ps[-1].val.opval)), (ps[0].val.opval)));
369                           parser->copline = (line_t)(ps[-6].val.ival);
370                         }
371
372     break;
373
374   case 37:
375 #line 371 "perly.y" /* yacc.c:1646  */
376     {
377                           (yyval.opval) = block_end((ps[-4].val.ival),
378                               newCONDOP(0, (ps[-3].val.opval), (ps[0].val.opval), op_scope((ps[-1].val.opval))));
379                           parser->copline = (line_t)(ps[-6].val.ival);
380                         }
381
382     break;
383
384   case 38:
385 #line 377 "perly.y" /* yacc.c:1646  */
386     {
387                           (yyval.opval) = block_end((ps[-3].val.ival), newGIVENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)), 0));
388                           parser->copline = (line_t)(ps[-5].val.ival);
389                         }
390
391     break;
392
393   case 39:
394 #line 382 "perly.y" /* yacc.c:1646  */
395     { (yyval.opval) = block_end((ps[-3].val.ival), newWHERESOOP((ps[-2].val.opval), op_scope((ps[0].val.opval)))); }
396
397     break;
398
399   case 40:
400 #line 384 "perly.y" /* yacc.c:1646  */
401     {
402                           (yyval.opval) = block_end((ps[-5].val.ival),
403                                   newWHILEOP(0, 1, NULL,
404                                       (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival)));
405                           parser->copline = (line_t)(ps[-7].val.ival);
406                         }
407
408     break;
409
410   case 41:
411 #line 391 "perly.y" /* yacc.c:1646  */
412     {
413                           (yyval.opval) = block_end((ps[-5].val.ival),
414                                   newWHILEOP(0, 1, NULL,
415                                       (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival)));
416                           parser->copline = (line_t)(ps[-7].val.ival);
417                         }
418
419     break;
420
421   case 42:
422 #line 398 "perly.y" /* yacc.c:1646  */
423     { parser->expect = XTERM; }
424
425     break;
426
427   case 43:
428 #line 400 "perly.y" /* yacc.c:1646  */
429     { parser->expect = XTERM; }
430
431     break;
432
433   case 44:
434 #line 403 "perly.y" /* yacc.c:1646  */
435     {
436                           OP *initop = (ps[-9].val.opval);
437                           OP *forop = newWHILEOP(0, 1, NULL,
438                                       scalar((ps[-6].val.opval)), (ps[0].val.opval), (ps[-2].val.opval), (ps[-3].val.ival));
439                           if (initop) {
440                               forop = op_prepend_elem(OP_LINESEQ, initop,
441                                   op_append_elem(OP_LINESEQ,
442                                       newOP(OP_UNSTACK, OPf_SPECIAL),
443                                       forop));
444                           }
445                           PL_hints |= HINT_BLOCK_SCOPE;
446                           (yyval.opval) = block_end((ps[-10].val.ival), forop);
447                           parser->copline = (line_t)(ps[-12].val.ival);
448                         }
449
450     break;
451
452   case 45:
453 #line 418 "perly.y" /* yacc.c:1646  */
454     {
455                           (yyval.opval) = block_end((ps[-6].val.ival), newFOROP(0, (ps[-5].val.opval), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)));
456                           parser->copline = (line_t)(ps[-8].val.ival);
457                         }
458
459     break;
460
461   case 46:
462 #line 423 "perly.y" /* yacc.c:1646  */
463     {
464                           (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0,
465                                       op_lvalue((ps[-6].val.opval), OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)));
466                           parser->copline = (line_t)(ps[-7].val.ival);
467                         }
468
469     break;
470
471   case 47:
472 #line 429 "perly.y" /* yacc.c:1646  */
473     { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
474
475     break;
476
477   case 48:
478 #line 431 "perly.y" /* yacc.c:1646  */
479     {
480                           (yyval.opval) = block_end(
481                                 (ps[-7].val.ival),
482                                 newFOROP(0,
483                                          op_lvalue(
484                                             newUNOP(OP_REFGEN, 0,
485                                                     (ps[-5].val.opval)),
486                                             OP_ENTERLOOP),
487                                          (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))
488                           );
489                           parser->copline = (line_t)(ps[-9].val.ival);
490                         }
491
492     break;
493
494   case 49:
495 #line 444 "perly.y" /* yacc.c:1646  */
496     {
497                           (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(
498                                 0, op_lvalue(newUNOP(OP_REFGEN, 0,
499                                                      (ps[-6].val.opval)),
500                                              OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)));
501                           parser->copline = (line_t)(ps[-8].val.ival);
502                         }
503
504     break;
505
506   case 50:
507 #line 452 "perly.y" /* yacc.c:1646  */
508     {
509                           (yyval.opval) = block_end((ps[-4].val.ival),
510                                   newFOROP(0, NULL, (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)));
511                           parser->copline = (line_t)(ps[-6].val.ival);
512                         }
513
514     break;
515
516   case 51:
517 #line 458 "perly.y" /* yacc.c:1646  */
518     {
519                           /* a block is a loop that happens once */
520                           (yyval.opval) = newWHILEOP(0, 1, NULL,
521                                   NULL, (ps[-1].val.opval), (ps[0].val.opval), 0);
522                         }
523
524     break;
525
526   case 52:
527 #line 464 "perly.y" /* yacc.c:1646  */
528     {
529                           package((ps[-2].val.opval));
530                           if ((ps[-3].val.opval)) {
531                               package_version((ps[-3].val.opval));
532                           }
533                         }
534
535     break;
536
537   case 53:
538 #line 471 "perly.y" /* yacc.c:1646  */
539     {
540                           /* a block is a loop that happens once */
541                           (yyval.opval) = newWHILEOP(0, 1, NULL,
542                                   NULL, block_end((ps[-3].val.ival), (ps[-1].val.opval)), NULL, 0);
543                           if (parser->copline > (line_t)(ps[-4].val.ival))
544                               parser->copline = (line_t)(ps[-4].val.ival);
545                         }
546
547     break;
548
549   case 54:
550 #line 479 "perly.y" /* yacc.c:1646  */
551     {
552                           (yyval.opval) = (ps[-1].val.opval);
553                         }
554
555     break;
556
557   case 55:
558 #line 483 "perly.y" /* yacc.c:1646  */
559     {
560                           (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
561                                 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
562                         }
563
564     break;
565
566   case 56:
567 #line 488 "perly.y" /* yacc.c:1646  */
568     {
569                           (yyval.opval) = NULL;
570                           parser->copline = NOLINE;
571                         }
572
573     break;
574
575   case 57:
576 #line 496 "perly.y" /* yacc.c:1646  */
577     { OP *list;
578                           if ((ps[0].val.opval)) {
579                               OP *term = (ps[0].val.opval);
580                               list = op_append_elem(OP_LIST, (ps[-1].val.opval), term);
581                           }
582                           else {
583                               list = (ps[-1].val.opval);
584                           }
585                           if (parser->copline == NOLINE)
586                                parser->copline = CopLINE(PL_curcop)-1;
587                           else parser->copline--;
588                           (yyval.opval) = newSTATEOP(0, NULL,
589                                           op_convert_list(OP_FORMLINE, 0, list));
590                         }
591
592     break;
593
594   case 58:
595 #line 513 "perly.y" /* yacc.c:1646  */
596     { (yyval.opval) = NULL; }
597
598     break;
599
600   case 59:
601 #line 515 "perly.y" /* yacc.c:1646  */
602     { (yyval.opval) = op_unscope((ps[-1].val.opval)); }
603
604     break;
605
606   case 60:
607 #line 520 "perly.y" /* yacc.c:1646  */
608     { (yyval.opval) = NULL; }
609
610     break;
611
612   case 61:
613 #line 522 "perly.y" /* yacc.c:1646  */
614     { (yyval.opval) = (ps[0].val.opval); }
615
616     break;
617
618   case 62:
619 #line 524 "perly.y" /* yacc.c:1646  */
620     { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[0].val.opval), (ps[-2].val.opval)); }
621
622     break;
623
624   case 63:
625 #line 526 "perly.y" /* yacc.c:1646  */
626     { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[0].val.opval), (ps[-2].val.opval)); }
627
628     break;
629
630   case 64:
631 #line 528 "perly.y" /* yacc.c:1646  */
632     { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[0].val.opval)), (ps[-2].val.opval)); }
633
634     break;
635
636   case 65:
637 #line 530 "perly.y" /* yacc.c:1646  */
638     { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[0].val.opval), (ps[-2].val.opval)); }
639
640     break;
641
642   case 66:
643 #line 532 "perly.y" /* yacc.c:1646  */
644     { (yyval.opval) = newFOROP(0, NULL, (ps[0].val.opval), (ps[-2].val.opval), NULL);
645                           parser->copline = (line_t)(ps[-1].val.ival); }
646
647     break;
648
649   case 67:
650 #line 535 "perly.y" /* yacc.c:1646  */
651     { (yyval.opval) = newWHERESOOP((ps[0].val.opval), op_scope((ps[-2].val.opval))); }
652
653     break;
654
655   case 68:
656 #line 540 "perly.y" /* yacc.c:1646  */
657     { (yyval.opval) = NULL; }
658
659     break;
660
661   case 69:
662 #line 542 "perly.y" /* yacc.c:1646  */
663     {
664                           ((ps[0].val.opval))->op_flags |= OPf_PARENS;
665                           (yyval.opval) = op_scope((ps[0].val.opval));
666                         }
667
668     break;
669
670   case 70:
671 #line 547 "perly.y" /* yacc.c:1646  */
672     { parser->copline = (line_t)(ps[-5].val.ival);
673                             (yyval.opval) = newCONDOP(0,
674                                 newSTATEOP(OPf_SPECIAL,NULL,(ps[-3].val.opval)),
675                                 op_scope((ps[-1].val.opval)), (ps[0].val.opval));
676                           PL_hints |= HINT_BLOCK_SCOPE;
677                         }
678
679     break;
680
681   case 71:
682 #line 557 "perly.y" /* yacc.c:1646  */
683     { (yyval.opval) = NULL; }
684
685     break;
686
687   case 72:
688 #line 559 "perly.y" /* yacc.c:1646  */
689     { (yyval.opval) = op_scope((ps[0].val.opval)); }
690
691     break;
692
693   case 73:
694 #line 564 "perly.y" /* yacc.c:1646  */
695     { (yyval.ival) = (PL_min_intro_pending &&
696                             PL_max_intro_pending >=  PL_min_intro_pending);
697                           intro_my(); }
698
699     break;
700
701   case 74:
702 #line 570 "perly.y" /* yacc.c:1646  */
703     { (yyval.opval) = NULL; }
704
705     break;
706
707   case 76:
708 #line 576 "perly.y" /* yacc.c:1646  */
709     { YYSTYPE tmplval;
710                           (void)scan_num("1", &tmplval);
711                           (yyval.opval) = tmplval.opval; }
712
713     break;
714
715   case 78:
716 #line 584 "perly.y" /* yacc.c:1646  */
717     { (yyval.opval) = invert(scalar((ps[0].val.opval))); }
718
719     break;
720
721   case 79:
722 #line 589 "perly.y" /* yacc.c:1646  */
723     { (yyval.opval) = (ps[0].val.opval); intro_my(); }
724
725     break;
726
727   case 80:
728 #line 593 "perly.y" /* yacc.c:1646  */
729     { (yyval.opval) = (ps[0].val.opval); intro_my(); }
730
731     break;
732
733   case 81:
734 #line 596 "perly.y" /* yacc.c:1646  */
735     { (yyval.opval) = (ps[0].val.opval); }
736
737     break;
738
739   case 82:
740 #line 597 "perly.y" /* yacc.c:1646  */
741     { (yyval.opval) = NULL; }
742
743     break;
744
745   case 83:
746 #line 601 "perly.y" /* yacc.c:1646  */
747     { (yyval.ival) = start_subparse(FALSE, 0);
748                             SAVEFREESV(PL_compcv); }
749
750     break;
751
752   case 84:
753 #line 607 "perly.y" /* yacc.c:1646  */
754     { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
755                             SAVEFREESV(PL_compcv); }
756
757     break;
758
759   case 85:
760 #line 612 "perly.y" /* yacc.c:1646  */
761     { (yyval.ival) = start_subparse(TRUE, 0);
762                             SAVEFREESV(PL_compcv); }
763
764     break;
765
766   case 88:
767 #line 623 "perly.y" /* yacc.c:1646  */
768     { (yyval.opval) = NULL; }
769
770     break;
771
772   case 90:
773 #line 629 "perly.y" /* yacc.c:1646  */
774     { (yyval.opval) = NULL; }
775
776     break;
777
778   case 91:
779 #line 631 "perly.y" /* yacc.c:1646  */
780     { (yyval.opval) = (ps[0].val.opval); }
781
782     break;
783
784   case 92:
785 #line 633 "perly.y" /* yacc.c:1646  */
786     { (yyval.opval) = NULL; }
787
788     break;
789
790   case 93:
791 #line 638 "perly.y" /* yacc.c:1646  */
792     { (yyval.opval) = (ps[0].val.opval); }
793
794     break;
795
796   case 94:
797 #line 640 "perly.y" /* yacc.c:1646  */
798     { (yyval.opval) = NULL; }
799
800     break;
801
802   case 95:
803 #line 651 "perly.y" /* yacc.c:1646  */
804     { parser->in_my = 0; (yyval.opval) = NULL; }
805
806     break;
807
808   case 96:
809 #line 653 "perly.y" /* yacc.c:1646  */
810     { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); }
811
812     break;
813
814   case 97:
815 #line 658 "perly.y" /* yacc.c:1646  */
816     { (yyval.ival) = '@'; }
817
818     break;
819
820   case 98:
821 #line 660 "perly.y" /* yacc.c:1646  */
822     { (yyval.ival) = '%'; }
823
824     break;
825
826   case 99:
827 #line 664 "perly.y" /* yacc.c:1646  */
828     {
829                             I32 sigil   = (ps[-2].val.ival);
830                             OP *var     = (ps[-1].val.opval);
831                             OP *defexpr = (ps[0].val.opval);
832
833                             if (parser->sig_slurpy)
834                                 yyerror("Multiple slurpy parameters not allowed");
835                             parser->sig_slurpy = (char)sigil;
836
837                             if (defexpr)
838                                 yyerror("A slurpy parameter may not have "
839                                         "a default value");
840
841                             (yyval.opval) = var ? newSTATEOP(0, NULL, var) : NULL;
842                         }
843
844     break;
845
846   case 100:
847 #line 683 "perly.y" /* yacc.c:1646  */
848     { (yyval.opval) = NULL; }
849
850     break;
851
852   case 101:
853 #line 685 "perly.y" /* yacc.c:1646  */
854     { (yyval.opval) = newOP(OP_NULL, 0); }
855
856     break;
857
858   case 102:
859 #line 687 "perly.y" /* yacc.c:1646  */
860     { (yyval.opval) = (ps[0].val.opval); }
861
862     break;
863
864   case 103:
865 #line 693 "perly.y" /* yacc.c:1646  */
866     {
867                             OP *var     = (ps[-1].val.opval);
868                             OP *defexpr = (ps[0].val.opval);
869
870                             if (parser->sig_slurpy)
871                                 yyerror("Slurpy parameter not last");
872
873                             parser->sig_elems++;
874
875                             if (defexpr) {
876                                 parser->sig_optelems++;
877
878                                 if (   defexpr->op_type == OP_NULL
879                                     && !(defexpr->op_flags & OPf_KIDS))
880                                 {
881                                     /* handle '$=' special case */
882                                     if (var)
883                                         yyerror("Optional parameter "
884                                                     "lacks default expression");
885                                     op_free(defexpr);
886                                 }
887                                 else { 
888                                     /* a normal '=default' expression */ 
889                                     OP *defop = (OP*)alloc_LOGOP(OP_ARGDEFELEM,
890                                                         defexpr,
891                                                         LINKLIST(defexpr));
892                                     /* re-purpose op_targ to hold @_ index */
893                                     defop->op_targ =
894                                         (PADOFFSET)(parser->sig_elems - 1);
895
896                                     if (var) {
897                                         var->op_flags |= OPf_STACKED;
898                                         (void)op_sibling_splice(var,
899                                                         NULL, 0, defop);
900                                         scalar(defop);
901                                     }
902                                     else
903                                         var = newUNOP(OP_NULL, 0, defop);
904
905                                     LINKLIST(var);
906                                     /* NB: normally the first child of a
907                                      * logop is executed before the logop,
908                                      * and it pushes a boolean result
909                                      * ready for the logop. For ARGDEFELEM,
910                                      * the op itself does the boolean
911                                      * calculation, so set the first op to
912                                      * it instead.
913                                      */
914                                     var->op_next = defop;
915                                     defexpr->op_next = var;
916                                 }
917                             }
918                             else {
919                                 if (parser->sig_optelems)
920                                     yyerror("Mandatory parameter "
921                                             "follows optional parameter");
922                             }
923
924                             (yyval.opval) = var ? newSTATEOP(0, NULL, var) : NULL;
925                         }
926
927     break;
928
929   case 104:
930 #line 758 "perly.y" /* yacc.c:1646  */
931     { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); }
932
933     break;
934
935   case 105:
936 #line 760 "perly.y" /* yacc.c:1646  */
937     { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); }
938
939     break;
940
941   case 106:
942 #line 766 "perly.y" /* yacc.c:1646  */
943     { (yyval.opval) = (ps[-1].val.opval); }
944
945     break;
946
947   case 107:
948 #line 768 "perly.y" /* yacc.c:1646  */
949     {
950                           (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-2].val.opval), (ps[0].val.opval));
951                         }
952
953     break;
954
955   case 108:
956 #line 772 "perly.y" /* yacc.c:1646  */
957     { (yyval.opval) = (ps[0].val.opval); }
958
959     break;
960
961   case 109:
962 #line 777 "perly.y" /* yacc.c:1646  */
963     { (yyval.opval) = NULL; }
964
965     break;
966
967   case 110:
968 #line 779 "perly.y" /* yacc.c:1646  */
969     { (yyval.opval) = (ps[0].val.opval); }
970
971     break;
972
973   case 111:
974 #line 783 "perly.y" /* yacc.c:1646  */
975     {
976                             ENTER;
977                             SAVEIV(parser->sig_elems);
978                             SAVEIV(parser->sig_optelems);
979                             SAVEI8(parser->sig_slurpy);
980                             parser->sig_elems    = 0;
981                             parser->sig_optelems = 0;
982                             parser->sig_slurpy   = 0;
983                             parser->in_my        = KEY_sigvar;
984                         }
985
986     break;
987
988   case 112:
989 #line 795 "perly.y" /* yacc.c:1646  */
990     {
991                             OP            *sigops = (ps[-1].val.opval);
992                             UNOP_AUX_item *aux;
993                             OP            *check;
994
995                             if (!parser->error_count) {
996                                 assert(FEATURE_SIGNATURES_IS_ENABLED);
997                             }
998
999                             /* We shouldn't get here otherwise */
1000                             Perl_ck_warner_d(aTHX_
1001                                 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
1002                                 "The signatures feature is experimental");
1003
1004                             aux = (UNOP_AUX_item*)PerlMemShared_malloc(
1005                                 sizeof(UNOP_AUX_item) * 3);
1006                             aux[0].iv = parser->sig_elems;
1007                             aux[1].iv = parser->sig_optelems;
1008                             aux[2].iv = parser->sig_slurpy;
1009                             check = newUNOP_AUX(OP_ARGCHECK, 0, NULL, aux);
1010                             sigops = op_prepend_elem(OP_LINESEQ, check, sigops);
1011                             sigops = op_prepend_elem(OP_LINESEQ,
1012                                                 newSTATEOP(0, NULL, NULL),
1013                                                 sigops);
1014                             /* a nextstate at the end handles context
1015                              * correctly for an empty sub body */
1016                             (yyval.opval) = op_append_elem(OP_LINESEQ,
1017                                                 sigops,
1018                                                 newSTATEOP(0, NULL, NULL));
1019
1020                             parser->in_my = 0;
1021                             parser->expect = XATTRBLOCK;
1022                             LEAVE;
1023                         }
1024
1025     break;
1026
1027   case 114:
1028 #line 835 "perly.y" /* yacc.c:1646  */
1029     { (yyval.opval) = NULL; }
1030
1031     break;
1032
1033   case 115:
1034 #line 840 "perly.y" /* yacc.c:1646  */
1035     { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1036
1037     break;
1038
1039   case 116:
1040 #line 842 "perly.y" /* yacc.c:1646  */
1041     { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1042
1043     break;
1044
1045   case 117:
1046 #line 844 "perly.y" /* yacc.c:1646  */
1047     { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1048
1049     break;
1050
1051   case 119:
1052 #line 850 "perly.y" /* yacc.c:1646  */
1053     { (yyval.opval) = (ps[-1].val.opval); }
1054
1055     break;
1056
1057   case 120:
1058 #line 852 "perly.y" /* yacc.c:1646  */
1059     {
1060                           OP* term = (ps[0].val.opval);
1061                           (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term);
1062                         }
1063
1064     break;
1065
1066   case 122:
1067 #line 861 "perly.y" /* yacc.c:1646  */
1068     { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED,
1069                                 op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) );
1070                         }
1071
1072     break;
1073
1074   case 123:
1075 #line 865 "perly.y" /* yacc.c:1646  */
1076     { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED,
1077                                 op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) );
1078                         }
1079
1080     break;
1081
1082   case 124:
1083 #line 869 "perly.y" /* yacc.c:1646  */
1084     { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1085                                 op_append_elem(OP_LIST,
1086                                     op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)),
1087                                     newMETHOP(OP_METHOD, 0, (ps[-3].val.opval))));
1088                         }
1089
1090     break;
1091
1092   case 125:
1093 #line 875 "perly.y" /* yacc.c:1646  */
1094     { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1095                                 op_append_elem(OP_LIST, scalar((ps[-2].val.opval)),
1096                                     newMETHOP(OP_METHOD, 0, (ps[0].val.opval))));
1097                         }
1098
1099     break;
1100
1101   case 126:
1102 #line 880 "perly.y" /* yacc.c:1646  */
1103     { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1104                                 op_append_elem(OP_LIST,
1105                                     op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)),
1106                                     newMETHOP(OP_METHOD, 0, (ps[-2].val.opval))));
1107                         }
1108
1109     break;
1110
1111   case 127:
1112 #line 886 "perly.y" /* yacc.c:1646  */
1113     { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
1114                                 op_append_elem(OP_LIST,
1115                                     op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)),
1116                                     newMETHOP(OP_METHOD, 0, (ps[-4].val.opval))));
1117                         }
1118
1119     break;
1120
1121   case 128:
1122 #line 892 "perly.y" /* yacc.c:1646  */
1123     { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1124
1125     break;
1126
1127   case 129:
1128 #line 894 "perly.y" /* yacc.c:1646  */
1129     { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
1130
1131     break;
1132
1133   case 130:
1134 #line 896 "perly.y" /* yacc.c:1646  */
1135     { SvREFCNT_inc_simple_void(PL_compcv);
1136                           (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, NULL, (ps[0].val.opval)); }
1137
1138     break;
1139
1140   case 131:
1141 #line 899 "perly.y" /* yacc.c:1646  */
1142     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1143                                  op_append_elem(OP_LIST,
1144                                    op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval)));
1145                         }
1146
1147     break;
1148
1149   case 134:
1150 #line 914 "perly.y" /* yacc.c:1646  */
1151     { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); }
1152
1153     break;
1154
1155   case 135:
1156 #line 916 "perly.y" /* yacc.c:1646  */
1157     { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval)));
1158                         }
1159
1160     break;
1161
1162   case 136:
1163 #line 919 "perly.y" /* yacc.c:1646  */
1164     { (yyval.opval) = newBINOP(OP_AELEM, 0,
1165                                         ref(newAVREF((ps[-4].val.opval)),OP_RV2AV),
1166                                         scalar((ps[-1].val.opval)));
1167                         }
1168
1169     break;
1170
1171   case 137:
1172 #line 924 "perly.y" /* yacc.c:1646  */
1173     { (yyval.opval) = newBINOP(OP_AELEM, 0,
1174                                         ref(newAVREF((ps[-3].val.opval)),OP_RV2AV),
1175                                         scalar((ps[-1].val.opval)));
1176                         }
1177
1178     break;
1179
1180   case 138:
1181 #line 929 "perly.y" /* yacc.c:1646  */
1182     { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval)));
1183                         }
1184
1185     break;
1186
1187   case 139:
1188 #line 932 "perly.y" /* yacc.c:1646  */
1189     { (yyval.opval) = newBINOP(OP_HELEM, 0,
1190                                         ref(newHVREF((ps[-5].val.opval)),OP_RV2HV),
1191                                         jmaybe((ps[-2].val.opval))); }
1192
1193     break;
1194
1195   case 140:
1196 #line 936 "perly.y" /* yacc.c:1646  */
1197     { (yyval.opval) = newBINOP(OP_HELEM, 0,
1198                                         ref(newHVREF((ps[-4].val.opval)),OP_RV2HV),
1199                                         jmaybe((ps[-2].val.opval))); }
1200
1201     break;
1202
1203   case 141:
1204 #line 940 "perly.y" /* yacc.c:1646  */
1205     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1206                                    newCVREF(0, scalar((ps[-3].val.opval)))); }
1207
1208     break;
1209
1210   case 142:
1211 #line 943 "perly.y" /* yacc.c:1646  */
1212     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1213                                    op_append_elem(OP_LIST, (ps[-1].val.opval),
1214                                        newCVREF(0, scalar((ps[-4].val.opval))))); }
1215
1216     break;
1217
1218   case 143:
1219 #line 948 "perly.y" /* yacc.c:1646  */
1220     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1221                                    op_append_elem(OP_LIST, (ps[-1].val.opval),
1222                                                newCVREF(0, scalar((ps[-3].val.opval))))); }
1223
1224     break;
1225
1226   case 144:
1227 #line 952 "perly.y" /* yacc.c:1646  */
1228     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1229                                    newCVREF(0, scalar((ps[-2].val.opval)))); }
1230
1231     break;
1232
1233   case 145:
1234 #line 955 "perly.y" /* yacc.c:1646  */
1235     { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); }
1236
1237     break;
1238
1239   case 146:
1240 #line 957 "perly.y" /* yacc.c:1646  */
1241     { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); }
1242
1243     break;
1244
1245   case 147:
1246 #line 959 "perly.y" /* yacc.c:1646  */
1247     { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); }
1248
1249     break;
1250
1251   case 148:
1252 #line 964 "perly.y" /* yacc.c:1646  */
1253     { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); }
1254
1255     break;
1256
1257   case 149:
1258 #line 966 "perly.y" /* yacc.c:1646  */
1259     { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1260
1261     break;
1262
1263   case 150:
1264 #line 968 "perly.y" /* yacc.c:1646  */
1265     {   if ((ps[-1].val.ival) != OP_REPEAT)
1266                                 scalar((ps[-2].val.opval));
1267                             (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval)));
1268                         }
1269
1270     break;
1271
1272   case 151:
1273 #line 973 "perly.y" /* yacc.c:1646  */
1274     { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1275
1276     break;
1277
1278   case 152:
1279 #line 975 "perly.y" /* yacc.c:1646  */
1280     { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1281
1282     break;
1283
1284   case 153:
1285 #line 977 "perly.y" /* yacc.c:1646  */
1286     { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1287
1288     break;
1289
1290   case 154:
1291 #line 979 "perly.y" /* yacc.c:1646  */
1292     { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1293
1294     break;
1295
1296   case 155:
1297 #line 981 "perly.y" /* yacc.c:1646  */
1298     { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1299
1300     break;
1301
1302   case 156:
1303 #line 983 "perly.y" /* yacc.c:1646  */
1304     { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1305
1306     break;
1307
1308   case 157:
1309 #line 985 "perly.y" /* yacc.c:1646  */
1310     { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1311
1312     break;
1313
1314   case 158:
1315 #line 987 "perly.y" /* yacc.c:1646  */
1316     { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1317
1318     break;
1319
1320   case 159:
1321 #line 989 "perly.y" /* yacc.c:1646  */
1322     { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1323
1324     break;
1325
1326   case 160:
1327 #line 991 "perly.y" /* yacc.c:1646  */
1328     { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1329
1330     break;
1331
1332   case 161:
1333 #line 993 "perly.y" /* yacc.c:1646  */
1334     { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
1335
1336     break;
1337
1338   case 162:
1339 #line 998 "perly.y" /* yacc.c:1646  */
1340     { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); }
1341
1342     break;
1343
1344   case 163:
1345 #line 1000 "perly.y" /* yacc.c:1646  */
1346     { (yyval.opval) = (ps[0].val.opval); }
1347
1348     break;
1349
1350   case 164:
1351 #line 1003 "perly.y" /* yacc.c:1646  */
1352     { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
1353
1354     break;
1355
1356   case 165:
1357 #line 1005 "perly.y" /* yacc.c:1646  */
1358     { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); }
1359
1360     break;
1361
1362   case 166:
1363 #line 1007 "perly.y" /* yacc.c:1646  */
1364     { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1365                                         op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); }
1366
1367     break;
1368
1369   case 167:
1370 #line 1010 "perly.y" /* yacc.c:1646  */
1371     { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1372                                         op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));}
1373
1374     break;
1375
1376   case 168:
1377 #line 1013 "perly.y" /* yacc.c:1646  */
1378     { (yyval.opval) = op_convert_list(OP_JOIN, 0,
1379                                        op_append_elem(
1380                                         OP_LIST,
1381                                         newSVREF(scalar(
1382                                             newSVOP(OP_CONST,0,
1383                                                     newSVpvs("\""))
1384                                         )),
1385                                         (ps[-1].val.opval)
1386                                        ));
1387                         }
1388
1389     break;
1390
1391   case 169:
1392 #line 1024 "perly.y" /* yacc.c:1646  */
1393     { (yyval.opval) = newUNOP(OP_PREINC, 0,
1394                                         op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); }
1395
1396     break;
1397
1398   case 170:
1399 #line 1027 "perly.y" /* yacc.c:1646  */
1400     { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1401                                         op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); }
1402
1403     break;
1404
1405   case 171:
1406 #line 1034 "perly.y" /* yacc.c:1646  */
1407     { (yyval.opval) = newANONLIST((ps[-1].val.opval)); }
1408
1409     break;
1410
1411   case 172:
1412 #line 1036 "perly.y" /* yacc.c:1646  */
1413     { (yyval.opval) = newANONLIST(NULL);}
1414
1415     break;
1416
1417   case 173:
1418 #line 1038 "perly.y" /* yacc.c:1646  */
1419     { (yyval.opval) = newANONHASH((ps[-2].val.opval)); }
1420
1421     break;
1422
1423   case 174:
1424 #line 1040 "perly.y" /* yacc.c:1646  */
1425     { (yyval.opval) = newANONHASH(NULL); }
1426
1427     break;
1428
1429   case 175:
1430 #line 1042 "perly.y" /* yacc.c:1646  */
1431     { SvREFCNT_inc_simple_void(PL_compcv);
1432                           (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); }
1433
1434     break;
1435
1436   case 176:
1437 #line 1045 "perly.y" /* yacc.c:1646  */
1438     {
1439                           OP *body;
1440                           if (parser->copline > (line_t)(ps[-2].val.ival))
1441                               parser->copline = (line_t)(ps[-2].val.ival);
1442                           body = block_end((ps[-5].val.ival),
1443                                 op_append_list(OP_LINESEQ, (ps[-4].val.opval), (ps[-1].val.opval)));
1444                           SvREFCNT_inc_simple_void(PL_compcv);
1445                           (yyval.opval) = newANONATTRSUB((ps[-6].val.ival), NULL, (ps[-3].val.opval), body);
1446                         }
1447
1448     break;
1449
1450   case 177:
1451 #line 1059 "perly.y" /* yacc.c:1646  */
1452     { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));}
1453
1454     break;
1455
1456   case 178:
1457 #line 1061 "perly.y" /* yacc.c:1646  */
1458     { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));}
1459
1460     break;
1461
1462   case 183:
1463 #line 1069 "perly.y" /* yacc.c:1646  */
1464     { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); }
1465
1466     break;
1467
1468   case 184:
1469 #line 1071 "perly.y" /* yacc.c:1646  */
1470     { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); }
1471
1472     break;
1473
1474   case 185:
1475 #line 1073 "perly.y" /* yacc.c:1646  */
1476     { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); }
1477
1478     break;
1479
1480   case 186:
1481 #line 1075 "perly.y" /* yacc.c:1646  */
1482     { (yyval.opval) = (ps[0].val.opval); }
1483
1484     break;
1485
1486   case 187:
1487 #line 1077 "perly.y" /* yacc.c:1646  */
1488     { (yyval.opval) = localize((ps[0].val.opval),0); }
1489
1490     break;
1491
1492   case 188:
1493 #line 1079 "perly.y" /* yacc.c:1646  */
1494     { (yyval.opval) = sawparens((ps[-1].val.opval)); }
1495
1496     break;
1497
1498   case 189:
1499 #line 1081 "perly.y" /* yacc.c:1646  */
1500     { (yyval.opval) = (ps[0].val.opval); }
1501
1502     break;
1503
1504   case 190:
1505 #line 1083 "perly.y" /* yacc.c:1646  */
1506     { (yyval.opval) = sawparens(newNULLLIST()); }
1507
1508     break;
1509
1510   case 191:
1511 #line 1085 "perly.y" /* yacc.c:1646  */
1512     { (yyval.opval) = (ps[0].val.opval); }
1513
1514     break;
1515
1516   case 192:
1517 #line 1087 "perly.y" /* yacc.c:1646  */
1518     { (yyval.opval) = (ps[0].val.opval); }
1519
1520     break;
1521
1522   case 193:
1523 #line 1089 "perly.y" /* yacc.c:1646  */
1524     { (yyval.opval) = (ps[0].val.opval); }
1525
1526     break;
1527
1528   case 194:
1529 #line 1091 "perly.y" /* yacc.c:1646  */
1530     { (yyval.opval) = (ps[0].val.opval); }
1531
1532     break;
1533
1534   case 195:
1535 #line 1093 "perly.y" /* yacc.c:1646  */
1536     { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));}
1537
1538     break;
1539
1540   case 196:
1541 #line 1095 "perly.y" /* yacc.c:1646  */
1542     { (yyval.opval) = (ps[0].val.opval); }
1543
1544     break;
1545
1546   case 197:
1547 #line 1097 "perly.y" /* yacc.c:1646  */
1548     { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1549                                 newOP(OP_PUSHMARK, 0),
1550                                     newLISTOP(OP_ASLICE, 0,
1551                                         list((ps[-1].val.opval)),
1552                                         ref((ps[-3].val.opval), OP_ASLICE)));
1553                           if ((yyval.opval) && (ps[-3].val.opval))
1554                               (yyval.opval)->op_private |=
1555                                   (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
1556                         }
1557
1558     break;
1559
1560   case 198:
1561 #line 1107 "perly.y" /* yacc.c:1646  */
1562     { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1563                                 newOP(OP_PUSHMARK, 0),
1564                                     newLISTOP(OP_KVASLICE, 0,
1565                                         list((ps[-1].val.opval)),
1566                                         ref(oopsAV((ps[-3].val.opval)), OP_KVASLICE)));
1567                           if ((yyval.opval) && (ps[-3].val.opval))
1568                               (yyval.opval)->op_private |=
1569                                   (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
1570                         }
1571
1572     break;
1573
1574   case 199:
1575 #line 1117 "perly.y" /* yacc.c:1646  */
1576     { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1577                                 newOP(OP_PUSHMARK, 0),
1578                                     newLISTOP(OP_HSLICE, 0,
1579                                         list((ps[-2].val.opval)),
1580                                         ref(oopsHV((ps[-4].val.opval)), OP_HSLICE)));
1581                           if ((yyval.opval) && (ps[-4].val.opval))
1582                               (yyval.opval)->op_private |=
1583                                   (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
1584                         }
1585
1586     break;
1587
1588   case 200:
1589 #line 1127 "perly.y" /* yacc.c:1646  */
1590     { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1591                                 newOP(OP_PUSHMARK, 0),
1592                                     newLISTOP(OP_KVHSLICE, 0,
1593                                         list((ps[-2].val.opval)),
1594                                         ref((ps[-4].val.opval), OP_KVHSLICE)));
1595                           if ((yyval.opval) && (ps[-4].val.opval))
1596                               (yyval.opval)->op_private |=
1597                                   (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
1598                         }
1599
1600     break;
1601
1602   case 201:
1603 #line 1137 "perly.y" /* yacc.c:1646  */
1604     { (yyval.opval) = (ps[0].val.opval); }
1605
1606     break;
1607
1608   case 202:
1609 #line 1139 "perly.y" /* yacc.c:1646  */
1610     { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); }
1611
1612     break;
1613
1614   case 203:
1615 #line 1141 "perly.y" /* yacc.c:1646  */
1616     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval)));
1617                         }
1618
1619     break;
1620
1621   case 204:
1622 #line 1144 "perly.y" /* yacc.c:1646  */
1623     {
1624                           (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1625                                 op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval))));
1626                         }
1627
1628     break;
1629
1630   case 205:
1631 #line 1149 "perly.y" /* yacc.c:1646  */
1632     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1633                             op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval))));
1634                         }
1635
1636     break;
1637
1638   case 206:
1639 #line 1153 "perly.y" /* yacc.c:1646  */
1640     { (yyval.opval) = newSVREF((ps[-3].val.opval)); }
1641
1642     break;
1643
1644   case 207:
1645 #line 1155 "perly.y" /* yacc.c:1646  */
1646     { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
1647
1648     break;
1649
1650   case 208:
1651 #line 1157 "perly.y" /* yacc.c:1646  */
1652     { (yyval.opval) = newHVREF((ps[-3].val.opval)); }
1653
1654     break;
1655
1656   case 209:
1657 #line 1159 "perly.y" /* yacc.c:1646  */
1658     { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1659                                        scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); }
1660
1661     break;
1662
1663   case 210:
1664 #line 1162 "perly.y" /* yacc.c:1646  */
1665     { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); }
1666
1667     break;
1668
1669   case 211:
1670 #line 1164 "perly.y" /* yacc.c:1646  */
1671     { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL);
1672                             PL_hints |= HINT_BLOCK_SCOPE; }
1673
1674     break;
1675
1676   case 212:
1677 #line 1167 "perly.y" /* yacc.c:1646  */
1678     { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); }
1679
1680     break;
1681
1682   case 213:
1683 #line 1169 "perly.y" /* yacc.c:1646  */
1684     { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
1685
1686     break;
1687
1688   case 214:
1689 #line 1171 "perly.y" /* yacc.c:1646  */
1690     { (yyval.opval) = newOP((ps[0].val.ival), 0); }
1691
1692     break;
1693
1694   case 215:
1695 #line 1173 "perly.y" /* yacc.c:1646  */
1696     { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1697
1698     break;
1699
1700   case 216:
1701 #line 1175 "perly.y" /* yacc.c:1646  */
1702     { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1703
1704     break;
1705
1706   case 217:
1707 #line 1177 "perly.y" /* yacc.c:1646  */
1708     { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); }
1709
1710     break;
1711
1712   case 218:
1713 #line 1179 "perly.y" /* yacc.c:1646  */
1714     { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); }
1715
1716     break;
1717
1718   case 219:
1719 #line 1181 "perly.y" /* yacc.c:1646  */
1720     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
1721
1722     break;
1723
1724   case 220:
1725 #line 1183 "perly.y" /* yacc.c:1646  */
1726     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1727                             op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); }
1728
1729     break;
1730
1731   case 221:
1732 #line 1186 "perly.y" /* yacc.c:1646  */
1733     { (yyval.opval) = newOP((ps[0].val.ival), 0); }
1734
1735     break;
1736
1737   case 222:
1738 #line 1188 "perly.y" /* yacc.c:1646  */
1739     { (yyval.opval) = newOP((ps[-2].val.ival), 0);}
1740
1741     break;
1742
1743   case 223:
1744 #line 1190 "perly.y" /* yacc.c:1646  */
1745     { (yyval.opval) = (ps[0].val.opval); }
1746
1747     break;
1748
1749   case 224:
1750 #line 1192 "perly.y" /* yacc.c:1646  */
1751     { (yyval.opval) = (ps[-2].val.opval); }
1752
1753     break;
1754
1755   case 225:
1756 #line 1194 "perly.y" /* yacc.c:1646  */
1757     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
1758
1759     break;
1760
1761   case 226:
1762 #line 1196 "perly.y" /* yacc.c:1646  */
1763     { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT)
1764                           ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1765                           : newOP((ps[-2].val.ival), OPf_SPECIAL); }
1766
1767     break;
1768
1769   case 227:
1770 #line 1200 "perly.y" /* yacc.c:1646  */
1771     { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
1772
1773     break;
1774
1775   case 228:
1776 #line 1202 "perly.y" /* yacc.c:1646  */
1777     {
1778                             if (   (ps[0].val.opval)->op_type != OP_TRANS
1779                                 && (ps[0].val.opval)->op_type != OP_TRANSR
1780                                 && (((PMOP*)(ps[0].val.opval))->op_pmflags & PMf_HAS_CV))
1781                             {
1782                                 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1783                                 SAVEFREESV(PL_compcv);
1784                             } else
1785                                 (yyval.ival) = 0;
1786                         }
1787
1788     break;
1789
1790   case 229:
1791 #line 1213 "perly.y" /* yacc.c:1646  */
1792     { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); }
1793
1794     break;
1795
1796   case 233:
1797 #line 1221 "perly.y" /* yacc.c:1646  */
1798     { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); }
1799
1800     break;
1801
1802   case 234:
1803 #line 1223 "perly.y" /* yacc.c:1646  */
1804     { (yyval.opval) = localize((ps[0].val.opval),1); }
1805
1806     break;
1807
1808   case 235:
1809 #line 1225 "perly.y" /* yacc.c:1646  */
1810     { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); }
1811
1812     break;
1813
1814   case 236:
1815 #line 1230 "perly.y" /* yacc.c:1646  */
1816     { (yyval.opval) = sawparens((ps[-1].val.opval)); }
1817
1818     break;
1819
1820   case 237:
1821 #line 1232 "perly.y" /* yacc.c:1646  */
1822     { (yyval.opval) = sawparens(newNULLLIST()); }
1823
1824     break;
1825
1826   case 238:
1827 #line 1235 "perly.y" /* yacc.c:1646  */
1828     { (yyval.opval) = (ps[0].val.opval); }
1829
1830     break;
1831
1832   case 239:
1833 #line 1237 "perly.y" /* yacc.c:1646  */
1834     { (yyval.opval) = (ps[0].val.opval); }
1835
1836     break;
1837
1838   case 240:
1839 #line 1239 "perly.y" /* yacc.c:1646  */
1840     { (yyval.opval) = (ps[0].val.opval); }
1841
1842     break;
1843
1844   case 241:
1845 #line 1244 "perly.y" /* yacc.c:1646  */
1846     { (yyval.opval) = NULL; }
1847
1848     break;
1849
1850   case 242:
1851 #line 1246 "perly.y" /* yacc.c:1646  */
1852     { (yyval.opval) = (ps[0].val.opval); }
1853
1854     break;
1855
1856   case 243:
1857 #line 1250 "perly.y" /* yacc.c:1646  */
1858     { (yyval.opval) = NULL; }
1859
1860     break;
1861
1862   case 244:
1863 #line 1252 "perly.y" /* yacc.c:1646  */
1864     { (yyval.opval) = (ps[0].val.opval); }
1865
1866     break;
1867
1868   case 245:
1869 #line 1256 "perly.y" /* yacc.c:1646  */
1870     { (yyval.opval) = NULL; }
1871
1872     break;
1873
1874   case 246:
1875 #line 1258 "perly.y" /* yacc.c:1646  */
1876     { (yyval.opval) = (ps[0].val.opval); }
1877
1878     break;
1879
1880   case 247:
1881 #line 1264 "perly.y" /* yacc.c:1646  */
1882     { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
1883
1884     break;
1885
1886   case 255:
1887 #line 1281 "perly.y" /* yacc.c:1646  */
1888     { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); }
1889
1890     break;
1891
1892   case 256:
1893 #line 1285 "perly.y" /* yacc.c:1646  */
1894     { (yyval.opval) = newSVREF((ps[0].val.opval)); }
1895
1896     break;
1897
1898   case 257:
1899 #line 1289 "perly.y" /* yacc.c:1646  */
1900     { (yyval.opval) = newAVREF((ps[0].val.opval));
1901                           if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
1902                         }
1903
1904     break;
1905
1906   case 258:
1907 #line 1295 "perly.y" /* yacc.c:1646  */
1908     { (yyval.opval) = newHVREF((ps[0].val.opval));
1909                           if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
1910                         }
1911
1912     break;
1913
1914   case 259:
1915 #line 1301 "perly.y" /* yacc.c:1646  */
1916     { (yyval.opval) = newAVREF((ps[0].val.opval)); }
1917
1918     break;
1919
1920   case 260:
1921 #line 1303 "perly.y" /* yacc.c:1646  */
1922     { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
1923
1924     break;
1925
1926   case 261:
1927 #line 1307 "perly.y" /* yacc.c:1646  */
1928     { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); }
1929
1930     break;
1931
1932   case 263:
1933 #line 1312 "perly.y" /* yacc.c:1646  */
1934     { (yyval.opval) = newAVREF((ps[-2].val.opval)); }
1935
1936     break;
1937
1938   case 265:
1939 #line 1317 "perly.y" /* yacc.c:1646  */
1940     { (yyval.opval) = newHVREF((ps[-2].val.opval)); }
1941
1942     break;
1943
1944   case 267:
1945 #line 1322 "perly.y" /* yacc.c:1646  */
1946     { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); }
1947
1948     break;
1949
1950   case 268:
1951 #line 1327 "perly.y" /* yacc.c:1646  */
1952     { (yyval.opval) = scalar((ps[0].val.opval)); }
1953
1954     break;
1955
1956   case 269:
1957 #line 1329 "perly.y" /* yacc.c:1646  */
1958     { (yyval.opval) = scalar((ps[0].val.opval)); }
1959
1960     break;
1961
1962   case 270:
1963 #line 1331 "perly.y" /* yacc.c:1646  */
1964     { (yyval.opval) = op_scope((ps[0].val.opval)); }
1965
1966     break;
1967
1968   case 271:
1969 #line 1334 "perly.y" /* yacc.c:1646  */
1970     { (yyval.opval) = (ps[0].val.opval); }
1971
1972     break;
1973
1974
1975
1976       default: break;
1977     
1978
1979 /* Generated from:
1980  * f62d35e9a10a10071f1ac20676ddc12abcffbef44a24ef694c36201e994d0900 perly.y
1981  * b6fae5748f9bef6db4740aa5e122b84ac5181852d42474d0ecad621fa4253306 regen_perly.pl
1982  * ex: set ro: */