Frama_c_kernel.FilepathFunctions manipulating normalized filepaths. In these functions, references *he current working directory refer to the result given by function Sys.getcwd.
Filepath.t is a Frama-C datatype, and comes with usual compare, equal, hash and pretty functions.
Pretty-print is done according to these rules:
add_symbolic_dir for more details. Therefore, the result of this function may not designate a valid name in the filesystem and must ONLY be used to pretty-print information; it must NEVER to be converted back to a filepath later on.include Datatype.S_with_collections with type t := tinclude Datatype.S with type t := tinclude Datatype.S_no_copy with type t := tinclude Datatype.Ty with type t := tval packed_descr : Structural_descr.packPacked version of the descriptor.
val reprs : t listList of representants of the descriptor.
val hash : t -> intHash function: same spec than Hashtbl.hash.
val pretty : Format.formatter -> t -> unitPretty print each value in an user-friendly way.
val mem_project : (Project_skeleton.t -> bool) -> t -> boolmem_project f x must return true iff there is a value p of type Project.t in x such that f p returns true.
module Set : Datatype.Set with type elt = tmodule Map : Datatype.Map with type key = tmodule Hashtbl : Datatype.Hashtbl with type key = tCompares prettified (i.e. relative) paths, with or without case sensitivity (by default, case_sensitive = false).
val pretty_abs : Format.formatter -> t -> unitPretty-prints the path (absolute)
val pretty_rel : Format.formatter -> t -> unitPretty-prints the path (relative to current working dir)
val empty : tEmpty filepath.
val is_empty : t -> boolval is_special_stdout : t -> boolis_special_stdout f returns true iff f is '-' (a single dash), which is a special notation for 'stdout'.
Returns an absolute path leading to the given file. The result is similar to realpath --no-symlinks. Some special behaviors include:
normalize "" (empty string) returns "" (realpath returns an error);normalize preserves multiple sequential '/' characters, unlike realpath;realpath may lead to ENOTDIR errors, but normalize may accept them.val to_string : t -> stringto_string p returns p prettified, that is, a relative path-like string. Note that this prettified string may contain symbolic dirs and is thus is not a path.
to_string_rel ?quoted p returns p relativized if it is relative, or returns the absolute path otherwise.
val to_string_abs : ?quoted:bool -> t -> stringto_string_rel p returns p absolutized.
val to_string_list : t list -> string listto_string_list l returns l as a list of strings containing the absolute paths to the elements of l.
val to_base_uri : t -> Hpath.base * stringto_base_uri path returns a pair base, rest, according to the prettified value of path:
rest contains everything after the '/' following the prefix. E.g. for the path "FRAMAC_SHARE/libc/string.h", returns (Name "FRAMAC_SHARE", "libc/string.h").val basename : t -> stringEquivalent to Filename.basename.
extend ~existence file ext returns the normalized path to the file file ^ ext. Note that it does not introduce a dot. The resulting path must respect existence.
concat ~existence dir file returns the normalized path resulting from the concatenation of dir ^ "/" ^ file. The resulting path must respect existence.
Operator version of Filepath.concat. Filepath.(file / ext) is equivalent to Filepath.concat file ext.
concats ~existence dir paths concatenates a list of paths, as per the concat function.
val has_suffix : t -> string -> boolSame as Filename.check_suffix.
val pwd : unit -> tval add_symbolic_dir : string -> t -> unitadd_symbolic_dir name dir indicates that the (absolute) path dir must be replaced by name when pretty-printing paths. This alias ensures that system-dependent paths such as FRAMAC_SHARE are printed identically in different machines.
val add_symbolic_dir_list : string -> t list -> unitval remove_symbolic_dir : t -> unitRemove all symbolic dirs that have been added earlier.
val all_symbolic_dirs : unit -> (string * t) listReturns the list of symbolic dirs added via add_symbolic_dir, plus preexisting ones (e.g. FRAMAC_SHARE), as pairs (name, dir).
Describes a position in a source file.
val empty_pos : positionEmpty position, used as 'dummy' for Cil_datatype.Position.
val pp_pos : Format.formatter -> position -> unitPretty-prints a position, in the format file:line.
val is_empty_pos : position -> boolReturn true if the given position is the empty position.
val normalize : ?existence:existence -> ?base_name:string -> string -> stringval exists : t -> boolval is_file : t -> boolval is_dir : t -> boolval readdir : t -> string arrayval remove : t -> unitval iter_lines : t -> (string -> unit) -> unitmodule Normalized : sig ... end