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