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

Method parseUnaryExpr

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

Source from the content-addressed store, hash-verified

332}
333
334func (p *Parser) parseUnaryExpr(pos Pos) (Expr, error) {
335 op := p.last()
336 switch {
337 case p.matchTokenKind(TokenKindPlus),
338 p.matchTokenKind(TokenKindMinus),
339 p.matchKeyword(KeywordNot):
340 _ = p.lexer.consumeToken()
341 default:
342 return p.parseColumnExpr(pos)
343 }
344
345 expr, err := p.parseColumnExpr(p.Pos())
346 if err != nil {
347 return nil, err
348 }
349
350 return &UnaryExpr{
351 UnaryPos: pos,
352 Kind: TokenKind(op.ToString()),
353 Expr: expr,
354 }, nil
355
356}
357
358func (p *Parser) peekTokenKind(kind TokenKind) bool {
359 if p.lexer.isEOF() {

Callers 1

parseSubExprMethod · 0.95

Calls 8

lastMethod · 0.95
matchTokenKindMethod · 0.95
matchKeywordMethod · 0.95
parseColumnExprMethod · 0.95
PosMethod · 0.95
TokenKindTypeAlias · 0.85
consumeTokenMethod · 0.80
ToStringMethod · 0.80

Tested by

no test coverage detected