From: ian Date: Mon, 21 Mar 2005 01:06:51 +0000 (+0000) Subject: moved output code; working on line_endwiring X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=92498c1542421b28695487d7ece55d008d2844cb;p=trains.git moved output code; working on line_endwiring --- diff --git a/layout/data2safety b/layout/data2safety index a9ab5de..81a8ea5 100755 --- a/layout/data2safety +++ b/layout/data2safety @@ -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();