Gil_syntax.Cmd
GIL Commands
type logic_bindings_t = string * (string * Gillian.Gil_syntax.Expr.t) list
Optional bindings for procedure calls
type 'label t =
| Skip
Skip
*)| Assignment of string * Gillian.Gil_syntax.Expr.t
Variable Assignment
*)| LAction of string * string * Gillian.Gil_syntax.Expr.t list
Action
*)| Logic of Gillian.Gil_syntax.LCmd.t
Logic commands
*)| Goto of 'label
Unconditional goto
*)| GuardedGoto of Gillian.Gil_syntax.Expr.t * 'label * 'label
Conditional goto
*)| Call of string
* Gillian.Gil_syntax.Expr.t
* Gillian.Gil_syntax.Expr.t list
* 'label option
* logic_bindings_t option
Procedure call
*)| ECall of string
* Gillian.Gil_syntax.Expr.t
* Gillian.Gil_syntax.Expr.t list
* 'label option
External Procedure call
*)| Apply of string * Gillian.Gil_syntax.Expr.t * 'label option
Application-style procedure call
*)| Arguments of string
Arguments of the currently executing function
*)| PhiAssignment of (string * Gillian.Gil_syntax.Expr.t list) list
PHI-assignment
*)| ReturnNormal
Normal return
*)| ReturnError
Error return
*)| Fail of string * Gillian.Gil_syntax.Expr.t list
Failure
*)val to_yojson : ('label -> Yojson.Safe.t) -> 'label t -> Yojson.Safe.t
val of_yojson :
(Yojson.Safe.t -> 'label Ppx_deriving_yojson_runtime.error_or) ->
Yojson.Safe.t ->
'label t Ppx_deriving_yojson_runtime.error_or
val pp : pp_label:'a Fmt.t -> Stdlib.Format.formatter -> 'a t -> unit
Pretty-printer
val pp_labeled : Stdlib.Format.formatter -> string t -> unit
Pretty-printer for labelled programs
val pp_indexed : Stdlib.Format.formatter -> int t -> unit
Pretty-printer for integer-indexed programs
val successors : int t -> int -> int list
Possible successors of an command (in integer indexing)
val pvars : 'a t -> Utils.Containers.SS.t
Program variable collector
val lvars : 'a t -> Utils.Containers.SS.t
Logical variable collector
val locs : 'a t -> Utils.Containers.SS.t
Location collector