public virtual void VisitQueryBody(IQueryBody value)
 {
     VisitQueryOperation(value.Operation);
     VisitQueryClauseCollection(value.Clauses);
     if (value.Continuation != null)
     {
         VisitQueryContinuation(value.Continuation);
     }
 }
        public virtual void VisitQueryBody(IQueryBody value)
        {
            this.VisitQueryOperation(value.Operation);
            this.VisitQueryClauseCollection(value.Clauses);

            if (value.Continuation != null)
            {
                this.VisitQueryContinuation(value.Continuation);
            }
        }
            private void WriteQueryBody(IQueryBody value, IFormatter formatter)
            {
                // from | where | let | join | orderby
                for (int i = 0; i < value.Clauses.Count; i++)
                {
                    this.WriteQueryClause(value.Clauses[i], formatter);
                    formatter.WriteLine();
                }

                // select | group
                this.WriteQueryOperation(value.Operation, formatter);

                // into
                if (value.Continuation != null)
                {
                    formatter.Write(" ");
                    this.WriteQueryContinuation(value.Continuation, formatter);
                }
            }
        public virtual IQueryBody TransformQueryBody(IQueryBody value)
        {
            value.Operation = this.TransformQueryOperation(value.Operation);

            this.InsituTransformQueryClauseCollection(value.Clauses);

            if (value.Continuation != null)
            {
                value.Continuation = this.TransformQueryContinuation(value.Continuation);
            }

            return value;
        }