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

Method parseSubExpr

parser/parser_column.go:226–243  ·  view source on GitHub ↗
(pos Pos, precedence int)

Source from the content-addressed store, hash-verified

224}
225
226func (p *Parser) parseSubExpr(pos Pos, precedence int) (Expr, error) {
227 expr, err := p.parseUnaryExpr(pos)
228 if err != nil {
229 return nil, err
230 }
231 for !p.lexer.isEOF() {
232 nextPrecedence := p.getNextPrecedence()
233 if nextPrecedence <= precedence {
234 return expr, nil
235 }
236 // parse binary operation
237 expr, err = p.parseInfix(expr, nextPrecedence)
238 if err != nil {
239 return nil, err
240 }
241 }
242 return expr, nil
243}
244
245func (p *Parser) parseTernaryExpr(condition Expr) (*TernaryOperation, error) {
246 if err := p.expectTokenKind(TokenKindQuestionMark); err != nil {

Callers 4

parseInfixMethod · 0.95
parseExprMethod · 0.95
parseUpdateAssignmentMethod · 0.95
parseBetweenClauseMethod · 0.95

Calls 4

parseUnaryExprMethod · 0.95
getNextPrecedenceMethod · 0.95
parseInfixMethod · 0.95
isEOFMethod · 0.80

Tested by

no test coverage detected