//===- 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:
  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 of mcld

#endif