module Longident: sig .. endLong identifiers, used in parsetree.
Warning: this module is unstable and part of compiler-libs.
type t =
| |
Lident of string |
| |
Ldot of t * string |
| |
Lapply of t * t |
let flatten: t => list(string);
let unflatten: list(string) => option(t);
For a non-empty list l, unflatten l is Some lid where lid is
the long identifier created by concatenating the elements of l
with Ldot.
unflatten [] is None.
let last: t => string;
let parse: string => t;
This function is broken on identifiers that are not just "Word.Word.word"; for example, it returns incorrect results on infix operators and extended module paths.
If you want to generate long identifiers that are a list of
dot-separated identifiers, the function Longident.unflatten is safer and faster.
Longident.unflatten is available since OCaml 4.06.0.
If you want to parse any identifier correctly, use the long-identifiers
functions from the Parse module, in particular Parse.longident.
They are available since OCaml 4.11, and also provide proper
input-location support.
To print a longident, see Pprintast.longident, using
Format.asprintf to convert to a string.