Skip to content

Commit

Permalink
Merge pull request #22 from cedretaber/cedretaber/add-dl2u
Browse files Browse the repository at this point in the history
dl2u コマンドを実装
  • Loading branch information
yoshihiro503 authored Oct 1, 2023
2 parents 662e1b8 + fbdff39 commit e1d39f7
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 0 deletions.
17 changes: 17 additions & 0 deletions bin/dl2u.ml
Original file line number Diff line number Diff line change
@@ -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
6 changes: 6 additions & 0 deletions bin/dune
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
5 changes: 5 additions & 0 deletions examples/dl2u_sample.dl
Original file line number Diff line number Diff line change
@@ -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).

0 comments on commit e1d39f7

Please sign in to comment.