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