diff options
author | David Robillard <d@drobilla.net> | 2012-12-15 07:06:22 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-12-15 07:06:22 +0000 |
commit | 10174ffc7ea08b7845dbe409a11811e820536468 (patch) | |
tree | c74187d11b7f35c739045e7000d2fa505ac9499a /src/resp.hpp | |
parent | 8148e755d3f587e6c212ba90efc151ea07de2703 (diff) | |
download | resp-10174ffc7ea08b7845dbe409a11811e820536468.tar.gz resp-10174ffc7ea08b7845dbe409a11811e820536468.tar.bz2 resp-10174ffc7ea08b7845dbe409a11811e820536468.zip |
Compile constructors as LLVM struct types.
Use LLVM type names instead of hyper verbose literal types in more places in general.
More work on quoting.
git-svn-id: http://svn.drobilla.net/resp/trunk@439 ad02d1e2-f140-0410-9f75-f8b11f17cedd
Diffstat (limited to 'src/resp.hpp')
-rw-r--r-- | src/resp.hpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/resp.hpp b/src/resp.hpp index f4689a0..d56b5ae 100644 --- a/src/resp.hpp +++ b/src/resp.hpp @@ -613,6 +613,7 @@ struct TEnv : public Env<const AST*> { , List(penv.sym("List")) , Empty(penv.sym("Empty")) , Tup(penv.sym("Tup")) + , Expr(penv.sym("Expr")) , U(penv.sym("U")) { Object::pool.addRoot(Fn); @@ -661,6 +662,7 @@ struct TEnv : public Env<const AST*> { ASymbol* List; ASymbol* Empty; ASymbol* Tup; + ASymbol* Expr; ASymbol* U; }; @@ -699,7 +701,7 @@ struct Engine { virtual CVal compileLiteral(CEnv& cenv, const AST* lit) = 0; virtual CVal compilePrimitive(CEnv& cenv, const ATuple* prim) = 0; virtual CVal compileString(CEnv& cenv, const char* str) = 0; - virtual CType compileType(CEnv& cenv, const char* name, const AST* exp) = 0; + virtual CType compileType(CEnv& cenv, const std::string& name, const AST* exp) = 0; virtual void writeModule(CEnv& cenv, std::ostream& os) = 0; |