#pragma once

#include <string>

#include "machine.h"
#include "katom.h"

enum class eval_t {
    shell,
    python,
    cpp,
};

class Eval
{
public:
    explicit Eval(Machine& machine, Locator loc)
        : m_machine(machine),
          m_loc(loc)
        {};
    Eval(const Eval&) = delete;
    Eval& operator=(const Eval&) = delete;
    //~Eval_cpp();

    std::vector<Katom> eval(
        std::vector<Katom>::iterator begin, std::vector<Katom>::iterator end);

    Machine m_machine;
    Locator m_loc;
};
