aboutsummaryrefslogtreecommitdiffstats
path: root/src/Interpreter.hs
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2022-12-06 18:25:47 +0200
committerJan Tuomi <jans.tuomi@gmail.com>2022-12-06 18:25:47 +0200
commit4de1c9b9159305a664a56589b9b6aa1bce0129aa (patch)
tree949ee8f99d7fc3bae176e094b4a66f310a21ddfd /src/Interpreter.hs
parent765d25857b0472e3f9df89ac822ad36ea0502466 (diff)
Refactor -e option into -E and -e
Diffstat (limited to 'src/Interpreter.hs')
-rw-r--r--src/Interpreter.hs14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/Interpreter.hs b/src/Interpreter.hs
index f9e00b9..3e74c37 100644
--- a/src/Interpreter.hs
+++ b/src/Interpreter.hs
@@ -205,7 +205,8 @@ evaluateImport asts = do
args = tail asts
d <- getDepth
- when (d > 1) $ throwL (astPos importAst) $ "import can only be called on the top level, current depth: " ++ show d
+ when (d > 1) $ throwL (astPos importAst) $
+ "import can only be called on the top level, current depth: " ++ show d
config <- getConfig
let initialState = LState {
@@ -423,8 +424,15 @@ runInlineScript' lineNo fileName src = do
liftIO $ putStrLn output
evaluated <- foldEvaluate parsed
- when (configPrintEvaled config) $ do
- liftIO $ mapM_ putStrLn (map show evaluated)
+
+ case configPrintEvaled config of
+ PrintEvaledAll -> liftIO $ mapM_ putStrLn (map show evaluated)
+ PrintEvaledNonUnit -> do
+ let evaledNonUnits = evaluated $>
+ filter (\case AST { astNode = ASTUnit } -> False
+ _ -> True)
+ liftIO $ mapM_ putStrLn (map show evaledNonUnits)
+ PrintEvaledOff -> return ()
return evaluated
where