6 module Cxx
= Gen.Make
(Gen_cxx
)
7 module Caml
= Gen.Make
(Gen_caml
)
8 module Xml_gen
= Gen.Make
(Gen_xml
)
10 let generate = ref Cxx.process
15 | "cxx" -> Cxx.process
16 | "caml" -> Caml.process
17 | "xml" -> Xml_gen.process
18 | _
-> failwith
(sprintf
"Unknown output language: %s" s
)
21 let f s
= s
>> Main.parse_sql
>> !generate in
23 | "-" -> f (Std.input_all stdin
)
24 | filename
-> Main.with_file filename
f
27 let s1 = sprintf
"SQL Guided (code) Generator ver. %s\n" Config.version
in
28 let s2 = sprintf
"Usage: %s <options> <file.sql>\n" (Filename.basename
Sys.executable_name
) in
29 let s3 = "Options are:" in
32 let show_version () = print_endline
Config.version
37 "-version", Arg.Unit
show_version, " Show version";
38 "-gen", Arg.String
set_out, "cxx|caml|xml Set output language";
39 "-test", Arg.Unit
Test.run
, " Run unit tests";
40 "-", Arg.Unit
(fun () -> work "-"), " Read sql from stdin";
43 Arg.parse
(Arg.align
args) work usage_msg
45 let _ = Printexc.print
main ()