package coq-core

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Gramlib.StreamSource

Streams and parsers.

Sourcetype ('e, 'a) t

The type of streams holding values of type 'a. Producing a new value needs an environment 'e.

Sourceexception Failure

Raised by streams when trying to access beyond their end.

Stream builders

Sourceval from : ?offset:int -> ('e -> 'a option) -> ('e, 'a) t

Stream.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.

Sourceval empty : unit -> ('e, 'a) t

Return the stream holding the elements of the list in the same order.

Sourceval of_string : ?offset:int -> string -> (unit, char) t

Return the stream of the characters of the string parameter. If set. offset parameter is similar to from.

Sourceval of_channel : in_channel -> (unit, char) t

Return the stream of the characters read from the input channel.

Predefined parsers

Sourceval next : 'e -> ('e, 'a) t -> 'a

Return the first element of the stream and remove it from the stream.

Sourceval is_empty : 'e -> ('e, 'a) t -> bool

Return true if the stream is empty, else false.

Useful functions

Sourceval peek : 'e -> ('e, 'a) t -> 'a option

Return Some of "the first element" of the stream, or None if the stream is empty.

Sourceval junk : 'e -> ('e, 'a) t -> unit

Remove the first element of the stream, possibly unfreezing it before.

Sourceval count : ('e, 'a) t -> int

Return the current count of the stream elements, i.e. the number of the stream elements discarded.

Sourceval npeek : 'e -> int -> ('e, 'a) t -> 'a list

npeek 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.

Sourceval nth : 'e -> int -> ('e, 'a) t -> 'a
Sourceval njunk : 'e -> int -> ('e, 'a) t -> unit
OCaml

Innovation. Community. Security.