Implement more of the lexer