optimize lexer get token