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