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