#
# FILE rosetex.awk
#
# translate ROSE product file into LaTeX format for printing
#
# written: 1992-10-23 <
[email protected]>
# latest update: 1993-05-29
#
# ----------------------------------------------------------------------------
BEGIN {
verb=0;
xverb=-1;
emptyline=0; # number of empty lines suppressed in verbatim env.
args["#erase"]="\\subsection";
argt["#erase"]="Module";
args["#help"]="\\subsection";
argt["#help"]="{\\sl{help}}";
}
# ----------------------------------------------------------------------------
$1=="#section"||$1=="#subsection"||$1=="#subsubsection"||$1=="#paragraph" {
if (verb==1) {
print "\\end{verbatim}\n";
verb=0;
}
nm=substr($0,length($1)+2);
print "\\"substr($1,2)"{"nm"}\n";
if ($1=="#section") {
print "\\def\\LPtopC{"nm"}\n";
print "\\def\\LPtopD{~}\n";
print "\\def\\LPtopF{~}\n";
}
if ($1=="#subsection") {
print "\\def\\LPtopD{"nm"}\n";
print "\\def\\LPtopF{~}\n";
}
if ($1=="#subsubsection") {
print "\\def\\LPtopF{"nm"}\n";
}
next;
}
# ----------------------------------------------------------------------------
$1=="#erase"||$1=="#help" {
if (verb==1) {
print "\\end{verbatim}\n";
verb=0;
}
nm=substr($0,length($1)+2);
gsub("_","\\_",nm);
print args[$1]"{"argt[$1]" {\\tt "nm"}}\n"
print "\\def\\LPtopD{"argt[$1]" {\\tt "nm"}}\n";
print "\\def\\LPtopF{~}\n";
# /* this line needs to be printed too! */
}
# ----------------------------------------------------------------------------
$1=="#end" {
if (verb==1) {
print "\\end{verbatim}\n";
verb=0;
}
next;
}
# ----------------------------------------------------------------------------
$1=="#organize" {
args[$2]=$3;
argt[$2]=$4;
}
# ----------------------------------------------------------------------------
$1=="#verbatim" {
xverb=verb;
verb=2;
next;
}
# ----------------------------------------------------------------------------
$1=="#v" {
print substr($0,4);
next;
}
# ----------------------------------------------------------------------------
$1=="#endverbatim" {
verb=xverb;
next;
}
# ----------------------------------------------------------------------------
verb==0&&$0!=""&&$0!=" " {
print "\\begin{verbatim}"
verb=1;
emptyline=0;
}
# ----------------------------------------------------------------------------
verb==1 {
if ($0==""||$0==" ") {
emptyline++;
} else {
for (; emptyline>0; emptyline--) print ""; # make empty line
print
}
}
# ----------------------------------------------------------------------------
verb==2 { print } # LaTeX section in ROSE product file
# ----------------------------------------------------------------------------
END {
if (verb==1) {
print "\\end{verbatim}\n";
verb=0;
}
}