模块 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

对于非空列表 lunflatten lSome 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 起可用,并提供适当的输入位置支持。