aboutsummaryrefslogtreecommitdiffstats
path: root/tuplr.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-03-07 00:24:05 +0000
committerDavid Robillard <d@drobilla.net>2009-03-07 00:24:05 +0000
commita7e747b45b0ff3f9e106182e6a357d0b261255a5 (patch)
treebfb32d0c137987323e7363513a123b6634d0d338 /tuplr.cpp
parent77162da0f773b8e79939491aca4e0232c62c255c (diff)
downloadresp-a7e747b45b0ff3f9e106182e6a357d0b261255a5.tar.gz
resp-a7e747b45b0ff3f9e106182e6a357d0b261255a5.tar.bz2
resp-a7e747b45b0ff3f9e106182e6a357d0b261255a5.zip
Fancy error reporting for type errors, among other things.
git-svn-id: http://svn.drobilla.net/resp/tuplr@66 ad02d1e2-f140-0410-9f75-f8b11f17cedd
Diffstat (limited to 'tuplr.cpp')
-rw-r--r--tuplr.cpp36
1 files changed, 18 insertions, 18 deletions
diff --git a/tuplr.cpp b/tuplr.cpp
index 0200a36..22632ef 100644
--- a/tuplr.cpp
+++ b/tuplr.cpp
@@ -101,14 +101,14 @@ void
initLang(PEnv& penv, TEnv& tenv)
{
// Types
- tenv.def(penv.sym("Bool"), new AType(penv.sym("Bool")));
- tenv.def(penv.sym("Int"), new AType(penv.sym("Int")));
- tenv.def(penv.sym("Float"), new AType(penv.sym("Float")));
+ tenv.def(penv.sym("Bool"), new AType(penv.sym("Bool"), Cursor()));
+ tenv.def(penv.sym("Int"), new AType(penv.sym("Int"), Cursor()));
+ tenv.def(penv.sym("Float"), new AType(penv.sym("Float"), Cursor()));
// Literals
static bool trueVal = true;
static bool falseVal = false;
- penv.reg(false, "#t", PEnv::Handler(parseLiteral<bool>, &trueVal));
+ penv.reg(false, "#t", PEnv::Handler(parseLiteral<bool>, &trueVal));
penv.reg(false, "#f", PEnv::Handler(parseLiteral<bool>, &falseVal));
// Special forms
@@ -120,20 +120,20 @@ initLang(PEnv& penv, TEnv& tenv)
penv.reg(true, "cdr", PEnv::Handler(parseCall<ASTCdrCall>));
// Numeric primitives
- penv.reg(true, "+", PEnv::Handler(parseCall<ASTPrimitive>));
- penv.reg(true, "-", PEnv::Handler(parseCall<ASTPrimitive>));
- penv.reg(true, "*", PEnv::Handler(parseCall<ASTPrimitive>));
- penv.reg(true, "/", PEnv::Handler(parseCall<ASTPrimitive>));
- penv.reg(true, "%", PEnv::Handler(parseCall<ASTPrimitive>));
- penv.reg(true, "&", PEnv::Handler(parseCall<ASTPrimitive>));
- penv.reg(true, "|", PEnv::Handler(parseCall<ASTPrimitive>));
- penv.reg(true, "^", PEnv::Handler(parseCall<ASTPrimitive>));
- penv.reg(true, "=", PEnv::Handler(parseCall<ASTPrimitive>));
- penv.reg(true, "!=", PEnv::Handler(parseCall<ASTPrimitive>));
- penv.reg(true, ">", PEnv::Handler(parseCall<ASTPrimitive>));
- penv.reg(true, ">=", PEnv::Handler(parseCall<ASTPrimitive>));
- penv.reg(true, "<", PEnv::Handler(parseCall<ASTPrimitive>));
- penv.reg(true, "<=", PEnv::Handler(parseCall<ASTPrimitive>));
+ penv.reg(true, "+", PEnv::Handler(parseCall<ASTPrimitive>));
+ penv.reg(true, "-", PEnv::Handler(parseCall<ASTPrimitive>));
+ penv.reg(true, "*", PEnv::Handler(parseCall<ASTPrimitive>));
+ penv.reg(true, "/", PEnv::Handler(parseCall<ASTPrimitive>));
+ penv.reg(true, "%", PEnv::Handler(parseCall<ASTPrimitive>));
+ penv.reg(true, "and", PEnv::Handler(parseCall<ASTPrimitive>));
+ penv.reg(true, "or", PEnv::Handler(parseCall<ASTPrimitive>));
+ penv.reg(true, "xor", PEnv::Handler(parseCall<ASTPrimitive>));
+ penv.reg(true, "=", PEnv::Handler(parseCall<ASTPrimitive>));
+ penv.reg(true, "!=", PEnv::Handler(parseCall<ASTPrimitive>));
+ penv.reg(true, ">", PEnv::Handler(parseCall<ASTPrimitive>));
+ penv.reg(true, ">=", PEnv::Handler(parseCall<ASTPrimitive>));
+ penv.reg(true, "<", PEnv::Handler(parseCall<ASTPrimitive>));
+ penv.reg(true, "<=", PEnv::Handler(parseCall<ASTPrimitive>));
}