Gramlib.StreamStreams and parsers.
The type of streams holding values of type 'a. Producing a new value needs an environment 'e.
val from : ?offset:int -> ('e -> 'a option) -> ('e, 'a) tStream.from f returns a stream built from the function f. To create a new stream element, the function f is called. The user function f must return either Some <value> for a value or None to specify the end of the stream. offset will initialize the stream count to start with offset consumed items, which is useful for some uses cases such as parsing resumption.
val empty : unit -> ('e, 'a) tReturn the stream holding the elements of the list in the same order.
val of_string : ?offset:int -> string -> (unit, char) tReturn the stream of the characters of the string parameter. If set. offset parameter is similar to from.
val of_channel : Stdlib.in_channel -> (unit, char) tReturn the stream of the characters read from the input channel.
val next : 'e -> ('e, 'a) t -> 'aReturn the first element of the stream and remove it from the stream.
val is_empty : 'e -> ('e, 'a) t -> boolReturn true if the stream is empty, else false.
val peek : 'e -> ('e, 'a) t -> 'a optionReturn Some of "the first element" of the stream, or None if the stream is empty.
val junk : 'e -> ('e, 'a) t -> unitRemove the first element of the stream, possibly unfreezing it before.
val count : ('e, 'a) t -> intReturn the current count of the stream elements, i.e. the number of the stream elements discarded.
val npeek : 'e -> int -> ('e, 'a) t -> 'a listnpeek e n returns the list of the n first elements of the stream, or all its remaining elements if less than n elements are available.
val nth : 'e -> int -> ('e, 'a) t -> 'aval njunk : 'e -> int -> ('e, 'a) t -> unit