sdk/dotnet/src/Microsoft.Datasync.Client/Query/OData/ODataExpressionParser.cs
/// <summary>
/// Parses constants, conversion, and member access clauses.
/// </summary>
/// <returns>A <see cref="QueryNode"/> representing the expression.</returns>
Parses constants, conversion, and member access clauses.
Parses constants conversion and member access clauses .
private QueryNode ParsePrimary()
        {
            QueryNode expression = lexer.Token.Kind switch
            {
                QueryTokenKind.Identifier => ParseIdentifier(),
                QueryTokenKind.StringLiteral => ParseStringLiteral(),
                QueryTokenKind.IntegerLiteral => ParseIntegerLiteral(),
                QueryTokenKind.RealLiteral => ParseRealLiteral(),
                QueryTokenKind.OpenParen => ParseParenExpression(),
                _ => throw new ODataException("Expression expected", lexer.Text, lexer.Token.Position)
            };
            while (lexer.Token.Kind == QueryTokenKind.Dot)
            {
                lexer.NextToken();
                expression = ParseMemberAccess(expression);
            }
            return expression;
        }
private QueryNode ParsePrimary ( ) { QueryNode expression = lexer . Token . Kind switch { QueryTokenKind . Identifier => ParseIdentifier ( ) , QueryTokenKind . StringLiteral => ParseStringLiteral ( ) , QueryTokenKind . IntegerLiteral => ParseIntegerLiteral ( ) , QueryTokenKind . RealLiteral => ParseRealLiteral ( ) , QueryTokenKind . OpenParen => ParseParenExpression ( ) , _ => throw new ODataException ( " " , lexer . Text , lexer . Token . Position ) } ; while ( lexer . Token . Kind == QueryTokenKind . Dot ) { lexer . NextToken ( ) ; expression = ParseMemberAccess ( expression ) ; } return expression ; }
Parses constants, conversion, and member access clauses.
Parses constants conversion and member access clauses .
A  representing the expression.
A representing the expression .