From a7e747b45b0ff3f9e106182e6a357d0b261255a5 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 7 Mar 2009 00:24:05 +0000 Subject: Fancy error reporting for type errors, among other things. git-svn-id: http://svn.drobilla.net/resp/tuplr@66 ad02d1e2-f140-0410-9f75-f8b11f17cedd --- tuplr.cpp | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'tuplr.cpp') 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, &trueVal)); + penv.reg(false, "#t", PEnv::Handler(parseLiteral, &trueVal)); penv.reg(false, "#f", PEnv::Handler(parseLiteral, &falseVal)); // Special forms @@ -120,20 +120,20 @@ initLang(PEnv& penv, TEnv& tenv) penv.reg(true, "cdr", PEnv::Handler(parseCall)); // Numeric primitives - penv.reg(true, "+", PEnv::Handler(parseCall)); - penv.reg(true, "-", PEnv::Handler(parseCall)); - penv.reg(true, "*", PEnv::Handler(parseCall)); - penv.reg(true, "/", PEnv::Handler(parseCall)); - penv.reg(true, "%", PEnv::Handler(parseCall)); - penv.reg(true, "&", PEnv::Handler(parseCall)); - penv.reg(true, "|", PEnv::Handler(parseCall)); - penv.reg(true, "^", PEnv::Handler(parseCall)); - penv.reg(true, "=", PEnv::Handler(parseCall)); - penv.reg(true, "!=", PEnv::Handler(parseCall)); - penv.reg(true, ">", PEnv::Handler(parseCall)); - penv.reg(true, ">=", PEnv::Handler(parseCall)); - penv.reg(true, "<", PEnv::Handler(parseCall)); - penv.reg(true, "<=", PEnv::Handler(parseCall)); + penv.reg(true, "+", PEnv::Handler(parseCall)); + penv.reg(true, "-", PEnv::Handler(parseCall)); + penv.reg(true, "*", PEnv::Handler(parseCall)); + penv.reg(true, "/", PEnv::Handler(parseCall)); + penv.reg(true, "%", PEnv::Handler(parseCall)); + penv.reg(true, "and", PEnv::Handler(parseCall)); + penv.reg(true, "or", PEnv::Handler(parseCall)); + penv.reg(true, "xor", PEnv::Handler(parseCall)); + penv.reg(true, "=", PEnv::Handler(parseCall)); + penv.reg(true, "!=", PEnv::Handler(parseCall)); + penv.reg(true, ">", PEnv::Handler(parseCall)); + penv.reg(true, ">=", PEnv::Handler(parseCall)); + penv.reg(true, "<", PEnv::Handler(parseCall)); + penv.reg(true, "<=", PEnv::Handler(parseCall)); } -- cgit v1.2.1