00001
00004 #ifndef _Parser_h
00005 #define _Parser_h
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "FunctionBase.h"
00016 #include "ParseError.h"
00017 #include "VariableNames.h"
00018
00019
00020
00021
00022
00023 class Parser
00024 {
00025 public:
00026
00027
00030 Parser(void);
00031
00034 virtual ~Parser(void);
00035
00036
00037
00038
00039
00040
00052 virtual std::auto_ptr<FunctionBase> CreateFunction(
00053 const wxString& input,
00054 VariableNames& rVariables,
00055 bool resetVariables)
00056 const throw(ParseError) = 0;
00057
00058
00059
00060
00062 static double OperatorAdd(double a, double b);
00064 static double OperatorSubtract(double a, double b);
00066 static double OperatorMultiply(double a, double b);
00068 static double OperatorDivide(double a, double b);
00070 static double OperatorNegate(double a);
00071 protected:
00072 private:
00073 };
00074
00075
00076
00077
00078
00079
00080
00081 #endif // _Parser_h