AugerUnitParser.h
Go to the documentation of this file.
1 #ifndef _utl_AugerUnitParser_h
2 #define _utl_AugerUnitParser_h
3 
13 #include <utl/Singleton.h>
14 #include <utl/ExpressionParser.h>
15 
16 #include <string>
17 #include <map>
18 
19 
20 namespace utl {
21 
22  class AugerUnitParser : public utl::Singleton<AugerUnitParser> {
23 
24  public:
26 
27  double Parse(const std::string& parsExp) const
28  { return fEvaluator.Evaluate(parsExp); }
29 
30  UnitGrammar::EErrors Status() const
31  { return fEvaluator.GetStatus(); }
32 
33  std::string GetFormattedError() const
34  { return fEvaluator.GetError(); }
35 
36  const SymbolTable& GetUnitTable() const
37  { return fEvaluator.GetSymbolTable(); }
38 
39  private:
41  ~AugerUnitParser() = default;
42 
44 
47 
49 
50  };
51 
52 }
53 
54 
55 #endif
const UnitEvaluator fEvaluator
const SymbolTable fSymbolTable
UnitGrammar::SymbolTable SymbolTable
Definition: UnitEvaluator.h:23
SymbolTable MakeSymbolTable()
UnitGrammar::EErrors Status() const
~AugerUnitParser()=default
const SymbolTable & GetUnitTable() const
std::map< std::string, double > SymbolTable
Definition: SymbolTable.h:10
double Evaluate(const std::string &expression) const
const SymbolTable & GetSymbolTable() const
Definition: UnitEvaluator.h:39
double Parse(const std::string &parsExp) const
std::string GetFormattedError() const
UnitGrammar::EErrors GetStatus() const
Definition: UnitEvaluator.h:37
UnitEvaluator::SymbolTable SymbolTable
Curiously Recurring Template Pattern (CRTP) for Meyers singleton.
Definition: Singleton.h:36
std::string GetError() const

, generated on Tue Sep 26 2023.