aboutsummaryrefslogtreecommitdiff
path: root/lib/qparser/lexer.mli
blob: 854bb1ea9c5fc4ef6a1c5f08bc19b59a7e46d816 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(** Provide a lexer for the langage. The function [main] read the source and
    identify the next to token to give to the parser.

    Personal note: parsing the QSP is really complicated. The language was
    designed for regex and I have to twist the lexer in order to get something
    working. *)

exception EOF

exception UnclosedQuote
(** Error reported when a string is not closed properly *)

exception LexError of string

val discard : Lexbuf.t -> unit
(** Discard the remaining element in the location until the end of this one.
    Used in case of unrecoverable error *)

val main : Lexbuf.t -> Tokens.token
(** Main entry point. This function is called after each token returned *)