public UnifiedElement VisitQuerySelectClause( QuerySelectClause select, object data) { var expr = select.Expression.TryAcceptForExpression(this); return(UnifiedSelectQuery.Create(expr)); }
public virtual void VisitQuerySelectClause(QuerySelectClause querySelectClause) { if (this.ThrowException) { throw (System.Exception) this.CreateException(querySelectClause); } }
public virtual void VisitQuerySelectClause(QuerySelectClause querySelectClause) { if (ThrowException) { throw (Exception)CreateException(querySelectClause); } }
public override void VisitQuerySelectClause(QuerySelectClause querySelectClause) { var visitor = new CaptureSelectNewFieldNamesVisitor(); querySelectClause.AcceptVisitor(visitor, null); indexData.SelectExpressions = visitor.SelectExpressions; indexData.NumberOfSelectClauses++; }
public override void VisitQuerySelectClause(QuerySelectClause querySelectClause) { var selectExpressions = new Dictionary<string, Expression>(); var visitor = new CaptureSelectNewFieldNamesVisitor(false, new HashSet<string>(), selectExpressions); querySelectClause.AcceptVisitor(visitor, null); indexData.SelectExpressions = selectExpressions; indexData.NumberOfSelectClauses++; }
public override object VisitQuerySelectClause(QuerySelectClause querySelectClause, object data) { ProcessQuery(querySelectClause.Expression); if (_outerMostRequired) { return(base.VisitQuerySelectClause(querySelectClause, data)); } return(null); }
public override void VisitQuerySelectClause(QuerySelectClause querySelectClause) { var selectExpressions = new Dictionary <string, Expression>(); var visitor = new CaptureSelectNewFieldNamesVisitor(false, new HashSet <string>(), selectExpressions); querySelectClause.AcceptVisitor(visitor, null); indexData.SelectExpressions = selectExpressions; indexData.NumberOfSelectClauses++; }
bool TryRemoveTransparentIdentifier(QueryExpression query, QueryFromClause fromClause, QueryExpression innerQuery) { if (!IsTransparentIdentifier(fromClause.Identifier)) { return(false); } Match match = selectTransparentIdentifierPattern.Match(innerQuery.Clauses.Last()); if (!match.Success) { return(false); } QuerySelectClause selectClause = (QuerySelectClause)innerQuery.Clauses.Last(); NamedArgumentExpression nae1 = match.Get <NamedArgumentExpression>("nae1").Single(); NamedArgumentExpression nae2 = match.Get <NamedArgumentExpression>("nae2").Single(); if (nae1.Identifier != ((IdentifierExpression)nae1.Expression).Identifier) { return(false); } IdentifierExpression nae2IdentExpr = nae2.Expression as IdentifierExpression; if (nae2IdentExpr != null && nae2.Identifier == nae2IdentExpr.Identifier) { // from * in (from x in ... select new { x = x, y = y }) ... // => // from x in ... ... fromClause.Remove(); selectClause.Remove(); // Move clauses from innerQuery to query QueryClause insertionPos = null; foreach (var clause in innerQuery.Clauses) { query.Clauses.InsertAfter(insertionPos, insertionPos = clause.Detach()); } } else { // from * in (from x in ... select new { x = x, y = expr }) ... // => // from x in ... let y = expr ... fromClause.Remove(); selectClause.Remove(); // Move clauses from innerQuery to query QueryClause insertionPos = null; foreach (var clause in innerQuery.Clauses) { query.Clauses.InsertAfter(insertionPos, insertionPos = clause.Detach()); } query.Clauses.InsertAfter(insertionPos, new QueryLetClause { Identifier = nae2.Identifier, Expression = nae2.Expression.Detach() }); } return(true); }
bool TryRemoveTransparentIdentifier(QueryExpression query, QueryFromClause fromClause, QueryExpression innerQuery, Dictionary <string, object> letClauses) { if (!IsTransparentIdentifier(fromClause.Identifier)) { return(false); } QuerySelectClause selectClause = innerQuery.Clauses.Last() as QuerySelectClause; Match match = selectTransparentIdentifierPattern.Match(selectClause); if (!match.Success) { return(false); } // from * in (from x in ... select new { members of anonymous type }) ... // => // from x in ... { let x = ... } ... fromClause.Remove(); selectClause.Remove(); // Move clauses from innerQuery to query QueryClause insertionPos = null; foreach (var clause in innerQuery.Clauses) { query.Clauses.InsertAfter(insertionPos, insertionPos = clause.Detach()); } foreach (var expr in match.Get <Expression>("expr")) { switch (expr) { case IdentifierExpression identifier: // nothing to add continue; case NamedExpression namedExpression: if (namedExpression.Expression is IdentifierExpression identifierExpression && namedExpression.Name == identifierExpression.Identifier) { letClauses[namedExpression.Name] = identifierExpression.Annotation <ILVariableResolveResult>(); continue; } QueryLetClause letClause = new QueryLetClause { Identifier = namedExpression.Name, Expression = namedExpression.Expression.Detach() }; var annotation = new LetIdentifierAnnotation(); letClause.AddAnnotation(annotation); letClauses[namedExpression.Name] = annotation; query.Clauses.InsertAfter(insertionPos, letClause); break; } } return(true); }
public StringBuilder VisitQuerySelectClause(QuerySelectClause querySelectClause, int data) { throw new SLSharpException("HLSL does not understand LINQ."); }
/// <inheritdoc/> public virtual void VisitQuerySelectClause(QuerySelectClause syntax) { VisitNode(syntax); }
public virtual S VisitQuerySelectClause(QuerySelectClause querySelectClause, T data) { return(VisitChildren(querySelectClause, data)); }
public override void VisitQuerySelectClause(QuerySelectClause querySelectClause) { throw NotSupportedToConsistency(); }
public void VisitQuerySelectClause(QuerySelectClause node) { NotSupported(node); }
protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) { QuerySelectClause o = other as QuerySelectClause; return(o != null && this.Expression.DoMatch(o.Expression, match)); }
public override object Visit (Mono.CSharp.Linq.Select sel) { var result = new QuerySelectClause (); var location = LocationsBag.GetLocations (sel); result.AddChild (new CSharpTokenNode (Convert (location[0]), "select".Length), QueryWhereClause.Roles.Keyword); result.AddChild ((MonoDevelop.CSharp.Ast.Expression)sel.Expr.Accept (this), QueryWhereClause.Roles.Expression); return result; }
public virtual void VisitQuerySelectClause(QuerySelectClause querySelectClause) { if (this.ThrowException) { throw (Exception)this.CreateException(querySelectClause); } }
public Node VisitQuerySelectClause(QuerySelectClause querySelectClause) { return(CreateDummy(querySelectClause)); }
public override void VisitQuerySelectClause(QuerySelectClause querySelectClause) { }
/// <summary> /// Gets a query select clause. /// </summary> /// <param name="parentReference">The parent code unit.</param> /// <param name="unsafeCode">Indicates whether the code being parsed resides /// in an unsafe code block.</param> /// <returns>Returns the query select clause.</returns> private QuerySelectClause GetQuerySelectClause(Reference<ICodePart> parentReference, bool unsafeCode) { Param.AssertNotNull(parentReference, "parentReference"); Param.Ignore(unsafeCode); // Get and add the 'select' symbol. Symbol symbol = this.GetNextSymbol(SymbolType.Other, parentReference); Debug.Assert(symbol.Text == "select", "Expected a select keyword"); var clauseReference = new Reference<ICodePart>(); Node<CsToken> firstTokenNode = this.tokens.InsertLast(this.GetToken(CsTokenType.Select, SymbolType.Other, clauseReference)); // Get the select expression. Expression selectClauseExpression = this.GetNextExpression(ExpressionPrecedence.Query, clauseReference, unsafeCode); if (selectClauseExpression == null) { throw this.CreateSyntaxException(); } // Create and return the clause. var clause = new QuerySelectClause(new CsTokenList(this.tokens, firstTokenNode, this.tokens.Last), selectClauseExpression); clauseReference.Target = clause; return clause; }
public StringBuilder VisitQuerySelectClause(QuerySelectClause querySelectClause, int data) { throw new ASLException("HLSL does not understand LINQ."); }
public void VisitQuerySelectClause(QuerySelectClause querySelectClause) { throw new NotImplementedException(); }
public override void VisitQuerySelectClause(QuerySelectClause querySelectClause) { FixClauseIndentation(querySelectClause, querySelectClause.SelectKeyword); }
public override object VisitQuerySelectClause(QuerySelectClause querySelectClause, object data) { ProcessQuery(querySelectClause.Expression); return(base.VisitQuerySelectClause(querySelectClause, data)); }
public StringBuilder VisitQuerySelectClause(QuerySelectClause querySelectClause) { return(InvalidNode(querySelectClause, "LINQ is not supported")); }
bool TryRemoveTransparentIdentifier(QueryExpression query, QueryFromClause fromClause, QueryExpression innerQuery) { if (!IsTransparentIdentifier(fromClause.Identifier)) { return(false); } Match match = selectTransparentIdentifierPattern.Match(innerQuery.Clauses.Last()); if (!match.Success) { return(false); } QuerySelectClause selectClause = (QuerySelectClause)innerQuery.Clauses.Last(); NamedExpression nae1 = match.Get <NamedExpression>("nae1").SingleOrDefault(); NamedExpression nae2 = match.Get <NamedExpression>("nae2").SingleOrDefault(); if (nae1 != null && nae1.Name != ((IdentifierExpression)nae1.Expression).Identifier) { return(false); } Expression nae2Expr = match.Get <Expression>("nae2Expr").Single(); IdentifierExpression nae2IdentExpr = nae2Expr as IdentifierExpression; if (nae2IdentExpr != null && (nae2 == null || nae2.Name == nae2IdentExpr.Identifier)) { // from * in (from x in ... select new { x = x, y = y }) ... // => // from x in ... ... fromClause.Remove(); selectClause.Remove(); // Move clauses from innerQuery to query QueryClause insertionPos = null; foreach (var clause in innerQuery.Clauses) { query.Clauses.InsertAfter(insertionPos, insertionPos = Detach(clause)); } } else { // from * in (from x in ... select new { x = x, y = expr }) ... // => // from x in ... let y = expr ... fromClause.Remove(); selectClause.Remove(); // Move clauses from innerQuery to query QueryClause insertionPos = null; foreach (var clause in innerQuery.Clauses) { query.Clauses.InsertAfter(insertionPos, insertionPos = Detach(clause)); } string ident; if (nae2 != null) { ident = nae2.Name; } else if (nae2Expr is MemberReferenceExpression) { ident = ((MemberReferenceExpression)nae2Expr).MemberName; } else { throw new InvalidOperationException("Could not infer name from initializer in AnonymousTypeCreateExpression"); } query.Clauses.InsertAfter(insertionPos, new QueryLetClause { Identifier = ident, Expression = Detach(nae2Expr) }); } return(true); }
public virtual void VisitQuerySelectClause(QuerySelectClause querySelectClause) { VisitChildren (querySelectClause); }
public override void VisitQuerySelectClause(QuerySelectClause syntax) { _underlyingVisitor.VisitQuerySelectClause(syntax); }
public RedILNode VisitQuerySelectClause(QuerySelectClause querySelectClause, State data) { throw new System.NotImplementedException(); }
public override object Visit (Mono.CSharp.Linq.Select sel) { var result = new QuerySelectClause (); result.AddChild (new CSharpTokenNode (Convert (sel.Location), "select".Length), QueryWhereClause.Roles.Keyword); result.AddChild ((Expression)sel.Expr.Accept (this), QueryWhereClause.Roles.Expression); return result; }
public override object Visit(Mono.CSharp.Linq.Select select) { var result = new QuerySelectClause(); result.AddChild(new CSharpTokenNode(Convert(select.Location), QuerySelectClause.SelectKeywordRole), QuerySelectClause.SelectKeywordRole); if (select.Expr != null) result.AddChild((Expression)select.Expr.Accept(this), Roles.Expression); return result; }
public JNode VisitQuerySelectClause(QuerySelectClause node) { throw new NotImplementedException(); }
public void VisitQuerySelectClause(QuerySelectClause querySelectClause) { StartNode(querySelectClause); WriteKeyword(QuerySelectClause.SelectKeywordRole); Space(); querySelectClause.Expression.AcceptVisitor(this); EndNode(querySelectClause); }
public virtual Node VisitQuerySelectClause(QuerySelectClause querySelectClause) { throw new System.NotImplementedException(); }