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