diff options
Diffstat (limited to 'lib/lexer.mll')
-rw-r--r-- | lib/lexer.mll | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/lexer.mll b/lib/lexer.mll index 41a2abc..769192b 100644 --- a/lib/lexer.mll +++ b/lib/lexer.mll @@ -10,19 +10,20 @@ 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 id = ['a'-'z' 'A'-'Z' '-']* +let newline = '\r' | '\n' | "\r\n" +let many_newline = newline+ rule read = parse - | white { read lexbuf } | id { IDENTIFIER (Lexing.lexeme lexbuf) } - | "uuidv4" { UUIDV4 } - | "name" { NAME } + | "_uuidv4" { UUIDV4 } + | "_name" { NAME } + | white { read lexbuf } | ":" { COLON } | ";" { SEMICOLON } | "," { COMMA } - | "\n" { NEWLINE } + | many_newline { NEWLINE } | "." { DOT } | eof { EOF } | _ as c { failwith (Printf.sprintf "unexpected character: %C" c) } |