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