public virtual object VisitQueryExpression(QueryExpression queryExpression, object data) { Debug.Assert((queryExpression != null)); Debug.Assert((queryExpression.FromClause != null)); Debug.Assert((queryExpression.MiddleClauses != null)); Debug.Assert((queryExpression.SelectOrGroupClause != null)); queryExpression.FromClause.AcceptVisitor(this, data); foreach (QueryExpressionClause o in queryExpression.MiddleClauses) { Debug.Assert(o != null); o.AcceptVisitor(this, data); } return queryExpression.SelectOrGroupClause.AcceptVisitor(this, data); }
public override object VisitQueryExpression(QueryExpression queryExpression, object data) { endLocationStack.Push(GetQueryVariableEndScope(queryExpression)); base.VisitQueryExpression(queryExpression, data); endLocationStack.Pop(); return null; }
Location GetQueryVariableEndScope(QueryExpression queryExpression) { return queryExpression.EndLocation; }
void QueryExpressionBody( #line 2479 "Frames/cs.ATG" ref QueryExpression q) { #line 2480 "Frames/cs.ATG" QueryExpressionFromClause fromClause; QueryExpressionWhereClause whereClause; QueryExpressionLetClause letClause; QueryExpressionJoinClause joinClause; QueryExpressionOrderClause orderClause; QueryExpressionSelectClause selectClause; QueryExpressionGroupClause groupClause; while (StartOf(39)) { if (la.kind == 137) { QueryExpressionFromClause( #line 2486 "Frames/cs.ATG" out fromClause); #line 2486 "Frames/cs.ATG" SafeAdd<QueryExpressionClause>(q, q.MiddleClauses, fromClause); } else if (la.kind == 127) { QueryExpressionWhereClause( #line 2487 "Frames/cs.ATG" out whereClause); #line 2487 "Frames/cs.ATG" SafeAdd<QueryExpressionClause>(q, q.MiddleClauses, whereClause); } else if (la.kind == 141) { QueryExpressionLetClause( #line 2488 "Frames/cs.ATG" out letClause); #line 2488 "Frames/cs.ATG" SafeAdd<QueryExpressionClause>(q, q.MiddleClauses, letClause); } else if (la.kind == 142) { QueryExpressionJoinClause( #line 2489 "Frames/cs.ATG" out joinClause); #line 2489 "Frames/cs.ATG" SafeAdd<QueryExpressionClause>(q, q.MiddleClauses, joinClause); } else { QueryExpressionOrderByClause( #line 2490 "Frames/cs.ATG" out orderClause); #line 2490 "Frames/cs.ATG" SafeAdd<QueryExpressionClause>(q, q.MiddleClauses, orderClause); } } if (la.kind == 133) { QueryExpressionSelectClause( #line 2492 "Frames/cs.ATG" out selectClause); #line 2492 "Frames/cs.ATG" q.SelectOrGroupClause = selectClause; } else if (la.kind == 134) { QueryExpressionGroupClause( #line 2493 "Frames/cs.ATG" out groupClause); #line 2493 "Frames/cs.ATG" q.SelectOrGroupClause = groupClause; } else SynErr(218); if (la.kind == 136) { QueryExpressionIntoClause( #line 2495 "Frames/cs.ATG" ref q); } }
void QueryExpressionIntoClause( #line 2555 "Frames/cs.ATG" ref QueryExpression q) { #line 2556 "Frames/cs.ATG" QueryExpression firstQuery = q; QueryExpression continuedQuery = new QueryExpression(); continuedQuery.StartLocation = q.StartLocation; firstQuery.EndLocation = la.Location; continuedQuery.FromClause = new QueryExpressionFromClause(); continuedQuery.FromClause.StartLocation = la.Location; // nest firstQuery inside continuedQuery. continuedQuery.FromClause.InExpression = firstQuery; continuedQuery.IsQueryContinuation = true; q = continuedQuery; Expect(136); Identifier(); #line 2569 "Frames/cs.ATG" continuedQuery.FromClause.Identifier = t.val; #line 2570 "Frames/cs.ATG" continuedQuery.FromClause.EndLocation = t.EndLocation; QueryExpressionBody( #line 2571 "Frames/cs.ATG" ref q); }
public sealed override object VisitQueryExpression(QueryExpression queryExpression, object data) { this.BeginVisit(queryExpression); object result = this.TrackedVisitQueryExpression(queryExpression, data); this.EndVisit(queryExpression); return result; }
void QueryExpression( #line 2431 "Frames/cs.ATG" out Expression outExpr) { #line 2432 "Frames/cs.ATG" QueryExpression q = new QueryExpression(); outExpr = q; q.StartLocation = la.Location; QueryExpressionFromClause fromClause; QueryExpressionFromClause( #line 2436 "Frames/cs.ATG" out fromClause); #line 2436 "Frames/cs.ATG" q.FromClause = fromClause; QueryExpressionBody( #line 2437 "Frames/cs.ATG" ref q); #line 2438 "Frames/cs.ATG" q.EndLocation = t.EndLocation; outExpr = q; /* set outExpr to q again if QueryExpressionBody changed it (can happen with 'into' clauses) */ }
public virtual object TrackedVisitQueryExpression(QueryExpression queryExpression, object data) { return base.VisitQueryExpression(queryExpression, data); }
void QueryExpr( #line 2013 "VBNET.ATG" out Expression expr) { #line 2015 "VBNET.ATG" QueryExpression qexpr = new QueryExpression(); qexpr.StartLocation = la.Location; List<QueryExpressionClause> middleClauses = new List<QueryExpressionClause>(); expr = qexpr; FromOrAggregateQueryOperator( #line 2020 "VBNET.ATG" middleClauses); while (StartOf(31)) { QueryOperator( #line 2021 "VBNET.ATG" middleClauses); } #line 2023 "VBNET.ATG" qexpr.EndLocation = t.EndLocation; }
public override object VisitQueryExpression(QueryExpression queryExpression, object data) { if (this.queryExpression != null) // prevent endloss loop: var n = from n select n; n.$ (doesn't make sense, but you can type this) return null; this.queryExpression = queryExpression; IReturnType type = null; QueryExpressionSelectClause selectClause = queryExpression.SelectOrGroupClause as QueryExpressionSelectClause; if (selectClause != null) { InvocationExpression selectInvocation = new InvocationExpression (new MemberReferenceExpression (queryExpression.FromClause.InExpression, "Select")); LambdaExpression selectLambdaExpr = new LambdaExpression (); selectLambdaExpr.Parent = selectInvocation; selectLambdaExpr.Parameters.Add (new ParameterDeclarationExpression (null, "par")); selectLambdaExpr.ExpressionBody = selectClause.Projection; TypeReference typeRef = new TypeReference ("System.Func"); typeRef.GenericTypes.Add (TypeReference.Null); ResolveResult result = resolver.ResolveExpression (selectLambdaExpr, resolver.ResolvePosition, false); typeRef.GenericTypes.Add (NRefactoryResolver.ConvertToTypeReference (result.ResolvedType)); ObjectCreateExpression createExpression = new ObjectCreateExpression (typeRef, new List<Expression> (new Expression [] { null, selectLambdaExpr })); selectInvocation.Arguments.Add (createExpression); return CreateResult (ResolveType (selectInvocation)); } QueryExpressionGroupClause groupClause = queryExpression.SelectOrGroupClause as QueryExpressionGroupClause; if (groupClause != null) { InvocationExpression groupInvocation = new InvocationExpression (new MemberReferenceExpression (queryExpression.FromClause.InExpression, "GroupBy")); LambdaExpression keyLambdaExpr = new LambdaExpression (); keyLambdaExpr.Parent = groupInvocation; keyLambdaExpr.Parameters.Add (new ParameterDeclarationExpression (null, "par")); keyLambdaExpr.ExpressionBody = groupClause.GroupBy; groupInvocation.Arguments.Add (keyLambdaExpr); LambdaExpression elementLambdaExpr = new LambdaExpression (); elementLambdaExpr.Parent = groupInvocation; elementLambdaExpr.Parameters.Add (new ParameterDeclarationExpression (null, "par")); elementLambdaExpr.ExpressionBody = groupClause.Projection; groupInvocation.Arguments.Add (elementLambdaExpr); return CreateResult (ResolveType (groupInvocation)); } if (type != null) return CreateResult (new DomReturnType("System.Collections.Generic.IEnumerable", false, new List<IReturnType> (new IReturnType[] { type }))); return null; }
public virtual object VisitQueryExpression(QueryExpression queryExpression, object data) { Debug.Assert((queryExpression != null)); Debug.Assert((queryExpression.FromClause != null)); Debug.Assert((queryExpression.MiddleClauses != null)); Debug.Assert((queryExpression.SelectOrGroupClause != null)); nodeStack.Push(queryExpression.FromClause); queryExpression.FromClause.AcceptVisitor(this, data); queryExpression.FromClause = ((QueryExpressionFromClause)(nodeStack.Pop())); for (int i = 0; i < queryExpression.MiddleClauses.Count; i++) { QueryExpressionClause o = queryExpression.MiddleClauses[i]; Debug.Assert(o != null); nodeStack.Push(o); o.AcceptVisitor(this, data); o = (QueryExpressionClause)nodeStack.Pop(); if (o == null) queryExpression.MiddleClauses.RemoveAt(i--); else queryExpression.MiddleClauses[i] = o; } nodeStack.Push(queryExpression.SelectOrGroupClause); queryExpression.SelectOrGroupClause.AcceptVisitor(this, data); queryExpression.SelectOrGroupClause = ((QueryExpressionClause)(nodeStack.Pop())); return null; }
public virtual object VisitQueryExpression(QueryExpression queryExpression, object data) { throw new global::System.NotImplementedException("QueryExpression"); }