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

Method parseArgument

internal/parser/parser.go:97–114  ·  view source on GitHub ↗

parseArgument parses either id = expr or just expr. It returns either ( , id, , expr) or (nil, nil, nil, expr) respectively.

()

Source from the content-addressed store, hash-verified

95// It returns either (<f1>, id, <f2>, expr) or (nil, nil, nil, expr)
96// respectively.
97func (p *parser) parseArgument() (ast.Fodder, *ast.Identifier, ast.Fodder, ast.Node, errors.StaticError) {
98 var idFodder ast.Fodder
99 var id *ast.Identifier
100 var eqFodder ast.Fodder
101 if p.peek().kind == tokenIdentifier && p.doublePeek().kind == tokenOperator && p.doublePeek().data == "=" {
102 ident := p.pop()
103 var tmpID = ast.Identifier(ident.data)
104 id = &tmpID
105 idFodder = ident.fodder
106 eq := p.pop()
107 eqFodder = eq.fodder
108 }
109 expr, err := p.parse(iast.MaxPrecedence)
110 if err != nil {
111 return nil, nil, nil, nil, err
112 }
113 return idFodder, id, eqFodder, expr, nil
114}
115
116// TODO(sbarzowski) - this returned bool is weird
117func (p *parser) parseArguments(elementKind string) (*token, *ast.Arguments, bool, errors.StaticError) {

Callers 1

parseArgumentsMethod · 0.95

Calls 4

peekMethod · 0.95
doublePeekMethod · 0.95
popMethod · 0.95
parseMethod · 0.95

Tested by

no test coverage detected