package biocaml

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

Buffer used to parse strings into lines.

type t

The buffer handle.

exception No_next_line

The exception thrown by next_line_exn.

val make : ?filename:string -> unit -> t

Make a new empty buffer. The optional filename is used only for error reporting; it should be set to the name of the file, if any, from which you will feed the buffer.

val feed_line : t -> item -> unit

Feed the parser with a line.

val feed_string : t -> string -> unit

Feed the parser with an arbitrary string buffer.

val queued_lines : t -> int

Get the number of lines ready-to-use in the buffer/queue.

val is_empty : t -> bool

Tell if the parser's buffers are empty or not. For instance, when there is no more content to feed and next_line returns None, is_empty p = true means that the content did not end with a complete line.

val peek_line : t -> item option

Peek at the next line, without removing it from the buffer.

val next_line : t -> item option

Get the next line.

val next_line_exn : t -> item

Get the next line, but throw No_next_line if there is no line to return.

val current_position : t -> Pos.t

Get the current position in the stream.

val contents : t -> item list * string option

Return any remaining lines and the unfinished string, without removing them from the buffer.

val empty : t -> unit

Empty the buffer. Subsequent call to contents will return ([], None).