summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cop.h12
-rw-r--r--perly.act318
-rw-r--r--perly.h2
-rw-r--r--perly.tab36
-rw-r--r--perly.y6
-rw-r--r--toke.c2
6 files changed, 185 insertions, 191 deletions
diff --git a/cop.h b/cop.h
index 91f8d45a10..e80f865af4 100644
--- a/cop.h
+++ b/cop.h
@@ -187,20 +187,17 @@ struct cop {
# define CopSTASH_set(c,hv) CopSTASHPV_set(c, (hv) ? HvNAME_get(hv) : NULL)
# define CopSTASH_eq(c,hv) ((hv) && stashpv_hvname_match(c,hv))
# define CopLABEL(c) ((c)->cop_label)
-/* Don't free the original label here, it will be freed by the parser */
-# ifdef NETWARE
-# define CopLABEL_set(c,pv) (CopLABEL(c) = ((pv) ? savepv(pv) : NULL))
-# else
-# define CopLABEL_set(c,pv) (CopLABEL(c) = savesharedpv(pv))
-# endif
+# define CopLABEL_set(c,pv) (CopLABEL(c) = (pv))
# ifdef NETWARE
# define CopSTASH_free(c) SAVECOPSTASH_FREE(c)
# define CopFILE_free(c) SAVECOPFILE_FREE(c)
# define CopLABEL_free(c) SAVECOPLABEL_FREE(c)
+# define CopLABEL_alloc(pv) ((pv)?savepv(pv):NULL)
# else
# define CopSTASH_free(c) PerlMemShared_free(CopSTASHPV(c))
# define CopFILE_free(c) (PerlMemShared_free(CopFILE(c)),(CopFILE(c) = NULL))
# define CopLABEL_free(c) (PerlMemShared_free(CopLABEL(c)),(CopLABEL(c) = NULL))
+# define CopLABEL_alloc(pv) ((pv)?savesharedpv(pv):NULL)
# endif
#else
# define CopFILEGV(c) ((c)->cop_filegv)
@@ -221,10 +218,11 @@ struct cop {
/* cop_stash is not refcounted */
# define CopSTASHPV_set(c,pv) CopSTASH_set((c), gv_stashpv(pv,GV_ADD))
# define CopSTASH_eq(c,hv) (CopSTASH(c) == (hv))
+# define CopLABEL_alloc(pv) ((pv)?savepv(pv):NULL)
# define CopLABEL_set(c,pv) (CopLABEL(c) = (pv))
# define CopSTASH_free(c)
# define CopFILE_free(c) (SvREFCNT_dec(CopFILEGV(c)),(CopFILEGV(c) = NULL))
-# define CopLABEL_free(c)
+# define CopLABEL_free(c) (Safefree(CopLABEL(c)),(CopLABEL(c) = NULL))
#endif /* USE_ITHREADS */
diff --git a/perly.act b/perly.act
index 921df695f2..84809ca852 100644
--- a/perly.act
+++ b/perly.act
@@ -324,8 +324,7 @@ case 2:
#ifdef MAD
forop = newUNOP(OP_NULL, 0, append_elem(OP_LINESEQ,
newSTATEOP(0,
- (((ps[(1) - (12)].val.p_tkval))->tk_lval.pval
- ?savepv(((ps[(1) - (12)].val.p_tkval))->tk_lval.pval):Nullch),
+ CopLABEL_alloc(((ps[(1) - (12)].val.p_tkval))->tk_lval.pval),
((ps[(5) - (12)].val.opval) ? newOP(OP_NULL, 0) : (ps[(5) - (12)].val.opval)) ),
forop));
@@ -338,8 +337,7 @@ case 2:
#else
if ((ps[(5) - (12)].val.opval)) {
forop = append_elem(OP_LINESEQ,
- newSTATEOP(0, ((ps[(1) - (12)].val.p_tkval)?savepv((ps[(1) - (12)].val.p_tkval)):Nullch),
- (ps[(5) - (12)].val.opval)),
+ newSTATEOP(0, CopLABEL_alloc((ps[(1) - (12)].val.p_tkval)), (ps[(5) - (12)].val.opval)),
forop);
}
@@ -349,7 +347,7 @@ case 2:
break;
case 41:
-#line 416 "perly.y"
+#line 414 "perly.y"
{ (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)),
newWHILEOP(0, 1, (LOOP*)Nullop,
NOLINE, Nullop, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval), 0));
@@ -357,7 +355,7 @@ case 2:
break;
case 42:
-#line 424 "perly.y"
+#line 422 "perly.y"
{ PL_copline = (line_t) (ps[(2) - (8)].val.i_tkval);
(yyval.opval) = block_end((ps[(4) - (8)].val.ival),
newSTATEOP(0, PVAL((ps[(1) - (8)].val.p_tkval)),
@@ -366,46 +364,46 @@ case 2:
break;
case 43:
-#line 433 "perly.y"
+#line 431 "perly.y"
{ (yyval.ival) = (PL_min_intro_pending &&
PL_max_intro_pending >= PL_min_intro_pending);
intro_my(); ;}
break;
case 44:
-#line 439 "perly.y"
+#line 437 "perly.y"
{ (yyval.opval) = Nullop; ;}
break;
case 46:
-#line 445 "perly.y"
+#line 443 "perly.y"
{ YYSTYPE tmplval;
(void)scan_num("1", &tmplval);
(yyval.opval) = tmplval.opval; ;}
break;
case 48:
-#line 453 "perly.y"
+#line 451 "perly.y"
{ (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
break;
case 49:
-#line 458 "perly.y"
+#line 456 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
break;
case 50:
-#line 462 "perly.y"
+#line 460 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
break;
case 51:
-#line 466 "perly.y"
+#line 464 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
break;
case 52:
-#line 471 "perly.y"
+#line 469 "perly.y"
{
#ifdef MAD
YYSTYPE tmplval;
@@ -418,44 +416,44 @@ case 2:
break;
case 54:
-#line 485 "perly.y"
+#line 483 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 55:
-#line 487 "perly.y"
+#line 485 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 56:
-#line 489 "perly.y"
+#line 487 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 57:
-#line 491 "perly.y"
+#line 489 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 58:
-#line 493 "perly.y"
+#line 491 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 59:
-#line 498 "perly.y"
+#line 496 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 60:
-#line 502 "perly.y"
+#line 500 "perly.y"
{ (yyval.opval) = newOP(OP_NULL,0);
TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
;}
break;
case 61:
-#line 508 "perly.y"
+#line 506 "perly.y"
{ SvREFCNT_inc(PL_compcv);
#ifdef MAD
(yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
@@ -470,17 +468,17 @@ case 2:
break;
case 62:
-#line 521 "perly.y"
+#line 519 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 63:
-#line 522 "perly.y"
+#line 520 "perly.y"
{ (yyval.opval) = Nullop; ;}
break;
case 64:
-#line 527 "perly.y"
+#line 525 "perly.y"
{ SvREFCNT_inc(PL_compcv);
#ifdef MAD
(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));
@@ -493,7 +491,7 @@ case 2:
break;
case 65:
-#line 540 "perly.y"
+#line 538 "perly.y"
{ SvREFCNT_inc(PL_compcv);
#ifdef MAD
OP* o = newSVOP(OP_ANONCODE, 0,
@@ -514,25 +512,25 @@ case 2:
break;
case 66:
-#line 560 "perly.y"
+#line 558 "perly.y"
{ (yyval.ival) = start_subparse(FALSE, 0);
SAVEFREESV(PL_compcv); ;}
break;
case 67:
-#line 566 "perly.y"
+#line 564 "perly.y"
{ (yyval.ival) = start_subparse(FALSE, CVf_ANON);
SAVEFREESV(PL_compcv); ;}
break;
case 68:
-#line 571 "perly.y"
+#line 569 "perly.y"
{ (yyval.ival) = start_subparse(TRUE, 0);
SAVEFREESV(PL_compcv); ;}
break;
case 69:
-#line 576 "perly.y"
+#line 574 "perly.y"
{ const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
if (strEQ(name, "BEGIN") || strEQ(name, "END")
|| strEQ(name, "INIT") || strEQ(name, "CHECK")
@@ -542,24 +540,24 @@ case 2:
break;
case 70:
-#line 586 "perly.y"
+#line 584 "perly.y"
{ (yyval.opval) = Nullop; ;}
break;
case 72:
-#line 592 "perly.y"
+#line 590 "perly.y"
{ (yyval.opval) = Nullop; ;}
break;
case 73:
-#line 594 "perly.y"
+#line 592 "perly.y"
{ (yyval.opval) = (ps[(2) - (2)].val.opval);
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
;}
break;
case 74:
-#line 598 "perly.y"
+#line 596 "perly.y"
{ (yyval.opval) = IF_MAD(
newOP(OP_NULL, 0),
Nullop
@@ -569,14 +567,14 @@ case 2:
break;
case 75:
-#line 608 "perly.y"
+#line 606 "perly.y"
{ (yyval.opval) = (ps[(2) - (2)].val.opval);
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
;}
break;
case 76:
-#line 612 "perly.y"
+#line 610 "perly.y"
{ (yyval.opval) = IF_MAD(
newOP(OP_NULL, 0),
Nullop
@@ -586,12 +584,12 @@ case 2:
break;
case 77:
-#line 621 "perly.y"
+#line 619 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 78:
-#line 622 "perly.y"
+#line 620 "perly.y"
{ (yyval.opval) = IF_MAD(
newOP(OP_NULL,0),
Nullop
@@ -602,7 +600,7 @@ case 2:
break;
case 79:
-#line 632 "perly.y"
+#line 630 "perly.y"
{
#ifdef MAD
(yyval.opval) = package((ps[(2) - (3)].val.opval));
@@ -616,12 +614,12 @@ case 2:
break;
case 80:
-#line 645 "perly.y"
+#line 643 "perly.y"
{ CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
break;
case 81:
-#line 647 "perly.y"
+#line 645 "perly.y"
{ SvREFCNT_inc(PL_compcv);
#ifdef MAD
(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));
@@ -637,28 +635,28 @@ case 2:
break;
case 82:
-#line 663 "perly.y"
+#line 661 "perly.y"
{ (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 83:
-#line 667 "perly.y"
+#line 665 "perly.y"
{ (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 84:
-#line 671 "perly.y"
+#line 669 "perly.y"
{ (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 86:
-#line 679 "perly.y"
+#line 677 "perly.y"
{
#ifdef MAD
OP* op = newNULLLIST();
@@ -671,7 +669,7 @@ case 2:
break;
case 87:
-#line 689 "perly.y"
+#line 687 "perly.y"
{
OP* term = (ps[(3) - (3)].val.opval);
DO_MAD(
@@ -683,7 +681,7 @@ case 2:
break;
case 89:
-#line 702 "perly.y"
+#line 700 "perly.y"
{ (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
@@ -691,7 +689,7 @@ case 2:
break;
case 90:
-#line 707 "perly.y"
+#line 705 "perly.y"
{ (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
@@ -701,7 +699,7 @@ case 2:
break;
case 91:
-#line 714 "perly.y"
+#line 712 "perly.y"
{ (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
@@ -713,7 +711,7 @@ case 2:
break;
case 92:
-#line 723 "perly.y"
+#line 721 "perly.y"
{ (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
@@ -722,7 +720,7 @@ case 2:
break;
case 93:
-#line 729 "perly.y"
+#line 727 "perly.y"
{ (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
@@ -731,7 +729,7 @@ case 2:
break;
case 94:
-#line 735 "perly.y"
+#line 733 "perly.y"
{ (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
@@ -742,14 +740,14 @@ case 2:
break;
case 95:
-#line 743 "perly.y"
+#line 741 "perly.y"
{ (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 96:
-#line 747 "perly.y"
+#line 745 "perly.y"
{ (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
@@ -758,13 +756,13 @@ case 2:
break;
case 97:
-#line 753 "perly.y"
+#line 751 "perly.y"
{ SvREFCNT_inc(PL_compcv);
(yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, Nullop, (ps[(3) - (3)].val.opval)); ;}
break;
case 98:
-#line 756 "perly.y"
+#line 754 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
@@ -772,7 +770,7 @@ case 2:
break;
case 101:
-#line 771 "perly.y"
+#line 769 "perly.y"
{ (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
PL_expect = XOPERATOR;
TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
@@ -782,7 +780,7 @@ case 2:
break;
case 102:
-#line 778 "perly.y"
+#line 776 "perly.y"
{ (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
@@ -790,7 +788,7 @@ case 2:
break;
case 103:
-#line 783 "perly.y"
+#line 781 "perly.y"
{ (yyval.opval) = newBINOP(OP_AELEM, 0,
ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
scalar((ps[(4) - (5)].val.opval)));
@@ -801,7 +799,7 @@ case 2:
break;
case 104:
-#line 791 "perly.y"
+#line 789 "perly.y"
{ (yyval.opval) = newBINOP(OP_AELEM, 0,
ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
scalar((ps[(3) - (4)].val.opval)));
@@ -811,7 +809,7 @@ case 2:
break;
case 105:
-#line 798 "perly.y"
+#line 796 "perly.y"
{ (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
PL_expect = XOPERATOR;
TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
@@ -821,7 +819,7 @@ case 2:
break;
case 106:
-#line 805 "perly.y"
+#line 803 "perly.y"
{ (yyval.opval) = newBINOP(OP_HELEM, 0,
ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
jmaybe((ps[(4) - (6)].val.opval)));
@@ -834,7 +832,7 @@ case 2:
break;
case 107:
-#line 815 "perly.y"
+#line 813 "perly.y"
{ (yyval.opval) = newBINOP(OP_HELEM, 0,
ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
jmaybe((ps[(3) - (5)].val.opval)));
@@ -846,7 +844,7 @@ case 2:
break;
case 108:
-#line 824 "perly.y"
+#line 822 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
@@ -856,7 +854,7 @@ case 2:
break;
case 109:
-#line 831 "perly.y"
+#line 829 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
@@ -867,7 +865,7 @@ case 2:
break;
case 110:
-#line 840 "perly.y"
+#line 838 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
@@ -877,7 +875,7 @@ case 2:
break;
case 111:
-#line 847 "perly.y"
+#line 845 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
@@ -886,7 +884,7 @@ case 2:
break;
case 112:
-#line 853 "perly.y"
+#line 851 "perly.y"
{ (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
@@ -896,7 +894,7 @@ case 2:
break;
case 113:
-#line 860 "perly.y"
+#line 858 "perly.y"
{ (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), Nullop);
TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
@@ -906,21 +904,21 @@ case 2:
break;
case 114:
-#line 870 "perly.y"
+#line 868 "perly.y"
{ (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 115:
-#line 874 "perly.y"
+#line 872 "perly.y"
{ (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 116:
-#line 878 "perly.y"
+#line 876 "perly.y"
{ if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
scalar((ps[(1) - (3)].val.opval));
(yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
@@ -929,49 +927,49 @@ case 2:
break;
case 117:
-#line 884 "perly.y"
+#line 882 "perly.y"
{ (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 118:
-#line 888 "perly.y"
+#line 886 "perly.y"
{ (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 119:
-#line 892 "perly.y"
+#line 890 "perly.y"
{ (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 120:
-#line 896 "perly.y"
+#line 894 "perly.y"
{ (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 121:
-#line 900 "perly.y"
+#line 898 "perly.y"
{ (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 122:
-#line 904 "perly.y"
+#line 902 "perly.y"
{ (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 123:
-#line 908 "perly.y"
+#line 906 "perly.y"
{
(yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
DO_MAD(
@@ -986,28 +984,28 @@ case 2:
break;
case 124:
-#line 920 "perly.y"
+#line 918 "perly.y"
{ (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 125:
-#line 924 "perly.y"
+#line 922 "perly.y"
{ (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 126:
-#line 928 "perly.y"
+#line 926 "perly.y"
{ (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 127:
-#line 932 "perly.y"
+#line 930 "perly.y"
{ (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
((yyval.opval)->op_type == OP_NOT
@@ -1017,14 +1015,14 @@ case 2:
break;
case 128:
-#line 942 "perly.y"
+#line 940 "perly.y"
{ (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 129:
-#line 946 "perly.y"
+#line 944 "perly.y"
{ (yyval.opval) = IF_MAD(
newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
(ps[(2) - (2)].val.opval)
@@ -1034,21 +1032,21 @@ case 2:
break;
case 130:
-#line 953 "perly.y"
+#line 951 "perly.y"
{ (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 131:
-#line 957 "perly.y"
+#line 955 "perly.y"
{ (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 132:
-#line 961 "perly.y"
+#line 959 "perly.y"
{ (yyval.opval) = newUNOP(OP_POSTINC, 0,
mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
@@ -1056,7 +1054,7 @@ case 2:
break;
case 133:
-#line 966 "perly.y"
+#line 964 "perly.y"
{ (yyval.opval) = newUNOP(OP_POSTDEC, 0,
mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
@@ -1064,7 +1062,7 @@ case 2:
break;
case 134:
-#line 971 "perly.y"
+#line 969 "perly.y"
{ (yyval.opval) = newUNOP(OP_PREINC, 0,
mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
@@ -1072,7 +1070,7 @@ case 2:
break;
case 135:
-#line 976 "perly.y"
+#line 974 "perly.y"
{ (yyval.opval) = newUNOP(OP_PREDEC, 0,
mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
@@ -1080,7 +1078,7 @@ case 2:
break;
case 136:
-#line 985 "perly.y"
+#line 983 "perly.y"
{ (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
@@ -1088,7 +1086,7 @@ case 2:
break;
case 137:
-#line 990 "perly.y"
+#line 988 "perly.y"
{ (yyval.opval) = newANONLIST(Nullop);
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
@@ -1096,7 +1094,7 @@ case 2:
break;
case 138:
-#line 995 "perly.y"
+#line 993 "perly.y"
{ (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
@@ -1105,7 +1103,7 @@ case 2:
break;
case 139:
-#line 1001 "perly.y"
+#line 999 "perly.y"
{ (yyval.opval) = newANONHASH(Nullop);
TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
@@ -1114,7 +1112,7 @@ case 2:
break;
case 140:
-#line 1007 "perly.y"
+#line 1005 "perly.y"
{ SvREFCNT_inc(PL_compcv);
(yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
@@ -1124,21 +1122,21 @@ case 2:
break;
case 141:
-#line 1018 "perly.y"
+#line 1016 "perly.y"
{ (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 142:
-#line 1022 "perly.y"
+#line 1020 "perly.y"
{ (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
;}
break;
case 143:
-#line 1026 "perly.y"
+#line 1024 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
prepend_elem(OP_LIST,
@@ -1153,7 +1151,7 @@ case 2:
break;
case 144:
-#line 1038 "perly.y"
+#line 1036 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
append_elem(OP_LIST,
@@ -1169,7 +1167,7 @@ case 2:
break;
case 145:
-#line 1051 "perly.y"
+#line 1049 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
prepend_elem(OP_LIST,
scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), Nullop)); dep();
@@ -1180,7 +1178,7 @@ case 2:
break;
case 146:
-#line 1059 "perly.y"
+#line 1057 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
prepend_elem(OP_LIST,
(ps[(4) - (5)].val.opval),
@@ -1192,7 +1190,7 @@ case 2:
break;
case 151:
-#line 1075 "perly.y"
+#line 1073 "perly.y"
{ (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
@@ -1200,26 +1198,26 @@ case 2:
break;
case 152:
-#line 1080 "perly.y"
+#line 1078 "perly.y"
{ (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 153:
-#line 1084 "perly.y"
+#line 1082 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 154:
-#line 1086 "perly.y"
+#line 1084 "perly.y"
{ (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
;}
break;
case 155:
-#line 1090 "perly.y"
+#line 1088 "perly.y"
{ (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
@@ -1227,7 +1225,7 @@ case 2:
break;
case 156:
-#line 1095 "perly.y"
+#line 1093 "perly.y"
{ (yyval.opval) = sawparens(newNULLLIST());
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
@@ -1235,37 +1233,37 @@ case 2:
break;
case 157:
-#line 1100 "perly.y"
+#line 1098 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 158:
-#line 1102 "perly.y"
+#line 1100 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 159:
-#line 1104 "perly.y"
+#line 1102 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 160:
-#line 1106 "perly.y"
+#line 1104 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 161:
-#line 1108 "perly.y"
+#line 1106 "perly.y"
{ (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
break;
case 162:
-#line 1110 "perly.y"
+#line 1108 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 163:
-#line 1112 "perly.y"
+#line 1110 "perly.y"
{ (yyval.opval) = prepend_elem(OP_ASLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_ASLICE, 0,
@@ -1277,7 +1275,7 @@ case 2:
break;
case 164:
-#line 1121 "perly.y"
+#line 1119 "perly.y"
{ (yyval.opval) = prepend_elem(OP_HSLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_HSLICE, 0,
@@ -1291,17 +1289,17 @@ case 2:
break;
case 165:
-#line 1132 "perly.y"
+#line 1130 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 166:
-#line 1134 "perly.y"
+#line 1132 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
break;
case 167:
-#line 1136 "perly.y"
+#line 1134 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
@@ -1309,7 +1307,7 @@ case 2:
break;
case 168:
-#line 1141 "perly.y"
+#line 1139 "perly.y"
{
(yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
@@ -1325,7 +1323,7 @@ case 2:
break;
case 169:
-#line 1154 "perly.y"
+#line 1152 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
@@ -1333,7 +1331,7 @@ case 2:
break;
case 170:
-#line 1159 "perly.y"
+#line 1157 "perly.y"
{ (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
PL_hints |= HINT_BLOCK_SCOPE;
TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
@@ -1341,70 +1339,70 @@ case 2:
break;
case 171:
-#line 1164 "perly.y"
+#line 1162 "perly.y"
{ (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 172:
-#line 1168 "perly.y"
+#line 1166 "perly.y"
{ (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 173:
-#line 1172 "perly.y"
+#line 1170 "perly.y"
{ (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 174:
-#line 1176 "perly.y"
+#line 1174 "perly.y"
{ (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 175:
-#line 1180 "perly.y"
+#line 1178 "perly.y"
{ (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 176:
-#line 1184 "perly.y"
+#line 1182 "perly.y"
{ (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0); ;}
break;
case 177:
-#line 1186 "perly.y"
+#line 1184 "perly.y"
{ (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); ;}
break;
case 178:
-#line 1188 "perly.y"
+#line 1186 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
break;
case 179:
-#line 1190 "perly.y"
+#line 1188 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
break;
case 180:
-#line 1193 "perly.y"
+#line 1191 "perly.y"
{ (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 181:
-#line 1197 "perly.y"
+#line 1195 "perly.y"
{ (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
@@ -1413,13 +1411,13 @@ case 2:
break;
case 182:
-#line 1203 "perly.y"
+#line 1201 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
scalar((ps[(1) - (1)].val.opval))); ;}
break;
case 183:
-#line 1206 "perly.y"
+#line 1204 "perly.y"
{ (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
: newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
@@ -1431,7 +1429,7 @@ case 2:
break;
case 184:
-#line 1215 "perly.y"
+#line 1213 "perly.y"
{ (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
@@ -1440,7 +1438,7 @@ case 2:
break;
case 185:
-#line 1221 "perly.y"
+#line 1219 "perly.y"
{ (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
@@ -1448,7 +1446,7 @@ case 2:
break;
case 188:
-#line 1231 "perly.y"
+#line 1229 "perly.y"
{ (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
DO_MAD(
token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
@@ -1459,14 +1457,14 @@ case 2:
break;
case 189:
-#line 1239 "perly.y"
+#line 1237 "perly.y"
{ (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
;}
break;
case 190:
-#line 1246 "perly.y"
+#line 1244 "perly.y"
{ (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
@@ -1474,7 +1472,7 @@ case 2:
break;
case 191:
-#line 1251 "perly.y"
+#line 1249 "perly.y"
{ (yyval.opval) = sawparens(newNULLLIST());
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
@@ -1482,42 +1480,42 @@ case 2:
break;
case 192:
-#line 1256 "perly.y"
+#line 1254 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 193:
-#line 1258 "perly.y"
+#line 1256 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 194:
-#line 1260 "perly.y"
+#line 1258 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 195:
-#line 1265 "perly.y"
+#line 1263 "perly.y"
{ (yyval.opval) = Nullop; ;}
break;
case 196:
-#line 1267 "perly.y"
+#line 1265 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 197:
-#line 1271 "perly.y"
+#line 1269 "perly.y"
{ (yyval.opval) = Nullop; ;}
break;
case 198:
-#line 1273 "perly.y"
+#line 1271 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 199:
-#line 1275 "perly.y"
+#line 1273 "perly.y"
{
#ifdef MAD
OP* op = newNULLLIST();
@@ -1531,69 +1529,69 @@ case 2:
break;
case 200:
-#line 1290 "perly.y"
+#line 1288 "perly.y"
{ PL_in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
break;
case 201:
-#line 1294 "perly.y"
+#line 1292 "perly.y"
{ (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
;}
break;
case 202:
-#line 1300 "perly.y"
+#line 1298 "perly.y"
{ (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
;}
break;
case 203:
-#line 1306 "perly.y"
+#line 1304 "perly.y"
{ (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
;}
break;
case 204:
-#line 1312 "perly.y"
+#line 1310 "perly.y"
{ (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
;}
break;
case 205:
-#line 1318 "perly.y"
+#line 1316 "perly.y"
{ (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
;}
break;
case 206:
-#line 1324 "perly.y"
+#line 1322 "perly.y"
{ (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
;}
break;
case 207:
-#line 1331 "perly.y"
+#line 1329 "perly.y"
{ (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
break;
case 208:
-#line 1333 "perly.y"
+#line 1331 "perly.y"
{ (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
break;
case 209:
-#line 1335 "perly.y"
+#line 1333 "perly.y"
{ (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
break;
case 210:
-#line 1338 "perly.y"
+#line 1336 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
diff --git a/perly.h b/perly.h
index 73dc4b842c..f442416599 100644
--- a/perly.h
+++ b/perly.h
@@ -203,7 +203,7 @@ typedef union YYSTYPE
TOKEN* tkval;
#endif
}
-/* Line 1529 of yacc.c. */
+/* Line 1489 of yacc.c. */
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
diff --git a/perly.tab b/perly.tab
index d8d672b85a..f37693825a 100644
--- a/perly.tab
+++ b/perly.tab
@@ -171,24 +171,24 @@ static const yytype_uint16 yyrline[] =
183, 184, 191, 200, 203, 204, 206, 208, 225, 244,
246, 248, 252, 256, 260, 264, 273, 274, 278, 289,
297, 308, 311, 317, 318, 325, 338, 350, 361, 371,
- 381, 415, 423, 433, 439, 440, 445, 448, 452, 457,
- 461, 465, 471, 480, 484, 486, 488, 490, 492, 497,
- 501, 507, 521, 522, 526, 539, 560, 566, 571, 576,
- 586, 587, 592, 593, 597, 607, 611, 621, 622, 631,
- 645, 644, 662, 666, 670, 674, 678, 688, 697, 701,
- 706, 713, 722, 728, 734, 742, 746, 753, 752, 763,
- 764, 768, 777, 782, 790, 797, 804, 814, 823, 830,
- 839, 846, 852, 859, 869, 873, 877, 883, 887, 891,
- 895, 899, 903, 907, 919, 923, 927, 931, 941, 945,
- 952, 956, 960, 965, 970, 975, 984, 989, 994, 1000,
- 1006, 1017, 1021, 1025, 1037, 1050, 1058, 1070, 1071, 1072,
- 1073, 1074, 1079, 1083, 1085, 1089, 1094, 1099, 1101, 1103,
- 1105, 1107, 1109, 1111, 1120, 1131, 1133, 1135, 1140, 1153,
- 1158, 1163, 1167, 1171, 1175, 1179, 1183, 1185, 1187, 1189,
- 1192, 1196, 1202, 1205, 1214, 1220, 1225, 1226, 1230, 1238,
- 1245, 1250, 1255, 1257, 1259, 1264, 1266, 1271, 1272, 1274,
- 1289, 1293, 1299, 1305, 1311, 1317, 1323, 1330, 1332, 1334,
- 1337
+ 381, 413, 421, 431, 437, 438, 443, 446, 450, 455,
+ 459, 463, 469, 478, 482, 484, 486, 488, 490, 495,
+ 499, 505, 519, 520, 524, 537, 558, 564, 569, 574,
+ 584, 585, 590, 591, 595, 605, 609, 619, 620, 629,
+ 643, 642, 660, 664, 668, 672, 676, 686, 695, 699,
+ 704, 711, 720, 726, 732, 740, 744, 751, 750, 761,
+ 762, 766, 775, 780, 788, 795, 802, 812, 821, 828,
+ 837, 844, 850, 857, 867, 871, 875, 881, 885, 889,
+ 893, 897, 901, 905, 917, 921, 925, 929, 939, 943,
+ 950, 954, 958, 963, 968, 973, 982, 987, 992, 998,
+ 1004, 1015, 1019, 1023, 1035, 1048, 1056, 1068, 1069, 1070,
+ 1071, 1072, 1077, 1081, 1083, 1087, 1092, 1097, 1099, 1101,
+ 1103, 1105, 1107, 1109, 1118, 1129, 1131, 1133, 1138, 1151,
+ 1156, 1161, 1165, 1169, 1173, 1177, 1181, 1183, 1185, 1187,
+ 1190, 1194, 1200, 1203, 1212, 1218, 1223, 1224, 1228, 1236,
+ 1243, 1248, 1253, 1255, 1257, 1262, 1264, 1269, 1270, 1272,
+ 1287, 1291, 1297, 1303, 1309, 1315, 1321, 1328, 1330, 1332,
+ 1335
};
#endif
diff --git a/perly.y b/perly.y
index e4515da2a2..a1f23ab7ce 100644
--- a/perly.y
+++ b/perly.y
@@ -390,8 +390,7 @@ loop : label WHILE '(' remember texpr ')' mintro mblock cont
#ifdef MAD
forop = newUNOP(OP_NULL, 0, append_elem(OP_LINESEQ,
newSTATEOP(0,
- (($1)->tk_lval.pval
- ?savepv(($1)->tk_lval.pval):Nullch),
+ CopLABEL_alloc(($1)->tk_lval.pval),
($5 ? newOP(OP_NULL, 0) : $5) ),
forop));
@@ -404,8 +403,7 @@ loop : label WHILE '(' remember texpr ')' mintro mblock cont
#else
if ($5) {
forop = append_elem(OP_LINESEQ,
- newSTATEOP(0, ($1?savepv($1):Nullch),
- $5),
+ newSTATEOP(0, CopLABEL_alloc($1), $5),
forop);
}
diff --git a/toke.c b/toke.c
index 32edd1da50..89d8f0b532 100644
--- a/toke.c
+++ b/toke.c
@@ -5093,7 +5093,7 @@ Perl_yylex(pTHX)
if (!tmp && PL_expect == XSTATE
&& d < PL_bufend && *d == ':' && *(d + 1) != ':') {
s = d + 1;
- yylval.pval = savepv(PL_tokenbuf);
+ yylval.pval = CopLABEL_alloc(PL_tokenbuf);
CLINE;
TOKEN(LABEL);
}