aboutsummaryrefslogtreecommitdiffstats
path: root/src/tuplr.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-10-06 18:59:48 +0000
committerDavid Robillard <d@drobilla.net>2009-10-06 18:59:48 +0000
commitf55fa30ac2169357ca089a6a4c73c14480841e6e (patch)
tree13f059b200fa7fc3cb2fce828925f9406ba20c79 /src/tuplr.hpp
parent63d9988b36d55e85fe776a41f67009eb2f187489 (diff)
downloadresp-f55fa30ac2169357ca089a6a4c73c14480841e6e.tar.gz
resp-f55fa30ac2169357ca089a6a4c73c14480841e6e.tar.bz2
resp-f55fa30ac2169357ca089a6a4c73c14480841e6e.zip
Fully shared library safe backend interface.
git-svn-id: http://svn.drobilla.net/resp/tuplr@196 ad02d1e2-f140-0410-9f75-f8b11f17cedd
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;