Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
type t = {
f_static : Fsm.inst;
f_vars : (string * (Types.typ * Expr.value)) list;
f_state : string;
f_has_reacted : bool;
}
type lenv = (string * Expr.value) list
type genv = {
fe_inputs : (string * (Types.typ * Expr.value)) list;
fe_csts : (string * (Types.typ * Expr.value)) list;
fe_fns : (string * (Types.typ * Expr.value)) list;
fe_vars : (string * (Types.typ * Expr.value)) list;
fe_evs : (string * (Types.typ * Expr.value)) list;
}
type event = loc * Expr.value
exception IllegalTrans of t * string
exception Undeterminate of t * string * Types.date
exception NonDetTrans of t * Fsm.transition list * Types.date
val fireable : t -> lenv -> Fsm.Repr.transition -> bool
val check_cond : t -> lenv -> Condition.t -> bool
val is_event_set : lenv -> Condition.event -> bool
val react : Types.date -> genv -> t -> t * event list