diff options
Diffstat (limited to 'CompilerMacros.hs')
-rw-r--r-- | CompilerMacros.hs | 4 |
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) |