From 4c4b924256b4f7fea8cd0b7401b3ac2845914382 Mon Sep 17 00:00:00 2001 From: ygrek Date: Fri, 15 May 2009 10:41:42 +0300 Subject: [PATCH] test_caml --- example/.gitignore | 5 +++ example/build | 5 +++ {test_cpp => example}/build.bat | 0 example/test_caml.ml | 53 +++++++++++++++++++++++++++++++ test_cpp/test.cpp => example/test_cxx.cpp | 2 +- gen_caml.ml | 6 +++- test_cpp/build | 2 -- 7 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 example/.gitignore create mode 100755 example/build rename {test_cpp => example}/build.bat (100%) create mode 100644 example/test_caml.ml rename test_cpp/test.cpp => example/test_cxx.cpp (98%) delete mode 100755 test_cpp/build diff --git a/example/.gitignore b/example/.gitignore new file mode 100644 index 0000000..72ecb21 --- /dev/null +++ b/example/.gitignore @@ -0,0 +1,5 @@ +*_gen.* +test_caml +test_cxx +test.db +*.cm? diff --git a/example/build b/example/build new file mode 100755 index 0000000..59c40ea --- /dev/null +++ b/example/build @@ -0,0 +1,5 @@ +../sqlgg.byte -gen cxx ../test.sql > test_cxx_gen.hpp +g++ -g -o test_cxx test_cxx.cpp -lsqlite3 + +../sqlgg.byte -gen caml ../test.sql > test_caml_gen.ml +ocamlc -g -w As -o test_caml -I +sqlite3 sqlite3.cma test_caml.ml diff --git a/test_cpp/build.bat b/example/build.bat similarity index 100% rename from test_cpp/build.bat rename to example/build.bat diff --git a/example/test_caml.ml b/example/test_caml.ml new file mode 100644 index 0000000..a46143e --- /dev/null +++ b/example/test_caml.ml @@ -0,0 +1,53 @@ + +open Printf +open Sqlite3 + +(* module G = Sqlgg(Sqlgg_sqlite3) *) + +let explain msg db = printf "%s : %s\n" msg (errmsg db) + +let main () = + let db = db_open "test.db" in + explain "open" db; + + exec db "DROP TABLE test;"; + explain "drop" db; + exec db "DROP TABLE loc;"; + explain "drop" db; + exec db "DROP TABLE zuzu;"; + explain "drop" db; + +(* + G.create db; + explain "create" db; + + G.add db "c++" "ugly"; + explain "insert" db; + + G.add db "c" "hard"; + explain "insert" db; + + G.add db "ocaml" "wonderful"; + explain "insert" db; + + G.exaggerate db "really"; + explain "update" db; + + G.select_all db (fun id name descr -> printf "%u) %s is %s\n" id name descr); + explain "select" db; + + G.create_loc db; + explain "create_loc" db; + + G.create_zuzu db "qq"; + explain "create_zuzu" db; +*) + + let ok = db_close db in + printf "close: %B\n" ok; + + () + +let _ = + Printexc.print main () + diff --git a/test_cpp/test.cpp b/example/test_cxx.cpp similarity index 98% rename from test_cpp/test.cpp rename to example/test_cxx.cpp index 9e5664e..c2f272c 100644 --- a/test_cpp/test.cpp +++ b/example/test_cxx.cpp @@ -1,7 +1,7 @@ // #include "../sqlite3_helper.hpp" -#include "test.hpp" +#include "test_cxx_gen.hpp" #include #include #include diff --git a/gen_caml.ml b/gen_caml.ml index 09795f6..18a94b1 100644 --- a/gen_caml.ml +++ b/gen_caml.ml @@ -28,9 +28,13 @@ let rec replace_all ~str ~sub ~by = | (true,s) -> replace_all ~str:s ~sub ~by | (false,s) -> s -let quote_comment_inline str = replace_all ~str ~sub:"*)" ~by:"* )" +let quote_comment_inline str = + let str = replace_all ~str ~sub:"*)" ~by:"* )" in + replace_all ~str ~sub:"(*" ~by:"( *" + let make_comment str = "(* " ^ (quote_comment_inline str) ^ " *" ^ ")" let comment fmt = Printf.kprintf (indent_endline & make_comment) fmt + (* let start_struct name = output "struct %s" name; diff --git a/test_cpp/build b/test_cpp/build deleted file mode 100755 index de209e0..0000000 --- a/test_cpp/build +++ /dev/null @@ -1,2 +0,0 @@ -../sqlgg.byte ../test.sql > test.hpp -g++ -g -o test test.cpp -lsqlite3 -- 2.11.4.GIT