X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=docs%2FCommandLine.html;h=93b5ca1c69e32bc1aaa237cb5c7f4197b19b7b7e;hb=4c8c83022b501759d8559e224c84ae2a9921ba41;hp=9bd2b607327f2775d56af85ffdc771e543f1fd68;hpb=1d8f626f66392b1577ce0e16ecfa7068823d2e61;p=oota-llvm.git diff --git a/docs/CommandLine.html b/docs/CommandLine.html index 9bd2b607327..93b5ca1c69e 100644 --- a/docs/CommandLine.html +++ b/docs/CommandLine.html @@ -44,7 +44,7 @@
  • Option Modifiers
  • Top-Level Classes and Functions @@ -1251,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. @@ -1324,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 @@ -1466,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.

    @@ -1483,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 @@ -1505,6 +1541,27 @@ input.

    + +
    + The cl::SetVersionPrinter + function +
    + +
    + +

    The cl::SetVersionPrinter function is designed to be called +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 +for LLVM. This is useful for programs that are not part of LLVM but wish to use +the CommandLine facilities. Such programs should just define a small +function that takes no arguments and returns void and that prints out +whatever version information is appropriate for the program. Pass the address +of that function to cl::SetVersionPrinter to arrange for it to be +called when the --version option is given by the user.

    + +
    The cl::opt class @@ -1588,7 +1645,7 @@ can take up to three arguments:

    This class works the exact same as the cl::lists class, except that the second argument -must be of type unsigned long if external storage is used.

    +must be of type unsigned if external storage is used.

    @@ -1631,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 @@ -1679,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.
  • @@ -1740,7 +1803,7 @@ your custom data type.

    This approach has the advantage that users of your custom data type will automatically use your custom parser whenever they define an option with a value type of your data type. The disadvantage of this approach is that it doesn't -work if your fundemental data type is something that is already supported.

    +work if your fundamental data type is something that is already supported.

    @@ -1752,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.

    @@ -1776,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:

    @@ -1794,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); @@ -1899,7 +1962,7 @@ tutorial.

    src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"> Chris Lattner
    - LLVM Compiler Infrastructure
    + LLVM Compiler Infrastructure
    Last modified: $Date$