never executed always true always false
1 module HelVM.HelMA.Automata.WhiteSpace.SimpleParams where
2
3 import HelVM.HelMA.Automata.WhiteSpace.API.TokenType
4
5 import qualified HelVM.HelMA.Automaton.API.AutomatonOptions as Automaton
6 import HelVM.HelMA.Automaton.API.AutoOptions
7 import HelVM.HelMA.Automaton.API.IOTypes
8
9 import HelVM.HelMA.Automaton.Types.LabelType
10 import HelVM.HelMA.Automaton.Types.RAMType
11 import HelVM.HelMA.Automaton.Types.StackType
12
13 -- | Construction for tests
14 simpleParamsWithDefaultsAndWhiteTokenType ∷ LabelType → Source → SimpleParams
15 simpleParamsWithDefaultsAndWhiteTokenType = simpleParamsWithDefaults WhiteTokenType
16
17 simpleParamsWithDefaultsAndVisibleTokenType ∷ LabelType → Source → SimpleParams
18 simpleParamsWithDefaultsAndVisibleTokenType = simpleParamsWithDefaults VisibleTokenType
19
20 simpleParamsWithDefaults ∷ TokenType → LabelType → Source → SimpleParams
21 simpleParamsWithDefaults tt = simpleParams tt (defaultStackType , defaultRAMType)
22
23 -- | Construction for benchmark
24 simpleParamsWithWhiteTokenType ∷ (StackType, RAMType) → LabelType → Source → SimpleParams
25 simpleParamsWithWhiteTokenType = simpleParams WhiteTokenType
26
27 simpleParamsWithVisibleTokenType ∷ (StackType, RAMType) → LabelType → Source → SimpleParams
28 simpleParamsWithVisibleTokenType = simpleParams VisibleTokenType
29
30 automatonOptions ∷ SimpleParams → Automaton.AutomatonOptions
31 automatonOptions p = Automaton.AutomatonOptions (stackType p) (ramType p) (autoOptions p)
32
33 simpleParams ∷ TokenType → (StackType, RAMType) → LabelType → Source → SimpleParams
34 simpleParams tt (st , rt) al s = SimpleParams
35 { tokenType = tt
36 , source = s
37 , formatType = al
38 , stackType = st
39 , ramType = rt
40 , autoOptions = simpleAutoParams
41 }
42
43 -- | Type
44 data SimpleParams
45 = SimpleParams
46 { tokenType :: !TokenType
47 , source :: !Source
48 , formatType :: !LabelType
49 , stackType :: !StackType
50 , ramType :: !RAMType
51 , autoOptions :: !AutoOptions
52 }