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