Module IBase.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 : Sexplib0.Sexp.t -> property_name
val sexp_of_property_name : property_name -> Sexplib0.Sexp.t
val pp_property_name : Ppx_show_runtime.Format.formatter -> property_name -> unit
val show_property_name : property_name -> string
type register_name = string
val compare_register_name : register_name -> register_name -> int
val equal_register_name : register_name -> register_name -> bool
val pp_register_name : Ppx_show_runtime.Format.formatter -> register_name -> unit
val show_register_name : register_name -> string
type variable_name = string
val pp_variable_name : Ppx_show_runtime.Format.formatter -> variable_name -> unit
val show_variable_name : variable_name -> string
type field_name = string
val pp_field_name : Ppx_show_runtime.Format.formatter -> field_name -> unit
val show_field_name : field_name -> string
type class_name = string
val pp_class_name : Ppx_show_runtime.Format.formatter -> class_name -> unit
val show_class_name : class_name -> string
type constant =
  1. | LiteralInt of int
  2. | LiteralStr of string
val pp_constant : Ppx_show_runtime.Format.formatter -> constant -> unit
val show_constant : constant -> string
type value =
  1. | Constant of constant
  2. | Register of register_name
  3. | Binding of variable_name
  4. | FieldAccess of {
    1. value : value;
    2. class_name : class_name;
    3. field_name : field_name;
    }
val pp_value : Ppx_show_runtime.Format.formatter -> value -> unit
val show_value : value -> string
type binop =
  1. | LeadsTo
  2. | OpEq
  3. | OpNe
  4. | OpGe
  5. | OpGt
  6. | OpLe
  7. | OpLt
val pp_binop : Ppx_show_runtime.Format.formatter -> binop -> unit
val show_binop : binop -> string
type predicate =
  1. | Binop of binop * value * value
  2. | Value of value
val pp_predicate : Ppx_show_runtime.Format.formatter -> predicate -> unit
val show_predicate : predicate -> string
type condition = predicate list
val pp_condition : Ppx_show_runtime.Format.formatter -> condition -> unit
val show_condition : condition -> string
type assignment = register_name * variable_name
val pp_assignment : Ppx_show_runtime.Format.formatter -> assignment -> unit
val show_assignment : assignment -> string
type call_pattern = {
  1. procedure_name_regex : string;
  2. type_regexes : string option list option;
}
val pp_call_pattern : Ppx_show_runtime.Format.formatter -> call_pattern -> unit
val show_call_pattern : call_pattern -> string
type label_pattern =
  1. | ArrayWritePattern
  2. | CallPattern of call_pattern
val pp_label_pattern : Ppx_show_runtime.Format.formatter -> label_pattern -> unit
val show_label_pattern : label_pattern -> string
type label = {
  1. arguments : variable_name list option;
  2. condition : condition;
  3. action : assignment list;
  4. pattern : label_pattern;
}
val pp_label : Ppx_show_runtime.Format.formatter -> label -> unit
val show_label : label -> string
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 : Sexplib0.Sexp.t -> vertex
val sexp_of_vertex : vertex -> Sexplib0.Sexp.t
val pp_vertex : Ppx_show_runtime.Format.formatter -> vertex -> unit
val show_vertex : vertex -> string
type transition = {
  1. source : vertex;
  2. target : vertex;
  3. label : label option;
}
val pp_transition : Ppx_show_runtime.Format.formatter -> transition -> unit
val show_transition : transition -> string
type t = {
  1. name : property_name;
  2. message : string option;
  3. prefixes : string list;
  4. transitions : transition list;
}
val pp : Ppx_show_runtime.Format.formatter -> t -> unit
val show : t -> string