type location = {
file : string;
mutable line_begin : int;
mutable line_end : int;
mutable char_begin : int;
mutable char_end : int;
}
type context =
| InsideTable
| InsideArray
| InsideInlineTable
type config = {
debug : bool;
silent_errors : EzCompat.IntSet.t;
newline : string;
}
type table = node EzCompat.StringMap.t
and value =
| Table of table
| Array of node array
| String of string
| Bool of bool
| Int of string
| Float of string
| Date of string
type error =
| Parse_error
| Syntax_error of string
| Invalid_lookup
| Invalid_lookup_in_inline_array
| Key_already_exists of key_path
| Invalid_key_set of key
| Invalid_table of key_path
| Append_item_to_non_array of key_path
| Append_item_to_non_table_array of key_path
| Invalid_escaped_unicode of string
| Expected_error_before_end_of_file of int
| Expected_error_did_not_happen of int
| Expected_error_but_another_error of int * location * int * error
| Forbidden_escaped_character
| Unterminated_string
| Control_characters_must_be_escaped of char
| Duplicate_table_item of key_path
| Type_mismatch of node * string
| Bad_convertion of node * string
| Invalid_lookup_in_empty_array
| Key_already_exists_in_inline_table of key_path
| Invalid_use_of_extension of string