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