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
12namespace mcld {
13
14class RpnExpr;
15class Module;
16class TargetLDBackend;
17
18/** \class RpnEvaluator
19 *  \brief RpnEvaluator evaluate a rpn expression
20 */
21class RpnEvaluator
22{
23public:
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
29private:
30  const Module& m_Module;
31  const TargetLDBackend& m_Backend;
32};
33
34} // mcld
35
36#endif
37