diff options
Diffstat (limited to 'src/tuplr.hpp')
-rw-r--r-- | src/tuplr.hpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/tuplr.hpp b/src/tuplr.hpp index 4302584..925deec 100644 --- a/src/tuplr.hpp +++ b/src/tuplr.hpp @@ -394,7 +394,6 @@ struct AFn : public ATuple { void constrain(TEnv& tenv, Constraints& c) const; AST* cps(TEnv& tenv, AST* cont); void lift(CEnv& cenv); - void liftCall(CEnv& cenv, const AType& argsT); CValue compile(CEnv& cenv); const ATuple* prot() const { return at(1)->to<const ATuple*>(); } ATuple* prot() { return at(1)->to<ATuple*>(); } @@ -630,7 +629,10 @@ struct Engine { virtual void finishFunction(CEnv& cenv, CFunction f, const AType* retT, CValue ret) = 0; virtual void eraseFunction(CEnv& cenv, CFunction f) = 0; + virtual void liftCall(CEnv& cenv, AFn* fn, const AType& argsT) = 0; virtual CValue compileCall(CEnv& cenv, CFunction f, const vector<CValue>& args) = 0; + virtual CValue compilePrimitive(CEnv& cenv, APrimitive* prim) = 0; + virtual CValue compileIf(CEnv& cenv, AIf* aif) = 0; virtual void writeModule(CEnv& cenv, std::ostream& os) = 0; virtual const string call(CEnv& cenv, CFunction f, AType* retT) = 0; |