aboutsummaryrefslogtreecommitdiffstats
path: root/src/resp.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-12-15 07:06:22 +0000
committerDavid Robillard <d@drobilla.net>2012-12-15 07:06:22 +0000
commit10174ffc7ea08b7845dbe409a11811e820536468 (patch)
treec74187d11b7f35c739045e7000d2fa505ac9499a /src/resp.hpp
parent8148e755d3f587e6c212ba90efc151ea07de2703 (diff)
downloadresp-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.hpp4
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;