You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
2.0 KiB

(*
* Copyright (c) 2009 - 2013 Monoidics ltd.
* Copyright (c) 2013 - present Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*)
(** Pretty printing functions in dot format. *)
(** {2 Propositions} *)
type kind_of_dotty_prop =
| Generic_proposition
| Spec_precondition
| Spec_postcondition of Prop.normal Prop.t (** the precondition associated with the post *)
| Lambda_pred of int * int * bool
val reset_proposition_counter : unit -> unit
val pp_dotty : Format.formatter -> kind_of_dotty_prop -> Prop.normal Prop.t -> unit
(* create a dotty file with a single proposition *)
val dotty_prop_to_dotty_file: string -> Prop.normal Prop.t -> unit
(** {2 Sets and lists of propositions} *)
val pp_dotty_prop_list_in_path: Format.formatter -> Prop.normal Prop.t list -> int -> int -> unit
val pp_proplist_parsed2dotty_file : string -> Prop.normal Prop.t list -> unit
(** {2 Contol-Flow Graph} *)
(** Print the cfg with extra edges *)
val print_icfg_dotty : Cfg.cfg -> ((Cfg.Node.t * Cfg.Node.t) list) -> unit
(** [store_icfg_to_file f cfg] saves the dotty representation of the control flow graph [cfg] into the file [f] *)
val store_icfg_to_file: string -> Cfg.cfg -> unit
(** {2 Specs} *)
val reset_dotty_spec_counter : unit -> unit
(** Dotty printing for specs *)
val pp_speclist_dotty_file : DB.filename -> Prop.normal Specs.spec list -> unit
(* create a dotty file with a single proposition *)
val dotty_prop_to_dotty_file : string -> Prop.normal Prop.t -> unit
(** reset the counter used for node and heap identifiers *)
val reset_node_counter : unit -> unit
(** convert a proposition to xml with the given tag and id *)
val prop_to_xml : Prop.normal Prop.t -> string -> int -> Io_infer.Xml.node
(** Print a list of specs in XML format *)
val print_specs_xml :
string -> Prop.normal Specs.spec list -> Location.t -> Format.formatter -> unit