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