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 type()31 Type type() const { return m_Type; } 32 asNeeded()33 bool asNeeded() const { return m_bAsNeeded; } 34 classof(const StrToken * pToken)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