public virtual IEnumerable<Token> Tokenize(params string[] args) { TokenWriter tokenWriter = new TokenWriter(); Task.Factory.StartNew(() => { try { using (StringReader reader = new StringReader(string.Join(" ", args))) using (BasicReader basicReader = new BasicReader(reader, StringComparer.Ordinal)) { this.Parse(tokenWriter, basicReader); tokenWriter.Close(); } } catch (Exception ex) { tokenWriter.Abort(ex); } }); return tokenWriter.GetConsumingEnumerable(); }