Module Inria_syntax


module Inria_syntax: sig .. end


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 regular_expression * regular_expression
| Alternative of regular_expression * regular_expression
| Repetition of regular_expression
| Bind of regular_expression * string

type ('a, 'b) entry = {
   name : string;
   shortest : bool;
   args : 'a;
   clauses : (regular_expression * 'b) list;
}
type lexer_definition = {
   header : location;
   entrypoints : (string list, location) entry list;
   trailer : location;
}