File: Scanf.Scanning.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 (260 lines) | stat: -rw-r--r-- 16,687 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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
<!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="Up" href="Scanf.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of extensions" rel=Appendix href="index_extensions.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" rel="Chapter" href="Arg.html">
<link title="Array" rel="Chapter" href="Array.html">
<link title="ArrayLabels" rel="Chapter" href="ArrayLabels.html">
<link title="Bigarray" rel="Chapter" href="Bigarray.html">
<link title="Bool" rel="Chapter" href="Bool.html">
<link title="Buffer" rel="Chapter" href="Buffer.html">
<link title="Bytes" rel="Chapter" href="Bytes.html">
<link title="BytesLabels" rel="Chapter" href="BytesLabels.html">
<link title="Callback" rel="Chapter" href="Callback.html">
<link title="CamlinternalFormat" rel="Chapter" href="CamlinternalFormat.html">
<link title="CamlinternalFormatBasics" rel="Chapter" href="CamlinternalFormatBasics.html">
<link title="CamlinternalLazy" rel="Chapter" href="CamlinternalLazy.html">
<link title="CamlinternalMod" rel="Chapter" href="CamlinternalMod.html">
<link title="CamlinternalOO" rel="Chapter" href="CamlinternalOO.html">
<link title="Char" rel="Chapter" href="Char.html">
<link title="Complex" rel="Chapter" href="Complex.html">
<link title="Condition" rel="Chapter" href="Condition.html">
<link title="Digest" rel="Chapter" href="Digest.html">
<link title="Dynlink" rel="Chapter" href="Dynlink.html">
<link title="Ephemeron" rel="Chapter" href="Ephemeron.html">
<link title="Event" rel="Chapter" href="Event.html">
<link title="Filename" rel="Chapter" href="Filename.html">
<link title="Float" rel="Chapter" href="Float.html">
<link title="Format" rel="Chapter" href="Format.html">
<link title="Fun" rel="Chapter" href="Fun.html">
<link title="Gc" rel="Chapter" href="Gc.html">
<link title="Genlex" rel="Chapter" href="Genlex.html">
<link title="Hashtbl" rel="Chapter" href="Hashtbl.html">
<link title="Int" rel="Chapter" href="Int.html">
<link title="Int32" rel="Chapter" href="Int32.html">
<link title="Int64" rel="Chapter" href="Int64.html">
<link title="Lazy" rel="Chapter" href="Lazy.html">
<link title="Lexing" rel="Chapter" href="Lexing.html">
<link title="List" rel="Chapter" href="List.html">
<link title="ListLabels" rel="Chapter" href="ListLabels.html">
<link title="Map" rel="Chapter" href="Map.html">
<link title="Marshal" rel="Chapter" href="Marshal.html">
<link title="MoreLabels" rel="Chapter" href="MoreLabels.html">
<link title="Mutex" rel="Chapter" href="Mutex.html">
<link title="Nativeint" rel="Chapter" href="Nativeint.html">
<link title="Obj" rel="Chapter" href="Obj.html">
<link title="Ocaml_operators" rel="Chapter" href="Ocaml_operators.html">
<link title="Oo" rel="Chapter" href="Oo.html">
<link title="Option" rel="Chapter" href="Option.html">
<link title="Parsing" rel="Chapter" href="Parsing.html">
<link title="Printexc" rel="Chapter" href="Printexc.html">
<link title="Printf" rel="Chapter" href="Printf.html">
<link title="Queue" rel="Chapter" href="Queue.html">
<link title="Random" rel="Chapter" href="Random.html">
<link title="Result" rel="Chapter" href="Result.html">
<link title="Scanf" rel="Chapter" href="Scanf.html">
<link title="Seq" rel="Chapter" href="Seq.html">
<link title="Set" rel="Chapter" href="Set.html">
<link title="Spacetime" rel="Chapter" href="Spacetime.html">
<link title="Stack" rel="Chapter" href="Stack.html">
<link title="StdLabels" rel="Chapter" href="StdLabels.html">
<link title="Stdlib" rel="Chapter" href="Stdlib.html">
<link title="Str" rel="Chapter" href="Str.html">
<link title="Stream" rel="Chapter" href="Stream.html">
<link title="String" rel="Chapter" href="String.html">
<link title="StringLabels" rel="Chapter" href="StringLabels.html">
<link title="Sys" rel="Chapter" href="Sys.html">
<link title="Thread" rel="Chapter" href="Thread.html">
<link title="ThreadUnix" rel="Chapter" href="ThreadUnix.html">
<link title="Uchar" rel="Chapter" href="Uchar.html">
<link title="Unit" rel="Chapter" href="Unit.html">
<link title="Unix" rel="Chapter" href="Unix.html">
<link title="UnixLabels" rel="Chapter" href="UnixLabels.html">
<link title="Weak" rel="Chapter" href="Weak.html"><title>Scanf.Scanning</title>
</head>
<body>
<div class="navbar">&nbsp;<a class="up" href="Scanf.html" title="Scanf">Up</a>
&nbsp;</div>
<h1>Module <a href="type_Scanf.Scanning.html">Scanf.Scanning</a></h1>

<pre><span id="MODULEScanning"><span class="keyword">module</span> Scanning</span>: <code class="code"><span class="keyword">sig</span></code> <a href="Scanf.Scanning.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%">

<pre><span id="TYPEin_channel"><span class="keyword">type</span> <code class="type"></code>in_channel</span> </pre>
<div class="info ">
<div class="info-desc">
<p>The notion of input channel for the <a href="Scanf.html"><code class="code"><span class="constructor">Scanf</span></code></a> module:
   those channels provide all the machinery necessary to read from any source
   of characters, including a <a href="Stdlib.html#TYPEin_channel"><code class="code">in_channel</code></a> value.
   A Scanf.Scanning.in_channel value is also called a <i>formatted input
   channel</i> or equivalently a <i>scanning buffer</i>.
   The type <a href="Scanf.Scanning.html#TYPEscanbuf"><code class="code"><span class="constructor">Scanf</span>.<span class="constructor">Scanning</span>.scanbuf</code></a> below is an alias for <code class="code"><span class="constructor">Scanning</span>.in_channel</code>.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 3.12.0</li>
</ul>
</div>


<pre><span id="TYPEscanbuf"><span class="keyword">type</span> <code class="type"></code>scanbuf</span> = <code class="type"><a href="Scanf.Scanning.html#TYPEin_channel">in_channel</a></code> </pre>
<div class="info ">
<div class="info-desc">
<p>The type of scanning buffers. A scanning buffer is the source from which a
    formatted input function gets characters. The scanning buffer holds the
    current state of the scan, plus a function to get the next char from the
    input, and a token buffer to store the string matched so far.</p>

<p>Note: a scanning action may often require to examine one character in
    advance; when this 'lookahead' character does not belong to the token
    read, it is stored back in the scanning buffer and becomes the next
    character yet to be read.</p>
</div>
</div>


<pre><span id="VALstdin"><span class="keyword">val</span> stdin</span> : <code class="type"><a href="Scanf.Scanning.html#TYPEin_channel">in_channel</a></code></pre><div class="info ">
<div class="info-desc">
<p>The standard input notion for the <a href="Scanf.html"><code class="code"><span class="constructor">Scanf</span></code></a> module.
    <code class="code"><span class="constructor">Scanning</span>.stdin</code> is the <a href="Scanf.Scanning.html#TYPEin_channel"><code class="code"><span class="constructor">Scanf</span>.<span class="constructor">Scanning</span>.in_channel</code></a> formatted input channel
    attached to <a href="Stdlib.html#VALstdin"><code class="code">stdin</code></a>.</p>

<p>Note: in the interactive system, when input is read from
    <a href="Stdlib.html#VALstdin"><code class="code">stdin</code></a>, the newline character that triggers evaluation is
    part of the input; thus, the scanning specifications must properly skip
    this additional newline character (for instance, simply add a <code class="code"><span class="string">'\n'</span></code> as
    the last character of the format string).</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 3.12.0</li>
</ul>
</div>

<pre><span id="TYPEfile_name"><span class="keyword">type</span> <code class="type"></code>file_name</span> = <code class="type">string</code> </pre>
<div class="info ">
<div class="info-desc">
<p>A convenient alias to designate a file name.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 4.00.0</li>
</ul>
</div>


<pre><span id="VALopen_in"><span class="keyword">val</span> open_in</span> : <code class="type"><a href="Scanf.Scanning.html#TYPEfile_name">file_name</a> -> <a href="Scanf.Scanning.html#TYPEin_channel">in_channel</a></code></pre><div class="info ">
<div class="info-desc">
<p><code class="code"><span class="constructor">Scanning</span>.open_in&nbsp;fname</code> returns a <a href="Scanf.Scanning.html#TYPEin_channel"><code class="code"><span class="constructor">Scanf</span>.<span class="constructor">Scanning</span>.in_channel</code></a> formatted input
    channel for bufferized reading in text mode from file <code class="code">fname</code>.</p>

<p>Note:
    <code class="code">open_in</code> returns a formatted input channel that efficiently reads
    characters in large chunks; in contrast, <code class="code">from_channel</code> below returns
    formatted input channels that must read one character at a time, leading
    to a much slower scanning rate.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 3.12.0</li>
</ul>
</div>

<pre><span id="VALopen_in_bin"><span class="keyword">val</span> open_in_bin</span> : <code class="type"><a href="Scanf.Scanning.html#TYPEfile_name">file_name</a> -> <a href="Scanf.Scanning.html#TYPEin_channel">in_channel</a></code></pre><div class="info ">
<div class="info-desc">
<p><code class="code"><span class="constructor">Scanning</span>.open_in_bin&nbsp;fname</code> returns a <a href="Scanf.Scanning.html#TYPEin_channel"><code class="code"><span class="constructor">Scanf</span>.<span class="constructor">Scanning</span>.in_channel</code></a> formatted
    input channel for bufferized reading in binary mode from file <code class="code">fname</code>.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 3.12.0</li>
</ul>
</div>

<pre><span id="VALclose_in"><span class="keyword">val</span> close_in</span> : <code class="type"><a href="Scanf.Scanning.html#TYPEin_channel">in_channel</a> -> unit</code></pre><div class="info ">
<div class="info-desc">
<p>Closes the <a href="Stdlib.html#TYPEin_channel"><code class="code">in_channel</code></a> associated with the given
  <a href="Scanf.Scanning.html#TYPEin_channel"><code class="code"><span class="constructor">Scanf</span>.<span class="constructor">Scanning</span>.in_channel</code></a> formatted input channel.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 3.12.0</li>
</ul>
</div>

<pre><span id="VALfrom_file"><span class="keyword">val</span> from_file</span> : <code class="type"><a href="Scanf.Scanning.html#TYPEfile_name">file_name</a> -> <a href="Scanf.Scanning.html#TYPEin_channel">in_channel</a></code></pre><div class="info ">
<div class="info-desc">
<p>An alias for <a href="Scanf.Scanning.html#VALopen_in"><code class="code"><span class="constructor">Scanf</span>.<span class="constructor">Scanning</span>.open_in</code></a> above.</p>
</div>
</div>

<pre><span id="VALfrom_file_bin"><span class="keyword">val</span> from_file_bin</span> : <code class="type">string -> <a href="Scanf.Scanning.html#TYPEin_channel">in_channel</a></code></pre><div class="info ">
<div class="info-desc">
<p>An alias for <a href="Scanf.Scanning.html#VALopen_in_bin"><code class="code"><span class="constructor">Scanf</span>.<span class="constructor">Scanning</span>.open_in_bin</code></a> above.</p>
</div>
</div>

<pre><span id="VALfrom_string"><span class="keyword">val</span> from_string</span> : <code class="type">string -> <a href="Scanf.Scanning.html#TYPEin_channel">in_channel</a></code></pre><div class="info ">
<div class="info-desc">
<p><code class="code"><span class="constructor">Scanning</span>.from_string&nbsp;s</code> returns a <a href="Scanf.Scanning.html#TYPEin_channel"><code class="code"><span class="constructor">Scanf</span>.<span class="constructor">Scanning</span>.in_channel</code></a> formatted
    input channel which reads from the given string.
    Reading starts from the first character in the string.
    The end-of-input condition is set when the end of the string is reached.</p>
</div>
</div>

<pre><span id="VALfrom_function"><span class="keyword">val</span> from_function</span> : <code class="type">(unit -> char) -> <a href="Scanf.Scanning.html#TYPEin_channel">in_channel</a></code></pre><div class="info ">
<div class="info-desc">
<p><code class="code"><span class="constructor">Scanning</span>.from_function&nbsp;f</code> returns a <a href="Scanf.Scanning.html#TYPEin_channel"><code class="code"><span class="constructor">Scanf</span>.<span class="constructor">Scanning</span>.in_channel</code></a> formatted
    input channel with the given function as its reading method.</p>

<p>When scanning needs one more character, the given function is called.</p>

<p>When the function has no more character to provide, it <em>must</em> signal an
    end-of-input condition by raising the exception <code class="code"><span class="constructor">End_of_file</span></code>.</p>
</div>
</div>

<pre><span id="VALfrom_channel"><span class="keyword">val</span> from_channel</span> : <code class="type"><a href="Stdlib.html#TYPEin_channel">in_channel</a> -> <a href="Scanf.Scanning.html#TYPEin_channel">in_channel</a></code></pre><div class="info ">
<div class="info-desc">
<p><code class="code"><span class="constructor">Scanning</span>.from_channel&nbsp;ic</code> returns a <a href="Scanf.Scanning.html#TYPEin_channel"><code class="code"><span class="constructor">Scanf</span>.<span class="constructor">Scanning</span>.in_channel</code></a> formatted
    input channel which reads from the regular <a href="Stdlib.html#TYPEin_channel"><code class="code">in_channel</code></a> input
    channel <code class="code">ic</code> argument.
    Reading starts at current reading position of <code class="code">ic</code>.</p>
</div>
</div>

<pre><span id="VALend_of_input"><span class="keyword">val</span> end_of_input</span> : <code class="type"><a href="Scanf.Scanning.html#TYPEin_channel">in_channel</a> -> bool</code></pre><div class="info ">
<div class="info-desc">
<p><code class="code"><span class="constructor">Scanning</span>.end_of_input&nbsp;ic</code> tests the end-of-input condition of the given
    <a href="Scanf.Scanning.html#TYPEin_channel"><code class="code"><span class="constructor">Scanf</span>.<span class="constructor">Scanning</span>.in_channel</code></a> formatted input channel.</p>
</div>
</div>

<pre><span id="VALbeginning_of_input"><span class="keyword">val</span> beginning_of_input</span> : <code class="type"><a href="Scanf.Scanning.html#TYPEin_channel">in_channel</a> -> bool</code></pre><div class="info ">
<div class="info-desc">
<p><code class="code"><span class="constructor">Scanning</span>.beginning_of_input&nbsp;ic</code> tests the beginning of input condition
    of the given <a href="Scanf.Scanning.html#TYPEin_channel"><code class="code"><span class="constructor">Scanf</span>.<span class="constructor">Scanning</span>.in_channel</code></a> formatted input channel.</p>
</div>
</div>

<pre><span id="VALname_of_input"><span class="keyword">val</span> name_of_input</span> : <code class="type"><a href="Scanf.Scanning.html#TYPEin_channel">in_channel</a> -> string</code></pre><div class="info ">
<div class="info-desc">
<p><code class="code"><span class="constructor">Scanning</span>.name_of_input&nbsp;ic</code> returns the name of the character source
    for the given <a href="Scanf.Scanning.html#TYPEin_channel"><code class="code"><span class="constructor">Scanf</span>.<span class="constructor">Scanning</span>.in_channel</code></a> formatted input channel.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 3.09.0</li>
</ul>
</div>

<pre><span id="VALstdib"><span class="keyword">val</span> stdib</span> : <code class="type"><a href="Scanf.Scanning.html#TYPEin_channel">in_channel</a></code></pre><div class="info ">
<div class="info-desc">
<p>A deprecated alias for <a href="Scanf.Scanning.html#VALstdin"><code class="code"><span class="constructor">Scanf</span>.<span class="constructor">Scanning</span>.stdin</code></a>, the scanning buffer reading from
    <a href="Stdlib.html#VALstdin"><code class="code">stdin</code></a>.</p>
</div>
</div>
</body></html>