Blob Blame History Raw
#! /usr/bin/env perl
#
# This script extracts the text blocks from a source file and creates a
# simple text block out of them.  
# 
# Initially, we will use this to create LaTeX blocks so that the ADI reference
# manual can contain the comments from the example source files adi3.c and
# adi3.h.  
#

use warnings;

$debug = 0;
while (<>) {
    if (/\/\*T([^ ]*)[ ]*\n/) {
	$filename = $1;
	print "Filename = |$filename|\n" if $debug; 
	$filename =~ s/\s*//;
	if ($filename ne "") {
	    open( OUTFILE, ">$filename" ) || die "Could not open $filename\n";
	    $OUTFILE = OUTFILE;
	}
	else {
	    $OUTFILE = STDOUT;
	}
	# Process until we find the matching T*/
        $_=<>;
	if (/Section[ ]*[0-9:]*[ ]*(.*)/) {
	    print $OUTFILE "\\section{$1}\n";
	}
	else {
	    s/^ \*//;
	    if (/[A-Za-z]:[ ]*$/) {
		s/[ ]*(.*):/\\subsection{$1}/g;
	    }
	    s/^.vb/\\begin{verbatim}/g;
	    s/^.ve/\\end{verbatim}/g;
	    s/\'([^\']*)\'/]\texttt{$1}/g;
	    s/\\:/:/g;
	    print $OUTFILE $_;
	}
	while (<>) {
	    if (/T\*\//) { last ; }
	    s/^ \*//;
	    if (/[A-Za-z]:[ ]*$/) {
		s/[ ]*(.*):/\\subsection{$1}/g;
	    }
	    s/^.vb/\\begin{verbatim}/g;
	    s/^.ve/\\end{verbatim}/g;
	    s/\'([^\']*)\'/\\texttt{$1}/g;
	    s/\`([^\`]*)\`/\\emph{$1}/g;
	    s/\\:/:/g;
	    print $OUTFILE $_;
	}
	if ($filename ne "") { close(OUTFILE); }
    }
}