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

Method parseParameters

internal/parser/parser.go:197–234  ·  view source on GitHub ↗

TODO(sbarzowski) - this returned bool is weird

(elementKind string)

Source from the content-addressed store, hash-verified

195
196// TODO(sbarzowski) - this returned bool is weird
197func (p *parser) parseParameters(elementKind string) (*token, []ast.Parameter, bool, errors.StaticError) {
198
199 var parenR *token
200 var params []ast.Parameter
201 gotComma := false
202 first := true
203 for {
204 next := p.peek()
205
206 if next.kind == tokenParenR {
207 // gotComma can be true or false here.
208 parenR = p.pop()
209 break
210 }
211
212 if !first && !gotComma {
213 return nil, nil, false, errors.MakeStaticError(fmt.Sprintf("Expected a comma before next %s, got %s", elementKind, next), next.loc)
214 }
215
216 param, err := p.parseParameter()
217 if err != nil {
218 return nil, nil, false, err
219 }
220
221 if p.peek().kind == tokenComma {
222 comma := p.pop()
223 param.CommaFodder = comma.fodder
224 gotComma = true
225 } else {
226 gotComma = false
227 }
228 params = append(params, param)
229
230 first = false
231 }
232
233 return parenR, params, gotComma, nil
234}
235
236// TODO(sbarzowski) add location to all individual binds
237func (p *parser) parseBind(binds *ast.LocalBinds) (*token, errors.StaticError) {

Callers 4

parseBindMethod · 0.95
parseMethod · 0.95

Calls 4

peekMethod · 0.95
popMethod · 0.95
parseParameterMethod · 0.95
MakeStaticErrorFunction · 0.92

Tested by

no test coverage detected