diff options
Diffstat (limited to 'src/Interpreter.hs')
| -rw-r--r-- | src/Interpreter.hs | 22 |
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 |
