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