//===- NullaryOp.h --------------------------------------------------------===// // // The MCLinker Project // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef MCLD_SCRIPT_NULLOP_H #define MCLD_SCRIPT_NULLOP_H #include #include namespace mcld { class Operand; class IntOperand; class Module; class TargetLDBackend; /** \class NullaryOp * \brief This class defines the interfaces to an nullary operator token. */ template class NullaryOp : public Operator { private: friend class Operator; NullaryOp() : Operator(Operator::NULLARY, TYPE) {} public: ~NullaryOp() {} IntOperand* eval(const Module& pModule, const TargetLDBackend& pBackend); void appendOperand(Operand* pOperand) { assert(0); } }; template<> IntOperand* NullaryOp::eval(const Module&, const TargetLDBackend&); template<> IntOperand* NullaryOp::eval(const Module&, const TargetLDBackend&); template<> IntOperand* NullaryOp::eval(const Module&, const TargetLDBackend&); } // namespace of mcld #endif