aboutsummaryrefslogtreecommitdiffstats
path: root/src/Interpreter.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Interpreter.hs')
-rw-r--r--src/Interpreter.hs22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/Interpreter.hs b/src/Interpreter.hs
index 41b2241..c899524 100644
--- a/src/Interpreter.hs
+++ b/src/Interpreter.hs
@@ -493,20 +493,20 @@ runInlineScript' lineNo fileName src = do
evaluated <- foldEvaluate parsed
- case configPrintEvaled config of
- PrintEvaledAll -> liftIO $ mapM_ putStrLn (map show evaluated)
- PrintEvaledNonUnit -> do
- let evaledNonUnits = evaluated $>
- filter (\case AST { an = ASTUnit } -> False
- _ -> True)
- liftIO $ mapM_ putStrLn (map show evaledNonUnits)
- PrintEvaledOff -> return ()
-
return evaluated
where
foldEvaluate :: [AST] -> LContext [AST]
foldEvaluate [] = return []
foldEvaluate (ast:rest) = do
- newAst <- evaluate ast
+ config <- getConfig
+ evaledAst <- evaluate ast
+
+ liftIO $ case configPrintEvaled config of
+ PrintEvaledAll -> putStrLn $ show evaledAst
+ PrintEvaledNonUnit -> case evaledAst of
+ AST { an = ASTUnit } -> return ()
+ _ -> putStrLn $ show evaledAst
+ PrintEvaledOff -> return ()
+
restEvaled <- foldEvaluate rest
- return $ newAst : restEvaled \ No newline at end of file
+ return $ evaledAst : restEvaled