#ifndef NIX_IRC_EVALUATOR_H #define NIX_IRC_EVALUATOR_H #include "types.h" #include #include namespace nix { class EvalState; class Value; class PosIdx; } // namespace nix namespace nix_irc { class IRValue; class IREnvironment; class Evaluator { public: explicit Evaluator(nix::EvalState& state); ~Evaluator(); void eval_to_nix(const std::shared_ptr& ir_node, nix::Value& result, IREnvironment* env = nullptr); private: struct Impl; std::unique_ptr pImpl; }; } // namespace nix_irc #endif