Spec-Zone.ru › OCaml

Модуль Longident

module Longident: sig .. end

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

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

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

type t = 
| Lident of string
| Ldot of t * string
| Lapply of 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-2024 INRIA.
https://ocaml.org/manual/5.2/api/compilerlibref/Longident.html

Spec-Zone.ru

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