public IEnumerable <Word> Interprete() { var result = new Dictionary <string, Word>(); var currentPhrase = new Phrase(); var t = _tokenizer.CurrentToken(); var wasSpace = false; while (t != null) { if ((t.IsSpace()) && (!wasSpace)) { currentPhrase.Text += " "; } if (!t.IsSpace()) { currentPhrase.Text += t.Text; } wasSpace = t.IsSpace(); if (t.IsWord() && !t.Ignore) { var w = new Word(); w.Text = t.Text; w.AddPhrase(currentPhrase); if (!TestPhrasalVerb(result, w)) { AddToList(result, w); } } if ((t.Text.Length == 1) && (PhraseEndings.Contains(t.Text))) { currentPhrase = new Phrase(); } t = _tokenizer.NextToken(); } return(result.Values); }