]> granicus.if.org Git - clang/commitdiff
Driver: Tweak Option::accept interface.
authorDaniel Dunbar <daniel@zuster.org>
Wed, 4 Mar 2009 20:53:00 +0000 (20:53 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Wed, 4 Mar 2009 20:53:00 +0000 (20:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66066 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Driver/Option.h
lib/Driver/Option.cpp

index dea44002dbd94766c1b7564c0f46d02785eb07d3..47e249c57cc8d7d2c005606cd538fd4bd3b6d747 100644 (file)
@@ -94,7 +94,7 @@ namespace driver {
     /// argument.
     ///
     /// May issue a missing argument error.
-    virtual Arg *accept(ArgList &Args, unsigned Index) const = 0;
+    virtual Arg *accept(const ArgList &Args, unsigned &Index) const = 0;
     
     void dump() const;
 
@@ -107,7 +107,7 @@ namespace driver {
   public:
     OptionGroup(const char *Name, const OptionGroup *Group);
 
-    virtual Arg *accept(ArgList &Args, unsigned Index) const;
+    virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
 
     static bool classof(const Option *O) { 
       return O->getKind() == Option::GroupClass; 
@@ -122,7 +122,7 @@ namespace driver {
   public:
     InputOption();
 
-    virtual Arg *accept(ArgList &Args, unsigned Index) const;
+    virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
 
     static bool classof(const Option *O) { 
       return O->getKind() == Option::InputClass; 
@@ -135,7 +135,7 @@ namespace driver {
   public:
     UnknownOption();
 
-    virtual Arg *accept(ArgList &Args, unsigned Index) const;
+    virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
 
     static bool classof(const Option *O) { 
       return O->getKind() == Option::UnknownClass; 
@@ -149,7 +149,7 @@ namespace driver {
   public:
     FlagOption(const char *Name, const OptionGroup *Group, const Option *Alias);
 
-    virtual Arg *accept(ArgList &Args, unsigned Index) const;
+    virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
 
     static bool classof(const Option *O) { 
       return O->getKind() == Option::FlagClass; 
@@ -162,7 +162,7 @@ namespace driver {
     JoinedOption(const char *Name, const OptionGroup *Group, 
                  const Option *Alias);
 
-    virtual Arg *accept(ArgList &Args, unsigned Index) const;
+    virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
 
     static bool classof(const Option *O) { 
       return O->getKind() == Option::JoinedClass; 
@@ -175,7 +175,7 @@ namespace driver {
     SeparateOption(const char *Name, const OptionGroup *Group, 
                    const Option *Alias);
 
-    virtual Arg *accept(ArgList &Args, unsigned Index) const;
+    virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
 
     static bool classof(const Option *O) { 
       return O->getKind() == Option::SeparateClass; 
@@ -188,7 +188,7 @@ namespace driver {
     CommaJoinedOption(const char *Name, const OptionGroup *Group, 
                       const Option *Alias);
 
-    virtual Arg *accept(ArgList &Args, unsigned Index) const;
+    virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
 
     static bool classof(const Option *O) { 
       return O->getKind() == Option::CommaJoinedClass; 
@@ -196,6 +196,8 @@ namespace driver {
     static bool classof(const CommaJoinedOption *) { return true; }
   };
 
+  // FIXME: Fold MultiArgOption into SeparateOption?
+
   /// MultiArgOption - An option which takes multiple arguments (these
   /// are always separate arguments).
   class MultiArgOption : public Option {
@@ -207,7 +209,7 @@ namespace driver {
 
     unsigned getNumArgs() const { return NumArgs; }
 
-    virtual Arg *accept(ArgList &Args, unsigned Index) const;
+    virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
 
     static bool classof(const Option *O) { 
       return O->getKind() == Option::MultiArgClass; 
@@ -222,7 +224,7 @@ namespace driver {
     JoinedOrSeparateOption(const char *Name, const OptionGroup *Group, 
                            const Option *Alias);
 
-    virtual Arg *accept(ArgList &Args, unsigned Index) const;
+    virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
 
     static bool classof(const Option *O) { 
       return O->getKind() == Option::JoinedOrSeparateClass; 
@@ -237,7 +239,7 @@ namespace driver {
     JoinedAndSeparateOption(const char *Name, const OptionGroup *Group, 
                             const Option *Alias);
 
-    virtual Arg *accept(ArgList &Args, unsigned Index) const;
+    virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
 
     static bool classof(const Option *O) { 
       return O->getKind() == Option::JoinedAndSeparateClass; 
index ce31b8e6949e6b0f1104337e724d2c42aa6819fb..cf5c3eb0fa88c617b30b8f2a5f6931b8eacfa08e 100644 (file)
@@ -83,7 +83,7 @@ OptionGroup::OptionGroup(const char *Name, const OptionGroup *Group)
   : Option(Option::GroupClass, Name, Group, 0) {
 }
 
-Arg *OptionGroup::accept(ArgList &Args, unsigned Index) const {
+Arg *OptionGroup::accept(const ArgList &Args, unsigned &Index) const {
   assert(0 && "FIXME");
   return 0;
 }
@@ -92,7 +92,7 @@ InputOption::InputOption()
   : Option(Option::InputClass, "<input>", 0, 0) {
 }
 
-Arg *InputOption::accept(ArgList &Args, unsigned Index) const {
+Arg *InputOption::accept(const ArgList &Args, unsigned &Index) const {
   assert(0 && "FIXME");
   return 0;
 }
@@ -101,7 +101,7 @@ UnknownOption::UnknownOption()
   : Option(Option::UnknownClass, "<unknown>", 0, 0) {
 }
 
-Arg *UnknownOption::accept(ArgList &Args, unsigned Index) const {
+Arg *UnknownOption::accept(const ArgList &Args, unsigned &Index) const {
   assert(0 && "FIXME");
   return 0;
 }
@@ -111,7 +111,7 @@ FlagOption::FlagOption(const char *Name, const OptionGroup *Group,
   : Option(Option::FlagClass, Name, Group, Alias) {
 }
 
-Arg *FlagOption::accept(ArgList &Args, unsigned Index) const {
+Arg *FlagOption::accept(const ArgList &Args, unsigned &Index) const {
   assert(0 && "FIXME");
   return 0;
 }
@@ -121,7 +121,7 @@ JoinedOption::JoinedOption(const char *Name, const OptionGroup *Group,
   : Option(Option::JoinedClass, Name, Group, Alias) {
 }
 
-Arg *JoinedOption::accept(ArgList &Args, unsigned Index) const {
+Arg *JoinedOption::accept(const ArgList &Args, unsigned &Index) const {
   assert(0 && "FIXME");
   return 0;
 }
@@ -131,7 +131,7 @@ CommaJoinedOption::CommaJoinedOption(const char *Name, const OptionGroup *Group,
   : Option(Option::CommaJoinedClass, Name, Group, Alias) {
 }
 
-Arg *CommaJoinedOption::accept(ArgList &Args, unsigned Index) const {
+Arg *CommaJoinedOption::accept(const ArgList &Args, unsigned &Index) const {
   assert(0 && "FIXME");
   return 0;
 }
@@ -141,7 +141,7 @@ SeparateOption::SeparateOption(const char *Name, const OptionGroup *Group,
   : Option(Option::SeparateClass, Name, Group, Alias) {
 }
 
-Arg *SeparateOption::accept(ArgList &Args, unsigned Index) const {
+Arg *SeparateOption::accept(const ArgList &Args, unsigned &Index) const {
   assert(0 && "FIXME");
   return 0;
 }
@@ -151,7 +151,7 @@ MultiArgOption::MultiArgOption(const char *Name, const OptionGroup *Group,
   : Option(Option::MultiArgClass, Name, Group, Alias), NumArgs(_NumArgs) {
 }
 
-Arg *MultiArgOption::accept(ArgList &Args, unsigned Index) const {
+Arg *MultiArgOption::accept(const ArgList &Args, unsigned &Index) const {
   assert(0 && "FIXME");
   return 0;
 }
@@ -162,7 +162,7 @@ JoinedOrSeparateOption::JoinedOrSeparateOption(const char *Name,
   : Option(Option::JoinedOrSeparateClass, Name, Group, Alias) {
 }
 
-Arg *JoinedOrSeparateOption::accept(ArgList &Args, unsigned Index) const {
+Arg *JoinedOrSeparateOption::accept(const ArgList &Args, unsigned &Index) const {
   assert(0 && "FIXME");
   return 0;
 }
@@ -173,7 +173,7 @@ JoinedAndSeparateOption::JoinedAndSeparateOption(const char *Name,
   : Option(Option::JoinedAndSeparateClass, Name, Group, Alias) {
 }
 
-Arg *JoinedAndSeparateOption::accept(ArgList &Args, unsigned Index) const {
+Arg *JoinedAndSeparateOption::accept(const ArgList &Args, unsigned &Index) const {
   assert(0 && "FIXME");
   return 0;
 }