private static object GetAncestor(ITreeAdaptor adaptor, string[] tokenNames, object t, string goal) { while (t != null) { string name = tokenNames[adaptor.GetType(t)]; if (name.Equals(goal)) return t; t = adaptor.GetParent(t); } return null; } }