X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FCommandLine.html;h=93b5ca1c69e32bc1aaa237cb5c7f4197b19b7b7e;hb=52bb2db70998c42c99d22069ac66eb7bbb492f3a;hp=8358d8756e196f4ae5c53e6ff0834183cba02a60;hpb=832171cb9724d2d31c8dfb73172e2be8f6dd13ee;p=oota-llvm.git diff --git a/docs/CommandLine.html b/docs/CommandLine.html index 8358d8756e1..93b5ca1c69e 100644 --- a/docs/CommandLine.html +++ b/docs/CommandLine.html @@ -44,7 +44,7 @@
  • Option Modifiers
  • Top-Level Classes and Functions @@ -1253,7 +1253,7 @@ indicates that the specified option must be specified exactly one time.
  • indicates that the option must be specified at least one time.
  • The cl::ConsumeAfter modifier is described in the Positional arguments section
  • +href="#positional">Positional arguments section. @@ -1326,7 +1326,7 @@ when extending the library.

    The formatting option group is used to specify that the command line option has special abilities and is otherwise different from other command line -arguments. As usual, you can only specify at most one of these arguments.

    +arguments. As usual, you can only specify one of these arguments at most.

    -

    So far, these are the only two miscellaneous option modifiers.

    +

    So far, these are the only three miscellaneous option modifiers.

    + + + +
    + Response files
    +
    + +

    Some systems, such as certain variants of Microsoft Windows and +some older Unices have a relatively low limit on command-line +length. It is therefore customary to use the so-called 'response +files' to circumvent this restriction. These files are mentioned on +the command-line (using the "@file") syntax. The program reads these +files and inserts the contents into argv, thereby working around the +command-line length limits. Response files are enabled by an optional +fourth argument to +cl::ParseEnvironmentOptions +and +cl::ParseCommandLineOptions. +

    + +
    + +
    Top-Level Classes and Functions @@ -1468,7 +1499,8 @@ available.

    The cl::ParseCommandLineOptions function requires two parameters (argc and argv), but may also take an optional third parameter which holds additional extra text to emit when the ---help option is invoked.

    +--help option is invoked, and a fourth boolean parameter that enables +response files.

    @@ -1485,16 +1517,18 @@ as cl::ParseCommandLineOptions, except that it is designed to take values for options from an environment variable, for those cases in which reading the command line is not convenient or -not desired. It fills in the values of all the command line option variables -just like cl::ParseCommandLineOptions does.

    -

    It takes three parameters: first, the name of the program (since -argv may not be available, it can't just look in argv[0]), -second, the name of the environment variable to examine, and third, the optional +

    It takes four parameters: the name of the program (since argv may +not be available, it can't just look in argv[0]), the name of the +environment variable to examine, the optional additional extra text to emit when the ---help option is invoked.

    +--help option is invoked, and the boolean +switch that controls whether reponse files +should be read.

    cl::ParseEnvironmentOptions will break the environment variable's value up into words and then process them using @@ -1516,7 +1550,7 @@ input.

    The cl::SetVersionPrinter function is designed to be called -directly from main, and before +directly from main and before cl::ParseCommandLineOptions. Its use is optional. It simply arranges for a function to be called in response to the --version option instead of having the CommandLine library print out the usual version string @@ -1654,7 +1688,7 @@ help text to be printed out for the --help option.

    }
    -

    To use the extrahelp, simply construct one with a const char* +

    To use the extrahelp, simply construct one with a const char* parameter to the constructor. The text passed to the constructor will be printed at the bottom of the help message, verbatim. Note that multiple cl::extrahelp can be used, but this practice is discouraged. If @@ -1702,6 +1736,12 @@ is used to convert boolean strings to a boolean value. Currently accepted strings are "true", "TRUE", "True", "1", "false", "FALSE", "False", and "0". +

  • The parser<boolOrDefault> + specialization is used for cases where the value is boolean, +but we also need to know whether the option was specified at all. boolOrDefault +is an enum with 3 values, BOU_UNSET, BOU_TRUE and BOU_FALSE. This parser accepts +the same strings as parser<bool>.
  • +
  • The parser<string> specialization simply stores the parsed string into the string value specified. No conversion or modification of the data is performed.
  • @@ -1775,7 +1815,7 @@ it.

    This approach works well in situations where you would line to parse an option using special syntax for a not-very-special data-type. The drawback of this approach is that users of your parser have to be aware that they are using -your parser, instead of the builtin ones.

    +your parser instead of the builtin ones.

    @@ -1799,16 +1839,16 @@ this the default for all unsigned options.

    Our new class inherits from the cl::basic_parser template class to -fill in the default, boiler plate, code for us. We give it the data type that -we parse into (the last argument to the parse method so that clients of -our custom parser know what object type to pass in to the parse method (here we -declare that we parse into 'unsigned' variables.

    +fill in the default, boiler plate code for us. We give it the data type that +we parse into, the last argument to the parse method, so that clients of +our custom parser know what object type to pass in to the parse method. (Here we +declare that we parse into 'unsigned' variables.)

    For most purposes, the only method that must be implemented in a custom parser is the parse method. The parse method is called whenever the option is invoked, passing in the option itself, the option name, the string to parse, and a reference to a return value. If the string to parse -is not well formed, the parser should output an error message and return true. +is not well-formed, the parser should output an error message and return true. Otherwise it should return false and set 'Val' to the parsed value. In our example, we implement parse as:

    @@ -1817,7 +1857,7 @@ our example, we implement parse as:

    const std::string &Arg, unsigned &Val) { const char *ArgStart = Arg.c_str(); char *End; - + // Parse integer part, leaving 'End' pointing to the first non-integer char Val = (unsigned)strtol(ArgStart, &End, 0);