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