diff options
Diffstat (limited to 'src/parse.cpp')
-rw-r--r-- | src/parse.cpp | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/parse.cpp b/src/parse.cpp index 7482039..28279f9 100644 --- a/src/parse.cpp +++ b/src/parse.cpp @@ -170,13 +170,13 @@ void initLang(PEnv& penv, TEnv& tenv) { // Types - tenv.def(penv.sym("Nothing"), new AType(penv.sym("Nothing"))); - 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("String"), new AType(penv.sym("String"))); - tenv.def(penv.sym("Lexeme"), new AType(penv.sym("Lexeme"))); - tenv.def(penv.sym("Quote"), new AType(penv.sym("Quote"))); + tenv.def(penv.sym("Nothing"), new AType(penv.sym("Nothing"), AType::PRIM)); + tenv.def(penv.sym("Bool"), new AType(penv.sym("Bool"), AType::PRIM)); + tenv.def(penv.sym("Int"), new AType(penv.sym("Int"), AType::PRIM)); + tenv.def(penv.sym("Float"), new AType(penv.sym("Float"), AType::PRIM)); + tenv.def(penv.sym("String"), new AType(penv.sym("String"), AType::PRIM)); + tenv.def(penv.sym("Lexeme"), new AType(penv.sym("Lexeme"), AType::PRIM)); + tenv.def(penv.sym("Quote"), new AType(penv.sym("Quote"), AType::PRIM)); // Literals static bool trueVal = true; @@ -188,11 +188,13 @@ initLang(PEnv& penv, TEnv& tenv) penv.defmac("def", macDef); // Special forms - penv.reg(true, "fn", PEnv::Handler(parseFn)); - penv.reg(true, "quote", PEnv::Handler(parseQuote)); - penv.reg(true, "if", PEnv::Handler(parseCall<AIf>)); - penv.reg(true, ".", PEnv::Handler(parseCall<ADot>)); - penv.reg(true, "def", PEnv::Handler(parseCall<ADef>)); + penv.reg(true, "fn", PEnv::Handler(parseFn)); + penv.reg(true, "quote", PEnv::Handler(parseQuote)); + penv.reg(true, "if", PEnv::Handler(parseCall<AIf>)); + penv.reg(true, ".", PEnv::Handler(parseCall<ADot>)); + penv.reg(true, "def", PEnv::Handler(parseCall<ADef>)); + penv.reg(true, "def-type", PEnv::Handler(parseCall<ADefType>)); + penv.reg(true, "match", PEnv::Handler(parseCall<AMatch>)); // Numeric primitives penv.reg(true, "+", PEnv::Handler(parseCall<APrimitive>)); |