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