Module InferModules.ToplAst
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;
}