package promela

  1. Overview
  2. Docs
type t = [
  1. | `Assert of Expression.t
  2. | `Assign of Identifier.t * Expression.t option * Expression.t
  3. | `Atomic of t list
  4. | `Comment of string
  5. | `Dstep of t list
  6. | `Goto of Label.t
  7. | `Guard of Expression.t
  8. | `If of t list list
  9. | `IfElse of t list list * t list
  10. | `Label of Label.t
  11. | `Print of string * Expression.t list
  12. | `Run of Identifier.t * Expression.t list
  13. | `Skip
]
val string_of : t -> string
val string_of_lst : t list -> string
val to_channel : ?ident:int -> Pervasives.out_channel -> t -> unit
val to_channel_lst : ?ident:int -> Pervasives.out_channel -> t list -> unit
val identifiers_of : t -> Identifierset.t
val identifiers_read : t -> Identifierset.t
val identifiers_written : t -> Identifierset.t
val identifiers_of_lst : t list -> Identifierset.t
val rename_variables : (Identifier.t -> Identifier.t) -> t -> t
val rename_variables_lst : (Identifier.t -> Identifier.t) -> t list -> t list
val filter : (t -> bool) -> t list -> t list
val map : (t -> t) -> t list -> t list
val map_rhs : (Expression.t -> Expression.t) -> t -> t