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