#pragma once #include #include "machine.h" #include "katom.h" enum class eval_t { shell, python, cpp, }; class Eval { public: explicit Eval(Machine& machine, const Locator& loc) : m_machine(machine), m_loc(loc) {}; Eval(const Eval&) = delete; Eval& operator=(const Eval&) = delete; //~Eval_cpp(); std::vector eval( std::vector::iterator begin, std::vector::iterator end); // Dispatch the @eval command (python/shell/haskell/cpp) and return its // raw string result, without re-reading it as Klammertext. Used by // :after_apply phase functions, whose input and output are final target // text -- re-katomizing it would misparse target characters (a "@" in // justified txt output) as Klammertext syntax. std::string eval_command( std::vector::iterator begin, std::vector::iterator end); Machine m_machine; Locator m_loc; };