Module IR__Ident
Identifiers: program variables and logical variables
module Set : IStdlib.IStd.Caml.Set.S with type Set.elt = t
Set for identifiers.
module Hash : IStdlib.IStd.Caml.Hashtbl.S with type Hash.key = t
Hash table with ident as key.
module Map : IStdlib.IStd.Caml.Map.S with type Map.key = t
Map with ident as key.
module HashQueue : IStdlib.IStd.Hash_queue.S with type HashQueue.key = t
module NameGenerator : sig ... end
val kprimed : kind
val knormal : kind
val kfootprint : kind
val knone : kind
val name_spec : name
Name used for spec variables
val name_return : IR.Mangled.t
Name used for the return variable
val string_to_name : string -> name
Convert a string to a name.
val name_to_string : name -> string
Convert a name to a string.
val create_with_stamp : kind -> name -> int -> t
val create : kind -> int -> t
Create an identifier with default name for the given kind
val create_none : unit -> t
Create a "null" identifier for situations where the IR requires an id that will never be read
val create_footprint : name -> int -> t
Generate a footprint identifier with the given name and stamp.
val update_name_generator : t list -> unit
Update the name generator so that the given id's are not generated again
val create_path : string -> t
Generate a normal identifier whose name encodes a path given as a string.
val is_primed : t -> bool
Check whether an identifier is primed or not.
val is_normal : t -> bool
Check whether an identifier is normal or not.
val is_footprint : t -> bool
Check whether an identifier is footprint or not.
val is_path : t -> bool
Check whether an identifier represents a path or not.
val is_none : t -> bool
Check whether an identifier is the special "none" identifier
val get_stamp : t -> int
Get the stamp of the identifier
Pretty Printing
val pp_name : Stdlib.Format.formatter -> name -> unit
Pretty print a name.
val pp : Stdlib.Format.formatter -> t -> unit
Pretty print an identifier.
val to_string : t -> string
Convert an identifier to a string.
val hashqueue_of_sequence : ?init:unit HashQueue.t -> t IStdlib.IStd.Sequence.t -> unit HashQueue.t
val set_of_sequence : ?init:Set.t -> t IStdlib.IStd.Sequence.t -> Set.t
val counts_of_sequence : t IStdlib.IStd.Sequence.t -> t -> int