module Hhp.Flag where
import DynFlags
import Hhp.Types
listFlags :: Options -> IO String
listFlags :: Options -> IO String
listFlags Options
opt = String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return (String -> IO String) -> String -> IO String
forall a b. (a -> b) -> a -> b
$ Options -> [String] -> String
forall a. ToString a => Options -> a -> String
convert Options
opt [String]
options
where
options :: [String]
options = String -> [String] -> [String]
expand String
"-f" [String]
fOptions [String] -> [String] -> [String]
forall a. [a] -> [a] -> [a]
++ String -> [String] -> [String]
expand String
"-W" [String]
wOptions
fOptions :: [String]
fOptions = (FlagSpec GeneralFlag -> String)
-> [FlagSpec GeneralFlag] -> [String]
forall a b. (a -> b) -> [a] -> [b]
map FlagSpec GeneralFlag -> String
forall flag. FlagSpec flag -> String
flagSpecName [FlagSpec GeneralFlag]
fFlags [String] -> [String] -> [String]
forall a. [a] -> [a] -> [a]
++ (FlagSpec Extension -> String) -> [FlagSpec Extension] -> [String]
forall a b. (a -> b) -> [a] -> [b]
map FlagSpec Extension -> String
forall flag. FlagSpec flag -> String
flagSpecName [FlagSpec Extension]
fLangFlags
wOptions :: [String]
wOptions = (FlagSpec WarningFlag -> String)
-> [FlagSpec WarningFlag] -> [String]
forall a b. (a -> b) -> [a] -> [b]
map FlagSpec WarningFlag -> String
forall flag. FlagSpec flag -> String
flagSpecName [FlagSpec WarningFlag]
wWarningFlags
expand :: String -> [String] -> [String]
expand String
prefix [String]
lst = [ String
prefix String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
no String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
option
| String
option <- [String]
lst
, String
no <- [String
"",String
"no-"]
]