{-# LANGUAGE DataKinds #-} module Main where import Data.Monoid import System.Environment import System.IO import qualified Text.PrettyPrint.ANSI.Leijen as Ppr import qualified Text.Trifecta as P import qualified Formura.Parser as P main :: IO () main = do argv <- getArgs mapM_ process argv process :: FilePath -> IO () process fn = do mprog <- P.parseFromFileEx (P.runP $ P.program <* P.eof) fn case mprog of P.Success prog -> print $ prog P.Failure doc -> Ppr.displayIO stdout $ Ppr.renderPretty 0.8 80 $ doc <> Ppr.linebreak