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