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