ocaml_sql_parser/test/SQL_parser.ml
2024-11-24 17:10:33 +01:00

12 lines
526 B
OCaml

open Ast
let parse query =
let lexbuf = Lexing.from_string query in
Parser.main Lexer.read_token lexbuf
let () =
assert(parse "SELECT ab FROM b1" = Query(Select([Column("ab")], [Table "b1"])));
assert(parse "SELECT * FROM b1" = Query(Select([Asterisk], [Table "b1"])));
assert(parse "SELECT * FROM t1 CROSS JOIN t2" = Query(Select([Asterisk], [Join(Table("t1"), Cross, Table("t2"))])));
assert(parse "SELECT * FROM t1 JOIN t2 ON a = b" = Query(Select([Asterisk], [Join(Table("t1"), Left, Table("t2"))])));