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.
79 lines
2.5 KiB
79 lines
2.5 KiB
(*
|
|
* Copyright (c) 2009-2013, Monoidics ltd.
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
open! IStd
|
|
|
|
(** Database of analysis results *)
|
|
|
|
(** {2 Filename} *)
|
|
|
|
(** generic file name *)
|
|
type filename [@@deriving compare]
|
|
|
|
val filename_from_string : string -> filename
|
|
|
|
val filename_to_string : filename -> string
|
|
|
|
val filename_add_suffix : filename -> string -> filename
|
|
|
|
val file_exists : filename -> bool
|
|
|
|
val file_modified_time : ?symlink:bool -> filename -> float
|
|
(** Return the time when a file was last modified. The file must exist. *)
|
|
|
|
(** {2 Results Directory} *)
|
|
|
|
module Results_dir : sig
|
|
(** path expressed as a list of strings *)
|
|
type path = string list
|
|
|
|
(** kind of path: specifies how to interpret a path *)
|
|
type path_kind =
|
|
| Abs_root (** absolute path implicitly rooted at the root of the results dir *)
|
|
| Abs_source_dir of SourceFile.t
|
|
(** absolute path implicitly rooted at the source directory for the file *)
|
|
| Rel (** relative path *)
|
|
|
|
val path_to_filename : path_kind -> path -> filename
|
|
(** convert a path to a filename *)
|
|
|
|
val specs_dir : filename
|
|
(** directory of spec files *)
|
|
|
|
val init : ?debug:bool -> SourceFile.t -> unit
|
|
(** Initialize the results directory *)
|
|
|
|
val clean_specs_dir : unit -> unit
|
|
(** Clean up specs directory *)
|
|
|
|
val create_file : path_kind -> path -> Unix.File_descr.t
|
|
(** create a file at the given path, creating any missing directories *)
|
|
end
|
|
|
|
val append_crc_cutoff : ?key:string -> string -> string * string
|
|
(** Append a crc to the string, using string_crc_hex32. Cut the string if it exceeds the cutoff
|
|
limit. Use an optional key to compute the crc. Return a pair of the appended result and crc
|
|
string. *)
|
|
|
|
val source_file_encoding : SourceFile.t -> string
|
|
(** string encoding of a source file (including path) as a single filename *)
|
|
|
|
(** {2 Source Dirs} *)
|
|
|
|
(** source directory: the directory inside the results dir corresponding to a source file *)
|
|
type source_dir [@@deriving compare]
|
|
|
|
val source_dir_get_internal_file : source_dir -> string -> filename
|
|
(** get the path to an internal file with the given extention (.tenv, ...) *)
|
|
|
|
val source_dir_from_source_file : SourceFile.t -> source_dir
|
|
(** get the source directory corresponding to a source file *)
|
|
|
|
val is_source_file : string -> bool
|
|
(** Check if a path is a Java, C, C++ or Objectve C source file according to the file extention *)
|