public static Token ParseWord(this string word) { word = word.Trim().ToLower(); if (Verb.Propose(word)) { return(new Verb(word)); } if (Noun.Propose(word)) { return(new Noun(word)); } if (Article.Propose(word)) { return(new Article(word)); } if (Preposition.Propose(word)) { return(new Preposition(word)); } if (Pronoun.Propose(word)) { return(new Pronoun(word)); } throw new Exception(String.Format("Can't parse {0}", word)); }