Tree datastructures: Difference between revisions
→{{header|Perl 6}}: Break out import into a reusable routine, better escaping of meta characters, better variable names
m (→{{header|zkl}}: remove redundant code) |
Thundergnat (talk | contribs) (→{{header|Perl 6}}: Break out import into a reusable routine, better escaping of meta characters, better variable names) |
||
Line 172:
my $level = ' ';
my $
RosettaCode
encourages
Line 189:
END
sub nested-to-indent { $^str.subst: / ^^ ($($level))* /, -> $/ { "{+$0} " }, :g }
sub indent-to-nested { $^str.subst: / ^^ (\d+) \s* /, -> $/ { "{$level x +$0}" }, :g }
say $
say my $indent = $
say my $nest = $indent.&indent-to-nested;
use Test;
is($
#`(
Line 205:
)
# Import outline paragraph into native data structure
sub import (Str $trees, $level = ' ') {
my $forest;
my $last = -
for
$forest ~= do
given $
when Less { "{']'
}▼
}
}
}
sub esc { $^s.subst( /(<['\\]>)/, -> $/ { "\\$0" }, :g) }
$forest ~= ']' x 1 + $last;
use MONKEY-SEE-NO-EVAL;
$forest.
}
my $forest = import $trees;
say "\nNative data structure:\n", $forest.perl;
|