finish the lexer