aboutsummaryrefslogtreecommitdiffstats
path: root/src/tuplr.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tuplr.hpp')
-rw-r--r--src/tuplr.hpp4
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;