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

Method parseParameter

internal/parser/parser.go:175–194  ·  view source on GitHub ↗

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

()

Source from the content-addressed store, hash-verified

173// It returns either (<f1>, id, <f2>, expr) or (<f1>, id, nil, nil)
174// respectively.
175func (p *parser) parseParameter() (ast.Parameter, errors.StaticError) {
176 ret := ast.Parameter{}
177 ident, err := p.popExpect(tokenIdentifier)
178 if err != nil {
179 return ret, err.WithContext("parsing parameter")
180 }
181 ret.Name = ast.Identifier(ident.data)
182 ret.NameFodder = ident.fodder
183 ret.LocRange = ident.loc
184 if p.peek().kind == tokenOperator && p.peek().data == "=" {
185 eq := p.pop()
186 ret.EqFodder = eq.fodder
187 ret.DefaultArg, err = p.parse(iast.MaxPrecedence)
188 if err != nil {
189 return ret, err
190 }
191 ret.LocRange = locFromTokenAST(ident, ret.DefaultArg)
192 }
193 return ret, nil
194}
195
196// TODO(sbarzowski) - this returned bool is weird
197func (p *parser) parseParameters(elementKind string) (*token, []ast.Parameter, bool, errors.StaticError) {

Callers 1

parseParametersMethod · 0.95

Calls 6

popExpectMethod · 0.95
peekMethod · 0.95
popMethod · 0.95
parseMethod · 0.95
locFromTokenASTFunction · 0.85
WithContextMethod · 0.65

Tested by

no test coverage detected