From 9e32a8f45cd25c96e937fad73c0975cd258cda45 Mon Sep 17 00:00:00 2001 From: cedretaber Date: Tue, 25 Jul 2023 01:41:06 +0900 Subject: [PATCH 1/2] Add dl2u command. --- bin/dl2u.ml | 17 +++++++++++++++++ bin/dune | 6 ++++++ 2 files changed, 23 insertions(+) create mode 100644 bin/dl2u.ml diff --git a/bin/dl2u.ml b/bin/dl2u.ml new file mode 100644 index 00000000..40ef1d1a --- /dev/null +++ b/bin/dl2u.ml @@ -0,0 +1,17 @@ +open Birds +let _ = + if Array.length Sys.argv < 2 then + print_endline "Invalid arguments. File name must be passed." + else begin + let filename = Sys.argv.(1) in + let chan = open_in filename in + let lexbuf = Lexing.from_channel chan in + let ast = Parser.main Lexer.token lexbuf in + match Ast2sql.convert_expr_to_operation_based_sql ast with + | Result.Error err -> + print_endline @@ Ast2sql.show_error err + | Result.Ok operations -> + List.iter (fun op -> + print_endline @@ Ast2sql.stringify_sql_operation op + ) operations + end diff --git a/bin/dune b/bin/dune index 11bfd814..fdc1e854 100644 --- a/bin/dune +++ b/bin/dune @@ -4,6 +4,12 @@ (modules u2dl) (libraries birds sql)) +(executable + (public_name dl2u) + (name dl2u) + (modules dl2u) + (libraries birds)) + (executable (public_name parse) (name parse) From fbdff39ced554a8b4ca17d02c48351eeccc43b89 Mon Sep 17 00:00:00 2001 From: cedretaber Date: Wed, 2 Aug 2023 00:23:54 +0900 Subject: [PATCH 2/2] Add a sample dl file. --- examples/dl2u_sample.dl | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 examples/dl2u_sample.dl diff --git a/examples/dl2u_sample.dl b/examples/dl2u_sample.dl new file mode 100644 index 00000000..5575e670 --- /dev/null +++ b/examples/dl2u_sample.dl @@ -0,0 +1,5 @@ +source ed('EMP_NAME':string,'DEPT_NAME':string). +source eed('EMP_NAME':string,'DEPT_NAME':string). ++eed(E, D) :- ed(E, D), D = 'A', E <> 'Joe', ¬eed(E, D). +-eed(E, D) :- ed(V1, D), eed(E, D), E = 'Joe', D = 'A', V1 <> 'Joe', ¬eed(V1, D). ++ed(E, D) :- ed(V1, D), E = 'Joe', D = 'A', V1 <> 'Joe', ¬ed(E, D), ¬eed(V1, D).