autodoc.git/
traditional_manual/
chapter_21.html
Branch:
Tag:
Non-build tags
All tags
No tags
2019-07-04
2019-07-04 12:45:39 by Henrik Grubbström (Grubba) <grubba@grubba.org>
9add8172aef1ccab977fe06f690edc0e53343ca0 (
47
lines) (+
36
/-
11
)
[
Show
|
Annotate
]
Branch:
master
Documentation
[Traditional]
: Added some structure to the I/O chapter.
1:
<!doctype html><html><head><title>Pike Reference Manual</title> <meta charset='utf-8'></head> <body><dl><dt><h1 class='header'>21. Pike AutoDoc markup</h1></dt><dd></dd>
-
<dt><a name='1'></a>
+
<dt><a name='
21.
1'></a>
<h2 class='header'>21.1. Syntax</h2></dt>
-
<dd></dd><dt><h3 class='header'>21.1.1. Line orientation</h3></dt><dd><p>The markup is line oriented. If you need to write a line which is very
+
<dd></dd>
+
<dt><
a name='21.1.1'></a>
+
<
h3 class='header'>21.1.1. Line orientation</h3></dt>
+
<dd><p>The markup is line oriented. If you need to write a line which is very
long, it can be broken into several lines. A trailing <tt>@</tt> on the line indicates that it continues on the next line. The <tt>@</tt> and the newline character will be discarded, and the lines merged. Thus:</p><p></p><pre>
28:
<p> - I love you, said Danny.</p> <p> - You have no right to come here after what you did to my little dog, screamed Penny in despair.</p>
-
</pre></p></dd><dt><h3 class='header'>21.1.2. Keywords</h3></dt><dd><p>Keywords always begin with an at-sign: <tt>@</tt>. A <tt>@</tt> is quoted by writing two
+
</pre></p></dd>
+
<dt><
a name='21.1.2'></a>
+
<
h3 class='header'>21.1.2. Keywords</h3></dt>
+
<dd><p>Keywords always begin with an at-sign: <tt>@</tt>. A <tt>@</tt> is quoted by writing two
of them: <tt>@@</tt>. There are four types of keywords (the keywords in []'s are examples of keywords of the different types):</p><ol> <li><p> Meta keywords <tt>[@decl, @class, @endclass, @module and @endmodule]</tt>
76:
He is so <i>italic</i> and <b>bold</b>!!! </pre></p></li> </ol><p>NOTA BENE: Delimiter keywords (2) and block keywords (3) must stand
-
alone (with their parameters, if any) on one line.</p></dd><dt><h3 class='header'>21.1.3. Delimiter keyword grouping</h3></dt><dd><p>Delimiter keywords that indicate a new section inside the block can be
+
alone (with their parameters, if any) on one line.</p></dd>
+
<dt><
a name='21.1.3'></a>
+
<
h3 class='header'>21.1.3. Delimiter keyword grouping</h3></dt>
+
<dd><p>Delimiter keywords that indicate a new section inside the block can be
grouped together in the interest of not writing the same docstring for multiple parameters etc. Delimiters are grouped if they appear on consecutive lines. For example, when documenting a method:</p><p></p><pre>
94:
//! @note //! Don't use this function. At all. Ever. </pre><p></p>
-
</dd><dt><h3 class='header'>21.1.4. Keyword parameters</h3></dt><dd><p>After the leading <tt>@keyword</tt> (that may be preceded only by whitespace)
+
</dd>
+
<dt><
a name='21.1.4'></a>
+
<
h3 class='header'>21.1.4. Keyword parameters</h3></dt>
+
<dd><p>After the leading <tt>@keyword</tt> (that may be preceded only by whitespace)
on the line, the rest of the line is interpreted as a parameter list. The syntax of this parameter list can be different depending on the keyword:</p><ol>
147:
<p>The parameter will be a string with two characters, a backslash followed by the letter n.</p></li>
-
</ol></dd><dt><h3 class='header'>21.1.5. Grammar</h3></dt><dd><p>Here comes a BNF-ish grammar for documentation blocks. Note that
+
</ol></dd>
+
<dt><
a name='21.1.5'></a>
+
<
h3 class='header'>21.1.5. Grammar</h3></dt>
+
<dd><p>Here comes a BNF-ish grammar for documentation blocks. Note that
before the parsing of the block, all lines ending with a <tt>@</tt> will be merged with the next line (see (a) above)</p><p><pre> docblock:
211:
white_space: ' ' | '\t' </pre></p></dd>
-
<dt><a name='2'></a>
+
<dt><a name='
21.
2'></a>
<h2 class='header'>21.2. Pike autodoc inlining</h2></dt> <dd><p>The autodoc extractor works either in C mode or in Pike mode. The reason why the two modes are not the same is that they perform two
225:
on its own, but for C files, where the directory structure gives insufficient cues about what is what, there must be make targets set up manually. All generated XML files can then be merged together into
-
the final Pike namespace.</p></dd><dt><h3 class='header'>21.2.1. C files</h3></dt><dd><p>In C files, the doc comments look like:</p><p></p><pre>
+
the final Pike namespace.</p></dd>
+
<dt><
a name='21.2.1'></a>
+
<
h3 class='header'>21.2.1. C files</h3></dt>
+
<dd><p>In C files, the doc comments look like:</p><p></p><pre>
/*! yadda yadda *! yadda yadda yadda */
266:
directives in assembler source files. That is, you can have <tt>@module foo</tt> in several C files, if the module source is spread over multiple files. However, if you write doc for the module itself in several
-
places, an error will be triggered.</p></dd><dt><h3 class='header'>21.2.2. Pike files</h3></dt><dd><p>Doc comments look like:</p><p></p><pre>
+
places, an error will be triggered.</p></dd>
+
<dt><
a name='21.2.2'></a>
+
<
h3 class='header'>21.2.2. Pike files</h3></dt>
+
<dd><p>Doc comments look like:</p><p></p><pre>
//! yadda yadda yadda //! yadda yadda </pre><p></p>
440:
//! @endignore </pre><p></p> </dd>
-
<dt><a name='3'></a>
+
<dt><a name='
21.
3'></a>
<h2 class='header'>21.3. Pike autodoc tags</h2></dt> <dd><p>We have defined some different categories of markup, each with its own semantics. Seen from the parser, there are two main construct levels:</p><ul>
461:
<li><p> short text markup constructs that basically map to XML containers (<tt>@i{...@}, @ref{...@}</tt>)</p></li>
-
</ul></dd><dt><h3 class='header'>21.3.1. Meta level tags</h3></dt><dd><p>These tags all serve the purpose of denoting what pike entities your
+
</ul></dd>
+
<dt><
a name='21.3.1'></a>
+
<
h3 class='header'>21.3.1. Meta level tags</h3></dt>
+
<dd><p>These tags all serve the purpose of denoting what pike entities your
comments should be tied to. This is particularly needed in (and in part only applies to) C files, where the autodoc extractor does not try to interpret and parse class and method definitions.</p><p><pre>