Module Richpp

This module offers semi-structured pretty-printing.

type 'annotation located = {
annotation : 'annotation option;
startpos : int;
endpos : int;
}

Each annotation of the semi-structured document refers to the substring it annotates.

val rich_pp : width:int -> ?⁠depth:int -> Pp.t -> Pp.pp_tag located Xml_datatype.gxml

rich_pp width ppcmds returns the interpretation of ppcmds as a semi-structured document that represents (located) annotations of this string. The get_annotations function is used to convert tags into the desired annotation. width sets the printing width of the formatter.

val annotations_positions : 'annotation located Xml_datatype.gxml -> ('annotation * (int * int)) list

annotations_positions ssdoc returns a list associating each annotations with its position in the string from which ssdoc is built.

val xml_of_rich_pp : ('annotation -> string) -> ('annotation -> (string * string) list) -> 'annotation located Xml_datatype.gxml -> Xml_datatype.xml

xml_of_rich_pp ssdoc returns an XML representation of the semi-structured document ssdoc.

Enriched text
type richpp = Xml_datatype.xml
val richpp_of_pp : width:int -> ?⁠depth:int -> Pp.t -> richpp

Extract style information from formatted text