Lexer component of the parser.
This builds on the reader: it turns read characters into lexemes. It provides a layer upon which the (rest of) the parser is built.