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