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