import Prelude hiding (lookup) import Text.ParserCombinators.Parsec import Control.Monad import System.Environment import System.IO import Data.Map import Data import Parse import Gen aurochs source cs = case parse parseAurochs source cs of Right (header, table, name, gs, extra) -> Right $ genProg header table name gs extra Left err -> Left err main = do args <- getArgs if length args < 2 then do print "Argument format error, correct usage: aurochs (output) (input)" return () else do let (output : input : _) = args o <- openFile output WriteMode i <- openFile input ReadMode cs <- hGetContents i case aurochs input cs of Right doc -> hPutStr o (show doc) Left err -> print err hClose i hClose o return ()