Skip to content
Snippets Groups Projects
name.mli 1.04 KiB
Newer Older
(** Time-stamp: <modified the 22/01/2010 (at 18:08) by Erwan Jahier> *)
(** All new identifier names ougth to be created via this module. *)
(** [node_key nk name] returns a node ident that won't clash, using [name] or not. 

   The idea is the following: the caller propose a name to map the
   node key. But since that name may clash, we need to work a little bit
   more. This is the purpose of that function.
   
   nb : for a certain node key, it will always return the same string 
   (which means that [name] migth be ignored).
*)
val node_key: Eff.node_key -> string -> string


(** Dealing with fresh local (to the node) variable idents *)

(** Returns a fresh local var name *)
val new_local_var : string -> string (* mv new_var? *)

(** since those are local to the node, name can be re-used *)
val reset_local_var_prefix : string -> unit

(**  *)
val array_type : Eff.type_ -> string -> string

(** To be called just after the parsing (to make sure that fresh var names won't clash with 
    user idents. ) *)
val update_fresh_var_prefix : unit -> unit