ocaml-containers/2.1/containers/CCParse/Infix/index.html
2018-03-28 20:36:52 -05:00

13 lines
No EOL
5.6 KiB
HTML

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Infix (containers.CCParse.Infix)</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">CCParse.Infix</span></h1></header><div class="spec val" id="val-(&gt;|=)"><a href="#val-(&gt;|=)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(&gt;|=) : <span class="type-var">'a</span> <a href="../index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="../index.html#type-t">t</a></code></div><div class="doc"><p>Map.</p></div></div><div class="spec val" id="val-(&gt;&gt;=)"><a href="#val-(&gt;&gt;=)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(&gt;&gt;=) : <span class="type-var">'a</span> <a href="../index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="../index.html#type-t">t</a>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="../index.html#type-t">t</a></code></div><div class="doc"><p>Monadic bind.
<code class="code">p &gt;&gt;= f</code> results in a new parser which behaves as <code class="code">p</code> then,
in case of success, applies <code class="code">f</code> to the result.</p></div></div><div class="spec val" id="val-(&lt;*&gt;)"><a href="#val-(&lt;*&gt;)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(&lt;*&gt;) : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <a href="../index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="../index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="../index.html#type-t">t</a></code></div><div class="doc"><p>Applicative.</p></div></div><div class="spec val" id="val-(&lt;*)"><a href="#val-(&lt;*)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(&lt;*) : <span class="type-var">'a</span> <a href="../index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">_</span> <a href="../index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="../index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">a &lt;* b</code> parses <code class="code">a</code> into <code class="code">x</code>, parses <code class="code">b</code> and ignores its result,
and returns <code class="code">x</code>.</p></div></div><div class="spec val" id="val-(*&gt;)"><a href="#val-(*&gt;)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(*&gt;) : <span class="type-var">_</span> <a href="../index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="../index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="../index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">a *&gt; b</code> parses <code class="code">a</code>, then parses <code class="code">b</code> into <code class="code">x</code>, and returns <code class="code">x</code>. The
results of <code class="code">a</code> is ignored.</p></div></div><div class="spec val" id="val-(&lt;|&gt;)"><a href="#val-(&lt;|&gt;)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(&lt;|&gt;) : <span class="type-var">'a</span> <a href="../index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="../index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="../index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">a &lt;|&gt; b</code> tries to parse <code class="code">a</code>, and if <code class="code">a</code> fails without
consuming any input, backtracks and tries
to parse <code class="code">b</code>, otherwise it fails as <code class="code">a</code>.
See <a href="../index.html#val-try_">try_</a> to ensure <code class="code">a</code> does not consume anything (but it is best
to avoid wrapping large parsers with <a href="../index.html#val-try_">try_</a>).</p></div></div><div class="spec val" id="val-(&lt;?&gt;)"><a href="#val-(&lt;?&gt;)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(&lt;?&gt;) : <span class="type-var">'a</span> <a href="../index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="../index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">a &lt;?&gt; msg</code> behaves like <code class="code">a</code>, but if <code class="code">a</code> fails without
consuming any input, it fails with <code class="code">msg</code>
instead. Useful as the last choice in a series of <code class="code">&lt;|&gt;</code>:
<code class="code">a &lt;|&gt; b &lt;|&gt; c &lt;?&gt; &quot;expected a|b|c&quot;</code>.</p></div></div></body></html>