chiark / gitweb /
wip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 14 Jan 2019 02:00:04 +0000 (02:00 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 14 Jan 2019 02:00:04 +0000 (02:00 +0000)
Makefile [new file with mode: 0644]
parse-input-graph

diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..ba80604
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,5 @@
+
+o= >$@.tmp && mv -f $@.tmp $@
+
+map.dot: parse-input-graph input-graph
+       ./$^ $o
index f0e799f16c4561998c05dceff53b1465f06cdab5..8d9cdc8ae64d687a4d2492accda1a666f96827b2 100755 (executable)
@@ -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