module Main where import System.FilePath.Glob import Control.Monad.Error import Puppet.DSL.Loader main :: IO () main = do filelist <- globDir [compile "*.pp"] "test/lexer" >>= return . head . fst testres <- mapM testparser filelist let testsrs = map fst testres isgood = and $ map snd testres outlist = zip [1..(length testres)] testsrs mapM_ (\(n,t) -> putStrLn $ show n ++ " " ++ t) outlist if (isgood) then return () else error "fail" -- returns errors testparser :: FilePath -> IO (String, Bool) testparser fp = do parsed <- runErrorT (parseFile fp) case parsed of Right _ -> return ("PASS", True) Left err -> return (err, False)