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