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

Method parseAdditiveExpression

pkg/sql/parser/expressions.go:146–173  ·  view source on GitHub ↗

parseAdditiveExpression parses expressions with + and - operators

()

Source from the content-addressed store, hash-verified

144
145// parseAdditiveExpression parses expressions with + and - operators
146func (p *Parser) parseAdditiveExpression() (ast.Expression, error) {
147 // Parse the left side using multiplicative expression
148 left, err := p.parseMultiplicativeExpression()
149 if err != nil {
150 return nil, err
151 }
152
153 // Handle + and - operators (left-associative)
154 for p.isType(models.TokenTypePlus) || p.isType(models.TokenTypeMinus) {
155 opPos := p.currentLocation()
156 operator := p.currentToken.Token.Value
157 p.advance() // Consume operator
158
159 right, err := p.parseMultiplicativeExpression()
160 if err != nil {
161 return nil, err
162 }
163
164 left = &ast.BinaryExpression{
165 Left: left,
166 Operator: operator,
167 Right: right,
168 Pos: opPos,
169 }
170 }
171
172 return left, nil
173}
174
175// parseMultiplicativeExpression parses expressions with *, /, and % operators
176func (p *Parser) parseMultiplicativeExpression() (ast.Expression, error) {

Callers 1

Calls 4

isTypeMethod · 0.95
currentLocationMethod · 0.95
advanceMethod · 0.95

Tested by

no test coverage detected