ExprToken.h revision 37b74a387bb3993387029859c2d9d051c41c724e
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
12namespace mcld {
13
14/** \class ExprToken
15 *  \brief This class defines the interfaces to an expression token.
16 */
17
18class ExprToken {
19 public:
20  enum Kind { OPERATOR, OPERAND };
21
22 protected:
23  explicit ExprToken(Kind pKind) : m_Kind(pKind) {}
24
25 public:
26  virtual ~ExprToken() {}
27
28  virtual void dump() const = 0;
29
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