never executed always true always false
    1 module HelVM.HelMA.Automaton.API.AppOptions where
    2 
    3 import qualified HelVM.HelMA.Automaton.API.AutoOptions       as API
    4 import           HelVM.HelMA.Automaton.API.BoolTypes         as API
    5 import           HelVM.HelMA.Automaton.API.Emit              as API
    6 import qualified HelVM.HelMA.Automaton.API.EvalParams        as API
    7 import           HelVM.HelMA.Automaton.API.IOTypes           as API
    8 import qualified HelVM.HelMA.Automaton.API.Lang              as API
    9 import           HelVM.HelMA.Automaton.API.LogLevel          as API
   10 import qualified HelVM.HelMA.Automaton.API.MemoryOptions     as API
   11 import           HelVM.HelMA.Automaton.API.OptimizationLevel as API
   12 
   13 import           HelVM.HelMA.Automaton.Types.CellType
   14 import           HelVM.HelMA.Automaton.Types.DumpType
   15 import           HelVM.HelMA.Automaton.Types.IntCellType
   16 import           HelVM.HelMA.Automaton.Types.LabelType
   17 import           HelVM.HelMA.Automaton.Types.RAMType
   18 import           HelVM.HelMA.Automaton.Types.StackType
   19 
   20 -- | Methods
   21 
   22 evalParams :: AppOptions -> Source -> API.EvalParams
   23 evalParams o source = API.EvalParams (formatType o) source (memoryOptions o) (autoOptions o)
   24 
   25 memoryOptions :: AppOptions -> API.MemoryOptions
   26 memoryOptions o = API.MemoryOptions (ramType o) (stackType o) (cellType o) (intCellType o)
   27 
   28 autoOptions :: AppOptions -> API.AutoOptions
   29 autoOptions o = API.AutoOptions (API.fromBool $ optimizationFlag o) Nothing (dumpType o)
   30 
   31 -- | Types
   32 
   33 data AppOptions = AppOptions
   34   { emit             :: !Emit
   35   , printLogs        :: !PrintLogs
   36   , verbosity        :: !LogLevel
   37 
   38   , optimizationFlag :: !Optimization
   39   , formatType       :: !LabelType
   40   , ramType          :: !RAMType
   41   , stackType        :: !StackType
   42   , cellType         :: !CellType
   43   , intCellType      :: !IntCellType
   44   , dumpType         :: !DumpType
   45   , codelSize        :: !(Maybe Int)
   46   , exec             :: !Exec
   47   , langCommand      :: !API.LangCommand
   48   , file             :: !FilePath
   49   }
   50