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>
<a class="up" href="index.html" title="Index">Up</a>
<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 l</code> is <code class="code"><span class="constructor">Some</span> 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 []</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>
|