module Elara.Settings where
data CompilerSettings = CompilerSettings
{ CompilerSettings -> Set DumpTarget
dumpTargets :: Set DumpTarget
, CompilerSettings -> Maybe FilePath
mainFile :: Maybe FilePath
, CompilerSettings -> [FilePath]
sourceDirs :: [FilePath]
, CompilerSettings -> [FilePath]
programArgs :: [String]
, CompilerSettings -> FilePath
outputDir :: FilePath
}
deriving (Int -> CompilerSettings -> ShowS
[CompilerSettings] -> ShowS
CompilerSettings -> FilePath
(Int -> CompilerSettings -> ShowS)
-> (CompilerSettings -> FilePath)
-> ([CompilerSettings] -> ShowS)
-> Show CompilerSettings
forall a.
(Int -> a -> ShowS) -> (a -> FilePath) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CompilerSettings -> ShowS
showsPrec :: Int -> CompilerSettings -> ShowS
$cshow :: CompilerSettings -> FilePath
show :: CompilerSettings -> FilePath
$cshowList :: [CompilerSettings] -> ShowS
showList :: [CompilerSettings] -> ShowS
Show, CompilerSettings -> CompilerSettings -> Bool
(CompilerSettings -> CompilerSettings -> Bool)
-> (CompilerSettings -> CompilerSettings -> Bool)
-> Eq CompilerSettings
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CompilerSettings -> CompilerSettings -> Bool
== :: CompilerSettings -> CompilerSettings -> Bool
$c/= :: CompilerSettings -> CompilerSettings -> Bool
/= :: CompilerSettings -> CompilerSettings -> Bool
Eq)
data DumpTarget
= DumpLexed
| DumpParsed
| DumpDesugared
| DumpRenamed
| DumpShunted
| DumpTyped
| DumpCore
| DumpIR
| DumpJVM
deriving (Int -> DumpTarget -> ShowS
[DumpTarget] -> ShowS
DumpTarget -> FilePath
(Int -> DumpTarget -> ShowS)
-> (DumpTarget -> FilePath)
-> ([DumpTarget] -> ShowS)
-> Show DumpTarget
forall a.
(Int -> a -> ShowS) -> (a -> FilePath) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DumpTarget -> ShowS
showsPrec :: Int -> DumpTarget -> ShowS
$cshow :: DumpTarget -> FilePath
show :: DumpTarget -> FilePath
$cshowList :: [DumpTarget] -> ShowS
showList :: [DumpTarget] -> ShowS
Show, DumpTarget -> DumpTarget -> Bool
(DumpTarget -> DumpTarget -> Bool)
-> (DumpTarget -> DumpTarget -> Bool) -> Eq DumpTarget
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DumpTarget -> DumpTarget -> Bool
== :: DumpTarget -> DumpTarget -> Bool
$c/= :: DumpTarget -> DumpTarget -> Bool
/= :: DumpTarget -> DumpTarget -> Bool
Eq, Eq DumpTarget
Eq DumpTarget =>
(DumpTarget -> DumpTarget -> Ordering)
-> (DumpTarget -> DumpTarget -> Bool)
-> (DumpTarget -> DumpTarget -> Bool)
-> (DumpTarget -> DumpTarget -> Bool)
-> (DumpTarget -> DumpTarget -> Bool)
-> (DumpTarget -> DumpTarget -> DumpTarget)
-> (DumpTarget -> DumpTarget -> DumpTarget)
-> Ord DumpTarget
DumpTarget -> DumpTarget -> Bool
DumpTarget -> DumpTarget -> Ordering
DumpTarget -> DumpTarget -> DumpTarget
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: DumpTarget -> DumpTarget -> Ordering
compare :: DumpTarget -> DumpTarget -> Ordering
$c< :: DumpTarget -> DumpTarget -> Bool
< :: DumpTarget -> DumpTarget -> Bool
$c<= :: DumpTarget -> DumpTarget -> Bool
<= :: DumpTarget -> DumpTarget -> Bool
$c> :: DumpTarget -> DumpTarget -> Bool
> :: DumpTarget -> DumpTarget -> Bool
$c>= :: DumpTarget -> DumpTarget -> Bool
>= :: DumpTarget -> DumpTarget -> Bool
$cmax :: DumpTarget -> DumpTarget -> DumpTarget
max :: DumpTarget -> DumpTarget -> DumpTarget
$cmin :: DumpTarget -> DumpTarget -> DumpTarget
min :: DumpTarget -> DumpTarget -> DumpTarget
Ord, Int -> DumpTarget
DumpTarget -> Int
DumpTarget -> [DumpTarget]
DumpTarget -> DumpTarget
DumpTarget -> DumpTarget -> [DumpTarget]
DumpTarget -> DumpTarget -> DumpTarget -> [DumpTarget]
(DumpTarget -> DumpTarget)
-> (DumpTarget -> DumpTarget)
-> (Int -> DumpTarget)
-> (DumpTarget -> Int)
-> (DumpTarget -> [DumpTarget])
-> (DumpTarget -> DumpTarget -> [DumpTarget])
-> (DumpTarget -> DumpTarget -> [DumpTarget])
-> (DumpTarget -> DumpTarget -> DumpTarget -> [DumpTarget])
-> Enum DumpTarget
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: DumpTarget -> DumpTarget
succ :: DumpTarget -> DumpTarget
$cpred :: DumpTarget -> DumpTarget
pred :: DumpTarget -> DumpTarget
$ctoEnum :: Int -> DumpTarget
toEnum :: Int -> DumpTarget
$cfromEnum :: DumpTarget -> Int
fromEnum :: DumpTarget -> Int
$cenumFrom :: DumpTarget -> [DumpTarget]
enumFrom :: DumpTarget -> [DumpTarget]
$cenumFromThen :: DumpTarget -> DumpTarget -> [DumpTarget]
enumFromThen :: DumpTarget -> DumpTarget -> [DumpTarget]
$cenumFromTo :: DumpTarget -> DumpTarget -> [DumpTarget]
enumFromTo :: DumpTarget -> DumpTarget -> [DumpTarget]
$cenumFromThenTo :: DumpTarget -> DumpTarget -> DumpTarget -> [DumpTarget]
enumFromThenTo :: DumpTarget -> DumpTarget -> DumpTarget -> [DumpTarget]
Enum, DumpTarget
DumpTarget -> DumpTarget -> Bounded DumpTarget
forall a. a -> a -> Bounded a
$cminBound :: DumpTarget
minBound :: DumpTarget
$cmaxBound :: DumpTarget
maxBound :: DumpTarget
Bounded, (forall x. DumpTarget -> Rep DumpTarget x)
-> (forall x. Rep DumpTarget x -> DumpTarget) -> Generic DumpTarget
forall x. Rep DumpTarget x -> DumpTarget
forall x. DumpTarget -> Rep DumpTarget x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. DumpTarget -> Rep DumpTarget x
from :: forall x. DumpTarget -> Rep DumpTarget x
$cto :: forall x. Rep DumpTarget x -> DumpTarget
to :: forall x. Rep DumpTarget x -> DumpTarget
Generic)
defaultSettings :: CompilerSettings
defaultSettings :: CompilerSettings
defaultSettings =
CompilerSettings
{ dumpTargets :: Set DumpTarget
dumpTargets = Set DumpTarget
forall a. Monoid a => a
mempty
, mainFile :: Maybe FilePath
mainFile = Maybe FilePath
forall a. Maybe a
Nothing
, sourceDirs :: [FilePath]
sourceDirs = []
, programArgs :: [FilePath]
programArgs = []
, outputDir :: FilePath
outputDir = FilePath
"build"
}