<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link rel="Up" href="Zed_input.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Zed_utf8" rel="Chapter" href="Zed_utf8.html"> <link title="Zed_rope" rel="Chapter" href="Zed_rope.html"> <link title="Zed_edit" rel="Chapter" href="Zed_edit.html"> <link title="Zed_cursor" rel="Chapter" href="Zed_cursor.html"> <link title="Zed_lines" rel="Chapter" href="Zed_lines.html"> <link title="Zed_re" rel="Chapter" href="Zed_re.html"> <link title="Zed_input" rel="Chapter" href="Zed_input.html"> <link title="Zed_macro" rel="Chapter" href="Zed_macro.html"><title>Zed_input.Make</title> </head> <body> <div class="navbar"> <a class="up" href="Zed_input.html" title="Zed_input">Up</a> </div> <h1>Functor <a href="type_Zed_input.Make.html">Zed_input.Make</a></h1> <pre><span class="keyword">module</span> Make: <div class="sig_block"><code class="code">functor (</code><code class="code">Event</code><code class="code"> : </code><code class="type">Map.OrderedType</code><code class="code">) -> </code><code class="type"><a href="Zed_input.S.html">S</a></code><code class="type"> with type event = Event.t</code></div></pre><div class="info module top"> <code class="code">Make (Event)</code> makes a a new binder.<br> </div> <table border="0" cellpadding="3" width="100%"> <tr> <td align="left" valign="top" width="1%%"><b>Parameters: </b></td> <td> <table class="paramstable"> <tr> <td align="center" valign="top" width="15%"> <code>Event</code></td> <td align="center" valign="top">:</td> <td><code class="type">Map.OrderedType</code> </table> </td> </tr> </table> <hr width="100%"> <pre><span id="TYPEevent"><span class="keyword">type</span> <code class="type"></code>event</span> </pre> <div class="info "> Type of events.<br> </div> <pre><span id="TYPEt"><span class="keyword">type</span> <code class="type">+'a</code> t</span> </pre> <div class="info "> Type of set of bindings mapping input sequence to values of type <code class="code">'a</code>.<br> </div> <pre><span id="VALempty"><span class="keyword">val</span> empty</span> : <code class="type">'a <a href="Zed_input.S.html#TYPEt">t</a></code></pre><div class="info "> The empty set of bindings.<br> </div> <pre><span id="VALadd"><span class="keyword">val</span> add</span> : <code class="type"><a href="Zed_input.S.html#TYPEevent">event</a> list -> 'a -> 'a <a href="Zed_input.S.html#TYPEt">t</a> -> 'a <a href="Zed_input.S.html#TYPEt">t</a></code></pre><div class="info "> <code class="code">add events x bindings</code> binds <code class="code">events</code> to <code class="code">x</code>. It raises <code class="code">Invalid_argument</code> if <code class="code">events</code> is empty.<br> </div> <pre><span id="VALremove"><span class="keyword">val</span> remove</span> : <code class="type"><a href="Zed_input.S.html#TYPEevent">event</a> list -> 'a <a href="Zed_input.S.html#TYPEt">t</a> -> 'a <a href="Zed_input.S.html#TYPEt">t</a></code></pre><div class="info "> <code class="code">remove events bindings</code> unbinds <code class="code">events</code>. It raises <code class="code">Invalid_argument</code> if <code class="code">events</code> is empty.<br> </div> <pre><span id="VALfold"><span class="keyword">val</span> fold</span> : <code class="type">(<a href="Zed_input.S.html#TYPEevent">event</a> list -> 'a -> 'b -> 'b) -> 'a <a href="Zed_input.S.html#TYPEt">t</a> -> 'b -> 'b</code></pre><div class="info "> <code class="code">fold f set acc</code> executes <code class="code">f</code> on all sequence of <code class="code">set</code>, accumulating a value.<br> </div> <pre><span id="VALbindings"><span class="keyword">val</span> bindings</span> : <code class="type">'a <a href="Zed_input.S.html#TYPEt">t</a> -> (<a href="Zed_input.S.html#TYPEevent">event</a> list * 'a) list</code></pre><div class="info "> <code class="code">bindings set</code> returns all bindings of <code class="code">set</code>.<br> </div> <pre><span id="TYPEresolver"><span class="keyword">type</span> <code class="type">'a</code> resolver</span> </pre> <div class="info "> Type of a resolver. A resolver is used to resolve an input sequence, i.e. to find the value associated to one. It returns a value of type <code class="code">'a</code> when a matching sequence is found.<br> </div> <pre><span id="TYPEpack"><span class="keyword">type</span> <code class="type">'a</code> pack</span> </pre> <div class="info "> A pack is a pair of a set of bindings and a mapping function.<br> </div> <pre><span id="VALpack"><span class="keyword">val</span> pack</span> : <code class="type">('a -> 'b) -> 'a <a href="Zed_input.S.html#TYPEt">t</a> -> 'b <a href="Zed_input.S.html#TYPEpack">pack</a></code></pre><div class="info "> <code class="code">pack f set</code> creates a pack.<br> </div> <pre><span id="VALresolver"><span class="keyword">val</span> resolver</span> : <code class="type">'a <a href="Zed_input.S.html#TYPEpack">pack</a> list -> 'a <a href="Zed_input.S.html#TYPEresolver">resolver</a></code></pre><div class="info "> <code class="code">resolver packs</code> creates a resolver from a list of pack.<br> </div> <pre><code><span id="TYPEresult"><span class="keyword">type</span> <code class="type">'a</code> result</span> = </code></pre><table class="typetable"> <tr> <td align="left" valign="top" > <code><span class="keyword">|</span></code></td> <td align="left" valign="top" > <code><span id="TYPEELTresult.Accepted"><span class="constructor">Accepted</span></span> <span class="keyword">of</span> <code class="type">'a</code></code></td> <td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The sequence is terminated and associated to the given value.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> </tr> <tr> <td align="left" valign="top" > <code><span class="keyword">|</span></code></td> <td align="left" valign="top" > <code><span id="TYPEELTresult.Continue"><span class="constructor">Continue</span></span> <span class="keyword">of</span> <code class="type">'a <a href="Zed_input.S.html#TYPEresolver">resolver</a></code></code></td> <td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The sequence is not terminated.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> </tr> <tr> <td align="left" valign="top" > <code><span class="keyword">|</span></code></td> <td align="left" valign="top" > <code><span id="TYPEELTresult.Rejected"><span class="constructor">Rejected</span></span></code></td> <td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >None of the sequences is prefixed by the one.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> </tr></table> <div class="info "> Result of a resolving operation.<br> </div> <pre><span id="VALresolve"><span class="keyword">val</span> resolve</span> : <code class="type"><a href="Zed_input.S.html#TYPEevent">event</a> -> 'a <a href="Zed_input.S.html#TYPEresolver">resolver</a> -> 'a <a href="Zed_input.S.html#TYPEresult">result</a></code></pre><div class="info "> <code class="code">resolve event resolver</code> tries to resolve <code class="code">event</code> using <code class="code">resolver</code>.<br> </div> </body></html>