Module Rfsm.ActionSource

Actions associated to transitions

Sourcetype t =
  1. | Assign of lhs * Expr.t
  2. | Emit of string
    (*

    event

    *)
  3. | StateMove of string * string * string
    (*

    fsm name, old state, new state

    *)
Sourceand lhs = {
  1. mutable l_desc : lhs_desc;
}
Sourceand lhs_desc =
  1. | LhsVar of string
    (*

    v := ...

    *)
  2. | LhsArrInd of string * Expr.t
    (*

    vi := ... when v is an array

    *)
  3. | LhsArrRange of string * Expr.t * Expr.t
    (*

    vhi:lo := ... when v is an int

    *)
  4. | LhsRField of string * string
    (*

    v.field_name when v has a record type

    *)

Builders

Sourceval mk_lhs : string -> lhs

Accessors

Sourceval lhs_name : lhs -> string

vars_of a returns the name of the variables read (resp. written) by action a

Operations

Sourceval rename : (string -> string) -> t -> t

rename f a renames f v each variable v occurring in a

Sourceval subst : Eval.env -> t -> t

subst env a replaces each variable v occuring in a by its value if found in env, simplifying the resulting expression whenever possible.

Printers

Sourceval string_of_lhs : lhs -> string
Sourceval to_string : t -> string