Module Gramlib.LStream
val from : ?loc:Loc.t -> ('e -> ('a * Loc.t) option) -> ('e, 'a) t
val current_loc : ('e, '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 : ('e, '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 -> ('e, 'a) t -> Loc.t
interval_loc bp ep strm
returns the loc starting after elementbp
(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 -> ('e, '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 : ('e, 'a) t -> int
val peek : 'e -> ('e, 'a) t -> 'a option
val npeek : 'e -> int -> ('e, 'a) t -> 'a list
val junk : 'e -> ('e, 'a) t -> unit
consumes the next element if there is one
val njunk : 'e -> int -> ('e, 'a) t -> unit
njunk e n strm
consumesn
elements fromstrm
val next : 'e -> ('e, 'a) t -> 'a
next e strm
returns and consumes the next element; raiseStream.Failure
if the stream is empty
val peek_nth : 'e -> int -> ('e, 'a) t -> 'a
peek_nth e n strm
returns the nth element counting from 0 without consuming the stream; raisesStream.Failure
if not enough elements