Aurochs-0.1: Aurochs.hs
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 ()