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