UnitEvaluator.h
Go to the documentation of this file.
1 #ifndef _utl_UnitEvaluator_h
2 #define _utl_UnitEvaluator_h
3 
12 #include <utl/UnitGrammar.h>
13 
14 #include <string>
15 #include <map>
16 
17 
18 namespace utl {
19 
20  class UnitEvaluator {
21 
22  public:
24 
25  UnitEvaluator(const SymbolTable& symbols) :
26  fSymbolTable(symbols),
27  fGrammar(symbols, fValue, fError)
28  {
29  fValue = 1;
30  fError = UnitGrammar::eOk;
31  }
32 
33  double Evaluate(const std::string& expression) const;
34 
35  std::string GetError() const;
36 
37  UnitGrammar::EErrors GetStatus() const { return fError; }
38 
39  const SymbolTable& GetSymbolTable() const { return fSymbolTable; }
40 
41  private:
44  mutable std::string fExpression;
45  double fValue;
46 
47  mutable UnitGrammar::EErrors fError;
48  mutable unsigned int fErrPosition;
49 
50  };
51 
52 }
53 
54 
55 #endif
UnitGrammar::SymbolTable SymbolTable
Definition: UnitEvaluator.h:23
std::string fExpression
Definition: UnitEvaluator.h:44
UnitGrammar::EErrors fError
Definition: UnitEvaluator.h:47
UnitEvaluator(const SymbolTable &symbols)
Definition: UnitEvaluator.h:25
std::map< std::string, double > SymbolTable
Definition: SymbolTable.h:10
double Evaluate(const std::string &expression) const
UnitGrammar fGrammar
Definition: UnitEvaluator.h:43
const SymbolTable & GetSymbolTable() const
Definition: UnitEvaluator.h:39
UnitGrammar::EErrors GetStatus() const
Definition: UnitEvaluator.h:37
unsigned int fErrPosition
Definition: UnitEvaluator.h:48
const SymbolTable & fSymbolTable
Definition: UnitEvaluator.h:42
std::string GetError() const

, generated on Tue Sep 26 2023.