protected FunctionExpression UpdateFunction(FunctionExpression func, string name, IEnumerable <Expression> arguments) { if (name != func.Name || arguments != func.Arguments) { return(new FunctionExpression(func.Type, name, arguments.ToArray())); } return(func); }
protected virtual Expression VisitFunction(FunctionExpression function) { this.Write("FUNCTION "); this.Write(function.Name); if (function.Arguments.Count > 0) { this.Write("("); this.VisitExpressionList(function.Arguments); this.Write(")"); } return(function); }
protected virtual bool CompareFunction(FunctionExpression x, FunctionExpression y) { return(x.Name == y.Name && this.CompareExpressionList(x.Arguments, y.Arguments)); }
protected virtual Expression VisitFunction(FunctionExpression func) { var arguments = this.VisitExpressionList(func.Arguments); return(this.UpdateFunction(func, func.Name, arguments)); }