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

Method parseStringConcatExpression

pkg/sql/parser/expressions.go:116–143  ·  view source on GitHub ↗

parseStringConcatExpression parses expressions with || (string concatenation) operator

()

Source from the content-addressed store, hash-verified

114
115// parseStringConcatExpression parses expressions with || (string concatenation) operator
116func (p *Parser) parseStringConcatExpression() (ast.Expression, error) {
117 // Parse the left side using additive expression
118 left, err := p.parseAdditiveExpression()
119 if err != nil {
120 return nil, err
121 }
122
123 // Handle || (string concatenation) operator (left-associative)
124 for p.isType(models.TokenTypeStringConcat) {
125 opPos := p.currentLocation()
126 operator := p.currentToken.Token.Value
127 p.advance() // Consume ||
128
129 right, err := p.parseAdditiveExpression()
130 if err != nil {
131 return nil, err
132 }
133
134 left = &ast.BinaryExpression{
135 Left: left,
136 Operator: operator,
137 Right: right,
138 Pos: opPos,
139 }
140 }
141
142 return left, nil
143}
144
145// parseAdditiveExpression parses expressions with + and - operators
146func (p *Parser) parseAdditiveExpression() (ast.Expression, error) {

Callers 1

Calls 4

isTypeMethod · 0.95
currentLocationMethod · 0.95
advanceMethod · 0.95

Tested by

no test coverage detected