*)
let main =
- let cwd = ref Filename.current_dir_name in
- let help = "Usage: transcript [ -C <dir> ] [ <package> | <conf_file> ]*" in
+ let help = "Usage: transcript [ -glmpx | -C <dir> ] [ <package> | <conf_file> ]*" in
let help_C = " set working directory to <dir>" in
- let help_vp = " verbose parsing" in
- let help_vl = " verbose lexing" in
- let help_vx = " verbose character escaping" in
- let set_cwd dir = cwd := dir in
- let process_package package = Engine.produce (Engine.make !cwd package) in
- Engine.init ();
+ let help_g = " check for non existing objects" in
+ let help_l = " verbose lexing" in
+ let help_m = " minimal output generation" in
+ let help_p = " verbose parsing" in
+ let help_x = " verbose character escaping" in
+ let set_cwd dir = Options.cwd := dir; Engine.init () in
+ let process_file file =
+ if Sys.file_exists file || Sys.file_exists (file ^ Engine.suffix) then
+ begin Engine.produce (Engine.make file); Options.sources := [] end
+ else
+ Options.sources := file :: !Options.sources
+ in
Arg.parse [
("-C", Arg.String set_cwd, help_C);
- ("-vp", Arg.Set Options.verbose_parser, help_vp);
- ("-vl", Arg.Set Options.verbose_lexer, help_vl);
- ("-vx", Arg.Set Options.verbose_escape, help_vx);
- ] process_package help
+ ("-g", Arg.Set Options.getter, help_g);
+ ("-l", Arg.Set Options.verbose_lexer, help_l);
+ ("-m", Arg.Clear Options.comments, help_m);
+ ("-p", Arg.Set Options.verbose_parser, help_p);
+ ("-x", Arg.Set Options.verbose_escape, help_x);
+ ] process_file help