From f55fa30ac2169357ca089a6a4c73c14480841e6e Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 6 Oct 2009 18:59:48 +0000 Subject: Fully shared library safe backend interface. git-svn-id: http://svn.drobilla.net/resp/tuplr@196 ad02d1e2-f140-0410-9f75-f8b11f17cedd --- src/tuplr.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/tuplr.hpp') 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(); } ATuple* prot() { return at(1)->to(); } @@ -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& 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; -- cgit v1.2.1