Module LStream
Extending streams with a (non-canonical) location function
val from : ?loc:Loc.t -> (int -> ('a * Loc.t) option) -> 'a t
val current_loc : 'a t -> Loc.t
Returning the loc of the last consumed element or the initial loc if no element is consumed
val max_peek_loc : 'a t -> Loc.t
Returning the loc of the max visited element or the initial loc if no element is consumed
val interval_loc : int -> int -> 'a t -> Loc.t
Returning the loc starting after element
bp
(counting from 0) and spanning up to already peeked element at positionep
, under the assumption thatbp
<=ep
; returns an empty interval ifbp
=ep
; returns the empty initial interval if additionallybp
= 0; fails if the elements have not been peeked yet
val get_loc : int -> 'a t -> Loc.t
Return location of an already peeked element at some position counting from 0; fails if the element has not been peeked yet
val count : 'a t -> int
val peek : 'a t -> 'a option
val npeek : int -> 'a t -> 'a list
val junk : 'a t -> unit
consumes the next element if there is one
val next : 'a t -> 'a
next strm
returns and consumes the next element; raiseStream.Failure
if the stream is empty
val peek_nth : int -> 'a t -> 'a
peek_nth n strm
returns the nth element counting from 0 without consuming the stream; raisesStream.Failure
if not enough elements