This is a live mirror of the Perl 5 development currently hosted at
https://github.com/perl/perl5
https://perl5.git.perl.org
/
perl5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
perlhist for 5.19.0
[perl5.git]
/
mad
/
Nomad.pm
diff --git
a/mad/Nomad.pm
b/mad/Nomad.pm
old mode 100755
(executable)
new mode 100644
(file)
index
c20d8b4
..
eaac474
--- a/
mad/Nomad.pm
+++ b/
mad/Nomad.pm
@@
-440,6
+440,7
@@
sub newtype {
sub madness {
my $self = shift;
my @keys = split(' ', shift);
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};
my @vals = ();
for my $key (@keys) {
my $madprop = $self->{mp}{$key};
@@
-519,13
+520,8
@@
sub hash {
for my $kid (@{$$self{Kids}}) {
my ($k,$v) = $kid->pair($self, @_);
$firstthing ||= $k;
for my $kid (@{$$self{Kids}}) {
my ($k,$v) = $kid->pair($self, @_);
$firstthing ||= $k;
- if ($k =~ /^[_#]$/) { # rekey whitespace according to preceding entry
- $k .= $lastthing; # (which is actually the token the whitespace is before)
- }
- else {
- $k .= 'x' while exists $hash{$k};
- $lastthing = $k;
- }
+ $k .= 'x' while exists $hash{$k};
+ $lastthing = $k;
$hash{$k} = $v;
}
$hash{FIRST} = $firstthing;
$hash{$k} = $v;
}
$hash{FIRST} = $firstthing;
@@
-678,7
+674,7
@@
sub ast {
return P5AST::listop->new(Kids => [@before,@retval]);
}
return P5AST::listop->new(Kids => [@before,@retval]);
}
- push @retval, $self->madness('o ( [ {');
+ push @retval, $self->madness('o
d
( [ {');
my @newkids;
for my $kid (@{$$self{Kids}}) {
my @newkids;
for my $kid (@{$$self{Kids}}) {
@@
-1687,7
+1683,10
@@
sub ast {
if ($rfirst[-1]->uni ne $llast[-1]->uni) {
push @newkids, @rfirst;
}
if ($rfirst[-1]->uni ne $llast[-1]->uni) {
push @newkids, @rfirst;
}
-
+ # remove the fake '\n' if /e and '#' in replacement.
+ if (@mods and $mods[0] =~ m/e/ and ($self->madness('R'))[0]->uni =~ m/#/) {
+ unshift @rlast, bless {}, 'chomp'; # hack to remove '\n'
+ }
push @newkids, $bits->{repl}, @rlast, @mods;
my $retval = $self->newtype->new(Kids => [@newkids]);
push @newkids, $bits->{repl}, @rlast, @mods;
my $retval = $self->newtype->new(Kids => [@newkids]);
@@
-2199,16
+2198,6
@@
sub ast {
package PLXML::op_unpack;
package PLXML::op_pack;
package PLXML::op_split;
package PLXML::op_unpack;
package PLXML::op_pack;
package PLXML::op_split;
-
-sub ast {
- my $self = shift;
- my $results = $self->SUPER::ast(@_);
- if (my @dest = $self->madness('R')) {
- return PLXML::op_aassign->newtype->new(Kids => [@dest, $self->madness('ox'), $results]);
- }
- return $results;
-}
-
package PLXML::op_join;
package PLXML::op_list;
package PLXML::op_join;
package PLXML::op_list;
@@
-2849,6
+2838,7
@@
package PLXML::op_enterwrite;
package PLXML::op_leavewrite;
package PLXML::op_prtf;
package PLXML::op_print;
package PLXML::op_leavewrite;
package PLXML::op_prtf;
package PLXML::op_print;
+package PLXML::op_say;
package PLXML::op_sysopen;
package PLXML::op_sysseek;
package PLXML::op_sysread;
package PLXML::op_sysopen;
package PLXML::op_sysseek;
package PLXML::op_sysread;