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