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