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