From: Malcolm Beattie Date: Fri, 6 Feb 1998 15:46:35 +0000 (+0000) Subject: More Chip patches (tweaked for _5x). The final one mentioned here X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=cdaebead333273a920fe10cbcb2213a9fbefa241;p=p5sagit%2Fp5-mst-13.2.git More Chip patches (tweaked for _5x). The final one mentioned here (@ARGV with -i) actually went in at change 462 but I failed to add it to the change description: Subject: [PATCH] Fix typo: "FORM{,AT}LINE" Date: Sun, 11 Jan 1998 19:37:17 -0500 (EST) Subject: [PATCH] Fix for C<@x = my @y> Date: Sun, 11 Jan 1998 18:12:16 -0500 (EST) Subject: [PATCH] Fix SEGV on C<*glob{SCALAR,ARRAY}> Date: Thu, 5 Feb 1998 21:30:13 -0500 (EST) Subject: [PATCH] Allow last() to mean last Date: Thu, 5 Feb 1998 21:42:57 -0500 (EST) Subject: [PATCH] Consider @ARGV to be plain files if inplace (-i) Date: Wed, 4 Feb 1998 16:04:47 -0500 (EST) p4raw-id: //depot/perl@465 --- diff --git a/op.c b/op.c index 90c604d..5e2f5c2 100644 --- a/op.c +++ b/op.c @@ -1588,7 +1588,6 @@ localize(OP *o, I32 lex) if (o->op_flags & OPf_PARENS) list(o); else { - scalar(o); if (dowarn && bufptr > oldbufptr && bufptr[-1] == ',') { char *s; for (s = bufptr; *s && (isALNUM(*s) || strchr("@$%, ",*s)); s++) ; @@ -2980,10 +2979,14 @@ newLOOPEX(I32 type, OP *label) dTHR; OP *o; if (type != OP_GOTO || label->op_type == OP_CONST) { - o = newPVOP(type, 0, savepv( - label->op_type == OP_CONST - ? SvPVx(((SVOP*)label)->op_sv, na) - : "" )); + /* "last()" means "last" */ + if (label->op_type == OP_STUB && (label->op_flags & OPf_PARENS)) + o = newOP(type, OPf_SPECIAL); + else { + o = newPVOP(type, 0, savepv(label->op_type == OP_CONST + ? SvPVx(((SVOP*)label)->op_sv, na) + : "")); + } op_free(label); } else { diff --git a/perly.c b/perly.c index 7117566..bd6bf84 100644 --- a/perly.c +++ b/perly.c @@ -1284,7 +1284,7 @@ int yyerrflag; int yychar; YYSTYPE yyval; YYSTYPE yylval; -#line 632 "perly.y" +#line 633 "perly.y" /* PROGRAM */ #line 1360 "perly.c" #define YYABORT goto yyabort @@ -1999,69 +1999,70 @@ case 113: break; case 114: #line 442 "perly.y" -{ yyval.opval = newBINOP(OP_GELEM, 0, newGVREF(0,yyvsp[-4].opval), yyvsp[-2].opval); } +{ yyval.opval = newBINOP(OP_GELEM, 0, newGVREF(0,yyvsp[-4].opval), + scalar(yyvsp[-2].opval)); } break; case 115: -#line 444 "perly.y" +#line 445 "perly.y" { yyval.opval = yyvsp[0].opval; } break; case 116: -#line 446 "perly.y" +#line 447 "perly.y" { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); } break; case 117: -#line 448 "perly.y" +#line 449 "perly.y" { yyval.opval = newBINOP(OP_AELEM, 0, ref(newAVREF(yyvsp[-4].opval),OP_RV2AV), scalar(yyvsp[-1].opval));} break; case 118: -#line 452 "perly.y" +#line 453 "perly.y" { assertref(yyvsp[-3].opval); yyval.opval = newBINOP(OP_AELEM, 0, ref(newAVREF(yyvsp[-3].opval),OP_RV2AV), scalar(yyvsp[-1].opval));} break; case 119: -#line 456 "perly.y" +#line 457 "perly.y" { yyval.opval = yyvsp[0].opval; } break; case 120: -#line 458 "perly.y" +#line 459 "perly.y" { yyval.opval = yyvsp[0].opval; } break; case 121: -#line 460 "perly.y" +#line 461 "perly.y" { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));} break; case 122: -#line 462 "perly.y" +#line 463 "perly.y" { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval)); expect = XOPERATOR; } break; case 123: -#line 465 "perly.y" +#line 466 "perly.y" { yyval.opval = newBINOP(OP_HELEM, 0, ref(newHVREF(yyvsp[-5].opval),OP_RV2HV), jmaybe(yyvsp[-2].opval)); expect = XOPERATOR; } break; case 124: -#line 470 "perly.y" +#line 471 "perly.y" { assertref(yyvsp[-4].opval); yyval.opval = newBINOP(OP_HELEM, 0, ref(newHVREF(yyvsp[-4].opval),OP_RV2HV), jmaybe(yyvsp[-2].opval)); expect = XOPERATOR; } break; case 125: -#line 475 "perly.y" +#line 476 "perly.y" { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); } break; case 126: -#line 477 "perly.y" +#line 478 "perly.y" { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); } break; case 127: -#line 479 "perly.y" +#line 480 "perly.y" { yyval.opval = prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, @@ -2069,7 +2070,7 @@ case 127: ref(yyvsp[-3].opval, OP_ASLICE))); } break; case 128: -#line 485 "perly.y" +#line 486 "perly.y" { yyval.opval = prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, @@ -2078,37 +2079,37 @@ case 128: expect = XOPERATOR; } break; case 129: -#line 492 "perly.y" +#line 493 "perly.y" { yyval.opval = yyvsp[0].opval; } break; case 130: -#line 494 "perly.y" +#line 495 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); } break; case 131: -#line 496 "perly.y" +#line 497 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); } break; case 132: -#line 498 "perly.y" +#line 499 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); } break; case 133: -#line 501 "perly.y" +#line 502 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); } break; case 134: -#line 504 "perly.y" +#line 505 "perly.y" { yyval.opval = newUNOP(OP_DOFILE, 0, scalar(yyvsp[0].opval)); } break; case 135: -#line 506 "perly.y" +#line 507 "perly.y" { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); } break; case 136: -#line 508 "perly.y" +#line 509 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, prepend_elem(OP_LIST, @@ -2118,7 +2119,7 @@ case 136: )),Nullop)); dep();} break; case 137: -#line 516 "perly.y" +#line 517 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, append_elem(OP_LIST, @@ -2129,161 +2130,161 @@ case 137: )))); dep();} break; case 138: -#line 525 "perly.y" +#line 526 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, prepend_elem(OP_LIST, scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();} break; case 139: -#line 529 "perly.y" +#line 530 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, prepend_elem(OP_LIST, yyvsp[-1].opval, scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();} break; case 140: -#line 534 "perly.y" +#line 535 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar(yyvsp[-3].opval))); } break; case 141: -#line 537 "perly.y" +#line 538 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, yyvsp[-1].opval, newCVREF(0, scalar(yyvsp[-4].opval)))); } break; case 142: -#line 541 "perly.y" +#line 542 "perly.y" { yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL); hints |= HINT_BLOCK_SCOPE; } break; case 143: -#line 544 "perly.y" +#line 545 "perly.y" { yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); } break; case 144: -#line 546 "perly.y" +#line 547 "perly.y" { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); } break; case 145: -#line 548 "perly.y" +#line 549 "perly.y" { yyval.opval = newOP(yyvsp[0].ival, 0); } break; case 146: -#line 550 "perly.y" +#line 551 "perly.y" { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); } break; case 147: -#line 552 "perly.y" +#line 553 "perly.y" { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); } break; case 148: -#line 554 "perly.y" +#line 555 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); } break; case 149: -#line 557 "perly.y" +#line 558 "perly.y" { yyval.opval = newOP(yyvsp[0].ival, 0); } break; case 150: -#line 559 "perly.y" +#line 560 "perly.y" { yyval.opval = newOP(yyvsp[-2].ival, 0); } break; case 151: -#line 561 "perly.y" +#line 562 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[0].opval)); } break; case 152: -#line 564 "perly.y" +#line 565 "perly.y" { yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); } break; case 153: -#line 566 "perly.y" +#line 567 "perly.y" { yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); } break; case 154: -#line 568 "perly.y" +#line 569 "perly.y" { yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); } break; case 155: -#line 570 "perly.y" +#line 571 "perly.y" { yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); } break; case 158: -#line 576 "perly.y" +#line 577 "perly.y" { yyval.opval = Nullop; } break; case 159: -#line 578 "perly.y" +#line 579 "perly.y" { yyval.opval = yyvsp[0].opval; } break; case 160: -#line 582 "perly.y" +#line 583 "perly.y" { yyval.opval = Nullop; } break; case 161: -#line 584 "perly.y" +#line 585 "perly.y" { yyval.opval = yyvsp[0].opval; } break; case 162: -#line 586 "perly.y" +#line 587 "perly.y" { yyval.opval = yyvsp[-1].opval; } break; case 163: -#line 589 "perly.y" +#line 590 "perly.y" { yyval.ival = 0; } break; case 164: -#line 590 "perly.y" +#line 591 "perly.y" { yyval.ival = 1; } break; case 165: -#line 594 "perly.y" +#line 595 "perly.y" { in_my = 0; yyval.opval = my(yyvsp[0].opval); } break; case 166: -#line 598 "perly.y" +#line 599 "perly.y" { yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); } break; case 167: -#line 602 "perly.y" +#line 603 "perly.y" { yyval.opval = newSVREF(yyvsp[0].opval); } break; case 168: -#line 606 "perly.y" +#line 607 "perly.y" { yyval.opval = newAVREF(yyvsp[0].opval); } break; case 169: -#line 610 "perly.y" +#line 611 "perly.y" { yyval.opval = newHVREF(yyvsp[0].opval); } break; case 170: -#line 614 "perly.y" +#line 615 "perly.y" { yyval.opval = newAVREF(yyvsp[0].opval); } break; case 171: -#line 618 "perly.y" +#line 619 "perly.y" { yyval.opval = newGVREF(0,yyvsp[0].opval); } break; case 172: -#line 622 "perly.y" +#line 623 "perly.y" { yyval.opval = scalar(yyvsp[0].opval); } break; case 173: -#line 624 "perly.y" +#line 625 "perly.y" { yyval.opval = scalar(yyvsp[0].opval); } break; case 174: -#line 626 "perly.y" +#line 627 "perly.y" { yyval.opval = scope(yyvsp[0].opval); } break; case 175: -#line 629 "perly.y" +#line 630 "perly.y" { yyval.opval = yyvsp[0].opval; } break; -#line 2272 "perly.c" +#line 2273 "perly.c" } yyssp -= yym; yystate = *yyssp; diff --git a/perly.y b/perly.y index 481a2cc..d007bc0 100644 --- a/perly.y +++ b/perly.y @@ -439,7 +439,8 @@ term : term ASSIGNOP term | scalar %prec '(' { $$ = $1; } | star '{' expr ';' '}' - { $$ = newBINOP(OP_GELEM, 0, newGVREF(0,$1), $3); } + { $$ = newBINOP(OP_GELEM, 0, newGVREF(0,$1), + scalar($3)); } | star %prec '(' { $$ = $1; } | scalar '[' expr ']' %prec '(' diff --git a/sv.c b/sv.c index 61f8ba7..473d17a 100644 --- a/sv.c +++ b/sv.c @@ -1644,7 +1644,7 @@ sv_2pv(register SV *sv, STRLEN *lp) case SVt_PVHV: s = "HASH"; break; case SVt_PVCV: s = "CODE"; break; case SVt_PVGV: s = "GLOB"; break; - case SVt_PVFM: s = "FORMATLINE"; break; + case SVt_PVFM: s = "FORMLINE"; break; case SVt_PVIO: s = "IO"; break; default: s = "UNKNOWN"; break; } diff --git a/t/op/my.t b/t/op/my.t index 06c6963..d439beb 100755 --- a/t/op/my.t +++ b/t/op/my.t @@ -2,7 +2,7 @@ # $RCSfile: my.t,v $ -print "1..28\n"; +print "1..30\n"; sub foo { my($a, $b) = @_; @@ -83,3 +83,11 @@ foreach my $i (26, 27) { print "not " if $i ne "outer"; print "ok 28\n"; + +# Ensure that C (without parens) doesn't force scalar context. +my @x; +{ @x = my @y } +print +(@x ? "not " : ""), "ok 29\n"; +{ @x = my %y } +print +(@x ? "not " : ""), "ok 30\n"; + diff --git a/vms/perly_c.vms b/vms/perly_c.vms index 8495c4d..958fcd9 100644 --- a/vms/perly_c.vms +++ b/vms/perly_c.vms @@ -1285,7 +1285,7 @@ dEXT int yyerrflag; dEXT int yychar; dEXT YYSTYPE yyval; dEXT YYSTYPE yylval; -#line 632 "perly.y" +#line 633 "perly.y" /* PROGRAM */ #line 1360 "perly.c" #define YYABORT goto yyabort @@ -2003,69 +2003,70 @@ case 113: break; case 114: #line 442 "perly.y" -{ yyval.opval = newBINOP(OP_GELEM, 0, newGVREF(0,yyvsp[-4].opval), yyvsp[-2].opval); } +{ yyval.opval = newBINOP(OP_GELEM, 0, newGVREF(0,yyvsp[-4].opval), + scalar(yyvsp[-2].opval)); } break; case 115: -#line 444 "perly.y" +#line 445 "perly.y" { yyval.opval = yyvsp[0].opval; } break; case 116: -#line 446 "perly.y" +#line 447 "perly.y" { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); } break; case 117: -#line 448 "perly.y" +#line 449 "perly.y" { yyval.opval = newBINOP(OP_AELEM, 0, ref(newAVREF(yyvsp[-4].opval),OP_RV2AV), scalar(yyvsp[-1].opval));} break; case 118: -#line 452 "perly.y" +#line 453 "perly.y" { assertref(yyvsp[-3].opval); yyval.opval = newBINOP(OP_AELEM, 0, ref(newAVREF(yyvsp[-3].opval),OP_RV2AV), scalar(yyvsp[-1].opval));} break; case 119: -#line 456 "perly.y" +#line 457 "perly.y" { yyval.opval = yyvsp[0].opval; } break; case 120: -#line 458 "perly.y" +#line 459 "perly.y" { yyval.opval = yyvsp[0].opval; } break; case 121: -#line 460 "perly.y" +#line 461 "perly.y" { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));} break; case 122: -#line 462 "perly.y" +#line 463 "perly.y" { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval)); expect = XOPERATOR; } break; case 123: -#line 465 "perly.y" +#line 466 "perly.y" { yyval.opval = newBINOP(OP_HELEM, 0, ref(newHVREF(yyvsp[-5].opval),OP_RV2HV), jmaybe(yyvsp[-2].opval)); expect = XOPERATOR; } break; case 124: -#line 470 "perly.y" +#line 471 "perly.y" { assertref(yyvsp[-4].opval); yyval.opval = newBINOP(OP_HELEM, 0, ref(newHVREF(yyvsp[-4].opval),OP_RV2HV), jmaybe(yyvsp[-2].opval)); expect = XOPERATOR; } break; case 125: -#line 475 "perly.y" +#line 476 "perly.y" { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); } break; case 126: -#line 477 "perly.y" +#line 478 "perly.y" { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); } break; case 127: -#line 479 "perly.y" +#line 480 "perly.y" { yyval.opval = prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, @@ -2073,7 +2074,7 @@ case 127: ref(yyvsp[-3].opval, OP_ASLICE))); } break; case 128: -#line 485 "perly.y" +#line 486 "perly.y" { yyval.opval = prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, @@ -2082,37 +2083,37 @@ case 128: expect = XOPERATOR; } break; case 129: -#line 492 "perly.y" +#line 493 "perly.y" { yyval.opval = yyvsp[0].opval; } break; case 130: -#line 494 "perly.y" +#line 495 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); } break; case 131: -#line 496 "perly.y" +#line 497 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); } break; case 132: -#line 498 "perly.y" +#line 499 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); } break; case 133: -#line 501 "perly.y" +#line 502 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); } break; case 134: -#line 504 "perly.y" +#line 505 "perly.y" { yyval.opval = newUNOP(OP_DOFILE, 0, scalar(yyvsp[0].opval)); } break; case 135: -#line 506 "perly.y" +#line 507 "perly.y" { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); } break; case 136: -#line 508 "perly.y" +#line 509 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, prepend_elem(OP_LIST, @@ -2122,7 +2123,7 @@ case 136: )),Nullop)); dep();} break; case 137: -#line 516 "perly.y" +#line 517 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, append_elem(OP_LIST, @@ -2133,161 +2134,161 @@ case 137: )))); dep();} break; case 138: -#line 525 "perly.y" +#line 526 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, prepend_elem(OP_LIST, scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();} break; case 139: -#line 529 "perly.y" +#line 530 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, prepend_elem(OP_LIST, yyvsp[-1].opval, scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();} break; case 140: -#line 534 "perly.y" +#line 535 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar(yyvsp[-3].opval))); } break; case 141: -#line 537 "perly.y" +#line 538 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, yyvsp[-1].opval, newCVREF(0, scalar(yyvsp[-4].opval)))); } break; case 142: -#line 541 "perly.y" +#line 542 "perly.y" { yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL); hints |= HINT_BLOCK_SCOPE; } break; case 143: -#line 544 "perly.y" +#line 545 "perly.y" { yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); } break; case 144: -#line 546 "perly.y" +#line 547 "perly.y" { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); } break; case 145: -#line 548 "perly.y" +#line 549 "perly.y" { yyval.opval = newOP(yyvsp[0].ival, 0); } break; case 146: -#line 550 "perly.y" +#line 551 "perly.y" { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); } break; case 147: -#line 552 "perly.y" +#line 553 "perly.y" { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); } break; case 148: -#line 554 "perly.y" +#line 555 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); } break; case 149: -#line 557 "perly.y" +#line 558 "perly.y" { yyval.opval = newOP(yyvsp[0].ival, 0); } break; case 150: -#line 559 "perly.y" +#line 560 "perly.y" { yyval.opval = newOP(yyvsp[-2].ival, 0); } break; case 151: -#line 561 "perly.y" +#line 562 "perly.y" { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[0].opval)); } break; case 152: -#line 564 "perly.y" +#line 565 "perly.y" { yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); } break; case 153: -#line 566 "perly.y" +#line 567 "perly.y" { yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); } break; case 154: -#line 568 "perly.y" +#line 569 "perly.y" { yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); } break; case 155: -#line 570 "perly.y" +#line 571 "perly.y" { yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); } break; case 158: -#line 576 "perly.y" +#line 577 "perly.y" { yyval.opval = Nullop; } break; case 159: -#line 578 "perly.y" +#line 579 "perly.y" { yyval.opval = yyvsp[0].opval; } break; case 160: -#line 582 "perly.y" +#line 583 "perly.y" { yyval.opval = Nullop; } break; case 161: -#line 584 "perly.y" +#line 585 "perly.y" { yyval.opval = yyvsp[0].opval; } break; case 162: -#line 586 "perly.y" +#line 587 "perly.y" { yyval.opval = yyvsp[-1].opval; } break; case 163: -#line 589 "perly.y" +#line 590 "perly.y" { yyval.ival = 0; } break; case 164: -#line 590 "perly.y" +#line 591 "perly.y" { yyval.ival = 1; } break; case 165: -#line 594 "perly.y" +#line 595 "perly.y" { in_my = 0; yyval.opval = my(yyvsp[0].opval); } break; case 166: -#line 598 "perly.y" +#line 599 "perly.y" { yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); } break; case 167: -#line 602 "perly.y" +#line 603 "perly.y" { yyval.opval = newSVREF(yyvsp[0].opval); } break; case 168: -#line 606 "perly.y" +#line 607 "perly.y" { yyval.opval = newAVREF(yyvsp[0].opval); } break; case 169: -#line 610 "perly.y" +#line 611 "perly.y" { yyval.opval = newHVREF(yyvsp[0].opval); } break; case 170: -#line 614 "perly.y" +#line 615 "perly.y" { yyval.opval = newAVREF(yyvsp[0].opval); } break; case 171: -#line 618 "perly.y" +#line 619 "perly.y" { yyval.opval = newGVREF(0,yyvsp[0].opval); } break; case 172: -#line 622 "perly.y" +#line 623 "perly.y" { yyval.opval = scalar(yyvsp[0].opval); } break; case 173: -#line 624 "perly.y" +#line 625 "perly.y" { yyval.opval = scalar(yyvsp[0].opval); } break; case 174: -#line 626 "perly.y" +#line 627 "perly.y" { yyval.opval = scope(yyvsp[0].opval); } break; case 175: -#line 629 "perly.y" +#line 630 "perly.y" { yyval.opval = yyvsp[0].opval; } break; -#line 2272 "perly.c" +#line 2273 "perly.c" } yyssp -= yym; yystate = *yyssp;