www.pudn.com > ilib > h2html.pl, change:1999-11-30,size:3920b


#!/usr/local/bin/perl
#
# h2html.pl
#
# Image library
#
# Description:
#	Create HTML documentation from a C include file.
#
# History:
#	29-Nov-99	Craig Knudsen	cknudsen@radix.net
#			Updated to show prototype
#	20-Aug-99	Craig Knudsen	cknudsen@radix.net
#			Misc. bug fix
#	19-Jul-99	Craig Knudsen	cknudsen@radix.net
#			Modified for nicer looking output.
#	29-May-96	Craig Knudsen	cknudsen@radix.net
#			Created
#
#######################################################################


sub print_function {
  $out{$name} = "

$name

\n"; $out{$name} .= "$ret_type $name ( $args )

\n"; $out{$name} .= "$description

\n" if ( defined ( $description ) ); $out{$name} .= "Returns: $ret_type

\n" . "Input Parameters:
\n

\n"; if ( $i < $num_vars ) { $out{$name} .= "Output Parameters:
\n

\n"; } } $line = 1; $functions_found; while ( <> ) { chop; $line++; if ( /Description:/ ) { $in_info = 1; } elsif ( /History:/ ) { $in_info = 0; } elsif ( $in_info ) { if ( /\*\s+/ ) { $info .= " " if length ( $info ); $info .= $'; } } elsif ( ! $functions_found ) { if ( /^\*\* Functions/ ) { $functions_found = 1; } else { next; } } elsif ( /^([^\*]\S+)\s+(\S+)\s+\(/ ) { # start of a function. $name = $2; $ret_type = $1; if ( $name =~ /^\*/ ) { $name = $'; $ret_type .= " *"; } $name =~ s/^_//; $num_vars = 0; $num_ivars = 0; } elsif ( defined ( $name ) ) { if ( /^\s+(\S.*)\s+\/\*\s*(\S.*)\s*\*\// ) { $vars[$num_vars] = $1; $comments[$num_vars] = $2; if ( $comments[$num_vars] =~ /^out: / ) { $comments[$num_vars] =~ s/^out:\s*//;; } else { $num_ivars++; } $vars[$num_vars] =~ s/[\s,]+$//; $args .= ", " if ( $args ne "" ); $args .= $vars[$num_vars]; $num_vars++; } elsif ( /^\);/ ) { &print_function; undef ( $name ); undef ( @vars ); undef ( @comments ); undef ( $description ); undef ( $args ); } elsif ( /\s+\/\*\s*(\S.*)\s*\*\// ) { if ( $num_vars <= 0 ) { print "ERROR ($line): $_\n"; exit ( 1 ); } $comments[$num_vars-1] .= " " . $1; } } elsif ( /^\*+\// ) { # end comment } elsif ( /^\*+\s*(\S.*)$/ ) { $description .= " " if ( length ( $description ) ); $description .= $1; } elsif ( /^\/*/ ) { undef ( $description ); } } @months = ( "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ); ( $mday, $mon, $year ) = ( localtime ( time ) )[3,4,5]; $now = sprintf "%02d-%s-%04d", $mday, $months[$mon], $year + 1900; print< ILib API Documentation

Ilib Image Library

$info
Home Page: http://www.radix.net/~cknudsen/Ilib/
Author: Craig Knudsen, cknudsen\@radix.net
Last updated:$now

API Documentation

\n
\n"; foreach $name ( sort keys ( %out ) ) { print "

\n" . $out{$name}; } print "\n\n"; exit 0;