Module ACSL.IsArray


module IsArray: Register(Darray.Hashtbl)(sig
type key = ACSL.Darray.t 
type data = LogicId.id 
val name : string
val reprs : LogicId.id list
val compile : Cil_types.typ * int -> LogicId.id
end)


type value =
| Data of C.data
| Error of exn
| Locked
module D: Datatype.Make(sig
include Datatype.Undefined
type t = ACSL.Register.value 
val name : string
val reprs : ACSL.Register.value list
end)
module H: State_builder.Hashtbl(K)(D)(sig
val name : string
val dependencies : State.t list
val kind : [> `Tuning ]
val size : int
end)
val get_value : H.key -> H.data
val obtain : H.key -> C.data
Projectified and memoized C.compile. The compiler can not be recursive. An exception during the compilation is re-raised each time its value is requested.