From c0d43adcff18f4ee39167946bb0b4a6bb29fc51d Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 14 Jan 2019 02:00:04 +0000 Subject: [PATCH] wip --- Makefile | 5 +++++ parse-input-graph | 26 +++++++++++++++++++++----- 2 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ba80604 --- /dev/null +++ b/Makefile @@ -0,0 +1,5 @@ + +o= >$@.tmp && mv -f $@.tmp $@ + +map.dot: parse-input-graph input-graph + ./$^ $o diff --git a/parse-input-graph b/parse-input-graph index f0e799f..8d9cdc8 100755 --- a/parse-input-graph +++ b/parse-input-graph @@ -82,7 +82,7 @@ sub unique_aref ($$) { ." | ".$pr->(@found)." | ?" unless @found==1; my $r = $found[0][0]; - print "resolve $ra -> $adja->{Pattern} = $r\n"; + print STDERR "resolve $ra -> $adja->{Pattern} = $r\n"; return $r; } @@ -110,9 +110,10 @@ sub edges () { foreach my $ra (sort keys %region) { foreach my $adja (@{ $region{$ra}{Adj} }) { my $rb = $adja->{Name}; - my ($r0,$r1) = - $ra lt $rb ? ($ra,$rb) : - $rb lt $ra ? ($rb,$ra) : confess "$ra $rb ?"; + my ($r0,$r1) = sort { + ($a eq 'NZ') <=> ($b eq 'NZ') or + $a cmp $b + } ($ra,$rb); push @{ $edges{$r0}{$r1}{L} }, $adja->{L}; my $e = $edges{$r0}{$r1}; $e->{Dikes} //= $adja->{Dikes}; @@ -128,12 +129,27 @@ sub edges () { $ndikes += $e->{Dikes}; } } - print "total $ndikes dikes\n"; + print STDERR "total $ndikes dikes\n"; +} + +sub o { print @_ or die $!; } + +sub output_dot () { + o "strict graph \"map\" {\n"; + foreach my $r0 (sort keys %edges) { + foreach my $r1 (sort keys %{ $edges{$r0} }) { + my $e = $edges{$r0}{$r1}; + my $r1n = $r1 eq 'NZ' ? "_NZ $r0" : $r1; + o "\"$r0\" -- \"$r1n\";\n"; + } + } + o "}\n"; } read_in(); resolve_arefs(); edges(); +output_dot(); # Local variables: # cperl-indent-level: 2 -- 2.30.2