module Gui_printers: sig
.. end
Special pretty-printers for the GUI. Some sub-elements are annotated
by format tags, in order to make them reactive.
val get_type_specifier : Cil_types.typ -> Cil_types.typ
Returns the base type for a pointer/array, otherwise t
itself.
E.g. for t = int***
, returns int
.
val pp_typ : Format.formatter -> Cil_types.typ -> unit
Same as Printer.pp_typ
, except that the type is output between
Format tags @{<link:typN>}
, that are recognized by the GUI.
val pp_typ_unfolded : Format.formatter -> Cil_types.typ -> unit
Pretty-prints a type, unfolding it once if it is a typedef, enum, struct or
union.
module LinkPrinter: Printer.PrinterExtension
Special pretty-printer that outputs tags link:vidN
around varinfos,
and link:typN
around types.
exception NoMatch
val varinfo_of_link : string -> Cil_types.varinfo
Convert a string of the form
link:vidN
into the varinfo of vid
N
. This
varinfo must have been printed by a pretty-printer extended with
Gui_printers.LinkPrinter
.
Raise
NoMatch
if the link is not of the form
link:vidN
.
val typ_of_link : string -> Cil_types.typ
Convert a string of the form
link:typN
into a type. The association
between
N
and the type is done by printing the type once using
Gui_printers.pp_typ
, or by using a printer extended with
Gui_printers.LinkPrinter
.
Raise
NoMatch
if the link is not of the form
link:typN
.
val loc_of_link : string -> Cil_types.location
Convert a string of the form
link:locN
into the location of id
N
. This
location must have been printed by a pretty-printer extended with
Gui_printers.LinkPrinter
.
Raise
NoMatch
if the link is not of the form
link:locN
.