diff --git a/lexer/lexer.mll b/lexer/lexer.mll index 946bf27..f735e09 100644 --- a/lexer/lexer.mll +++ b/lexer/lexer.mll @@ -8,44 +8,48 @@ let alpha = ['a'-'z' 'A'-'Z' '_'] let alphanumeric = (alpha|digit) rule read_token = parse - | "SELECT" { SELECT } - | "AVG" { AVG } - | "MAX" { MAX } - | "MIN" { MIN } - | "SUM" { SUM } - | "COUNT" { COUNT } - | "DISTINCT" { DISTINCT } - | "FROM" { FROM } - | "INNER" { INNER } - | "LEFT" { LEFT } - | "RIGHT" { RIGHT } - | "CROSS" { CROSS } - | "UNION" { UNION } - | "NATURAL" { NATURAL } - | "JOIN" { JOIN } - | "ON" { ON } - | "OR" { OR } - | "AND" { AND } - | "WHERE" { WHERE } - | "HAVING" { HAVING } - | "BETWEEN" { BETWEEN } - | "IN" { IN } - | "LIKE" { LIKE } - | "GROUP" { GROUP } - | "BY" { BY } - | "*" { ASTERISK } - | "." { DOT } - | "=" { EQUALS_OPERATOR } - | "(" { LEFT_PAREN } - | ")" { RIGHT_PAREN } - | "," { COMMA } - | "|" { PIPE } - | "'" { QUOTE } - | "+" { PLUS_SIGN } - | "-" { MINUS_SIGN } - | whitespace { read_token lexbuf } - | digit+ { INTEGER } - | digit+"."digit+ { FLOAT } - | '.'digit+ { FLOAT } - | alpha alphanumeric* as ident { IDENT ident } - | eof { EOF } + | "SELECT" { SELECT } + | "AS" { AS } + | "DATE" { DATE } + | "TIME" { TIME } + | "AVG" { AVG } + | "MAX" { MAX } + | "MIN" { MIN } + | "SUM" { SUM } + | "COUNT" { COUNT } + | "DISTINCT" { DISTINCT } + | "FROM" { FROM } + | "INNER" { INNER } + | "LEFT" { LEFT } + | "RIGHT" { RIGHT } + | "CROSS" { CROSS } + | "UNION" { UNION } + | "NATURAL" { NATURAL } + | "JOIN" { JOIN } + | "ON" { ON } + | "OR" { OR } + | "AND" { AND } + | "WHERE" { WHERE } + | "HAVING" { HAVING } + | "BETWEEN" { BETWEEN } + | "IN" { IN } + | "LIKE" { LIKE } + | "GROUP" { GROUP } + | "BY" { BY } + | "*" { ASTERISK } + | "." { DOT } + | "=" { EQUALS_OPERATOR } + | "(" { LEFT_PAREN } + | ")" { RIGHT_PAREN } + | ',' { COMMA } + | "|" { PIPE } + | "'" { QUOTE } + | "+" { PLUS_SIGN } + | "-" { MINUS_SIGN } + | ':' { COLON } + | whitespace { read_token lexbuf } + | digit+ as integer { INTEGER (int_of_string integer) } + | digit+"."digit+ { FLOAT } + | '.'digit+ { FLOAT } + | alpha alphanumeric* as ident { IDENT ident } + | eof { EOF }