示例#1
0
        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);
        }
示例#2
0
 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);
 }
示例#3
0
 public static ExprAnalyticFunction WithOver(this ExprAnalyticFunction original, ExprOver newOver)
 => new ExprAnalyticFunction(name: original.Name, arguments: original.Arguments, over: newOver);
示例#4
0
 public static ExprAnalyticFunction WithArguments(this ExprAnalyticFunction original, IReadOnlyList <ExprValue>?newArguments)
 => new ExprAnalyticFunction(name: original.Name, arguments: newArguments, over: original.Over);
示例#5
0
 public static ExprAnalyticFunction WithName(this ExprAnalyticFunction original, ExprFunctionName newName)
 => new ExprAnalyticFunction(name: newName, arguments: original.Arguments, over: original.Over);