cspmchecker 0.1.1 → 0.1.2
raw patch · 3 files changed
+21/−20 lines, 3 filesdep ~libcspm
Dependency ranges changed: libcspm
Files
- cspmchecker.cabal +5/−3
- src/Checker/Main.hs +5/−6
- src/Checker/Monad.hs +11/−11
cspmchecker.cabal view
@@ -10,7 +10,7 @@ Build-type: Simple Cabal-version: >=1.9.2 Synopsis: A command line type checker for CSPM files.-Version: 0.1.1+Version: 0.1.2 Source-Repository head type: git@@ -21,15 +21,17 @@ type: git location: git://github.com/tomgr/libcspm.git subdir: cspmchecker- tag: release-0.1.1+ tag: release-0.1.2 Executable cspmchecker Main-is: Main.hs Other-modules: Monad + Extensions: DoAndIfThenElse+ Build-depends: base >= 4 && < 5,- libcspm >= 0.1.1,+ libcspm >= 0.1.2, filepath >= 1.2, mtl >= 2.0, directory >= 1.0
src/Checker/Main.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE DoAndIfThenElse #-} module Main where import Control.Monad@@ -21,7 +20,7 @@ import Util.Exception import Util.PrettyPrint -countSuccesses :: [Sfdr Bool] -> Sfdr ()+countSuccesses :: [Checker Bool] -> Checker () countSuccesses tasks = do results <- sequence tasks let @@ -45,7 +44,7 @@ fss <- mapM getFilesFromDir [dir | dir <- dirs'] return $ files'++concat fss -doFile :: FilePath -> Sfdr Bool+doFile :: FilePath -> Checker Bool doFile fp = do liftIO $ putStr $ "Checking "++fp++"....." res <- tryM $ do@@ -64,7 +63,7 @@ else return () return True -printError :: String -> Sfdr ()+printError :: String -> Checker () printError s = liftIO $ putStrLn $ "\ESC[1;31m\STX"++s++"\ESC[0m\STX" data Options = Options {@@ -97,8 +96,8 @@ main :: IO () main = do args <- getArgs- st <- initSfdrState- runSfdr st $ case getOpt RequireOrder options args of+ st <- initCheckerState+ runChecker st $ case getOpt RequireOrder options args of (_,_,e:es) -> liftIO $ putStr $ show $ concat (e:es) ++ usageInfo header options (o,files, []) -> do let opts = foldl (flip id) defaultOptions o
src/Checker/Monad.hs view
@@ -7,33 +7,33 @@ import Util.Exception import Util.PrettyPrint -data SfdrState = SfdrState {+data CheckerState = CheckerState { cspmSession :: CSPMSession, lastWarnings :: [ErrorMessage] } -initSfdrState :: IO SfdrState-initSfdrState = do+initCheckerState :: IO CheckerState+initCheckerState = do sess <- newCSPMSession- return $ SfdrState sess []+ return $ CheckerState sess [] -resetCSPM :: Sfdr ()+resetCSPM :: Checker () resetCSPM = do sess <- liftIO $ newCSPMSession modify (\st -> st { cspmSession = sess, lastWarnings = [] }) -type Sfdr = StateT SfdrState IO+type Checker = StateT CheckerState IO -runSfdr :: SfdrState -> Sfdr a -> IO a-runSfdr st a = runStateT a st >>= return . fst+runChecker :: CheckerState -> Checker a -> IO a+runChecker st a = runStateT a st >>= return . fst -getState :: (SfdrState -> a) -> Sfdr a+getState :: (CheckerState -> a) -> Checker a getState = gets -modifyState :: (SfdrState -> SfdrState) -> Sfdr ()+modifyState :: (CheckerState -> CheckerState) -> Checker () modifyState = modify -instance CSPMMonad Sfdr where+instance CSPMMonad Checker where getSession = gets cspmSession setSession s = modify (\ st -> st { cspmSession = s }) handleWarnings ws = modify (\ st -> st { lastWarnings = ws })