tiny_httpd/ocaml/Format_doc/index.html
2025-01-30 03:35:54 +00:00

44 lines
30 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>Format_doc (ocaml.Format_doc)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.4"/><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">ocaml</a> &#x00BB; Format_doc</nav><header class="odoc-preamble"><h1>Module <code><span>Format_doc</span></code></h1><p>Composable document for the <code>Format</code> formatting engine.</p></header><nav class="odoc-toc"><ul><li><a href="#compatibility-api">Compatibility API</a><ul><li><a href="#format-string-interpreters">Format string interpreters</a></li><li><a href="#compatibility-with-">Compatibility with <code>Doc</code></a></li><li><a href="#source-compatibility-with-format">Source compatibility with Format</a><ul><li><a href="#string-printers">String printers</a></li><li><a href="#primitive-type-printers">Primitive type printers</a></li><li><a href="#printer-combinators">Printer combinators</a></li><li><a href="#boxes-and-tags">Boxes and tags</a></li><li><a href="#break-hints">Break hints</a></li><li><a href="#tabulations">Tabulations</a></li><li><a href="#newlines-and-flushing">Newlines and flushing</a></li></ul></li></ul></li><li><a href="#compiler-specific-functions">Compiler specific functions</a><ul><li><a href="#separators">Separators</a></li><li><a href="#compiler-output">Compiler output</a></li></ul></li></ul></nav><div class="odoc-content"><p>This module introduces a pure and immutable document type which represents a sequence of formatting instructions to be printed by a formatting engine at later point. At the same time, it also provides format string interpreter which produces this document type from format string and their associated printers.</p><p>The module is designed to be source compatible with code defining format printers: replacing `Format` by `Format_doc` in your code will convert `Format` printers to `Format_doc` printers.</p><div class="odoc-spec"><div class="spec module anchored" id="module-Doc"><a href="#module-Doc" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Doc/index.html">Doc</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Definitions and immutable API for composing documents</p></div></div><h2 id="compatibility-api"><a href="#compatibility-api" class="anchor"></a>Compatibility API</h2><p>The functions and types below provides source compatibility with format printers and conversion function from <a href="#"><code>Format_doc</code></a> printers to <code>Format</code> printers. The reverse direction is implemented using an escape hatch in the formatting instruction and should only be used to preserve backward compatibility.</p><div class="odoc-spec"><div class="spec type anchored" id="type-doc"><a href="#type-doc" class="anchor"></a><code><span><span class="keyword">type</span> doc</span><span> = <a href="Doc/index.html#type-t">Doc.t</a></span></code></div></div><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> = <a href="#type-doc">doc</a></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-formatter"><a href="#type-formatter" class="anchor"></a><code><span><span class="keyword">type</span> formatter</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-printer"><a href="#type-printer" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a printer</span></span><span> = <span><a href="#type-formatter">formatter</a> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-formatter"><a href="#val-formatter" class="anchor"></a><code><span><span class="keyword">val</span> formatter : <span><span><a href="#type-doc">doc</a> <a href="../Stdlib/index.html#type-ref">ref</a></span> <span class="arrow">&#45;&gt;</span></span> <a href="#type-formatter">formatter</a></span></code></div><div class="spec-doc"><p><code>formatter rdoc</code> creates a <a href="#val-formatter"><code>formatter</code></a> that updates the <code>rdoc</code> reference</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-format_printer"><a href="#type-format_printer" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a format_printer</span></span><span> = <span><a href="../Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Translate a <a href="#"><code>Format_doc</code></a> printer to a <code>Format</code> one.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compat"><a href="#val-compat" class="anchor"></a><code><span><span class="keyword">val</span> compat : <span><span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="#type-format_printer">format_printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compat1"><a href="#val-compat1" class="anchor"></a><code><span><span class="keyword">val</span> compat1 : <span><span>(<span><span class="type-var">'p1</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'p1</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="#type-format_printer">format_printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compat2"><a href="#val-compat2" class="anchor"></a><code><span><span class="keyword">val</span> compat2 : <span><span>(<span><span class="type-var">'p1</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'p2</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'p1</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'p2</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="#type-format_printer">format_printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-deprecated_printer"><a href="#val-deprecated_printer" class="anchor"></a><code><span><span class="keyword">val</span> deprecated_printer : <span><span>(<span><a href="../Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-formatter">formatter</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>If necessary, embbed a <code>Format</code> printer inside a formatting instruction stream. This breaks every guarantees provided by <a href="#"><code>Format_doc</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-deprecated"><a href="#val-deprecated" class="anchor"></a><code><span><span class="keyword">val</span> deprecated : <span><span><span class="type-var">'a</span> <a href="#type-format_printer">format_printer</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-deprecated1"><a href="#val-deprecated1" class="anchor"></a><code><span><span class="keyword">val</span> deprecated1 : <span><span>(<span><span class="type-var">'p1</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="#type-format_printer">format_printer</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'p1</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span></span></code></div></div><h3 id="format-string-interpreters"><a href="#format-string-interpreters" class="anchor"></a>Format string interpreters</h3><div class="odoc-spec"><div class="spec value anchored" id="val-fprintf"><a href="#val-fprintf" class="anchor"></a><code><span><span class="keyword">val</span> fprintf : <span><a href="#type-formatter">formatter</a> <span class="arrow">&#45;&gt;</span></span> <span><span><span>(<span class="type-var">'a</span>, <a href="#type-formatter">formatter</a>, unit)</span> <a href="../Stdlib/index.html#type-format">format</a></span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-kfprintf"><a href="#val-kfprintf" class="anchor"></a><code><span><span class="keyword">val</span> kfprintf :
<span><span>(<span><a href="#type-formatter">formatter</a> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="#type-formatter">formatter</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span>(<span class="type-var">'b</span>, <a href="#type-formatter">formatter</a>, unit, <span class="type-var">'a</span>)</span> <a href="../Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">&#45;&gt;</span></span>
<span class="type-var">'b</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-asprintf"><a href="#val-asprintf" class="anchor"></a><code><span><span class="keyword">val</span> asprintf : <span><span><span>(<span class="type-var">'a</span>, <a href="#type-formatter">formatter</a>, unit, string)</span> <a href="../Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-kasprintf"><a href="#val-kasprintf" class="anchor"></a><code><span><span class="keyword">val</span> kasprintf : <span><span>(<span>string <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>(<span class="type-var">'b</span>, <a href="#type-formatter">formatter</a>, unit, <span class="type-var">'a</span>)</span> <a href="../Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-dprintf"><a href="#val-dprintf" class="anchor"></a><code><span><span class="keyword">val</span> dprintf : <span><span><span>(<span class="type-var">'a</span>, <a href="#type-formatter">formatter</a>, unit, <span><a href="#type-formatter">formatter</a> <span class="arrow">&#45;&gt;</span></span> unit)</span> <a href="../Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-kdprintf"><a href="#val-kdprintf" class="anchor"></a><code><span><span class="keyword">val</span> kdprintf :
<span><span>(<span><span>(<span><a href="#type-formatter">formatter</a> <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span><span>(<span class="type-var">'b</span>, <a href="#type-formatter">formatter</a>, unit, <span class="type-var">'a</span>)</span> <a href="../Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">&#45;&gt;</span></span>
<span class="type-var">'b</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-doc_printf"><a href="#val-doc_printf" class="anchor"></a><code><span><span class="keyword">val</span> doc_printf : <span><span><span>(<span class="type-var">'a</span>, <a href="#type-formatter">formatter</a>, unit, <a href="#type-doc">doc</a>)</span> <a href="../Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><a href="#val-doc_printf"><code>doc_printf</code></a> and <a href="#val-kdoc_printf"><code>kdoc_printf</code></a> creates a document directly</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-kdoc_printf"><a href="#val-kdoc_printf" class="anchor"></a><code><span><span class="keyword">val</span> kdoc_printf : <span><span>(<span><a href="#type-doc">doc</a> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'r</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>(<span class="type-var">'a</span>, <a href="#type-formatter">formatter</a>, unit, <span class="type-var">'r</span>)</span> <a href="../Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span></span></code></div></div><h3 id="compatibility-with-"><a href="#compatibility-with-" class="anchor"></a>Compatibility with <a href="Doc/index.html"><code>Doc</code></a></h3><div class="odoc-spec"><div class="spec value anchored" id="val-doc_printer"><a href="#val-doc_printer" class="anchor"></a><code><span><span class="keyword">val</span> doc_printer : <span><span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="Doc/index.html#type-printer">Doc.printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_doc"><a href="#val-pp_doc" class="anchor"></a><code><span><span class="keyword">val</span> pp_doc : <span><a href="#type-doc">doc</a> <a href="#type-printer">printer</a></span></span></code></div></div><h3 id="source-compatibility-with-format"><a href="#source-compatibility-with-format" class="anchor"></a>Source compatibility with Format</h3><h4 id="string-printers"><a href="#string-printers" class="anchor"></a>String printers</h4><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_string"><a href="#val-pp_print_string" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_string : <span>string <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_substring"><a href="#val-pp_print_substring" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_substring : <span><span class="label">pos</span>:int <span class="arrow">&#45;&gt;</span></span> <span><span class="label">len</span>:int <span class="arrow">&#45;&gt;</span></span> <span>string <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_text"><a href="#val-pp_print_text" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_text : <span>string <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_bytes"><a href="#val-pp_print_bytes" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_bytes : <span>bytes <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_as"><a href="#val-pp_print_as" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_as : <span><a href="#type-formatter">formatter</a> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_substring_as"><a href="#val-pp_print_substring_as" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_substring_as :
<span><span class="label">pos</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">len</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><a href="#type-formatter">formatter</a> <span class="arrow">&#45;&gt;</span></span>
<span>int <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div></div><h4 id="primitive-type-printers"><a href="#primitive-type-printers" class="anchor"></a>Primitive type printers</h4><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_char"><a href="#val-pp_print_char" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_char : <span>char <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_int"><a href="#val-pp_print_int" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_int : <span>int <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_float"><a href="#val-pp_print_float" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_float : <span>float <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_bool"><a href="#val-pp_print_bool" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_bool : <span>bool <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_nothing"><a href="#val-pp_print_nothing" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_nothing : <span>unit <a href="#type-printer">printer</a></span></span></code></div></div><h4 id="printer-combinators"><a href="#printer-combinators" class="anchor"></a>Printer combinators</h4><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_iter"><a href="#val-pp_print_iter" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_iter :
<span><span class="optlabel">?pp_sep</span>:<span>unit <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="type-var">'b</span> <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_list"><a href="#val-pp_print_list" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_list : <span><span class="optlabel">?pp_sep</span>:<span>unit <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> list</span> <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_array"><a href="#val-pp_print_array" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_array : <span><span class="optlabel">?pp_sep</span>:<span>unit <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> array</span> <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_seq"><a href="#val-pp_print_seq" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_seq :
<span><span class="optlabel">?pp_sep</span>:<span>unit <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'a</span> <a href="../Stdlib/Seq/index.html#type-t">Stdlib.Seq.t</a></span> <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_option"><a href="#val-pp_print_option" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_option : <span><span class="optlabel">?none</span>:<span>unit <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> option</span> <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_result"><a href="#val-pp_print_result" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_result :
<span><span class="label">ok</span>:<span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">error</span>:<span><span class="type-var">'e</span> <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../Stdlib/index.html#type-result">result</a></span> <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_either"><a href="#val-pp_print_either" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_either :
<span><span class="label">left</span>:<span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">right</span>:<span><span class="type-var">'b</span> <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="../Stdlib/Either/index.html#type-t">Stdlib.Either.t</a></span> <a href="#type-printer">printer</a></span></span></code></div></div><h4 id="boxes-and-tags"><a href="#boxes-and-tags" class="anchor"></a>Boxes and tags</h4><div class="odoc-spec"><div class="spec value anchored" id="val-pp_open_stag"><a href="#val-pp_open_stag" class="anchor"></a><code><span><span class="keyword">val</span> pp_open_stag : <span><a href="../Stdlib/Format/index.html#type-stag">Stdlib.Format.stag</a> <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_close_stag"><a href="#val-pp_close_stag" class="anchor"></a><code><span><span class="keyword">val</span> pp_close_stag : <span>unit <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_open_box"><a href="#val-pp_open_box" class="anchor"></a><code><span><span class="keyword">val</span> pp_open_box : <span>int <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_close_box"><a href="#val-pp_close_box" class="anchor"></a><code><span><span class="keyword">val</span> pp_close_box : <span>unit <a href="#type-printer">printer</a></span></span></code></div></div><h4 id="break-hints"><a href="#break-hints" class="anchor"></a>Break hints</h4><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_space"><a href="#val-pp_print_space" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_space : <span>unit <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_cut"><a href="#val-pp_print_cut" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_cut : <span>unit <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_break"><a href="#val-pp_print_break" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_break : <span><a href="#type-formatter">formatter</a> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_custom_break"><a href="#val-pp_print_custom_break" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_custom_break :
<span><a href="#type-formatter">formatter</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">fits</span>:<span>(string * int * string)</span> <span class="keyword">as</span> 'c <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">breaks</span>:<span class="type-var">'c</span> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div></div><h4 id="tabulations"><a href="#tabulations" class="anchor"></a>Tabulations</h4><div class="odoc-spec"><div class="spec value anchored" id="val-pp_open_tbox"><a href="#val-pp_open_tbox" class="anchor"></a><code><span><span class="keyword">val</span> pp_open_tbox : <span>unit <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_close_tbox"><a href="#val-pp_close_tbox" class="anchor"></a><code><span><span class="keyword">val</span> pp_close_tbox : <span>unit <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_set_tab"><a href="#val-pp_set_tab" class="anchor"></a><code><span><span class="keyword">val</span> pp_set_tab : <span>unit <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_tab"><a href="#val-pp_print_tab" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_tab : <span>unit <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_tbreak"><a href="#val-pp_print_tbreak" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_tbreak : <span><a href="#type-formatter">formatter</a> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><h4 id="newlines-and-flushing"><a href="#newlines-and-flushing" class="anchor"></a>Newlines and flushing</h4><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_if_newline"><a href="#val-pp_print_if_newline" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_if_newline : <span>unit <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_force_newline"><a href="#val-pp_force_newline" class="anchor"></a><code><span><span class="keyword">val</span> pp_force_newline : <span>unit <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_flush"><a href="#val-pp_print_flush" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_flush : <span>unit <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_print_newline"><a href="#val-pp_print_newline" class="anchor"></a><code><span><span class="keyword">val</span> pp_print_newline : <span>unit <a href="#type-printer">printer</a></span></span></code></div></div><h2 id="compiler-specific-functions"><a href="#compiler-specific-functions" class="anchor"></a>Compiler specific functions</h2><h3 id="separators"><a href="#separators" class="anchor"></a>Separators</h3><div class="odoc-spec"><div class="spec value anchored" id="val-comma"><a href="#val-comma" class="anchor"></a><code><span><span class="keyword">val</span> comma : <span>unit <a href="#type-printer">printer</a></span></span></code></div></div><h3 id="compiler-output"><a href="#compiler-output" class="anchor"></a>Compiler output</h3><div class="odoc-spec"><div class="spec value anchored" id="val-pp_two_columns"><a href="#val-pp_two_columns" class="anchor"></a><code><span><span class="keyword">val</span> pp_two_columns :
<span><span class="optlabel">?sep</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?max_lines</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><a href="#type-formatter">formatter</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span>(string * string)</span> list</span> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p><code>pp_two_columns ?sep ?max_lines ppf l</code> prints the lines in <code>l</code> as two columns separated by <code>sep</code> (&quot;|&quot; by default). <code>max_lines</code> can be used to indicate a maximum number of lines to print -- an ellipsis gets inserted at the middle if the input has too many lines.</p><p>Example:</p><pre>pp_two_columns ~max_lines:3 Format.std_formatter [
&quot;abc&quot;, &quot;hello&quot;;
&quot;def&quot;, &quot;zzz&quot;;
&quot;a&quot; , &quot;bllbl&quot;;
&quot;bb&quot; , &quot;dddddd&quot;;
]</pre><p>prints</p><pre> abc | hello
...
bb | dddddd</pre></div></div></div></body></html>