Documentation: Difference between revisions

From Rosetta Code
Content added Content deleted
(→‎Tcl: Added implementation)
(omit m4)
Line 47: Line 47:
}</lang>
}</lang>
Both doctools and robodoc can produce output in multiple formats.
Both doctools and robodoc can produce output in multiple formats.

{{omit from|M4}}

Revision as of 21:21, 6 September 2009

Task
Documentation
You are encouraged to solve this task according to the task description, using any language you may know.

Show how to insert documentation for classes, functions, and/or variables in your language. If this documentation is built-in to the language, note it. If this documentation requires external tools, note them.

Java

Documentation is typically given using Javadoc comments. Documentation is generated from these comments using the Javadoc tool. It takes the form of an HTML page with frames, so HTML is frequently embedded in the comments. The comments all start with /**, end with */, and usually have "tags" embedded starting with @. <lang java>/**

* This is a class documentation comment. This text shows at the top of the page for this class
* @author Joe Schmoe
*/

public class Doc{

  /**
   * This is a field comment for a variable
   */
  private String field;
  /**
   * This is a method comment. It has parameter tags (param), an exception tag (throws),
   * and a return value tag (return).
   *
   * @param num a number with the variable name "num"
   * @throws BadException when something bad happens
   * @return another number
   */
  public int method(long num) throws BadException{
     //...code here
  }

}</lang>

Tcl

Documentation for Tcl code is usually prepared in separate files using a tool like doctools, but inline docs (with all their inherent limitations) can be done with the likes of Robodoc. For example: <lang tcl>#****f* RosettaCode/TclDocDemo

  1. FUNCTION
  2. TclDocDemo is a simple illustration of how to do documentation
  3. of Tcl code using Robodoc.
  4. SYNOPSYS
  5. TclDocDemo foo bar
  6. INPUTS
  7. foo -- the first part of the message to print
  8. bar -- the last part of the message to print
  9. RESULT
  10. No result
  11. NOTES
  12. Prints a message based on a template by filling in with the
  13. supplied strings.

proc TclDocDemo {foo bar} {

   puts [format "%s -- %s" $foo $bar]

}</lang> Both doctools and robodoc can produce output in multiple formats.