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