Module Gramlib.Stream
type ('e, 'a) tThe type of streams holding values of type
'a. Producing a new value needs an environment'e.
Stream builders
val from : ?offset:int -> ('e -> 'a option) -> ('e, 'a) tStream.from freturns a stream built from the functionf. To create a new stream element, the functionfis called. The user functionfmust return eitherSome <value>for a value orNoneto specify the end of the stream.offsetwill initialize the streamcountto start withoffsetconsumed 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.
offsetparameter is similar tofrom.
val of_channel : Stdlib.in_channel -> (unit, char) tReturn the stream of the characters read from the input channel.
Predefined parsers
val next : 'e -> ('e, 'a) t -> 'aReturn the first element of the stream and remove it from the stream.
- raises Stream.Failure
if the stream is empty.
val is_empty : 'e -> ('e, 'a) t -> boolReturn
trueif the stream is empty, elsefalse.
Useful functions
val peek : 'e -> ('e, 'a) t -> 'a optionReturn
Someof "the first element" of the stream, orNoneif 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 nreturns the list of thenfirst elements of the stream, or all its remaining elements if less thannelements are available.