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