#ifndef INTERPRETER_H #define INTERPRETER_H #include #include #include "types.h" #include "memory.h" using namespace std; /* Evaluates the AST, returning the latest calulated value */ EvalResult eval(Node &ast, Memory& memory); class BreakException : public runtime_error { public: explicit BreakException(const string& message, CodePosition pos) : runtime_error(message), pos(pos) {} const CodePosition pos; }; class ContinueException : public runtime_error { public: explicit ContinueException(const string& message, CodePosition pos) : runtime_error(message), pos(pos) {} const CodePosition pos; }; #endif