This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
rpeep(): skip duplicate nextstates even with gaps
[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:
f417cfa9 8#line 120 "perly.y" /* yacc.c:1648 */
727a8fe5 9 {
624fa8bd 10 parser->expect = XSTATE;
5a2060e2 11 (yyval.ival) = 0;
a9f5ab8d
LM
12 }
13
0de566d7
DM
14 break;
15
16 case 3:
f417cfa9 17#line 125 "perly.y" /* yacc.c:1648 */
636def1f 18 {
a9f5ab8d 19 newPROG(block_end((ps[-1].val.ival),(ps[0].val.opval)));
8635e3c2 20 PL_compiling.cop_seq = 0;
727a8fe5 21 (yyval.ival) = 0;
a9f5ab8d
LM
22 }
23
9eb5c532
Z
24 break;
25
26 case 4:
f417cfa9 27#line 131 "perly.y" /* yacc.c:1648 */
727a8fe5 28 {
78cdf107 29 parser->expect = XTERM;
5a2060e2 30 (yyval.ival) = 0;
a9f5ab8d
LM
31 }
32
727a8fe5
Z
33 break;
34
35 case 5:
f417cfa9 36#line 136 "perly.y" /* yacc.c:1648 */
9eb5c532 37 {
a9f5ab8d 38 PL_eval_root = (ps[0].val.opval);
636def1f 39 (yyval.ival) = 0;
a9f5ab8d
LM
40 }
41
636def1f
RGS
42 break;
43
727a8fe5 44 case 6:
f417cfa9 45#line 141 "perly.y" /* yacc.c:1648 */
07ffcb73 46 {
78cdf107 47 parser->expect = XBLOCK;
5a2060e2 48 (yyval.ival) = 0;
a9f5ab8d
LM
49 }
50
07ffcb73
Z
51 break;
52
727a8fe5 53 case 7:
f417cfa9 54#line 146 "perly.y" /* yacc.c:1648 */
07ffcb73 55 {
5f211341 56 PL_pad_reset_pending = TRUE;
a9f5ab8d 57 PL_eval_root = (ps[0].val.opval);
07ffcb73 58 (yyval.ival) = 0;
e53d8f76 59 yyunlex();
0f8490d1 60 parser->yychar = yytoken = YYEOF;
a9f5ab8d
LM
61 }
62
07ffcb73
Z
63 break;
64
727a8fe5 65 case 8:
f417cfa9 66#line 154 "perly.y" /* yacc.c:1648 */
e53d8f76
Z
67 {
68 parser->expect = XSTATE;
5a2060e2 69 (yyval.ival) = 0;
a9f5ab8d
LM
70 }
71
636def1f
RGS
72 break;
73
727a8fe5 74 case 9:
f417cfa9 75#line 159 "perly.y" /* yacc.c:1648 */
e53d8f76 76 {
8359b381 77 PL_pad_reset_pending = TRUE;
a9f5ab8d 78 PL_eval_root = (ps[0].val.opval);
e53d8f76 79 (yyval.ival) = 0;
8359b381 80 yyunlex();
0f8490d1 81 parser->yychar = yytoken = YYEOF;
a9f5ab8d
LM
82 }
83
e53d8f76
Z
84 break;
85
727a8fe5 86 case 10:
f417cfa9 87#line 167 "perly.y" /* yacc.c:1648 */
8359b381
Z
88 {
89 parser->expect = XSTATE;
5a2060e2 90 (yyval.ival) = 0;
a9f5ab8d
LM
91 }
92
e53d8f76
Z
93 break;
94
727a8fe5 95 case 11:
f417cfa9 96#line 172 "perly.y" /* yacc.c:1648 */
8359b381 97 {
78cdf107 98 PL_pad_reset_pending = TRUE;
a9f5ab8d 99 PL_eval_root = (ps[0].val.opval);
8359b381 100 (yyval.ival) = 0;
78cdf107 101 yyunlex();
0f8490d1 102 parser->yychar = yytoken = YYEOF;
a9f5ab8d
LM
103 }
104
8359b381
Z
105 break;
106
8359b381 107 case 12:
f417cfa9 108#line 180 "perly.y" /* yacc.c:1648 */
78cdf107
Z
109 {
110 parser->expect = XSTATE;
5a2060e2 111 (yyval.ival) = 0;
a9f5ab8d
LM
112 }
113
78cdf107
Z
114 break;
115
116 case 13:
f417cfa9 117#line 185 "perly.y" /* yacc.c:1648 */
78cdf107 118 {
a9f5ab8d 119 PL_eval_root = (ps[0].val.opval);
78cdf107 120 (yyval.ival) = 0;
a9f5ab8d
LM
121 }
122
78cdf107
Z
123 break;
124
125 case 14:
f417cfa9 126#line 190 "perly.y" /* yacc.c:1648 */
996b0cb8
PLE
127 {
128 parser->expect = XSTATE;
129 (yyval.ival) = 0;
130 }
131
132 break;
133
134 case 15:
f417cfa9 135#line 195 "perly.y" /* yacc.c:1648 */
996b0cb8
PLE
136 {
137 PL_eval_root = (ps[0].val.opval);
138 (yyval.ival) = 0;
139 }
140
141 break;
142
143 case 16:
f417cfa9 144#line 203 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
145 { if (parser->copline > (line_t)(ps[-3].val.ival))
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:
f417cfa9 153#line 211 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
154 { if (parser->copline > (line_t)(ps[-6].val.ival))
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:
f417cfa9 162#line 218 "perly.y" /* yacc.c:1648 */
34b54951 163 { (yyval.ival) = block_start(TRUE);
a9f5ab8d
LM
164 parser->parsed_sub = 0; }
165
7c70caa5
FC
166 break;
167
996b0cb8 168 case 19:
f417cfa9 169#line 223 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
170 { if (parser->copline > (line_t)(ps[-3].val.ival))
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:
f417cfa9 178#line 230 "perly.y" /* yacc.c:1648 */
34b54951 179 { (yyval.ival) = block_start(FALSE);
a9f5ab8d
LM
180 parser->parsed_sub = 0; }
181
0de566d7
DM
182 break;
183
996b0cb8 184 case 21:
f417cfa9 185#line 236 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
186 { (yyval.opval) = NULL; }
187
0de566d7
DM
188 break;
189
996b0cb8 190 case 22:
f417cfa9 191#line 238 "perly.y" /* yacc.c:1648 */
a9f5ab8d 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:
f417cfa9 201#line 247 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
202 { (yyval.opval) = NULL; }
203
705fe0e5
FC
204 break;
205
996b0cb8 206 case 24:
f417cfa9 207#line 249 "perly.y" /* yacc.c:1648 */
a9f5ab8d 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:
f417cfa9 217#line 258 "perly.y" /* yacc.c:1648 */
eae48c89 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:
f417cfa9 225#line 262 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
226 { (yyval.opval) = (ps[0].val.opval); }
227
0d863452
RH
228 break;
229
996b0cb8 230 case 27:
f417cfa9 231#line 266 "perly.y" /* yacc.c:1648 */
8e720305 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:
f417cfa9 242#line 273 "perly.y" /* yacc.c:1648 */
8e720305 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:
f417cfa9 253#line 283 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
254 { (yyval.opval) = (ps[0].val.opval); }
255
8e720305
Z
256 break;
257
996b0cb8 258 case 30:
f417cfa9 259#line 285 "perly.y" /* yacc.c:1648 */
eae48c89
Z
260 {
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:
f417cfa9 273#line 297 "perly.y" /* yacc.c:1648 */
50278755 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:
f417cfa9 283#line 303 "perly.y" /* yacc.c:1648 */
f05e27e5 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:
f417cfa9 298#line 318 "perly.y" /* yacc.c:1648 */
f05e27e5 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:
f417cfa9 308#line 324 "perly.y" /* yacc.c:1648 */
436ddf68
DM
309 {
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:
f417cfa9 323#line 335 "perly.y" /* yacc.c:1648 */
436ddf68 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:
f417cfa9 334#line 342 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
335 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
336
0de566d7
DM
337 break;
338
996b0cb8 339 case 37:
f417cfa9 340#line 344 "perly.y" /* yacc.c:1648 */
5f211341 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:
f417cfa9 351#line 351 "perly.y" /* yacc.c:1648 */
eae48c89 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:
f417cfa9 361#line 357 "perly.y" /* yacc.c:1648 */
eae48c89 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:
f417cfa9 371#line 363 "perly.y" /* yacc.c:1648 */
eae48c89 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:
f417cfa9 380#line 368 "perly.y" /* yacc.c:1648 */
7896dde7 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:
f417cfa9 386#line 370 "perly.y" /* yacc.c:1648 */
7896dde7
Z
387 { (yyval.opval) = newWHENOP(0, op_scope((ps[0].val.opval))); }
388
389 break;
390
996b0cb8 391 case 43:
f417cfa9 392#line 372 "perly.y" /* yacc.c:1648 */
eae48c89 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:
f417cfa9 403#line 379 "perly.y" /* yacc.c:1648 */
eae48c89 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:
f417cfa9 414#line 386 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
415 { parser->expect = XTERM; }
416
2d0e3c96
FC
417 break;
418
996b0cb8 419 case 46:
f417cfa9 420#line 388 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
421 { parser->expect = XTERM; }
422
2d0e3c96
FC
423 break;
424
996b0cb8 425 case 47:
f417cfa9 426#line 391 "perly.y" /* yacc.c:1648 */
eae48c89 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:
f417cfa9 445#line 406 "perly.y" /* yacc.c:1648 */
eae48c89 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:
f417cfa9 454#line 411 "perly.y" /* yacc.c:1648 */
eae48c89 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:
f417cfa9 464#line 417 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
465 { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
466
d39c26a6
FC
467 break;
468
996b0cb8 469 case 51:
f417cfa9 470#line 419 "perly.y" /* yacc.c:1648 */
d39c26a6
FC
471 {
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:
f417cfa9 487#line 432 "perly.y" /* yacc.c:1648 */
d39c26a6 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:
f417cfa9 499#line 440 "perly.y" /* yacc.c:1648 */
eae48c89 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:
f417cfa9 509#line 446 "perly.y" /* yacc.c:1648 */
eae48c89
Z
510 {
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:
f417cfa9 519#line 452 "perly.y" /* yacc.c:1648 */
eae48c89 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:
f417cfa9 530#line 459 "perly.y" /* yacc.c:1648 */
eae48c89
Z
531 {
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:
f417cfa9 542#line 467 "perly.y" /* yacc.c:1648 */
eae48c89 543 {
a9f5ab8d
LM
544 (yyval.opval) = (ps[-1].val.opval);
545 }
546
0d863452
RH
547 break;
548
996b0cb8 549 case 58:
f417cfa9 550#line 471 "perly.y" /* yacc.c:1648 */
eae48c89 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:
f417cfa9 559#line 476 "perly.y" /* yacc.c:1648 */
29d69c3c 560 {
a9f5ab8d 561 (yyval.opval) = NULL;
624fa8bd 562 parser->copline = NOLINE;
a9f5ab8d
LM
563 }
564
0de566d7
DM
565 break;
566
996b0cb8 567 case 60:
f417cfa9 568#line 484 "perly.y" /* yacc.c:1648 */
705fe0e5 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:
f417cfa9 587#line 501 "perly.y" /* yacc.c:1648 */
869b8c11
Z
588 { (yyval.opval) = NULL; }
589
590 break;
591
996b0cb8 592 case 62:
f417cfa9 593#line 503 "perly.y" /* yacc.c:1648 */
869b8c11 594 { (yyval.opval) = op_unscope((ps[-1].val.opval)); }
a9f5ab8d 595
0de566d7
DM
596 break;
597
996b0cb8 598 case 63:
f417cfa9 599#line 508 "perly.y" /* yacc.c:1648 */
869b8c11 600 { (yyval.opval) = NULL; }
a9f5ab8d 601
0de566d7
DM
602 break;
603
996b0cb8 604 case 64:
f417cfa9 605#line 510 "perly.y" /* yacc.c:1648 */
869b8c11 606 { (yyval.opval) = (ps[0].val.opval); }
a9f5ab8d 607
0de566d7
DM
608 break;
609
996b0cb8 610 case 65:
f417cfa9 611#line 512 "perly.y" /* yacc.c:1648 */
869b8c11 612 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[0].val.opval), (ps[-2].val.opval)); }
a9f5ab8d 613
0d863452
RH
614 break;
615
996b0cb8 616 case 66:
f417cfa9 617#line 514 "perly.y" /* yacc.c:1648 */
869b8c11 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 67:
f417cfa9 623#line 516 "perly.y" /* yacc.c:1648 */
869b8c11 624 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[0].val.opval)), (ps[-2].val.opval)); }
a9f5ab8d 625
2d0e3c96
FC
626 break;
627
996b0cb8 628 case 68:
f417cfa9 629#line 518 "perly.y" /* yacc.c:1648 */
869b8c11 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 69:
f417cfa9 635#line 520 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
636 { (yyval.opval) = newFOROP(0, NULL, (ps[0].val.opval), (ps[-2].val.opval), NULL);
637 parser->copline = (line_t)(ps[-1].val.ival); }
638
d39c26a6
FC
639 break;
640
996b0cb8 641 case 70:
f417cfa9 642#line 523 "perly.y" /* yacc.c:1648 */
7896dde7 643 { (yyval.opval) = newWHENOP((ps[0].val.opval), op_scope((ps[-2].val.opval))); }
a9f5ab8d 644
abcf453d
PM
645 break;
646
996b0cb8 647 case 71:
f417cfa9 648#line 528 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
649 { (yyval.opval) = NULL; }
650
abcf453d
PM
651 break;
652
996b0cb8 653 case 72:
f417cfa9 654#line 530 "perly.y" /* yacc.c:1648 */
3ad73efd 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
996b0cb8 662 case 73:
f417cfa9 663#line 535 "perly.y" /* yacc.c:1648 */
a9f5ab8d 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
996b0cb8 673 case 74:
f417cfa9 674#line 545 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
675 { (yyval.opval) = NULL; }
676
eae48c89
Z
677 break;
678
996b0cb8 679 case 75:
f417cfa9 680#line 547 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
681 { (yyval.opval) = op_scope((ps[0].val.opval)); }
682
eae48c89
Z
683 break;
684
996b0cb8 685 case 76:
f417cfa9 686#line 552 "perly.y" /* yacc.c:1648 */
9a9798c2 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
996b0cb8 693 case 77:
f417cfa9 694#line 558 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
695 { (yyval.opval) = NULL; }
696
7c70caa5
FC
697 break;
698
996b0cb8 699 case 79:
f417cfa9 700#line 564 "perly.y" /* yacc.c:1648 */
abcf453d
PM
701 { YYSTYPE tmplval;
702 (void)scan_num("1", &tmplval);
a9f5ab8d
LM
703 (yyval.opval) = tmplval.opval; }
704
0de566d7
DM
705 break;
706
996b0cb8 707 case 81:
f417cfa9 708#line 572 "perly.y" /* yacc.c:1648 */
29d69c3c 709 { (yyval.opval) = invert(scalar((ps[0].val.opval))); }
a9f5ab8d 710
2af555bf
DM
711 break;
712
996b0cb8 713 case 82:
f417cfa9 714#line 577 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
715 { (yyval.opval) = (ps[0].val.opval); intro_my(); }
716
0de566d7
DM
717 break;
718
996b0cb8 719 case 83:
f417cfa9 720#line 581 "perly.y" /* yacc.c:1648 */
29d69c3c 721 { (yyval.opval) = (ps[0].val.opval); intro_my(); }
a9f5ab8d 722
0de566d7
DM
723 break;
724
996b0cb8 725 case 84:
f417cfa9 726#line 584 "perly.y" /* yacc.c:1648 */
29d69c3c 727 { (yyval.opval) = (ps[0].val.opval); }
a9f5ab8d 728
b5bbe64a
JH
729 break;
730
996b0cb8 731 case 85:
f417cfa9 732#line 585 "perly.y" /* yacc.c:1648 */
29d69c3c 733 { (yyval.opval) = NULL; }
a9f5ab8d 734
0de566d7
DM
735 break;
736
996b0cb8 737 case 86:
f417cfa9 738#line 589 "perly.y" /* yacc.c:1648 */
29d69c3c 739 { (yyval.ival) = start_subparse(FALSE, 0);
a9f5ab8d
LM
740 SAVEFREESV(PL_compcv); }
741
0de566d7
DM
742 break;
743
996b0cb8 744 case 87:
f417cfa9 745#line 595 "perly.y" /* yacc.c:1648 */
29d69c3c 746 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
a9f5ab8d
LM
747 SAVEFREESV(PL_compcv); }
748
0de566d7
DM
749 break;
750
996b0cb8 751 case 88:
f417cfa9 752#line 600 "perly.y" /* yacc.c:1648 */
29d69c3c
Z
753 { (yyval.ival) = start_subparse(TRUE, 0);
754 SAVEFREESV(PL_compcv); }
a9f5ab8d 755
2d0e3c96
FC
756 break;
757
996b0cb8 758 case 91:
f417cfa9 759#line 611 "perly.y" /* yacc.c:1648 */
869b8c11
Z
760 { (yyval.opval) = NULL; }
761
762 break;
763
996b0cb8 764 case 93:
f417cfa9 765#line 617 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
766 { (yyval.opval) = NULL; }
767
2d0e3c96
FC
768 break;
769
996b0cb8 770 case 94:
f417cfa9 771#line 619 "perly.y" /* yacc.c:1648 */
869b8c11 772 { (yyval.opval) = (ps[0].val.opval); }
a9f5ab8d 773
d39c26a6
FC
774 break;
775
996b0cb8 776 case 95:
f417cfa9 777#line 621 "perly.y" /* yacc.c:1648 */
869b8c11 778 { (yyval.opval) = NULL; }
a9f5ab8d 779
d39c26a6
FC
780 break;
781
996b0cb8 782 case 96:
f417cfa9 783#line 626 "perly.y" /* yacc.c:1648 */
869b8c11 784 { (yyval.opval) = (ps[0].val.opval); }
a9f5ab8d 785
d39c26a6
FC
786 break;
787
996b0cb8 788 case 97:
f417cfa9 789#line 628 "perly.y" /* yacc.c:1648 */
869b8c11 790 { (yyval.opval) = NULL; }
a9f5ab8d 791
abcf453d
PM
792 break;
793
996b0cb8 794 case 98:
f417cfa9 795#line 639 "perly.y" /* yacc.c:1648 */
869b8c11 796 { parser->in_my = 0; (yyval.opval) = NULL; }
a9f5ab8d 797
d3d9da4a
DM
798 break;
799
996b0cb8 800 case 99:
f417cfa9 801#line 641 "perly.y" /* yacc.c:1648 */
869b8c11 802 { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); }
a9f5ab8d 803
d3d9da4a
DM
804 break;
805
996b0cb8 806 case 100:
f417cfa9 807#line 646 "perly.y" /* yacc.c:1648 */
869b8c11 808 { (yyval.ival) = '@'; }
a9f5ab8d 809
d3d9da4a
DM
810 break;
811
996b0cb8 812 case 101:
f417cfa9 813#line 648 "perly.y" /* yacc.c:1648 */
29d69c3c
Z
814 { (yyval.ival) = '%'; }
815
816 break;
817
996b0cb8 818 case 102:
f417cfa9 819#line 652 "perly.y" /* yacc.c:1648 */
d3d9da4a 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 103:
f417cfa9 839#line 671 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
840 { (yyval.opval) = NULL; }
841
d3d9da4a
DM
842 break;
843
996b0cb8 844 case 104:
f417cfa9 845#line 673 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
846 { (yyval.opval) = newOP(OP_NULL, 0); }
847
d3d9da4a
DM
848 break;
849
996b0cb8 850 case 105:
f417cfa9 851#line 675 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
852 { (yyval.opval) = (ps[0].val.opval); }
853
d3d9da4a
DM
854 break;
855
996b0cb8 856 case 106:
f417cfa9 857#line 681 "perly.y" /* yacc.c:1648 */
30d9c59b 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 107:
f417cfa9 922#line 746 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
923 { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); }
924
d3d9da4a
DM
925 break;
926
996b0cb8 927 case 108:
f417cfa9 928#line 748 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
929 { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); }
930
d3d9da4a
DM
931 break;
932
996b0cb8 933 case 109:
f417cfa9 934#line 754 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
935 { (yyval.opval) = (ps[-1].val.opval); }
936
d3d9da4a
DM
937 break;
938
996b0cb8 939 case 110:
f417cfa9 940#line 756 "perly.y" /* yacc.c:1648 */
d3d9da4a 941 {
a9f5ab8d
LM
942 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-2].val.opval), (ps[0].val.opval));
943 }
944
30d9c59b
Z
945 break;
946
996b0cb8 947 case 111:
f417cfa9 948#line 760 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
949 { (yyval.opval) = (ps[0].val.opval); }
950
d3d9da4a
DM
951 break;
952
996b0cb8 953 case 112:
f417cfa9 954#line 765 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
955 { (yyval.opval) = NULL; }
956
d3d9da4a
DM
957 break;
958
996b0cb8 959 case 113:
f417cfa9 960#line 767 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
961 { (yyval.opval) = (ps[0].val.opval); }
962
d3d9da4a
DM
963 break;
964
996b0cb8 965 case 114:
f417cfa9 966#line 771 "perly.y" /* yacc.c:1648 */
75230cc1 967 { (yyval.opval) = NULL; }
894f226e
DM
968
969 break;
970
996b0cb8 971 case 115:
f417cfa9 972#line 773 "perly.y" /* yacc.c:1648 */
75230cc1
DM
973 { (yyval.opval) = (ps[0].val.opval); }
974
975 break;
976
996b0cb8 977 case 116:
f417cfa9 978#line 777 "perly.y" /* yacc.c:1648 */
996b0cb8
PLE
979 { (yyval.opval) = (ps[-1].val.opval); }
980
981 break;
982
983 case 117:
f417cfa9 984#line 780 "perly.y" /* yacc.c:1648 */
30d9c59b 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
996b0cb8 998 case 118:
f417cfa9 999#line 791 "perly.y" /* yacc.c:1648 */
d3d9da4a 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 */
1028 (yyval.opval) = op_append_elem(OP_LINESEQ,
1029 sigops,
1030 newSTATEOP(0, NULL, NULL));
d3d9da4a 1031
49fb8620 1032 parser->in_my = 0;
a8c56356
DM
1033 /* tell the toker that attrributes can follow
1034 * this sig, but only so that the toker
1035 * can skip through any (illegal) trailing
1036 * attribute text then give a useful error
1037 * message about "attributes before sig",
1038 * rather than falling over ina mess at
1039 * unrecognised syntax.
1040 */
1041 parser->expect = XATTRBLOCK;
1042 parser->sig_seen = TRUE;
d3d9da4a 1043 LEAVE;
a9f5ab8d
LM
1044 }
1045
30d9c59b
Z
1046 break;
1047
996b0cb8 1048 case 119:
f417cfa9 1049#line 839 "perly.y" /* yacc.c:1648 */
75230cc1
DM
1050 { (yyval.opval) = (ps[0].val.opval); }
1051
1052 break;
1053
996b0cb8 1054 case 120:
f417cfa9 1055#line 840 "perly.y" /* yacc.c:1648 */
75230cc1
DM
1056 { (yyval.opval) = NULL; }
1057
1058 break;
1059
996b0cb8 1060 case 121:
f417cfa9 1061#line 846 "perly.y" /* yacc.c:1648 */
894f226e
DM
1062 {
1063 if (parser->copline > (line_t)(ps[-2].val.ival))
1064 parser->copline = (line_t)(ps[-2].val.ival);
75230cc1
DM
1065 (yyval.opval) = block_end((ps[-3].val.ival), (ps[-1].val.opval));
1066 }
894f226e
DM
1067
1068 break;
1069
996b0cb8 1070 case 122:
f417cfa9 1071#line 856 "perly.y" /* yacc.c:1648 */
894f226e
DM
1072 { (yyval.opval) = (ps[0].val.opval); }
1073
1074 break;
1075
996b0cb8 1076 case 123:
f417cfa9 1077#line 857 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1078 { (yyval.opval) = NULL; }
1079
0de566d7
DM
1080 break;
1081
996b0cb8 1082 case 124:
f417cfa9 1083#line 861 "perly.y" /* yacc.c:1648 */
75230cc1
DM
1084 {
1085 if (parser->copline > (line_t)(ps[-2].val.ival))
1086 parser->copline = (line_t)(ps[-2].val.ival);
1087 (yyval.opval) = block_end((ps[-4].val.ival),
1088 op_append_list(OP_LINESEQ, (ps[-3].val.opval), (ps[-1].val.opval)));
1089 }
1090
1091 break;
1092
996b0cb8 1093 case 125:
f417cfa9 1094#line 872 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1095 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1096
b5bbe64a
JH
1097 break;
1098
996b0cb8 1099 case 126:
f417cfa9 1100#line 874 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1101 { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1102
0de566d7
DM
1103 break;
1104
996b0cb8 1105 case 127:
f417cfa9 1106#line 876 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1107 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
1108
0de566d7
DM
1109 break;
1110
996b0cb8 1111 case 129:
f417cfa9 1112#line 882 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1113 { (yyval.opval) = (ps[-1].val.opval); }
1114
0de566d7
DM
1115 break;
1116
996b0cb8 1117 case 130:
f417cfa9 1118#line 884 "perly.y" /* yacc.c:1648 */
abcf453d 1119 {
a9f5ab8d
LM
1120 OP* term = (ps[0].val.opval);
1121 (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term);
1122 }
1123
0de566d7
DM
1124 break;
1125
996b0cb8 1126 case 132:
f417cfa9 1127#line 893 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1128 { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED,
1129 op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) );
1130 }
1131
0de566d7
DM
1132 break;
1133
996b0cb8 1134 case 133:
f417cfa9 1135#line 897 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1136 { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED,
1137 op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) );
1138 }
1139
0de566d7
DM
1140 break;
1141
996b0cb8 1142 case 134:
f417cfa9 1143#line 901 "perly.y" /* yacc.c:1648 */
03d05f6e 1144 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
2fcb4757 1145 op_append_elem(OP_LIST,
a9f5ab8d
LM
1146 op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)),
1147 newMETHOP(OP_METHOD, 0, (ps[-3].val.opval))));
1148 }
1149
0de566d7
DM
1150 break;
1151
996b0cb8 1152 case 135:
f417cfa9 1153#line 907 "perly.y" /* yacc.c:1648 */
03d05f6e 1154 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
a9f5ab8d
LM
1155 op_append_elem(OP_LIST, scalar((ps[-2].val.opval)),
1156 newMETHOP(OP_METHOD, 0, (ps[0].val.opval))));
1157 }
1158
0de566d7
DM
1159 break;
1160
996b0cb8 1161 case 136:
f417cfa9 1162#line 912 "perly.y" /* yacc.c:1648 */
03d05f6e 1163 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
2fcb4757 1164 op_append_elem(OP_LIST,
a9f5ab8d
LM
1165 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)),
1166 newMETHOP(OP_METHOD, 0, (ps[-2].val.opval))));
1167 }
1168
0de566d7
DM
1169 break;
1170
996b0cb8 1171 case 137:
f417cfa9 1172#line 918 "perly.y" /* yacc.c:1648 */
03d05f6e 1173 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
2fcb4757 1174 op_append_elem(OP_LIST,
a9f5ab8d
LM
1175 op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)),
1176 newMETHOP(OP_METHOD, 0, (ps[-4].val.opval))));
1177 }
1178
0de566d7
DM
1179 break;
1180
996b0cb8 1181 case 138:
f417cfa9 1182#line 924 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1183 { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1184
0de566d7
DM
1185 break;
1186
996b0cb8 1187 case 139:
f417cfa9 1188#line 926 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1189 { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
1190
0de566d7
DM
1191 break;
1192
996b0cb8 1193 case 140:
f417cfa9 1194#line 928 "perly.y" /* yacc.c:1648 */
69afcc21
TC
1195 { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
1196
1197 break;
1198
996b0cb8 1199 case 141:
f417cfa9 1200#line 930 "perly.y" /* yacc.c:1648 */
5a5094bd 1201 { SvREFCNT_inc_simple_void(PL_compcv);
a9f5ab8d
LM
1202 (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, NULL, (ps[0].val.opval)); }
1203
0de566d7
DM
1204 break;
1205
996b0cb8 1206 case 142:
f417cfa9 1207#line 933 "perly.y" /* yacc.c:1648 */
f05e27e5 1208 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
2fcb4757 1209 op_append_elem(OP_LIST,
a9f5ab8d
LM
1210 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval)));
1211 }
1212
0de566d7
DM
1213 break;
1214
996b0cb8 1215 case 145:
f417cfa9 1216#line 948 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1217 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); }
1218
0de566d7
DM
1219 break;
1220
996b0cb8 1221 case 146:
f417cfa9 1222#line 950 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1223 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval)));
1224 }
1225
0de566d7
DM
1226 break;
1227
996b0cb8 1228 case 147:
f417cfa9 1229#line 953 "perly.y" /* yacc.c:1648 */
f05e27e5 1230 { (yyval.opval) = newBINOP(OP_AELEM, 0,
a9f5ab8d
LM
1231 ref(newAVREF((ps[-4].val.opval)),OP_RV2AV),
1232 scalar((ps[-1].val.opval)));
1233 }
1234
0de566d7
DM
1235 break;
1236
996b0cb8 1237 case 148:
f417cfa9 1238#line 958 "perly.y" /* yacc.c:1648 */
f05e27e5 1239 { (yyval.opval) = newBINOP(OP_AELEM, 0,
a9f5ab8d
LM
1240 ref(newAVREF((ps[-3].val.opval)),OP_RV2AV),
1241 scalar((ps[-1].val.opval)));
1242 }
1243
0de566d7
DM
1244 break;
1245
996b0cb8 1246 case 149:
f417cfa9 1247#line 963 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1248 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval)));
1249 }
1250
0de566d7
DM
1251 break;
1252
996b0cb8 1253 case 150:
f417cfa9 1254#line 966 "perly.y" /* yacc.c:1648 */
f05e27e5 1255 { (yyval.opval) = newBINOP(OP_HELEM, 0,
a9f5ab8d
LM
1256 ref(newHVREF((ps[-5].val.opval)),OP_RV2HV),
1257 jmaybe((ps[-2].val.opval))); }
1258
0de566d7
DM
1259 break;
1260
996b0cb8 1261 case 151:
f417cfa9 1262#line 970 "perly.y" /* yacc.c:1648 */
f05e27e5 1263 { (yyval.opval) = newBINOP(OP_HELEM, 0,
a9f5ab8d
LM
1264 ref(newHVREF((ps[-4].val.opval)),OP_RV2HV),
1265 jmaybe((ps[-2].val.opval))); }
1266
0de566d7
DM
1267 break;
1268
996b0cb8 1269 case 152:
f417cfa9 1270#line 974 "perly.y" /* yacc.c:1648 */
b5bbe64a 1271 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
097ff42c
Z
1272 newCVREF(0, scalar((ps[-3].val.opval))));
1273 if (parser->expect == XBLOCK)
1274 parser->expect = XOPERATOR;
1275 }
a9f5ab8d 1276
b5bbe64a
JH
1277 break;
1278
996b0cb8 1279 case 153:
f417cfa9 1280#line 980 "perly.y" /* yacc.c:1648 */
9a9798c2 1281 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
a9f5ab8d 1282 op_append_elem(OP_LIST, (ps[-1].val.opval),
097ff42c
Z
1283 newCVREF(0, scalar((ps[-4].val.opval)))));
1284 if (parser->expect == XBLOCK)
1285 parser->expect = XOPERATOR;
1286 }
a9f5ab8d 1287
0de566d7
DM
1288 break;
1289
996b0cb8 1290 case 154:
f417cfa9 1291#line 988 "perly.y" /* yacc.c:1648 */
9a9798c2 1292 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
a9f5ab8d 1293 op_append_elem(OP_LIST, (ps[-1].val.opval),
097ff42c
Z
1294 newCVREF(0, scalar((ps[-3].val.opval)))));
1295 if (parser->expect == XBLOCK)
1296 parser->expect = XOPERATOR;
1297 }
a9f5ab8d 1298
0de566d7
DM
1299 break;
1300
996b0cb8 1301 case 155:
f417cfa9 1302#line 995 "perly.y" /* yacc.c:1648 */
d39c26a6 1303 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
097ff42c
Z
1304 newCVREF(0, scalar((ps[-2].val.opval))));
1305 if (parser->expect == XBLOCK)
1306 parser->expect = XOPERATOR;
1307 }
a9f5ab8d 1308
ea25a9b2
Z
1309 break;
1310
996b0cb8 1311 case 156:
f417cfa9 1312#line 1001 "perly.y" /* yacc.c:1648 */
869b8c11
Z
1313 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); }
1314
1315 break;
1316
996b0cb8 1317 case 157:
f417cfa9 1318#line 1003 "perly.y" /* yacc.c:1648 */
869b8c11 1319 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); }
a9f5ab8d 1320
0de566d7
DM
1321 break;
1322
996b0cb8 1323 case 158:
f417cfa9 1324#line 1005 "perly.y" /* yacc.c:1648 */
869b8c11 1325 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); }
a9f5ab8d 1326
0de566d7
DM
1327 break;
1328
996b0cb8 1329 case 159:
f417cfa9 1330#line 1010 "perly.y" /* yacc.c:1648 */
869b8c11 1331 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); }
a9f5ab8d 1332
0de566d7
DM
1333 break;
1334
996b0cb8 1335 case 160:
f417cfa9 1336#line 1012 "perly.y" /* yacc.c:1648 */
869b8c11 1337 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
a9f5ab8d 1338
0de566d7
DM
1339 break;
1340
996b0cb8 1341 case 161:
f417cfa9 1342#line 1014 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1343 { if ((ps[-1].val.ival) != OP_REPEAT)
1344 scalar((ps[-2].val.opval));
1345 (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval)));
1346 }
1347
0de566d7
DM
1348 break;
1349
996b0cb8 1350 case 162:
f417cfa9 1351#line 1019 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1352 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1353
4098b6bb
JV
1354 break;
1355
996b0cb8 1356 case 163:
f417cfa9 1357#line 1021 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1358 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1359
7c70caa5
FC
1360 break;
1361
996b0cb8 1362 case 164:
f417cfa9 1363#line 1023 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1364 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1365
764212cf
FC
1366 break;
1367
996b0cb8 1368 case 165:
f417cfa9 1369#line 1025 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1370 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
1371
0de566d7
DM
1372 break;
1373
996b0cb8 1374 case 166:
f417cfa9 1375#line 1027 "perly.y" /* yacc.c:1648 */
7896dde7 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 167:
f417cfa9 1381#line 1029 "perly.y" /* yacc.c:1648 */
69afcc21 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 168:
f417cfa9 1387#line 1031 "perly.y" /* yacc.c:1648 */
69afcc21 1388 { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
a9f5ab8d 1389
500bedb6
DM
1390 break;
1391
996b0cb8 1392 case 169:
f417cfa9 1393#line 1033 "perly.y" /* yacc.c:1648 */
69afcc21 1394 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
a9f5ab8d 1395
0de566d7
DM
1396 break;
1397
996b0cb8 1398 case 170:
f417cfa9 1399#line 1035 "perly.y" /* yacc.c:1648 */
69afcc21 1400 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
a9f5ab8d 1401
0de566d7
DM
1402 break;
1403
996b0cb8 1404 case 171:
f417cfa9 1405#line 1037 "perly.y" /* yacc.c:1648 */
69afcc21 1406 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
a9f5ab8d 1407
0de566d7
DM
1408 break;
1409
996b0cb8 1410 case 172:
f417cfa9 1411#line 1039 "perly.y" /* yacc.c:1648 */
69afcc21 1412 { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
a9f5ab8d 1413
0de566d7
DM
1414 break;
1415
996b0cb8 1416 case 173:
f417cfa9 1417#line 1044 "perly.y" /* yacc.c:1648 */
69afcc21 1418 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); }
a9f5ab8d 1419
0de566d7
DM
1420 break;
1421
996b0cb8 1422 case 174:
f417cfa9 1423#line 1046 "perly.y" /* yacc.c:1648 */
69afcc21 1424 { (yyval.opval) = (ps[0].val.opval); }
a9f5ab8d 1425
cc624add
FC
1426 break;
1427
996b0cb8 1428 case 175:
f417cfa9 1429#line 1049 "perly.y" /* yacc.c:1648 */
69afcc21 1430 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
7896dde7
Z
1431
1432 break;
1433
996b0cb8 1434 case 176:
f417cfa9 1435#line 1051 "perly.y" /* yacc.c:1648 */
69afcc21
TC
1436 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); }
1437
1438 break;
1439
996b0cb8 1440 case 177:
f417cfa9 1441#line 1053 "perly.y" /* yacc.c:1648 */
d39c26a6 1442 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
a9f5ab8d
LM
1443 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); }
1444
0de566d7
DM
1445 break;
1446
996b0cb8 1447 case 178:
f417cfa9 1448#line 1056 "perly.y" /* yacc.c:1648 */
d39c26a6 1449 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
a9f5ab8d
LM
1450 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));}
1451
b5bbe64a
JH
1452 break;
1453
996b0cb8 1454 case 179:
f417cfa9 1455#line 1059 "perly.y" /* yacc.c:1648 */
03d05f6e 1456 { (yyval.opval) = op_convert_list(OP_JOIN, 0,
d39c26a6
FC
1457 op_append_elem(
1458 OP_LIST,
1459 newSVREF(scalar(
1460 newSVOP(OP_CONST,0,
1461 newSVpvs("\""))
1462 )),
a9f5ab8d 1463 (ps[-1].val.opval)
d39c26a6 1464 ));
a9f5ab8d
LM
1465 }
1466
0de566d7
DM
1467 break;
1468
996b0cb8 1469 case 180:
f417cfa9 1470#line 1070 "perly.y" /* yacc.c:1648 */
d39c26a6 1471 { (yyval.opval) = newUNOP(OP_PREINC, 0,
a9f5ab8d
LM
1472 op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); }
1473
0de566d7
DM
1474 break;
1475
996b0cb8 1476 case 181:
f417cfa9 1477#line 1073 "perly.y" /* yacc.c:1648 */
d39c26a6 1478 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
a9f5ab8d
LM
1479 op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); }
1480
0de566d7
DM
1481 break;
1482
996b0cb8 1483 case 182:
f417cfa9 1484#line 1080 "perly.y" /* yacc.c:1648 */
869b8c11
Z
1485 { (yyval.opval) = newANONLIST((ps[-1].val.opval)); }
1486
1487 break;
1488
996b0cb8 1489 case 183:
f417cfa9 1490#line 1082 "perly.y" /* yacc.c:1648 */
869b8c11 1491 { (yyval.opval) = newANONLIST(NULL);}
a9f5ab8d 1492
0de566d7
DM
1493 break;
1494
996b0cb8 1495 case 184:
f417cfa9 1496#line 1084 "perly.y" /* yacc.c:1648 */
869b8c11 1497 { (yyval.opval) = newANONHASH((ps[-2].val.opval)); }
a9f5ab8d 1498
9a9798c2
YST
1499 break;
1500
996b0cb8 1501 case 185:
f417cfa9 1502#line 1086 "perly.y" /* yacc.c:1648 */
869b8c11 1503 { (yyval.opval) = newANONHASH(NULL); }
a9f5ab8d 1504
9a9798c2
YST
1505 break;
1506
996b0cb8 1507 case 186:
f417cfa9 1508#line 1088 "perly.y" /* yacc.c:1648 */
d39c26a6 1509 { SvREFCNT_inc_simple_void(PL_compcv);
a9f5ab8d
LM
1510 (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); }
1511
0de566d7
DM
1512 break;
1513
996b0cb8 1514 case 187:
f417cfa9 1515#line 1091 "perly.y" /* yacc.c:1648 */
436ddf68 1516 { SvREFCNT_inc_simple_void(PL_compcv);
75230cc1 1517 (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); }
436ddf68
DM
1518
1519 break;
1520
996b0cb8 1521 case 188:
f417cfa9 1522#line 1097 "perly.y" /* yacc.c:1648 */
894f226e 1523 { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));}
a9f5ab8d 1524
0de566d7
DM
1525 break;
1526
996b0cb8 1527 case 189:
f417cfa9 1528#line 1099 "perly.y" /* yacc.c:1648 */
894f226e 1529 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));}
a9f5ab8d 1530
0de566d7
DM
1531 break;
1532
996b0cb8 1533 case 194:
f417cfa9 1534#line 1107 "perly.y" /* yacc.c:1648 */
69afcc21 1535 { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); }
a9f5ab8d 1536
0de566d7
DM
1537 break;
1538
996b0cb8 1539 case 195:
f417cfa9 1540#line 1109 "perly.y" /* yacc.c:1648 */
69afcc21 1541 { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); }
a9f5ab8d 1542
ea25a9b2
Z
1543 break;
1544
996b0cb8 1545 case 196:
f417cfa9 1546#line 1111 "perly.y" /* yacc.c:1648 */
69afcc21 1547 { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); }
a9f5ab8d 1548
0de566d7
DM
1549 break;
1550
996b0cb8 1551 case 197:
f417cfa9 1552#line 1113 "perly.y" /* yacc.c:1648 */
69afcc21 1553 { (yyval.opval) = (ps[0].val.opval); }
a9f5ab8d 1554
0de566d7
DM
1555 break;
1556
996b0cb8 1557 case 198:
f417cfa9 1558#line 1115 "perly.y" /* yacc.c:1648 */
69afcc21 1559 { (yyval.opval) = localize((ps[0].val.opval),0); }
a9f5ab8d 1560
f20dcd76
VP
1561 break;
1562
996b0cb8 1563 case 199:
f417cfa9 1564#line 1117 "perly.y" /* yacc.c:1648 */
69afcc21 1565 { (yyval.opval) = sawparens((ps[-1].val.opval)); }
a9f5ab8d 1566
8e720305
Z
1567 break;
1568
996b0cb8 1569 case 200:
f417cfa9 1570#line 1119 "perly.y" /* yacc.c:1648 */
69afcc21 1571 { (yyval.opval) = (ps[0].val.opval); }
a9f5ab8d 1572
08b3e84f
TC
1573 break;
1574
996b0cb8 1575 case 201:
f417cfa9 1576#line 1121 "perly.y" /* yacc.c:1648 */
69afcc21 1577 { (yyval.opval) = sawparens(newNULLLIST()); }
a9f5ab8d 1578
4210d3f1
FC
1579 break;
1580
996b0cb8 1581 case 202:
f417cfa9 1582#line 1123 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1583 { (yyval.opval) = (ps[0].val.opval); }
1584
cc624add
FC
1585 break;
1586
996b0cb8 1587 case 203:
f417cfa9 1588#line 1125 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1589 { (yyval.opval) = (ps[0].val.opval); }
1590
d39c26a6
FC
1591 break;
1592
996b0cb8 1593 case 204:
f417cfa9 1594#line 1127 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1595 { (yyval.opval) = (ps[0].val.opval); }
1596
d39c26a6
FC
1597 break;
1598
996b0cb8 1599 case 205:
f417cfa9 1600#line 1129 "perly.y" /* yacc.c:1648 */
69afcc21 1601 { (yyval.opval) = (ps[0].val.opval); }
a9f5ab8d 1602
e118fea3
FC
1603 break;
1604
996b0cb8 1605 case 206:
f417cfa9 1606#line 1131 "perly.y" /* yacc.c:1648 */
69afcc21 1607 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));}
7896dde7
Z
1608
1609 break;
1610
996b0cb8 1611 case 207:
f417cfa9 1612#line 1133 "perly.y" /* yacc.c:1648 */
69afcc21
TC
1613 { (yyval.opval) = (ps[0].val.opval); }
1614
1615 break;
1616
996b0cb8 1617 case 208:
f417cfa9 1618#line 1135 "perly.y" /* yacc.c:1648 */
2fcb4757 1619 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
f05e27e5
DM
1620 newOP(OP_PUSHMARK, 0),
1621 newLISTOP(OP_ASLICE, 0,
a9f5ab8d
LM
1622 list((ps[-1].val.opval)),
1623 ref((ps[-3].val.opval), OP_ASLICE)));
1624 if ((yyval.opval) && (ps[-3].val.opval))
429a2555 1625 (yyval.opval)->op_private |=
a9f5ab8d
LM
1626 (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
1627 }
1628
0de566d7
DM
1629 break;
1630
996b0cb8 1631 case 209:
f417cfa9 1632#line 1145 "perly.y" /* yacc.c:1648 */
6dd3e0f2
RZ
1633 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1634 newOP(OP_PUSHMARK, 0),
1635 newLISTOP(OP_KVASLICE, 0,
a9f5ab8d
LM
1636 list((ps[-1].val.opval)),
1637 ref(oopsAV((ps[-3].val.opval)), OP_KVASLICE)));
1638 if ((yyval.opval) && (ps[-3].val.opval))
95a31aad 1639 (yyval.opval)->op_private |=
a9f5ab8d
LM
1640 (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
1641 }
1642
6dd3e0f2
RZ
1643 break;
1644
996b0cb8 1645 case 210:
f417cfa9 1646#line 1155 "perly.y" /* yacc.c:1648 */
2fcb4757 1647 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
f05e27e5
DM
1648 newOP(OP_PUSHMARK, 0),
1649 newLISTOP(OP_HSLICE, 0,
a9f5ab8d
LM
1650 list((ps[-2].val.opval)),
1651 ref(oopsHV((ps[-4].val.opval)), OP_HSLICE)));
1652 if ((yyval.opval) && (ps[-4].val.opval))
429a2555 1653 (yyval.opval)->op_private |=
a9f5ab8d
LM
1654 (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
1655 }
1656
0de566d7
DM
1657 break;
1658
996b0cb8 1659 case 211:
f417cfa9 1660#line 1165 "perly.y" /* yacc.c:1648 */
5cae3edb
RZ
1661 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1662 newOP(OP_PUSHMARK, 0),
1663 newLISTOP(OP_KVHSLICE, 0,
a9f5ab8d
LM
1664 list((ps[-2].val.opval)),
1665 ref((ps[-4].val.opval), OP_KVHSLICE)));
1666 if ((yyval.opval) && (ps[-4].val.opval))
95a31aad 1667 (yyval.opval)->op_private |=
a9f5ab8d
LM
1668 (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
1669 }
1670
0de566d7
DM
1671 break;
1672
996b0cb8 1673 case 212:
f417cfa9 1674#line 1175 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1675 { (yyval.opval) = (ps[0].val.opval); }
1676
0de566d7
DM
1677 break;
1678
996b0cb8 1679 case 213:
f417cfa9 1680#line 1177 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1681 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); }
1682
e118fea3
FC
1683 break;
1684
996b0cb8 1685 case 214:
f417cfa9 1686#line 1179 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1687 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval)));
1688 }
1689
abcf453d
PM
1690 break;
1691
996b0cb8 1692 case 215:
f417cfa9 1693#line 1182 "perly.y" /* yacc.c:1648 */
f05e27e5
DM
1694 {
1695 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
a9f5ab8d
LM
1696 op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval))));
1697 }
1698
0de566d7
DM
1699 break;
1700
996b0cb8 1701 case 216:
f417cfa9 1702#line 1187 "perly.y" /* yacc.c:1648 */
f05e27e5 1703 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
a9f5ab8d
LM
1704 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval))));
1705 }
1706
89f35911
FC
1707 break;
1708
996b0cb8 1709 case 217:
f417cfa9 1710#line 1191 "perly.y" /* yacc.c:1648 */
869b8c11
Z
1711 { (yyval.opval) = newSVREF((ps[-3].val.opval)); }
1712
1713 break;
1714
996b0cb8 1715 case 218:
f417cfa9 1716#line 1193 "perly.y" /* yacc.c:1648 */
869b8c11 1717 { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
a9f5ab8d 1718
89f35911
FC
1719 break;
1720
996b0cb8 1721 case 219:
f417cfa9 1722#line 1195 "perly.y" /* yacc.c:1648 */
869b8c11 1723 { (yyval.opval) = newHVREF((ps[-3].val.opval)); }
a9f5ab8d 1724
0de566d7
DM
1725 break;
1726
996b0cb8 1727 case 220:
f417cfa9 1728#line 1197 "perly.y" /* yacc.c:1648 */
869b8c11
Z
1729 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
1730 scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); }
a9f5ab8d 1731
0de566d7
DM
1732 break;
1733
996b0cb8 1734 case 221:
f417cfa9 1735#line 1200 "perly.y" /* yacc.c:1648 */
869b8c11 1736 { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); }
a9f5ab8d 1737
0de566d7
DM
1738 break;
1739
996b0cb8 1740 case 222:
f417cfa9 1741#line 1202 "perly.y" /* yacc.c:1648 */
869b8c11
Z
1742 { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL);
1743 PL_hints |= HINT_BLOCK_SCOPE; }
a9f5ab8d 1744
0de566d7
DM
1745 break;
1746
996b0cb8 1747 case 223:
f417cfa9 1748#line 1205 "perly.y" /* yacc.c:1648 */
869b8c11 1749 { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); }
a9f5ab8d 1750
0de566d7
DM
1751 break;
1752
996b0cb8 1753 case 224:
f417cfa9 1754#line 1207 "perly.y" /* yacc.c:1648 */
869b8c11 1755 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
a9f5ab8d 1756
0de566d7
DM
1757 break;
1758
996b0cb8 1759 case 225:
f417cfa9 1760#line 1209 "perly.y" /* yacc.c:1648 */
869b8c11 1761 { (yyval.opval) = newOP((ps[0].val.ival), 0); }
a9f5ab8d 1762
0de566d7
DM
1763 break;
1764
996b0cb8 1765 case 226:
f417cfa9 1766#line 1211 "perly.y" /* yacc.c:1648 */
869b8c11 1767 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
a9f5ab8d 1768
0de566d7
DM
1769 break;
1770
996b0cb8 1771 case 227:
f417cfa9 1772#line 1213 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1773 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
1774
9eb5c532
Z
1775 break;
1776
996b0cb8 1777 case 228:
f417cfa9 1778#line 1215 "perly.y" /* yacc.c:1648 */
869b8c11 1779 { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); }
a9f5ab8d 1780
0de566d7
DM
1781 break;
1782
996b0cb8 1783 case 229:
f417cfa9 1784#line 1217 "perly.y" /* yacc.c:1648 */
869b8c11 1785 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); }
a9f5ab8d 1786
0de566d7
DM
1787 break;
1788
996b0cb8 1789 case 230:
f417cfa9 1790#line 1219 "perly.y" /* yacc.c:1648 */
869b8c11 1791 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
a9f5ab8d 1792
0de566d7
DM
1793 break;
1794
996b0cb8 1795 case 231:
f417cfa9 1796#line 1221 "perly.y" /* yacc.c:1648 */
869b8c11
Z
1797 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1798 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); }
a9f5ab8d 1799
7eb971ee
FC
1800 break;
1801
996b0cb8 1802 case 232:
f417cfa9 1803#line 1224 "perly.y" /* yacc.c:1648 */
869b8c11 1804 { (yyval.opval) = newOP((ps[0].val.ival), 0); }
a9f5ab8d 1805
7eb971ee
FC
1806 break;
1807
996b0cb8 1808 case 233:
f417cfa9 1809#line 1226 "perly.y" /* yacc.c:1648 */
869b8c11 1810 { (yyval.opval) = newOP((ps[-2].val.ival), 0);}
a9f5ab8d 1811
0de566d7
DM
1812 break;
1813
996b0cb8 1814 case 234:
f417cfa9 1815#line 1228 "perly.y" /* yacc.c:1648 */
869b8c11 1816 { (yyval.opval) = (ps[0].val.opval); }
a9f5ab8d 1817
0de566d7
DM
1818 break;
1819
996b0cb8 1820 case 235:
f417cfa9 1821#line 1230 "perly.y" /* yacc.c:1648 */
869b8c11 1822 { (yyval.opval) = (ps[-2].val.opval); }
a9f5ab8d 1823
d39c26a6
FC
1824 break;
1825
996b0cb8 1826 case 236:
f417cfa9 1827#line 1232 "perly.y" /* yacc.c:1648 */
869b8c11 1828 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
a9f5ab8d 1829
d39c26a6
FC
1830 break;
1831
996b0cb8 1832 case 237:
f417cfa9 1833#line 1234 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1834 { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT)
1835 ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1836 : newOP((ps[-2].val.ival), OPf_SPECIAL); }
1837
d39c26a6
FC
1838 break;
1839
996b0cb8 1840 case 238:
f417cfa9 1841#line 1238 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1842 { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
1843
abcf453d
PM
1844 break;
1845
996b0cb8 1846 case 239:
f417cfa9 1847#line 1240 "perly.y" /* yacc.c:1648 */
d63c20f2 1848 {
a9f5ab8d
LM
1849 if ( (ps[0].val.opval)->op_type != OP_TRANS
1850 && (ps[0].val.opval)->op_type != OP_TRANSR
1851 && (((PMOP*)(ps[0].val.opval))->op_pmflags & PMf_HAS_CV))
d63c20f2
DM
1852 {
1853 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1854 SAVEFREESV(PL_compcv);
1855 } else
1856 (yyval.ival) = 0;
a9f5ab8d
LM
1857 }
1858
d63c20f2
DM
1859 break;
1860
996b0cb8 1861 case 240:
f417cfa9 1862#line 1251 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1863 { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); }
1864
0de566d7
DM
1865 break;
1866
996b0cb8 1867 case 244:
f417cfa9 1868#line 1259 "perly.y" /* yacc.c:1648 */
869b8c11
Z
1869 { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); }
1870
1871 break;
1872
996b0cb8 1873 case 245:
f417cfa9 1874#line 1261 "perly.y" /* yacc.c:1648 */
869b8c11 1875 { (yyval.opval) = localize((ps[0].val.opval),1); }
a9f5ab8d 1876
ea25a9b2
Z
1877 break;
1878
996b0cb8 1879 case 246:
f417cfa9 1880#line 1263 "perly.y" /* yacc.c:1648 */
869b8c11 1881 { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); }
a9f5ab8d 1882
d63c20f2
DM
1883 break;
1884
996b0cb8 1885 case 247:
f417cfa9 1886#line 1268 "perly.y" /* yacc.c:1648 */
869b8c11 1887 { (yyval.opval) = sawparens((ps[-1].val.opval)); }
a9f5ab8d 1888
7c70caa5
FC
1889 break;
1890
996b0cb8 1891 case 248:
f417cfa9 1892#line 1270 "perly.y" /* yacc.c:1648 */
869b8c11 1893 { (yyval.opval) = sawparens(newNULLLIST()); }
a9f5ab8d 1894
08b3e84f
TC
1895 break;
1896
996b0cb8 1897 case 249:
f417cfa9 1898#line 1273 "perly.y" /* yacc.c:1648 */
869b8c11 1899 { (yyval.opval) = (ps[0].val.opval); }
a9f5ab8d 1900
764212cf
FC
1901 break;
1902
996b0cb8 1903 case 250:
f417cfa9 1904#line 1275 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1905 { (yyval.opval) = (ps[0].val.opval); }
1906
4210d3f1
FC
1907 break;
1908
996b0cb8 1909 case 251:
f417cfa9 1910#line 1277 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1911 { (yyval.opval) = (ps[0].val.opval); }
1912
5cae3edb
RZ
1913 break;
1914
996b0cb8 1915 case 252:
f417cfa9 1916#line 1282 "perly.y" /* yacc.c:1648 */
869b8c11 1917 { (yyval.opval) = NULL; }
a9f5ab8d 1918
6dd3e0f2
RZ
1919 break;
1920
996b0cb8 1921 case 253:
f417cfa9 1922#line 1284 "perly.y" /* yacc.c:1648 */
869b8c11 1923 { (yyval.opval) = (ps[0].val.opval); }
a9f5ab8d 1924
cc624add
FC
1925 break;
1926
996b0cb8 1927 case 254:
f417cfa9 1928#line 1288 "perly.y" /* yacc.c:1648 */
869b8c11 1929 { (yyval.opval) = NULL; }
a9f5ab8d 1930
0de566d7
DM
1931 break;
1932
996b0cb8 1933 case 255:
f417cfa9 1934#line 1290 "perly.y" /* yacc.c:1648 */
869b8c11 1935 { (yyval.opval) = (ps[0].val.opval); }
a9f5ab8d 1936
9b6b7be8
FC
1937 break;
1938
996b0cb8 1939 case 256:
f417cfa9 1940#line 1294 "perly.y" /* yacc.c:1648 */
869b8c11 1941 { (yyval.opval) = NULL; }
a9f5ab8d 1942
9b6b7be8
FC
1943 break;
1944
996b0cb8 1945 case 257:
f417cfa9 1946#line 1296 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1947 { (yyval.opval) = (ps[0].val.opval); }
1948
e118fea3
FC
1949 break;
1950
996b0cb8 1951 case 258:
f417cfa9 1952#line 1302 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1953 { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
1954
d39c26a6
FC
1955 break;
1956
996b0cb8 1957 case 266:
f417cfa9 1958#line 1319 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1959 { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); }
1960
d39c26a6
FC
1961 break;
1962
996b0cb8 1963 case 267:
f417cfa9 1964#line 1323 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1965 { (yyval.opval) = newSVREF((ps[0].val.opval)); }
1966
d39c26a6
FC
1967 break;
1968
996b0cb8 1969 case 268:
f417cfa9 1970#line 1327 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1971 { (yyval.opval) = newAVREF((ps[0].val.opval));
1972 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
1973 }
1974
0de566d7
DM
1975 break;
1976
996b0cb8 1977 case 269:
f417cfa9 1978#line 1333 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1979 { (yyval.opval) = newHVREF((ps[0].val.opval));
1980 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
1981 }
1982
500bedb6
DM
1983 break;
1984
996b0cb8 1985 case 270:
f417cfa9 1986#line 1339 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1987 { (yyval.opval) = newAVREF((ps[0].val.opval)); }
1988
a72a1c8b
RGS
1989 break;
1990
996b0cb8 1991 case 271:
f417cfa9 1992#line 1341 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1993 { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
1994
ff25e5db
FC
1995 break;
1996
996b0cb8 1997 case 272:
f417cfa9 1998#line 1345 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
1999 { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); }
2000
503de470
DM
2001 break;
2002
996b0cb8 2003 case 274:
f417cfa9 2004#line 1350 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
2005 { (yyval.opval) = newAVREF((ps[-2].val.opval)); }
2006
89f35911
FC
2007 break;
2008
996b0cb8 2009 case 276:
f417cfa9 2010#line 1355 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
2011 { (yyval.opval) = newHVREF((ps[-2].val.opval)); }
2012
76eba8ab
FC
2013 break;
2014
996b0cb8 2015 case 278:
f417cfa9 2016#line 1360 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
2017 { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); }
2018
89f35911
FC
2019 break;
2020
996b0cb8 2021 case 279:
f417cfa9 2022#line 1365 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
2023 { (yyval.opval) = scalar((ps[0].val.opval)); }
2024
3cd0a11a
RGS
2025 break;
2026
996b0cb8 2027 case 280:
f417cfa9 2028#line 1367 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
2029 { (yyval.opval) = scalar((ps[0].val.opval)); }
2030
f05e27e5
DM
2031 break;
2032
996b0cb8 2033 case 281:
f417cfa9 2034#line 1369 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
2035 { (yyval.opval) = op_scope((ps[0].val.opval)); }
2036
5cae3edb 2037 break;
fb602e32 2038
996b0cb8 2039 case 282:
f417cfa9 2040#line 1372 "perly.y" /* yacc.c:1648 */
a9f5ab8d
LM
2041 { (yyval.opval) = (ps[0].val.opval); }
2042
abcf453d 2043 break;
8635e3c2 2044
38c8d7b1 2045
38c8d7b1 2046
20515881 2047 default: break;
0de566d7 2048
e8fb9efb 2049
c24c946d 2050/* Generated from:
f417cfa9 2051 * 2c3a1b30e52b1e872156c881cc6e702a9c0d1be569bfa579632b5eec73ffa9ef perly.y
86b50d93 2052 * 0947213b55d0ed11693554bea04987e886cf285f5c14cf9075fa1e7acc3f4061 regen_perly.pl
c24c946d 2053 * ex: set ro: */