1/* -*- buffer-read-only: t -*- 2 !!!!!!! DO NOT EDIT THIS FILE !!!!!!! 3 This file is built by regen_perly.pl from perly.y. 4 Any changes made here will be lost! 5 */ 6 7case 2: 8#line 119 "perly.y" /* yacc.c:1648 */ 9 { 10 parser->expect = XSTATE; 11 (yyval.ival) = 0; 12 } 13 14 break; 15 16 case 3: 17#line 124 "perly.y" /* yacc.c:1648 */ 18 { 19 newPROG(block_end((ps[-1].val.ival),(ps[0].val.opval))); 20 PL_compiling.cop_seq = 0; 21 (yyval.ival) = 0; 22 } 23 24 break; 25 26 case 4: 27#line 130 "perly.y" /* yacc.c:1648 */ 28 { 29 parser->expect = XTERM; 30 (yyval.ival) = 0; 31 } 32 33 break; 34 35 case 5: 36#line 135 "perly.y" /* yacc.c:1648 */ 37 { 38 PL_eval_root = (ps[0].val.opval); 39 (yyval.ival) = 0; 40 } 41 42 break; 43 44 case 6: 45#line 140 "perly.y" /* yacc.c:1648 */ 46 { 47 parser->expect = XBLOCK; 48 (yyval.ival) = 0; 49 } 50 51 break; 52 53 case 7: 54#line 145 "perly.y" /* yacc.c:1648 */ 55 { 56 PL_pad_reset_pending = TRUE; 57 PL_eval_root = (ps[0].val.opval); 58 (yyval.ival) = 0; 59 yyunlex(); 60 parser->yychar = yytoken = YYEOF; 61 } 62 63 break; 64 65 case 8: 66#line 153 "perly.y" /* yacc.c:1648 */ 67 { 68 parser->expect = XSTATE; 69 (yyval.ival) = 0; 70 } 71 72 break; 73 74 case 9: 75#line 158 "perly.y" /* yacc.c:1648 */ 76 { 77 PL_pad_reset_pending = TRUE; 78 PL_eval_root = (ps[0].val.opval); 79 (yyval.ival) = 0; 80 yyunlex(); 81 parser->yychar = yytoken = YYEOF; 82 } 83 84 break; 85 86 case 10: 87#line 166 "perly.y" /* yacc.c:1648 */ 88 { 89 parser->expect = XSTATE; 90 (yyval.ival) = 0; 91 } 92 93 break; 94 95 case 11: 96#line 171 "perly.y" /* yacc.c:1648 */ 97 { 98 PL_pad_reset_pending = TRUE; 99 PL_eval_root = (ps[0].val.opval); 100 (yyval.ival) = 0; 101 yyunlex(); 102 parser->yychar = yytoken = YYEOF; 103 } 104 105 break; 106 107 case 12: 108#line 179 "perly.y" /* yacc.c:1648 */ 109 { 110 parser->expect = XSTATE; 111 (yyval.ival) = 0; 112 } 113 114 break; 115 116 case 13: 117#line 184 "perly.y" /* yacc.c:1648 */ 118 { 119 PL_eval_root = (ps[0].val.opval); 120 (yyval.ival) = 0; 121 } 122 123 break; 124 125 case 14: 126#line 192 "perly.y" /* yacc.c:1648 */ 127 { if (parser->copline > (line_t)(ps[-3].val.ival)) 128 parser->copline = (line_t)(ps[-3].val.ival); 129 (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval)); 130 } 131 132 break; 133 134 case 15: 135#line 200 "perly.y" /* yacc.c:1648 */ 136 { if (parser->copline > (line_t)(ps[-6].val.ival)) 137 parser->copline = (line_t)(ps[-6].val.ival); 138 (yyval.opval) = block_end((ps[-5].val.ival), (ps[-2].val.opval)); 139 } 140 141 break; 142 143 case 16: 144#line 207 "perly.y" /* yacc.c:1648 */ 145 { (yyval.ival) = block_start(TRUE); 146 parser->parsed_sub = 0; } 147 148 break; 149 150 case 17: 151#line 212 "perly.y" /* yacc.c:1648 */ 152 { if (parser->copline > (line_t)(ps[-3].val.ival)) 153 parser->copline = (line_t)(ps[-3].val.ival); 154 (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval)); 155 } 156 157 break; 158 159 case 18: 160#line 219 "perly.y" /* yacc.c:1648 */ 161 { (yyval.ival) = block_start(FALSE); 162 parser->parsed_sub = 0; } 163 164 break; 165 166 case 19: 167#line 225 "perly.y" /* yacc.c:1648 */ 168 { (yyval.opval) = NULL; } 169 170 break; 171 172 case 20: 173#line 227 "perly.y" /* yacc.c:1648 */ 174 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval)); 175 PL_pad_reset_pending = TRUE; 176 if ((ps[-1].val.opval) && (ps[0].val.opval)) 177 PL_hints |= HINT_BLOCK_SCOPE; 178 } 179 180 break; 181 182 case 21: 183#line 236 "perly.y" /* yacc.c:1648 */ 184 { (yyval.opval) = NULL; } 185 186 break; 187 188 case 22: 189#line 238 "perly.y" /* yacc.c:1648 */ 190 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval)); 191 PL_pad_reset_pending = TRUE; 192 if ((ps[-1].val.opval) && (ps[0].val.opval)) 193 PL_hints |= HINT_BLOCK_SCOPE; 194 } 195 196 break; 197 198 case 23: 199#line 247 "perly.y" /* yacc.c:1648 */ 200 { 201 (yyval.opval) = (ps[0].val.opval) ? newSTATEOP(0, NULL, (ps[0].val.opval)) : NULL; 202 } 203 204 break; 205 206 case 24: 207#line 251 "perly.y" /* yacc.c:1648 */ 208 { (yyval.opval) = (ps[0].val.opval); } 209 210 break; 211 212 case 25: 213#line 255 "perly.y" /* yacc.c:1648 */ 214 { 215 SV *label = cSVOPx_sv((ps[-1].val.opval)); 216 (yyval.opval) = newSTATEOP(SvFLAGS(label) & SVf_UTF8, 217 savepv(SvPVX_const(label)), (ps[0].val.opval)); 218 op_free((ps[-1].val.opval)); 219 } 220 221 break; 222 223 case 26: 224#line 262 "perly.y" /* yacc.c:1648 */ 225 { 226 SV *label = cSVOPx_sv((ps[-1].val.opval)); 227 (yyval.opval) = newSTATEOP(SvFLAGS(label) & SVf_UTF8, 228 savepv(SvPVX_const(label)), (ps[0].val.opval)); 229 op_free((ps[-1].val.opval)); 230 } 231 232 break; 233 234 case 27: 235#line 272 "perly.y" /* yacc.c:1648 */ 236 { (yyval.opval) = (ps[0].val.opval); } 237 238 break; 239 240 case 28: 241#line 274 "perly.y" /* yacc.c:1648 */ 242 { 243 CV *fmtcv = PL_compcv; 244 newFORM((ps[-2].val.ival), (ps[-1].val.opval), (ps[0].val.opval)); 245 (yyval.opval) = NULL; 246 if (CvOUTSIDE(fmtcv) && !CvEVAL(CvOUTSIDE(fmtcv))) { 247 pad_add_weakref(fmtcv); 248 } 249 parser->parsed_sub = 1; 250 } 251 252 break; 253 254 case 29: 255#line 286 "perly.y" /* yacc.c:1648 */ 256 { 257 init_named_cv(PL_compcv, (ps[-1].val.opval)); 258 parser->in_my = 0; 259 parser->in_my_stash = NULL; 260 } 261 262 break; 263 264 case 30: 265#line 292 "perly.y" /* yacc.c:1648 */ 266 { 267 SvREFCNT_inc_simple_void(PL_compcv); 268 (ps[-5].val.opval)->op_type == OP_CONST 269 ? newATTRSUB((ps[-4].val.ival), (ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)) 270 : newMYSUB((ps[-4].val.ival), (ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)) 271 ; 272 (yyval.opval) = NULL; 273 intro_my(); 274 parser->parsed_sub = 1; 275 } 276 277 break; 278 279 case 31: 280#line 307 "perly.y" /* yacc.c:1648 */ 281 { 282 init_named_cv(PL_compcv, (ps[-1].val.opval)); 283 parser->in_my = 0; 284 parser->in_my_stash = NULL; 285 } 286 287 break; 288 289 case 32: 290#line 313 "perly.y" /* yacc.c:1648 */ 291 { 292 SvREFCNT_inc_simple_void(PL_compcv); 293 (ps[-4].val.opval)->op_type == OP_CONST 294 ? newATTRSUB((ps[-3].val.ival), (ps[-4].val.opval), NULL, (ps[-1].val.opval), (ps[0].val.opval)) 295 : newMYSUB( (ps[-3].val.ival), (ps[-4].val.opval), NULL, (ps[-1].val.opval), (ps[0].val.opval)) 296 ; 297 (yyval.opval) = NULL; 298 intro_my(); 299 parser->parsed_sub = 1; 300 } 301 302 break; 303 304 case 33: 305#line 324 "perly.y" /* yacc.c:1648 */ 306 { 307 package((ps[-1].val.opval)); 308 if ((ps[-2].val.opval)) 309 package_version((ps[-2].val.opval)); 310 (yyval.opval) = NULL; 311 } 312 313 break; 314 315 case 34: 316#line 331 "perly.y" /* yacc.c:1648 */ 317 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ } 318 319 break; 320 321 case 35: 322#line 333 "perly.y" /* yacc.c:1648 */ 323 { 324 SvREFCNT_inc_simple_void(PL_compcv); 325 utilize((ps[-6].val.ival), (ps[-5].val.ival), (ps[-3].val.opval), (ps[-2].val.opval), (ps[-1].val.opval)); 326 parser->parsed_sub = 1; 327 (yyval.opval) = NULL; 328 } 329 330 break; 331 332 case 36: 333#line 340 "perly.y" /* yacc.c:1648 */ 334 { 335 (yyval.opval) = block_end((ps[-4].val.ival), 336 newCONDOP(0, (ps[-3].val.opval), op_scope((ps[-1].val.opval)), (ps[0].val.opval))); 337 parser->copline = (line_t)(ps[-6].val.ival); 338 } 339 340 break; 341 342 case 37: 343#line 346 "perly.y" /* yacc.c:1648 */ 344 { 345 (yyval.opval) = block_end((ps[-4].val.ival), 346 newCONDOP(0, (ps[-3].val.opval), (ps[0].val.opval), op_scope((ps[-1].val.opval)))); 347 parser->copline = (line_t)(ps[-6].val.ival); 348 } 349 350 break; 351 352 case 38: 353#line 352 "perly.y" /* yacc.c:1648 */ 354 { 355 (yyval.opval) = block_end((ps[-3].val.ival), newGIVENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)), 0)); 356 parser->copline = (line_t)(ps[-5].val.ival); 357 } 358 359 break; 360 361 case 39: 362#line 357 "perly.y" /* yacc.c:1648 */ 363 { (yyval.opval) = block_end((ps[-3].val.ival), newWHENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)))); } 364 365 break; 366 367 case 40: 368#line 359 "perly.y" /* yacc.c:1648 */ 369 { (yyval.opval) = newWHENOP(0, op_scope((ps[0].val.opval))); } 370 371 break; 372 373 case 41: 374#line 361 "perly.y" /* yacc.c:1648 */ 375 { 376 (yyval.opval) = block_end((ps[-5].val.ival), 377 newWHILEOP(0, 1, NULL, 378 (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival))); 379 parser->copline = (line_t)(ps[-7].val.ival); 380 } 381 382 break; 383 384 case 42: 385#line 368 "perly.y" /* yacc.c:1648 */ 386 { 387 (yyval.opval) = block_end((ps[-5].val.ival), 388 newWHILEOP(0, 1, NULL, 389 (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival))); 390 parser->copline = (line_t)(ps[-7].val.ival); 391 } 392 393 break; 394 395 case 43: 396#line 375 "perly.y" /* yacc.c:1648 */ 397 { parser->expect = XTERM; } 398 399 break; 400 401 case 44: 402#line 377 "perly.y" /* yacc.c:1648 */ 403 { parser->expect = XTERM; } 404 405 break; 406 407 case 45: 408#line 380 "perly.y" /* yacc.c:1648 */ 409 { 410 OP *initop = (ps[-9].val.opval); 411 OP *forop = newWHILEOP(0, 1, NULL, 412 scalar((ps[-6].val.opval)), (ps[0].val.opval), (ps[-2].val.opval), (ps[-3].val.ival)); 413 if (initop) { 414 forop = op_prepend_elem(OP_LINESEQ, initop, 415 op_append_elem(OP_LINESEQ, 416 newOP(OP_UNSTACK, OPf_SPECIAL), 417 forop)); 418 } 419 PL_hints |= HINT_BLOCK_SCOPE; 420 (yyval.opval) = block_end((ps[-10].val.ival), forop); 421 parser->copline = (line_t)(ps[-12].val.ival); 422 } 423 424 break; 425 426 case 46: 427#line 395 "perly.y" /* yacc.c:1648 */ 428 { 429 (yyval.opval) = block_end((ps[-6].val.ival), newFOROP(0, (ps[-5].val.opval), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); 430 parser->copline = (line_t)(ps[-8].val.ival); 431 } 432 433 break; 434 435 case 47: 436#line 400 "perly.y" /* yacc.c:1648 */ 437 { 438 (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0, 439 op_lvalue((ps[-6].val.opval), OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); 440 parser->copline = (line_t)(ps[-7].val.ival); 441 } 442 443 break; 444 445 case 48: 446#line 406 "perly.y" /* yacc.c:1648 */ 447 { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } 448 449 break; 450 451 case 49: 452#line 408 "perly.y" /* yacc.c:1648 */ 453 { 454 (yyval.opval) = block_end( 455 (ps[-7].val.ival), 456 newFOROP(0, 457 op_lvalue( 458 newUNOP(OP_REFGEN, 0, 459 (ps[-5].val.opval)), 460 OP_ENTERLOOP), 461 (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)) 462 ); 463 parser->copline = (line_t)(ps[-9].val.ival); 464 } 465 466 break; 467 468 case 50: 469#line 421 "perly.y" /* yacc.c:1648 */ 470 { 471 (yyval.opval) = block_end((ps[-4].val.ival), newFOROP( 472 0, op_lvalue(newUNOP(OP_REFGEN, 0, 473 (ps[-6].val.opval)), 474 OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); 475 parser->copline = (line_t)(ps[-8].val.ival); 476 } 477 478 break; 479 480 case 51: 481#line 429 "perly.y" /* yacc.c:1648 */ 482 { 483 (yyval.opval) = block_end((ps[-4].val.ival), 484 newFOROP(0, NULL, (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); 485 parser->copline = (line_t)(ps[-6].val.ival); 486 } 487 488 break; 489 490 case 52: 491#line 435 "perly.y" /* yacc.c:1648 */ 492 { 493 /* a block is a loop that happens once */ 494 (yyval.opval) = newWHILEOP(0, 1, NULL, 495 NULL, (ps[-1].val.opval), (ps[0].val.opval), 0); 496 } 497 498 break; 499 500 case 53: 501#line 441 "perly.y" /* yacc.c:1648 */ 502 { 503 package((ps[-2].val.opval)); 504 if ((ps[-3].val.opval)) { 505 package_version((ps[-3].val.opval)); 506 } 507 } 508 509 break; 510 511 case 54: 512#line 448 "perly.y" /* yacc.c:1648 */ 513 { 514 /* a block is a loop that happens once */ 515 (yyval.opval) = newWHILEOP(0, 1, NULL, 516 NULL, block_end((ps[-3].val.ival), (ps[-1].val.opval)), NULL, 0); 517 if (parser->copline > (line_t)(ps[-4].val.ival)) 518 parser->copline = (line_t)(ps[-4].val.ival); 519 } 520 521 break; 522 523 case 55: 524#line 456 "perly.y" /* yacc.c:1648 */ 525 { 526 (yyval.opval) = (ps[-1].val.opval); 527 } 528 529 break; 530 531 case 56: 532#line 460 "perly.y" /* yacc.c:1648 */ 533 { 534 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), 535 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented"))); 536 } 537 538 break; 539 540 case 57: 541#line 465 "perly.y" /* yacc.c:1648 */ 542 { 543 (yyval.opval) = NULL; 544 parser->copline = NOLINE; 545 } 546 547 break; 548 549 case 58: 550#line 473 "perly.y" /* yacc.c:1648 */ 551 { OP *list; 552 if ((ps[0].val.opval)) { 553 OP *term = (ps[0].val.opval); 554 list = op_append_elem(OP_LIST, (ps[-1].val.opval), term); 555 } 556 else { 557 list = (ps[-1].val.opval); 558 } 559 if (parser->copline == NOLINE) 560 parser->copline = CopLINE(PL_curcop)-1; 561 else parser->copline--; 562 (yyval.opval) = newSTATEOP(0, NULL, 563 op_convert_list(OP_FORMLINE, 0, list)); 564 } 565 566 break; 567 568 case 59: 569#line 490 "perly.y" /* yacc.c:1648 */ 570 { (yyval.opval) = NULL; } 571 572 break; 573 574 case 60: 575#line 492 "perly.y" /* yacc.c:1648 */ 576 { (yyval.opval) = op_unscope((ps[-1].val.opval)); } 577 578 break; 579 580 case 61: 581#line 497 "perly.y" /* yacc.c:1648 */ 582 { (yyval.opval) = NULL; } 583 584 break; 585 586 case 62: 587#line 499 "perly.y" /* yacc.c:1648 */ 588 { (yyval.opval) = (ps[0].val.opval); } 589 590 break; 591 592 case 63: 593#line 501 "perly.y" /* yacc.c:1648 */ 594 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[0].val.opval), (ps[-2].val.opval)); } 595 596 break; 597 598 case 64: 599#line 503 "perly.y" /* yacc.c:1648 */ 600 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[0].val.opval), (ps[-2].val.opval)); } 601 602 break; 603 604 case 65: 605#line 505 "perly.y" /* yacc.c:1648 */ 606 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[0].val.opval)), (ps[-2].val.opval)); } 607 608 break; 609 610 case 66: 611#line 507 "perly.y" /* yacc.c:1648 */ 612 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[0].val.opval), (ps[-2].val.opval)); } 613 614 break; 615 616 case 67: 617#line 509 "perly.y" /* yacc.c:1648 */ 618 { (yyval.opval) = newFOROP(0, NULL, (ps[0].val.opval), (ps[-2].val.opval), NULL); 619 parser->copline = (line_t)(ps[-1].val.ival); } 620 621 break; 622 623 case 68: 624#line 512 "perly.y" /* yacc.c:1648 */ 625 { (yyval.opval) = newWHENOP((ps[0].val.opval), op_scope((ps[-2].val.opval))); } 626 627 break; 628 629 case 69: 630#line 517 "perly.y" /* yacc.c:1648 */ 631 { (yyval.opval) = NULL; } 632 633 break; 634 635 case 70: 636#line 519 "perly.y" /* yacc.c:1648 */ 637 { 638 ((ps[0].val.opval))->op_flags |= OPf_PARENS; 639 (yyval.opval) = op_scope((ps[0].val.opval)); 640 } 641 642 break; 643 644 case 71: 645#line 524 "perly.y" /* yacc.c:1648 */ 646 { parser->copline = (line_t)(ps[-5].val.ival); 647 (yyval.opval) = newCONDOP(0, 648 newSTATEOP(OPf_SPECIAL,NULL,(ps[-3].val.opval)), 649 op_scope((ps[-1].val.opval)), (ps[0].val.opval)); 650 PL_hints |= HINT_BLOCK_SCOPE; 651 } 652 653 break; 654 655 case 72: 656#line 534 "perly.y" /* yacc.c:1648 */ 657 { (yyval.opval) = NULL; } 658 659 break; 660 661 case 73: 662#line 536 "perly.y" /* yacc.c:1648 */ 663 { (yyval.opval) = op_scope((ps[0].val.opval)); } 664 665 break; 666 667 case 74: 668#line 541 "perly.y" /* yacc.c:1648 */ 669 { (yyval.ival) = (PL_min_intro_pending && 670 PL_max_intro_pending >= PL_min_intro_pending); 671 intro_my(); } 672 673 break; 674 675 case 75: 676#line 547 "perly.y" /* yacc.c:1648 */ 677 { (yyval.opval) = NULL; } 678 679 break; 680 681 case 77: 682#line 553 "perly.y" /* yacc.c:1648 */ 683 { YYSTYPE tmplval; 684 (void)scan_num("1", &tmplval); 685 (yyval.opval) = tmplval.opval; } 686 687 break; 688 689 case 79: 690#line 561 "perly.y" /* yacc.c:1648 */ 691 { (yyval.opval) = invert(scalar((ps[0].val.opval))); } 692 693 break; 694 695 case 80: 696#line 566 "perly.y" /* yacc.c:1648 */ 697 { (yyval.opval) = (ps[0].val.opval); intro_my(); } 698 699 break; 700 701 case 81: 702#line 570 "perly.y" /* yacc.c:1648 */ 703 { (yyval.opval) = (ps[0].val.opval); intro_my(); } 704 705 break; 706 707 case 82: 708#line 573 "perly.y" /* yacc.c:1648 */ 709 { (yyval.opval) = (ps[0].val.opval); } 710 711 break; 712 713 case 83: 714#line 574 "perly.y" /* yacc.c:1648 */ 715 { (yyval.opval) = NULL; } 716 717 break; 718 719 case 84: 720#line 578 "perly.y" /* yacc.c:1648 */ 721 { (yyval.ival) = start_subparse(FALSE, 0); 722 SAVEFREESV(PL_compcv); } 723 724 break; 725 726 case 85: 727#line 584 "perly.y" /* yacc.c:1648 */ 728 { (yyval.ival) = start_subparse(FALSE, CVf_ANON); 729 SAVEFREESV(PL_compcv); } 730 731 break; 732 733 case 86: 734#line 589 "perly.y" /* yacc.c:1648 */ 735 { (yyval.ival) = start_subparse(TRUE, 0); 736 SAVEFREESV(PL_compcv); } 737 738 break; 739 740 case 89: 741#line 600 "perly.y" /* yacc.c:1648 */ 742 { (yyval.opval) = NULL; } 743 744 break; 745 746 case 91: 747#line 606 "perly.y" /* yacc.c:1648 */ 748 { (yyval.opval) = NULL; } 749 750 break; 751 752 case 92: 753#line 608 "perly.y" /* yacc.c:1648 */ 754 { (yyval.opval) = (ps[0].val.opval); } 755 756 break; 757 758 case 93: 759#line 610 "perly.y" /* yacc.c:1648 */ 760 { (yyval.opval) = NULL; } 761 762 break; 763 764 case 94: 765#line 615 "perly.y" /* yacc.c:1648 */ 766 { (yyval.opval) = (ps[0].val.opval); } 767 768 break; 769 770 case 95: 771#line 617 "perly.y" /* yacc.c:1648 */ 772 { (yyval.opval) = NULL; } 773 774 break; 775 776 case 96: 777#line 628 "perly.y" /* yacc.c:1648 */ 778 { parser->in_my = 0; (yyval.opval) = NULL; } 779 780 break; 781 782 case 97: 783#line 630 "perly.y" /* yacc.c:1648 */ 784 { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); } 785 786 break; 787 788 case 98: 789#line 635 "perly.y" /* yacc.c:1648 */ 790 { (yyval.ival) = '@'; } 791 792 break; 793 794 case 99: 795#line 637 "perly.y" /* yacc.c:1648 */ 796 { (yyval.ival) = '%'; } 797 798 break; 799 800 case 100: 801#line 641 "perly.y" /* yacc.c:1648 */ 802 { 803 I32 sigil = (ps[-2].val.ival); 804 OP *var = (ps[-1].val.opval); 805 OP *defexpr = (ps[0].val.opval); 806 807 if (parser->sig_slurpy) 808 yyerror("Multiple slurpy parameters not allowed"); 809 parser->sig_slurpy = (char)sigil; 810 811 if (defexpr) 812 yyerror("A slurpy parameter may not have " 813 "a default value"); 814 815 (yyval.opval) = var ? newSTATEOP(0, NULL, var) : NULL; 816 } 817 818 break; 819 820 case 101: 821#line 660 "perly.y" /* yacc.c:1648 */ 822 { (yyval.opval) = NULL; } 823 824 break; 825 826 case 102: 827#line 662 "perly.y" /* yacc.c:1648 */ 828 { (yyval.opval) = newOP(OP_NULL, 0); } 829 830 break; 831 832 case 103: 833#line 664 "perly.y" /* yacc.c:1648 */ 834 { (yyval.opval) = (ps[0].val.opval); } 835 836 break; 837 838 case 104: 839#line 670 "perly.y" /* yacc.c:1648 */ 840 { 841 OP *var = (ps[-1].val.opval); 842 OP *defexpr = (ps[0].val.opval); 843 844 if (parser->sig_slurpy) 845 yyerror("Slurpy parameter not last"); 846 847 parser->sig_elems++; 848 849 if (defexpr) { 850 parser->sig_optelems++; 851 852 if ( defexpr->op_type == OP_NULL 853 && !(defexpr->op_flags & OPf_KIDS)) 854 { 855 /* handle '$=' special case */ 856 if (var) 857 yyerror("Optional parameter " 858 "lacks default expression"); 859 op_free(defexpr); 860 } 861 else { 862 /* a normal '=default' expression */ 863 OP *defop = (OP*)alloc_LOGOP(OP_ARGDEFELEM, 864 defexpr, 865 LINKLIST(defexpr)); 866 /* re-purpose op_targ to hold @_ index */ 867 defop->op_targ = 868 (PADOFFSET)(parser->sig_elems - 1); 869 870 if (var) { 871 var->op_flags |= OPf_STACKED; 872 (void)op_sibling_splice(var, 873 NULL, 0, defop); 874 scalar(defop); 875 } 876 else 877 var = newUNOP(OP_NULL, 0, defop); 878 879 LINKLIST(var); 880 /* NB: normally the first child of a 881 * logop is executed before the logop, 882 * and it pushes a boolean result 883 * ready for the logop. For ARGDEFELEM, 884 * the op itself does the boolean 885 * calculation, so set the first op to 886 * it instead. 887 */ 888 var->op_next = defop; 889 defexpr->op_next = var; 890 } 891 } 892 else { 893 if (parser->sig_optelems) 894 yyerror("Mandatory parameter " 895 "follows optional parameter"); 896 } 897 898 (yyval.opval) = var ? newSTATEOP(0, NULL, var) : NULL; 899 } 900 901 break; 902 903 case 105: 904#line 735 "perly.y" /* yacc.c:1648 */ 905 { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } 906 907 break; 908 909 case 106: 910#line 737 "perly.y" /* yacc.c:1648 */ 911 { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } 912 913 break; 914 915 case 107: 916#line 743 "perly.y" /* yacc.c:1648 */ 917 { (yyval.opval) = (ps[-1].val.opval); } 918 919 break; 920 921 case 108: 922#line 745 "perly.y" /* yacc.c:1648 */ 923 { 924 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-2].val.opval), (ps[0].val.opval)); 925 } 926 927 break; 928 929 case 109: 930#line 749 "perly.y" /* yacc.c:1648 */ 931 { (yyval.opval) = (ps[0].val.opval); } 932 933 break; 934 935 case 110: 936#line 754 "perly.y" /* yacc.c:1648 */ 937 { (yyval.opval) = NULL; } 938 939 break; 940 941 case 111: 942#line 756 "perly.y" /* yacc.c:1648 */ 943 { (yyval.opval) = (ps[0].val.opval); } 944 945 break; 946 947 case 112: 948#line 760 "perly.y" /* yacc.c:1648 */ 949 { (yyval.opval) = NULL; } 950 951 break; 952 953 case 113: 954#line 762 "perly.y" /* yacc.c:1648 */ 955 { (yyval.opval) = (ps[0].val.opval); } 956 957 break; 958 959 case 114: 960#line 766 "perly.y" /* yacc.c:1648 */ 961 { 962 ENTER; 963 SAVEIV(parser->sig_elems); 964 SAVEIV(parser->sig_optelems); 965 SAVEI8(parser->sig_slurpy); 966 parser->sig_elems = 0; 967 parser->sig_optelems = 0; 968 parser->sig_slurpy = 0; 969 parser->in_my = KEY_sigvar; 970 } 971 972 break; 973 974 case 115: 975#line 778 "perly.y" /* yacc.c:1648 */ 976 { 977 OP *sigops = (ps[-1].val.opval); 978 UNOP_AUX_item *aux; 979 OP *check; 980 981 if (!FEATURE_SIGNATURES_IS_ENABLED) 982 Perl_croak(aTHX_ "Experimental " 983 "subroutine signatures not enabled"); 984 985 /* We shouldn't get here otherwise */ 986 Perl_ck_warner_d(aTHX_ 987 packWARN(WARN_EXPERIMENTAL__SIGNATURES), 988 "The signatures feature is experimental"); 989 990 aux = (UNOP_AUX_item*)PerlMemShared_malloc( 991 sizeof(UNOP_AUX_item) * 3); 992 aux[0].iv = parser->sig_elems; 993 aux[1].iv = parser->sig_optelems; 994 aux[2].iv = parser->sig_slurpy; 995 check = newUNOP_AUX(OP_ARGCHECK, 0, NULL, aux); 996 sigops = op_prepend_elem(OP_LINESEQ, check, sigops); 997 sigops = op_prepend_elem(OP_LINESEQ, 998 newSTATEOP(0, NULL, NULL), 999 sigops); 1000 /* a nextstate at the end handles context 1001 * correctly for an empty sub body */ 1002 (yyval.opval) = op_append_elem(OP_LINESEQ, 1003 sigops, 1004 newSTATEOP(0, NULL, NULL)); 1005 1006 parser->in_my = 0; 1007 /* tell the toker that attrributes can follow 1008 * this sig, but only so that the toker 1009 * can skip through any (illegal) trailing 1010 * attribute text then give a useful error 1011 * message about "attributes before sig", 1012 * rather than falling over ina mess at 1013 * unrecognised syntax. 1014 */ 1015 parser->expect = XATTRBLOCK; 1016 parser->sig_seen = TRUE; 1017 LEAVE; 1018 } 1019 1020 break; 1021 1022 case 116: 1023#line 824 "perly.y" /* yacc.c:1648 */ 1024 { (yyval.opval) = (ps[0].val.opval); } 1025 1026 break; 1027 1028 case 117: 1029#line 825 "perly.y" /* yacc.c:1648 */ 1030 { (yyval.opval) = NULL; } 1031 1032 break; 1033 1034 case 118: 1035#line 831 "perly.y" /* yacc.c:1648 */ 1036 { 1037 if (parser->copline > (line_t)(ps[-2].val.ival)) 1038 parser->copline = (line_t)(ps[-2].val.ival); 1039 (yyval.opval) = block_end((ps[-3].val.ival), (ps[-1].val.opval)); 1040 } 1041 1042 break; 1043 1044 case 119: 1045#line 841 "perly.y" /* yacc.c:1648 */ 1046 { (yyval.opval) = (ps[0].val.opval); } 1047 1048 break; 1049 1050 case 120: 1051#line 842 "perly.y" /* yacc.c:1648 */ 1052 { (yyval.opval) = NULL; } 1053 1054 break; 1055 1056 case 121: 1057#line 846 "perly.y" /* yacc.c:1648 */ 1058 { 1059 if (parser->copline > (line_t)(ps[-2].val.ival)) 1060 parser->copline = (line_t)(ps[-2].val.ival); 1061 (yyval.opval) = block_end((ps[-4].val.ival), 1062 op_append_list(OP_LINESEQ, (ps[-3].val.opval), (ps[-1].val.opval))); 1063 } 1064 1065 break; 1066 1067 case 122: 1068#line 857 "perly.y" /* yacc.c:1648 */ 1069 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } 1070 1071 break; 1072 1073 case 123: 1074#line 859 "perly.y" /* yacc.c:1648 */ 1075 { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); } 1076 1077 break; 1078 1079 case 124: 1080#line 861 "perly.y" /* yacc.c:1648 */ 1081 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } 1082 1083 break; 1084 1085 case 126: 1086#line 867 "perly.y" /* yacc.c:1648 */ 1087 { (yyval.opval) = (ps[-1].val.opval); } 1088 1089 break; 1090 1091 case 127: 1092#line 869 "perly.y" /* yacc.c:1648 */ 1093 { 1094 OP* term = (ps[0].val.opval); 1095 (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term); 1096 } 1097 1098 break; 1099 1100 case 129: 1101#line 878 "perly.y" /* yacc.c:1648 */ 1102 { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED, 1103 op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) ); 1104 } 1105 1106 break; 1107 1108 case 130: 1109#line 882 "perly.y" /* yacc.c:1648 */ 1110 { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED, 1111 op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) ); 1112 } 1113 1114 break; 1115 1116 case 131: 1117#line 886 "perly.y" /* yacc.c:1648 */ 1118 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, 1119 op_append_elem(OP_LIST, 1120 op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)), 1121 newMETHOP(OP_METHOD, 0, (ps[-3].val.opval)))); 1122 } 1123 1124 break; 1125 1126 case 132: 1127#line 892 "perly.y" /* yacc.c:1648 */ 1128 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, 1129 op_append_elem(OP_LIST, scalar((ps[-2].val.opval)), 1130 newMETHOP(OP_METHOD, 0, (ps[0].val.opval)))); 1131 } 1132 1133 break; 1134 1135 case 133: 1136#line 897 "perly.y" /* yacc.c:1648 */ 1137 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, 1138 op_append_elem(OP_LIST, 1139 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), 1140 newMETHOP(OP_METHOD, 0, (ps[-2].val.opval)))); 1141 } 1142 1143 break; 1144 1145 case 134: 1146#line 903 "perly.y" /* yacc.c:1648 */ 1147 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, 1148 op_append_elem(OP_LIST, 1149 op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)), 1150 newMETHOP(OP_METHOD, 0, (ps[-4].val.opval)))); 1151 } 1152 1153 break; 1154 1155 case 135: 1156#line 909 "perly.y" /* yacc.c:1648 */ 1157 { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); } 1158 1159 break; 1160 1161 case 136: 1162#line 911 "perly.y" /* yacc.c:1648 */ 1163 { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } 1164 1165 break; 1166 1167 case 137: 1168#line 913 "perly.y" /* yacc.c:1648 */ 1169 { SvREFCNT_inc_simple_void(PL_compcv); 1170 (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, NULL, (ps[0].val.opval)); } 1171 1172 break; 1173 1174 case 138: 1175#line 916 "perly.y" /* yacc.c:1648 */ 1176 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 1177 op_append_elem(OP_LIST, 1178 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval))); 1179 } 1180 1181 break; 1182 1183 case 141: 1184#line 931 "perly.y" /* yacc.c:1648 */ 1185 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); } 1186 1187 break; 1188 1189 case 142: 1190#line 933 "perly.y" /* yacc.c:1648 */ 1191 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval))); 1192 } 1193 1194 break; 1195 1196 case 143: 1197#line 936 "perly.y" /* yacc.c:1648 */ 1198 { (yyval.opval) = newBINOP(OP_AELEM, 0, 1199 ref(newAVREF((ps[-4].val.opval)),OP_RV2AV), 1200 scalar((ps[-1].val.opval))); 1201 } 1202 1203 break; 1204 1205 case 144: 1206#line 941 "perly.y" /* yacc.c:1648 */ 1207 { (yyval.opval) = newBINOP(OP_AELEM, 0, 1208 ref(newAVREF((ps[-3].val.opval)),OP_RV2AV), 1209 scalar((ps[-1].val.opval))); 1210 } 1211 1212 break; 1213 1214 case 145: 1215#line 946 "perly.y" /* yacc.c:1648 */ 1216 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval))); 1217 } 1218 1219 break; 1220 1221 case 146: 1222#line 949 "perly.y" /* yacc.c:1648 */ 1223 { (yyval.opval) = newBINOP(OP_HELEM, 0, 1224 ref(newHVREF((ps[-5].val.opval)),OP_RV2HV), 1225 jmaybe((ps[-2].val.opval))); } 1226 1227 break; 1228 1229 case 147: 1230#line 953 "perly.y" /* yacc.c:1648 */ 1231 { (yyval.opval) = newBINOP(OP_HELEM, 0, 1232 ref(newHVREF((ps[-4].val.opval)),OP_RV2HV), 1233 jmaybe((ps[-2].val.opval))); } 1234 1235 break; 1236 1237 case 148: 1238#line 957 "perly.y" /* yacc.c:1648 */ 1239 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 1240 newCVREF(0, scalar((ps[-3].val.opval)))); 1241 if (parser->expect == XBLOCK) 1242 parser->expect = XOPERATOR; 1243 } 1244 1245 break; 1246 1247 case 149: 1248#line 963 "perly.y" /* yacc.c:1648 */ 1249 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 1250 op_append_elem(OP_LIST, (ps[-1].val.opval), 1251 newCVREF(0, scalar((ps[-4].val.opval))))); 1252 if (parser->expect == XBLOCK) 1253 parser->expect = XOPERATOR; 1254 } 1255 1256 break; 1257 1258 case 150: 1259#line 971 "perly.y" /* yacc.c:1648 */ 1260 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 1261 op_append_elem(OP_LIST, (ps[-1].val.opval), 1262 newCVREF(0, scalar((ps[-3].val.opval))))); 1263 if (parser->expect == XBLOCK) 1264 parser->expect = XOPERATOR; 1265 } 1266 1267 break; 1268 1269 case 151: 1270#line 978 "perly.y" /* yacc.c:1648 */ 1271 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 1272 newCVREF(0, scalar((ps[-2].val.opval)))); 1273 if (parser->expect == XBLOCK) 1274 parser->expect = XOPERATOR; 1275 } 1276 1277 break; 1278 1279 case 152: 1280#line 984 "perly.y" /* yacc.c:1648 */ 1281 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); } 1282 1283 break; 1284 1285 case 153: 1286#line 986 "perly.y" /* yacc.c:1648 */ 1287 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); } 1288 1289 break; 1290 1291 case 154: 1292#line 988 "perly.y" /* yacc.c:1648 */ 1293 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); } 1294 1295 break; 1296 1297 case 155: 1298#line 993 "perly.y" /* yacc.c:1648 */ 1299 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); } 1300 1301 break; 1302 1303 case 156: 1304#line 995 "perly.y" /* yacc.c:1648 */ 1305 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 1306 1307 break; 1308 1309 case 157: 1310#line 997 "perly.y" /* yacc.c:1648 */ 1311 { if ((ps[-1].val.ival) != OP_REPEAT) 1312 scalar((ps[-2].val.opval)); 1313 (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval))); 1314 } 1315 1316 break; 1317 1318 case 158: 1319#line 1002 "perly.y" /* yacc.c:1648 */ 1320 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 1321 1322 break; 1323 1324 case 159: 1325#line 1004 "perly.y" /* yacc.c:1648 */ 1326 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 1327 1328 break; 1329 1330 case 160: 1331#line 1006 "perly.y" /* yacc.c:1648 */ 1332 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 1333 1334 break; 1335 1336 case 161: 1337#line 1008 "perly.y" /* yacc.c:1648 */ 1338 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 1339 1340 break; 1341 1342 case 162: 1343#line 1010 "perly.y" /* yacc.c:1648 */ 1344 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 1345 1346 break; 1347 1348 case 163: 1349#line 1012 "perly.y" /* yacc.c:1648 */ 1350 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 1351 1352 break; 1353 1354 case 164: 1355#line 1014 "perly.y" /* yacc.c:1648 */ 1356 { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 1357 1358 break; 1359 1360 case 165: 1361#line 1016 "perly.y" /* yacc.c:1648 */ 1362 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } 1363 1364 break; 1365 1366 case 166: 1367#line 1018 "perly.y" /* yacc.c:1648 */ 1368 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } 1369 1370 break; 1371 1372 case 167: 1373#line 1020 "perly.y" /* yacc.c:1648 */ 1374 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } 1375 1376 break; 1377 1378 case 168: 1379#line 1022 "perly.y" /* yacc.c:1648 */ 1380 { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } 1381 1382 break; 1383 1384 case 169: 1385#line 1027 "perly.y" /* yacc.c:1648 */ 1386 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); } 1387 1388 break; 1389 1390 case 170: 1391#line 1029 "perly.y" /* yacc.c:1648 */ 1392 { (yyval.opval) = (ps[0].val.opval); } 1393 1394 break; 1395 1396 case 171: 1397#line 1032 "perly.y" /* yacc.c:1648 */ 1398 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } 1399 1400 break; 1401 1402 case 172: 1403#line 1034 "perly.y" /* yacc.c:1648 */ 1404 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); } 1405 1406 break; 1407 1408 case 173: 1409#line 1036 "perly.y" /* yacc.c:1648 */ 1410 { (yyval.opval) = newUNOP(OP_POSTINC, 0, 1411 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); } 1412 1413 break; 1414 1415 case 174: 1416#line 1039 "perly.y" /* yacc.c:1648 */ 1417 { (yyval.opval) = newUNOP(OP_POSTDEC, 0, 1418 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));} 1419 1420 break; 1421 1422 case 175: 1423#line 1042 "perly.y" /* yacc.c:1648 */ 1424 { (yyval.opval) = op_convert_list(OP_JOIN, 0, 1425 op_append_elem( 1426 OP_LIST, 1427 newSVREF(scalar( 1428 newSVOP(OP_CONST,0, 1429 newSVpvs("\"")) 1430 )), 1431 (ps[-1].val.opval) 1432 )); 1433 } 1434 1435 break; 1436 1437 case 176: 1438#line 1053 "perly.y" /* yacc.c:1648 */ 1439 { (yyval.opval) = newUNOP(OP_PREINC, 0, 1440 op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); } 1441 1442 break; 1443 1444 case 177: 1445#line 1056 "perly.y" /* yacc.c:1648 */ 1446 { (yyval.opval) = newUNOP(OP_PREDEC, 0, 1447 op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); } 1448 1449 break; 1450 1451 case 178: 1452#line 1063 "perly.y" /* yacc.c:1648 */ 1453 { (yyval.opval) = newANONLIST((ps[-1].val.opval)); } 1454 1455 break; 1456 1457 case 179: 1458#line 1065 "perly.y" /* yacc.c:1648 */ 1459 { (yyval.opval) = newANONLIST(NULL);} 1460 1461 break; 1462 1463 case 180: 1464#line 1067 "perly.y" /* yacc.c:1648 */ 1465 { (yyval.opval) = newANONHASH((ps[-2].val.opval)); } 1466 1467 break; 1468 1469 case 181: 1470#line 1069 "perly.y" /* yacc.c:1648 */ 1471 { (yyval.opval) = newANONHASH(NULL); } 1472 1473 break; 1474 1475 case 182: 1476#line 1071 "perly.y" /* yacc.c:1648 */ 1477 { SvREFCNT_inc_simple_void(PL_compcv); 1478 (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); } 1479 1480 break; 1481 1482 case 183: 1483#line 1074 "perly.y" /* yacc.c:1648 */ 1484 { SvREFCNT_inc_simple_void(PL_compcv); 1485 (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); } 1486 1487 break; 1488 1489 case 184: 1490#line 1080 "perly.y" /* yacc.c:1648 */ 1491 { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));} 1492 1493 break; 1494 1495 case 185: 1496#line 1082 "perly.y" /* yacc.c:1648 */ 1497 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));} 1498 1499 break; 1500 1501 case 190: 1502#line 1090 "perly.y" /* yacc.c:1648 */ 1503 { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } 1504 1505 break; 1506 1507 case 191: 1508#line 1092 "perly.y" /* yacc.c:1648 */ 1509 { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } 1510 1511 break; 1512 1513 case 192: 1514#line 1094 "perly.y" /* yacc.c:1648 */ 1515 { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } 1516 1517 break; 1518 1519 case 193: 1520#line 1096 "perly.y" /* yacc.c:1648 */ 1521 { (yyval.opval) = (ps[0].val.opval); } 1522 1523 break; 1524 1525 case 194: 1526#line 1098 "perly.y" /* yacc.c:1648 */ 1527 { (yyval.opval) = localize((ps[0].val.opval),0); } 1528 1529 break; 1530 1531 case 195: 1532#line 1100 "perly.y" /* yacc.c:1648 */ 1533 { (yyval.opval) = sawparens((ps[-1].val.opval)); } 1534 1535 break; 1536 1537 case 196: 1538#line 1102 "perly.y" /* yacc.c:1648 */ 1539 { (yyval.opval) = (ps[0].val.opval); } 1540 1541 break; 1542 1543 case 197: 1544#line 1104 "perly.y" /* yacc.c:1648 */ 1545 { (yyval.opval) = sawparens(newNULLLIST()); } 1546 1547 break; 1548 1549 case 198: 1550#line 1106 "perly.y" /* yacc.c:1648 */ 1551 { (yyval.opval) = (ps[0].val.opval); } 1552 1553 break; 1554 1555 case 199: 1556#line 1108 "perly.y" /* yacc.c:1648 */ 1557 { (yyval.opval) = (ps[0].val.opval); } 1558 1559 break; 1560 1561 case 200: 1562#line 1110 "perly.y" /* yacc.c:1648 */ 1563 { (yyval.opval) = (ps[0].val.opval); } 1564 1565 break; 1566 1567 case 201: 1568#line 1112 "perly.y" /* yacc.c:1648 */ 1569 { (yyval.opval) = (ps[0].val.opval); } 1570 1571 break; 1572 1573 case 202: 1574#line 1114 "perly.y" /* yacc.c:1648 */ 1575 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} 1576 1577 break; 1578 1579 case 203: 1580#line 1116 "perly.y" /* yacc.c:1648 */ 1581 { (yyval.opval) = (ps[0].val.opval); } 1582 1583 break; 1584 1585 case 204: 1586#line 1118 "perly.y" /* yacc.c:1648 */ 1587 { (yyval.opval) = op_prepend_elem(OP_ASLICE, 1588 newOP(OP_PUSHMARK, 0), 1589 newLISTOP(OP_ASLICE, 0, 1590 list((ps[-1].val.opval)), 1591 ref((ps[-3].val.opval), OP_ASLICE))); 1592 if ((yyval.opval) && (ps[-3].val.opval)) 1593 (yyval.opval)->op_private |= 1594 (ps[-3].val.opval)->op_private & OPpSLICEWARNING; 1595 } 1596 1597 break; 1598 1599 case 205: 1600#line 1128 "perly.y" /* yacc.c:1648 */ 1601 { (yyval.opval) = op_prepend_elem(OP_KVASLICE, 1602 newOP(OP_PUSHMARK, 0), 1603 newLISTOP(OP_KVASLICE, 0, 1604 list((ps[-1].val.opval)), 1605 ref(oopsAV((ps[-3].val.opval)), OP_KVASLICE))); 1606 if ((yyval.opval) && (ps[-3].val.opval)) 1607 (yyval.opval)->op_private |= 1608 (ps[-3].val.opval)->op_private & OPpSLICEWARNING; 1609 } 1610 1611 break; 1612 1613 case 206: 1614#line 1138 "perly.y" /* yacc.c:1648 */ 1615 { (yyval.opval) = op_prepend_elem(OP_HSLICE, 1616 newOP(OP_PUSHMARK, 0), 1617 newLISTOP(OP_HSLICE, 0, 1618 list((ps[-2].val.opval)), 1619 ref(oopsHV((ps[-4].val.opval)), OP_HSLICE))); 1620 if ((yyval.opval) && (ps[-4].val.opval)) 1621 (yyval.opval)->op_private |= 1622 (ps[-4].val.opval)->op_private & OPpSLICEWARNING; 1623 } 1624 1625 break; 1626 1627 case 207: 1628#line 1148 "perly.y" /* yacc.c:1648 */ 1629 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE, 1630 newOP(OP_PUSHMARK, 0), 1631 newLISTOP(OP_KVHSLICE, 0, 1632 list((ps[-2].val.opval)), 1633 ref((ps[-4].val.opval), OP_KVHSLICE))); 1634 if ((yyval.opval) && (ps[-4].val.opval)) 1635 (yyval.opval)->op_private |= 1636 (ps[-4].val.opval)->op_private & OPpSLICEWARNING; 1637 } 1638 1639 break; 1640 1641 case 208: 1642#line 1158 "perly.y" /* yacc.c:1648 */ 1643 { (yyval.opval) = (ps[0].val.opval); } 1644 1645 break; 1646 1647 case 209: 1648#line 1160 "perly.y" /* yacc.c:1648 */ 1649 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); } 1650 1651 break; 1652 1653 case 210: 1654#line 1162 "perly.y" /* yacc.c:1648 */ 1655 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval))); 1656 } 1657 1658 break; 1659 1660 case 211: 1661#line 1165 "perly.y" /* yacc.c:1648 */ 1662 { 1663 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 1664 op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval)))); 1665 } 1666 1667 break; 1668 1669 case 212: 1670#line 1170 "perly.y" /* yacc.c:1648 */ 1671 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 1672 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); 1673 } 1674 1675 break; 1676 1677 case 213: 1678#line 1174 "perly.y" /* yacc.c:1648 */ 1679 { (yyval.opval) = newSVREF((ps[-3].val.opval)); } 1680 1681 break; 1682 1683 case 214: 1684#line 1176 "perly.y" /* yacc.c:1648 */ 1685 { (yyval.opval) = newAVREF((ps[-3].val.opval)); } 1686 1687 break; 1688 1689 case 215: 1690#line 1178 "perly.y" /* yacc.c:1648 */ 1691 { (yyval.opval) = newHVREF((ps[-3].val.opval)); } 1692 1693 break; 1694 1695 case 216: 1696#line 1180 "perly.y" /* yacc.c:1648 */ 1697 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, 1698 scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); } 1699 1700 break; 1701 1702 case 217: 1703#line 1183 "perly.y" /* yacc.c:1648 */ 1704 { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); } 1705 1706 break; 1707 1708 case 218: 1709#line 1185 "perly.y" /* yacc.c:1648 */ 1710 { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL); 1711 PL_hints |= HINT_BLOCK_SCOPE; } 1712 1713 break; 1714 1715 case 219: 1716#line 1188 "perly.y" /* yacc.c:1648 */ 1717 { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); } 1718 1719 break; 1720 1721 case 220: 1722#line 1190 "perly.y" /* yacc.c:1648 */ 1723 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } 1724 1725 break; 1726 1727 case 221: 1728#line 1192 "perly.y" /* yacc.c:1648 */ 1729 { (yyval.opval) = newOP((ps[0].val.ival), 0); } 1730 1731 break; 1732 1733 case 222: 1734#line 1194 "perly.y" /* yacc.c:1648 */ 1735 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } 1736 1737 break; 1738 1739 case 223: 1740#line 1196 "perly.y" /* yacc.c:1648 */ 1741 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } 1742 1743 break; 1744 1745 case 224: 1746#line 1198 "perly.y" /* yacc.c:1648 */ 1747 { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); } 1748 1749 break; 1750 1751 case 225: 1752#line 1200 "perly.y" /* yacc.c:1648 */ 1753 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); } 1754 1755 break; 1756 1757 case 226: 1758#line 1202 "perly.y" /* yacc.c:1648 */ 1759 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } 1760 1761 break; 1762 1763 case 227: 1764#line 1204 "perly.y" /* yacc.c:1648 */ 1765 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 1766 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } 1767 1768 break; 1769 1770 case 228: 1771#line 1207 "perly.y" /* yacc.c:1648 */ 1772 { (yyval.opval) = newOP((ps[0].val.ival), 0); } 1773 1774 break; 1775 1776 case 229: 1777#line 1209 "perly.y" /* yacc.c:1648 */ 1778 { (yyval.opval) = newOP((ps[-2].val.ival), 0);} 1779 1780 break; 1781 1782 case 230: 1783#line 1211 "perly.y" /* yacc.c:1648 */ 1784 { (yyval.opval) = (ps[0].val.opval); } 1785 1786 break; 1787 1788 case 231: 1789#line 1213 "perly.y" /* yacc.c:1648 */ 1790 { (yyval.opval) = (ps[-2].val.opval); } 1791 1792 break; 1793 1794 case 232: 1795#line 1215 "perly.y" /* yacc.c:1648 */ 1796 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } 1797 1798 break; 1799 1800 case 233: 1801#line 1217 "perly.y" /* yacc.c:1648 */ 1802 { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT) 1803 ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0))) 1804 : newOP((ps[-2].val.ival), OPf_SPECIAL); } 1805 1806 break; 1807 1808 case 234: 1809#line 1221 "perly.y" /* yacc.c:1648 */ 1810 { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); } 1811 1812 break; 1813 1814 case 235: 1815#line 1223 "perly.y" /* yacc.c:1648 */ 1816 { 1817 if ( (ps[0].val.opval)->op_type != OP_TRANS 1818 && (ps[0].val.opval)->op_type != OP_TRANSR 1819 && (((PMOP*)(ps[0].val.opval))->op_pmflags & PMf_HAS_CV)) 1820 { 1821 (yyval.ival) = start_subparse(FALSE, CVf_ANON); 1822 SAVEFREESV(PL_compcv); 1823 } else 1824 (yyval.ival) = 0; 1825 } 1826 1827 break; 1828 1829 case 236: 1830#line 1234 "perly.y" /* yacc.c:1648 */ 1831 { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); } 1832 1833 break; 1834 1835 case 240: 1836#line 1242 "perly.y" /* yacc.c:1648 */ 1837 { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); } 1838 1839 break; 1840 1841 case 241: 1842#line 1244 "perly.y" /* yacc.c:1648 */ 1843 { (yyval.opval) = localize((ps[0].val.opval),1); } 1844 1845 break; 1846 1847 case 242: 1848#line 1246 "perly.y" /* yacc.c:1648 */ 1849 { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); } 1850 1851 break; 1852 1853 case 243: 1854#line 1251 "perly.y" /* yacc.c:1648 */ 1855 { (yyval.opval) = sawparens((ps[-1].val.opval)); } 1856 1857 break; 1858 1859 case 244: 1860#line 1253 "perly.y" /* yacc.c:1648 */ 1861 { (yyval.opval) = sawparens(newNULLLIST()); } 1862 1863 break; 1864 1865 case 245: 1866#line 1256 "perly.y" /* yacc.c:1648 */ 1867 { (yyval.opval) = (ps[0].val.opval); } 1868 1869 break; 1870 1871 case 246: 1872#line 1258 "perly.y" /* yacc.c:1648 */ 1873 { (yyval.opval) = (ps[0].val.opval); } 1874 1875 break; 1876 1877 case 247: 1878#line 1260 "perly.y" /* yacc.c:1648 */ 1879 { (yyval.opval) = (ps[0].val.opval); } 1880 1881 break; 1882 1883 case 248: 1884#line 1265 "perly.y" /* yacc.c:1648 */ 1885 { (yyval.opval) = NULL; } 1886 1887 break; 1888 1889 case 249: 1890#line 1267 "perly.y" /* yacc.c:1648 */ 1891 { (yyval.opval) = (ps[0].val.opval); } 1892 1893 break; 1894 1895 case 250: 1896#line 1271 "perly.y" /* yacc.c:1648 */ 1897 { (yyval.opval) = NULL; } 1898 1899 break; 1900 1901 case 251: 1902#line 1273 "perly.y" /* yacc.c:1648 */ 1903 { (yyval.opval) = (ps[0].val.opval); } 1904 1905 break; 1906 1907 case 252: 1908#line 1277 "perly.y" /* yacc.c:1648 */ 1909 { (yyval.opval) = NULL; } 1910 1911 break; 1912 1913 case 253: 1914#line 1279 "perly.y" /* yacc.c:1648 */ 1915 { (yyval.opval) = (ps[0].val.opval); } 1916 1917 break; 1918 1919 case 254: 1920#line 1285 "perly.y" /* yacc.c:1648 */ 1921 { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } 1922 1923 break; 1924 1925 case 262: 1926#line 1302 "perly.y" /* yacc.c:1648 */ 1927 { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); } 1928 1929 break; 1930 1931 case 263: 1932#line 1306 "perly.y" /* yacc.c:1648 */ 1933 { (yyval.opval) = newSVREF((ps[0].val.opval)); } 1934 1935 break; 1936 1937 case 264: 1938#line 1310 "perly.y" /* yacc.c:1648 */ 1939 { (yyval.opval) = newAVREF((ps[0].val.opval)); 1940 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); 1941 } 1942 1943 break; 1944 1945 case 265: 1946#line 1316 "perly.y" /* yacc.c:1648 */ 1947 { (yyval.opval) = newHVREF((ps[0].val.opval)); 1948 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); 1949 } 1950 1951 break; 1952 1953 case 266: 1954#line 1322 "perly.y" /* yacc.c:1648 */ 1955 { (yyval.opval) = newAVREF((ps[0].val.opval)); } 1956 1957 break; 1958 1959 case 267: 1960#line 1324 "perly.y" /* yacc.c:1648 */ 1961 { (yyval.opval) = newAVREF((ps[-3].val.opval)); } 1962 1963 break; 1964 1965 case 268: 1966#line 1328 "perly.y" /* yacc.c:1648 */ 1967 { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); } 1968 1969 break; 1970 1971 case 270: 1972#line 1333 "perly.y" /* yacc.c:1648 */ 1973 { (yyval.opval) = newAVREF((ps[-2].val.opval)); } 1974 1975 break; 1976 1977 case 272: 1978#line 1338 "perly.y" /* yacc.c:1648 */ 1979 { (yyval.opval) = newHVREF((ps[-2].val.opval)); } 1980 1981 break; 1982 1983 case 274: 1984#line 1343 "perly.y" /* yacc.c:1648 */ 1985 { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); } 1986 1987 break; 1988 1989 case 275: 1990#line 1348 "perly.y" /* yacc.c:1648 */ 1991 { (yyval.opval) = scalar((ps[0].val.opval)); } 1992 1993 break; 1994 1995 case 276: 1996#line 1350 "perly.y" /* yacc.c:1648 */ 1997 { (yyval.opval) = scalar((ps[0].val.opval)); } 1998 1999 break; 2000 2001 case 277: 2002#line 1352 "perly.y" /* yacc.c:1648 */ 2003 { (yyval.opval) = op_scope((ps[0].val.opval)); } 2004 2005 break; 2006 2007 case 278: 2008#line 1355 "perly.y" /* yacc.c:1648 */ 2009 { (yyval.opval) = (ps[0].val.opval); } 2010 2011 break; 2012 2013 2014 2015 default: break; 2016 2017 2018/* Generated from: 2019 * 7aa97cfabf5b87a95ed263373e76c7af6d7e075e83d12e84ccdca9690c15a68d perly.y 2020 * b6fae5748f9bef6db4740aa5e122b84ac5181852d42474d0ecad621fa4253306 regen_perly.pl 2021 * ex: set ro: */ 2022