module Ident: sig
.. end
source-file long identifiers
type
t
t is the type of dot separated lists of names (with preceding lexical
spacing), e.g. (*Foo*) M . x
val pp : Format.formatter -> t -> unit
Pretty print
val to_string : t -> string
to_string i
formats i
using pp
.
val from_id : Ast.id -> t
val from_name : Name.lskips_t -> t
val get_name : t -> Name.lskips_t
Return the last name in the ident, e.g., M.Y.x gives x
val mk_ident : Ast.lex_skips -> Name.t list -> Name.t -> t
mk_ident sk ms n
creates an identifier n
with module prefix ms
and leading whitespace sk
.
val mk_ident_ast : (Name.lskips_t * Ast.lex_skips) list -> Name.lskips_t -> Ast.l -> t
mk_ident_ast nsl ns l
generates a new identifiers during type-checking. Whitespace is prohibited in all Name.lskips_t
except the very first one
and all Ast.lex_skips
has to be empty. Otherwise, this operation my fails and uses the location l
for the error message.
val mk_ident_strings : string list -> string -> t
mk_ident_strings
is a version of mk_ident
that uses strings as input and uses empty whitespace.
val to_output_format : (Output.id_annot -> Ulib.Text.t -> Output.t) ->
Output.id_annot -> Ulib.Text.t -> t -> Output.t
val to_output : Output.id_annot -> Ulib.Text.t -> t -> Output.t
val get_lskip : t -> Ast.lex_skips
val replace_lskip : t -> Ast.lex_skips -> t
val to_name_list : t -> Name.t list * Name.t
val has_empty_path_prefix : t -> bool
has_empty_path_prefix i
check whether the identifier i
consists of just a single name without any
prefix describing its module path
val strip_path : Name.t -> t -> t
Remove the name from the identifier if it occurs at the first
val rename : t -> Name.t -> t
rename i n'
renames the last name component of identifier i
to n'
.
val drop_path : t -> t
drop_path i
drops the path of an identier. This means an identifier of the form
M1.M2...Mn.name
is converted to name
. White-space is preserved.