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