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