import Data.Either
-:: Token
+:: Token :== (Int, TokenValue)
+:: TokenValue
//Value tokens
= IdentToken [Char] // Identifier
- | NumberToken [Char]// Integer
+ | NumberToken Int // Integer
| CharToken Char // Character literal
//Keyword tokens
| VarToken // var keyword
| BoolTypeToken // Bool keyword
//Two character tokens
| DoubleColonToken // ::
+ | NotEqualToken // !=
| LesserEqToken // <=
| GreaterEqToken // >=
| EqualsToken // ==
:: LexerOutput :== Either String [Token]
-instance toString LexerOutput
-
lexer :: [Char] -> LexerOutput