-
erwan authored
The dependency on the clock was lost when the enum is translated into an integer (because some expression were still refering to the enum type). The fix was to index VarMap.t by string instead of Soc.var_expr in ActionsDeps.
erwan authoredThe dependency on the clock was lost when the enum is translated into an integer (because some expression were still refering to the enum type). The fix was to index VarMap.t by string instead of Soc.var_expr in ActionsDeps.
socUtils.mli 3.29 KiB
(** Time-stamp: <modified the 21/03/2022 (at 11:08) by Erwan Jahier> *)
(** Donne toute les méthodes d'un composant. *)
val get_all_methods: Soc.t -> Soc.step_method list
(** Fonctions de représentation des objets SOC. *)
val string_of_type_ref : Data.t -> string
val string_of_soc_key : Soc.key -> string
val string_of_var : Soc.var -> string
val string_of_operation : Soc.atomic_operation -> string
val string_of_gao : Soc.gao -> string
val string_of_gaos_list : Soc.gao list -> string
val string_of_filter : Soc.var_expr -> string
val string_of_method : Soc.t -> Soc.step_method -> string
val string_interface_of_method : Soc.t -> Soc.step_method -> string
val string_of_precedence : Soc.precedence -> string
val string_of_profile : Soc.var list * Soc.var list -> string
val string_interface_of_soc : Soc.t -> string
val string_of_soc : Soc.t -> string
val string_of_soc_key_ff : Soc.key -> Format.formatter -> unit
val string_of_type_ref_ff : Data.t -> Format.formatter -> unit
val string_of_var_ff : Soc.var -> Format.formatter -> unit
val string_of_operation_ff : Soc.atomic_operation -> Format.formatter -> unit
val string_of_filter_ff : Soc.var_expr -> Format.formatter -> unit
val string_of_gao_ff : Soc.gao -> Format.formatter -> unit
val string_of_method_ff : Soc.t -> Soc.step_method -> Format.formatter -> unit
val string_interface_of_method_ff : Soc.t -> Soc.step_method -> Format.formatter -> unit
val string_of_precedence_ff : string * string list -> Format.formatter -> unit
val string_of_profile_ff : Soc.var list * Soc.var list -> Format.formatter -> unit
val string_interface_of_soc_ff : Soc.t -> Format.formatter -> unit
val string_of_soc_ff : Soc.t -> Format.formatter -> unit
(** [output header_flag pack_name] dumps the soc list into a
file. [header_flag] states whether or not headers (comment)
should be printed *)
val output: bool -> string -> Soc.t list -> unit
(* Raise a compile error in not found *)
val find : Lxm.t -> Soc.key -> Soc.tbl -> Soc.t
val add: Soc.key -> Soc.t -> Soc.tbl -> Soc.tbl
(* Raise an internal error if not found *)
val find_no_exc : Soc.key -> Soc.tbl -> Soc.t
(* gen_index_list 5 = [0;1;2;3;4] *)
val gen_index_list : int -> int list
val my_string_of_float_precision : int option -> float -> string
val is_memory_less : Soc.t -> bool
(** should we omit the ctx in arg of the step function?
yes in Heap mode when the soc is memory less.
*)
val ctx_is_global : Soc.t -> bool
(** [filter_step_params index_list var_list]
only keeps the var present in the index list.
For instance,
filter_step_params [0;1;4] [v1;v2;v3;v4;v5] = [v1;v2;v5]
nb : we suppose that the index list is in increasing order.
*)
val filter_step_params : int list -> 'a list -> 'a list
val get_rank : 'a -> ('a * 'b) list -> int
(* if var = t.[2].field, then it returns (also) t.[2] and t *)
val get_top_var : Soc.var_expr -> Soc.var_expr
val lustre_string_of_var_expr: Soc.var_expr -> string
val string_of_var_expr: Soc.var_expr -> string