protected virtual Expression VisitFunction(FunctionExpression func) { var arguments = this.VisitExpressionList(func.Arguments); return this.UpdateFunction(func, func.Name, arguments); }
protected FunctionExpression UpdateFunction(FunctionExpression func, string name, IEnumerable<Expression> arguments) { if (name != func.Name || arguments != func.Arguments) { return new FunctionExpression(func.Type, name, arguments); } return func; }
protected virtual bool CompareFunction(FunctionExpression x, FunctionExpression y) { return x.Name == y.Name && this.CompareExpressionList(x.Arguments, y.Arguments); }
protected override Expression VisitFunction(FunctionExpression func) { this.Write(func.Name); if (func.Arguments.Count > 0) { this.Write("("); for (int i = 0, n = func.Arguments.Count; i < n; i++) { if (i > 0) this.Write(", "); this.Visit(func.Arguments[i]); } this.Write(")"); } 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; }