inch-0.2.0: src/Language/Inch/Main.lhs
> {-# LANGUAGE ScopedTypeVariables #-}
> module Main where
> import Prelude
> import System.Environment
> import System.FilePath
> import Language.Inch.Syntax
> import Language.Inch.PrettyPrinter
> import Language.Inch.File
> help :: String -> String
> help me = "Usage: " ++ me ++ " [original file] [input file] [output file]\n\
> \ or " ++ me ++ " [input file]"
> main :: IO ()
> main = do
> args <- getArgs
> me <- getProgName
> case args of
> [original, input, output] -> do
> s <- readFile input
> (md, st) <- checkFile original s
> writeFile (replaceExtension original ".inch") (getInterface md)
> eraseWrite output md st
> [original] -> do
> s <- readFile original
> (md, _) <- checkFile original s
> putStrLn $ renderMe (fog md)
> _ -> putStrLn $ help me