MCPcopy
hub / github.com/google/go-jsonnet / parseObjectRemainderAssert

Method parseObjectRemainderAssert

internal/parser/parser.go:572–605  ·  view source on GitHub ↗
(tok *token, next *token)

Source from the content-addressed store, hash-verified

570}
571
572func (p *parser) parseObjectRemainderAssert(tok *token, next *token) (*ast.ObjectField, errors.StaticError) {
573 cond, err := p.parse(iast.MaxPrecedence)
574 if err != nil {
575 return nil, err
576 }
577 lastAST := cond // for determining location
578 var msg ast.Node
579 var colonFodder ast.Fodder
580 if p.peek().kind == tokenOperator && p.peek().data == ":" {
581 colonToken := p.pop()
582 colonFodder = colonToken.fodder
583 msg, err = p.parse(iast.MaxPrecedence)
584 if err != nil {
585 return nil, err
586 }
587 lastAST = msg
588 }
589
590 var commaFodder ast.Fodder
591 if p.peek().kind == tokenComma {
592 commaFodder = p.peek().fodder
593 }
594
595 return &ast.ObjectField{
596 Kind: ast.ObjectAssert,
597 Hide: ast.ObjectFieldVisible,
598 Fodder1: next.fodder,
599 Expr2: cond,
600 OpFodder: colonFodder,
601 Expr3: msg,
602 CommaFodder: commaFodder,
603 LocRange: locFromTokenAST(next, lastAST),
604 }, nil
605}
606
607// Parse object or object comprehension without leading brace
608func (p *parser) parseObjectRemainder(tok *token) (ast.Node, *token, errors.StaticError) {

Callers 1

parseObjectRemainderMethod · 0.95

Calls 4

parseMethod · 0.95
peekMethod · 0.95
popMethod · 0.95
locFromTokenASTFunction · 0.85

Tested by

no test coverage detected