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