public static PhraseNode Parse(string source) {
if(source == null) {
throw new ArgumentNullException("source");
}
var words = source.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
var pn = new PhraseNode();
foreach(var word in words) {
pn.Words.Add(WordNode.Parse(word));
}
return pn;
}