package goblint
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=b729c94adb383a39aea32eb005c988dfd44b92af22ee6a4eedf4239542ac6c26
sha512=643b98770e5fe5644324c95c9ae3a9f698f25c8b11b298f0751d524e0b20af368b2a465fc8200b75a73d48fc9a053fd90f5e8920d4db070927f93188bb8687e0
doc/goblint.lib/Goblint_lib/LibraryDsl/index.html
Module Goblint_lib.LibraryDsl
Library function descriptor DSL.
See LibraryFunctions implementation for example usage.
Type parameters in this module can be ignored for usage. They are inferred automatically and used to ensure type-safety.
type ('k, 'r) args_desc = | [] : ('r, 'r) args_desc(*End of arguments. No more arguments may occur.
*)| VarArgs : (_, 'l, 'r) arg_desc -> ('l, 'r) args_desc(*Variadic arguments, all with the same argument descriptor. Any number of arguments (including 0) may occur.
*)| :: : ('k, _, 'm) arg_desc * ('m, 'r) args_desc -> ('k, 'r) args_desc(*Cons one argument descriptor. Argument must occur.
*)
Arguments descriptor. Overrides standard list syntax.
val special :
?attrs:LibraryDesc.attr list ->
('k, LibraryDesc.special) args_desc ->
'k ->
LibraryDesc.tCreate library function descriptor from arguments descriptor and continuation function, which takes as many arguments as are captured using __ and returns the corresponding LibraryDesc.special.
val special' :
?attrs:LibraryDesc.attr list ->
(LibraryDesc.special, LibraryDesc.special) args_desc ->
(unit -> LibraryDesc.special) ->
LibraryDesc.tCreate library function descriptor from arguments descriptor, which must drop all arguments, and continuation function, which takes as an unit argument and returns the corresponding LibraryDesc.special. Unlike special, this allows the LibraryDesc.special of an argumentless function to depend on options, such that they aren't evaluated at initialization time in LibraryFunctions.
val unknown :
?attrs:LibraryDesc.attr list ->
(LibraryDesc.special, LibraryDesc.special) args_desc ->
LibraryDesc.tCreate unknown library function descriptor from arguments descriptor, which must drop all arguments.
val __ :
string ->
LibraryDesc.Access.t list ->
(GoblintCil.Cil.exp -> 'r, GoblintCil.Cil.exp list -> 'r, 'r) arg_descArgument descriptor, which captures the named argument with accesses for continuation function of special.
val __' :
LibraryDesc.Access.t list ->
(GoblintCil.Cil.exp -> 'r, GoblintCil.Cil.exp list -> 'r, 'r) arg_descArgument descriptor, which captures an unnamed argument with accesses for continuation function of special.
val drop : string -> LibraryDesc.Access.t list -> ('r, 'r, 'r) arg_descArgument descriptor, which drops (does not capture) the named argument with accesses.
val drop' : LibraryDesc.Access.t list -> ('r, 'r, 'r) arg_descArgument descriptor, which drops (does not capture) an unnamed argument with accesses.
val r : LibraryDesc.Access.tShallow AccessKind.t.Read access. All immediate arguments of function calls are always read, this specifies the reading of pointed-to values.
val r_deep : LibraryDesc.Access.tDeep AccessKind.t.Read access. All immediate arguments of function calls are always read, this specifies the reading of pointed-to values. Rarely needed.
val w : LibraryDesc.Access.tShallow AccessKind.t.Write access.
val w_deep : LibraryDesc.Access.tDeep AccessKind.t.Write access. Rarely needed.
val f : LibraryDesc.Access.tShallow AccessKind.t.Free access.
val f_deep : LibraryDesc.Access.tDeep AccessKind.t.Free access. Rarely needed.
val s : LibraryDesc.Access.tShallow AccessKind.t.Spawn access.
val s_deep : LibraryDesc.Access.tDeep AccessKind.t.Spawn access. Rarely needed.