From dde833314f5826ee54c52d1baaca343300ee23fd Mon Sep 17 00:00:00 2001 From: Gerard Goossen Date: Tue, 8 May 2007 19:42:45 +0200 Subject: Give the 'local' declarator a new key, such that 'local our' declaration don't have multiple 'd' keys. Subject: [PATCH] mad: different key for the locale declarator Message-Id: <20070508171125.GI17043@ostwald> p4raw-id: //depot/perl@31208 --- mad/Nomad.pm | 1 + op.h | 1 + perly.act | 2 +- perly.y | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mad/Nomad.pm b/mad/Nomad.pm index e425467038..4fdd3a89ee 100755 --- a/mad/Nomad.pm +++ b/mad/Nomad.pm @@ -440,6 +440,7 @@ sub newtype { sub madness { my $self = shift; my @keys = split(' ', shift); + @keys = map { $_ eq 'd' ? ('k', 'd') : $_ } @keys; my @vals = (); for my $key (@keys) { my $madprop = $self->{mp}{$key}; diff --git a/op.h b/op.h index a8cd55d787..13fb30ed27 100644 --- a/op.h +++ b/op.h @@ -696,6 +696,7 @@ struct token { * g op was forced to be a word * i if/unless modifier * I if/elsif/unless statement + * k local declarator * K retired kid op * l last index of array ($#foo) * L label diff --git a/perly.act b/perly.act index 3cdae59068..25568e4c6f 100644 --- a/perly.act +++ b/perly.act @@ -1213,7 +1213,7 @@ case 2: case 154: #line 1085 "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'); + TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k'); ;} break; diff --git a/perly.y b/perly.y index 33b269ada1..9960c97319 100644 --- a/perly.y +++ b/perly.y @@ -1083,7 +1083,7 @@ term : termbinop { $$ = $1; } | LOCAL term %prec UNIOP { $$ = localize($2,IVAL($1)); - TOKEN_GETMAD($1,$$,'d'); + TOKEN_GETMAD($1,$$,'k'); } | '(' expr ')' { $$ = sawparens(IF_MAD(newUNOP(OP_NULL,0,$2), $2)); -- cgit v1.2.1