Esempio n. 1
0
		public virtual object VisitQueryExpressionAggregateClause(QueryExpressionAggregateClause queryExpressionAggregateClause, object data) {
			Debug.Assert((queryExpressionAggregateClause != null));
			Debug.Assert((queryExpressionAggregateClause.Source != null));
			Debug.Assert((queryExpressionAggregateClause.MiddleClauses != null));
			Debug.Assert((queryExpressionAggregateClause.IntoVariables != null));
			queryExpressionAggregateClause.Source.AcceptVisitor(this, data);
			foreach (QueryExpressionClause o in queryExpressionAggregateClause.MiddleClauses) {
				Debug.Assert(o != null);
				o.AcceptVisitor(this, data);
			}
			foreach (ExpressionRangeVariable o in queryExpressionAggregateClause.IntoVariables) {
				Debug.Assert(o != null);
				o.AcceptVisitor(this, data);
			}
			return null;
		}
		public virtual object VisitQueryExpressionAggregateClause(QueryExpressionAggregateClause queryExpressionAggregateClause, object data) {
			throw new global::System.NotImplementedException("QueryExpressionAggregateClause");
		}
		public virtual object VisitQueryExpressionAggregateClause(QueryExpressionAggregateClause queryExpressionAggregateClause, object data) {
			Debug.Assert((queryExpressionAggregateClause != null));
			Debug.Assert((queryExpressionAggregateClause.Source != null));
			Debug.Assert((queryExpressionAggregateClause.MiddleClauses != null));
			Debug.Assert((queryExpressionAggregateClause.IntoVariables != null));
			nodeStack.Push(queryExpressionAggregateClause.Source);
			queryExpressionAggregateClause.Source.AcceptVisitor(this, data);
			queryExpressionAggregateClause.Source = ((CollectionRangeVariable)(nodeStack.Pop()));
			for (int i = 0; i < queryExpressionAggregateClause.MiddleClauses.Count; i++) {
				QueryExpressionClause o = queryExpressionAggregateClause.MiddleClauses[i];
				Debug.Assert(o != null);
				nodeStack.Push(o);
				o.AcceptVisitor(this, data);
				o = (QueryExpressionClause)nodeStack.Pop();
				if (o == null)
					queryExpressionAggregateClause.MiddleClauses.RemoveAt(i--);
				else
					queryExpressionAggregateClause.MiddleClauses[i] = o;
			}
			for (int i = 0; i < queryExpressionAggregateClause.IntoVariables.Count; i++) {
				ExpressionRangeVariable o = queryExpressionAggregateClause.IntoVariables[i];
				Debug.Assert(o != null);
				nodeStack.Push(o);
				o.AcceptVisitor(this, data);
				o = (ExpressionRangeVariable)nodeStack.Pop();
				if (o == null)
					queryExpressionAggregateClause.IntoVariables.RemoveAt(i--);
				else
					queryExpressionAggregateClause.IntoVariables[i] = o;
			}
			return null;
		}
Esempio n. 4
0
	void AggregateQueryOperator(out QueryExpressionAggregateClause aggregateClause) {
		aggregateClause = new QueryExpressionAggregateClause();
		aggregateClause.IntoVariables = new List<ExpressionRangeVariable>();
		aggregateClause.StartLocation = la.Location;
		CollectionRangeVariable source;

		Expect(58);
		CollectionRangeVariableDeclaration(out source);
		aggregateClause.Source = source;

		while (StartOf(31)) {
			QueryOperator(aggregateClause.MiddleClauses);
		}
		Expect(143);
		ExpressionRangeVariableDeclarationList(aggregateClause.IntoVariables);
		aggregateClause.EndLocation = t.EndLocation;

	}
		public sealed override object VisitQueryExpressionAggregateClause(QueryExpressionAggregateClause queryExpressionAggregateClause, object data) {
			this.BeginVisit(queryExpressionAggregateClause);
			object result = this.TrackedVisitQueryExpressionAggregateClause(queryExpressionAggregateClause, data);
			this.EndVisit(queryExpressionAggregateClause);
			return result;
		}
		public virtual object TrackedVisitQueryExpressionAggregateClause(QueryExpressionAggregateClause queryExpressionAggregateClause, object data) {
			return base.VisitQueryExpressionAggregateClause(queryExpressionAggregateClause, data);
		}