File: Longident.html

package info (click to toggle)
ocaml-doc 4.11-2
  • links: PTS, VCS
  • area: non-free
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 20,580 kB
  • sloc: sh: 37; makefile: 11
file content (126 lines) | stat: -rw-r--r-- 7,651 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="Start" href="index.html">
<link rel="previous" href="Location.html">
<link rel="next" href="Misc.html">
<link rel="Up" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Index of module types" rel=Appendix href="index_module_types.html">
<link title="Arg_helper" rel="Chapter" href="Arg_helper.html">
<link title="Ast_helper" rel="Chapter" href="Ast_helper.html">
<link title="Ast_invariants" rel="Chapter" href="Ast_invariants.html">
<link title="Ast_iterator" rel="Chapter" href="Ast_iterator.html">
<link title="Ast_mapper" rel="Chapter" href="Ast_mapper.html">
<link title="Asttypes" rel="Chapter" href="Asttypes.html">
<link title="Attr_helper" rel="Chapter" href="Attr_helper.html">
<link title="Build_path_prefix_map" rel="Chapter" href="Build_path_prefix_map.html">
<link title="Builtin_attributes" rel="Chapter" href="Builtin_attributes.html">
<link title="CamlinternalMenhirLib" rel="Chapter" href="CamlinternalMenhirLib.html">
<link title="Ccomp" rel="Chapter" href="Ccomp.html">
<link title="Clflags" rel="Chapter" href="Clflags.html">
<link title="Compiler_libs" rel="Chapter" href="Compiler_libs.html">
<link title="Config" rel="Chapter" href="Config.html">
<link title="Consistbl" rel="Chapter" href="Consistbl.html">
<link title="Depend" rel="Chapter" href="Depend.html">
<link title="Docstrings" rel="Chapter" href="Docstrings.html">
<link title="Domainstate" rel="Chapter" href="Domainstate.html">
<link title="Identifiable" rel="Chapter" href="Identifiable.html">
<link title="Int_replace_polymorphic_compare" rel="Chapter" href="Int_replace_polymorphic_compare.html">
<link title="Lexer" rel="Chapter" href="Lexer.html">
<link title="Load_path" rel="Chapter" href="Load_path.html">
<link title="Location" rel="Chapter" href="Location.html">
<link title="Longident" rel="Chapter" href="Longident.html">
<link title="Misc" rel="Chapter" href="Misc.html">
<link title="Numbers" rel="Chapter" href="Numbers.html">
<link title="Parse" rel="Chapter" href="Parse.html">
<link title="Parser" rel="Chapter" href="Parser.html">
<link title="Parsetree" rel="Chapter" href="Parsetree.html">
<link title="Pparse" rel="Chapter" href="Pparse.html">
<link title="Pprintast" rel="Chapter" href="Pprintast.html">
<link title="Printast" rel="Chapter" href="Printast.html">
<link title="Profile" rel="Chapter" href="Profile.html">
<link title="Strongly_connected_components" rel="Chapter" href="Strongly_connected_components.html">
<link title="Syntaxerr" rel="Chapter" href="Syntaxerr.html">
<link title="Targetint" rel="Chapter" href="Targetint.html">
<link title="Terminfo" rel="Chapter" href="Terminfo.html">
<link title="Warnings" rel="Chapter" href="Warnings.html"><title>Longident</title>
</head>
<body>
<div class="navbar"><a class="pre" href="Location.html" title="Location">Previous</a>
&nbsp;<a class="up" href="index.html" title="Index">Up</a>
&nbsp;<a class="post" href="Misc.html" title="Misc">Next</a>
</div>
<h1>Module <a href="type_Longident.html">Longident</a></h1>

<pre><span id="MODULELongident"><span class="keyword">module</span> Longident</span>: <code class="code"><span class="keyword">sig</span></code> <a href="Longident.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info module top">
<div class="info-desc">
<p>Long identifiers, used in parsetree.</p>

<p><b>Warning:</b> this module is unstable and part of
  <a href="Compiler_libs.html">compiler-libs</a>.</p>
</div>
</div>
<hr width="100%">

<pre><code><span id="TYPEt"><span class="keyword">type</span> <code class="type"></code>t</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTt.Lident"><span class="constructor">Lident</span></span> <span class="keyword">of</span> <code class="type">string</code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTt.Ldot"><span class="constructor">Ldot</span></span> <span class="keyword">of</span> <code class="type"><a href="Longident.html#TYPEt">t</a> * string</code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTt.Lapply"><span class="constructor">Lapply</span></span> <span class="keyword">of</span> <code class="type"><a href="Longident.html#TYPEt">t</a> * <a href="Longident.html#TYPEt">t</a></code></code></td>

</tr></table>



<pre><span id="VALflatten"><span class="keyword">val</span> flatten</span> : <code class="type"><a href="Longident.html#TYPEt">t</a> -> string list</code></pre>
<pre><span id="VALunflatten"><span class="keyword">val</span> unflatten</span> : <code class="type">string list -> <a href="Longident.html#TYPEt">t</a> option</code></pre><div class="info ">
<div class="info-desc">
<p>For a non-empty list <code class="code">l</code>, <code class="code">unflatten&nbsp;l</code> is <code class="code"><span class="constructor">Some</span>&nbsp;lid</code> where <code class="code">lid</code> is
    the long identifier created by concatenating the elements of <code class="code">l</code>
    with <code class="code"><span class="constructor">Ldot</span></code>.
    <code class="code">unflatten&nbsp;[]</code> is <code class="code"><span class="constructor">None</span></code>.</p>
</div>
</div>

<pre><span id="VALlast"><span class="keyword">val</span> last</span> : <code class="type"><a href="Longident.html#TYPEt">t</a> -> string</code></pre>
<pre><span id="VALparse"><span class="keyword">val</span> parse</span> : <code class="type">string -> <a href="Longident.html#TYPEt">t</a></code></pre><div class="info ">
<div class="info-desc">
<p>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.</p>

<p>If you want to generate long identifiers that are a list of
   dot-separated identifiers, the function <a href="Longident.html#VALunflatten"><code class="code"><span class="constructor">Longident</span>.unflatten</code></a> is safer and faster.
   <a href="Longident.html#VALunflatten"><code class="code"><span class="constructor">Longident</span>.unflatten</code></a> is available since OCaml 4.06.0.</p>

<p>If you want to parse any identifier correctly, use the long-identifiers
   functions from the <a href="Parse.html"><code class="code"><span class="constructor">Parse</span></code></a> module, in particular <a href="Parse.html#VALlongident"><code class="code"><span class="constructor">Parse</span>.longident</code></a>.
   They are available since OCaml 4.11, and also provide proper
   input-location support.</p>
</div>
</div>
<p>To print a longident, see <a href="Pprintast.html#VALlongident"><code class="code"><span class="constructor">Pprintast</span>.longident</code></a>, using
    <code class="code"><span class="constructor">Format</span>.asprintf</code> to convert to a string.</p>
</body></html>