ROBODoc is a documentation tool similar to Javadoc and licensed under the GPL. It is used to extract API documentation from source code. It can be used with any language that supports comments and works by extracting specially formatted headers. These are then reformatted into HTML, DocBook, TROFF, ASCII, LaTeX, PDF, or RTF.
It can be used to document any programming artifact, such as: classes, functions, tests, makefile entries, etc.
ROBODoc works with C, C++, Fortran, Perl, shell scripts, Assembler, DCL, DB/C, Tcl/Tk, Forth, Lisp, COBOL, Occam, Basic, HTML, Clarion, and any other language that supports comments.
History.
The first version of ROBODoc was written by Jacco van Weert in 1995. ROBODoc was inspired by the Autodocs program that was available on the Amiga. Autodocs produced ASCII output only. Jacco created a version that created output in Amigaguide format. This made it possible to create hyperlinks between the various documentation parts.
Example.
A typical ROBODoc header
 /****f* Robodoc/RB_Panic [2.0d]
 * SYNOPSIS
 
 void RB_Panic (char* cause, char *add_info)
 /*
 * FUNCTION
 * Prints an error message.
 * Frees all resources used by robodoc.
 * Terminates program.
 * INPUTS
 * * cause - pointer to a string which describes the
 * cause of the error.
 * * add_info - pointer to a string with additional information.
 * SEE ALSO
 * RB_Close_The_Shop ()
 * SOURCE
 {
 printf ("Robodoc: Error, %s\n",cause) ;
 printf (" %s\n", add_info) ;
 printf ("Robodoc: Panic Fatal error, closing down..\n") ;
 RB_Close_The_Shop () ; /* Free All Resources */
 exit(100) ;
 
and the resulting output