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