Spec-Zone.ru › OCaml

Модуль Longident

module Longident: sig .. end

Длинные идентификаторы, используемые в parsetree.

Предупреждение: этот модуль нестабилен и входит в состав compiler-libs.

Чтобы вывести длинный идентификатор, см. Pprintast.longident, используя Format.asprintf для преобразования в строку.

type t = 
| Lident of string
| Ldot of t Location.loc * string Location.loc
| Lapply of t Location.loc * t Location.loc
val same : t -> t -> bool

same t t' сравнивает длинные идентификаторы t и t', не учитывая расположение.

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
Устарело. эта функция может некорректно разбирать входные данные; используйте "Parse.longident" или "Longident.unflatten"

Эта функция некорректно работает с идентификаторами, которые не имеют вид "Word.Word.word"; например, она возвращает неверные результаты для инфиксных операторов и расширенных путей модулей.

Если вы хотите создать длинные идентификаторы, представляющие собой список идентификаторов, разделённых точками, функция Longident.unflatten безопаснее и быстрее. Longident.unflatten доступна начиная с OCaml 4.06.0.

Если вы хотите правильно разобрать любой идентификатор, используйте функции для длинных идентификаторов из модуля Parse, в частности Parse.longident. Они доступны начиная с OCaml 4.11 и также обеспечивают корректную поддержку расположения во входных данных.

© 1995-2026 INRIA.
https://ocaml.org/manual/5.5/api/compilerlibref/Longident.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API