Completed (first iteration of) the lexer