From c23c5d8e43a5a02102d33ea5439fdbd156bf6735 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 14 Jan 2019 01:39:12 +0000 Subject: [PATCH] wip --- parse-input-graph | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/parse-input-graph b/parse-input-graph index 8d0c8c6..c44c56c 100755 --- a/parse-input-graph +++ b/parse-input-graph @@ -14,6 +14,10 @@ our %region; # $region{NAME}{Adj}[]{Dikes} # $region{NAME}{Adj}[]{L} +our %edges; +# $edges{EARLIER}{LATER}{Dikes} +# $edges{EARLIER}{LATER}{L}[] + sub read_in () { my $ccolour; my $cregion; @@ -35,8 +39,8 @@ sub read_in () { $cregion = $name; next; } - if (my ($aref, $adykes) = m{^\t\t(\S.*[A-Za-z.])(?: (\+\+?))?$}) { - my $adj = { Dykes => length $adykes, L => $. }; + if (my ($aref, $adikes) = m{^\t\t(\S.*[A-Za-z.])(?: (\+\+?))?$}) { + my $adj = { Dikes => length $adikes, L => $. }; if ($aref =~ m{\.}) { $adj->{Pattern} = $aref; $aref =~ s{\-}{[^- ]*-}g; @@ -102,8 +106,25 @@ sub resolve_arefs () { } } +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 ?"; + push @{ $edges{$r0}{$r1}{L} }, $adja->{L}; + my $e = $edges{$r0}{$r1}; + $e->{Dikes} //= $adja->{Dikes}; + confess "$r0 $r1 $e->{L} $e->{Dikes} $adja->{Dikes} ?" + unless $e->{Dikes} == $adja->{Dikes}; + } + } +} + read_in(); resolve_arefs(); +edges(); # Local variables: # cperl-indent-level: 2 -- 2.30.2