Files
PURErat-crack-scode/decompiled/Libraries/microsoft.codeanalysis.csharp/Microsoft.CodeAnalysis.CSharp.Syntax/QueryExpressionSyntax.cs
T
2026-08-27 10:56:38 -06:00

84 lines
2.4 KiB
C#

using System.Collections.Generic;
using Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax;
namespace Microsoft.CodeAnalysis.CSharp.Syntax;
public sealed class QueryExpressionSyntax : ExpressionSyntax
{
private FromClauseSyntax? fromClause;
private QueryBodySyntax? body;
public FromClauseSyntax FromClause => ((SyntaxNode)this).GetRedAtZero<FromClauseSyntax>(ref fromClause);
public QueryBodySyntax Body => ((SyntaxNode)this).GetRed<QueryBodySyntax>(ref body, 1);
internal QueryExpressionSyntax(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode green, SyntaxNode? parent, int position)
: base(green, parent, position)
{
}
internal override SyntaxNode? GetNodeSlot(int index)
{
return (SyntaxNode?)(index switch
{
0 => ((SyntaxNode)this).GetRedAtZero<FromClauseSyntax>(ref fromClause),
1 => ((SyntaxNode)this).GetRed<QueryBodySyntax>(ref body, 1),
_ => null,
});
}
internal override SyntaxNode? GetCachedSlot(int index)
{
return (SyntaxNode?)(index switch
{
0 => fromClause,
1 => body,
_ => null,
});
}
public override void Accept(CSharpSyntaxVisitor visitor)
{
visitor.VisitQueryExpression(this);
}
public override TResult? Accept<TResult>(CSharpSyntaxVisitor<TResult> visitor)
{
return visitor.VisitQueryExpression(this);
}
public QueryExpressionSyntax Update(FromClauseSyntax fromClause, QueryBodySyntax body)
{
if (fromClause != FromClause || body != Body)
{
QueryExpressionSyntax queryExpressionSyntax = SyntaxFactory.QueryExpression(fromClause, body);
SyntaxAnnotation[] annotations = ((SyntaxNode)this).GetAnnotations();
if (annotations == null || annotations.Length == 0)
{
return queryExpressionSyntax;
}
return queryExpressionSyntax.WithAnnotations(annotations);
}
return this;
}
public QueryExpressionSyntax WithFromClause(FromClauseSyntax fromClause)
{
return Update(fromClause, Body);
}
public QueryExpressionSyntax WithBody(QueryBodySyntax body)
{
return Update(FromClause, body);
}
public QueryExpressionSyntax AddBodyClauses(params QueryClauseSyntax[] items)
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
return WithBody(Body.WithClauses(Body.Clauses.AddRange((IEnumerable<QueryClauseSyntax>)items)));
}
}