• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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