Frama-C API - Package
type jtype = | Jany| Jnull| Jboolean| Jnumber| Jstring| Jalpha(*string primarily compared without case
*)| Jtag of string(*single constant string
*)| Jkey of string(*kind of a string used for indexing
*)| Jindex of string(*kind of an integer used for indexing
*)| Joption of jtype| Jdict of jtype(*dictionaries
*)| Jarray of jtype(*order matters
*)| Jtuple of jtype list| Junion of jtype list| Jrecord of (string * jtype) list| Jenum of ident * string list(*type and tags
*)| Jdata of ident * jtype(*type and definition
*)| Jself(*for (simply) recursive types
*)
type tagInfo = {tg_name : string;tg_label : Frama_c_kernel.Markdown.text;tg_descr : Frama_c_kernel.Markdown.text;
}type packageInfo = {p_plugin : plugin;p_package : string list;p_title : string;p_descr : Frama_c_kernel.Markdown.text;p_readme : string option;p_content : declInfo list;
}val pp_plugin : Stdlib.Format.formatter -> plugin -> unitval pp_pkgname : Stdlib.Format.formatter -> packageInfo -> unitval pp_ident : Stdlib.Format.formatter -> ident -> unitval pp_jtype : Stdlib.Format.formatter -> jtype -> unitmodule Derived : sig ... endmodule Scope : sig ... endval isRecursive : jtype -> boolval visit_request : (ident -> unit) -> requestInfo -> unitval visit_dkind : (ident -> unit) -> declKindInfo -> unitval visit_package_decl : (ident -> unit) -> packageInfo -> unitval visit_package_used : (ident -> unit) -> packageInfo -> unitval package : ?plugin:string -> ?name:string -> title:string -> ?descr:Frama_c_kernel.Markdown.text -> ?readme:string -> unit -> packageval declare : package:package -> name:string -> ?descr:Frama_c_kernel.Markdown.text -> declKindInfo -> unitRegister the declaration in the Server API. This is only way to obtain identifiers. This ensures identifiers are declared before being used.
val declare_id : package:package -> name:string -> ?descr:Frama_c_kernel.Markdown.text -> declKindInfo -> identSame as declare but returns the associated identifier.
val update : package:package -> name:string -> declKindInfo -> unitReplace the declaration for the given name in the package.
val iter : (packageInfo -> unit) -> unitval resolve : ?keywords:string list -> packageInfo -> string IdMap.tAssigns non-classing names for each identifier.
val name_of_pkg : ?sep:string -> plugin -> string list -> stringval name_of_pkginfo : ?sep:string -> packageInfo -> stringval name_of_package : ?sep:string -> package -> stringval name_of_ident : ?sep:string -> ident -> stringval literal : string -> Frama_c_kernel.Markdown.textQuoted string
val md_jtype : pp -> jtype -> Frama_c_kernel.Markdown.textval md_tags : ?title:string -> tagInfo list -> Frama_c_kernel.Markdown.tableval md_fields : ?title:string -> pp -> fieldInfo list -> Frama_c_kernel.Markdown.table