#!/usr/local/bin/perl -w
# database.p
# reads ascii database entries and creates html
#
# database.p data.asc > data.html
# (done in pub/codes)
#
# comments "#...." are ignored
#
# any lines starting "<" e.g.,
#
" ;
}
sub do_title {
s/^\s*// ;
$code = $_ ;
}
sub do_author {
s/\s*[Aa][Uu]\-\-/ author: | / ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub do_t {
s/\s*[tT]\-\-\s*(.*)/ | t:\t | \t$1/ ;
$t = $1 ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub do_tr {
s/\s*[tT][rR]\-\-\s*(.*)/ | tr:\t | \t$1/ ;
$tr = $1 ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub do_n {
s/\s*[nN]\-\-\s*(.*)/ | N:\t | \t$1/ ;
$N = $1 ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub do_m {
s/\s*[mM]\-\-\s*(.*)/ | M:\t | \t$1/ ;
$M = $1 ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub do_d {
s/\s*[dD]\-\-\s*(.*)/ | d:\t | \t$1/ ;
$d = $1 ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub do_kt {
if ( s/\s*[kK][tT]\-\-\s*(.*)/ | Ktrue:\t | \t$1/ < 1 ) {
print STDERR "failed to do subst of kt in string $_ \n" ;
}
$trueK = $1 ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub do_mt {
s/\s*[mM][tT]\-\-\s*(.*)/ | Mtrue:\t | \t$1/ ;
$trueM = $1 ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub do_r {
s/\s*[rR]\-\-\s*(.*)/ | R:\t | \t$1/ ;
$R = $1 ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub do_k {
s/\s*[Kk]\-\-\s*(.*)/ | K:\t | \t$1/ ;
$K = $1 ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub do_afile {
s/\s*afile\-\-\s*(.*)/ | Alist file:\t | \tparity check matrix<\/a>/ ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub do_gfile {
s/\s*gfile\-\-\s*(.*)/ | Generator matrix:\t | \tbinary file<\/a>/ ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub do_gcps {
s/\s*AWGNps\-\-\s*(.*)/ | Gaussian channel:\t | \tpostscript<\/a>/ ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub do_gcasc {
s/\s*AWGNasc\-\-\s*(.*)/ | Gaussian channel:\t | \tascii<\/a>/ ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub do_created {
s/\s*created\-\-\s*(.*)/ | created:\t | \t$1/ ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub do_comment {
s/\s*comment\-\-\s*(.*)/ | comment:\t | \t$1/ ;
do {
$item .= $_ ;
} while ( &readline() ) ;
$item .= "$endrow" ;
}
sub readline {
$ans = 0 ;
if ( $_ = <> ) {
s/\n// ;
$stillgoing = 1 ;
if ( !( (/^\s*\w+\-\-/) || /^\s*$/ ) ) { $ans = 1 ; } # blank line ends a field
}
else { $stillgoing = 0 ; }
return ( $ans ) ;
}
|