module Parameter_customize:sig
..end
Configuration of command line options.
You can apply the functions below just before applying one of the functors
provided by the functor Plugin.Register
and generating a new
parameter.
val set_cmdline_stage : Cmdline.stage -> unit
Set the stage where the option corresponding to the parameter is
recognized. Default is Cmdline.Configuring
.
val do_not_journalize : unit -> unit
Prevent journalization of the parameter.
val do_not_projectify : unit -> unit
Prevent projectification of the parameter: its state is shared by all the
existing projects. Also imply Parameter_customize.do_not_save
and Parameter_customize.do_not_reset_on_copy
.
val do_not_reset_on_copy : unit -> unit
Prevents resetting the parameter to its default value when creating a project from a copy visitor.
val do_not_save : unit -> unit
Prevent serialization of the parameter.
val set_negative_option_name : string -> unit
For boolean parameters, set the name of the negative option generating automatically from the positive one (the given option name). The default used value prefixes the given option name by "-no". Assume that the given string is a valid option name or empty. If it is empty, no negative option is created.
val set_negative_option_help : string -> unit
For boolean parameters, set the help message of the negative option generating automatically. Assume that the given string is non empty.
val set_unset_option_name : string -> unit
For string collection parameters, set the name of an option that will remove elements from the set. There is no default value: if the this function is not called (or if it is the empty string), it will only be possible to add elements from the command line.
val set_unset_option_help : string -> unit
For string collection parameters, gives the help message for
the corresponding unset option. Useless if set_unset_option_name
has not been called before. No default.
val set_optional_help : (unit, Format.formatter, unit) Pervasives.format -> unit
Concatenate an additional description just after the default one.
val set_group : Cmdline.Group.t -> unit
Affect a group to the parameter.
val is_invisible : unit -> unit
Prevent the help to list the parameter. Also imply Parameter_customize.do_not_iterate
.
val argument_is_function_name : unit -> unit
Indicate that the string argument of the parameter must be a valid function
name. A valid function name is the name of a function defined in the
analysed C program. Do nothing if the following applied functor has not type
String
.
String_set
or
String_list
.val argument_may_be_fundecl : unit -> unit
Indicate that the argument of the parameter can match a valid function declaration (otherwise it has to match a defined functions).
val argument_must_be_fundecl : unit -> unit
Indicate that the argument of the parameter must match a valid function declaration.
val argument_must_be_existing_fun : unit -> unit
Indicate that if the argument of the parameter does not match a valid
function name, it raises an error whatever the value of the option
-permissive is. Only meaningful for parameters that are collections of
kernel_function
or fundec
.
This flag does not imply argument_may_be_fundecl
. If the latter is
unset, names of defined-only functions will raise an error as well.
val do_iterate : unit -> unit
Ensure that iter_on_plugins
is applied to this parameter. By default
only parameters corresponding to options registered at the
Cmdline.Configuring
stage are iterable.
val do_not_iterate : unit -> unit
Prevent iter_on_plugins
to be applied on the parameter. By default, only
parameters corresponding to options registered at the
Cmdline.Configuring
stage are iterable.
val no_category : unit -> unit
Prevent a collection parameter to use categories and the extension '+', and '-' mechanism. In particular, you should consider this customization when the parameter is a list of '-' prefixed options to an external tool, unless you are willing to let users escape the initial '-' everytime.
val is_permissive_ref : bool Pervasives.ref
if true
, less checks are performed on value of arguments.
Set by Kernel.Permissive
option
val get_c_ified_functions : string -> Cil_datatype.Kf.Set.t
Function names can be modified (aka mangled) from the original source to
valid C identifiers. In order to allow users to use the original names
on the command-line options manipulating function names, this function
will return the set of function whose name correspond to the given string,
possibly via a mangling operation registered with the
Parameter_customize.add_function_name_transformation
function below. By default, no
mangling function is registered, and the returned set is either empty or
a singleton corresponding to the unique function with that name. Results
from all registered functions are cumulative, so that a mangling function
should take care of returning the empty set for names that it does not
understand.
val add_function_name_transformation : (string -> Cil_datatype.Kf.Set.t) -> unit
Adds a mangling operation to allow writing user-friendly function names
on command-line. See Parameter_customize.get_c_ified_functions
for more information.