17#ifndef STACKEVALUATOR_HPP
18#define STACKEVALUATOR_HPP
27namespace client {
namespace code_gen
33 template <
typename ErrorHandler>
41 double result = std::get<double>(res);
52 std::map<std::string, client::function::type> functions) {
53 functions_.insert(functions.begin(), functions.end());
57 std::map<std::string, double> variableDictionary) {
75 std::map<std::string, client::function::type>
functions_;
std::pair< std::string, type > named_t
std::function< std::tuple< double, bool >(arguments_t)> type
std::vector< argument_t > arguments_t
std::variant< double, bool, std::string > argument_t
StackEvaluator(ErrorHandler &)
void registerVariables(std::map< std::string, double > variableDictionary)
client::function::arguments_t evaluation_stack_
void registerFunction(std::string name, client::function::type callback)
bool operator()(ast::nil)
std::map< std::string, client::function::type > functions_
void registerFunctions(std::map< std::string, client::function::type > functions)
std::map< std::string, double > variableDictionary_