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