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