<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 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_rope</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> rope = <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">exception</span> <span class="constructor">Out_of_bounds</span><br> <span class="keyword">val</span> empty : <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> make : int <span class="keywordsign">-></span> <span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> rev_init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> singleton : <span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> length : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> is_empty : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> of_string : string <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> to_string : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> get : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> append : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> concat : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t list <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> sub : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> break : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t * <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> before : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> after : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> insert : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> remove : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> replace : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> lchop : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> rchop : <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> iter : (<span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> rev_iter : (<span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (<span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> rev_fold :<br> (<span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> map :<br> (<span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t) <span class="keywordsign">-></span><br> <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> rev_map :<br> (<span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t) <span class="keywordsign">-></span><br> <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t<br> <span class="keyword">val</span> iter_leaf : (<span class="constructor">Zed_utf8</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> rev_iter_leaf : (<span class="constructor">Zed_utf8</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold_leaf : (<span class="constructor">Zed_utf8</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> rev_fold_leaf : (<span class="constructor">Zed_utf8</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">module</span> <span class="constructor">Zip</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> make_f : <span class="constructor">Zed_rope</span>.rope <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t<br> <span class="keyword">val</span> make_b : <span class="constructor">Zed_rope</span>.rope <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t<br> <span class="keyword">val</span> offset : <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> next : <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t <span class="keywordsign">-></span> <span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t * <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t<br> <span class="keyword">val</span> prev : <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t <span class="keywordsign">-></span> <span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t * <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t<br> <span class="keyword">val</span> move : int <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t<br> <span class="keyword">val</span> at_bos : <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_eos : <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> find_f :<br> (<span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t<br> <span class="keyword">val</span> find_b :<br> (<span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t<br> <span class="keyword">val</span> sub : <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.rope<br> <span class="keyword">val</span> slice : <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.<span class="constructor">Zip</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.rope<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Buffer</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> create : unit <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.<span class="constructor">Buffer</span>.t<br> <span class="keyword">val</span> add : <span class="constructor">Zed_rope</span>.<span class="constructor">Buffer</span>.t <span class="keywordsign">-></span> <span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> contents : <span class="constructor">Zed_rope</span>.<span class="constructor">Buffer</span>.t <span class="keywordsign">-></span> <span class="constructor">Zed_rope</span>.rope<br> <span class="keyword">val</span> reset : <span class="constructor">Zed_rope</span>.<span class="constructor">Buffer</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Text</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = rope<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> length : t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index = <span class="constructor">Zip</span>.t<br> <span class="keyword">val</span> look : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> nth : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> next : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> prev : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> out_of_range : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (<span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> first : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> last : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> move : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> compare_index : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">CamomileLibrary</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">end</span></code></body></html>