/// <summary> /// Accept a <see cref="QueryNodeVisitor{T}"/> that walks the tree of <see cref="QueryNode"/>s. /// </summary> /// <typeparam name="TResult">The type returned by the visitor.</typeparam> /// <param name="visitor">A visitor implementation used to walk the <see cref="QueryNode"/> tree.</param> /// <returns>An object whose type is determined by the type parameter <typeparamref name="TResult"/>.</returns> /// <exception cref="System.ArgumentNullException">Throws if the <paramref name="visitor"/> argument is null.</exception> public override TResult Accept <TResult>(QueryNodeVisitor <TResult> visitor) { Check.IsNotNull(visitor, nameof(visitor)); return(visitor.Visit(this)); }
/// <summary> /// Accept a <see cref="QueryNodeVisitor{T}"/> that walks a tree of <see cref="QueryNode"/>s. /// </summary> /// <typeparam name="T">Type that the visitor will return after visiting this token.</typeparam> /// <param name="visitor">An implementation of the visitor interface.</param> /// <returns>An object whose type is determined by the type parameter of the visitor.</returns> /// <exception cref="System.ArgumentNullException">Throws if the input visitor is null</exception> public override T Accept <T>(QueryNodeVisitor <T> visitor) { ExceptionUtils.CheckArgumentNotNull(visitor, "visitor"); return(visitor.Visit(this)); }
/// <inheritdoc/> public override T Accept <T>(QueryNodeVisitor <T> visitor) => visitor.Visit(this);