mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-02 07:32:52 +00:00
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
This commit is contained in:
parent
22523ad737
commit
b587f9662a
@ -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>);
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -45,10 +45,12 @@ TEMPLATE_INSTANTIATION(class basic_parser<unsigned>);
|
||||
TEMPLATE_INSTANTIATION(class basic_parser<double>);
|
||||
TEMPLATE_INSTANTIATION(class basic_parser<float>);
|
||||
TEMPLATE_INSTANTIATION(class basic_parser<std::string>);
|
||||
TEMPLATE_INSTANTIATION(class basic_parser<char>);
|
||||
|
||||
TEMPLATE_INSTANTIATION(class opt<unsigned>);
|
||||
TEMPLATE_INSTANTIATION(class opt<int>);
|
||||
TEMPLATE_INSTANTIATION(class opt<std::string>);
|
||||
TEMPLATE_INSTANTIATION(class opt<char>);
|
||||
TEMPLATE_INSTANTIATION(class opt<bool>);
|
||||
|
||||
void Option::anchor() {}
|
||||
@ -60,6 +62,7 @@ void parser<unsigned>::anchor() {}
|
||||
void parser<double>::anchor() {}
|
||||
void parser<float>::anchor() {}
|
||||
void parser<std::string>::anchor() {}
|
||||
void parser<char>::anchor() {}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user