public virtual object VisitQueryExpressionSelectClause(QueryExpressionSelectClause queryExpressionSelectClause, object data) {
			Debug.Assert((queryExpressionSelectClause != null));
			Debug.Assert((queryExpressionSelectClause.Projection != null));
			return queryExpressionSelectClause.Projection.AcceptVisitor(this, data);
		}
		public virtual object VisitQueryExpressionSelectClause(QueryExpressionSelectClause queryExpressionSelectClause, object data) {
			throw new global::System.NotImplementedException("QueryExpressionSelectClause");
		}
		public sealed override object VisitQueryExpressionSelectClause(QueryExpressionSelectClause queryExpressionSelectClause, object data) {
			this.BeginVisit(queryExpressionSelectClause);
			object result = this.TrackedVisitQueryExpressionSelectClause(queryExpressionSelectClause, data);
			this.EndVisit(queryExpressionSelectClause);
			return result;
		}
		public virtual object VisitQueryExpressionSelectClause(QueryExpressionSelectClause queryExpressionSelectClause, object data) {
			Debug.Assert((queryExpressionSelectClause != null));
			Debug.Assert((queryExpressionSelectClause.Projection != null));
			nodeStack.Push(queryExpressionSelectClause.Projection);
			queryExpressionSelectClause.Projection.AcceptVisitor(this, data);
			queryExpressionSelectClause.Projection = ((Expression)(nodeStack.Pop()));
			return null;
		}
		public virtual object TrackedVisitQueryExpressionSelectClause(QueryExpressionSelectClause queryExpressionSelectClause, object data) {
			return base.VisitQueryExpressionSelectClause(queryExpressionSelectClause, data);
		}