#!/usr/local/bin/jperl
# 
# gloss2html: Converter from glossary list (':' separator) to html.
# 
#     Jun.04,'96. OSHIRO Naoki.
# 
#     $Log: ref2html.pl,v $
#
#     [1997/07/01]
#     ・リンクの分離タグからピリオドを外した．
#     ・HREF タグを漢字コードにしても大丈夫だった (Netscape, W3 モードで確認)
#       ので，数字の参照からこちらへ変更．
#     [1997/07/02]
#     ・項目なしのリンク指定を '!!' として行えるようにした．
#       将来項目を書く予定のものを容易に追加できるようにするため．
#     [1997/10/28]
#       command name corrected :-p.
#

$prgname="gloss2html";
$prgver="0.1";

require "/home/grp1/oshiro/bin/forhtml.pl";
require "getopts.pl";
&Getopts("b:");
$bgcolor=" BGCOLOR=\"$opt_b\"" if ($opt_b);

#-----------------------
$_=<>;
&forhtml($_);

#-----------------------
$i=-1;
while (<>) {
    next if /^\s*$/;
    next if /^\s*#/;
    unless (/^([^\s][^:]*)[：:]([^→]*)→?(.*)/) {
	$com[$i].=$_;
	next;
    }
    $i++;
    ($def, $desc, $link)=($1, $2, $3);
    $def[$i]=$def;
    # $def{$1}=$i if ($def=~/(^[^\[（(]+).+/); # コメントアウト [1997/07/01]
    #$def{$def}=$i;
    if (defined($def{$def})) {
      print STDERR "Warning: This definition is already used. [$def]\n";
    }
    $def=~s/(^[^\[（(]+).*/$1/;
    $def{$def}=$def;
    $desc[$i]=$desc;
    $links[$i]=$link;
}
$i++;
$num=$i;

#-----------------------
&print_header($bgcolor);
print "\n";
print "<!-- This document generated by $progname ver.$prgversion. -->\n";
print "\n";
print "<HR>";
print "<A HREF=\"#IndexOfRoboticsGross\">[Index]</A><BR>\n";
print "<HR>\n<P>";
print "<DL>\n";
for ($i=0; $i<$num; $i++) {
    #print "<DT><A NAME=\"$i\">$def[$i]</A>\n";
    $def=$def[$i];
    $def=~s/(^[^\[（(]+).*/$1/;
    print "<DT><A NAME=\"$def\">$def[$i]</A>\n";
    print "<DD>$desc[$i]";
    print "→ " if ($links[$i]);
    @link=split(/\s*[，,]\s*/, $links[$i]);
    $link="";
    foreach $l (@link) {
	if ($l=~s/^!!//) {
		$link.="$l||";
		if (!defined($def{$l})) {
			$def{$l}="!!";
		} else {
			print STDERR "Warning: Link \"$l\" exsist, ";
			print STDERR "but strange specification '!!' detect.\n";
		}
		next;
        }
	if (!defined($def{$l})) {
		print STDERR "Error: Can't find link: \"$l\" for \"$def\".\n";
		$def{$l}="!!";
		$link.="$l||";
		next;
	}
	$link.="<A HREF=\"#$def{$l}\">$l</A>||";
    }
    $link=~s/\|+$//; print $link;
    print "\n";
    if ($com[$i]) {
	print "<BLOCKQUOTE>\n";
	print "$com[$i]";
	print "</BLOCKQUOTE>\n";
    }
    print "<HR>\n";
}
print "</DL>\n";
print "<HR>\n\n";

# 索引出力
print "<H2><A NAME=\"IndexOfRoboticsGross\">Index</A></H2>\n";
print "<OL>\n";
foreach $d (sort(keys(%def))) {
    if ($def{$d} eq "!!") {
	print "<LI>$d\n";
	next;
    }
    print "<LI> <A HREF=\"#$def{$d}\">$d</A>\n";
}    
print "</OL>\n";
print "<HR>\n";

&print_footer;

# major-mode: perl
