chiark / gitweb /
moved output code; working on line_endwiring
authorian <ian>
Mon, 21 Mar 2005 01:06:51 +0000 (01:06 +0000)
committerian <ian>
Mon, 21 Mar 2005 01:06:51 +0000 (01:06 +0000)
layout/data2safety

index a9ab5de293efadf49646bd7775029bfbc028bd30..81a8ea5f36619db56756e3c64ac63e1aaa490cf3 100755 (executable)
@@ -65,21 +65,6 @@ sub line_segment () {
 }
 
 sub begin_endwiring () {
-    my ($seg,$segv,$pt,$ptv, $delim);
-    for $seg (keys %segs) {
-       $segv= $segs{$seg};
-       next unless $segv->{FeatCount};
-       o("static const MovFeatInfo mfi_${seg}[]= {");
-       $delim='';
-       for $pt (keys %{ $segv->{Feats} }) {
-           $ptv= $segv->{Feats}{$pt};
-           next if exists $ptv->{Fixed};
-           o("$delim\n");
-           o("  { \"$seg/$pt\", $ptv->{Posns}, $ptv->{Weight} }");
-           $delim=',';
-       }
-       o("\n};\n");
-    }
 }
 
 #      o("static const SegPosCombInfo spci_${seg}[]= {");
@@ -95,6 +80,11 @@ sub line_endwiring () {
        print STDERR "ditching unwired $seg$subspec\n";
        return;
     }
+    for ($end=0; $end<2; $end++) {
+       $ns[$end] =~ m/^([a-z]\w+)\.([01])$;
+       ($node,$side)=($1,$2);
+       if (exists $nodes{$node}
+    }
 }
 
 sub o ($) {
@@ -110,7 +100,6 @@ sub so_oboob ($) {
 }
 
 sub mainread () {
-    o("/* autogenerated - do not edit */\n\n");
     while (<>) {
        next if m/^\#/;
        chomp;
@@ -128,4 +117,24 @@ sub mainread () {
     }
 }
 
+sub writeout () {
+    my ($seg,$segv,$pt,$ptv, $delim);
+    o("/* autogenerated - do not edit */\n\n");
+    for $seg (keys %segs) {
+       $segv= $segs{$seg};
+       next unless $segv->{FeatCount};
+       o("static const MovFeatInfo mfi_${seg}[]= {");
+       $delim='';
+       for $pt (keys %{ $segv->{Feats} }) {
+           $ptv= $segv->{Feats}{$pt};
+           next if exists $ptv->{Fixed};
+           o("$delim\n");
+           o("  { \"$seg/$pt\", $ptv->{Posns}, $ptv->{Weight} }");
+           $delim=',';
+       }
+       o("\n};\n");
+    }
+}
+
 mainread();
+writeout();