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