#!/usr/bin/perl
$started = 0;
while(<>) {
if (/\\subsubsection{\\func (.*)\((.*)\)}/) {
if ($started) {
close(OUT);
} else {
$started = 1;
}
$name = $1;
$args = $2;
$name =~ s/\\//;
open(OUT, "| fmt >$name.txt") || die "Couldn't open $name.txt: $!\n";
# open(OUT, ">$name.txt") || die "Couldn't open $name.txt: $!\n";
$args =~ s/{\\funcarg(\W*)(\S*)([^}]*)}/$1_$2_$3/g;
$args =~ s/\$//g;
`ln -s $name.txt "$name().txt"`;
print OUT "Function: $name()\n\n";
print OUT "Syntax: $name($args)\n\n";
# print "$name()\n";
} elsif (/\\section{/) {
$started = 0;
} elsif (/\\subsection{/) {
$started = 0;
} elsif (/\\subsubsection{/) {
$started = 0;
} elsif (/\\begin{verbatim|description}/) {
close OUT;
open(OUT, ">>$name");
} elsif (/\\end{verbatim}/) {
close OUT;
open(OUT, "| fmt >>$name.txt");
} elsif ($started) {
s/\\verb\+([^\+]*)\+/$1/g;
s/\\bf {(.*)}/$1/g;
s/{\\tt (.*)}/$1/g;
s/\\item \[(.*)\]/\n_$1_ /g;
s/\\ldots/.../g;
s/{\\keyword (.*)}/$1/g;
s/{\\em (.*)}/\*$1\*/g;
s/{\\funcarg\s*(\S*)\s*}/_$1_/g;
s/{\\func\s*(\S*)\s*}/$1/g;
s/\\(begin|end){(.*)}//g;
s/\\[a-zA-Z]*//g;
print OUT $_;
}
}