from Data.Either import :: Either
from yard import :: Error
-
from AST import :: Pos
:: Token :== (Pos, TokenValue)
= IdentToken String // Identifier
| NumberToken Int // Integer
| CharToken Char // Character literal
+ | StringToken [Char]// String literal
//Keyword tokens
| VarToken // var keyword
| ReturnToken // return keyword
| LesserToken // <
| BiggerToken // >
| ExclamationToken // !
- //Special tokens
- | EndOfFileToken // EOF
:: LexerOutput :== Either Error [Token]