diff options
author | David Robillard <d@drobilla.net> | 2009-10-06 18:59:48 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-10-06 18:59:48 +0000 |
commit | f55fa30ac2169357ca089a6a4c73c14480841e6e (patch) | |
tree | 13f059b200fa7fc3cb2fce828925f9406ba20c79 /src/tuplr.hpp | |
parent | 63d9988b36d55e85fe776a41f67009eb2f187489 (diff) | |
download | resp-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.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; |