From: Gerard Goossen Date: Tue, 8 May 2007 17:42:45 +0000 (+0200) Subject: Give the 'local' declarator a new key, such that 'local our' X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=dde833314f5826ee54c52d1baaca343300ee23fd;p=p5sagit%2Fp5-mst-13.2.git 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 --- diff --git a/mad/Nomad.pm b/mad/Nomad.pm index e425467..4fdd3a8 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 a8cd55d..13fb30e 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 3cdae59..25568e4 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 33b269a..9960c97 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));