From 206689c943ba93ad48ce2b41166ca1902ed920a9 Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Thu, 21 Nov 2019 23:23:23 +0100 Subject: cons, cond, exit --- CompilerMacros.hs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'CompilerMacros.hs') diff --git a/CompilerMacros.hs b/CompilerMacros.hs index 610e659..ce7974c 100644 --- a/CompilerMacros.hs +++ b/CompilerMacros.hs @@ -37,6 +37,10 @@ process (VList [VName "let", VList args, body]) = error "Invalid 'let' syntax: Invalid variable list (not all pairs)" process (VList (VName "let" : _)) = error "Invalid 'let' syntax: Invalid argument list" +process (VList [VName "cond", defval]) = process defval +process (VList (VName "cond" : cond1 : val1 : rest)) = + process (VList [VName "if", cond1, val1, VList (VName "cond" : rest)]) + process (VList values) = VList (map process values) process (VDefine name body) = VDefine name (process body) -- cgit v1.2.3-54-g00ecf