Complete syntax section

This commit is contained in:
Victor Zverovich 2016-08-25 07:23:04 -07:00
parent 04335aeadb
commit 2ae6bca488

View File

@ -516,24 +516,24 @@ The meaning of the various alignment options is as follows:
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td>'&lt;'</td> <td><code>'&lt;'</code></td>
<td>Forces the field to be left-aligned within the available space (this is <td>Forces the field to be left-aligned within the available space (this is
the default for most objects).</td> the default for most objects).</td>
</tr> </tr>
<tr> <tr>
<td>'&gt;'</td> <td><code>'&gt;'</code></td>
<td>Forces the field to be right-aligned within the available space (this is <td>Forces the field to be right-aligned within the available space (this is
the default for numbers).</td> the default for numbers).</td>
</tr> </tr>
<tr> <tr>
<td>'='</td> <td><code>'='</code></td>
<td>Forces the padding to be placed after the sign (if any) but before the <td>Forces the padding to be placed after the sign (if any) but before the
digits. This is used for printing fields in the form digits. This is used for printing fields in the form
<code>+000000120</code>. This alignment option is only valid for numeric <code>+000000120</code>. This alignment option is only valid for numeric
types.</td> types.</td>
</tr> </tr>
<tr> <tr>
<td>'^'</td> <td><code>'^'</code></td>
<td>Forces the field to be centered within the available space.</td> <td>Forces the field to be centered within the available space.</td>
</tr> </tr>
</tbody> </tbody>
@ -556,12 +556,12 @@ the following:
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td>'+'</td> <td><code>'+'</code></td>
<td>Indicates that a sign should be used for both positive as well as negative <td>Indicates that a sign should be used for both positive as well as negative
numbers.</td> numbers.</td>
</tr> </tr>
<tr> <tr>
<td>'-'</td> <td><code>'-'</code></td>
<td>Indicates that a sign should be used only for negative numbers (this is <td>Indicates that a sign should be used only for negative numbers (this is
the default behavior).</td> the default behavior).</td>
</tr> </tr>
@ -573,7 +573,223 @@ the following:
</tbody> </tbody>
</table> </table>
<p>TODO</p> <p>
The <code>'#'</code> option causes the <em>alternate form</em to be used for
the conversion. The alternate form is defined differently for different types.
This option is only valid for integer and floating-point types. For integers,
when binary, octal, or hexadecimal output is used, this option adds the prefix
respective <code>"0b"</code> (<code>"0B"</code>), <code>"0"</code>, or
<code>"0x"</code> (<code>"0X"</code>) to the output value. Whether the prefix
is lower-case or upper-case is determined by the case of the type specifier,
for example, the prefix <code>"0x"</code> is used for the type <code>'x'</code>
and <code>"0X"</code> is used for <code>'X'</code>. For floating-point numbers
the alternate form causes the result of the conversion to always contain a
decimal-point character, even if no digits follow it. Normally, a decimal-point
character appears in the result of these conversions only if a digit follows it.
In addition, for <code>'g'</code> and <code>'G'</code> conversions, trailing
zeros are not removed from the result.
</p>
<p>
<code>width</code> is a decimal integer defining the minimum field width. If
not specified, then the field width will be determined by the content.
</p>
<p>
Preceding the <code>width</code> field by a zero (<code>'0'</code>) character
enables sign-aware zero-padding for numeric types. This is equivalent to a
<code>fill</code> character of <code>'0'</code> with an <code>alignment</code>
type of <code>'='</code>.
</p>
<p>
The <code>precision</code> is a decimal number indicating how many digits should
be displayed after the decimal point for a floating-point value formatted with
<code>'f'</code> and <code>'F'</code>, or before and after the decimal point
for a floating-point value formatted with <code>'g'</code> or <code>'G'</code>.
For non-number types the field indicates the maximum field size - in other
words, how many characters will be used from the field content. The
<code>precision</code> is not allowed for integer, character, Boolean, and
pointer values.
</p>
<p>
Finally, the <code>type</code> determines how the data should be presented.
</p>
<p>The available string presentation types are:</p>
<table>
<thead>
<tr><th>Type</th><th>Meaning</th></tr>
</thead>
<tbody>
<tr>
<td><code>'s'</code></td>
<td>String format. This is the default type for strings and may be omitted.</td>
</tr>
<tr>
<td>none</td>
<td>The same as <code>'s'</code>.</td>
</tr>
</tbody>
</table>
<p>The available character presentation types are:</p>
<table>
<thead>
<tr><th>Type</th><th>Meaning</th></tr>
</thead>
<tbody>
<tr>
<td><code>'c'</code></td>
<td>Character format. This is the default type for characters and may be
omitted.</td>
</tr>
<tr>
<td>none</td>
<td>The same as <code>'c'</code>.</td>
</tr>
</tbody>
</table>
<p>The available integer presentation types are:</p>
<table>
<thead>
<tr><th>Type</th><th>Meaning</th></tr>
</thead>
<tbody>
<tr>
<td><code>'b'</code></td>
<td>Binary format. Outputs the number in base 2. Using the <code>'#'</code>
option with this type adds the prefix <code>"0b"</code> to the output
value.</td>
</tr>
<tr>
<td><code>'B'</code></td>
<td>Binary format. Outputs the number in base 2. Using the <code>'#'</code>
option with this type adds the prefix <code>"0B"</code> to the output
value.</td>
</tr>
<tr>
<td><code>'d'</code></td>
<td>Decimal integer. Outputs the number in base 10.</td>
</tr>
<tr>
<td><code>'o'</code></td>
<td>Octal format. Outputs the number in base 8.</td>
</tr>
<tr>
<td><code>'x'</code></td>
<td>Hex format. Outputs the number in base 16, using lower-case letters for the
digits above 9. Using the <code>'#'</code> option with this type adds the
prefix <code>"0x"</code> to the output value.</td>
</tr>
<tr>
<td><code>'X'</code></td>
<td>Hex format. Outputs the number in base 16, using upper-case letters for the
digits above 9. Using the <code>'#'</code> option with this type adds the
prefix <code>"0X"</code> to the output value.</td>
</tr>
<tr>
<td><code>'n'</code></td>
<td>Number. This is the same as <code>'d'</code>, except that it uses the
current locale setting to insert the appropriate number separator
characters.</td>
</tr>
<tr>
<td>none</td>
<td>The same as <code>'d'</code>.</td>
</tr>
</tbody>
</table>
<p>
Integer presentation types can also be used with character and Boolean values.
Boolean values are formatted using textual representation, either true or false,
if the presentation type is not specified.
</p>
<p>The available presentation types for floating-point values are:</p>
<table>
<thead>
<tr><th>Type</th><th>Meaning</th></tr>
</thead>
<tbody>
<tr>
<td><code>'a'</code></td>
<td>Hexadecimal floating point format. Prints the number in base 16 with prefix
<code>"0x"</code> and lower-case letters for digits above 9. Uses
<code>'p'</code> to indicate the exponent.</td>
</tr>
<tr>
<td><code>'A'</code></td>
<td>Same as <code>'a'</code> except it uses upper-case letters for the prefix,
digits above 9 and to indicate the exponent.</td>
</tr>
<tr>
<td><code>'e'</code></td>
<td>Exponent notation. Prints the number in scientific notation using the
letter <code>'e'</code> to indicate the exponent.</td>
</tr>
<tr>
<td><code>'E'</code></td>
<td>Exponent notation. Same as <code>'e'</code> except it uses an upper-case
<code>'E'</code> as the separator character.</td>
</tr>
<tr>
<td><code>'f'</code></td>
<td>Fixed point. Displays the number as a fixed-point number.</td>
</tr>
<tr>
<td><code>'F'</code></td>
<td>Fixed point. Same as <code>'f'</code>, but converts <code>nan</code> to
<code>NAN</code> and <code>inf</code> to <code>INF</code>.</td>
</tr>
<tr>
<td><code>'g'</code></td>
<td>General format. For a given precision <code>p >= 1</code>, this rounds the
number to <code>p</code> significant digits and then formats the result in
either fixed-point format or in scientific notation, depending on its
magnitude.
A precision of <code>0</code> is treated as equivalent to a precision of
<code>1</code>.</td>
</tr>
<tr>
<td><code>'n'</code></td>
<td>Number. This is the same as <code>'g'</code>, except that it uses the
current locale setting to insert the appropriate number separator
characters.</td>
</tr>
<tr>
<td>none</td>
<td>The same as <code>'g'</code>.</td>
</tr>
</tbody>
</table>
<p>The available presentation types for pointers are:</p>
<table>
<thead>
<tr><th>Type</th><th>Meaning</th></tr>
</thead>
<tbody>
<tr>
<td><code>'p'</code></td>
<td>Pointer format. This is the default type for pointers and may be
omitted.</td>
</tr>
<tr>
<td>none</td>
<td>The same as <code>'p'</code>.</td>
</tr>
</tbody>
</table>
<h3>Class <code>format_error</code></h3> <h3>Class <code>format_error</code></h3>