Module InferModules.ToplAst

type property_name = string
val compare_property_name : property_name -> property_name -> int
val hash_fold_property_name : Ppx_hash_lib.Std.Hash.state -> property_name -> Ppx_hash_lib.Std.Hash.state
val hash_property_name : property_name -> Ppx_hash_lib.Std.Hash.hash_value
val property_name_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> property_name
val sexp_of_property_name : property_name -> Ppx_sexp_conv_lib.Sexp.t
type register_name = string
type constant = InferIR.Exp.t
type value_pattern =
| Ignore
| SaveInRegister of register_name
| EqualToRegister of register_name
| EqualToConstant of constant
type procedure_name_pattern = string

a regular expression

type label = {
return : value_pattern;
procedure_name : procedure_name_pattern;
arguments : value_pattern list option;
}
type vertex = string
val compare_vertex : vertex -> vertex -> int
val hash_fold_vertex : Ppx_hash_lib.Std.Hash.state -> vertex -> Ppx_hash_lib.Std.Hash.state
val hash_vertex : vertex -> Ppx_hash_lib.Std.Hash.hash_value
val vertex_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> vertex
val sexp_of_vertex : vertex -> Ppx_sexp_conv_lib.Sexp.t
type transition = {
source : vertex;
target : vertex;
label : label;
}
type t = {
name : property_name;
message : string option;
prefixes : string list;
transitions : transition list;
}