finish Lexer.read and Lexer.peek