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.

64 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.
*)
open! IStd
(** 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
-> ((Sil.strexp * Typ.t) * Typ.Fieldname.t * Sil.strexp) list option -> 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} *)
val print_icfg_dotty : SourceFile.t -> Cfg.cfg -> unit
(** Print the cfg *)
val reset_dotty_spec_counter : unit -> unit
(** {2 Specs} *)
val pp_speclist_dotty_file : DB.filename -> Prop.normal Specs.spec list -> unit
(** Dotty printing for specs *)
(* create a dotty file with a single proposition *)
val dotty_prop_to_dotty_file :
string -> Prop.normal Prop.t -> ((Sil.strexp * Typ.t) * Typ.Fieldname.t * Sil.strexp) list
-> unit
val dotty_prop_to_str :
Prop.normal Prop.t -> ((Sil.strexp * Typ.t) * Typ.Fieldname.t * Sil.strexp) list -> string option
val reset_node_counter : unit -> unit
(** reset the counter used for node and heap identifiers *)
val prop_to_xml : Prop.normal Prop.t -> string -> int -> Io_infer.Xml.node
(** convert a proposition to xml with the given tag and id *)
val print_specs_xml :
string -> Prop.normal Specs.spec list -> Location.t -> Format.formatter -> unit
(** Print a list of specs in XML format *)