stream: operations on streams
type 'a stream
-
The type of streams containing values of type 'a.
exception Parse_failure
-
Raised by parsers when none of the first component of the stream patterns
is accepted
exception Parse_error
-
Raised by parsers when the first component of a stream pattern is
accepted, but one of the following components is rejected
value stream_next : 'a stream -> 'a
-
stream_next s returns the first element of stream s,
and removes it from the stream. Raise Parse_failure if the
stream is empty.
value stream_from : (unit -> 'a) -> 'a stream
-
stream_from f returns the stream which fetches its terminals using
the function f. This function could be defined as:
let rec stream_from f = [< 'f(); stream_from f >]
but is implemented more efficiently.
value stream_of_string : string -> char stream
-
stream_of_string s returns the stream of the characters in
string s.
value stream_of_channel : in_channel -> char stream
-
stream_of_channel ic returns the stream of characters read on
channel ic.
value do_stream : ('a -> unit) -> 'a stream -> unit
-
do_stream f s scans the whole stream s, applying the function f
in turn to each terminal encountered
value stream_check : ('a -> bool) -> 'a stream -> 'a
-
stream_check p returns the parser which returns the first terminal of
the stream if the predicate p returns true on this terminal,
and raises Parse_failure otherwise.
value end_of_stream : 'a stream -> unit
-
Return () iff the stream is empty, and raise Parse_failure
otherwise.
value stream_get : 'a stream -> 'a * 'a stream
-
stream_get s return the first element of the stream s, and a stream
containing the remaining elements of s. Raise Parse_failure if the
stream is empty. The stream s is not modified. This function makes it
possible to access a stream non-destructively.