bracetax

Simple and deterministic text processing syntax
type image_size = [
| `none
| `wpx of int
| `wpercent of int
]
type environment = [
| `cmd_end
| `cmd_inside of environment
| `cmd_begin of string * string list
| `unknown of string * string list
| `italic
| `bold
| `mono_space
| `superscript
| `subscript
| `paragraph
| `new_line
| `quotation of string * string
| `non_break_space
| `horizontal_ellipsis
| `en_dash
| `em_dash
| `open_brace
| `close_brace
| `sharp
| `utf8_char of int
| `code of string list
| `bypass
| `text
| `ignore
| `list of [ `itemize | `numbered ] * string list * bool ref
| `item
| `section of int * string
| `image of string * image_size * string
| `header
| `title
| `authors
| `subtitle
| `table of int * string option
| `cell of bool * int * [ `right | `center | `left ]
| `note
| `quote
]
type t = environment list ref
val empty : unit -> 'a list ref
val push : 'a list ref -> 'b -> unit
val pop : 'a list ref -> 'b option
val head : 'a list ref -> 'b option
val to_list : 'a ref -> 'a