module Expr:sig
..end
Expressions and values
type
t = {
|
mutable e_desc : |
|
mutable e_typ : |
type
e_desc =
| |
EInt of |
|||
| |
EFloat of |
|||
| |
EChar of |
|||
| |
EBool of |
|||
| |
EEnum of |
|||
| |
EVar of |
|||
| |
EBinop of |
(* | e1 op e2 | *) |
| |
ECond of |
(* | e1 ? e2 : e3 | *) |
| |
EFapp of |
(* | f(arg1,...,argn) | *) |
| |
EArrExt of |
(* |
| *) |
| |
EArr of |
(* | t | *) |
| |
EBit of |
(* | t | *) |
| |
EBitrange of |
(* | t | *) |
| |
ERecord of |
(* | v.name when v is a record | *) |
| |
ECast of |
type
value = {
|
mutable v_desc : |
|
mutable v_typ : |
type
e_val =
| |
Val_int of |
|||
| |
Val_float of |
|||
| |
Val_char of |
|||
| |
Val_bool of |
|||
| |
Val_enum of |
|||
| |
Val_fn of |
(* | args, body | *) |
| |
Val_unknown |
|||
| |
Val_none |
(* | used for pure events | *) |
| |
Val_array of |
|||
| |
Val_record of |
(* | (Field name, value) list | *) |
exception Out_of_bound of string * int
array name, index value
val mk_expr : e_desc -> t
val mk_var : string -> t
val mk_val : Types.typ -> e_val -> value
val mk_array : value list -> value
val mk_record : Types.name -> (string * Types.typ * value) list -> value
val mk_int : int -> value
val mk_float : float -> value
val mk_char : char -> value
val mk_bool : bool -> value
val array_update : string -> value array -> int -> value -> value array
val record_update : string ->
(string * value) list ->
string -> value -> (string * value) list
val unset_event : value
val set_event : value
val of_value : value -> e_desc
module VarSet:Set.S
with type elt = string
val vars_of : t -> VarSet.t
val rename : (string -> string) -> t -> t
val string_of_expr : e_desc -> string
val to_string : t -> string
val string_of_val : e_val -> string
val string_of_value : value -> string
val string_of_opt_value : value option -> string