MCPcopy Create free account
hub / github.com/ajitpratap0/GoSQLX / parseAndExpression

Method parseAndExpression

pkg/sql/parser/expressions.go:86–113  ·  view source on GitHub ↗

parseAndExpression parses an expression with AND operators (middle precedence)

()

Source from the content-addressed store, hash-verified

84
85// parseAndExpression parses an expression with AND operators (middle precedence)
86func (p *Parser) parseAndExpression() (ast.Expression, error) {
87 // Parse comparison expressions (higher precedence)
88 left, err := p.parseComparisonExpression()
89 if err != nil {
90 return nil, err
91 }
92
93 // Handle AND operators (middle precedence, left-associative)
94 for p.isType(models.TokenTypeAnd) {
95 opPos := p.currentLocation()
96 operator := p.currentToken.Token.Value
97 p.advance() // Consume AND
98
99 right, err := p.parseComparisonExpression()
100 if err != nil {
101 return nil, err
102 }
103
104 left = &ast.BinaryExpression{
105 Left: left,
106 Operator: operator,
107 Right: right,
108 Pos: opPos,
109 }
110 }
111
112 return left, nil
113}
114
115// parseStringConcatExpression parses expressions with || (string concatenation) operator
116func (p *Parser) parseStringConcatExpression() (ast.Expression, error) {

Callers 1

parseExpressionMethod · 0.95

Calls 4

isTypeMethod · 0.95
currentLocationMethod · 0.95
advanceMethod · 0.95

Tested by

no test coverage detected