never executed always true always false
1 module HelVM.HelMA.Automata.SubLeq.Lexer where
2
3 import HelVM.HelMA.Automata.SubLeq.Symbol
4
5 import HelVM.HelIO.Extra
6 import HelVM.HelIO.ReadText
7 import HelVM.HelMA.Automaton.API.IOTypes
8
9 import qualified Text.Read as Read
10 import qualified Text.Show as Show
11
12 tokenize ∷ Source → SymbolList
13 tokenize source = (maybeToList . readTextMaybe) =<< splitOneOf " \t\n" source
14
15 readSymbols ∷ Source → Symbols
16 readSymbols source = readTextUnsafe source :: Symbols
17
18 ----
19
20 newtype Symbols
21 = Symbols SymbolList
22
23 instance Show Symbols where
24 show (Symbols symbols) = toString $ unwords $ shows symbols
25
26 instance Read Symbols where
27 readsPrec _ source = [( Symbols $ tokenize $ toText source , "")]
28
29 ----
30
31 shows ∷ SymbolList → [Text]
32 shows symbols = show <$> symbols