This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
update Maintainers.pl for new Module-Metadata
[perl5.git] / perly.act
... / ...
CommitLineData
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 115 "perly.y"
9 {
10 parser->expect = XSTATE;
11 }
12 break;
13
14 case 3:
15#line 119 "perly.y"
16 {
17 newPROG(block_end((ps[(3) - (4)].val.ival),(ps[(4) - (4)].val.opval)));
18 PL_compiling.cop_seq = 0;
19 (yyval.ival) = 0;
20 }
21 break;
22
23 case 4:
24#line 125 "perly.y"
25 {
26 parser->expect = XTERM;
27 }
28 break;
29
30 case 5:
31#line 129 "perly.y"
32 {
33 PL_eval_root = (ps[(3) - (3)].val.opval);
34 (yyval.ival) = 0;
35 }
36 break;
37
38 case 6:
39#line 134 "perly.y"
40 {
41 parser->expect = XBLOCK;
42 }
43 break;
44
45 case 7:
46#line 138 "perly.y"
47 {
48 PL_pad_reset_pending = TRUE;
49 PL_eval_root = (ps[(3) - (3)].val.opval);
50 (yyval.ival) = 0;
51 yyunlex();
52 parser->yychar = YYEOF;
53 }
54 break;
55
56 case 8:
57#line 146 "perly.y"
58 {
59 parser->expect = XSTATE;
60 }
61 break;
62
63 case 9:
64#line 150 "perly.y"
65 {
66 PL_pad_reset_pending = TRUE;
67 PL_eval_root = (ps[(3) - (3)].val.opval);
68 (yyval.ival) = 0;
69 yyunlex();
70 parser->yychar = YYEOF;
71 }
72 break;
73
74 case 10:
75#line 158 "perly.y"
76 {
77 parser->expect = XSTATE;
78 }
79 break;
80
81 case 11:
82#line 162 "perly.y"
83 {
84 PL_pad_reset_pending = TRUE;
85 PL_eval_root = (ps[(3) - (3)].val.opval);
86 (yyval.ival) = 0;
87 yyunlex();
88 parser->yychar = YYEOF;
89 }
90 break;
91
92 case 12:
93#line 170 "perly.y"
94 {
95 parser->expect = XSTATE;
96 }
97 break;
98
99 case 13:
100#line 174 "perly.y"
101 {
102 PL_eval_root = (ps[(3) - (3)].val.opval);
103 (yyval.ival) = 0;
104 }
105 break;
106
107 case 14:
108#line 182 "perly.y"
109 { if (parser->copline > (line_t)(ps[(1) - (4)].val.ival))
110 parser->copline = (line_t)(ps[(1) - (4)].val.ival);
111 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
112 }
113 break;
114
115 case 15:
116#line 190 "perly.y"
117 { if (parser->copline > (line_t)(ps[(1) - (7)].val.ival))
118 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
119 (yyval.opval) = block_end((ps[(2) - (7)].val.ival), (ps[(5) - (7)].val.opval));
120 }
121 break;
122
123 case 16:
124#line 197 "perly.y"
125 { (yyval.ival) = block_start(TRUE);
126 parser->parsed_sub = 0; }
127 break;
128
129 case 17:
130#line 202 "perly.y"
131 { if (parser->copline > (line_t)(ps[(1) - (4)].val.ival))
132 parser->copline = (line_t)(ps[(1) - (4)].val.ival);
133 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
134 }
135 break;
136
137 case 18:
138#line 209 "perly.y"
139 { (yyval.ival) = block_start(FALSE);
140 parser->parsed_sub = 0; }
141 break;
142
143 case 19:
144#line 215 "perly.y"
145 { (yyval.opval) = (OP*)NULL; }
146 break;
147
148 case 20:
149#line 217 "perly.y"
150 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
151 PL_pad_reset_pending = TRUE;
152 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
153 PL_hints |= HINT_BLOCK_SCOPE;
154 }
155 break;
156
157 case 21:
158#line 226 "perly.y"
159 { (yyval.opval) = (OP*)NULL; }
160 break;
161
162 case 22:
163#line 228 "perly.y"
164 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
165 PL_pad_reset_pending = TRUE;
166 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
167 PL_hints |= HINT_BLOCK_SCOPE;
168 }
169 break;
170
171 case 23:
172#line 237 "perly.y"
173 {
174 (yyval.opval) = (ps[(1) - (1)].val.opval) ? newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval)) : NULL;
175 }
176 break;
177
178 case 24:
179#line 241 "perly.y"
180 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
181 break;
182
183 case 25:
184#line 245 "perly.y"
185 {
186 (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[(1) - (2)].val.pval)[strlen((ps[(1) - (2)].val.pval))+1], (ps[(1) - (2)].val.pval), (ps[(2) - (2)].val.opval));
187 }
188 break;
189
190 case 26:
191#line 249 "perly.y"
192 {
193 (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[(1) - (2)].val.pval)[strlen((ps[(1) - (2)].val.pval))+1], (ps[(1) - (2)].val.pval), (ps[(2) - (2)].val.opval));
194 }
195 break;
196
197 case 27:
198#line 256 "perly.y"
199 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
200 break;
201
202 case 28:
203#line 258 "perly.y"
204 {
205 CV *fmtcv = PL_compcv;
206 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
207 (yyval.opval) = (OP*)NULL;
208 if (CvOUTSIDE(fmtcv) && !CvEVAL(CvOUTSIDE(fmtcv))) {
209 pad_add_weakref(fmtcv);
210 }
211 parser->parsed_sub = 1;
212 }
213 break;
214
215 case 29:
216#line 268 "perly.y"
217 {
218 if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) {
219 const char *const name =
220 SvPV_nolen_const(((SVOP*)(ps[(2) - (3)].val.opval))->op_sv);
221 if (strEQ(name, "BEGIN") || strEQ(name, "END")
222 || strEQ(name, "INIT") || strEQ(name, "CHECK")
223 || strEQ(name, "UNITCHECK"))
224 CvSPECIAL_on(PL_compcv);
225 }
226 else
227 /* State subs inside anonymous subs need to be
228 clonable themselves. */
229 if (CvANON(CvOUTSIDE(PL_compcv))
230 || CvCLONE(CvOUTSIDE(PL_compcv))
231 || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST(
232 CvOUTSIDE(PL_compcv)
233 ))[(ps[(2) - (3)].val.opval)->op_targ]))
234 CvCLONE_on(PL_compcv);
235 parser->in_my = 0;
236 parser->in_my_stash = NULL;
237 }
238 break;
239
240 case 30:
241#line 290 "perly.y"
242 {
243 SvREFCNT_inc_simple_void(PL_compcv);
244 (ps[(2) - (7)].val.opval)->op_type == OP_CONST
245 ? newATTRSUB((ps[(3) - (7)].val.ival), (ps[(2) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval))
246 : newMYSUB((ps[(3) - (7)].val.ival), (ps[(2) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval))
247 ;
248 (yyval.opval) = (OP*)NULL;
249 intro_my();
250 parser->parsed_sub = 1;
251 }
252 break;
253
254 case 31:
255#line 301 "perly.y"
256 {
257 if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) {
258 const char *const name =
259 SvPV_nolen_const(((SVOP*)(ps[(2) - (3)].val.opval))->op_sv);
260 if (strEQ(name, "BEGIN") || strEQ(name, "END")
261 || strEQ(name, "INIT") || strEQ(name, "CHECK")
262 || strEQ(name, "UNITCHECK"))
263 CvSPECIAL_on(PL_compcv);
264 }
265 else
266 /* State subs inside anonymous subs need to be
267 clonable themselves. */
268 if (CvANON(CvOUTSIDE(PL_compcv))
269 || CvCLONE(CvOUTSIDE(PL_compcv))
270 || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST(
271 CvOUTSIDE(PL_compcv)
272 ))[(ps[(2) - (3)].val.opval)->op_targ]))
273 CvCLONE_on(PL_compcv);
274 parser->in_my = 0;
275 parser->in_my_stash = NULL;
276 }
277 break;
278
279 case 32:
280#line 323 "perly.y"
281 {
282 OP *body;
283 if (parser->copline > (line_t)(ps[(8) - (10)].val.ival))
284 parser->copline = (line_t)(ps[(8) - (10)].val.ival);
285 body = block_end((ps[(5) - (10)].val.ival),
286 op_append_list(OP_LINESEQ, (ps[(6) - (10)].val.opval), (ps[(9) - (10)].val.opval)));
287
288 SvREFCNT_inc_simple_void(PL_compcv);
289 (ps[(2) - (10)].val.opval)->op_type == OP_CONST
290 ? newATTRSUB((ps[(3) - (10)].val.ival), (ps[(2) - (10)].val.opval), NULL, (ps[(7) - (10)].val.opval), body)
291 : newMYSUB((ps[(3) - (10)].val.ival), (ps[(2) - (10)].val.opval), NULL, (ps[(7) - (10)].val.opval), body)
292 ;
293 (yyval.opval) = (OP*)NULL;
294 intro_my();
295 parser->parsed_sub = 1;
296 }
297 break;
298
299 case 33:
300#line 340 "perly.y"
301 {
302 package((ps[(3) - (4)].val.opval));
303 if ((ps[(2) - (4)].val.opval))
304 package_version((ps[(2) - (4)].val.opval));
305 (yyval.opval) = (OP*)NULL;
306 }
307 break;
308
309 case 34:
310#line 347 "perly.y"
311 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
312 break;
313
314 case 35:
315#line 349 "perly.y"
316 {
317 SvREFCNT_inc_simple_void(PL_compcv);
318 utilize((ps[(1) - (7)].val.ival), (ps[(2) - (7)].val.ival), (ps[(4) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval));
319 parser->parsed_sub = 1;
320 (yyval.opval) = (OP*)NULL;
321 }
322 break;
323
324 case 36:
325#line 356 "perly.y"
326 {
327 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
328 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
329 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
330 }
331 break;
332
333 case 37:
334#line 362 "perly.y"
335 {
336 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
337 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
338 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
339 }
340 break;
341
342 case 38:
343#line 368 "perly.y"
344 {
345 (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newGIVENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)), 0));
346 parser->copline = (line_t)(ps[(1) - (6)].val.ival);
347 }
348 break;
349
350 case 39:
351#line 373 "perly.y"
352 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); }
353 break;
354
355 case 40:
356#line 375 "perly.y"
357 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); }
358 break;
359
360 case 41:
361#line 377 "perly.y"
362 {
363 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
364 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
365 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
366 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
367 }
368 break;
369
370 case 42:
371#line 384 "perly.y"
372 {
373 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
374 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
375 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
376 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
377 }
378 break;
379
380 case 43:
381#line 391 "perly.y"
382 { parser->expect = XTERM; }
383 break;
384
385 case 44:
386#line 393 "perly.y"
387 { parser->expect = XTERM; }
388 break;
389
390 case 45:
391#line 396 "perly.y"
392 {
393 OP *initop = (ps[(4) - (13)].val.opval);
394 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
395 scalar((ps[(7) - (13)].val.opval)), (ps[(13) - (13)].val.opval), (ps[(11) - (13)].val.opval), (ps[(10) - (13)].val.ival));
396 if (initop) {
397 forop = op_prepend_elem(OP_LINESEQ, initop,
398 op_append_elem(OP_LINESEQ,
399 newOP(OP_UNSTACK, OPf_SPECIAL),
400 forop));
401 }
402 PL_hints |= HINT_BLOCK_SCOPE;
403 (yyval.opval) = block_end((ps[(3) - (13)].val.ival), forop);
404 parser->copline = (line_t)(ps[(1) - (13)].val.ival);
405 }
406 break;
407
408 case 46:
409#line 411 "perly.y"
410 {
411 (yyval.opval) = block_end((ps[(3) - (9)].val.ival), newFOROP(0, (ps[(4) - (9)].val.opval), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
412 parser->copline = (line_t)(ps[(1) - (9)].val.ival);
413 }
414 break;
415
416 case 47:
417#line 416 "perly.y"
418 {
419 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
420 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
421 parser->copline = (line_t)(ps[(1) - (8)].val.ival);
422 }
423 break;
424
425 case 48:
426#line 422 "perly.y"
427 { parser->in_my = 0; (yyval.opval) = my((ps[(5) - (5)].val.opval)); }
428 break;
429
430 case 49:
431#line 424 "perly.y"
432 {
433 (yyval.opval) = block_end(
434 (ps[(4) - (11)].val.ival),
435 newFOROP(0,
436 op_lvalue(
437 newUNOP(OP_REFGEN, 0,
438 (ps[(6) - (11)].val.opval)),
439 OP_ENTERLOOP),
440 (ps[(8) - (11)].val.opval), (ps[(10) - (11)].val.opval), (ps[(11) - (11)].val.opval))
441 );
442 parser->copline = (line_t)(ps[(1) - (11)].val.ival);
443 }
444 break;
445
446 case 50:
447#line 437 "perly.y"
448 {
449 (yyval.opval) = block_end((ps[(5) - (9)].val.ival), newFOROP(
450 0, op_lvalue(newUNOP(OP_REFGEN, 0,
451 (ps[(3) - (9)].val.opval)),
452 OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
453 parser->copline = (line_t)(ps[(1) - (9)].val.ival);
454 }
455 break;
456
457 case 51:
458#line 445 "perly.y"
459 {
460 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
461 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
462 parser->copline = (line_t)(ps[(1) - (7)].val.ival);
463 }
464 break;
465
466 case 52:
467#line 451 "perly.y"
468 {
469 /* a block is a loop that happens once */
470 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
471 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
472 }
473 break;
474
475 case 53:
476#line 457 "perly.y"
477 {
478 package((ps[(3) - (5)].val.opval));
479 if ((ps[(2) - (5)].val.opval)) {
480 package_version((ps[(2) - (5)].val.opval));
481 }
482 }
483 break;
484
485 case 54:
486#line 464 "perly.y"
487 {
488 /* a block is a loop that happens once */
489 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
490 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
491 if (parser->copline > (line_t)(ps[(4) - (8)].val.ival))
492 parser->copline = (line_t)(ps[(4) - (8)].val.ival);
493 }
494 break;
495
496 case 55:
497#line 472 "perly.y"
498 {
499 (yyval.opval) = (ps[(1) - (2)].val.opval);
500 }
501 break;
502
503 case 56:
504#line 476 "perly.y"
505 {
506 (yyval.opval) = (OP*)NULL;
507 parser->copline = NOLINE;
508 }
509 break;
510
511 case 57:
512#line 484 "perly.y"
513 { OP *list;
514 if ((ps[(2) - (2)].val.opval)) {
515 OP *term = (ps[(2) - (2)].val.opval);
516 list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term);
517 }
518 else {
519 list = (ps[(1) - (2)].val.opval);
520 }
521 if (parser->copline == NOLINE)
522 parser->copline = CopLINE(PL_curcop)-1;
523 else parser->copline--;
524 (yyval.opval) = newSTATEOP(0, NULL,
525 op_convert_list(OP_FORMLINE, 0, list));
526 }
527 break;
528
529 case 58:
530#line 501 "perly.y"
531 { (yyval.opval) = NULL; }
532 break;
533
534 case 59:
535#line 503 "perly.y"
536 { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); }
537 break;
538
539 case 60:
540#line 508 "perly.y"
541 { (yyval.opval) = (OP*)NULL; }
542 break;
543
544 case 61:
545#line 510 "perly.y"
546 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
547 break;
548
549 case 62:
550#line 512 "perly.y"
551 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
552 break;
553
554 case 63:
555#line 514 "perly.y"
556 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
557 break;
558
559 case 64:
560#line 516 "perly.y"
561 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); }
562 break;
563
564 case 65:
565#line 518 "perly.y"
566 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
567 break;
568
569 case 66:
570#line 520 "perly.y"
571 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
572 parser->copline = (line_t)(ps[(2) - (3)].val.ival); }
573 break;
574
575 case 67:
576#line 523 "perly.y"
577 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); }
578 break;
579
580 case 68:
581#line 528 "perly.y"
582 { (yyval.opval) = (OP*)NULL; }
583 break;
584
585 case 69:
586#line 530 "perly.y"
587 {
588 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
589 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
590 }
591 break;
592
593 case 70:
594#line 535 "perly.y"
595 { parser->copline = (line_t)(ps[(1) - (6)].val.ival);
596 (yyval.opval) = newCONDOP(0,
597 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
598 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
599 PL_hints |= HINT_BLOCK_SCOPE;
600 }
601 break;
602
603 case 71:
604#line 545 "perly.y"
605 { (yyval.opval) = (OP*)NULL; }
606 break;
607
608 case 72:
609#line 547 "perly.y"
610 { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); }
611 break;
612
613 case 73:
614#line 552 "perly.y"
615 { (yyval.ival) = (PL_min_intro_pending &&
616 PL_max_intro_pending >= PL_min_intro_pending);
617 intro_my(); }
618 break;
619
620 case 74:
621#line 558 "perly.y"
622 { (yyval.opval) = (OP*)NULL; }
623 break;
624
625 case 76:
626#line 564 "perly.y"
627 { YYSTYPE tmplval;
628 (void)scan_num("1", &tmplval);
629 (yyval.opval) = tmplval.opval; }
630 break;
631
632 case 78:
633#line 572 "perly.y"
634 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); }
635 break;
636
637 case 79:
638#line 577 "perly.y"
639 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
640 break;
641
642 case 80:
643#line 581 "perly.y"
644 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
645 break;
646
647 case 81:
648#line 585 "perly.y"
649 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
650 break;
651
652 case 82:
653#line 588 "perly.y"
654 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
655 break;
656
657 case 83:
658#line 589 "perly.y"
659 { (yyval.opval) = (OP*)NULL; }
660 break;
661
662 case 84:
663#line 593 "perly.y"
664 { (yyval.ival) = start_subparse(FALSE, 0);
665 SAVEFREESV(PL_compcv); }
666 break;
667
668 case 85:
669#line 599 "perly.y"
670 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
671 SAVEFREESV(PL_compcv); }
672 break;
673
674 case 86:
675#line 604 "perly.y"
676 { (yyval.ival) = start_subparse(TRUE, 0);
677 SAVEFREESV(PL_compcv); }
678 break;
679
680 case 89:
681#line 615 "perly.y"
682 { (yyval.opval) = (OP*)NULL; }
683 break;
684
685 case 91:
686#line 621 "perly.y"
687 { (yyval.opval) = (OP*)NULL; }
688 break;
689
690 case 92:
691#line 623 "perly.y"
692 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
693 break;
694
695 case 93:
696#line 625 "perly.y"
697 { (yyval.opval) = (OP*)NULL; }
698 break;
699
700 case 94:
701#line 630 "perly.y"
702 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
703 break;
704
705 case 95:
706#line 632 "perly.y"
707 { (yyval.opval) = (OP*)NULL; }
708 break;
709
710 case 96:
711#line 637 "perly.y"
712 {
713 /* We shouldn't get here otherwise */
714 assert(FEATURE_SIGNATURES_IS_ENABLED);
715
716 Perl_ck_warner_d(aTHX_
717 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
718 "The signatures feature is experimental");
719 (yyval.opval) = parse_subsignature();
720 }
721 break;
722
723 case 97:
724#line 647 "perly.y"
725 {
726 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval),
727 newSTATEOP(0, NULL, sawparens(newNULLLIST())));
728 parser->expect = XATTRBLOCK;
729 }
730 break;
731
732 case 99:
733#line 656 "perly.y"
734 { (yyval.opval) = (OP*)NULL; }
735 break;
736
737 case 100:
738#line 661 "perly.y"
739 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
740 break;
741
742 case 101:
743#line 663 "perly.y"
744 { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
745 break;
746
747 case 102:
748#line 665 "perly.y"
749 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
750 break;
751
752 case 104:
753#line 671 "perly.y"
754 { (yyval.opval) = (ps[(1) - (2)].val.opval); }
755 break;
756
757 case 105:
758#line 673 "perly.y"
759 {
760 OP* term = (ps[(3) - (3)].val.opval);
761 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
762 }
763 break;
764
765 case 107:
766#line 682 "perly.y"
767 { (yyval.opval) = op_convert_list((ps[(1) - (3)].val.ival), OPf_STACKED,
768 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
769 }
770 break;
771
772 case 108:
773#line 686 "perly.y"
774 { (yyval.opval) = op_convert_list((ps[(1) - (5)].val.ival), OPf_STACKED,
775 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
776 }
777 break;
778
779 case 109:
780#line 690 "perly.y"
781 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
782 op_append_elem(OP_LIST,
783 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
784 newMETHOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
785 }
786 break;
787
788 case 110:
789#line 696 "perly.y"
790 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
791 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
792 newMETHOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
793 }
794 break;
795
796 case 111:
797#line 701 "perly.y"
798 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
799 op_append_elem(OP_LIST,
800 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
801 newMETHOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
802 }
803 break;
804
805 case 112:
806#line 707 "perly.y"
807 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
808 op_append_elem(OP_LIST,
809 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
810 newMETHOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
811 }
812 break;
813
814 case 113:
815#line 713 "perly.y"
816 { (yyval.opval) = op_convert_list((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
817 break;
818
819 case 114:
820#line 715 "perly.y"
821 { (yyval.opval) = op_convert_list((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); }
822 break;
823
824 case 115:
825#line 717 "perly.y"
826 { SvREFCNT_inc_simple_void(PL_compcv);
827 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); }
828 break;
829
830 case 116:
831#line 720 "perly.y"
832 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
833 op_append_elem(OP_LIST,
834 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
835 }
836 break;
837
838 case 119:
839#line 735 "perly.y"
840 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); }
841 break;
842
843 case 120:
844#line 737 "perly.y"
845 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
846 }
847 break;
848
849 case 121:
850#line 740 "perly.y"
851 { (yyval.opval) = newBINOP(OP_AELEM, 0,
852 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
853 scalar((ps[(4) - (5)].val.opval)));
854 }
855 break;
856
857 case 122:
858#line 745 "perly.y"
859 { (yyval.opval) = newBINOP(OP_AELEM, 0,
860 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
861 scalar((ps[(3) - (4)].val.opval)));
862 }
863 break;
864
865 case 123:
866#line 750 "perly.y"
867 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
868 }
869 break;
870
871 case 124:
872#line 753 "perly.y"
873 { (yyval.opval) = newBINOP(OP_HELEM, 0,
874 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
875 jmaybe((ps[(4) - (6)].val.opval))); }
876 break;
877
878 case 125:
879#line 757 "perly.y"
880 { (yyval.opval) = newBINOP(OP_HELEM, 0,
881 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
882 jmaybe((ps[(3) - (5)].val.opval))); }
883 break;
884
885 case 126:
886#line 761 "perly.y"
887 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
888 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); }
889 break;
890
891 case 127:
892#line 764 "perly.y"
893 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
894 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
895 newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); }
896 break;
897
898 case 128:
899#line 769 "perly.y"
900 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
901 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
902 newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); }
903 break;
904
905 case 129:
906#line 773 "perly.y"
907 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
908 newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); }
909 break;
910
911 case 130:
912#line 776 "perly.y"
913 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); }
914 break;
915
916 case 131:
917#line 778 "perly.y"
918 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); }
919 break;
920
921 case 132:
922#line 780 "perly.y"
923 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); }
924 break;
925
926 case 133:
927#line 785 "perly.y"
928 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); }
929 break;
930
931 case 134:
932#line 787 "perly.y"
933 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
934 break;
935
936 case 135:
937#line 789 "perly.y"
938 { if ((ps[(2) - (3)].val.ival) != OP_REPEAT)
939 scalar((ps[(1) - (3)].val.opval));
940 (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
941 }
942 break;
943
944 case 136:
945#line 794 "perly.y"
946 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
947 break;
948
949 case 137:
950#line 796 "perly.y"
951 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
952 break;
953
954 case 138:
955#line 798 "perly.y"
956 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
957 break;
958
959 case 139:
960#line 800 "perly.y"
961 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
962 break;
963
964 case 140:
965#line 802 "perly.y"
966 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
967 break;
968
969 case 141:
970#line 804 "perly.y"
971 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
972 break;
973
974 case 142:
975#line 806 "perly.y"
976 { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
977 break;
978
979 case 143:
980#line 808 "perly.y"
981 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
982 break;
983
984 case 144:
985#line 810 "perly.y"
986 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
987 break;
988
989 case 145:
990#line 812 "perly.y"
991 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
992 break;
993
994 case 146:
995#line 814 "perly.y"
996 { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
997 break;
998
999 case 147:
1000#line 819 "perly.y"
1001 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); }
1002 break;
1003
1004 case 148:
1005#line 821 "perly.y"
1006 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
1007 break;
1008
1009 case 149:
1010#line 824 "perly.y"
1011 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); }
1012 break;
1013
1014 case 150:
1015#line 826 "perly.y"
1016 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, scalar((ps[(2) - (2)].val.opval))); }
1017 break;
1018
1019 case 151:
1020#line 828 "perly.y"
1021 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
1022 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); }
1023 break;
1024
1025 case 152:
1026#line 831 "perly.y"
1027 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
1028 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));}
1029 break;
1030
1031 case 153:
1032#line 834 "perly.y"
1033 { (yyval.opval) = op_convert_list(OP_JOIN, 0,
1034 op_append_elem(
1035 OP_LIST,
1036 newSVREF(scalar(
1037 newSVOP(OP_CONST,0,
1038 newSVpvs("\""))
1039 )),
1040 (ps[(1) - (2)].val.opval)
1041 ));
1042 }
1043 break;
1044
1045 case 154:
1046#line 845 "perly.y"
1047 { (yyval.opval) = newUNOP(OP_PREINC, 0,
1048 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); }
1049 break;
1050
1051 case 155:
1052#line 848 "perly.y"
1053 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
1054 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); }
1055 break;
1056
1057 case 156:
1058#line 855 "perly.y"
1059 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); }
1060 break;
1061
1062 case 157:
1063#line 857 "perly.y"
1064 { (yyval.opval) = newANONLIST((OP*)NULL);}
1065 break;
1066
1067 case 158:
1068#line 859 "perly.y"
1069 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); }
1070 break;
1071
1072 case 159:
1073#line 861 "perly.y"
1074 { (yyval.opval) = newANONHASH((OP*)NULL); }
1075 break;
1076
1077 case 160:
1078#line 863 "perly.y"
1079 { SvREFCNT_inc_simple_void(PL_compcv);
1080 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); }
1081 break;
1082
1083 case 161:
1084#line 866 "perly.y"
1085 {
1086 OP *body;
1087 if (parser->copline > (line_t)(ps[(6) - (8)].val.ival))
1088 parser->copline = (line_t)(ps[(6) - (8)].val.ival);
1089 body = block_end((ps[(3) - (8)].val.ival),
1090 op_append_list(OP_LINESEQ, (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval)));
1091 SvREFCNT_inc_simple_void(PL_compcv);
1092 (yyval.opval) = newANONATTRSUB((ps[(2) - (8)].val.ival), NULL, (ps[(5) - (8)].val.opval), body);
1093 }
1094 break;
1095
1096 case 162:
1097#line 880 "perly.y"
1098 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));}
1099 break;
1100
1101 case 163:
1102#line 882 "perly.y"
1103 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));}
1104 break;
1105
1106 case 168:
1107#line 890 "perly.y"
1108 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); }
1109 break;
1110
1111 case 169:
1112#line 892 "perly.y"
1113 { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[(2) - (2)].val.opval)); }
1114 break;
1115
1116 case 170:
1117#line 894 "perly.y"
1118 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1119 break;
1120
1121 case 171:
1122#line 896 "perly.y"
1123 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); }
1124 break;
1125
1126 case 172:
1127#line 898 "perly.y"
1128 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); }
1129 break;
1130
1131 case 173:
1132#line 900 "perly.y"
1133 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1134 break;
1135
1136 case 174:
1137#line 902 "perly.y"
1138 { (yyval.opval) = sawparens(newNULLLIST()); }
1139 break;
1140
1141 case 175:
1142#line 904 "perly.y"
1143 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1144 break;
1145
1146 case 176:
1147#line 906 "perly.y"
1148 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1149 break;
1150
1151 case 177:
1152#line 908 "perly.y"
1153 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1154 break;
1155
1156 case 178:
1157#line 910 "perly.y"
1158 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1159 break;
1160
1161 case 179:
1162#line 912 "perly.y"
1163 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));}
1164 break;
1165
1166 case 180:
1167#line 914 "perly.y"
1168 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1169 break;
1170
1171 case 181:
1172#line 916 "perly.y"
1173 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
1174 newOP(OP_PUSHMARK, 0),
1175 newLISTOP(OP_ASLICE, 0,
1176 list((ps[(3) - (4)].val.opval)),
1177 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1178 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1179 (yyval.opval)->op_private |=
1180 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1181 }
1182 break;
1183
1184 case 182:
1185#line 926 "perly.y"
1186 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1187 newOP(OP_PUSHMARK, 0),
1188 newLISTOP(OP_KVASLICE, 0,
1189 list((ps[(3) - (4)].val.opval)),
1190 ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE)));
1191 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
1192 (yyval.opval)->op_private |=
1193 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1194 }
1195 break;
1196
1197 case 183:
1198#line 936 "perly.y"
1199 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
1200 newOP(OP_PUSHMARK, 0),
1201 newLISTOP(OP_HSLICE, 0,
1202 list((ps[(3) - (5)].val.opval)),
1203 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1204 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1205 (yyval.opval)->op_private |=
1206 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1207 }
1208 break;
1209
1210 case 184:
1211#line 946 "perly.y"
1212 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1213 newOP(OP_PUSHMARK, 0),
1214 newLISTOP(OP_KVHSLICE, 0,
1215 list((ps[(3) - (5)].val.opval)),
1216 ref((ps[(1) - (5)].val.opval), OP_KVHSLICE)));
1217 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
1218 (yyval.opval)->op_private |=
1219 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1220 }
1221 break;
1222
1223 case 185:
1224#line 956 "perly.y"
1225 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1226 break;
1227
1228 case 186:
1229#line 958 "perly.y"
1230 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); }
1231 break;
1232
1233 case 187:
1234#line 960 "perly.y"
1235 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1236 }
1237 break;
1238
1239 case 188:
1240#line 963 "perly.y"
1241 {
1242 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1243 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1244 }
1245 break;
1246
1247 case 189:
1248#line 968 "perly.y"
1249 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1250 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1251 }
1252 break;
1253
1254 case 190:
1255#line 972 "perly.y"
1256 { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); }
1257 break;
1258
1259 case 191:
1260#line 974 "perly.y"
1261 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); }
1262 break;
1263
1264 case 192:
1265#line 976 "perly.y"
1266 { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); }
1267 break;
1268
1269 case 193:
1270#line 978 "perly.y"
1271 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1272 scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); }
1273 break;
1274
1275 case 194:
1276#line 981 "perly.y"
1277 { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); }
1278 break;
1279
1280 case 195:
1281#line 983 "perly.y"
1282 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL);
1283 PL_hints |= HINT_BLOCK_SCOPE; }
1284 break;
1285
1286 case 196:
1287#line 986 "perly.y"
1288 { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); }
1289 break;
1290
1291 case 197:
1292#line 988 "perly.y"
1293 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); }
1294 break;
1295
1296 case 198:
1297#line 990 "perly.y"
1298 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); }
1299 break;
1300
1301 case 199:
1302#line 992 "perly.y"
1303 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
1304 break;
1305
1306 case 200:
1307#line 994 "perly.y"
1308 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
1309 break;
1310
1311 case 201:
1312#line 996 "perly.y"
1313 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); }
1314 break;
1315
1316 case 202:
1317#line 998 "perly.y"
1318 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); }
1319 break;
1320
1321 case 203:
1322#line 1000 "perly.y"
1323 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); }
1324 break;
1325
1326 case 204:
1327#line 1002 "perly.y"
1328 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1329 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); }
1330 break;
1331
1332 case 205:
1333#line 1005 "perly.y"
1334 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); }
1335 break;
1336
1337 case 206:
1338#line 1007 "perly.y"
1339 { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);}
1340 break;
1341
1342 case 207:
1343#line 1009 "perly.y"
1344 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1345 break;
1346
1347 case 208:
1348#line 1011 "perly.y"
1349 { (yyval.opval) = (ps[(1) - (3)].val.opval); }
1350 break;
1351
1352 case 209:
1353#line 1013 "perly.y"
1354 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); }
1355 break;
1356
1357 case 210:
1358#line 1015 "perly.y"
1359 { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT)
1360 ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1361 : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); }
1362 break;
1363
1364 case 211:
1365#line 1019 "perly.y"
1366 { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); }
1367 break;
1368
1369 case 212:
1370#line 1021 "perly.y"
1371 {
1372 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1373 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1374 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
1375 {
1376 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1377 SAVEFREESV(PL_compcv);
1378 } else
1379 (yyval.ival) = 0;
1380 }
1381 break;
1382
1383 case 213:
1384#line 1032 "perly.y"
1385 { (yyval.opval) = pmruntime((ps[(1) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), 1, (ps[(2) - (6)].val.ival)); }
1386 break;
1387
1388 case 216:
1389#line 1036 "perly.y"
1390 {
1391 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1392 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
1393 }
1394 break;
1395
1396 case 218:
1397#line 1045 "perly.y"
1398 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); }
1399 break;
1400
1401 case 219:
1402#line 1047 "perly.y"
1403 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); }
1404 break;
1405
1406 case 220:
1407#line 1052 "perly.y"
1408 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); }
1409 break;
1410
1411 case 221:
1412#line 1054 "perly.y"
1413 { (yyval.opval) = sawparens(newNULLLIST()); }
1414 break;
1415
1416 case 222:
1417#line 1057 "perly.y"
1418 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1419 break;
1420
1421 case 223:
1422#line 1059 "perly.y"
1423 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1424 break;
1425
1426 case 224:
1427#line 1061 "perly.y"
1428 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1429 break;
1430
1431 case 225:
1432#line 1066 "perly.y"
1433 { (yyval.opval) = (OP*)NULL; }
1434 break;
1435
1436 case 226:
1437#line 1068 "perly.y"
1438 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1439 break;
1440
1441 case 227:
1442#line 1072 "perly.y"
1443 { (yyval.opval) = (OP*)NULL; }
1444 break;
1445
1446 case 228:
1447#line 1074 "perly.y"
1448 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1449 break;
1450
1451 case 229:
1452#line 1078 "perly.y"
1453 { (yyval.opval) = (OP*)NULL; }
1454 break;
1455
1456 case 230:
1457#line 1080 "perly.y"
1458 { (yyval.opval) = (ps[(2) - (2)].val.opval); }
1459 break;
1460
1461 case 231:
1462#line 1086 "perly.y"
1463 { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); }
1464 break;
1465
1466 case 237:
1467#line 1099 "perly.y"
1468 { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); }
1469 break;
1470
1471 case 238:
1472#line 1103 "perly.y"
1473 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); }
1474 break;
1475
1476 case 239:
1477#line 1107 "perly.y"
1478 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1479 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1480 }
1481 break;
1482
1483 case 240:
1484#line 1113 "perly.y"
1485 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1486 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1487 }
1488 break;
1489
1490 case 241:
1491#line 1119 "perly.y"
1492 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); }
1493 break;
1494
1495 case 242:
1496#line 1121 "perly.y"
1497 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); }
1498 break;
1499
1500 case 243:
1501#line 1125 "perly.y"
1502 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); }
1503 break;
1504
1505 case 245:
1506#line 1130 "perly.y"
1507 { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); }
1508 break;
1509
1510 case 247:
1511#line 1135 "perly.y"
1512 { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); }
1513 break;
1514
1515 case 249:
1516#line 1140 "perly.y"
1517 { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); }
1518 break;
1519
1520 case 250:
1521#line 1145 "perly.y"
1522 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); }
1523 break;
1524
1525 case 251:
1526#line 1147 "perly.y"
1527 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); }
1528 break;
1529
1530 case 252:
1531#line 1149 "perly.y"
1532 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); }
1533 break;
1534
1535 case 253:
1536#line 1152 "perly.y"
1537 { (yyval.opval) = (ps[(1) - (1)].val.opval); }
1538 break;
1539
1540 default: break;
1541
1542
1543/* Generated from:
1544 * a0bc910627eeeffe8245b9a63dd97238e2e6b27b544be36b37d078cf6aba699b perly.y
1545 * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl
1546 * ex: set ro: */