
#ifndef PORYGONLANG_ITERATOR_HPP
#define PORYGONLANG_ITERATOR_HPP

#include <memory>
#include "../EvalValues/EvalValue.hpp"

using namespace std;

namespace Porygon::Evaluation{
    class Iterator {
    public:
        virtual const  EvalValue* GetCurrent() = 0;
        virtual bool MoveNext() = 0;
        virtual void Reset() = 0;
        virtual ~Iterator(){}
    };

}


#endif //PORYGONLANG_ITERATOR_HPP
