187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines//===- ExprToken.h --------------------------------------------------------===// 287f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// 387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// The MCLinker Project 487f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// 587f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// This file is distributed under the University of Illinois Open Source 687f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// License. See LICENSE.TXT for details. 787f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// 887f34658dec9097d987d254a990ea7f311bfc95fStephen Hines//===----------------------------------------------------------------------===// 937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#ifndef MCLD_SCRIPT_EXPRTOKEN_H_ 1037b74a387bb3993387029859c2d9d051c41c724eStephen Hines#define MCLD_SCRIPT_EXPRTOKEN_H_ 1187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 1237b74a387bb3993387029859c2d9d051c41c724eStephen Hinesnamespace mcld { 1387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 1487f34658dec9097d987d254a990ea7f311bfc95fStephen Hines/** \class ExprToken 1587f34658dec9097d987d254a990ea7f311bfc95fStephen Hines * \brief This class defines the interfaces to an expression token. 1687f34658dec9097d987d254a990ea7f311bfc95fStephen Hines */ 1787f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 1837b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass ExprToken { 1937b74a387bb3993387029859c2d9d051c41c724eStephen Hines public: 2037b74a387bb3993387029859c2d9d051c41c724eStephen Hines enum Kind { OPERATOR, OPERAND }; 2187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 2237b74a387bb3993387029859c2d9d051c41c724eStephen Hines protected: 2337b74a387bb3993387029859c2d9d051c41c724eStephen Hines explicit ExprToken(Kind pKind) : m_Kind(pKind) {} 2487f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 2537b74a387bb3993387029859c2d9d051c41c724eStephen Hines public: 2637b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual ~ExprToken() {} 2787f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 2887f34658dec9097d987d254a990ea7f311bfc95fStephen Hines virtual void dump() const = 0; 2987f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 3087f34658dec9097d987d254a990ea7f311bfc95fStephen Hines Kind kind() const { return m_Kind; } 3187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 3237b74a387bb3993387029859c2d9d051c41c724eStephen Hines private: 3387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines Kind m_Kind; 3487f34658dec9097d987d254a990ea7f311bfc95fStephen Hines}; 3587f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 3637b74a387bb3993387029859c2d9d051c41c724eStephen Hines} // namespace mcld 3787f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 3837b74a387bb3993387029859c2d9d051c41c724eStephen Hines#endif // MCLD_SCRIPT_EXPRTOKEN_H_ 39