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