//===- ExprToken.h --------------------------------------------------------===// // // The MCLinker Project // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef MCLD_SCRIPT_EXPRTOKEN_H_ #define MCLD_SCRIPT_EXPRTOKEN_H_ namespace mcld { /** \class ExprToken * \brief This class defines the interfaces to an expression token. */ class ExprToken { public: enum Kind { OPERATOR, OPERAND }; protected: explicit ExprToken(Kind pKind) : m_Kind(pKind) {} public: virtual ~ExprToken() {} virtual void dump() const = 0; Kind kind() const { return m_Kind; } private: Kind m_Kind; }; } // namespace mcld #endif // MCLD_SCRIPT_EXPRTOKEN_H_