@@ -8,6 +8,7 @@ import IRTS.CodegenCommon
88
99import Options.Applicative
1010import Options.Applicative.Arrows
11+import Options.Applicative.Builder (prefs, idm)
1112import Data.Char
1213import Data.Maybe
1314
@@ -57,7 +58,7 @@ runArgParser = do opts <- execParser $ info parser
5758
5859
5960pureArgParser :: [String] -> [Opt]
60−pureArgParser args = case execParserMaybe (info parser idm) args of
61+pureArgParser args = case getParseResult $ execParserPure (prefs idm) (info parser idm) args of
6162 Just opts -> preProcOpts opts []
6263 Nothing -> []
6364
@@ -74,7 +75,7 @@ parseFlags = many $
7475 <|> flag' Ideslave (long "ideslave")
7576 <|> flag' IdeslaveSocket (long "ideslave-socket")
7677 <|> (Client <$> strOption (long "client"))
77− <|> (OLogging <$> option (long "log" <> metavar "LEVEL" <> help "Debugging log level"))
78+ <|> (OLogging <$> option auto (long "log" <> metavar "LEVEL" <> help "Debugging log level"))
7879 <|> flag' NoBasePkgs (long "nobasepkgs")
7980 <|> flag' NoPrelude (long "noprelude")
8081 <|> flag' NoBuiltins (long "nobuiltins")
@@ -120,7 +121,7 @@ parseFlags = many $
120121 <|> flag' (OptLevel 2) (long "O2")
121122 <|> flag' (OptLevel 1) (long "O1")
122123 <|> flag' (OptLevel 0) (long "O0")
123− <|> (OptLevel <$> option (short 'O' <> long "level"))
124+ <|> (OptLevel <$> option auto (short 'O' <> long "level"))
124125 <|> (TargetTriple <$> strOption (long "target" <> metavar "TRIPLE" <> help "Select target triple (for llvm codegen)"))
125126 <|> (TargetCPU <$> strOption (long "cpu" <> metavar "CPU" <> help "Select target CPU e.g. corei7 or cortex-m3 (for LLVM codegen)"))
126127 <|> flag' (ColourREPL True) (long "colour" <> long "color" <> help "Force coloured output")
@@ -144,4 +145,3 @@ preProcOpts (x:xs) ys = preProcOpts xs (x:ys)
144145parseCodegen :: String -> Codegen
145146parseCodegen "bytecode" = Bytecode
146147parseCodegen cg = Via (map toLower cg)
147−