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

Method parseBracketArrayLiteral

pkg/sql/parser/expressions_complex.go:352–381  ·  view source on GitHub ↗

parseBracketArrayLiteral parses a ClickHouse-style bare bracket array literal: [expr, expr, ...]. The opening '[' is the current token.

()

Source from the content-addressed store, hash-verified

350// parseBracketArrayLiteral parses a ClickHouse-style bare bracket array
351// literal: [expr, expr, ...]. The opening '[' is the current token.
352func (p *Parser) parseBracketArrayLiteral() (*ast.ArrayConstructorExpression, error) {
353 p.advance() // Consume [
354
355 arrayExpr := ast.GetArrayConstructor()
356
357 if !p.isType(models.TokenTypeRBracket) {
358 for {
359 elem, err := p.parseExpression()
360 if err != nil {
361 return nil, err
362 }
363 arrayExpr.Elements = append(arrayExpr.Elements, elem)
364
365 if p.isType(models.TokenTypeComma) {
366 p.advance()
367 } else if p.isType(models.TokenTypeRBracket) {
368 break
369 } else {
370 return nil, p.expectedError(", or ]")
371 }
372 }
373 }
374
375 if !p.isType(models.TokenTypeRBracket) {
376 return nil, p.expectedError("]")
377 }
378 p.advance() // Consume ]
379
380 return arrayExpr, nil
381}

Callers 1

Calls 5

advanceMethod · 0.95
isTypeMethod · 0.95
parseExpressionMethod · 0.95
expectedErrorMethod · 0.95
GetArrayConstructorFunction · 0.92

Tested by

no test coverage detected