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