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