{ 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' '_']* rule read = parse | white { read lexbuf } | id { IDENTIFIER (Lexing.lexeme lexbuf) } | "uuidv4" { UUIDV4 } | "name" { NAME } | ":" { COLON } | "," { COMMA } | "\n" { NEWLINE } | "." { DOT } | eof { EOF } | _ as c { failwith (Printf.sprintf "unexpected character: %C" c) }