ocaml-trace/sexplib0/Sexplib0/Sexp/index.html
2024-03-08 16:51:12 +00:00

5 lines
No EOL
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. 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>Sexp (sexplib0.Sexplib0.Sexp)</title><link rel="stylesheet" href="../../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.2"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../index.html">sexplib0</a> &#x00BB; <a href="../index.html">Sexplib0</a> &#x00BB; Sexp</nav><header class="odoc-preamble"><h1>Module <code><span>Sexplib0.Sexp</span></code></h1><p>Type of S-expressions</p></header><nav class="odoc-toc"><ul><li><a href="#helpers">Helpers</a></li><li><a href="#defaults">Defaults</a></li><li><a href="#pretty-printing-of-s-expressions">Pretty printing of S-expressions</a></li><li><a href="#conversion-to-strings">Conversion to strings</a></li><li><a href="#styles">Styles</a></li></ul></nav><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = </span></code><ol><li id="type-t.Atom" class="def variant constructor anchored"><a href="#type-t.Atom" class="anchor"></a><code><span>| </span><span><span class="constructor">Atom</span> <span class="keyword">of</span> string</span></code></li><li id="type-t.List" class="def variant constructor anchored"><a href="#type-t.List" class="anchor"></a><code><span>| </span><span><span class="constructor">List</span> <span class="keyword">of</span> <span><a href="#type-t">t</a> list</span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-t_of_sexp"><a href="#val-t_of_sexp" class="anchor"></a><code><span><span class="keyword">val</span> t_of_sexp : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-sexp_of_t"><a href="#val-sexp_of_t" class="anchor"></a><code><span><span class="keyword">val</span> sexp_of_t : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span><span class="keyword">val</span> equal : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span><span class="keyword">val</span> compare : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec exception anchored" id="exception-Not_found_s"><a href="#exception-Not_found_s" class="anchor"></a><code><span><span class="keyword">exception</span> </span><span><span class="exception">Not_found_s</span> <span class="keyword">of</span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>Not_found_s</code> is used by functions that historically raised <code>Not_found</code>, to allow them to raise an exception that contains an informative error message (as a sexp), while still having an exception that can be distinguished from other exceptions.</p></div></div><div class="odoc-spec"><div class="spec exception anchored" id="exception-Of_sexp_error"><a href="#exception-Of_sexp_error" class="anchor"></a><code><span><span class="keyword">exception</span> </span><span><span class="exception">Of_sexp_error</span> <span class="keyword">of</span> exn * <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>Of_sexp_error (exn, sexp)</code> the exception raised when an S-expression could not be successfully converted to an OCaml-value.</p></div></div><h2 id="helpers"><a href="#helpers" class="anchor"></a>Helpers</h2><div class="odoc-spec"><div class="spec value anchored" id="val-message"><a href="#val-message" class="anchor"></a><code><span><span class="keyword">val</span> message : <span>string <span class="arrow">&#45;&gt;</span></span> <span><span><span>(string * <a href="#type-t">t</a>)</span> list</span> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Helper to build nice s-expressions for error messages. It imitates the behavior of <code>[%message ...]</code> from the ppx_sexp_message rewriter.</p><p><code>message name key_values</code> produces a s-expression list starting with atom <code>name</code> and followed by list of size 2 of the form <code>(key value)</code>. When the key is the empty string, <code>value</code> is used directly instead as for <code>[%message]</code>.</p><p>For instance the following code:</p><pre class="language-ocaml"><code>Sexp.message &quot;error&quot;
[ &quot;x&quot;, sexp_of_int 42
; &quot;&quot; , sexp_of_exn Exit
]</code></pre><p>produces the s-expression:</p><pre class="language-ocaml"><code>(error (x 42) Exit)</code></pre></div></div><h2 id="defaults"><a href="#defaults" class="anchor"></a>Defaults</h2><div class="odoc-spec"><div class="spec value anchored" id="val-default_indent"><a href="#val-default_indent" class="anchor"></a><code><span><span class="keyword">val</span> default_indent : <span>int <a href="../../../ocaml/Stdlib/index.html#type-ref">ref</a></span></span></code></div><div class="spec-doc"><p><code>default_indent</code> reference to default indentation level for human-readable conversions.</p><p>Initialisation value: 2.</p></div></div><h2 id="pretty-printing-of-s-expressions"><a href="#pretty-printing-of-s-expressions" class="anchor"></a>Pretty printing of S-expressions</h2><div class="odoc-spec"><div class="spec value anchored" id="val-pp_hum"><a href="#val-pp_hum" class="anchor"></a><code><span><span class="keyword">val</span> pp_hum : <span><a href="../../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>pp_hum ppf sexp</code> outputs S-expression <code>sexp</code> to formatter <code>ppf</code> in human readable form.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_hum_indent"><a href="#val-pp_hum_indent" class="anchor"></a><code><span><span class="keyword">val</span> pp_hum_indent : <span>int <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>pp_hum_indent n ppf sexp</code> outputs S-expression <code>sexp</code> to formatter <code>ppf</code> in human readable form and indentation level <code>n</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_mach"><a href="#val-pp_mach" class="anchor"></a><code><span><span class="keyword">val</span> pp_mach : <span><a href="../../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>pp_mach ppf sexp</code> outputs S-expression <code>sexp</code> to formatter <code>ppf</code> in machine readable (i.e. most compact) form.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp : <span><a href="../../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Same as <code>pp_mach</code>.</p></div></div><h2 id="conversion-to-strings"><a href="#conversion-to-strings" class="anchor"></a>Conversion to strings</h2><div class="odoc-spec"><div class="spec value anchored" id="val-to_string_hum"><a href="#val-to_string_hum" class="anchor"></a><code><span><span class="keyword">val</span> to_string_hum : <span>?indent:int <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> string</span></code></div><div class="spec-doc"><p><code>to_string_hum ?indent sexp</code> converts S-expression <code>sexp</code> to a string in human readable form with indentation level <code>indent</code>.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">indent</span> <p>default = <code>!default_indent</code></p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_string_mach"><a href="#val-to_string_mach" class="anchor"></a><code><span><span class="keyword">val</span> to_string_mach : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> string</span></code></div><div class="spec-doc"><p><code>to_string_mach sexp</code> converts S-expression <code>sexp</code> to a string in machine readable (i.e. most compact) form.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_string"><a href="#val-to_string" class="anchor"></a><code><span><span class="keyword">val</span> to_string : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> string</span></code></div><div class="spec-doc"><p>Same as <code>to_string_mach</code>.</p></div></div><h2 id="styles"><a href="#styles" class="anchor"></a>Styles</h2><div class="odoc-spec"><div class="spec value anchored" id="val-of_float_style"><a href="#val-of_float_style" class="anchor"></a><code><span><span class="keyword">val</span> of_float_style : <span><span>[ `Underscores <span>| `No_underscores</span> ]</span> <a href="../../../ocaml/Stdlib/index.html#type-ref">ref</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_int_style"><a href="#val-of_int_style" class="anchor"></a><code><span><span class="keyword">val</span> of_int_style : <span><span>[ `Underscores <span>| `No_underscores</span> ]</span> <a href="../../../ocaml/Stdlib/index.html#type-ref">ref</a></span></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Private"><a href="#module-Private" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Private/index.html">Private</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div></div></body></html>