mock_csv/_build/default/lexer/lexer.mll
2024-12-11 08:33:41 +01:00

26 lines
596 B
OCaml

{
open Parser
}
let whitespace = [' ' '\t']+
let newline = ('\n'|"\r\n")
let digit = ['0'-'9']
let alpha = ['a'-'z' 'A'-'Z' '_']
let alphanumeric = (alpha|digit)
rule read_token = parse
| "type" { TYPE }
| "int" { INT }
| "string" { STRING }
| "date" { DATE }
| "range" { RANGE }
| "values" { VALUES }
| newline { LF }
| '=' { EQUALS }
| '[' { LEFT_BRACKET }
| ']' { RIGHT_BRACKET }
| ',' { COMMA }
| whitespace { read_token lexbuf }
| alphanumeric* as ident { IDENT ident }
| eof { EOF }