MCPcopy Create free account
hub / github.com/AfterShip/clickhouse-sql-parser / parseMapLiteral

Method parseMapLiteral

parser/parser_column.go:697–732  ·  view source on GitHub ↗
(pos Pos)

Source from the content-addressed store, hash-verified

695}
696
697func (p *Parser) parseMapLiteral(pos Pos) (*MapLiteral, error) {
698 if err := p.expectTokenKind(TokenKindLBrace); err != nil {
699 return nil, err
700 }
701
702 keyValues := make([]KeyValue, 0)
703 for !p.lexer.isEOF() && !p.matchTokenKind(TokenKindRBrace) {
704 key, err := p.parseString(p.Pos())
705 if err != nil {
706 return nil, err
707 }
708 if err := p.expectTokenKind(TokenKindColon); err != nil {
709 return nil, err
710 }
711 value, err := p.parseExpr(p.Pos())
712 if err != nil {
713 return nil, err
714 }
715 keyValues = append(keyValues, KeyValue{
716 Key: *key,
717 Value: value,
718 })
719 if p.tryConsumeTokenKind(TokenKindComma) == nil {
720 break
721 }
722 }
723 rightBracePos := p.Pos()
724 if err := p.expectTokenKind(TokenKindRBrace); err != nil {
725 return nil, err
726 }
727 return &MapLiteral{
728 LBracePos: pos,
729 RBracePos: rightBracePos,
730 KeyValues: keyValues,
731 }, nil
732}
733
734func (p *Parser) parseQueryParam(pos Pos) (*QueryParam, error) {
735 if err := p.expectTokenKind(TokenKindLBrace); err != nil {

Callers 2

parseColumnExprMethod · 0.95
parseSettingsExprMethod · 0.95

Calls 7

expectTokenKindMethod · 0.95
matchTokenKindMethod · 0.95
parseStringMethod · 0.95
PosMethod · 0.95
parseExprMethod · 0.95
tryConsumeTokenKindMethod · 0.95
isEOFMethod · 0.80

Tested by

no test coverage detected