This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
libperl.t: treat i686 arch the same as x86
[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:
bdc377e5 8#line 118 "perly.y"
727a8fe5 9 {
624fa8bd 10 parser->expect = XSTATE;
bdc377e5 11 ;}
0de566d7
DM
12 break;
13
14 case 3:
bdc377e5 15#line 122 "perly.y"
636def1f 16 {
bdc377e5 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;
bdc377e5 20 ;}
9eb5c532
Z
21 break;
22
23 case 4:
bdc377e5 24#line 128 "perly.y"
727a8fe5 25 {
78cdf107 26 parser->expect = XTERM;
bdc377e5 27 ;}
727a8fe5
Z
28 break;
29
30 case 5:
bdc377e5 31#line 132 "perly.y"
9eb5c532 32 {
bdc377e5 33 PL_eval_root = (ps[(3) - (3)].val.opval);
636def1f 34 (yyval.ival) = 0;
bdc377e5 35 ;}
636def1f
RGS
36 break;
37
727a8fe5 38 case 6:
bdc377e5 39#line 137 "perly.y"
07ffcb73 40 {
78cdf107 41 parser->expect = XBLOCK;
bdc377e5 42 ;}
07ffcb73
Z
43 break;
44
727a8fe5 45 case 7:
bdc377e5 46#line 141 "perly.y"
07ffcb73 47 {
5f211341 48 PL_pad_reset_pending = TRUE;
bdc377e5 49 PL_eval_root = (ps[(3) - (3)].val.opval);
07ffcb73 50 (yyval.ival) = 0;
e53d8f76
Z
51 yyunlex();
52 parser->yychar = YYEOF;
bdc377e5 53 ;}
07ffcb73
Z
54 break;
55
727a8fe5 56 case 8:
bdc377e5 57#line 149 "perly.y"
e53d8f76
Z
58 {
59 parser->expect = XSTATE;
bdc377e5 60 ;}
636def1f
RGS
61 break;
62
727a8fe5 63 case 9:
bdc377e5 64#line 153 "perly.y"
e53d8f76 65 {
8359b381 66 PL_pad_reset_pending = TRUE;
bdc377e5 67 PL_eval_root = (ps[(3) - (3)].val.opval);
e53d8f76 68 (yyval.ival) = 0;
8359b381
Z
69 yyunlex();
70 parser->yychar = YYEOF;
bdc377e5 71 ;}
e53d8f76
Z
72 break;
73
727a8fe5 74 case 10:
bdc377e5 75#line 161 "perly.y"
8359b381
Z
76 {
77 parser->expect = XSTATE;
bdc377e5 78 ;}
e53d8f76
Z
79 break;
80
727a8fe5 81 case 11:
bdc377e5 82#line 165 "perly.y"
8359b381 83 {
78cdf107 84 PL_pad_reset_pending = TRUE;
bdc377e5 85 PL_eval_root = (ps[(3) - (3)].val.opval);
8359b381 86 (yyval.ival) = 0;
78cdf107
Z
87 yyunlex();
88 parser->yychar = YYEOF;
bdc377e5 89 ;}
8359b381
Z
90 break;
91
8359b381 92 case 12:
bdc377e5 93#line 173 "perly.y"
78cdf107
Z
94 {
95 parser->expect = XSTATE;
bdc377e5 96 ;}
78cdf107
Z
97 break;
98
99 case 13:
bdc377e5 100#line 177 "perly.y"
78cdf107 101 {
bdc377e5 102 PL_eval_root = (ps[(3) - (3)].val.opval);
78cdf107 103 (yyval.ival) = 0;
bdc377e5 104 ;}
78cdf107
Z
105 break;
106
107 case 14:
bdc377e5
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:
bdc377e5
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:
bdc377e5 124#line 200 "perly.y"
34b54951 125 { (yyval.ival) = block_start(TRUE);
bdc377e5 126 parser->parsed_sub = 0; ;}
7c70caa5
FC
127 break;
128
129 case 17:
bdc377e5
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:
bdc377e5 138#line 212 "perly.y"
34b54951 139 { (yyval.ival) = block_start(FALSE);
bdc377e5 140 parser->parsed_sub = 0; ;}
0de566d7
DM
141 break;
142
7c70caa5 143 case 19:
bdc377e5
FC
144#line 218 "perly.y"
145 { (yyval.opval) = (OP*)NULL; ;}
0de566d7
DM
146 break;
147
7c70caa5 148 case 20:
bdc377e5
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;
bdc377e5 152 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
503de470 153 PL_hints |= HINT_BLOCK_SCOPE;
bdc377e5 154 ;}
500bedb6
DM
155 break;
156
7c70caa5 157 case 21:
bdc377e5
FC
158#line 229 "perly.y"
159 { (yyval.opval) = (OP*)NULL; ;}
705fe0e5
FC
160 break;
161
162 case 22:
bdc377e5
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;
bdc377e5 166 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
705fe0e5 167 PL_hints |= HINT_BLOCK_SCOPE;
bdc377e5 168 ;}
705fe0e5
FC
169 break;
170
171 case 23:
bdc377e5 172#line 240 "perly.y"
eae48c89 173 {
bdc377e5
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:
bdc377e5
FC
179#line 244 "perly.y"
180 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0d863452
RH
181 break;
182
705fe0e5 183 case 25:
bdc377e5 184#line 248 "perly.y"
8e720305 185 {
bdc377e5
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:
bdc377e5 191#line 252 "perly.y"
8e720305 192 {
bdc377e5
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:
bdc377e5
FC
198#line 259 "perly.y"
199 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
8e720305
Z
200 break;
201
705fe0e5 202 case 28:
bdc377e5 203#line 261 "perly.y"
eae48c89
Z
204 {
205 CV *fmtcv = PL_compcv;
bdc377e5 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;
bdc377e5 212 ;}
0de566d7
DM
213 break;
214
b5bbe64a 215 case 29:
bdc377e5 216#line 271 "perly.y"
50278755 217 {
bdc377e5 218 if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) {
50278755 219 const char *const name =
bdc377e5 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)
bdc377e5 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;
bdc377e5 237 ;}
764212cf
FC
238 break;
239
b5bbe64a 240 case 30:
bdc377e5 241#line 293 "perly.y"
f05e27e5 242 {
eae48c89 243 SvREFCNT_inc_simple_void(PL_compcv);
bdc377e5
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;
bdc377e5 251 ;}
0de566d7
DM
252 break;
253
b5bbe64a 254 case 31:
bdc377e5 255#line 304 "perly.y"
f05e27e5 256 {
bdc377e5 257 if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) {
abcf453d 258 const char *const name =
bdc377e5 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)
bdc377e5 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;
bdc377e5 276 ;}
abcf453d
PM
277 break;
278
279 case 32:
bdc377e5 280#line 326 "perly.y"
abcf453d
PM
281 {
282 OP *body;
bdc377e5
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);
bdc377e5
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;
bdc377e5 296 ;}
abcf453d
PM
297 break;
298
299 case 33:
bdc377e5 300#line 343 "perly.y"
abcf453d 301 {
bdc377e5
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;
bdc377e5 306 ;}
0de566d7
DM
307 break;
308
abcf453d 309 case 34:
bdc377e5
FC
310#line 350 "perly.y"
311 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
0de566d7
DM
312 break;
313
abcf453d 314 case 35:
bdc377e5 315#line 352 "perly.y"
5f211341 316 {
eae48c89 317 SvREFCNT_inc_simple_void(PL_compcv);
bdc377e5 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;
bdc377e5 321 ;}
5f211341
Z
322 break;
323
abcf453d 324 case 36:
bdc377e5 325#line 359 "perly.y"
eae48c89 326 {
bdc377e5
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:
bdc377e5 334#line 365 "perly.y"
eae48c89 335 {
bdc377e5
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:
bdc377e5 343#line 371 "perly.y"
eae48c89 344 {
bdc377e5
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:
bdc377e5
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:
bdc377e5
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:
bdc377e5 361#line 380 "perly.y"
eae48c89 362 {
bdc377e5 363 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
eae48c89 364 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
bdc377e5
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:
bdc377e5 371#line 387 "perly.y"
eae48c89 372 {
bdc377e5 373 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
94bf0465 374 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
bdc377e5
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:
bdc377e5
FC
381#line 394 "perly.y"
382 { parser->expect = XTERM; ;}
2d0e3c96
FC
383 break;
384
abcf453d 385 case 44:
bdc377e5
FC
386#line 396 "perly.y"
387 { parser->expect = XTERM; ;}
2d0e3c96
FC
388 break;
389
abcf453d 390 case 45:
bdc377e5 391#line 399 "perly.y"
eae48c89 392 {
bdc377e5 393 OP *initop = (ps[(4) - (13)].val.opval);
eae48c89 394 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
bdc377e5 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;
bdc377e5
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:
bdc377e5 409#line 414 "perly.y"
eae48c89 410 {
bdc377e5
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:
bdc377e5 417#line 419 "perly.y"
eae48c89 418 {
bdc377e5
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:
bdc377e5
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:
bdc377e5 431#line 427 "perly.y"
d39c26a6
FC
432 {
433 (yyval.opval) = block_end(
bdc377e5 434 (ps[(3) - (10)].val.ival),
d39c26a6
FC
435 newFOROP(0,
436 op_lvalue(
437 newUNOP(OP_REFGEN, 0,
bdc377e5 438 (ps[(5) - (10)].val.opval)),
d39c26a6 439 OP_ENTERLOOP),
bdc377e5 440 (ps[(7) - (10)].val.opval), (ps[(9) - (10)].val.opval), (ps[(10) - (10)].val.opval))
d39c26a6 441 );
bdc377e5
FC
442 parser->copline = (line_t)(ps[(1) - (10)].val.ival);
443 ;}
d39c26a6
FC
444 break;
445
abcf453d 446 case 50:
bdc377e5 447#line 440 "perly.y"
d39c26a6 448 {
bdc377e5 449 (yyval.opval) = block_end((ps[(5) - (9)].val.ival), newFOROP(
d39c26a6 450 0, op_lvalue(newUNOP(OP_REFGEN, 0,
bdc377e5
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:
bdc377e5 458#line 448 "perly.y"
eae48c89 459 {
bdc377e5
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:
bdc377e5 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,
bdc377e5
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:
bdc377e5 476#line 460 "perly.y"
eae48c89 477 {
bdc377e5
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 }
bdc377e5 482 ;}
0de566d7
DM
483 break;
484
abcf453d 485 case 54:
bdc377e5 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,
bdc377e5
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:
bdc377e5 497#line 475 "perly.y"
eae48c89 498 {
bdc377e5
FC
499 (yyval.opval) = (ps[(1) - (2)].val.opval);
500 ;}
0d863452
RH
501 break;
502
abcf453d 503 case 56:
bdc377e5 504#line 479 "perly.y"
eae48c89 505 {
b5bbe64a 506 (yyval.opval) = (OP*)NULL;
624fa8bd 507 parser->copline = NOLINE;
bdc377e5 508 ;}
0de566d7
DM
509 break;
510
abcf453d 511 case 57:
bdc377e5 512#line 487 "perly.y"
705fe0e5 513 { OP *list;
bdc377e5
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 {
bdc377e5 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));
bdc377e5 526 ;}
0de566d7
DM
527 break;
528
8d2a5fb4 529 case 58:
bdc377e5
FC
530#line 504 "perly.y"
531 { (yyval.opval) = NULL; ;}
0de566d7
DM
532 break;
533
8d2a5fb4 534 case 59:
bdc377e5
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:
bdc377e5
FC
540#line 511 "perly.y"
541 { (yyval.opval) = (OP*)NULL; ;}
0de566d7
DM
542 break;
543
b5bbe64a 544 case 61:
bdc377e5
FC
545#line 513 "perly.y"
546 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0d863452
RH
547 break;
548
b5bbe64a 549 case 62:
bdc377e5
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:
bdc377e5
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:
bdc377e5
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:
bdc377e5
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:
bdc377e5
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:
bdc377e5
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:
bdc377e5
FC
581#line 531 "perly.y"
582 { (yyval.opval) = (OP*)NULL; ;}
abcf453d
PM
583 break;
584
585 case 69:
bdc377e5 586#line 533 "perly.y"
3ad73efd 587 {
bdc377e5
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:
bdc377e5
FC
594#line 538 "perly.y"
595 { parser->copline = (line_t)(ps[(1) - (6)].val.ival);
3ad73efd 596 (yyval.opval) = newCONDOP(0,
bdc377e5
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;
bdc377e5 600 ;}
eae48c89
Z
601 break;
602
abcf453d 603 case 71:
bdc377e5
FC
604#line 548 "perly.y"
605 { (yyval.opval) = (OP*)NULL; ;}
eae48c89
Z
606 break;
607
abcf453d 608 case 72:
bdc377e5
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:
bdc377e5 614#line 555 "perly.y"
9a9798c2 615 { (yyval.ival) = (PL_min_intro_pending &&
a034e688 616 PL_max_intro_pending >= PL_min_intro_pending);
bdc377e5 617 intro_my(); ;}
0de566d7
DM
618 break;
619
d39c26a6 620 case 74:
bdc377e5
FC
621#line 561 "perly.y"
622 { (yyval.opval) = (OP*)NULL; ;}
7c70caa5
FC
623 break;
624
b5bbe64a 625 case 76:
bdc377e5 626#line 567 "perly.y"
abcf453d
PM
627 { YYSTYPE tmplval;
628 (void)scan_num("1", &tmplval);
bdc377e5 629 (yyval.opval) = tmplval.opval; ;}
0de566d7
DM
630 break;
631
b5bbe64a 632 case 78:
bdc377e5
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:
bdc377e5
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:
bdc377e5
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:
bdc377e5
FC
648#line 587 "perly.y"
649 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7
DM
650 break;
651
d39c26a6 652 case 82:
bdc377e5
FC
653#line 588 "perly.y"
654 { (yyval.opval) = (OP*)NULL; ;}
b5bbe64a
JH
655 break;
656
d39c26a6 657 case 83:
bdc377e5 658#line 592 "perly.y"
abcf453d 659 { (yyval.ival) = start_subparse(FALSE, 0);
bdc377e5 660 SAVEFREESV(PL_compcv); ;}
0de566d7
DM
661 break;
662
08b3e84f 663 case 84:
bdc377e5 664#line 598 "perly.y"
abcf453d 665 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
bdc377e5 666 SAVEFREESV(PL_compcv); ;}
0de566d7
DM
667 break;
668
08b3e84f 669 case 85:
bdc377e5 670#line 603 "perly.y"
abcf453d 671 { (yyval.ival) = start_subparse(TRUE, 0);
bdc377e5 672 SAVEFREESV(PL_compcv); ;}
0de566d7
DM
673 break;
674
08b3e84f 675 case 88:
bdc377e5
FC
676#line 614 "perly.y"
677 { (yyval.opval) = (OP*)NULL; ;}
2d0e3c96
FC
678 break;
679
08b3e84f 680 case 90:
bdc377e5
FC
681#line 620 "perly.y"
682 { (yyval.opval) = (OP*)NULL; ;}
2d0e3c96
FC
683 break;
684
08b3e84f 685 case 91:
bdc377e5
FC
686#line 622 "perly.y"
687 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
d39c26a6
FC
688 break;
689
08b3e84f 690 case 92:
bdc377e5
FC
691#line 624 "perly.y"
692 { (yyval.opval) = (OP*)NULL; ;}
d39c26a6
FC
693 break;
694
08b3e84f 695 case 93:
bdc377e5
FC
696#line 629 "perly.y"
697 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
d39c26a6
FC
698 break;
699
08b3e84f 700 case 94:
bdc377e5
FC
701#line 631 "perly.y"
702 { (yyval.opval) = (OP*)NULL; ;}
abcf453d
PM
703 break;
704
08b3e84f 705 case 95:
bdc377e5
FC
706#line 642 "perly.y"
707 { parser->in_my = 0; (yyval.opval) = (OP*)NULL; ;}
d3d9da4a
DM
708 break;
709
710 case 96:
bdc377e5
FC
711#line 644 "perly.y"
712 { parser->in_my = 0; (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
d3d9da4a
DM
713 break;
714
715 case 97:
bdc377e5
FC
716#line 649 "perly.y"
717 { (yyval.ival) = '@'; ;}
d3d9da4a
DM
718 break;
719
720 case 98:
bdc377e5
FC
721#line 651 "perly.y"
722 { (yyval.ival) = '%'; ;}
d3d9da4a
DM
723 break;
724
725 case 99:
bdc377e5 726#line 655 "perly.y"
d3d9da4a 727 {
bdc377e5
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;
bdc377e5 741 ;}
d3d9da4a
DM
742 break;
743
744 case 100:
bdc377e5
FC
745#line 674 "perly.y"
746 { (yyval.opval) = (OP*)NULL; ;}
d3d9da4a
DM
747 break;
748
749 case 101:
bdc377e5
FC
750#line 676 "perly.y"
751 { (yyval.opval) = newOP(OP_NULL, 0); ;}
d3d9da4a
DM
752 break;
753
754 case 102:
bdc377e5
FC
755#line 678 "perly.y"
756 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
d3d9da4a
DM
757 break;
758
759 case 103:
bdc377e5 760#line 684 "perly.y"
30d9c59b 761 {
bdc377e5
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;
bdc377e5 820 ;}
d3d9da4a
DM
821 break;
822
823 case 104:
bdc377e5
FC
824#line 749 "perly.y"
825 { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
d3d9da4a
DM
826 break;
827
828 case 105:
bdc377e5
FC
829#line 751 "perly.y"
830 { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
d3d9da4a
DM
831 break;
832
833 case 106:
bdc377e5
FC
834#line 757 "perly.y"
835 { (yyval.opval) = (ps[(1) - (2)].val.opval); ;}
d3d9da4a
DM
836 break;
837
838 case 107:
bdc377e5 839#line 759 "perly.y"
d3d9da4a 840 {
bdc377e5
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:
bdc377e5
FC
846#line 763 "perly.y"
847 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
d3d9da4a
DM
848 break;
849
850 case 109:
bdc377e5
FC
851#line 768 "perly.y"
852 { (yyval.opval) = (OP*)NULL; ;}
d3d9da4a
DM
853 break;
854
855 case 110:
bdc377e5
FC
856#line 770 "perly.y"
857 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
d3d9da4a
DM
858 break;
859
860 case 111:
bdc377e5 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;
49fb8620 870 parser->in_my = KEY_sigvar;
bdc377e5 871 ;}
d3d9da4a
DM
872 break;
873
874 case 112:
bdc377e5 875#line 786 "perly.y"
d3d9da4a 876 {
bdc377e5 877 OP *sigops = (ps[(3) - (4)].val.opval);
4fa06845
DM
878 UNOP_AUX_item *aux;
879 OP *check;
d3d9da4a 880
bdc377e5
FC
881 if (!parser->error_count) {
882 assert(FEATURE_SIGNATURES_IS_ENABLED);
883 }
d3d9da4a
DM
884
885 /* We shouldn't get here otherwise */
886 Perl_ck_warner_d(aTHX_
887 packWARN(WARN_EXPERIMENTAL__SIGNATURES),
888 "The signatures feature is experimental");
889
4fa06845
DM
890 aux = (UNOP_AUX_item*)PerlMemShared_malloc(
891 sizeof(UNOP_AUX_item) * 3);
036bbc13
FC
892 aux[0].iv = parser->sig_elems;
893 aux[1].iv = parser->sig_optelems;
894 aux[2].iv = parser->sig_slurpy;
4fa06845
DM
895 check = newUNOP_AUX(OP_ARGCHECK, 0, NULL, aux);
896 sigops = op_prepend_elem(OP_LINESEQ, check, sigops);
897 sigops = op_prepend_elem(OP_LINESEQ,
898 newSTATEOP(0, NULL, NULL),
899 sigops);
900 /* a nextstate at the end handles context
901 * correctly for an empty sub body */
902 (yyval.opval) = op_append_elem(OP_LINESEQ,
903 sigops,
904 newSTATEOP(0, NULL, NULL));
d3d9da4a 905
49fb8620 906 parser->in_my = 0;
d3d9da4a
DM
907 parser->expect = XATTRBLOCK;
908 LEAVE;
bdc377e5 909 ;}
30d9c59b
Z
910 break;
911
d3d9da4a 912 case 114:
bdc377e5
FC
913#line 826 "perly.y"
914 { (yyval.opval) = (OP*)NULL; ;}
0de566d7
DM
915 break;
916
d3d9da4a 917 case 115:
bdc377e5
FC
918#line 831 "perly.y"
919 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
b5bbe64a
JH
920 break;
921
d3d9da4a 922 case 116:
bdc377e5
FC
923#line 833 "perly.y"
924 { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
0de566d7
DM
925 break;
926
d3d9da4a 927 case 117:
bdc377e5
FC
928#line 835 "perly.y"
929 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
0de566d7
DM
930 break;
931
d3d9da4a 932 case 119:
bdc377e5
FC
933#line 841 "perly.y"
934 { (yyval.opval) = (ps[(1) - (2)].val.opval); ;}
0de566d7
DM
935 break;
936
d3d9da4a 937 case 120:
bdc377e5 938#line 843 "perly.y"
abcf453d 939 {
bdc377e5
FC
940 OP* term = (ps[(3) - (3)].val.opval);
941 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
942 ;}
0de566d7
DM
943 break;
944
d3d9da4a 945 case 122:
bdc377e5
FC
946#line 852 "perly.y"
947 { (yyval.opval) = op_convert_list((ps[(1) - (3)].val.ival), OPf_STACKED,
948 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
949 ;}
0de566d7
DM
950 break;
951
d3d9da4a 952 case 123:
bdc377e5
FC
953#line 856 "perly.y"
954 { (yyval.opval) = op_convert_list((ps[(1) - (5)].val.ival), OPf_STACKED,
955 op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
956 ;}
0de566d7
DM
957 break;
958
d3d9da4a 959 case 124:
bdc377e5 960#line 860 "perly.y"
03d05f6e 961 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
2fcb4757 962 op_append_elem(OP_LIST,
bdc377e5
FC
963 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
964 newMETHOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
965 ;}
0de566d7
DM
966 break;
967
d3d9da4a 968 case 125:
bdc377e5 969#line 866 "perly.y"
03d05f6e 970 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
bdc377e5
FC
971 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
972 newMETHOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
973 ;}
0de566d7
DM
974 break;
975
d3d9da4a 976 case 126:
bdc377e5 977#line 871 "perly.y"
03d05f6e 978 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
2fcb4757 979 op_append_elem(OP_LIST,
bdc377e5
FC
980 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
981 newMETHOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
982 ;}
0de566d7
DM
983 break;
984
d3d9da4a 985 case 127:
bdc377e5 986#line 877 "perly.y"
03d05f6e 987 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
2fcb4757 988 op_append_elem(OP_LIST,
bdc377e5
FC
989 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
990 newMETHOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
991 ;}
0de566d7
DM
992 break;
993
d3d9da4a 994 case 128:
bdc377e5
FC
995#line 883 "perly.y"
996 { (yyval.opval) = op_convert_list((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
0de566d7
DM
997 break;
998
d3d9da4a 999 case 129:
bdc377e5
FC
1000#line 885 "perly.y"
1001 { (yyval.opval) = op_convert_list((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
0de566d7
DM
1002 break;
1003
d3d9da4a 1004 case 130:
bdc377e5 1005#line 887 "perly.y"
5a5094bd 1006 { SvREFCNT_inc_simple_void(PL_compcv);
bdc377e5 1007 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
0de566d7
DM
1008 break;
1009
d3d9da4a 1010 case 131:
bdc377e5 1011#line 890 "perly.y"
f05e27e5 1012 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
2fcb4757 1013 op_append_elem(OP_LIST,
bdc377e5
FC
1014 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
1015 ;}
0de566d7
DM
1016 break;
1017
d3d9da4a 1018 case 134:
bdc377e5
FC
1019#line 905 "perly.y"
1020 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); ;}
0de566d7
DM
1021 break;
1022
d3d9da4a 1023 case 135:
bdc377e5
FC
1024#line 907 "perly.y"
1025 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
1026 ;}
0de566d7
DM
1027 break;
1028
d3d9da4a 1029 case 136:
bdc377e5 1030#line 910 "perly.y"
f05e27e5 1031 { (yyval.opval) = newBINOP(OP_AELEM, 0,
bdc377e5
FC
1032 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
1033 scalar((ps[(4) - (5)].val.opval)));
1034 ;}
0de566d7
DM
1035 break;
1036
d3d9da4a 1037 case 137:
bdc377e5 1038#line 915 "perly.y"
f05e27e5 1039 { (yyval.opval) = newBINOP(OP_AELEM, 0,
bdc377e5
FC
1040 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
1041 scalar((ps[(3) - (4)].val.opval)));
1042 ;}
0de566d7
DM
1043 break;
1044
d3d9da4a 1045 case 138:
bdc377e5
FC
1046#line 920 "perly.y"
1047 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
1048 ;}
0de566d7
DM
1049 break;
1050
d3d9da4a 1051 case 139:
bdc377e5 1052#line 923 "perly.y"
f05e27e5 1053 { (yyval.opval) = newBINOP(OP_HELEM, 0,
bdc377e5
FC
1054 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
1055 jmaybe((ps[(4) - (6)].val.opval))); ;}
0de566d7
DM
1056 break;
1057
d3d9da4a 1058 case 140:
bdc377e5 1059#line 927 "perly.y"
f05e27e5 1060 { (yyval.opval) = newBINOP(OP_HELEM, 0,
bdc377e5
FC
1061 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
1062 jmaybe((ps[(3) - (5)].val.opval))); ;}
0de566d7
DM
1063 break;
1064
d3d9da4a 1065 case 141:
bdc377e5 1066#line 931 "perly.y"
b5bbe64a 1067 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
bdc377e5 1068 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); ;}
b5bbe64a
JH
1069 break;
1070
d3d9da4a 1071 case 142:
bdc377e5 1072#line 934 "perly.y"
9a9798c2 1073 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
bdc377e5
FC
1074 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
1075 newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); ;}
0de566d7
DM
1076 break;
1077
d3d9da4a 1078 case 143:
bdc377e5 1079#line 939 "perly.y"
9a9798c2 1080 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
bdc377e5
FC
1081 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
1082 newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); ;}
0de566d7
DM
1083 break;
1084
d3d9da4a 1085 case 144:
bdc377e5 1086#line 943 "perly.y"
d39c26a6 1087 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
bdc377e5 1088 newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); ;}
ea25a9b2
Z
1089 break;
1090
d3d9da4a 1091 case 145:
bdc377e5
FC
1092#line 946 "perly.y"
1093 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); ;}
0de566d7
DM
1094 break;
1095
d3d9da4a 1096 case 146:
bdc377e5
FC
1097#line 948 "perly.y"
1098 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); ;}
0de566d7
DM
1099 break;
1100
d3d9da4a 1101 case 147:
bdc377e5
FC
1102#line 950 "perly.y"
1103 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); ;}
0de566d7
DM
1104 break;
1105
d3d9da4a 1106 case 148:
bdc377e5
FC
1107#line 955 "perly.y"
1108 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); ;}
0de566d7
DM
1109 break;
1110
d3d9da4a 1111 case 149:
bdc377e5
FC
1112#line 957 "perly.y"
1113 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
8d2a5fb4
FC
1114 break;
1115
d3d9da4a 1116 case 150:
bdc377e5
FC
1117#line 959 "perly.y"
1118 { if ((ps[(2) - (3)].val.ival) != OP_REPEAT)
1119 scalar((ps[(1) - (3)].val.opval));
1120 (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
1121 ;}
0de566d7
DM
1122 break;
1123
d3d9da4a 1124 case 151:
bdc377e5
FC
1125#line 964 "perly.y"
1126 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
08b3e84f
TC
1127 break;
1128
d3d9da4a 1129 case 152:
bdc377e5
FC
1130#line 966 "perly.y"
1131 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
f20dcd76
VP
1132 break;
1133
d3d9da4a 1134 case 153:
bdc377e5
FC
1135#line 968 "perly.y"
1136 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
4098b6bb
JV
1137 break;
1138
d3d9da4a 1139 case 154:
bdc377e5
FC
1140#line 970 "perly.y"
1141 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
7c70caa5
FC
1142 break;
1143
d3d9da4a 1144 case 155:
bdc377e5
FC
1145#line 972 "perly.y"
1146 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
764212cf
FC
1147 break;
1148
d3d9da4a 1149 case 156:
bdc377e5
FC
1150#line 974 "perly.y"
1151 { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
0de566d7
DM
1152 break;
1153
d3d9da4a 1154 case 157:
bdc377e5
FC
1155#line 976 "perly.y"
1156 { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
0de566d7
DM
1157 break;
1158
d3d9da4a 1159 case 158:
bdc377e5
FC
1160#line 978 "perly.y"
1161 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
0de566d7
DM
1162 break;
1163
d3d9da4a 1164 case 159:
bdc377e5
FC
1165#line 980 "perly.y"
1166 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
500bedb6
DM
1167 break;
1168
d3d9da4a 1169 case 160:
bdc377e5
FC
1170#line 982 "perly.y"
1171 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
0de566d7
DM
1172 break;
1173
d3d9da4a 1174 case 161:
bdc377e5
FC
1175#line 984 "perly.y"
1176 { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
0de566d7
DM
1177 break;
1178
d3d9da4a 1179 case 162:
bdc377e5
FC
1180#line 989 "perly.y"
1181 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); ;}
0de566d7
DM
1182 break;
1183
d3d9da4a 1184 case 163:
bdc377e5
FC
1185#line 991 "perly.y"
1186 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
0de566d7
DM
1187 break;
1188
d3d9da4a 1189 case 164:
bdc377e5
FC
1190#line 994 "perly.y"
1191 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
0de566d7
DM
1192 break;
1193
d3d9da4a 1194 case 165:
bdc377e5
FC
1195#line 996 "perly.y"
1196 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, scalar((ps[(2) - (2)].val.opval))); ;}
cc624add
FC
1197 break;
1198
d3d9da4a 1199 case 166:
bdc377e5 1200#line 998 "perly.y"
d39c26a6 1201 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
bdc377e5 1202 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); ;}
0de566d7
DM
1203 break;
1204
d3d9da4a 1205 case 167:
bdc377e5 1206#line 1001 "perly.y"
d39c26a6 1207 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
bdc377e5 1208 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));;}
b5bbe64a
JH
1209 break;
1210
d3d9da4a 1211 case 168:
bdc377e5 1212#line 1004 "perly.y"
03d05f6e 1213 { (yyval.opval) = op_convert_list(OP_JOIN, 0,
d39c26a6
FC
1214 op_append_elem(
1215 OP_LIST,
1216 newSVREF(scalar(
1217 newSVOP(OP_CONST,0,
1218 newSVpvs("\""))
1219 )),
bdc377e5 1220 (ps[(1) - (2)].val.opval)
d39c26a6 1221 ));
bdc377e5 1222 ;}
0de566d7
DM
1223 break;
1224
d3d9da4a 1225 case 169:
bdc377e5 1226#line 1015 "perly.y"
d39c26a6 1227 { (yyval.opval) = newUNOP(OP_PREINC, 0,
bdc377e5 1228 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); ;}
0de566d7
DM
1229 break;
1230
d3d9da4a 1231 case 170:
bdc377e5 1232#line 1018 "perly.y"
d39c26a6 1233 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
bdc377e5 1234 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); ;}
0de566d7
DM
1235 break;
1236
d3d9da4a 1237 case 171:
bdc377e5
FC
1238#line 1025 "perly.y"
1239 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); ;}
0de566d7
DM
1240 break;
1241
d3d9da4a 1242 case 172:
bdc377e5
FC
1243#line 1027 "perly.y"
1244 { (yyval.opval) = newANONLIST((OP*)NULL);;}
9a9798c2
YST
1245 break;
1246
d3d9da4a 1247 case 173:
bdc377e5
FC
1248#line 1029 "perly.y"
1249 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); ;}
9a9798c2
YST
1250 break;
1251
d3d9da4a 1252 case 174:
bdc377e5
FC
1253#line 1031 "perly.y"
1254 { (yyval.opval) = newANONHASH((OP*)NULL); ;}
f05e27e5
DM
1255 break;
1256
d3d9da4a 1257 case 175:
bdc377e5 1258#line 1033 "perly.y"
d39c26a6 1259 { SvREFCNT_inc_simple_void(PL_compcv);
bdc377e5 1260 (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
1261 break;
1262
d3d9da4a 1263 case 176:
bdc377e5 1264#line 1036 "perly.y"
abcf453d
PM
1265 {
1266 OP *body;
bdc377e5
FC
1267 if (parser->copline > (line_t)(ps[(6) - (8)].val.ival))
1268 parser->copline = (line_t)(ps[(6) - (8)].val.ival);
1269 body = block_end((ps[(3) - (8)].val.ival),
1270 op_append_list(OP_LINESEQ, (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval)));
abcf453d 1271 SvREFCNT_inc_simple_void(PL_compcv);
bdc377e5
FC
1272 (yyval.opval) = newANONATTRSUB((ps[(2) - (8)].val.ival), NULL, (ps[(5) - (8)].val.opval), body);
1273 ;}
0de566d7
DM
1274 break;
1275
d3d9da4a 1276 case 177:
bdc377e5
FC
1277#line 1050 "perly.y"
1278 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));;}
0de566d7
DM
1279 break;
1280
d3d9da4a 1281 case 178:
bdc377e5
FC
1282#line 1052 "perly.y"
1283 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));;}
0de566d7
DM
1284 break;
1285
d3d9da4a 1286 case 183:
bdc377e5
FC
1287#line 1060 "perly.y"
1288 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
0de566d7
DM
1289 break;
1290
d3d9da4a 1291 case 184:
bdc377e5
FC
1292#line 1062 "perly.y"
1293 { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[(2) - (2)].val.opval)); ;}
0de566d7
DM
1294 break;
1295
d3d9da4a 1296 case 185:
bdc377e5
FC
1297#line 1064 "perly.y"
1298 { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[(3) - (3)].val.opval),1)); ;}
ea25a9b2
Z
1299 break;
1300
d3d9da4a 1301 case 186:
bdc377e5
FC
1302#line 1066 "perly.y"
1303 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7
DM
1304 break;
1305
d3d9da4a 1306 case 187:
bdc377e5
FC
1307#line 1068 "perly.y"
1308 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),0); ;}
0de566d7
DM
1309 break;
1310
d3d9da4a 1311 case 188:
bdc377e5
FC
1312#line 1070 "perly.y"
1313 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
f20dcd76
VP
1314 break;
1315
d3d9da4a 1316 case 189:
bdc377e5
FC
1317#line 1072 "perly.y"
1318 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
8e720305
Z
1319 break;
1320
d3d9da4a 1321 case 190:
bdc377e5
FC
1322#line 1074 "perly.y"
1323 { (yyval.opval) = sawparens(newNULLLIST()); ;}
08b3e84f
TC
1324 break;
1325
d3d9da4a 1326 case 191:
bdc377e5
FC
1327#line 1076 "perly.y"
1328 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
4210d3f1
FC
1329 break;
1330
d3d9da4a 1331 case 192:
bdc377e5
FC
1332#line 1078 "perly.y"
1333 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
cc624add
FC
1334 break;
1335
d3d9da4a 1336 case 193:
bdc377e5
FC
1337#line 1080 "perly.y"
1338 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
d39c26a6
FC
1339 break;
1340
d3d9da4a 1341 case 194:
bdc377e5
FC
1342#line 1082 "perly.y"
1343 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
d39c26a6
FC
1344 break;
1345
d3d9da4a 1346 case 195:
bdc377e5
FC
1347#line 1084 "perly.y"
1348 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
abcf453d
PM
1349 break;
1350
d3d9da4a 1351 case 196:
bdc377e5
FC
1352#line 1086 "perly.y"
1353 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
e118fea3
FC
1354 break;
1355
d3d9da4a 1356 case 197:
bdc377e5 1357#line 1088 "perly.y"
2fcb4757 1358 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
f05e27e5
DM
1359 newOP(OP_PUSHMARK, 0),
1360 newLISTOP(OP_ASLICE, 0,
bdc377e5
FC
1361 list((ps[(3) - (4)].val.opval)),
1362 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1363 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
429a2555 1364 (yyval.opval)->op_private |=
bdc377e5
FC
1365 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1366 ;}
0de566d7
DM
1367 break;
1368
d3d9da4a 1369 case 198:
bdc377e5 1370#line 1098 "perly.y"
6dd3e0f2
RZ
1371 { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
1372 newOP(OP_PUSHMARK, 0),
1373 newLISTOP(OP_KVASLICE, 0,
bdc377e5
FC
1374 list((ps[(3) - (4)].val.opval)),
1375 ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE)));
1376 if ((yyval.opval) && (ps[(1) - (4)].val.opval))
95a31aad 1377 (yyval.opval)->op_private |=
bdc377e5
FC
1378 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
1379 ;}
6dd3e0f2
RZ
1380 break;
1381
d3d9da4a 1382 case 199:
bdc377e5 1383#line 1108 "perly.y"
2fcb4757 1384 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
f05e27e5
DM
1385 newOP(OP_PUSHMARK, 0),
1386 newLISTOP(OP_HSLICE, 0,
bdc377e5
FC
1387 list((ps[(3) - (5)].val.opval)),
1388 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
1389 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
429a2555 1390 (yyval.opval)->op_private |=
bdc377e5
FC
1391 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1392 ;}
0de566d7
DM
1393 break;
1394
d3d9da4a 1395 case 200:
bdc377e5 1396#line 1118 "perly.y"
5cae3edb
RZ
1397 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
1398 newOP(OP_PUSHMARK, 0),
1399 newLISTOP(OP_KVHSLICE, 0,
bdc377e5
FC
1400 list((ps[(3) - (5)].val.opval)),
1401 ref((ps[(1) - (5)].val.opval), OP_KVHSLICE)));
1402 if ((yyval.opval) && (ps[(1) - (5)].val.opval))
95a31aad 1403 (yyval.opval)->op_private |=
bdc377e5
FC
1404 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
1405 ;}
0de566d7
DM
1406 break;
1407
d3d9da4a 1408 case 201:
bdc377e5
FC
1409#line 1128 "perly.y"
1410 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7
DM
1411 break;
1412
d3d9da4a 1413 case 202:
bdc377e5
FC
1414#line 1130 "perly.y"
1415 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
e118fea3
FC
1416 break;
1417
d3d9da4a 1418 case 203:
bdc377e5
FC
1419#line 1132 "perly.y"
1420 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1421 ;}
abcf453d
PM
1422 break;
1423
d3d9da4a 1424 case 204:
bdc377e5 1425#line 1135 "perly.y"
f05e27e5
DM
1426 {
1427 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
bdc377e5
FC
1428 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
1429 ;}
0de566d7
DM
1430 break;
1431
d3d9da4a 1432 case 205:
bdc377e5 1433#line 1140 "perly.y"
f05e27e5 1434 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
bdc377e5
FC
1435 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1436 ;}
89f35911
FC
1437 break;
1438
d3d9da4a 1439 case 206:
bdc377e5
FC
1440#line 1144 "perly.y"
1441 { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); ;}
89f35911
FC
1442 break;
1443
d3d9da4a 1444 case 207:
bdc377e5
FC
1445#line 1146 "perly.y"
1446 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
0de566d7
DM
1447 break;
1448
d3d9da4a 1449 case 208:
bdc377e5
FC
1450#line 1148 "perly.y"
1451 { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); ;}
0de566d7
DM
1452 break;
1453
d3d9da4a 1454 case 209:
bdc377e5 1455#line 1150 "perly.y"
e118fea3 1456 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
bdc377e5 1457 scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); ;}
0de566d7
DM
1458 break;
1459
d3d9da4a 1460 case 210:
bdc377e5
FC
1461#line 1153 "perly.y"
1462 { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); ;}
0de566d7
DM
1463 break;
1464
d3d9da4a 1465 case 211:
bdc377e5
FC
1466#line 1155 "perly.y"
1467 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL);
1468 PL_hints |= HINT_BLOCK_SCOPE; ;}
0de566d7
DM
1469 break;
1470
d3d9da4a 1471 case 212:
bdc377e5
FC
1472#line 1158 "perly.y"
1473 { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
0de566d7
DM
1474 break;
1475
d3d9da4a 1476 case 213:
bdc377e5
FC
1477#line 1160 "perly.y"
1478 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
0de566d7
DM
1479 break;
1480
d3d9da4a 1481 case 214:
bdc377e5
FC
1482#line 1162 "perly.y"
1483 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
0de566d7
DM
1484 break;
1485
d3d9da4a 1486 case 215:
bdc377e5
FC
1487#line 1164 "perly.y"
1488 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
9eb5c532
Z
1489 break;
1490
d3d9da4a 1491 case 216:
bdc377e5
FC
1492#line 1166 "perly.y"
1493 { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
0de566d7
DM
1494 break;
1495
d3d9da4a 1496 case 217:
bdc377e5
FC
1497#line 1168 "perly.y"
1498 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); ;}
0de566d7
DM
1499 break;
1500
d3d9da4a 1501 case 218:
bdc377e5
FC
1502#line 1170 "perly.y"
1503 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); ;}
0de566d7
DM
1504 break;
1505
d3d9da4a 1506 case 219:
bdc377e5
FC
1507#line 1172 "perly.y"
1508 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
7eb971ee
FC
1509 break;
1510
d3d9da4a 1511 case 220:
bdc377e5 1512#line 1174 "perly.y"
e118fea3 1513 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
bdc377e5 1514 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
7eb971ee
FC
1515 break;
1516
d3d9da4a 1517 case 221:
bdc377e5
FC
1518#line 1177 "perly.y"
1519 { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
0de566d7
DM
1520 break;
1521
d3d9da4a 1522 case 222:
bdc377e5
FC
1523#line 1179 "perly.y"
1524 { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);;}
0de566d7
DM
1525 break;
1526
d3d9da4a 1527 case 223:
bdc377e5
FC
1528#line 1181 "perly.y"
1529 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
d39c26a6
FC
1530 break;
1531
d3d9da4a 1532 case 224:
bdc377e5
FC
1533#line 1183 "perly.y"
1534 { (yyval.opval) = (ps[(1) - (3)].val.opval); ;}
d39c26a6
FC
1535 break;
1536
d3d9da4a 1537 case 225:
bdc377e5
FC
1538#line 1185 "perly.y"
1539 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
e118fea3
FC
1540 break;
1541
d3d9da4a 1542 case 226:
bdc377e5
FC
1543#line 1187 "perly.y"
1544 { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT)
1545 ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1546 : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); ;}
d39c26a6
FC
1547 break;
1548
d3d9da4a 1549 case 227:
bdc377e5
FC
1550#line 1191 "perly.y"
1551 { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
abcf453d
PM
1552 break;
1553
d3d9da4a 1554 case 228:
bdc377e5 1555#line 1193 "perly.y"
d63c20f2 1556 {
bdc377e5
FC
1557 if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
1558 && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
1559 && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
d63c20f2
DM
1560 {
1561 (yyval.ival) = start_subparse(FALSE, CVf_ANON);
1562 SAVEFREESV(PL_compcv);
1563 } else
1564 (yyval.ival) = 0;
bdc377e5 1565 ;}
d63c20f2
DM
1566 break;
1567
d3d9da4a 1568 case 229:
bdc377e5
FC
1569#line 1204 "perly.y"
1570 { (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
1571 break;
1572
d3d9da4a 1573 case 232:
bdc377e5 1574#line 1208 "perly.y"
be25f609 1575 {
1576 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1577 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
bdc377e5 1578 ;}
0de566d7
DM
1579 break;
1580
d3d9da4a 1581 case 234:
bdc377e5
FC
1582#line 1217 "perly.y"
1583 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); ;}
ea25a9b2
Z
1584 break;
1585
d3d9da4a 1586 case 235:
bdc377e5
FC
1587#line 1219 "perly.y"
1588 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),1); ;}
d63c20f2
DM
1589 break;
1590
d3d9da4a 1591 case 236:
bdc377e5
FC
1592#line 1221 "perly.y"
1593 { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[(3) - (4)].val.opval),(ps[(4) - (4)].val.opval))); ;}
7c70caa5
FC
1594 break;
1595
d3d9da4a 1596 case 237:
bdc377e5
FC
1597#line 1226 "perly.y"
1598 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
08b3e84f
TC
1599 break;
1600
d3d9da4a 1601 case 238:
bdc377e5
FC
1602#line 1228 "perly.y"
1603 { (yyval.opval) = sawparens(newNULLLIST()); ;}
764212cf
FC
1604 break;
1605
d3d9da4a 1606 case 239:
bdc377e5
FC
1607#line 1231 "perly.y"
1608 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
4210d3f1
FC
1609 break;
1610
d3d9da4a 1611 case 240:
bdc377e5
FC
1612#line 1233 "perly.y"
1613 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
5cae3edb
RZ
1614 break;
1615
d3d9da4a 1616 case 241:
bdc377e5
FC
1617#line 1235 "perly.y"
1618 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
6dd3e0f2
RZ
1619 break;
1620
d3d9da4a 1621 case 242:
bdc377e5
FC
1622#line 1240 "perly.y"
1623 { (yyval.opval) = (OP*)NULL; ;}
cc624add
FC
1624 break;
1625
d3d9da4a 1626 case 243:
bdc377e5
FC
1627#line 1242 "perly.y"
1628 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7
DM
1629 break;
1630
d3d9da4a 1631 case 244:
bdc377e5
FC
1632#line 1246 "perly.y"
1633 { (yyval.opval) = (OP*)NULL; ;}
9b6b7be8
FC
1634 break;
1635
d3d9da4a 1636 case 245:
bdc377e5
FC
1637#line 1248 "perly.y"
1638 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
9b6b7be8
FC
1639 break;
1640
d3d9da4a 1641 case 246:
bdc377e5
FC
1642#line 1252 "perly.y"
1643 { (yyval.opval) = (OP*)NULL; ;}
e118fea3
FC
1644 break;
1645
d3d9da4a 1646 case 247:
bdc377e5
FC
1647#line 1254 "perly.y"
1648 { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
e118fea3
FC
1649 break;
1650
d3d9da4a 1651 case 248:
bdc377e5
FC
1652#line 1260 "perly.y"
1653 { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
d39c26a6
FC
1654 break;
1655
d3d9da4a 1656 case 256:
bdc377e5
FC
1657#line 1277 "perly.y"
1658 { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
d39c26a6
FC
1659 break;
1660
d3d9da4a 1661 case 257:
bdc377e5
FC
1662#line 1281 "perly.y"
1663 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); ;}
d39c26a6
FC
1664 break;
1665
d3d9da4a 1666 case 258:
bdc377e5
FC
1667#line 1285 "perly.y"
1668 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1669 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1670 ;}
0de566d7
DM
1671 break;
1672
d3d9da4a 1673 case 259:
bdc377e5
FC
1674#line 1291 "perly.y"
1675 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1676 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
1677 ;}
500bedb6
DM
1678 break;
1679
d3d9da4a 1680 case 260:
bdc377e5
FC
1681#line 1297 "perly.y"
1682 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); ;}
a72a1c8b
RGS
1683 break;
1684
d3d9da4a 1685 case 261:
bdc377e5
FC
1686#line 1299 "perly.y"
1687 { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
ff25e5db
FC
1688 break;
1689
d3d9da4a 1690 case 262:
bdc377e5
FC
1691#line 1303 "perly.y"
1692 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); ;}
503de470
DM
1693 break;
1694
d3d9da4a 1695 case 264:
bdc377e5
FC
1696#line 1308 "perly.y"
1697 { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); ;}
89f35911
FC
1698 break;
1699
d3d9da4a 1700 case 266:
bdc377e5
FC
1701#line 1313 "perly.y"
1702 { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); ;}
76eba8ab
FC
1703 break;
1704
d3d9da4a 1705 case 268:
bdc377e5
FC
1706#line 1318 "perly.y"
1707 { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); ;}
89f35911
FC
1708 break;
1709
d3d9da4a 1710 case 269:
bdc377e5
FC
1711#line 1323 "perly.y"
1712 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
3cd0a11a
RGS
1713 break;
1714
d3d9da4a 1715 case 270:
bdc377e5
FC
1716#line 1325 "perly.y"
1717 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
f05e27e5
DM
1718 break;
1719
d3d9da4a 1720 case 271:
bdc377e5
FC
1721#line 1327 "perly.y"
1722 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
5cae3edb 1723 break;
fb602e32 1724
d3d9da4a 1725 case 272:
bdc377e5
FC
1726#line 1330 "perly.y"
1727 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
abcf453d 1728 break;
8635e3c2 1729
38c8d7b1 1730
bdc377e5 1731/* Line 1267 of yacc.c. */
38c8d7b1 1732
20515881 1733 default: break;
0de566d7 1734
e8fb9efb 1735
c24c946d 1736/* Generated from:
bdc377e5 1737 * b1f32b9f6f7c53d22517de00b5b5bfe4dd9d657c8573b9ea9eab7a43e852850a perly.y
38c8d7b1 1738 * 3e1dff60f26df8933d7aed0c0e87177a0f022c14800c0707eb62a7db4196ac98 regen_perly.pl
c24c946d 1739 * ex: set ro: */