Mercurial > jwe > qt-gui-with-push-parser
view interpreter.h @ 18:7e93b74bd6c2
update NOTES
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 28 May 2019 22:51:45 -0400 |
parents | 1e5a1e15fa56 |
children |
line wrap: on
line source
#if ! defined (calc_interpreter_h) #define calc_interpreter_h 1 #include <functional> #include "parser.h" namespace calc { class interpreter { public: interpreter (void); interpreter (const interpreter&) = delete; interpreter& operator = (const interpreter&) = delete; ~interpreter (void) = default; parser& get_parser (void) { return m_parser; } int parse_and_execute (const std::string& line); std::function<void (const char *)> set_error_handler (const std::function<void (const char *)>& error_handler) { std::function<void (const char *)> tmp = m_error_handler; m_error_handler = error_handler; return tmp; } std::function<void (double)> set_result_handler (const std::function<void (double)>& result_handler) { std::function<void (double)> tmp = m_result_handler; m_result_handler = result_handler; return tmp; } void emit_error (const char *msg) const; void emit_result (double value) const; private: parser m_parser; std::function<void (const char *)> m_error_handler; std::function<void (double)> m_result_handler; }; } #endif