Модуль Longident
module Longident: sig .. end
Длинные идентификаторы, используемые в дереве разбора.
Предупреждение: этот модуль нестабилен и является частью compiler-libs.
Для вывода длинного идентификатора см. Pprintast.longident, используя Format.asprintf для преобразования в строку.
type t =
|
| Lident of
|
|
| Ldot of
|
|
| Lapply of
|
val flatten : t -> string list
val unflatten : string list -> t option
Для непустого списка l, unflatten l является Some lid, где lid — это длинный идентификатор, созданный путём конкатенации элементов l с Ldot. unflatten [] является None.
val last : t -> string
val parse : string -> t
Эта функция некорректно обрабатывает идентификаторы, которые не являются просто "Word.Word.word"; например, она возвращает неверные результаты для инфиксных операторов и расширенных путей модулей.
Если вам нужно сгенерировать длинные идентификаторы, которые представляют собой список идентификаторов, разделённых точкой, функция Longident.unflatten более безопасна и быстрее. Longident.unflatten доступна начиная с OCaml 4.06.0.
Если вам нужно правильно разобрать любой идентификатор, используйте функции длинных идентификаторов из модуля Parse, в частности Parse.longident. Они доступны начиная с OCaml 4.11, а также предоставляют поддержку расположения входных данных.
© 1995-2024 INRIA.
https://ocaml.org/manual/5.2/api/compilerlibref/Longident.html