package nice_parser

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

The nicified interface to your parser.

Types

Inherited from RAW_PARSER.

type token
type result

Exceptions

Nice exceptions include the location at which an error occured. A nice ParseErrror also includes the token which caused the parser to choke, which can be useful for debugging.

exception LexError of {
  1. msg : string;
  2. loc : Location.t;
}
exception ParseError of {
  1. token : token;
  2. loc : Location.t;
}
val pp_exceptions : unit -> unit

Registers a pretty printer for LexError and ParseError. This results in colorful error messages including the source location when errrors occur. With OCaml >= 4.08, the pretty printer will also quote the problematic location in the soure code and underline the error location, like so:

File "examples/illegal.katbb", line 1, characters 10-17:
1 | this!; is illegal!; isntit?
              ^^^^^^^
Error: [parser] unexpected token

Parsing

val parse_string : ?pos:Lexing.position -> string -> result
val parse_chan : ?pos:Lexing.position -> in_channel -> result
val parse_file : string -> result