public bool VisitExprAnalyticFunction(ExprAnalyticFunction expr, TCtx arg) { var res = this.Visit(expr, "AnalyticFunction", arg, out var argOut) && this.Accept("Name", expr.Name, argOut) && this.Accept("Arguments", expr.Arguments, argOut) && this.Accept("Over", expr.Over, argOut); this._visitor.EndVisitExpr(expr, arg); return(res); }
public bool VisitExprAnalyticFunction(ExprAnalyticFunction exprAnalyticFunction, IExpr?parent) { exprAnalyticFunction.Name.Accept(this, exprAnalyticFunction); this.Builder.Append('('); if (exprAnalyticFunction.Arguments != null) { this.AssertNotEmptyList(exprAnalyticFunction.Arguments, "Arguments list cannot be empty"); this.AcceptListComaSeparated(exprAnalyticFunction.Arguments, exprAnalyticFunction); } this.Builder.Append(')'); exprAnalyticFunction.Over.Accept(this, exprAnalyticFunction); return(true); }
public static ExprAnalyticFunction WithOver(this ExprAnalyticFunction original, ExprOver newOver) => new ExprAnalyticFunction(name: original.Name, arguments: original.Arguments, over: newOver);
public static ExprAnalyticFunction WithArguments(this ExprAnalyticFunction original, IReadOnlyList <ExprValue>?newArguments) => new ExprAnalyticFunction(name: original.Name, arguments: newArguments, over: original.Over);
public static ExprAnalyticFunction WithName(this ExprAnalyticFunction original, ExprFunctionName newName) => new ExprAnalyticFunction(name: newName, arguments: original.Arguments, over: original.Over);