bracetax

Simple and deterministic text processing syntax
type alignment = [
| `right
| `center
| `left
]
type cell = {
is_head : bool;
cols_used : int;
rows_used : int;
align : alignment;
cell_text : Buffer.t;
}
val default_default_align : alignment
type table = {
col_nb : int;
label : string option;
mutable cells : cell list;
mutable current_cell : cell option;
caption : Buffer.t;
default_align : alignment;
}
val table_args : string list -> int * string option * alignment
val cell_arguments : table -> string list -> bool * int * int * alignment
val write : table -> string -> unit
val start : string list -> table * [> `table of int * string option ] * ( string -> unit )
val cell_start : loc:Bracetax_error.location -> error:Bracetax_error.error_fun -> table -> string list -> [> `cell of bool * int * alignment ]
val cell_stop : loc:'a -> error:Bracetax_error.error_fun -> table -> unit
module Util : sig ... end

Utilities for printing tables without too much headache.