MCPcopy Create free account
hub / github.com/jmespath/go-jmespath / parseFilter

Method parseFilter

parser.go:499–522  ·  view source on GitHub ↗
(node ASTNode)

Source from the content-addressed store, hash-verified

497 return indexExpr, nil
498}
499func (p *Parser) parseFilter(node ASTNode) (ASTNode, error) {
500 var right, condition ASTNode
501 var err error
502 condition, err = p.parseExpression(0)
503 if err != nil {
504 return ASTNode{}, err
505 }
506 if err := p.match(tRbracket); err != nil {
507 return ASTNode{}, err
508 }
509 if p.current() == tFlatten {
510 right = ASTNode{nodeType: ASTIdentity}
511 } else {
512 right, err = p.parseProjectionRHS(bindingPowers[tFilter])
513 if err != nil {
514 return ASTNode{}, err
515 }
516 }
517
518 return ASTNode{
519 nodeType: ASTFilterProjection,
520 children: []ASTNode{node, right, condition},
521 }, nil
522}
523
524func (p *Parser) parseDotRHS(bindingPower int) (ASTNode, error) {
525 lookahead := p.current()

Callers 2

ledMethod · 0.95
nudMethod · 0.95

Calls 4

parseExpressionMethod · 0.95
matchMethod · 0.95
currentMethod · 0.95
parseProjectionRHSMethod · 0.95

Tested by

no test coverage detected