r1939: *** empty log message ***
[ctsim.git] / doc / maphhc.pl
diff --git a/doc/maphhc.pl b/doc/maphhc.pl
new file mode 100755 (executable)
index 0000000..da839d0
--- /dev/null
@@ -0,0 +1,39 @@
+#!/usr/bin/perl -Tw
+
+my $mapfile = "../src/ctsim-map.h";
+my $hhcfile = "ctsim.hhc";
+my $newhhc = "ctsim-new.hhc";
+my %map;
+
+open (MAP, $mapfile) || print "Unable to open map file $mapfile";
+while (<MAP>) {
+    m|^\W*#define\W+IDH_(\w+)\W+(\w+)|;
+    $map{$1} = $2 if ($1 && $2);
+}
+close (MAP);
+
+open(HHC,$hhcfile) || print "Unable to open existing hhc file $hhcfile";
+open(NEWHHC,"> $newhhc") || print "Unable to open new hhc file $newhhc";
+while (<HHC>) {
+    $line=$_;
+    if ($line =~ m|(.*)\#IDH_([A-Za-z_]+)(.*)|) {
+       my $varname=$2;
+       print NEWHHC  $1 . $3 . "\n";
+       if ($map{$2}) {
+           print NEWHHC "<param name=\"ID\" value=\"$map{$2}\">\n";
+       } else {
+           print "Warning: unable to find IDH_$varname in $mapfile";
+       }
+    } else {
+       print NEWHHC $line;
+    }
+
+}
+
+close(HHC);
+close(NEWHHC);
+
+unlink($hhcfile);
+rename($newhhc,$hhcfile);
+
+exit(0);