From 8ac0e27adc8d14a77427351dede1757999c8c709 Mon Sep 17 00:00:00 2001 From: Marc Coquand Date: Tue, 26 Dec 2023 09:25:58 -0600 Subject: Support many newlines --- lib/lexer.mll | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'lib/lexer.mll') 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) } -- cgit v1.2.3