Ejemplo n.º 1
0
	void AggregateQueryOperator(
#line  2191 "VBNET.ATG" 
List<QueryExpressionClause> middleClauses) {

#line  2193 "VBNET.ATG" 
		QueryExpressionFromClause fromClause = null;
		QueryExpressionAggregateClause aggregateClause = new QueryExpressionAggregateClause();
		aggregateClause.IntoVariables = new List<ExpressionRangeVariable>();
		aggregateClause.StartLocation = la.Location;
		
		Expect(45);
		CollectionRangeVariableDeclaration(
#line  2198 "VBNET.ATG" 
out fromClause);

#line  2200 "VBNET.ATG" 
		aggregateClause.FromClause = fromClause;
		
		while (StartOf(31)) {
			QueryOperator(
#line  2203 "VBNET.ATG" 
aggregateClause.MiddleClauses);
		}
		Expect(130);
		ExpressionRangeVariableDeclarationList(
#line  2205 "VBNET.ATG" 
aggregateClause.IntoVariables);

#line  2207 "VBNET.ATG" 
		aggregateClause.EndLocation = t.EndLocation;
		middleClauses.Add(aggregateClause);
		
	}
Ejemplo n.º 2
0
		public virtual object VisitQueryExpressionAggregateClause(QueryExpressionAggregateClause queryExpressionAggregateClause, object data) {
			Debug.Assert((queryExpressionAggregateClause != null));
			Debug.Assert((queryExpressionAggregateClause.FromClause != null));
			Debug.Assert((queryExpressionAggregateClause.MiddleClauses != null));
			Debug.Assert((queryExpressionAggregateClause.IntoVariables != null));
			queryExpressionAggregateClause.FromClause.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.FromClause != null));
			Debug.Assert((queryExpressionAggregateClause.MiddleClauses != null));
			Debug.Assert((queryExpressionAggregateClause.IntoVariables != null));
			nodeStack.Push(queryExpressionAggregateClause.FromClause);
			queryExpressionAggregateClause.FromClause.AcceptVisitor(this, data);
			queryExpressionAggregateClause.FromClause = ((QueryExpressionFromClause)(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;
		}
		public sealed override object VisitQueryExpressionAggregateClause(QueryExpressionAggregateClause queryExpressionAggregateClause, object data) {
			BeginVisit(queryExpressionAggregateClause);
			object result = TrackedVisitQueryExpressionAggregateClause(queryExpressionAggregateClause, data);
			EndVisit(queryExpressionAggregateClause);
			return result;
		}
		public virtual object TrackedVisitQueryExpressionAggregateClause(QueryExpressionAggregateClause queryExpressionAggregateClause, object data) {
			return base.VisitQueryExpressionAggregateClause(queryExpressionAggregateClause, data);
		}