# $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;
$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;
}
}
+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