Server.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 -> unit
val pp_pkgname : Stdlib.Format.formatter -> packageInfo -> unit
val pp_ident : Stdlib.Format.formatter -> ident -> unit
val pp_jtype : Stdlib.Format.formatter -> jtype -> unit
module Derived : sig ... end
module Scope : sig ... end
val isRecursive : jtype -> bool
val visit_request : (ident -> unit) -> requestInfo -> unit
val visit_dkind : (ident -> unit) -> declKindInfo -> unit
val visit_package_decl : (ident -> unit) -> packageInfo -> unit
val visit_package_used : (ident -> unit) -> packageInfo -> unit
val package :
?plugin:string ->
?name:string ->
title:string ->
?descr:Frama_c_kernel.Markdown.text ->
?readme:string ->
unit ->
package
val declare :
package:package ->
name:string ->
?descr:Frama_c_kernel.Markdown.text ->
declKindInfo ->
unit
Register 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 ->
ident
Same as declare
but returns the associated identifier.
val update : package:package -> name:string -> declKindInfo -> unit
Replace the declaration for the given name in the package.
val iter : (packageInfo -> unit) -> unit
val resolve : ?keywords:string list -> packageInfo -> string IdMap.t
Assigns non-classing names for each identifier.
val name_of_pkg : ?sep:string -> plugin -> string list -> string
val name_of_pkginfo : ?sep:string -> packageInfo -> string
val name_of_package : ?sep:string -> package -> string
val name_of_ident : ?sep:string -> ident -> string
val litteral : string -> Frama_c_kernel.Markdown.text
Quoted string
val md_jtype : pp -> jtype -> Frama_c_kernel.Markdown.text
val md_tags : ?title:string -> tagInfo list -> Frama_c_kernel.Markdown.table
val md_fields :
?title:string ->
pp ->
fieldInfo list ->
Frama_c_kernel.Markdown.table