summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
12bd6ed)
when madskills is active. Remove the p55 code required for dealing
with the optimized tree.
Subject: [PATCH] disable operator with target my when madskills enabled
Message-Id: <
20070419133822.GG19244@ostwald>
also:
Remove the just remove madprop 'M' doc
Message-ID: <
20070419134549.GH19244@ostwald>
p4raw-id: //depot/perl@31204
- push @retval, $self->madness('M ox');
for my $kid (@{$$self{Kids}}) {
push @newkids, $kid->ast($self, @_);
}
for my $kid (@{$$self{Kids}}) {
push @newkids, $kid->ast($self, @_);
}
sub ast {
my $self = shift;
sub ast {
my $self = shift;
- my @newkids = $self->madness('d M ox o (');
+ my @newkids = $self->madness('d o (');
if (exists $$self{Kids}) {
my $arg = $$self{Kids}[0];
if (exists $$self{Kids}) {
my $arg = $$self{Kids}[0];
my $self = shift;
my @newkids;
my $self = shift;
my @newkids;
- push @newkids, $self->madness('M ox');
-
my $left = $$self{Kids}[0];
push @newkids, $left->ast($self, @_);
my $left = $$self{Kids}[0];
push @newkids, $left->ast($self, @_);
my $self = shift;
my @retval;
my $self = shift;
my @retval;
- if (@before = $self->madness('M')) {
- push @before, $self->madness('ox'); # o is the function name
- }
if (@retval = $self->madness('X')) {
if (@retval = $self->madness('X')) {
- push @before, $self->madness('o x');
+ my @before, $self->madness('o x');
return P5AST::listop->new(Kids => [@before,@retval]);
}
return P5AST::listop->new(Kids => [@before,@retval]);
}
push @retval, @newkids;
push @retval, $self->madness('} ] )');
push @retval, @newkids;
push @retval, $self->madness('} ] )');
- return $self->newtype->new(Kids => [@before,@retval,@after]);
+ return $self->newtype->new(Kids => [@retval,@after]);
my $self = shift;
my @newkids;
my $self = shift;
my @newkids;
- my @before;
- if (@before = $self->madness('M')) {
- push @before, $self->madness('ox'); # o is the .
- }
my @after;
my $left = $$self{Kids}[0];
push @newkids, $left->ast($self, @_);
my @after;
my $left = $$self{Kids}[0];
push @newkids, $left->ast($self, @_);
my $parent = $_[0];
my @newkids;
my $parent = $_[0];
my @newkids;
- my @before;
- if (@before = $self->madness('M')) {
- push @before, $self->madness('ox'); # o is the .
- }
my @after;
my $left = $$self{Kids}[0];
push @newkids, $left->ast($self, @_);
my @after;
my $left = $$self{Kids}[0];
push @newkids, $left->ast($self, @_);
my $right = $$self{Kids}[1];
push @newkids, $right->ast($self, @_);
my $right = $$self{Kids}[1];
push @newkids, $right->ast($self, @_);
- return $self->newtype->new(Kids => [@before, @newkids, @after]);
+ return $self->newtype->new(Kids => [@newkids, @after]);
}
package PLXML::op_stringify;
}
package PLXML::op_stringify;
if ((PL_opargs[kid->op_type] & OA_TARGLEX)
&& !(kid->op_flags & OPf_STACKED)
/* Cannot steal the second time! */
if ((PL_opargs[kid->op_type] & OA_TARGLEX)
&& !(kid->op_flags & OPf_STACKED)
/* Cannot steal the second time! */
- && !(kid->op_private & OPpTARGET_MY))
+ && !(kid->op_private & OPpTARGET_MY)
+ /* Keep the full thing for madskills */
+ && !PL_madskills
+ )
{
OP * const kkid = kid->op_sibling;
{
OP * const kkid = kid->op_sibling;
/* Now we do not need PADSV and SASSIGN. */
kid->op_sibling = o->op_sibling; /* NULL */
cLISTOPo->op_first = NULL;
/* Now we do not need PADSV and SASSIGN. */
kid->op_sibling = o->op_sibling; /* NULL */
cLISTOPo->op_first = NULL;
-#ifdef PERL_MAD
- op_getmad(o,kid,'O');
- op_getmad(kkid,kid,'M');
-#else
op_free(o);
op_free(kkid);
op_free(o);
op_free(kkid);
kid->op_private |= OPpTARGET_MY; /* Used for context settings */
return kid;
}
kid->op_private |= OPpTARGET_MY; /* Used for context settings */
return kid;
}
* l last index of array ($#foo)
* L label
* m modifier on regex
* l last index of array ($#foo)
* L label
* m modifier on regex
- * M my assignment slurped into some other operator's target
* n sub or format name
* o current operator/declarator name
* o else/continue
* n sub or format name
* o current operator/declarator name
* o else/continue