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