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