Home | History | Annotate | Download | only in Script
      1 //===- RpnEvaluator.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_RPNEVALUATOR_H
     10 #define MCLD_SCRIPT_RPNEVALUATOR_H
     11 
     12 namespace mcld {
     13 
     14 class RpnExpr;
     15 class Module;
     16 class TargetLDBackend;
     17 
     18 /** \class RpnEvaluator
     19  *  \brief RpnEvaluator evaluate a rpn expression
     20  */
     21 class RpnEvaluator
     22 {
     23 public:
     24   RpnEvaluator(const Module& pModule, const TargetLDBackend& pBackend);
     25 
     26   // evaluate a valid expression and set the value in the second parameter
     27   bool eval(const RpnExpr& pExpr, uint64_t& pResult);
     28 
     29 private:
     30   const Module& m_Module;
     31   const TargetLDBackend& m_Backend;
     32 };
     33 
     34 } // mcld
     35 
     36 #endif
     37