From 02db3b9701ef714d7aa5059ed92e457380ddecbe Mon Sep 17 00:00:00 2001 From: bringert Date: Fri, 28 Sep 2007 13:27:12 +0000 Subject: [PATCH] Started on a stub GFC.Main --- src/GF/Devel/GFC/Main.hs | 28 ++++++++++++++++++++++++++++ src/GF/Devel/GFC/Options.hs | 9 ++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 src/GF/Devel/GFC/Main.hs diff --git a/src/GF/Devel/GFC/Main.hs b/src/GF/Devel/GFC/Main.hs new file mode 100644 index 000000000..d9ceb8e70 --- /dev/null +++ b/src/GF/Devel/GFC/Main.hs @@ -0,0 +1,28 @@ +module GF.Devel.GFC.Main where + +import GF.Devel.GFC.Options + +import System.Environment +import System.Exit +import System.IO + + +version = "X.X" + +main :: IO () +main = + do args <- getArgs + case parseOptions args of + Ok (opts, files) -> + case optMode opts of + Version -> putStrLn $ "GF, version " ++ version + Help -> putStr helpMessage + Compiler -> gfcMain opts files + Errors errs -> + do mapM_ (hPutStrLn stderr) errs + exitFailure + +gfcMain :: Options -> [FilePath] -> IO () +gfcMain opts files = return () + + diff --git a/src/GF/Devel/GFC/Options.hs b/src/GF/Devel/GFC/Options.hs index 97d229b36..af8bfa6af 100644 --- a/src/GF/Devel/GFC/Options.hs +++ b/src/GF/Devel/GFC/Options.hs @@ -1,4 +1,11 @@ -module GF.Devel.Options where +module GF.Devel.GFC.Options + ( + Err(..), -- FIXME: take from somewhere else + + Options(..), + Mode(..), Phase(..), OutputFormat(..), Optimization(..), + parseOptions, helpMessage + ) where import Control.Monad import Data.Maybe