never executed always true always false
    1 module HelVM.HelMA.Automaton.API.EvalParams where
    2 
    3 import qualified HelVM.HelMA.Automaton.API.AutomatonOptions as Automaton
    4 import           HelVM.HelMA.Automaton.API.AutoOptions
    5 import           HelVM.HelMA.Automaton.API.IOTypes
    6 import           HelVM.HelMA.Automaton.API.MemoryOptions
    7 
    8 import           HelVM.HelMA.Automaton.Types.CellType
    9 import           HelVM.HelMA.Automaton.Types.DumpType
   10 import           HelVM.HelMA.Automaton.Types.IntCellType
   11 import           HelVM.HelMA.Automaton.Types.LabelType
   12 import           HelVM.HelMA.Automaton.Types.RAMType
   13 import           HelVM.HelMA.Automaton.Types.StackType
   14 
   15 -- | Accessors
   16 ramAutoOptions ∷ EvalParams → RAMType
   17 ramAutoOptions = ram . memoryOptions
   18 
   19 stackAutoOptions ∷ EvalParams → StackType
   20 stackAutoOptions = stack . memoryOptions
   21 
   22 cellAutoOptions ∷ EvalParams → CellType
   23 cellAutoOptions = cell . memoryOptions
   24 
   25 intCellAutoOptions ∷ EvalParams → IntCellType
   26 intCellAutoOptions = intCell . memoryOptions
   27 
   28 dumpAutoOptions ∷ EvalParams → DumpType
   29 dumpAutoOptions = dumpType . autoOptions
   30 
   31 automatonOptions ∷ EvalParams → Automaton.AutomatonOptions
   32 automatonOptions p = Automaton.AutomatonOptions (stackAutoOptions p) (ramAutoOptions p) (autoOptions p)
   33 
   34 -- | Type
   35 data EvalParams
   36   = EvalParams
   37       { formatType    :: !LabelType
   38       , source        :: !Source
   39       , memoryOptions :: !MemoryOptions
   40       , autoOptions   :: !AutoOptions
   41       }