Home | History | Annotate | Download | only in Script
      1 //===- InputToken.h -------------------------------------------------------===//
      2 //
      3 //                     The MCLinker Project
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 #ifndef MCLD_SCRIPT_INPUTTOKEN_H_
     10 #define MCLD_SCRIPT_INPUTTOKEN_H_
     11 
     12 #include "mcld/Script/StrToken.h"
     13 
     14 namespace mcld {
     15 
     16 /** \class InputToken
     17  *  \brief This class defines the interfaces to a file/namespec token.
     18  */
     19 
     20 class InputToken : public StrToken {
     21  public:
     22   enum Type { Unknown, File, NameSpec };
     23 
     24  protected:
     25   InputToken();
     26   InputToken(Type pType, const std::string& pName, bool pAsNeeded);
     27 
     28  public:
     29   virtual ~InputToken();
     30 
     31   Type type() const { return m_Type; }
     32 
     33   bool asNeeded() const { return m_bAsNeeded; }
     34 
     35   static bool classof(const StrToken* pToken) {
     36     return pToken->kind() == StrToken::Input;
     37   }
     38 
     39  private:
     40   Type m_Type;
     41   bool m_bAsNeeded;
     42 };
     43 
     44 }  // namespace mcld
     45 
     46 #endif  // MCLD_SCRIPT_INPUTTOKEN_H_
     47