1 //===- ExprToken.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_EXPRTOKEN_H_
10 #define MCLD_SCRIPT_EXPRTOKEN_H_
11 
12 namespace mcld {
13 
14 /** \class ExprToken
15  *  \brief This class defines the interfaces to an expression token.
16  */
17 
18 class ExprToken {
19  public:
20   enum Kind { OPERATOR, OPERAND };
21 
22  protected:
ExprToken(Kind pKind)23   explicit ExprToken(Kind pKind) : m_Kind(pKind) {}
24 
25  public:
~ExprToken()26   virtual ~ExprToken() {}
27 
28   virtual void dump() const = 0;
29 
kind()30   Kind kind() const { return m_Kind; }
31 
32  private:
33   Kind m_Kind;
34 };
35 
36 }  // namespace mcld
37 
38 #endif  // MCLD_SCRIPT_EXPRTOKEN_H_
39