never executed always true always false
1 module HelVM.HelMA.Automaton.API.Lang where
2
3 import HelVM.HelMA.Automata.BrainFuck.API.ImplType
4 import HelVM.HelMA.Automata.ETA.API.AutomatonType
5 import HelVM.HelMA.Automata.Piet.API.LexerType
6 import HelVM.HelMA.Automata.WhiteSpace.API.TokenType
7
8 data LangCommand
9 = BFCommand !ImplType
10 | ETACommand !AutomatonType
11 | FCommand
12 | PietCommand !(Maybe LexerType) !(Maybe Natural)
13 | SQCommand
14 | WSCommand !TokenType
15 | CatCommand
16 | RevCommand
17 | LazyCommand
18 | ZotCommand
19
20 -- Lang
21
22 defaultLang ∷ Lang
23 defaultLang = minBound
24
25 langs ∷ NonEmpty Lang
26 langs = universeNonEmpty
27
28 data Lang
29 = BF
30 | ETA
31 | F
32 | Piet
33 | SQ
34 | WS
35 | Cat
36 | Rev
37 | Lazy
38 | Zot
39 deriving stock (Bounded, Enum, Eq, Read, Show)