76 references to Precedence
Microsoft.CodeAnalysis.CSharp (76)
Parser\LanguageParser_Patterns.cs (15)
53private PatternSyntax ParsePattern(Precedence precedence, bool afterIs = false, bool inSwitchArmPattern = false) 58private PatternSyntax ParseDisjunctivePattern(Precedence precedence, bool afterIs, bool inSwitchArmPattern) 104private PatternSyntax ParseConjunctivePattern(Precedence precedence, bool afterIs, bool inSwitchArmPattern) 158private PatternSyntax ParseNegatedPattern(Precedence precedence, bool afterIs, bool inSwitchArmPattern) 187private PatternSyntax ParsePrimaryPattern(Precedence precedence, bool afterIs, bool inSwitchArmPattern) 224Debug.Assert(precedence < Precedence.Shift); 227this.ParseSubExpression(Precedence.Relational)); 257bool CanTokenFollowTypeInPattern(Precedence precedence) 284private PatternSyntax? ParsePatternContinued(TypeSyntax? type, Precedence precedence, bool inSwitchArmPattern) 463var pattern = ParsePattern(Precedence.Conditional, inSwitchArmPattern: true); 532PatternSyntax pattern = ParsePattern(Precedence.Conditional); 541pattern = ParsePattern(Precedence.Conditional); 621var pattern = ParsePattern(Precedence.Coalescing, inSwitchArmPattern: true); 631ParseWhenClause(Precedence.Coalescing), 667static @this => @this.ParsePattern(Precedence.Conditional),
Parser\LanguageParser.cs (61)
4429var refKeyword = this.CurrentToken.Kind == SyntaxKind.RefKeyword && !this.IsPossibleLambdaExpression(Precedence.Expression) 5617var refKeyword = isLocalOrField && !isConst && this.CurrentToken.Kind == SyntaxKind.RefKeyword && !this.IsPossibleLambdaExpression(Precedence.Expression) 9853: this.ParseSubExpression(Precedence.Expression); 10298ParseWhenClause(Precedence.Expression), 10728private WhenClauseSyntax ParseWhenClause(Precedence precedence) 11092return this.ParseSubExpression(Precedence.Expression); 11156return IsPossibleAnonymousMethodExpression() || IsPossibleLambdaExpression(Precedence.Expression); 11247private static Precedence GetPrecedence(SyntaxKind op) 11252return Precedence.Expression; 11256return Precedence.Lambda; 11270return Precedence.Assignment; 11273return Precedence.Coalescing; 11275return Precedence.ConditionalOr; 11277return Precedence.ConditionalAnd; 11279return Precedence.LogicalOr; 11281return Precedence.LogicalXor; 11283return Precedence.LogicalAnd; 11286return Precedence.Equality; 11294return Precedence.Relational; 11297return Precedence.Switch; 11301return Precedence.Shift; 11304return Precedence.Additive; 11308return Precedence.Multiplicative; 11325return Precedence.Unary; 11327return Precedence.Cast; 11329return Precedence.PointerIndirection; 11331return Precedence.AddressOf; 11333return Precedence.Range; 11335return Precedence.Expression; 11374return Precedence.Primary; 11456private ExpressionSyntax ParseSubExpression(Precedence precedence) 11471private ExpressionSyntax ParseSubExpressionCore(Precedence precedence) 11487ExpressionSyntax parseUnaryOrPrimaryExpression(Precedence precedence) 11508? this.ParseSubExpression(Precedence.Range) 11536return precedence <= Precedence.Coalescing 11556private ExpressionSyntax ParseExpressionContinued(ExpressionSyntax unaryOrPrimaryExpression, Precedence precedence) 11576if (this.CurrentToken.Kind == SyntaxKind.QuestionToken && precedence <= Precedence.Conditional) 11581ExpressionSyntax? tryExpandExpression(ExpressionSyntax leftOperand, Precedence precedence) 11592var newPrecedence = GetPrecedence(operatorExpressionKind); 11647? this.ParseSubExpression(Precedence.Range) 11861Debug.Assert(GetPrecedence(operatorExpressionKind) == Precedence.Assignment); 11867!this.IsPossibleLambdaExpression(Precedence.Assignment)) 11875rhs = this.ParseSubExpression(Precedence.Assignment); 11952this.ParseSubExpression(Precedence.Coalescing)); 11966private ExpressionSyntax ParsePrimaryExpression(Precedence precedence) 11975ExpressionSyntax parsePrimaryExpressionWithoutPostfix(Precedence precedence) 12255private bool IsPossibleDeconstructionLeft(Precedence precedence) 12257if (precedence > Precedence.Assignment || !(this.CurrentToken.IsIdentifierVar() || IsPredefinedType(this.CurrentToken.Kind))) 12617this.IsPossibleLambdaExpression(Precedence.Expression))) 12642: ParseSubExpression(Precedence.Expression); 12729this.ParseSubExpression(Precedence.Expression), 12735private bool ScanParenthesizedLambda(Precedence precedence) 12745private bool ScanImplicitlyTypedLambdaOrSimpleExplicitlyTypedParenthesizedLambda(Precedence precedence) 12749if (precedence > Precedence.Lambda) 12776private bool ScanExplicitlyTypedLambda(Precedence precedence) 12780if (precedence > Precedence.Lambda) 12872this.ParseSubExpression(Precedence.Cast)); 13078private bool IsPossibleLambdaExpression(Precedence precedence) 13080if (precedence > Precedence.Lambda) 14160private QueryExpressionSyntax ParseQueryExpression(Precedence precedence) 14166precedence <= Precedence.Assignment