Module Base__Import0.Stream
Streams and parsers.
exception
Failure
Raised by parsers when none of the first components of the stream patterns is accepted.
exception
Error of string
Raised by parsers when the first component of a stream pattern is accepted, but one of the following components is rejected.
Stream builders
val from : (int -> 'a option) -> 'a t
Stream.from f
returns a stream built from the functionf
. To create a new stream element, the functionf
is called with the current stream count. The user functionf
must return eitherSome <value>
for a value orNone
to specify the end of the stream.Do note that the indices passed to
f
may not start at0
in the general case. For example,[< '0; '1; Stream.from f >]
would callf
the first time with count2
.
val of_list : 'a list -> 'a t
Return the stream holding the elements of the list in the same order.
val of_string : string -> char t
Return the stream of the characters of the string parameter.
val of_bytes : bytes -> char t
Return the stream of the characters of the bytes parameter.
- since
- 4.02.0
val of_channel : Stdlib.in_channel -> char t
Return the stream of the characters read from the input channel.
Stream iterator
val iter : ('a -> unit) -> 'a t -> unit
Stream.iter f s
scans the whole stream s, applying functionf
in turn to each stream element encountered.
Predefined parsers
val next : 'a t -> 'a
Return the first element of the stream and remove it from the stream. Raise
Stream
.Failure if the stream is empty.
val empty : 'a t -> unit
Return
()
if the stream is empty, else raiseStream
.Failure.
Useful functions
val peek : 'a t -> 'a option
Return
Some
of "the first element" of the stream, orNone
if the stream is empty.
val junk : 'a t -> unit
Remove the first element of the stream, possibly unfreezing it before.
val count : 'a t -> int
Return the current count of the stream elements, i.e. the number of the stream elements discarded.
val npeek : int -> 'a t -> 'a list
npeek n
returns the list of then
first elements of the stream, or all its remaining elements if less thann
elements are available.