Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Nuscrlib.EfsmEndpoint finite state machines (EFSM)
type refinement_action_annot = {silent_vars : (Names.VariableName.t * Expr.payload_type) Base.list;List of silent variables and their types
*)rec_expr_updates : Expr.t Base.list;List of updates to recursion variables
*)}Annotation for refined actions, used when RefinementTypes pragma is enabled
val compare_refinement_action_annot :
refinement_action_annot ->
refinement_action_annot ->
Ppx_deriving_runtime.intval sexp_of_refinement_action_annot :
refinement_action_annot ->
Sexplib0.Sexp.ttype action = | SendA of Names.RoleName.t * Gtype.message * refinement_action_annotSending a message to name
| RecvA of Names.RoleName.t * Gtype.message * refinement_action_annotReceiving a message from name
| EpsilonNot used
*)Transitions in the EFSM
type state = Base.intType of states in EFSM
module G :
Graph.Sig.P
with type V.t = state
and type E.label = action
and type E.t = state * action * stateEFSM graph representation
type rec_var_info =
(Base.bool * Gtype.rec_var) Base.list Base.Map.M(Base.Int).tInformation regarding recursion variables
type t = G.t * rec_var_infoType of the EFSM, rec_var_info is only populated when refinement types are enabled
val show : t -> Base.stringProduce a DOT representation of EFSM, which can be visualised by Graphviz
val state_action_type :
G.t ->
state ->
[ `Send of Names.RoleName.t
| `Recv of Names.RoleName.t
| `Mixed
| `Terminal ]Returns whether a state in the EFSM is a sending state (with only SendA outgoing actions), a receiving state (with only RecvA outgoing actions), a mixed state (with a mixture of SendA and RecvA actions), or a terminal state (without outgoing actions)
val find_all_payloads : G.t -> Base.Set.M(Names.PayloadTypeName).tval find_all_roles : G.t -> Base.Set.M(Names.RoleName).t