summaryrefslogtreecommitdiff
path: root/CompilerMacros.hs
diff options
context:
space:
mode:
Diffstat (limited to 'CompilerMacros.hs')
-rw-r--r--CompilerMacros.hs4
1 files changed, 4 insertions, 0 deletions
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)