Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,71 @@
|
|||
sub walktree ($data) {
|
||||
my (@parts, $cnt);
|
||||
|
||||
while ($data ~~ m:nth(++$cnt)/$<head>=[(\s*) \N+\n ] # split off one level as 'head' (or terminal 'leaf')
|
||||
$<body>=[[$0 \s+ \N+\n]*]/ ) { # next sub-level is 'body' (defined by extra depth of indentation)
|
||||
|
||||
my ($head, $body) = ($<head>, $<body>);
|
||||
$head ~~ /'|' $<weight>=[\S*] \s* '|' $<coverage>=[\S*]/; # save values of weight and coverage (if any) for later
|
||||
|
||||
my ($w, $wsum) = (0, 0);
|
||||
$head ~= .[0],
|
||||
$w += .[1],
|
||||
$wsum += .[1] * .[2]
|
||||
for walktree $body;
|
||||
|
||||
my $weight = (~$<weight> or 1).fmt('%-8s');
|
||||
my $coverage = $w == 0
|
||||
?? (~$<coverage> or 0).fmt('%-10s')
|
||||
!! ($wsum/$w) .fmt('%-10.2g');
|
||||
@parts.push: [$head.subst(/'|' \N+/, "|$weight|$coverage|"), $weight, $coverage ];
|
||||
}
|
||||
return @parts;
|
||||
}
|
||||
|
||||
(say .[0] for walktree $_) given
|
||||
|
||||