import Halive import Banner import System.Environment import Control.Applicative separateArgs :: [String] -> ([String], [String]) separateArgs args = (haliveArgs, drop 1 targetArgs) where (haliveArgs, targetArgs) = break (== "--") args main :: IO () main = do (args, targetArgs) <- separateArgs <$> getArgs case args of [] -> putStrLn "Usage: halive [-- ]" (mainName:includeDirs) -> do putStrLn banner withArgs targetArgs $ recompiler mainName includeDirs