diff options
author | Bill Wendling <isanbard@gmail.com> | 2009-04-29 23:26:16 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2009-04-29 23:26:16 +0000 |
commit | b587f9662a7b6f00f9ce48ddf2dea1a4fb18a6db (patch) | |
tree | 0ea6cff0050e8dd51b9d51551ccb0cbbbab0b27f /include/llvm | |
parent | 22523ad737456817c2edbd5047344b0a0d4c27bc (diff) | |
download | external_llvm-b587f9662a7b6f00f9ce48ddf2dea1a4fb18a6db.zip external_llvm-b587f9662a7b6f00f9ce48ddf2dea1a4fb18a6db.tar.gz external_llvm-b587f9662a7b6f00f9ce48ddf2dea1a4fb18a6db.tar.bz2 |
Add support for a character after a command line option. Like '-Os'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70437 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r-- | include/llvm/Support/CommandLine.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/include/llvm/Support/CommandLine.h b/include/llvm/Support/CommandLine.h index 1b62558..fa3b870 100644 --- a/include/llvm/Support/CommandLine.h +++ b/include/llvm/Support/CommandLine.h @@ -679,6 +679,28 @@ public: EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<std::string>); +//-------------------------------------------------- +// parser<char> +// +template<> +class parser<char> : public basic_parser<char> { +public: + // parse - Return true on error. + bool parse(Option &, const char *, const std::string &Arg, + char &Value) { + Value = Arg[0]; + return false; + } + + // getValueName - Overload in subclass to provide a better default value. + virtual const char *getValueName() const { return "char"; } + + // An out-of-line virtual method to provide a 'home' for this class. + virtual void anchor(); +}; + +EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<char>); + //===----------------------------------------------------------------------===// // applicator class - This class is used because we must use partial // specialization to handle literal string arguments specially (const char* does @@ -923,6 +945,7 @@ public: EXTERN_TEMPLATE_INSTANTIATION(class opt<unsigned>); EXTERN_TEMPLATE_INSTANTIATION(class opt<int>); EXTERN_TEMPLATE_INSTANTIATION(class opt<std::string>); +EXTERN_TEMPLATE_INSTANTIATION(class opt<char>); EXTERN_TEMPLATE_INSTANTIATION(class opt<bool>); //===----------------------------------------------------------------------===// |