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