]> AND Private Git Repository - blast.git/blobdiff - ArithmeticEvaluator.h
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
modifying pattern methods to throw exceptions
[blast.git] / ArithmeticEvaluator.h
index f6d478b9a7f73b496287d84a836be485c6d0f238..67f50a5e8dece5504ac290f8f54c38b72a9b0908 100644 (file)
@@ -30,16 +30,22 @@ public:
   ArithmeticEvaluator();
   ArithmeticEvaluator(const QString& _expression) throw(int);
 
   ArithmeticEvaluator();
   ArithmeticEvaluator(const QString& _expression) throw(int);
 
+  //getters
+  inline QList<QString> getVariableNames() { return varNames; }
+  
+  // setters
   void setExpression(const QString& _expression) throw(int);
   void setExpression(const QString& _expression) throw(int);
-  inline void setVariablesValue(const QHash<QString,double>& _varValues) { varValues =  _varValues; }
+  void setVariablesValue(const QHash<QString,double>& _varValues);
   inline void setVariableValue(const QString& var, double value) { varValues.insert(var,value); }
   inline void setVariableMarkers(const QString& _markers) { varMarkers = _markers; }
 
   void print();
   double evaluate() throw(int);
   inline void setVariableValue(const QString& var, double value) { varValues.insert(var,value); }
   inline void setVariableMarkers(const QString& _markers) { varMarkers = _markers; }
 
   void print();
   double evaluate() throw(int);
+  inline QString getError() { return errorMessage; }
 
 protected:
   QStringList expression;
 
 protected:
   QStringList expression;
+  QList<QString> varNames; // the names of variables that ARE in the expression
   QHash<QString,double> varValues;
   QString varMarkers; // a sequence of symbols that are allowed to start a variable. $ is by default
   QString opMarkers; // a sequence if symbols used as operators. +-*/ is the hard-coded default
   QHash<QString,double> varValues;
   QString varMarkers; // a sequence of symbols that are allowed to start a variable. $ is by default
   QString opMarkers; // a sequence if symbols used as operators. +-*/ is the hard-coded default
@@ -54,6 +60,10 @@ protected:
   bool checkAfterPar(const QString& _expression, int offset);
 
   double evalFunction(int indexFunc, double value);
   bool checkAfterPar(const QString& _expression, int offset);
 
   double evalFunction(int indexFunc, double value);
+  
+  void setVariableNames(const QString &_expression);
+  
+  QString errorMessage;
 
 };
 
 
 };