void QueryExpressionOrderByClause( #line 2424 "cs.ATG" QueryExpression q) { #line 2425 "cs.ATG" QueryExpressionOrdering ordering; Expect(140); QueryExpressionOrderingClause( #line 2428 "cs.ATG" out ordering); #line 2428 "cs.ATG" SafeAdd(q, q.Orderings, ordering); while (la.kind == 14) { lexer.NextToken(); QueryExpressionOrderingClause( #line 2430 "cs.ATG" out ordering); #line 2430 "cs.ATG" SafeAdd(q, q.Orderings, ordering); } }
public virtual object VisitQueryExpression(QueryExpression queryExpression, object data) { throw new global::System.NotImplementedException("QueryExpression"); }
public sealed override object VisitQueryExpression(QueryExpression queryExpression, object data) { this.BeginVisit(queryExpression); object result = this.TrackedVisitQueryExpression(queryExpression, data); this.EndVisit(queryExpression); return result; }
void QueryExpressionIntoClause( #line 2594 "cs.ATG" ref QueryExpression q) { #line 2595 "cs.ATG" QueryExpression firstQuery = q; QueryExpression continuedQuery = new QueryExpression(); continuedQuery.StartLocation = q.StartLocation; firstQuery.EndLocation = la.Location; continuedQuery.FromClause = new QueryExpressionFromClause(); CollectionRangeVariable fromVariable = new CollectionRangeVariable(); continuedQuery.FromClause.Sources.Add(fromVariable); fromVariable.StartLocation = la.Location; // nest firstQuery inside continuedQuery. fromVariable.Expression = firstQuery; continuedQuery.IsQueryContinuation = true; q = continuedQuery; Expect(136); Identifier(); #line 2610 "cs.ATG" fromVariable.Identifier = t.val; #line 2611 "cs.ATG" continuedQuery.FromClause.EndLocation = t.EndLocation; QueryExpressionBody( #line 2612 "cs.ATG" ref q); }
Location GetQueryVariableEndScope(QueryExpression queryExpression) { return queryExpression.EndLocation; }
void QueryExpression( //#line 2420 "cs.ATG" out Expression outExpr) { //#line 2421 "cs.ATG" QueryExpression q = new QueryExpression(); outExpr = q; q.StartLocation = la.Location; QueryExpressionFromClause fromClause; QueryExpressionFromClause( //#line 2425 "cs.ATG" out fromClause); //#line 2425 "cs.ATG" q.FromClause = fromClause; QueryExpressionBody( //#line 2426 "cs.ATG" ref q); //#line 2427 "cs.ATG" q.EndLocation = t.EndLocation; outExpr = q; /* set outExpr to q again if QueryExpressionBody changed it (can happen with 'into' clauses) */ }
void QueryExpression( #line 2462 "cs.ATG" out Expression outExpr) { #line 2463 "cs.ATG" QueryExpression q = new QueryExpression(); outExpr = q; q.StartLocation = la.Location; QueryExpressionFromClause fromClause; QueryExpressionFromClause( #line 2467 "cs.ATG" out fromClause); #line 2467 "cs.ATG" q.FromClause = fromClause; QueryExpressionBody( #line 2468 "cs.ATG" ref q); #line 2469 "cs.ATG" q.EndLocation = t.EndLocation; outExpr = q; /* set outExpr to q again if QueryExpressionBody changed it (can happen with 'into' clauses) */ }
public QueryExpressionIntoClause() { intoIdentifier = "?"; continuedQuery = QueryExpression.Null; }
public virtual bool VisitQueryExpression(QueryExpression queryExpression, object d) { if ((queryExpression == null)) { return SetFailure(); } if ((d == null)) { return SetFailure(); } if ((queryExpression.FromClause == null)) { return SetFailure(); } if ((queryExpression.MiddleClauses == null)) { return SetFailure(); } if ((queryExpression.SelectOrGroupClause == null)) { return SetFailure(); } if(queryExpression.GetType() != d.GetType()) {return SetFailure();} var data = (QueryExpression)d; if (!IsMatch(queryExpression, data)) { return SetFailure(); } queryExpression.FromClause.AcceptVisitor(this, data.FromClause); if (queryExpression.MiddleClauses.Count == data.MiddleClauses.Count) { for (int i=0; i<queryExpression.MiddleClauses.Count;i++) { QueryExpressionClause o = queryExpression.MiddleClauses[i]; if(o == null){return SetFailure();} if((bool)o.AcceptVisitor(this, data.MiddleClauses[i]) == false) return SetFailure(); } } else { return SetFailure(); } return queryExpression.SelectOrGroupClause.AcceptVisitor(this, data.SelectOrGroupClause); }
private bool IsMatch(QueryExpression l, QueryExpression r) { return l.MiddleClauses.Count == r.MiddleClauses.Count; }
public override object VisitQueryExpression(QueryExpression queryExpression, object data) { return base.VisitQueryExpression(queryExpression, data); }
public virtual object VisitQueryExpression(QueryExpression queryExpression, object data) { Debug.Assert((queryExpression != null)); Debug.Assert((queryExpression.FromClause != null)); Debug.Assert((queryExpression.FromLetWhereClauses != null)); Debug.Assert((queryExpression.Orderings != null)); Debug.Assert((queryExpression.SelectOrGroupClause != null)); Debug.Assert((queryExpression.IntoClause != null)); queryExpression.FromClause.AcceptVisitor(this, data); foreach (QueryExpressionClause o in queryExpression.FromLetWhereClauses) { Debug.Assert(o != null); o.AcceptVisitor(this, data); } foreach (QueryExpressionOrdering o in queryExpression.Orderings) { Debug.Assert(o != null); o.AcceptVisitor(this, data); } queryExpression.SelectOrGroupClause.AcceptVisitor(this, data); return queryExpression.IntoClause.AcceptVisitor(this, data); }
public override object VisitQueryExpression (QueryExpression queryExpression, object data) { //Write ("E.From("); //Write (queryExpression.FromClause.Identifier); //Write (" in "); var t = (Mono.Cecil.GenericInstanceType)queryExpression.FromClause.InExpression.AcceptVisitor (this, null); Locals.Add (queryExpression.FromClause.Identifier, t.GenericArguments[0]); //Write (")"); Indent (); foreach (var clause in queryExpression.MiddleClauses) { NewLine (); Write (".CreateQuery("); clause.AcceptVisitor (LinqExpressionEmitter, null); Write (")"); } NewLine (); Write (".CreateQuery("); var type = queryExpression.SelectOrGroupClause.AcceptVisitor (LinqExpressionEmitter, null); Write (")"); Outdent (); var ien = KnownTypes["System.Collections.Generic.IEnumerable"]; //Console.WriteLine("IEN: {0}", ien.GenericParameters[0]); //Console.WriteLine ("R: {0}", type); return ien; }
public override object VisitQueryExpression(QueryExpression queryExpression, object data) { if (queryExpression.EndLocation.Line - queryExpression.StartLocation.Line >= 10) UnlockWith(queryExpression); return base.VisitQueryExpression(queryExpression, data); }
public object VisitQueryExpression(QueryExpression queryExpression, object data) { AddError(queryExpression, "QueryExpression is not supported."); return null; }
public object VisitQueryExpression(QueryExpression queryExpression, object data) { throw new NotImplementedException (); }
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 (result.ResolvedType.ConvertToTypeReference ()); 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 override object VisitQueryExpression(QueryExpression queryExpression, object data) { UnlockWith(queryExpression); return base.VisitQueryExpression(queryExpression, data); }
void QueryExpressionBody( //#line 2476 "cs.ATG" ref QueryExpression q) { //#line 2477 "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 2483 "cs.ATG" out fromClause); //#line 2483 "cs.ATG" SafeAdd<QueryExpressionClause>(q, q.MiddleClauses, fromClause); } else if (la.kind == 127) { QueryExpressionWhereClause( //#line 2484 "cs.ATG" out whereClause); //#line 2484 "cs.ATG" SafeAdd<QueryExpressionClause>(q, q.MiddleClauses, whereClause); } else if (la.kind == 141) { QueryExpressionLetClause( //#line 2485 "cs.ATG" out letClause); //#line 2485 "cs.ATG" SafeAdd<QueryExpressionClause>(q, q.MiddleClauses, letClause); } else if (la.kind == 142) { QueryExpressionJoinClause( //#line 2486 "cs.ATG" out joinClause); //#line 2486 "cs.ATG" SafeAdd<QueryExpressionClause>(q, q.MiddleClauses, joinClause); } else { QueryExpressionOrderByClause( //#line 2487 "cs.ATG" out orderClause); //#line 2487 "cs.ATG" SafeAdd<QueryExpressionClause>(q, q.MiddleClauses, orderClause); } } if (la.kind == 133) { QueryExpressionSelectClause( //#line 2489 "cs.ATG" out selectClause); //#line 2489 "cs.ATG" q.SelectOrGroupClause = selectClause; } else if (la.kind == 134) { QueryExpressionGroupClause( //#line 2490 "cs.ATG" out groupClause); //#line 2490 "cs.ATG" q.SelectOrGroupClause = groupClause; } else SynErr(216); if (la.kind == 136) { QueryExpressionIntoClause( //#line 2492 "cs.ATG" ref q); } }
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); }
void QueryExpressionBody( #line 2518 "cs.ATG" ref QueryExpression q) { #line 2519 "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 2525 "cs.ATG" out fromClause); #line 2525 "cs.ATG" SafeAdd<QueryExpressionClause>(q, q.MiddleClauses, fromClause); } else if (la.kind == 127) { QueryExpressionWhereClause( #line 2526 "cs.ATG" out whereClause); #line 2526 "cs.ATG" SafeAdd<QueryExpressionClause>(q, q.MiddleClauses, whereClause); } else if (la.kind == 141) { QueryExpressionLetClause( #line 2527 "cs.ATG" out letClause); #line 2527 "cs.ATG" SafeAdd<QueryExpressionClause>(q, q.MiddleClauses, letClause); } else if (la.kind == 142) { QueryExpressionJoinClause( #line 2528 "cs.ATG" out joinClause); #line 2528 "cs.ATG" SafeAdd<QueryExpressionClause>(q, q.MiddleClauses, joinClause); } else { QueryExpressionOrderByClause( #line 2529 "cs.ATG" out orderClause); #line 2529 "cs.ATG" SafeAdd<QueryExpressionClause>(q, q.MiddleClauses, orderClause); } } if (la.kind == 133) { QueryExpressionSelectClause( #line 2531 "cs.ATG" out selectClause); #line 2531 "cs.ATG" q.SelectOrGroupClause = selectClause; } else if (la.kind == 134) { QueryExpressionGroupClause( #line 2532 "cs.ATG" out groupClause); #line 2532 "cs.ATG" q.SelectOrGroupClause = groupClause; } else SynErr(218); if (la.kind == 136) { QueryExpressionIntoClause( #line 2534 "cs.ATG" ref q); } }
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 override object VisitQueryExpression(QueryExpression queryExpression, object data) { endLocationStack.Push(GetQueryVariableEndScope(queryExpression)); base.VisitQueryExpression(queryExpression, data); endLocationStack.Pop(); return null; }
public virtual object VisitQueryExpression(QueryExpression queryExpression, object data) { throw CreateException(queryExpression); }
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; }
void QueryExpressionIntoClause( #line 2553 "Frames/cs.ATG" ref QueryExpression q) { #line 2554 "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 2567 "Frames/cs.ATG" continuedQuery.FromClause.Identifier = t.val; #line 2568 "Frames/cs.ATG" continuedQuery.FromClause.EndLocation = t.EndLocation; QueryExpressionBody( #line 2569 "Frames/cs.ATG" ref q); }
public virtual object TrackedVisitQueryExpression(QueryExpression queryExpression, object data) { return base.VisitQueryExpression(queryExpression, data); }
public override object VisitQueryExpression(QueryExpression queryExpression, object data) { QueryExpressionSelectClause selectClause = queryExpression.SelectOrGroupClause as QueryExpressionSelectClause; QueryExpressionGroupClause groupClause = queryExpression.SelectOrGroupClause as QueryExpressionGroupClause; if (selectClause != null) { // Fake a call to 'Select' var fakeInvocation = new InvocationExpression(new MemberReferenceExpression( queryExpression.FromClause.InExpression, "Select")); var selector = new LambdaExpression(); selector.Parameters.Add(new ParameterDeclarationExpression(null, "__rangeVariable")); selector.ExpressionBody = selectClause.Projection; selector.Parent = fakeInvocation; fakeInvocation.Arguments.Add(selector); return CreateResolveResult(ResolveType(fakeInvocation)); } else if (groupClause != null) { // Fake a call to 'GroupBy' var fakeInvocation = new InvocationExpression(new MemberReferenceExpression( queryExpression.FromClause.InExpression, "GroupBy")); var keySelector = new LambdaExpression(); keySelector.Parameters.Add(new ParameterDeclarationExpression(null, "__rangeVariable")); keySelector.ExpressionBody = groupClause.GroupBy; keySelector.Parent = fakeInvocation; var elementSelector = new LambdaExpression(); elementSelector.Parameters.Add(new ParameterDeclarationExpression(null, "__rangeVariable")); elementSelector.ExpressionBody = groupClause.Projection; elementSelector.Parent = fakeInvocation; fakeInvocation.Arguments.Add(keySelector); fakeInvocation.Arguments.Add(elementSelector); return CreateResolveResult(ResolveType(fakeInvocation)); } else { return null; } }
public override object TrackedVisitQueryExpression(QueryExpression queryExpression, object data) { return null; }
void QueryExpressionBody( #line 2387 "cs.ATG" QueryExpression q) { #line 2388 "cs.ATG" QueryExpressionFromClause fromClause; QueryExpressionWhereClause whereClause; QueryExpressionLetClause letClause; QueryExpressionJoinClause joinClause; QueryExpressionSelectClause selectClause; QueryExpressionGroupClause groupClause; QueryExpressionIntoClause intoClause; while (StartOf(39)) { if (la.kind == 137) { QueryExpressionFromClause( #line 2394 "cs.ATG" out fromClause); #line 2394 "cs.ATG" SafeAdd<QueryExpressionClause>(q, q.FromLetWhereClauses, fromClause); } else if (la.kind == 127) { QueryExpressionWhereClause( #line 2395 "cs.ATG" out whereClause); #line 2395 "cs.ATG" SafeAdd<QueryExpressionClause>(q, q.FromLetWhereClauses, whereClause); } else if (la.kind == 141) { QueryExpressionLetClause( #line 2396 "cs.ATG" out letClause); #line 2396 "cs.ATG" SafeAdd<QueryExpressionClause>(q, q.FromLetWhereClauses, letClause); } else { QueryExpressionJoinClause( #line 2397 "cs.ATG" out joinClause); #line 2397 "cs.ATG" SafeAdd<QueryExpressionClause>(q, q.FromLetWhereClauses, joinClause); } } if (la.kind == 140) { QueryExpressionOrderByClause( #line 2399 "cs.ATG" q); } if (la.kind == 133) { QueryExpressionSelectClause( #line 2400 "cs.ATG" out selectClause); #line 2400 "cs.ATG" q.SelectOrGroupClause = selectClause; } else if (la.kind == 134) { QueryExpressionGroupClause( #line 2401 "cs.ATG" out groupClause); #line 2401 "cs.ATG" q.SelectOrGroupClause = groupClause; } else SynErr(218); if (la.kind == 136) { QueryExpressionIntoClause( #line 2403 "cs.ATG" out intoClause); #line 2403 "cs.ATG" q.IntoClause = intoClause; } }