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