package merlin-lib
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=139b073cf914b38b725c54f75b8b642f654c3498d0a4ba8cfa831ff02a8970d5
sha512=9391d3a0aaa5065a02c6f5faaf7149f8f800c748d9be5ccff6af800ce73bdf418ead72dbeaf6ee7a6cbeae2c8e56285fbe422740ed407bcc4edab889dd1c8f9c
doc/merlin-lib.ocaml_parsing/Ocaml_parsing/Longident/index.html
Module Ocaml_parsing.LongidentSource
Long identifiers, used in parsetree.
Warning: this module is unstable and part of compiler-libs.
To print a longident, see Pprintast.longident, using Format.asprintf to convert to a string.
type t = | Lident of string| Ldot of t Location.loc * string Location.loc| Lapply of t Location.loc * t Location.loc
same t t' compares the longidents t and t' without taking locations into account.
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.
head lid returns the leftmost part of lid, e.g., given String.Map.empty, returns String.
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 unflatten is safer and faster. 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.