aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Builtins.hs11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/Builtins.hs b/src/Builtins.hs
index 8dc96b2..d35ce17 100644
--- a/src/Builtins.hs
+++ b/src/Builtins.hs
@@ -18,7 +18,8 @@ builtinEnv = M.fromList [
builtinPrint,
builtinConcat,
builtinFmt,
- ("unit", ASTUnit)
+ ("unit", ASTUnit),
+ builtinFatal
]
argError1 :: Show a => String -> a -> String
@@ -147,3 +148,11 @@ builtinFmt = (name, ASTFunction outer) where
replaceAll n (x:xs) text =
let text' = T.replace (T.pack $ "{" ++ show n ++ "}") (T.pack $ show x) text
in replaceAll (n + 1) xs text'
+
+builtinFatal :: (String, AST)
+builtinFatal = (name, ASTFunction outer) where
+ name = "fatal"
+ outer _ (ASTString str) =
+ throwL $ str
+ outer _ ast =
+ throwL $ argError1 name ast