mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-11 13:59:31 -06:00
This changes lots of stuff, let me know if it broke anything. Comments: - We use a local hacked version of GetOpt that allows long forms of commands to start with a single dash. This breaks other parts of GetOpt. For example, arguments to short options now require a =, and does not allo pace after the option character. - The new command parsing is currently only used for the program command line, pragmas and the arguments for the 'i' shell command. - I made a quick hack for the options for showTerm, which currently makes it impossible to use the print style flags for cc. This will be replaced by a facility for parsing command-specific options. - The verbosity handling is broken in some places. I will fix that in a later patch.
32 lines
853 B
Haskell
32 lines
853 B
Haskell
module Main where
|
|
|
|
import GFC
|
|
import GFI
|
|
import GF.Data.ErrM
|
|
import GF.Infra.Option
|
|
import GF.Infra.UseIO
|
|
import Paths_gf
|
|
|
|
import Data.Version
|
|
import System.Environment (getArgs)
|
|
import System.Exit
|
|
import System.IO
|
|
|
|
main :: IO ()
|
|
main =
|
|
do args <- getArgs
|
|
case parseOptions args of
|
|
Ok (opts,files) -> mainOpts opts files
|
|
Bad err -> do hPutStrLn stderr err
|
|
hPutStrLn stderr "You may want to try --help."
|
|
exitFailure
|
|
|
|
mainOpts :: Options -> [FilePath] -> IO ()
|
|
mainOpts opts files =
|
|
case flag optMode opts of
|
|
ModeVersion -> putStrLn $ "Grammatical Framework (GF) version " ++ showVersion version
|
|
ModeHelp -> putStrLn helpMessage
|
|
ModeInteractive -> mainGFI opts files
|
|
ModeCompiler -> dieIOE (mainGFC opts files)
|
|
|