NonlinearParser.h

00001 //TODO: szerszy opis
00008 #ifndef _NonlinearParser_h
00009 #define _NonlinearParser_h
00010 
00011 // SYSTEM INCLUDES
00012 //
00013 
00014 // PROJECT INCLUDES
00015 //
00016 
00017 // LOCAL INCLUDES
00018 //
00019 #include "Parser.h"
00020 #include "Tokenizer.h"
00021 
00022 // FORWARD REFERENCES
00023 //
00024 
00025 
00026 class NonlinearParser
00027     : public Parser
00028 {
00029 public:
00030 // LIFECYCLE
00031 
00034     NonlinearParser(void);
00035 
00036 
00039     ~NonlinearParser(void);
00040 
00041 
00042 // OPERATORS
00043 
00044 // OPERATIONS
00045 
00046     virtual std::auto_ptr<FunctionBase> CreateFunction(
00047                                                 const wxString& input,
00048                                                 VariableNames&  rVariables,
00049                                                 bool            resetVariables)
00050                                         const throw(ParseError);
00051 
00052 
00053 // ACCESS
00054 // INQUIRY
00055 
00056 protected:
00057 private:
00059     std::auto_ptr<const FunctionTree>   Expression(Tokenizer& rTokenizer) const;
00060 
00062     std::auto_ptr<const FunctionTree>   Product(Tokenizer&  rTokenizer,
00063                                                 bool        first = false)
00064                                         const;
00065 
00067     std::auto_ptr<const FunctionTree>   Power(Tokenizer&  rTokenizer,
00068                                               bool        first = false)
00069                                         const;
00070 
00072     std::auto_ptr<const FunctionTree>   Operand(Tokenizer&  rTokenizer)
00073                                         const;
00074 
00076     std::auto_ptr<const FunctionTree>   Function(Tokenizer&  rTokenizer) const;
00077 
00079     static Tokenizer::FunctionMap       MakeFunctionMap();
00080 
00081     const static Tokenizer::FunctionMap mFunctions;
00082 };
00083 
00084 // INLINE METHODS
00085 //
00086 
00087 // EXTERNAL REFERENCES
00088 //
00089 
00090 #endif  // _NonlinearParser_h

Wygenerowano Fri Sep 29 21:04:48 2006 dla EduOptim2 programem  doxygen 1.4.6