public override TResult Accept <TResult>(IParseTreeVisitor <TResult> visitor) { ISoupVisitor <TResult> typedVisitor = visitor as ISoupVisitor <TResult>; if (typedVisitor != null) { return(typedVisitor.VisitCountry(this)); } else { return(visitor.VisitChildren(this)); } }