From d006d918119e45ddde6a48cb9cc7634a1ab58257 Mon Sep 17 00:00:00 2001 From: Vincent Hanquez Date: Sun, 5 Apr 2015 06:54:57 +0100 Subject: [PATCH] get to parse more things in QA script --- QA.hs | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/QA.hs b/QA.hs index 0b48251..e670c0b 100644 --- a/QA.hs +++ b/QA.hs @@ -10,18 +10,36 @@ import Control.Monad import Control.Applicative ((<$>)) import Control.Exception +import System.Console.ANSI main = do modules <- findAllModules mapM_ qa modules where qa file = do - putStrLn ("==== " ++ file) + printHeader ("==== " ++ file) content <- readFile file let mexts = readExtensions content case mexts of - Nothing -> printError "[ERR] failed to parsed extension" - Just (_, exts) -> putStrLn ("extensions : " ++ (intercalate ", " $ map show exts)) - printError = putStrLn + Nothing -> printError "failed to parsed extensions" + Just (_, exts) -> qaExts content exts + + qaExts content exts = do + putStrLn ("extensions : " ++ (intercalate ", " $ map show exts)) + + let mode = defaultParseMode { extensions = exts } + + case parseModuleWithMode mode content of + ParseFailed srcLoc s -> printError ("failed to parse module: " ++ show srcLoc ++ " : " ++ s) + ParseOk mod -> do + let imports = getModulesImports mod + putStrLn (show (map importModule imports)) + + printHeader s = + setSGR [SetColor Foreground Vivid Green] >> putStrLn s >> setSGR [] + printError s = + setSGR [SetColor Foreground Vivid Red] >> putStrLn s >> setSGR [] + + getModulesImports (Module _ _ _ _ _ imports _) = imports findAllModules :: IO [FilePath] findAllModules = dirTraverse "Crypto" fileCallback dirCallback []