#ifndef EXPRESSOR_H #define EXPRESSOR_H #include #include #include #include #include "aftypes.h" namespace afp { struct parser_grammar; struct expressor : boost::noncopyable { typedef boost::function)> func_t; expressor(); ~expressor(); datum evaluate(std::string const &expr) const; void add_variable(std::string const &name, datum value); void add_function(std::string const &name, func_t value); private: parser_grammar *grammar_; }; } // namespace afp #endif /* !EXPRESSOR_H */