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)
4418var refKeyword = this.CurrentToken.Kind == SyntaxKind.RefKeyword && !this.IsPossibleLambdaExpression(Precedence.Expression) 5606var refKeyword = isLocalOrField && !isConst && this.CurrentToken.Kind == SyntaxKind.RefKeyword && !this.IsPossibleLambdaExpression(Precedence.Expression) 9829: this.ParseSubExpression(Precedence.Expression); 10274ParseWhenClause(Precedence.Expression), 10704private WhenClauseSyntax ParseWhenClause(Precedence precedence) 11068return this.ParseSubExpression(Precedence.Expression); 11132return IsPossibleAnonymousMethodExpression() || IsPossibleLambdaExpression(Precedence.Expression); 11223private static Precedence GetPrecedence(SyntaxKind op) 11228return Precedence.Expression; 11232return Precedence.Lambda; 11246return Precedence.Assignment; 11249return Precedence.Coalescing; 11251return Precedence.ConditionalOr; 11253return Precedence.ConditionalAnd; 11255return Precedence.LogicalOr; 11257return Precedence.LogicalXor; 11259return Precedence.LogicalAnd; 11262return Precedence.Equality; 11270return Precedence.Relational; 11273return Precedence.Switch; 11277return Precedence.Shift; 11280return Precedence.Additive; 11284return Precedence.Multiplicative; 11301return Precedence.Unary; 11303return Precedence.Cast; 11305return Precedence.PointerIndirection; 11307return Precedence.AddressOf; 11309return Precedence.Range; 11311return Precedence.Expression; 11350return Precedence.Primary; 11432private ExpressionSyntax ParseSubExpression(Precedence precedence) 11447private ExpressionSyntax ParseSubExpressionCore(Precedence precedence) 11463ExpressionSyntax parseUnaryOrPrimaryExpression(Precedence precedence) 11484? this.ParseSubExpression(Precedence.Range) 11512return precedence <= Precedence.Coalescing 11532private ExpressionSyntax ParseExpressionContinued(ExpressionSyntax unaryOrPrimaryExpression, Precedence precedence) 11552if (this.CurrentToken.Kind == SyntaxKind.QuestionToken && precedence <= Precedence.Conditional) 11557ExpressionSyntax? tryExpandExpression(ExpressionSyntax leftOperand, Precedence precedence) 11568var newPrecedence = GetPrecedence(operatorExpressionKind); 11623? this.ParseSubExpression(Precedence.Range) 11837Debug.Assert(GetPrecedence(operatorExpressionKind) == Precedence.Assignment); 11843!this.IsPossibleLambdaExpression(Precedence.Assignment)) 11851rhs = this.ParseSubExpression(Precedence.Assignment); 11928this.ParseSubExpression(Precedence.Coalescing)); 11942private ExpressionSyntax ParsePrimaryExpression(Precedence precedence) 11951ExpressionSyntax parsePrimaryExpressionWithoutPostfix(Precedence precedence) 12231private bool IsPossibleDeconstructionLeft(Precedence precedence) 12233if (precedence > Precedence.Assignment || !(this.CurrentToken.IsIdentifierVar() || IsPredefinedType(this.CurrentToken.Kind))) 12593this.IsPossibleLambdaExpression(Precedence.Expression))) 12618: ParseSubExpression(Precedence.Expression); 12705this.ParseSubExpression(Precedence.Expression), 12711private bool ScanParenthesizedLambda(Precedence precedence) 12721private bool ScanImplicitlyTypedLambdaOrSimpleExplicitlyTypedParenthesizedLambda(Precedence precedence) 12725if (precedence > Precedence.Lambda) 12752private bool ScanExplicitlyTypedLambda(Precedence precedence) 12756if (precedence > Precedence.Lambda) 12848this.ParseSubExpression(Precedence.Cast)); 13054private bool IsPossibleLambdaExpression(Precedence precedence) 13056if (precedence > Precedence.Lambda) 14182private QueryExpressionSyntax ParseQueryExpression(Precedence precedence) 14188precedence <= Precedence.Assignment