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