@ciao-lang/ts-ciao-interface
Version:
Simple Ciao interface for node.
76 lines • 82.9 kB
HTML
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="theme-color" content="#273f79"/><link rel="stylesheet" href="lpdoc.css" type="text/css"/><script type="text/javascript" src="lpdoc.js"></script><title>Documentation mark-up language and doc declarations — The lpdoc Documentation Generator v3.5</title></head><body><div class="lpdoc-page fixleftbar"><a href="#" id="sidebar-toggle-button" class="lpdoc-navbutton"><span id="sidebar-button-arrow">☰</span></a><div id="sidebar" class="lpdoc-sidebar"><div style="height: 40px; margin-left: auto; margin-right: auto"><img src="lpdoc-logo-128_autofig.png" width=auto height=100%></div><div class="lpdoc-nav"><span class="lpdoc-on-right"><a class="lpdoc-navbutton" href="lpdoc_ref_man.html">↑</a><a class="lpdoc-navbutton" href="doccfg_props.html">←</a><a class="lpdoc-navbutton" href="doccomments_doc.html">→</a><a class="lpdoc-navbutton" href="lpdoc_ref_mansearch.html">🔍</a></span><span><a href="lpdoc_ref_manfulltoc.html">TOC</a></span></div><hr></hr><ul class="lpdoc-itemize-sectpath"><li><a href="lpdoc_ref_man.html">The lpdoc Documentation Generator</a> »<br/> </li><li><a href=""><strong>Documentation mark-up language and doc declarations</strong></a> ▾<ul><li><a href="doccomments_doc.html">Documentation comments</a></li></ul></li></ul><hr></hr><em>ON THIS PAGE</em><ul><li><a href="#Usage and interface">Usage and interface</a></li><li><a href="#Documentation on exports">Documentation on exports</a></li><li><a href="#Documentation on internals">Documentation on internals</a></li><li><a href="#Documentation on imports">Documentation on imports</a></li></ul></div><div class="lpdoc-main"><div id=""><h1>Documentation mark-up language and doc declarations</h1><a class="lpdoc-idx-anchor" href="lpdoc_ref_mansearch.html#comments"></a>
<strong>Author(s):</strong> <a class="lpdoc-idx-anchor" id="Manuel Hermenegildo" href="lpdoc_ref_mansearch.html#Manuel Hermenegildo">Manuel Hermenegildo</a>.<p>
Two documentation aids are defined herein:<p><ul> <p><li><a class="lpdoc-idx-anchor" id="0" href="#doc/2"><tt>doc/2</tt></a> declarations and their many uses. These declarations are one of the two main means of enhancing the documentation of programs (the other being <a class="lpdoc-idx-anchor" id="1" href="assertions_doc.html"><tt>assertions</tt></a>). <a class="lpdoc-idx-anchor" id="2" href="#doc/2"><tt>doc/2</tt></a> declarations provide <a class="lpdoc-idx-anchor" id="3" href="lpdoc_ref_mansearch.html#textual comments"><em>textual comments</em></a> which are <em>complementary</em> to the formal statements present in <a class="lpdoc-idx-anchor" id="4" href="lpdoc_ref_mansearch.html#assertions"><em>assertions</em></a>. See the documentation for <a class="lpdoc-idx-anchor" id="5" href="#doc/2"><tt>doc/2</tt></a> below, which also contains examples of use.<p><li>The <a class="lpdoc-idx-anchor" id="6" href="lpdoc_ref_mansearch.html#formatting commands">formatting commands</a> of the <a class="lpdoc-idx-anchor" id="7" href="lpdoc_ref_mansearch.html#mark-up language"><em>mark-up language</em></a> used in the text strings inside both <a class="lpdoc-idx-anchor" id="8" href="#doc/2"><tt>doc/2</tt></a> declarations and in the comment field of assertions. See <a class="lpdoc-idx-anchor" id="9" href="#docstring/1"><tt>docstring/1</tt></a>, <a class="lpdoc-idx-anchor" id="10" href="#stringcommand/1"><tt>stringcommand/1</tt></a>, etc. below.<p></ul> <p><a class="lpdoc-idx-anchor" id="11" href="#doc/2"><tt>doc/2</tt></a> declarations can be used to document predicates and other parts of the program source in place of (or in combination with) the normal comments that are typically inserted in the code (and they are ignored by the compiler in the same way as classical comments). However, they are much preferred to classical comments because they are more structured and they are machine-readable, and can thus also be used to generate printed or on-line documentation automatically, using the <a class="lpdoc-idx-anchor" id="12" href="lpdoc_ref_mansearch.html#lpdoc"><tt>lpdoc</tt></a> automatic documentation generator.<p>Note that in addition to the more structured <a class="lpdoc-idx-anchor" id="13" href="#doc/2"><tt>doc/2</tt></a> declarations and mark-up language described here, these declarations can also be written in a <em>wiki</em> (<a class="lpdoc-idx-anchor" id="14" href="lpdoc_ref_mansearch.html#markdown"><em>markdown</em></a>) style -- see <a class="lpdoc-idx-anchor" id="15" href="doccomments_doc.html"><tt>doccomments</tt></a> for details.<br/><div id="Usage and interface"><h2>Usage and interface</h2><div class="lpdoc-cartouche"><ul><li><strong>Library usage:</strong><br/>It is not necessary to use this library in user programs. The recommended procedure in order to make use of the <a class="lpdoc-idx-anchor" id="16" href="#doc/2"><tt>doc/2</tt></a> declarations that this library defines is to include instead the <a class="lpdoc-idx-anchor" id="17" href="assertions_doc.html"><tt>assertions</tt></a> package, which provides support for all assertion- and comment-related declarations, using one of the following declarations, as appropriate:<p><pre class="lpdoc-codeblock">
:- module(...,...,[assertions]).
:- use_package(assertions).</pre><li><strong>Exports:</strong><br/><ul class="lpdoc-itemize-minus"><li><em>Properties:</em><br/><a class="lpdoc-idx-anchor" id="18" href="#docstring/1"><tt>docstring/1</tt></a>, <a class="lpdoc-idx-anchor" id="19" href="#stringcommand/1"><tt>stringcommand/1</tt></a>.
<li><em>Regular Types:</em><br/><a class="lpdoc-idx-anchor" id="20" href="#version_descriptor/1"><tt>version_descriptor/1</tt></a>, <a class="lpdoc-idx-anchor" id="21" href="#filetype/1"><tt>filetype/1</tt></a>, <a class="lpdoc-idx-anchor" id="22" href="#stability_level/1"><tt>stability_level/1</tt></a>.
</ul></ul></div></div><div id="Documentation on exports"><h2>Documentation on exports</h2><div><div class="lpdoc-defname"><span class="lpdoc-predtag">PROPERTY</span><a class="lpdoc-idx-anchor" id="docstring/1" href="lpdoc_ref_mansearch.html#docstring/1">docstring/1</a></div><div class="lpdoc-deftext">Defines the format of the character strings which can be used in machine readable comments (<a class="lpdoc-idx-anchor" id="23" href="#doc/2"><tt>doc/2</tt></a> declarations) and assertions. These character strings can include certain <a class="lpdoc-idx-anchor" id="24" href="lpdoc_ref_mansearch.html#formatting commands"><em>formatting commands</em></a>.<p><ul> <p><li>All printable characters are admissible in documentation strings except ``<tt>@</tt>'', ``<tt>\</tt>'', ``<tt>{</tt>,'' and ``<tt>}</tt>''. To produce these characters the following <a class="lpdoc-idx-anchor" id="25" href="lpdoc_ref_mansearch.html#escape sequences"><em>escape sequences</em></a> should be used, respectively: <tt>@@</tt>, <tt>\\</tt>, <tt>@{</tt>, and <tt>@}</tt>.<p>Note that in strings, each <tt>\</tt> character must be escaped (with <tt>\</tt>, <tt>\\</tt>), so to get one backslash four backslashes (<tt>\\\\</tt>) have to be used, i.e., in a string <tt>\\\\</tt> is used to represent <tt>\\</tt>, and that is the command that will output a <tt>\</tt> character.<p><li>In order to allow better formatting of on-line and printed manuals, in addition to normal text, certain formatting commands can be used within these strings. The syntax <a class="lpdoc-idx-anchor" id="26" href="lpdoc_ref_mansearch.html#syntax of formatting commands"></a> of all these commands is:<p><tt>@</tt><em>command</em> <p>(followed by either a space or <tt>{}</tt>), or<p><tt>@</tt><em>command</em><tt>{</tt><em>body</em><tt>}</tt> <p>where <em>command</em> is the command name and <em>body</em> is the (possibly empty) command body. Alternatively, <tt>\</tt> can be used instead of <tt>{}</tt> (escaped if appears in strings).<p>The set of commands currently admitted can be found in the documentation for the predicate <a class="lpdoc-idx-anchor" id="27" href="#stringcommand/1"><tt>stringcommand/1</tt></a>.<p></ul><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>docstring(Text)</tt>
</span><p><span class="lpdoc-var">Text</span> is a <em>documentation string</em>.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PROPERTY</span><a class="lpdoc-idx-anchor" id="stringcommand/1" href="lpdoc_ref_mansearch.html#stringcommand/1">stringcommand/1</a></div><div class="lpdoc-deftext">Defines the set of structures which can result from parsing a formatting command admissible in comment strings inside assertions.<p>In order to make it possible to produce documentation in a wide variety of formats, the command set is kept small. The names of the commands are intended to be reminiscent of the commands used in the <a class="lpdoc-idx-anchor" id="28" href="lpdoc_ref_mansearch.html#LaTeX">LaTeX</a> text formatting system. Both ``<tt>@</tt>'' and ``<tt>\</tt>'' are allowed in command names. Note that ``<tt>\</tt>'' needs to be escaped in strings, which makes the source less readable. In such case it is recommended using ``<tt>@</tt>'' (and, in any case, many ideas in LaTeX were taken from <a class="lpdoc-idx-anchor" id="29" href="lpdoc_ref_mansearch.html#scribe">scribe</a>, where the escape character was indeed <tt>@</tt>!).<p>The following are the currently admissible commands.<p><ul> <p><li><strong>Formatting commands:</strong> <p>The following commands are used to format certain words or sentences in a special font, build itemized lists, introduce sections, include examples, etc.<p><dl> <p><dt><tt>@comment{</tt><em>text</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="30" href="lpdoc_ref_mansearch.html#@comment command"></a> <em>text</em> will be treated as a <a class="lpdoc-idx-anchor" id="31" href="lpdoc_ref_mansearch.html#comment"><em>comment</em></a> and will be ignored.<p><dt><tt>@begin{itemize}</tt><dd> <a class="lpdoc-idx-anchor" id="32" href="lpdoc_ref_mansearch.html#@begin{itemize} command"></a> marks the beginning of an <a class="lpdoc-idx-anchor" id="33" href="lpdoc_ref_mansearch.html#itemized list"><em>itemized list</em></a>. Each item should be in a separate paragraph and preceded by an <tt>@item</tt> command.<p><dt><tt>@item</tt><dd> <a class="lpdoc-idx-anchor" id="34" href="lpdoc_ref_mansearch.html#@item command"></a> marks the beginning of a new <a class="lpdoc-idx-anchor" id="35" href="lpdoc_ref_mansearch.html#item in an itemized list"><em>item in an itemized list</em></a>.<p><dt><tt>@end{itemize}</tt><dd> <a class="lpdoc-idx-anchor" id="36" href="lpdoc_ref_mansearch.html#@end{itemize} command"></a> marks the end of an itemized list.<p><dt><tt>@begin{enumerate}</tt><dd> <a class="lpdoc-idx-anchor" id="37" href="lpdoc_ref_mansearch.html#@begin{enumerate} command"></a> marks the beginning of an <a class="lpdoc-idx-anchor" id="38" href="lpdoc_ref_mansearch.html#enumerated list"><em>enumerated list</em></a>. Each item should be in a separate paragraph and preceded by an <tt>@item</tt> command.<p><dt><tt>@end{enumerate}</tt><dd> <a class="lpdoc-idx-anchor" id="39" href="lpdoc_ref_mansearch.html#@end{enumerate} command"></a> marks the end of an enumerated list.<p><dt><tt>@begin{description}</tt><dd> <a class="lpdoc-idx-anchor" id="40" href="lpdoc_ref_mansearch.html#@begin{description} command"></a> marks the beginning of a <a class="lpdoc-idx-anchor" id="41" href="lpdoc_ref_mansearch.html#description list"><em>description list</em></a>, i.e., a list of items and their description (this list describing the different allowable commads is in fact a description list). Each item should be in a separate paragraph and contained in an <tt>@item{</tt><em>itemtext</em><tt>}</tt> command.<p><dt><tt>@item{</tt><em>itemtext</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="42" href="lpdoc_ref_mansearch.html#@item command"></a> marks the beginning of a <a class="lpdoc-idx-anchor" id="43" href="lpdoc_ref_mansearch.html#new item in description list"><em>new item in description list</em></a>, and contains the header for the item.<p><dt><tt>@end{description}</tt><dd> <a class="lpdoc-idx-anchor" id="44" href="lpdoc_ref_mansearch.html#@end{description} command"></a> marks the end of a description list.<p><dt><tt>@begin{verbatim}</tt><dd> <a class="lpdoc-idx-anchor" id="45" href="lpdoc_ref_mansearch.html#@begin{verbatim} command"></a> marks the beginning of <a class="lpdoc-idx-anchor" id="46" href="lpdoc_ref_mansearch.html#fixed format text"><em>fixed format text</em></a>, <a class="lpdoc-idx-anchor" id="47" href="lpdoc_ref_mansearch.html#verbatim text"></a> such as a program example. A fixed-width, typewriter-like font is used.<p><dt><tt>@end{verbatim}</tt><dd> <a class="lpdoc-idx-anchor" id="48" href="lpdoc_ref_mansearch.html#@end{verbatim} command"></a> marks the end of formatted text.<p><dt><tt>@begin{cartouche}</tt><dd> <a class="lpdoc-idx-anchor" id="49" href="lpdoc_ref_mansearch.html#@begin{cartouche} command"></a> marks the beginning of a section of text in a <a class="lpdoc-idx-anchor" id="50" href="lpdoc_ref_mansearch.html#framed box"><em>framed box</em></a>, with round corners.<p><dt><tt>@end{cartouche}</tt><dd> <a class="lpdoc-idx-anchor" id="51" href="lpdoc_ref_mansearch.html#@end{cartouche} command"></a> marks the end of a section of text in a <a class="lpdoc-idx-anchor" id="52" href="lpdoc_ref_mansearch.html#framed box">framed box</a>.<p><dt><tt>@begin{note}</tt><dd> <a class="lpdoc-idx-anchor" id="53" href="lpdoc_ref_mansearch.html#@begin{note} command"></a> marks the beginning of a section of text in a <a class="lpdoc-idx-anchor" id="54" href="lpdoc_ref_mansearch.html#framed box"><em>framed box</em></a>, for note messages.<p><dt><tt>@end{note}</tt><dd> <a class="lpdoc-idx-anchor" id="55" href="lpdoc_ref_mansearch.html#@end{note} command"></a> marks the end of the note message.<p><dt><tt>@begin{alert}</tt><dd> <a class="lpdoc-idx-anchor" id="56" href="lpdoc_ref_mansearch.html#@begin{alert} command"></a> marks the beginning of a section of text in a <a class="lpdoc-idx-anchor" id="57" href="lpdoc_ref_mansearch.html#framed box"><em>framed box</em></a>, for alert messages.<p><dt><tt>@end{alert}</tt><dd> <a class="lpdoc-idx-anchor" id="58" href="lpdoc_ref_mansearch.html#@end{alert} command"></a> marks the end of the alert message.<p><dt><tt>@section{</tt><em>text</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="59" href="lpdoc_ref_mansearch.html#@section command"></a> starts a <a class="lpdoc-idx-anchor" id="60" href="lpdoc_ref_mansearch.html#section"><em>section</em></a> whose title is <em>text</em>. Due to a limitation of the <a class="lpdoc-idx-anchor" id="61" href="lpdoc_ref_mansearch.html#info"><tt>info</tt></a> format, do not use <tt>:</tt> or <tt>-</tt> or <tt>,</tt> in section, subsection, title (chapter), etc. headings.<p><dt><tt>@subsection{</tt><em>text</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="62" href="lpdoc_ref_mansearch.html#@subsection command"></a> starts a <a class="lpdoc-idx-anchor" id="63" href="lpdoc_ref_mansearch.html#subsection"><em>subsection</em></a> whose title is <em>text</em>.<p><dt><tt>@subsubsection{</tt><em>text</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="64" href="lpdoc_ref_mansearch.html#@subsubsection command"></a> starts a <a class="lpdoc-idx-anchor" id="65" href="lpdoc_ref_mansearch.html#subsubsection"><em>subsubsection</em></a> whose title is <em>text</em>.<p><dt><tt>@footnote{</tt><em>text</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="66" href="lpdoc_ref_mansearch.html#@footnote command"></a> places <em>text</em> in a <a class="lpdoc-idx-anchor" id="67" href="lpdoc_ref_mansearch.html#footnote"><em>footnote</em></a>.<p><dt><tt>@hfill</tt><dd> <a class="lpdoc-idx-anchor" id="68" href="lpdoc_ref_mansearch.html#@hfill command"></a> introduces horizontal filling space <a class="lpdoc-idx-anchor" id="69" href="lpdoc_ref_mansearch.html#spcae, horizontal fill"></a> (may be ignored in certain formats).<p><dt><tt>@bf{</tt><em>text</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="70" href="lpdoc_ref_mansearch.html#@bf command"></a> <em>text</em> will be formatted in <a class="lpdoc-idx-anchor" id="71" href="lpdoc_ref_mansearch.html#bold face"><em>bold face</em></a> or any other <a class="lpdoc-idx-anchor" id="72" href="lpdoc_ref_mansearch.html#strong face"><em>strong face</em></a>.<p><dt><tt>@em{</tt><em>text</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="73" href="lpdoc_ref_mansearch.html#@em command"></a> <em>text</em> will be formatted in <a class="lpdoc-idx-anchor" id="74" href="lpdoc_ref_mansearch.html#italics face"><em>italics face</em></a> or any other <a class="lpdoc-idx-anchor" id="75" href="lpdoc_ref_mansearch.html#emphasis face"><em>emphasis face</em></a>.<p><dt><tt>@tt{</tt><em>text</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="76" href="lpdoc_ref_mansearch.html#@tt command"></a> <em>text</em> will be formatted in a <a class="lpdoc-idx-anchor" id="77" href="lpdoc_ref_mansearch.html#fixed-width font"><em>fixed-width font</em></a> (i.e., <a class="lpdoc-idx-anchor" id="78" href="lpdoc_ref_mansearch.html#typewriter-like font"><em>typewriter-like font</em></a>).<p><dt><tt>@key{</tt><em>key</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="79" href="lpdoc_ref_mansearch.html#@key command"></a> <em>key</em> is the identifier of a <a class="lpdoc-idx-anchor" id="80" href="lpdoc_ref_mansearch.html#keyboard key"><em>keyboard key</em></a> (i.e., a letter such as <tt>a</tt>, or a special key identifier such as <tt>RET</tt> or <tt>DEL</tt>) and will be formatted as <span class="lpdoc-emacskey">LFD</span> or in a fixed-width, typewriter-like font.<p><dt><tt>@sp{</tt><em>N</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="81" href="lpdoc_ref_mansearch.html#@sp command"></a> generates <em>N</em> <a class="lpdoc-idx-anchor" id="82" href="lpdoc_ref_mansearch.html#blank lines"><em>blank lines</em></a> of space. <a class="lpdoc-idx-anchor" id="83" href="lpdoc_ref_mansearch.html#space, extra lines"></a> Forces also a paragraph break.<p><dt><tt>@p</tt><dd> <a class="lpdoc-idx-anchor" id="84" href="lpdoc_ref_mansearch.html#@p command"></a> forces a <a class="lpdoc-idx-anchor" id="85" href="lpdoc_ref_mansearch.html#paragraph break"><em>paragraph break</em></a>, in the same way as leaving one or more blank lines.<p><dt><tt>@noindent</tt><dd> <a class="lpdoc-idx-anchor" id="86" href="lpdoc_ref_mansearch.html#@noindent command"></a> used at the beginning of a paragraph, states that the first line of the paragraph should not be indented. <a class="lpdoc-idx-anchor" id="87" href="lpdoc_ref_mansearch.html#indentation, avoiding"></a> Useful, for example, for <a class="lpdoc-idx-anchor" id="88" href="lpdoc_ref_mansearch.html#avoiding indentation"><em>avoiding indentation</em></a> on paragraphs that are continuations of other paragraphs, such as after a verbatim.<p></dl> <p><li><strong>Indexing commands:</strong> <p>The following commands are used to mark certain words or sentences in the text as concepts, names of predicates, libraries, files, etc. The use of these commands is highly recommended, since it results in very useful indices with little effort.<p><dl> <p><dt><tt>@index{</tt><em>text</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="89" href="lpdoc_ref_mansearch.html#@index command"></a> <em>text</em> will be printed in an emphasized font and will be included in the concept definition index (and also in the usage index). This command should be used for the first or <em>definitional</em> appearance(s) of a concept. The idea is that the concept definition index can be used to find the definition(s) of a concept.<p><dt><tt>@cindex{</tt><em>text</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="90" href="lpdoc_ref_mansearch.html#@cindex command"></a> <em>text</em> will be included in the concept index (and also in the usage index), but it is not printed. This is used in the same way as above, but allows sending to the index a different text than the one that is printed in the text.<p><dt><tt>@concept{</tt><em>text</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="91" href="lpdoc_ref_mansearch.html#@concept command"></a> <em>text</em> will be printed (in a normal font). This command is used to mark that some text is a defined concept. In on-line manuals, a direct access to the corresponding concept definition may also be generated. A pointer to the place in which the @concept command occurs will appear only in the usage index.<p><dt><tt>@pred{</tt><em>predname</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="92" href="lpdoc_ref_mansearch.html#@pred command"></a> <em>predname</em> (which should be in functor/arity form) is the name of a predicate and will be printed in fixed-width, typewriter-like font. This command should be used when referring to a predicate (or a property or type) in a documentation string. A reference will be included in the usage index. In on-line manuals, a direct access to the corresponding predicate definition may also be generated.<p><dt><tt>@op{</tt><em>operatorname</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="93" href="lpdoc_ref_mansearch.html#@op command"></a> <em>operatorname</em> (which should be in functor/arity form) is the name of an operator and will be printed in fixed-width, typewriter-like font. This command should be used when referring to an operator in a documentation string. A reference will be included in the usage index. In on-line manuals, a direct access to the corresponding operator definition may also be generated.<p><dt><tt>@decl{</tt><em>declname</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="94" href="lpdoc_ref_mansearch.html#@decl command"></a> <em>declname</em> (which should be in functor/arity form) is the name of a declaration and will be printed in fixed-width, typewriter-like font. This command should be used when referring to a declaration in a documentation string. A reference will be included in the usage index. In on-line manuals, a direct access to the corresponding declaration definition may also be generated.<p><dt><tt>@lib{</tt><em>libname</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="95" href="lpdoc_ref_mansearch.html#@lib command"></a> <em>libname</em> is the name of a library and will be printed in fixed-width, typewriter-like font. This command should be used when referring to a module or library in a documentation string. A reference will be included in the usage index. In on-line manuals, a direct access to the corresponding module definition may also be generated.<p><dt><tt>@apl{</tt><em>aplname</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="96" href="lpdoc_ref_mansearch.html#@apl command"></a> <em>aplname</em> is the name of an application and will be printed in fixed-width, typewriter-like font. This command should be used when referring to an application in a documentation string. A reference will be included in the usage index.<p><dt><tt>@file{</tt><em>filename</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="97" href="lpdoc_ref_mansearch.html#@file command"></a> <em>filename</em> is the name of a file and will be printed in fixed-width, typewriter-like font. This command should be used when referring to a file in a documentation string. A reference will be included in the usage index.<p><dt><tt>@var{</tt><em>varname</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="98" href="lpdoc_ref_mansearch.html#@var command"></a> <em>varname</em> is the name of a variable and will be formatted in an emphasized font. Note that when referring to variable names in a <a class="lpdoc-idx-anchor" id="99" href="assertions_doc.html#pred/1"><tt>pred/1</tt></a> declaration, such names should be enclosed in <tt>@var</tt> commands for the automatic documentation system to work correctly.<p></dl> <p><li><strong>Referencing commands:</strong> <p>The following commands are used to introduce <a class="lpdoc-idx-anchor" id="100" href="lpdoc_ref_mansearch.html#bibliographic citations"><em>bibliographic citations</em></a> and <a class="lpdoc-idx-anchor" id="101" href="lpdoc_ref_mansearch.html#references"><em>references</em></a> to <a class="lpdoc-idx-anchor" id="102" href="lpdoc_ref_mansearch.html#sections"><em>sections</em></a>, <a class="lpdoc-idx-anchor" id="103" href="lpdoc_ref_mansearch.html#urls"><em>urls</em></a>, <a class="lpdoc-idx-anchor" id="104" href="lpdoc_ref_mansearch.html#email addresses"><em>email addresses</em></a>, etc.<p><dl> <p><dt><tt>@cite{<em>keyword</em>}</tt><dd> <a class="lpdoc-idx-anchor" id="105" href="lpdoc_ref_mansearch.html#@cite command"></a> <em>keyword</em> is the identifier of a <a class="lpdoc-idx-anchor" id="106" href="lpdoc_ref_mansearch.html#bibliographic entry"><em>bibliographic entry</em></a>. Such entry is assumed to reside in one of a number of <a class="lpdoc-idx-anchor" id="107" href="lpdoc_ref_mansearch.html#bibtex"><tt>bibtex</tt></a> files (<a class="lpdoc-idx-anchor" id="108" href="lpdoc_ref_mansearch.html#.bib files"><em>.bib files</em></a>) <a class="lpdoc-idx-anchor" id="109" href="lpdoc_ref_mansearch.html#bibtex"></a>. A reference in brackets (<strong>[ ]</strong>) is inserted in the text an the full reference is included at the end, with all other references, in an appendix. For example, <tt>@cite{iso-prolog}</tt> will introduce a citation to a bibliographic entry whose keyword is <tt>iso-prolog</tt>. The list of bibliography files which will be searched for a match is determined by <tt>bibfile/1</tt> fact of the <a class="lpdoc-idx-anchor" id="110" href="doccfg_doc.html"><tt>doccfg</tt></a> file.<p><dt><tt>@ref{<em>section title</em>}</tt><dd> <a class="lpdoc-idx-anchor" id="111" href="lpdoc_ref_mansearch.html#@ref command"></a> introduces at point a reference to the section or node <em>section title</em>, where <em>section title</em> must be the exact <em>text</em> of the section title.<p><dt><tt>@href{<em>URL</em>}</tt><dd> <a class="lpdoc-idx-anchor" id="112" href="lpdoc_ref_mansearch.html#@href command"></a> introduces at point a reference to the <a class="lpdoc-idx-anchor" id="113" href="lpdoc_ref_mansearch.html#Universal Resource Locator"><em>Universal Resource Locator</em></a> (i.e., a <a class="lpdoc-idx-anchor" id="114" href="lpdoc_ref_mansearch.html#WWW address"><em>WWW address</em></a> '<a class="lpdoc-idx-anchor" id="115" href="lpdoc_ref_mansearch.html#URL"><em>URL</em></a>'.<p><dt><tt>@href{</tt><em>URL</em><tt>}{</tt><em>text</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="116" href="lpdoc_ref_mansearch.html#@href command"></a> introduces at point a reference to the <a class="lpdoc-idx-anchor" id="117" href="lpdoc_ref_mansearch.html#Universal Resource Locator">Universal Resource Locator</a> <a class="lpdoc-idx-anchor" id="118" href="lpdoc_ref_mansearch.html#URL">URL</a>, associated to the text <em>text</em>.<p><dt><tt>@email{</tt><em>address</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="119" href="lpdoc_ref_mansearch.html#@email command"></a> introduces at point a reference to <a class="lpdoc-idx-anchor" id="120" href="lpdoc_ref_mansearch.html#email address"><em>email address</em></a> <em>address</em>.<p><dt><tt>@email{</tt><em>text</em><tt>}{</tt><em>address</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="121" href="lpdoc_ref_mansearch.html#@email command"></a> introduces at point a reference to the <a class="lpdoc-idx-anchor" id="122" href="lpdoc_ref_mansearch.html#email address">email address</a> <a class="lpdoc-idx-anchor" id="123" href="lpdoc_ref_mansearch.html#address">address</a>, associated to the text <em>text</em>.<p><dt><tt>@author{</tt><em>text</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="124" href="lpdoc_ref_mansearch.html#@author command"></a> <em>text</em> will be printed (in a normal font). This command is used to reference the name of an author (not necessarily establishing the module authorship).<p></dl> <p><li><strong>Date and Version:</strong> <p><dl> <p><dt><tt>@today</tt><dd> <a class="lpdoc-idx-anchor" id="125" href="lpdoc_ref_mansearch.html#@today command"></a> prints the current <a class="lpdoc-idx-anchor" id="126" href="lpdoc_ref_mansearch.html#date"><em>date</em></a>.<p><dt><tt>@version</tt><dd> <a class="lpdoc-idx-anchor" id="127" href="lpdoc_ref_mansearch.html#@version command"></a> prints the <a class="lpdoc-idx-anchor" id="128" href="lpdoc_ref_mansearch.html#version"><em>version</em></a> of the current manual.<p></dl> <p><li><strong>Mathematics:</strong> <p>The following commands are used to format text in mathematical <a class="lpdoc-idx-anchor" id="129" href="lpdoc_ref_mansearch.html#LaTeX notation"></a>.<p><dl> <p><dt><tt>@math{</tt><em>text</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="130" href="lpdoc_ref_mansearch.html#@math command"></a> in-line typeset the <em>text</em> formula.<p><dt><tt>@begin{displaymath}</tt><dd> <a class="lpdoc-idx-anchor" id="131" href="lpdoc_ref_mansearch.html#@begin{displaymath} command"></a> marks the beginning of a formula (useful for long formulas).<p><dt><tt>@end{displaymath}</tt><dd> <a class="lpdoc-idx-anchor" id="132" href="lpdoc_ref_mansearch.html#@end{displaymath} command"></a> marks the end of the (long) formula.<p><dt><tt>@defmathcmd{</tt><em>cmd</em><tt>}{</tt><em>n</em><tt>}{</tt><em>def</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="133" href="lpdoc_ref_mansearch.html#@defmathcmd/3 command"></a> defines the math command <em>cmd</em>, taking <em>n</em> arguments, which is expanded as <em>def</em>. Arguments are denotated as <tt>#1</tt>, ..., <tt>#n</tt> inside <em>def</em>.<p><dt><tt>@defmathcmd{</tt><em>cmd</em><tt>}{</tt><em>def</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="134" href="lpdoc_ref_mansearch.html#@defmathcmd/2 command"></a> defines the math command <em>cmd</em>, which is expanded as <em>def</em> (with no arguments).<p></dl> <p><li><strong>Inclusion commands:</strong> <p><a class="lpdoc-idx-anchor" id="135" href="lpdoc_ref_mansearch.html#including code"></a> <a class="lpdoc-idx-anchor" id="136" href="lpdoc_ref_mansearch.html#including files"></a> <a class="lpdoc-idx-anchor" id="137" href="lpdoc_ref_mansearch.html#including images"></a> <p>The following commands are used to include code or strings of text as part of documentation. The latter may reside in external files or in the file being documented. The former must be part of the module being documented. There are also commands for inserting and scaling images.<p><dl> <p><dt><tt>@include{</tt><em>filename</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="138" href="lpdoc_ref_mansearch.html#@include command"></a> the contents of <em>filename</em> will be included in-line, as if they were part of the string. This is useful for common pieces of documentation or storing in a separate file long explanations if they are perceived to clutter the source file.<p><dt><tt>@includecode{</tt><em>filename</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="139" href="lpdoc_ref_mansearch.html#@includecode command"></a> the contents of <em>filename</em> will be included in-line and represented in verbatim mode (without <tt>@begin{verbatim}</tt> and <tt>@end{verbatim}</tt>). Commands within the file are not interpreted. This is useful for including code fragments in documentation.<p><dt><tt>@includecode{</tt><em>lang</em><tt>}{</tt><em>filename</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="140" href="lpdoc_ref_mansearch.html#@includecode command"></a> same as above, but the contents of <em>filename</em> will be included in-line and represented in language <em>lang</em>.<p><dt><tt>@includeverbatim{</tt><em>filename</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="141" href="lpdoc_ref_mansearch.html#@includeverbatim command"></a> (DEPRECATED) as above, but the contents of the file are not necessarily represented in verbatim mode. Note that this only means that the file will be included as is. If you want the string to be represented in verbatim mode in the output, you must surround the <tt>@includeverbatim{</tt><em>filename</em><tt>}</tt> with <tt>@begin{verbatim}</tt> and <tt>@end{verbatim}</tt>.<p><dt><tt>@includefact{</tt><em>factname</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="142" href="lpdoc_ref_mansearch.html#@includefact command"></a> it is assumed that the file being documented contains a fact of the predicate <em>factname</em><tt>/1</tt>, whose argument is a character string. The contents of that character string will be included in-line, as if they were part of the documentation string. This is useful for <a class="lpdoc-idx-anchor" id="143" href="lpdoc_ref_mansearch.html#sharing pieces of text"><em>sharing pieces of text</em></a> between the documentation and the running code. An example is the text which explains the <a class="lpdoc-idx-anchor" id="144" href="lpdoc_ref_mansearch.html#usage of a command"><em>usage of a command</em></a> (options, etc.).<p><dt><tt>@includedef{</tt><em>predname</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="145" href="lpdoc_ref_mansearch.html#@includedef command"></a> it is assumed that the file being documented contains a definition for the predicate <em>predname</em>. The clauses defining this predicate will be included in-line, in verbatim mode, as if they were part of the documentation string. <a class="lpdoc-idx-anchor" id="146" href="lpdoc_ref_mansearch.html#including a predicate definition"></a> <p><dt><tt>@image{</tt><em>epsfile</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="147" href="lpdoc_ref_mansearch.html#@image command"></a> <a class="lpdoc-idx-anchor" id="148" href="lpdoc_ref_mansearch.html#including an image"><em>including an image</em></a> at point, <a class="lpdoc-idx-anchor" id="149" href="lpdoc_ref_mansearch.html#images, inserting"></a> contained in file <em>epsfile</em>. The <a class="lpdoc-idx-anchor" id="150" href="lpdoc_ref_mansearch.html#image file"><em>image file</em></a> should be in <a class="lpdoc-idx-anchor" id="151" href="lpdoc_ref_mansearch.html#encapsulated postscript"><em>encapsulated postscript</em></a> format.<p><dt><a class="lpdoc-idx-anchor" id="152" href="lpdoc_ref_mansearch.html#images, scaling"></a> <tt>@image{</tt><em>epsfile</em><tt>}{</tt><em>width</em><tt>}{</tt><em>height</em><tt>}</tt><dd> <a class="lpdoc-idx-anchor" id="153" href="lpdoc_ref_mansearch.html#@image command"></a> same as above, but <em>width</em> and <em>height</em> should be integers which provide a size (in points) to which the image will be scaled.<p></dl> <p><li><strong>Accents and special characters:</strong> <p>The following commands can be used to insert <a class="lpdoc-idx-anchor" id="154" href="lpdoc_ref_mansearch.html#accents"><em>accents</em></a> and <a class="lpdoc-idx-anchor" id="155" href="lpdoc_ref_mansearch.html#special characters"><em>special characters</em></a>.<p><dl> <p><dt><tt>@`{o}</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="156" href="lpdoc_ref_mansearch.html#@` command"></a> ò <dt><tt>@'{o}</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="157" href="lpdoc_ref_mansearch.html#@' command"></a> ó <dt><tt>@^{o}</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="158" href="lpdoc_ref_mansearch.html#@^ command"></a> ô <dt><tt>@..{o}</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="159" href="lpdoc_ref_mansearch.html#@.. command"></a> ö <dt><tt>@"{o}</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="160" href="lpdoc_ref_mansearch.html#@" command"></a> ö <dt><tt>@~{o}</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="161" href="lpdoc_ref_mansearch.html#@~ command"></a> õ <dt><tt>@={o}</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="162" href="lpdoc_ref_mansearch.html#@= command"></a> ō <dt><tt>@.{o}</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="163" href="lpdoc_ref_mansearch.html#@. command"></a> ȯ <dt><tt>@u{o}</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="164" href="lpdoc_ref_mansearch.html#@u command"></a> ŏ <dt><tt>@v{o}</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="165" href="lpdoc_ref_mansearch.html#@v command"></a> ǒ <dt><tt>@H{o}</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="166" href="lpdoc_ref_mansearch.html#@H command"></a> ő <dt><tt>@t{oo}</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="167" href="lpdoc_ref_mansearch.html#@t command"></a> o͡o <dt><tt>@c{o}</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="168" href="lpdoc_ref_mansearch.html#@c command"></a> o̧ <dt><tt>@d{o}</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="169" href="lpdoc_ref_mansearch.html#@d command"></a> ọ <dt><tt>@b{o}</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="170" href="lpdoc_ref_mansearch.html#@b command"></a> o̱ <dt><tt>@oe</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="171" href="lpdoc_ref_mansearch.html#@oe command"></a> œ <dt><tt>@OE</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="172" href="lpdoc_ref_mansearch.html#@OE command"></a> Œ <dt><tt>@ae</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="173" href="lpdoc_ref_mansearch.html#@ae command"></a> æ <dt><tt>@AE</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="174" href="lpdoc_ref_mansearch.html#@AE command"></a> Æ <dt><tt>@aa</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="175" href="lpdoc_ref_mansearch.html#@aa command"></a> å <dt><tt>@AA</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="176" href="lpdoc_ref_mansearch.html#@AA command"></a> Å <dt><tt>@o</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="177" href="lpdoc_ref_mansearch.html#@o command"></a> ø <dt><tt>@O</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="178" href="lpdoc_ref_mansearch.html#@O command"></a> Ø <dt><tt>@l</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="179" href="lpdoc_ref_mansearch.html#@l command"></a> ł <dt><tt>@L</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="180" href="lpdoc_ref_mansearch.html#@L command"></a> Ł <dt><tt>@ss</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="181" href="lpdoc_ref_mansearch.html#@ss command"></a> ß <dt><tt>@?</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="182" href="lpdoc_ref_mansearch.html#@? command"></a> ¿ <dt><tt>@!</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="183" href="lpdoc_ref_mansearch.html#@! command"></a> ¡ <dt><tt>@i</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="184" href="lpdoc_ref_mansearch.html#@i command"></a> ı <dt><tt>@j</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="185" href="lpdoc_ref_mansearch.html#@j command"></a> ȷ <dt><tt>@copyright</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="186" href="lpdoc_ref_mansearch.html#@copyright command"></a> ©<dt><tt>@iso</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="187" href="lpdoc_ref_mansearch.html#@iso command"></a> <span class="lpdoc-iso">ISO</span><dt><tt>@bullet</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="188" href="lpdoc_ref_mansearch.html#@bullet command"></a> º<dt><tt>@result</tt><dd> ⇒ <a class="lpdoc-idx-anchor" id="189" href="lpdoc_ref_mansearch.html#@result command"></a> ⇒ </dl> <p></ul><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>stringcommand(CO)</tt>
</span><p><span class="lpdoc-var">CO</span> is a structure denoting a command that is admissible in strings inside assertions.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">REGTYPE</span><a class="lpdoc-idx-anchor" id="version_descriptor/1" href="lpdoc_ref_mansearch.html#version_descriptor/1">version_descriptor/1</a></div><div class="lpdoc-deftext">A structure denoting a complete version description: <pre class="lpdoc-codeblock">version_descriptor([]).
version_descriptor(version(Version,Date)) :-
version_number(Version),
ymd_date(Date).
version_descriptor(version(Version,Date,Time)) :-
version_number(Version),
ymd_date(Date),
time_struct(Time).
</pre><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>version_descriptor(Descriptor)</tt>
</span><p><span class="lpdoc-var">Descriptor</span> is a complete version descriptor.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">REGTYPE</span><a class="lpdoc-idx-anchor" id="filetype/1" href="lpdoc_ref_mansearch.html#filetype/1">filetype/1</a></div><div class="lpdoc-deftext">Intended uses of a file: <pre class="lpdoc-codeblock">filetype(module).
filetype(user).
filetype(include).
filetype(package).
filetype(application).
filetype(part).
filetype(documentation).
</pre><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>filetype(Type)</tt>
</span><p><span class="lpdoc-var">Type</span> describes the intended use of a file.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">REGTYPE</span><a class="lpdoc-idx-anchor" id="stability_level/1" href="lpdoc_ref_mansearch.html#stability_level/1">stability_level/1</a></div><div class="lpdoc-deftext">The defined stability levels that can be attached to files: <pre class="lpdoc-codeblock">stability_level(devel).
stability_level(alpha).
stability_level(beta).
stability_level(prod).
stability_level(devel(L)) :-
docstring(L).
stability_level(alpha(L)) :-
docstring(L).
stability_level(beta(L)) :-
docstring(L).
stability_level(prod(L)) :-
docstring(L).
</pre><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>stability_level(Level)</tt>
</span><p><span class="lpdoc-var">Level</span> describes a level of stability.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p>
</div><div id="Documentation on internals"><h2>Documentation on internals</h2><div><div class="lpdoc-defname"><span class="lpdoc-predtag">DECLARATION</span><a class="lpdoc-idx-anchor" id="doc/2" href="lpdoc_ref_mansearch.html#doc/2">doc/2</a></div><div class="lpdoc-deftext">This declaration provides one of the main means for adding <a class="lpdoc-idx-anchor" id="190" href="lpdoc_ref_mansearch.html#machine readable comments"><em>machine readable comments</em></a> to programs (the other one is adding <a class="lpdoc-idx-anchor" id="191" href="lpdoc_ref_mansearch.html#documentation strings"><em>documentation strings</em></a> to assertions).<p><span class="lpdoc-usage-header">Usage 1:</span><span class="lpdoc-usage-decl">:- <tt>doc(CommentType,TitleText)</tt>.
</span><p>Provides a <a class="lpdoc-idx-anchor" id="192" href="lpdoc_ref_mansearch.html#title"><em>title</em></a> for the module, library, or application. When generating documentation automatically, the text in <span class="lpdoc-var">TitleText</span> will be used appropriately (e.g., in the cover page as document title or as chapter title if part of a larger document). This will also be used as a brief description of the manual in on-line indices. There should be at most one of these declarations per module.<p><ul> <li><em>Example:</em> </ul> <pre class="lpdoc-codeblock">
:- doc(title,"Documentation-oriented assertions").</pre></p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="194" href="lpdoc_ref_mansearch.html#= /2"><tt>= /2</tt></a>)</span><span><a class="lpdoc-idx-anchor" id="193" href="lpdoc_ref_mansearch.html#title=CommentType"><tt>title=CommentType</tt></a>
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="195" href="#docstring/1"><tt>docstring/1</tt></a>)</span><span><span class="lpdoc-var">TitleText</span> is a <em>documentation string</em>.
</span>
</ul><p><span class="lpdoc-usage-header">Usage 2:</span><span class="lpdoc-usage-decl">:- <tt>doc(CommentType,SubtitleText)</tt>.
</span><p>Provides a <a class="lpdoc-idx-anchor" id="196" href="lpdoc_ref_mansearch.html#subtitle"><em>subtitle</em></a>, an explanatory or alternate <a class="lpdoc-idx-anchor" id="197" href="lpdoc_ref_mansearch.html#title"><em>title</em></a>. The subtitle will be displayed under the proper title.<p><ul> <li><em>Example:</em> </ul> <pre class="lpdoc-codeblock">
:- doc(title,"Dr. Strangelove").
:- doc(subtitle,"How I Learned to Stop Worrying and Love the Bomb").</pre></p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="199" href="lpdoc_ref_mansearch.html#= /2"><tt>= /2</tt></a>)</span><span><a class="lpdoc-idx-anchor" id="198" href="lpdoc_ref_mansearch.html#subtitle=CommentType"><tt>subtitle=CommentType</tt></a>
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="200" href="#docstring/1"><tt>docstring/1</tt></a>)</span><span><span class="lpdoc-var">SubtitleText</span> is a <em>documentation string</em>.
</span>
</ul><p><span class="lpdoc-usage-header">Usage 3:</span><span class="lpdoc-usage-decl">:- <tt>doc(CommentType,SubtitleText)</tt>.
</span><p>Provides additional <a class="lpdoc-idx-anchor" id="201" href="lpdoc_ref_mansearch.html#subtitle"><em>subtitle</em></a> lines. This can be, e.g., an explanation of the application to add to the title, the address of the author(s) of the application, etc. When generating documentation automatically, the text in <span class="lpdoc-var">SubtitleText</span> will be used accordingly. Several of these declarations can appear per module, which is useful for, e.g., multiple line addresses.<p><ul> <li><em>Example:</em> </ul> <pre class="lpdoc-codeblock">
:- doc(subtitle_extra,"A Reference Manual").
:- doc(subtitle_extra,"Technical Report 1/1.0").</pre></p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="203" href="lpdoc_ref_mansearch.html#= /2"><tt>= /2</tt></a>)</span><span><a class="lpdoc-idx-anchor" id="202" href="lpdoc_ref_mansearch.html#subtitle_extra=CommentType"><tt>subtitle_extra=CommentType</tt></a>
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="204" href="#docstring/1"><tt>docstring/1</tt></a>)</span><span><span class="lpdoc-var">SubtitleText</span> is a <em>documentation string</em>.
</span>
</ul><p><span class="lpdoc-usage-header">Usage 4:</span><span class="lpdoc-usage-decl">:- <tt>doc(CommentType,LogoName)</tt>.
</span><p>The name of the logo image for the manual.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="206" href="lpdoc_ref_mansearch.html#= /2"><tt>= /2</tt></a>)</span><span><a class="lpdoc-idx-anchor" id="205" href="lpdoc_ref_mansearch.html#logo=CommentType"><tt>logo=CommentType</tt></a>
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="207" href="basic_props.html#term/1"><tt>term/1</tt></a>)</span><span><span class="lpdoc-var">LogoName</span> is any term.
</span>
</ul><p><span class="lpdoc-usage-header">Usage 5:</span><span class="lpdoc-usage-decl">:- <tt>doc(CommentType,AuthorText)</tt>.
</span><p>Provides the <a class="lpdoc-idx-anchor" id="208" href="lpdoc_ref_mansearch.html#author"><em>author</em></a>(s) of the module or application. If present, when generating documentation for the module automatically, the text in <span class="lpdoc-var">AuthorText</span> will be placed in the corresponding chapter or front page. There can be more than one of these declarations per module. In order for <a class="lpdoc-idx-anchor" id="209" href="lpdoc_ref_mansearch.html#author indexing">author indexing</a> to work properly, please use one author declaration per author. If more explanation is needed (who did what when, etc.) use an acknowledgements comment.<p><ul> <li><em>Example:</em> </ul> <pre class="lpdoc-codeblock">
:- doc(author,"Alan Robinson").</pre></p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="211" href="lpdoc_ref_mansearch.html#= /2"><tt>= /2</tt></a>)</span><span><a class="lpdoc-idx-anchor" id="210" href="lpdoc_ref_mansearch.html#author=CommentType"><tt>author=CommentType</tt></a>
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="212" href="#docstring/1"><tt>docstring/1</tt></a>)</span><span><span class="lpdoc-var">AuthorText</span> is a <em>documentation string</em>.
</span>
</ul><p><span class="lpdoc-usage-header">Usage 6:</span><span class="lpdoc-usage-decl">:- <tt>doc(CommentType,Text)</tt>.
</span><p>Provides the physical and electronic <a class="lpdoc-idx-anchor" id="213" href="lpdoc_ref_mansearch.html#address"><em>address</em></a>, or any other contact information for the authors of the module or application.<p><ul> <li><em>Example:</em> </ul> <pre class="lpdoc-codeblock">
:- doc(address,"Syracuse University").</pre></p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="215" href="lpdoc_ref_mansearch.html#= /2"><tt>= /2</tt></a>)</span><span><a class="lpdoc-idx-anchor" id="214" href="lpdoc_ref_mansearch.html#address=CommentType"><tt>address=CommentType</tt></a>
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="216" href="#docstring/1"><tt>docstring/1</tt></a>)</span><span><span class="lpdoc-var">Text</span> is a <em>documentation string</em>.
</span>
</ul><p><span class="lpdoc-usage-header">Usage 7:</span><span class="lpdoc-usage-decl">:- <tt>doc(CommentType,AckText)</tt>.
</span><p>Provides <a class="lpdoc-idx-anchor" id="2