#ifndef jk_STATICFUNCTION_HPP #define jk_STATICFUNCTION_HPP #include "commons.hpp" #include "Program.hpp" #include "SymTable.hpp" #include "Node.hpp" namespace jk { using static_fun_t = std::function, std::shared_ptr, std::shared_ptr)>; class StaticFunction { public: explicit StaticFunction(static_fun_t fun); virtual ~StaticFunction(); void call(std::shared_ptr node, std::shared_ptr program, std::shared_ptr sym); private: static_fun_t m_fun; }; } #endif