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