Frama-C API - Normalized
The Normalized
module is simply a wrapper that ensures that paths are always normalized. Used by Datatype.Filepath
.
of_string s
converts s
into a normalized path.
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
.
concats ~existence dir paths
concatenates a list of paths, as per the concat
function.
val to_pretty_string : t -> string
to_pretty_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. See pretty
for details about usage.
val to_string_list : t list -> string list
to_string_list l
returns l
as a list of strings containing the absolute paths to the elements of l
.
Compares prettified (i.e. relative) paths, with or without case sensitivity (by default, case_sensitive = false
).
val pretty : Stdlib.Format.formatter -> t -> unit
Pretty-print a path according to these rules:
- relative filenames are kept, except for leading './', which are stripped;
- absolute filenames are relativized if their prefix is included in the current working directory; also, symbolic names are resolved, i.e. the result may be prefixed by known aliases (e.g. FRAMAC_SHARE). See
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.
val pp_abs : Stdlib.Format.formatter -> t -> unit
Pretty-prints the normalized (absolute) path.
val empty : t
Empty filepath, used as 'dummy' for Datatype.Filepath
.
val is_empty : t -> bool
val is_special_stdout : t -> bool
is_special_stdout f
returns true
iff f
is '-' (a single dash), which is a special notation for 'stdout'.
val is_file : t -> bool
is_file f
returns true
iff f
points to a regular file (or a symbolic link pointing to a file). Returns false
if any errors happen when stat
'ing the file.
val to_base_uri : t -> string option * string
to_base_uri path
returns a pair prefix, rest
, according to the prettified value of path
:
- if it starts with symbolic path SYMB, prefix is Some "SYMB";
- if it is a relative path, prefix is Some "PWD";
- else (an absolute path), prefix is None.
rest
contains everything after the '/' following the prefix. E.g. for the path "FRAMAC_SHARE/libc/string.h", returns ("FRAMAC_SHARE", "libc/string.h").