Newer
Older
(** Time-stamp: <modified the 10/07/2017 (at 15:57) by Erwan Jahier> *)
Erwan Jahier
committed
(** An action is an intermediary data type that is used to translate expressions
into [Soc.gao]. It is basically a clocked Soc.atomic_operation with arguments.
The idea is that each expression is translated into one or several actions.
And those clocks are then translated into guards, so that each action is
translated into a gao.
A more natural Module to define that type in would have been Soc, but that
module could be shared with other front-ends (e.g., heptagon or lucid),
Erwan Jahier
committed
and I prefer that module not to depend on
- such a cutting (expr -> action -> gao)
- The [Eff.clock] name (could have been a module parameter though).
*)
type rhs = Soc.var_expr list
type lhs = Soc.var_expr list
type t = Lic.clock * rhs * lhs * Soc.atomic_operation * Lxm.t
val to_string: t -> string
(* This one is meant to be used for error msgs *)
val to_string_msg: t -> string