X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=utils%2Fext-core%2FDriver.hs;h=fd42f9eab08fef3d784ec61531f1804d57270024;hp=2328eca22a94d67f1c9284edb1c4a0e130a31b9a;hb=6b085eeada6c3c93599fa4b6d77572abc419c08c;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1 diff --git a/utils/ext-core/Driver.hs b/utils/ext-core/Driver.hs index 2328eca2..fd42f9e 100644 --- a/utils/ext-core/Driver.hs +++ b/utils/ext-core/Driver.hs @@ -5,6 +5,8 @@ -} import Monad +import System.Environment + import Core import Printer import Parser @@ -40,11 +42,20 @@ process (senv,modules) f = FailP s -> do putStrLn ("Parse failed: " ++ s) error "quit" -main = do (_,modules) <- foldM process (initialEnv,[]) flist +main = do fname <- getSingleArg + (_,modules) <- foldM process (initialEnv,[]) [fname] -- flist let result = evalProgram modules putStrLn ("Result = " ++ show result) putStrLn "All done" - where flist = ["PrelBase.hcr", +-- TODO +-- see what breaks + where flist = ["Main.hcr"] + getSingleArg = getArgs >>= (\ a -> + case a of + (f:_) -> return f + _ -> error $ "usage: ./Driver [filename]") +{- + ["PrelBase.hcr", "PrelMaybe.hcr", "PrelTup.hcr", "PrelList.hcr", @@ -84,3 +95,4 @@ main = do (_,modules) <- foldM process (initialEnv,[]) flist "Prelude.hcr", "Main.hcr" ] +-} \ No newline at end of file