ghc-9.4.0.20220721: The GHC API
Safe HaskellSafe-Inferred
LanguageHaskell2010

GHC.Driver.CmdLine

Description

Command-line parser

This is an abstract command-line parser used by DynFlags.

(c) The University of Glasgow 2005

Synopsis

Documentation

processArgs Source #

Arguments

:: Monad m 
=> [Flag m]

cmdline parser spec

-> [Located String]

args

-> (FilePath -> EwM m [Located String])

response file handler

-> m ([Located String], [Err], [Warn]) 

parseResponseFile :: MonadIO m => FilePath -> EwM m [Located String] Source #

Parse a response file into arguments.

data OptKind m Source #

Constructors

NoArg (EwM m ()) 
HasArg (String -> EwM m ()) 
SepArg (String -> EwM m ()) 
Prefix (String -> EwM m ()) 
OptPrefix (String -> EwM m ()) 
OptIntSuffix (Maybe Int -> EwM m ()) 
IntSuffix (Int -> EwM m ()) 
WordSuffix (Word -> EwM m ()) 
FloatSuffix (Float -> EwM m ()) 
PassFlag (String -> EwM m ()) 
AnySuffix (String -> EwM m ()) 

data GhcFlagMode Source #

GHC flag modes describing when a flag has an effect.

Constructors

OnlyGhc

The flag only affects the non-interactive GHC

OnlyGhci

The flag only affects the interactive GHC

AllModes

The flag affects multiple ghc modes

HiddenFlag

This flag should not be seen in cli completion

data Flag m Source #

Constructors

Flag 

hoistFlag :: forall m n. (forall a. m a -> n a) -> Flag m -> Flag n Source #

newtype Err Source #

A command-line error message

Constructors

Err 

Fields

data Warn Source #

A command-line warning message and the reason it arose

data WarnReason Source #

Used when filtering warnings: if a reason is given it can be filtered out when displaying.

Instances

Instances details
Show WarnReason Source # 
Instance details

Defined in GHC.Driver.CmdLine

ToJson WarnReason Source # 
Instance details

Defined in GHC.Driver.CmdLine

Outputable WarnReason Source # 
Instance details

Defined in GHC.Driver.CmdLine

Methods

ppr :: WarnReason -> SDoc Source #

Eq WarnReason Source # 
Instance details

Defined in GHC.Driver.CmdLine

data EwM m a Source #

Instances

Instances details
MonadIO m => MonadIO (EwM m) Source # 
Instance details

Defined in GHC.Driver.CmdLine

Methods

liftIO :: IO a -> EwM m a Source #

Monad m => Applicative (EwM m) Source # 
Instance details

Defined in GHC.Driver.CmdLine

Methods

pure :: a -> EwM m a Source #

(<*>) :: EwM m (a -> b) -> EwM m a -> EwM m b Source #

liftA2 :: (a -> b -> c) -> EwM m a -> EwM m b -> EwM m c Source #

(*>) :: EwM m a -> EwM m b -> EwM m b Source #

(<*) :: EwM m a -> EwM m b -> EwM m a Source #

Monad m => Functor (EwM m) Source # 
Instance details

Defined in GHC.Driver.CmdLine

Methods

fmap :: (a -> b) -> EwM m a -> EwM m b Source #

(<$) :: a -> EwM m b -> EwM m a Source #

Monad m => Monad (EwM m) Source # 
Instance details

Defined in GHC.Driver.CmdLine

Methods

(>>=) :: EwM m a -> (a -> EwM m b) -> EwM m b Source #

(>>) :: EwM m a -> EwM m b -> EwM m b Source #

return :: a -> EwM m a Source #

runEwM :: EwM m a -> m (Errs, Warns, a) Source #

addErr :: Monad m => String -> EwM m () Source #

addWarn :: Monad m => String -> EwM m () Source #

liftEwM :: Monad m => m a -> EwM m a Source #