bool ReadToken() { if (end_of_input) return false; lexer.NextToken(); if (lexer.EndOfInput) { Close(); return false; } current_input = lexer.Token; return true; }