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