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