Kappa_data_structures.NamedDecls
Stores a bunch of stuff the user gave a name to
type 'a t = private {
decls : (string * 'a) array;
the name of the stuff * the stuff
*)finder : int Kappa_data_structures.Mods.StringMap.t;
fst (fst d.decls.(StringMap.find s d.finder))
MUST be equal to s
}
val create :
?forbidden:Kappa_data_structures.Mods.StringSet.t ->
(string Loc.annoted * 'a) array ->
'a t
create ~forbidden string_val_assoc
evaluates to a namedDecls.t from the string-to-variable associations string_val_assoc
except from strings in forbidden
. Loc info is not kept.
val create_from_list :
?forbidden:Kappa_data_structures.Mods.StringSet.t ->
(string Loc.annoted * 'a) list ->
'a t
val create_no_loc :
?forbidden:Kappa_data_structures.Mods.StringSet.t ->
(string * 'a) array ->
'a t
create_no_loc
behaves the same as create
, but without the need to provide the Loc info that will be trashed
val size : 'a t -> int
val elt_name : 'a t -> int -> string
elt_name nd i
evaluates to the name declaration of id i
in nd
, or raises an exception if it doesn't exist
val elt_id : ?kind:string -> 'a t -> string Loc.annoted -> int
elt_id ~kind nd (s, pos)
evaluates to the data matching declaration s
in nd
, or if it doesn't exist, throw and exception with info about kind
and pos
val elt_val : 'a t -> int -> 'a
Access data by id
val fold : (int -> string -> 'a -> 'b -> 'a) -> 'a -> 'b t -> 'a
val print :
sep:(Stdlib.Format.formatter -> unit) ->
(int -> string -> Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter ->
'a t ->
unit
val debug_print :
(Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter ->
'a t ->
unit
val to_json : ('a -> Yojson.Basic.t) -> 'a t -> Yojson.Basic.t
val of_json : (Yojson.Basic.t -> 'a) -> Yojson.Basic.t -> 'a t