Module Drom_toml.Parser

Parses raw data into Toml data structures

type location = {
  1. source : string;
  2. line : int;
  3. column : int;
  4. position : int;
}

The location of an error. The source gives the source file of the error. The other fields give the location of the error inside the source. They all start from one. The line is the line number, the column is the number of characters from the start of the line, and the position is the number of characters from the start of the source.

type result = [
  1. | `Ok of Types.table
  2. | `Error of string * location
]

Parsing result. Either Ok or error (which contains a (message, location) tuple).

val parse : Stdlib.Lexing.lexbuf -> string -> result

Given a lexer buffer and a source (eg, a filename), returns a result.

  • raises Toml.Parser.Error

    if the buffer is not valid Toml.

  • since 2.0.0
val from_string : string -> result

Given an UTF-8 string, returns a result.

  • since 2.0.0
val from_channel : Stdlib.in_channel -> result

Given an input channel, returns a result.

  • since 2.0.0
val from_filename : string -> result

Given a filename, returns a result.

  • raises Stdlib.Sys_error

    if the file could not be opened.

  • since 2.0.0
exception Error of string * location
val unsafe : result -> Types.table

A combinator to force the result. Raise Error if the result was `Error.

  • since 4.0.0