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