sig
type location = {
start_pos : int;
end_pos : int;
start_line : int;
start_col : int;
}
type regular_expression =
Epsilon
| Characters of Inria_cset.t
| Eof
| Sequence of Inria_syntax.regular_expression *
Inria_syntax.regular_expression
| Alternative of Inria_syntax.regular_expression *
Inria_syntax.regular_expression
| Repetition of Inria_syntax.regular_expression
| Bind of Inria_syntax.regular_expression * string
type ('a, 'b) entry = {
name : string;
shortest : bool;
args : 'a;
clauses : (Inria_syntax.regular_expression * 'b) list;
}
type lexer_definition = {
header : Inria_syntax.location;
entrypoints :
(string list, Inria_syntax.location) Inria_syntax.entry list;
trailer : Inria_syntax.location;
}
end