#!/usr/bin/perl
die "Usage: gri2html file.gri" if ($#ARGV !=0);
open(IN,  "$ARGV[0].gri")   || die "Can't open `$ARGV[0].gri'  for input\n";
open(OUT, ">$ARGV[0].html") || die "Can't open `$ARGV[0].html' for output\n";

print OUT "<html>\n";
print OUT "<head>\n";
print OUT "<title>$ARGV[0].gri</title>\n";
print OUT "</head>\n";
print OUT "<body bgcolor=\"#FFFFFF\">\n";
print OUT "<pre>\n";

while(<IN>) {
    s,<,&lt;,g;
    s,>,&gt;,g;
    s,//(.*),<i>//$1</i>,;
       
    if (/^[ ]*\#/) {
        s,(\#.*),<font color=\#B22222>$1</font>,;
        print OUT "$_";
        next;
    }
    # #Comments
    s,(\#.*),<font color=\#B22222>$1</font>,;

    # \.factor. =
    s,(\\\.[^.]+\. [\+\*/^-]?=),<font color=\#0000EE>$1</font>,;
    # .gulf_emphasisGSL. = 
    s,(\.[^.]+\. [\+\*/^-]?=),<font color=\#0000EE>$1</font>,;
    # \xl = 
    s,(\\[^\\]+ [\+\*/^-]?=),<font color=\#0000EE>$1</font>,;

    # \.factor.
    s,(\\\.[^ .]+\.),<font color=\#CDAD00>$1</font>,g;
    # .factor.
    s,( \.[^ .]+\.),<font color=\#CDAD00>$1</font>,g;
    # ..ysize..
    s,(\.\.[^ .]+\.\.),<font color=\#006400>$1</font>,g;
    # \xl
    s,( \\[^\ ]+),<font color=\#0000EE>$1</font>,g;

    # `newcommand'
    s,^(\`.*\')$,<font color=\#0000EE>$1</font>,;

    # system stuff
       s,system (.*),<font color=\#9400D3>system</font> <font color=\#FF0000>$1</font>,;
    # "strings"
    s,(".*"),<font color=\#2F4F4F>$1</font>,g;

    s,\b(quit|return|if|else( if)?|end (if|while)|break|while|rpn)\b,<font color=\#9400D3>$1</font>,g;

#   s,"(.*)",<u>"$1"</u>,g;
    print OUT "$_";
}
print OUT "</pre>\n";
print OUT "</body>\n";
print OUT "</html>\n";
