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