summaryrefslogtreecommitdiff
path: root/ocamldoc/odoc_args.ml
diff options
context:
space:
mode:
authorDamien Doligez <damien.doligez-inria.fr>2014-10-15 13:34:58 +0000
committerDamien Doligez <damien.doligez-inria.fr>2014-10-15 13:34:58 +0000
commit031cffd1554cde5e9d78b78e4959708a2d8c9201 (patch)
tree38aec36ff5282a62a704f7a925ddac41aae51db6 /ocamldoc/odoc_args.ml
parente3ad818fb5f8ddc7b477779a6da69ccac0f00f4f (diff)
parent6ca707d0665b2015a5690de8c560e27f6371e443 (diff)
downloadocaml-031cffd1554cde5e9d78b78e4959708a2d8c9201.tar.gz
merge branch 4.02 from release 4.02.0 to release 4.02.1
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15558 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'ocamldoc/odoc_args.ml')
-rw-r--r--ocamldoc/odoc_args.ml99
1 files changed, 64 insertions, 35 deletions
diff --git a/ocamldoc/odoc_args.ml b/ocamldoc/odoc_args.ml
index be5ce12fc6..77b59025b4 100644
--- a/ocamldoc/odoc_args.ml
+++ b/ocamldoc/odoc_args.ml
@@ -172,29 +172,73 @@ let add_hidden_modules s =
let set_generator (g : Odoc_gen.generator) = current_generator := Some g
+let anonymous f =
+ let sf =
+ if Filename.check_suffix f "ml" then
+ Odoc_global.Impl_file f
+ else
+ if Filename.check_suffix f !Config.interface_suffix then
+ Odoc_global.Intf_file f
+ else
+ if Filename.check_suffix f "txt" then
+ Odoc_global.Text_file f
+ else
+ failwith (Odoc_messages.unknown_extension f)
+ in
+ Odoc_global.files := !Odoc_global.files @ [sf]
+
+module Options = Main_args.Make_ocamldoc_options(struct
+ let set r () = r := true
+ let unset r () = r := false
+ let _absname = set Location.absname
+ let _I s = Odoc_global.include_dirs :=
+ (Misc.expand_directory Config.standard_library s) :: !Odoc_global.include_dirs
+ let _impl s = Odoc_global.files := !Odoc_global.files @ [Odoc_global.Impl_file s]
+ let _intf s = Odoc_global.files := !Odoc_global.files @ [Odoc_global.Intf_file s]
+ let _intf_suffix s = Config.interface_suffix := s
+ let _labels = unset Clflags.classic
+ let _no_alias_deps = set Clflags.transparent_modules
+ let _no_app_funct = unset Clflags.applicative_functors
+ let _noassert = set Clflags.noassert
+ let _nolabels = set Clflags.classic
+ let _nostdlib = set Clflags.no_std_include
+ let _open s = Clflags.open_modules := s :: !Clflags.open_modules
+ let _pp s = Clflags.preprocessor := Some s
+ let _ppx s = Clflags.all_ppx := s :: !Clflags.all_ppx
+ let _principal = set Clflags.principal
+ let _rectypes = set Clflags.recursive_types
+ let _safe_string = unset Clflags.unsafe_string
+ let _short_paths = unset Clflags.real_paths
+ let _strict_sequence = set Clflags.strict_sequence
+ let _strict_formats = set Clflags.strict_formats
+ let _thread = set Clflags.use_threads
+ let _vmthread = set Clflags.use_vmthreads
+ let _unsafe () = assert false
+ let _unsafe_string = set Clflags.unsafe_string
+ let _v () = Compenv.print_version_and_library "documentation generator"
+ let _version = Compenv.print_version_string
+ let _vnum = Compenv.print_version_string
+ let _w = (Warnings.parse_options false)
+ let _warn_error _ = assert false
+ let _warn_help _ = assert false
+ let _where = Compenv.print_standard_library
+ let _verbose = set Clflags.verbose
+ let _nopervasives = set Clflags.nopervasives
+ let _dsource = set Clflags.dump_source
+ let _dparsetree = set Clflags.dump_parsetree
+ let _dtypedtree = set Clflags.dump_typedtree
+ let _drawlambda = set Clflags.dump_rawlambda
+ let _dlambda = set Clflags.dump_lambda
+ let _dinstr = set Clflags.dump_instr
+ let anonymous = anonymous
+end)
+
(** The default option list *)
-let default_options = [
- "-version", Arg.Unit (fun () -> print_string M.message_version ; print_newline () ; exit 0) , M.option_version ;
- "-vnum", Arg.Unit (fun () -> print_string M.config_version ;
- print_newline () ; exit 0) , M.option_version ;
- "-v", Arg.Unit (fun () -> Odoc_global.verbose := true), M.verbose_mode ;
- "-I", Arg.String (fun s ->
- Odoc_global.include_dirs :=
- (Misc.expand_directory Config.standard_library s) :: !Odoc_global.include_dirs),
- M.include_dirs ;
- "-pp", Arg.String (fun s -> Odoc_global.preprocessor := Some s), M.preprocess ;
- "-ppx", Arg.String (fun s -> Odoc_global.ppx := s :: !Odoc_global.ppx), M.ppx ;
- "-impl", Arg.String (fun s ->
- Odoc_global.files := !Odoc_global.files @ [Odoc_global.Impl_file s]),
- M.option_impl ;
- "-intf", Arg.String (fun s ->
- Odoc_global.files := !Odoc_global.files @ [Odoc_global.Intf_file s]),
- M.option_intf ;
+let default_options = Options.list @
+[
"-text", Arg.String (fun s ->
Odoc_global.files := !Odoc_global.files @ [Odoc_global.Text_file s]),
M.option_text ;
- "-rectypes", Arg.Set Odoc_global.recursive_types, M.rectypes ;
- "-nolabels", Arg.Unit (fun () -> Odoc_global.classic := true), M.nolabels ;
"-warn-error", Arg.Set Odoc_global.warn_error, M.werr ;
"-hide-warnings", Arg.Clear Odoc_config.print_warnings, M.hide_warnings ;
"-o", Arg.String (fun s -> Odoc_global.out_file := s), M.out_file ;
@@ -338,24 +382,9 @@ let add_option o =
options := iter !options
let parse () =
- let anonymous f =
- let sf =
- if Filename.check_suffix f "ml" then
- Odoc_global.Impl_file f
- else
- if Filename.check_suffix f "mli" then
- Odoc_global.Intf_file f
- else
- if Filename.check_suffix f "txt" then
- Odoc_global.Text_file f
- else
- failwith (Odoc_messages.unknown_extension f)
- in
- Odoc_global.files := !Odoc_global.files @ [sf]
- in
if modified_options () then append_last_doc "\n";
let options = !options @ !help_options in
- let _ = Arg.parse options
+ let _ = Arg.parse (Arg.align ~limit:13 options)
anonymous
(M.usage^M.options_are)
in