package lustre-v6

  1. Overview
  2. Docs

Utilities for managing node environements (items tables)

type t = {
  1. id2const : Lv6Id.idref -> Lxm.t -> Lic.const;
  2. id2type : Lv6Id.idref -> Lxm.t -> Lic.type_;
  3. id2node : Lv6Id.idref -> Lic.static_arg list -> Lxm.t -> Lic.node_exp;
  4. id2var : Lv6Id.t -> Lxm.t -> Lic.var_info;
  5. global_symbols : AstTabSymbol.t;
  6. all_srcs : AstTab.t;
}
type local_env = {
  1. lenv_node_key : Lic.node_key;
  2. lenv_types : (Lv6Id.t, Lic.type_) Stdlib.Hashtbl.t;
  3. lenv_const : (Lv6Id.t, Lic.const) Stdlib.Hashtbl.t;
  4. lenv_nodes : (Lv6Id.t, Lic.node_key) Stdlib.Hashtbl.t;
  5. lenv_vars : (Lv6Id.t, Lic.var_info) Stdlib.Hashtbl.t;
}
val make_local_env : Lic.node_key -> local_env
val dump_local_env : Stdlib.out_channel -> local_env -> unit
type node_env = {
  1. local : local_env;
  2. global : t;
}
val lookup_type : local_env -> Lv6Id.idref -> Lxm.t -> Lic.type_
val lookup_node : local_env -> Lv6Id.idref -> Lxm.t -> Lic.node_key
val lookup_const : local_env -> Lv6Id.idref -> Lxm.t -> Lic.const
val lookup_var : local_env -> Lv6Id.t -> Lxm.t -> Lic.var_info
val node_exp_of_node_key : t -> Lic.node_key -> Lxm.t -> Lic.node_exp
val var_info_of_ident : t -> Lv6Id.t -> Lxm.t -> Lic.var_info
val const_eff_of_item_key : t -> Lic.item_key -> Lxm.t -> Lic.const