ocaml-containers/2.2/containers/CCSexp/index.html
2018-05-10 23:14:25 -05:00

8 lines
No EOL
15 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCSexp (containers.CCSexp)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">containers</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">CCSexp</span></h1></header><h2>Handling S-expressions</h2><div class="spec type" id="type-or_error"><a href="#type-or_error" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a or_error</code><code><span class="keyword"> = </span>(<span class="type-var">'a</span>, string) Result.result</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-sequence"><a href="#type-sequence" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a sequence</code><code><span class="keyword"> = </span>(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> unit</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-gen"><a href="#type-gen" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a gen</code><code><span class="keyword"> = </span>unit <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code><code></code></div><div class="doc"></div></div><h3>Basics</h3><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><span class="keyword"> = </span><code>[ </code><table class="variant"><tr id="type-t.Atom" class="anchored"><td class="def constructor"><a href="#type-t.Atom" class="anchor"></a><code><span class="keyword">| </span></code><code>`Atom<span class="keyword"> of </span>string</code></td></tr><tr id="type-t.List" class="anchored"><td class="def constructor"><a href="#type-t.List" class="anchor"></a><code><span class="keyword">| </span></code><code>`List<span class="keyword"> of </span><a href="index.html#type-t">t</a> list</code></td></tr></table><code> ]</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-sexp"><a href="#type-sexp" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>sexp</code><code><span class="keyword"> = </span><a href="index.html#type-t">t</a></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-equal"><a href="#val-equal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-compare"><a href="#val-compare" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div><div class="spec val" id="val-hash"><a href="#val-hash" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>hash : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div><div class="spec val" id="val-atom"><a href="#val-atom" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>atom : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Build an atom directly from a string.</p></div></div><div class="spec val" id="val-of_int"><a href="#val-of_int" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_int : int <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-of_bool"><a href="#val-of_bool" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_bool : bool <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-of_list"><a href="#val-of_list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_list : <a href="index.html#type-t">t</a> list <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-of_rev_list"><a href="#val-of_rev_list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_rev_list : <a href="index.html#type-t">t</a> list <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Reverse the list.</p></div></div><div class="spec val" id="val-of_float"><a href="#val-of_float" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_float : float <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Reverse the list.</p></div></div><div class="spec val" id="val-of_unit"><a href="#val-of_unit" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_unit : <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-of_pair"><a href="#val-of_pair" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_pair : (<a href="index.html#type-t">t</a><span class="keyword"> * </span><a href="index.html#type-t">t</a>) <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-of_triple"><a href="#val-of_triple" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_triple : (<a href="index.html#type-t">t</a><span class="keyword"> * </span><a href="index.html#type-t">t</a><span class="keyword"> * </span><a href="index.html#type-t">t</a>) <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-of_quad"><a href="#val-of_quad" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_quad : (<a href="index.html#type-t">t</a><span class="keyword"> * </span><a href="index.html#type-t">t</a><span class="keyword"> * </span><a href="index.html#type-t">t</a><span class="keyword"> * </span><a href="index.html#type-t">t</a>) <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-of_variant"><a href="#val-of_variant" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_variant : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> list <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">of_variant name args</code> is used to encode algebraic variants
into a S-expr. For instance <code class="code">of_variant &quot;some&quot; [of_int 1]</code>
represents the value <code class="code">Some 1</code>.</p></div></div><div class="spec val" id="val-of_field"><a href="#val-of_field" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_field : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Used to represent one record field.</p></div></div><div class="spec val" id="val-of_record"><a href="#val-of_record" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_record : (string<span class="keyword"> * </span><a href="index.html#type-t">t</a>) list <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Represent a record by its named fields.</p></div></div><h3>Printing</h3><div class="spec val" id="val-to_buf"><a href="#val-to_buf" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_buf : Buffer.t <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-to_string"><a href="#val-to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_string : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"></div></div><div class="spec val" id="val-to_file"><a href="#val-to_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_file : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-to_file_seq"><a href="#val-to_file_seq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_file_seq : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <a href="index.html#type-sequence">sequence</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Print the given sequence of expressions to a file.</p></div></div><div class="spec val" id="val-to_chan"><a href="#val-to_chan" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_chan : Pervasives.out_channel <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-pp"><a href="#val-pp" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp : Format.formatter <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Pretty-printer nice on human eyes (including indentation).</p></div></div><div class="spec val" id="val-pp_noindent"><a href="#val-pp_noindent" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_noindent : Format.formatter <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Raw, direct printing as compact as possible.</p></div></div><h3>Parsing</h3><div class="spec type" id="type-parse_result"><a href="#type-parse_result" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a parse_result</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-parse_result.Yield" class="anchored"><td class="def constructor"><a href="#type-parse_result.Yield" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Yield</span><span class="keyword"> of </span><span class="type-var">'a</span></code></td></tr><tr id="type-parse_result.Fail" class="anchored"><td class="def constructor"><a href="#type-parse_result.Fail" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Fail</span><span class="keyword"> of </span>string</code></td></tr><tr id="type-parse_result.End" class="anchored"><td class="def constructor"><a href="#type-parse_result.End" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">End</span></code></td></tr></table><code></code></div><div class="doc"><p>A parser of <code class="code">'a</code> can return <code class="code">Yield x</code> when it parsed a value,
or <code class="code">Fail e</code> when a parse error was encountered, or
<code class="code">End</code> if the input was empty.</p></div></div><div class="spec module" id="module-Decoder"><a href="#module-Decoder" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Decoder/index.html">Decoder</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec val" id="val-parse_string"><a href="#val-parse_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>parse_string : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <a href="index.html#type-or_error">or_error</a></code></div><div class="doc"><p>Parse a string.</p></div></div><div class="spec val" id="val-parse_chan"><a href="#val-parse_chan" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>parse_chan : Pervasives.in_channel <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <a href="index.html#type-or_error">or_error</a></code></div><div class="doc"><p>Parse a S-expression from the given channel. Can read more data than
necessary, so don't use this if you need finer-grained control (e.g.
to read something else <b>after</b> the S-exp).</p></div></div><div class="spec val" id="val-parse_chan_gen"><a href="#val-parse_chan_gen" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>parse_chan_gen : Pervasives.in_channel <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <a href="index.html#type-or_error">or_error</a> <a href="index.html#type-gen">gen</a></code></div><div class="doc"><p>Parse a channel into a generator of S-expressions.</p></div></div><div class="spec val" id="val-parse_chan_list"><a href="#val-parse_chan_list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>parse_chan_list : Pervasives.in_channel <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> list <a href="index.html#type-or_error">or_error</a></code></div><div class="doc"></div></div><div class="spec val" id="val-parse_file"><a href="#val-parse_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>parse_file : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <a href="index.html#type-or_error">or_error</a></code></div><div class="doc"><p>Open the file and read a S-exp from it.</p></div></div><div class="spec val" id="val-parse_file_list"><a href="#val-parse_file_list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>parse_file_list : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> list <a href="index.html#type-or_error">or_error</a></code></div><div class="doc"><p>Open the file and read a S-exp from it.</p></div></div></body></html>