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