{ open Parser exception SyntaxError of string } let digit = ['0'-'9'] let frac = '.' digit* let exp = ['e' 'E'] ['-' '+']? digit+ let float = digit* frac? exp? let white = [' ' '\t']+ let newline = '\r' | '\n' | "\r\n" let id = ['a'-'z' 'A'-'Z' '-']* let newline = '\r' | '\n' | "\r\n" let many_newline = newline+ rule read = parse | id { IDENTIFIER (Lexing.lexeme lexbuf) } | "_uuidv4" { UUIDV4 } | "_name" { NAME } | white { read lexbuf } | ":" { COLON } | ";" { SEMICOLON } | "," { COMMA } | many_newline { NEWLINE } | "." { DOT } | eof { EOF } | _ as c { failwith (Printf.sprintf "unexpected character: %C" c) }