diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-03-04 23:02:50 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-03-04 23:02:50 +0000 |
commit | f781c4192ee51a55c08ec53f054284ad1cdb2043 (patch) | |
tree | 4880deca9c3008cdb7332a0d507813e49a2be0ca /lib/Driver/Arg.cpp | |
parent | e61b988febb3409c294d2ec6b6f931f6f08f67b3 (diff) |
Driver: Add Arg::dump and SeparateArg stubs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66100 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/Arg.cpp')
-rw-r--r-- | lib/Driver/Arg.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/Driver/Arg.cpp b/lib/Driver/Arg.cpp index ad3c16d98a..9f0ed7245d 100644 --- a/lib/Driver/Arg.cpp +++ b/lib/Driver/Arg.cpp @@ -8,6 +8,8 @@ //===----------------------------------------------------------------------===// #include "clang/Driver/Arg.h" +#include "clang/Driver/Option.h" +#include "llvm/Support/raw_ostream.h" using namespace clang::driver; @@ -20,6 +22,33 @@ Arg::Arg(ArgClass _Kind, const Option *_Opt, unsigned _Index) Arg::~Arg() { } +void Arg::dump() const { + llvm::errs() << "<"; + switch (Kind) { + default: + assert(0 && "Invalid kind"); +#define P(N) case N: llvm::errs() << #N; break + P(PositionalClass); + P(JoinedClass); + P(SeparateClass); + P(CommaJoinedClass); + P(JoinedAndSeparateClass); +#undef P + } + + llvm::errs() << " Opt:"; + Opt->dump(); + + llvm::errs() << " Index:" << Index; + + if (const CommaJoinedArg *CJA = dyn_cast<CommaJoinedArg>(this)) + llvm::errs() << " NumValues:" << CJA->getNumValues(); + + llvm::errs() << ">\n"; + + llvm::errs().flush(); // FIXME +} + PositionalArg::PositionalArg(const Option *Opt, unsigned Index) : Arg(PositionalClass, Opt, Index) { } @@ -57,6 +86,18 @@ const char *CommaJoinedArg::getValue(const ArgList &Args, unsigned N) const { assert(0 && "FIXME: Implement"); } +SeparateArg::SeparateArg(const Option *Opt, unsigned Index, unsigned _NumValues) + : Arg(SeparateClass, Opt, Index), NumValues(_NumValues) { +} + +void SeparateArg::render(const ArgList &Args, ArgStringList &Output) const { + assert(0 && "FIXME: Implement"); +} + +const char *SeparateArg::getValue(const ArgList &Args, unsigned N) const { + assert(0 && "FIXME: Implement"); +} + JoinedAndSeparateArg::JoinedAndSeparateArg(const Option *Opt, unsigned Index) : Arg(JoinedAndSeparateClass, Opt, Index) { } |